diff --git a/src/me/topchetoeu/jscript/js/ts.js b/src/me/topchetoeu/jscript/js/ts.js deleted file mode 100644 index 6d2976d..0000000 --- a/src/me/topchetoeu/jscript/js/ts.js +++ /dev/null @@ -1,185320 +0,0 @@ -/*! ***************************************************************************** -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"; -debugger; -var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { - if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } - return cooked; -}; -var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - if (typeof b !== "function" && b !== null) - throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __assign = (this && this.__assign) || function () { - __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; - }; - return __assign.apply(this, arguments); -}; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __rest = (this && this.__rest) || function (s, e) { - var t = {}; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) - t[p] = s[p]; - if (s != null && typeof Object.getOwnPropertySymbols === "function") - for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { - if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) - t[p[i]] = s[p[i]]; - } - return t; -}; -var __values = (this && this.__values) || function(o) { - var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; - if (m) return m.call(o); - if (o && typeof o.length === "number") return { - next: function () { - if (o && i >= o.length) o = void 0; - return { value: o && o[i++], done: !o }; - } - }; - throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); -}; -var __read = (this && this.__read) || function (o, n) { - var m = typeof Symbol === "function" && o[Symbol.iterator]; - if (!m) return o; - var i = m.call(o), r, ar = [], e; - try { - while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); - } - catch (error) { e = { error: error }; } - finally { - try { - if (r && !r.done && (m = i["return"])) m.call(i); - } - finally { if (e) throw e.error; } - } - return ar; -}; -var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { - if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { - if (ar || !(i in from)) { - if (!ar) ar = Array.prototype.slice.call(from, 0, i); - ar[i] = from[i]; - } - } - return to.concat(ar || Array.prototype.slice.call(from)); -}; -var _t, _u, _v, _w, _x, _y, _z; -var _10; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __export = function (target, all) { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = function (to, from, except, desc) { - var e_1, _t; - if (from && typeof from === "object" || typeof from === "function") { - var _loop_1 = function (key) { - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: function () { return from[key]; }, enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - }; - try { - for (var _u = __values(__getOwnPropNames(from)), _v = _u.next(); !_v.done; _v = _u.next()) { - var key = _v.value; - _loop_1(key); - } - } - catch (e_1_1) { e_1 = { error: e_1_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_1) throw e_1.error; } - } - } - return to; -}; -var __toCommonJS = function (mod) { return __copyProps(__defProp({}, "__esModule", { value: true }), mod); }; -// src/tsserver/server.ts -var server_exports = {}; -__export(server_exports, { - ANONYMOUS: function () { return ANONYMOUS; }, - AccessFlags: function () { return AccessFlags; }, - AssertionLevel: function () { return AssertionLevel; }, - AssignmentDeclarationKind: function () { return AssignmentDeclarationKind; }, - AssignmentKind: function () { return AssignmentKind; }, - Associativity: function () { return Associativity; }, - BreakpointResolver: function () { return ts_BreakpointResolver_exports; }, - BuilderFileEmit: function () { return BuilderFileEmit; }, - BuilderProgramKind: function () { return BuilderProgramKind; }, - BuilderState: function () { return BuilderState; }, - BundleFileSectionKind: function () { return BundleFileSectionKind; }, - CallHierarchy: function () { return ts_CallHierarchy_exports; }, - CharacterCodes: function () { return CharacterCodes; }, - CheckFlags: function () { return CheckFlags; }, - CheckMode: function () { return CheckMode; }, - ClassificationType: function () { return ClassificationType; }, - ClassificationTypeNames: function () { return ClassificationTypeNames; }, - CommentDirectiveType: function () { return CommentDirectiveType; }, - Comparison: function () { return Comparison; }, - CompletionInfoFlags: function () { return CompletionInfoFlags; }, - CompletionTriggerKind: function () { return CompletionTriggerKind; }, - Completions: function () { return ts_Completions_exports; }, - ConfigFileProgramReloadLevel: function () { return ConfigFileProgramReloadLevel; }, - ContainerFlags: function () { return ContainerFlags; }, - ContextFlags: function () { return ContextFlags; }, - CoreServicesShimHostAdapter: function () { return CoreServicesShimHostAdapter; }, - Debug: function () { return Debug; }, - DiagnosticCategory: function () { return DiagnosticCategory; }, - Diagnostics: function () { return Diagnostics; }, - DocumentHighlights: function () { return DocumentHighlights; }, - ElementFlags: function () { return ElementFlags; }, - EmitFlags: function () { return EmitFlags; }, - EmitHint: function () { return EmitHint; }, - EmitOnly: function () { return EmitOnly; }, - EndOfLineState: function () { return EndOfLineState; }, - EnumKind: function () { return EnumKind; }, - ExitStatus: function () { return ExitStatus; }, - ExportKind: function () { return ExportKind; }, - Extension: function () { return Extension; }, - ExternalEmitHelpers: function () { return ExternalEmitHelpers; }, - FileIncludeKind: function () { return FileIncludeKind; }, - FilePreprocessingDiagnosticsKind: function () { return FilePreprocessingDiagnosticsKind; }, - FileSystemEntryKind: function () { return FileSystemEntryKind; }, - FileWatcherEventKind: function () { return FileWatcherEventKind; }, - FindAllReferences: function () { return ts_FindAllReferences_exports; }, - FlattenLevel: function () { return FlattenLevel; }, - FlowFlags: function () { return FlowFlags; }, - ForegroundColorEscapeSequences: function () { return ForegroundColorEscapeSequences; }, - FunctionFlags: function () { return FunctionFlags; }, - GeneratedIdentifierFlags: function () { return GeneratedIdentifierFlags; }, - GetLiteralTextFlags: function () { return GetLiteralTextFlags; }, - GoToDefinition: function () { return ts_GoToDefinition_exports; }, - HighlightSpanKind: function () { return HighlightSpanKind; }, - IdentifierNameMap: function () { return IdentifierNameMap; }, - IdentifierNameMultiMap: function () { return IdentifierNameMultiMap; }, - ImportKind: function () { return ImportKind; }, - ImportsNotUsedAsValues: function () { return ImportsNotUsedAsValues; }, - IndentStyle: function () { return IndentStyle; }, - IndexFlags: function () { return IndexFlags; }, - IndexKind: function () { return IndexKind; }, - InferenceFlags: function () { return InferenceFlags; }, - InferencePriority: function () { return InferencePriority; }, - InlayHintKind: function () { return InlayHintKind; }, - InlayHints: function () { return ts_InlayHints_exports; }, - InternalEmitFlags: function () { return InternalEmitFlags; }, - InternalSymbolName: function () { return InternalSymbolName; }, - InvalidatedProjectKind: function () { return InvalidatedProjectKind; }, - JsDoc: function () { return ts_JsDoc_exports; }, - JsTyping: function () { return ts_JsTyping_exports; }, - JsxEmit: function () { return JsxEmit; }, - JsxFlags: function () { return JsxFlags; }, - JsxReferenceKind: function () { return JsxReferenceKind; }, - LanguageServiceMode: function () { return LanguageServiceMode; }, - LanguageServiceShimHostAdapter: function () { return LanguageServiceShimHostAdapter; }, - LanguageVariant: function () { return LanguageVariant; }, - LexicalEnvironmentFlags: function () { return LexicalEnvironmentFlags; }, - ListFormat: function () { return ListFormat; }, - LogLevel: function () { return LogLevel; }, - MemberOverrideStatus: function () { return MemberOverrideStatus; }, - ModifierFlags: function () { return ModifierFlags; }, - ModuleDetectionKind: function () { return ModuleDetectionKind; }, - ModuleInstanceState: function () { return ModuleInstanceState; }, - ModuleKind: function () { return ModuleKind; }, - ModuleResolutionKind: function () { return ModuleResolutionKind; }, - ModuleSpecifierEnding: function () { return ModuleSpecifierEnding; }, - NavigateTo: function () { return ts_NavigateTo_exports; }, - NavigationBar: function () { return ts_NavigationBar_exports; }, - NewLineKind: function () { return NewLineKind; }, - NodeBuilderFlags: function () { return NodeBuilderFlags; }, - NodeCheckFlags: function () { return NodeCheckFlags; }, - NodeFactoryFlags: function () { return NodeFactoryFlags; }, - NodeFlags: function () { return NodeFlags; }, - NodeResolutionFeatures: function () { return NodeResolutionFeatures; }, - ObjectFlags: function () { return ObjectFlags; }, - OperationCanceledException: function () { return OperationCanceledException; }, - OperatorPrecedence: function () { return OperatorPrecedence; }, - OrganizeImports: function () { return ts_OrganizeImports_exports; }, - OrganizeImportsMode: function () { return OrganizeImportsMode; }, - OuterExpressionKinds: function () { return OuterExpressionKinds; }, - OutliningElementsCollector: function () { return ts_OutliningElementsCollector_exports; }, - OutliningSpanKind: function () { return OutliningSpanKind; }, - OutputFileType: function () { return OutputFileType; }, - PackageJsonAutoImportPreference: function () { return PackageJsonAutoImportPreference; }, - PackageJsonDependencyGroup: function () { return PackageJsonDependencyGroup; }, - PatternMatchKind: function () { return PatternMatchKind; }, - PollingInterval: function () { return PollingInterval; }, - PollingWatchKind: function () { return PollingWatchKind; }, - PragmaKindFlags: function () { return PragmaKindFlags; }, - PrivateIdentifierKind: function () { return PrivateIdentifierKind; }, - ProcessLevel: function () { return ProcessLevel; }, - QuotePreference: function () { return QuotePreference; }, - RelationComparisonResult: function () { return RelationComparisonResult; }, - Rename: function () { return ts_Rename_exports; }, - ScriptElementKind: function () { return ScriptElementKind; }, - ScriptElementKindModifier: function () { return ScriptElementKindModifier; }, - ScriptKind: function () { return ScriptKind; }, - ScriptSnapshot: function () { return ScriptSnapshot; }, - ScriptTarget: function () { return ScriptTarget; }, - SemanticClassificationFormat: function () { return SemanticClassificationFormat; }, - SemanticMeaning: function () { return SemanticMeaning; }, - SemicolonPreference: function () { return SemicolonPreference; }, - SignatureCheckMode: function () { return SignatureCheckMode; }, - SignatureFlags: function () { return SignatureFlags; }, - SignatureHelp: function () { return ts_SignatureHelp_exports; }, - SignatureKind: function () { return SignatureKind; }, - SmartSelectionRange: function () { return ts_SmartSelectionRange_exports; }, - SnippetKind: function () { return SnippetKind; }, - SortKind: function () { return SortKind; }, - StructureIsReused: function () { return StructureIsReused; }, - SymbolAccessibility: function () { return SymbolAccessibility; }, - SymbolDisplay: function () { return ts_SymbolDisplay_exports; }, - SymbolDisplayPartKind: function () { return SymbolDisplayPartKind; }, - SymbolFlags: function () { return SymbolFlags; }, - SymbolFormatFlags: function () { return SymbolFormatFlags; }, - SyntaxKind: function () { return SyntaxKind; }, - SyntheticSymbolKind: function () { return SyntheticSymbolKind; }, - Ternary: function () { return Ternary; }, - ThrottledCancellationToken: function () { return ThrottledCancellationToken; }, - TokenClass: function () { return TokenClass; }, - TokenFlags: function () { return TokenFlags; }, - TransformFlags: function () { return TransformFlags; }, - TypeFacts: function () { return TypeFacts; }, - TypeFlags: function () { return TypeFlags; }, - TypeFormatFlags: function () { return TypeFormatFlags; }, - TypeMapKind: function () { return TypeMapKind; }, - TypePredicateKind: function () { return TypePredicateKind; }, - TypeReferenceSerializationKind: function () { return TypeReferenceSerializationKind; }, - TypeScriptServicesFactory: function () { return TypeScriptServicesFactory; }, - UnionReduction: function () { return UnionReduction; }, - UpToDateStatusType: function () { return UpToDateStatusType; }, - VarianceFlags: function () { return VarianceFlags; }, - Version: function () { return Version; }, - VersionRange: function () { return VersionRange; }, - WatchDirectoryFlags: function () { return WatchDirectoryFlags; }, - WatchDirectoryKind: function () { return WatchDirectoryKind; }, - WatchFileKind: function () { return WatchFileKind; }, - WatchLogLevel: function () { return WatchLogLevel; }, - WatchType: function () { return WatchType; }, - accessPrivateIdentifier: function () { return accessPrivateIdentifier; }, - addDisposableResourceHelper: function () { return addDisposableResourceHelper; }, - addEmitFlags: function () { return addEmitFlags; }, - addEmitHelper: function () { return addEmitHelper; }, - addEmitHelpers: function () { return addEmitHelpers; }, - addInternalEmitFlags: function () { return addInternalEmitFlags; }, - addNodeFactoryPatcher: function () { return addNodeFactoryPatcher; }, - addObjectAllocatorPatcher: function () { return addObjectAllocatorPatcher; }, - addRange: function () { return addRange; }, - addRelatedInfo: function () { return addRelatedInfo; }, - addSyntheticLeadingComment: function () { return addSyntheticLeadingComment; }, - addSyntheticTrailingComment: function () { return addSyntheticTrailingComment; }, - addToSeen: function () { return addToSeen; }, - advancedAsyncSuperHelper: function () { return advancedAsyncSuperHelper; }, - affectsDeclarationPathOptionDeclarations: function () { return affectsDeclarationPathOptionDeclarations; }, - affectsEmitOptionDeclarations: function () { return affectsEmitOptionDeclarations; }, - allKeysStartWithDot: function () { return allKeysStartWithDot; }, - altDirectorySeparator: function () { return altDirectorySeparator; }, - and: function () { return and; }, - append: function () { return append; }, - appendIfUnique: function () { return appendIfUnique; }, - arrayFrom: function () { return arrayFrom; }, - arrayIsEqualTo: function () { return arrayIsEqualTo; }, - arrayIsHomogeneous: function () { return arrayIsHomogeneous; }, - arrayIsSorted: function () { return arrayIsSorted; }, - arrayOf: function () { return arrayOf; }, - arrayReverseIterator: function () { return arrayReverseIterator; }, - arrayToMap: function () { return arrayToMap; }, - arrayToMultiMap: function () { return arrayToMultiMap; }, - arrayToNumericMap: function () { return arrayToNumericMap; }, - arraysEqual: function () { return arraysEqual; }, - assertType: function () { return assertType; }, - assign: function () { return assign; }, - assignHelper: function () { return assignHelper; }, - asyncDelegator: function () { return asyncDelegator; }, - asyncGeneratorHelper: function () { return asyncGeneratorHelper; }, - asyncSuperHelper: function () { return asyncSuperHelper; }, - asyncValues: function () { return asyncValues; }, - attachFileToDiagnostics: function () { return attachFileToDiagnostics; }, - awaitHelper: function () { return awaitHelper; }, - awaiterHelper: function () { return awaiterHelper; }, - base64decode: function () { return base64decode; }, - base64encode: function () { return base64encode; }, - binarySearch: function () { return binarySearch; }, - binarySearchKey: function () { return binarySearchKey; }, - bindSourceFile: function () { return bindSourceFile; }, - breakIntoCharacterSpans: function () { return breakIntoCharacterSpans; }, - breakIntoWordSpans: function () { return breakIntoWordSpans; }, - buildLinkParts: function () { return buildLinkParts; }, - buildOpts: function () { return buildOpts; }, - buildOverload: function () { return buildOverload; }, - bundlerModuleNameResolver: function () { return bundlerModuleNameResolver; }, - canBeConvertedToAsync: function () { return canBeConvertedToAsync; }, - canHaveDecorators: function () { return canHaveDecorators; }, - canHaveExportModifier: function () { return canHaveExportModifier; }, - canHaveFlowNode: function () { return canHaveFlowNode; }, - canHaveIllegalDecorators: function () { return canHaveIllegalDecorators; }, - canHaveIllegalModifiers: function () { return canHaveIllegalModifiers; }, - canHaveIllegalType: function () { return canHaveIllegalType; }, - canHaveIllegalTypeParameters: function () { return canHaveIllegalTypeParameters; }, - canHaveJSDoc: function () { return canHaveJSDoc; }, - canHaveLocals: function () { return canHaveLocals; }, - canHaveModifiers: function () { return canHaveModifiers; }, - canHaveSymbol: function () { return canHaveSymbol; }, - canJsonReportNoInputFiles: function () { return canJsonReportNoInputFiles; }, - canProduceDiagnostics: function () { return canProduceDiagnostics; }, - canUsePropertyAccess: function () { return canUsePropertyAccess; }, - canWatchAffectingLocation: function () { return canWatchAffectingLocation; }, - canWatchAtTypes: function () { return canWatchAtTypes; }, - canWatchDirectoryOrFile: function () { return canWatchDirectoryOrFile; }, - cartesianProduct: function () { return cartesianProduct; }, - cast: function () { return cast; }, - chainBundle: function () { return chainBundle; }, - chainDiagnosticMessages: function () { return chainDiagnosticMessages; }, - changeAnyExtension: function () { return changeAnyExtension; }, - changeCompilerHostLikeToUseCache: function () { return changeCompilerHostLikeToUseCache; }, - changeExtension: function () { return changeExtension; }, - changesAffectModuleResolution: function () { return changesAffectModuleResolution; }, - changesAffectingProgramStructure: function () { return changesAffectingProgramStructure; }, - childIsDecorated: function () { return childIsDecorated; }, - classElementOrClassElementParameterIsDecorated: function () { return classElementOrClassElementParameterIsDecorated; }, - classHasClassThisAssignment: function () { return classHasClassThisAssignment; }, - classHasDeclaredOrExplicitlyAssignedName: function () { return classHasDeclaredOrExplicitlyAssignedName; }, - classHasExplicitlyAssignedName: function () { return classHasExplicitlyAssignedName; }, - classOrConstructorParameterIsDecorated: function () { return classOrConstructorParameterIsDecorated; }, - classPrivateFieldGetHelper: function () { return classPrivateFieldGetHelper; }, - classPrivateFieldInHelper: function () { return classPrivateFieldInHelper; }, - classPrivateFieldSetHelper: function () { return classPrivateFieldSetHelper; }, - classicNameResolver: function () { return classicNameResolver; }, - classifier: function () { return ts_classifier_exports; }, - cleanExtendedConfigCache: function () { return cleanExtendedConfigCache; }, - clear: function () { return clear; }, - clearMap: function () { return clearMap; }, - clearSharedExtendedConfigFileWatcher: function () { return clearSharedExtendedConfigFileWatcher; }, - climbPastPropertyAccess: function () { return climbPastPropertyAccess; }, - climbPastPropertyOrElementAccess: function () { return climbPastPropertyOrElementAccess; }, - clone: function () { return clone; }, - cloneCompilerOptions: function () { return cloneCompilerOptions; }, - closeFileWatcher: function () { return closeFileWatcher; }, - closeFileWatcherOf: function () { return closeFileWatcherOf; }, - codefix: function () { return ts_codefix_exports; }, - collapseTextChangeRangesAcrossMultipleVersions: function () { return collapseTextChangeRangesAcrossMultipleVersions; }, - collectExternalModuleInfo: function () { return collectExternalModuleInfo; }, - combine: function () { return combine; }, - combinePaths: function () { return combinePaths; }, - commentPragmas: function () { return commentPragmas; }, - commonOptionsWithBuild: function () { return commonOptionsWithBuild; }, - commonPackageFolders: function () { return commonPackageFolders; }, - compact: function () { return compact; }, - compareBooleans: function () { return compareBooleans; }, - compareDataObjects: function () { return compareDataObjects; }, - compareDiagnostics: function () { return compareDiagnostics; }, - compareDiagnosticsSkipRelatedInformation: function () { return compareDiagnosticsSkipRelatedInformation; }, - compareEmitHelpers: function () { return compareEmitHelpers; }, - compareNumberOfDirectorySeparators: function () { return compareNumberOfDirectorySeparators; }, - comparePaths: function () { return comparePaths; }, - comparePathsCaseInsensitive: function () { return comparePathsCaseInsensitive; }, - comparePathsCaseSensitive: function () { return comparePathsCaseSensitive; }, - comparePatternKeys: function () { return comparePatternKeys; }, - compareProperties: function () { return compareProperties; }, - compareStringsCaseInsensitive: function () { return compareStringsCaseInsensitive; }, - compareStringsCaseInsensitiveEslintCompatible: function () { return compareStringsCaseInsensitiveEslintCompatible; }, - compareStringsCaseSensitive: function () { return compareStringsCaseSensitive; }, - compareStringsCaseSensitiveUI: function () { return compareStringsCaseSensitiveUI; }, - compareTextSpans: function () { return compareTextSpans; }, - compareValues: function () { return compareValues; }, - compileOnSaveCommandLineOption: function () { return compileOnSaveCommandLineOption; }, - compilerOptionsAffectDeclarationPath: function () { return compilerOptionsAffectDeclarationPath; }, - compilerOptionsAffectEmit: function () { return compilerOptionsAffectEmit; }, - compilerOptionsAffectSemanticDiagnostics: function () { return compilerOptionsAffectSemanticDiagnostics; }, - compilerOptionsDidYouMeanDiagnostics: function () { return compilerOptionsDidYouMeanDiagnostics; }, - compilerOptionsIndicateEsModules: function () { return compilerOptionsIndicateEsModules; }, - compose: function () { return compose; }, - computeCommonSourceDirectoryOfFilenames: function () { return computeCommonSourceDirectoryOfFilenames; }, - computeLineAndCharacterOfPosition: function () { return computeLineAndCharacterOfPosition; }, - computeLineOfPosition: function () { return computeLineOfPosition; }, - computeLineStarts: function () { return computeLineStarts; }, - computePositionOfLineAndCharacter: function () { return computePositionOfLineAndCharacter; }, - computeSignature: function () { return computeSignature; }, - computeSignatureWithDiagnostics: function () { return computeSignatureWithDiagnostics; }, - computeSuggestionDiagnostics: function () { return computeSuggestionDiagnostics; }, - concatenate: function () { return concatenate; }, - concatenateDiagnosticMessageChains: function () { return concatenateDiagnosticMessageChains; }, - consumesNodeCoreModules: function () { return consumesNodeCoreModules; }, - contains: function () { return contains; }, - containsIgnoredPath: function () { return containsIgnoredPath; }, - containsObjectRestOrSpread: function () { return containsObjectRestOrSpread; }, - containsParseError: function () { return containsParseError; }, - containsPath: function () { return containsPath; }, - convertCompilerOptionsForTelemetry: function () { return convertCompilerOptionsForTelemetry; }, - convertCompilerOptionsFromJson: function () { return convertCompilerOptionsFromJson; }, - convertJsonOption: function () { return convertJsonOption; }, - convertToBase64: function () { return convertToBase64; }, - convertToJson: function () { return convertToJson; }, - convertToObject: function () { return convertToObject; }, - convertToOptionsWithAbsolutePaths: function () { return convertToOptionsWithAbsolutePaths; }, - convertToRelativePath: function () { return convertToRelativePath; }, - convertToTSConfig: function () { return convertToTSConfig; }, - convertTypeAcquisitionFromJson: function () { return convertTypeAcquisitionFromJson; }, - copyComments: function () { return copyComments; }, - copyEntries: function () { return copyEntries; }, - copyLeadingComments: function () { return copyLeadingComments; }, - copyProperties: function () { return copyProperties; }, - copyTrailingAsLeadingComments: function () { return copyTrailingAsLeadingComments; }, - copyTrailingComments: function () { return copyTrailingComments; }, - couldStartTrivia: function () { return couldStartTrivia; }, - countWhere: function () { return countWhere; }, - createAbstractBuilder: function () { return createAbstractBuilder; }, - createAccessorPropertyBackingField: function () { return createAccessorPropertyBackingField; }, - createAccessorPropertyGetRedirector: function () { return createAccessorPropertyGetRedirector; }, - createAccessorPropertySetRedirector: function () { return createAccessorPropertySetRedirector; }, - createBaseNodeFactory: function () { return createBaseNodeFactory; }, - createBinaryExpressionTrampoline: function () { return createBinaryExpressionTrampoline; }, - createBindingHelper: function () { return createBindingHelper; }, - createBuildInfo: function () { return createBuildInfo; }, - createBuilderProgram: function () { return createBuilderProgram; }, - createBuilderProgramUsingProgramBuildInfo: function () { return createBuilderProgramUsingProgramBuildInfo; }, - createBuilderStatusReporter: function () { return createBuilderStatusReporter; }, - createCacheWithRedirects: function () { return createCacheWithRedirects; }, - createCacheableExportInfoMap: function () { return createCacheableExportInfoMap; }, - createCachedDirectoryStructureHost: function () { return createCachedDirectoryStructureHost; }, - createClassNamedEvaluationHelperBlock: function () { return createClassNamedEvaluationHelperBlock; }, - createClassThisAssignmentBlock: function () { return createClassThisAssignmentBlock; }, - createClassifier: function () { return createClassifier; }, - createCommentDirectivesMap: function () { return createCommentDirectivesMap; }, - createCompilerDiagnostic: function () { return createCompilerDiagnostic; }, - createCompilerDiagnosticForInvalidCustomType: function () { return createCompilerDiagnosticForInvalidCustomType; }, - createCompilerDiagnosticFromMessageChain: function () { return createCompilerDiagnosticFromMessageChain; }, - createCompilerHost: function () { return createCompilerHost; }, - createCompilerHostFromProgramHost: function () { return createCompilerHostFromProgramHost; }, - createCompilerHostWorker: function () { return createCompilerHostWorker; }, - createDetachedDiagnostic: function () { return createDetachedDiagnostic; }, - createDiagnosticCollection: function () { return createDiagnosticCollection; }, - createDiagnosticForFileFromMessageChain: function () { return createDiagnosticForFileFromMessageChain; }, - createDiagnosticForNode: function () { return createDiagnosticForNode; }, - createDiagnosticForNodeArray: function () { return createDiagnosticForNodeArray; }, - createDiagnosticForNodeArrayFromMessageChain: function () { return createDiagnosticForNodeArrayFromMessageChain; }, - createDiagnosticForNodeFromMessageChain: function () { return createDiagnosticForNodeFromMessageChain; }, - createDiagnosticForNodeInSourceFile: function () { return createDiagnosticForNodeInSourceFile; }, - createDiagnosticForRange: function () { return createDiagnosticForRange; }, - createDiagnosticMessageChainFromDiagnostic: function () { return createDiagnosticMessageChainFromDiagnostic; }, - createDiagnosticReporter: function () { return createDiagnosticReporter; }, - createDocumentPositionMapper: function () { return createDocumentPositionMapper; }, - createDocumentRegistry: function () { return createDocumentRegistry; }, - createDocumentRegistryInternal: function () { return createDocumentRegistryInternal; }, - createEmitAndSemanticDiagnosticsBuilderProgram: function () { return createEmitAndSemanticDiagnosticsBuilderProgram; }, - createEmitHelperFactory: function () { return createEmitHelperFactory; }, - createEmptyExports: function () { return createEmptyExports; }, - createExpressionForJsxElement: function () { return createExpressionForJsxElement; }, - createExpressionForJsxFragment: function () { return createExpressionForJsxFragment; }, - createExpressionForObjectLiteralElementLike: function () { return createExpressionForObjectLiteralElementLike; }, - createExpressionForPropertyName: function () { return createExpressionForPropertyName; }, - createExpressionFromEntityName: function () { return createExpressionFromEntityName; }, - createExternalHelpersImportDeclarationIfNeeded: function () { return createExternalHelpersImportDeclarationIfNeeded; }, - createFileDiagnostic: function () { return createFileDiagnostic; }, - createFileDiagnosticFromMessageChain: function () { return createFileDiagnosticFromMessageChain; }, - createForOfBindingStatement: function () { return createForOfBindingStatement; }, - createGetCanonicalFileName: function () { return createGetCanonicalFileName; }, - createGetSourceFile: function () { return createGetSourceFile; }, - createGetSymbolAccessibilityDiagnosticForNode: function () { return createGetSymbolAccessibilityDiagnosticForNode; }, - createGetSymbolAccessibilityDiagnosticForNodeName: function () { return createGetSymbolAccessibilityDiagnosticForNodeName; }, - createGetSymbolWalker: function () { return createGetSymbolWalker; }, - createIncrementalCompilerHost: function () { return createIncrementalCompilerHost; }, - createIncrementalProgram: function () { return createIncrementalProgram; }, - createInputFiles: function () { return createInputFiles; }, - createInputFilesWithFilePaths: function () { return createInputFilesWithFilePaths; }, - createInputFilesWithFileTexts: function () { return createInputFilesWithFileTexts; }, - createJsxFactoryExpression: function () { return createJsxFactoryExpression; }, - createLanguageService: function () { return createLanguageService; }, - createLanguageServiceSourceFile: function () { return createLanguageServiceSourceFile; }, - createMemberAccessForPropertyName: function () { return createMemberAccessForPropertyName; }, - createModeAwareCache: function () { return createModeAwareCache; }, - createModeAwareCacheKey: function () { return createModeAwareCacheKey; }, - createModuleNotFoundChain: function () { return createModuleNotFoundChain; }, - createModuleResolutionCache: function () { return createModuleResolutionCache; }, - createModuleResolutionLoader: function () { return createModuleResolutionLoader; }, - createModuleSpecifierResolutionHost: function () { return createModuleSpecifierResolutionHost; }, - createMultiMap: function () { return createMultiMap; }, - createNodeConverters: function () { return createNodeConverters; }, - createNodeFactory: function () { return createNodeFactory; }, - createOptionNameMap: function () { return createOptionNameMap; }, - createOverload: function () { return createOverload; }, - createPackageJsonImportFilter: function () { return createPackageJsonImportFilter; }, - createPackageJsonInfo: function () { return createPackageJsonInfo; }, - createParenthesizerRules: function () { return createParenthesizerRules; }, - createPatternMatcher: function () { return createPatternMatcher; }, - createPrependNodes: function () { return createPrependNodes; }, - createPrinter: function () { return createPrinter; }, - createPrinterWithDefaults: function () { return createPrinterWithDefaults; }, - createPrinterWithRemoveComments: function () { return createPrinterWithRemoveComments; }, - createPrinterWithRemoveCommentsNeverAsciiEscape: function () { return createPrinterWithRemoveCommentsNeverAsciiEscape; }, - createPrinterWithRemoveCommentsOmitTrailingSemicolon: function () { return createPrinterWithRemoveCommentsOmitTrailingSemicolon; }, - createProgram: function () { return createProgram; }, - createProgramHost: function () { return createProgramHost; }, - createPropertyNameNodeForIdentifierOrLiteral: function () { return createPropertyNameNodeForIdentifierOrLiteral; }, - createQueue: function () { return createQueue; }, - createRange: function () { return createRange; }, - createRedirectedBuilderProgram: function () { return createRedirectedBuilderProgram; }, - createResolutionCache: function () { return createResolutionCache; }, - createRuntimeTypeSerializer: function () { return createRuntimeTypeSerializer; }, - createScanner: function () { return createScanner; }, - createSemanticDiagnosticsBuilderProgram: function () { return createSemanticDiagnosticsBuilderProgram; }, - createSet: function () { return createSet; }, - createSolutionBuilder: function () { return createSolutionBuilder; }, - createSolutionBuilderHost: function () { return createSolutionBuilderHost; }, - createSolutionBuilderWithWatch: function () { return createSolutionBuilderWithWatch; }, - createSolutionBuilderWithWatchHost: function () { return createSolutionBuilderWithWatchHost; }, - createSortedArray: function () { return createSortedArray; }, - createSourceFile: function () { return createSourceFile; }, - createSourceMapGenerator: function () { return createSourceMapGenerator; }, - createSourceMapSource: function () { return createSourceMapSource; }, - createSuperAccessVariableStatement: function () { return createSuperAccessVariableStatement; }, - createSymbolTable: function () { return createSymbolTable; }, - createSymlinkCache: function () { return createSymlinkCache; }, - createSystemWatchFunctions: function () { return createSystemWatchFunctions; }, - createTextChange: function () { return createTextChange; }, - createTextChangeFromStartLength: function () { return createTextChangeFromStartLength; }, - createTextChangeRange: function () { return createTextChangeRange; }, - createTextRangeFromNode: function () { return createTextRangeFromNode; }, - createTextRangeFromSpan: function () { return createTextRangeFromSpan; }, - createTextSpan: function () { return createTextSpan; }, - createTextSpanFromBounds: function () { return createTextSpanFromBounds; }, - createTextSpanFromNode: function () { return createTextSpanFromNode; }, - createTextSpanFromRange: function () { return createTextSpanFromRange; }, - createTextSpanFromStringLiteralLikeContent: function () { return createTextSpanFromStringLiteralLikeContent; }, - createTextWriter: function () { return createTextWriter; }, - createTokenRange: function () { return createTokenRange; }, - createTypeChecker: function () { return createTypeChecker; }, - createTypeReferenceDirectiveResolutionCache: function () { return createTypeReferenceDirectiveResolutionCache; }, - createTypeReferenceResolutionLoader: function () { return createTypeReferenceResolutionLoader; }, - createUnparsedSourceFile: function () { return createUnparsedSourceFile; }, - createWatchCompilerHost: function () { return createWatchCompilerHost2; }, - createWatchCompilerHostOfConfigFile: function () { return createWatchCompilerHostOfConfigFile; }, - createWatchCompilerHostOfFilesAndCompilerOptions: function () { return createWatchCompilerHostOfFilesAndCompilerOptions; }, - createWatchFactory: function () { return createWatchFactory; }, - createWatchHost: function () { return createWatchHost; }, - createWatchProgram: function () { return createWatchProgram; }, - createWatchStatusReporter: function () { return createWatchStatusReporter; }, - createWriteFileMeasuringIO: function () { return createWriteFileMeasuringIO; }, - declarationNameToString: function () { return declarationNameToString; }, - decodeMappings: function () { return decodeMappings; }, - decodedTextSpanIntersectsWith: function () { return decodedTextSpanIntersectsWith; }, - decorateHelper: function () { return decorateHelper; }, - deduplicate: function () { return deduplicate; }, - defaultIncludeSpec: function () { return defaultIncludeSpec; }, - defaultInitCompilerOptions: function () { return defaultInitCompilerOptions; }, - defaultMaximumTruncationLength: function () { return defaultMaximumTruncationLength; }, - detectSortCaseSensitivity: function () { return detectSortCaseSensitivity; }, - diagnosticCategoryName: function () { return diagnosticCategoryName; }, - diagnosticToString: function () { return diagnosticToString; }, - directoryProbablyExists: function () { return directoryProbablyExists; }, - directorySeparator: function () { return directorySeparator; }, - displayPart: function () { return displayPart; }, - displayPartsToString: function () { return displayPartsToString; }, - disposeEmitNodes: function () { return disposeEmitNodes; }, - disposeResourcesHelper: function () { return disposeResourcesHelper; }, - documentSpansEqual: function () { return documentSpansEqual; }, - dumpTracingLegend: function () { return dumpTracingLegend; }, - elementAt: function () { return elementAt; }, - elideNodes: function () { return elideNodes; }, - emitComments: function () { return emitComments; }, - emitDetachedComments: function () { return emitDetachedComments; }, - emitFiles: function () { return emitFiles; }, - emitFilesAndReportErrors: function () { return emitFilesAndReportErrors; }, - emitFilesAndReportErrorsAndGetExitStatus: function () { return emitFilesAndReportErrorsAndGetExitStatus; }, - emitModuleKindIsNonNodeESM: function () { return emitModuleKindIsNonNodeESM; }, - emitNewLineBeforeLeadingCommentOfPosition: function () { return emitNewLineBeforeLeadingCommentOfPosition; }, - emitNewLineBeforeLeadingComments: function () { return emitNewLineBeforeLeadingComments; }, - emitNewLineBeforeLeadingCommentsOfPosition: function () { return emitNewLineBeforeLeadingCommentsOfPosition; }, - emitSkippedWithNoDiagnostics: function () { return emitSkippedWithNoDiagnostics; }, - emitUsingBuildInfo: function () { return emitUsingBuildInfo; }, - emptyArray: function () { return emptyArray; }, - emptyFileSystemEntries: function () { return emptyFileSystemEntries; }, - emptyMap: function () { return emptyMap; }, - emptyOptions: function () { return emptyOptions; }, - emptySet: function () { return emptySet; }, - endsWith: function () { return endsWith; }, - ensurePathIsNonModuleName: function () { return ensurePathIsNonModuleName; }, - ensureScriptKind: function () { return ensureScriptKind; }, - ensureTrailingDirectorySeparator: function () { return ensureTrailingDirectorySeparator; }, - entityNameToString: function () { return entityNameToString; }, - enumerateInsertsAndDeletes: function () { return enumerateInsertsAndDeletes; }, - equalOwnProperties: function () { return equalOwnProperties; }, - equateStringsCaseInsensitive: function () { return equateStringsCaseInsensitive; }, - equateStringsCaseSensitive: function () { return equateStringsCaseSensitive; }, - equateValues: function () { return equateValues; }, - esDecorateHelper: function () { return esDecorateHelper; }, - escapeJsxAttributeString: function () { return escapeJsxAttributeString; }, - escapeLeadingUnderscores: function () { return escapeLeadingUnderscores; }, - escapeNonAsciiString: function () { return escapeNonAsciiString; }, - escapeSnippetText: function () { return escapeSnippetText; }, - escapeString: function () { return escapeString; }, - every: function () { return every; }, - expandPreOrPostfixIncrementOrDecrementExpression: function () { return expandPreOrPostfixIncrementOrDecrementExpression; }, - explainFiles: function () { return explainFiles; }, - explainIfFileIsRedirectAndImpliedFormat: function () { return explainIfFileIsRedirectAndImpliedFormat; }, - exportAssignmentIsAlias: function () { return exportAssignmentIsAlias; }, - exportStarHelper: function () { return exportStarHelper; }, - expressionResultIsUnused: function () { return expressionResultIsUnused; }, - extend: function () { return extend; }, - extendsHelper: function () { return extendsHelper; }, - extensionFromPath: function () { return extensionFromPath; }, - extensionIsTS: function () { return extensionIsTS; }, - extensionsNotSupportingExtensionlessResolution: function () { return extensionsNotSupportingExtensionlessResolution; }, - externalHelpersModuleNameText: function () { return externalHelpersModuleNameText; }, - factory: function () { return factory; }, - fileExtensionIs: function () { return fileExtensionIs; }, - fileExtensionIsOneOf: function () { return fileExtensionIsOneOf; }, - fileIncludeReasonToDiagnostics: function () { return fileIncludeReasonToDiagnostics; }, - fileShouldUseJavaScriptRequire: function () { return fileShouldUseJavaScriptRequire; }, - filter: function () { return filter; }, - filterMutate: function () { return filterMutate; }, - filterSemanticDiagnostics: function () { return filterSemanticDiagnostics; }, - find: function () { return find; }, - findAncestor: function () { return findAncestor; }, - findBestPatternMatch: function () { return findBestPatternMatch; }, - findChildOfKind: function () { return findChildOfKind; }, - findComputedPropertyNameCacheAssignment: function () { return findComputedPropertyNameCacheAssignment; }, - findConfigFile: function () { return findConfigFile; }, - findContainingList: function () { return findContainingList; }, - findDiagnosticForNode: function () { return findDiagnosticForNode; }, - findFirstNonJsxWhitespaceToken: function () { return findFirstNonJsxWhitespaceToken; }, - findIndex: function () { return findIndex; }, - findLast: function () { return findLast; }, - findLastIndex: function () { return findLastIndex; }, - findListItemInfo: function () { return findListItemInfo; }, - findMap: function () { return findMap; }, - findModifier: function () { return findModifier; }, - findNextToken: function () { return findNextToken; }, - findPackageJson: function () { return findPackageJson; }, - findPackageJsons: function () { return findPackageJsons; }, - findPrecedingMatchingToken: function () { return findPrecedingMatchingToken; }, - findPrecedingToken: function () { return findPrecedingToken; }, - findSuperStatementIndexPath: function () { return findSuperStatementIndexPath; }, - findTokenOnLeftOfPosition: function () { return findTokenOnLeftOfPosition; }, - findUseStrictPrologue: function () { return findUseStrictPrologue; }, - first: function () { return first; }, - firstDefined: function () { return firstDefined; }, - firstDefinedIterator: function () { return firstDefinedIterator; }, - firstIterator: function () { return firstIterator; }, - firstOrOnly: function () { return firstOrOnly; }, - firstOrUndefined: function () { return firstOrUndefined; }, - firstOrUndefinedIterator: function () { return firstOrUndefinedIterator; }, - fixupCompilerOptions: function () { return fixupCompilerOptions; }, - flatMap: function () { return flatMap; }, - flatMapIterator: function () { return flatMapIterator; }, - flatMapToMutable: function () { return flatMapToMutable; }, - flatten: function () { return flatten; }, - flattenCommaList: function () { return flattenCommaList; }, - flattenDestructuringAssignment: function () { return flattenDestructuringAssignment; }, - flattenDestructuringBinding: function () { return flattenDestructuringBinding; }, - flattenDiagnosticMessageText: function () { return flattenDiagnosticMessageText; }, - forEach: function () { return forEach; }, - forEachAncestor: function () { return forEachAncestor; }, - forEachAncestorDirectory: function () { return forEachAncestorDirectory; }, - forEachChild: function () { return forEachChild; }, - forEachChildRecursively: function () { return forEachChildRecursively; }, - forEachEmittedFile: function () { return forEachEmittedFile; }, - forEachEnclosingBlockScopeContainer: function () { return forEachEnclosingBlockScopeContainer; }, - forEachEntry: function () { return forEachEntry; }, - forEachExternalModuleToImportFrom: function () { return forEachExternalModuleToImportFrom; }, - forEachImportClauseDeclaration: function () { return forEachImportClauseDeclaration; }, - forEachKey: function () { return forEachKey; }, - forEachLeadingCommentRange: function () { return forEachLeadingCommentRange; }, - forEachNameInAccessChainWalkingLeft: function () { return forEachNameInAccessChainWalkingLeft; }, - forEachPropertyAssignment: function () { return forEachPropertyAssignment; }, - forEachResolvedProjectReference: function () { return forEachResolvedProjectReference; }, - forEachReturnStatement: function () { return forEachReturnStatement; }, - forEachRight: function () { return forEachRight; }, - forEachTrailingCommentRange: function () { return forEachTrailingCommentRange; }, - forEachTsConfigPropArray: function () { return forEachTsConfigPropArray; }, - forEachUnique: function () { return forEachUnique; }, - forEachYieldExpression: function () { return forEachYieldExpression; }, - forSomeAncestorDirectory: function () { return forSomeAncestorDirectory; }, - formatColorAndReset: function () { return formatColorAndReset; }, - formatDiagnostic: function () { return formatDiagnostic; }, - formatDiagnostics: function () { return formatDiagnostics; }, - formatDiagnosticsWithColorAndContext: function () { return formatDiagnosticsWithColorAndContext; }, - formatGeneratedName: function () { return formatGeneratedName; }, - formatGeneratedNamePart: function () { return formatGeneratedNamePart; }, - formatLocation: function () { return formatLocation; }, - formatMessage: function () { return formatMessage; }, - formatStringFromArgs: function () { return formatStringFromArgs; }, - formatting: function () { return ts_formatting_exports; }, - fullTripleSlashAMDReferencePathRegEx: function () { return fullTripleSlashAMDReferencePathRegEx; }, - fullTripleSlashReferencePathRegEx: function () { return fullTripleSlashReferencePathRegEx; }, - generateDjb2Hash: function () { return generateDjb2Hash; }, - generateTSConfig: function () { return generateTSConfig; }, - generatorHelper: function () { return generatorHelper; }, - getAdjustedReferenceLocation: function () { return getAdjustedReferenceLocation; }, - getAdjustedRenameLocation: function () { return getAdjustedRenameLocation; }, - getAliasDeclarationFromName: function () { return getAliasDeclarationFromName; }, - getAllAccessorDeclarations: function () { return getAllAccessorDeclarations; }, - getAllDecoratorsOfClass: function () { return getAllDecoratorsOfClass; }, - getAllDecoratorsOfClassElement: function () { return getAllDecoratorsOfClassElement; }, - getAllJSDocTags: function () { return getAllJSDocTags; }, - getAllJSDocTagsOfKind: function () { return getAllJSDocTagsOfKind; }, - getAllKeys: function () { return getAllKeys; }, - getAllProjectOutputs: function () { return getAllProjectOutputs; }, - getAllSuperTypeNodes: function () { return getAllSuperTypeNodes; }, - getAllUnscopedEmitHelpers: function () { return getAllUnscopedEmitHelpers; }, - getAllowJSCompilerOption: function () { return getAllowJSCompilerOption; }, - getAllowSyntheticDefaultImports: function () { return getAllowSyntheticDefaultImports; }, - getAncestor: function () { return getAncestor; }, - getAnyExtensionFromPath: function () { return getAnyExtensionFromPath; }, - getAreDeclarationMapsEnabled: function () { return getAreDeclarationMapsEnabled; }, - getAssignedExpandoInitializer: function () { return getAssignedExpandoInitializer; }, - getAssignedName: function () { return getAssignedName; }, - getAssignedNameOfIdentifier: function () { return getAssignedNameOfIdentifier; }, - getAssignmentDeclarationKind: function () { return getAssignmentDeclarationKind; }, - getAssignmentDeclarationPropertyAccessKind: function () { return getAssignmentDeclarationPropertyAccessKind; }, - getAssignmentTargetKind: function () { return getAssignmentTargetKind; }, - getAutomaticTypeDirectiveNames: function () { return getAutomaticTypeDirectiveNames; }, - getBaseFileName: function () { return getBaseFileName; }, - getBinaryOperatorPrecedence: function () { return getBinaryOperatorPrecedence; }, - getBuildInfo: function () { return getBuildInfo; }, - getBuildInfoFileVersionMap: function () { return getBuildInfoFileVersionMap; }, - getBuildInfoText: function () { return getBuildInfoText; }, - getBuildOrderFromAnyBuildOrder: function () { return getBuildOrderFromAnyBuildOrder; }, - getBuilderCreationParameters: function () { return getBuilderCreationParameters; }, - getBuilderFileEmit: function () { return getBuilderFileEmit; }, - getCheckFlags: function () { return getCheckFlags; }, - getClassExtendsHeritageElement: function () { return getClassExtendsHeritageElement; }, - getClassLikeDeclarationOfSymbol: function () { return getClassLikeDeclarationOfSymbol; }, - getCombinedLocalAndExportSymbolFlags: function () { return getCombinedLocalAndExportSymbolFlags; }, - getCombinedModifierFlags: function () { return getCombinedModifierFlags; }, - getCombinedNodeFlags: function () { return getCombinedNodeFlags; }, - getCombinedNodeFlagsAlwaysIncludeJSDoc: function () { return getCombinedNodeFlagsAlwaysIncludeJSDoc; }, - getCommentRange: function () { return getCommentRange; }, - getCommonSourceDirectory: function () { return getCommonSourceDirectory; }, - getCommonSourceDirectoryOfConfig: function () { return getCommonSourceDirectoryOfConfig; }, - getCompilerOptionValue: function () { return getCompilerOptionValue; }, - getCompilerOptionsDiffValue: function () { return getCompilerOptionsDiffValue; }, - getConditions: function () { return getConditions; }, - getConfigFileParsingDiagnostics: function () { return getConfigFileParsingDiagnostics; }, - getConstantValue: function () { return getConstantValue; }, - getContainerFlags: function () { return getContainerFlags; }, - getContainerNode: function () { return getContainerNode; }, - getContainingClass: function () { return getContainingClass; }, - getContainingClassExcludingClassDecorators: function () { return getContainingClassExcludingClassDecorators; }, - getContainingClassStaticBlock: function () { return getContainingClassStaticBlock; }, - getContainingFunction: function () { return getContainingFunction; }, - getContainingFunctionDeclaration: function () { return getContainingFunctionDeclaration; }, - getContainingFunctionOrClassStaticBlock: function () { return getContainingFunctionOrClassStaticBlock; }, - getContainingNodeArray: function () { return getContainingNodeArray; }, - getContainingObjectLiteralElement: function () { return getContainingObjectLiteralElement; }, - getContextualTypeFromParent: function () { return getContextualTypeFromParent; }, - getContextualTypeFromParentOrAncestorTypeNode: function () { return getContextualTypeFromParentOrAncestorTypeNode; }, - getCurrentTime: function () { return getCurrentTime; }, - getDeclarationDiagnostics: function () { return getDeclarationDiagnostics; }, - getDeclarationEmitExtensionForPath: function () { return getDeclarationEmitExtensionForPath; }, - getDeclarationEmitOutputFilePath: function () { return getDeclarationEmitOutputFilePath; }, - getDeclarationEmitOutputFilePathWorker: function () { return getDeclarationEmitOutputFilePathWorker; }, - getDeclarationFromName: function () { return getDeclarationFromName; }, - getDeclarationModifierFlagsFromSymbol: function () { return getDeclarationModifierFlagsFromSymbol; }, - getDeclarationOfKind: function () { return getDeclarationOfKind; }, - getDeclarationsOfKind: function () { return getDeclarationsOfKind; }, - getDeclaredExpandoInitializer: function () { return getDeclaredExpandoInitializer; }, - getDecorators: function () { return getDecorators; }, - getDefaultCompilerOptions: function () { return getDefaultCompilerOptions2; }, - getDefaultExportInfoWorker: function () { return getDefaultExportInfoWorker; }, - getDefaultFormatCodeSettings: function () { return getDefaultFormatCodeSettings; }, - getDefaultLibFileName: function () { return getDefaultLibFileName; }, - getDefaultLibFilePath: function () { return getDefaultLibFilePath; }, - getDefaultLikeExportInfo: function () { return getDefaultLikeExportInfo; }, - getDiagnosticText: function () { return getDiagnosticText; }, - getDiagnosticsWithinSpan: function () { return getDiagnosticsWithinSpan; }, - getDirectoryPath: function () { return getDirectoryPath; }, - getDirectoryToWatchFailedLookupLocation: function () { return getDirectoryToWatchFailedLookupLocation; }, - getDirectoryToWatchFailedLookupLocationFromTypeRoot: function () { return getDirectoryToWatchFailedLookupLocationFromTypeRoot; }, - getDocumentPositionMapper: function () { return getDocumentPositionMapper; }, - getESModuleInterop: function () { return getESModuleInterop; }, - getEditsForFileRename: function () { return getEditsForFileRename; }, - getEffectiveBaseTypeNode: function () { return getEffectiveBaseTypeNode; }, - getEffectiveConstraintOfTypeParameter: function () { return getEffectiveConstraintOfTypeParameter; }, - getEffectiveContainerForJSDocTemplateTag: function () { return getEffectiveContainerForJSDocTemplateTag; }, - getEffectiveImplementsTypeNodes: function () { return getEffectiveImplementsTypeNodes; }, - getEffectiveInitializer: function () { return getEffectiveInitializer; }, - getEffectiveJSDocHost: function () { return getEffectiveJSDocHost; }, - getEffectiveModifierFlags: function () { return getEffectiveModifierFlags; }, - getEffectiveModifierFlagsAlwaysIncludeJSDoc: function () { return getEffectiveModifierFlagsAlwaysIncludeJSDoc; }, - getEffectiveModifierFlagsNoCache: function () { return getEffectiveModifierFlagsNoCache; }, - getEffectiveReturnTypeNode: function () { return getEffectiveReturnTypeNode; }, - getEffectiveSetAccessorTypeAnnotationNode: function () { return getEffectiveSetAccessorTypeAnnotationNode; }, - getEffectiveTypeAnnotationNode: function () { return getEffectiveTypeAnnotationNode; }, - getEffectiveTypeParameterDeclarations: function () { return getEffectiveTypeParameterDeclarations; }, - getEffectiveTypeRoots: function () { return getEffectiveTypeRoots; }, - getElementOrPropertyAccessArgumentExpressionOrName: function () { return getElementOrPropertyAccessArgumentExpressionOrName; }, - getElementOrPropertyAccessName: function () { return getElementOrPropertyAccessName; }, - getElementsOfBindingOrAssignmentPattern: function () { return getElementsOfBindingOrAssignmentPattern; }, - getEmitDeclarations: function () { return getEmitDeclarations; }, - getEmitFlags: function () { return getEmitFlags; }, - getEmitHelpers: function () { return getEmitHelpers; }, - getEmitModuleDetectionKind: function () { return getEmitModuleDetectionKind; }, - getEmitModuleKind: function () { return getEmitModuleKind; }, - getEmitModuleResolutionKind: function () { return getEmitModuleResolutionKind; }, - getEmitScriptTarget: function () { return getEmitScriptTarget; }, - getEmitStandardClassFields: function () { return getEmitStandardClassFields; }, - getEnclosingBlockScopeContainer: function () { return getEnclosingBlockScopeContainer; }, - getEnclosingContainer: function () { return getEnclosingContainer; }, - getEncodedSemanticClassifications: function () { return getEncodedSemanticClassifications; }, - getEncodedSyntacticClassifications: function () { return getEncodedSyntacticClassifications; }, - getEndLinePosition: function () { return getEndLinePosition; }, - getEntityNameFromTypeNode: function () { return getEntityNameFromTypeNode; }, - getEntrypointsFromPackageJsonInfo: function () { return getEntrypointsFromPackageJsonInfo; }, - getErrorCountForSummary: function () { return getErrorCountForSummary; }, - getErrorSpanForNode: function () { return getErrorSpanForNode; }, - getErrorSummaryText: function () { return getErrorSummaryText; }, - getEscapedTextOfIdentifierOrLiteral: function () { return getEscapedTextOfIdentifierOrLiteral; }, - getEscapedTextOfJsxAttributeName: function () { return getEscapedTextOfJsxAttributeName; }, - getEscapedTextOfJsxNamespacedName: function () { return getEscapedTextOfJsxNamespacedName; }, - getExpandoInitializer: function () { return getExpandoInitializer; }, - getExportAssignmentExpression: function () { return getExportAssignmentExpression; }, - getExportInfoMap: function () { return getExportInfoMap; }, - getExportNeedsImportStarHelper: function () { return getExportNeedsImportStarHelper; }, - getExpressionAssociativity: function () { return getExpressionAssociativity; }, - getExpressionPrecedence: function () { return getExpressionPrecedence; }, - getExternalHelpersModuleName: function () { return getExternalHelpersModuleName; }, - getExternalModuleImportEqualsDeclarationExpression: function () { return getExternalModuleImportEqualsDeclarationExpression; }, - getExternalModuleName: function () { return getExternalModuleName; }, - getExternalModuleNameFromDeclaration: function () { return getExternalModuleNameFromDeclaration; }, - getExternalModuleNameFromPath: function () { return getExternalModuleNameFromPath; }, - getExternalModuleNameLiteral: function () { return getExternalModuleNameLiteral; }, - getExternalModuleRequireArgument: function () { return getExternalModuleRequireArgument; }, - getFallbackOptions: function () { return getFallbackOptions; }, - getFileEmitOutput: function () { return getFileEmitOutput; }, - getFileMatcherPatterns: function () { return getFileMatcherPatterns; }, - getFileNamesFromConfigSpecs: function () { return getFileNamesFromConfigSpecs; }, - getFileWatcherEventKind: function () { return getFileWatcherEventKind; }, - getFilesInErrorForSummary: function () { return getFilesInErrorForSummary; }, - getFirstConstructorWithBody: function () { return getFirstConstructorWithBody; }, - getFirstIdentifier: function () { return getFirstIdentifier; }, - getFirstNonSpaceCharacterPosition: function () { return getFirstNonSpaceCharacterPosition; }, - getFirstProjectOutput: function () { return getFirstProjectOutput; }, - getFixableErrorSpanExpression: function () { return getFixableErrorSpanExpression; }, - getFormatCodeSettingsForWriting: function () { return getFormatCodeSettingsForWriting; }, - getFullWidth: function () { return getFullWidth; }, - getFunctionFlags: function () { return getFunctionFlags; }, - getHeritageClause: function () { return getHeritageClause; }, - getHostSignatureFromJSDoc: function () { return getHostSignatureFromJSDoc; }, - getIdentifierAutoGenerate: function () { return getIdentifierAutoGenerate; }, - getIdentifierGeneratedImportReference: function () { return getIdentifierGeneratedImportReference; }, - getIdentifierTypeArguments: function () { return getIdentifierTypeArguments; }, - getImmediatelyInvokedFunctionExpression: function () { return getImmediatelyInvokedFunctionExpression; }, - getImpliedNodeFormatForFile: function () { return getImpliedNodeFormatForFile; }, - getImpliedNodeFormatForFileWorker: function () { return getImpliedNodeFormatForFileWorker; }, - getImportNeedsImportDefaultHelper: function () { return getImportNeedsImportDefaultHelper; }, - getImportNeedsImportStarHelper: function () { return getImportNeedsImportStarHelper; }, - getIndentSize: function () { return getIndentSize; }, - getIndentString: function () { return getIndentString; }, - getInferredLibraryNameResolveFrom: function () { return getInferredLibraryNameResolveFrom; }, - getInitializedVariables: function () { return getInitializedVariables; }, - getInitializerOfBinaryExpression: function () { return getInitializerOfBinaryExpression; }, - getInitializerOfBindingOrAssignmentElement: function () { return getInitializerOfBindingOrAssignmentElement; }, - getInterfaceBaseTypeNodes: function () { return getInterfaceBaseTypeNodes; }, - getInternalEmitFlags: function () { return getInternalEmitFlags; }, - getInvokedExpression: function () { return getInvokedExpression; }, - getIsolatedModules: function () { return getIsolatedModules; }, - getJSDocAugmentsTag: function () { return getJSDocAugmentsTag; }, - getJSDocClassTag: function () { return getJSDocClassTag; }, - getJSDocCommentRanges: function () { return getJSDocCommentRanges; }, - getJSDocCommentsAndTags: function () { return getJSDocCommentsAndTags; }, - getJSDocDeprecatedTag: function () { return getJSDocDeprecatedTag; }, - getJSDocDeprecatedTagNoCache: function () { return getJSDocDeprecatedTagNoCache; }, - getJSDocEnumTag: function () { return getJSDocEnumTag; }, - getJSDocHost: function () { return getJSDocHost; }, - getJSDocImplementsTags: function () { return getJSDocImplementsTags; }, - getJSDocOverrideTagNoCache: function () { return getJSDocOverrideTagNoCache; }, - getJSDocParameterTags: function () { return getJSDocParameterTags; }, - getJSDocParameterTagsNoCache: function () { return getJSDocParameterTagsNoCache; }, - getJSDocPrivateTag: function () { return getJSDocPrivateTag; }, - getJSDocPrivateTagNoCache: function () { return getJSDocPrivateTagNoCache; }, - getJSDocProtectedTag: function () { return getJSDocProtectedTag; }, - getJSDocProtectedTagNoCache: function () { return getJSDocProtectedTagNoCache; }, - getJSDocPublicTag: function () { return getJSDocPublicTag; }, - getJSDocPublicTagNoCache: function () { return getJSDocPublicTagNoCache; }, - getJSDocReadonlyTag: function () { return getJSDocReadonlyTag; }, - getJSDocReadonlyTagNoCache: function () { return getJSDocReadonlyTagNoCache; }, - getJSDocReturnTag: function () { return getJSDocReturnTag; }, - getJSDocReturnType: function () { return getJSDocReturnType; }, - getJSDocRoot: function () { return getJSDocRoot; }, - getJSDocSatisfiesExpressionType: function () { return getJSDocSatisfiesExpressionType; }, - getJSDocSatisfiesTag: function () { return getJSDocSatisfiesTag; }, - getJSDocTags: function () { return getJSDocTags; }, - getJSDocTagsNoCache: function () { return getJSDocTagsNoCache; }, - getJSDocTemplateTag: function () { return getJSDocTemplateTag; }, - getJSDocThisTag: function () { return getJSDocThisTag; }, - getJSDocType: function () { return getJSDocType; }, - getJSDocTypeAliasName: function () { return getJSDocTypeAliasName; }, - getJSDocTypeAssertionType: function () { return getJSDocTypeAssertionType; }, - getJSDocTypeParameterDeclarations: function () { return getJSDocTypeParameterDeclarations; }, - getJSDocTypeParameterTags: function () { return getJSDocTypeParameterTags; }, - getJSDocTypeParameterTagsNoCache: function () { return getJSDocTypeParameterTagsNoCache; }, - getJSDocTypeTag: function () { return getJSDocTypeTag; }, - getJSXImplicitImportBase: function () { return getJSXImplicitImportBase; }, - getJSXRuntimeImport: function () { return getJSXRuntimeImport; }, - getJSXTransformEnabled: function () { return getJSXTransformEnabled; }, - getKeyForCompilerOptions: function () { return getKeyForCompilerOptions; }, - getLanguageVariant: function () { return getLanguageVariant; }, - getLastChild: function () { return getLastChild; }, - getLeadingCommentRanges: function () { return getLeadingCommentRanges; }, - getLeadingCommentRangesOfNode: function () { return getLeadingCommentRangesOfNode; }, - getLeftmostAccessExpression: function () { return getLeftmostAccessExpression; }, - getLeftmostExpression: function () { return getLeftmostExpression; }, - getLineAndCharacterOfPosition: function () { return getLineAndCharacterOfPosition; }, - getLineInfo: function () { return getLineInfo; }, - getLineOfLocalPosition: function () { return getLineOfLocalPosition; }, - getLineOfLocalPositionFromLineMap: function () { return getLineOfLocalPositionFromLineMap; }, - getLineStartPositionForPosition: function () { return getLineStartPositionForPosition; }, - getLineStarts: function () { return getLineStarts; }, - getLinesBetweenPositionAndNextNonWhitespaceCharacter: function () { return getLinesBetweenPositionAndNextNonWhitespaceCharacter; }, - getLinesBetweenPositionAndPrecedingNonWhitespaceCharacter: function () { return getLinesBetweenPositionAndPrecedingNonWhitespaceCharacter; }, - getLinesBetweenPositions: function () { return getLinesBetweenPositions; }, - getLinesBetweenRangeEndAndRangeStart: function () { return getLinesBetweenRangeEndAndRangeStart; }, - getLinesBetweenRangeEndPositions: function () { return getLinesBetweenRangeEndPositions; }, - getLiteralText: function () { return getLiteralText; }, - getLocalNameForExternalImport: function () { return getLocalNameForExternalImport; }, - getLocalSymbolForExportDefault: function () { return getLocalSymbolForExportDefault; }, - getLocaleSpecificMessage: function () { return getLocaleSpecificMessage; }, - getLocaleTimeString: function () { return getLocaleTimeString; }, - getMappedContextSpan: function () { return getMappedContextSpan; }, - getMappedDocumentSpan: function () { return getMappedDocumentSpan; }, - getMappedLocation: function () { return getMappedLocation; }, - getMatchedFileSpec: function () { return getMatchedFileSpec; }, - getMatchedIncludeSpec: function () { return getMatchedIncludeSpec; }, - getMeaningFromDeclaration: function () { return getMeaningFromDeclaration; }, - getMeaningFromLocation: function () { return getMeaningFromLocation; }, - getMembersOfDeclaration: function () { return getMembersOfDeclaration; }, - getModeForFileReference: function () { return getModeForFileReference; }, - getModeForResolutionAtIndex: function () { return getModeForResolutionAtIndex; }, - getModeForUsageLocation: function () { return getModeForUsageLocation; }, - getModifiedTime: function () { return getModifiedTime; }, - getModifiers: function () { return getModifiers; }, - getModuleInstanceState: function () { return getModuleInstanceState; }, - getModuleNameStringLiteralAt: function () { return getModuleNameStringLiteralAt; }, - getModuleSpecifierEndingPreference: function () { return getModuleSpecifierEndingPreference; }, - getModuleSpecifierResolverHost: function () { return getModuleSpecifierResolverHost; }, - getNameForExportedSymbol: function () { return getNameForExportedSymbol; }, - getNameFromIndexInfo: function () { return getNameFromIndexInfo; }, - getNameFromPropertyName: function () { return getNameFromPropertyName; }, - getNameOfAccessExpression: function () { return getNameOfAccessExpression; }, - getNameOfCompilerOptionValue: function () { return getNameOfCompilerOptionValue; }, - getNameOfDeclaration: function () { return getNameOfDeclaration; }, - getNameOfExpando: function () { return getNameOfExpando; }, - getNameOfJSDocTypedef: function () { return getNameOfJSDocTypedef; }, - getNameOrArgument: function () { return getNameOrArgument; }, - getNameTable: function () { return getNameTable; }, - getNamesForExportedSymbol: function () { return getNamesForExportedSymbol; }, - getNamespaceDeclarationNode: function () { return getNamespaceDeclarationNode; }, - getNewLineCharacter: function () { return getNewLineCharacter; }, - getNewLineKind: function () { return getNewLineKind; }, - getNewLineOrDefaultFromHost: function () { return getNewLineOrDefaultFromHost; }, - getNewTargetContainer: function () { return getNewTargetContainer; }, - getNextJSDocCommentLocation: function () { return getNextJSDocCommentLocation; }, - getNodeForGeneratedName: function () { return getNodeForGeneratedName; }, - getNodeId: function () { return getNodeId; }, - getNodeKind: function () { return getNodeKind; }, - getNodeModifiers: function () { return getNodeModifiers; }, - getNodeModulePathParts: function () { return getNodeModulePathParts; }, - getNonAssignedNameOfDeclaration: function () { return getNonAssignedNameOfDeclaration; }, - getNonAssignmentOperatorForCompoundAssignment: function () { return getNonAssignmentOperatorForCompoundAssignment; }, - getNonAugmentationDeclaration: function () { return getNonAugmentationDeclaration; }, - getNonDecoratorTokenPosOfNode: function () { return getNonDecoratorTokenPosOfNode; }, - getNormalizedAbsolutePath: function () { return getNormalizedAbsolutePath; }, - getNormalizedAbsolutePathWithoutRoot: function () { return getNormalizedAbsolutePathWithoutRoot; }, - getNormalizedPathComponents: function () { return getNormalizedPathComponents; }, - getObjectFlags: function () { return getObjectFlags; }, - getOperator: function () { return getOperator; }, - getOperatorAssociativity: function () { return getOperatorAssociativity; }, - getOperatorPrecedence: function () { return getOperatorPrecedence; }, - getOptionFromName: function () { return getOptionFromName; }, - getOptionsForLibraryResolution: function () { return getOptionsForLibraryResolution; }, - getOptionsNameMap: function () { return getOptionsNameMap; }, - getOrCreateEmitNode: function () { return getOrCreateEmitNode; }, - getOrCreateExternalHelpersModuleNameIfNeeded: function () { return getOrCreateExternalHelpersModuleNameIfNeeded; }, - getOrUpdate: function () { return getOrUpdate; }, - getOriginalNode: function () { return getOriginalNode; }, - getOriginalNodeId: function () { return getOriginalNodeId; }, - getOriginalSourceFile: function () { return getOriginalSourceFile; }, - getOutputDeclarationFileName: function () { return getOutputDeclarationFileName; }, - getOutputExtension: function () { return getOutputExtension; }, - getOutputFileNames: function () { return getOutputFileNames; }, - getOutputPathsFor: function () { return getOutputPathsFor; }, - getOutputPathsForBundle: function () { return getOutputPathsForBundle; }, - getOwnEmitOutputFilePath: function () { return getOwnEmitOutputFilePath; }, - getOwnKeys: function () { return getOwnKeys; }, - getOwnValues: function () { return getOwnValues; }, - getPackageJsonInfo: function () { return getPackageJsonInfo; }, - getPackageJsonTypesVersionsPaths: function () { return getPackageJsonTypesVersionsPaths; }, - getPackageJsonsVisibleToFile: function () { return getPackageJsonsVisibleToFile; }, - getPackageNameFromTypesPackageName: function () { return getPackageNameFromTypesPackageName; }, - getPackageScopeForPath: function () { return getPackageScopeForPath; }, - getParameterSymbolFromJSDoc: function () { return getParameterSymbolFromJSDoc; }, - getParameterTypeNode: function () { return getParameterTypeNode; }, - getParentNodeInSpan: function () { return getParentNodeInSpan; }, - getParseTreeNode: function () { return getParseTreeNode; }, - getParsedCommandLineOfConfigFile: function () { return getParsedCommandLineOfConfigFile; }, - getPathComponents: function () { return getPathComponents; }, - getPathComponentsRelativeTo: function () { return getPathComponentsRelativeTo; }, - getPathFromPathComponents: function () { return getPathFromPathComponents; }, - getPathUpdater: function () { return getPathUpdater; }, - getPathsBasePath: function () { return getPathsBasePath; }, - getPatternFromSpec: function () { return getPatternFromSpec; }, - getPendingEmitKind: function () { return getPendingEmitKind; }, - getPositionOfLineAndCharacter: function () { return getPositionOfLineAndCharacter; }, - getPossibleGenericSignatures: function () { return getPossibleGenericSignatures; }, - getPossibleOriginalInputExtensionForExtension: function () { return getPossibleOriginalInputExtensionForExtension; }, - getPossibleTypeArgumentsInfo: function () { return getPossibleTypeArgumentsInfo; }, - getPreEmitDiagnostics: function () { return getPreEmitDiagnostics; }, - getPrecedingNonSpaceCharacterPosition: function () { return getPrecedingNonSpaceCharacterPosition; }, - getPrivateIdentifier: function () { return getPrivateIdentifier; }, - getProperties: function () { return getProperties; }, - getProperty: function () { return getProperty; }, - getPropertyArrayElementValue: function () { return getPropertyArrayElementValue; }, - getPropertyAssignmentAliasLikeExpression: function () { return getPropertyAssignmentAliasLikeExpression; }, - getPropertyNameForPropertyNameNode: function () { return getPropertyNameForPropertyNameNode; }, - getPropertyNameForUniqueESSymbol: function () { return getPropertyNameForUniqueESSymbol; }, - getPropertyNameFromType: function () { return getPropertyNameFromType; }, - getPropertyNameOfBindingOrAssignmentElement: function () { return getPropertyNameOfBindingOrAssignmentElement; }, - getPropertySymbolFromBindingElement: function () { return getPropertySymbolFromBindingElement; }, - getPropertySymbolsFromContextualType: function () { return getPropertySymbolsFromContextualType; }, - getQuoteFromPreference: function () { return getQuoteFromPreference; }, - getQuotePreference: function () { return getQuotePreference; }, - getRangesWhere: function () { return getRangesWhere; }, - getRefactorContextSpan: function () { return getRefactorContextSpan; }, - getReferencedFileLocation: function () { return getReferencedFileLocation; }, - getRegexFromPattern: function () { return getRegexFromPattern; }, - getRegularExpressionForWildcard: function () { return getRegularExpressionForWildcard; }, - getRegularExpressionsForWildcards: function () { return getRegularExpressionsForWildcards; }, - getRelativePathFromDirectory: function () { return getRelativePathFromDirectory; }, - getRelativePathFromFile: function () { return getRelativePathFromFile; }, - getRelativePathToDirectoryOrUrl: function () { return getRelativePathToDirectoryOrUrl; }, - getRenameLocation: function () { return getRenameLocation; }, - getReplacementSpanForContextToken: function () { return getReplacementSpanForContextToken; }, - getResolutionDiagnostic: function () { return getResolutionDiagnostic; }, - getResolutionModeOverrideForClause: function () { return getResolutionModeOverrideForClause; }, - getResolveJsonModule: function () { return getResolveJsonModule; }, - getResolvePackageJsonExports: function () { return getResolvePackageJsonExports; }, - getResolvePackageJsonImports: function () { return getResolvePackageJsonImports; }, - getResolvedExternalModuleName: function () { return getResolvedExternalModuleName; }, - getResolvedModule: function () { return getResolvedModule; }, - getResolvedTypeReferenceDirective: function () { return getResolvedTypeReferenceDirective; }, - getRestIndicatorOfBindingOrAssignmentElement: function () { return getRestIndicatorOfBindingOrAssignmentElement; }, - getRestParameterElementType: function () { return getRestParameterElementType; }, - getRightMostAssignedExpression: function () { return getRightMostAssignedExpression; }, - getRootDeclaration: function () { return getRootDeclaration; }, - getRootDirectoryOfResolutionCache: function () { return getRootDirectoryOfResolutionCache; }, - getRootLength: function () { return getRootLength; }, - getRootPathSplitLength: function () { return getRootPathSplitLength; }, - getScriptKind: function () { return getScriptKind; }, - getScriptKindFromFileName: function () { return getScriptKindFromFileName; }, - getScriptTargetFeatures: function () { return getScriptTargetFeatures; }, - getSelectedEffectiveModifierFlags: function () { return getSelectedEffectiveModifierFlags; }, - getSelectedSyntacticModifierFlags: function () { return getSelectedSyntacticModifierFlags; }, - getSemanticClassifications: function () { return getSemanticClassifications; }, - getSemanticJsxChildren: function () { return getSemanticJsxChildren; }, - getSetAccessorTypeAnnotationNode: function () { return getSetAccessorTypeAnnotationNode; }, - getSetAccessorValueParameter: function () { return getSetAccessorValueParameter; }, - getSetExternalModuleIndicator: function () { return getSetExternalModuleIndicator; }, - getShebang: function () { return getShebang; }, - getSingleInitializerOfVariableStatementOrPropertyDeclaration: function () { return getSingleInitializerOfVariableStatementOrPropertyDeclaration; }, - getSingleVariableOfVariableStatement: function () { return getSingleVariableOfVariableStatement; }, - getSnapshotText: function () { return getSnapshotText; }, - getSnippetElement: function () { return getSnippetElement; }, - getSourceFileOfModule: function () { return getSourceFileOfModule; }, - getSourceFileOfNode: function () { return getSourceFileOfNode; }, - getSourceFilePathInNewDir: function () { return getSourceFilePathInNewDir; }, - getSourceFilePathInNewDirWorker: function () { return getSourceFilePathInNewDirWorker; }, - getSourceFileVersionAsHashFromText: function () { return getSourceFileVersionAsHashFromText; }, - getSourceFilesToEmit: function () { return getSourceFilesToEmit; }, - getSourceMapRange: function () { return getSourceMapRange; }, - getSourceMapper: function () { return getSourceMapper; }, - getSourceTextOfNodeFromSourceFile: function () { return getSourceTextOfNodeFromSourceFile; }, - getSpanOfTokenAtPosition: function () { return getSpanOfTokenAtPosition; }, - getSpellingSuggestion: function () { return getSpellingSuggestion; }, - getStartPositionOfLine: function () { return getStartPositionOfLine; }, - getStartPositionOfRange: function () { return getStartPositionOfRange; }, - getStartsOnNewLine: function () { return getStartsOnNewLine; }, - getStaticPropertiesAndClassStaticBlock: function () { return getStaticPropertiesAndClassStaticBlock; }, - getStrictOptionValue: function () { return getStrictOptionValue; }, - getStringComparer: function () { return getStringComparer; }, - getSuperCallFromStatement: function () { return getSuperCallFromStatement; }, - getSuperContainer: function () { return getSuperContainer; }, - getSupportedCodeFixes: function () { return getSupportedCodeFixes; }, - getSupportedExtensions: function () { return getSupportedExtensions; }, - getSupportedExtensionsWithJsonIfResolveJsonModule: function () { return getSupportedExtensionsWithJsonIfResolveJsonModule; }, - getSwitchedType: function () { return getSwitchedType; }, - getSymbolId: function () { return getSymbolId; }, - getSymbolNameForPrivateIdentifier: function () { return getSymbolNameForPrivateIdentifier; }, - getSymbolTarget: function () { return getSymbolTarget; }, - getSyntacticClassifications: function () { return getSyntacticClassifications; }, - getSyntacticModifierFlags: function () { return getSyntacticModifierFlags; }, - getSyntacticModifierFlagsNoCache: function () { return getSyntacticModifierFlagsNoCache; }, - getSynthesizedDeepClone: function () { return getSynthesizedDeepClone; }, - getSynthesizedDeepCloneWithReplacements: function () { return getSynthesizedDeepCloneWithReplacements; }, - getSynthesizedDeepClones: function () { return getSynthesizedDeepClones; }, - getSynthesizedDeepClonesWithReplacements: function () { return getSynthesizedDeepClonesWithReplacements; }, - getSyntheticLeadingComments: function () { return getSyntheticLeadingComments; }, - getSyntheticTrailingComments: function () { return getSyntheticTrailingComments; }, - getTargetLabel: function () { return getTargetLabel; }, - getTargetOfBindingOrAssignmentElement: function () { return getTargetOfBindingOrAssignmentElement; }, - getTemporaryModuleResolutionState: function () { return getTemporaryModuleResolutionState; }, - getTextOfConstantValue: function () { return getTextOfConstantValue; }, - getTextOfIdentifierOrLiteral: function () { return getTextOfIdentifierOrLiteral; }, - getTextOfJSDocComment: function () { return getTextOfJSDocComment; }, - getTextOfJsxAttributeName: function () { return getTextOfJsxAttributeName; }, - getTextOfJsxNamespacedName: function () { return getTextOfJsxNamespacedName; }, - getTextOfNode: function () { return getTextOfNode; }, - getTextOfNodeFromSourceText: function () { return getTextOfNodeFromSourceText; }, - getTextOfPropertyName: function () { return getTextOfPropertyName; }, - getThisContainer: function () { return getThisContainer; }, - getThisParameter: function () { return getThisParameter; }, - getTokenAtPosition: function () { return getTokenAtPosition; }, - getTokenPosOfNode: function () { return getTokenPosOfNode; }, - getTokenSourceMapRange: function () { return getTokenSourceMapRange; }, - getTouchingPropertyName: function () { return getTouchingPropertyName; }, - getTouchingToken: function () { return getTouchingToken; }, - getTrailingCommentRanges: function () { return getTrailingCommentRanges; }, - getTrailingSemicolonDeferringWriter: function () { return getTrailingSemicolonDeferringWriter; }, - getTransformFlagsSubtreeExclusions: function () { return getTransformFlagsSubtreeExclusions; }, - getTransformers: function () { return getTransformers; }, - getTsBuildInfoEmitOutputFilePath: function () { return getTsBuildInfoEmitOutputFilePath; }, - getTsConfigObjectLiteralExpression: function () { return getTsConfigObjectLiteralExpression; }, - getTsConfigPropArrayElementValue: function () { return getTsConfigPropArrayElementValue; }, - getTypeAnnotationNode: function () { return getTypeAnnotationNode; }, - getTypeArgumentOrTypeParameterList: function () { return getTypeArgumentOrTypeParameterList; }, - getTypeKeywordOfTypeOnlyImport: function () { return getTypeKeywordOfTypeOnlyImport; }, - getTypeNode: function () { return getTypeNode; }, - getTypeNodeIfAccessible: function () { return getTypeNodeIfAccessible; }, - getTypeParameterFromJsDoc: function () { return getTypeParameterFromJsDoc; }, - getTypeParameterOwner: function () { return getTypeParameterOwner; }, - getTypesPackageName: function () { return getTypesPackageName; }, - getUILocale: function () { return getUILocale; }, - getUniqueName: function () { return getUniqueName; }, - getUniqueSymbolId: function () { return getUniqueSymbolId; }, - getUseDefineForClassFields: function () { return getUseDefineForClassFields; }, - getWatchErrorSummaryDiagnosticMessage: function () { return getWatchErrorSummaryDiagnosticMessage; }, - getWatchFactory: function () { return getWatchFactory; }, - group: function () { return group; }, - groupBy: function () { return groupBy; }, - guessIndentation: function () { return guessIndentation; }, - handleNoEmitOptions: function () { return handleNoEmitOptions; }, - hasAbstractModifier: function () { return hasAbstractModifier; }, - hasAccessorModifier: function () { return hasAccessorModifier; }, - hasAmbientModifier: function () { return hasAmbientModifier; }, - hasChangesInResolutions: function () { return hasChangesInResolutions; }, - hasChildOfKind: function () { return hasChildOfKind; }, - hasContextSensitiveParameters: function () { return hasContextSensitiveParameters; }, - hasDecorators: function () { return hasDecorators; }, - hasDocComment: function () { return hasDocComment; }, - hasDynamicName: function () { return hasDynamicName; }, - hasEffectiveModifier: function () { return hasEffectiveModifier; }, - hasEffectiveModifiers: function () { return hasEffectiveModifiers; }, - hasEffectiveReadonlyModifier: function () { return hasEffectiveReadonlyModifier; }, - hasExtension: function () { return hasExtension; }, - hasIndexSignature: function () { return hasIndexSignature; }, - hasInitializer: function () { return hasInitializer; }, - hasInvalidEscape: function () { return hasInvalidEscape; }, - hasJSDocNodes: function () { return hasJSDocNodes; }, - hasJSDocParameterTags: function () { return hasJSDocParameterTags; }, - hasJSFileExtension: function () { return hasJSFileExtension; }, - hasJsonModuleEmitEnabled: function () { return hasJsonModuleEmitEnabled; }, - hasOnlyExpressionInitializer: function () { return hasOnlyExpressionInitializer; }, - hasOverrideModifier: function () { return hasOverrideModifier; }, - hasPossibleExternalModuleReference: function () { return hasPossibleExternalModuleReference; }, - hasProperty: function () { return hasProperty; }, - hasPropertyAccessExpressionWithName: function () { return hasPropertyAccessExpressionWithName; }, - hasQuestionToken: function () { return hasQuestionToken; }, - hasRecordedExternalHelpers: function () { return hasRecordedExternalHelpers; }, - hasRestParameter: function () { return hasRestParameter; }, - hasScopeMarker: function () { return hasScopeMarker; }, - hasStaticModifier: function () { return hasStaticModifier; }, - hasSyntacticModifier: function () { return hasSyntacticModifier; }, - hasSyntacticModifiers: function () { return hasSyntacticModifiers; }, - hasTSFileExtension: function () { return hasTSFileExtension; }, - hasTabstop: function () { return hasTabstop; }, - hasTrailingDirectorySeparator: function () { return hasTrailingDirectorySeparator; }, - hasType: function () { return hasType; }, - hasTypeArguments: function () { return hasTypeArguments; }, - hasZeroOrOneAsteriskCharacter: function () { return hasZeroOrOneAsteriskCharacter; }, - helperString: function () { return helperString; }, - hostGetCanonicalFileName: function () { return hostGetCanonicalFileName; }, - hostUsesCaseSensitiveFileNames: function () { return hostUsesCaseSensitiveFileNames; }, - idText: function () { return idText; }, - identifierIsThisKeyword: function () { return identifierIsThisKeyword; }, - identifierToKeywordKind: function () { return identifierToKeywordKind; }, - identity: function () { return identity; }, - identitySourceMapConsumer: function () { return identitySourceMapConsumer; }, - ignoreSourceNewlines: function () { return ignoreSourceNewlines; }, - ignoredPaths: function () { return ignoredPaths; }, - importDefaultHelper: function () { return importDefaultHelper; }, - importFromModuleSpecifier: function () { return importFromModuleSpecifier; }, - importNameElisionDisabled: function () { return importNameElisionDisabled; }, - importStarHelper: function () { return importStarHelper; }, - indexOfAnyCharCode: function () { return indexOfAnyCharCode; }, - indexOfNode: function () { return indexOfNode; }, - indicesOf: function () { return indicesOf; }, - inferredTypesContainingFile: function () { return inferredTypesContainingFile; }, - injectClassNamedEvaluationHelperBlockIfMissing: function () { return injectClassNamedEvaluationHelperBlockIfMissing; }, - injectClassThisAssignmentIfMissing: function () { return injectClassThisAssignmentIfMissing; }, - insertImports: function () { return insertImports; }, - insertLeadingStatement: function () { return insertLeadingStatement; }, - insertSorted: function () { return insertSorted; }, - insertStatementAfterCustomPrologue: function () { return insertStatementAfterCustomPrologue; }, - insertStatementAfterStandardPrologue: function () { return insertStatementAfterStandardPrologue; }, - insertStatementsAfterCustomPrologue: function () { return insertStatementsAfterCustomPrologue; }, - insertStatementsAfterStandardPrologue: function () { return insertStatementsAfterStandardPrologue; }, - intersperse: function () { return intersperse; }, - intrinsicTagNameToString: function () { return intrinsicTagNameToString; }, - introducesArgumentsExoticObject: function () { return introducesArgumentsExoticObject; }, - inverseJsxOptionMap: function () { return inverseJsxOptionMap; }, - isAbstractConstructorSymbol: function () { return isAbstractConstructorSymbol; }, - isAbstractModifier: function () { return isAbstractModifier; }, - isAccessExpression: function () { return isAccessExpression; }, - isAccessibilityModifier: function () { return isAccessibilityModifier; }, - isAccessor: function () { return isAccessor; }, - isAccessorModifier: function () { return isAccessorModifier; }, - isAliasSymbolDeclaration: function () { return isAliasSymbolDeclaration; }, - isAliasableExpression: function () { return isAliasableExpression; }, - isAmbientModule: function () { return isAmbientModule; }, - isAmbientPropertyDeclaration: function () { return isAmbientPropertyDeclaration; }, - isAnonymousFunctionDefinition: function () { return isAnonymousFunctionDefinition; }, - isAnyDirectorySeparator: function () { return isAnyDirectorySeparator; }, - isAnyImportOrBareOrAccessedRequire: function () { return isAnyImportOrBareOrAccessedRequire; }, - isAnyImportOrReExport: function () { return isAnyImportOrReExport; }, - isAnyImportSyntax: function () { return isAnyImportSyntax; }, - isAnySupportedFileExtension: function () { return isAnySupportedFileExtension; }, - isApplicableVersionedTypesKey: function () { return isApplicableVersionedTypesKey; }, - isArgumentExpressionOfElementAccess: function () { return isArgumentExpressionOfElementAccess; }, - isArray: function () { return isArray; }, - isArrayBindingElement: function () { return isArrayBindingElement; }, - isArrayBindingOrAssignmentElement: function () { return isArrayBindingOrAssignmentElement; }, - isArrayBindingOrAssignmentPattern: function () { return isArrayBindingOrAssignmentPattern; }, - isArrayBindingPattern: function () { return isArrayBindingPattern; }, - isArrayLiteralExpression: function () { return isArrayLiteralExpression; }, - isArrayLiteralOrObjectLiteralDestructuringPattern: function () { return isArrayLiteralOrObjectLiteralDestructuringPattern; }, - isArrayTypeNode: function () { return isArrayTypeNode; }, - isArrowFunction: function () { return isArrowFunction; }, - isAsExpression: function () { return isAsExpression; }, - isAssertClause: function () { return isAssertClause; }, - isAssertEntry: function () { return isAssertEntry; }, - isAssertionExpression: function () { return isAssertionExpression; }, - isAssertionKey: function () { return isAssertionKey; }, - isAssertsKeyword: function () { return isAssertsKeyword; }, - isAssignmentDeclaration: function () { return isAssignmentDeclaration; }, - isAssignmentExpression: function () { return isAssignmentExpression; }, - isAssignmentOperator: function () { return isAssignmentOperator; }, - isAssignmentPattern: function () { return isAssignmentPattern; }, - isAssignmentTarget: function () { return isAssignmentTarget; }, - isAsteriskToken: function () { return isAsteriskToken; }, - isAsyncFunction: function () { return isAsyncFunction; }, - isAsyncModifier: function () { return isAsyncModifier; }, - isAutoAccessorPropertyDeclaration: function () { return isAutoAccessorPropertyDeclaration; }, - isAwaitExpression: function () { return isAwaitExpression; }, - isAwaitKeyword: function () { return isAwaitKeyword; }, - isBigIntLiteral: function () { return isBigIntLiteral; }, - isBinaryExpression: function () { return isBinaryExpression; }, - isBinaryOperatorToken: function () { return isBinaryOperatorToken; }, - isBindableObjectDefinePropertyCall: function () { return isBindableObjectDefinePropertyCall; }, - isBindableStaticAccessExpression: function () { return isBindableStaticAccessExpression; }, - isBindableStaticElementAccessExpression: function () { return isBindableStaticElementAccessExpression; }, - isBindableStaticNameExpression: function () { return isBindableStaticNameExpression; }, - isBindingElement: function () { return isBindingElement; }, - isBindingElementOfBareOrAccessedRequire: function () { return isBindingElementOfBareOrAccessedRequire; }, - isBindingName: function () { return isBindingName; }, - isBindingOrAssignmentElement: function () { return isBindingOrAssignmentElement; }, - isBindingOrAssignmentPattern: function () { return isBindingOrAssignmentPattern; }, - isBindingPattern: function () { return isBindingPattern; }, - isBlock: function () { return isBlock; }, - isBlockOrCatchScoped: function () { return isBlockOrCatchScoped; }, - isBlockScope: function () { return isBlockScope; }, - isBlockScopedContainerTopLevel: function () { return isBlockScopedContainerTopLevel; }, - isBooleanLiteral: function () { return isBooleanLiteral; }, - isBreakOrContinueStatement: function () { return isBreakOrContinueStatement; }, - isBreakStatement: function () { return isBreakStatement; }, - isBuildInfoFile: function () { return isBuildInfoFile; }, - isBuilderProgram: function () { return isBuilderProgram2; }, - isBundle: function () { return isBundle; }, - isBundleFileTextLike: function () { return isBundleFileTextLike; }, - isCallChain: function () { return isCallChain; }, - isCallExpression: function () { return isCallExpression; }, - isCallExpressionTarget: function () { return isCallExpressionTarget; }, - isCallLikeExpression: function () { return isCallLikeExpression; }, - isCallOrNewExpression: function () { return isCallOrNewExpression; }, - isCallOrNewExpressionTarget: function () { return isCallOrNewExpressionTarget; }, - isCallSignatureDeclaration: function () { return isCallSignatureDeclaration; }, - isCallToHelper: function () { return isCallToHelper; }, - isCaseBlock: function () { return isCaseBlock; }, - isCaseClause: function () { return isCaseClause; }, - isCaseKeyword: function () { return isCaseKeyword; }, - isCaseOrDefaultClause: function () { return isCaseOrDefaultClause; }, - isCatchClause: function () { return isCatchClause; }, - isCatchClauseVariableDeclaration: function () { return isCatchClauseVariableDeclaration; }, - isCatchClauseVariableDeclarationOrBindingElement: function () { return isCatchClauseVariableDeclarationOrBindingElement; }, - isCheckJsEnabledForFile: function () { return isCheckJsEnabledForFile; }, - isChildOfNodeWithKind: function () { return isChildOfNodeWithKind; }, - isCircularBuildOrder: function () { return isCircularBuildOrder; }, - isClassDeclaration: function () { return isClassDeclaration; }, - isClassElement: function () { return isClassElement; }, - isClassExpression: function () { return isClassExpression; }, - isClassLike: function () { return isClassLike; }, - isClassMemberModifier: function () { return isClassMemberModifier; }, - isClassNamedEvaluationHelperBlock: function () { return isClassNamedEvaluationHelperBlock; }, - isClassOrTypeElement: function () { return isClassOrTypeElement; }, - isClassStaticBlockDeclaration: function () { return isClassStaticBlockDeclaration; }, - isClassThisAssignmentBlock: function () { return isClassThisAssignmentBlock; }, - isCollapsedRange: function () { return isCollapsedRange; }, - isColonToken: function () { return isColonToken; }, - isCommaExpression: function () { return isCommaExpression; }, - isCommaListExpression: function () { return isCommaListExpression; }, - isCommaSequence: function () { return isCommaSequence; }, - isCommaToken: function () { return isCommaToken; }, - isComment: function () { return isComment; }, - isCommonJsExportPropertyAssignment: function () { return isCommonJsExportPropertyAssignment; }, - isCommonJsExportedExpression: function () { return isCommonJsExportedExpression; }, - isCompoundAssignment: function () { return isCompoundAssignment; }, - isComputedNonLiteralName: function () { return isComputedNonLiteralName; }, - isComputedPropertyName: function () { return isComputedPropertyName; }, - isConciseBody: function () { return isConciseBody; }, - isConditionalExpression: function () { return isConditionalExpression; }, - isConditionalTypeNode: function () { return isConditionalTypeNode; }, - isConstTypeReference: function () { return isConstTypeReference; }, - isConstructSignatureDeclaration: function () { return isConstructSignatureDeclaration; }, - isConstructorDeclaration: function () { return isConstructorDeclaration; }, - isConstructorTypeNode: function () { return isConstructorTypeNode; }, - isContextualKeyword: function () { return isContextualKeyword; }, - isContinueStatement: function () { return isContinueStatement; }, - isCustomPrologue: function () { return isCustomPrologue; }, - isDebuggerStatement: function () { return isDebuggerStatement; }, - isDeclaration: function () { return isDeclaration; }, - isDeclarationBindingElement: function () { return isDeclarationBindingElement; }, - isDeclarationFileName: function () { return isDeclarationFileName; }, - isDeclarationName: function () { return isDeclarationName; }, - isDeclarationNameOfEnumOrNamespace: function () { return isDeclarationNameOfEnumOrNamespace; }, - isDeclarationReadonly: function () { return isDeclarationReadonly; }, - isDeclarationStatement: function () { return isDeclarationStatement; }, - isDeclarationWithTypeParameterChildren: function () { return isDeclarationWithTypeParameterChildren; }, - isDeclarationWithTypeParameters: function () { return isDeclarationWithTypeParameters; }, - isDecorator: function () { return isDecorator; }, - isDecoratorTarget: function () { return isDecoratorTarget; }, - isDefaultClause: function () { return isDefaultClause; }, - isDefaultImport: function () { return isDefaultImport; }, - isDefaultModifier: function () { return isDefaultModifier; }, - isDefaultedExpandoInitializer: function () { return isDefaultedExpandoInitializer; }, - isDeleteExpression: function () { return isDeleteExpression; }, - isDeleteTarget: function () { return isDeleteTarget; }, - isDeprecatedDeclaration: function () { return isDeprecatedDeclaration; }, - isDestructuringAssignment: function () { return isDestructuringAssignment; }, - isDiagnosticWithLocation: function () { return isDiagnosticWithLocation; }, - isDiskPathRoot: function () { return isDiskPathRoot; }, - isDoStatement: function () { return isDoStatement; }, - isDocumentRegistryEntry: function () { return isDocumentRegistryEntry; }, - isDotDotDotToken: function () { return isDotDotDotToken; }, - isDottedName: function () { return isDottedName; }, - isDynamicName: function () { return isDynamicName; }, - isESSymbolIdentifier: function () { return isESSymbolIdentifier; }, - isEffectiveExternalModule: function () { return isEffectiveExternalModule; }, - isEffectiveModuleDeclaration: function () { return isEffectiveModuleDeclaration; }, - isEffectiveStrictModeSourceFile: function () { return isEffectiveStrictModeSourceFile; }, - isElementAccessChain: function () { return isElementAccessChain; }, - isElementAccessExpression: function () { return isElementAccessExpression; }, - isEmittedFileOfProgram: function () { return isEmittedFileOfProgram; }, - isEmptyArrayLiteral: function () { return isEmptyArrayLiteral; }, - isEmptyBindingElement: function () { return isEmptyBindingElement; }, - isEmptyBindingPattern: function () { return isEmptyBindingPattern; }, - isEmptyObjectLiteral: function () { return isEmptyObjectLiteral; }, - isEmptyStatement: function () { return isEmptyStatement; }, - isEmptyStringLiteral: function () { return isEmptyStringLiteral; }, - isEntityName: function () { return isEntityName; }, - isEntityNameExpression: function () { return isEntityNameExpression; }, - isEnumConst: function () { return isEnumConst; }, - isEnumDeclaration: function () { return isEnumDeclaration; }, - isEnumMember: function () { return isEnumMember; }, - isEqualityOperatorKind: function () { return isEqualityOperatorKind; }, - isEqualsGreaterThanToken: function () { return isEqualsGreaterThanToken; }, - isExclamationToken: function () { return isExclamationToken; }, - isExcludedFile: function () { return isExcludedFile; }, - isExclusivelyTypeOnlyImportOrExport: function () { return isExclusivelyTypeOnlyImportOrExport; }, - isExportAssignment: function () { return isExportAssignment; }, - isExportDeclaration: function () { return isExportDeclaration; }, - isExportModifier: function () { return isExportModifier; }, - isExportName: function () { return isExportName; }, - isExportNamespaceAsDefaultDeclaration: function () { return isExportNamespaceAsDefaultDeclaration; }, - isExportOrDefaultModifier: function () { return isExportOrDefaultModifier; }, - isExportSpecifier: function () { return isExportSpecifier; }, - isExportsIdentifier: function () { return isExportsIdentifier; }, - isExportsOrModuleExportsOrAlias: function () { return isExportsOrModuleExportsOrAlias; }, - isExpression: function () { return isExpression; }, - isExpressionNode: function () { return isExpressionNode; }, - isExpressionOfExternalModuleImportEqualsDeclaration: function () { return isExpressionOfExternalModuleImportEqualsDeclaration; }, - isExpressionOfOptionalChainRoot: function () { return isExpressionOfOptionalChainRoot; }, - isExpressionStatement: function () { return isExpressionStatement; }, - isExpressionWithTypeArguments: function () { return isExpressionWithTypeArguments; }, - isExpressionWithTypeArgumentsInClassExtendsClause: function () { return isExpressionWithTypeArgumentsInClassExtendsClause; }, - isExternalModule: function () { return isExternalModule; }, - isExternalModuleAugmentation: function () { return isExternalModuleAugmentation; }, - isExternalModuleImportEqualsDeclaration: function () { return isExternalModuleImportEqualsDeclaration; }, - isExternalModuleIndicator: function () { return isExternalModuleIndicator; }, - isExternalModuleNameRelative: function () { return isExternalModuleNameRelative; }, - isExternalModuleReference: function () { return isExternalModuleReference; }, - isExternalModuleSymbol: function () { return isExternalModuleSymbol; }, - isExternalOrCommonJsModule: function () { return isExternalOrCommonJsModule; }, - isFileLevelReservedGeneratedIdentifier: function () { return isFileLevelReservedGeneratedIdentifier; }, - isFileLevelUniqueName: function () { return isFileLevelUniqueName; }, - isFileProbablyExternalModule: function () { return isFileProbablyExternalModule; }, - isFirstDeclarationOfSymbolParameter: function () { return isFirstDeclarationOfSymbolParameter; }, - isFixablePromiseHandler: function () { return isFixablePromiseHandler; }, - isForInOrOfStatement: function () { return isForInOrOfStatement; }, - isForInStatement: function () { return isForInStatement; }, - isForInitializer: function () { return isForInitializer; }, - isForOfStatement: function () { return isForOfStatement; }, - isForStatement: function () { return isForStatement; }, - isFunctionBlock: function () { return isFunctionBlock; }, - isFunctionBody: function () { return isFunctionBody; }, - isFunctionDeclaration: function () { return isFunctionDeclaration; }, - isFunctionExpression: function () { return isFunctionExpression; }, - isFunctionExpressionOrArrowFunction: function () { return isFunctionExpressionOrArrowFunction; }, - isFunctionLike: function () { return isFunctionLike; }, - isFunctionLikeDeclaration: function () { return isFunctionLikeDeclaration; }, - isFunctionLikeKind: function () { return isFunctionLikeKind; }, - isFunctionLikeOrClassStaticBlockDeclaration: function () { return isFunctionLikeOrClassStaticBlockDeclaration; }, - isFunctionOrConstructorTypeNode: function () { return isFunctionOrConstructorTypeNode; }, - isFunctionOrModuleBlock: function () { return isFunctionOrModuleBlock; }, - isFunctionSymbol: function () { return isFunctionSymbol; }, - isFunctionTypeNode: function () { return isFunctionTypeNode; }, - isFutureReservedKeyword: function () { return isFutureReservedKeyword; }, - isGeneratedIdentifier: function () { return isGeneratedIdentifier; }, - isGeneratedPrivateIdentifier: function () { return isGeneratedPrivateIdentifier; }, - isGetAccessor: function () { return isGetAccessor; }, - isGetAccessorDeclaration: function () { return isGetAccessorDeclaration; }, - isGetOrSetAccessorDeclaration: function () { return isGetOrSetAccessorDeclaration; }, - isGlobalDeclaration: function () { return isGlobalDeclaration; }, - isGlobalScopeAugmentation: function () { return isGlobalScopeAugmentation; }, - isGrammarError: function () { return isGrammarError; }, - isHeritageClause: function () { return isHeritageClause; }, - isHoistedFunction: function () { return isHoistedFunction; }, - isHoistedVariableStatement: function () { return isHoistedVariableStatement; }, - isIdentifier: function () { return isIdentifier; }, - isIdentifierANonContextualKeyword: function () { return isIdentifierANonContextualKeyword; }, - isIdentifierName: function () { return isIdentifierName; }, - isIdentifierOrThisTypeNode: function () { return isIdentifierOrThisTypeNode; }, - isIdentifierPart: function () { return isIdentifierPart; }, - isIdentifierStart: function () { return isIdentifierStart; }, - isIdentifierText: function () { return isIdentifierText; }, - isIdentifierTypePredicate: function () { return isIdentifierTypePredicate; }, - isIdentifierTypeReference: function () { return isIdentifierTypeReference; }, - isIfStatement: function () { return isIfStatement; }, - isIgnoredFileFromWildCardWatching: function () { return isIgnoredFileFromWildCardWatching; }, - isImplicitGlob: function () { return isImplicitGlob; }, - isImportCall: function () { return isImportCall; }, - isImportClause: function () { return isImportClause; }, - isImportDeclaration: function () { return isImportDeclaration; }, - isImportEqualsDeclaration: function () { return isImportEqualsDeclaration; }, - isImportKeyword: function () { return isImportKeyword; }, - isImportMeta: function () { return isImportMeta; }, - isImportOrExportSpecifier: function () { return isImportOrExportSpecifier; }, - isImportOrExportSpecifierName: function () { return isImportOrExportSpecifierName; }, - isImportSpecifier: function () { return isImportSpecifier; }, - isImportTypeAssertionContainer: function () { return isImportTypeAssertionContainer; }, - isImportTypeNode: function () { return isImportTypeNode; }, - isImportableFile: function () { return isImportableFile; }, - isInComment: function () { return isInComment; }, - isInExpressionContext: function () { return isInExpressionContext; }, - isInJSDoc: function () { return isInJSDoc; }, - isInJSFile: function () { return isInJSFile; }, - isInJSXText: function () { return isInJSXText; }, - isInJsonFile: function () { return isInJsonFile; }, - isInNonReferenceComment: function () { return isInNonReferenceComment; }, - isInReferenceComment: function () { return isInReferenceComment; }, - isInRightSideOfInternalImportEqualsDeclaration: function () { return isInRightSideOfInternalImportEqualsDeclaration; }, - isInString: function () { return isInString; }, - isInTemplateString: function () { return isInTemplateString; }, - isInTopLevelContext: function () { return isInTopLevelContext; }, - isInTypeQuery: function () { return isInTypeQuery; }, - isIncrementalCompilation: function () { return isIncrementalCompilation; }, - isIndexSignatureDeclaration: function () { return isIndexSignatureDeclaration; }, - isIndexedAccessTypeNode: function () { return isIndexedAccessTypeNode; }, - isInferTypeNode: function () { return isInferTypeNode; }, - isInfinityOrNaNString: function () { return isInfinityOrNaNString; }, - isInitializedProperty: function () { return isInitializedProperty; }, - isInitializedVariable: function () { return isInitializedVariable; }, - isInsideJsxElement: function () { return isInsideJsxElement; }, - isInsideJsxElementOrAttribute: function () { return isInsideJsxElementOrAttribute; }, - isInsideNodeModules: function () { return isInsideNodeModules; }, - isInsideTemplateLiteral: function () { return isInsideTemplateLiteral; }, - isInstantiatedModule: function () { return isInstantiatedModule; }, - isInterfaceDeclaration: function () { return isInterfaceDeclaration; }, - isInternalDeclaration: function () { return isInternalDeclaration; }, - isInternalModuleImportEqualsDeclaration: function () { return isInternalModuleImportEqualsDeclaration; }, - isInternalName: function () { return isInternalName; }, - isIntersectionTypeNode: function () { return isIntersectionTypeNode; }, - isIntrinsicJsxName: function () { return isIntrinsicJsxName; }, - isIterationStatement: function () { return isIterationStatement; }, - isJSDoc: function () { return isJSDoc; }, - isJSDocAllType: function () { return isJSDocAllType; }, - isJSDocAugmentsTag: function () { return isJSDocAugmentsTag; }, - isJSDocAuthorTag: function () { return isJSDocAuthorTag; }, - isJSDocCallbackTag: function () { return isJSDocCallbackTag; }, - isJSDocClassTag: function () { return isJSDocClassTag; }, - isJSDocCommentContainingNode: function () { return isJSDocCommentContainingNode; }, - isJSDocConstructSignature: function () { return isJSDocConstructSignature; }, - isJSDocDeprecatedTag: function () { return isJSDocDeprecatedTag; }, - isJSDocEnumTag: function () { return isJSDocEnumTag; }, - isJSDocFunctionType: function () { return isJSDocFunctionType; }, - isJSDocImplementsTag: function () { return isJSDocImplementsTag; }, - isJSDocIndexSignature: function () { return isJSDocIndexSignature; }, - isJSDocLikeText: function () { return isJSDocLikeText; }, - isJSDocLink: function () { return isJSDocLink; }, - isJSDocLinkCode: function () { return isJSDocLinkCode; }, - isJSDocLinkLike: function () { return isJSDocLinkLike; }, - isJSDocLinkPlain: function () { return isJSDocLinkPlain; }, - isJSDocMemberName: function () { return isJSDocMemberName; }, - isJSDocNameReference: function () { return isJSDocNameReference; }, - isJSDocNamepathType: function () { return isJSDocNamepathType; }, - isJSDocNamespaceBody: function () { return isJSDocNamespaceBody; }, - isJSDocNode: function () { return isJSDocNode; }, - isJSDocNonNullableType: function () { return isJSDocNonNullableType; }, - isJSDocNullableType: function () { return isJSDocNullableType; }, - isJSDocOptionalParameter: function () { return isJSDocOptionalParameter; }, - isJSDocOptionalType: function () { return isJSDocOptionalType; }, - isJSDocOverloadTag: function () { return isJSDocOverloadTag; }, - isJSDocOverrideTag: function () { return isJSDocOverrideTag; }, - isJSDocParameterTag: function () { return isJSDocParameterTag; }, - isJSDocPrivateTag: function () { return isJSDocPrivateTag; }, - isJSDocPropertyLikeTag: function () { return isJSDocPropertyLikeTag; }, - isJSDocPropertyTag: function () { return isJSDocPropertyTag; }, - isJSDocProtectedTag: function () { return isJSDocProtectedTag; }, - isJSDocPublicTag: function () { return isJSDocPublicTag; }, - isJSDocReadonlyTag: function () { return isJSDocReadonlyTag; }, - isJSDocReturnTag: function () { return isJSDocReturnTag; }, - isJSDocSatisfiesExpression: function () { return isJSDocSatisfiesExpression; }, - isJSDocSatisfiesTag: function () { return isJSDocSatisfiesTag; }, - isJSDocSeeTag: function () { return isJSDocSeeTag; }, - isJSDocSignature: function () { return isJSDocSignature; }, - isJSDocTag: function () { return isJSDocTag; }, - isJSDocTemplateTag: function () { return isJSDocTemplateTag; }, - isJSDocThisTag: function () { return isJSDocThisTag; }, - isJSDocThrowsTag: function () { return isJSDocThrowsTag; }, - isJSDocTypeAlias: function () { return isJSDocTypeAlias; }, - isJSDocTypeAssertion: function () { return isJSDocTypeAssertion; }, - isJSDocTypeExpression: function () { return isJSDocTypeExpression; }, - isJSDocTypeLiteral: function () { return isJSDocTypeLiteral; }, - isJSDocTypeTag: function () { return isJSDocTypeTag; }, - isJSDocTypedefTag: function () { return isJSDocTypedefTag; }, - isJSDocUnknownTag: function () { return isJSDocUnknownTag; }, - isJSDocUnknownType: function () { return isJSDocUnknownType; }, - isJSDocVariadicType: function () { return isJSDocVariadicType; }, - isJSXTagName: function () { return isJSXTagName; }, - isJsonEqual: function () { return isJsonEqual; }, - isJsonSourceFile: function () { return isJsonSourceFile; }, - isJsxAttribute: function () { return isJsxAttribute; }, - isJsxAttributeLike: function () { return isJsxAttributeLike; }, - isJsxAttributeName: function () { return isJsxAttributeName; }, - isJsxAttributes: function () { return isJsxAttributes; }, - isJsxChild: function () { return isJsxChild; }, - isJsxClosingElement: function () { return isJsxClosingElement; }, - isJsxClosingFragment: function () { return isJsxClosingFragment; }, - isJsxElement: function () { return isJsxElement; }, - isJsxExpression: function () { return isJsxExpression; }, - isJsxFragment: function () { return isJsxFragment; }, - isJsxNamespacedName: function () { return isJsxNamespacedName; }, - isJsxOpeningElement: function () { return isJsxOpeningElement; }, - isJsxOpeningFragment: function () { return isJsxOpeningFragment; }, - isJsxOpeningLikeElement: function () { return isJsxOpeningLikeElement; }, - isJsxOpeningLikeElementTagName: function () { return isJsxOpeningLikeElementTagName; }, - isJsxSelfClosingElement: function () { return isJsxSelfClosingElement; }, - isJsxSpreadAttribute: function () { return isJsxSpreadAttribute; }, - isJsxTagNameExpression: function () { return isJsxTagNameExpression; }, - isJsxText: function () { return isJsxText; }, - isJumpStatementTarget: function () { return isJumpStatementTarget; }, - isKeyword: function () { return isKeyword; }, - isKeywordOrPunctuation: function () { return isKeywordOrPunctuation; }, - isKnownSymbol: function () { return isKnownSymbol; }, - isLabelName: function () { return isLabelName; }, - isLabelOfLabeledStatement: function () { return isLabelOfLabeledStatement; }, - isLabeledStatement: function () { return isLabeledStatement; }, - isLateVisibilityPaintedStatement: function () { return isLateVisibilityPaintedStatement; }, - isLeftHandSideExpression: function () { return isLeftHandSideExpression; }, - isLeftHandSideOfAssignment: function () { return isLeftHandSideOfAssignment; }, - isLet: function () { return isLet; }, - isLineBreak: function () { return isLineBreak; }, - isLiteralComputedPropertyDeclarationName: function () { return isLiteralComputedPropertyDeclarationName; }, - isLiteralExpression: function () { return isLiteralExpression; }, - isLiteralExpressionOfObject: function () { return isLiteralExpressionOfObject; }, - isLiteralImportTypeNode: function () { return isLiteralImportTypeNode; }, - isLiteralKind: function () { return isLiteralKind; }, - isLiteralLikeAccess: function () { return isLiteralLikeAccess; }, - isLiteralLikeElementAccess: function () { return isLiteralLikeElementAccess; }, - isLiteralNameOfPropertyDeclarationOrIndexAccess: function () { return isLiteralNameOfPropertyDeclarationOrIndexAccess; }, - isLiteralTypeLikeExpression: function () { return isLiteralTypeLikeExpression; }, - isLiteralTypeLiteral: function () { return isLiteralTypeLiteral; }, - isLiteralTypeNode: function () { return isLiteralTypeNode; }, - isLocalName: function () { return isLocalName; }, - isLogicalOperator: function () { return isLogicalOperator; }, - isLogicalOrCoalescingAssignmentExpression: function () { return isLogicalOrCoalescingAssignmentExpression; }, - isLogicalOrCoalescingAssignmentOperator: function () { return isLogicalOrCoalescingAssignmentOperator; }, - isLogicalOrCoalescingBinaryExpression: function () { return isLogicalOrCoalescingBinaryExpression; }, - isLogicalOrCoalescingBinaryOperator: function () { return isLogicalOrCoalescingBinaryOperator; }, - isMappedTypeNode: function () { return isMappedTypeNode; }, - isMemberName: function () { return isMemberName; }, - isMetaProperty: function () { return isMetaProperty; }, - isMethodDeclaration: function () { return isMethodDeclaration; }, - isMethodOrAccessor: function () { return isMethodOrAccessor; }, - isMethodSignature: function () { return isMethodSignature; }, - isMinusToken: function () { return isMinusToken; }, - isMissingDeclaration: function () { return isMissingDeclaration; }, - isModifier: function () { return isModifier; }, - isModifierKind: function () { return isModifierKind; }, - isModifierLike: function () { return isModifierLike; }, - isModuleAugmentationExternal: function () { return isModuleAugmentationExternal; }, - isModuleBlock: function () { return isModuleBlock; }, - isModuleBody: function () { return isModuleBody; }, - isModuleDeclaration: function () { return isModuleDeclaration; }, - isModuleExportsAccessExpression: function () { return isModuleExportsAccessExpression; }, - isModuleIdentifier: function () { return isModuleIdentifier; }, - isModuleName: function () { return isModuleName; }, - isModuleOrEnumDeclaration: function () { return isModuleOrEnumDeclaration; }, - isModuleReference: function () { return isModuleReference; }, - isModuleSpecifierLike: function () { return isModuleSpecifierLike; }, - isModuleWithStringLiteralName: function () { return isModuleWithStringLiteralName; }, - isNameOfFunctionDeclaration: function () { return isNameOfFunctionDeclaration; }, - isNameOfModuleDeclaration: function () { return isNameOfModuleDeclaration; }, - isNamedClassElement: function () { return isNamedClassElement; }, - isNamedDeclaration: function () { return isNamedDeclaration; }, - isNamedEvaluation: function () { return isNamedEvaluation; }, - isNamedEvaluationSource: function () { return isNamedEvaluationSource; }, - isNamedExportBindings: function () { return isNamedExportBindings; }, - isNamedExports: function () { return isNamedExports; }, - isNamedImportBindings: function () { return isNamedImportBindings; }, - isNamedImports: function () { return isNamedImports; }, - isNamedImportsOrExports: function () { return isNamedImportsOrExports; }, - isNamedTupleMember: function () { return isNamedTupleMember; }, - isNamespaceBody: function () { return isNamespaceBody; }, - isNamespaceExport: function () { return isNamespaceExport; }, - isNamespaceExportDeclaration: function () { return isNamespaceExportDeclaration; }, - isNamespaceImport: function () { return isNamespaceImport; }, - isNamespaceReexportDeclaration: function () { return isNamespaceReexportDeclaration; }, - isNewExpression: function () { return isNewExpression; }, - isNewExpressionTarget: function () { return isNewExpressionTarget; }, - isNightly: function () { return isNightly; }, - isNoSubstitutionTemplateLiteral: function () { return isNoSubstitutionTemplateLiteral; }, - isNode: function () { return isNode; }, - isNodeArray: function () { return isNodeArray; }, - isNodeArrayMultiLine: function () { return isNodeArrayMultiLine; }, - isNodeDescendantOf: function () { return isNodeDescendantOf; }, - isNodeKind: function () { return isNodeKind; }, - isNodeLikeSystem: function () { return isNodeLikeSystem; }, - isNodeModulesDirectory: function () { return isNodeModulesDirectory; }, - isNodeWithPossibleHoistedDeclaration: function () { return isNodeWithPossibleHoistedDeclaration; }, - isNonContextualKeyword: function () { return isNonContextualKeyword; }, - isNonExportDefaultModifier: function () { return isNonExportDefaultModifier; }, - isNonGlobalAmbientModule: function () { return isNonGlobalAmbientModule; }, - isNonGlobalDeclaration: function () { return isNonGlobalDeclaration; }, - isNonNullAccess: function () { return isNonNullAccess; }, - isNonNullChain: function () { return isNonNullChain; }, - isNonNullExpression: function () { return isNonNullExpression; }, - isNonStaticMethodOrAccessorWithPrivateName: function () { return isNonStaticMethodOrAccessorWithPrivateName; }, - isNotEmittedOrPartiallyEmittedNode: function () { return isNotEmittedOrPartiallyEmittedNode; }, - isNotEmittedStatement: function () { return isNotEmittedStatement; }, - isNullishCoalesce: function () { return isNullishCoalesce; }, - isNumber: function () { return isNumber; }, - isNumericLiteral: function () { return isNumericLiteral; }, - isNumericLiteralName: function () { return isNumericLiteralName; }, - isObjectBindingElementWithoutPropertyName: function () { return isObjectBindingElementWithoutPropertyName; }, - isObjectBindingOrAssignmentElement: function () { return isObjectBindingOrAssignmentElement; }, - isObjectBindingOrAssignmentPattern: function () { return isObjectBindingOrAssignmentPattern; }, - isObjectBindingPattern: function () { return isObjectBindingPattern; }, - isObjectLiteralElement: function () { return isObjectLiteralElement; }, - isObjectLiteralElementLike: function () { return isObjectLiteralElementLike; }, - isObjectLiteralExpression: function () { return isObjectLiteralExpression; }, - isObjectLiteralMethod: function () { return isObjectLiteralMethod; }, - isObjectLiteralOrClassExpressionMethodOrAccessor: function () { return isObjectLiteralOrClassExpressionMethodOrAccessor; }, - isObjectTypeDeclaration: function () { return isObjectTypeDeclaration; }, - isOctalDigit: function () { return isOctalDigit; }, - isOmittedExpression: function () { return isOmittedExpression; }, - isOptionalChain: function () { return isOptionalChain; }, - isOptionalChainRoot: function () { return isOptionalChainRoot; }, - isOptionalDeclaration: function () { return isOptionalDeclaration; }, - isOptionalJSDocPropertyLikeTag: function () { return isOptionalJSDocPropertyLikeTag; }, - isOptionalTypeNode: function () { return isOptionalTypeNode; }, - isOuterExpression: function () { return isOuterExpression; }, - isOutermostOptionalChain: function () { return isOutermostOptionalChain; }, - isOverrideModifier: function () { return isOverrideModifier; }, - isPackedArrayLiteral: function () { return isPackedArrayLiteral; }, - isParameter: function () { return isParameter; }, - isParameterDeclaration: function () { return isParameterDeclaration; }, - isParameterOrCatchClauseVariable: function () { return isParameterOrCatchClauseVariable; }, - isParameterPropertyDeclaration: function () { return isParameterPropertyDeclaration; }, - isParameterPropertyModifier: function () { return isParameterPropertyModifier; }, - isParenthesizedExpression: function () { return isParenthesizedExpression; }, - isParenthesizedTypeNode: function () { return isParenthesizedTypeNode; }, - isParseTreeNode: function () { return isParseTreeNode; }, - isPartOfTypeNode: function () { return isPartOfTypeNode; }, - isPartOfTypeQuery: function () { return isPartOfTypeQuery; }, - isPartiallyEmittedExpression: function () { return isPartiallyEmittedExpression; }, - isPatternMatch: function () { return isPatternMatch; }, - isPinnedComment: function () { return isPinnedComment; }, - isPlainJsFile: function () { return isPlainJsFile; }, - isPlusToken: function () { return isPlusToken; }, - isPossiblyTypeArgumentPosition: function () { return isPossiblyTypeArgumentPosition; }, - isPostfixUnaryExpression: function () { return isPostfixUnaryExpression; }, - isPrefixUnaryExpression: function () { return isPrefixUnaryExpression; }, - isPrivateIdentifier: function () { return isPrivateIdentifier; }, - isPrivateIdentifierClassElementDeclaration: function () { return isPrivateIdentifierClassElementDeclaration; }, - isPrivateIdentifierPropertyAccessExpression: function () { return isPrivateIdentifierPropertyAccessExpression; }, - isPrivateIdentifierSymbol: function () { return isPrivateIdentifierSymbol; }, - isProgramBundleEmitBuildInfo: function () { return isProgramBundleEmitBuildInfo; }, - isProgramUptoDate: function () { return isProgramUptoDate; }, - isPrologueDirective: function () { return isPrologueDirective; }, - isPropertyAccessChain: function () { return isPropertyAccessChain; }, - isPropertyAccessEntityNameExpression: function () { return isPropertyAccessEntityNameExpression; }, - isPropertyAccessExpression: function () { return isPropertyAccessExpression; }, - isPropertyAccessOrQualifiedName: function () { return isPropertyAccessOrQualifiedName; }, - isPropertyAccessOrQualifiedNameOrImportTypeNode: function () { return isPropertyAccessOrQualifiedNameOrImportTypeNode; }, - isPropertyAssignment: function () { return isPropertyAssignment; }, - isPropertyDeclaration: function () { return isPropertyDeclaration; }, - isPropertyName: function () { return isPropertyName; }, - isPropertyNameLiteral: function () { return isPropertyNameLiteral; }, - isPropertySignature: function () { return isPropertySignature; }, - isProtoSetter: function () { return isProtoSetter; }, - isPrototypeAccess: function () { return isPrototypeAccess; }, - isPrototypePropertyAssignment: function () { return isPrototypePropertyAssignment; }, - isPunctuation: function () { return isPunctuation; }, - isPushOrUnshiftIdentifier: function () { return isPushOrUnshiftIdentifier; }, - isQualifiedName: function () { return isQualifiedName; }, - isQuestionDotToken: function () { return isQuestionDotToken; }, - isQuestionOrExclamationToken: function () { return isQuestionOrExclamationToken; }, - isQuestionOrPlusOrMinusToken: function () { return isQuestionOrPlusOrMinusToken; }, - isQuestionToken: function () { return isQuestionToken; }, - isRawSourceMap: function () { return isRawSourceMap; }, - isReadonlyKeyword: function () { return isReadonlyKeyword; }, - isReadonlyKeywordOrPlusOrMinusToken: function () { return isReadonlyKeywordOrPlusOrMinusToken; }, - isRecognizedTripleSlashComment: function () { return isRecognizedTripleSlashComment; }, - isReferenceFileLocation: function () { return isReferenceFileLocation; }, - isReferencedFile: function () { return isReferencedFile; }, - isRegularExpressionLiteral: function () { return isRegularExpressionLiteral; }, - isRequireCall: function () { return isRequireCall; }, - isRequireVariableStatement: function () { return isRequireVariableStatement; }, - isRestParameter: function () { return isRestParameter; }, - isRestTypeNode: function () { return isRestTypeNode; }, - isReturnStatement: function () { return isReturnStatement; }, - isReturnStatementWithFixablePromiseHandler: function () { return isReturnStatementWithFixablePromiseHandler; }, - isRightSideOfAccessExpression: function () { return isRightSideOfAccessExpression; }, - isRightSideOfPropertyAccess: function () { return isRightSideOfPropertyAccess; }, - isRightSideOfQualifiedName: function () { return isRightSideOfQualifiedName; }, - isRightSideOfQualifiedNameOrPropertyAccess: function () { return isRightSideOfQualifiedNameOrPropertyAccess; }, - isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName: function () { return isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName; }, - isRootedDiskPath: function () { return isRootedDiskPath; }, - isSameEntityName: function () { return isSameEntityName; }, - isSatisfiesExpression: function () { return isSatisfiesExpression; }, - isScopeMarker: function () { return isScopeMarker; }, - isSemicolonClassElement: function () { return isSemicolonClassElement; }, - isSetAccessor: function () { return isSetAccessor; }, - isSetAccessorDeclaration: function () { return isSetAccessorDeclaration; }, - isShebangTrivia: function () { return isShebangTrivia; }, - isShorthandAmbientModuleSymbol: function () { return isShorthandAmbientModuleSymbol; }, - isShorthandPropertyAssignment: function () { return isShorthandPropertyAssignment; }, - isSignedNumericLiteral: function () { return isSignedNumericLiteral; }, - isSimpleCopiableExpression: function () { return isSimpleCopiableExpression; }, - isSimpleInlineableExpression: function () { return isSimpleInlineableExpression; }, - isSingleOrDoubleQuote: function () { return isSingleOrDoubleQuote; }, - isSourceFile: function () { return isSourceFile; }, - isSourceFileFromLibrary: function () { return isSourceFileFromLibrary; }, - isSourceFileJS: function () { return isSourceFileJS; }, - isSourceFileNotJS: function () { return isSourceFileNotJS; }, - isSourceFileNotJson: function () { return isSourceFileNotJson; }, - isSourceMapping: function () { return isSourceMapping; }, - isSpecialPropertyDeclaration: function () { return isSpecialPropertyDeclaration; }, - isSpreadAssignment: function () { return isSpreadAssignment; }, - isSpreadElement: function () { return isSpreadElement; }, - isStatement: function () { return isStatement; }, - isStatementButNotDeclaration: function () { return isStatementButNotDeclaration; }, - isStatementOrBlock: function () { return isStatementOrBlock; }, - isStatementWithLocals: function () { return isStatementWithLocals; }, - isStatic: function () { return isStatic; }, - isStaticModifier: function () { return isStaticModifier; }, - isString: function () { return isString; }, - isStringAKeyword: function () { return isStringAKeyword; }, - isStringANonContextualKeyword: function () { return isStringANonContextualKeyword; }, - isStringAndEmptyAnonymousObjectIntersection: function () { return isStringAndEmptyAnonymousObjectIntersection; }, - isStringDoubleQuoted: function () { return isStringDoubleQuoted; }, - isStringLiteral: function () { return isStringLiteral; }, - isStringLiteralLike: function () { return isStringLiteralLike; }, - isStringLiteralOrJsxExpression: function () { return isStringLiteralOrJsxExpression; }, - isStringLiteralOrTemplate: function () { return isStringLiteralOrTemplate; }, - isStringOrNumericLiteralLike: function () { return isStringOrNumericLiteralLike; }, - isStringOrRegularExpressionOrTemplateLiteral: function () { return isStringOrRegularExpressionOrTemplateLiteral; }, - isStringTextContainingNode: function () { return isStringTextContainingNode; }, - isSuperCall: function () { return isSuperCall; }, - isSuperKeyword: function () { return isSuperKeyword; }, - isSuperOrSuperProperty: function () { return isSuperOrSuperProperty; }, - isSuperProperty: function () { return isSuperProperty; }, - isSupportedSourceFileName: function () { return isSupportedSourceFileName; }, - isSwitchStatement: function () { return isSwitchStatement; }, - isSyntaxList: function () { return isSyntaxList; }, - isSyntheticExpression: function () { return isSyntheticExpression; }, - isSyntheticReference: function () { return isSyntheticReference; }, - isTagName: function () { return isTagName; }, - isTaggedTemplateExpression: function () { return isTaggedTemplateExpression; }, - isTaggedTemplateTag: function () { return isTaggedTemplateTag; }, - isTemplateExpression: function () { return isTemplateExpression; }, - isTemplateHead: function () { return isTemplateHead; }, - isTemplateLiteral: function () { return isTemplateLiteral; }, - isTemplateLiteralKind: function () { return isTemplateLiteralKind; }, - isTemplateLiteralToken: function () { return isTemplateLiteralToken; }, - isTemplateLiteralTypeNode: function () { return isTemplateLiteralTypeNode; }, - isTemplateLiteralTypeSpan: function () { return isTemplateLiteralTypeSpan; }, - isTemplateMiddle: function () { return isTemplateMiddle; }, - isTemplateMiddleOrTemplateTail: function () { return isTemplateMiddleOrTemplateTail; }, - isTemplateSpan: function () { return isTemplateSpan; }, - isTemplateTail: function () { return isTemplateTail; }, - isTextWhiteSpaceLike: function () { return isTextWhiteSpaceLike; }, - isThis: function () { return isThis; }, - isThisContainerOrFunctionBlock: function () { return isThisContainerOrFunctionBlock; }, - isThisIdentifier: function () { return isThisIdentifier; }, - isThisInTypeQuery: function () { return isThisInTypeQuery; }, - isThisInitializedDeclaration: function () { return isThisInitializedDeclaration; }, - isThisInitializedObjectBindingExpression: function () { return isThisInitializedObjectBindingExpression; }, - isThisProperty: function () { return isThisProperty; }, - isThisTypeNode: function () { return isThisTypeNode; }, - isThisTypeParameter: function () { return isThisTypeParameter; }, - isThisTypePredicate: function () { return isThisTypePredicate; }, - isThrowStatement: function () { return isThrowStatement; }, - isToken: function () { return isToken; }, - isTokenKind: function () { return isTokenKind; }, - isTraceEnabled: function () { return isTraceEnabled; }, - isTransientSymbol: function () { return isTransientSymbol; }, - isTrivia: function () { return isTrivia; }, - isTryStatement: function () { return isTryStatement; }, - isTupleTypeNode: function () { return isTupleTypeNode; }, - isTypeAlias: function () { return isTypeAlias; }, - isTypeAliasDeclaration: function () { return isTypeAliasDeclaration; }, - isTypeAssertionExpression: function () { return isTypeAssertionExpression; }, - isTypeDeclaration: function () { return isTypeDeclaration; }, - isTypeElement: function () { return isTypeElement; }, - isTypeKeyword: function () { return isTypeKeyword; }, - isTypeKeywordToken: function () { return isTypeKeywordToken; }, - isTypeKeywordTokenOrIdentifier: function () { return isTypeKeywordTokenOrIdentifier; }, - isTypeLiteralNode: function () { return isTypeLiteralNode; }, - isTypeNode: function () { return isTypeNode; }, - isTypeNodeKind: function () { return isTypeNodeKind; }, - isTypeOfExpression: function () { return isTypeOfExpression; }, - isTypeOnlyExportDeclaration: function () { return isTypeOnlyExportDeclaration; }, - isTypeOnlyImportDeclaration: function () { return isTypeOnlyImportDeclaration; }, - isTypeOnlyImportOrExportDeclaration: function () { return isTypeOnlyImportOrExportDeclaration; }, - isTypeOperatorNode: function () { return isTypeOperatorNode; }, - isTypeParameterDeclaration: function () { return isTypeParameterDeclaration; }, - isTypePredicateNode: function () { return isTypePredicateNode; }, - isTypeQueryNode: function () { return isTypeQueryNode; }, - isTypeReferenceNode: function () { return isTypeReferenceNode; }, - isTypeReferenceType: function () { return isTypeReferenceType; }, - isTypeUsableAsPropertyName: function () { return isTypeUsableAsPropertyName; }, - isUMDExportSymbol: function () { return isUMDExportSymbol; }, - isUnaryExpression: function () { return isUnaryExpression; }, - isUnaryExpressionWithWrite: function () { return isUnaryExpressionWithWrite; }, - isUnicodeIdentifierStart: function () { return isUnicodeIdentifierStart; }, - isUnionTypeNode: function () { return isUnionTypeNode; }, - isUnparsedNode: function () { return isUnparsedNode; }, - isUnparsedPrepend: function () { return isUnparsedPrepend; }, - isUnparsedSource: function () { return isUnparsedSource; }, - isUnparsedTextLike: function () { return isUnparsedTextLike; }, - isUrl: function () { return isUrl; }, - isValidBigIntString: function () { return isValidBigIntString; }, - isValidESSymbolDeclaration: function () { return isValidESSymbolDeclaration; }, - isValidTypeOnlyAliasUseSite: function () { return isValidTypeOnlyAliasUseSite; }, - isValueSignatureDeclaration: function () { return isValueSignatureDeclaration; }, - isVarAwaitUsing: function () { return isVarAwaitUsing; }, - isVarConst: function () { return isVarConst; }, - isVarUsing: function () { return isVarUsing; }, - isVariableDeclaration: function () { return isVariableDeclaration; }, - isVariableDeclarationInVariableStatement: function () { return isVariableDeclarationInVariableStatement; }, - isVariableDeclarationInitializedToBareOrAccessedRequire: function () { return isVariableDeclarationInitializedToBareOrAccessedRequire; }, - isVariableDeclarationInitializedToRequire: function () { return isVariableDeclarationInitializedToRequire; }, - isVariableDeclarationList: function () { return isVariableDeclarationList; }, - isVariableLike: function () { return isVariableLike; }, - isVariableLikeOrAccessor: function () { return isVariableLikeOrAccessor; }, - isVariableStatement: function () { return isVariableStatement; }, - isVoidExpression: function () { return isVoidExpression; }, - isWatchSet: function () { return isWatchSet; }, - isWhileStatement: function () { return isWhileStatement; }, - isWhiteSpaceLike: function () { return isWhiteSpaceLike; }, - isWhiteSpaceSingleLine: function () { return isWhiteSpaceSingleLine; }, - isWithStatement: function () { return isWithStatement; }, - isWriteAccess: function () { return isWriteAccess; }, - isWriteOnlyAccess: function () { return isWriteOnlyAccess; }, - isYieldExpression: function () { return isYieldExpression; }, - jsxModeNeedsExplicitImport: function () { return jsxModeNeedsExplicitImport; }, - keywordPart: function () { return keywordPart; }, - last: function () { return last; }, - lastOrUndefined: function () { return lastOrUndefined; }, - length: function () { return length; }, - libMap: function () { return libMap; }, - libs: function () { return libs; }, - lineBreakPart: function () { return lineBreakPart; }, - linkNamePart: function () { return linkNamePart; }, - linkPart: function () { return linkPart; }, - linkTextPart: function () { return linkTextPart; }, - listFiles: function () { return listFiles; }, - loadModuleFromGlobalCache: function () { return loadModuleFromGlobalCache; }, - loadWithModeAwareCache: function () { return loadWithModeAwareCache; }, - makeIdentifierFromModuleName: function () { return makeIdentifierFromModuleName; }, - makeImport: function () { return makeImport; }, - makeImportIfNecessary: function () { return makeImportIfNecessary; }, - makeStringLiteral: function () { return makeStringLiteral; }, - mangleScopedPackageName: function () { return mangleScopedPackageName; }, - map: function () { return map; }, - mapAllOrFail: function () { return mapAllOrFail; }, - mapDefined: function () { return mapDefined; }, - mapDefinedEntries: function () { return mapDefinedEntries; }, - mapDefinedIterator: function () { return mapDefinedIterator; }, - mapEntries: function () { return mapEntries; }, - mapIterator: function () { return mapIterator; }, - mapOneOrMany: function () { return mapOneOrMany; }, - mapToDisplayParts: function () { return mapToDisplayParts; }, - matchFiles: function () { return matchFiles; }, - matchPatternOrExact: function () { return matchPatternOrExact; }, - matchedText: function () { return matchedText; }, - matchesExclude: function () { return matchesExclude; }, - maybeBind: function () { return maybeBind; }, - maybeSetLocalizedDiagnosticMessages: function () { return maybeSetLocalizedDiagnosticMessages; }, - memoize: function () { return memoize; }, - memoizeCached: function () { return memoizeCached; }, - memoizeOne: function () { return memoizeOne; }, - memoizeWeak: function () { return memoizeWeak; }, - metadataHelper: function () { return metadataHelper; }, - min: function () { return min; }, - minAndMax: function () { return minAndMax; }, - missingFileModifiedTime: function () { return missingFileModifiedTime; }, - modifierToFlag: function () { return modifierToFlag; }, - modifiersToFlags: function () { return modifiersToFlags; }, - moduleOptionDeclaration: function () { return moduleOptionDeclaration; }, - moduleResolutionIsEqualTo: function () { return moduleResolutionIsEqualTo; }, - moduleResolutionNameAndModeGetter: function () { return moduleResolutionNameAndModeGetter; }, - moduleResolutionOptionDeclarations: function () { return moduleResolutionOptionDeclarations; }, - moduleResolutionSupportsPackageJsonExportsAndImports: function () { return moduleResolutionSupportsPackageJsonExportsAndImports; }, - moduleResolutionUsesNodeModules: function () { return moduleResolutionUsesNodeModules; }, - moduleSpecifiers: function () { return ts_moduleSpecifiers_exports; }, - moveEmitHelpers: function () { return moveEmitHelpers; }, - moveRangeEnd: function () { return moveRangeEnd; }, - moveRangePastDecorators: function () { return moveRangePastDecorators; }, - moveRangePastModifiers: function () { return moveRangePastModifiers; }, - moveRangePos: function () { return moveRangePos; }, - moveSyntheticComments: function () { return moveSyntheticComments; }, - mutateMap: function () { return mutateMap; }, - mutateMapSkippingNewValues: function () { return mutateMapSkippingNewValues; }, - needsParentheses: function () { return needsParentheses; }, - needsScopeMarker: function () { return needsScopeMarker; }, - newCaseClauseTracker: function () { return newCaseClauseTracker; }, - newPrivateEnvironment: function () { return newPrivateEnvironment; }, - noEmitNotification: function () { return noEmitNotification; }, - noEmitSubstitution: function () { return noEmitSubstitution; }, - noTransformers: function () { return noTransformers; }, - noTruncationMaximumTruncationLength: function () { return noTruncationMaximumTruncationLength; }, - nodeCanBeDecorated: function () { return nodeCanBeDecorated; }, - nodeHasName: function () { return nodeHasName; }, - nodeIsDecorated: function () { return nodeIsDecorated; }, - nodeIsMissing: function () { return nodeIsMissing; }, - nodeIsPresent: function () { return nodeIsPresent; }, - nodeIsSynthesized: function () { return nodeIsSynthesized; }, - nodeModuleNameResolver: function () { return nodeModuleNameResolver; }, - nodeModulesPathPart: function () { return nodeModulesPathPart; }, - nodeNextJsonConfigResolver: function () { return nodeNextJsonConfigResolver; }, - nodeOrChildIsDecorated: function () { return nodeOrChildIsDecorated; }, - nodeOverlapsWithStartEnd: function () { return nodeOverlapsWithStartEnd; }, - nodePosToString: function () { return nodePosToString; }, - nodeSeenTracker: function () { return nodeSeenTracker; }, - nodeStartsNewLexicalEnvironment: function () { return nodeStartsNewLexicalEnvironment; }, - nodeToDisplayParts: function () { return nodeToDisplayParts; }, - noop: function () { return noop; }, - noopFileWatcher: function () { return noopFileWatcher; }, - normalizePath: function () { return normalizePath; }, - normalizeSlashes: function () { return normalizeSlashes; }, - not: function () { return not; }, - notImplemented: function () { return notImplemented; }, - notImplementedResolver: function () { return notImplementedResolver; }, - nullNodeConverters: function () { return nullNodeConverters; }, - nullParenthesizerRules: function () { return nullParenthesizerRules; }, - nullTransformationContext: function () { return nullTransformationContext; }, - objectAllocator: function () { return objectAllocator; }, - operatorPart: function () { return operatorPart; }, - optionDeclarations: function () { return optionDeclarations; }, - optionMapToObject: function () { return optionMapToObject; }, - optionsAffectingProgramStructure: function () { return optionsAffectingProgramStructure; }, - optionsForBuild: function () { return optionsForBuild; }, - optionsForWatch: function () { return optionsForWatch; }, - optionsHaveChanges: function () { return optionsHaveChanges; }, - optionsHaveModuleResolutionChanges: function () { return optionsHaveModuleResolutionChanges; }, - or: function () { return or; }, - orderedRemoveItem: function () { return orderedRemoveItem; }, - orderedRemoveItemAt: function () { return orderedRemoveItemAt; }, - outFile: function () { return outFile; }, - packageIdToPackageName: function () { return packageIdToPackageName; }, - packageIdToString: function () { return packageIdToString; }, - padLeft: function () { return padLeft; }, - padRight: function () { return padRight; }, - paramHelper: function () { return paramHelper; }, - parameterIsThisKeyword: function () { return parameterIsThisKeyword; }, - parameterNamePart: function () { return parameterNamePart; }, - parseBaseNodeFactory: function () { return parseBaseNodeFactory; }, - parseBigInt: function () { return parseBigInt; }, - parseBuildCommand: function () { return parseBuildCommand; }, - parseCommandLine: function () { return parseCommandLine; }, - parseCommandLineWorker: function () { return parseCommandLineWorker; }, - parseConfigFileTextToJson: function () { return parseConfigFileTextToJson; }, - parseConfigFileWithSystem: function () { return parseConfigFileWithSystem; }, - parseConfigHostFromCompilerHostLike: function () { return parseConfigHostFromCompilerHostLike; }, - parseCustomTypeOption: function () { return parseCustomTypeOption; }, - parseIsolatedEntityName: function () { return parseIsolatedEntityName; }, - parseIsolatedJSDocComment: function () { return parseIsolatedJSDocComment; }, - parseJSDocTypeExpressionForTests: function () { return parseJSDocTypeExpressionForTests; }, - parseJsonConfigFileContent: function () { return parseJsonConfigFileContent; }, - parseJsonSourceFileConfigFileContent: function () { return parseJsonSourceFileConfigFileContent; }, - parseJsonText: function () { return parseJsonText; }, - parseListTypeOption: function () { return parseListTypeOption; }, - parseNodeFactory: function () { return parseNodeFactory; }, - parseNodeModuleFromPath: function () { return parseNodeModuleFromPath; }, - parsePackageName: function () { return parsePackageName; }, - parsePseudoBigInt: function () { return parsePseudoBigInt; }, - parseValidBigInt: function () { return parseValidBigInt; }, - patchWriteFileEnsuringDirectory: function () { return patchWriteFileEnsuringDirectory; }, - pathContainsNodeModules: function () { return pathContainsNodeModules; }, - pathIsAbsolute: function () { return pathIsAbsolute; }, - pathIsBareSpecifier: function () { return pathIsBareSpecifier; }, - pathIsRelative: function () { return pathIsRelative; }, - patternText: function () { return patternText; }, - perfLogger: function () { return perfLogger; }, - performIncrementalCompilation: function () { return performIncrementalCompilation; }, - performance: function () { return ts_performance_exports; }, - plainJSErrors: function () { return plainJSErrors; }, - positionBelongsToNode: function () { return positionBelongsToNode; }, - positionIsASICandidate: function () { return positionIsASICandidate; }, - positionIsSynthesized: function () { return positionIsSynthesized; }, - positionsAreOnSameLine: function () { return positionsAreOnSameLine; }, - preProcessFile: function () { return preProcessFile; }, - probablyUsesSemicolons: function () { return probablyUsesSemicolons; }, - processCommentPragmas: function () { return processCommentPragmas; }, - processPragmasIntoFields: function () { return processPragmasIntoFields; }, - processTaggedTemplateExpression: function () { return processTaggedTemplateExpression; }, - programContainsEsModules: function () { return programContainsEsModules; }, - programContainsModules: function () { return programContainsModules; }, - projectReferenceIsEqualTo: function () { return projectReferenceIsEqualTo; }, - propKeyHelper: function () { return propKeyHelper; }, - propertyNamePart: function () { return propertyNamePart; }, - pseudoBigIntToString: function () { return pseudoBigIntToString; }, - punctuationPart: function () { return punctuationPart; }, - pushIfUnique: function () { return pushIfUnique; }, - quote: function () { return quote; }, - quotePreferenceFromString: function () { return quotePreferenceFromString; }, - rangeContainsPosition: function () { return rangeContainsPosition; }, - rangeContainsPositionExclusive: function () { return rangeContainsPositionExclusive; }, - rangeContainsRange: function () { return rangeContainsRange; }, - rangeContainsRangeExclusive: function () { return rangeContainsRangeExclusive; }, - rangeContainsStartEnd: function () { return rangeContainsStartEnd; }, - rangeEndIsOnSameLineAsRangeStart: function () { return rangeEndIsOnSameLineAsRangeStart; }, - rangeEndPositionsAreOnSameLine: function () { return rangeEndPositionsAreOnSameLine; }, - rangeEquals: function () { return rangeEquals; }, - rangeIsOnSingleLine: function () { return rangeIsOnSingleLine; }, - rangeOfNode: function () { return rangeOfNode; }, - rangeOfTypeParameters: function () { return rangeOfTypeParameters; }, - rangeOverlapsWithStartEnd: function () { return rangeOverlapsWithStartEnd; }, - rangeStartIsOnSameLineAsRangeEnd: function () { return rangeStartIsOnSameLineAsRangeEnd; }, - rangeStartPositionsAreOnSameLine: function () { return rangeStartPositionsAreOnSameLine; }, - readBuilderProgram: function () { return readBuilderProgram; }, - readConfigFile: function () { return readConfigFile; }, - readHelper: function () { return readHelper; }, - readJson: function () { return readJson; }, - readJsonConfigFile: function () { return readJsonConfigFile; }, - readJsonOrUndefined: function () { return readJsonOrUndefined; }, - realizeDiagnostics: function () { return realizeDiagnostics; }, - reduceEachLeadingCommentRange: function () { return reduceEachLeadingCommentRange; }, - reduceEachTrailingCommentRange: function () { return reduceEachTrailingCommentRange; }, - reduceLeft: function () { return reduceLeft; }, - reduceLeftIterator: function () { return reduceLeftIterator; }, - reducePathComponents: function () { return reducePathComponents; }, - refactor: function () { return ts_refactor_exports; }, - regExpEscape: function () { return regExpEscape; }, - relativeComplement: function () { return relativeComplement; }, - removeAllComments: function () { return removeAllComments; }, - removeEmitHelper: function () { return removeEmitHelper; }, - removeExtension: function () { return removeExtension; }, - removeFileExtension: function () { return removeFileExtension; }, - removeIgnoredPath: function () { return removeIgnoredPath; }, - removeMinAndVersionNumbers: function () { return removeMinAndVersionNumbers; }, - removeOptionality: function () { return removeOptionality; }, - removePrefix: function () { return removePrefix; }, - removeSuffix: function () { return removeSuffix; }, - removeTrailingDirectorySeparator: function () { return removeTrailingDirectorySeparator; }, - repeatString: function () { return repeatString; }, - replaceElement: function () { return replaceElement; }, - resolutionExtensionIsTSOrJson: function () { return resolutionExtensionIsTSOrJson; }, - resolveConfigFileProjectName: function () { return resolveConfigFileProjectName; }, - resolveJSModule: function () { return resolveJSModule; }, - resolveLibrary: function () { return resolveLibrary; }, - resolveModuleName: function () { return resolveModuleName; }, - resolveModuleNameFromCache: function () { return resolveModuleNameFromCache; }, - resolvePackageNameToPackageJson: function () { return resolvePackageNameToPackageJson; }, - resolvePath: function () { return resolvePath; }, - resolveProjectReferencePath: function () { return resolveProjectReferencePath; }, - resolveTripleslashReference: function () { return resolveTripleslashReference; }, - resolveTypeReferenceDirective: function () { return resolveTypeReferenceDirective; }, - resolvingEmptyArray: function () { return resolvingEmptyArray; }, - restHelper: function () { return restHelper; }, - returnFalse: function () { return returnFalse; }, - returnNoopFileWatcher: function () { return returnNoopFileWatcher; }, - returnTrue: function () { return returnTrue; }, - returnUndefined: function () { return returnUndefined; }, - returnsPromise: function () { return returnsPromise; }, - runInitializersHelper: function () { return runInitializersHelper; }, - sameFlatMap: function () { return sameFlatMap; }, - sameMap: function () { return sameMap; }, - sameMapping: function () { return sameMapping; }, - scanShebangTrivia: function () { return scanShebangTrivia; }, - scanTokenAtPosition: function () { return scanTokenAtPosition; }, - scanner: function () { return scanner; }, - screenStartingMessageCodes: function () { return screenStartingMessageCodes; }, - semanticDiagnosticsOptionDeclarations: function () { return semanticDiagnosticsOptionDeclarations; }, - serializeCompilerOptions: function () { return serializeCompilerOptions; }, - server: function () { return ts_server_exports4; }, - servicesVersion: function () { return servicesVersion; }, - setCommentRange: function () { return setCommentRange; }, - setConfigFileInOptions: function () { return setConfigFileInOptions; }, - setConstantValue: function () { return setConstantValue; }, - setEachParent: function () { return setEachParent; }, - setEmitFlags: function () { return setEmitFlags; }, - setFunctionNameHelper: function () { return setFunctionNameHelper; }, - setGetSourceFileAsHashVersioned: function () { return setGetSourceFileAsHashVersioned; }, - setIdentifierAutoGenerate: function () { return setIdentifierAutoGenerate; }, - setIdentifierGeneratedImportReference: function () { return setIdentifierGeneratedImportReference; }, - setIdentifierTypeArguments: function () { return setIdentifierTypeArguments; }, - setInternalEmitFlags: function () { return setInternalEmitFlags; }, - setLocalizedDiagnosticMessages: function () { return setLocalizedDiagnosticMessages; }, - setModuleDefaultHelper: function () { return setModuleDefaultHelper; }, - setNodeFlags: function () { return setNodeFlags; }, - setObjectAllocator: function () { return setObjectAllocator; }, - setOriginalNode: function () { return setOriginalNode; }, - setParent: function () { return setParent; }, - setParentRecursive: function () { return setParentRecursive; }, - setPrivateIdentifier: function () { return setPrivateIdentifier; }, - setResolvedModule: function () { return setResolvedModule; }, - setResolvedTypeReferenceDirective: function () { return setResolvedTypeReferenceDirective; }, - setSnippetElement: function () { return setSnippetElement; }, - setSourceMapRange: function () { return setSourceMapRange; }, - setStackTraceLimit: function () { return setStackTraceLimit; }, - setStartsOnNewLine: function () { return setStartsOnNewLine; }, - setSyntheticLeadingComments: function () { return setSyntheticLeadingComments; }, - setSyntheticTrailingComments: function () { return setSyntheticTrailingComments; }, - setSys: function () { return setSys; }, - setSysLog: function () { return setSysLog; }, - setTextRange: function () { return setTextRange; }, - setTextRangeEnd: function () { return setTextRangeEnd; }, - setTextRangePos: function () { return setTextRangePos; }, - setTextRangePosEnd: function () { return setTextRangePosEnd; }, - setTextRangePosWidth: function () { return setTextRangePosWidth; }, - setTokenSourceMapRange: function () { return setTokenSourceMapRange; }, - setTypeNode: function () { return setTypeNode; }, - setUILocale: function () { return setUILocale; }, - setValueDeclaration: function () { return setValueDeclaration; }, - shouldAllowImportingTsExtension: function () { return shouldAllowImportingTsExtension; }, - shouldPreserveConstEnums: function () { return shouldPreserveConstEnums; }, - shouldResolveJsRequire: function () { return shouldResolveJsRequire; }, - shouldUseUriStyleNodeCoreModules: function () { return shouldUseUriStyleNodeCoreModules; }, - showModuleSpecifier: function () { return showModuleSpecifier; }, - signatureHasLiteralTypes: function () { return signatureHasLiteralTypes; }, - signatureHasRestParameter: function () { return signatureHasRestParameter; }, - signatureToDisplayParts: function () { return signatureToDisplayParts; }, - single: function () { return single; }, - singleElementArray: function () { return singleElementArray; }, - singleIterator: function () { return singleIterator; }, - singleOrMany: function () { return singleOrMany; }, - singleOrUndefined: function () { return singleOrUndefined; }, - skipAlias: function () { return skipAlias; }, - skipAssertions: function () { return skipAssertions; }, - skipConstraint: function () { return skipConstraint; }, - skipOuterExpressions: function () { return skipOuterExpressions; }, - skipParentheses: function () { return skipParentheses; }, - skipPartiallyEmittedExpressions: function () { return skipPartiallyEmittedExpressions; }, - skipTrivia: function () { return skipTrivia; }, - skipTypeChecking: function () { return skipTypeChecking; }, - skipTypeParentheses: function () { return skipTypeParentheses; }, - skipWhile: function () { return skipWhile; }, - sliceAfter: function () { return sliceAfter; }, - some: function () { return some; }, - sort: function () { return sort; }, - sortAndDeduplicate: function () { return sortAndDeduplicate; }, - sortAndDeduplicateDiagnostics: function () { return sortAndDeduplicateDiagnostics; }, - sourceFileAffectingCompilerOptions: function () { return sourceFileAffectingCompilerOptions; }, - sourceFileMayBeEmitted: function () { return sourceFileMayBeEmitted; }, - sourceMapCommentRegExp: function () { return sourceMapCommentRegExp; }, - sourceMapCommentRegExpDontCareLineStart: function () { return sourceMapCommentRegExpDontCareLineStart; }, - spacePart: function () { return spacePart; }, - spanMap: function () { return spanMap; }, - spreadArrayHelper: function () { return spreadArrayHelper; }, - stableSort: function () { return stableSort; }, - startEndContainsRange: function () { return startEndContainsRange; }, - startEndOverlapsWithStartEnd: function () { return startEndOverlapsWithStartEnd; }, - startOnNewLine: function () { return startOnNewLine; }, - startTracing: function () { return startTracing; }, - startsWith: function () { return startsWith; }, - startsWithDirectory: function () { return startsWithDirectory; }, - startsWithUnderscore: function () { return startsWithUnderscore; }, - startsWithUseStrict: function () { return startsWithUseStrict; }, - stringContains: function () { return stringContains; }, - stringContainsAt: function () { return stringContainsAt; }, - stringToToken: function () { return stringToToken; }, - stripQuotes: function () { return stripQuotes; }, - supportedDeclarationExtensions: function () { return supportedDeclarationExtensions; }, - supportedJSExtensions: function () { return supportedJSExtensions; }, - supportedJSExtensionsFlat: function () { return supportedJSExtensionsFlat; }, - supportedLocaleDirectories: function () { return supportedLocaleDirectories; }, - supportedTSExtensions: function () { return supportedTSExtensions; }, - supportedTSExtensionsFlat: function () { return supportedTSExtensionsFlat; }, - supportedTSImplementationExtensions: function () { return supportedTSImplementationExtensions; }, - suppressLeadingAndTrailingTrivia: function () { return suppressLeadingAndTrailingTrivia; }, - suppressLeadingTrivia: function () { return suppressLeadingTrivia; }, - suppressTrailingTrivia: function () { return suppressTrailingTrivia; }, - symbolEscapedNameNoDefault: function () { return symbolEscapedNameNoDefault; }, - symbolName: function () { return symbolName; }, - symbolNameNoDefault: function () { return symbolNameNoDefault; }, - symbolPart: function () { return symbolPart; }, - symbolToDisplayParts: function () { return symbolToDisplayParts; }, - syntaxMayBeASICandidate: function () { return syntaxMayBeASICandidate; }, - syntaxRequiresTrailingSemicolonOrASI: function () { return syntaxRequiresTrailingSemicolonOrASI; }, - sys: function () { return sys; }, - sysLog: function () { return sysLog; }, - tagNamesAreEquivalent: function () { return tagNamesAreEquivalent; }, - takeWhile: function () { return takeWhile; }, - targetOptionDeclaration: function () { return targetOptionDeclaration; }, - templateObjectHelper: function () { return templateObjectHelper; }, - testFormatSettings: function () { return testFormatSettings; }, - textChangeRangeIsUnchanged: function () { return textChangeRangeIsUnchanged; }, - textChangeRangeNewSpan: function () { return textChangeRangeNewSpan; }, - textChanges: function () { return ts_textChanges_exports; }, - textOrKeywordPart: function () { return textOrKeywordPart; }, - textPart: function () { return textPart; }, - textRangeContainsPositionInclusive: function () { return textRangeContainsPositionInclusive; }, - textSpanContainsPosition: function () { return textSpanContainsPosition; }, - textSpanContainsTextSpan: function () { return textSpanContainsTextSpan; }, - textSpanEnd: function () { return textSpanEnd; }, - textSpanIntersection: function () { return textSpanIntersection; }, - textSpanIntersectsWith: function () { return textSpanIntersectsWith; }, - textSpanIntersectsWithPosition: function () { return textSpanIntersectsWithPosition; }, - textSpanIntersectsWithTextSpan: function () { return textSpanIntersectsWithTextSpan; }, - textSpanIsEmpty: function () { return textSpanIsEmpty; }, - textSpanOverlap: function () { return textSpanOverlap; }, - textSpanOverlapsWith: function () { return textSpanOverlapsWith; }, - textSpansEqual: function () { return textSpansEqual; }, - textToKeywordObj: function () { return textToKeywordObj; }, - timestamp: function () { return timestamp; }, - toArray: function () { return toArray; }, - toBuilderFileEmit: function () { return toBuilderFileEmit; }, - toBuilderStateFileInfoForMultiEmit: function () { return toBuilderStateFileInfoForMultiEmit; }, - toEditorSettings: function () { return toEditorSettings; }, - toFileNameLowerCase: function () { return toFileNameLowerCase; }, - toLowerCase: function () { return toLowerCase; }, - toPath: function () { return toPath; }, - toProgramEmitPending: function () { return toProgramEmitPending; }, - tokenIsIdentifierOrKeyword: function () { return tokenIsIdentifierOrKeyword; }, - tokenIsIdentifierOrKeywordOrGreaterThan: function () { return tokenIsIdentifierOrKeywordOrGreaterThan; }, - tokenToString: function () { return tokenToString; }, - trace: function () { return trace; }, - tracing: function () { return tracing; }, - tracingEnabled: function () { return tracingEnabled; }, - transform: function () { return transform; }, - transformClassFields: function () { return transformClassFields; }, - transformDeclarations: function () { return transformDeclarations; }, - transformECMAScriptModule: function () { return transformECMAScriptModule; }, - transformES2015: function () { return transformES2015; }, - transformES2016: function () { return transformES2016; }, - transformES2017: function () { return transformES2017; }, - transformES2018: function () { return transformES2018; }, - transformES2019: function () { return transformES2019; }, - transformES2020: function () { return transformES2020; }, - transformES2021: function () { return transformES2021; }, - transformES5: function () { return transformES5; }, - transformESDecorators: function () { return transformESDecorators; }, - transformESNext: function () { return transformESNext; }, - transformGenerators: function () { return transformGenerators; }, - transformJsx: function () { return transformJsx; }, - transformLegacyDecorators: function () { return transformLegacyDecorators; }, - transformModule: function () { return transformModule; }, - transformNamedEvaluation: function () { return transformNamedEvaluation; }, - transformNodeModule: function () { return transformNodeModule; }, - transformNodes: function () { return transformNodes; }, - transformSystemModule: function () { return transformSystemModule; }, - transformTypeScript: function () { return transformTypeScript; }, - transpile: function () { return transpile; }, - transpileModule: function () { return transpileModule; }, - transpileOptionValueCompilerOptions: function () { return transpileOptionValueCompilerOptions; }, - trimString: function () { return trimString; }, - trimStringEnd: function () { return trimStringEnd; }, - trimStringStart: function () { return trimStringStart; }, - tryAddToSet: function () { return tryAddToSet; }, - tryAndIgnoreErrors: function () { return tryAndIgnoreErrors; }, - tryCast: function () { return tryCast; }, - tryDirectoryExists: function () { return tryDirectoryExists; }, - tryExtractTSExtension: function () { return tryExtractTSExtension; }, - tryFileExists: function () { return tryFileExists; }, - tryGetClassExtendingExpressionWithTypeArguments: function () { return tryGetClassExtendingExpressionWithTypeArguments; }, - tryGetClassImplementingOrExtendingExpressionWithTypeArguments: function () { return tryGetClassImplementingOrExtendingExpressionWithTypeArguments; }, - tryGetDirectories: function () { return tryGetDirectories; }, - tryGetExtensionFromPath: function () { return tryGetExtensionFromPath2; }, - tryGetImportFromModuleSpecifier: function () { return tryGetImportFromModuleSpecifier; }, - tryGetJSDocSatisfiesTypeNode: function () { return tryGetJSDocSatisfiesTypeNode; }, - tryGetModuleNameFromFile: function () { return tryGetModuleNameFromFile; }, - tryGetModuleSpecifierFromDeclaration: function () { return tryGetModuleSpecifierFromDeclaration; }, - tryGetNativePerformanceHooks: function () { return tryGetNativePerformanceHooks; }, - tryGetPropertyAccessOrIdentifierToString: function () { return tryGetPropertyAccessOrIdentifierToString; }, - tryGetPropertyNameOfBindingOrAssignmentElement: function () { return tryGetPropertyNameOfBindingOrAssignmentElement; }, - tryGetSourceMappingURL: function () { return tryGetSourceMappingURL; }, - tryGetTextOfPropertyName: function () { return tryGetTextOfPropertyName; }, - tryIOAndConsumeErrors: function () { return tryIOAndConsumeErrors; }, - tryParsePattern: function () { return tryParsePattern; }, - tryParsePatterns: function () { return tryParsePatterns; }, - tryParseRawSourceMap: function () { return tryParseRawSourceMap; }, - tryReadDirectory: function () { return tryReadDirectory; }, - tryReadFile: function () { return tryReadFile; }, - tryRemoveDirectoryPrefix: function () { return tryRemoveDirectoryPrefix; }, - tryRemoveExtension: function () { return tryRemoveExtension; }, - tryRemovePrefix: function () { return tryRemovePrefix; }, - tryRemoveSuffix: function () { return tryRemoveSuffix; }, - typeAcquisitionDeclarations: function () { return typeAcquisitionDeclarations; }, - typeAliasNamePart: function () { return typeAliasNamePart; }, - typeDirectiveIsEqualTo: function () { return typeDirectiveIsEqualTo; }, - typeKeywords: function () { return typeKeywords; }, - typeParameterNamePart: function () { return typeParameterNamePart; }, - typeReferenceResolutionNameAndModeGetter: function () { return typeReferenceResolutionNameAndModeGetter; }, - typeToDisplayParts: function () { return typeToDisplayParts; }, - unchangedPollThresholds: function () { return unchangedPollThresholds; }, - unchangedTextChangeRange: function () { return unchangedTextChangeRange; }, - unescapeLeadingUnderscores: function () { return unescapeLeadingUnderscores; }, - unmangleScopedPackageName: function () { return unmangleScopedPackageName; }, - unorderedRemoveItem: function () { return unorderedRemoveItem; }, - unorderedRemoveItemAt: function () { return unorderedRemoveItemAt; }, - unreachableCodeIsError: function () { return unreachableCodeIsError; }, - unusedLabelIsError: function () { return unusedLabelIsError; }, - unwrapInnermostStatementOfLabel: function () { return unwrapInnermostStatementOfLabel; }, - updateErrorForNoInputFiles: function () { return updateErrorForNoInputFiles; }, - updateLanguageServiceSourceFile: function () { return updateLanguageServiceSourceFile; }, - updateMissingFilePathsWatch: function () { return updateMissingFilePathsWatch; }, - updatePackageJsonWatch: function () { return updatePackageJsonWatch; }, - updateResolutionField: function () { return updateResolutionField; }, - updateSharedExtendedConfigFileWatcher: function () { return updateSharedExtendedConfigFileWatcher; }, - updateSourceFile: function () { return updateSourceFile; }, - updateWatchingWildcardDirectories: function () { return updateWatchingWildcardDirectories; }, - usesExtensionsOnImports: function () { return usesExtensionsOnImports; }, - usingSingleLineStringWriter: function () { return usingSingleLineStringWriter; }, - utf16EncodeAsString: function () { return utf16EncodeAsString; }, - validateLocaleAndSetLanguage: function () { return validateLocaleAndSetLanguage; }, - valuesHelper: function () { return valuesHelper; }, - version: function () { return version; }, - versionMajorMinor: function () { return versionMajorMinor; }, - visitArray: function () { return visitArray; }, - visitCommaListElements: function () { return visitCommaListElements; }, - visitEachChild: function () { return visitEachChild; }, - visitFunctionBody: function () { return visitFunctionBody; }, - visitIterationBody: function () { return visitIterationBody; }, - visitLexicalEnvironment: function () { return visitLexicalEnvironment; }, - visitNode: function () { return visitNode; }, - visitNodes: function () { return visitNodes2; }, - visitParameterList: function () { return visitParameterList; }, - walkUpBindingElementsAndPatterns: function () { return walkUpBindingElementsAndPatterns; }, - walkUpLexicalEnvironments: function () { return walkUpLexicalEnvironments; }, - walkUpOuterExpressions: function () { return walkUpOuterExpressions; }, - walkUpParenthesizedExpressions: function () { return walkUpParenthesizedExpressions; }, - walkUpParenthesizedTypes: function () { return walkUpParenthesizedTypes; }, - walkUpParenthesizedTypesAndGetParentAndChild: function () { return walkUpParenthesizedTypesAndGetParentAndChild; }, - whitespaceOrMapCommentRegExp: function () { return whitespaceOrMapCommentRegExp; }, - writeCommentRange: function () { return writeCommentRange; }, - writeFile: function () { return writeFile; }, - writeFileEnsuringDirectories: function () { return writeFileEnsuringDirectories; }, - zipToModeAwareCache: function () { return zipToModeAwareCache; }, - zipWith: function () { return zipWith; } -}); -module.exports = __toCommonJS(server_exports); -// src/compiler/corePublic.ts -var versionMajorMinor = "5.2"; -var version = "5.2.2"; -var Comparison = /* @__PURE__ */ (function (Comparison3) { - Comparison3[Comparison3["LessThan"] = -1] = "LessThan"; - Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo"; - Comparison3[Comparison3["GreaterThan"] = 1] = "GreaterThan"; - return Comparison3; -})(Comparison || {}); -// src/compiler/core.ts -var emptyArray = []; -var emptyMap = /* @__PURE__ */ new Map(); -var emptySet = /* @__PURE__ */ new Set(); -function length(array) { - return array ? array.length : 0; -} -function forEach(array, callback) { - if (array) { - for (var i = 0; i < array.length; i++) { - var result = callback(array[i], i); - if (result) { - return result; - } - } - } - return void 0; -} -function forEachRight(array, callback) { - if (array) { - for (var i = array.length - 1; i >= 0; i--) { - var result = callback(array[i], i); - if (result) { - return result; - } - } - } - return void 0; -} -function firstDefined(array, callback) { - if (array === void 0) { - return void 0; - } - for (var i = 0; i < array.length; i++) { - var result = callback(array[i], i); - if (result !== void 0) { - return result; - } - } - return void 0; -} -function firstDefinedIterator(iter, callback) { - var e_2, _t; - try { - for (var iter_1 = __values(iter), iter_1_1 = iter_1.next(); !iter_1_1.done; iter_1_1 = iter_1.next()) { - var value = iter_1_1.value; - var result = callback(value); - if (result !== void 0) { - return result; - } - } - } - catch (e_2_1) { e_2 = { error: e_2_1 }; } - finally { - try { - if (iter_1_1 && !iter_1_1.done && (_t = iter_1.return)) _t.call(iter_1); - } - finally { if (e_2) throw e_2.error; } - } - return void 0; -} -function reduceLeftIterator(iterator, f, initial) { - var e_3, _t; - var result = initial; - if (iterator) { - var pos = 0; - try { - for (var iterator_1 = __values(iterator), iterator_1_1 = iterator_1.next(); !iterator_1_1.done; iterator_1_1 = iterator_1.next()) { - var value = iterator_1_1.value; - result = f(result, value, pos); - pos++; - } - } - catch (e_3_1) { e_3 = { error: e_3_1 }; } - finally { - try { - if (iterator_1_1 && !iterator_1_1.done && (_t = iterator_1.return)) _t.call(iterator_1); - } - finally { if (e_3) throw e_3.error; } - } - } - return result; -} -function zipWith(arrayA, arrayB, callback) { - var result = []; - Debug.assertEqual(arrayA.length, arrayB.length); - for (var i = 0; i < arrayA.length; i++) { - result.push(callback(arrayA[i], arrayB[i], i)); - } - return result; -} -function intersperse(input, element) { - if (input.length <= 1) { - return input; - } - var result = []; - for (var i = 0, n = input.length; i < n; i++) { - if (i) - result.push(element); - result.push(input[i]); - } - return result; -} -function every(array, callback) { - if (array) { - for (var i = 0; i < array.length; i++) { - if (!callback(array[i], i)) { - return false; - } - } - } - return true; -} -function find(array, predicate, startIndex) { - if (array === void 0) - return void 0; - for (var i = startIndex !== null && startIndex !== void 0 ? startIndex : 0; i < array.length; i++) { - var value = array[i]; - if (predicate(value, i)) { - return value; - } - } - return void 0; -} -function findLast(array, predicate, startIndex) { - if (array === void 0) - return void 0; - for (var i = startIndex !== null && startIndex !== void 0 ? startIndex : array.length - 1; i >= 0; i--) { - var value = array[i]; - if (predicate(value, i)) { - return value; - } - } - return void 0; -} -function findIndex(array, predicate, startIndex) { - if (array === void 0) - return -1; - for (var i = startIndex !== null && startIndex !== void 0 ? startIndex : 0; i < array.length; i++) { - if (predicate(array[i], i)) { - return i; - } - } - return -1; -} -function findLastIndex(array, predicate, startIndex) { - if (array === void 0) - return -1; - for (var i = startIndex !== null && startIndex !== void 0 ? startIndex : array.length - 1; i >= 0; i--) { - if (predicate(array[i], i)) { - return i; - } - } - return -1; -} -function findMap(array, callback) { - for (var i = 0; i < array.length; i++) { - var result = callback(array[i], i); - if (result) { - return result; - } - } - return Debug.fail(); -} -function contains(array, value, equalityComparer) { - var e_4, _t; - if (equalityComparer === void 0) { equalityComparer = equateValues; } - if (array) { - try { - for (var array_1 = __values(array), array_1_1 = array_1.next(); !array_1_1.done; array_1_1 = array_1.next()) { - var v = array_1_1.value; - if (equalityComparer(v, value)) { - return true; - } - } - } - catch (e_4_1) { e_4 = { error: e_4_1 }; } - finally { - try { - if (array_1_1 && !array_1_1.done && (_t = array_1.return)) _t.call(array_1); - } - finally { if (e_4) throw e_4.error; } - } - } - return false; -} -function arraysEqual(a, b, equalityComparer) { - if (equalityComparer === void 0) { equalityComparer = equateValues; } - return a.length === b.length && a.every(function (x, i) { return equalityComparer(x, b[i]); }); -} -function indexOfAnyCharCode(text, charCodes, start2) { - for (var i = start2 || 0; i < text.length; i++) { - if (contains(charCodes, text.charCodeAt(i))) { - return i; - } - } - return -1; -} -function countWhere(array, predicate) { - var count = 0; - if (array) { - for (var i = 0; i < array.length; i++) { - var v = array[i]; - if (predicate(v, i)) { - count++; - } - } - } - return count; -} -function filter(array, f) { - if (array) { - var len = array.length; - var i = 0; - while (i < len && f(array[i])) - i++; - if (i < len) { - var result = array.slice(0, i); - i++; - while (i < len) { - var item = array[i]; - if (f(item)) { - result.push(item); - } - i++; - } - return result; - } - } - return array; -} -function filterMutate(array, f) { - var outIndex = 0; - for (var i = 0; i < array.length; i++) { - if (f(array[i], i, array)) { - array[outIndex] = array[i]; - outIndex++; - } - } - array.length = outIndex; -} -function clear(array) { - array.length = 0; -} -function map(array, f) { - var result; - if (array) { - result = []; - for (var i = 0; i < array.length; i++) { - result.push(f(array[i], i)); - } - } - return result; -} -function mapIterator(iter, mapFn) { - var iter_2, iter_2_1, x, e_5_1; - var e_5, _t; - return __generator(this, function (_u) { - switch (_u.label) { - case 0: - _u.trys.push([0, 5, 6, 7]); - iter_2 = __values(iter), iter_2_1 = iter_2.next(); - _u.label = 1; - case 1: - if (!!iter_2_1.done) return [3 /*break*/, 4]; - x = iter_2_1.value; - return [4 /*yield*/, mapFn(x)]; - case 2: - _u.sent(); - _u.label = 3; - case 3: - iter_2_1 = iter_2.next(); - return [3 /*break*/, 1]; - case 4: return [3 /*break*/, 7]; - case 5: - e_5_1 = _u.sent(); - e_5 = { error: e_5_1 }; - return [3 /*break*/, 7]; - case 6: - try { - if (iter_2_1 && !iter_2_1.done && (_t = iter_2.return)) _t.call(iter_2); - } - finally { if (e_5) throw e_5.error; } - return [7 /*endfinally*/]; - case 7: return [2 /*return*/]; - } - }); -} -function sameMap(array, f) { - if (array) { - for (var i = 0; i < array.length; i++) { - var item = array[i]; - var mapped = f(item, i); - if (item !== mapped) { - var result = array.slice(0, i); - result.push(mapped); - for (i++; i < array.length; i++) { - result.push(f(array[i], i)); - } - return result; - } - } - } - return array; -} -function flatten(array) { - var e_6, _t; - var result = []; - try { - for (var array_2 = __values(array), array_2_1 = array_2.next(); !array_2_1.done; array_2_1 = array_2.next()) { - var v = array_2_1.value; - if (v) { - if (isArray(v)) { - addRange(result, v); - } - else { - result.push(v); - } - } - } - } - catch (e_6_1) { e_6 = { error: e_6_1 }; } - finally { - try { - if (array_2_1 && !array_2_1.done && (_t = array_2.return)) _t.call(array_2); - } - finally { if (e_6) throw e_6.error; } - } - return result; -} -function flatMap(array, mapfn) { - var result; - if (array) { - for (var i = 0; i < array.length; i++) { - var v = mapfn(array[i], i); - if (v) { - if (isArray(v)) { - result = addRange(result, v); - } - else { - result = append(result, v); - } - } - } - } - return result || emptyArray; -} -function flatMapToMutable(array, mapfn) { - var result = []; - if (array) { - for (var i = 0; i < array.length; i++) { - var v = mapfn(array[i], i); - if (v) { - if (isArray(v)) { - addRange(result, v); - } - else { - result.push(v); - } - } - } - } - return result; -} -function flatMapIterator(iter, mapfn) { - var iter_3, iter_3_1, x, iter2, e_7_1; - var e_7, _t; - return __generator(this, function (_u) { - switch (_u.label) { - case 0: - _u.trys.push([0, 5, 6, 7]); - iter_3 = __values(iter), iter_3_1 = iter_3.next(); - _u.label = 1; - case 1: - if (!!iter_3_1.done) return [3 /*break*/, 4]; - x = iter_3_1.value; - iter2 = mapfn(x); - if (!iter2) - return [3 /*break*/, 3]; - return [5 /*yield**/, __values(iter2)]; - case 2: - _u.sent(); - _u.label = 3; - case 3: - iter_3_1 = iter_3.next(); - return [3 /*break*/, 1]; - case 4: return [3 /*break*/, 7]; - case 5: - e_7_1 = _u.sent(); - e_7 = { error: e_7_1 }; - return [3 /*break*/, 7]; - case 6: - try { - if (iter_3_1 && !iter_3_1.done && (_t = iter_3.return)) _t.call(iter_3); - } - finally { if (e_7) throw e_7.error; } - return [7 /*endfinally*/]; - case 7: return [2 /*return*/]; - } - }); -} -function sameFlatMap(array, mapfn) { - var result; - if (array) { - for (var i = 0; i < array.length; i++) { - var item = array[i]; - var mapped = mapfn(item, i); - if (result || item !== mapped || isArray(mapped)) { - if (!result) { - result = array.slice(0, i); - } - if (isArray(mapped)) { - addRange(result, mapped); - } - else { - result.push(mapped); - } - } - } - } - return result || array; -} -function mapAllOrFail(array, mapFn) { - var result = []; - for (var i = 0; i < array.length; i++) { - var mapped = mapFn(array[i], i); - if (mapped === void 0) { - return void 0; - } - result.push(mapped); - } - return result; -} -function mapDefined(array, mapFn) { - var result = []; - if (array) { - for (var i = 0; i < array.length; i++) { - var mapped = mapFn(array[i], i); - if (mapped !== void 0) { - result.push(mapped); - } - } - } - return result; -} -function mapDefinedIterator(iter, mapFn) { - var iter_4, iter_4_1, x, value, e_8_1; - var e_8, _t; - return __generator(this, function (_u) { - switch (_u.label) { - case 0: - _u.trys.push([0, 5, 6, 7]); - iter_4 = __values(iter), iter_4_1 = iter_4.next(); - _u.label = 1; - case 1: - if (!!iter_4_1.done) return [3 /*break*/, 4]; - x = iter_4_1.value; - value = mapFn(x); - if (!(value !== void 0)) return [3 /*break*/, 3]; - return [4 /*yield*/, value]; - case 2: - _u.sent(); - _u.label = 3; - case 3: - iter_4_1 = iter_4.next(); - return [3 /*break*/, 1]; - case 4: return [3 /*break*/, 7]; - case 5: - e_8_1 = _u.sent(); - e_8 = { error: e_8_1 }; - return [3 /*break*/, 7]; - case 6: - try { - if (iter_4_1 && !iter_4_1.done && (_t = iter_4.return)) _t.call(iter_4); - } - finally { if (e_8) throw e_8.error; } - return [7 /*endfinally*/]; - case 7: return [2 /*return*/]; - } - }); -} -function mapDefinedEntries(map2, f) { - if (!map2) { - return void 0; - } - var result = /* @__PURE__ */ new Map(); - map2.forEach(function (value, key) { - var entry = f(key, value); - if (entry !== void 0) { - var _t = __read(entry, 2), newKey = _t[0], newValue = _t[1]; - if (newKey !== void 0 && newValue !== void 0) { - result.set(newKey, newValue); - } - } - }); - return result; -} -function getOrUpdate(map2, key, callback) { - if (map2.has(key)) { - return map2.get(key); - } - var value = callback(); - map2.set(key, value); - return value; -} -function tryAddToSet(set, value) { - if (!set.has(value)) { - set.add(value); - return true; - } - return false; -} -function singleIterator(value) { - return __generator(this, function (_t) { - switch (_t.label) { - case 0: return [4 /*yield*/, value]; - case 1: - _t.sent(); - return [2 /*return*/]; - } - }); -} -function spanMap(array, keyfn, mapfn) { - var result; - if (array) { - result = []; - var len = array.length; - var previousKey = void 0; - var key = void 0; - var start2 = 0; - var pos = 0; - while (start2 < len) { - while (pos < len) { - var value = array[pos]; - key = keyfn(value, pos); - if (pos === 0) { - previousKey = key; - } - else if (key !== previousKey) { - break; - } - pos++; - } - if (start2 < pos) { - var v = mapfn(array.slice(start2, pos), previousKey, start2, pos); - if (v) { - result.push(v); - } - start2 = pos; - } - previousKey = key; - pos++; - } - } - return result; -} -function mapEntries(map2, f) { - if (!map2) { - return void 0; - } - var result = /* @__PURE__ */ new Map(); - map2.forEach(function (value, key) { - var _t = __read(f(key, value), 2), newKey = _t[0], newValue = _t[1]; - result.set(newKey, newValue); - }); - return result; -} -function some(array, predicate) { - var e_9, _t; - if (array) { - if (predicate) { - try { - for (var array_3 = __values(array), array_3_1 = array_3.next(); !array_3_1.done; array_3_1 = array_3.next()) { - var v = array_3_1.value; - if (predicate(v)) { - return true; - } - } - } - catch (e_9_1) { e_9 = { error: e_9_1 }; } - finally { - try { - if (array_3_1 && !array_3_1.done && (_t = array_3.return)) _t.call(array_3); - } - finally { if (e_9) throw e_9.error; } - } - } - else { - return array.length > 0; - } - } - return false; -} -function getRangesWhere(arr, pred, cb) { - var start2; - for (var i = 0; i < arr.length; i++) { - if (pred(arr[i])) { - start2 = start2 === void 0 ? i : start2; - } - else { - if (start2 !== void 0) { - cb(start2, i); - start2 = void 0; - } - } - } - if (start2 !== void 0) - cb(start2, arr.length); -} -function concatenate(array1, array2) { - if (!some(array2)) - return array1; - if (!some(array1)) - return array2; - return __spreadArray(__spreadArray([], __read(array1), false), __read(array2), false); -} -function selectIndex(_, i) { - return i; -} -function indicesOf(array) { - return array.map(selectIndex); -} -function deduplicateRelational(array, equalityComparer, comparer) { - var indices = indicesOf(array); - stableSortIndices(array, indices, comparer); - var last2 = array[indices[0]]; - var deduplicated = [indices[0]]; - for (var i = 1; i < indices.length; i++) { - var index = indices[i]; - var item = array[index]; - if (!equalityComparer(last2, item)) { - deduplicated.push(index); - last2 = item; - } - } - deduplicated.sort(); - return deduplicated.map(function (i) { return array[i]; }); -} -function deduplicateEquality(array, equalityComparer) { - var e_10, _t; - var result = []; - try { - for (var array_4 = __values(array), array_4_1 = array_4.next(); !array_4_1.done; array_4_1 = array_4.next()) { - var item = array_4_1.value; - pushIfUnique(result, item, equalityComparer); - } - } - catch (e_10_1) { e_10 = { error: e_10_1 }; } - finally { - try { - if (array_4_1 && !array_4_1.done && (_t = array_4.return)) _t.call(array_4); - } - finally { if (e_10) throw e_10.error; } - } - return result; -} -function deduplicate(array, equalityComparer, comparer) { - return array.length === 0 ? [] : array.length === 1 ? array.slice() : comparer ? deduplicateRelational(array, equalityComparer, comparer) : deduplicateEquality(array, equalityComparer); -} -function deduplicateSorted(array, comparer) { - if (array.length === 0) - return emptyArray; - var last2 = array[0]; - var deduplicated = [last2]; - for (var i = 1; i < array.length; i++) { - var next = array[i]; - switch (comparer(next, last2)) { - case true: - case 0 /* EqualTo */: - continue; - case -1 /* LessThan */: - return Debug.fail("Array is unsorted."); - } - deduplicated.push(last2 = next); - } - return deduplicated; -} -function createSortedArray() { - return []; -} -function insertSorted(array, insert, compare, allowDuplicates) { - if (array.length === 0) { - array.push(insert); - return true; - } - var insertIndex = binarySearch(array, insert, identity, compare); - if (insertIndex < 0) { - array.splice(~insertIndex, 0, insert); - return true; - } - if (allowDuplicates) { - array.splice(insertIndex, 0, insert); - return true; - } - return false; -} -function sortAndDeduplicate(array, comparer, equalityComparer) { - return deduplicateSorted(sort(array, comparer), equalityComparer || comparer || compareStringsCaseSensitive); -} -function arrayIsSorted(array, comparer) { - if (array.length < 2) - return true; - for (var i = 1, len = array.length; i < len; i++) { - if (comparer(array[i - 1], array[i]) === 1 /* GreaterThan */) { - return false; - } - } - return true; -} -var SortKind = /* @__PURE__ */ (function (SortKind2) { - SortKind2[SortKind2["None"] = 0] = "None"; - SortKind2[SortKind2["CaseSensitive"] = 1] = "CaseSensitive"; - SortKind2[SortKind2["CaseInsensitive"] = 2] = "CaseInsensitive"; - SortKind2[SortKind2["Both"] = 3] = "Both"; - return SortKind2; -})(SortKind || {}); -function detectSortCaseSensitivity(array, getString, compareStringsCaseSensitive2, compareStringsCaseInsensitive2) { - var kind = 3 /* Both */; - if (array.length < 2) - return kind; - var prevElement = getString(array[0]); - for (var i = 1, len = array.length; i < len && kind !== 0 /* None */; i++) { - var element = getString(array[i]); - if (kind & 1 /* CaseSensitive */ && compareStringsCaseSensitive2(prevElement, element) > 0) { - kind &= ~1 /* CaseSensitive */; - } - if (kind & 2 /* CaseInsensitive */ && compareStringsCaseInsensitive2(prevElement, element) > 0) { - kind &= ~2 /* CaseInsensitive */; - } - prevElement = element; - } - return kind; -} -function arrayIsEqualTo(array1, array2, equalityComparer) { - if (equalityComparer === void 0) { equalityComparer = equateValues; } - if (!array1 || !array2) { - return array1 === array2; - } - if (array1.length !== array2.length) { - return false; - } - for (var i = 0; i < array1.length; i++) { - if (!equalityComparer(array1[i], array2[i], i)) { - return false; - } - } - return true; -} -function compact(array) { - var result; - if (array) { - for (var i = 0; i < array.length; i++) { - var v = array[i]; - if (result || !v) { - if (!result) { - result = array.slice(0, i); - } - if (v) { - result.push(v); - } - } - } - } - return result || array; -} -function relativeComplement(arrayA, arrayB, comparer) { - if (!arrayB || !arrayA || arrayB.length === 0 || arrayA.length === 0) - return arrayB; - var result = []; - loopB: for (var offsetA = 0, offsetB = 0; offsetB < arrayB.length; offsetB++) { - if (offsetB > 0) { - Debug.assertGreaterThanOrEqual(comparer(arrayB[offsetB], arrayB[offsetB - 1]), 0 /* EqualTo */); - } - loopA: for (var startA = offsetA; offsetA < arrayA.length; offsetA++) { - if (offsetA > startA) { - Debug.assertGreaterThanOrEqual(comparer(arrayA[offsetA], arrayA[offsetA - 1]), 0 /* EqualTo */); - } - switch (comparer(arrayB[offsetB], arrayA[offsetA])) { - case -1 /* LessThan */: - result.push(arrayB[offsetB]); - continue loopB; - case 0 /* EqualTo */: - continue loopB; - case 1 /* GreaterThan */: - continue loopA; - } - } - } - return result; -} -function append(to, value) { - if (value === void 0) - return to; - if (to === void 0) - return [value]; - to.push(value); - return to; -} -function combine(xs, ys) { - if (xs === void 0) - return ys; - if (ys === void 0) - return xs; - if (isArray(xs)) - return isArray(ys) ? concatenate(xs, ys) : append(xs, ys); - if (isArray(ys)) - return append(ys, xs); - return [xs, ys]; -} -function toOffset(array, offset) { - return offset < 0 ? array.length + offset : offset; -} -function addRange(to, from, start2, end) { - if (from === void 0 || from.length === 0) - return to; - if (to === void 0) - return from.slice(start2, end); - start2 = start2 === void 0 ? 0 : toOffset(from, start2); - end = end === void 0 ? from.length : toOffset(from, end); - for (var i = start2; i < end && i < from.length; i++) { - if (from[i] !== void 0) { - to.push(from[i]); - } - } - return to; -} -function pushIfUnique(array, toAdd, equalityComparer) { - if (contains(array, toAdd, equalityComparer)) { - return false; - } - else { - array.push(toAdd); - return true; - } -} -function appendIfUnique(array, toAdd, equalityComparer) { - if (array) { - pushIfUnique(array, toAdd, equalityComparer); - return array; - } - else { - return [toAdd]; - } -} -function stableSortIndices(array, indices, comparer) { - indices.sort(function (x, y) { return comparer(array[x], array[y]) || compareValues(x, y); }); -} -function sort(array, comparer) { - return array.length === 0 ? array : array.slice().sort(comparer); -} -function arrayReverseIterator(array) { - var i; - return __generator(this, function (_t) { - switch (_t.label) { - case 0: - i = array.length - 1; - _t.label = 1; - case 1: - if (!(i >= 0)) return [3 /*break*/, 4]; - return [4 /*yield*/, array[i]]; - case 2: - _t.sent(); - _t.label = 3; - case 3: - i--; - return [3 /*break*/, 1]; - case 4: return [2 /*return*/]; - } - }); -} -function stableSort(array, comparer) { - var indices = indicesOf(array); - stableSortIndices(array, indices, comparer); - return indices.map(function (i) { return array[i]; }); -} -function rangeEquals(array1, array2, pos, end) { - while (pos < end) { - if (array1[pos] !== array2[pos]) { - return false; - } - pos++; - } - return true; -} -var elementAt = !!Array.prototype.at ? function (array, offset) { return array == null ? void 0 : array.at(offset); } : function (array, offset) { - if (array) { - offset = toOffset(array, offset); - if (offset < array.length) { - return array[offset]; - } - } - return void 0; -}; -function firstOrUndefined(array) { - return array === void 0 || array.length === 0 ? void 0 : array[0]; -} -function firstOrUndefinedIterator(iter) { - var e_11, _t; - if (iter) { - try { - for (var iter_5 = __values(iter), iter_5_1 = iter_5.next(); !iter_5_1.done; iter_5_1 = iter_5.next()) { - var value = iter_5_1.value; - return value; - } - } - catch (e_11_1) { e_11 = { error: e_11_1 }; } - finally { - try { - if (iter_5_1 && !iter_5_1.done && (_t = iter_5.return)) _t.call(iter_5); - } - finally { if (e_11) throw e_11.error; } - } - } - return void 0; -} -function first(array) { - Debug.assert(array.length !== 0); - return array[0]; -} -function firstIterator(iter) { - var e_12, _t; - try { - for (var iter_6 = __values(iter), iter_6_1 = iter_6.next(); !iter_6_1.done; iter_6_1 = iter_6.next()) { - var value = iter_6_1.value; - return value; - } - } - catch (e_12_1) { e_12 = { error: e_12_1 }; } - finally { - try { - if (iter_6_1 && !iter_6_1.done && (_t = iter_6.return)) _t.call(iter_6); - } - finally { if (e_12) throw e_12.error; } - } - Debug.fail("iterator is empty"); -} -function lastOrUndefined(array) { - return array === void 0 || array.length === 0 ? void 0 : array[array.length - 1]; -} -function last(array) { - Debug.assert(array.length !== 0); - return array[array.length - 1]; -} -function singleOrUndefined(array) { - return array && array.length === 1 ? array[0] : void 0; -} -function single(array) { - return Debug.checkDefined(singleOrUndefined(array)); -} -function singleOrMany(array) { - return array && array.length === 1 ? array[0] : array; -} -function replaceElement(array, index, value) { - var result = array.slice(0); - result[index] = value; - return result; -} -function binarySearch(array, value, keySelector, keyComparer, offset) { - return binarySearchKey(array, keySelector(value), keySelector, keyComparer, offset); -} -function binarySearchKey(array, key, keySelector, keyComparer, offset) { - if (!some(array)) { - return -1; - } - var low = offset || 0; - var high = array.length - 1; - while (low <= high) { - var middle = low + (high - low >> 1); - var midKey = keySelector(array[middle], middle); - switch (keyComparer(midKey, key)) { - case -1 /* LessThan */: - low = middle + 1; - break; - case 0 /* EqualTo */: - return middle; - case 1 /* GreaterThan */: - high = middle - 1; - break; - } - } - return ~low; -} -function reduceLeft(array, f, initial, start2, count) { - if (array && array.length > 0) { - var size = array.length; - if (size > 0) { - var pos = start2 === void 0 || start2 < 0 ? 0 : start2; - var end = count === void 0 || pos + count > size - 1 ? size - 1 : pos + count; - var result = void 0; - if (arguments.length <= 2) { - result = array[pos]; - pos++; - } - else { - result = initial; - } - while (pos <= end) { - result = f(result, array[pos], pos); - pos++; - } - return result; - } - } - return initial; -} -var hasOwnProperty = Object.prototype.hasOwnProperty; -function hasProperty(map2, key) { - return hasOwnProperty.call(map2, key); -} -function getProperty(map2, key) { - return hasOwnProperty.call(map2, key) ? map2[key] : void 0; -} -function getOwnKeys(map2) { - var keys = []; - for (var key in map2) { - if (hasOwnProperty.call(map2, key)) { - keys.push(key); - } - } - return keys; -} -function getAllKeys(obj) { - var e_13, _t; - var result = []; - do { - var names = Object.getOwnPropertyNames(obj); - try { - for (var names_1 = (e_13 = void 0, __values(names)), names_1_1 = names_1.next(); !names_1_1.done; names_1_1 = names_1.next()) { - var name_1 = names_1_1.value; - pushIfUnique(result, name_1); - } - } - catch (e_13_1) { e_13 = { error: e_13_1 }; } - finally { - try { - if (names_1_1 && !names_1_1.done && (_t = names_1.return)) _t.call(names_1); - } - finally { if (e_13) throw e_13.error; } - } - } while (obj = Object.getPrototypeOf(obj)); - return result; -} -function getOwnValues(collection) { - var values = []; - for (var key in collection) { - if (hasOwnProperty.call(collection, key)) { - values.push(collection[key]); - } - } - return values; -} -function arrayOf(count, f) { - var result = new Array(count); - for (var i = 0; i < count; i++) { - result[i] = f(i); - } - return result; -} -function arrayFrom(iterator, map2) { - var e_14, _t; - var result = []; - try { - for (var iterator_2 = __values(iterator), iterator_2_1 = iterator_2.next(); !iterator_2_1.done; iterator_2_1 = iterator_2.next()) { - var value = iterator_2_1.value; - result.push(map2 ? map2(value) : value); - } - } - catch (e_14_1) { e_14 = { error: e_14_1 }; } - finally { - try { - if (iterator_2_1 && !iterator_2_1.done && (_t = iterator_2.return)) _t.call(iterator_2); - } - finally { if (e_14) throw e_14.error; } - } - return result; -} -function assign(t) { - var e_15, _t; - var args = []; - for (var _u = 1; _u < arguments.length; _u++) { - args[_u - 1] = arguments[_u]; - } - try { - for (var args_1 = __values(args), args_1_1 = args_1.next(); !args_1_1.done; args_1_1 = args_1.next()) { - var arg = args_1_1.value; - if (arg === void 0) - continue; - for (var p in arg) { - if (hasProperty(arg, p)) { - t[p] = arg[p]; - } - } - } - } - catch (e_15_1) { e_15 = { error: e_15_1 }; } - finally { - try { - if (args_1_1 && !args_1_1.done && (_t = args_1.return)) _t.call(args_1); - } - finally { if (e_15) throw e_15.error; } - } - return t; -} -function equalOwnProperties(left, right, equalityComparer) { - if (equalityComparer === void 0) { equalityComparer = equateValues; } - if (left === right) - return true; - if (!left || !right) - return false; - for (var key in left) { - if (hasOwnProperty.call(left, key)) { - if (!hasOwnProperty.call(right, key)) - return false; - if (!equalityComparer(left[key], right[key])) - return false; - } - } - for (var key in right) { - if (hasOwnProperty.call(right, key)) { - if (!hasOwnProperty.call(left, key)) - return false; - } - } - return true; -} -function arrayToMap(array, makeKey, makeValue) { - var e_16, _t; - if (makeValue === void 0) { makeValue = identity; } - var result = /* @__PURE__ */ new Map(); - try { - for (var array_5 = __values(array), array_5_1 = array_5.next(); !array_5_1.done; array_5_1 = array_5.next()) { - var value = array_5_1.value; - var key = makeKey(value); - if (key !== void 0) - result.set(key, makeValue(value)); - } - } - catch (e_16_1) { e_16 = { error: e_16_1 }; } - finally { - try { - if (array_5_1 && !array_5_1.done && (_t = array_5.return)) _t.call(array_5); - } - finally { if (e_16) throw e_16.error; } - } - return result; -} -function arrayToNumericMap(array, makeKey, makeValue) { - var e_17, _t; - if (makeValue === void 0) { makeValue = identity; } - var result = []; - try { - for (var array_6 = __values(array), array_6_1 = array_6.next(); !array_6_1.done; array_6_1 = array_6.next()) { - var value = array_6_1.value; - result[makeKey(value)] = makeValue(value); - } - } - catch (e_17_1) { e_17 = { error: e_17_1 }; } - finally { - try { - if (array_6_1 && !array_6_1.done && (_t = array_6.return)) _t.call(array_6); - } - finally { if (e_17) throw e_17.error; } - } - return result; -} -function arrayToMultiMap(values, makeKey, makeValue) { - var e_18, _t; - if (makeValue === void 0) { makeValue = identity; } - var result = createMultiMap(); - try { - for (var values_1 = __values(values), values_1_1 = values_1.next(); !values_1_1.done; values_1_1 = values_1.next()) { - var value = values_1_1.value; - result.add(makeKey(value), makeValue(value)); - } - } - catch (e_18_1) { e_18 = { error: e_18_1 }; } - finally { - try { - if (values_1_1 && !values_1_1.done && (_t = values_1.return)) _t.call(values_1); - } - finally { if (e_18) throw e_18.error; } - } - return result; -} -function group(values, getGroupId, resultSelector) { - if (resultSelector === void 0) { resultSelector = identity; } - return arrayFrom(arrayToMultiMap(values, getGroupId).values(), resultSelector); -} -function groupBy(values, keySelector) { - var e_19, _t; - var _u; - var result = {}; - if (values) { - try { - for (var values_2 = __values(values), values_2_1 = values_2.next(); !values_2_1.done; values_2_1 = values_2.next()) { - var value = values_2_1.value; - var key = "".concat(keySelector(value)); - var array = (_u = result[key]) !== null && _u !== void 0 ? _u : (result[key] = []); - array.push(value); - } - } - catch (e_19_1) { e_19 = { error: e_19_1 }; } - finally { - try { - if (values_2_1 && !values_2_1.done && (_t = values_2.return)) _t.call(values_2); - } - finally { if (e_19) throw e_19.error; } - } - } - return result; -} -function clone(object) { - var result = {}; - for (var id in object) { - if (hasOwnProperty.call(object, id)) { - result[id] = object[id]; - } - } - return result; -} -function extend(first2, second) { - var result = {}; - for (var id in second) { - if (hasOwnProperty.call(second, id)) { - result[id] = second[id]; - } - } - for (var id in first2) { - if (hasOwnProperty.call(first2, id)) { - result[id] = first2[id]; - } - } - return result; -} -function copyProperties(first2, second) { - for (var id in second) { - if (hasOwnProperty.call(second, id)) { - first2[id] = second[id]; - } - } -} -function maybeBind(obj, fn) { - return fn ? fn.bind(obj) : void 0; -} -function createMultiMap() { - var map2 = /* @__PURE__ */ new Map(); - map2.add = multiMapAdd; - map2.remove = multiMapRemove; - return map2; -} -function multiMapAdd(key, value) { - var values = this.get(key); - if (values) { - values.push(value); - } - else { - this.set(key, values = [value]); - } - return values; -} -function multiMapRemove(key, value) { - var values = this.get(key); - if (values) { - unorderedRemoveItem(values, value); - if (!values.length) { - this.delete(key); - } - } -} -function createQueue(items) { - var elements = (items == null ? void 0 : items.slice()) || []; - var headIndex = 0; - function isEmpty() { - return headIndex === elements.length; - } - function enqueue() { - var items2 = []; - for (var _t = 0; _t < arguments.length; _t++) { - items2[_t] = arguments[_t]; - } - elements.push.apply(elements, __spreadArray([], __read(items2), false)); - } - function dequeue() { - if (isEmpty()) { - throw new Error("Queue is empty"); - } - var result = elements[headIndex]; - elements[headIndex] = void 0; - headIndex++; - if (headIndex > 100 && headIndex > elements.length >> 1) { - var newLength = elements.length - headIndex; - elements.copyWithin( - /*target*/ - 0, - /*start*/ - headIndex); - elements.length = newLength; - headIndex = 0; - } - return result; - } - return { - enqueue: enqueue, - dequeue: dequeue, - isEmpty: isEmpty - }; -} -function createSet(getHashCode, equals) { - var _t; - var multiMap = /* @__PURE__ */ new Map(); - var size = 0; - function getElementIterator() { - var _t, _u, value, e_20_1; - var e_20, _v; - return __generator(this, function (_w) { - switch (_w.label) { - case 0: - _w.trys.push([0, 7, 8, 9]); - _t = __values(multiMap.values()), _u = _t.next(); - _w.label = 1; - case 1: - if (!!_u.done) return [3 /*break*/, 6]; - value = _u.value; - if (!isArray(value)) return [3 /*break*/, 3]; - return [5 /*yield**/, __values(value)]; - case 2: - _w.sent(); - return [3 /*break*/, 5]; - case 3: return [4 /*yield*/, value]; - case 4: - _w.sent(); - _w.label = 5; - case 5: - _u = _t.next(); - return [3 /*break*/, 1]; - case 6: return [3 /*break*/, 9]; - case 7: - e_20_1 = _w.sent(); - e_20 = { error: e_20_1 }; - return [3 /*break*/, 9]; - case 8: - try { - if (_u && !_u.done && (_v = _t.return)) _v.call(_t); - } - finally { if (e_20) throw e_20.error; } - return [7 /*endfinally*/]; - case 9: return [2 /*return*/]; - } - }); - } - var set = (_t = { - has: function (element) { - var e_21, _t; - var hash = getHashCode(element); - if (!multiMap.has(hash)) - return false; - var candidates = multiMap.get(hash); - if (!isArray(candidates)) - return equals(candidates, element); - try { - for (var candidates_1 = __values(candidates), candidates_1_1 = candidates_1.next(); !candidates_1_1.done; candidates_1_1 = candidates_1.next()) { - var candidate = candidates_1_1.value; - if (equals(candidate, element)) { - return true; - } - } - } - catch (e_21_1) { e_21 = { error: e_21_1 }; } - finally { - try { - if (candidates_1_1 && !candidates_1_1.done && (_t = candidates_1.return)) _t.call(candidates_1); - } - finally { if (e_21) throw e_21.error; } - } - return false; - }, - add: function (element) { - var hash = getHashCode(element); - if (multiMap.has(hash)) { - var values = multiMap.get(hash); - if (isArray(values)) { - if (!contains(values, element, equals)) { - values.push(element); - size++; - } - } - else { - var value = values; - if (!equals(value, element)) { - multiMap.set(hash, [value, element]); - size++; - } - } - } - else { - multiMap.set(hash, element); - size++; - } - return this; - }, - delete: function (element) { - var hash = getHashCode(element); - if (!multiMap.has(hash)) - return false; - var candidates = multiMap.get(hash); - if (isArray(candidates)) { - for (var i = 0; i < candidates.length; i++) { - if (equals(candidates[i], element)) { - if (candidates.length === 1) { - multiMap.delete(hash); - } - else if (candidates.length === 2) { - multiMap.set(hash, candidates[1 - i]); - } - else { - unorderedRemoveItemAt(candidates, i); - } - size--; - return true; - } - } - } - else { - var candidate = candidates; - if (equals(candidate, element)) { - multiMap.delete(hash); - size--; - return true; - } - } - return false; - }, - clear: function () { - multiMap.clear(); - size = 0; - }, - get size() { - return size; - }, - forEach: function (action) { - var e_22, _t, e_23, _u; - try { - for (var _v = __values(arrayFrom(multiMap.values())), _w = _v.next(); !_w.done; _w = _v.next()) { - var elements = _w.value; - if (isArray(elements)) { - try { - for (var elements_1 = (e_23 = void 0, __values(elements)), elements_1_1 = elements_1.next(); !elements_1_1.done; elements_1_1 = elements_1.next()) { - var element = elements_1_1.value; - action(element, element, set); - } - } - catch (e_23_1) { e_23 = { error: e_23_1 }; } - finally { - try { - if (elements_1_1 && !elements_1_1.done && (_u = elements_1.return)) _u.call(elements_1); - } - finally { if (e_23) throw e_23.error; } - } - } - else { - var element = elements; - action(element, element, set); - } - } - } - catch (e_22_1) { e_22 = { error: e_22_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_22) throw e_22.error; } - } - }, - keys: function () { - return getElementIterator(); - }, - values: function () { - return getElementIterator(); - }, - entries: function () { - var _t, _u, value, e_24_1; - var e_24, _v; - return __generator(this, function (_w) { - switch (_w.label) { - case 0: - _w.trys.push([0, 5, 6, 7]); - _t = __values(getElementIterator()), _u = _t.next(); - _w.label = 1; - case 1: - if (!!_u.done) return [3 /*break*/, 4]; - value = _u.value; - return [4 /*yield*/, [value, value]]; - case 2: - _w.sent(); - _w.label = 3; - case 3: - _u = _t.next(); - return [3 /*break*/, 1]; - case 4: return [3 /*break*/, 7]; - case 5: - e_24_1 = _w.sent(); - e_24 = { error: e_24_1 }; - return [3 /*break*/, 7]; - case 6: - try { - if (_u && !_u.done && (_v = _t.return)) _v.call(_t); - } - finally { if (e_24) throw e_24.error; } - return [7 /*endfinally*/]; - case 7: return [2 /*return*/]; - } - }); - } - }, - _t[Symbol.iterator] = function () { - return getElementIterator(); - }, - _t[Symbol.toStringTag] = multiMap[Symbol.toStringTag], - _t); - return set; -} -function isArray(value) { - return Array.isArray(value); -} -function toArray(value) { - return isArray(value) ? value : [value]; -} -function isString(text) { - return typeof text === "string"; -} -function isNumber(x) { - return typeof x === "number"; -} -function tryCast(value, test) { - return value !== void 0 && test(value) ? value : void 0; -} -function cast(value, test) { - if (value !== void 0 && test(value)) - return value; - return Debug.fail("Invalid cast. The supplied value ".concat(value, " did not pass the test '").concat(Debug.getFunctionName(test), "'.")); -} -function noop(_) { -} -function returnFalse() { - return false; -} -function returnTrue() { - return true; -} -function returnUndefined() { - return void 0; -} -function identity(x) { - return x; -} -function toLowerCase(x) { - return x.toLowerCase(); -} -var fileNameLowerCaseRegExp = /[^\u0130\u0131\u00DFa-z0-9\\/:\-_. ]+/g; -function toFileNameLowerCase(x) { - return fileNameLowerCaseRegExp.test(x) ? x.replace(fileNameLowerCaseRegExp, toLowerCase) : x; -} -function notImplemented() { - throw new Error("Not implemented"); -} -function memoize(callback) { - var value; - return function () { - if (callback) { - value = callback(); - callback = void 0; - } - return value; - }; -} -function memoizeOne(callback) { - var map2 = /* @__PURE__ */ new Map(); - return function (arg) { - var key = "".concat(typeof arg, ":").concat(arg); - var value = map2.get(key); - if (value === void 0 && !map2.has(key)) { - value = callback(arg); - map2.set(key, value); - } - return value; - }; -} -function memoizeWeak(callback) { - var map2 = /* @__PURE__ */ new WeakMap(); - return function (arg) { - var value = map2.get(arg); - if (value === void 0 && !map2.has(arg)) { - value = callback(arg); - map2.set(arg, value); - } - return value; - }; -} -function memoizeCached(callback, cache) { - return function () { - var args = []; - for (var _t = 0; _t < arguments.length; _t++) { - args[_t] = arguments[_t]; - } - var value = cache.get(args); - if (value === void 0 && !cache.has(args)) { - value = callback.apply(void 0, __spreadArray([], __read(args), false)); - cache.set(args, value); - } - return value; - }; -} -function compose(a, b, c, d, e) { - if (!!e) { - var args_2 = []; - for (var i = 0; i < arguments.length; i++) { - args_2[i] = arguments[i]; - } - return function (t) { return reduceLeft(args_2, function (u, f) { return f(u); }, t); }; - } - else if (d) { - return function (t) { return d(c(b(a(t)))); }; - } - else if (c) { - return function (t) { return c(b(a(t))); }; - } - else if (b) { - return function (t) { return b(a(t)); }; - } - else if (a) { - return function (t) { return a(t); }; - } - else { - return function (t) { return t; }; - } -} -var AssertionLevel = /* @__PURE__ */ (function (AssertionLevel2) { - AssertionLevel2[AssertionLevel2["None"] = 0] = "None"; - AssertionLevel2[AssertionLevel2["Normal"] = 1] = "Normal"; - AssertionLevel2[AssertionLevel2["Aggressive"] = 2] = "Aggressive"; - AssertionLevel2[AssertionLevel2["VeryAggressive"] = 3] = "VeryAggressive"; - return AssertionLevel2; -})(AssertionLevel || {}); -function equateValues(a, b) { - return a === b; -} -function equateStringsCaseInsensitive(a, b) { - return a === b || a !== void 0 && b !== void 0 && a.toUpperCase() === b.toUpperCase(); -} -function equateStringsCaseSensitive(a, b) { - return equateValues(a, b); -} -function compareComparableValues(a, b) { - return a === b ? 0 /* EqualTo */ : a === void 0 ? -1 /* LessThan */ : b === void 0 ? 1 /* GreaterThan */ : a < b ? -1 /* LessThan */ : 1 /* GreaterThan */; -} -function compareValues(a, b) { - return compareComparableValues(a, b); -} -function compareTextSpans(a, b) { - return compareValues(a == null ? void 0 : a.start, b == null ? void 0 : b.start) || compareValues(a == null ? void 0 : a.length, b == null ? void 0 : b.length); -} -function min(items, compare) { - return reduceLeft(items, function (x, y) { return compare(x, y) === -1 /* LessThan */ ? x : y; }); -} -function compareStringsCaseInsensitive(a, b) { - if (a === b) - return 0 /* EqualTo */; - if (a === void 0) - return -1 /* LessThan */; - if (b === void 0) - return 1 /* GreaterThan */; - a = a.toUpperCase(); - b = b.toUpperCase(); - return a < b ? -1 /* LessThan */ : a > b ? 1 /* GreaterThan */ : 0 /* EqualTo */; -} -function compareStringsCaseInsensitiveEslintCompatible(a, b) { - if (a === b) - return 0 /* EqualTo */; - if (a === void 0) - return -1 /* LessThan */; - if (b === void 0) - return 1 /* GreaterThan */; - a = a.toLowerCase(); - b = b.toLowerCase(); - return a < b ? -1 /* LessThan */ : a > b ? 1 /* GreaterThan */ : 0 /* EqualTo */; -} -function compareStringsCaseSensitive(a, b) { - return compareComparableValues(a, b); -} -function getStringComparer(ignoreCase) { - return ignoreCase ? compareStringsCaseInsensitive : compareStringsCaseSensitive; -} -var createUIStringComparer = (function () { - var defaultComparer; - var enUSComparer; - var stringComparerFactory = getStringComparerFactory(); - return createStringComparer; - function compareWithCallback(a, b, comparer) { - if (a === b) - return 0 /* EqualTo */; - if (a === void 0) - return -1 /* LessThan */; - if (b === void 0) - return 1 /* GreaterThan */; - var value = comparer(a, b); - return value < 0 ? -1 /* LessThan */ : value > 0 ? 1 /* GreaterThan */ : 0 /* EqualTo */; - } - function createIntlCollatorStringComparer(locale) { - var comparer = new Intl.Collator(locale, { usage: "sort", sensitivity: "variant" }).compare; - return function (a, b) { return compareWithCallback(a, b, comparer); }; - } - function createLocaleCompareStringComparer(locale) { - if (locale !== void 0) - return createFallbackStringComparer(); - return function (a, b) { return compareWithCallback(a, b, compareStrings); }; - function compareStrings(a, b) { - return a.localeCompare(b); - } - } - function createFallbackStringComparer() { - return function (a, b) { return compareWithCallback(a, b, compareDictionaryOrder); }; - function compareDictionaryOrder(a, b) { - return compareStrings(a.toUpperCase(), b.toUpperCase()) || compareStrings(a, b); - } - function compareStrings(a, b) { - return a < b ? -1 /* LessThan */ : a > b ? 1 /* GreaterThan */ : 0 /* EqualTo */; - } - } - function getStringComparerFactory() { - if (typeof Intl === "object" && typeof Intl.Collator === "function") { - return createIntlCollatorStringComparer; - } - if (typeof String.prototype.localeCompare === "function" && typeof String.prototype.toLocaleUpperCase === "function" && "a".localeCompare("B") < 0) { - return createLocaleCompareStringComparer; - } - return createFallbackStringComparer; - } - function createStringComparer(locale) { - if (locale === void 0) { - return defaultComparer || (defaultComparer = stringComparerFactory(locale)); - } - else if (locale === "en-US") { - return enUSComparer || (enUSComparer = stringComparerFactory(locale)); - } - else { - return stringComparerFactory(locale); - } - } -})(); -var uiComparerCaseSensitive; -var uiLocale; -function getUILocale() { - return uiLocale; -} -function setUILocale(value) { - if (uiLocale !== value) { - uiLocale = value; - uiComparerCaseSensitive = void 0; - } -} -function compareStringsCaseSensitiveUI(a, b) { - var comparer = uiComparerCaseSensitive || (uiComparerCaseSensitive = createUIStringComparer(uiLocale)); - return comparer(a, b); -} -function compareProperties(a, b, key, comparer) { - return a === b ? 0 /* EqualTo */ : a === void 0 ? -1 /* LessThan */ : b === void 0 ? 1 /* GreaterThan */ : comparer(a[key], b[key]); -} -function compareBooleans(a, b) { - return compareValues(a ? 1 : 0, b ? 1 : 0); -} -function getSpellingSuggestion(name, candidates, getName) { - var e_25, _t; - var maximumLengthDifference = Math.max(2, Math.floor(name.length * 0.34)); - var bestDistance = Math.floor(name.length * 0.4) + 1; - var bestCandidate; - try { - for (var candidates_2 = __values(candidates), candidates_2_1 = candidates_2.next(); !candidates_2_1.done; candidates_2_1 = candidates_2.next()) { - var candidate = candidates_2_1.value; - var candidateName = getName(candidate); - if (candidateName !== void 0 && Math.abs(candidateName.length - name.length) <= maximumLengthDifference) { - if (candidateName === name) { - continue; - } - if (candidateName.length < 3 && candidateName.toLowerCase() !== name.toLowerCase()) { - continue; - } - var distance = levenshteinWithMax(name, candidateName, bestDistance - 0.1); - if (distance === void 0) { - continue; - } - Debug.assert(distance < bestDistance); - bestDistance = distance; - bestCandidate = candidate; - } - } - } - catch (e_25_1) { e_25 = { error: e_25_1 }; } - finally { - try { - if (candidates_2_1 && !candidates_2_1.done && (_t = candidates_2.return)) _t.call(candidates_2); - } - finally { if (e_25) throw e_25.error; } - } - return bestCandidate; -} -function levenshteinWithMax(s1, s2, max) { - var previous = new Array(s2.length + 1); - var current = new Array(s2.length + 1); - var big = max + 0.01; - for (var i = 0; i <= s2.length; i++) { - previous[i] = i; - } - for (var i = 1; i <= s1.length; i++) { - var c1 = s1.charCodeAt(i - 1); - var minJ = Math.ceil(i > max ? i - max : 1); - var maxJ = Math.floor(s2.length > max + i ? max + i : s2.length); - current[0] = i; - var colMin = i; - for (var j = 1; j < minJ; j++) { - current[j] = big; - } - for (var j = minJ; j <= maxJ; j++) { - var substitutionDistance = s1[i - 1].toLowerCase() === s2[j - 1].toLowerCase() ? previous[j - 1] + 0.1 : previous[j - 1] + 2; - var dist = c1 === s2.charCodeAt(j - 1) ? previous[j - 1] : Math.min( - /*delete*/ - previous[j] + 1, - /*insert*/ - current[j - 1] + 1, - /*substitute*/ - substitutionDistance); - current[j] = dist; - colMin = Math.min(colMin, dist); - } - for (var j = maxJ + 1; j <= s2.length; j++) { - current[j] = big; - } - if (colMin > max) { - return void 0; - } - var temp = previous; - previous = current; - current = temp; - } - var res = previous[s2.length]; - return res > max ? void 0 : res; -} -function endsWith(str, suffix) { - var expectedPos = str.length - suffix.length; - return expectedPos >= 0 && str.indexOf(suffix, expectedPos) === expectedPos; -} -function removeSuffix(str, suffix) { - return endsWith(str, suffix) ? str.slice(0, str.length - suffix.length) : str; -} -function tryRemoveSuffix(str, suffix) { - return endsWith(str, suffix) ? str.slice(0, str.length - suffix.length) : void 0; -} -function stringContains(str, substring) { - return str.indexOf(substring) !== -1; -} -function removeMinAndVersionNumbers(fileName) { - var end = fileName.length; - for (var pos = end - 1; pos > 0; pos--) { - var ch = fileName.charCodeAt(pos); - if (ch >= 48 /* _0 */ && ch <= 57 /* _9 */) { - do { - --pos; - ch = fileName.charCodeAt(pos); - } while (pos > 0 && ch >= 48 /* _0 */ && ch <= 57 /* _9 */); - } - else if (pos > 4 && (ch === 110 /* n */ || ch === 78 /* N */)) { - --pos; - ch = fileName.charCodeAt(pos); - if (ch !== 105 /* i */ && ch !== 73 /* I */) { - break; - } - --pos; - ch = fileName.charCodeAt(pos); - if (ch !== 109 /* m */ && ch !== 77 /* M */) { - break; - } - --pos; - ch = fileName.charCodeAt(pos); - } - else { - break; - } - if (ch !== 45 /* minus */ && ch !== 46 /* dot */) { - break; - } - end = pos; - } - return end === fileName.length ? fileName : fileName.slice(0, end); -} -function orderedRemoveItem(array, item) { - for (var i = 0; i < array.length; i++) { - if (array[i] === item) { - orderedRemoveItemAt(array, i); - return true; - } - } - return false; -} -function orderedRemoveItemAt(array, index) { - for (var i = index; i < array.length - 1; i++) { - array[i] = array[i + 1]; - } - array.pop(); -} -function unorderedRemoveItemAt(array, index) { - array[index] = array[array.length - 1]; - array.pop(); -} -function unorderedRemoveItem(array, item) { - return unorderedRemoveFirstItemWhere(array, function (element) { return element === item; }); -} -function unorderedRemoveFirstItemWhere(array, predicate) { - for (var i = 0; i < array.length; i++) { - if (predicate(array[i])) { - unorderedRemoveItemAt(array, i); - return true; - } - } - return false; -} -function createGetCanonicalFileName(useCaseSensitiveFileNames2) { - return useCaseSensitiveFileNames2 ? identity : toFileNameLowerCase; -} -function patternText(_t) { - var prefix = _t.prefix, suffix = _t.suffix; - return "".concat(prefix, "*").concat(suffix); -} -function matchedText(pattern, candidate) { - Debug.assert(isPatternMatch(pattern, candidate)); - return candidate.substring(pattern.prefix.length, candidate.length - pattern.suffix.length); -} -function findBestPatternMatch(values, getPattern, candidate) { - var e_26, _t; - var matchedValue; - var longestMatchPrefixLength = -1; - try { - for (var values_3 = __values(values), values_3_1 = values_3.next(); !values_3_1.done; values_3_1 = values_3.next()) { - var v = values_3_1.value; - var pattern = getPattern(v); - if (isPatternMatch(pattern, candidate) && pattern.prefix.length > longestMatchPrefixLength) { - longestMatchPrefixLength = pattern.prefix.length; - matchedValue = v; - } - } - } - catch (e_26_1) { e_26 = { error: e_26_1 }; } - finally { - try { - if (values_3_1 && !values_3_1.done && (_t = values_3.return)) _t.call(values_3); - } - finally { if (e_26) throw e_26.error; } - } - return matchedValue; -} -function startsWith(str, prefix) { - return str.lastIndexOf(prefix, 0) === 0; -} -function removePrefix(str, prefix) { - return startsWith(str, prefix) ? str.substr(prefix.length) : str; -} -function tryRemovePrefix(str, prefix, getCanonicalFileName) { - if (getCanonicalFileName === void 0) { getCanonicalFileName = identity; } - return startsWith(getCanonicalFileName(str), getCanonicalFileName(prefix)) ? str.substring(prefix.length) : void 0; -} -function isPatternMatch(_t, candidate) { - var prefix = _t.prefix, suffix = _t.suffix; - return candidate.length >= prefix.length + suffix.length && startsWith(candidate, prefix) && endsWith(candidate, suffix); -} -function and(f, g) { - return function (arg) { return f(arg) && g(arg); }; -} -function or() { - var fs = []; - for (var _t = 0; _t < arguments.length; _t++) { - fs[_t] = arguments[_t]; - } - return function () { - var e_27, _t; - var args = []; - for (var _u = 0; _u < arguments.length; _u++) { - args[_u] = arguments[_u]; - } - var lastResult; - try { - for (var fs_1 = __values(fs), fs_1_1 = fs_1.next(); !fs_1_1.done; fs_1_1 = fs_1.next()) { - var f = fs_1_1.value; - lastResult = f.apply(void 0, __spreadArray([], __read(args), false)); - if (lastResult) { - return lastResult; - } - } - } - catch (e_27_1) { e_27 = { error: e_27_1 }; } - finally { - try { - if (fs_1_1 && !fs_1_1.done && (_t = fs_1.return)) _t.call(fs_1); - } - finally { if (e_27) throw e_27.error; } - } - return lastResult; - }; -} -function not(fn) { - return function () { - var args = []; - for (var _t = 0; _t < arguments.length; _t++) { - args[_t] = arguments[_t]; - } - return !fn.apply(void 0, __spreadArray([], __read(args), false)); - }; -} -function assertType(_) { -} -function singleElementArray(t) { - return t === void 0 ? void 0 : [t]; -} -function enumerateInsertsAndDeletes(newItems, oldItems, comparer, inserted, deleted, unchanged) { - unchanged = unchanged || noop; - var newIndex = 0; - var oldIndex = 0; - var newLen = newItems.length; - var oldLen = oldItems.length; - var hasChanges = false; - while (newIndex < newLen && oldIndex < oldLen) { - var newItem = newItems[newIndex]; - var oldItem = oldItems[oldIndex]; - var compareResult = comparer(newItem, oldItem); - if (compareResult === -1 /* LessThan */) { - inserted(newItem); - newIndex++; - hasChanges = true; - } - else if (compareResult === 1 /* GreaterThan */) { - deleted(oldItem); - oldIndex++; - hasChanges = true; - } - else { - unchanged(oldItem, newItem); - newIndex++; - oldIndex++; - } - } - while (newIndex < newLen) { - inserted(newItems[newIndex++]); - hasChanges = true; - } - while (oldIndex < oldLen) { - deleted(oldItems[oldIndex++]); - hasChanges = true; - } - return hasChanges; -} -function cartesianProduct(arrays) { - var result = []; - cartesianProductWorker(arrays, result, - /*outer*/ - void 0, 0); - return result; -} -function cartesianProductWorker(arrays, result, outer, index) { - var e_28, _t; - try { - for (var _u = __values(arrays[index]), _v = _u.next(); !_v.done; _v = _u.next()) { - var element = _v.value; - var inner = void 0; - if (outer) { - inner = outer.slice(); - inner.push(element); - } - else { - inner = [element]; - } - if (index === arrays.length - 1) { - result.push(inner); - } - else { - cartesianProductWorker(arrays, result, inner, index + 1); - } - } - } - catch (e_28_1) { e_28 = { error: e_28_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_28) throw e_28.error; } - } -} -function padLeft(s, length2, padString) { - if (padString === void 0) { padString = " "; } - return length2 <= s.length ? s : padString.repeat(length2 - s.length) + s; -} -function padRight(s, length2, padString) { - if (padString === void 0) { padString = " "; } - return length2 <= s.length ? s : s + padString.repeat(length2 - s.length); -} -function takeWhile(array, predicate) { - if (array) { - var len = array.length; - var index = 0; - while (index < len && predicate(array[index])) { - index++; - } - return array.slice(0, index); - } -} -function skipWhile(array, predicate) { - if (array) { - var len = array.length; - var index = 0; - while (index < len && predicate(array[index])) { - index++; - } - return array.slice(index); - } -} -var trimString = !!String.prototype.trim ? function (s) { return s.trim(); } : function (s) { return trimStringEnd(trimStringStart(s)); }; -var trimStringEnd = !!String.prototype.trimEnd ? function (s) { return s.trimEnd(); } : trimEndImpl; -var trimStringStart = !!String.prototype.trimStart ? function (s) { return s.trimStart(); } : function (s) { return s.replace(/^\s+/g, ""); }; -function trimEndImpl(s) { - var end = s.length - 1; - while (end >= 0) { - if (!isWhiteSpaceLike(s.charCodeAt(end))) - break; - end--; - } - return s.slice(0, end + 1); -} -function isNodeLikeSystem() { - return typeof process !== "undefined" && !!process.nextTick && !process.browser && typeof module === "object"; -} -// src/compiler/debug.ts -var LogLevel = /* @__PURE__ */ (function (LogLevel3) { - LogLevel3[LogLevel3["Off"] = 0] = "Off"; - LogLevel3[LogLevel3["Error"] = 1] = "Error"; - LogLevel3[LogLevel3["Warning"] = 2] = "Warning"; - LogLevel3[LogLevel3["Info"] = 3] = "Info"; - LogLevel3[LogLevel3["Verbose"] = 4] = "Verbose"; - return LogLevel3; -})(LogLevel || {}); -var Debug; -(function (Debug2) { - var currentAssertionLevel = 0 /* None */; - Debug2.currentLogLevel = 2 /* Warning */; - Debug2.isDebugging = false; - function shouldLog(level) { - return Debug2.currentLogLevel <= level; - } - Debug2.shouldLog = shouldLog; - function logMessage(level, s) { - if (Debug2.loggingHost && shouldLog(level)) { - Debug2.loggingHost.log(level, s); - } - } - function log(s) { - logMessage(3 /* Info */, s); - } - Debug2.log = log; - (function (_log) { - function error2(s) { - logMessage(1 /* Error */, s); - } - _log.error = error2; - function warn(s) { - logMessage(2 /* Warning */, s); - } - _log.warn = warn; - function log2(s) { - logMessage(3 /* Info */, s); - } - _log.log = log2; - function trace2(s) { - logMessage(4 /* Verbose */, s); - } - _log.trace = trace2; - })(log = Debug2.log || (Debug2.log = {})); - var assertionCache = {}; - function getAssertionLevel() { - return currentAssertionLevel; - } - Debug2.getAssertionLevel = getAssertionLevel; - function setAssertionLevel(level) { - var e_29, _t; - var prevAssertionLevel = currentAssertionLevel; - currentAssertionLevel = level; - if (level > prevAssertionLevel) { - try { - for (var _u = __values(getOwnKeys(assertionCache)), _v = _u.next(); !_v.done; _v = _u.next()) { - var key = _v.value; - var cachedFunc = assertionCache[key]; - if (cachedFunc !== void 0 && Debug2[key] !== cachedFunc.assertion && level >= cachedFunc.level) { - Debug2[key] = cachedFunc; - assertionCache[key] = void 0; - } - } - } - catch (e_29_1) { e_29 = { error: e_29_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_29) throw e_29.error; } - } - } - } - Debug2.setAssertionLevel = setAssertionLevel; - function shouldAssert(level) { - return currentAssertionLevel >= level; - } - Debug2.shouldAssert = shouldAssert; - function shouldAssertFunction(level, name) { - if (!shouldAssert(level)) { - assertionCache[name] = { level: level, assertion: Debug2[name] }; - Debug2[name] = noop; - return false; - } - return true; - } - function fail(message, stackCrawlMark) { - debugger; - var e = new Error(message ? "Debug Failure. ".concat(message) : "Debug Failure."); - if (Error.captureStackTrace) { - Error.captureStackTrace(e, stackCrawlMark || fail); - } - throw e; - } - Debug2.fail = fail; - function failBadSyntaxKind(node, message, stackCrawlMark) { - return fail("".concat(message || "Unexpected node.", "\r\nNode ").concat(formatSyntaxKind(node.kind), " was unexpected."), stackCrawlMark || failBadSyntaxKind); - } - Debug2.failBadSyntaxKind = failBadSyntaxKind; - function assert(expression, message, verboseDebugInfo, stackCrawlMark) { - if (!expression) { - message = message ? "False expression: ".concat(message) : "False expression."; - if (verboseDebugInfo) { - message += "\r\nVerbose Debug Information: " + (typeof verboseDebugInfo === "string" ? verboseDebugInfo : verboseDebugInfo()); - } - fail(message, stackCrawlMark || assert); - } - } - Debug2.assert = assert; - function assertEqual(a, b, msg, msg2, stackCrawlMark) { - if (a !== b) { - var message = msg ? msg2 ? "".concat(msg, " ").concat(msg2) : msg : ""; - fail("Expected ".concat(a, " === ").concat(b, ". ").concat(message), stackCrawlMark || assertEqual); - } - } - Debug2.assertEqual = assertEqual; - function assertLessThan(a, b, msg, stackCrawlMark) { - if (a >= b) { - fail("Expected ".concat(a, " < ").concat(b, ". ").concat(msg || ""), stackCrawlMark || assertLessThan); - } - } - Debug2.assertLessThan = assertLessThan; - function assertLessThanOrEqual(a, b, stackCrawlMark) { - if (a > b) { - fail("Expected ".concat(a, " <= ").concat(b), stackCrawlMark || assertLessThanOrEqual); - } - } - Debug2.assertLessThanOrEqual = assertLessThanOrEqual; - function assertGreaterThanOrEqual(a, b, stackCrawlMark) { - if (a < b) { - fail("Expected ".concat(a, " >= ").concat(b), stackCrawlMark || assertGreaterThanOrEqual); - } - } - Debug2.assertGreaterThanOrEqual = assertGreaterThanOrEqual; - function assertIsDefined(value, message, stackCrawlMark) { - if (value === void 0 || value === null) { - fail(message, stackCrawlMark || assertIsDefined); - } - } - Debug2.assertIsDefined = assertIsDefined; - function checkDefined(value, message, stackCrawlMark) { - assertIsDefined(value, message, stackCrawlMark || checkDefined); - return value; - } - Debug2.checkDefined = checkDefined; - function assertEachIsDefined(value, message, stackCrawlMark) { - var e_30, _t; - try { - for (var value_1 = __values(value), value_1_1 = value_1.next(); !value_1_1.done; value_1_1 = value_1.next()) { - var v = value_1_1.value; - assertIsDefined(v, message, stackCrawlMark || assertEachIsDefined); - } - } - catch (e_30_1) { e_30 = { error: e_30_1 }; } - finally { - try { - if (value_1_1 && !value_1_1.done && (_t = value_1.return)) _t.call(value_1); - } - finally { if (e_30) throw e_30.error; } - } - } - Debug2.assertEachIsDefined = assertEachIsDefined; - function checkEachDefined(value, message, stackCrawlMark) { - assertEachIsDefined(value, message, stackCrawlMark || checkEachDefined); - return value; - } - Debug2.checkEachDefined = checkEachDefined; - function assertNever(member, message, stackCrawlMark) { - if (message === void 0) { message = "Illegal value:"; } - var detail = typeof member === "object" && hasProperty(member, "kind") && hasProperty(member, "pos") ? "SyntaxKind: " + formatSyntaxKind(member.kind) : JSON.stringify(member); - return fail("".concat(message, " ").concat(detail), stackCrawlMark || assertNever); - } - Debug2.assertNever = assertNever; - function assertEachNode(nodes, test, message, stackCrawlMark) { - if (shouldAssertFunction(1 /* Normal */, "assertEachNode")) { - assert(test === void 0 || every(nodes, test), message || "Unexpected node.", function () { return "Node array did not pass test '".concat(getFunctionName(test), "'."); }, stackCrawlMark || assertEachNode); - } - } - Debug2.assertEachNode = assertEachNode; - function assertNode(node, test, message, stackCrawlMark) { - if (shouldAssertFunction(1 /* Normal */, "assertNode")) { - assert(node !== void 0 && (test === void 0 || test(node)), message || "Unexpected node.", function () { return "Node ".concat(formatSyntaxKind(node == null ? void 0 : node.kind), " did not pass test '").concat(getFunctionName(test), "'."); }, stackCrawlMark || assertNode); - } - } - Debug2.assertNode = assertNode; - function assertNotNode(node, test, message, stackCrawlMark) { - if (shouldAssertFunction(1 /* Normal */, "assertNotNode")) { - assert(node === void 0 || test === void 0 || !test(node), message || "Unexpected node.", function () { return "Node ".concat(formatSyntaxKind(node.kind), " should not have passed test '").concat(getFunctionName(test), "'."); }, stackCrawlMark || assertNotNode); - } - } - Debug2.assertNotNode = assertNotNode; - function assertOptionalNode(node, test, message, stackCrawlMark) { - if (shouldAssertFunction(1 /* Normal */, "assertOptionalNode")) { - assert(test === void 0 || node === void 0 || test(node), message || "Unexpected node.", function () { return "Node ".concat(formatSyntaxKind(node == null ? void 0 : node.kind), " did not pass test '").concat(getFunctionName(test), "'."); }, stackCrawlMark || assertOptionalNode); - } - } - Debug2.assertOptionalNode = assertOptionalNode; - function assertOptionalToken(node, kind, message, stackCrawlMark) { - if (shouldAssertFunction(1 /* Normal */, "assertOptionalToken")) { - assert(kind === void 0 || node === void 0 || node.kind === kind, message || "Unexpected node.", function () { return "Node ".concat(formatSyntaxKind(node == null ? void 0 : node.kind), " was not a '").concat(formatSyntaxKind(kind), "' token."); }, stackCrawlMark || assertOptionalToken); - } - } - Debug2.assertOptionalToken = assertOptionalToken; - function assertMissingNode(node, message, stackCrawlMark) { - if (shouldAssertFunction(1 /* Normal */, "assertMissingNode")) { - assert(node === void 0, message || "Unexpected node.", function () { return "Node ".concat(formatSyntaxKind(node.kind), " was unexpected'."); }, stackCrawlMark || assertMissingNode); - } - } - Debug2.assertMissingNode = assertMissingNode; - function type(_value) { - } - Debug2.type = type; - function getFunctionName(func) { - if (typeof func !== "function") { - return ""; - } - else if (hasProperty(func, "name")) { - return func.name; - } - else { - var text = Function.prototype.toString.call(func); - var match = /^function\s+([\w$]+)\s*\(/.exec(text); - return match ? match[1] : ""; - } - } - Debug2.getFunctionName = getFunctionName; - function formatSymbol(symbol) { - return "{ name: ".concat(unescapeLeadingUnderscores(symbol.escapedName), "; flags: ").concat(formatSymbolFlags(symbol.flags), "; declarations: ").concat(map(symbol.declarations, function (node) { return formatSyntaxKind(node.kind); }), " }"); - } - Debug2.formatSymbol = formatSymbol; - function formatEnum(value, enumObject, isFlags) { - var e_31, _t, e_32, _u; - if (value === void 0) { value = 0; } - var members = getEnumMembers(enumObject); - if (value === 0) { - return members.length > 0 && members[0][0] === 0 ? members[0][1] : "0"; - } - if (isFlags) { - var result = []; - var remainingFlags = value; - try { - for (var members_1 = __values(members), members_1_1 = members_1.next(); !members_1_1.done; members_1_1 = members_1.next()) { - var _v = __read(members_1_1.value, 2), enumValue = _v[0], enumName = _v[1]; - if (enumValue > value) { - break; - } - if (enumValue !== 0 && enumValue & value) { - result.push(enumName); - remainingFlags &= ~enumValue; - } - } - } - catch (e_31_1) { e_31 = { error: e_31_1 }; } - finally { - try { - if (members_1_1 && !members_1_1.done && (_t = members_1.return)) _t.call(members_1); - } - finally { if (e_31) throw e_31.error; } - } - if (remainingFlags === 0) { - return result.join("|"); - } - } - else { - try { - for (var members_2 = __values(members), members_2_1 = members_2.next(); !members_2_1.done; members_2_1 = members_2.next()) { - var _w = __read(members_2_1.value, 2), enumValue = _w[0], enumName = _w[1]; - if (enumValue === value) { - return enumName; - } - } - } - catch (e_32_1) { e_32 = { error: e_32_1 }; } - finally { - try { - if (members_2_1 && !members_2_1.done && (_u = members_2.return)) _u.call(members_2); - } - finally { if (e_32) throw e_32.error; } - } - } - return value.toString(); - } - Debug2.formatEnum = formatEnum; - var enumMemberCache = /* @__PURE__ */ new Map(); - function getEnumMembers(enumObject) { - var existing = enumMemberCache.get(enumObject); - if (existing) { - return existing; - } - var result = []; - for (var name_2 in enumObject) { - var value = enumObject[name_2]; - if (typeof value === "number") { - result.push([value, name_2]); - } - } - var sorted = stableSort(result, function (x, y) { return compareValues(x[0], y[0]); }); - enumMemberCache.set(enumObject, sorted); - return sorted; - } - function formatSyntaxKind(kind) { - return formatEnum(kind, SyntaxKind, - /*isFlags*/ - false); - } - Debug2.formatSyntaxKind = formatSyntaxKind; - function formatSnippetKind(kind) { - return formatEnum(kind, SnippetKind, - /*isFlags*/ - false); - } - Debug2.formatSnippetKind = formatSnippetKind; - function formatScriptKind(kind) { - return formatEnum(kind, ScriptKind, - /*isFlags*/ - false); - } - Debug2.formatScriptKind = formatScriptKind; - function formatNodeFlags(flags) { - return formatEnum(flags, NodeFlags, - /*isFlags*/ - true); - } - Debug2.formatNodeFlags = formatNodeFlags; - function formatModifierFlags(flags) { - return formatEnum(flags, ModifierFlags, - /*isFlags*/ - true); - } - Debug2.formatModifierFlags = formatModifierFlags; - function formatTransformFlags(flags) { - return formatEnum(flags, TransformFlags, - /*isFlags*/ - true); - } - Debug2.formatTransformFlags = formatTransformFlags; - function formatEmitFlags(flags) { - return formatEnum(flags, EmitFlags, - /*isFlags*/ - true); - } - Debug2.formatEmitFlags = formatEmitFlags; - function formatSymbolFlags(flags) { - return formatEnum(flags, SymbolFlags, - /*isFlags*/ - true); - } - Debug2.formatSymbolFlags = formatSymbolFlags; - function formatTypeFlags(flags) { - return formatEnum(flags, TypeFlags, - /*isFlags*/ - true); - } - Debug2.formatTypeFlags = formatTypeFlags; - function formatSignatureFlags(flags) { - return formatEnum(flags, SignatureFlags, - /*isFlags*/ - true); - } - Debug2.formatSignatureFlags = formatSignatureFlags; - function formatObjectFlags(flags) { - return formatEnum(flags, ObjectFlags, - /*isFlags*/ - true); - } - Debug2.formatObjectFlags = formatObjectFlags; - function formatFlowFlags(flags) { - return formatEnum(flags, FlowFlags, - /*isFlags*/ - true); - } - Debug2.formatFlowFlags = formatFlowFlags; - function formatRelationComparisonResult(result) { - return formatEnum(result, RelationComparisonResult, - /*isFlags*/ - true); - } - Debug2.formatRelationComparisonResult = formatRelationComparisonResult; - function formatCheckMode(mode) { - return formatEnum(mode, CheckMode, - /*isFlags*/ - true); - } - Debug2.formatCheckMode = formatCheckMode; - function formatSignatureCheckMode(mode) { - return formatEnum(mode, SignatureCheckMode, - /*isFlags*/ - true); - } - Debug2.formatSignatureCheckMode = formatSignatureCheckMode; - function formatTypeFacts(facts) { - return formatEnum(facts, TypeFacts, - /*isFlags*/ - true); - } - Debug2.formatTypeFacts = formatTypeFacts; - var isDebugInfoEnabled = false; - var flowNodeProto; - function attachFlowNodeDebugInfoWorker(flowNode) { - if (!("__debugFlowFlags" in flowNode)) { - Object.defineProperties(flowNode, { - // for use with vscode-js-debug's new customDescriptionGenerator in launch.json - __tsDebuggerDisplay: { - value: function () { - var flowHeader = this.flags & 2 /* Start */ ? "FlowStart" : this.flags & 4 /* BranchLabel */ ? "FlowBranchLabel" : this.flags & 8 /* LoopLabel */ ? "FlowLoopLabel" : this.flags & 16 /* Assignment */ ? "FlowAssignment" : this.flags & 32 /* TrueCondition */ ? "FlowTrueCondition" : this.flags & 64 /* FalseCondition */ ? "FlowFalseCondition" : this.flags & 128 /* SwitchClause */ ? "FlowSwitchClause" : this.flags & 256 /* ArrayMutation */ ? "FlowArrayMutation" : this.flags & 512 /* Call */ ? "FlowCall" : this.flags & 1024 /* ReduceLabel */ ? "FlowReduceLabel" : this.flags & 1 /* Unreachable */ ? "FlowUnreachable" : "UnknownFlow"; - var remainingFlags = this.flags & ~(2048 /* Referenced */ - 1); - return "".concat(flowHeader).concat(remainingFlags ? " (".concat(formatFlowFlags(remainingFlags), ")") : ""); - } - }, - __debugFlowFlags: { get: function () { - return formatEnum(this.flags, FlowFlags, - /*isFlags*/ - true); - } }, - __debugToString: { value: function () { - return formatControlFlowGraph(this); - } } - }); - } - } - function attachFlowNodeDebugInfo(flowNode) { - if (isDebugInfoEnabled) { - if (typeof Object.setPrototypeOf === "function") { - if (!flowNodeProto) { - flowNodeProto = Object.create(Object.prototype); - attachFlowNodeDebugInfoWorker(flowNodeProto); - } - Object.setPrototypeOf(flowNode, flowNodeProto); - } - else { - attachFlowNodeDebugInfoWorker(flowNode); - } - } - } - Debug2.attachFlowNodeDebugInfo = attachFlowNodeDebugInfo; - var nodeArrayProto; - function attachNodeArrayDebugInfoWorker(array) { - if (!("__tsDebuggerDisplay" in array)) { - Object.defineProperties(array, { - __tsDebuggerDisplay: { - value: function (defaultValue) { - defaultValue = String(defaultValue).replace(/(?:,[\s\w\d_]+:[^,]+)+\]$/, "]"); - return "NodeArray ".concat(defaultValue); - } - } - }); - } - } - function attachNodeArrayDebugInfo(array) { - if (isDebugInfoEnabled) { - if (typeof Object.setPrototypeOf === "function") { - if (!nodeArrayProto) { - nodeArrayProto = Object.create(Array.prototype); - attachNodeArrayDebugInfoWorker(nodeArrayProto); - } - Object.setPrototypeOf(array, nodeArrayProto); - } - else { - attachNodeArrayDebugInfoWorker(array); - } - } - } - Debug2.attachNodeArrayDebugInfo = attachNodeArrayDebugInfo; - function enableDebugInfo() { - var e_33, _t; - if (isDebugInfoEnabled) - return; - var weakTypeTextMap = /* @__PURE__ */ new WeakMap(); - var weakNodeTextMap = /* @__PURE__ */ new WeakMap(); - Object.defineProperties(objectAllocator.getSymbolConstructor().prototype, { - // for use with vscode-js-debug's new customDescriptionGenerator in launch.json - __tsDebuggerDisplay: { - value: function () { - var symbolHeader = this.flags & 33554432 /* Transient */ ? "TransientSymbol" : "Symbol"; - var remainingSymbolFlags = this.flags & ~33554432 /* Transient */; - return "".concat(symbolHeader, " '").concat(symbolName(this), "'").concat(remainingSymbolFlags ? " (".concat(formatSymbolFlags(remainingSymbolFlags), ")") : ""); - } - }, - __debugFlags: { get: function () { - return formatSymbolFlags(this.flags); - } } - }); - Object.defineProperties(objectAllocator.getTypeConstructor().prototype, { - // for use with vscode-js-debug's new customDescriptionGenerator in launch.json - __tsDebuggerDisplay: { - value: function () { - var typeHeader = this.flags & 98304 /* Nullable */ ? "NullableType" : this.flags & 384 /* StringOrNumberLiteral */ ? "LiteralType ".concat(JSON.stringify(this.value)) : this.flags & 2048 /* BigIntLiteral */ ? "LiteralType ".concat(this.value.negative ? "-" : "").concat(this.value.base10Value, "n") : this.flags & 8192 /* UniqueESSymbol */ ? "UniqueESSymbolType" : this.flags & 32 /* Enum */ ? "EnumType" : this.flags & 67359327 /* Intrinsic */ ? "IntrinsicType ".concat(this.intrinsicName) : this.flags & 1048576 /* Union */ ? "UnionType" : this.flags & 2097152 /* Intersection */ ? "IntersectionType" : this.flags & 4194304 /* Index */ ? "IndexType" : this.flags & 8388608 /* IndexedAccess */ ? "IndexedAccessType" : this.flags & 16777216 /* Conditional */ ? "ConditionalType" : this.flags & 33554432 /* Substitution */ ? "SubstitutionType" : this.flags & 262144 /* TypeParameter */ ? "TypeParameter" : this.flags & 524288 /* Object */ ? this.objectFlags & 3 /* ClassOrInterface */ ? "InterfaceType" : this.objectFlags & 4 /* Reference */ ? "TypeReference" : this.objectFlags & 8 /* Tuple */ ? "TupleType" : this.objectFlags & 16 /* Anonymous */ ? "AnonymousType" : this.objectFlags & 32 /* Mapped */ ? "MappedType" : this.objectFlags & 1024 /* ReverseMapped */ ? "ReverseMappedType" : this.objectFlags & 256 /* EvolvingArray */ ? "EvolvingArrayType" : "ObjectType" : "Type"; - var remainingObjectFlags = this.flags & 524288 /* Object */ ? this.objectFlags & ~1343 /* ObjectTypeKindMask */ : 0; - return "".concat(typeHeader).concat(this.symbol ? " '".concat(symbolName(this.symbol), "'") : "").concat(remainingObjectFlags ? " (".concat(formatObjectFlags(remainingObjectFlags), ")") : ""); - } - }, - __debugFlags: { get: function () { - return formatTypeFlags(this.flags); - } }, - __debugObjectFlags: { get: function () { - return this.flags & 524288 /* Object */ ? formatObjectFlags(this.objectFlags) : ""; - } }, - __debugTypeToString: { - value: function () { - var text = weakTypeTextMap.get(this); - if (text === void 0) { - text = this.checker.typeToString(this); - weakTypeTextMap.set(this, text); - } - return text; - } - } - }); - Object.defineProperties(objectAllocator.getSignatureConstructor().prototype, { - __debugFlags: { get: function () { - return formatSignatureFlags(this.flags); - } }, - __debugSignatureToString: { value: function () { - var _a; - return (_a = this.checker) == null ? void 0 : _a.signatureToString(this); - } } - }); - var nodeConstructors = [ - objectAllocator.getNodeConstructor(), - objectAllocator.getIdentifierConstructor(), - objectAllocator.getTokenConstructor(), - objectAllocator.getSourceFileConstructor() - ]; - try { - for (var nodeConstructors_1 = __values(nodeConstructors), nodeConstructors_1_1 = nodeConstructors_1.next(); !nodeConstructors_1_1.done; nodeConstructors_1_1 = nodeConstructors_1.next()) { - var ctor = nodeConstructors_1_1.value; - if (!hasProperty(ctor.prototype, "__debugKind")) { - Object.defineProperties(ctor.prototype, { - // for use with vscode-js-debug's new customDescriptionGenerator in launch.json - __tsDebuggerDisplay: { - value: function () { - var nodeHeader = isGeneratedIdentifier(this) ? "GeneratedIdentifier" : isIdentifier(this) ? "Identifier '".concat(idText(this), "'") : isPrivateIdentifier(this) ? "PrivateIdentifier '".concat(idText(this), "'") : isStringLiteral(this) ? "StringLiteral ".concat(JSON.stringify(this.text.length < 10 ? this.text : this.text.slice(10) + "...")) : isNumericLiteral(this) ? "NumericLiteral ".concat(this.text) : isBigIntLiteral(this) ? "BigIntLiteral ".concat(this.text, "n") : isTypeParameterDeclaration(this) ? "TypeParameterDeclaration" : isParameter(this) ? "ParameterDeclaration" : isConstructorDeclaration(this) ? "ConstructorDeclaration" : isGetAccessorDeclaration(this) ? "GetAccessorDeclaration" : isSetAccessorDeclaration(this) ? "SetAccessorDeclaration" : isCallSignatureDeclaration(this) ? "CallSignatureDeclaration" : isConstructSignatureDeclaration(this) ? "ConstructSignatureDeclaration" : isIndexSignatureDeclaration(this) ? "IndexSignatureDeclaration" : isTypePredicateNode(this) ? "TypePredicateNode" : isTypeReferenceNode(this) ? "TypeReferenceNode" : isFunctionTypeNode(this) ? "FunctionTypeNode" : isConstructorTypeNode(this) ? "ConstructorTypeNode" : isTypeQueryNode(this) ? "TypeQueryNode" : isTypeLiteralNode(this) ? "TypeLiteralNode" : isArrayTypeNode(this) ? "ArrayTypeNode" : isTupleTypeNode(this) ? "TupleTypeNode" : isOptionalTypeNode(this) ? "OptionalTypeNode" : isRestTypeNode(this) ? "RestTypeNode" : isUnionTypeNode(this) ? "UnionTypeNode" : isIntersectionTypeNode(this) ? "IntersectionTypeNode" : isConditionalTypeNode(this) ? "ConditionalTypeNode" : isInferTypeNode(this) ? "InferTypeNode" : isParenthesizedTypeNode(this) ? "ParenthesizedTypeNode" : isThisTypeNode(this) ? "ThisTypeNode" : isTypeOperatorNode(this) ? "TypeOperatorNode" : isIndexedAccessTypeNode(this) ? "IndexedAccessTypeNode" : isMappedTypeNode(this) ? "MappedTypeNode" : isLiteralTypeNode(this) ? "LiteralTypeNode" : isNamedTupleMember(this) ? "NamedTupleMember" : isImportTypeNode(this) ? "ImportTypeNode" : formatSyntaxKind(this.kind); - return "".concat(nodeHeader).concat(this.flags ? " (".concat(formatNodeFlags(this.flags), ")") : ""); - } - }, - __debugKind: { get: function () { - return formatSyntaxKind(this.kind); - } }, - __debugNodeFlags: { get: function () { - return formatNodeFlags(this.flags); - } }, - __debugModifierFlags: { get: function () { - return formatModifierFlags(getEffectiveModifierFlagsNoCache(this)); - } }, - __debugTransformFlags: { get: function () { - return formatTransformFlags(this.transformFlags); - } }, - __debugIsParseTreeNode: { get: function () { - return isParseTreeNode(this); - } }, - __debugEmitFlags: { get: function () { - return formatEmitFlags(getEmitFlags(this)); - } }, - __debugGetText: { - value: function (includeTrivia) { - if (nodeIsSynthesized(this)) - return ""; - var text = weakNodeTextMap.get(this); - if (text === void 0) { - var parseNode = getParseTreeNode(this); - var sourceFile = parseNode && getSourceFileOfNode(parseNode); - text = sourceFile ? getSourceTextOfNodeFromSourceFile(sourceFile, parseNode, includeTrivia) : ""; - weakNodeTextMap.set(this, text); - } - return text; - } - } - }); - } - } - } - catch (e_33_1) { e_33 = { error: e_33_1 }; } - finally { - try { - if (nodeConstructors_1_1 && !nodeConstructors_1_1.done && (_t = nodeConstructors_1.return)) _t.call(nodeConstructors_1); - } - finally { if (e_33) throw e_33.error; } - } - isDebugInfoEnabled = true; - } - Debug2.enableDebugInfo = enableDebugInfo; - function formatVariance(varianceFlags) { - var variance = varianceFlags & 7 /* VarianceMask */; - var result = variance === 0 /* Invariant */ ? "in out" : variance === 3 /* Bivariant */ ? "[bivariant]" : variance === 2 /* Contravariant */ ? "in" : variance === 1 /* Covariant */ ? "out" : variance === 4 /* Independent */ ? "[independent]" : ""; - if (varianceFlags & 8 /* Unmeasurable */) { - result += " (unmeasurable)"; - } - else if (varianceFlags & 16 /* Unreliable */) { - result += " (unreliable)"; - } - return result; - } - Debug2.formatVariance = formatVariance; - var DebugTypeMapper = /** @class */ (function () { - function DebugTypeMapper() { - } - DebugTypeMapper.prototype.__debugToString = function () { - var _a; - type(this); - switch (this.kind) { - case 3 /* Function */: - return ((_a = this.debugInfo) == null ? void 0 : _a.call(this)) || "(function mapper)"; - case 0 /* Simple */: - return "".concat(this.source.__debugTypeToString(), " -> ").concat(this.target.__debugTypeToString()); - case 1 /* Array */: - return zipWith(this.sources, this.targets || map(this.sources, function () { return "any"; }), function (s, t) { return "".concat(s.__debugTypeToString(), " -> ").concat(typeof t === "string" ? t : t.__debugTypeToString()); }).join(", "); - case 2 /* Deferred */: - return zipWith(this.sources, this.targets, function (s, t) { return "".concat(s.__debugTypeToString(), " -> ").concat(t().__debugTypeToString()); }).join(", "); - case 5 /* Merged */: - case 4 /* Composite */: - return "m1: ".concat(this.mapper1.__debugToString().split("\n").join("\n "), "\nm2: ").concat(this.mapper2.__debugToString().split("\n").join("\n ")); - default: - return assertNever(this); - } - }; - return DebugTypeMapper; - }()); - Debug2.DebugTypeMapper = DebugTypeMapper; - function attachDebugPrototypeIfDebug(mapper) { - if (Debug2.isDebugging) { - return Object.setPrototypeOf(mapper, DebugTypeMapper.prototype); - } - return mapper; - } - Debug2.attachDebugPrototypeIfDebug = attachDebugPrototypeIfDebug; - function printControlFlowGraph(flowNode) { - return console.log(formatControlFlowGraph(flowNode)); - } - Debug2.printControlFlowGraph = printControlFlowGraph; - function formatControlFlowGraph(flowNode) { - var e_34, _t; - var nextDebugFlowId = -1; - function getDebugFlowNodeId(f) { - if (!f.id) { - f.id = nextDebugFlowId; - nextDebugFlowId--; - } - return f.id; - } - var BoxCharacter; - (function (BoxCharacter2) { - BoxCharacter2["lr"] = "\u2500"; - BoxCharacter2["ud"] = "\u2502"; - BoxCharacter2["dr"] = "\u256D"; - BoxCharacter2["dl"] = "\u256E"; - BoxCharacter2["ul"] = "\u256F"; - BoxCharacter2["ur"] = "\u2570"; - BoxCharacter2["udr"] = "\u251C"; - BoxCharacter2["udl"] = "\u2524"; - BoxCharacter2["dlr"] = "\u252C"; - BoxCharacter2["ulr"] = "\u2534"; - BoxCharacter2["udlr"] = "\u256B"; - })(BoxCharacter || (BoxCharacter = {})); - var Connection; - (function (Connection2) { - Connection2[Connection2["None"] = 0] = "None"; - Connection2[Connection2["Up"] = 1] = "Up"; - Connection2[Connection2["Down"] = 2] = "Down"; - Connection2[Connection2["Left"] = 4] = "Left"; - Connection2[Connection2["Right"] = 8] = "Right"; - Connection2[Connection2["UpDown"] = 3] = "UpDown"; - Connection2[Connection2["LeftRight"] = 12] = "LeftRight"; - Connection2[Connection2["UpLeft"] = 5] = "UpLeft"; - Connection2[Connection2["UpRight"] = 9] = "UpRight"; - Connection2[Connection2["DownLeft"] = 6] = "DownLeft"; - Connection2[Connection2["DownRight"] = 10] = "DownRight"; - Connection2[Connection2["UpDownLeft"] = 7] = "UpDownLeft"; - Connection2[Connection2["UpDownRight"] = 11] = "UpDownRight"; - Connection2[Connection2["UpLeftRight"] = 13] = "UpLeftRight"; - Connection2[Connection2["DownLeftRight"] = 14] = "DownLeftRight"; - Connection2[Connection2["UpDownLeftRight"] = 15] = "UpDownLeftRight"; - Connection2[Connection2["NoChildren"] = 16] = "NoChildren"; - })(Connection || (Connection = {})); - var hasAntecedentFlags = 16 /* Assignment */ | 96 /* Condition */ | 128 /* SwitchClause */ | 256 /* ArrayMutation */ | 512 /* Call */ | 1024 /* ReduceLabel */; - var hasNodeFlags = 2 /* Start */ | 16 /* Assignment */ | 512 /* Call */ | 96 /* Condition */ | 256 /* ArrayMutation */; - var links = /* @__PURE__ */ Object.create( - /*o*/ - null); - var nodes = []; - var edges = []; - var root = buildGraphNode(flowNode, /* @__PURE__ */ new Set()); - try { - for (var nodes_1 = __values(nodes), nodes_1_1 = nodes_1.next(); !nodes_1_1.done; nodes_1_1 = nodes_1.next()) { - var node = nodes_1_1.value; - node.text = renderFlowNode(node.flowNode, node.circular); - computeLevel(node); - } - } - catch (e_34_1) { e_34 = { error: e_34_1 }; } - finally { - try { - if (nodes_1_1 && !nodes_1_1.done && (_t = nodes_1.return)) _t.call(nodes_1); - } - finally { if (e_34) throw e_34.error; } - } - var height = computeHeight(root); - var columnWidths = computeColumnWidths(height); - computeLanes(root, 0); - return renderGraph(); - function isFlowSwitchClause(f) { - return !!(f.flags & 128 /* SwitchClause */); - } - function hasAntecedents(f) { - return !!(f.flags & 12 /* Label */) && !!f.antecedents; - } - function hasAntecedent(f) { - return !!(f.flags & hasAntecedentFlags); - } - function hasNode(f) { - return !!(f.flags & hasNodeFlags); - } - function getChildren(node) { - var e_35, _t; - var children = []; - try { - for (var _u = __values(node.edges), _v = _u.next(); !_v.done; _v = _u.next()) { - var edge = _v.value; - if (edge.source === node) { - children.push(edge.target); - } - } - } - catch (e_35_1) { e_35 = { error: e_35_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_35) throw e_35.error; } - } - return children; - } - function getParents(node) { - var e_36, _t; - var parents = []; - try { - for (var _u = __values(node.edges), _v = _u.next(); !_v.done; _v = _u.next()) { - var edge = _v.value; - if (edge.target === node) { - parents.push(edge.source); - } - } - } - catch (e_36_1) { e_36 = { error: e_36_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_36) throw e_36.error; } - } - return parents; - } - function buildGraphNode(flowNode2, seen) { - var e_37, _t; - var id = getDebugFlowNodeId(flowNode2); - var graphNode = links[id]; - if (graphNode && seen.has(flowNode2)) { - graphNode.circular = true; - graphNode = { - id: -1, - flowNode: flowNode2, - edges: [], - text: "", - lane: -1, - endLane: -1, - level: -1, - circular: "circularity" - }; - nodes.push(graphNode); - return graphNode; - } - seen.add(flowNode2); - if (!graphNode) { - links[id] = graphNode = { id: id, flowNode: flowNode2, edges: [], text: "", lane: -1, endLane: -1, level: -1, circular: false }; - nodes.push(graphNode); - if (hasAntecedents(flowNode2)) { - try { - for (var _u = __values(flowNode2.antecedents), _v = _u.next(); !_v.done; _v = _u.next()) { - var antecedent = _v.value; - buildGraphEdge(graphNode, antecedent, seen); - } - } - catch (e_37_1) { e_37 = { error: e_37_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_37) throw e_37.error; } - } - } - else if (hasAntecedent(flowNode2)) { - buildGraphEdge(graphNode, flowNode2.antecedent, seen); - } - } - seen.delete(flowNode2); - return graphNode; - } - function buildGraphEdge(source, antecedent, seen) { - var target = buildGraphNode(antecedent, seen); - var edge = { source: source, target: target }; - edges.push(edge); - source.edges.push(edge); - target.edges.push(edge); - } - function computeLevel(node) { - var e_38, _t; - if (node.level !== -1) { - return node.level; - } - var level = 0; - try { - for (var _u = __values(getParents(node)), _v = _u.next(); !_v.done; _v = _u.next()) { - var parent2 = _v.value; - level = Math.max(level, computeLevel(parent2) + 1); - } - } - catch (e_38_1) { e_38 = { error: e_38_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_38) throw e_38.error; } - } - return node.level = level; - } - function computeHeight(node) { - var e_39, _t; - var height2 = 0; - try { - for (var _u = __values(getChildren(node)), _v = _u.next(); !_v.done; _v = _u.next()) { - var child = _v.value; - height2 = Math.max(height2, computeHeight(child)); - } - } - catch (e_39_1) { e_39 = { error: e_39_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_39) throw e_39.error; } - } - return height2 + 1; - } - function computeColumnWidths(height2) { - var e_40, _t; - var columns = fill(Array(height2), 0); - try { - for (var nodes_2 = __values(nodes), nodes_2_1 = nodes_2.next(); !nodes_2_1.done; nodes_2_1 = nodes_2.next()) { - var node = nodes_2_1.value; - columns[node.level] = Math.max(columns[node.level], node.text.length); - } - } - catch (e_40_1) { e_40 = { error: e_40_1 }; } - finally { - try { - if (nodes_2_1 && !nodes_2_1.done && (_t = nodes_2.return)) _t.call(nodes_2); - } - finally { if (e_40) throw e_40.error; } - } - return columns; - } - function computeLanes(node, lane) { - if (node.lane === -1) { - node.lane = lane; - node.endLane = lane; - var children = getChildren(node); - for (var i = 0; i < children.length; i++) { - if (i > 0) - lane++; - var child = children[i]; - computeLanes(child, lane); - if (child.endLane > node.endLane) { - lane = child.endLane; - } - } - node.endLane = lane; - } - } - function getHeader(flags) { - if (flags & 2 /* Start */) - return "Start"; - if (flags & 4 /* BranchLabel */) - return "Branch"; - if (flags & 8 /* LoopLabel */) - return "Loop"; - if (flags & 16 /* Assignment */) - return "Assignment"; - if (flags & 32 /* TrueCondition */) - return "True"; - if (flags & 64 /* FalseCondition */) - return "False"; - if (flags & 128 /* SwitchClause */) - return "SwitchClause"; - if (flags & 256 /* ArrayMutation */) - return "ArrayMutation"; - if (flags & 512 /* Call */) - return "Call"; - if (flags & 1024 /* ReduceLabel */) - return "ReduceLabel"; - if (flags & 1 /* Unreachable */) - return "Unreachable"; - throw new Error(); - } - function getNodeText(node) { - var sourceFile = getSourceFileOfNode(node); - return getSourceTextOfNodeFromSourceFile(sourceFile, node, - /*includeTrivia*/ - false); - } - function renderFlowNode(flowNode2, circular) { - var text = getHeader(flowNode2.flags); - if (circular) { - text = "".concat(text, "#").concat(getDebugFlowNodeId(flowNode2)); - } - if (hasNode(flowNode2)) { - if (flowNode2.node) { - text += " (".concat(getNodeText(flowNode2.node), ")"); - } - } - else if (isFlowSwitchClause(flowNode2)) { - var clauses = []; - for (var i = flowNode2.clauseStart; i < flowNode2.clauseEnd; i++) { - var clause = flowNode2.switchStatement.caseBlock.clauses[i]; - if (isDefaultClause(clause)) { - clauses.push("default"); - } - else { - clauses.push(getNodeText(clause.expression)); - } - } - text += " (".concat(clauses.join(", "), ")"); - } - return circular === "circularity" ? "Circular(".concat(text, ")") : text; - } - function renderGraph() { - var e_41, _t; - var columnCount = columnWidths.length; - var laneCount = nodes.reduce(function (x, n) { return Math.max(x, n.lane); }, 0) + 1; - var lanes = fill(Array(laneCount), ""); - var grid = columnWidths.map(function () { return Array(laneCount); }); - var connectors = columnWidths.map(function () { return fill(Array(laneCount), 0); }); - try { - for (var nodes_3 = __values(nodes), nodes_3_1 = nodes_3.next(); !nodes_3_1.done; nodes_3_1 = nodes_3.next()) { - var node = nodes_3_1.value; - grid[node.level][node.lane] = node; - var children = getChildren(node); - for (var i = 0; i < children.length; i++) { - var child = children[i]; - var connector = 8 /* Right */; - if (child.lane === node.lane) - connector |= 4 /* Left */; - if (i > 0) - connector |= 1 /* Up */; - if (i < children.length - 1) - connector |= 2 /* Down */; - connectors[node.level][child.lane] |= connector; - } - if (children.length === 0) { - connectors[node.level][node.lane] |= 16 /* NoChildren */; - } - var parents = getParents(node); - for (var i = 0; i < parents.length; i++) { - var parent2 = parents[i]; - var connector = 4 /* Left */; - if (i > 0) - connector |= 1 /* Up */; - if (i < parents.length - 1) - connector |= 2 /* Down */; - connectors[node.level - 1][parent2.lane] |= connector; - } - } - } - catch (e_41_1) { e_41 = { error: e_41_1 }; } - finally { - try { - if (nodes_3_1 && !nodes_3_1.done && (_t = nodes_3.return)) _t.call(nodes_3); - } - finally { if (e_41) throw e_41.error; } - } - for (var column = 0; column < columnCount; column++) { - for (var lane = 0; lane < laneCount; lane++) { - var left = column > 0 ? connectors[column - 1][lane] : 0; - var above = lane > 0 ? connectors[column][lane - 1] : 0; - var connector = connectors[column][lane]; - if (!connector) { - if (left & 8 /* Right */) - connector |= 12 /* LeftRight */; - if (above & 2 /* Down */) - connector |= 3 /* UpDown */; - connectors[column][lane] = connector; - } - } - } - for (var column = 0; column < columnCount; column++) { - for (var lane = 0; lane < lanes.length; lane++) { - var connector = connectors[column][lane]; - var fill2 = connector & 4 /* Left */ ? "\u2500" /* lr */ : " "; - var node = grid[column][lane]; - if (!node) { - if (column < columnCount - 1) { - writeLane(lane, repeat(fill2, columnWidths[column] + 1)); - } - } - else { - writeLane(lane, node.text); - if (column < columnCount - 1) { - writeLane(lane, " "); - writeLane(lane, repeat(fill2, columnWidths[column] - node.text.length)); - } - } - writeLane(lane, getBoxCharacter(connector)); - writeLane(lane, connector & 8 /* Right */ && column < columnCount - 1 && !grid[column + 1][lane] ? "\u2500" /* lr */ : " "); - } - } - return "\n".concat(lanes.join("\n"), "\n"); - function writeLane(lane, text) { - lanes[lane] += text; - } - } - function getBoxCharacter(connector) { - switch (connector) { - case 3 /* UpDown */: - return "\u2502" /* ud */; - case 12 /* LeftRight */: - return "\u2500" /* lr */; - case 5 /* UpLeft */: - return "\u256F" /* ul */; - case 9 /* UpRight */: - return "\u2570" /* ur */; - case 6 /* DownLeft */: - return "\u256E" /* dl */; - case 10 /* DownRight */: - return "\u256D" /* dr */; - case 7 /* UpDownLeft */: - return "\u2524" /* udl */; - case 11 /* UpDownRight */: - return "\u251C" /* udr */; - case 13 /* UpLeftRight */: - return "\u2534" /* ulr */; - case 14 /* DownLeftRight */: - return "\u252C" /* dlr */; - case 15 /* UpDownLeftRight */: - return "\u256B" /* udlr */; - } - return " "; - } - function fill(array, value) { - if (array.fill) { - array.fill(value); - } - else { - for (var i = 0; i < array.length; i++) { - array[i] = value; - } - } - return array; - } - function repeat(ch, length2) { - if (ch.repeat) { - return length2 > 0 ? ch.repeat(length2) : ""; - } - var s = ""; - while (s.length < length2) { - s += ch; - } - return s; - } - } - Debug2.formatControlFlowGraph = formatControlFlowGraph; -})(Debug || (Debug = {})); -// src/compiler/semver.ts -var versionRegExp = /^(0|[1-9]\d*)(?:\.(0|[1-9]\d*)(?:\.(0|[1-9]\d*)(?:-([a-z0-9-.]+))?(?:\+([a-z0-9-.]+))?)?)?$/i; -var prereleaseRegExp = /^(?:0|[1-9]\d*|[a-z-][a-z0-9-]*)(?:\.(?:0|[1-9]\d*|[a-z-][a-z0-9-]*))*$/i; -var prereleasePartRegExp = /^(?:0|[1-9]\d*|[a-z-][a-z0-9-]*)$/i; -var buildRegExp = /^[a-z0-9-]+(?:\.[a-z0-9-]+)*$/i; -var buildPartRegExp = /^[a-z0-9-]+$/i; -var numericIdentifierRegExp = /^(0|[1-9]\d*)$/; -var _Version = /** @class */ (function () { - function _Version(major, minor, patch, prerelease, build2) { - if (minor === void 0) { minor = 0; } - if (patch === void 0) { patch = 0; } - if (prerelease === void 0) { prerelease = ""; } - if (build2 === void 0) { build2 = ""; } - if (typeof major === "string") { - var result = Debug.checkDefined(tryParseComponents(major), "Invalid version"); - (major = result.major, minor = result.minor, patch = result.patch, prerelease = result.prerelease, build2 = result.build); - } - Debug.assert(major >= 0, "Invalid argument: major"); - Debug.assert(minor >= 0, "Invalid argument: minor"); - Debug.assert(patch >= 0, "Invalid argument: patch"); - var prereleaseArray = prerelease ? isArray(prerelease) ? prerelease : prerelease.split(".") : emptyArray; - var buildArray = build2 ? isArray(build2) ? build2 : build2.split(".") : emptyArray; - Debug.assert(every(prereleaseArray, function (s) { return prereleasePartRegExp.test(s); }), "Invalid argument: prerelease"); - Debug.assert(every(buildArray, function (s) { return buildPartRegExp.test(s); }), "Invalid argument: build"); - this.major = major; - this.minor = minor; - this.patch = patch; - this.prerelease = prereleaseArray; - this.build = buildArray; - } - _Version.tryParse = function (text) { - var result = tryParseComponents(text); - if (!result) - return void 0; - var major = result.major, minor = result.minor, patch = result.patch, prerelease = result.prerelease, build2 = result.build; - return new _Version(major, minor, patch, prerelease, build2); - }; - _Version.prototype.compareTo = function (other) { - if (this === other) - return 0 /* EqualTo */; - if (other === void 0) - return 1 /* GreaterThan */; - return compareValues(this.major, other.major) || compareValues(this.minor, other.minor) || compareValues(this.patch, other.patch) || comparePrereleaseIdentifiers(this.prerelease, other.prerelease); - }; - _Version.prototype.increment = function (field) { - switch (field) { - case "major": - return new _Version(this.major + 1, 0, 0); - case "minor": - return new _Version(this.major, this.minor + 1, 0); - case "patch": - return new _Version(this.major, this.minor, this.patch + 1); - default: - return Debug.assertNever(field); - } - }; - _Version.prototype.with = function (fields) { - var _t = fields.major, major = _t === void 0 ? this.major : _t, _u = fields.minor, minor = _u === void 0 ? this.minor : _u, _v = fields.patch, patch = _v === void 0 ? this.patch : _v, _w = fields.prerelease, prerelease = _w === void 0 ? this.prerelease : _w, _x = fields.build, build2 = _x === void 0 ? this.build : _x; - return new _Version(major, minor, patch, prerelease, build2); - }; - _Version.prototype.toString = function () { - var result = "".concat(this.major, ".").concat(this.minor, ".").concat(this.patch); - if (some(this.prerelease)) - result += "-".concat(this.prerelease.join(".")); - if (some(this.build)) - result += "+".concat(this.build.join(".")); - return result; - }; - return _Version; -}()); -_Version.zero = new _Version(0, 0, 0, ["0"]); -var Version = _Version; -function tryParseComponents(text) { - var match = versionRegExp.exec(text); - if (!match) - return void 0; - var _t = __read(match, 6), major = _t[1], _u = _t[2], minor = _u === void 0 ? "0" : _u, _v = _t[3], patch = _v === void 0 ? "0" : _v, _w = _t[4], prerelease = _w === void 0 ? "" : _w, _x = _t[5], build2 = _x === void 0 ? "" : _x; - if (prerelease && !prereleaseRegExp.test(prerelease)) - return void 0; - if (build2 && !buildRegExp.test(build2)) - return void 0; - return { - major: parseInt(major, 10), - minor: parseInt(minor, 10), - patch: parseInt(patch, 10), - prerelease: prerelease, - build: build2 - }; -} -function comparePrereleaseIdentifiers(left, right) { - if (left === right) - return 0 /* EqualTo */; - if (left.length === 0) - return right.length === 0 ? 0 /* EqualTo */ : 1 /* GreaterThan */; - if (right.length === 0) - return -1 /* LessThan */; - var length2 = Math.min(left.length, right.length); - for (var i = 0; i < length2; i++) { - var leftIdentifier = left[i]; - var rightIdentifier = right[i]; - if (leftIdentifier === rightIdentifier) - continue; - var leftIsNumeric = numericIdentifierRegExp.test(leftIdentifier); - var rightIsNumeric = numericIdentifierRegExp.test(rightIdentifier); - if (leftIsNumeric || rightIsNumeric) { - if (leftIsNumeric !== rightIsNumeric) - return leftIsNumeric ? -1 /* LessThan */ : 1 /* GreaterThan */; - var result = compareValues(+leftIdentifier, +rightIdentifier); - if (result) - return result; - } - else { - var result = compareStringsCaseSensitive(leftIdentifier, rightIdentifier); - if (result) - return result; - } - } - return compareValues(left.length, right.length); -} -var VersionRange = /** @class */ (function () { - function _VersionRange(spec) { - this._alternatives = spec ? Debug.checkDefined(parseRange(spec), "Invalid range spec.") : emptyArray; - } - _VersionRange.tryParse = function (text) { - var sets = parseRange(text); - if (sets) { - var range = new _VersionRange(""); - range._alternatives = sets; - return range; - } - return void 0; - }; - /** - * Tests whether a version matches the range. This is equivalent to `satisfies(version, range, { includePrerelease: true })`. - * in `node-semver`. - */ - _VersionRange.prototype.test = function (version2) { - if (typeof version2 === "string") - version2 = new Version(version2); - return testDisjunction(version2, this._alternatives); - }; - _VersionRange.prototype.toString = function () { - return formatDisjunction(this._alternatives); - }; - return _VersionRange; -}()); -var logicalOrRegExp = /\|\|/g; -var whitespaceRegExp = /\s+/g; -var partialRegExp = /^([xX*0]|[1-9]\d*)(?:\.([xX*0]|[1-9]\d*)(?:\.([xX*0]|[1-9]\d*)(?:-([a-z0-9-.]+))?(?:\+([a-z0-9-.]+))?)?)?$/i; -var hyphenRegExp = /^\s*([a-z0-9-+.*]+)\s+-\s+([a-z0-9-+.*]+)\s*$/i; -var rangeRegExp = /^(~|\^|<|<=|>|>=|=)?\s*([a-z0-9-+.*]+)$/i; -function parseRange(text) { - var e_42, _t, e_43, _u; - var alternatives = []; - try { - for (var _v = __values(trimString(text).split(logicalOrRegExp)), _w = _v.next(); !_w.done; _w = _v.next()) { - var range = _w.value; - if (!range) - continue; - var comparators = []; - range = trimString(range); - var match = hyphenRegExp.exec(range); - if (match) { - if (!parseHyphen(match[1], match[2], comparators)) - return void 0; - } - else { - try { - for (var _x = (e_43 = void 0, __values(range.split(whitespaceRegExp))), _y = _x.next(); !_y.done; _y = _x.next()) { - var simple = _y.value; - var match2 = rangeRegExp.exec(trimString(simple)); - if (!match2 || !parseComparator(match2[1], match2[2], comparators)) - return void 0; - } - } - catch (e_43_1) { e_43 = { error: e_43_1 }; } - finally { - try { - if (_y && !_y.done && (_u = _x.return)) _u.call(_x); - } - finally { if (e_43) throw e_43.error; } - } - } - alternatives.push(comparators); - } - } - catch (e_42_1) { e_42 = { error: e_42_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_42) throw e_42.error; } - } - return alternatives; -} -function parsePartial(text) { - var match = partialRegExp.exec(text); - if (!match) - return void 0; - var _t = __read(match, 6), major = _t[1], _u = _t[2], minor = _u === void 0 ? "*" : _u, _v = _t[3], patch = _v === void 0 ? "*" : _v, prerelease = _t[4], build2 = _t[5]; - var version2 = new Version(isWildcard(major) ? 0 : parseInt(major, 10), isWildcard(major) || isWildcard(minor) ? 0 : parseInt(minor, 10), isWildcard(major) || isWildcard(minor) || isWildcard(patch) ? 0 : parseInt(patch, 10), prerelease, build2); - return { version: version2, major: major, minor: minor, patch: patch }; -} -function parseHyphen(left, right, comparators) { - var leftResult = parsePartial(left); - if (!leftResult) - return false; - var rightResult = parsePartial(right); - if (!rightResult) - return false; - if (!isWildcard(leftResult.major)) { - comparators.push(createComparator(">=", leftResult.version)); - } - if (!isWildcard(rightResult.major)) { - comparators.push(isWildcard(rightResult.minor) ? createComparator("<", rightResult.version.increment("major")) : isWildcard(rightResult.patch) ? createComparator("<", rightResult.version.increment("minor")) : createComparator("<=", rightResult.version)); - } - return true; -} -function parseComparator(operator, text, comparators) { - var result = parsePartial(text); - if (!result) - return false; - var version2 = result.version, major = result.major, minor = result.minor, patch = result.patch; - if (!isWildcard(major)) { - switch (operator) { - case "~": - comparators.push(createComparator(">=", version2)); - comparators.push(createComparator("<", version2.increment(isWildcard(minor) ? "major" : "minor"))); - break; - case "^": - comparators.push(createComparator(">=", version2)); - comparators.push(createComparator("<", version2.increment(version2.major > 0 || isWildcard(minor) ? "major" : version2.minor > 0 || isWildcard(patch) ? "minor" : "patch"))); - break; - case "<": - case ">=": - comparators.push(isWildcard(minor) || isWildcard(patch) ? createComparator(operator, version2.with({ prerelease: "0" })) : createComparator(operator, version2)); - break; - case "<=": - case ">": - comparators.push(isWildcard(minor) ? createComparator(operator === "<=" ? "<" : ">=", version2.increment("major").with({ prerelease: "0" })) : isWildcard(patch) ? createComparator(operator === "<=" ? "<" : ">=", version2.increment("minor").with({ prerelease: "0" })) : createComparator(operator, version2)); - break; - case "=": - case void 0: - if (isWildcard(minor) || isWildcard(patch)) { - comparators.push(createComparator(">=", version2.with({ prerelease: "0" }))); - comparators.push(createComparator("<", version2.increment(isWildcard(minor) ? "major" : "minor").with({ prerelease: "0" }))); - } - else { - comparators.push(createComparator("=", version2)); - } - break; - default: - return false; - } - } - else if (operator === "<" || operator === ">") { - comparators.push(createComparator("<", Version.zero)); - } - return true; -} -function isWildcard(part) { - return part === "*" || part === "x" || part === "X"; -} -function createComparator(operator, operand) { - return { operator: operator, operand: operand }; -} -function testDisjunction(version2, alternatives) { - var e_44, _t; - if (alternatives.length === 0) - return true; - try { - for (var alternatives_1 = __values(alternatives), alternatives_1_1 = alternatives_1.next(); !alternatives_1_1.done; alternatives_1_1 = alternatives_1.next()) { - var alternative = alternatives_1_1.value; - if (testAlternative(version2, alternative)) - return true; - } - } - catch (e_44_1) { e_44 = { error: e_44_1 }; } - finally { - try { - if (alternatives_1_1 && !alternatives_1_1.done && (_t = alternatives_1.return)) _t.call(alternatives_1); - } - finally { if (e_44) throw e_44.error; } - } - return false; -} -function testAlternative(version2, comparators) { - var e_45, _t; - try { - for (var comparators_1 = __values(comparators), comparators_1_1 = comparators_1.next(); !comparators_1_1.done; comparators_1_1 = comparators_1.next()) { - var comparator = comparators_1_1.value; - if (!testComparator(version2, comparator.operator, comparator.operand)) - return false; - } - } - catch (e_45_1) { e_45 = { error: e_45_1 }; } - finally { - try { - if (comparators_1_1 && !comparators_1_1.done && (_t = comparators_1.return)) _t.call(comparators_1); - } - finally { if (e_45) throw e_45.error; } - } - return true; -} -function testComparator(version2, operator, operand) { - var cmp = version2.compareTo(operand); - switch (operator) { - case "<": - return cmp < 0; - case "<=": - return cmp <= 0; - case ">": - return cmp > 0; - case ">=": - return cmp >= 0; - case "=": - return cmp === 0; - default: - return Debug.assertNever(operator); - } -} -function formatDisjunction(alternatives) { - return map(alternatives, formatAlternative).join(" || ") || "*"; -} -function formatAlternative(comparators) { - return map(comparators, formatComparator).join(" "); -} -function formatComparator(comparator) { - return "".concat(comparator.operator).concat(comparator.operand); -} -// src/compiler/performanceCore.ts -function hasRequiredAPI(performance2, PerformanceObserver2) { - return typeof performance2 === "object" && typeof performance2.timeOrigin === "number" && typeof performance2.mark === "function" && typeof performance2.measure === "function" && typeof performance2.now === "function" && typeof performance2.clearMarks === "function" && typeof performance2.clearMeasures === "function" && typeof PerformanceObserver2 === "function"; -} -function tryGetWebPerformanceHooks() { - if (typeof performance === "object" && typeof PerformanceObserver === "function" && hasRequiredAPI(performance, PerformanceObserver)) { - return { - // For now we always write native performance events when running in the browser. We may - // make this conditional in the future if we find that native web performance hooks - // in the browser also slow down compilation. - shouldWriteNativeEvents: true, - performance: performance, - PerformanceObserver: PerformanceObserver - }; - } -} -function tryGetNodePerformanceHooks() { - if (isNodeLikeSystem()) { - try { - var _t = require("perf_hooks"), performance2 = _t.performance, PerformanceObserver2 = _t.PerformanceObserver; - if (hasRequiredAPI(performance2, PerformanceObserver2)) { - return { - // By default, only write native events when generating a cpu profile or using the v8 profiler. - shouldWriteNativeEvents: false, - performance: performance2, - PerformanceObserver: PerformanceObserver2 - }; - } - } - catch (_u) { - } - } -} -var nativePerformanceHooks = tryGetWebPerformanceHooks() || tryGetNodePerformanceHooks(); -var nativePerformance = nativePerformanceHooks == null ? void 0 : nativePerformanceHooks.performance; -function tryGetNativePerformanceHooks() { - return nativePerformanceHooks; -} -var timestamp = nativePerformance ? function () { return nativePerformance.now(); } : Date.now ? Date.now : function () { return +new Date(); }; -// src/compiler/perfLogger.ts -var etwModule; -try { - var etwModulePath = (_10 = process.env.TS_ETW_MODULE_PATH) !== null && _10 !== void 0 ? _10 : "./node_modules/@microsoft/typescript-etw"; - etwModule = require(etwModulePath); -} -catch (e) { - etwModule = void 0; -} -var perfLogger = (etwModule == null ? void 0 : etwModule.logEvent) ? etwModule : void 0; -// src/compiler/_namespaces/ts.performance.ts -var ts_performance_exports = {}; -__export(ts_performance_exports, { - clearMarks: function () { return clearMarks; }, - clearMeasures: function () { return clearMeasures; }, - createTimer: function () { return createTimer; }, - createTimerIf: function () { return createTimerIf; }, - disable: function () { return disable; }, - enable: function () { return enable; }, - forEachMark: function () { return forEachMark; }, - forEachMeasure: function () { return forEachMeasure; }, - getCount: function () { return getCount; }, - getDuration: function () { return getDuration; }, - isEnabled: function () { return isEnabled; }, - mark: function () { return mark; }, - measure: function () { return measure; }, - nullTimer: function () { return nullTimer; } -}); -// src/compiler/performance.ts -var perfHooks; -var performanceImpl; -function createTimerIf(condition, measureName, startMarkName, endMarkName) { - return condition ? createTimer(measureName, startMarkName, endMarkName) : nullTimer; -} -function createTimer(measureName, startMarkName, endMarkName) { - var enterCount = 0; - return { - enter: enter, - exit: exit - }; - function enter() { - if (++enterCount === 1) { - mark(startMarkName); - } - } - function exit() { - if (--enterCount === 0) { - mark(endMarkName); - measure(measureName, startMarkName, endMarkName); - } - else if (enterCount < 0) { - Debug.fail("enter/exit count does not match."); - } - } -} -var nullTimer = { enter: noop, exit: noop }; -var enabled = false; -var timeorigin = timestamp(); -var marks = /* @__PURE__ */ new Map(); -var counts = /* @__PURE__ */ new Map(); -var durations = /* @__PURE__ */ new Map(); -function mark(markName) { - var _t; - if (enabled) { - var count = (_t = counts.get(markName)) !== null && _t !== void 0 ? _t : 0; - counts.set(markName, count + 1); - marks.set(markName, timestamp()); - performanceImpl == null ? void 0 : performanceImpl.mark(markName); - if (typeof onProfilerEvent === "function") { - onProfilerEvent(markName); - } - } -} -function measure(measureName, startMarkName, endMarkName) { - var _t, _u; - if (enabled) { - var end = (_t = (endMarkName !== void 0 ? marks.get(endMarkName) : void 0)) !== null && _t !== void 0 ? _t : timestamp(); - var start2 = (_u = (startMarkName !== void 0 ? marks.get(startMarkName) : void 0)) !== null && _u !== void 0 ? _u : timeorigin; - var previousDuration = durations.get(measureName) || 0; - durations.set(measureName, previousDuration + (end - start2)); - performanceImpl == null ? void 0 : performanceImpl.measure(measureName, startMarkName, endMarkName); - } -} -function getCount(markName) { - return counts.get(markName) || 0; -} -function getDuration(measureName) { - return durations.get(measureName) || 0; -} -function forEachMeasure(cb) { - durations.forEach(function (duration, measureName) { return cb(measureName, duration); }); -} -function forEachMark(cb) { - marks.forEach(function (_time, markName) { return cb(markName); }); -} -function clearMeasures(name) { - if (name !== void 0) - durations.delete(name); - else - durations.clear(); - performanceImpl == null ? void 0 : performanceImpl.clearMeasures(name); -} -function clearMarks(name) { - if (name !== void 0) { - counts.delete(name); - marks.delete(name); - } - else { - counts.clear(); - marks.clear(); - } - performanceImpl == null ? void 0 : performanceImpl.clearMarks(name); -} -function isEnabled() { - return enabled; -} -function enable(system) { - if (system === void 0) { system = sys; } - var _a; - if (!enabled) { - enabled = true; - perfHooks || (perfHooks = tryGetNativePerformanceHooks()); - if (perfHooks) { - timeorigin = perfHooks.performance.timeOrigin; - if (perfHooks.shouldWriteNativeEvents || ((_a = system == null ? void 0 : system.cpuProfilingEnabled) == null ? void 0 : _a.call(system)) || (system == null ? void 0 : system.debugMode)) { - performanceImpl = perfHooks.performance; - } - } - } - return true; -} -function disable() { - if (enabled) { - marks.clear(); - counts.clear(); - durations.clear(); - performanceImpl = void 0; - enabled = false; - } -} -// src/compiler/tracing.ts -var tracing; -var tracingEnabled; -(function (tracingEnabled2) { - var fs; - var traceCount = 0; - var traceFd = 0; - var mode; - var typeCatalog = []; - var legendPath; - var legend = []; - function startTracing2(tracingMode, traceDir, configFilePath) { - Debug.assert(!tracing, "Tracing already started"); - if (fs === void 0) { - try { - fs = require("fs"); - } - catch (e) { - throw new Error("tracing requires having fs\n(original error: ".concat(e.message || e, ")")); - } - } - mode = tracingMode; - typeCatalog.length = 0; - if (legendPath === void 0) { - legendPath = combinePaths(traceDir, "legend.json"); - } - if (!fs.existsSync(traceDir)) { - fs.mkdirSync(traceDir, { recursive: true }); - } - var countPart = mode === "build" ? ".".concat(process.pid, "-").concat(++traceCount) : mode === "server" ? ".".concat(process.pid) : ""; - var tracePath = combinePaths(traceDir, "trace".concat(countPart, ".json")); - var typesPath = combinePaths(traceDir, "types".concat(countPart, ".json")); - legend.push({ - configFilePath: configFilePath, - tracePath: tracePath, - typesPath: typesPath - }); - traceFd = fs.openSync(tracePath, "w"); - tracing = tracingEnabled2; - var meta = { cat: "__metadata", ph: "M", ts: 1e3 * timestamp(), pid: 1, tid: 1 }; - fs.writeSync(traceFd, "[\n" + [ - __assign({ name: "process_name", args: { name: "tsc" } }, meta), - __assign({ name: "thread_name", args: { name: "Main" } }, meta), - __assign(__assign({ name: "TracingStartedInBrowser" }, meta), { cat: "disabled-by-default-devtools.timeline" }) - ].map(function (v) { return JSON.stringify(v); }).join(",\n")); - } - tracingEnabled2.startTracing = startTracing2; - function stopTracing() { - Debug.assert(tracing, "Tracing is not in progress"); - Debug.assert(!!typeCatalog.length === (mode !== "server")); - fs.writeSync(traceFd, "\n]\n"); - fs.closeSync(traceFd); - tracing = void 0; - if (typeCatalog.length) { - dumpTypes(typeCatalog); - } - else { - legend[legend.length - 1].typesPath = void 0; - } - } - tracingEnabled2.stopTracing = stopTracing; - function recordType(type) { - if (mode !== "server") { - typeCatalog.push(type); - } - } - tracingEnabled2.recordType = recordType; - var Phase; - (function (Phase2) { - Phase2["Parse"] = "parse"; - Phase2["Program"] = "program"; - Phase2["Bind"] = "bind"; - Phase2["Check"] = "check"; - Phase2["CheckTypes"] = "checkTypes"; - Phase2["Emit"] = "emit"; - Phase2["Session"] = "session"; - })(Phase = tracingEnabled2.Phase || (tracingEnabled2.Phase = {})); - function instant(phase, name, args) { - writeEvent("I", phase, name, args, "\"s\":\"g\""); - } - tracingEnabled2.instant = instant; - var eventStack = []; - function push(phase, name, args, separateBeginAndEnd) { - if (separateBeginAndEnd === void 0) { separateBeginAndEnd = false; } - if (separateBeginAndEnd) { - writeEvent("B", phase, name, args); - } - eventStack.push({ phase: phase, name: name, args: args, time: 1e3 * timestamp(), separateBeginAndEnd: separateBeginAndEnd }); - } - tracingEnabled2.push = push; - function pop(results) { - Debug.assert(eventStack.length > 0); - writeStackEvent(eventStack.length - 1, 1e3 * timestamp(), results); - eventStack.length--; - } - tracingEnabled2.pop = pop; - function popAll() { - var endTime = 1e3 * timestamp(); - for (var i = eventStack.length - 1; i >= 0; i--) { - writeStackEvent(i, endTime); - } - eventStack.length = 0; - } - tracingEnabled2.popAll = popAll; - var sampleInterval = 1e3 * 10; - function writeStackEvent(index, endTime, results) { - var _t = eventStack[index], phase = _t.phase, name = _t.name, args = _t.args, time = _t.time, separateBeginAndEnd = _t.separateBeginAndEnd; - if (separateBeginAndEnd) { - Debug.assert(!results, "`results` are not supported for events with `separateBeginAndEnd`"); - writeEvent("E", phase, name, args, - /*extras*/ - void 0, endTime); - } - else if (sampleInterval - time % sampleInterval <= endTime - time) { - writeEvent("X", phase, name, __assign(__assign({}, args), { results: results }), "\"dur\":".concat(endTime - time), time); - } - } - function writeEvent(eventType, phase, name, args, extras, time) { - if (time === void 0) { time = 1e3 * timestamp(); } - if (mode === "server" && phase === "checkTypes" /* CheckTypes */) - return; - mark("beginTracing"); - fs.writeSync(traceFd, ",\n{\"pid\":1,\"tid\":1,\"ph\":\"".concat(eventType, "\",\"cat\":\"").concat(phase, "\",\"ts\":").concat(time, ",\"name\":\"").concat(name, "\"")); - if (extras) - fs.writeSync(traceFd, ",".concat(extras)); - if (args) - fs.writeSync(traceFd, ",\"args\":".concat(JSON.stringify(args))); - fs.writeSync(traceFd, "}"); - mark("endTracing"); - measure("Tracing", "beginTracing", "endTracing"); - } - function getLocation(node) { - var file = getSourceFileOfNode(node); - return !file ? void 0 : { - path: file.path, - start: indexFromOne(getLineAndCharacterOfPosition(file, node.pos)), - end: indexFromOne(getLineAndCharacterOfPosition(file, node.end)) - }; - function indexFromOne(lc) { - return { - line: lc.line + 1, - character: lc.character + 1 - }; - } - } - function dumpTypes(types) { - var _t, _u, _v; - var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s; - mark("beginDumpTypes"); - var typesPath = legend[legend.length - 1].typesPath; - var typesFd = fs.openSync(typesPath, "w"); - var recursionIdentityMap = /* @__PURE__ */ new Map(); - fs.writeSync(typesFd, "["); - var numTypes = types.length; - for (var i = 0; i < numTypes; i++) { - var type = types[i]; - var objectFlags = type.objectFlags; - var symbol = (_t = type.aliasSymbol) !== null && _t !== void 0 ? _t : type.symbol; - var display = void 0; - if (objectFlags & 16 /* Anonymous */ | type.flags & 2944 /* Literal */) { - try { - display = (_a = type.checker) == null ? void 0 : _a.typeToString(type); - } - catch (_w) { - display = void 0; - } - } - var indexedAccessProperties = {}; - if (type.flags & 8388608 /* IndexedAccess */) { - var indexedAccessType = type; - indexedAccessProperties = { - indexedAccessObjectType: (_b = indexedAccessType.objectType) == null ? void 0 : _b.id, - indexedAccessIndexType: (_c = indexedAccessType.indexType) == null ? void 0 : _c.id - }; - } - var referenceProperties = {}; - if (objectFlags & 4 /* Reference */) { - var referenceType = type; - referenceProperties = { - instantiatedType: (_d = referenceType.target) == null ? void 0 : _d.id, - typeArguments: (_e = referenceType.resolvedTypeArguments) == null ? void 0 : _e.map(function (t) { return t.id; }), - referenceLocation: getLocation(referenceType.node) - }; - } - var conditionalProperties = {}; - if (type.flags & 16777216 /* Conditional */) { - var conditionalType = type; - conditionalProperties = { - conditionalCheckType: (_f = conditionalType.checkType) == null ? void 0 : _f.id, - conditionalExtendsType: (_g = conditionalType.extendsType) == null ? void 0 : _g.id, - conditionalTrueType: (_u = ((_h = conditionalType.resolvedTrueType) == null ? void 0 : _h.id)) !== null && _u !== void 0 ? _u : -1, - conditionalFalseType: (_v = ((_i = conditionalType.resolvedFalseType) == null ? void 0 : _i.id)) !== null && _v !== void 0 ? _v : -1 - }; - } - var substitutionProperties = {}; - if (type.flags & 33554432 /* Substitution */) { - var substitutionType = type; - substitutionProperties = { - substitutionBaseType: (_j = substitutionType.baseType) == null ? void 0 : _j.id, - constraintType: (_k = substitutionType.constraint) == null ? void 0 : _k.id - }; - } - var reverseMappedProperties = {}; - if (objectFlags & 1024 /* ReverseMapped */) { - var reverseMappedType = type; - reverseMappedProperties = { - reverseMappedSourceType: (_l = reverseMappedType.source) == null ? void 0 : _l.id, - reverseMappedMappedType: (_m = reverseMappedType.mappedType) == null ? void 0 : _m.id, - reverseMappedConstraintType: (_n = reverseMappedType.constraintType) == null ? void 0 : _n.id - }; - } - var evolvingArrayProperties = {}; - if (objectFlags & 256 /* EvolvingArray */) { - var evolvingArrayType = type; - evolvingArrayProperties = { - evolvingArrayElementType: evolvingArrayType.elementType.id, - evolvingArrayFinalType: (_o = evolvingArrayType.finalArrayType) == null ? void 0 : _o.id - }; - } - var recursionToken = void 0; - var recursionIdentity = type.checker.getRecursionIdentity(type); - if (recursionIdentity) { - recursionToken = recursionIdentityMap.get(recursionIdentity); - if (!recursionToken) { - recursionToken = recursionIdentityMap.size; - recursionIdentityMap.set(recursionIdentity, recursionToken); - } - } - var descriptor = __assign(__assign(__assign(__assign(__assign(__assign(__assign({ id: type.id, intrinsicName: type.intrinsicName, symbolName: (symbol == null ? void 0 : symbol.escapedName) && unescapeLeadingUnderscores(symbol.escapedName), recursionId: recursionToken, isTuple: objectFlags & 8 /* Tuple */ ? true : void 0, unionTypes: type.flags & 1048576 /* Union */ ? (_p = type.types) == null ? void 0 : _p.map(function (t) { return t.id; }) : void 0, intersectionTypes: type.flags & 2097152 /* Intersection */ ? type.types.map(function (t) { return t.id; }) : void 0, aliasTypeArguments: (_q = type.aliasTypeArguments) == null ? void 0 : _q.map(function (t) { return t.id; }), keyofType: type.flags & 4194304 /* Index */ ? (_r = type.type) == null ? void 0 : _r.id : void 0 }, indexedAccessProperties), referenceProperties), conditionalProperties), substitutionProperties), reverseMappedProperties), evolvingArrayProperties), { destructuringPattern: getLocation(type.pattern), firstDeclaration: getLocation((_s = symbol == null ? void 0 : symbol.declarations) == null ? void 0 : _s[0]), flags: Debug.formatTypeFlags(type.flags).split("|"), display: display }); - fs.writeSync(typesFd, JSON.stringify(descriptor)); - if (i < numTypes - 1) { - fs.writeSync(typesFd, ",\n"); - } - } - fs.writeSync(typesFd, "]\n"); - fs.closeSync(typesFd); - mark("endDumpTypes"); - measure("Dump types", "beginDumpTypes", "endDumpTypes"); - } - function dumpLegend() { - if (!legendPath) { - return; - } - fs.writeFileSync(legendPath, JSON.stringify(legend)); - } - tracingEnabled2.dumpLegend = dumpLegend; -})(tracingEnabled || (tracingEnabled = {})); -var startTracing = tracingEnabled.startTracing; -var dumpTracingLegend = tracingEnabled.dumpLegend; -// src/compiler/types.ts -var SyntaxKind = /* @__PURE__ */ (function (SyntaxKind5) { - SyntaxKind5[SyntaxKind5["Unknown"] = 0] = "Unknown"; - SyntaxKind5[SyntaxKind5["EndOfFileToken"] = 1] = "EndOfFileToken"; - SyntaxKind5[SyntaxKind5["SingleLineCommentTrivia"] = 2] = "SingleLineCommentTrivia"; - SyntaxKind5[SyntaxKind5["MultiLineCommentTrivia"] = 3] = "MultiLineCommentTrivia"; - SyntaxKind5[SyntaxKind5["NewLineTrivia"] = 4] = "NewLineTrivia"; - SyntaxKind5[SyntaxKind5["WhitespaceTrivia"] = 5] = "WhitespaceTrivia"; - SyntaxKind5[SyntaxKind5["ShebangTrivia"] = 6] = "ShebangTrivia"; - SyntaxKind5[SyntaxKind5["ConflictMarkerTrivia"] = 7] = "ConflictMarkerTrivia"; - SyntaxKind5[SyntaxKind5["NonTextFileMarkerTrivia"] = 8] = "NonTextFileMarkerTrivia"; - SyntaxKind5[SyntaxKind5["NumericLiteral"] = 9] = "NumericLiteral"; - SyntaxKind5[SyntaxKind5["BigIntLiteral"] = 10] = "BigIntLiteral"; - SyntaxKind5[SyntaxKind5["StringLiteral"] = 11] = "StringLiteral"; - SyntaxKind5[SyntaxKind5["JsxText"] = 12] = "JsxText"; - SyntaxKind5[SyntaxKind5["JsxTextAllWhiteSpaces"] = 13] = "JsxTextAllWhiteSpaces"; - SyntaxKind5[SyntaxKind5["RegularExpressionLiteral"] = 14] = "RegularExpressionLiteral"; - SyntaxKind5[SyntaxKind5["NoSubstitutionTemplateLiteral"] = 15] = "NoSubstitutionTemplateLiteral"; - SyntaxKind5[SyntaxKind5["TemplateHead"] = 16] = "TemplateHead"; - SyntaxKind5[SyntaxKind5["TemplateMiddle"] = 17] = "TemplateMiddle"; - SyntaxKind5[SyntaxKind5["TemplateTail"] = 18] = "TemplateTail"; - SyntaxKind5[SyntaxKind5["OpenBraceToken"] = 19] = "OpenBraceToken"; - SyntaxKind5[SyntaxKind5["CloseBraceToken"] = 20] = "CloseBraceToken"; - SyntaxKind5[SyntaxKind5["OpenParenToken"] = 21] = "OpenParenToken"; - SyntaxKind5[SyntaxKind5["CloseParenToken"] = 22] = "CloseParenToken"; - SyntaxKind5[SyntaxKind5["OpenBracketToken"] = 23] = "OpenBracketToken"; - SyntaxKind5[SyntaxKind5["CloseBracketToken"] = 24] = "CloseBracketToken"; - SyntaxKind5[SyntaxKind5["DotToken"] = 25] = "DotToken"; - SyntaxKind5[SyntaxKind5["DotDotDotToken"] = 26] = "DotDotDotToken"; - SyntaxKind5[SyntaxKind5["SemicolonToken"] = 27] = "SemicolonToken"; - SyntaxKind5[SyntaxKind5["CommaToken"] = 28] = "CommaToken"; - SyntaxKind5[SyntaxKind5["QuestionDotToken"] = 29] = "QuestionDotToken"; - SyntaxKind5[SyntaxKind5["LessThanToken"] = 30] = "LessThanToken"; - SyntaxKind5[SyntaxKind5["LessThanSlashToken"] = 31] = "LessThanSlashToken"; - SyntaxKind5[SyntaxKind5["GreaterThanToken"] = 32] = "GreaterThanToken"; - SyntaxKind5[SyntaxKind5["LessThanEqualsToken"] = 33] = "LessThanEqualsToken"; - SyntaxKind5[SyntaxKind5["GreaterThanEqualsToken"] = 34] = "GreaterThanEqualsToken"; - SyntaxKind5[SyntaxKind5["EqualsEqualsToken"] = 35] = "EqualsEqualsToken"; - SyntaxKind5[SyntaxKind5["ExclamationEqualsToken"] = 36] = "ExclamationEqualsToken"; - SyntaxKind5[SyntaxKind5["EqualsEqualsEqualsToken"] = 37] = "EqualsEqualsEqualsToken"; - SyntaxKind5[SyntaxKind5["ExclamationEqualsEqualsToken"] = 38] = "ExclamationEqualsEqualsToken"; - SyntaxKind5[SyntaxKind5["EqualsGreaterThanToken"] = 39] = "EqualsGreaterThanToken"; - SyntaxKind5[SyntaxKind5["PlusToken"] = 40] = "PlusToken"; - SyntaxKind5[SyntaxKind5["MinusToken"] = 41] = "MinusToken"; - SyntaxKind5[SyntaxKind5["AsteriskToken"] = 42] = "AsteriskToken"; - SyntaxKind5[SyntaxKind5["AsteriskAsteriskToken"] = 43] = "AsteriskAsteriskToken"; - SyntaxKind5[SyntaxKind5["SlashToken"] = 44] = "SlashToken"; - SyntaxKind5[SyntaxKind5["PercentToken"] = 45] = "PercentToken"; - SyntaxKind5[SyntaxKind5["PlusPlusToken"] = 46] = "PlusPlusToken"; - SyntaxKind5[SyntaxKind5["MinusMinusToken"] = 47] = "MinusMinusToken"; - SyntaxKind5[SyntaxKind5["LessThanLessThanToken"] = 48] = "LessThanLessThanToken"; - SyntaxKind5[SyntaxKind5["GreaterThanGreaterThanToken"] = 49] = "GreaterThanGreaterThanToken"; - SyntaxKind5[SyntaxKind5["GreaterThanGreaterThanGreaterThanToken"] = 50] = "GreaterThanGreaterThanGreaterThanToken"; - SyntaxKind5[SyntaxKind5["AmpersandToken"] = 51] = "AmpersandToken"; - SyntaxKind5[SyntaxKind5["BarToken"] = 52] = "BarToken"; - SyntaxKind5[SyntaxKind5["CaretToken"] = 53] = "CaretToken"; - SyntaxKind5[SyntaxKind5["ExclamationToken"] = 54] = "ExclamationToken"; - SyntaxKind5[SyntaxKind5["TildeToken"] = 55] = "TildeToken"; - SyntaxKind5[SyntaxKind5["AmpersandAmpersandToken"] = 56] = "AmpersandAmpersandToken"; - SyntaxKind5[SyntaxKind5["BarBarToken"] = 57] = "BarBarToken"; - SyntaxKind5[SyntaxKind5["QuestionToken"] = 58] = "QuestionToken"; - SyntaxKind5[SyntaxKind5["ColonToken"] = 59] = "ColonToken"; - SyntaxKind5[SyntaxKind5["AtToken"] = 60] = "AtToken"; - SyntaxKind5[SyntaxKind5["QuestionQuestionToken"] = 61] = "QuestionQuestionToken"; - SyntaxKind5[SyntaxKind5["BacktickToken"] = 62] = "BacktickToken"; - SyntaxKind5[SyntaxKind5["HashToken"] = 63] = "HashToken"; - SyntaxKind5[SyntaxKind5["EqualsToken"] = 64] = "EqualsToken"; - SyntaxKind5[SyntaxKind5["PlusEqualsToken"] = 65] = "PlusEqualsToken"; - SyntaxKind5[SyntaxKind5["MinusEqualsToken"] = 66] = "MinusEqualsToken"; - SyntaxKind5[SyntaxKind5["AsteriskEqualsToken"] = 67] = "AsteriskEqualsToken"; - SyntaxKind5[SyntaxKind5["AsteriskAsteriskEqualsToken"] = 68] = "AsteriskAsteriskEqualsToken"; - SyntaxKind5[SyntaxKind5["SlashEqualsToken"] = 69] = "SlashEqualsToken"; - SyntaxKind5[SyntaxKind5["PercentEqualsToken"] = 70] = "PercentEqualsToken"; - SyntaxKind5[SyntaxKind5["LessThanLessThanEqualsToken"] = 71] = "LessThanLessThanEqualsToken"; - SyntaxKind5[SyntaxKind5["GreaterThanGreaterThanEqualsToken"] = 72] = "GreaterThanGreaterThanEqualsToken"; - SyntaxKind5[SyntaxKind5["GreaterThanGreaterThanGreaterThanEqualsToken"] = 73] = "GreaterThanGreaterThanGreaterThanEqualsToken"; - SyntaxKind5[SyntaxKind5["AmpersandEqualsToken"] = 74] = "AmpersandEqualsToken"; - SyntaxKind5[SyntaxKind5["BarEqualsToken"] = 75] = "BarEqualsToken"; - SyntaxKind5[SyntaxKind5["BarBarEqualsToken"] = 76] = "BarBarEqualsToken"; - SyntaxKind5[SyntaxKind5["AmpersandAmpersandEqualsToken"] = 77] = "AmpersandAmpersandEqualsToken"; - SyntaxKind5[SyntaxKind5["QuestionQuestionEqualsToken"] = 78] = "QuestionQuestionEqualsToken"; - SyntaxKind5[SyntaxKind5["CaretEqualsToken"] = 79] = "CaretEqualsToken"; - SyntaxKind5[SyntaxKind5["Identifier"] = 80] = "Identifier"; - SyntaxKind5[SyntaxKind5["PrivateIdentifier"] = 81] = "PrivateIdentifier"; - SyntaxKind5[SyntaxKind5["JSDocCommentTextToken"] = 82] = "JSDocCommentTextToken"; - SyntaxKind5[SyntaxKind5["BreakKeyword"] = 83] = "BreakKeyword"; - SyntaxKind5[SyntaxKind5["CaseKeyword"] = 84] = "CaseKeyword"; - SyntaxKind5[SyntaxKind5["CatchKeyword"] = 85] = "CatchKeyword"; - SyntaxKind5[SyntaxKind5["ClassKeyword"] = 86] = "ClassKeyword"; - SyntaxKind5[SyntaxKind5["ConstKeyword"] = 87] = "ConstKeyword"; - SyntaxKind5[SyntaxKind5["ContinueKeyword"] = 88] = "ContinueKeyword"; - SyntaxKind5[SyntaxKind5["DebuggerKeyword"] = 89] = "DebuggerKeyword"; - SyntaxKind5[SyntaxKind5["DefaultKeyword"] = 90] = "DefaultKeyword"; - SyntaxKind5[SyntaxKind5["DeleteKeyword"] = 91] = "DeleteKeyword"; - SyntaxKind5[SyntaxKind5["DoKeyword"] = 92] = "DoKeyword"; - SyntaxKind5[SyntaxKind5["ElseKeyword"] = 93] = "ElseKeyword"; - SyntaxKind5[SyntaxKind5["EnumKeyword"] = 94] = "EnumKeyword"; - SyntaxKind5[SyntaxKind5["ExportKeyword"] = 95] = "ExportKeyword"; - SyntaxKind5[SyntaxKind5["ExtendsKeyword"] = 96] = "ExtendsKeyword"; - SyntaxKind5[SyntaxKind5["FalseKeyword"] = 97] = "FalseKeyword"; - SyntaxKind5[SyntaxKind5["FinallyKeyword"] = 98] = "FinallyKeyword"; - SyntaxKind5[SyntaxKind5["ForKeyword"] = 99] = "ForKeyword"; - SyntaxKind5[SyntaxKind5["FunctionKeyword"] = 100] = "FunctionKeyword"; - SyntaxKind5[SyntaxKind5["IfKeyword"] = 101] = "IfKeyword"; - SyntaxKind5[SyntaxKind5["ImportKeyword"] = 102] = "ImportKeyword"; - SyntaxKind5[SyntaxKind5["InKeyword"] = 103] = "InKeyword"; - SyntaxKind5[SyntaxKind5["InstanceOfKeyword"] = 104] = "InstanceOfKeyword"; - SyntaxKind5[SyntaxKind5["NewKeyword"] = 105] = "NewKeyword"; - SyntaxKind5[SyntaxKind5["NullKeyword"] = 106] = "NullKeyword"; - SyntaxKind5[SyntaxKind5["ReturnKeyword"] = 107] = "ReturnKeyword"; - SyntaxKind5[SyntaxKind5["SuperKeyword"] = 108] = "SuperKeyword"; - SyntaxKind5[SyntaxKind5["SwitchKeyword"] = 109] = "SwitchKeyword"; - SyntaxKind5[SyntaxKind5["ThisKeyword"] = 110] = "ThisKeyword"; - SyntaxKind5[SyntaxKind5["ThrowKeyword"] = 111] = "ThrowKeyword"; - SyntaxKind5[SyntaxKind5["TrueKeyword"] = 112] = "TrueKeyword"; - SyntaxKind5[SyntaxKind5["TryKeyword"] = 113] = "TryKeyword"; - SyntaxKind5[SyntaxKind5["TypeOfKeyword"] = 114] = "TypeOfKeyword"; - SyntaxKind5[SyntaxKind5["VarKeyword"] = 115] = "VarKeyword"; - SyntaxKind5[SyntaxKind5["VoidKeyword"] = 116] = "VoidKeyword"; - SyntaxKind5[SyntaxKind5["WhileKeyword"] = 117] = "WhileKeyword"; - SyntaxKind5[SyntaxKind5["WithKeyword"] = 118] = "WithKeyword"; - SyntaxKind5[SyntaxKind5["ImplementsKeyword"] = 119] = "ImplementsKeyword"; - SyntaxKind5[SyntaxKind5["InterfaceKeyword"] = 120] = "InterfaceKeyword"; - SyntaxKind5[SyntaxKind5["LetKeyword"] = 121] = "LetKeyword"; - SyntaxKind5[SyntaxKind5["PackageKeyword"] = 122] = "PackageKeyword"; - SyntaxKind5[SyntaxKind5["PrivateKeyword"] = 123] = "PrivateKeyword"; - SyntaxKind5[SyntaxKind5["ProtectedKeyword"] = 124] = "ProtectedKeyword"; - SyntaxKind5[SyntaxKind5["PublicKeyword"] = 125] = "PublicKeyword"; - SyntaxKind5[SyntaxKind5["StaticKeyword"] = 126] = "StaticKeyword"; - SyntaxKind5[SyntaxKind5["YieldKeyword"] = 127] = "YieldKeyword"; - SyntaxKind5[SyntaxKind5["AbstractKeyword"] = 128] = "AbstractKeyword"; - SyntaxKind5[SyntaxKind5["AccessorKeyword"] = 129] = "AccessorKeyword"; - SyntaxKind5[SyntaxKind5["AsKeyword"] = 130] = "AsKeyword"; - SyntaxKind5[SyntaxKind5["AssertsKeyword"] = 131] = "AssertsKeyword"; - SyntaxKind5[SyntaxKind5["AssertKeyword"] = 132] = "AssertKeyword"; - SyntaxKind5[SyntaxKind5["AnyKeyword"] = 133] = "AnyKeyword"; - SyntaxKind5[SyntaxKind5["AsyncKeyword"] = 134] = "AsyncKeyword"; - SyntaxKind5[SyntaxKind5["AwaitKeyword"] = 135] = "AwaitKeyword"; - SyntaxKind5[SyntaxKind5["BooleanKeyword"] = 136] = "BooleanKeyword"; - SyntaxKind5[SyntaxKind5["ConstructorKeyword"] = 137] = "ConstructorKeyword"; - SyntaxKind5[SyntaxKind5["DeclareKeyword"] = 138] = "DeclareKeyword"; - SyntaxKind5[SyntaxKind5["GetKeyword"] = 139] = "GetKeyword"; - SyntaxKind5[SyntaxKind5["InferKeyword"] = 140] = "InferKeyword"; - SyntaxKind5[SyntaxKind5["IntrinsicKeyword"] = 141] = "IntrinsicKeyword"; - SyntaxKind5[SyntaxKind5["IsKeyword"] = 142] = "IsKeyword"; - SyntaxKind5[SyntaxKind5["KeyOfKeyword"] = 143] = "KeyOfKeyword"; - SyntaxKind5[SyntaxKind5["ModuleKeyword"] = 144] = "ModuleKeyword"; - SyntaxKind5[SyntaxKind5["NamespaceKeyword"] = 145] = "NamespaceKeyword"; - SyntaxKind5[SyntaxKind5["NeverKeyword"] = 146] = "NeverKeyword"; - SyntaxKind5[SyntaxKind5["OutKeyword"] = 147] = "OutKeyword"; - SyntaxKind5[SyntaxKind5["ReadonlyKeyword"] = 148] = "ReadonlyKeyword"; - SyntaxKind5[SyntaxKind5["RequireKeyword"] = 149] = "RequireKeyword"; - SyntaxKind5[SyntaxKind5["NumberKeyword"] = 150] = "NumberKeyword"; - SyntaxKind5[SyntaxKind5["ObjectKeyword"] = 151] = "ObjectKeyword"; - SyntaxKind5[SyntaxKind5["SatisfiesKeyword"] = 152] = "SatisfiesKeyword"; - SyntaxKind5[SyntaxKind5["SetKeyword"] = 153] = "SetKeyword"; - SyntaxKind5[SyntaxKind5["StringKeyword"] = 154] = "StringKeyword"; - SyntaxKind5[SyntaxKind5["SymbolKeyword"] = 155] = "SymbolKeyword"; - SyntaxKind5[SyntaxKind5["TypeKeyword"] = 156] = "TypeKeyword"; - SyntaxKind5[SyntaxKind5["UndefinedKeyword"] = 157] = "UndefinedKeyword"; - SyntaxKind5[SyntaxKind5["UniqueKeyword"] = 158] = "UniqueKeyword"; - SyntaxKind5[SyntaxKind5["UnknownKeyword"] = 159] = "UnknownKeyword"; - SyntaxKind5[SyntaxKind5["UsingKeyword"] = 160] = "UsingKeyword"; - SyntaxKind5[SyntaxKind5["FromKeyword"] = 161] = "FromKeyword"; - SyntaxKind5[SyntaxKind5["GlobalKeyword"] = 162] = "GlobalKeyword"; - SyntaxKind5[SyntaxKind5["BigIntKeyword"] = 163] = "BigIntKeyword"; - SyntaxKind5[SyntaxKind5["OverrideKeyword"] = 164] = "OverrideKeyword"; - SyntaxKind5[SyntaxKind5["OfKeyword"] = 165] = "OfKeyword"; - SyntaxKind5[SyntaxKind5["QualifiedName"] = 166] = "QualifiedName"; - SyntaxKind5[SyntaxKind5["ComputedPropertyName"] = 167] = "ComputedPropertyName"; - SyntaxKind5[SyntaxKind5["TypeParameter"] = 168] = "TypeParameter"; - SyntaxKind5[SyntaxKind5["Parameter"] = 169] = "Parameter"; - SyntaxKind5[SyntaxKind5["Decorator"] = 170] = "Decorator"; - SyntaxKind5[SyntaxKind5["PropertySignature"] = 171] = "PropertySignature"; - SyntaxKind5[SyntaxKind5["PropertyDeclaration"] = 172] = "PropertyDeclaration"; - SyntaxKind5[SyntaxKind5["MethodSignature"] = 173] = "MethodSignature"; - SyntaxKind5[SyntaxKind5["MethodDeclaration"] = 174] = "MethodDeclaration"; - SyntaxKind5[SyntaxKind5["ClassStaticBlockDeclaration"] = 175] = "ClassStaticBlockDeclaration"; - SyntaxKind5[SyntaxKind5["Constructor"] = 176] = "Constructor"; - SyntaxKind5[SyntaxKind5["GetAccessor"] = 177] = "GetAccessor"; - SyntaxKind5[SyntaxKind5["SetAccessor"] = 178] = "SetAccessor"; - SyntaxKind5[SyntaxKind5["CallSignature"] = 179] = "CallSignature"; - SyntaxKind5[SyntaxKind5["ConstructSignature"] = 180] = "ConstructSignature"; - SyntaxKind5[SyntaxKind5["IndexSignature"] = 181] = "IndexSignature"; - SyntaxKind5[SyntaxKind5["TypePredicate"] = 182] = "TypePredicate"; - SyntaxKind5[SyntaxKind5["TypeReference"] = 183] = "TypeReference"; - SyntaxKind5[SyntaxKind5["FunctionType"] = 184] = "FunctionType"; - SyntaxKind5[SyntaxKind5["ConstructorType"] = 185] = "ConstructorType"; - SyntaxKind5[SyntaxKind5["TypeQuery"] = 186] = "TypeQuery"; - SyntaxKind5[SyntaxKind5["TypeLiteral"] = 187] = "TypeLiteral"; - SyntaxKind5[SyntaxKind5["ArrayType"] = 188] = "ArrayType"; - SyntaxKind5[SyntaxKind5["TupleType"] = 189] = "TupleType"; - SyntaxKind5[SyntaxKind5["OptionalType"] = 190] = "OptionalType"; - SyntaxKind5[SyntaxKind5["RestType"] = 191] = "RestType"; - SyntaxKind5[SyntaxKind5["UnionType"] = 192] = "UnionType"; - SyntaxKind5[SyntaxKind5["IntersectionType"] = 193] = "IntersectionType"; - SyntaxKind5[SyntaxKind5["ConditionalType"] = 194] = "ConditionalType"; - SyntaxKind5[SyntaxKind5["InferType"] = 195] = "InferType"; - SyntaxKind5[SyntaxKind5["ParenthesizedType"] = 196] = "ParenthesizedType"; - SyntaxKind5[SyntaxKind5["ThisType"] = 197] = "ThisType"; - SyntaxKind5[SyntaxKind5["TypeOperator"] = 198] = "TypeOperator"; - SyntaxKind5[SyntaxKind5["IndexedAccessType"] = 199] = "IndexedAccessType"; - SyntaxKind5[SyntaxKind5["MappedType"] = 200] = "MappedType"; - SyntaxKind5[SyntaxKind5["LiteralType"] = 201] = "LiteralType"; - SyntaxKind5[SyntaxKind5["NamedTupleMember"] = 202] = "NamedTupleMember"; - SyntaxKind5[SyntaxKind5["TemplateLiteralType"] = 203] = "TemplateLiteralType"; - SyntaxKind5[SyntaxKind5["TemplateLiteralTypeSpan"] = 204] = "TemplateLiteralTypeSpan"; - SyntaxKind5[SyntaxKind5["ImportType"] = 205] = "ImportType"; - SyntaxKind5[SyntaxKind5["ObjectBindingPattern"] = 206] = "ObjectBindingPattern"; - SyntaxKind5[SyntaxKind5["ArrayBindingPattern"] = 207] = "ArrayBindingPattern"; - SyntaxKind5[SyntaxKind5["BindingElement"] = 208] = "BindingElement"; - SyntaxKind5[SyntaxKind5["ArrayLiteralExpression"] = 209] = "ArrayLiteralExpression"; - SyntaxKind5[SyntaxKind5["ObjectLiteralExpression"] = 210] = "ObjectLiteralExpression"; - SyntaxKind5[SyntaxKind5["PropertyAccessExpression"] = 211] = "PropertyAccessExpression"; - SyntaxKind5[SyntaxKind5["ElementAccessExpression"] = 212] = "ElementAccessExpression"; - SyntaxKind5[SyntaxKind5["CallExpression"] = 213] = "CallExpression"; - SyntaxKind5[SyntaxKind5["NewExpression"] = 214] = "NewExpression"; - SyntaxKind5[SyntaxKind5["TaggedTemplateExpression"] = 215] = "TaggedTemplateExpression"; - SyntaxKind5[SyntaxKind5["TypeAssertionExpression"] = 216] = "TypeAssertionExpression"; - SyntaxKind5[SyntaxKind5["ParenthesizedExpression"] = 217] = "ParenthesizedExpression"; - SyntaxKind5[SyntaxKind5["FunctionExpression"] = 218] = "FunctionExpression"; - SyntaxKind5[SyntaxKind5["ArrowFunction"] = 219] = "ArrowFunction"; - SyntaxKind5[SyntaxKind5["DeleteExpression"] = 220] = "DeleteExpression"; - SyntaxKind5[SyntaxKind5["TypeOfExpression"] = 221] = "TypeOfExpression"; - SyntaxKind5[SyntaxKind5["VoidExpression"] = 222] = "VoidExpression"; - SyntaxKind5[SyntaxKind5["AwaitExpression"] = 223] = "AwaitExpression"; - SyntaxKind5[SyntaxKind5["PrefixUnaryExpression"] = 224] = "PrefixUnaryExpression"; - SyntaxKind5[SyntaxKind5["PostfixUnaryExpression"] = 225] = "PostfixUnaryExpression"; - SyntaxKind5[SyntaxKind5["BinaryExpression"] = 226] = "BinaryExpression"; - SyntaxKind5[SyntaxKind5["ConditionalExpression"] = 227] = "ConditionalExpression"; - SyntaxKind5[SyntaxKind5["TemplateExpression"] = 228] = "TemplateExpression"; - SyntaxKind5[SyntaxKind5["YieldExpression"] = 229] = "YieldExpression"; - SyntaxKind5[SyntaxKind5["SpreadElement"] = 230] = "SpreadElement"; - SyntaxKind5[SyntaxKind5["ClassExpression"] = 231] = "ClassExpression"; - SyntaxKind5[SyntaxKind5["OmittedExpression"] = 232] = "OmittedExpression"; - SyntaxKind5[SyntaxKind5["ExpressionWithTypeArguments"] = 233] = "ExpressionWithTypeArguments"; - SyntaxKind5[SyntaxKind5["AsExpression"] = 234] = "AsExpression"; - SyntaxKind5[SyntaxKind5["NonNullExpression"] = 235] = "NonNullExpression"; - SyntaxKind5[SyntaxKind5["MetaProperty"] = 236] = "MetaProperty"; - SyntaxKind5[SyntaxKind5["SyntheticExpression"] = 237] = "SyntheticExpression"; - SyntaxKind5[SyntaxKind5["SatisfiesExpression"] = 238] = "SatisfiesExpression"; - SyntaxKind5[SyntaxKind5["TemplateSpan"] = 239] = "TemplateSpan"; - SyntaxKind5[SyntaxKind5["SemicolonClassElement"] = 240] = "SemicolonClassElement"; - SyntaxKind5[SyntaxKind5["Block"] = 241] = "Block"; - SyntaxKind5[SyntaxKind5["EmptyStatement"] = 242] = "EmptyStatement"; - SyntaxKind5[SyntaxKind5["VariableStatement"] = 243] = "VariableStatement"; - SyntaxKind5[SyntaxKind5["ExpressionStatement"] = 244] = "ExpressionStatement"; - SyntaxKind5[SyntaxKind5["IfStatement"] = 245] = "IfStatement"; - SyntaxKind5[SyntaxKind5["DoStatement"] = 246] = "DoStatement"; - SyntaxKind5[SyntaxKind5["WhileStatement"] = 247] = "WhileStatement"; - SyntaxKind5[SyntaxKind5["ForStatement"] = 248] = "ForStatement"; - SyntaxKind5[SyntaxKind5["ForInStatement"] = 249] = "ForInStatement"; - SyntaxKind5[SyntaxKind5["ForOfStatement"] = 250] = "ForOfStatement"; - SyntaxKind5[SyntaxKind5["ContinueStatement"] = 251] = "ContinueStatement"; - SyntaxKind5[SyntaxKind5["BreakStatement"] = 252] = "BreakStatement"; - SyntaxKind5[SyntaxKind5["ReturnStatement"] = 253] = "ReturnStatement"; - SyntaxKind5[SyntaxKind5["WithStatement"] = 254] = "WithStatement"; - SyntaxKind5[SyntaxKind5["SwitchStatement"] = 255] = "SwitchStatement"; - SyntaxKind5[SyntaxKind5["LabeledStatement"] = 256] = "LabeledStatement"; - SyntaxKind5[SyntaxKind5["ThrowStatement"] = 257] = "ThrowStatement"; - SyntaxKind5[SyntaxKind5["TryStatement"] = 258] = "TryStatement"; - SyntaxKind5[SyntaxKind5["DebuggerStatement"] = 259] = "DebuggerStatement"; - SyntaxKind5[SyntaxKind5["VariableDeclaration"] = 260] = "VariableDeclaration"; - SyntaxKind5[SyntaxKind5["VariableDeclarationList"] = 261] = "VariableDeclarationList"; - SyntaxKind5[SyntaxKind5["FunctionDeclaration"] = 262] = "FunctionDeclaration"; - SyntaxKind5[SyntaxKind5["ClassDeclaration"] = 263] = "ClassDeclaration"; - SyntaxKind5[SyntaxKind5["InterfaceDeclaration"] = 264] = "InterfaceDeclaration"; - SyntaxKind5[SyntaxKind5["TypeAliasDeclaration"] = 265] = "TypeAliasDeclaration"; - SyntaxKind5[SyntaxKind5["EnumDeclaration"] = 266] = "EnumDeclaration"; - SyntaxKind5[SyntaxKind5["ModuleDeclaration"] = 267] = "ModuleDeclaration"; - SyntaxKind5[SyntaxKind5["ModuleBlock"] = 268] = "ModuleBlock"; - SyntaxKind5[SyntaxKind5["CaseBlock"] = 269] = "CaseBlock"; - SyntaxKind5[SyntaxKind5["NamespaceExportDeclaration"] = 270] = "NamespaceExportDeclaration"; - SyntaxKind5[SyntaxKind5["ImportEqualsDeclaration"] = 271] = "ImportEqualsDeclaration"; - SyntaxKind5[SyntaxKind5["ImportDeclaration"] = 272] = "ImportDeclaration"; - SyntaxKind5[SyntaxKind5["ImportClause"] = 273] = "ImportClause"; - SyntaxKind5[SyntaxKind5["NamespaceImport"] = 274] = "NamespaceImport"; - SyntaxKind5[SyntaxKind5["NamedImports"] = 275] = "NamedImports"; - SyntaxKind5[SyntaxKind5["ImportSpecifier"] = 276] = "ImportSpecifier"; - SyntaxKind5[SyntaxKind5["ExportAssignment"] = 277] = "ExportAssignment"; - SyntaxKind5[SyntaxKind5["ExportDeclaration"] = 278] = "ExportDeclaration"; - SyntaxKind5[SyntaxKind5["NamedExports"] = 279] = "NamedExports"; - SyntaxKind5[SyntaxKind5["NamespaceExport"] = 280] = "NamespaceExport"; - SyntaxKind5[SyntaxKind5["ExportSpecifier"] = 281] = "ExportSpecifier"; - SyntaxKind5[SyntaxKind5["MissingDeclaration"] = 282] = "MissingDeclaration"; - SyntaxKind5[SyntaxKind5["ExternalModuleReference"] = 283] = "ExternalModuleReference"; - SyntaxKind5[SyntaxKind5["JsxElement"] = 284] = "JsxElement"; - SyntaxKind5[SyntaxKind5["JsxSelfClosingElement"] = 285] = "JsxSelfClosingElement"; - SyntaxKind5[SyntaxKind5["JsxOpeningElement"] = 286] = "JsxOpeningElement"; - SyntaxKind5[SyntaxKind5["JsxClosingElement"] = 287] = "JsxClosingElement"; - SyntaxKind5[SyntaxKind5["JsxFragment"] = 288] = "JsxFragment"; - SyntaxKind5[SyntaxKind5["JsxOpeningFragment"] = 289] = "JsxOpeningFragment"; - SyntaxKind5[SyntaxKind5["JsxClosingFragment"] = 290] = "JsxClosingFragment"; - SyntaxKind5[SyntaxKind5["JsxAttribute"] = 291] = "JsxAttribute"; - SyntaxKind5[SyntaxKind5["JsxAttributes"] = 292] = "JsxAttributes"; - SyntaxKind5[SyntaxKind5["JsxSpreadAttribute"] = 293] = "JsxSpreadAttribute"; - SyntaxKind5[SyntaxKind5["JsxExpression"] = 294] = "JsxExpression"; - SyntaxKind5[SyntaxKind5["JsxNamespacedName"] = 295] = "JsxNamespacedName"; - SyntaxKind5[SyntaxKind5["CaseClause"] = 296] = "CaseClause"; - SyntaxKind5[SyntaxKind5["DefaultClause"] = 297] = "DefaultClause"; - SyntaxKind5[SyntaxKind5["HeritageClause"] = 298] = "HeritageClause"; - SyntaxKind5[SyntaxKind5["CatchClause"] = 299] = "CatchClause"; - SyntaxKind5[SyntaxKind5["AssertClause"] = 300] = "AssertClause"; - SyntaxKind5[SyntaxKind5["AssertEntry"] = 301] = "AssertEntry"; - SyntaxKind5[SyntaxKind5["ImportTypeAssertionContainer"] = 302] = "ImportTypeAssertionContainer"; - SyntaxKind5[SyntaxKind5["PropertyAssignment"] = 303] = "PropertyAssignment"; - SyntaxKind5[SyntaxKind5["ShorthandPropertyAssignment"] = 304] = "ShorthandPropertyAssignment"; - SyntaxKind5[SyntaxKind5["SpreadAssignment"] = 305] = "SpreadAssignment"; - SyntaxKind5[SyntaxKind5["EnumMember"] = 306] = "EnumMember"; - SyntaxKind5[SyntaxKind5["UnparsedPrologue"] = 307] = "UnparsedPrologue"; - SyntaxKind5[SyntaxKind5["UnparsedPrepend"] = 308] = "UnparsedPrepend"; - SyntaxKind5[SyntaxKind5["UnparsedText"] = 309] = "UnparsedText"; - SyntaxKind5[SyntaxKind5["UnparsedInternalText"] = 310] = "UnparsedInternalText"; - SyntaxKind5[SyntaxKind5["UnparsedSyntheticReference"] = 311] = "UnparsedSyntheticReference"; - SyntaxKind5[SyntaxKind5["SourceFile"] = 312] = "SourceFile"; - SyntaxKind5[SyntaxKind5["Bundle"] = 313] = "Bundle"; - SyntaxKind5[SyntaxKind5["UnparsedSource"] = 314] = "UnparsedSource"; - SyntaxKind5[SyntaxKind5["InputFiles"] = 315] = "InputFiles"; - SyntaxKind5[SyntaxKind5["JSDocTypeExpression"] = 316] = "JSDocTypeExpression"; - SyntaxKind5[SyntaxKind5["JSDocNameReference"] = 317] = "JSDocNameReference"; - SyntaxKind5[SyntaxKind5["JSDocMemberName"] = 318] = "JSDocMemberName"; - SyntaxKind5[SyntaxKind5["JSDocAllType"] = 319] = "JSDocAllType"; - SyntaxKind5[SyntaxKind5["JSDocUnknownType"] = 320] = "JSDocUnknownType"; - SyntaxKind5[SyntaxKind5["JSDocNullableType"] = 321] = "JSDocNullableType"; - SyntaxKind5[SyntaxKind5["JSDocNonNullableType"] = 322] = "JSDocNonNullableType"; - SyntaxKind5[SyntaxKind5["JSDocOptionalType"] = 323] = "JSDocOptionalType"; - SyntaxKind5[SyntaxKind5["JSDocFunctionType"] = 324] = "JSDocFunctionType"; - SyntaxKind5[SyntaxKind5["JSDocVariadicType"] = 325] = "JSDocVariadicType"; - SyntaxKind5[SyntaxKind5["JSDocNamepathType"] = 326] = "JSDocNamepathType"; - SyntaxKind5[SyntaxKind5["JSDoc"] = 327] = "JSDoc"; - SyntaxKind5[SyntaxKind5["JSDocComment"] = 327 /* JSDoc */] = "JSDocComment"; - SyntaxKind5[SyntaxKind5["JSDocText"] = 328] = "JSDocText"; - SyntaxKind5[SyntaxKind5["JSDocTypeLiteral"] = 329] = "JSDocTypeLiteral"; - SyntaxKind5[SyntaxKind5["JSDocSignature"] = 330] = "JSDocSignature"; - SyntaxKind5[SyntaxKind5["JSDocLink"] = 331] = "JSDocLink"; - SyntaxKind5[SyntaxKind5["JSDocLinkCode"] = 332] = "JSDocLinkCode"; - SyntaxKind5[SyntaxKind5["JSDocLinkPlain"] = 333] = "JSDocLinkPlain"; - SyntaxKind5[SyntaxKind5["JSDocTag"] = 334] = "JSDocTag"; - SyntaxKind5[SyntaxKind5["JSDocAugmentsTag"] = 335] = "JSDocAugmentsTag"; - SyntaxKind5[SyntaxKind5["JSDocImplementsTag"] = 336] = "JSDocImplementsTag"; - SyntaxKind5[SyntaxKind5["JSDocAuthorTag"] = 337] = "JSDocAuthorTag"; - SyntaxKind5[SyntaxKind5["JSDocDeprecatedTag"] = 338] = "JSDocDeprecatedTag"; - SyntaxKind5[SyntaxKind5["JSDocClassTag"] = 339] = "JSDocClassTag"; - SyntaxKind5[SyntaxKind5["JSDocPublicTag"] = 340] = "JSDocPublicTag"; - SyntaxKind5[SyntaxKind5["JSDocPrivateTag"] = 341] = "JSDocPrivateTag"; - SyntaxKind5[SyntaxKind5["JSDocProtectedTag"] = 342] = "JSDocProtectedTag"; - SyntaxKind5[SyntaxKind5["JSDocReadonlyTag"] = 343] = "JSDocReadonlyTag"; - SyntaxKind5[SyntaxKind5["JSDocOverrideTag"] = 344] = "JSDocOverrideTag"; - SyntaxKind5[SyntaxKind5["JSDocCallbackTag"] = 345] = "JSDocCallbackTag"; - SyntaxKind5[SyntaxKind5["JSDocOverloadTag"] = 346] = "JSDocOverloadTag"; - SyntaxKind5[SyntaxKind5["JSDocEnumTag"] = 347] = "JSDocEnumTag"; - SyntaxKind5[SyntaxKind5["JSDocParameterTag"] = 348] = "JSDocParameterTag"; - SyntaxKind5[SyntaxKind5["JSDocReturnTag"] = 349] = "JSDocReturnTag"; - SyntaxKind5[SyntaxKind5["JSDocThisTag"] = 350] = "JSDocThisTag"; - SyntaxKind5[SyntaxKind5["JSDocTypeTag"] = 351] = "JSDocTypeTag"; - SyntaxKind5[SyntaxKind5["JSDocTemplateTag"] = 352] = "JSDocTemplateTag"; - SyntaxKind5[SyntaxKind5["JSDocTypedefTag"] = 353] = "JSDocTypedefTag"; - SyntaxKind5[SyntaxKind5["JSDocSeeTag"] = 354] = "JSDocSeeTag"; - SyntaxKind5[SyntaxKind5["JSDocPropertyTag"] = 355] = "JSDocPropertyTag"; - SyntaxKind5[SyntaxKind5["JSDocThrowsTag"] = 356] = "JSDocThrowsTag"; - SyntaxKind5[SyntaxKind5["JSDocSatisfiesTag"] = 357] = "JSDocSatisfiesTag"; - SyntaxKind5[SyntaxKind5["SyntaxList"] = 358] = "SyntaxList"; - SyntaxKind5[SyntaxKind5["NotEmittedStatement"] = 359] = "NotEmittedStatement"; - SyntaxKind5[SyntaxKind5["PartiallyEmittedExpression"] = 360] = "PartiallyEmittedExpression"; - SyntaxKind5[SyntaxKind5["CommaListExpression"] = 361] = "CommaListExpression"; - SyntaxKind5[SyntaxKind5["SyntheticReferenceExpression"] = 362] = "SyntheticReferenceExpression"; - SyntaxKind5[SyntaxKind5["Count"] = 363] = "Count"; - SyntaxKind5[SyntaxKind5["FirstAssignment"] = 64 /* EqualsToken */] = "FirstAssignment"; - SyntaxKind5[SyntaxKind5["LastAssignment"] = 79 /* CaretEqualsToken */] = "LastAssignment"; - SyntaxKind5[SyntaxKind5["FirstCompoundAssignment"] = 65 /* PlusEqualsToken */] = "FirstCompoundAssignment"; - SyntaxKind5[SyntaxKind5["LastCompoundAssignment"] = 79 /* CaretEqualsToken */] = "LastCompoundAssignment"; - SyntaxKind5[SyntaxKind5["FirstReservedWord"] = 83 /* BreakKeyword */] = "FirstReservedWord"; - SyntaxKind5[SyntaxKind5["LastReservedWord"] = 118 /* WithKeyword */] = "LastReservedWord"; - SyntaxKind5[SyntaxKind5["FirstKeyword"] = 83 /* BreakKeyword */] = "FirstKeyword"; - SyntaxKind5[SyntaxKind5["LastKeyword"] = 165 /* OfKeyword */] = "LastKeyword"; - SyntaxKind5[SyntaxKind5["FirstFutureReservedWord"] = 119 /* ImplementsKeyword */] = "FirstFutureReservedWord"; - SyntaxKind5[SyntaxKind5["LastFutureReservedWord"] = 127 /* YieldKeyword */] = "LastFutureReservedWord"; - SyntaxKind5[SyntaxKind5["FirstTypeNode"] = 182 /* TypePredicate */] = "FirstTypeNode"; - SyntaxKind5[SyntaxKind5["LastTypeNode"] = 205 /* ImportType */] = "LastTypeNode"; - SyntaxKind5[SyntaxKind5["FirstPunctuation"] = 19 /* OpenBraceToken */] = "FirstPunctuation"; - SyntaxKind5[SyntaxKind5["LastPunctuation"] = 79 /* CaretEqualsToken */] = "LastPunctuation"; - SyntaxKind5[SyntaxKind5["FirstToken"] = 0 /* Unknown */] = "FirstToken"; - SyntaxKind5[SyntaxKind5["LastToken"] = 165 /* LastKeyword */] = "LastToken"; - SyntaxKind5[SyntaxKind5["FirstTriviaToken"] = 2 /* SingleLineCommentTrivia */] = "FirstTriviaToken"; - SyntaxKind5[SyntaxKind5["LastTriviaToken"] = 7 /* ConflictMarkerTrivia */] = "LastTriviaToken"; - SyntaxKind5[SyntaxKind5["FirstLiteralToken"] = 9 /* NumericLiteral */] = "FirstLiteralToken"; - SyntaxKind5[SyntaxKind5["LastLiteralToken"] = 15 /* NoSubstitutionTemplateLiteral */] = "LastLiteralToken"; - SyntaxKind5[SyntaxKind5["FirstTemplateToken"] = 15 /* NoSubstitutionTemplateLiteral */] = "FirstTemplateToken"; - SyntaxKind5[SyntaxKind5["LastTemplateToken"] = 18 /* TemplateTail */] = "LastTemplateToken"; - SyntaxKind5[SyntaxKind5["FirstBinaryOperator"] = 30 /* LessThanToken */] = "FirstBinaryOperator"; - SyntaxKind5[SyntaxKind5["LastBinaryOperator"] = 79 /* CaretEqualsToken */] = "LastBinaryOperator"; - SyntaxKind5[SyntaxKind5["FirstStatement"] = 243 /* VariableStatement */] = "FirstStatement"; - SyntaxKind5[SyntaxKind5["LastStatement"] = 259 /* DebuggerStatement */] = "LastStatement"; - SyntaxKind5[SyntaxKind5["FirstNode"] = 166 /* QualifiedName */] = "FirstNode"; - SyntaxKind5[SyntaxKind5["FirstJSDocNode"] = 316 /* JSDocTypeExpression */] = "FirstJSDocNode"; - SyntaxKind5[SyntaxKind5["LastJSDocNode"] = 357 /* JSDocSatisfiesTag */] = "LastJSDocNode"; - SyntaxKind5[SyntaxKind5["FirstJSDocTagNode"] = 334 /* JSDocTag */] = "FirstJSDocTagNode"; - SyntaxKind5[SyntaxKind5["LastJSDocTagNode"] = 357 /* JSDocSatisfiesTag */] = "LastJSDocTagNode"; - SyntaxKind5[SyntaxKind5["FirstContextualKeyword"] = 128 /* AbstractKeyword */] = "FirstContextualKeyword"; - SyntaxKind5[SyntaxKind5["LastContextualKeyword"] = 165 /* OfKeyword */] = "LastContextualKeyword"; - return SyntaxKind5; -})(SyntaxKind || {}); -var NodeFlags = /* @__PURE__ */ (function (NodeFlags3) { - NodeFlags3[NodeFlags3["None"] = 0] = "None"; - NodeFlags3[NodeFlags3["Let"] = 1] = "Let"; - NodeFlags3[NodeFlags3["Const"] = 2] = "Const"; - NodeFlags3[NodeFlags3["Using"] = 4] = "Using"; - NodeFlags3[NodeFlags3["AwaitUsing"] = 6] = "AwaitUsing"; - NodeFlags3[NodeFlags3["NestedNamespace"] = 8] = "NestedNamespace"; - NodeFlags3[NodeFlags3["Synthesized"] = 16] = "Synthesized"; - NodeFlags3[NodeFlags3["Namespace"] = 32] = "Namespace"; - NodeFlags3[NodeFlags3["OptionalChain"] = 64] = "OptionalChain"; - NodeFlags3[NodeFlags3["ExportContext"] = 128] = "ExportContext"; - NodeFlags3[NodeFlags3["ContainsThis"] = 256] = "ContainsThis"; - NodeFlags3[NodeFlags3["HasImplicitReturn"] = 512] = "HasImplicitReturn"; - NodeFlags3[NodeFlags3["HasExplicitReturn"] = 1024] = "HasExplicitReturn"; - NodeFlags3[NodeFlags3["GlobalAugmentation"] = 2048] = "GlobalAugmentation"; - NodeFlags3[NodeFlags3["HasAsyncFunctions"] = 4096] = "HasAsyncFunctions"; - NodeFlags3[NodeFlags3["DisallowInContext"] = 8192] = "DisallowInContext"; - NodeFlags3[NodeFlags3["YieldContext"] = 16384] = "YieldContext"; - NodeFlags3[NodeFlags3["DecoratorContext"] = 32768] = "DecoratorContext"; - NodeFlags3[NodeFlags3["AwaitContext"] = 65536] = "AwaitContext"; - NodeFlags3[NodeFlags3["DisallowConditionalTypesContext"] = 131072] = "DisallowConditionalTypesContext"; - NodeFlags3[NodeFlags3["ThisNodeHasError"] = 262144] = "ThisNodeHasError"; - NodeFlags3[NodeFlags3["JavaScriptFile"] = 524288] = "JavaScriptFile"; - NodeFlags3[NodeFlags3["ThisNodeOrAnySubNodesHasError"] = 1048576] = "ThisNodeOrAnySubNodesHasError"; - NodeFlags3[NodeFlags3["HasAggregatedChildData"] = 2097152] = "HasAggregatedChildData"; - NodeFlags3[NodeFlags3["PossiblyContainsDynamicImport"] = 4194304] = "PossiblyContainsDynamicImport"; - NodeFlags3[NodeFlags3["PossiblyContainsImportMeta"] = 8388608] = "PossiblyContainsImportMeta"; - NodeFlags3[NodeFlags3["JSDoc"] = 16777216] = "JSDoc"; - NodeFlags3[NodeFlags3["Ambient"] = 33554432] = "Ambient"; - NodeFlags3[NodeFlags3["InWithStatement"] = 67108864] = "InWithStatement"; - NodeFlags3[NodeFlags3["JsonFile"] = 134217728] = "JsonFile"; - NodeFlags3[NodeFlags3["TypeCached"] = 268435456] = "TypeCached"; - NodeFlags3[NodeFlags3["Deprecated"] = 536870912] = "Deprecated"; - NodeFlags3[NodeFlags3["BlockScoped"] = 7] = "BlockScoped"; - NodeFlags3[NodeFlags3["Constant"] = 6] = "Constant"; - NodeFlags3[NodeFlags3["ReachabilityCheckFlags"] = 1536] = "ReachabilityCheckFlags"; - NodeFlags3[NodeFlags3["ReachabilityAndEmitFlags"] = 5632] = "ReachabilityAndEmitFlags"; - NodeFlags3[NodeFlags3["ContextFlags"] = 101441536] = "ContextFlags"; - NodeFlags3[NodeFlags3["TypeExcludesFlags"] = 81920] = "TypeExcludesFlags"; - NodeFlags3[NodeFlags3["PermanentlySetIncrementalFlags"] = 12582912] = "PermanentlySetIncrementalFlags"; - NodeFlags3[NodeFlags3["IdentifierHasExtendedUnicodeEscape"] = 256 /* ContainsThis */] = "IdentifierHasExtendedUnicodeEscape"; - NodeFlags3[NodeFlags3["IdentifierIsInJSDocNamespace"] = 4096 /* HasAsyncFunctions */] = "IdentifierIsInJSDocNamespace"; - return NodeFlags3; -})(NodeFlags || {}); -var ModifierFlags = /* @__PURE__ */ (function (ModifierFlags3) { - ModifierFlags3[ModifierFlags3["None"] = 0] = "None"; - ModifierFlags3[ModifierFlags3["Export"] = 1] = "Export"; - ModifierFlags3[ModifierFlags3["Ambient"] = 2] = "Ambient"; - ModifierFlags3[ModifierFlags3["Public"] = 4] = "Public"; - ModifierFlags3[ModifierFlags3["Private"] = 8] = "Private"; - ModifierFlags3[ModifierFlags3["Protected"] = 16] = "Protected"; - ModifierFlags3[ModifierFlags3["Static"] = 32] = "Static"; - ModifierFlags3[ModifierFlags3["Readonly"] = 64] = "Readonly"; - ModifierFlags3[ModifierFlags3["Accessor"] = 128] = "Accessor"; - ModifierFlags3[ModifierFlags3["Abstract"] = 256] = "Abstract"; - ModifierFlags3[ModifierFlags3["Async"] = 512] = "Async"; - ModifierFlags3[ModifierFlags3["Default"] = 1024] = "Default"; - ModifierFlags3[ModifierFlags3["Const"] = 2048] = "Const"; - ModifierFlags3[ModifierFlags3["HasComputedJSDocModifiers"] = 4096] = "HasComputedJSDocModifiers"; - ModifierFlags3[ModifierFlags3["Deprecated"] = 8192] = "Deprecated"; - ModifierFlags3[ModifierFlags3["Override"] = 16384] = "Override"; - ModifierFlags3[ModifierFlags3["In"] = 32768] = "In"; - ModifierFlags3[ModifierFlags3["Out"] = 65536] = "Out"; - ModifierFlags3[ModifierFlags3["Decorator"] = 131072] = "Decorator"; - ModifierFlags3[ModifierFlags3["HasComputedFlags"] = 536870912] = "HasComputedFlags"; - ModifierFlags3[ModifierFlags3["AccessibilityModifier"] = 28] = "AccessibilityModifier"; - ModifierFlags3[ModifierFlags3["ParameterPropertyModifier"] = 16476] = "ParameterPropertyModifier"; - ModifierFlags3[ModifierFlags3["NonPublicAccessibilityModifier"] = 24] = "NonPublicAccessibilityModifier"; - ModifierFlags3[ModifierFlags3["TypeScriptModifier"] = 117086] = "TypeScriptModifier"; - ModifierFlags3[ModifierFlags3["ExportDefault"] = 1025] = "ExportDefault"; - ModifierFlags3[ModifierFlags3["All"] = 258047] = "All"; - ModifierFlags3[ModifierFlags3["Modifier"] = 126975] = "Modifier"; - return ModifierFlags3; -})(ModifierFlags || {}); -var JsxFlags = /* @__PURE__ */ (function (JsxFlags2) { - JsxFlags2[JsxFlags2["None"] = 0] = "None"; - JsxFlags2[JsxFlags2["IntrinsicNamedElement"] = 1] = "IntrinsicNamedElement"; - JsxFlags2[JsxFlags2["IntrinsicIndexedElement"] = 2] = "IntrinsicIndexedElement"; - JsxFlags2[JsxFlags2["IntrinsicElement"] = 3] = "IntrinsicElement"; - return JsxFlags2; -})(JsxFlags || {}); -var RelationComparisonResult = /* @__PURE__ */ (function (RelationComparisonResult3) { - RelationComparisonResult3[RelationComparisonResult3["Succeeded"] = 1] = "Succeeded"; - RelationComparisonResult3[RelationComparisonResult3["Failed"] = 2] = "Failed"; - RelationComparisonResult3[RelationComparisonResult3["Reported"] = 4] = "Reported"; - RelationComparisonResult3[RelationComparisonResult3["ReportsUnmeasurable"] = 8] = "ReportsUnmeasurable"; - RelationComparisonResult3[RelationComparisonResult3["ReportsUnreliable"] = 16] = "ReportsUnreliable"; - RelationComparisonResult3[RelationComparisonResult3["ReportsMask"] = 24] = "ReportsMask"; - return RelationComparisonResult3; -})(RelationComparisonResult || {}); -var GeneratedIdentifierFlags = /* @__PURE__ */ (function (GeneratedIdentifierFlags2) { - GeneratedIdentifierFlags2[GeneratedIdentifierFlags2["None"] = 0] = "None"; - GeneratedIdentifierFlags2[GeneratedIdentifierFlags2["Auto"] = 1] = "Auto"; - GeneratedIdentifierFlags2[GeneratedIdentifierFlags2["Loop"] = 2] = "Loop"; - GeneratedIdentifierFlags2[GeneratedIdentifierFlags2["Unique"] = 3] = "Unique"; - GeneratedIdentifierFlags2[GeneratedIdentifierFlags2["Node"] = 4] = "Node"; - GeneratedIdentifierFlags2[GeneratedIdentifierFlags2["KindMask"] = 7] = "KindMask"; - GeneratedIdentifierFlags2[GeneratedIdentifierFlags2["ReservedInNestedScopes"] = 8] = "ReservedInNestedScopes"; - GeneratedIdentifierFlags2[GeneratedIdentifierFlags2["Optimistic"] = 16] = "Optimistic"; - GeneratedIdentifierFlags2[GeneratedIdentifierFlags2["FileLevel"] = 32] = "FileLevel"; - GeneratedIdentifierFlags2[GeneratedIdentifierFlags2["AllowNameSubstitution"] = 64] = "AllowNameSubstitution"; - return GeneratedIdentifierFlags2; -})(GeneratedIdentifierFlags || {}); -var TokenFlags = /* @__PURE__ */ (function (TokenFlags2) { - TokenFlags2[TokenFlags2["None"] = 0] = "None"; - TokenFlags2[TokenFlags2["PrecedingLineBreak"] = 1] = "PrecedingLineBreak"; - TokenFlags2[TokenFlags2["PrecedingJSDocComment"] = 2] = "PrecedingJSDocComment"; - TokenFlags2[TokenFlags2["Unterminated"] = 4] = "Unterminated"; - TokenFlags2[TokenFlags2["ExtendedUnicodeEscape"] = 8] = "ExtendedUnicodeEscape"; - TokenFlags2[TokenFlags2["Scientific"] = 16] = "Scientific"; - TokenFlags2[TokenFlags2["Octal"] = 32] = "Octal"; - TokenFlags2[TokenFlags2["HexSpecifier"] = 64] = "HexSpecifier"; - TokenFlags2[TokenFlags2["BinarySpecifier"] = 128] = "BinarySpecifier"; - TokenFlags2[TokenFlags2["OctalSpecifier"] = 256] = "OctalSpecifier"; - TokenFlags2[TokenFlags2["ContainsSeparator"] = 512] = "ContainsSeparator"; - TokenFlags2[TokenFlags2["UnicodeEscape"] = 1024] = "UnicodeEscape"; - TokenFlags2[TokenFlags2["ContainsInvalidEscape"] = 2048] = "ContainsInvalidEscape"; - TokenFlags2[TokenFlags2["HexEscape"] = 4096] = "HexEscape"; - TokenFlags2[TokenFlags2["ContainsLeadingZero"] = 8192] = "ContainsLeadingZero"; - TokenFlags2[TokenFlags2["ContainsInvalidSeparator"] = 16384] = "ContainsInvalidSeparator"; - TokenFlags2[TokenFlags2["BinaryOrOctalSpecifier"] = 384] = "BinaryOrOctalSpecifier"; - TokenFlags2[TokenFlags2["WithSpecifier"] = 448] = "WithSpecifier"; - TokenFlags2[TokenFlags2["StringLiteralFlags"] = 7176] = "StringLiteralFlags"; - TokenFlags2[TokenFlags2["NumericLiteralFlags"] = 25584] = "NumericLiteralFlags"; - TokenFlags2[TokenFlags2["TemplateLiteralLikeFlags"] = 7176] = "TemplateLiteralLikeFlags"; - TokenFlags2[TokenFlags2["IsInvalid"] = 26656] = "IsInvalid"; - return TokenFlags2; -})(TokenFlags || {}); -var FlowFlags = /* @__PURE__ */ (function (FlowFlags2) { - FlowFlags2[FlowFlags2["Unreachable"] = 1] = "Unreachable"; - FlowFlags2[FlowFlags2["Start"] = 2] = "Start"; - FlowFlags2[FlowFlags2["BranchLabel"] = 4] = "BranchLabel"; - FlowFlags2[FlowFlags2["LoopLabel"] = 8] = "LoopLabel"; - FlowFlags2[FlowFlags2["Assignment"] = 16] = "Assignment"; - FlowFlags2[FlowFlags2["TrueCondition"] = 32] = "TrueCondition"; - FlowFlags2[FlowFlags2["FalseCondition"] = 64] = "FalseCondition"; - FlowFlags2[FlowFlags2["SwitchClause"] = 128] = "SwitchClause"; - FlowFlags2[FlowFlags2["ArrayMutation"] = 256] = "ArrayMutation"; - FlowFlags2[FlowFlags2["Call"] = 512] = "Call"; - FlowFlags2[FlowFlags2["ReduceLabel"] = 1024] = "ReduceLabel"; - FlowFlags2[FlowFlags2["Referenced"] = 2048] = "Referenced"; - FlowFlags2[FlowFlags2["Shared"] = 4096] = "Shared"; - FlowFlags2[FlowFlags2["Label"] = 12] = "Label"; - FlowFlags2[FlowFlags2["Condition"] = 96] = "Condition"; - return FlowFlags2; -})(FlowFlags || {}); -var CommentDirectiveType = /* @__PURE__ */ (function (CommentDirectiveType2) { - CommentDirectiveType2[CommentDirectiveType2["ExpectError"] = 0] = "ExpectError"; - CommentDirectiveType2[CommentDirectiveType2["Ignore"] = 1] = "Ignore"; - return CommentDirectiveType2; -})(CommentDirectiveType || {}); -var OperationCanceledException = /** @class */ (function () { - function OperationCanceledException() { - } - return OperationCanceledException; -}()); -var FileIncludeKind = /* @__PURE__ */ (function (FileIncludeKind2) { - FileIncludeKind2[FileIncludeKind2["RootFile"] = 0] = "RootFile"; - FileIncludeKind2[FileIncludeKind2["SourceFromProjectReference"] = 1] = "SourceFromProjectReference"; - FileIncludeKind2[FileIncludeKind2["OutputFromProjectReference"] = 2] = "OutputFromProjectReference"; - FileIncludeKind2[FileIncludeKind2["Import"] = 3] = "Import"; - FileIncludeKind2[FileIncludeKind2["ReferenceFile"] = 4] = "ReferenceFile"; - FileIncludeKind2[FileIncludeKind2["TypeReferenceDirective"] = 5] = "TypeReferenceDirective"; - FileIncludeKind2[FileIncludeKind2["LibFile"] = 6] = "LibFile"; - FileIncludeKind2[FileIncludeKind2["LibReferenceDirective"] = 7] = "LibReferenceDirective"; - FileIncludeKind2[FileIncludeKind2["AutomaticTypeDirectiveFile"] = 8] = "AutomaticTypeDirectiveFile"; - return FileIncludeKind2; -})(FileIncludeKind || {}); -var FilePreprocessingDiagnosticsKind = /* @__PURE__ */ (function (FilePreprocessingDiagnosticsKind2) { - FilePreprocessingDiagnosticsKind2[FilePreprocessingDiagnosticsKind2["FilePreprocessingReferencedDiagnostic"] = 0] = "FilePreprocessingReferencedDiagnostic"; - FilePreprocessingDiagnosticsKind2[FilePreprocessingDiagnosticsKind2["FilePreprocessingFileExplainingDiagnostic"] = 1] = "FilePreprocessingFileExplainingDiagnostic"; - FilePreprocessingDiagnosticsKind2[FilePreprocessingDiagnosticsKind2["ResolutionDiagnostics"] = 2] = "ResolutionDiagnostics"; - return FilePreprocessingDiagnosticsKind2; -})(FilePreprocessingDiagnosticsKind || {}); -var EmitOnly = /* @__PURE__ */ (function (EmitOnly4) { - EmitOnly4[EmitOnly4["Js"] = 0] = "Js"; - EmitOnly4[EmitOnly4["Dts"] = 1] = "Dts"; - return EmitOnly4; -})(EmitOnly || {}); -var StructureIsReused = /* @__PURE__ */ (function (StructureIsReused2) { - StructureIsReused2[StructureIsReused2["Not"] = 0] = "Not"; - StructureIsReused2[StructureIsReused2["SafeModules"] = 1] = "SafeModules"; - StructureIsReused2[StructureIsReused2["Completely"] = 2] = "Completely"; - return StructureIsReused2; -})(StructureIsReused || {}); -var ExitStatus = /* @__PURE__ */ (function (ExitStatus2) { - ExitStatus2[ExitStatus2["Success"] = 0] = "Success"; - ExitStatus2[ExitStatus2["DiagnosticsPresent_OutputsSkipped"] = 1] = "DiagnosticsPresent_OutputsSkipped"; - ExitStatus2[ExitStatus2["DiagnosticsPresent_OutputsGenerated"] = 2] = "DiagnosticsPresent_OutputsGenerated"; - ExitStatus2[ExitStatus2["InvalidProject_OutputsSkipped"] = 3] = "InvalidProject_OutputsSkipped"; - ExitStatus2[ExitStatus2["ProjectReferenceCycle_OutputsSkipped"] = 4] = "ProjectReferenceCycle_OutputsSkipped"; - return ExitStatus2; -})(ExitStatus || {}); -var MemberOverrideStatus = /* @__PURE__ */ (function (MemberOverrideStatus2) { - MemberOverrideStatus2[MemberOverrideStatus2["Ok"] = 0] = "Ok"; - MemberOverrideStatus2[MemberOverrideStatus2["NeedsOverride"] = 1] = "NeedsOverride"; - MemberOverrideStatus2[MemberOverrideStatus2["HasInvalidOverride"] = 2] = "HasInvalidOverride"; - return MemberOverrideStatus2; -})(MemberOverrideStatus || {}); -var UnionReduction = /* @__PURE__ */ (function (UnionReduction2) { - UnionReduction2[UnionReduction2["None"] = 0] = "None"; - UnionReduction2[UnionReduction2["Literal"] = 1] = "Literal"; - UnionReduction2[UnionReduction2["Subtype"] = 2] = "Subtype"; - return UnionReduction2; -})(UnionReduction || {}); -var ContextFlags = /* @__PURE__ */ (function (ContextFlags3) { - ContextFlags3[ContextFlags3["None"] = 0] = "None"; - ContextFlags3[ContextFlags3["Signature"] = 1] = "Signature"; - ContextFlags3[ContextFlags3["NoConstraints"] = 2] = "NoConstraints"; - ContextFlags3[ContextFlags3["Completions"] = 4] = "Completions"; - ContextFlags3[ContextFlags3["SkipBindingPatterns"] = 8] = "SkipBindingPatterns"; - return ContextFlags3; -})(ContextFlags || {}); -var NodeBuilderFlags = /* @__PURE__ */ (function (NodeBuilderFlags2) { - NodeBuilderFlags2[NodeBuilderFlags2["None"] = 0] = "None"; - NodeBuilderFlags2[NodeBuilderFlags2["NoTruncation"] = 1] = "NoTruncation"; - NodeBuilderFlags2[NodeBuilderFlags2["WriteArrayAsGenericType"] = 2] = "WriteArrayAsGenericType"; - NodeBuilderFlags2[NodeBuilderFlags2["GenerateNamesForShadowedTypeParams"] = 4] = "GenerateNamesForShadowedTypeParams"; - NodeBuilderFlags2[NodeBuilderFlags2["UseStructuralFallback"] = 8] = "UseStructuralFallback"; - NodeBuilderFlags2[NodeBuilderFlags2["ForbidIndexedAccessSymbolReferences"] = 16] = "ForbidIndexedAccessSymbolReferences"; - NodeBuilderFlags2[NodeBuilderFlags2["WriteTypeArgumentsOfSignature"] = 32] = "WriteTypeArgumentsOfSignature"; - NodeBuilderFlags2[NodeBuilderFlags2["UseFullyQualifiedType"] = 64] = "UseFullyQualifiedType"; - NodeBuilderFlags2[NodeBuilderFlags2["UseOnlyExternalAliasing"] = 128] = "UseOnlyExternalAliasing"; - NodeBuilderFlags2[NodeBuilderFlags2["SuppressAnyReturnType"] = 256] = "SuppressAnyReturnType"; - NodeBuilderFlags2[NodeBuilderFlags2["WriteTypeParametersInQualifiedName"] = 512] = "WriteTypeParametersInQualifiedName"; - NodeBuilderFlags2[NodeBuilderFlags2["MultilineObjectLiterals"] = 1024] = "MultilineObjectLiterals"; - NodeBuilderFlags2[NodeBuilderFlags2["WriteClassExpressionAsTypeLiteral"] = 2048] = "WriteClassExpressionAsTypeLiteral"; - NodeBuilderFlags2[NodeBuilderFlags2["UseTypeOfFunction"] = 4096] = "UseTypeOfFunction"; - NodeBuilderFlags2[NodeBuilderFlags2["OmitParameterModifiers"] = 8192] = "OmitParameterModifiers"; - NodeBuilderFlags2[NodeBuilderFlags2["UseAliasDefinedOutsideCurrentScope"] = 16384] = "UseAliasDefinedOutsideCurrentScope"; - NodeBuilderFlags2[NodeBuilderFlags2["UseSingleQuotesForStringLiteralType"] = 268435456] = "UseSingleQuotesForStringLiteralType"; - NodeBuilderFlags2[NodeBuilderFlags2["NoTypeReduction"] = 536870912] = "NoTypeReduction"; - NodeBuilderFlags2[NodeBuilderFlags2["OmitThisParameter"] = 33554432] = "OmitThisParameter"; - NodeBuilderFlags2[NodeBuilderFlags2["AllowThisInObjectLiteral"] = 32768] = "AllowThisInObjectLiteral"; - NodeBuilderFlags2[NodeBuilderFlags2["AllowQualifiedNameInPlaceOfIdentifier"] = 65536] = "AllowQualifiedNameInPlaceOfIdentifier"; - NodeBuilderFlags2[NodeBuilderFlags2["AllowAnonymousIdentifier"] = 131072] = "AllowAnonymousIdentifier"; - NodeBuilderFlags2[NodeBuilderFlags2["AllowEmptyUnionOrIntersection"] = 262144] = "AllowEmptyUnionOrIntersection"; - NodeBuilderFlags2[NodeBuilderFlags2["AllowEmptyTuple"] = 524288] = "AllowEmptyTuple"; - NodeBuilderFlags2[NodeBuilderFlags2["AllowUniqueESSymbolType"] = 1048576] = "AllowUniqueESSymbolType"; - NodeBuilderFlags2[NodeBuilderFlags2["AllowEmptyIndexInfoType"] = 2097152] = "AllowEmptyIndexInfoType"; - NodeBuilderFlags2[NodeBuilderFlags2["WriteComputedProps"] = 1073741824] = "WriteComputedProps"; - NodeBuilderFlags2[NodeBuilderFlags2["AllowNodeModulesRelativePaths"] = 67108864] = "AllowNodeModulesRelativePaths"; - NodeBuilderFlags2[NodeBuilderFlags2["DoNotIncludeSymbolChain"] = 134217728] = "DoNotIncludeSymbolChain"; - NodeBuilderFlags2[NodeBuilderFlags2["IgnoreErrors"] = 70221824] = "IgnoreErrors"; - NodeBuilderFlags2[NodeBuilderFlags2["InObjectTypeLiteral"] = 4194304] = "InObjectTypeLiteral"; - NodeBuilderFlags2[NodeBuilderFlags2["InTypeAlias"] = 8388608] = "InTypeAlias"; - NodeBuilderFlags2[NodeBuilderFlags2["InInitialEntityName"] = 16777216] = "InInitialEntityName"; - return NodeBuilderFlags2; -})(NodeBuilderFlags || {}); -var TypeFormatFlags = /* @__PURE__ */ (function (TypeFormatFlags2) { - TypeFormatFlags2[TypeFormatFlags2["None"] = 0] = "None"; - TypeFormatFlags2[TypeFormatFlags2["NoTruncation"] = 1] = "NoTruncation"; - TypeFormatFlags2[TypeFormatFlags2["WriteArrayAsGenericType"] = 2] = "WriteArrayAsGenericType"; - TypeFormatFlags2[TypeFormatFlags2["UseStructuralFallback"] = 8] = "UseStructuralFallback"; - TypeFormatFlags2[TypeFormatFlags2["WriteTypeArgumentsOfSignature"] = 32] = "WriteTypeArgumentsOfSignature"; - TypeFormatFlags2[TypeFormatFlags2["UseFullyQualifiedType"] = 64] = "UseFullyQualifiedType"; - TypeFormatFlags2[TypeFormatFlags2["SuppressAnyReturnType"] = 256] = "SuppressAnyReturnType"; - TypeFormatFlags2[TypeFormatFlags2["MultilineObjectLiterals"] = 1024] = "MultilineObjectLiterals"; - TypeFormatFlags2[TypeFormatFlags2["WriteClassExpressionAsTypeLiteral"] = 2048] = "WriteClassExpressionAsTypeLiteral"; - TypeFormatFlags2[TypeFormatFlags2["UseTypeOfFunction"] = 4096] = "UseTypeOfFunction"; - TypeFormatFlags2[TypeFormatFlags2["OmitParameterModifiers"] = 8192] = "OmitParameterModifiers"; - TypeFormatFlags2[TypeFormatFlags2["UseAliasDefinedOutsideCurrentScope"] = 16384] = "UseAliasDefinedOutsideCurrentScope"; - TypeFormatFlags2[TypeFormatFlags2["UseSingleQuotesForStringLiteralType"] = 268435456] = "UseSingleQuotesForStringLiteralType"; - TypeFormatFlags2[TypeFormatFlags2["NoTypeReduction"] = 536870912] = "NoTypeReduction"; - TypeFormatFlags2[TypeFormatFlags2["OmitThisParameter"] = 33554432] = "OmitThisParameter"; - TypeFormatFlags2[TypeFormatFlags2["AllowUniqueESSymbolType"] = 1048576] = "AllowUniqueESSymbolType"; - TypeFormatFlags2[TypeFormatFlags2["AddUndefined"] = 131072] = "AddUndefined"; - TypeFormatFlags2[TypeFormatFlags2["WriteArrowStyleSignature"] = 262144] = "WriteArrowStyleSignature"; - TypeFormatFlags2[TypeFormatFlags2["InArrayType"] = 524288] = "InArrayType"; - TypeFormatFlags2[TypeFormatFlags2["InElementType"] = 2097152] = "InElementType"; - TypeFormatFlags2[TypeFormatFlags2["InFirstTypeArgument"] = 4194304] = "InFirstTypeArgument"; - TypeFormatFlags2[TypeFormatFlags2["InTypeAlias"] = 8388608] = "InTypeAlias"; - TypeFormatFlags2[TypeFormatFlags2["NodeBuilderFlagsMask"] = 848330091] = "NodeBuilderFlagsMask"; - return TypeFormatFlags2; -})(TypeFormatFlags || {}); -var SymbolFormatFlags = /* @__PURE__ */ (function (SymbolFormatFlags2) { - SymbolFormatFlags2[SymbolFormatFlags2["None"] = 0] = "None"; - SymbolFormatFlags2[SymbolFormatFlags2["WriteTypeParametersOrArguments"] = 1] = "WriteTypeParametersOrArguments"; - SymbolFormatFlags2[SymbolFormatFlags2["UseOnlyExternalAliasing"] = 2] = "UseOnlyExternalAliasing"; - SymbolFormatFlags2[SymbolFormatFlags2["AllowAnyNodeKind"] = 4] = "AllowAnyNodeKind"; - SymbolFormatFlags2[SymbolFormatFlags2["UseAliasDefinedOutsideCurrentScope"] = 8] = "UseAliasDefinedOutsideCurrentScope"; - SymbolFormatFlags2[SymbolFormatFlags2["WriteComputedProps"] = 16] = "WriteComputedProps"; - SymbolFormatFlags2[SymbolFormatFlags2["DoNotIncludeSymbolChain"] = 32] = "DoNotIncludeSymbolChain"; - return SymbolFormatFlags2; -})(SymbolFormatFlags || {}); -var SymbolAccessibility = /* @__PURE__ */ (function (SymbolAccessibility2) { - SymbolAccessibility2[SymbolAccessibility2["Accessible"] = 0] = "Accessible"; - SymbolAccessibility2[SymbolAccessibility2["NotAccessible"] = 1] = "NotAccessible"; - SymbolAccessibility2[SymbolAccessibility2["CannotBeNamed"] = 2] = "CannotBeNamed"; - return SymbolAccessibility2; -})(SymbolAccessibility || {}); -var SyntheticSymbolKind = /* @__PURE__ */ (function (SyntheticSymbolKind2) { - SyntheticSymbolKind2[SyntheticSymbolKind2["UnionOrIntersection"] = 0] = "UnionOrIntersection"; - SyntheticSymbolKind2[SyntheticSymbolKind2["Spread"] = 1] = "Spread"; - return SyntheticSymbolKind2; -})(SyntheticSymbolKind || {}); -var TypePredicateKind = /* @__PURE__ */ (function (TypePredicateKind2) { - TypePredicateKind2[TypePredicateKind2["This"] = 0] = "This"; - TypePredicateKind2[TypePredicateKind2["Identifier"] = 1] = "Identifier"; - TypePredicateKind2[TypePredicateKind2["AssertsThis"] = 2] = "AssertsThis"; - TypePredicateKind2[TypePredicateKind2["AssertsIdentifier"] = 3] = "AssertsIdentifier"; - return TypePredicateKind2; -})(TypePredicateKind || {}); -var TypeReferenceSerializationKind = /* @__PURE__ */ (function (TypeReferenceSerializationKind2) { - TypeReferenceSerializationKind2[TypeReferenceSerializationKind2["Unknown"] = 0] = "Unknown"; - TypeReferenceSerializationKind2[TypeReferenceSerializationKind2["TypeWithConstructSignatureAndValue"] = 1] = "TypeWithConstructSignatureAndValue"; - TypeReferenceSerializationKind2[TypeReferenceSerializationKind2["VoidNullableOrNeverType"] = 2] = "VoidNullableOrNeverType"; - TypeReferenceSerializationKind2[TypeReferenceSerializationKind2["NumberLikeType"] = 3] = "NumberLikeType"; - TypeReferenceSerializationKind2[TypeReferenceSerializationKind2["BigIntLikeType"] = 4] = "BigIntLikeType"; - TypeReferenceSerializationKind2[TypeReferenceSerializationKind2["StringLikeType"] = 5] = "StringLikeType"; - TypeReferenceSerializationKind2[TypeReferenceSerializationKind2["BooleanType"] = 6] = "BooleanType"; - TypeReferenceSerializationKind2[TypeReferenceSerializationKind2["ArrayLikeType"] = 7] = "ArrayLikeType"; - TypeReferenceSerializationKind2[TypeReferenceSerializationKind2["ESSymbolType"] = 8] = "ESSymbolType"; - TypeReferenceSerializationKind2[TypeReferenceSerializationKind2["Promise"] = 9] = "Promise"; - TypeReferenceSerializationKind2[TypeReferenceSerializationKind2["TypeWithCallSignature"] = 10] = "TypeWithCallSignature"; - TypeReferenceSerializationKind2[TypeReferenceSerializationKind2["ObjectType"] = 11] = "ObjectType"; - return TypeReferenceSerializationKind2; -})(TypeReferenceSerializationKind || {}); -var SymbolFlags = /* @__PURE__ */ (function (SymbolFlags3) { - SymbolFlags3[SymbolFlags3["None"] = 0] = "None"; - SymbolFlags3[SymbolFlags3["FunctionScopedVariable"] = 1] = "FunctionScopedVariable"; - SymbolFlags3[SymbolFlags3["BlockScopedVariable"] = 2] = "BlockScopedVariable"; - SymbolFlags3[SymbolFlags3["Property"] = 4] = "Property"; - SymbolFlags3[SymbolFlags3["EnumMember"] = 8] = "EnumMember"; - SymbolFlags3[SymbolFlags3["Function"] = 16] = "Function"; - SymbolFlags3[SymbolFlags3["Class"] = 32] = "Class"; - SymbolFlags3[SymbolFlags3["Interface"] = 64] = "Interface"; - SymbolFlags3[SymbolFlags3["ConstEnum"] = 128] = "ConstEnum"; - SymbolFlags3[SymbolFlags3["RegularEnum"] = 256] = "RegularEnum"; - SymbolFlags3[SymbolFlags3["ValueModule"] = 512] = "ValueModule"; - SymbolFlags3[SymbolFlags3["NamespaceModule"] = 1024] = "NamespaceModule"; - SymbolFlags3[SymbolFlags3["TypeLiteral"] = 2048] = "TypeLiteral"; - SymbolFlags3[SymbolFlags3["ObjectLiteral"] = 4096] = "ObjectLiteral"; - SymbolFlags3[SymbolFlags3["Method"] = 8192] = "Method"; - SymbolFlags3[SymbolFlags3["Constructor"] = 16384] = "Constructor"; - SymbolFlags3[SymbolFlags3["GetAccessor"] = 32768] = "GetAccessor"; - SymbolFlags3[SymbolFlags3["SetAccessor"] = 65536] = "SetAccessor"; - SymbolFlags3[SymbolFlags3["Signature"] = 131072] = "Signature"; - SymbolFlags3[SymbolFlags3["TypeParameter"] = 262144] = "TypeParameter"; - SymbolFlags3[SymbolFlags3["TypeAlias"] = 524288] = "TypeAlias"; - SymbolFlags3[SymbolFlags3["ExportValue"] = 1048576] = "ExportValue"; - SymbolFlags3[SymbolFlags3["Alias"] = 2097152] = "Alias"; - SymbolFlags3[SymbolFlags3["Prototype"] = 4194304] = "Prototype"; - SymbolFlags3[SymbolFlags3["ExportStar"] = 8388608] = "ExportStar"; - SymbolFlags3[SymbolFlags3["Optional"] = 16777216] = "Optional"; - SymbolFlags3[SymbolFlags3["Transient"] = 33554432] = "Transient"; - SymbolFlags3[SymbolFlags3["Assignment"] = 67108864] = "Assignment"; - SymbolFlags3[SymbolFlags3["ModuleExports"] = 134217728] = "ModuleExports"; - SymbolFlags3[SymbolFlags3["All"] = 67108863] = "All"; - SymbolFlags3[SymbolFlags3["Enum"] = 384] = "Enum"; - SymbolFlags3[SymbolFlags3["Variable"] = 3] = "Variable"; - SymbolFlags3[SymbolFlags3["Value"] = 111551] = "Value"; - SymbolFlags3[SymbolFlags3["Type"] = 788968] = "Type"; - SymbolFlags3[SymbolFlags3["Namespace"] = 1920] = "Namespace"; - SymbolFlags3[SymbolFlags3["Module"] = 1536] = "Module"; - SymbolFlags3[SymbolFlags3["Accessor"] = 98304] = "Accessor"; - SymbolFlags3[SymbolFlags3["FunctionScopedVariableExcludes"] = 111550] = "FunctionScopedVariableExcludes"; - SymbolFlags3[SymbolFlags3["BlockScopedVariableExcludes"] = 111551 /* Value */] = "BlockScopedVariableExcludes"; - SymbolFlags3[SymbolFlags3["ParameterExcludes"] = 111551 /* Value */] = "ParameterExcludes"; - SymbolFlags3[SymbolFlags3["PropertyExcludes"] = 0 /* None */] = "PropertyExcludes"; - SymbolFlags3[SymbolFlags3["EnumMemberExcludes"] = 900095] = "EnumMemberExcludes"; - SymbolFlags3[SymbolFlags3["FunctionExcludes"] = 110991] = "FunctionExcludes"; - SymbolFlags3[SymbolFlags3["ClassExcludes"] = 899503] = "ClassExcludes"; - SymbolFlags3[SymbolFlags3["InterfaceExcludes"] = 788872] = "InterfaceExcludes"; - SymbolFlags3[SymbolFlags3["RegularEnumExcludes"] = 899327] = "RegularEnumExcludes"; - SymbolFlags3[SymbolFlags3["ConstEnumExcludes"] = 899967] = "ConstEnumExcludes"; - SymbolFlags3[SymbolFlags3["ValueModuleExcludes"] = 110735] = "ValueModuleExcludes"; - SymbolFlags3[SymbolFlags3["NamespaceModuleExcludes"] = 0] = "NamespaceModuleExcludes"; - SymbolFlags3[SymbolFlags3["MethodExcludes"] = 103359] = "MethodExcludes"; - SymbolFlags3[SymbolFlags3["GetAccessorExcludes"] = 46015] = "GetAccessorExcludes"; - SymbolFlags3[SymbolFlags3["SetAccessorExcludes"] = 78783] = "SetAccessorExcludes"; - SymbolFlags3[SymbolFlags3["AccessorExcludes"] = 13247] = "AccessorExcludes"; - SymbolFlags3[SymbolFlags3["TypeParameterExcludes"] = 526824] = "TypeParameterExcludes"; - SymbolFlags3[SymbolFlags3["TypeAliasExcludes"] = 788968 /* Type */] = "TypeAliasExcludes"; - SymbolFlags3[SymbolFlags3["AliasExcludes"] = 2097152 /* Alias */] = "AliasExcludes"; - SymbolFlags3[SymbolFlags3["ModuleMember"] = 2623475] = "ModuleMember"; - SymbolFlags3[SymbolFlags3["ExportHasLocal"] = 944] = "ExportHasLocal"; - SymbolFlags3[SymbolFlags3["BlockScoped"] = 418] = "BlockScoped"; - SymbolFlags3[SymbolFlags3["PropertyOrAccessor"] = 98308] = "PropertyOrAccessor"; - SymbolFlags3[SymbolFlags3["ClassMember"] = 106500] = "ClassMember"; - SymbolFlags3[SymbolFlags3["ExportSupportsDefaultModifier"] = 112] = "ExportSupportsDefaultModifier"; - SymbolFlags3[SymbolFlags3["ExportDoesNotSupportDefaultModifier"] = -113] = "ExportDoesNotSupportDefaultModifier"; - SymbolFlags3[SymbolFlags3["Classifiable"] = 2885600] = "Classifiable"; - SymbolFlags3[SymbolFlags3["LateBindingContainer"] = 6256] = "LateBindingContainer"; - return SymbolFlags3; -})(SymbolFlags || {}); -var EnumKind = /* @__PURE__ */ (function (EnumKind2) { - EnumKind2[EnumKind2["Numeric"] = 0] = "Numeric"; - EnumKind2[EnumKind2["Literal"] = 1] = "Literal"; - return EnumKind2; -})(EnumKind || {}); -var CheckFlags = /* @__PURE__ */ (function (CheckFlags2) { - CheckFlags2[CheckFlags2["None"] = 0] = "None"; - CheckFlags2[CheckFlags2["Instantiated"] = 1] = "Instantiated"; - CheckFlags2[CheckFlags2["SyntheticProperty"] = 2] = "SyntheticProperty"; - CheckFlags2[CheckFlags2["SyntheticMethod"] = 4] = "SyntheticMethod"; - CheckFlags2[CheckFlags2["Readonly"] = 8] = "Readonly"; - CheckFlags2[CheckFlags2["ReadPartial"] = 16] = "ReadPartial"; - CheckFlags2[CheckFlags2["WritePartial"] = 32] = "WritePartial"; - CheckFlags2[CheckFlags2["HasNonUniformType"] = 64] = "HasNonUniformType"; - CheckFlags2[CheckFlags2["HasLiteralType"] = 128] = "HasLiteralType"; - CheckFlags2[CheckFlags2["ContainsPublic"] = 256] = "ContainsPublic"; - CheckFlags2[CheckFlags2["ContainsProtected"] = 512] = "ContainsProtected"; - CheckFlags2[CheckFlags2["ContainsPrivate"] = 1024] = "ContainsPrivate"; - CheckFlags2[CheckFlags2["ContainsStatic"] = 2048] = "ContainsStatic"; - CheckFlags2[CheckFlags2["Late"] = 4096] = "Late"; - CheckFlags2[CheckFlags2["ReverseMapped"] = 8192] = "ReverseMapped"; - CheckFlags2[CheckFlags2["OptionalParameter"] = 16384] = "OptionalParameter"; - CheckFlags2[CheckFlags2["RestParameter"] = 32768] = "RestParameter"; - CheckFlags2[CheckFlags2["DeferredType"] = 65536] = "DeferredType"; - CheckFlags2[CheckFlags2["HasNeverType"] = 131072] = "HasNeverType"; - CheckFlags2[CheckFlags2["Mapped"] = 262144] = "Mapped"; - CheckFlags2[CheckFlags2["StripOptional"] = 524288] = "StripOptional"; - CheckFlags2[CheckFlags2["Unresolved"] = 1048576] = "Unresolved"; - CheckFlags2[CheckFlags2["Synthetic"] = 6] = "Synthetic"; - CheckFlags2[CheckFlags2["Discriminant"] = 192] = "Discriminant"; - CheckFlags2[CheckFlags2["Partial"] = 48] = "Partial"; - return CheckFlags2; -})(CheckFlags || {}); -var InternalSymbolName = /* @__PURE__ */ (function (InternalSymbolName2) { - InternalSymbolName2["Call"] = "__call"; - InternalSymbolName2["Constructor"] = "__constructor"; - InternalSymbolName2["New"] = "__new"; - InternalSymbolName2["Index"] = "__index"; - InternalSymbolName2["ExportStar"] = "__export"; - InternalSymbolName2["Global"] = "__global"; - InternalSymbolName2["Missing"] = "__missing"; - InternalSymbolName2["Type"] = "__type"; - InternalSymbolName2["Object"] = "__object"; - InternalSymbolName2["JSXAttributes"] = "__jsxAttributes"; - InternalSymbolName2["Class"] = "__class"; - InternalSymbolName2["Function"] = "__function"; - InternalSymbolName2["Computed"] = "__computed"; - InternalSymbolName2["Resolving"] = "__resolving__"; - InternalSymbolName2["ExportEquals"] = "export="; - InternalSymbolName2["Default"] = "default"; - InternalSymbolName2["This"] = "this"; - return InternalSymbolName2; -})(InternalSymbolName || {}); -var NodeCheckFlags = /* @__PURE__ */ (function (NodeCheckFlags2) { - NodeCheckFlags2[NodeCheckFlags2["None"] = 0] = "None"; - NodeCheckFlags2[NodeCheckFlags2["TypeChecked"] = 1] = "TypeChecked"; - NodeCheckFlags2[NodeCheckFlags2["LexicalThis"] = 2] = "LexicalThis"; - NodeCheckFlags2[NodeCheckFlags2["CaptureThis"] = 4] = "CaptureThis"; - NodeCheckFlags2[NodeCheckFlags2["CaptureNewTarget"] = 8] = "CaptureNewTarget"; - NodeCheckFlags2[NodeCheckFlags2["SuperInstance"] = 16] = "SuperInstance"; - NodeCheckFlags2[NodeCheckFlags2["SuperStatic"] = 32] = "SuperStatic"; - NodeCheckFlags2[NodeCheckFlags2["ContextChecked"] = 64] = "ContextChecked"; - NodeCheckFlags2[NodeCheckFlags2["MethodWithSuperPropertyAccessInAsync"] = 128] = "MethodWithSuperPropertyAccessInAsync"; - NodeCheckFlags2[NodeCheckFlags2["MethodWithSuperPropertyAssignmentInAsync"] = 256] = "MethodWithSuperPropertyAssignmentInAsync"; - NodeCheckFlags2[NodeCheckFlags2["CaptureArguments"] = 512] = "CaptureArguments"; - NodeCheckFlags2[NodeCheckFlags2["EnumValuesComputed"] = 1024] = "EnumValuesComputed"; - NodeCheckFlags2[NodeCheckFlags2["LexicalModuleMergesWithClass"] = 2048] = "LexicalModuleMergesWithClass"; - NodeCheckFlags2[NodeCheckFlags2["LoopWithCapturedBlockScopedBinding"] = 4096] = "LoopWithCapturedBlockScopedBinding"; - NodeCheckFlags2[NodeCheckFlags2["ContainsCapturedBlockScopeBinding"] = 8192] = "ContainsCapturedBlockScopeBinding"; - NodeCheckFlags2[NodeCheckFlags2["CapturedBlockScopedBinding"] = 16384] = "CapturedBlockScopedBinding"; - NodeCheckFlags2[NodeCheckFlags2["BlockScopedBindingInLoop"] = 32768] = "BlockScopedBindingInLoop"; - NodeCheckFlags2[NodeCheckFlags2["NeedsLoopOutParameter"] = 65536] = "NeedsLoopOutParameter"; - NodeCheckFlags2[NodeCheckFlags2["AssignmentsMarked"] = 131072] = "AssignmentsMarked"; - NodeCheckFlags2[NodeCheckFlags2["ContainsConstructorReference"] = 262144] = "ContainsConstructorReference"; - NodeCheckFlags2[NodeCheckFlags2["ConstructorReference"] = 536870912] = "ConstructorReference"; - NodeCheckFlags2[NodeCheckFlags2["ContainsClassWithPrivateIdentifiers"] = 1048576] = "ContainsClassWithPrivateIdentifiers"; - NodeCheckFlags2[NodeCheckFlags2["ContainsSuperPropertyInStaticInitializer"] = 2097152] = "ContainsSuperPropertyInStaticInitializer"; - NodeCheckFlags2[NodeCheckFlags2["InCheckIdentifier"] = 4194304] = "InCheckIdentifier"; - return NodeCheckFlags2; -})(NodeCheckFlags || {}); -var TypeFlags = /* @__PURE__ */ (function (TypeFlags2) { - TypeFlags2[TypeFlags2["Any"] = 1] = "Any"; - TypeFlags2[TypeFlags2["Unknown"] = 2] = "Unknown"; - TypeFlags2[TypeFlags2["String"] = 4] = "String"; - TypeFlags2[TypeFlags2["Number"] = 8] = "Number"; - TypeFlags2[TypeFlags2["Boolean"] = 16] = "Boolean"; - TypeFlags2[TypeFlags2["Enum"] = 32] = "Enum"; - TypeFlags2[TypeFlags2["BigInt"] = 64] = "BigInt"; - TypeFlags2[TypeFlags2["StringLiteral"] = 128] = "StringLiteral"; - TypeFlags2[TypeFlags2["NumberLiteral"] = 256] = "NumberLiteral"; - TypeFlags2[TypeFlags2["BooleanLiteral"] = 512] = "BooleanLiteral"; - TypeFlags2[TypeFlags2["EnumLiteral"] = 1024] = "EnumLiteral"; - TypeFlags2[TypeFlags2["BigIntLiteral"] = 2048] = "BigIntLiteral"; - TypeFlags2[TypeFlags2["ESSymbol"] = 4096] = "ESSymbol"; - TypeFlags2[TypeFlags2["UniqueESSymbol"] = 8192] = "UniqueESSymbol"; - TypeFlags2[TypeFlags2["Void"] = 16384] = "Void"; - TypeFlags2[TypeFlags2["Undefined"] = 32768] = "Undefined"; - TypeFlags2[TypeFlags2["Null"] = 65536] = "Null"; - TypeFlags2[TypeFlags2["Never"] = 131072] = "Never"; - TypeFlags2[TypeFlags2["TypeParameter"] = 262144] = "TypeParameter"; - TypeFlags2[TypeFlags2["Object"] = 524288] = "Object"; - TypeFlags2[TypeFlags2["Union"] = 1048576] = "Union"; - TypeFlags2[TypeFlags2["Intersection"] = 2097152] = "Intersection"; - TypeFlags2[TypeFlags2["Index"] = 4194304] = "Index"; - TypeFlags2[TypeFlags2["IndexedAccess"] = 8388608] = "IndexedAccess"; - TypeFlags2[TypeFlags2["Conditional"] = 16777216] = "Conditional"; - TypeFlags2[TypeFlags2["Substitution"] = 33554432] = "Substitution"; - TypeFlags2[TypeFlags2["NonPrimitive"] = 67108864] = "NonPrimitive"; - TypeFlags2[TypeFlags2["TemplateLiteral"] = 134217728] = "TemplateLiteral"; - TypeFlags2[TypeFlags2["StringMapping"] = 268435456] = "StringMapping"; - TypeFlags2[TypeFlags2["AnyOrUnknown"] = 3] = "AnyOrUnknown"; - TypeFlags2[TypeFlags2["Nullable"] = 98304] = "Nullable"; - TypeFlags2[TypeFlags2["Literal"] = 2944] = "Literal"; - TypeFlags2[TypeFlags2["Unit"] = 109472] = "Unit"; - TypeFlags2[TypeFlags2["Freshable"] = 2976] = "Freshable"; - TypeFlags2[TypeFlags2["StringOrNumberLiteral"] = 384] = "StringOrNumberLiteral"; - TypeFlags2[TypeFlags2["StringOrNumberLiteralOrUnique"] = 8576] = "StringOrNumberLiteralOrUnique"; - TypeFlags2[TypeFlags2["DefinitelyFalsy"] = 117632] = "DefinitelyFalsy"; - TypeFlags2[TypeFlags2["PossiblyFalsy"] = 117724] = "PossiblyFalsy"; - TypeFlags2[TypeFlags2["Intrinsic"] = 67359327] = "Intrinsic"; - TypeFlags2[TypeFlags2["StringLike"] = 402653316] = "StringLike"; - TypeFlags2[TypeFlags2["NumberLike"] = 296] = "NumberLike"; - TypeFlags2[TypeFlags2["BigIntLike"] = 2112] = "BigIntLike"; - TypeFlags2[TypeFlags2["BooleanLike"] = 528] = "BooleanLike"; - TypeFlags2[TypeFlags2["EnumLike"] = 1056] = "EnumLike"; - TypeFlags2[TypeFlags2["ESSymbolLike"] = 12288] = "ESSymbolLike"; - TypeFlags2[TypeFlags2["VoidLike"] = 49152] = "VoidLike"; - TypeFlags2[TypeFlags2["Primitive"] = 402784252] = "Primitive"; - TypeFlags2[TypeFlags2["DefinitelyNonNullable"] = 470302716] = "DefinitelyNonNullable"; - TypeFlags2[TypeFlags2["DisjointDomains"] = 469892092] = "DisjointDomains"; - TypeFlags2[TypeFlags2["UnionOrIntersection"] = 3145728] = "UnionOrIntersection"; - TypeFlags2[TypeFlags2["StructuredType"] = 3670016] = "StructuredType"; - TypeFlags2[TypeFlags2["TypeVariable"] = 8650752] = "TypeVariable"; - TypeFlags2[TypeFlags2["InstantiableNonPrimitive"] = 58982400] = "InstantiableNonPrimitive"; - TypeFlags2[TypeFlags2["InstantiablePrimitive"] = 406847488] = "InstantiablePrimitive"; - TypeFlags2[TypeFlags2["Instantiable"] = 465829888] = "Instantiable"; - TypeFlags2[TypeFlags2["StructuredOrInstantiable"] = 469499904] = "StructuredOrInstantiable"; - TypeFlags2[TypeFlags2["ObjectFlagsType"] = 138117121] = "ObjectFlagsType"; - TypeFlags2[TypeFlags2["Simplifiable"] = 25165824] = "Simplifiable"; - TypeFlags2[TypeFlags2["Singleton"] = 67358815] = "Singleton"; - TypeFlags2[TypeFlags2["Narrowable"] = 536624127] = "Narrowable"; - TypeFlags2[TypeFlags2["IncludesMask"] = 473694207] = "IncludesMask"; - TypeFlags2[TypeFlags2["IncludesMissingType"] = 262144 /* TypeParameter */] = "IncludesMissingType"; - TypeFlags2[TypeFlags2["IncludesNonWideningType"] = 4194304 /* Index */] = "IncludesNonWideningType"; - TypeFlags2[TypeFlags2["IncludesWildcard"] = 8388608 /* IndexedAccess */] = "IncludesWildcard"; - TypeFlags2[TypeFlags2["IncludesEmptyObject"] = 16777216 /* Conditional */] = "IncludesEmptyObject"; - TypeFlags2[TypeFlags2["IncludesInstantiable"] = 33554432 /* Substitution */] = "IncludesInstantiable"; - TypeFlags2[TypeFlags2["NotPrimitiveUnion"] = 36323331] = "NotPrimitiveUnion"; - return TypeFlags2; -})(TypeFlags || {}); -var ObjectFlags = /* @__PURE__ */ (function (ObjectFlags3) { - ObjectFlags3[ObjectFlags3["None"] = 0] = "None"; - ObjectFlags3[ObjectFlags3["Class"] = 1] = "Class"; - ObjectFlags3[ObjectFlags3["Interface"] = 2] = "Interface"; - ObjectFlags3[ObjectFlags3["Reference"] = 4] = "Reference"; - ObjectFlags3[ObjectFlags3["Tuple"] = 8] = "Tuple"; - ObjectFlags3[ObjectFlags3["Anonymous"] = 16] = "Anonymous"; - ObjectFlags3[ObjectFlags3["Mapped"] = 32] = "Mapped"; - ObjectFlags3[ObjectFlags3["Instantiated"] = 64] = "Instantiated"; - ObjectFlags3[ObjectFlags3["ObjectLiteral"] = 128] = "ObjectLiteral"; - ObjectFlags3[ObjectFlags3["EvolvingArray"] = 256] = "EvolvingArray"; - ObjectFlags3[ObjectFlags3["ObjectLiteralPatternWithComputedProperties"] = 512] = "ObjectLiteralPatternWithComputedProperties"; - ObjectFlags3[ObjectFlags3["ReverseMapped"] = 1024] = "ReverseMapped"; - ObjectFlags3[ObjectFlags3["JsxAttributes"] = 2048] = "JsxAttributes"; - ObjectFlags3[ObjectFlags3["JSLiteral"] = 4096] = "JSLiteral"; - ObjectFlags3[ObjectFlags3["FreshLiteral"] = 8192] = "FreshLiteral"; - ObjectFlags3[ObjectFlags3["ArrayLiteral"] = 16384] = "ArrayLiteral"; - ObjectFlags3[ObjectFlags3["PrimitiveUnion"] = 32768] = "PrimitiveUnion"; - ObjectFlags3[ObjectFlags3["ContainsWideningType"] = 65536] = "ContainsWideningType"; - ObjectFlags3[ObjectFlags3["ContainsObjectOrArrayLiteral"] = 131072] = "ContainsObjectOrArrayLiteral"; - ObjectFlags3[ObjectFlags3["NonInferrableType"] = 262144] = "NonInferrableType"; - ObjectFlags3[ObjectFlags3["CouldContainTypeVariablesComputed"] = 524288] = "CouldContainTypeVariablesComputed"; - ObjectFlags3[ObjectFlags3["CouldContainTypeVariables"] = 1048576] = "CouldContainTypeVariables"; - ObjectFlags3[ObjectFlags3["ClassOrInterface"] = 3] = "ClassOrInterface"; - ObjectFlags3[ObjectFlags3["RequiresWidening"] = 196608] = "RequiresWidening"; - ObjectFlags3[ObjectFlags3["PropagatingFlags"] = 458752] = "PropagatingFlags"; - ObjectFlags3[ObjectFlags3["ObjectTypeKindMask"] = 1343] = "ObjectTypeKindMask"; - ObjectFlags3[ObjectFlags3["ContainsSpread"] = 2097152] = "ContainsSpread"; - ObjectFlags3[ObjectFlags3["ObjectRestType"] = 4194304] = "ObjectRestType"; - ObjectFlags3[ObjectFlags3["InstantiationExpressionType"] = 8388608] = "InstantiationExpressionType"; - ObjectFlags3[ObjectFlags3["IsClassInstanceClone"] = 16777216] = "IsClassInstanceClone"; - ObjectFlags3[ObjectFlags3["IdenticalBaseTypeCalculated"] = 33554432] = "IdenticalBaseTypeCalculated"; - ObjectFlags3[ObjectFlags3["IdenticalBaseTypeExists"] = 67108864] = "IdenticalBaseTypeExists"; - ObjectFlags3[ObjectFlags3["IsGenericTypeComputed"] = 2097152] = "IsGenericTypeComputed"; - ObjectFlags3[ObjectFlags3["IsGenericObjectType"] = 4194304] = "IsGenericObjectType"; - ObjectFlags3[ObjectFlags3["IsGenericIndexType"] = 8388608] = "IsGenericIndexType"; - ObjectFlags3[ObjectFlags3["IsGenericType"] = 12582912] = "IsGenericType"; - ObjectFlags3[ObjectFlags3["ContainsIntersections"] = 16777216] = "ContainsIntersections"; - ObjectFlags3[ObjectFlags3["IsUnknownLikeUnionComputed"] = 33554432] = "IsUnknownLikeUnionComputed"; - ObjectFlags3[ObjectFlags3["IsUnknownLikeUnion"] = 67108864] = "IsUnknownLikeUnion"; - ObjectFlags3[ObjectFlags3["IsNeverIntersectionComputed"] = 16777216] = "IsNeverIntersectionComputed"; - ObjectFlags3[ObjectFlags3["IsNeverIntersection"] = 33554432] = "IsNeverIntersection"; - return ObjectFlags3; -})(ObjectFlags || {}); -var VarianceFlags = /* @__PURE__ */ (function (VarianceFlags2) { - VarianceFlags2[VarianceFlags2["Invariant"] = 0] = "Invariant"; - VarianceFlags2[VarianceFlags2["Covariant"] = 1] = "Covariant"; - VarianceFlags2[VarianceFlags2["Contravariant"] = 2] = "Contravariant"; - VarianceFlags2[VarianceFlags2["Bivariant"] = 3] = "Bivariant"; - VarianceFlags2[VarianceFlags2["Independent"] = 4] = "Independent"; - VarianceFlags2[VarianceFlags2["VarianceMask"] = 7] = "VarianceMask"; - VarianceFlags2[VarianceFlags2["Unmeasurable"] = 8] = "Unmeasurable"; - VarianceFlags2[VarianceFlags2["Unreliable"] = 16] = "Unreliable"; - VarianceFlags2[VarianceFlags2["AllowsStructuralFallback"] = 24] = "AllowsStructuralFallback"; - return VarianceFlags2; -})(VarianceFlags || {}); -var ElementFlags = /* @__PURE__ */ (function (ElementFlags2) { - ElementFlags2[ElementFlags2["Required"] = 1] = "Required"; - ElementFlags2[ElementFlags2["Optional"] = 2] = "Optional"; - ElementFlags2[ElementFlags2["Rest"] = 4] = "Rest"; - ElementFlags2[ElementFlags2["Variadic"] = 8] = "Variadic"; - ElementFlags2[ElementFlags2["Fixed"] = 3] = "Fixed"; - ElementFlags2[ElementFlags2["Variable"] = 12] = "Variable"; - ElementFlags2[ElementFlags2["NonRequired"] = 14] = "NonRequired"; - ElementFlags2[ElementFlags2["NonRest"] = 11] = "NonRest"; - return ElementFlags2; -})(ElementFlags || {}); -var AccessFlags = /* @__PURE__ */ (function (AccessFlags2) { - AccessFlags2[AccessFlags2["None"] = 0] = "None"; - AccessFlags2[AccessFlags2["IncludeUndefined"] = 1] = "IncludeUndefined"; - AccessFlags2[AccessFlags2["NoIndexSignatures"] = 2] = "NoIndexSignatures"; - AccessFlags2[AccessFlags2["Writing"] = 4] = "Writing"; - AccessFlags2[AccessFlags2["CacheSymbol"] = 8] = "CacheSymbol"; - AccessFlags2[AccessFlags2["NoTupleBoundsCheck"] = 16] = "NoTupleBoundsCheck"; - AccessFlags2[AccessFlags2["ExpressionPosition"] = 32] = "ExpressionPosition"; - AccessFlags2[AccessFlags2["ReportDeprecated"] = 64] = "ReportDeprecated"; - AccessFlags2[AccessFlags2["SuppressNoImplicitAnyError"] = 128] = "SuppressNoImplicitAnyError"; - AccessFlags2[AccessFlags2["Contextual"] = 256] = "Contextual"; - AccessFlags2[AccessFlags2["Persistent"] = 1 /* IncludeUndefined */] = "Persistent"; - return AccessFlags2; -})(AccessFlags || {}); -var IndexFlags = /* @__PURE__ */ (function (IndexFlags2) { - IndexFlags2[IndexFlags2["None"] = 0] = "None"; - IndexFlags2[IndexFlags2["StringsOnly"] = 1] = "StringsOnly"; - IndexFlags2[IndexFlags2["NoIndexSignatures"] = 2] = "NoIndexSignatures"; - IndexFlags2[IndexFlags2["NoReducibleCheck"] = 4] = "NoReducibleCheck"; - return IndexFlags2; -})(IndexFlags || {}); -var JsxReferenceKind = /* @__PURE__ */ (function (JsxReferenceKind2) { - JsxReferenceKind2[JsxReferenceKind2["Component"] = 0] = "Component"; - JsxReferenceKind2[JsxReferenceKind2["Function"] = 1] = "Function"; - JsxReferenceKind2[JsxReferenceKind2["Mixed"] = 2] = "Mixed"; - return JsxReferenceKind2; -})(JsxReferenceKind || {}); -var SignatureKind = /* @__PURE__ */ (function (SignatureKind2) { - SignatureKind2[SignatureKind2["Call"] = 0] = "Call"; - SignatureKind2[SignatureKind2["Construct"] = 1] = "Construct"; - return SignatureKind2; -})(SignatureKind || {}); -var SignatureFlags = /* @__PURE__ */ (function (SignatureFlags5) { - SignatureFlags5[SignatureFlags5["None"] = 0] = "None"; - SignatureFlags5[SignatureFlags5["HasRestParameter"] = 1] = "HasRestParameter"; - SignatureFlags5[SignatureFlags5["HasLiteralTypes"] = 2] = "HasLiteralTypes"; - SignatureFlags5[SignatureFlags5["Abstract"] = 4] = "Abstract"; - SignatureFlags5[SignatureFlags5["IsInnerCallChain"] = 8] = "IsInnerCallChain"; - SignatureFlags5[SignatureFlags5["IsOuterCallChain"] = 16] = "IsOuterCallChain"; - SignatureFlags5[SignatureFlags5["IsUntypedSignatureInJSFile"] = 32] = "IsUntypedSignatureInJSFile"; - SignatureFlags5[SignatureFlags5["IsNonInferrable"] = 64] = "IsNonInferrable"; - SignatureFlags5[SignatureFlags5["IsSignatureCandidateForOverloadFailure"] = 128] = "IsSignatureCandidateForOverloadFailure"; - SignatureFlags5[SignatureFlags5["PropagatingFlags"] = 167] = "PropagatingFlags"; - SignatureFlags5[SignatureFlags5["CallChainFlags"] = 24] = "CallChainFlags"; - return SignatureFlags5; -})(SignatureFlags || {}); -var IndexKind = /* @__PURE__ */ (function (IndexKind2) { - IndexKind2[IndexKind2["String"] = 0] = "String"; - IndexKind2[IndexKind2["Number"] = 1] = "Number"; - return IndexKind2; -})(IndexKind || {}); -var TypeMapKind = /* @__PURE__ */ (function (TypeMapKind2) { - TypeMapKind2[TypeMapKind2["Simple"] = 0] = "Simple"; - TypeMapKind2[TypeMapKind2["Array"] = 1] = "Array"; - TypeMapKind2[TypeMapKind2["Deferred"] = 2] = "Deferred"; - TypeMapKind2[TypeMapKind2["Function"] = 3] = "Function"; - TypeMapKind2[TypeMapKind2["Composite"] = 4] = "Composite"; - TypeMapKind2[TypeMapKind2["Merged"] = 5] = "Merged"; - return TypeMapKind2; -})(TypeMapKind || {}); -var InferencePriority = /* @__PURE__ */ (function (InferencePriority2) { - InferencePriority2[InferencePriority2["None"] = 0] = "None"; - InferencePriority2[InferencePriority2["NakedTypeVariable"] = 1] = "NakedTypeVariable"; - InferencePriority2[InferencePriority2["SpeculativeTuple"] = 2] = "SpeculativeTuple"; - InferencePriority2[InferencePriority2["SubstituteSource"] = 4] = "SubstituteSource"; - InferencePriority2[InferencePriority2["HomomorphicMappedType"] = 8] = "HomomorphicMappedType"; - InferencePriority2[InferencePriority2["PartialHomomorphicMappedType"] = 16] = "PartialHomomorphicMappedType"; - InferencePriority2[InferencePriority2["MappedTypeConstraint"] = 32] = "MappedTypeConstraint"; - InferencePriority2[InferencePriority2["ContravariantConditional"] = 64] = "ContravariantConditional"; - InferencePriority2[InferencePriority2["ReturnType"] = 128] = "ReturnType"; - InferencePriority2[InferencePriority2["LiteralKeyof"] = 256] = "LiteralKeyof"; - InferencePriority2[InferencePriority2["NoConstraints"] = 512] = "NoConstraints"; - InferencePriority2[InferencePriority2["AlwaysStrict"] = 1024] = "AlwaysStrict"; - InferencePriority2[InferencePriority2["MaxValue"] = 2048] = "MaxValue"; - InferencePriority2[InferencePriority2["PriorityImpliesCombination"] = 416] = "PriorityImpliesCombination"; - InferencePriority2[InferencePriority2["Circularity"] = -1] = "Circularity"; - return InferencePriority2; -})(InferencePriority || {}); -var InferenceFlags = /* @__PURE__ */ (function (InferenceFlags2) { - InferenceFlags2[InferenceFlags2["None"] = 0] = "None"; - InferenceFlags2[InferenceFlags2["NoDefault"] = 1] = "NoDefault"; - InferenceFlags2[InferenceFlags2["AnyDefault"] = 2] = "AnyDefault"; - InferenceFlags2[InferenceFlags2["SkippedGenericFunction"] = 4] = "SkippedGenericFunction"; - return InferenceFlags2; -})(InferenceFlags || {}); -var Ternary = /* @__PURE__ */ (function (Ternary2) { - Ternary2[Ternary2["False"] = 0] = "False"; - Ternary2[Ternary2["Unknown"] = 1] = "Unknown"; - Ternary2[Ternary2["Maybe"] = 3] = "Maybe"; - Ternary2[Ternary2["True"] = -1] = "True"; - return Ternary2; -})(Ternary || {}); -var AssignmentDeclarationKind = /* @__PURE__ */ (function (AssignmentDeclarationKind2) { - AssignmentDeclarationKind2[AssignmentDeclarationKind2["None"] = 0] = "None"; - AssignmentDeclarationKind2[AssignmentDeclarationKind2["ExportsProperty"] = 1] = "ExportsProperty"; - AssignmentDeclarationKind2[AssignmentDeclarationKind2["ModuleExports"] = 2] = "ModuleExports"; - AssignmentDeclarationKind2[AssignmentDeclarationKind2["PrototypeProperty"] = 3] = "PrototypeProperty"; - AssignmentDeclarationKind2[AssignmentDeclarationKind2["ThisProperty"] = 4] = "ThisProperty"; - AssignmentDeclarationKind2[AssignmentDeclarationKind2["Property"] = 5] = "Property"; - AssignmentDeclarationKind2[AssignmentDeclarationKind2["Prototype"] = 6] = "Prototype"; - AssignmentDeclarationKind2[AssignmentDeclarationKind2["ObjectDefinePropertyValue"] = 7] = "ObjectDefinePropertyValue"; - AssignmentDeclarationKind2[AssignmentDeclarationKind2["ObjectDefinePropertyExports"] = 8] = "ObjectDefinePropertyExports"; - AssignmentDeclarationKind2[AssignmentDeclarationKind2["ObjectDefinePrototypeProperty"] = 9] = "ObjectDefinePrototypeProperty"; - return AssignmentDeclarationKind2; -})(AssignmentDeclarationKind || {}); -var DiagnosticCategory = /* @__PURE__ */ (function (DiagnosticCategory2) { - DiagnosticCategory2[DiagnosticCategory2["Warning"] = 0] = "Warning"; - DiagnosticCategory2[DiagnosticCategory2["Error"] = 1] = "Error"; - DiagnosticCategory2[DiagnosticCategory2["Suggestion"] = 2] = "Suggestion"; - DiagnosticCategory2[DiagnosticCategory2["Message"] = 3] = "Message"; - return DiagnosticCategory2; -})(DiagnosticCategory || {}); -function diagnosticCategoryName(d, lowerCase) { - if (lowerCase === void 0) { lowerCase = true; } - var name = DiagnosticCategory[d.category]; - return lowerCase ? name.toLowerCase() : name; -} -var ModuleResolutionKind = /* @__PURE__ */ (function (ModuleResolutionKind3) { - ModuleResolutionKind3[ModuleResolutionKind3["Classic"] = 1] = "Classic"; - ModuleResolutionKind3[ModuleResolutionKind3["NodeJs"] = 2] = "NodeJs"; - ModuleResolutionKind3[ModuleResolutionKind3["Node10"] = 2] = "Node10"; - ModuleResolutionKind3[ModuleResolutionKind3["Node16"] = 3] = "Node16"; - ModuleResolutionKind3[ModuleResolutionKind3["NodeNext"] = 99] = "NodeNext"; - ModuleResolutionKind3[ModuleResolutionKind3["Bundler"] = 100] = "Bundler"; - return ModuleResolutionKind3; -})(ModuleResolutionKind || {}); -var ModuleDetectionKind = /* @__PURE__ */ (function (ModuleDetectionKind2) { - ModuleDetectionKind2[ModuleDetectionKind2["Legacy"] = 1] = "Legacy"; - ModuleDetectionKind2[ModuleDetectionKind2["Auto"] = 2] = "Auto"; - ModuleDetectionKind2[ModuleDetectionKind2["Force"] = 3] = "Force"; - return ModuleDetectionKind2; -})(ModuleDetectionKind || {}); -var WatchFileKind = /* @__PURE__ */ (function (WatchFileKind3) { - WatchFileKind3[WatchFileKind3["FixedPollingInterval"] = 0] = "FixedPollingInterval"; - WatchFileKind3[WatchFileKind3["PriorityPollingInterval"] = 1] = "PriorityPollingInterval"; - WatchFileKind3[WatchFileKind3["DynamicPriorityPolling"] = 2] = "DynamicPriorityPolling"; - WatchFileKind3[WatchFileKind3["FixedChunkSizePolling"] = 3] = "FixedChunkSizePolling"; - WatchFileKind3[WatchFileKind3["UseFsEvents"] = 4] = "UseFsEvents"; - WatchFileKind3[WatchFileKind3["UseFsEventsOnParentDirectory"] = 5] = "UseFsEventsOnParentDirectory"; - return WatchFileKind3; -})(WatchFileKind || {}); -var WatchDirectoryKind = /* @__PURE__ */ (function (WatchDirectoryKind3) { - WatchDirectoryKind3[WatchDirectoryKind3["UseFsEvents"] = 0] = "UseFsEvents"; - WatchDirectoryKind3[WatchDirectoryKind3["FixedPollingInterval"] = 1] = "FixedPollingInterval"; - WatchDirectoryKind3[WatchDirectoryKind3["DynamicPriorityPolling"] = 2] = "DynamicPriorityPolling"; - WatchDirectoryKind3[WatchDirectoryKind3["FixedChunkSizePolling"] = 3] = "FixedChunkSizePolling"; - return WatchDirectoryKind3; -})(WatchDirectoryKind || {}); -var PollingWatchKind = /* @__PURE__ */ (function (PollingWatchKind3) { - PollingWatchKind3[PollingWatchKind3["FixedInterval"] = 0] = "FixedInterval"; - PollingWatchKind3[PollingWatchKind3["PriorityInterval"] = 1] = "PriorityInterval"; - PollingWatchKind3[PollingWatchKind3["DynamicPriority"] = 2] = "DynamicPriority"; - PollingWatchKind3[PollingWatchKind3["FixedChunkSize"] = 3] = "FixedChunkSize"; - return PollingWatchKind3; -})(PollingWatchKind || {}); -var ModuleKind = /* @__PURE__ */ (function (ModuleKind3) { - ModuleKind3[ModuleKind3["None"] = 0] = "None"; - ModuleKind3[ModuleKind3["CommonJS"] = 1] = "CommonJS"; - ModuleKind3[ModuleKind3["AMD"] = 2] = "AMD"; - ModuleKind3[ModuleKind3["UMD"] = 3] = "UMD"; - ModuleKind3[ModuleKind3["System"] = 4] = "System"; - ModuleKind3[ModuleKind3["ES2015"] = 5] = "ES2015"; - ModuleKind3[ModuleKind3["ES2020"] = 6] = "ES2020"; - ModuleKind3[ModuleKind3["ES2022"] = 7] = "ES2022"; - ModuleKind3[ModuleKind3["ESNext"] = 99] = "ESNext"; - ModuleKind3[ModuleKind3["Node16"] = 100] = "Node16"; - ModuleKind3[ModuleKind3["NodeNext"] = 199] = "NodeNext"; - return ModuleKind3; -})(ModuleKind || {}); -var JsxEmit = /* @__PURE__ */ (function (JsxEmit3) { - JsxEmit3[JsxEmit3["None"] = 0] = "None"; - JsxEmit3[JsxEmit3["Preserve"] = 1] = "Preserve"; - JsxEmit3[JsxEmit3["React"] = 2] = "React"; - JsxEmit3[JsxEmit3["ReactNative"] = 3] = "ReactNative"; - JsxEmit3[JsxEmit3["ReactJSX"] = 4] = "ReactJSX"; - JsxEmit3[JsxEmit3["ReactJSXDev"] = 5] = "ReactJSXDev"; - return JsxEmit3; -})(JsxEmit || {}); -var ImportsNotUsedAsValues = /* @__PURE__ */ (function (ImportsNotUsedAsValues2) { - ImportsNotUsedAsValues2[ImportsNotUsedAsValues2["Remove"] = 0] = "Remove"; - ImportsNotUsedAsValues2[ImportsNotUsedAsValues2["Preserve"] = 1] = "Preserve"; - ImportsNotUsedAsValues2[ImportsNotUsedAsValues2["Error"] = 2] = "Error"; - return ImportsNotUsedAsValues2; -})(ImportsNotUsedAsValues || {}); -var NewLineKind = /* @__PURE__ */ (function (NewLineKind3) { - NewLineKind3[NewLineKind3["CarriageReturnLineFeed"] = 0] = "CarriageReturnLineFeed"; - NewLineKind3[NewLineKind3["LineFeed"] = 1] = "LineFeed"; - return NewLineKind3; -})(NewLineKind || {}); -var ScriptKind = /* @__PURE__ */ (function (ScriptKind7) { - ScriptKind7[ScriptKind7["Unknown"] = 0] = "Unknown"; - ScriptKind7[ScriptKind7["JS"] = 1] = "JS"; - ScriptKind7[ScriptKind7["JSX"] = 2] = "JSX"; - ScriptKind7[ScriptKind7["TS"] = 3] = "TS"; - ScriptKind7[ScriptKind7["TSX"] = 4] = "TSX"; - ScriptKind7[ScriptKind7["External"] = 5] = "External"; - ScriptKind7[ScriptKind7["JSON"] = 6] = "JSON"; - ScriptKind7[ScriptKind7["Deferred"] = 7] = "Deferred"; - return ScriptKind7; -})(ScriptKind || {}); -var ScriptTarget = /* @__PURE__ */ (function (ScriptTarget11) { - ScriptTarget11[ScriptTarget11["ES3"] = 0] = "ES3"; - ScriptTarget11[ScriptTarget11["ES5"] = 1] = "ES5"; - ScriptTarget11[ScriptTarget11["ES2015"] = 2] = "ES2015"; - ScriptTarget11[ScriptTarget11["ES2016"] = 3] = "ES2016"; - ScriptTarget11[ScriptTarget11["ES2017"] = 4] = "ES2017"; - ScriptTarget11[ScriptTarget11["ES2018"] = 5] = "ES2018"; - ScriptTarget11[ScriptTarget11["ES2019"] = 6] = "ES2019"; - ScriptTarget11[ScriptTarget11["ES2020"] = 7] = "ES2020"; - ScriptTarget11[ScriptTarget11["ES2021"] = 8] = "ES2021"; - ScriptTarget11[ScriptTarget11["ES2022"] = 9] = "ES2022"; - ScriptTarget11[ScriptTarget11["ESNext"] = 99] = "ESNext"; - ScriptTarget11[ScriptTarget11["JSON"] = 100] = "JSON"; - ScriptTarget11[ScriptTarget11["Latest"] = 99 /* ESNext */] = "Latest"; - return ScriptTarget11; -})(ScriptTarget || {}); -var LanguageVariant = /* @__PURE__ */ (function (LanguageVariant4) { - LanguageVariant4[LanguageVariant4["Standard"] = 0] = "Standard"; - LanguageVariant4[LanguageVariant4["JSX"] = 1] = "JSX"; - return LanguageVariant4; -})(LanguageVariant || {}); -var WatchDirectoryFlags = /* @__PURE__ */ (function (WatchDirectoryFlags3) { - WatchDirectoryFlags3[WatchDirectoryFlags3["None"] = 0] = "None"; - WatchDirectoryFlags3[WatchDirectoryFlags3["Recursive"] = 1] = "Recursive"; - return WatchDirectoryFlags3; -})(WatchDirectoryFlags || {}); -var CharacterCodes = /* @__PURE__ */ (function (CharacterCodes2) { - CharacterCodes2[CharacterCodes2["nullCharacter"] = 0] = "nullCharacter"; - CharacterCodes2[CharacterCodes2["maxAsciiCharacter"] = 127] = "maxAsciiCharacter"; - CharacterCodes2[CharacterCodes2["lineFeed"] = 10] = "lineFeed"; - CharacterCodes2[CharacterCodes2["carriageReturn"] = 13] = "carriageReturn"; - CharacterCodes2[CharacterCodes2["lineSeparator"] = 8232] = "lineSeparator"; - CharacterCodes2[CharacterCodes2["paragraphSeparator"] = 8233] = "paragraphSeparator"; - CharacterCodes2[CharacterCodes2["nextLine"] = 133] = "nextLine"; - CharacterCodes2[CharacterCodes2["space"] = 32] = "space"; - CharacterCodes2[CharacterCodes2["nonBreakingSpace"] = 160] = "nonBreakingSpace"; - CharacterCodes2[CharacterCodes2["enQuad"] = 8192] = "enQuad"; - CharacterCodes2[CharacterCodes2["emQuad"] = 8193] = "emQuad"; - CharacterCodes2[CharacterCodes2["enSpace"] = 8194] = "enSpace"; - CharacterCodes2[CharacterCodes2["emSpace"] = 8195] = "emSpace"; - CharacterCodes2[CharacterCodes2["threePerEmSpace"] = 8196] = "threePerEmSpace"; - CharacterCodes2[CharacterCodes2["fourPerEmSpace"] = 8197] = "fourPerEmSpace"; - CharacterCodes2[CharacterCodes2["sixPerEmSpace"] = 8198] = "sixPerEmSpace"; - CharacterCodes2[CharacterCodes2["figureSpace"] = 8199] = "figureSpace"; - CharacterCodes2[CharacterCodes2["punctuationSpace"] = 8200] = "punctuationSpace"; - CharacterCodes2[CharacterCodes2["thinSpace"] = 8201] = "thinSpace"; - CharacterCodes2[CharacterCodes2["hairSpace"] = 8202] = "hairSpace"; - CharacterCodes2[CharacterCodes2["zeroWidthSpace"] = 8203] = "zeroWidthSpace"; - CharacterCodes2[CharacterCodes2["narrowNoBreakSpace"] = 8239] = "narrowNoBreakSpace"; - CharacterCodes2[CharacterCodes2["ideographicSpace"] = 12288] = "ideographicSpace"; - CharacterCodes2[CharacterCodes2["mathematicalSpace"] = 8287] = "mathematicalSpace"; - CharacterCodes2[CharacterCodes2["ogham"] = 5760] = "ogham"; - CharacterCodes2[CharacterCodes2["replacementCharacter"] = 65533] = "replacementCharacter"; - CharacterCodes2[CharacterCodes2["_"] = 95] = "_"; - CharacterCodes2[CharacterCodes2["$"] = 36] = "$"; - CharacterCodes2[CharacterCodes2["_0"] = 48] = "_0"; - CharacterCodes2[CharacterCodes2["_1"] = 49] = "_1"; - CharacterCodes2[CharacterCodes2["_2"] = 50] = "_2"; - CharacterCodes2[CharacterCodes2["_3"] = 51] = "_3"; - CharacterCodes2[CharacterCodes2["_4"] = 52] = "_4"; - CharacterCodes2[CharacterCodes2["_5"] = 53] = "_5"; - CharacterCodes2[CharacterCodes2["_6"] = 54] = "_6"; - CharacterCodes2[CharacterCodes2["_7"] = 55] = "_7"; - CharacterCodes2[CharacterCodes2["_8"] = 56] = "_8"; - CharacterCodes2[CharacterCodes2["_9"] = 57] = "_9"; - CharacterCodes2[CharacterCodes2["a"] = 97] = "a"; - CharacterCodes2[CharacterCodes2["b"] = 98] = "b"; - CharacterCodes2[CharacterCodes2["c"] = 99] = "c"; - CharacterCodes2[CharacterCodes2["d"] = 100] = "d"; - CharacterCodes2[CharacterCodes2["e"] = 101] = "e"; - CharacterCodes2[CharacterCodes2["f"] = 102] = "f"; - CharacterCodes2[CharacterCodes2["g"] = 103] = "g"; - CharacterCodes2[CharacterCodes2["h"] = 104] = "h"; - CharacterCodes2[CharacterCodes2["i"] = 105] = "i"; - CharacterCodes2[CharacterCodes2["j"] = 106] = "j"; - CharacterCodes2[CharacterCodes2["k"] = 107] = "k"; - CharacterCodes2[CharacterCodes2["l"] = 108] = "l"; - CharacterCodes2[CharacterCodes2["m"] = 109] = "m"; - CharacterCodes2[CharacterCodes2["n"] = 110] = "n"; - CharacterCodes2[CharacterCodes2["o"] = 111] = "o"; - CharacterCodes2[CharacterCodes2["p"] = 112] = "p"; - CharacterCodes2[CharacterCodes2["q"] = 113] = "q"; - CharacterCodes2[CharacterCodes2["r"] = 114] = "r"; - CharacterCodes2[CharacterCodes2["s"] = 115] = "s"; - CharacterCodes2[CharacterCodes2["t"] = 116] = "t"; - CharacterCodes2[CharacterCodes2["u"] = 117] = "u"; - CharacterCodes2[CharacterCodes2["v"] = 118] = "v"; - CharacterCodes2[CharacterCodes2["w"] = 119] = "w"; - CharacterCodes2[CharacterCodes2["x"] = 120] = "x"; - CharacterCodes2[CharacterCodes2["y"] = 121] = "y"; - CharacterCodes2[CharacterCodes2["z"] = 122] = "z"; - CharacterCodes2[CharacterCodes2["A"] = 65] = "A"; - CharacterCodes2[CharacterCodes2["B"] = 66] = "B"; - CharacterCodes2[CharacterCodes2["C"] = 67] = "C"; - CharacterCodes2[CharacterCodes2["D"] = 68] = "D"; - CharacterCodes2[CharacterCodes2["E"] = 69] = "E"; - CharacterCodes2[CharacterCodes2["F"] = 70] = "F"; - CharacterCodes2[CharacterCodes2["G"] = 71] = "G"; - CharacterCodes2[CharacterCodes2["H"] = 72] = "H"; - CharacterCodes2[CharacterCodes2["I"] = 73] = "I"; - CharacterCodes2[CharacterCodes2["J"] = 74] = "J"; - CharacterCodes2[CharacterCodes2["K"] = 75] = "K"; - CharacterCodes2[CharacterCodes2["L"] = 76] = "L"; - CharacterCodes2[CharacterCodes2["M"] = 77] = "M"; - CharacterCodes2[CharacterCodes2["N"] = 78] = "N"; - CharacterCodes2[CharacterCodes2["O"] = 79] = "O"; - CharacterCodes2[CharacterCodes2["P"] = 80] = "P"; - CharacterCodes2[CharacterCodes2["Q"] = 81] = "Q"; - CharacterCodes2[CharacterCodes2["R"] = 82] = "R"; - CharacterCodes2[CharacterCodes2["S"] = 83] = "S"; - CharacterCodes2[CharacterCodes2["T"] = 84] = "T"; - CharacterCodes2[CharacterCodes2["U"] = 85] = "U"; - CharacterCodes2[CharacterCodes2["V"] = 86] = "V"; - CharacterCodes2[CharacterCodes2["W"] = 87] = "W"; - CharacterCodes2[CharacterCodes2["X"] = 88] = "X"; - CharacterCodes2[CharacterCodes2["Y"] = 89] = "Y"; - CharacterCodes2[CharacterCodes2["Z"] = 90] = "Z"; - CharacterCodes2[CharacterCodes2["ampersand"] = 38] = "ampersand"; - CharacterCodes2[CharacterCodes2["asterisk"] = 42] = "asterisk"; - CharacterCodes2[CharacterCodes2["at"] = 64] = "at"; - CharacterCodes2[CharacterCodes2["backslash"] = 92] = "backslash"; - CharacterCodes2[CharacterCodes2["backtick"] = 96] = "backtick"; - CharacterCodes2[CharacterCodes2["bar"] = 124] = "bar"; - CharacterCodes2[CharacterCodes2["caret"] = 94] = "caret"; - CharacterCodes2[CharacterCodes2["closeBrace"] = 125] = "closeBrace"; - CharacterCodes2[CharacterCodes2["closeBracket"] = 93] = "closeBracket"; - CharacterCodes2[CharacterCodes2["closeParen"] = 41] = "closeParen"; - CharacterCodes2[CharacterCodes2["colon"] = 58] = "colon"; - CharacterCodes2[CharacterCodes2["comma"] = 44] = "comma"; - CharacterCodes2[CharacterCodes2["dot"] = 46] = "dot"; - CharacterCodes2[CharacterCodes2["doubleQuote"] = 34] = "doubleQuote"; - CharacterCodes2[CharacterCodes2["equals"] = 61] = "equals"; - CharacterCodes2[CharacterCodes2["exclamation"] = 33] = "exclamation"; - CharacterCodes2[CharacterCodes2["greaterThan"] = 62] = "greaterThan"; - CharacterCodes2[CharacterCodes2["hash"] = 35] = "hash"; - CharacterCodes2[CharacterCodes2["lessThan"] = 60] = "lessThan"; - CharacterCodes2[CharacterCodes2["minus"] = 45] = "minus"; - CharacterCodes2[CharacterCodes2["openBrace"] = 123] = "openBrace"; - CharacterCodes2[CharacterCodes2["openBracket"] = 91] = "openBracket"; - CharacterCodes2[CharacterCodes2["openParen"] = 40] = "openParen"; - CharacterCodes2[CharacterCodes2["percent"] = 37] = "percent"; - CharacterCodes2[CharacterCodes2["plus"] = 43] = "plus"; - CharacterCodes2[CharacterCodes2["question"] = 63] = "question"; - CharacterCodes2[CharacterCodes2["semicolon"] = 59] = "semicolon"; - CharacterCodes2[CharacterCodes2["singleQuote"] = 39] = "singleQuote"; - CharacterCodes2[CharacterCodes2["slash"] = 47] = "slash"; - CharacterCodes2[CharacterCodes2["tilde"] = 126] = "tilde"; - CharacterCodes2[CharacterCodes2["backspace"] = 8] = "backspace"; - CharacterCodes2[CharacterCodes2["formFeed"] = 12] = "formFeed"; - CharacterCodes2[CharacterCodes2["byteOrderMark"] = 65279] = "byteOrderMark"; - CharacterCodes2[CharacterCodes2["tab"] = 9] = "tab"; - CharacterCodes2[CharacterCodes2["verticalTab"] = 11] = "verticalTab"; - return CharacterCodes2; -})(CharacterCodes || {}); -var Extension = /* @__PURE__ */ (function (Extension2) { - Extension2["Ts"] = ".ts"; - Extension2["Tsx"] = ".tsx"; - Extension2["Dts"] = ".d.ts"; - Extension2["Js"] = ".js"; - Extension2["Jsx"] = ".jsx"; - Extension2["Json"] = ".json"; - Extension2["TsBuildInfo"] = ".tsbuildinfo"; - Extension2["Mjs"] = ".mjs"; - Extension2["Mts"] = ".mts"; - Extension2["Dmts"] = ".d.mts"; - Extension2["Cjs"] = ".cjs"; - Extension2["Cts"] = ".cts"; - Extension2["Dcts"] = ".d.cts"; - return Extension2; -})(Extension || {}); -var TransformFlags = /* @__PURE__ */ (function (TransformFlags3) { - TransformFlags3[TransformFlags3["None"] = 0] = "None"; - TransformFlags3[TransformFlags3["ContainsTypeScript"] = 1] = "ContainsTypeScript"; - TransformFlags3[TransformFlags3["ContainsJsx"] = 2] = "ContainsJsx"; - TransformFlags3[TransformFlags3["ContainsESNext"] = 4] = "ContainsESNext"; - TransformFlags3[TransformFlags3["ContainsES2022"] = 8] = "ContainsES2022"; - TransformFlags3[TransformFlags3["ContainsES2021"] = 16] = "ContainsES2021"; - TransformFlags3[TransformFlags3["ContainsES2020"] = 32] = "ContainsES2020"; - TransformFlags3[TransformFlags3["ContainsES2019"] = 64] = "ContainsES2019"; - TransformFlags3[TransformFlags3["ContainsES2018"] = 128] = "ContainsES2018"; - TransformFlags3[TransformFlags3["ContainsES2017"] = 256] = "ContainsES2017"; - TransformFlags3[TransformFlags3["ContainsES2016"] = 512] = "ContainsES2016"; - TransformFlags3[TransformFlags3["ContainsES2015"] = 1024] = "ContainsES2015"; - TransformFlags3[TransformFlags3["ContainsGenerator"] = 2048] = "ContainsGenerator"; - TransformFlags3[TransformFlags3["ContainsDestructuringAssignment"] = 4096] = "ContainsDestructuringAssignment"; - TransformFlags3[TransformFlags3["ContainsTypeScriptClassSyntax"] = 8192] = "ContainsTypeScriptClassSyntax"; - TransformFlags3[TransformFlags3["ContainsLexicalThis"] = 16384] = "ContainsLexicalThis"; - TransformFlags3[TransformFlags3["ContainsRestOrSpread"] = 32768] = "ContainsRestOrSpread"; - TransformFlags3[TransformFlags3["ContainsObjectRestOrSpread"] = 65536] = "ContainsObjectRestOrSpread"; - TransformFlags3[TransformFlags3["ContainsComputedPropertyName"] = 131072] = "ContainsComputedPropertyName"; - TransformFlags3[TransformFlags3["ContainsBlockScopedBinding"] = 262144] = "ContainsBlockScopedBinding"; - TransformFlags3[TransformFlags3["ContainsBindingPattern"] = 524288] = "ContainsBindingPattern"; - TransformFlags3[TransformFlags3["ContainsYield"] = 1048576] = "ContainsYield"; - TransformFlags3[TransformFlags3["ContainsAwait"] = 2097152] = "ContainsAwait"; - TransformFlags3[TransformFlags3["ContainsHoistedDeclarationOrCompletion"] = 4194304] = "ContainsHoistedDeclarationOrCompletion"; - TransformFlags3[TransformFlags3["ContainsDynamicImport"] = 8388608] = "ContainsDynamicImport"; - TransformFlags3[TransformFlags3["ContainsClassFields"] = 16777216] = "ContainsClassFields"; - TransformFlags3[TransformFlags3["ContainsDecorators"] = 33554432] = "ContainsDecorators"; - TransformFlags3[TransformFlags3["ContainsPossibleTopLevelAwait"] = 67108864] = "ContainsPossibleTopLevelAwait"; - TransformFlags3[TransformFlags3["ContainsLexicalSuper"] = 134217728] = "ContainsLexicalSuper"; - TransformFlags3[TransformFlags3["ContainsUpdateExpressionForIdentifier"] = 268435456] = "ContainsUpdateExpressionForIdentifier"; - TransformFlags3[TransformFlags3["ContainsPrivateIdentifierInExpression"] = 536870912] = "ContainsPrivateIdentifierInExpression"; - TransformFlags3[TransformFlags3["HasComputedFlags"] = -2147483648] = "HasComputedFlags"; - TransformFlags3[TransformFlags3["AssertTypeScript"] = 1 /* ContainsTypeScript */] = "AssertTypeScript"; - TransformFlags3[TransformFlags3["AssertJsx"] = 2 /* ContainsJsx */] = "AssertJsx"; - TransformFlags3[TransformFlags3["AssertESNext"] = 4 /* ContainsESNext */] = "AssertESNext"; - TransformFlags3[TransformFlags3["AssertES2022"] = 8 /* ContainsES2022 */] = "AssertES2022"; - TransformFlags3[TransformFlags3["AssertES2021"] = 16 /* ContainsES2021 */] = "AssertES2021"; - TransformFlags3[TransformFlags3["AssertES2020"] = 32 /* ContainsES2020 */] = "AssertES2020"; - TransformFlags3[TransformFlags3["AssertES2019"] = 64 /* ContainsES2019 */] = "AssertES2019"; - TransformFlags3[TransformFlags3["AssertES2018"] = 128 /* ContainsES2018 */] = "AssertES2018"; - TransformFlags3[TransformFlags3["AssertES2017"] = 256 /* ContainsES2017 */] = "AssertES2017"; - TransformFlags3[TransformFlags3["AssertES2016"] = 512 /* ContainsES2016 */] = "AssertES2016"; - TransformFlags3[TransformFlags3["AssertES2015"] = 1024 /* ContainsES2015 */] = "AssertES2015"; - TransformFlags3[TransformFlags3["AssertGenerator"] = 2048 /* ContainsGenerator */] = "AssertGenerator"; - TransformFlags3[TransformFlags3["AssertDestructuringAssignment"] = 4096 /* ContainsDestructuringAssignment */] = "AssertDestructuringAssignment"; - TransformFlags3[TransformFlags3["OuterExpressionExcludes"] = -2147483648 /* HasComputedFlags */] = "OuterExpressionExcludes"; - TransformFlags3[TransformFlags3["PropertyAccessExcludes"] = -2147483648 /* OuterExpressionExcludes */] = "PropertyAccessExcludes"; - TransformFlags3[TransformFlags3["NodeExcludes"] = -2147483648 /* PropertyAccessExcludes */] = "NodeExcludes"; - TransformFlags3[TransformFlags3["ArrowFunctionExcludes"] = -2072174592] = "ArrowFunctionExcludes"; - TransformFlags3[TransformFlags3["FunctionExcludes"] = -1937940480] = "FunctionExcludes"; - TransformFlags3[TransformFlags3["ConstructorExcludes"] = -1937948672] = "ConstructorExcludes"; - TransformFlags3[TransformFlags3["MethodOrAccessorExcludes"] = -2005057536] = "MethodOrAccessorExcludes"; - TransformFlags3[TransformFlags3["PropertyExcludes"] = -2013249536] = "PropertyExcludes"; - TransformFlags3[TransformFlags3["ClassExcludes"] = -2147344384] = "ClassExcludes"; - TransformFlags3[TransformFlags3["ModuleExcludes"] = -1941676032] = "ModuleExcludes"; - TransformFlags3[TransformFlags3["TypeExcludes"] = -2] = "TypeExcludes"; - TransformFlags3[TransformFlags3["ObjectLiteralExcludes"] = -2147278848] = "ObjectLiteralExcludes"; - TransformFlags3[TransformFlags3["ArrayLiteralOrCallOrNewExcludes"] = -2147450880] = "ArrayLiteralOrCallOrNewExcludes"; - TransformFlags3[TransformFlags3["VariableDeclarationListExcludes"] = -2146893824] = "VariableDeclarationListExcludes"; - TransformFlags3[TransformFlags3["ParameterExcludes"] = -2147483648 /* NodeExcludes */] = "ParameterExcludes"; - TransformFlags3[TransformFlags3["CatchClauseExcludes"] = -2147418112] = "CatchClauseExcludes"; - TransformFlags3[TransformFlags3["BindingPatternExcludes"] = -2147450880] = "BindingPatternExcludes"; - TransformFlags3[TransformFlags3["ContainsLexicalThisOrSuper"] = 134234112] = "ContainsLexicalThisOrSuper"; - TransformFlags3[TransformFlags3["PropertyNamePropagatingFlags"] = 134234112] = "PropertyNamePropagatingFlags"; - return TransformFlags3; -})(TransformFlags || {}); -var SnippetKind = /* @__PURE__ */ (function (SnippetKind3) { - SnippetKind3[SnippetKind3["TabStop"] = 0] = "TabStop"; - SnippetKind3[SnippetKind3["Placeholder"] = 1] = "Placeholder"; - SnippetKind3[SnippetKind3["Choice"] = 2] = "Choice"; - SnippetKind3[SnippetKind3["Variable"] = 3] = "Variable"; - return SnippetKind3; -})(SnippetKind || {}); -var EmitFlags = /* @__PURE__ */ (function (EmitFlags3) { - EmitFlags3[EmitFlags3["None"] = 0] = "None"; - EmitFlags3[EmitFlags3["SingleLine"] = 1] = "SingleLine"; - EmitFlags3[EmitFlags3["MultiLine"] = 2] = "MultiLine"; - EmitFlags3[EmitFlags3["AdviseOnEmitNode"] = 4] = "AdviseOnEmitNode"; - EmitFlags3[EmitFlags3["NoSubstitution"] = 8] = "NoSubstitution"; - EmitFlags3[EmitFlags3["CapturesThis"] = 16] = "CapturesThis"; - EmitFlags3[EmitFlags3["NoLeadingSourceMap"] = 32] = "NoLeadingSourceMap"; - EmitFlags3[EmitFlags3["NoTrailingSourceMap"] = 64] = "NoTrailingSourceMap"; - EmitFlags3[EmitFlags3["NoSourceMap"] = 96] = "NoSourceMap"; - EmitFlags3[EmitFlags3["NoNestedSourceMaps"] = 128] = "NoNestedSourceMaps"; - EmitFlags3[EmitFlags3["NoTokenLeadingSourceMaps"] = 256] = "NoTokenLeadingSourceMaps"; - EmitFlags3[EmitFlags3["NoTokenTrailingSourceMaps"] = 512] = "NoTokenTrailingSourceMaps"; - EmitFlags3[EmitFlags3["NoTokenSourceMaps"] = 768] = "NoTokenSourceMaps"; - EmitFlags3[EmitFlags3["NoLeadingComments"] = 1024] = "NoLeadingComments"; - EmitFlags3[EmitFlags3["NoTrailingComments"] = 2048] = "NoTrailingComments"; - EmitFlags3[EmitFlags3["NoComments"] = 3072] = "NoComments"; - EmitFlags3[EmitFlags3["NoNestedComments"] = 4096] = "NoNestedComments"; - EmitFlags3[EmitFlags3["HelperName"] = 8192] = "HelperName"; - EmitFlags3[EmitFlags3["ExportName"] = 16384] = "ExportName"; - EmitFlags3[EmitFlags3["LocalName"] = 32768] = "LocalName"; - EmitFlags3[EmitFlags3["InternalName"] = 65536] = "InternalName"; - EmitFlags3[EmitFlags3["Indented"] = 131072] = "Indented"; - EmitFlags3[EmitFlags3["NoIndentation"] = 262144] = "NoIndentation"; - EmitFlags3[EmitFlags3["AsyncFunctionBody"] = 524288] = "AsyncFunctionBody"; - EmitFlags3[EmitFlags3["ReuseTempVariableScope"] = 1048576] = "ReuseTempVariableScope"; - EmitFlags3[EmitFlags3["CustomPrologue"] = 2097152] = "CustomPrologue"; - EmitFlags3[EmitFlags3["NoHoisting"] = 4194304] = "NoHoisting"; - EmitFlags3[EmitFlags3["Iterator"] = 8388608] = "Iterator"; - EmitFlags3[EmitFlags3["NoAsciiEscaping"] = 16777216] = "NoAsciiEscaping"; - return EmitFlags3; -})(EmitFlags || {}); -var InternalEmitFlags = /* @__PURE__ */ (function (InternalEmitFlags3) { - InternalEmitFlags3[InternalEmitFlags3["None"] = 0] = "None"; - InternalEmitFlags3[InternalEmitFlags3["TypeScriptClassWrapper"] = 1] = "TypeScriptClassWrapper"; - InternalEmitFlags3[InternalEmitFlags3["NeverApplyImportHelper"] = 2] = "NeverApplyImportHelper"; - InternalEmitFlags3[InternalEmitFlags3["IgnoreSourceNewlines"] = 4] = "IgnoreSourceNewlines"; - InternalEmitFlags3[InternalEmitFlags3["Immutable"] = 8] = "Immutable"; - InternalEmitFlags3[InternalEmitFlags3["IndirectCall"] = 16] = "IndirectCall"; - InternalEmitFlags3[InternalEmitFlags3["TransformPrivateStaticElements"] = 32] = "TransformPrivateStaticElements"; - return InternalEmitFlags3; -})(InternalEmitFlags || {}); -var ExternalEmitHelpers = /* @__PURE__ */ (function (ExternalEmitHelpers2) { - ExternalEmitHelpers2[ExternalEmitHelpers2["Extends"] = 1] = "Extends"; - ExternalEmitHelpers2[ExternalEmitHelpers2["Assign"] = 2] = "Assign"; - ExternalEmitHelpers2[ExternalEmitHelpers2["Rest"] = 4] = "Rest"; - ExternalEmitHelpers2[ExternalEmitHelpers2["Decorate"] = 8] = "Decorate"; - ExternalEmitHelpers2[ExternalEmitHelpers2["ESDecorateAndRunInitializers"] = 8 /* Decorate */] = "ESDecorateAndRunInitializers"; - ExternalEmitHelpers2[ExternalEmitHelpers2["Metadata"] = 16] = "Metadata"; - ExternalEmitHelpers2[ExternalEmitHelpers2["Param"] = 32] = "Param"; - ExternalEmitHelpers2[ExternalEmitHelpers2["Awaiter"] = 64] = "Awaiter"; - ExternalEmitHelpers2[ExternalEmitHelpers2["Generator"] = 128] = "Generator"; - ExternalEmitHelpers2[ExternalEmitHelpers2["Values"] = 256] = "Values"; - ExternalEmitHelpers2[ExternalEmitHelpers2["Read"] = 512] = "Read"; - ExternalEmitHelpers2[ExternalEmitHelpers2["SpreadArray"] = 1024] = "SpreadArray"; - ExternalEmitHelpers2[ExternalEmitHelpers2["Await"] = 2048] = "Await"; - ExternalEmitHelpers2[ExternalEmitHelpers2["AsyncGenerator"] = 4096] = "AsyncGenerator"; - ExternalEmitHelpers2[ExternalEmitHelpers2["AsyncDelegator"] = 8192] = "AsyncDelegator"; - ExternalEmitHelpers2[ExternalEmitHelpers2["AsyncValues"] = 16384] = "AsyncValues"; - ExternalEmitHelpers2[ExternalEmitHelpers2["ExportStar"] = 32768] = "ExportStar"; - ExternalEmitHelpers2[ExternalEmitHelpers2["ImportStar"] = 65536] = "ImportStar"; - ExternalEmitHelpers2[ExternalEmitHelpers2["ImportDefault"] = 131072] = "ImportDefault"; - ExternalEmitHelpers2[ExternalEmitHelpers2["MakeTemplateObject"] = 262144] = "MakeTemplateObject"; - ExternalEmitHelpers2[ExternalEmitHelpers2["ClassPrivateFieldGet"] = 524288] = "ClassPrivateFieldGet"; - ExternalEmitHelpers2[ExternalEmitHelpers2["ClassPrivateFieldSet"] = 1048576] = "ClassPrivateFieldSet"; - ExternalEmitHelpers2[ExternalEmitHelpers2["ClassPrivateFieldIn"] = 2097152] = "ClassPrivateFieldIn"; - ExternalEmitHelpers2[ExternalEmitHelpers2["CreateBinding"] = 4194304] = "CreateBinding"; - ExternalEmitHelpers2[ExternalEmitHelpers2["SetFunctionName"] = 8388608] = "SetFunctionName"; - ExternalEmitHelpers2[ExternalEmitHelpers2["PropKey"] = 16777216] = "PropKey"; - ExternalEmitHelpers2[ExternalEmitHelpers2["AddDisposableResourceAndDisposeResources"] = 33554432] = "AddDisposableResourceAndDisposeResources"; - ExternalEmitHelpers2[ExternalEmitHelpers2["FirstEmitHelper"] = 1 /* Extends */] = "FirstEmitHelper"; - ExternalEmitHelpers2[ExternalEmitHelpers2["LastEmitHelper"] = 33554432 /* AddDisposableResourceAndDisposeResources */] = "LastEmitHelper"; - ExternalEmitHelpers2[ExternalEmitHelpers2["ForOfIncludes"] = 256 /* Values */] = "ForOfIncludes"; - ExternalEmitHelpers2[ExternalEmitHelpers2["ForAwaitOfIncludes"] = 16384 /* AsyncValues */] = "ForAwaitOfIncludes"; - ExternalEmitHelpers2[ExternalEmitHelpers2["AsyncGeneratorIncludes"] = 6144] = "AsyncGeneratorIncludes"; - ExternalEmitHelpers2[ExternalEmitHelpers2["AsyncDelegatorIncludes"] = 26624] = "AsyncDelegatorIncludes"; - ExternalEmitHelpers2[ExternalEmitHelpers2["SpreadIncludes"] = 1536] = "SpreadIncludes"; - return ExternalEmitHelpers2; -})(ExternalEmitHelpers || {}); -var EmitHint = /* @__PURE__ */ (function (EmitHint6) { - EmitHint6[EmitHint6["SourceFile"] = 0] = "SourceFile"; - EmitHint6[EmitHint6["Expression"] = 1] = "Expression"; - EmitHint6[EmitHint6["IdentifierName"] = 2] = "IdentifierName"; - EmitHint6[EmitHint6["MappedTypeParameter"] = 3] = "MappedTypeParameter"; - EmitHint6[EmitHint6["Unspecified"] = 4] = "Unspecified"; - EmitHint6[EmitHint6["EmbeddedStatement"] = 5] = "EmbeddedStatement"; - EmitHint6[EmitHint6["JsxAttributeValue"] = 6] = "JsxAttributeValue"; - return EmitHint6; -})(EmitHint || {}); -var OuterExpressionKinds = /* @__PURE__ */ (function (OuterExpressionKinds2) { - OuterExpressionKinds2[OuterExpressionKinds2["Parentheses"] = 1] = "Parentheses"; - OuterExpressionKinds2[OuterExpressionKinds2["TypeAssertions"] = 2] = "TypeAssertions"; - OuterExpressionKinds2[OuterExpressionKinds2["NonNullAssertions"] = 4] = "NonNullAssertions"; - OuterExpressionKinds2[OuterExpressionKinds2["PartiallyEmittedExpressions"] = 8] = "PartiallyEmittedExpressions"; - OuterExpressionKinds2[OuterExpressionKinds2["Assertions"] = 6] = "Assertions"; - OuterExpressionKinds2[OuterExpressionKinds2["All"] = 15] = "All"; - OuterExpressionKinds2[OuterExpressionKinds2["ExcludeJSDocTypeAssertion"] = 16] = "ExcludeJSDocTypeAssertion"; - return OuterExpressionKinds2; -})(OuterExpressionKinds || {}); -var LexicalEnvironmentFlags = /* @__PURE__ */ (function (LexicalEnvironmentFlags2) { - LexicalEnvironmentFlags2[LexicalEnvironmentFlags2["None"] = 0] = "None"; - LexicalEnvironmentFlags2[LexicalEnvironmentFlags2["InParameters"] = 1] = "InParameters"; - LexicalEnvironmentFlags2[LexicalEnvironmentFlags2["VariablesHoistedInParameters"] = 2] = "VariablesHoistedInParameters"; - return LexicalEnvironmentFlags2; -})(LexicalEnvironmentFlags || {}); -var BundleFileSectionKind = /* @__PURE__ */ (function (BundleFileSectionKind2) { - BundleFileSectionKind2["Prologue"] = "prologue"; - BundleFileSectionKind2["EmitHelpers"] = "emitHelpers"; - BundleFileSectionKind2["NoDefaultLib"] = "no-default-lib"; - BundleFileSectionKind2["Reference"] = "reference"; - BundleFileSectionKind2["Type"] = "type"; - BundleFileSectionKind2["TypeResolutionModeRequire"] = "type-require"; - BundleFileSectionKind2["TypeResolutionModeImport"] = "type-import"; - BundleFileSectionKind2["Lib"] = "lib"; - BundleFileSectionKind2["Prepend"] = "prepend"; - BundleFileSectionKind2["Text"] = "text"; - BundleFileSectionKind2["Internal"] = "internal"; - return BundleFileSectionKind2; -})(BundleFileSectionKind || {}); -var ListFormat = /* @__PURE__ */ (function (ListFormat2) { - ListFormat2[ListFormat2["None"] = 0] = "None"; - ListFormat2[ListFormat2["SingleLine"] = 0] = "SingleLine"; - ListFormat2[ListFormat2["MultiLine"] = 1] = "MultiLine"; - ListFormat2[ListFormat2["PreserveLines"] = 2] = "PreserveLines"; - ListFormat2[ListFormat2["LinesMask"] = 3] = "LinesMask"; - ListFormat2[ListFormat2["NotDelimited"] = 0] = "NotDelimited"; - ListFormat2[ListFormat2["BarDelimited"] = 4] = "BarDelimited"; - ListFormat2[ListFormat2["AmpersandDelimited"] = 8] = "AmpersandDelimited"; - ListFormat2[ListFormat2["CommaDelimited"] = 16] = "CommaDelimited"; - ListFormat2[ListFormat2["AsteriskDelimited"] = 32] = "AsteriskDelimited"; - ListFormat2[ListFormat2["DelimitersMask"] = 60] = "DelimitersMask"; - ListFormat2[ListFormat2["AllowTrailingComma"] = 64] = "AllowTrailingComma"; - ListFormat2[ListFormat2["Indented"] = 128] = "Indented"; - ListFormat2[ListFormat2["SpaceBetweenBraces"] = 256] = "SpaceBetweenBraces"; - ListFormat2[ListFormat2["SpaceBetweenSiblings"] = 512] = "SpaceBetweenSiblings"; - ListFormat2[ListFormat2["Braces"] = 1024] = "Braces"; - ListFormat2[ListFormat2["Parenthesis"] = 2048] = "Parenthesis"; - ListFormat2[ListFormat2["AngleBrackets"] = 4096] = "AngleBrackets"; - ListFormat2[ListFormat2["SquareBrackets"] = 8192] = "SquareBrackets"; - ListFormat2[ListFormat2["BracketsMask"] = 15360] = "BracketsMask"; - ListFormat2[ListFormat2["OptionalIfUndefined"] = 16384] = "OptionalIfUndefined"; - ListFormat2[ListFormat2["OptionalIfEmpty"] = 32768] = "OptionalIfEmpty"; - ListFormat2[ListFormat2["Optional"] = 49152] = "Optional"; - ListFormat2[ListFormat2["PreferNewLine"] = 65536] = "PreferNewLine"; - ListFormat2[ListFormat2["NoTrailingNewLine"] = 131072] = "NoTrailingNewLine"; - ListFormat2[ListFormat2["NoInterveningComments"] = 262144] = "NoInterveningComments"; - ListFormat2[ListFormat2["NoSpaceIfEmpty"] = 524288] = "NoSpaceIfEmpty"; - ListFormat2[ListFormat2["SingleElement"] = 1048576] = "SingleElement"; - ListFormat2[ListFormat2["SpaceAfterList"] = 2097152] = "SpaceAfterList"; - ListFormat2[ListFormat2["Modifiers"] = 2359808] = "Modifiers"; - ListFormat2[ListFormat2["HeritageClauses"] = 512] = "HeritageClauses"; - ListFormat2[ListFormat2["SingleLineTypeLiteralMembers"] = 768] = "SingleLineTypeLiteralMembers"; - ListFormat2[ListFormat2["MultiLineTypeLiteralMembers"] = 32897] = "MultiLineTypeLiteralMembers"; - ListFormat2[ListFormat2["SingleLineTupleTypeElements"] = 528] = "SingleLineTupleTypeElements"; - ListFormat2[ListFormat2["MultiLineTupleTypeElements"] = 657] = "MultiLineTupleTypeElements"; - ListFormat2[ListFormat2["UnionTypeConstituents"] = 516] = "UnionTypeConstituents"; - ListFormat2[ListFormat2["IntersectionTypeConstituents"] = 520] = "IntersectionTypeConstituents"; - ListFormat2[ListFormat2["ObjectBindingPatternElements"] = 525136] = "ObjectBindingPatternElements"; - ListFormat2[ListFormat2["ArrayBindingPatternElements"] = 524880] = "ArrayBindingPatternElements"; - ListFormat2[ListFormat2["ObjectLiteralExpressionProperties"] = 526226] = "ObjectLiteralExpressionProperties"; - ListFormat2[ListFormat2["ImportClauseEntries"] = 526226] = "ImportClauseEntries"; - ListFormat2[ListFormat2["ArrayLiteralExpressionElements"] = 8914] = "ArrayLiteralExpressionElements"; - ListFormat2[ListFormat2["CommaListElements"] = 528] = "CommaListElements"; - ListFormat2[ListFormat2["CallExpressionArguments"] = 2576] = "CallExpressionArguments"; - ListFormat2[ListFormat2["NewExpressionArguments"] = 18960] = "NewExpressionArguments"; - ListFormat2[ListFormat2["TemplateExpressionSpans"] = 262144] = "TemplateExpressionSpans"; - ListFormat2[ListFormat2["SingleLineBlockStatements"] = 768] = "SingleLineBlockStatements"; - ListFormat2[ListFormat2["MultiLineBlockStatements"] = 129] = "MultiLineBlockStatements"; - ListFormat2[ListFormat2["VariableDeclarationList"] = 528] = "VariableDeclarationList"; - ListFormat2[ListFormat2["SingleLineFunctionBodyStatements"] = 768] = "SingleLineFunctionBodyStatements"; - ListFormat2[ListFormat2["MultiLineFunctionBodyStatements"] = 1 /* MultiLine */] = "MultiLineFunctionBodyStatements"; - ListFormat2[ListFormat2["ClassHeritageClauses"] = 0 /* SingleLine */] = "ClassHeritageClauses"; - ListFormat2[ListFormat2["ClassMembers"] = 129] = "ClassMembers"; - ListFormat2[ListFormat2["InterfaceMembers"] = 129] = "InterfaceMembers"; - ListFormat2[ListFormat2["EnumMembers"] = 145] = "EnumMembers"; - ListFormat2[ListFormat2["CaseBlockClauses"] = 129] = "CaseBlockClauses"; - ListFormat2[ListFormat2["NamedImportsOrExportsElements"] = 525136] = "NamedImportsOrExportsElements"; - ListFormat2[ListFormat2["JsxElementOrFragmentChildren"] = 262144] = "JsxElementOrFragmentChildren"; - ListFormat2[ListFormat2["JsxElementAttributes"] = 262656] = "JsxElementAttributes"; - ListFormat2[ListFormat2["CaseOrDefaultClauseStatements"] = 163969] = "CaseOrDefaultClauseStatements"; - ListFormat2[ListFormat2["HeritageClauseTypes"] = 528] = "HeritageClauseTypes"; - ListFormat2[ListFormat2["SourceFileStatements"] = 131073] = "SourceFileStatements"; - ListFormat2[ListFormat2["Decorators"] = 2146305] = "Decorators"; - ListFormat2[ListFormat2["TypeArguments"] = 53776] = "TypeArguments"; - ListFormat2[ListFormat2["TypeParameters"] = 53776] = "TypeParameters"; - ListFormat2[ListFormat2["Parameters"] = 2576] = "Parameters"; - ListFormat2[ListFormat2["IndexSignatureParameters"] = 8848] = "IndexSignatureParameters"; - ListFormat2[ListFormat2["JSDocComment"] = 33] = "JSDocComment"; - return ListFormat2; -})(ListFormat || {}); -var PragmaKindFlags = /* @__PURE__ */ (function (PragmaKindFlags2) { - PragmaKindFlags2[PragmaKindFlags2["None"] = 0] = "None"; - PragmaKindFlags2[PragmaKindFlags2["TripleSlashXML"] = 1] = "TripleSlashXML"; - PragmaKindFlags2[PragmaKindFlags2["SingleLine"] = 2] = "SingleLine"; - PragmaKindFlags2[PragmaKindFlags2["MultiLine"] = 4] = "MultiLine"; - PragmaKindFlags2[PragmaKindFlags2["All"] = 7] = "All"; - PragmaKindFlags2[PragmaKindFlags2["Default"] = 7 /* All */] = "Default"; - return PragmaKindFlags2; -})(PragmaKindFlags || {}); -var commentPragmas = { - "reference": { - args: [ - { name: "types", optional: true, captureSpan: true }, - { name: "lib", optional: true, captureSpan: true }, - { name: "path", optional: true, captureSpan: true }, - { name: "no-default-lib", optional: true }, - { name: "resolution-mode", optional: true } - ], - kind: 1 /* TripleSlashXML */ - }, - "amd-dependency": { - args: [{ name: "path" }, { name: "name", optional: true }], - kind: 1 /* TripleSlashXML */ - }, - "amd-module": { - args: [{ name: "name" }], - kind: 1 /* TripleSlashXML */ - }, - "ts-check": { - kind: 2 /* SingleLine */ - }, - "ts-nocheck": { - kind: 2 /* SingleLine */ - }, - "jsx": { - args: [{ name: "factory" }], - kind: 4 /* MultiLine */ - }, - "jsxfrag": { - args: [{ name: "factory" }], - kind: 4 /* MultiLine */ - }, - "jsximportsource": { - args: [{ name: "factory" }], - kind: 4 /* MultiLine */ - }, - "jsxruntime": { - args: [{ name: "factory" }], - kind: 4 /* MultiLine */ - } -}; -// src/compiler/sys.ts -function generateDjb2Hash(data) { - var acc = 5381; - for (var i = 0; i < data.length; i++) { - acc = (acc << 5) + acc + data.charCodeAt(i); - } - return acc.toString(); -} -function setStackTraceLimit() { - if (Error.stackTraceLimit < 100) { - Error.stackTraceLimit = 100; - } -} -var FileWatcherEventKind = /* @__PURE__ */ (function (FileWatcherEventKind2) { - FileWatcherEventKind2[FileWatcherEventKind2["Created"] = 0] = "Created"; - FileWatcherEventKind2[FileWatcherEventKind2["Changed"] = 1] = "Changed"; - FileWatcherEventKind2[FileWatcherEventKind2["Deleted"] = 2] = "Deleted"; - return FileWatcherEventKind2; -})(FileWatcherEventKind || {}); -var PollingInterval = /* @__PURE__ */ (function (PollingInterval3) { - PollingInterval3[PollingInterval3["High"] = 2e3] = "High"; - PollingInterval3[PollingInterval3["Medium"] = 500] = "Medium"; - PollingInterval3[PollingInterval3["Low"] = 250] = "Low"; - return PollingInterval3; -})(PollingInterval || {}); -var missingFileModifiedTime = /* @__PURE__ */ new Date(0); -function getModifiedTime(host, fileName) { - return host.getModifiedTime(fileName) || missingFileModifiedTime; -} -function createPollingIntervalBasedLevels(levels) { - var _t; - return _t = {}, - _t[250 /* Low */] = levels.Low, - _t[500 /* Medium */] = levels.Medium, - _t[2e3 /* High */] = levels.High, - _t; -} -var defaultChunkLevels = { Low: 32, Medium: 64, High: 256 }; -var pollingChunkSize = createPollingIntervalBasedLevels(defaultChunkLevels); -var unchangedPollThresholds = createPollingIntervalBasedLevels(defaultChunkLevels); -function setCustomPollingValues(system) { - if (!system.getEnvironmentVariable) { - return; - } - var pollingIntervalChanged = setCustomLevels("TSC_WATCH_POLLINGINTERVAL", PollingInterval); - pollingChunkSize = getCustomPollingBasedLevels("TSC_WATCH_POLLINGCHUNKSIZE", defaultChunkLevels) || pollingChunkSize; - unchangedPollThresholds = getCustomPollingBasedLevels("TSC_WATCH_UNCHANGEDPOLLTHRESHOLDS", defaultChunkLevels) || unchangedPollThresholds; - function getLevel(envVar, level) { - return system.getEnvironmentVariable("".concat(envVar, "_").concat(level.toUpperCase())); - } - function getCustomLevels(baseVariable) { - var customLevels; - setCustomLevel("Low"); - setCustomLevel("Medium"); - setCustomLevel("High"); - return customLevels; - function setCustomLevel(level) { - var customLevel = getLevel(baseVariable, level); - if (customLevel) { - (customLevels || (customLevels = {}))[level] = Number(customLevel); - } - } - } - function setCustomLevels(baseVariable, levels) { - var customLevels = getCustomLevels(baseVariable); - if (customLevels) { - setLevel("Low"); - setLevel("Medium"); - setLevel("High"); - return true; - } - return false; - function setLevel(level) { - levels[level] = customLevels[level] || levels[level]; - } - } - function getCustomPollingBasedLevels(baseVariable, defaultLevels) { - var customLevels = getCustomLevels(baseVariable); - return (pollingIntervalChanged || customLevels) && createPollingIntervalBasedLevels(customLevels ? __assign(__assign({}, defaultLevels), customLevels) : defaultLevels); - } -} -function pollWatchedFileQueue(host, queue, pollIndex, chunkSize, callbackOnWatchFileStat) { - var definedValueCopyToIndex = pollIndex; - for (var canVisit = queue.length; chunkSize && canVisit; nextPollIndex(), canVisit--) { - var watchedFile = queue[pollIndex]; - if (!watchedFile) { - continue; - } - else if (watchedFile.isClosed) { - queue[pollIndex] = void 0; - continue; - } - chunkSize--; - var fileChanged = onWatchedFileStat(watchedFile, getModifiedTime(host, watchedFile.fileName)); - if (watchedFile.isClosed) { - queue[pollIndex] = void 0; - continue; - } - callbackOnWatchFileStat == null ? void 0 : callbackOnWatchFileStat(watchedFile, pollIndex, fileChanged); - if (queue[pollIndex]) { - if (definedValueCopyToIndex < pollIndex) { - queue[definedValueCopyToIndex] = watchedFile; - queue[pollIndex] = void 0; - } - definedValueCopyToIndex++; - } - } - return pollIndex; - function nextPollIndex() { - pollIndex++; - if (pollIndex === queue.length) { - if (definedValueCopyToIndex < pollIndex) { - queue.length = definedValueCopyToIndex; - } - pollIndex = 0; - definedValueCopyToIndex = 0; - } - } -} -function createDynamicPriorityPollingWatchFile(host) { - var watchedFiles = []; - var changedFilesInLastPoll = []; - var lowPollingIntervalQueue = createPollingIntervalQueue(250 /* Low */); - var mediumPollingIntervalQueue = createPollingIntervalQueue(500 /* Medium */); - var highPollingIntervalQueue = createPollingIntervalQueue(2e3 /* High */); - return watchFile2; - function watchFile2(fileName, callback, defaultPollingInterval) { - var file = { - fileName: fileName, - callback: callback, - unchangedPolls: 0, - mtime: getModifiedTime(host, fileName) - }; - watchedFiles.push(file); - addToPollingIntervalQueue(file, defaultPollingInterval); - return { - close: function () { - file.isClosed = true; - unorderedRemoveItem(watchedFiles, file); - } - }; - } - function createPollingIntervalQueue(pollingInterval) { - var queue = []; - queue.pollingInterval = pollingInterval; - queue.pollIndex = 0; - queue.pollScheduled = false; - return queue; - } - function pollPollingIntervalQueue(_timeoutType, queue) { - queue.pollIndex = pollQueue(queue, queue.pollingInterval, queue.pollIndex, pollingChunkSize[queue.pollingInterval]); - if (queue.length) { - scheduleNextPoll(queue.pollingInterval); - } - else { - Debug.assert(queue.pollIndex === 0); - queue.pollScheduled = false; - } - } - function pollLowPollingIntervalQueue(_timeoutType, queue) { - pollQueue(changedFilesInLastPoll, 250 /* Low */, - /*pollIndex*/ - 0, changedFilesInLastPoll.length); - pollPollingIntervalQueue(_timeoutType, queue); - if (!queue.pollScheduled && changedFilesInLastPoll.length) { - scheduleNextPoll(250 /* Low */); - } - } - function pollQueue(queue, pollingInterval, pollIndex, chunkSize) { - return pollWatchedFileQueue(host, queue, pollIndex, chunkSize, onWatchFileStat); - function onWatchFileStat(watchedFile, pollIndex2, fileChanged) { - if (fileChanged) { - watchedFile.unchangedPolls = 0; - if (queue !== changedFilesInLastPoll) { - queue[pollIndex2] = void 0; - addChangedFileToLowPollingIntervalQueue(watchedFile); - } - } - else if (watchedFile.unchangedPolls !== unchangedPollThresholds[pollingInterval]) { - watchedFile.unchangedPolls++; - } - else if (queue === changedFilesInLastPoll) { - watchedFile.unchangedPolls = 1; - queue[pollIndex2] = void 0; - addToPollingIntervalQueue(watchedFile, 250 /* Low */); - } - else if (pollingInterval !== 2e3 /* High */) { - watchedFile.unchangedPolls++; - queue[pollIndex2] = void 0; - addToPollingIntervalQueue(watchedFile, pollingInterval === 250 /* Low */ ? 500 /* Medium */ : 2e3 /* High */); - } - } - } - function pollingIntervalQueue(pollingInterval) { - switch (pollingInterval) { - case 250 /* Low */: - return lowPollingIntervalQueue; - case 500 /* Medium */: - return mediumPollingIntervalQueue; - case 2e3 /* High */: - return highPollingIntervalQueue; - } - } - function addToPollingIntervalQueue(file, pollingInterval) { - pollingIntervalQueue(pollingInterval).push(file); - scheduleNextPollIfNotAlreadyScheduled(pollingInterval); - } - function addChangedFileToLowPollingIntervalQueue(file) { - changedFilesInLastPoll.push(file); - scheduleNextPollIfNotAlreadyScheduled(250 /* Low */); - } - function scheduleNextPollIfNotAlreadyScheduled(pollingInterval) { - if (!pollingIntervalQueue(pollingInterval).pollScheduled) { - scheduleNextPoll(pollingInterval); - } - } - function scheduleNextPoll(pollingInterval) { - pollingIntervalQueue(pollingInterval).pollScheduled = host.setTimeout(pollingInterval === 250 /* Low */ ? pollLowPollingIntervalQueue : pollPollingIntervalQueue, pollingInterval, pollingInterval === 250 /* Low */ ? "pollLowPollingIntervalQueue" : "pollPollingIntervalQueue", pollingIntervalQueue(pollingInterval)); - } -} -function createUseFsEventsOnParentDirectoryWatchFile(fsWatch, useCaseSensitiveFileNames2) { - var fileWatcherCallbacks = createMultiMap(); - var dirWatchers = /* @__PURE__ */ new Map(); - var toCanonicalName = createGetCanonicalFileName(useCaseSensitiveFileNames2); - return nonPollingWatchFile; - function nonPollingWatchFile(fileName, callback, _pollingInterval, fallbackOptions) { - var filePath = toCanonicalName(fileName); - fileWatcherCallbacks.add(filePath, callback); - var dirPath = getDirectoryPath(filePath) || "."; - var watcher = dirWatchers.get(dirPath) || createDirectoryWatcher(getDirectoryPath(fileName) || ".", dirPath, fallbackOptions); - watcher.referenceCount++; - return { - close: function () { - if (watcher.referenceCount === 1) { - watcher.close(); - dirWatchers.delete(dirPath); - } - else { - watcher.referenceCount--; - } - fileWatcherCallbacks.remove(filePath, callback); - } - }; - } - function createDirectoryWatcher(dirName, dirPath, fallbackOptions) { - var watcher = fsWatch(dirName, 1 /* Directory */, function (_eventName, relativeFileName, modifiedTime) { - var e_46, _t; - if (!isString(relativeFileName)) - return; - var fileName = getNormalizedAbsolutePath(relativeFileName, dirName); - var callbacks = fileName && fileWatcherCallbacks.get(toCanonicalName(fileName)); - if (callbacks) { - try { - for (var callbacks_1 = __values(callbacks), callbacks_1_1 = callbacks_1.next(); !callbacks_1_1.done; callbacks_1_1 = callbacks_1.next()) { - var fileCallback = callbacks_1_1.value; - fileCallback(fileName, 1 /* Changed */, modifiedTime); - } - } - catch (e_46_1) { e_46 = { error: e_46_1 }; } - finally { - try { - if (callbacks_1_1 && !callbacks_1_1.done && (_t = callbacks_1.return)) _t.call(callbacks_1); - } - finally { if (e_46) throw e_46.error; } - } - } - }, - /*recursive*/ - false, 500 /* Medium */, fallbackOptions); - watcher.referenceCount = 0; - dirWatchers.set(dirPath, watcher); - return watcher; - } -} -function createFixedChunkSizePollingWatchFile(host) { - var watchedFiles = []; - var pollIndex = 0; - var pollScheduled; - return watchFile2; - function watchFile2(fileName, callback) { - var file = { - fileName: fileName, - callback: callback, - mtime: getModifiedTime(host, fileName) - }; - watchedFiles.push(file); - scheduleNextPoll(); - return { - close: function () { - file.isClosed = true; - unorderedRemoveItem(watchedFiles, file); - } - }; - } - function pollQueue() { - pollScheduled = void 0; - pollIndex = pollWatchedFileQueue(host, watchedFiles, pollIndex, pollingChunkSize[250 /* Low */]); - scheduleNextPoll(); - } - function scheduleNextPoll() { - if (!watchedFiles.length || pollScheduled) - return; - pollScheduled = host.setTimeout(pollQueue, 2e3 /* High */, "pollQueue"); - } -} -function createSingleWatcherPerName(cache, useCaseSensitiveFileNames2, name, callback, createWatcher) { - var toCanonicalFileName = createGetCanonicalFileName(useCaseSensitiveFileNames2); - var path = toCanonicalFileName(name); - var existing = cache.get(path); - if (existing) { - existing.callbacks.push(callback); - } - else { - cache.set(path, { - watcher: createWatcher( - // Cant infer types correctly so lets satisfy checker - function (param1, param2, param3) { - var _a; - return (_a = cache.get(path)) == null ? void 0 : _a.callbacks.slice().forEach(function (cb) { return cb(param1, param2, param3); }); - }), - callbacks: [callback] - }); - } - return { - close: function () { - var watcher = cache.get(path); - if (!watcher) - return; - if (!orderedRemoveItem(watcher.callbacks, callback) || watcher.callbacks.length) - return; - cache.delete(path); - closeFileWatcherOf(watcher); - } - }; -} -function onWatchedFileStat(watchedFile, modifiedTime) { - var oldTime = watchedFile.mtime.getTime(); - var newTime = modifiedTime.getTime(); - if (oldTime !== newTime) { - watchedFile.mtime = modifiedTime; - watchedFile.callback(watchedFile.fileName, getFileWatcherEventKind(oldTime, newTime), modifiedTime); - return true; - } - return false; -} -function getFileWatcherEventKind(oldTime, newTime) { - return oldTime === 0 ? 0 /* Created */ : newTime === 0 ? 2 /* Deleted */ : 1 /* Changed */; -} -var ignoredPaths = ["/node_modules/.", "/.git", "/.#"]; -var curSysLog = noop; -function sysLog(s) { - return curSysLog(s); -} -function setSysLog(logger) { - curSysLog = logger; -} -function createDirectoryWatcherSupportingRecursive(_t) { - var watchDirectory = _t.watchDirectory, useCaseSensitiveFileNames2 = _t.useCaseSensitiveFileNames, getCurrentDirectory = _t.getCurrentDirectory, getAccessibleSortedChildDirectories = _t.getAccessibleSortedChildDirectories, fileSystemEntryExists = _t.fileSystemEntryExists, realpath = _t.realpath, setTimeout2 = _t.setTimeout, clearTimeout2 = _t.clearTimeout; - var cache = /* @__PURE__ */ new Map(); - var callbackCache = createMultiMap(); - var cacheToUpdateChildWatches = /* @__PURE__ */ new Map(); - var timerToUpdateChildWatches; - var filePathComparer = getStringComparer(!useCaseSensitiveFileNames2); - var toCanonicalFilePath = createGetCanonicalFileName(useCaseSensitiveFileNames2); - return function (dirName, callback, recursive, options) { return recursive ? createDirectoryWatcher(dirName, options, callback) : watchDirectory(dirName, callback, recursive, options); }; - function createDirectoryWatcher(dirName, options, callback) { - var dirPath = toCanonicalFilePath(dirName); - var directoryWatcher = cache.get(dirPath); - if (directoryWatcher) { - directoryWatcher.refCount++; - } - else { - directoryWatcher = { - watcher: watchDirectory(dirName, function (fileName) { - if (isIgnoredPath(fileName, options)) - return; - if (options == null ? void 0 : options.synchronousWatchDirectory) { - invokeCallbacks(dirPath, fileName); - updateChildWatches(dirName, dirPath, options); - } - else { - nonSyncUpdateChildWatches(dirName, dirPath, fileName, options); - } - }, - /*recursive*/ - false, options), - refCount: 1, - childWatches: emptyArray - }; - cache.set(dirPath, directoryWatcher); - updateChildWatches(dirName, dirPath, options); - } - var callbackToAdd = callback && { dirName: dirName, callback: callback }; - if (callbackToAdd) { - callbackCache.add(dirPath, callbackToAdd); - } - return { - dirName: dirName, - close: function () { - var directoryWatcher2 = Debug.checkDefined(cache.get(dirPath)); - if (callbackToAdd) - callbackCache.remove(dirPath, callbackToAdd); - directoryWatcher2.refCount--; - if (directoryWatcher2.refCount) - return; - cache.delete(dirPath); - closeFileWatcherOf(directoryWatcher2); - directoryWatcher2.childWatches.forEach(closeFileWatcher); - } - }; - } - function invokeCallbacks(dirPath, fileNameOrInvokeMap, fileNames) { - var fileName; - var invokeMap; - if (isString(fileNameOrInvokeMap)) { - fileName = fileNameOrInvokeMap; - } - else { - invokeMap = fileNameOrInvokeMap; - } - callbackCache.forEach(function (callbacks, rootDirName) { - if (invokeMap && invokeMap.get(rootDirName) === true) - return; - if (rootDirName === dirPath || startsWith(dirPath, rootDirName) && dirPath[rootDirName.length] === directorySeparator) { - if (invokeMap) { - if (fileNames) { - var existing = invokeMap.get(rootDirName); - if (existing) { - existing.push.apply(existing, __spreadArray([], __read(fileNames), false)); - } - else { - invokeMap.set(rootDirName, fileNames.slice()); - } - } - else { - invokeMap.set(rootDirName, true); - } - } - else { - callbacks.forEach(function (_t) { - var callback = _t.callback; - return callback(fileName); - }); - } - } - }); - } - function nonSyncUpdateChildWatches(dirName, dirPath, fileName, options) { - var parentWatcher = cache.get(dirPath); - if (parentWatcher && fileSystemEntryExists(dirName, 1 /* Directory */)) { - scheduleUpdateChildWatches(dirName, dirPath, fileName, options); - return; - } - invokeCallbacks(dirPath, fileName); - removeChildWatches(parentWatcher); - } - function scheduleUpdateChildWatches(dirName, dirPath, fileName, options) { - var existing = cacheToUpdateChildWatches.get(dirPath); - if (existing) { - existing.fileNames.push(fileName); - } - else { - cacheToUpdateChildWatches.set(dirPath, { dirName: dirName, options: options, fileNames: [fileName] }); - } - if (timerToUpdateChildWatches) { - clearTimeout2(timerToUpdateChildWatches); - timerToUpdateChildWatches = void 0; - } - timerToUpdateChildWatches = setTimeout2(onTimerToUpdateChildWatches, 1e3, "timerToUpdateChildWatches"); - } - function onTimerToUpdateChildWatches() { - timerToUpdateChildWatches = void 0; - sysLog("sysLog:: onTimerToUpdateChildWatches:: ".concat(cacheToUpdateChildWatches.size)); - var start2 = timestamp(); - var invokeMap = /* @__PURE__ */ new Map(); - while (!timerToUpdateChildWatches && cacheToUpdateChildWatches.size) { - var result = cacheToUpdateChildWatches.entries().next(); - Debug.assert(!result.done); - var _t = __read(result.value, 2), dirPath = _t[0], _u = _t[1], dirName = _u.dirName, options = _u.options, fileNames = _u.fileNames; - cacheToUpdateChildWatches.delete(dirPath); - var hasChanges = updateChildWatches(dirName, dirPath, options); - invokeCallbacks(dirPath, invokeMap, hasChanges ? void 0 : fileNames); - } - sysLog("sysLog:: invokingWatchers:: Elapsed:: ".concat(timestamp() - start2, "ms:: ").concat(cacheToUpdateChildWatches.size)); - callbackCache.forEach(function (callbacks, rootDirName) { - var existing = invokeMap.get(rootDirName); - if (existing) { - callbacks.forEach(function (_t) { - var callback = _t.callback, dirName = _t.dirName; - if (isArray(existing)) { - existing.forEach(callback); - } - else { - callback(dirName); - } - }); - } - }); - var elapsed = timestamp() - start2; - sysLog("sysLog:: Elapsed:: ".concat(elapsed, "ms:: onTimerToUpdateChildWatches:: ").concat(cacheToUpdateChildWatches.size, " ").concat(timerToUpdateChildWatches)); - } - function removeChildWatches(parentWatcher) { - var e_47, _t; - if (!parentWatcher) - return; - var existingChildWatches = parentWatcher.childWatches; - parentWatcher.childWatches = emptyArray; - try { - for (var existingChildWatches_1 = __values(existingChildWatches), existingChildWatches_1_1 = existingChildWatches_1.next(); !existingChildWatches_1_1.done; existingChildWatches_1_1 = existingChildWatches_1.next()) { - var childWatcher = existingChildWatches_1_1.value; - childWatcher.close(); - removeChildWatches(cache.get(toCanonicalFilePath(childWatcher.dirName))); - } - } - catch (e_47_1) { e_47 = { error: e_47_1 }; } - finally { - try { - if (existingChildWatches_1_1 && !existingChildWatches_1_1.done && (_t = existingChildWatches_1.return)) _t.call(existingChildWatches_1); - } - finally { if (e_47) throw e_47.error; } - } - } - function updateChildWatches(parentDir, parentDirPath, options) { - var parentWatcher = cache.get(parentDirPath); - if (!parentWatcher) - return false; - var newChildWatches; - var hasChanges = enumerateInsertsAndDeletes(fileSystemEntryExists(parentDir, 1 /* Directory */) ? mapDefined(getAccessibleSortedChildDirectories(parentDir), function (child) { - var childFullName = getNormalizedAbsolutePath(child, parentDir); - return !isIgnoredPath(childFullName, options) && filePathComparer(childFullName, normalizePath(realpath(childFullName))) === 0 /* EqualTo */ ? childFullName : void 0; - }) : emptyArray, parentWatcher.childWatches, function (child, childWatcher) { return filePathComparer(child, childWatcher.dirName); }, createAndAddChildDirectoryWatcher, closeFileWatcher, addChildDirectoryWatcher); - parentWatcher.childWatches = newChildWatches || emptyArray; - return hasChanges; - function createAndAddChildDirectoryWatcher(childName) { - var result = createDirectoryWatcher(childName, options); - addChildDirectoryWatcher(result); - } - function addChildDirectoryWatcher(childWatcher) { - (newChildWatches || (newChildWatches = [])).push(childWatcher); - } - } - function isIgnoredPath(path, options) { - return some(ignoredPaths, function (searchPath) { return isInPath(path, searchPath); }) || isIgnoredByWatchOptions(path, options, useCaseSensitiveFileNames2, getCurrentDirectory); - } - function isInPath(path, searchPath) { - if (stringContains(path, searchPath)) - return true; - if (useCaseSensitiveFileNames2) - return false; - return stringContains(toCanonicalFilePath(path), searchPath); - } -} -var FileSystemEntryKind = /* @__PURE__ */ (function (FileSystemEntryKind2) { - FileSystemEntryKind2[FileSystemEntryKind2["File"] = 0] = "File"; - FileSystemEntryKind2[FileSystemEntryKind2["Directory"] = 1] = "Directory"; - return FileSystemEntryKind2; -})(FileSystemEntryKind || {}); -function createFileWatcherCallback(callback) { - return function (_fileName, eventKind, modifiedTime) { return callback(eventKind === 1 /* Changed */ ? "change" : "rename", "", modifiedTime); }; -} -function createFsWatchCallbackForFileWatcherCallback(fileName, callback, getModifiedTime3) { - return function (eventName, _relativeFileName, modifiedTime) { - if (eventName === "rename") { - modifiedTime || (modifiedTime = getModifiedTime3(fileName) || missingFileModifiedTime); - callback(fileName, modifiedTime !== missingFileModifiedTime ? 0 /* Created */ : 2 /* Deleted */, modifiedTime); - } - else { - callback(fileName, 1 /* Changed */, modifiedTime); - } - }; -} -function isIgnoredByWatchOptions(pathToCheck, options, useCaseSensitiveFileNames2, getCurrentDirectory) { - return ((options == null ? void 0 : options.excludeDirectories) || (options == null ? void 0 : options.excludeFiles)) && (matchesExclude(pathToCheck, options == null ? void 0 : options.excludeFiles, useCaseSensitiveFileNames2, getCurrentDirectory()) || matchesExclude(pathToCheck, options == null ? void 0 : options.excludeDirectories, useCaseSensitiveFileNames2, getCurrentDirectory())); -} -function createFsWatchCallbackForDirectoryWatcherCallback(directoryName, callback, options, useCaseSensitiveFileNames2, getCurrentDirectory) { - return function (eventName, relativeFileName) { - if (eventName === "rename") { - var fileName = !relativeFileName ? directoryName : normalizePath(combinePaths(directoryName, relativeFileName)); - if (!relativeFileName || !isIgnoredByWatchOptions(fileName, options, useCaseSensitiveFileNames2, getCurrentDirectory)) { - callback(fileName); - } - } - }; -} -function createSystemWatchFunctions(_t) { - var pollingWatchFileWorker = _t.pollingWatchFileWorker, getModifiedTime3 = _t.getModifiedTime, setTimeout2 = _t.setTimeout, clearTimeout2 = _t.clearTimeout, fsWatchWorker = _t.fsWatchWorker, fileSystemEntryExists = _t.fileSystemEntryExists, useCaseSensitiveFileNames2 = _t.useCaseSensitiveFileNames, getCurrentDirectory = _t.getCurrentDirectory, fsSupportsRecursiveFsWatch = _t.fsSupportsRecursiveFsWatch, getAccessibleSortedChildDirectories = _t.getAccessibleSortedChildDirectories, realpath = _t.realpath, tscWatchFile = _t.tscWatchFile, useNonPollingWatchers = _t.useNonPollingWatchers, tscWatchDirectory = _t.tscWatchDirectory, inodeWatching = _t.inodeWatching, sysLog2 = _t.sysLog; - var pollingWatches = /* @__PURE__ */ new Map(); - var fsWatches = /* @__PURE__ */ new Map(); - var fsWatchesRecursive = /* @__PURE__ */ new Map(); - var dynamicPollingWatchFile; - var fixedChunkSizePollingWatchFile; - var nonPollingWatchFile; - var hostRecursiveDirectoryWatcher; - var hitSystemWatcherLimit = false; - return { - watchFile: watchFile2, - watchDirectory: watchDirectory - }; - function watchFile2(fileName, callback, pollingInterval, options) { - options = updateOptionsForWatchFile(options, useNonPollingWatchers); - var watchFileKind = Debug.checkDefined(options.watchFile); - switch (watchFileKind) { - case 0 /* FixedPollingInterval */: - return pollingWatchFile(fileName, callback, 250 /* Low */, - /*options*/ - void 0); - case 1 /* PriorityPollingInterval */: - return pollingWatchFile(fileName, callback, pollingInterval, - /*options*/ - void 0); - case 2 /* DynamicPriorityPolling */: - return ensureDynamicPollingWatchFile()(fileName, callback, pollingInterval, - /*options*/ - void 0); - case 3 /* FixedChunkSizePolling */: - return ensureFixedChunkSizePollingWatchFile()(fileName, callback, - /* pollingInterval */ - void 0, - /*options*/ - void 0); - case 4 /* UseFsEvents */: - return fsWatch(fileName, 0 /* File */, createFsWatchCallbackForFileWatcherCallback(fileName, callback, getModifiedTime3), - /*recursive*/ - false, pollingInterval, getFallbackOptions(options)); - case 5 /* UseFsEventsOnParentDirectory */: - if (!nonPollingWatchFile) { - nonPollingWatchFile = createUseFsEventsOnParentDirectoryWatchFile(fsWatch, useCaseSensitiveFileNames2); - } - return nonPollingWatchFile(fileName, callback, pollingInterval, getFallbackOptions(options)); - default: - Debug.assertNever(watchFileKind); - } - } - function ensureDynamicPollingWatchFile() { - return dynamicPollingWatchFile || (dynamicPollingWatchFile = createDynamicPriorityPollingWatchFile({ getModifiedTime: getModifiedTime3, setTimeout: setTimeout2 })); - } - function ensureFixedChunkSizePollingWatchFile() { - return fixedChunkSizePollingWatchFile || (fixedChunkSizePollingWatchFile = createFixedChunkSizePollingWatchFile({ getModifiedTime: getModifiedTime3, setTimeout: setTimeout2 })); - } - function updateOptionsForWatchFile(options, useNonPollingWatchers2) { - if (options && options.watchFile !== void 0) - return options; - switch (tscWatchFile) { - case "PriorityPollingInterval": - return { watchFile: 1 /* PriorityPollingInterval */ }; - case "DynamicPriorityPolling": - return { watchFile: 2 /* DynamicPriorityPolling */ }; - case "UseFsEvents": - return generateWatchFileOptions(4 /* UseFsEvents */, 1 /* PriorityInterval */, options); - case "UseFsEventsWithFallbackDynamicPolling": - return generateWatchFileOptions(4 /* UseFsEvents */, 2 /* DynamicPriority */, options); - case "UseFsEventsOnParentDirectory": - useNonPollingWatchers2 = true; - default: - return useNonPollingWatchers2 ? ( - // Use notifications from FS to watch with falling back to fs.watchFile - generateWatchFileOptions(5 /* UseFsEventsOnParentDirectory */, 1 /* PriorityInterval */, options)) : ( - // Default to using fs events - { watchFile: 4 /* UseFsEvents */ }); - } - } - function generateWatchFileOptions(watchFile3, fallbackPolling, options) { - var defaultFallbackPolling = options == null ? void 0 : options.fallbackPolling; - return { - watchFile: watchFile3, - fallbackPolling: defaultFallbackPolling === void 0 ? fallbackPolling : defaultFallbackPolling - }; - } - function watchDirectory(directoryName, callback, recursive, options) { - if (fsSupportsRecursiveFsWatch) { - return fsWatch(directoryName, 1 /* Directory */, createFsWatchCallbackForDirectoryWatcherCallback(directoryName, callback, options, useCaseSensitiveFileNames2, getCurrentDirectory), recursive, 500 /* Medium */, getFallbackOptions(options)); - } - if (!hostRecursiveDirectoryWatcher) { - hostRecursiveDirectoryWatcher = createDirectoryWatcherSupportingRecursive({ - useCaseSensitiveFileNames: useCaseSensitiveFileNames2, - getCurrentDirectory: getCurrentDirectory, - fileSystemEntryExists: fileSystemEntryExists, - getAccessibleSortedChildDirectories: getAccessibleSortedChildDirectories, - watchDirectory: nonRecursiveWatchDirectory, - realpath: realpath, - setTimeout: setTimeout2, - clearTimeout: clearTimeout2 - }); - } - return hostRecursiveDirectoryWatcher(directoryName, callback, recursive, options); - } - function nonRecursiveWatchDirectory(directoryName, callback, recursive, options) { - Debug.assert(!recursive); - var watchDirectoryOptions = updateOptionsForWatchDirectory(options); - var watchDirectoryKind = Debug.checkDefined(watchDirectoryOptions.watchDirectory); - switch (watchDirectoryKind) { - case 1 /* FixedPollingInterval */: - return pollingWatchFile(directoryName, function () { return callback(directoryName); }, 500 /* Medium */, - /*options*/ - void 0); - case 2 /* DynamicPriorityPolling */: - return ensureDynamicPollingWatchFile()(directoryName, function () { return callback(directoryName); }, 500 /* Medium */, - /*options*/ - void 0); - case 3 /* FixedChunkSizePolling */: - return ensureFixedChunkSizePollingWatchFile()(directoryName, function () { return callback(directoryName); }, - /* pollingInterval */ - void 0, - /*options*/ - void 0); - case 0 /* UseFsEvents */: - return fsWatch(directoryName, 1 /* Directory */, createFsWatchCallbackForDirectoryWatcherCallback(directoryName, callback, options, useCaseSensitiveFileNames2, getCurrentDirectory), recursive, 500 /* Medium */, getFallbackOptions(watchDirectoryOptions)); - default: - Debug.assertNever(watchDirectoryKind); - } - } - function updateOptionsForWatchDirectory(options) { - if (options && options.watchDirectory !== void 0) - return options; - switch (tscWatchDirectory) { - case "RecursiveDirectoryUsingFsWatchFile": - return { watchDirectory: 1 /* FixedPollingInterval */ }; - case "RecursiveDirectoryUsingDynamicPriorityPolling": - return { watchDirectory: 2 /* DynamicPriorityPolling */ }; - default: - var defaultFallbackPolling = options == null ? void 0 : options.fallbackPolling; - return { - watchDirectory: 0 /* UseFsEvents */, - fallbackPolling: defaultFallbackPolling !== void 0 ? defaultFallbackPolling : void 0 - }; - } - } - function pollingWatchFile(fileName, callback, pollingInterval, options) { - return createSingleWatcherPerName(pollingWatches, useCaseSensitiveFileNames2, fileName, callback, function (cb) { return pollingWatchFileWorker(fileName, cb, pollingInterval, options); }); - } - function fsWatch(fileOrDirectory, entryKind, callback, recursive, fallbackPollingInterval, fallbackOptions) { - return createSingleWatcherPerName(recursive ? fsWatchesRecursive : fsWatches, useCaseSensitiveFileNames2, fileOrDirectory, callback, function (cb) { return fsWatchHandlingExistenceOnHost(fileOrDirectory, entryKind, cb, recursive, fallbackPollingInterval, fallbackOptions); }); - } - function fsWatchHandlingExistenceOnHost(fileOrDirectory, entryKind, callback, recursive, fallbackPollingInterval, fallbackOptions) { - var lastDirectoryPartWithDirectorySeparator; - var lastDirectoryPart; - if (inodeWatching) { - lastDirectoryPartWithDirectorySeparator = fileOrDirectory.substring(fileOrDirectory.lastIndexOf(directorySeparator)); - lastDirectoryPart = lastDirectoryPartWithDirectorySeparator.slice(directorySeparator.length); - } - var watcher = !fileSystemEntryExists(fileOrDirectory, entryKind) ? watchMissingFileSystemEntry() : watchPresentFileSystemEntry(); - return { - close: function () { - if (watcher) { - watcher.close(); - watcher = void 0; - } - } - }; - function updateWatcher(createWatcher) { - if (watcher) { - sysLog2("sysLog:: ".concat(fileOrDirectory, ":: Changing watcher to ").concat(createWatcher === watchPresentFileSystemEntry ? "Present" : "Missing", "FileSystemEntryWatcher")); - watcher.close(); - watcher = createWatcher(); - } - } - function watchPresentFileSystemEntry() { - if (hitSystemWatcherLimit) { - sysLog2("sysLog:: ".concat(fileOrDirectory, ":: Defaulting to watchFile")); - return watchPresentFileSystemEntryWithFsWatchFile(); - } - try { - var presentWatcher = fsWatchWorker(fileOrDirectory, recursive, inodeWatching ? callbackChangingToMissingFileSystemEntry : callback); - presentWatcher.on("error", function () { - callback("rename", ""); - updateWatcher(watchMissingFileSystemEntry); - }); - return presentWatcher; - } - catch (e) { - hitSystemWatcherLimit || (hitSystemWatcherLimit = e.code === "ENOSPC"); - sysLog2("sysLog:: ".concat(fileOrDirectory, ":: Changing to watchFile")); - return watchPresentFileSystemEntryWithFsWatchFile(); - } - } - function callbackChangingToMissingFileSystemEntry(event, relativeName) { - var originalRelativeName; - if (relativeName && endsWith(relativeName, "~")) { - originalRelativeName = relativeName; - relativeName = relativeName.slice(0, relativeName.length - 1); - } - if (event === "rename" && (!relativeName || relativeName === lastDirectoryPart || endsWith(relativeName, lastDirectoryPartWithDirectorySeparator))) { - var modifiedTime = getModifiedTime3(fileOrDirectory) || missingFileModifiedTime; - if (originalRelativeName) - callback(event, originalRelativeName, modifiedTime); - callback(event, relativeName, modifiedTime); - if (inodeWatching) { - updateWatcher(modifiedTime === missingFileModifiedTime ? watchMissingFileSystemEntry : watchPresentFileSystemEntry); - } - else if (modifiedTime === missingFileModifiedTime) { - updateWatcher(watchMissingFileSystemEntry); - } - } - else { - if (originalRelativeName) - callback(event, originalRelativeName); - callback(event, relativeName); - } - } - function watchPresentFileSystemEntryWithFsWatchFile() { - return watchFile2(fileOrDirectory, createFileWatcherCallback(callback), fallbackPollingInterval, fallbackOptions); - } - function watchMissingFileSystemEntry() { - return watchFile2(fileOrDirectory, function (_fileName, eventKind, modifiedTime) { - if (eventKind === 0 /* Created */) { - modifiedTime || (modifiedTime = getModifiedTime3(fileOrDirectory) || missingFileModifiedTime); - if (modifiedTime !== missingFileModifiedTime) { - callback("rename", "", modifiedTime); - updateWatcher(watchPresentFileSystemEntry); - } - } - }, fallbackPollingInterval, fallbackOptions); - } - } -} -function patchWriteFileEnsuringDirectory(sys2) { - var originalWriteFile = sys2.writeFile; - sys2.writeFile = function (path, data, writeBom) { return writeFileEnsuringDirectories(path, data, !!writeBom, function (path2, data2, writeByteOrderMark) { return originalWriteFile.call(sys2, path2, data2, writeByteOrderMark); }, function (path2) { return sys2.createDirectory(path2); }, function (path2) { return sys2.directoryExists(path2); }); }; -} -var sys = (function () { - var byteOrderMarkIndicator = "\uFEFF"; - function getNodeSystem() { - var nativePattern = /^native |^\([^)]+\)$|^(internal[\\/]|[a-zA-Z0-9_\s]+(\.js)?$)/; - var _fs = require("fs"); - var _path = require("path"); - var _os = require("os"); - var _crypto; - try { - _crypto = require("crypto"); - } - catch (_t) { - _crypto = void 0; - } - var activeSession; - var profilePath = "./profile.cpuprofile"; - var Buffer2 = require("buffer").Buffer; - var isLinuxOrMacOs = process.platform === "linux" || process.platform === "darwin"; - var platform = _os.platform(); - var useCaseSensitiveFileNames2 = isFileSystemCaseSensitive(); - var fsRealpath = !!_fs.realpathSync.native ? process.platform === "win32" ? fsRealPathHandlingLongPath : _fs.realpathSync.native : _fs.realpathSync; - var executingFilePath = __filename.endsWith("sys.js") ? _path.join(_path.dirname(__dirname), "__fake__.js") : __filename; - var fsSupportsRecursiveFsWatch = process.platform === "win32" || process.platform === "darwin"; - var getCurrentDirectory = memoize(function () { return process.cwd(); }); - var _u = createSystemWatchFunctions({ - pollingWatchFileWorker: fsWatchFileWorker, - getModifiedTime: getModifiedTime3, - setTimeout: setTimeout, - clearTimeout: clearTimeout, - fsWatchWorker: fsWatchWorker, - useCaseSensitiveFileNames: useCaseSensitiveFileNames2, - getCurrentDirectory: getCurrentDirectory, - fileSystemEntryExists: fileSystemEntryExists, - // Node 4.0 `fs.watch` function supports the "recursive" option on both OSX and Windows - // (ref: https://github.com/nodejs/node/pull/2649 and https://github.com/Microsoft/TypeScript/issues/4643) - fsSupportsRecursiveFsWatch: fsSupportsRecursiveFsWatch, - getAccessibleSortedChildDirectories: function (path) { return getAccessibleFileSystemEntries(path).directories; }, - realpath: realpath, - tscWatchFile: process.env.TSC_WATCHFILE, - useNonPollingWatchers: !!process.env.TSC_NONPOLLING_WATCHER, - tscWatchDirectory: process.env.TSC_WATCHDIRECTORY, - inodeWatching: isLinuxOrMacOs, - sysLog: sysLog - }), watchFile2 = _u.watchFile, watchDirectory = _u.watchDirectory; - var nodeSystem = { - args: process.argv.slice(2), - newLine: _os.EOL, - useCaseSensitiveFileNames: useCaseSensitiveFileNames2, - write: function (s) { - process.stdout.write(s); - }, - getWidthOfTerminal: function () { - return process.stdout.columns; - }, - writeOutputIsTTY: function () { - return process.stdout.isTTY; - }, - readFile: readFile, - writeFile: writeFile2, - watchFile: watchFile2, - watchDirectory: watchDirectory, - resolvePath: function (path) { return _path.resolve(path); }, - fileExists: fileExists, - directoryExists: directoryExists, - createDirectory: function (directoryName) { - if (!nodeSystem.directoryExists(directoryName)) { - try { - _fs.mkdirSync(directoryName); - } - catch (e) { - if (e.code !== "EEXIST") { - throw e; - } - } - } - }, - getExecutingFilePath: function () { - return executingFilePath; - }, - getCurrentDirectory: getCurrentDirectory, - getDirectories: getDirectories, - getEnvironmentVariable: function (name) { - return process.env[name] || ""; - }, - readDirectory: readDirectory, - getModifiedTime: getModifiedTime3, - setModifiedTime: setModifiedTime, - deleteFile: deleteFile, - createHash: _crypto ? createSHA256Hash : generateDjb2Hash, - createSHA256Hash: _crypto ? createSHA256Hash : void 0, - getMemoryUsage: function () { - if (global.gc) { - global.gc(); - } - return process.memoryUsage().heapUsed; - }, - getFileSize: function (path) { - try { - var stat = statSync(path); - if (stat == null ? void 0 : stat.isFile()) { - return stat.size; - } - } - catch (_t) { - } - return 0; - }, - exit: function (exitCode) { - disableCPUProfiler(function () { return process.exit(exitCode); }); - }, - enableCPUProfiler: enableCPUProfiler, - disableCPUProfiler: disableCPUProfiler, - cpuProfilingEnabled: function () { return !!activeSession || contains(process.execArgv, "--cpu-prof") || contains(process.execArgv, "--prof"); }, - realpath: realpath, - debugMode: !!process.env.NODE_INSPECTOR_IPC || !!process.env.VSCODE_INSPECTOR_OPTIONS || some(process.execArgv, function (arg) { return /^--(inspect|debug)(-brk)?(=\d+)?$/i.test(arg); }) || !!process.recordreplay, - tryEnableSourceMapsForHost: function () { - try { - require("source-map-support").install(); - } - catch (_t) { - } - }, - setTimeout: setTimeout, - clearTimeout: clearTimeout, - clearScreen: function () { - process.stdout.write("\x1Bc"); - }, - setBlocking: function () { - var _a; - var handle = (_a = process.stdout) == null ? void 0 : _a._handle; - if (handle && handle.setBlocking) { - handle.setBlocking(true); - } - }, - bufferFrom: bufferFrom, - base64decode: function (input) { return bufferFrom(input, "base64").toString("utf8"); }, - base64encode: function (input) { return bufferFrom(input).toString("base64"); }, - require: function (baseDir, moduleName) { - try { - var modulePath = resolveJSModule(moduleName, baseDir, nodeSystem); - return { module: require(modulePath), modulePath: modulePath, error: void 0 }; - } - catch (error2) { - return { module: void 0, modulePath: void 0, error: error2 }; - } - } - }; - return nodeSystem; - function statSync(path) { - return _fs.statSync(path, { throwIfNoEntry: false }); - } - function enableCPUProfiler(path, cb) { - if (activeSession) { - cb(); - return false; - } - var inspector = require("inspector"); - if (!inspector || !inspector.Session) { - cb(); - return false; - } - var session = new inspector.Session(); - session.connect(); - session.post("Profiler.enable", function () { - session.post("Profiler.start", function () { - activeSession = session; - profilePath = path; - cb(); - }); - }); - return true; - } - function cleanupPaths(profile) { - var e_48, _t; - var externalFileCounter = 0; - var remappedPaths = /* @__PURE__ */ new Map(); - var normalizedDir = normalizeSlashes(_path.dirname(executingFilePath)); - var fileUrlRoot = "file://".concat(getRootLength(normalizedDir) === 1 ? "" : "/").concat(normalizedDir); - try { - for (var _u = __values(profile.nodes), _v = _u.next(); !_v.done; _v = _u.next()) { - var node = _v.value; - if (node.callFrame.url) { - var url = normalizeSlashes(node.callFrame.url); - if (containsPath(fileUrlRoot, url, useCaseSensitiveFileNames2)) { - node.callFrame.url = getRelativePathToDirectoryOrUrl(fileUrlRoot, url, fileUrlRoot, createGetCanonicalFileName(useCaseSensitiveFileNames2), - /*isAbsolutePathAnUrl*/ - true); - } - else if (!nativePattern.test(url)) { - node.callFrame.url = (remappedPaths.has(url) ? remappedPaths : remappedPaths.set(url, "external".concat(externalFileCounter, ".js"))).get(url); - externalFileCounter++; - } - } - } - } - catch (e_48_1) { e_48 = { error: e_48_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_48) throw e_48.error; } - } - return profile; - } - function disableCPUProfiler(cb) { - if (activeSession && activeSession !== "stopping") { - var s_1 = activeSession; - activeSession.post("Profiler.stop", function (err, _t) { - var profile = _t.profile; - var _a; - if (!err) { - try { - if ((_a = statSync(profilePath)) == null ? void 0 : _a.isDirectory()) { - profilePath = _path.join(profilePath, "".concat(( /* @__PURE__ */new Date()).toISOString().replace(/:/g, "-"), "+P").concat(process.pid, ".cpuprofile")); - } - } - catch (_u) { - } - try { - _fs.mkdirSync(_path.dirname(profilePath), { recursive: true }); - } - catch (_v) { - } - _fs.writeFileSync(profilePath, JSON.stringify(cleanupPaths(profile))); - } - activeSession = void 0; - s_1.disconnect(); - cb(); - }); - activeSession = "stopping"; - return true; - } - else { - cb(); - return false; - } - } - function bufferFrom(input, encoding) { - return Buffer2.from && Buffer2.from !== Int8Array.from ? Buffer2.from(input, encoding) : new Buffer2(input, encoding); - } - function isFileSystemCaseSensitive() { - if (platform === "win32" || platform === "win64") { - return false; - } - return !fileExists(swapCase(__filename)); - } - function swapCase(s) { - return s.replace(/\w/g, function (ch) { - var up = ch.toUpperCase(); - return ch === up ? ch.toLowerCase() : up; - }); - } - function fsWatchFileWorker(fileName, callback, pollingInterval) { - _fs.watchFile(fileName, { persistent: true, interval: pollingInterval }, fileChanged); - var eventKind; - return { - close: function () { return _fs.unwatchFile(fileName, fileChanged); } - }; - function fileChanged(curr, prev) { - var isPreviouslyDeleted = +prev.mtime === 0 || eventKind === 2 /* Deleted */; - if (+curr.mtime === 0) { - if (isPreviouslyDeleted) { - return; - } - eventKind = 2 /* Deleted */; - } - else if (isPreviouslyDeleted) { - eventKind = 0 /* Created */; - } - else if (+curr.mtime === +prev.mtime) { - return; - } - else { - eventKind = 1 /* Changed */; - } - callback(fileName, eventKind, curr.mtime); - } - } - function fsWatchWorker(fileOrDirectory, recursive, callback) { - return _fs.watch(fileOrDirectory, fsSupportsRecursiveFsWatch ? { persistent: true, recursive: !!recursive } : { persistent: true }, callback); - } - function readFileWorker(fileName, _encoding) { - var buffer; - try { - buffer = _fs.readFileSync(fileName); - } - catch (e) { - return void 0; - } - var len = buffer.length; - if (len >= 2 && buffer[0] === 254 && buffer[1] === 255) { - len &= ~1; - for (var i = 0; i < len; i += 2) { - var temp = buffer[i]; - buffer[i] = buffer[i + 1]; - buffer[i + 1] = temp; - } - return buffer.toString("utf16le", 2); - } - if (len >= 2 && buffer[0] === 255 && buffer[1] === 254) { - return buffer.toString("utf16le", 2); - } - if (len >= 3 && buffer[0] === 239 && buffer[1] === 187 && buffer[2] === 191) { - return buffer.toString("utf8", 3); - } - return buffer.toString("utf8"); - } - function readFile(fileName, _encoding) { - var _a, _b; - (_a = perfLogger) == null ? void 0 : _a.logStartReadFile(fileName); - var file = readFileWorker(fileName, _encoding); - (_b = perfLogger) == null ? void 0 : _b.logStopReadFile(); - return file; - } - function writeFile2(fileName, data, writeByteOrderMark) { - var _a; - (_a = perfLogger) == null ? void 0 : _a.logEvent("WriteFile: " + fileName); - if (writeByteOrderMark) { - data = byteOrderMarkIndicator + data; - } - var fd; - try { - fd = _fs.openSync(fileName, "w"); - _fs.writeSync(fd, data, - /*position*/ - void 0, "utf8"); - } - finally { - if (fd !== void 0) { - _fs.closeSync(fd); - } - } - } - function getAccessibleFileSystemEntries(path) { - var e_49, _t; - var _a; - (_a = perfLogger) == null ? void 0 : _a.logEvent("ReadDir: " + (path || ".")); - try { - var entries = _fs.readdirSync(path || ".", { withFileTypes: true }); - var files = []; - var directories = []; - try { - for (var entries_1 = __values(entries), entries_1_1 = entries_1.next(); !entries_1_1.done; entries_1_1 = entries_1.next()) { - var dirent = entries_1_1.value; - var entry = typeof dirent === "string" ? dirent : dirent.name; - if (entry === "." || entry === "..") { - continue; - } - var stat = void 0; - if (typeof dirent === "string" || dirent.isSymbolicLink()) { - var name_3 = combinePaths(path, entry); - try { - stat = statSync(name_3); - if (!stat) { - continue; - } - } - catch (e) { - continue; - } - } - else { - stat = dirent; - } - if (stat.isFile()) { - files.push(entry); - } - else if (stat.isDirectory()) { - directories.push(entry); - } - } - } - catch (e_49_1) { e_49 = { error: e_49_1 }; } - finally { - try { - if (entries_1_1 && !entries_1_1.done && (_t = entries_1.return)) _t.call(entries_1); - } - finally { if (e_49) throw e_49.error; } - } - files.sort(); - directories.sort(); - return { files: files, directories: directories }; - } - catch (e) { - return emptyFileSystemEntries; - } - } - function readDirectory(path, extensions, excludes, includes, depth) { - return matchFiles(path, extensions, excludes, includes, useCaseSensitiveFileNames2, process.cwd(), depth, getAccessibleFileSystemEntries, realpath); - } - function fileSystemEntryExists(path, entryKind) { - var originalStackTraceLimit = Error.stackTraceLimit; - Error.stackTraceLimit = 0; - try { - var stat = statSync(path); - if (!stat) { - return false; - } - switch (entryKind) { - case 0 /* File */: - return stat.isFile(); - case 1 /* Directory */: - return stat.isDirectory(); - default: - return false; - } - } - catch (e) { - return false; - } - finally { - Error.stackTraceLimit = originalStackTraceLimit; - } - } - function fileExists(path) { - return fileSystemEntryExists(path, 0 /* File */); - } - function directoryExists(path) { - return fileSystemEntryExists(path, 1 /* Directory */); - } - function getDirectories(path) { - return getAccessibleFileSystemEntries(path).directories.slice(); - } - function fsRealPathHandlingLongPath(path) { - return path.length < 260 ? _fs.realpathSync.native(path) : _fs.realpathSync(path); - } - function realpath(path) { - try { - return fsRealpath(path); - } - catch (_t) { - return path; - } - } - function getModifiedTime3(path) { - var _a; - var originalStackTraceLimit = Error.stackTraceLimit; - Error.stackTraceLimit = 0; - try { - return (_a = statSync(path)) == null ? void 0 : _a.mtime; - } - catch (e) { - return void 0; - } - finally { - Error.stackTraceLimit = originalStackTraceLimit; - } - } - function setModifiedTime(path, time) { - try { - _fs.utimesSync(path, time, time); - } - catch (e) { - return; - } - } - function deleteFile(path) { - try { - return _fs.unlinkSync(path); - } - catch (e) { - return; - } - } - function createSHA256Hash(data) { - var hash = _crypto.createHash("sha256"); - hash.update(data); - return hash.digest("hex"); - } - } - var sys2; - if (isNodeLikeSystem()) { - sys2 = getNodeSystem(); - } - if (sys2) { - patchWriteFileEnsuringDirectory(sys2); - } - return sys2; -})(); -function setSys(s) { - sys = s; -} -if (sys && sys.getEnvironmentVariable) { - setCustomPollingValues(sys); - Debug.setAssertionLevel(/^development$/i.test(sys.getEnvironmentVariable("NODE_ENV")) ? 1 /* Normal */ : 0 /* None */); -} -if (sys && sys.debugMode) { - Debug.isDebugging = true; -} -// src/compiler/path.ts -var directorySeparator = "/"; -var altDirectorySeparator = "\\"; -var urlSchemeSeparator = "://"; -var backslashRegExp = /\\/g; -function isAnyDirectorySeparator(charCode) { - return charCode === 47 /* slash */ || charCode === 92 /* backslash */; -} -function isUrl(path) { - return getEncodedRootLength(path) < 0; -} -function isRootedDiskPath(path) { - return getEncodedRootLength(path) > 0; -} -function isDiskPathRoot(path) { - var rootLength = getEncodedRootLength(path); - return rootLength > 0 && rootLength === path.length; -} -function pathIsAbsolute(path) { - return getEncodedRootLength(path) !== 0; -} -function pathIsRelative(path) { - return /^\.\.?($|[\\/])/.test(path); -} -function pathIsBareSpecifier(path) { - return !pathIsAbsolute(path) && !pathIsRelative(path); -} -function hasExtension(fileName) { - return stringContains(getBaseFileName(fileName), "."); -} -function fileExtensionIs(path, extension) { - return path.length > extension.length && endsWith(path, extension); -} -function fileExtensionIsOneOf(path, extensions) { - var e_50, _t; - try { - for (var extensions_1 = __values(extensions), extensions_1_1 = extensions_1.next(); !extensions_1_1.done; extensions_1_1 = extensions_1.next()) { - var extension = extensions_1_1.value; - if (fileExtensionIs(path, extension)) { - return true; - } - } - } - catch (e_50_1) { e_50 = { error: e_50_1 }; } - finally { - try { - if (extensions_1_1 && !extensions_1_1.done && (_t = extensions_1.return)) _t.call(extensions_1); - } - finally { if (e_50) throw e_50.error; } - } - return false; -} -function hasTrailingDirectorySeparator(path) { - return path.length > 0 && isAnyDirectorySeparator(path.charCodeAt(path.length - 1)); -} -function isVolumeCharacter(charCode) { - return charCode >= 97 /* a */ && charCode <= 122 /* z */ || charCode >= 65 /* A */ && charCode <= 90 /* Z */; -} -function getFileUrlVolumeSeparatorEnd(url, start2) { - var ch0 = url.charCodeAt(start2); - if (ch0 === 58 /* colon */) - return start2 + 1; - if (ch0 === 37 /* percent */ && url.charCodeAt(start2 + 1) === 51 /* _3 */) { - var ch2 = url.charCodeAt(start2 + 2); - if (ch2 === 97 /* a */ || ch2 === 65 /* A */) - return start2 + 3; - } - return -1; -} -function getEncodedRootLength(path) { - if (!path) - return 0; - var ch0 = path.charCodeAt(0); - if (ch0 === 47 /* slash */ || ch0 === 92 /* backslash */) { - if (path.charCodeAt(1) !== ch0) - return 1; - var p1 = path.indexOf(ch0 === 47 /* slash */ ? directorySeparator : altDirectorySeparator, 2); - if (p1 < 0) - return path.length; - return p1 + 1; - } - if (isVolumeCharacter(ch0) && path.charCodeAt(1) === 58 /* colon */) { - var ch2 = path.charCodeAt(2); - if (ch2 === 47 /* slash */ || ch2 === 92 /* backslash */) - return 3; - if (path.length === 2) - return 2; - } - var schemeEnd = path.indexOf(urlSchemeSeparator); - if (schemeEnd !== -1) { - var authorityStart = schemeEnd + urlSchemeSeparator.length; - var authorityEnd = path.indexOf(directorySeparator, authorityStart); - if (authorityEnd !== -1) { - var scheme = path.slice(0, schemeEnd); - var authority = path.slice(authorityStart, authorityEnd); - if (scheme === "file" && (authority === "" || authority === "localhost") && isVolumeCharacter(path.charCodeAt(authorityEnd + 1))) { - var volumeSeparatorEnd = getFileUrlVolumeSeparatorEnd(path, authorityEnd + 2); - if (volumeSeparatorEnd !== -1) { - if (path.charCodeAt(volumeSeparatorEnd) === 47 /* slash */) { - return ~(volumeSeparatorEnd + 1); - } - if (volumeSeparatorEnd === path.length) { - return ~volumeSeparatorEnd; - } - } - } - return ~(authorityEnd + 1); - } - return ~path.length; - } - return 0; -} -function getRootLength(path) { - var rootLength = getEncodedRootLength(path); - return rootLength < 0 ? ~rootLength : rootLength; -} -function getDirectoryPath(path) { - path = normalizeSlashes(path); - var rootLength = getRootLength(path); - if (rootLength === path.length) - return path; - path = removeTrailingDirectorySeparator(path); - return path.slice(0, Math.max(rootLength, path.lastIndexOf(directorySeparator))); -} -function getBaseFileName(path, extensions, ignoreCase) { - path = normalizeSlashes(path); - var rootLength = getRootLength(path); - if (rootLength === path.length) - return ""; - path = removeTrailingDirectorySeparator(path); - var name = path.slice(Math.max(getRootLength(path), path.lastIndexOf(directorySeparator) + 1)); - var extension = extensions !== void 0 && ignoreCase !== void 0 ? getAnyExtensionFromPath(name, extensions, ignoreCase) : void 0; - return extension ? name.slice(0, name.length - extension.length) : name; -} -function tryGetExtensionFromPath(path, extension, stringEqualityComparer) { - if (!startsWith(extension, ".")) - extension = "." + extension; - if (path.length >= extension.length && path.charCodeAt(path.length - extension.length) === 46 /* dot */) { - var pathExtension = path.slice(path.length - extension.length); - if (stringEqualityComparer(pathExtension, extension)) { - return pathExtension; - } - } -} -function getAnyExtensionFromPathWorker(path, extensions, stringEqualityComparer) { - var e_51, _t; - if (typeof extensions === "string") { - return tryGetExtensionFromPath(path, extensions, stringEqualityComparer) || ""; - } - try { - for (var extensions_2 = __values(extensions), extensions_2_1 = extensions_2.next(); !extensions_2_1.done; extensions_2_1 = extensions_2.next()) { - var extension = extensions_2_1.value; - var result = tryGetExtensionFromPath(path, extension, stringEqualityComparer); - if (result) - return result; - } - } - catch (e_51_1) { e_51 = { error: e_51_1 }; } - finally { - try { - if (extensions_2_1 && !extensions_2_1.done && (_t = extensions_2.return)) _t.call(extensions_2); - } - finally { if (e_51) throw e_51.error; } - } - return ""; -} -function getAnyExtensionFromPath(path, extensions, ignoreCase) { - if (extensions) { - return getAnyExtensionFromPathWorker(removeTrailingDirectorySeparator(path), extensions, ignoreCase ? equateStringsCaseInsensitive : equateStringsCaseSensitive); - } - var baseFileName = getBaseFileName(path); - var extensionIndex = baseFileName.lastIndexOf("."); - if (extensionIndex >= 0) { - return baseFileName.substring(extensionIndex); - } - return ""; -} -function pathComponents(path, rootLength) { - var root = path.substring(0, rootLength); - var rest = path.substring(rootLength).split(directorySeparator); - if (rest.length && !lastOrUndefined(rest)) - rest.pop(); - return __spreadArray([root], __read(rest), false); -} -function getPathComponents(path, currentDirectory) { - if (currentDirectory === void 0) { currentDirectory = ""; } - path = combinePaths(currentDirectory, path); - return pathComponents(path, getRootLength(path)); -} -function getPathFromPathComponents(pathComponents2, length2) { - if (pathComponents2.length === 0) - return ""; - var root = pathComponents2[0] && ensureTrailingDirectorySeparator(pathComponents2[0]); - return root + pathComponents2.slice(1, length2).join(directorySeparator); -} -function normalizeSlashes(path) { - return path.indexOf("\\") !== -1 ? path.replace(backslashRegExp, directorySeparator) : path; -} -function reducePathComponents(components) { - if (!some(components)) - return []; - var reduced = [components[0]]; - for (var i = 1; i < components.length; i++) { - var component = components[i]; - if (!component) - continue; - if (component === ".") - continue; - if (component === "..") { - if (reduced.length > 1) { - if (reduced[reduced.length - 1] !== "..") { - reduced.pop(); - continue; - } - } - else if (reduced[0]) - continue; - } - reduced.push(component); - } - return reduced; -} -function combinePaths(path) { - var e_52, _t; - var paths = []; - for (var _u = 1; _u < arguments.length; _u++) { - paths[_u - 1] = arguments[_u]; - } - if (path) - path = normalizeSlashes(path); - try { - for (var paths_1 = __values(paths), paths_1_1 = paths_1.next(); !paths_1_1.done; paths_1_1 = paths_1.next()) { - var relativePath = paths_1_1.value; - if (!relativePath) - continue; - relativePath = normalizeSlashes(relativePath); - if (!path || getRootLength(relativePath) !== 0) { - path = relativePath; - } - else { - path = ensureTrailingDirectorySeparator(path) + relativePath; - } - } - } - catch (e_52_1) { e_52 = { error: e_52_1 }; } - finally { - try { - if (paths_1_1 && !paths_1_1.done && (_t = paths_1.return)) _t.call(paths_1); - } - finally { if (e_52) throw e_52.error; } - } - return path; -} -function resolvePath(path) { - var paths = []; - for (var _t = 1; _t < arguments.length; _t++) { - paths[_t - 1] = arguments[_t]; - } - return normalizePath(some(paths) ? combinePaths.apply(void 0, __spreadArray([path], __read(paths), false)) : normalizeSlashes(path)); -} -function getNormalizedPathComponents(path, currentDirectory) { - return reducePathComponents(getPathComponents(path, currentDirectory)); -} -function getNormalizedAbsolutePath(fileName, currentDirectory) { - return getPathFromPathComponents(getNormalizedPathComponents(fileName, currentDirectory)); -} -function normalizePath(path) { - path = normalizeSlashes(path); - if (!relativePathSegmentRegExp.test(path)) { - return path; - } - var simplified = path.replace(/\/\.\//g, "/").replace(/^\.\//, ""); - if (simplified !== path) { - path = simplified; - if (!relativePathSegmentRegExp.test(path)) { - return path; - } - } - var normalized = getPathFromPathComponents(reducePathComponents(getPathComponents(path))); - return normalized && hasTrailingDirectorySeparator(path) ? ensureTrailingDirectorySeparator(normalized) : normalized; -} -function getPathWithoutRoot(pathComponents2) { - if (pathComponents2.length === 0) - return ""; - return pathComponents2.slice(1).join(directorySeparator); -} -function getNormalizedAbsolutePathWithoutRoot(fileName, currentDirectory) { - return getPathWithoutRoot(getNormalizedPathComponents(fileName, currentDirectory)); -} -function toPath(fileName, basePath, getCanonicalFileName) { - var nonCanonicalizedPath = isRootedDiskPath(fileName) ? normalizePath(fileName) : getNormalizedAbsolutePath(fileName, basePath); - return getCanonicalFileName(nonCanonicalizedPath); -} -function removeTrailingDirectorySeparator(path) { - if (hasTrailingDirectorySeparator(path)) { - return path.substr(0, path.length - 1); - } - return path; -} -function ensureTrailingDirectorySeparator(path) { - if (!hasTrailingDirectorySeparator(path)) { - return path + directorySeparator; - } - return path; -} -function ensurePathIsNonModuleName(path) { - return !pathIsAbsolute(path) && !pathIsRelative(path) ? "./" + path : path; -} -function changeAnyExtension(path, ext, extensions, ignoreCase) { - var pathext = extensions !== void 0 && ignoreCase !== void 0 ? getAnyExtensionFromPath(path, extensions, ignoreCase) : getAnyExtensionFromPath(path); - return pathext ? path.slice(0, path.length - pathext.length) + (startsWith(ext, ".") ? ext : "." + ext) : path; -} -var relativePathSegmentRegExp = /(?:\/\/)|(?:^|\/)\.\.?(?:$|\/)/; -function comparePathsWorker(a, b, componentComparer) { - if (a === b) - return 0 /* EqualTo */; - if (a === void 0) - return -1 /* LessThan */; - if (b === void 0) - return 1 /* GreaterThan */; - var aRoot = a.substring(0, getRootLength(a)); - var bRoot = b.substring(0, getRootLength(b)); - var result = compareStringsCaseInsensitive(aRoot, bRoot); - if (result !== 0 /* EqualTo */) { - return result; - } - var aRest = a.substring(aRoot.length); - var bRest = b.substring(bRoot.length); - if (!relativePathSegmentRegExp.test(aRest) && !relativePathSegmentRegExp.test(bRest)) { - return componentComparer(aRest, bRest); - } - var aComponents = reducePathComponents(getPathComponents(a)); - var bComponents = reducePathComponents(getPathComponents(b)); - var sharedLength = Math.min(aComponents.length, bComponents.length); - for (var i = 1; i < sharedLength; i++) { - var result2 = componentComparer(aComponents[i], bComponents[i]); - if (result2 !== 0 /* EqualTo */) { - return result2; - } - } - return compareValues(aComponents.length, bComponents.length); -} -function comparePathsCaseSensitive(a, b) { - return comparePathsWorker(a, b, compareStringsCaseSensitive); -} -function comparePathsCaseInsensitive(a, b) { - return comparePathsWorker(a, b, compareStringsCaseInsensitive); -} -function comparePaths(a, b, currentDirectory, ignoreCase) { - if (typeof currentDirectory === "string") { - a = combinePaths(currentDirectory, a); - b = combinePaths(currentDirectory, b); - } - else if (typeof currentDirectory === "boolean") { - ignoreCase = currentDirectory; - } - return comparePathsWorker(a, b, getStringComparer(ignoreCase)); -} -function containsPath(parent2, child, currentDirectory, ignoreCase) { - if (typeof currentDirectory === "string") { - parent2 = combinePaths(currentDirectory, parent2); - child = combinePaths(currentDirectory, child); - } - else if (typeof currentDirectory === "boolean") { - ignoreCase = currentDirectory; - } - if (parent2 === void 0 || child === void 0) - return false; - if (parent2 === child) - return true; - var parentComponents = reducePathComponents(getPathComponents(parent2)); - var childComponents = reducePathComponents(getPathComponents(child)); - if (childComponents.length < parentComponents.length) { - return false; - } - var componentEqualityComparer = ignoreCase ? equateStringsCaseInsensitive : equateStringsCaseSensitive; - for (var i = 0; i < parentComponents.length; i++) { - var equalityComparer = i === 0 ? equateStringsCaseInsensitive : componentEqualityComparer; - if (!equalityComparer(parentComponents[i], childComponents[i])) { - return false; - } - } - return true; -} -function startsWithDirectory(fileName, directoryName, getCanonicalFileName) { - var canonicalFileName = getCanonicalFileName(fileName); - var canonicalDirectoryName = getCanonicalFileName(directoryName); - return startsWith(canonicalFileName, canonicalDirectoryName + "/") || startsWith(canonicalFileName, canonicalDirectoryName + "\\"); -} -function getPathComponentsRelativeTo(from, to, stringEqualityComparer, getCanonicalFileName) { - var fromComponents = reducePathComponents(getPathComponents(from)); - var toComponents = reducePathComponents(getPathComponents(to)); - var start2; - for (start2 = 0; start2 < fromComponents.length && start2 < toComponents.length; start2++) { - var fromComponent = getCanonicalFileName(fromComponents[start2]); - var toComponent = getCanonicalFileName(toComponents[start2]); - var comparer = start2 === 0 ? equateStringsCaseInsensitive : stringEqualityComparer; - if (!comparer(fromComponent, toComponent)) - break; - } - if (start2 === 0) { - return toComponents; - } - var components = toComponents.slice(start2); - var relative = []; - for (; start2 < fromComponents.length; start2++) { - relative.push(".."); - } - return __spreadArray(__spreadArray([""], __read(relative), false), __read(components), false); -} -function getRelativePathFromDirectory(fromDirectory, to, getCanonicalFileNameOrIgnoreCase) { - Debug.assert(getRootLength(fromDirectory) > 0 === getRootLength(to) > 0, "Paths must either both be absolute or both be relative"); - var getCanonicalFileName = typeof getCanonicalFileNameOrIgnoreCase === "function" ? getCanonicalFileNameOrIgnoreCase : identity; - var ignoreCase = typeof getCanonicalFileNameOrIgnoreCase === "boolean" ? getCanonicalFileNameOrIgnoreCase : false; - var pathComponents2 = getPathComponentsRelativeTo(fromDirectory, to, ignoreCase ? equateStringsCaseInsensitive : equateStringsCaseSensitive, getCanonicalFileName); - return getPathFromPathComponents(pathComponents2); -} -function convertToRelativePath(absoluteOrRelativePath, basePath, getCanonicalFileName) { - return !isRootedDiskPath(absoluteOrRelativePath) ? absoluteOrRelativePath : getRelativePathToDirectoryOrUrl(basePath, absoluteOrRelativePath, basePath, getCanonicalFileName, - /*isAbsolutePathAnUrl*/ - false); -} -function getRelativePathFromFile(from, to, getCanonicalFileName) { - return ensurePathIsNonModuleName(getRelativePathFromDirectory(getDirectoryPath(from), to, getCanonicalFileName)); -} -function getRelativePathToDirectoryOrUrl(directoryPathOrUrl, relativeOrAbsolutePath, currentDirectory, getCanonicalFileName, isAbsolutePathAnUrl) { - var pathComponents2 = getPathComponentsRelativeTo(resolvePath(currentDirectory, directoryPathOrUrl), resolvePath(currentDirectory, relativeOrAbsolutePath), equateStringsCaseSensitive, getCanonicalFileName); - var firstComponent = pathComponents2[0]; - if (isAbsolutePathAnUrl && isRootedDiskPath(firstComponent)) { - var prefix = firstComponent.charAt(0) === directorySeparator ? "file://" : "file:///"; - pathComponents2[0] = prefix + firstComponent; - } - return getPathFromPathComponents(pathComponents2); -} -function forEachAncestorDirectory(directory, callback) { - while (true) { - var result = callback(directory); - if (result !== void 0) { - return result; - } - var parentPath = getDirectoryPath(directory); - if (parentPath === directory) { - return void 0; - } - directory = parentPath; - } -} -function isNodeModulesDirectory(dirPath) { - return endsWith(dirPath, "/node_modules"); -} -// src/compiler/diagnosticInformationMap.generated.ts -function diag(code, category, key, message, reportsUnnecessary, elidedInCompatabilityPyramid, reportsDeprecated) { - return { code: code, category: category, key: key, message: message, reportsUnnecessary: reportsUnnecessary, elidedInCompatabilityPyramid: elidedInCompatabilityPyramid, reportsDeprecated: reportsDeprecated }; -} -var Diagnostics = { - Unterminated_string_literal: diag(1002, 1 /* Error */, "Unterminated_string_literal_1002", "Unterminated string literal."), - Identifier_expected: diag(1003, 1 /* Error */, "Identifier_expected_1003", "Identifier expected."), - _0_expected: diag(1005, 1 /* Error */, "_0_expected_1005", "'{0}' expected."), - A_file_cannot_have_a_reference_to_itself: diag(1006, 1 /* Error */, "A_file_cannot_have_a_reference_to_itself_1006", "A file cannot have a reference to itself."), - The_parser_expected_to_find_a_1_to_match_the_0_token_here: diag(1007, 1 /* Error */, "The_parser_expected_to_find_a_1_to_match_the_0_token_here_1007", "The parser expected to find a '{1}' to match the '{0}' token here."), - Trailing_comma_not_allowed: diag(1009, 1 /* Error */, "Trailing_comma_not_allowed_1009", "Trailing comma not allowed."), - Asterisk_Slash_expected: diag(1010, 1 /* Error */, "Asterisk_Slash_expected_1010", "'*/' expected."), - An_element_access_expression_should_take_an_argument: diag(1011, 1 /* Error */, "An_element_access_expression_should_take_an_argument_1011", "An element access expression should take an argument."), - Unexpected_token: diag(1012, 1 /* Error */, "Unexpected_token_1012", "Unexpected token."), - A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma: diag(1013, 1 /* Error */, "A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma_1013", "A rest parameter or binding pattern may not have a trailing comma."), - A_rest_parameter_must_be_last_in_a_parameter_list: diag(1014, 1 /* Error */, "A_rest_parameter_must_be_last_in_a_parameter_list_1014", "A rest parameter must be last in a parameter list."), - Parameter_cannot_have_question_mark_and_initializer: diag(1015, 1 /* Error */, "Parameter_cannot_have_question_mark_and_initializer_1015", "Parameter cannot have question mark and initializer."), - A_required_parameter_cannot_follow_an_optional_parameter: diag(1016, 1 /* Error */, "A_required_parameter_cannot_follow_an_optional_parameter_1016", "A required parameter cannot follow an optional parameter."), - An_index_signature_cannot_have_a_rest_parameter: diag(1017, 1 /* Error */, "An_index_signature_cannot_have_a_rest_parameter_1017", "An index signature cannot have a rest parameter."), - An_index_signature_parameter_cannot_have_an_accessibility_modifier: diag(1018, 1 /* Error */, "An_index_signature_parameter_cannot_have_an_accessibility_modifier_1018", "An index signature parameter cannot have an accessibility modifier."), - An_index_signature_parameter_cannot_have_a_question_mark: diag(1019, 1 /* Error */, "An_index_signature_parameter_cannot_have_a_question_mark_1019", "An index signature parameter cannot have a question mark."), - An_index_signature_parameter_cannot_have_an_initializer: diag(1020, 1 /* Error */, "An_index_signature_parameter_cannot_have_an_initializer_1020", "An index signature parameter cannot have an initializer."), - An_index_signature_must_have_a_type_annotation: diag(1021, 1 /* Error */, "An_index_signature_must_have_a_type_annotation_1021", "An index signature must have a type annotation."), - An_index_signature_parameter_must_have_a_type_annotation: diag(1022, 1 /* Error */, "An_index_signature_parameter_must_have_a_type_annotation_1022", "An index signature parameter must have a type annotation."), - readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature: diag(1024, 1 /* Error */, "readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature_1024", "'readonly' modifier can only appear on a property declaration or index signature."), - An_index_signature_cannot_have_a_trailing_comma: diag(1025, 1 /* Error */, "An_index_signature_cannot_have_a_trailing_comma_1025", "An index signature cannot have a trailing comma."), - Accessibility_modifier_already_seen: diag(1028, 1 /* Error */, "Accessibility_modifier_already_seen_1028", "Accessibility modifier already seen."), - _0_modifier_must_precede_1_modifier: diag(1029, 1 /* Error */, "_0_modifier_must_precede_1_modifier_1029", "'{0}' modifier must precede '{1}' modifier."), - _0_modifier_already_seen: diag(1030, 1 /* Error */, "_0_modifier_already_seen_1030", "'{0}' modifier already seen."), - _0_modifier_cannot_appear_on_class_elements_of_this_kind: diag(1031, 1 /* Error */, "_0_modifier_cannot_appear_on_class_elements_of_this_kind_1031", "'{0}' modifier cannot appear on class elements of this kind."), - super_must_be_followed_by_an_argument_list_or_member_access: diag(1034, 1 /* Error */, "super_must_be_followed_by_an_argument_list_or_member_access_1034", "'super' must be followed by an argument list or member access."), - Only_ambient_modules_can_use_quoted_names: diag(1035, 1 /* Error */, "Only_ambient_modules_can_use_quoted_names_1035", "Only ambient modules can use quoted names."), - Statements_are_not_allowed_in_ambient_contexts: diag(1036, 1 /* Error */, "Statements_are_not_allowed_in_ambient_contexts_1036", "Statements are not allowed in ambient contexts."), - A_declare_modifier_cannot_be_used_in_an_already_ambient_context: diag(1038, 1 /* Error */, "A_declare_modifier_cannot_be_used_in_an_already_ambient_context_1038", "A 'declare' modifier cannot be used in an already ambient context."), - Initializers_are_not_allowed_in_ambient_contexts: diag(1039, 1 /* Error */, "Initializers_are_not_allowed_in_ambient_contexts_1039", "Initializers are not allowed in ambient contexts."), - _0_modifier_cannot_be_used_in_an_ambient_context: diag(1040, 1 /* Error */, "_0_modifier_cannot_be_used_in_an_ambient_context_1040", "'{0}' modifier cannot be used in an ambient context."), - _0_modifier_cannot_be_used_here: diag(1042, 1 /* Error */, "_0_modifier_cannot_be_used_here_1042", "'{0}' modifier cannot be used here."), - _0_modifier_cannot_appear_on_a_module_or_namespace_element: diag(1044, 1 /* Error */, "_0_modifier_cannot_appear_on_a_module_or_namespace_element_1044", "'{0}' modifier cannot appear on a module or namespace element."), - Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier: diag(1046, 1 /* Error */, "Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier_1046", "Top-level declarations in .d.ts files must start with either a 'declare' or 'export' modifier."), - A_rest_parameter_cannot_be_optional: diag(1047, 1 /* Error */, "A_rest_parameter_cannot_be_optional_1047", "A rest parameter cannot be optional."), - A_rest_parameter_cannot_have_an_initializer: diag(1048, 1 /* Error */, "A_rest_parameter_cannot_have_an_initializer_1048", "A rest parameter cannot have an initializer."), - A_set_accessor_must_have_exactly_one_parameter: diag(1049, 1 /* Error */, "A_set_accessor_must_have_exactly_one_parameter_1049", "A 'set' accessor must have exactly one parameter."), - A_set_accessor_cannot_have_an_optional_parameter: diag(1051, 1 /* Error */, "A_set_accessor_cannot_have_an_optional_parameter_1051", "A 'set' accessor cannot have an optional parameter."), - A_set_accessor_parameter_cannot_have_an_initializer: diag(1052, 1 /* Error */, "A_set_accessor_parameter_cannot_have_an_initializer_1052", "A 'set' accessor parameter cannot have an initializer."), - A_set_accessor_cannot_have_rest_parameter: diag(1053, 1 /* Error */, "A_set_accessor_cannot_have_rest_parameter_1053", "A 'set' accessor cannot have rest parameter."), - A_get_accessor_cannot_have_parameters: diag(1054, 1 /* Error */, "A_get_accessor_cannot_have_parameters_1054", "A 'get' accessor cannot have parameters."), - Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value: diag(1055, 1 /* Error */, "Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Prom_1055", "Type '{0}' is not a valid async function return type in ES5/ES3 because it does not refer to a Promise-compatible constructor value."), - Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher: diag(1056, 1 /* Error */, "Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher_1056", "Accessors are only available when targeting ECMAScript 5 and higher."), - The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member: diag(1058, 1 /* Error */, "The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_t_1058", "The return type of an async function must either be a valid promise or must not contain a callable 'then' member."), - A_promise_must_have_a_then_method: diag(1059, 1 /* Error */, "A_promise_must_have_a_then_method_1059", "A promise must have a 'then' method."), - The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback: diag(1060, 1 /* Error */, "The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback_1060", "The first parameter of the 'then' method of a promise must be a callback."), - Enum_member_must_have_initializer: diag(1061, 1 /* Error */, "Enum_member_must_have_initializer_1061", "Enum member must have initializer."), - Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method: diag(1062, 1 /* Error */, "Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method_1062", "Type is referenced directly or indirectly in the fulfillment callback of its own 'then' method."), - An_export_assignment_cannot_be_used_in_a_namespace: diag(1063, 1 /* Error */, "An_export_assignment_cannot_be_used_in_a_namespace_1063", "An export assignment cannot be used in a namespace."), - The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0: diag(1064, 1 /* Error */, "The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_wri_1064", "The return type of an async function or method must be the global Promise type. Did you mean to write 'Promise<{0}>'?"), - The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type: diag(1065, 1 /* Error */, "The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_1065", "The return type of an async function or method must be the global Promise type."), - In_ambient_enum_declarations_member_initializer_must_be_constant_expression: diag(1066, 1 /* Error */, "In_ambient_enum_declarations_member_initializer_must_be_constant_expression_1066", "In ambient enum declarations member initializer must be constant expression."), - Unexpected_token_A_constructor_method_accessor_or_property_was_expected: diag(1068, 1 /* Error */, "Unexpected_token_A_constructor_method_accessor_or_property_was_expected_1068", "Unexpected token. A constructor, method, accessor, or property was expected."), - Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces: diag(1069, 1 /* Error */, "Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces_1069", "Unexpected token. A type parameter name was expected without curly braces."), - _0_modifier_cannot_appear_on_a_type_member: diag(1070, 1 /* Error */, "_0_modifier_cannot_appear_on_a_type_member_1070", "'{0}' modifier cannot appear on a type member."), - _0_modifier_cannot_appear_on_an_index_signature: diag(1071, 1 /* Error */, "_0_modifier_cannot_appear_on_an_index_signature_1071", "'{0}' modifier cannot appear on an index signature."), - A_0_modifier_cannot_be_used_with_an_import_declaration: diag(1079, 1 /* Error */, "A_0_modifier_cannot_be_used_with_an_import_declaration_1079", "A '{0}' modifier cannot be used with an import declaration."), - Invalid_reference_directive_syntax: diag(1084, 1 /* Error */, "Invalid_reference_directive_syntax_1084", "Invalid 'reference' directive syntax."), - _0_modifier_cannot_appear_on_a_constructor_declaration: diag(1089, 1 /* Error */, "_0_modifier_cannot_appear_on_a_constructor_declaration_1089", "'{0}' modifier cannot appear on a constructor declaration."), - _0_modifier_cannot_appear_on_a_parameter: diag(1090, 1 /* Error */, "_0_modifier_cannot_appear_on_a_parameter_1090", "'{0}' modifier cannot appear on a parameter."), - Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement: diag(1091, 1 /* Error */, "Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement_1091", "Only a single variable declaration is allowed in a 'for...in' statement."), - Type_parameters_cannot_appear_on_a_constructor_declaration: diag(1092, 1 /* Error */, "Type_parameters_cannot_appear_on_a_constructor_declaration_1092", "Type parameters cannot appear on a constructor declaration."), - Type_annotation_cannot_appear_on_a_constructor_declaration: diag(1093, 1 /* Error */, "Type_annotation_cannot_appear_on_a_constructor_declaration_1093", "Type annotation cannot appear on a constructor declaration."), - An_accessor_cannot_have_type_parameters: diag(1094, 1 /* Error */, "An_accessor_cannot_have_type_parameters_1094", "An accessor cannot have type parameters."), - A_set_accessor_cannot_have_a_return_type_annotation: diag(1095, 1 /* Error */, "A_set_accessor_cannot_have_a_return_type_annotation_1095", "A 'set' accessor cannot have a return type annotation."), - An_index_signature_must_have_exactly_one_parameter: diag(1096, 1 /* Error */, "An_index_signature_must_have_exactly_one_parameter_1096", "An index signature must have exactly one parameter."), - _0_list_cannot_be_empty: diag(1097, 1 /* Error */, "_0_list_cannot_be_empty_1097", "'{0}' list cannot be empty."), - Type_parameter_list_cannot_be_empty: diag(1098, 1 /* Error */, "Type_parameter_list_cannot_be_empty_1098", "Type parameter list cannot be empty."), - Type_argument_list_cannot_be_empty: diag(1099, 1 /* Error */, "Type_argument_list_cannot_be_empty_1099", "Type argument list cannot be empty."), - Invalid_use_of_0_in_strict_mode: diag(1100, 1 /* Error */, "Invalid_use_of_0_in_strict_mode_1100", "Invalid use of '{0}' in strict mode."), - with_statements_are_not_allowed_in_strict_mode: diag(1101, 1 /* Error */, "with_statements_are_not_allowed_in_strict_mode_1101", "'with' statements are not allowed in strict mode."), - delete_cannot_be_called_on_an_identifier_in_strict_mode: diag(1102, 1 /* Error */, "delete_cannot_be_called_on_an_identifier_in_strict_mode_1102", "'delete' cannot be called on an identifier in strict mode."), - for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules: diag(1103, 1 /* Error */, "for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules_1103", "'for await' loops are only allowed within async functions and at the top levels of modules."), - A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement: diag(1104, 1 /* Error */, "A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement_1104", "A 'continue' statement can only be used within an enclosing iteration statement."), - A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement: diag(1105, 1 /* Error */, "A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement_1105", "A 'break' statement can only be used within an enclosing iteration or switch statement."), - The_left_hand_side_of_a_for_of_statement_may_not_be_async: diag(1106, 1 /* Error */, "The_left_hand_side_of_a_for_of_statement_may_not_be_async_1106", "The left-hand side of a 'for...of' statement may not be 'async'."), - Jump_target_cannot_cross_function_boundary: diag(1107, 1 /* Error */, "Jump_target_cannot_cross_function_boundary_1107", "Jump target cannot cross function boundary."), - A_return_statement_can_only_be_used_within_a_function_body: diag(1108, 1 /* Error */, "A_return_statement_can_only_be_used_within_a_function_body_1108", "A 'return' statement can only be used within a function body."), - Expression_expected: diag(1109, 1 /* Error */, "Expression_expected_1109", "Expression expected."), - Type_expected: diag(1110, 1 /* Error */, "Type_expected_1110", "Type expected."), - Private_field_0_must_be_declared_in_an_enclosing_class: diag(1111, 1 /* Error */, "Private_field_0_must_be_declared_in_an_enclosing_class_1111", "Private field '{0}' must be declared in an enclosing class."), - A_default_clause_cannot_appear_more_than_once_in_a_switch_statement: diag(1113, 1 /* Error */, "A_default_clause_cannot_appear_more_than_once_in_a_switch_statement_1113", "A 'default' clause cannot appear more than once in a 'switch' statement."), - Duplicate_label_0: diag(1114, 1 /* Error */, "Duplicate_label_0_1114", "Duplicate label '{0}'."), - A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement: diag(1115, 1 /* Error */, "A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement_1115", "A 'continue' statement can only jump to a label of an enclosing iteration statement."), - A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement: diag(1116, 1 /* Error */, "A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement_1116", "A 'break' statement can only jump to a label of an enclosing statement."), - An_object_literal_cannot_have_multiple_properties_with_the_same_name: diag(1117, 1 /* Error */, "An_object_literal_cannot_have_multiple_properties_with_the_same_name_1117", "An object literal cannot have multiple properties with the same name."), - An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name: diag(1118, 1 /* Error */, "An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name_1118", "An object literal cannot have multiple get/set accessors with the same name."), - An_object_literal_cannot_have_property_and_accessor_with_the_same_name: diag(1119, 1 /* Error */, "An_object_literal_cannot_have_property_and_accessor_with_the_same_name_1119", "An object literal cannot have property and accessor with the same name."), - An_export_assignment_cannot_have_modifiers: diag(1120, 1 /* Error */, "An_export_assignment_cannot_have_modifiers_1120", "An export assignment cannot have modifiers."), - Octal_literals_are_not_allowed_Use_the_syntax_0: diag(1121, 1 /* Error */, "Octal_literals_are_not_allowed_Use_the_syntax_0_1121", "Octal literals are not allowed. Use the syntax '{0}'."), - Variable_declaration_list_cannot_be_empty: diag(1123, 1 /* Error */, "Variable_declaration_list_cannot_be_empty_1123", "Variable declaration list cannot be empty."), - Digit_expected: diag(1124, 1 /* Error */, "Digit_expected_1124", "Digit expected."), - Hexadecimal_digit_expected: diag(1125, 1 /* Error */, "Hexadecimal_digit_expected_1125", "Hexadecimal digit expected."), - Unexpected_end_of_text: diag(1126, 1 /* Error */, "Unexpected_end_of_text_1126", "Unexpected end of text."), - Invalid_character: diag(1127, 1 /* Error */, "Invalid_character_1127", "Invalid character."), - Declaration_or_statement_expected: diag(1128, 1 /* Error */, "Declaration_or_statement_expected_1128", "Declaration or statement expected."), - Statement_expected: diag(1129, 1 /* Error */, "Statement_expected_1129", "Statement expected."), - case_or_default_expected: diag(1130, 1 /* Error */, "case_or_default_expected_1130", "'case' or 'default' expected."), - Property_or_signature_expected: diag(1131, 1 /* Error */, "Property_or_signature_expected_1131", "Property or signature expected."), - Enum_member_expected: diag(1132, 1 /* Error */, "Enum_member_expected_1132", "Enum member expected."), - Variable_declaration_expected: diag(1134, 1 /* Error */, "Variable_declaration_expected_1134", "Variable declaration expected."), - Argument_expression_expected: diag(1135, 1 /* Error */, "Argument_expression_expected_1135", "Argument expression expected."), - Property_assignment_expected: diag(1136, 1 /* Error */, "Property_assignment_expected_1136", "Property assignment expected."), - Expression_or_comma_expected: diag(1137, 1 /* Error */, "Expression_or_comma_expected_1137", "Expression or comma expected."), - Parameter_declaration_expected: diag(1138, 1 /* Error */, "Parameter_declaration_expected_1138", "Parameter declaration expected."), - Type_parameter_declaration_expected: diag(1139, 1 /* Error */, "Type_parameter_declaration_expected_1139", "Type parameter declaration expected."), - Type_argument_expected: diag(1140, 1 /* Error */, "Type_argument_expected_1140", "Type argument expected."), - String_literal_expected: diag(1141, 1 /* Error */, "String_literal_expected_1141", "String literal expected."), - Line_break_not_permitted_here: diag(1142, 1 /* Error */, "Line_break_not_permitted_here_1142", "Line break not permitted here."), - or_expected: diag(1144, 1 /* Error */, "or_expected_1144", "'{' or ';' expected."), - or_JSX_element_expected: diag(1145, 1 /* Error */, "or_JSX_element_expected_1145", "'{' or JSX element expected."), - Declaration_expected: diag(1146, 1 /* Error */, "Declaration_expected_1146", "Declaration expected."), - Import_declarations_in_a_namespace_cannot_reference_a_module: diag(1147, 1 /* Error */, "Import_declarations_in_a_namespace_cannot_reference_a_module_1147", "Import declarations in a namespace cannot reference a module."), - Cannot_use_imports_exports_or_module_augmentations_when_module_is_none: diag(1148, 1 /* Error */, "Cannot_use_imports_exports_or_module_augmentations_when_module_is_none_1148", "Cannot use imports, exports, or module augmentations when '--module' is 'none'."), - File_name_0_differs_from_already_included_file_name_1_only_in_casing: diag(1149, 1 /* Error */, "File_name_0_differs_from_already_included_file_name_1_only_in_casing_1149", "File name '{0}' differs from already included file name '{1}' only in casing."), - _0_declarations_must_be_initialized: diag(1155, 1 /* Error */, "_0_declarations_must_be_initialized_1155", "'{0}' declarations must be initialized."), - _0_declarations_can_only_be_declared_inside_a_block: diag(1156, 1 /* Error */, "_0_declarations_can_only_be_declared_inside_a_block_1156", "'{0}' declarations can only be declared inside a block."), - Unterminated_template_literal: diag(1160, 1 /* Error */, "Unterminated_template_literal_1160", "Unterminated template literal."), - Unterminated_regular_expression_literal: diag(1161, 1 /* Error */, "Unterminated_regular_expression_literal_1161", "Unterminated regular expression literal."), - An_object_member_cannot_be_declared_optional: diag(1162, 1 /* Error */, "An_object_member_cannot_be_declared_optional_1162", "An object member cannot be declared optional."), - A_yield_expression_is_only_allowed_in_a_generator_body: diag(1163, 1 /* Error */, "A_yield_expression_is_only_allowed_in_a_generator_body_1163", "A 'yield' expression is only allowed in a generator body."), - Computed_property_names_are_not_allowed_in_enums: diag(1164, 1 /* Error */, "Computed_property_names_are_not_allowed_in_enums_1164", "Computed property names are not allowed in enums."), - A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type: diag(1165, 1 /* Error */, "A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_t_1165", "A computed property name in an ambient context must refer to an expression whose type is a literal type or a 'unique symbol' type."), - A_computed_property_name_in_a_class_property_declaration_must_have_a_simple_literal_type_or_a_unique_symbol_type: diag(1166, 1 /* Error */, "A_computed_property_name_in_a_class_property_declaration_must_have_a_simple_literal_type_or_a_unique_1166", "A computed property name in a class property declaration must have a simple literal type or a 'unique symbol' type."), - A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type: diag(1168, 1 /* Error */, "A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_ty_1168", "A computed property name in a method overload must refer to an expression whose type is a literal type or a 'unique symbol' type."), - A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type: diag(1169, 1 /* Error */, "A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_1169", "A computed property name in an interface must refer to an expression whose type is a literal type or a 'unique symbol' type."), - A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type: diag(1170, 1 /* Error */, "A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type__1170", "A computed property name in a type literal must refer to an expression whose type is a literal type or a 'unique symbol' type."), - A_comma_expression_is_not_allowed_in_a_computed_property_name: diag(1171, 1 /* Error */, "A_comma_expression_is_not_allowed_in_a_computed_property_name_1171", "A comma expression is not allowed in a computed property name."), - extends_clause_already_seen: diag(1172, 1 /* Error */, "extends_clause_already_seen_1172", "'extends' clause already seen."), - extends_clause_must_precede_implements_clause: diag(1173, 1 /* Error */, "extends_clause_must_precede_implements_clause_1173", "'extends' clause must precede 'implements' clause."), - Classes_can_only_extend_a_single_class: diag(1174, 1 /* Error */, "Classes_can_only_extend_a_single_class_1174", "Classes can only extend a single class."), - implements_clause_already_seen: diag(1175, 1 /* Error */, "implements_clause_already_seen_1175", "'implements' clause already seen."), - Interface_declaration_cannot_have_implements_clause: diag(1176, 1 /* Error */, "Interface_declaration_cannot_have_implements_clause_1176", "Interface declaration cannot have 'implements' clause."), - Binary_digit_expected: diag(1177, 1 /* Error */, "Binary_digit_expected_1177", "Binary digit expected."), - Octal_digit_expected: diag(1178, 1 /* Error */, "Octal_digit_expected_1178", "Octal digit expected."), - Unexpected_token_expected: diag(1179, 1 /* Error */, "Unexpected_token_expected_1179", "Unexpected token. '{' expected."), - Property_destructuring_pattern_expected: diag(1180, 1 /* Error */, "Property_destructuring_pattern_expected_1180", "Property destructuring pattern expected."), - Array_element_destructuring_pattern_expected: diag(1181, 1 /* Error */, "Array_element_destructuring_pattern_expected_1181", "Array element destructuring pattern expected."), - A_destructuring_declaration_must_have_an_initializer: diag(1182, 1 /* Error */, "A_destructuring_declaration_must_have_an_initializer_1182", "A destructuring declaration must have an initializer."), - An_implementation_cannot_be_declared_in_ambient_contexts: diag(1183, 1 /* Error */, "An_implementation_cannot_be_declared_in_ambient_contexts_1183", "An implementation cannot be declared in ambient contexts."), - Modifiers_cannot_appear_here: diag(1184, 1 /* Error */, "Modifiers_cannot_appear_here_1184", "Modifiers cannot appear here."), - Merge_conflict_marker_encountered: diag(1185, 1 /* Error */, "Merge_conflict_marker_encountered_1185", "Merge conflict marker encountered."), - A_rest_element_cannot_have_an_initializer: diag(1186, 1 /* Error */, "A_rest_element_cannot_have_an_initializer_1186", "A rest element cannot have an initializer."), - A_parameter_property_may_not_be_declared_using_a_binding_pattern: diag(1187, 1 /* Error */, "A_parameter_property_may_not_be_declared_using_a_binding_pattern_1187", "A parameter property may not be declared using a binding pattern."), - Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement: diag(1188, 1 /* Error */, "Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement_1188", "Only a single variable declaration is allowed in a 'for...of' statement."), - The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer: diag(1189, 1 /* Error */, "The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer_1189", "The variable declaration of a 'for...in' statement cannot have an initializer."), - The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer: diag(1190, 1 /* Error */, "The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer_1190", "The variable declaration of a 'for...of' statement cannot have an initializer."), - An_import_declaration_cannot_have_modifiers: diag(1191, 1 /* Error */, "An_import_declaration_cannot_have_modifiers_1191", "An import declaration cannot have modifiers."), - Module_0_has_no_default_export: diag(1192, 1 /* Error */, "Module_0_has_no_default_export_1192", "Module '{0}' has no default export."), - An_export_declaration_cannot_have_modifiers: diag(1193, 1 /* Error */, "An_export_declaration_cannot_have_modifiers_1193", "An export declaration cannot have modifiers."), - Export_declarations_are_not_permitted_in_a_namespace: diag(1194, 1 /* Error */, "Export_declarations_are_not_permitted_in_a_namespace_1194", "Export declarations are not permitted in a namespace."), - export_Asterisk_does_not_re_export_a_default: diag(1195, 1 /* Error */, "export_Asterisk_does_not_re_export_a_default_1195", "'export *' does not re-export a default."), - Catch_clause_variable_type_annotation_must_be_any_or_unknown_if_specified: diag(1196, 1 /* Error */, "Catch_clause_variable_type_annotation_must_be_any_or_unknown_if_specified_1196", "Catch clause variable type annotation must be 'any' or 'unknown' if specified."), - Catch_clause_variable_cannot_have_an_initializer: diag(1197, 1 /* Error */, "Catch_clause_variable_cannot_have_an_initializer_1197", "Catch clause variable cannot have an initializer."), - An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive: diag(1198, 1 /* Error */, "An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive_1198", "An extended Unicode escape value must be between 0x0 and 0x10FFFF inclusive."), - Unterminated_Unicode_escape_sequence: diag(1199, 1 /* Error */, "Unterminated_Unicode_escape_sequence_1199", "Unterminated Unicode escape sequence."), - Line_terminator_not_permitted_before_arrow: diag(1200, 1 /* Error */, "Line_terminator_not_permitted_before_arrow_1200", "Line terminator not permitted before arrow."), - Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_import_d_from_mod_or_another_module_format_instead: diag(1202, 1 /* Error */, "Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_1202", "Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from \"mod\"', 'import {a} from \"mod\"', 'import d from \"mod\"', or another module format instead."), - Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or_another_module_format_instead: diag(1203, 1 /* Error */, "Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or__1203", "Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead."), - Re_exporting_a_type_when_0_is_enabled_requires_using_export_type: diag(1205, 1 /* Error */, "Re_exporting_a_type_when_0_is_enabled_requires_using_export_type_1205", "Re-exporting a type when '{0}' is enabled requires using 'export type'."), - Decorators_are_not_valid_here: diag(1206, 1 /* Error */, "Decorators_are_not_valid_here_1206", "Decorators are not valid here."), - Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name: diag(1207, 1 /* Error */, "Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name_1207", "Decorators cannot be applied to multiple get/set accessors of the same name."), - Invalid_optional_chain_from_new_expression_Did_you_mean_to_call_0: diag(1209, 1 /* Error */, "Invalid_optional_chain_from_new_expression_Did_you_mean_to_call_0_1209", "Invalid optional chain from new expression. Did you mean to call '{0}()'?"), - Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of_0_For_more_information_see_https_Colon_Slash_Slashdeveloper_mozilla_org_Slashen_US_Slashdocs_SlashWeb_SlashJavaScript_SlashReference_SlashStrict_mode: diag(1210, 1 /* Error */, "Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of__1210", "Code contained in a class is evaluated in JavaScript's strict mode which does not allow this use of '{0}'. For more information, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode."), - A_class_declaration_without_the_default_modifier_must_have_a_name: diag(1211, 1 /* Error */, "A_class_declaration_without_the_default_modifier_must_have_a_name_1211", "A class declaration without the 'default' modifier must have a name."), - Identifier_expected_0_is_a_reserved_word_in_strict_mode: diag(1212, 1 /* Error */, "Identifier_expected_0_is_a_reserved_word_in_strict_mode_1212", "Identifier expected. '{0}' is a reserved word in strict mode."), - Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_strict_mode: diag(1213, 1 /* Error */, "Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_stric_1213", "Identifier expected. '{0}' is a reserved word in strict mode. Class definitions are automatically in strict mode."), - Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode: diag(1214, 1 /* Error */, "Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode_1214", "Identifier expected. '{0}' is a reserved word in strict mode. Modules are automatically in strict mode."), - Invalid_use_of_0_Modules_are_automatically_in_strict_mode: diag(1215, 1 /* Error */, "Invalid_use_of_0_Modules_are_automatically_in_strict_mode_1215", "Invalid use of '{0}'. Modules are automatically in strict mode."), - Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules: diag(1216, 1 /* Error */, "Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules_1216", "Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules."), - Export_assignment_is_not_supported_when_module_flag_is_system: diag(1218, 1 /* Error */, "Export_assignment_is_not_supported_when_module_flag_is_system_1218", "Export assignment is not supported when '--module' flag is 'system'."), - Generators_are_not_allowed_in_an_ambient_context: diag(1221, 1 /* Error */, "Generators_are_not_allowed_in_an_ambient_context_1221", "Generators are not allowed in an ambient context."), - An_overload_signature_cannot_be_declared_as_a_generator: diag(1222, 1 /* Error */, "An_overload_signature_cannot_be_declared_as_a_generator_1222", "An overload signature cannot be declared as a generator."), - _0_tag_already_specified: diag(1223, 1 /* Error */, "_0_tag_already_specified_1223", "'{0}' tag already specified."), - Signature_0_must_be_a_type_predicate: diag(1224, 1 /* Error */, "Signature_0_must_be_a_type_predicate_1224", "Signature '{0}' must be a type predicate."), - Cannot_find_parameter_0: diag(1225, 1 /* Error */, "Cannot_find_parameter_0_1225", "Cannot find parameter '{0}'."), - Type_predicate_0_is_not_assignable_to_1: diag(1226, 1 /* Error */, "Type_predicate_0_is_not_assignable_to_1_1226", "Type predicate '{0}' is not assignable to '{1}'."), - Parameter_0_is_not_in_the_same_position_as_parameter_1: diag(1227, 1 /* Error */, "Parameter_0_is_not_in_the_same_position_as_parameter_1_1227", "Parameter '{0}' is not in the same position as parameter '{1}'."), - A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods: diag(1228, 1 /* Error */, "A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods_1228", "A type predicate is only allowed in return type position for functions and methods."), - A_type_predicate_cannot_reference_a_rest_parameter: diag(1229, 1 /* Error */, "A_type_predicate_cannot_reference_a_rest_parameter_1229", "A type predicate cannot reference a rest parameter."), - A_type_predicate_cannot_reference_element_0_in_a_binding_pattern: diag(1230, 1 /* Error */, "A_type_predicate_cannot_reference_element_0_in_a_binding_pattern_1230", "A type predicate cannot reference element '{0}' in a binding pattern."), - An_export_assignment_must_be_at_the_top_level_of_a_file_or_module_declaration: diag(1231, 1 /* Error */, "An_export_assignment_must_be_at_the_top_level_of_a_file_or_module_declaration_1231", "An export assignment must be at the top level of a file or module declaration."), - An_import_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module: diag(1232, 1 /* Error */, "An_import_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module_1232", "An import declaration can only be used at the top level of a namespace or module."), - An_export_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module: diag(1233, 1 /* Error */, "An_export_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module_1233", "An export declaration can only be used at the top level of a namespace or module."), - An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file: diag(1234, 1 /* Error */, "An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file_1234", "An ambient module declaration is only allowed at the top level in a file."), - A_namespace_declaration_is_only_allowed_at_the_top_level_of_a_namespace_or_module: diag(1235, 1 /* Error */, "A_namespace_declaration_is_only_allowed_at_the_top_level_of_a_namespace_or_module_1235", "A namespace declaration is only allowed at the top level of a namespace or module."), - The_return_type_of_a_property_decorator_function_must_be_either_void_or_any: diag(1236, 1 /* Error */, "The_return_type_of_a_property_decorator_function_must_be_either_void_or_any_1236", "The return type of a property decorator function must be either 'void' or 'any'."), - The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any: diag(1237, 1 /* Error */, "The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any_1237", "The return type of a parameter decorator function must be either 'void' or 'any'."), - Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression: diag(1238, 1 /* Error */, "Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression_1238", "Unable to resolve signature of class decorator when called as an expression."), - Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression: diag(1239, 1 /* Error */, "Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression_1239", "Unable to resolve signature of parameter decorator when called as an expression."), - Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression: diag(1240, 1 /* Error */, "Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression_1240", "Unable to resolve signature of property decorator when called as an expression."), - Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression: diag(1241, 1 /* Error */, "Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression_1241", "Unable to resolve signature of method decorator when called as an expression."), - abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration: diag(1242, 1 /* Error */, "abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration_1242", "'abstract' modifier can only appear on a class, method, or property declaration."), - _0_modifier_cannot_be_used_with_1_modifier: diag(1243, 1 /* Error */, "_0_modifier_cannot_be_used_with_1_modifier_1243", "'{0}' modifier cannot be used with '{1}' modifier."), - Abstract_methods_can_only_appear_within_an_abstract_class: diag(1244, 1 /* Error */, "Abstract_methods_can_only_appear_within_an_abstract_class_1244", "Abstract methods can only appear within an abstract class."), - Method_0_cannot_have_an_implementation_because_it_is_marked_abstract: diag(1245, 1 /* Error */, "Method_0_cannot_have_an_implementation_because_it_is_marked_abstract_1245", "Method '{0}' cannot have an implementation because it is marked abstract."), - An_interface_property_cannot_have_an_initializer: diag(1246, 1 /* Error */, "An_interface_property_cannot_have_an_initializer_1246", "An interface property cannot have an initializer."), - A_type_literal_property_cannot_have_an_initializer: diag(1247, 1 /* Error */, "A_type_literal_property_cannot_have_an_initializer_1247", "A type literal property cannot have an initializer."), - A_class_member_cannot_have_the_0_keyword: diag(1248, 1 /* Error */, "A_class_member_cannot_have_the_0_keyword_1248", "A class member cannot have the '{0}' keyword."), - A_decorator_can_only_decorate_a_method_implementation_not_an_overload: diag(1249, 1 /* Error */, "A_decorator_can_only_decorate_a_method_implementation_not_an_overload_1249", "A decorator can only decorate a method implementation, not an overload."), - Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5: diag(1250, 1 /* Error */, "Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_1250", "Function declarations are not allowed inside blocks in strict mode when targeting 'ES3' or 'ES5'."), - Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Class_definitions_are_automatically_in_strict_mode: diag(1251, 1 /* Error */, "Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Class_d_1251", "Function declarations are not allowed inside blocks in strict mode when targeting 'ES3' or 'ES5'. Class definitions are automatically in strict mode."), - Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Modules_are_automatically_in_strict_mode: diag(1252, 1 /* Error */, "Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Modules_1252", "Function declarations are not allowed inside blocks in strict mode when targeting 'ES3' or 'ES5'. Modules are automatically in strict mode."), - Abstract_properties_can_only_appear_within_an_abstract_class: diag(1253, 1 /* Error */, "Abstract_properties_can_only_appear_within_an_abstract_class_1253", "Abstract properties can only appear within an abstract class."), - A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_reference: diag(1254, 1 /* Error */, "A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_refere_1254", "A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference."), - A_definite_assignment_assertion_is_not_permitted_in_this_context: diag(1255, 1 /* Error */, "A_definite_assignment_assertion_is_not_permitted_in_this_context_1255", "A definite assignment assertion '!' is not permitted in this context."), - A_required_element_cannot_follow_an_optional_element: diag(1257, 1 /* Error */, "A_required_element_cannot_follow_an_optional_element_1257", "A required element cannot follow an optional element."), - A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration: diag(1258, 1 /* Error */, "A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration_1258", "A default export must be at the top level of a file or module declaration."), - Module_0_can_only_be_default_imported_using_the_1_flag: diag(1259, 1 /* Error */, "Module_0_can_only_be_default_imported_using_the_1_flag_1259", "Module '{0}' can only be default-imported using the '{1}' flag"), - Keywords_cannot_contain_escape_characters: diag(1260, 1 /* Error */, "Keywords_cannot_contain_escape_characters_1260", "Keywords cannot contain escape characters."), - Already_included_file_name_0_differs_from_file_name_1_only_in_casing: diag(1261, 1 /* Error */, "Already_included_file_name_0_differs_from_file_name_1_only_in_casing_1261", "Already included file name '{0}' differs from file name '{1}' only in casing."), - Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module: diag(1262, 1 /* Error */, "Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module_1262", "Identifier expected. '{0}' is a reserved word at the top-level of a module."), - Declarations_with_initializers_cannot_also_have_definite_assignment_assertions: diag(1263, 1 /* Error */, "Declarations_with_initializers_cannot_also_have_definite_assignment_assertions_1263", "Declarations with initializers cannot also have definite assignment assertions."), - Declarations_with_definite_assignment_assertions_must_also_have_type_annotations: diag(1264, 1 /* Error */, "Declarations_with_definite_assignment_assertions_must_also_have_type_annotations_1264", "Declarations with definite assignment assertions must also have type annotations."), - A_rest_element_cannot_follow_another_rest_element: diag(1265, 1 /* Error */, "A_rest_element_cannot_follow_another_rest_element_1265", "A rest element cannot follow another rest element."), - An_optional_element_cannot_follow_a_rest_element: diag(1266, 1 /* Error */, "An_optional_element_cannot_follow_a_rest_element_1266", "An optional element cannot follow a rest element."), - Property_0_cannot_have_an_initializer_because_it_is_marked_abstract: diag(1267, 1 /* Error */, "Property_0_cannot_have_an_initializer_because_it_is_marked_abstract_1267", "Property '{0}' cannot have an initializer because it is marked abstract."), - An_index_signature_parameter_type_must_be_string_number_symbol_or_a_template_literal_type: diag(1268, 1 /* Error */, "An_index_signature_parameter_type_must_be_string_number_symbol_or_a_template_literal_type_1268", "An index signature parameter type must be 'string', 'number', 'symbol', or a template literal type."), - Cannot_use_export_import_on_a_type_or_type_only_namespace_when_0_is_enabled: diag(1269, 1 /* Error */, "Cannot_use_export_import_on_a_type_or_type_only_namespace_when_0_is_enabled_1269", "Cannot use 'export import' on a type or type-only namespace when '{0}' is enabled."), - Decorator_function_return_type_0_is_not_assignable_to_type_1: diag(1270, 1 /* Error */, "Decorator_function_return_type_0_is_not_assignable_to_type_1_1270", "Decorator function return type '{0}' is not assignable to type '{1}'."), - Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any: diag(1271, 1 /* Error */, "Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any_1271", "Decorator function return type is '{0}' but is expected to be 'void' or 'any'."), - A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_when_isolatedModules_and_emitDecoratorMetadata_are_enabled: diag(1272, 1 /* Error */, "A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_w_1272", "A type referenced in a decorated signature must be imported with 'import type' or a namespace import when 'isolatedModules' and 'emitDecoratorMetadata' are enabled."), - _0_modifier_cannot_appear_on_a_type_parameter: diag(1273, 1 /* Error */, "_0_modifier_cannot_appear_on_a_type_parameter_1273", "'{0}' modifier cannot appear on a type parameter"), - _0_modifier_can_only_appear_on_a_type_parameter_of_a_class_interface_or_type_alias: diag(1274, 1 /* Error */, "_0_modifier_can_only_appear_on_a_type_parameter_of_a_class_interface_or_type_alias_1274", "'{0}' modifier can only appear on a type parameter of a class, interface or type alias"), - accessor_modifier_can_only_appear_on_a_property_declaration: diag(1275, 1 /* Error */, "accessor_modifier_can_only_appear_on_a_property_declaration_1275", "'accessor' modifier can only appear on a property declaration."), - An_accessor_property_cannot_be_declared_optional: diag(1276, 1 /* Error */, "An_accessor_property_cannot_be_declared_optional_1276", "An 'accessor' property cannot be declared optional."), - _0_modifier_can_only_appear_on_a_type_parameter_of_a_function_method_or_class: diag(1277, 1 /* Error */, "_0_modifier_can_only_appear_on_a_type_parameter_of_a_function_method_or_class_1277", "'{0}' modifier can only appear on a type parameter of a function, method or class"), - The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_0: diag(1278, 1 /* Error */, "The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_0_1278", "The runtime will invoke the decorator with {1} arguments, but the decorator expects {0}."), - The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_at_least_0: diag(1279, 1 /* Error */, "The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_at_least_0_1279", "The runtime will invoke the decorator with {1} arguments, but the decorator expects at least {0}."), - Namespaces_are_not_allowed_in_global_script_files_when_0_is_enabled_If_this_file_is_not_intended_to_be_a_global_script_set_moduleDetection_to_force_or_add_an_empty_export_statement: diag(1280, 1 /* Error */, "Namespaces_are_not_allowed_in_global_script_files_when_0_is_enabled_If_this_file_is_not_intended_to__1280", "Namespaces are not allowed in global script files when '{0}' is enabled. If this file is not intended to be a global script, set 'moduleDetection' to 'force' or add an empty 'export {}' statement."), - Cannot_access_0_from_another_file_without_qualification_when_1_is_enabled_Use_2_instead: diag(1281, 1 /* Error */, "Cannot_access_0_from_another_file_without_qualification_when_1_is_enabled_Use_2_instead_1281", "Cannot access '{0}' from another file without qualification when '{1}' is enabled. Use '{2}' instead."), - An_export_declaration_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_type: diag(1282, 1 /* Error */, "An_export_declaration_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers__1282", "An 'export =' declaration must reference a value when 'verbatimModuleSyntax' is enabled, but '{0}' only refers to a type."), - An_export_declaration_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_a_type_only_declaration: diag(1283, 1 /* Error */, "An_export_declaration_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolve_1283", "An 'export =' declaration must reference a real value when 'verbatimModuleSyntax' is enabled, but '{0}' resolves to a type-only declaration."), - An_export_default_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_type: diag(1284, 1 /* Error */, "An_export_default_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_1284", "An 'export default' must reference a value when 'verbatimModuleSyntax' is enabled, but '{0}' only refers to a type."), - An_export_default_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_a_type_only_declaration: diag(1285, 1 /* Error */, "An_export_default_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_1285", "An 'export default' must reference a real value when 'verbatimModuleSyntax' is enabled, but '{0}' resolves to a type-only declaration."), - ESM_syntax_is_not_allowed_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled: diag(1286, 1 /* Error */, "ESM_syntax_is_not_allowed_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled_1286", "ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled."), - A_top_level_export_modifier_cannot_be_used_on_value_declarations_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled: diag(1287, 1 /* Error */, "A_top_level_export_modifier_cannot_be_used_on_value_declarations_in_a_CommonJS_module_when_verbatimM_1287", "A top-level 'export' modifier cannot be used on value declarations in a CommonJS module when 'verbatimModuleSyntax' is enabled."), - An_import_alias_cannot_resolve_to_a_type_or_type_only_declaration_when_verbatimModuleSyntax_is_enabled: diag(1288, 1 /* Error */, "An_import_alias_cannot_resolve_to_a_type_or_type_only_declaration_when_verbatimModuleSyntax_is_enabl_1288", "An import alias cannot resolve to a type or type-only declaration when 'verbatimModuleSyntax' is enabled."), - with_statements_are_not_allowed_in_an_async_function_block: diag(1300, 1 /* Error */, "with_statements_are_not_allowed_in_an_async_function_block_1300", "'with' statements are not allowed in an async function block."), - await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules: diag(1308, 1 /* Error */, "await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules_1308", "'await' expressions are only allowed within async functions and at the top levels of modules."), - The_current_file_is_a_CommonJS_module_and_cannot_use_await_at_the_top_level: diag(1309, 1 /* Error */, "The_current_file_is_a_CommonJS_module_and_cannot_use_await_at_the_top_level_1309", "The current file is a CommonJS module and cannot use 'await' at the top level."), - Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_part_of_a_destructuring_pattern: diag(1312, 1 /* Error */, "Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_1312", "Did you mean to use a ':'? An '=' can only follow a property name when the containing object literal is part of a destructuring pattern."), - The_body_of_an_if_statement_cannot_be_the_empty_statement: diag(1313, 1 /* Error */, "The_body_of_an_if_statement_cannot_be_the_empty_statement_1313", "The body of an 'if' statement cannot be the empty statement."), - Global_module_exports_may_only_appear_in_module_files: diag(1314, 1 /* Error */, "Global_module_exports_may_only_appear_in_module_files_1314", "Global module exports may only appear in module files."), - Global_module_exports_may_only_appear_in_declaration_files: diag(1315, 1 /* Error */, "Global_module_exports_may_only_appear_in_declaration_files_1315", "Global module exports may only appear in declaration files."), - Global_module_exports_may_only_appear_at_top_level: diag(1316, 1 /* Error */, "Global_module_exports_may_only_appear_at_top_level_1316", "Global module exports may only appear at top level."), - A_parameter_property_cannot_be_declared_using_a_rest_parameter: diag(1317, 1 /* Error */, "A_parameter_property_cannot_be_declared_using_a_rest_parameter_1317", "A parameter property cannot be declared using a rest parameter."), - An_abstract_accessor_cannot_have_an_implementation: diag(1318, 1 /* Error */, "An_abstract_accessor_cannot_have_an_implementation_1318", "An abstract accessor cannot have an implementation."), - A_default_export_can_only_be_used_in_an_ECMAScript_style_module: diag(1319, 1 /* Error */, "A_default_export_can_only_be_used_in_an_ECMAScript_style_module_1319", "A default export can only be used in an ECMAScript-style module."), - Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member: diag(1320, 1 /* Error */, "Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member_1320", "Type of 'await' operand must either be a valid promise or must not contain a callable 'then' member."), - Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member: diag(1321, 1 /* Error */, "Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_cal_1321", "Type of 'yield' operand in an async generator must either be a valid promise or must not contain a callable 'then' member."), - Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member: diag(1322, 1 /* Error */, "Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_con_1322", "Type of iterated elements of a 'yield*' operand must either be a valid promise or must not contain a callable 'then' member."), - Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_es2022_esnext_commonjs_amd_system_umd_node16_or_nodenext: diag(1323, 1 /* Error */, "Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_es2022_esnext_commonjs_amd__1323", "Dynamic imports are only supported when the '--module' flag is set to 'es2020', 'es2022', 'esnext', 'commonjs', 'amd', 'system', 'umd', 'node16', or 'nodenext'."), - Dynamic_imports_only_support_a_second_argument_when_the_module_option_is_set_to_esnext_node16_or_nodenext: diag(1324, 1 /* Error */, "Dynamic_imports_only_support_a_second_argument_when_the_module_option_is_set_to_esnext_node16_or_nod_1324", "Dynamic imports only support a second argument when the '--module' option is set to 'esnext', 'node16', or 'nodenext'."), - Argument_of_dynamic_import_cannot_be_spread_element: diag(1325, 1 /* Error */, "Argument_of_dynamic_import_cannot_be_spread_element_1325", "Argument of dynamic import cannot be spread element."), - This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot_have_type_arguments: diag(1326, 1 /* Error */, "This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot__1326", "This use of 'import' is invalid. 'import()' calls can be written, but they must have parentheses and cannot have type arguments."), - String_literal_with_double_quotes_expected: diag(1327, 1 /* Error */, "String_literal_with_double_quotes_expected_1327", "String literal with double quotes expected."), - Property_value_can_only_be_string_literal_numeric_literal_true_false_null_object_literal_or_array_literal: diag(1328, 1 /* Error */, "Property_value_can_only_be_string_literal_numeric_literal_true_false_null_object_literal_or_array_li_1328", "Property value can only be string literal, numeric literal, 'true', 'false', 'null', object literal or array literal."), - _0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write_0: diag(1329, 1 /* Error */, "_0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write__1329", "'{0}' accepts too few arguments to be used as a decorator here. Did you mean to call it first and write '@{0}()'?"), - A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly: diag(1330, 1 /* Error */, "A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly_1330", "A property of an interface or type literal whose type is a 'unique symbol' type must be 'readonly'."), - A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly: diag(1331, 1 /* Error */, "A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly_1331", "A property of a class whose type is a 'unique symbol' type must be both 'static' and 'readonly'."), - A_variable_whose_type_is_a_unique_symbol_type_must_be_const: diag(1332, 1 /* Error */, "A_variable_whose_type_is_a_unique_symbol_type_must_be_const_1332", "A variable whose type is a 'unique symbol' type must be 'const'."), - unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name: diag(1333, 1 /* Error */, "unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name_1333", "'unique symbol' types may not be used on a variable declaration with a binding name."), - unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement: diag(1334, 1 /* Error */, "unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement_1334", "'unique symbol' types are only allowed on variables in a variable statement."), - unique_symbol_types_are_not_allowed_here: diag(1335, 1 /* Error */, "unique_symbol_types_are_not_allowed_here_1335", "'unique symbol' types are not allowed here."), - An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_object_type_instead: diag(1337, 1 /* Error */, "An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_o_1337", "An index signature parameter type cannot be a literal type or generic type. Consider using a mapped object type instead."), - infer_declarations_are_only_permitted_in_the_extends_clause_of_a_conditional_type: diag(1338, 1 /* Error */, "infer_declarations_are_only_permitted_in_the_extends_clause_of_a_conditional_type_1338", "'infer' declarations are only permitted in the 'extends' clause of a conditional type."), - Module_0_does_not_refer_to_a_value_but_is_used_as_a_value_here: diag(1339, 1 /* Error */, "Module_0_does_not_refer_to_a_value_but_is_used_as_a_value_here_1339", "Module '{0}' does not refer to a value, but is used as a value here."), - Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0: diag(1340, 1 /* Error */, "Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0_1340", "Module '{0}' does not refer to a type, but is used as a type here. Did you mean 'typeof import('{0}')'?"), - Class_constructor_may_not_be_an_accessor: diag(1341, 1 /* Error */, "Class_constructor_may_not_be_an_accessor_1341", "Class constructor may not be an accessor."), - The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_es2020_es2022_esnext_system_node16_or_nodenext: diag(1343, 1 /* Error */, "The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_es2020_es2022_esnext_system__1343", "The 'import.meta' meta-property is only allowed when the '--module' option is 'es2020', 'es2022', 'esnext', 'system', 'node16', or 'nodenext'."), - A_label_is_not_allowed_here: diag(1344, 1 /* Error */, "A_label_is_not_allowed_here_1344", "'A label is not allowed here."), - An_expression_of_type_void_cannot_be_tested_for_truthiness: diag(1345, 1 /* Error */, "An_expression_of_type_void_cannot_be_tested_for_truthiness_1345", "An expression of type 'void' cannot be tested for truthiness."), - This_parameter_is_not_allowed_with_use_strict_directive: diag(1346, 1 /* Error */, "This_parameter_is_not_allowed_with_use_strict_directive_1346", "This parameter is not allowed with 'use strict' directive."), - use_strict_directive_cannot_be_used_with_non_simple_parameter_list: diag(1347, 1 /* Error */, "use_strict_directive_cannot_be_used_with_non_simple_parameter_list_1347", "'use strict' directive cannot be used with non-simple parameter list."), - Non_simple_parameter_declared_here: diag(1348, 1 /* Error */, "Non_simple_parameter_declared_here_1348", "Non-simple parameter declared here."), - use_strict_directive_used_here: diag(1349, 1 /* Error */, "use_strict_directive_used_here_1349", "'use strict' directive used here."), - Print_the_final_configuration_instead_of_building: diag(1350, 3 /* Message */, "Print_the_final_configuration_instead_of_building_1350", "Print the final configuration instead of building."), - An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal: diag(1351, 1 /* Error */, "An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal_1351", "An identifier or keyword cannot immediately follow a numeric literal."), - A_bigint_literal_cannot_use_exponential_notation: diag(1352, 1 /* Error */, "A_bigint_literal_cannot_use_exponential_notation_1352", "A bigint literal cannot use exponential notation."), - A_bigint_literal_must_be_an_integer: diag(1353, 1 /* Error */, "A_bigint_literal_must_be_an_integer_1353", "A bigint literal must be an integer."), - readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types: diag(1354, 1 /* Error */, "readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types_1354", "'readonly' type modifier is only permitted on array and tuple literal types."), - A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array_or_object_literals: diag(1355, 1 /* Error */, "A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array__1355", "A 'const' assertions can only be applied to references to enum members, or string, number, boolean, array, or object literals."), - Did_you_mean_to_mark_this_function_as_async: diag(1356, 1 /* Error */, "Did_you_mean_to_mark_this_function_as_async_1356", "Did you mean to mark this function as 'async'?"), - An_enum_member_name_must_be_followed_by_a_or: diag(1357, 1 /* Error */, "An_enum_member_name_must_be_followed_by_a_or_1357", "An enum member name must be followed by a ',', '=', or '}'."), - Tagged_template_expressions_are_not_permitted_in_an_optional_chain: diag(1358, 1 /* Error */, "Tagged_template_expressions_are_not_permitted_in_an_optional_chain_1358", "Tagged template expressions are not permitted in an optional chain."), - Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here: diag(1359, 1 /* Error */, "Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here_1359", "Identifier expected. '{0}' is a reserved word that cannot be used here."), - Type_0_does_not_satisfy_the_expected_type_1: diag(1360, 1 /* Error */, "Type_0_does_not_satisfy_the_expected_type_1_1360", "Type '{0}' does not satisfy the expected type '{1}'."), - _0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type: diag(1361, 1 /* Error */, "_0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type_1361", "'{0}' cannot be used as a value because it was imported using 'import type'."), - _0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type: diag(1362, 1 /* Error */, "_0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type_1362", "'{0}' cannot be used as a value because it was exported using 'export type'."), - A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both: diag(1363, 1 /* Error */, "A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both_1363", "A type-only import can specify a default import or named bindings, but not both."), - Convert_to_type_only_export: diag(1364, 3 /* Message */, "Convert_to_type_only_export_1364", "Convert to type-only export"), - Convert_all_re_exported_types_to_type_only_exports: diag(1365, 3 /* Message */, "Convert_all_re_exported_types_to_type_only_exports_1365", "Convert all re-exported types to type-only exports"), - Split_into_two_separate_import_declarations: diag(1366, 3 /* Message */, "Split_into_two_separate_import_declarations_1366", "Split into two separate import declarations"), - Split_all_invalid_type_only_imports: diag(1367, 3 /* Message */, "Split_all_invalid_type_only_imports_1367", "Split all invalid type-only imports"), - Class_constructor_may_not_be_a_generator: diag(1368, 1 /* Error */, "Class_constructor_may_not_be_a_generator_1368", "Class constructor may not be a generator."), - Did_you_mean_0: diag(1369, 3 /* Message */, "Did_you_mean_0_1369", "Did you mean '{0}'?"), - This_import_is_never_used_as_a_value_and_must_use_import_type_because_importsNotUsedAsValues_is_set_to_error: diag(1371, 1 /* Error */, "This_import_is_never_used_as_a_value_and_must_use_import_type_because_importsNotUsedAsValues_is_set__1371", "This import is never used as a value and must use 'import type' because 'importsNotUsedAsValues' is set to 'error'."), - await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module: diag(1375, 1 /* Error */, "await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_fi_1375", "'await' expressions are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module."), - _0_was_imported_here: diag(1376, 3 /* Message */, "_0_was_imported_here_1376", "'{0}' was imported here."), - _0_was_exported_here: diag(1377, 3 /* Message */, "_0_was_exported_here_1377", "'{0}' was exported here."), - Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_or_nodenext_and_the_target_option_is_set_to_es2017_or_higher: diag(1378, 1 /* Error */, "Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_n_1378", "Top-level 'await' expressions are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', or 'nodenext', and the 'target' option is set to 'es2017' or higher."), - An_import_alias_cannot_reference_a_declaration_that_was_exported_using_export_type: diag(1379, 1 /* Error */, "An_import_alias_cannot_reference_a_declaration_that_was_exported_using_export_type_1379", "An import alias cannot reference a declaration that was exported using 'export type'."), - An_import_alias_cannot_reference_a_declaration_that_was_imported_using_import_type: diag(1380, 1 /* Error */, "An_import_alias_cannot_reference_a_declaration_that_was_imported_using_import_type_1380", "An import alias cannot reference a declaration that was imported using 'import type'."), - Unexpected_token_Did_you_mean_or_rbrace: diag(1381, 1 /* Error */, "Unexpected_token_Did_you_mean_or_rbrace_1381", "Unexpected token. Did you mean `{'}'}` or `}`?"), - Unexpected_token_Did_you_mean_or_gt: diag(1382, 1 /* Error */, "Unexpected_token_Did_you_mean_or_gt_1382", "Unexpected token. Did you mean `{'>'}` or `>`?"), - Function_type_notation_must_be_parenthesized_when_used_in_a_union_type: diag(1385, 1 /* Error */, "Function_type_notation_must_be_parenthesized_when_used_in_a_union_type_1385", "Function type notation must be parenthesized when used in a union type."), - Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type: diag(1386, 1 /* Error */, "Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type_1386", "Constructor type notation must be parenthesized when used in a union type."), - Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type: diag(1387, 1 /* Error */, "Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type_1387", "Function type notation must be parenthesized when used in an intersection type."), - Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type: diag(1388, 1 /* Error */, "Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type_1388", "Constructor type notation must be parenthesized when used in an intersection type."), - _0_is_not_allowed_as_a_variable_declaration_name: diag(1389, 1 /* Error */, "_0_is_not_allowed_as_a_variable_declaration_name_1389", "'{0}' is not allowed as a variable declaration name."), - _0_is_not_allowed_as_a_parameter_name: diag(1390, 1 /* Error */, "_0_is_not_allowed_as_a_parameter_name_1390", "'{0}' is not allowed as a parameter name."), - An_import_alias_cannot_use_import_type: diag(1392, 1 /* Error */, "An_import_alias_cannot_use_import_type_1392", "An import alias cannot use 'import type'"), - Imported_via_0_from_file_1: diag(1393, 3 /* Message */, "Imported_via_0_from_file_1_1393", "Imported via {0} from file '{1}'"), - Imported_via_0_from_file_1_with_packageId_2: diag(1394, 3 /* Message */, "Imported_via_0_from_file_1_with_packageId_2_1394", "Imported via {0} from file '{1}' with packageId '{2}'"), - Imported_via_0_from_file_1_to_import_importHelpers_as_specified_in_compilerOptions: diag(1395, 3 /* Message */, "Imported_via_0_from_file_1_to_import_importHelpers_as_specified_in_compilerOptions_1395", "Imported via {0} from file '{1}' to import 'importHelpers' as specified in compilerOptions"), - Imported_via_0_from_file_1_with_packageId_2_to_import_importHelpers_as_specified_in_compilerOptions: diag(1396, 3 /* Message */, "Imported_via_0_from_file_1_with_packageId_2_to_import_importHelpers_as_specified_in_compilerOptions_1396", "Imported via {0} from file '{1}' with packageId '{2}' to import 'importHelpers' as specified in compilerOptions"), - Imported_via_0_from_file_1_to_import_jsx_and_jsxs_factory_functions: diag(1397, 3 /* Message */, "Imported_via_0_from_file_1_to_import_jsx_and_jsxs_factory_functions_1397", "Imported via {0} from file '{1}' to import 'jsx' and 'jsxs' factory functions"), - Imported_via_0_from_file_1_with_packageId_2_to_import_jsx_and_jsxs_factory_functions: diag(1398, 3 /* Message */, "Imported_via_0_from_file_1_with_packageId_2_to_import_jsx_and_jsxs_factory_functions_1398", "Imported via {0} from file '{1}' with packageId '{2}' to import 'jsx' and 'jsxs' factory functions"), - File_is_included_via_import_here: diag(1399, 3 /* Message */, "File_is_included_via_import_here_1399", "File is included via import here."), - Referenced_via_0_from_file_1: diag(1400, 3 /* Message */, "Referenced_via_0_from_file_1_1400", "Referenced via '{0}' from file '{1}'"), - File_is_included_via_reference_here: diag(1401, 3 /* Message */, "File_is_included_via_reference_here_1401", "File is included via reference here."), - Type_library_referenced_via_0_from_file_1: diag(1402, 3 /* Message */, "Type_library_referenced_via_0_from_file_1_1402", "Type library referenced via '{0}' from file '{1}'"), - Type_library_referenced_via_0_from_file_1_with_packageId_2: diag(1403, 3 /* Message */, "Type_library_referenced_via_0_from_file_1_with_packageId_2_1403", "Type library referenced via '{0}' from file '{1}' with packageId '{2}'"), - File_is_included_via_type_library_reference_here: diag(1404, 3 /* Message */, "File_is_included_via_type_library_reference_here_1404", "File is included via type library reference here."), - Library_referenced_via_0_from_file_1: diag(1405, 3 /* Message */, "Library_referenced_via_0_from_file_1_1405", "Library referenced via '{0}' from file '{1}'"), - File_is_included_via_library_reference_here: diag(1406, 3 /* Message */, "File_is_included_via_library_reference_here_1406", "File is included via library reference here."), - Matched_by_include_pattern_0_in_1: diag(1407, 3 /* Message */, "Matched_by_include_pattern_0_in_1_1407", "Matched by include pattern '{0}' in '{1}'"), - File_is_matched_by_include_pattern_specified_here: diag(1408, 3 /* Message */, "File_is_matched_by_include_pattern_specified_here_1408", "File is matched by include pattern specified here."), - Part_of_files_list_in_tsconfig_json: diag(1409, 3 /* Message */, "Part_of_files_list_in_tsconfig_json_1409", "Part of 'files' list in tsconfig.json"), - File_is_matched_by_files_list_specified_here: diag(1410, 3 /* Message */, "File_is_matched_by_files_list_specified_here_1410", "File is matched by 'files' list specified here."), - Output_from_referenced_project_0_included_because_1_specified: diag(1411, 3 /* Message */, "Output_from_referenced_project_0_included_because_1_specified_1411", "Output from referenced project '{0}' included because '{1}' specified"), - Output_from_referenced_project_0_included_because_module_is_specified_as_none: diag(1412, 3 /* Message */, "Output_from_referenced_project_0_included_because_module_is_specified_as_none_1412", "Output from referenced project '{0}' included because '--module' is specified as 'none'"), - File_is_output_from_referenced_project_specified_here: diag(1413, 3 /* Message */, "File_is_output_from_referenced_project_specified_here_1413", "File is output from referenced project specified here."), - Source_from_referenced_project_0_included_because_1_specified: diag(1414, 3 /* Message */, "Source_from_referenced_project_0_included_because_1_specified_1414", "Source from referenced project '{0}' included because '{1}' specified"), - Source_from_referenced_project_0_included_because_module_is_specified_as_none: diag(1415, 3 /* Message */, "Source_from_referenced_project_0_included_because_module_is_specified_as_none_1415", "Source from referenced project '{0}' included because '--module' is specified as 'none'"), - File_is_source_from_referenced_project_specified_here: diag(1416, 3 /* Message */, "File_is_source_from_referenced_project_specified_here_1416", "File is source from referenced project specified here."), - Entry_point_of_type_library_0_specified_in_compilerOptions: diag(1417, 3 /* Message */, "Entry_point_of_type_library_0_specified_in_compilerOptions_1417", "Entry point of type library '{0}' specified in compilerOptions"), - Entry_point_of_type_library_0_specified_in_compilerOptions_with_packageId_1: diag(1418, 3 /* Message */, "Entry_point_of_type_library_0_specified_in_compilerOptions_with_packageId_1_1418", "Entry point of type library '{0}' specified in compilerOptions with packageId '{1}'"), - File_is_entry_point_of_type_library_specified_here: diag(1419, 3 /* Message */, "File_is_entry_point_of_type_library_specified_here_1419", "File is entry point of type library specified here."), - Entry_point_for_implicit_type_library_0: diag(1420, 3 /* Message */, "Entry_point_for_implicit_type_library_0_1420", "Entry point for implicit type library '{0}'"), - Entry_point_for_implicit_type_library_0_with_packageId_1: diag(1421, 3 /* Message */, "Entry_point_for_implicit_type_library_0_with_packageId_1_1421", "Entry point for implicit type library '{0}' with packageId '{1}'"), - Library_0_specified_in_compilerOptions: diag(1422, 3 /* Message */, "Library_0_specified_in_compilerOptions_1422", "Library '{0}' specified in compilerOptions"), - File_is_library_specified_here: diag(1423, 3 /* Message */, "File_is_library_specified_here_1423", "File is library specified here."), - Default_library: diag(1424, 3 /* Message */, "Default_library_1424", "Default library"), - Default_library_for_target_0: diag(1425, 3 /* Message */, "Default_library_for_target_0_1425", "Default library for target '{0}'"), - File_is_default_library_for_target_specified_here: diag(1426, 3 /* Message */, "File_is_default_library_for_target_specified_here_1426", "File is default library for target specified here."), - Root_file_specified_for_compilation: diag(1427, 3 /* Message */, "Root_file_specified_for_compilation_1427", "Root file specified for compilation"), - File_is_output_of_project_reference_source_0: diag(1428, 3 /* Message */, "File_is_output_of_project_reference_source_0_1428", "File is output of project reference source '{0}'"), - File_redirects_to_file_0: diag(1429, 3 /* Message */, "File_redirects_to_file_0_1429", "File redirects to file '{0}'"), - The_file_is_in_the_program_because_Colon: diag(1430, 3 /* Message */, "The_file_is_in_the_program_because_Colon_1430", "The file is in the program because:"), - for_await_loops_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module: diag(1431, 1 /* Error */, "for_await_loops_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_1431", "'for await' loops are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module."), - Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_or_nodenext_and_the_target_option_is_set_to_es2017_or_higher: diag(1432, 1 /* Error */, "Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_nod_1432", "Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', or 'nodenext', and the 'target' option is set to 'es2017' or higher."), - Neither_decorators_nor_modifiers_may_be_applied_to_this_parameters: diag(1433, 1 /* Error */, "Neither_decorators_nor_modifiers_may_be_applied_to_this_parameters_1433", "Neither decorators nor modifiers may be applied to 'this' parameters."), - Unexpected_keyword_or_identifier: diag(1434, 1 /* Error */, "Unexpected_keyword_or_identifier_1434", "Unexpected keyword or identifier."), - Unknown_keyword_or_identifier_Did_you_mean_0: diag(1435, 1 /* Error */, "Unknown_keyword_or_identifier_Did_you_mean_0_1435", "Unknown keyword or identifier. Did you mean '{0}'?"), - Decorators_must_precede_the_name_and_all_keywords_of_property_declarations: diag(1436, 1 /* Error */, "Decorators_must_precede_the_name_and_all_keywords_of_property_declarations_1436", "Decorators must precede the name and all keywords of property declarations."), - Namespace_must_be_given_a_name: diag(1437, 1 /* Error */, "Namespace_must_be_given_a_name_1437", "Namespace must be given a name."), - Interface_must_be_given_a_name: diag(1438, 1 /* Error */, "Interface_must_be_given_a_name_1438", "Interface must be given a name."), - Type_alias_must_be_given_a_name: diag(1439, 1 /* Error */, "Type_alias_must_be_given_a_name_1439", "Type alias must be given a name."), - Variable_declaration_not_allowed_at_this_location: diag(1440, 1 /* Error */, "Variable_declaration_not_allowed_at_this_location_1440", "Variable declaration not allowed at this location."), - Cannot_start_a_function_call_in_a_type_annotation: diag(1441, 1 /* Error */, "Cannot_start_a_function_call_in_a_type_annotation_1441", "Cannot start a function call in a type annotation."), - Expected_for_property_initializer: diag(1442, 1 /* Error */, "Expected_for_property_initializer_1442", "Expected '=' for property initializer."), - Module_declaration_names_may_only_use_or_quoted_strings: diag(1443, 1 /* Error */, "Module_declaration_names_may_only_use_or_quoted_strings_1443", "Module declaration names may only use ' or \" quoted strings."), - _0_is_a_type_and_must_be_imported_using_a_type_only_import_when_preserveValueImports_and_isolatedModules_are_both_enabled: diag(1444, 1 /* Error */, "_0_is_a_type_and_must_be_imported_using_a_type_only_import_when_preserveValueImports_and_isolatedMod_1444", "'{0}' is a type and must be imported using a type-only import when 'preserveValueImports' and 'isolatedModules' are both enabled."), - _0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_preserveValueImports_and_isolatedModules_are_both_enabled: diag(1446, 1 /* Error */, "_0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_preserveVa_1446", "'{0}' resolves to a type-only declaration and must be imported using a type-only import when 'preserveValueImports' and 'isolatedModules' are both enabled."), - _0_resolves_to_a_type_only_declaration_and_must_be_re_exported_using_a_type_only_re_export_when_1_is_enabled: diag(1448, 1 /* Error */, "_0_resolves_to_a_type_only_declaration_and_must_be_re_exported_using_a_type_only_re_export_when_1_is_1448", "'{0}' resolves to a type-only declaration and must be re-exported using a type-only re-export when '{1}' is enabled."), - Preserve_unused_imported_values_in_the_JavaScript_output_that_would_otherwise_be_removed: diag(1449, 3 /* Message */, "Preserve_unused_imported_values_in_the_JavaScript_output_that_would_otherwise_be_removed_1449", "Preserve unused imported values in the JavaScript output that would otherwise be removed."), - Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_assertion_as_arguments: diag(1450, 3 /* Message */, "Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_assertion_as_arguments_1450", "Dynamic imports can only accept a module specifier and an optional assertion as arguments"), - Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member_declaration_property_access_or_on_the_left_hand_side_of_an_in_expression: diag(1451, 1 /* Error */, "Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member__1451", "Private identifiers are only allowed in class bodies and may only be used as part of a class member declaration, property access, or on the left-hand-side of an 'in' expression"), - resolution_mode_assertions_are_only_supported_when_moduleResolution_is_node16_or_nodenext: diag(1452, 1 /* Error */, "resolution_mode_assertions_are_only_supported_when_moduleResolution_is_node16_or_nodenext_1452", "'resolution-mode' assertions are only supported when `moduleResolution` is `node16` or `nodenext`."), - resolution_mode_should_be_either_require_or_import: diag(1453, 1 /* Error */, "resolution_mode_should_be_either_require_or_import_1453", "`resolution-mode` should be either `require` or `import`."), - resolution_mode_can_only_be_set_for_type_only_imports: diag(1454, 1 /* Error */, "resolution_mode_can_only_be_set_for_type_only_imports_1454", "`resolution-mode` can only be set for type-only imports."), - resolution_mode_is_the_only_valid_key_for_type_import_assertions: diag(1455, 1 /* Error */, "resolution_mode_is_the_only_valid_key_for_type_import_assertions_1455", "`resolution-mode` is the only valid key for type import assertions."), - Type_import_assertions_should_have_exactly_one_key_resolution_mode_with_value_import_or_require: diag(1456, 1 /* Error */, "Type_import_assertions_should_have_exactly_one_key_resolution_mode_with_value_import_or_require_1456", "Type import assertions should have exactly one key - `resolution-mode` - with value `import` or `require`."), - Matched_by_default_include_pattern_Asterisk_Asterisk_Slash_Asterisk: diag(1457, 3 /* Message */, "Matched_by_default_include_pattern_Asterisk_Asterisk_Slash_Asterisk_1457", "Matched by default include pattern '**/*'"), - File_is_ECMAScript_module_because_0_has_field_type_with_value_module: diag(1458, 3 /* Message */, "File_is_ECMAScript_module_because_0_has_field_type_with_value_module_1458", "File is ECMAScript module because '{0}' has field \"type\" with value \"module\""), - File_is_CommonJS_module_because_0_has_field_type_whose_value_is_not_module: diag(1459, 3 /* Message */, "File_is_CommonJS_module_because_0_has_field_type_whose_value_is_not_module_1459", "File is CommonJS module because '{0}' has field \"type\" whose value is not \"module\""), - File_is_CommonJS_module_because_0_does_not_have_field_type: diag(1460, 3 /* Message */, "File_is_CommonJS_module_because_0_does_not_have_field_type_1460", "File is CommonJS module because '{0}' does not have field \"type\""), - File_is_CommonJS_module_because_package_json_was_not_found: diag(1461, 3 /* Message */, "File_is_CommonJS_module_because_package_json_was_not_found_1461", "File is CommonJS module because 'package.json' was not found"), - The_import_meta_meta_property_is_not_allowed_in_files_which_will_build_into_CommonJS_output: diag(1470, 1 /* Error */, "The_import_meta_meta_property_is_not_allowed_in_files_which_will_build_into_CommonJS_output_1470", "The 'import.meta' meta-property is not allowed in files which will build into CommonJS output."), - Module_0_cannot_be_imported_using_this_construct_The_specifier_only_resolves_to_an_ES_module_which_cannot_be_imported_with_require_Use_an_ECMAScript_import_instead: diag(1471, 1 /* Error */, "Module_0_cannot_be_imported_using_this_construct_The_specifier_only_resolves_to_an_ES_module_which_c_1471", "Module '{0}' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported with 'require'. Use an ECMAScript import instead."), - catch_or_finally_expected: diag(1472, 1 /* Error */, "catch_or_finally_expected_1472", "'catch' or 'finally' expected."), - An_import_declaration_can_only_be_used_at_the_top_level_of_a_module: diag(1473, 1 /* Error */, "An_import_declaration_can_only_be_used_at_the_top_level_of_a_module_1473", "An import declaration can only be used at the top level of a module."), - An_export_declaration_can_only_be_used_at_the_top_level_of_a_module: diag(1474, 1 /* Error */, "An_export_declaration_can_only_be_used_at_the_top_level_of_a_module_1474", "An export declaration can only be used at the top level of a module."), - Control_what_method_is_used_to_detect_module_format_JS_files: diag(1475, 3 /* Message */, "Control_what_method_is_used_to_detect_module_format_JS_files_1475", "Control what method is used to detect module-format JS files."), - auto_Colon_Treat_files_with_imports_exports_import_meta_jsx_with_jsx_Colon_react_jsx_or_esm_format_with_module_Colon_node16_as_modules: diag(1476, 3 /* Message */, "auto_Colon_Treat_files_with_imports_exports_import_meta_jsx_with_jsx_Colon_react_jsx_or_esm_format_w_1476", '"auto": Treat files with imports, exports, import.meta, jsx (with jsx: react-jsx), or esm format (with module: node16+) as modules.'), - An_instantiation_expression_cannot_be_followed_by_a_property_access: diag(1477, 1 /* Error */, "An_instantiation_expression_cannot_be_followed_by_a_property_access_1477", "An instantiation expression cannot be followed by a property access."), - Identifier_or_string_literal_expected: diag(1478, 1 /* Error */, "Identifier_or_string_literal_expected_1478", "Identifier or string literal expected."), - The_current_file_is_a_CommonJS_module_whose_imports_will_produce_require_calls_however_the_referenced_file_is_an_ECMAScript_module_and_cannot_be_imported_with_require_Consider_writing_a_dynamic_import_0_call_instead: diag(1479, 1 /* Error */, "The_current_file_is_a_CommonJS_module_whose_imports_will_produce_require_calls_however_the_reference_1479", "The current file is a CommonJS module whose imports will produce 'require' calls; however, the referenced file is an ECMAScript module and cannot be imported with 'require'. Consider writing a dynamic 'import(\"{0}\")' call instead."), - To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_create_a_local_package_json_file_with_type_Colon_module: diag(1480, 3 /* Message */, "To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_create_a_local_packag_1480", 'To convert this file to an ECMAScript module, change its file extension to \'{0}\' or create a local package.json file with `{ "type": "module" }`.'), - To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_add_the_field_type_Colon_module_to_1: diag(1481, 3 /* Message */, "To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_add_the_field_type_Co_1481", "To convert this file to an ECMAScript module, change its file extension to '{0}', or add the field `\"type\": \"module\"` to '{1}'."), - To_convert_this_file_to_an_ECMAScript_module_add_the_field_type_Colon_module_to_0: diag(1482, 3 /* Message */, "To_convert_this_file_to_an_ECMAScript_module_add_the_field_type_Colon_module_to_0_1482", 'To convert this file to an ECMAScript module, add the field `"type": "module"` to \'{0}\'.'), - To_convert_this_file_to_an_ECMAScript_module_create_a_local_package_json_file_with_type_Colon_module: diag(1483, 3 /* Message */, "To_convert_this_file_to_an_ECMAScript_module_create_a_local_package_json_file_with_type_Colon_module_1483", 'To convert this file to an ECMAScript module, create a local package.json file with `{ "type": "module" }`.'), - _0_is_a_type_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled: diag(1484, 1 /* Error */, "_0_is_a_type_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled_1484", "'{0}' is a type and must be imported using a type-only import when 'verbatimModuleSyntax' is enabled."), - _0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled: diag(1485, 1 /* Error */, "_0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_verbatimMo_1485", "'{0}' resolves to a type-only declaration and must be imported using a type-only import when 'verbatimModuleSyntax' is enabled."), - Decorator_used_before_export_here: diag(1486, 1 /* Error */, "Decorator_used_before_export_here_1486", "Decorator used before 'export' here."), - Octal_escape_sequences_are_not_allowed_Use_the_syntax_0: diag(1487, 1 /* Error */, "Octal_escape_sequences_are_not_allowed_Use_the_syntax_0_1487", "Octal escape sequences are not allowed. Use the syntax '{0}'."), - Escape_sequence_0_is_not_allowed: diag(1488, 1 /* Error */, "Escape_sequence_0_is_not_allowed_1488", "Escape sequence '{0}' is not allowed."), - Decimals_with_leading_zeros_are_not_allowed: diag(1489, 1 /* Error */, "Decimals_with_leading_zeros_are_not_allowed_1489", "Decimals with leading zeros are not allowed."), - File_appears_to_be_binary: diag(1490, 1 /* Error */, "File_appears_to_be_binary_1490", "File appears to be binary."), - _0_modifier_cannot_appear_on_a_using_declaration: diag(1491, 1 /* Error */, "_0_modifier_cannot_appear_on_a_using_declaration_1491", "'{0}' modifier cannot appear on a 'using' declaration."), - _0_declarations_may_not_have_binding_patterns: diag(1492, 1 /* Error */, "_0_declarations_may_not_have_binding_patterns_1492", "'{0}' declarations may not have binding patterns."), - The_left_hand_side_of_a_for_in_statement_cannot_be_a_using_declaration: diag(1493, 1 /* Error */, "The_left_hand_side_of_a_for_in_statement_cannot_be_a_using_declaration_1493", "The left-hand side of a 'for...in' statement cannot be a 'using' declaration."), - The_left_hand_side_of_a_for_in_statement_cannot_be_an_await_using_declaration: diag(1494, 1 /* Error */, "The_left_hand_side_of_a_for_in_statement_cannot_be_an_await_using_declaration_1494", "The left-hand side of a 'for...in' statement cannot be an 'await using' declaration."), - _0_modifier_cannot_appear_on_an_await_using_declaration: diag(1495, 1 /* Error */, "_0_modifier_cannot_appear_on_an_await_using_declaration_1495", "'{0}' modifier cannot appear on an 'await using' declaration."), - The_types_of_0_are_incompatible_between_these_types: diag(2200, 1 /* Error */, "The_types_of_0_are_incompatible_between_these_types_2200", "The types of '{0}' are incompatible between these types."), - The_types_returned_by_0_are_incompatible_between_these_types: diag(2201, 1 /* Error */, "The_types_returned_by_0_are_incompatible_between_these_types_2201", "The types returned by '{0}' are incompatible between these types."), - Call_signature_return_types_0_and_1_are_incompatible: diag(2202, 1 /* Error */, "Call_signature_return_types_0_and_1_are_incompatible_2202", "Call signature return types '{0}' and '{1}' are incompatible.", - /*reportsUnnecessary*/ - void 0, - /*elidedInCompatabilityPyramid*/ - true), - Construct_signature_return_types_0_and_1_are_incompatible: diag(2203, 1 /* Error */, "Construct_signature_return_types_0_and_1_are_incompatible_2203", "Construct signature return types '{0}' and '{1}' are incompatible.", - /*reportsUnnecessary*/ - void 0, - /*elidedInCompatabilityPyramid*/ - true), - Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1: diag(2204, 1 /* Error */, "Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1_2204", "Call signatures with no arguments have incompatible return types '{0}' and '{1}'.", - /*reportsUnnecessary*/ - void 0, - /*elidedInCompatabilityPyramid*/ - true), - Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1: diag(2205, 1 /* Error */, "Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1_2205", "Construct signatures with no arguments have incompatible return types '{0}' and '{1}'.", - /*reportsUnnecessary*/ - void 0, - /*elidedInCompatabilityPyramid*/ - true), - The_type_modifier_cannot_be_used_on_a_named_import_when_import_type_is_used_on_its_import_statement: diag(2206, 1 /* Error */, "The_type_modifier_cannot_be_used_on_a_named_import_when_import_type_is_used_on_its_import_statement_2206", "The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement."), - The_type_modifier_cannot_be_used_on_a_named_export_when_export_type_is_used_on_its_export_statement: diag(2207, 1 /* Error */, "The_type_modifier_cannot_be_used_on_a_named_export_when_export_type_is_used_on_its_export_statement_2207", "The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement."), - This_type_parameter_might_need_an_extends_0_constraint: diag(2208, 1 /* Error */, "This_type_parameter_might_need_an_extends_0_constraint_2208", "This type parameter might need an `extends {0}` constraint."), - The_project_root_is_ambiguous_but_is_required_to_resolve_export_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate: diag(2209, 1 /* Error */, "The_project_root_is_ambiguous_but_is_required_to_resolve_export_map_entry_0_in_file_1_Supply_the_roo_2209", "The project root is ambiguous, but is required to resolve export map entry '{0}' in file '{1}'. Supply the `rootDir` compiler option to disambiguate."), - The_project_root_is_ambiguous_but_is_required_to_resolve_import_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate: diag(2210, 1 /* Error */, "The_project_root_is_ambiguous_but_is_required_to_resolve_import_map_entry_0_in_file_1_Supply_the_roo_2210", "The project root is ambiguous, but is required to resolve import map entry '{0}' in file '{1}'. Supply the `rootDir` compiler option to disambiguate."), - Add_extends_constraint: diag(2211, 3 /* Message */, "Add_extends_constraint_2211", "Add `extends` constraint."), - Add_extends_constraint_to_all_type_parameters: diag(2212, 3 /* Message */, "Add_extends_constraint_to_all_type_parameters_2212", "Add `extends` constraint to all type parameters"), - Duplicate_identifier_0: diag(2300, 1 /* Error */, "Duplicate_identifier_0_2300", "Duplicate identifier '{0}'."), - Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor: diag(2301, 1 /* Error */, "Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor_2301", "Initializer of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor."), - Static_members_cannot_reference_class_type_parameters: diag(2302, 1 /* Error */, "Static_members_cannot_reference_class_type_parameters_2302", "Static members cannot reference class type parameters."), - Circular_definition_of_import_alias_0: diag(2303, 1 /* Error */, "Circular_definition_of_import_alias_0_2303", "Circular definition of import alias '{0}'."), - Cannot_find_name_0: diag(2304, 1 /* Error */, "Cannot_find_name_0_2304", "Cannot find name '{0}'."), - Module_0_has_no_exported_member_1: diag(2305, 1 /* Error */, "Module_0_has_no_exported_member_1_2305", "Module '{0}' has no exported member '{1}'."), - File_0_is_not_a_module: diag(2306, 1 /* Error */, "File_0_is_not_a_module_2306", "File '{0}' is not a module."), - Cannot_find_module_0_or_its_corresponding_type_declarations: diag(2307, 1 /* Error */, "Cannot_find_module_0_or_its_corresponding_type_declarations_2307", "Cannot find module '{0}' or its corresponding type declarations."), - Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambiguity: diag(2308, 1 /* Error */, "Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambig_2308", "Module {0} has already exported a member named '{1}'. Consider explicitly re-exporting to resolve the ambiguity."), - An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements: diag(2309, 1 /* Error */, "An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements_2309", "An export assignment cannot be used in a module with other exported elements."), - Type_0_recursively_references_itself_as_a_base_type: diag(2310, 1 /* Error */, "Type_0_recursively_references_itself_as_a_base_type_2310", "Type '{0}' recursively references itself as a base type."), - Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function: diag(2311, 1 /* Error */, "Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function_2311", "Cannot find name '{0}'. Did you mean to write this in an async function?"), - An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_members: diag(2312, 1 /* Error */, "An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_me_2312", "An interface can only extend an object type or intersection of object types with statically known members."), - Type_parameter_0_has_a_circular_constraint: diag(2313, 1 /* Error */, "Type_parameter_0_has_a_circular_constraint_2313", "Type parameter '{0}' has a circular constraint."), - Generic_type_0_requires_1_type_argument_s: diag(2314, 1 /* Error */, "Generic_type_0_requires_1_type_argument_s_2314", "Generic type '{0}' requires {1} type argument(s)."), - Type_0_is_not_generic: diag(2315, 1 /* Error */, "Type_0_is_not_generic_2315", "Type '{0}' is not generic."), - Global_type_0_must_be_a_class_or_interface_type: diag(2316, 1 /* Error */, "Global_type_0_must_be_a_class_or_interface_type_2316", "Global type '{0}' must be a class or interface type."), - Global_type_0_must_have_1_type_parameter_s: diag(2317, 1 /* Error */, "Global_type_0_must_have_1_type_parameter_s_2317", "Global type '{0}' must have {1} type parameter(s)."), - Cannot_find_global_type_0: diag(2318, 1 /* Error */, "Cannot_find_global_type_0_2318", "Cannot find global type '{0}'."), - Named_property_0_of_types_1_and_2_are_not_identical: diag(2319, 1 /* Error */, "Named_property_0_of_types_1_and_2_are_not_identical_2319", "Named property '{0}' of types '{1}' and '{2}' are not identical."), - Interface_0_cannot_simultaneously_extend_types_1_and_2: diag(2320, 1 /* Error */, "Interface_0_cannot_simultaneously_extend_types_1_and_2_2320", "Interface '{0}' cannot simultaneously extend types '{1}' and '{2}'."), - Excessive_stack_depth_comparing_types_0_and_1: diag(2321, 1 /* Error */, "Excessive_stack_depth_comparing_types_0_and_1_2321", "Excessive stack depth comparing types '{0}' and '{1}'."), - Type_0_is_not_assignable_to_type_1: diag(2322, 1 /* Error */, "Type_0_is_not_assignable_to_type_1_2322", "Type '{0}' is not assignable to type '{1}'."), - Cannot_redeclare_exported_variable_0: diag(2323, 1 /* Error */, "Cannot_redeclare_exported_variable_0_2323", "Cannot redeclare exported variable '{0}'."), - Property_0_is_missing_in_type_1: diag(2324, 1 /* Error */, "Property_0_is_missing_in_type_1_2324", "Property '{0}' is missing in type '{1}'."), - Property_0_is_private_in_type_1_but_not_in_type_2: diag(2325, 1 /* Error */, "Property_0_is_private_in_type_1_but_not_in_type_2_2325", "Property '{0}' is private in type '{1}' but not in type '{2}'."), - Types_of_property_0_are_incompatible: diag(2326, 1 /* Error */, "Types_of_property_0_are_incompatible_2326", "Types of property '{0}' are incompatible."), - Property_0_is_optional_in_type_1_but_required_in_type_2: diag(2327, 1 /* Error */, "Property_0_is_optional_in_type_1_but_required_in_type_2_2327", "Property '{0}' is optional in type '{1}' but required in type '{2}'."), - Types_of_parameters_0_and_1_are_incompatible: diag(2328, 1 /* Error */, "Types_of_parameters_0_and_1_are_incompatible_2328", "Types of parameters '{0}' and '{1}' are incompatible."), - Index_signature_for_type_0_is_missing_in_type_1: diag(2329, 1 /* Error */, "Index_signature_for_type_0_is_missing_in_type_1_2329", "Index signature for type '{0}' is missing in type '{1}'."), - _0_and_1_index_signatures_are_incompatible: diag(2330, 1 /* Error */, "_0_and_1_index_signatures_are_incompatible_2330", "'{0}' and '{1}' index signatures are incompatible."), - this_cannot_be_referenced_in_a_module_or_namespace_body: diag(2331, 1 /* Error */, "this_cannot_be_referenced_in_a_module_or_namespace_body_2331", "'this' cannot be referenced in a module or namespace body."), - this_cannot_be_referenced_in_current_location: diag(2332, 1 /* Error */, "this_cannot_be_referenced_in_current_location_2332", "'this' cannot be referenced in current location."), - this_cannot_be_referenced_in_constructor_arguments: diag(2333, 1 /* Error */, "this_cannot_be_referenced_in_constructor_arguments_2333", "'this' cannot be referenced in constructor arguments."), - this_cannot_be_referenced_in_a_static_property_initializer: diag(2334, 1 /* Error */, "this_cannot_be_referenced_in_a_static_property_initializer_2334", "'this' cannot be referenced in a static property initializer."), - super_can_only_be_referenced_in_a_derived_class: diag(2335, 1 /* Error */, "super_can_only_be_referenced_in_a_derived_class_2335", "'super' can only be referenced in a derived class."), - super_cannot_be_referenced_in_constructor_arguments: diag(2336, 1 /* Error */, "super_cannot_be_referenced_in_constructor_arguments_2336", "'super' cannot be referenced in constructor arguments."), - Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors: diag(2337, 1 /* Error */, "Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors_2337", "Super calls are not permitted outside constructors or in nested functions inside constructors."), - super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class: diag(2338, 1 /* Error */, "super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_der_2338", "'super' property access is permitted only in a constructor, member function, or member accessor of a derived class."), - Property_0_does_not_exist_on_type_1: diag(2339, 1 /* Error */, "Property_0_does_not_exist_on_type_1_2339", "Property '{0}' does not exist on type '{1}'."), - Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword: diag(2340, 1 /* Error */, "Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword_2340", "Only public and protected methods of the base class are accessible via the 'super' keyword."), - Property_0_is_private_and_only_accessible_within_class_1: diag(2341, 1 /* Error */, "Property_0_is_private_and_only_accessible_within_class_1_2341", "Property '{0}' is private and only accessible within class '{1}'."), - This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_version_of_0: diag(2343, 1 /* Error */, "This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_ve_2343", "This syntax requires an imported helper named '{1}' which does not exist in '{0}'. Consider upgrading your version of '{0}'."), - Type_0_does_not_satisfy_the_constraint_1: diag(2344, 1 /* Error */, "Type_0_does_not_satisfy_the_constraint_1_2344", "Type '{0}' does not satisfy the constraint '{1}'."), - Argument_of_type_0_is_not_assignable_to_parameter_of_type_1: diag(2345, 1 /* Error */, "Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_2345", "Argument of type '{0}' is not assignable to parameter of type '{1}'."), - Untyped_function_calls_may_not_accept_type_arguments: diag(2347, 1 /* Error */, "Untyped_function_calls_may_not_accept_type_arguments_2347", "Untyped function calls may not accept type arguments."), - Value_of_type_0_is_not_callable_Did_you_mean_to_include_new: diag(2348, 1 /* Error */, "Value_of_type_0_is_not_callable_Did_you_mean_to_include_new_2348", "Value of type '{0}' is not callable. Did you mean to include 'new'?"), - This_expression_is_not_callable: diag(2349, 1 /* Error */, "This_expression_is_not_callable_2349", "This expression is not callable."), - Only_a_void_function_can_be_called_with_the_new_keyword: diag(2350, 1 /* Error */, "Only_a_void_function_can_be_called_with_the_new_keyword_2350", "Only a void function can be called with the 'new' keyword."), - This_expression_is_not_constructable: diag(2351, 1 /* Error */, "This_expression_is_not_constructable_2351", "This expression is not constructable."), - Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the_other_If_this_was_intentional_convert_the_expression_to_unknown_first: diag(2352, 1 /* Error */, "Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the__2352", "Conversion of type '{0}' to type '{1}' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first."), - Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1: diag(2353, 1 /* Error */, "Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1_2353", "Object literal may only specify known properties, and '{0}' does not exist in type '{1}'."), - This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found: diag(2354, 1 /* Error */, "This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found_2354", "This syntax requires an imported helper but module '{0}' cannot be found."), - A_function_whose_declared_type_is_neither_undefined_void_nor_any_must_return_a_value: diag(2355, 1 /* Error */, "A_function_whose_declared_type_is_neither_undefined_void_nor_any_must_return_a_value_2355", "A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value."), - An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type: diag(2356, 1 /* Error */, "An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type_2356", "An arithmetic operand must be of type 'any', 'number', 'bigint' or an enum type."), - The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access: diag(2357, 1 /* Error */, "The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access_2357", "The operand of an increment or decrement operator must be a variable or a property access."), - The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter: diag(2358, 1 /* Error */, "The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_paramete_2358", "The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter."), - The_right_hand_side_of_an_instanceof_expression_must_be_of_type_any_or_of_a_type_assignable_to_the_Function_interface_type: diag(2359, 1 /* Error */, "The_right_hand_side_of_an_instanceof_expression_must_be_of_type_any_or_of_a_type_assignable_to_the_F_2359", "The right-hand side of an 'instanceof' expression must be of type 'any' or of a type assignable to the 'Function' interface type."), - The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type: diag(2362, 1 /* Error */, "The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type_2362", "The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type."), - The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type: diag(2363, 1 /* Error */, "The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type_2363", "The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type."), - The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access: diag(2364, 1 /* Error */, "The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access_2364", "The left-hand side of an assignment expression must be a variable or a property access."), - Operator_0_cannot_be_applied_to_types_1_and_2: diag(2365, 1 /* Error */, "Operator_0_cannot_be_applied_to_types_1_and_2_2365", "Operator '{0}' cannot be applied to types '{1}' and '{2}'."), - Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined: diag(2366, 1 /* Error */, "Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined_2366", "Function lacks ending return statement and return type does not include 'undefined'."), - This_comparison_appears_to_be_unintentional_because_the_types_0_and_1_have_no_overlap: diag(2367, 1 /* Error */, "This_comparison_appears_to_be_unintentional_because_the_types_0_and_1_have_no_overlap_2367", "This comparison appears to be unintentional because the types '{0}' and '{1}' have no overlap."), - Type_parameter_name_cannot_be_0: diag(2368, 1 /* Error */, "Type_parameter_name_cannot_be_0_2368", "Type parameter name cannot be '{0}'."), - A_parameter_property_is_only_allowed_in_a_constructor_implementation: diag(2369, 1 /* Error */, "A_parameter_property_is_only_allowed_in_a_constructor_implementation_2369", "A parameter property is only allowed in a constructor implementation."), - A_rest_parameter_must_be_of_an_array_type: diag(2370, 1 /* Error */, "A_rest_parameter_must_be_of_an_array_type_2370", "A rest parameter must be of an array type."), - A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation: diag(2371, 1 /* Error */, "A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation_2371", "A parameter initializer is only allowed in a function or constructor implementation."), - Parameter_0_cannot_reference_itself: diag(2372, 1 /* Error */, "Parameter_0_cannot_reference_itself_2372", "Parameter '{0}' cannot reference itself."), - Parameter_0_cannot_reference_identifier_1_declared_after_it: diag(2373, 1 /* Error */, "Parameter_0_cannot_reference_identifier_1_declared_after_it_2373", "Parameter '{0}' cannot reference identifier '{1}' declared after it."), - Duplicate_index_signature_for_type_0: diag(2374, 1 /* Error */, "Duplicate_index_signature_for_type_0_2374", "Duplicate index signature for type '{0}'."), - Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties: diag(2375, 1 /* Error */, "Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefi_2375", "Type '{0}' is not assignable to type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties."), - A_super_call_must_be_the_first_statement_in_the_constructor_to_refer_to_super_or_this_when_a_derived_class_contains_initialized_properties_parameter_properties_or_private_identifiers: diag(2376, 1 /* Error */, "A_super_call_must_be_the_first_statement_in_the_constructor_to_refer_to_super_or_this_when_a_derived_2376", "A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers."), - Constructors_for_derived_classes_must_contain_a_super_call: diag(2377, 1 /* Error */, "Constructors_for_derived_classes_must_contain_a_super_call_2377", "Constructors for derived classes must contain a 'super' call."), - A_get_accessor_must_return_a_value: diag(2378, 1 /* Error */, "A_get_accessor_must_return_a_value_2378", "A 'get' accessor must return a value."), - Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties: diag(2379, 1 /* Error */, "Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_tr_2379", "Argument of type '{0}' is not assignable to parameter of type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties."), - Overload_signatures_must_all_be_exported_or_non_exported: diag(2383, 1 /* Error */, "Overload_signatures_must_all_be_exported_or_non_exported_2383", "Overload signatures must all be exported or non-exported."), - Overload_signatures_must_all_be_ambient_or_non_ambient: diag(2384, 1 /* Error */, "Overload_signatures_must_all_be_ambient_or_non_ambient_2384", "Overload signatures must all be ambient or non-ambient."), - Overload_signatures_must_all_be_public_private_or_protected: diag(2385, 1 /* Error */, "Overload_signatures_must_all_be_public_private_or_protected_2385", "Overload signatures must all be public, private or protected."), - Overload_signatures_must_all_be_optional_or_required: diag(2386, 1 /* Error */, "Overload_signatures_must_all_be_optional_or_required_2386", "Overload signatures must all be optional or required."), - Function_overload_must_be_static: diag(2387, 1 /* Error */, "Function_overload_must_be_static_2387", "Function overload must be static."), - Function_overload_must_not_be_static: diag(2388, 1 /* Error */, "Function_overload_must_not_be_static_2388", "Function overload must not be static."), - Function_implementation_name_must_be_0: diag(2389, 1 /* Error */, "Function_implementation_name_must_be_0_2389", "Function implementation name must be '{0}'."), - Constructor_implementation_is_missing: diag(2390, 1 /* Error */, "Constructor_implementation_is_missing_2390", "Constructor implementation is missing."), - Function_implementation_is_missing_or_not_immediately_following_the_declaration: diag(2391, 1 /* Error */, "Function_implementation_is_missing_or_not_immediately_following_the_declaration_2391", "Function implementation is missing or not immediately following the declaration."), - Multiple_constructor_implementations_are_not_allowed: diag(2392, 1 /* Error */, "Multiple_constructor_implementations_are_not_allowed_2392", "Multiple constructor implementations are not allowed."), - Duplicate_function_implementation: diag(2393, 1 /* Error */, "Duplicate_function_implementation_2393", "Duplicate function implementation."), - This_overload_signature_is_not_compatible_with_its_implementation_signature: diag(2394, 1 /* Error */, "This_overload_signature_is_not_compatible_with_its_implementation_signature_2394", "This overload signature is not compatible with its implementation signature."), - Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local: diag(2395, 1 /* Error */, "Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local_2395", "Individual declarations in merged declaration '{0}' must be all exported or all local."), - Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters: diag(2396, 1 /* Error */, "Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters_2396", "Duplicate identifier 'arguments'. Compiler uses 'arguments' to initialize rest parameters."), - Declaration_name_conflicts_with_built_in_global_identifier_0: diag(2397, 1 /* Error */, "Declaration_name_conflicts_with_built_in_global_identifier_0_2397", "Declaration name conflicts with built-in global identifier '{0}'."), - constructor_cannot_be_used_as_a_parameter_property_name: diag(2398, 1 /* Error */, "constructor_cannot_be_used_as_a_parameter_property_name_2398", "'constructor' cannot be used as a parameter property name."), - Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference: diag(2399, 1 /* Error */, "Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference_2399", "Duplicate identifier '_this'. Compiler uses variable declaration '_this' to capture 'this' reference."), - Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference: diag(2400, 1 /* Error */, "Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference_2400", "Expression resolves to variable declaration '_this' that compiler uses to capture 'this' reference."), - A_super_call_must_be_a_root_level_statement_within_a_constructor_of_a_derived_class_that_contains_initialized_properties_parameter_properties_or_private_identifiers: diag(2401, 1 /* Error */, "A_super_call_must_be_a_root_level_statement_within_a_constructor_of_a_derived_class_that_contains_in_2401", "A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers."), - Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference: diag(2402, 1 /* Error */, "Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference_2402", "Expression resolves to '_super' that compiler uses to capture base class reference."), - Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2: diag(2403, 1 /* Error */, "Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_t_2403", "Subsequent variable declarations must have the same type. Variable '{0}' must be of type '{1}', but here has type '{2}'."), - The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation: diag(2404, 1 /* Error */, "The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation_2404", "The left-hand side of a 'for...in' statement cannot use a type annotation."), - The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any: diag(2405, 1 /* Error */, "The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any_2405", "The left-hand side of a 'for...in' statement must be of type 'string' or 'any'."), - The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access: diag(2406, 1 /* Error */, "The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access_2406", "The left-hand side of a 'for...in' statement must be a variable or a property access."), - The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_here_has_type_0: diag(2407, 1 /* Error */, "The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_2407", "The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter, but here has type '{0}'."), - Setters_cannot_return_a_value: diag(2408, 1 /* Error */, "Setters_cannot_return_a_value_2408", "Setters cannot return a value."), - Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class: diag(2409, 1 /* Error */, "Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class_2409", "Return type of constructor signature must be assignable to the instance type of the class."), - The_with_statement_is_not_supported_All_symbols_in_a_with_block_will_have_type_any: diag(2410, 1 /* Error */, "The_with_statement_is_not_supported_All_symbols_in_a_with_block_will_have_type_any_2410", "The 'with' statement is not supported. All symbols in a 'with' block will have type 'any'."), - Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target: diag(2412, 1 /* Error */, "Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefi_2412", "Type '{0}' is not assignable to type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the type of the target."), - Property_0_of_type_1_is_not_assignable_to_2_index_type_3: diag(2411, 1 /* Error */, "Property_0_of_type_1_is_not_assignable_to_2_index_type_3_2411", "Property '{0}' of type '{1}' is not assignable to '{2}' index type '{3}'."), - _0_index_type_1_is_not_assignable_to_2_index_type_3: diag(2413, 1 /* Error */, "_0_index_type_1_is_not_assignable_to_2_index_type_3_2413", "'{0}' index type '{1}' is not assignable to '{2}' index type '{3}'."), - Class_name_cannot_be_0: diag(2414, 1 /* Error */, "Class_name_cannot_be_0_2414", "Class name cannot be '{0}'."), - Class_0_incorrectly_extends_base_class_1: diag(2415, 1 /* Error */, "Class_0_incorrectly_extends_base_class_1_2415", "Class '{0}' incorrectly extends base class '{1}'."), - Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2: diag(2416, 1 /* Error */, "Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2_2416", "Property '{0}' in type '{1}' is not assignable to the same property in base type '{2}'."), - Class_static_side_0_incorrectly_extends_base_class_static_side_1: diag(2417, 1 /* Error */, "Class_static_side_0_incorrectly_extends_base_class_static_side_1_2417", "Class static side '{0}' incorrectly extends base class static side '{1}'."), - Type_of_computed_property_s_value_is_0_which_is_not_assignable_to_type_1: diag(2418, 1 /* Error */, "Type_of_computed_property_s_value_is_0_which_is_not_assignable_to_type_1_2418", "Type of computed property's value is '{0}', which is not assignable to type '{1}'."), - Types_of_construct_signatures_are_incompatible: diag(2419, 1 /* Error */, "Types_of_construct_signatures_are_incompatible_2419", "Types of construct signatures are incompatible."), - Class_0_incorrectly_implements_interface_1: diag(2420, 1 /* Error */, "Class_0_incorrectly_implements_interface_1_2420", "Class '{0}' incorrectly implements interface '{1}'."), - A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_members: diag(2422, 1 /* Error */, "A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_memb_2422", "A class can only implement an object type or intersection of object types with statically known members."), - Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor: diag(2423, 1 /* Error */, "Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_access_2423", "Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member accessor."), - Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function: diag(2425, 1 /* Error */, "Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_functi_2425", "Class '{0}' defines instance member property '{1}', but extended class '{2}' defines it as instance member function."), - Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function: diag(2426, 1 /* Error */, "Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_functi_2426", "Class '{0}' defines instance member accessor '{1}', but extended class '{2}' defines it as instance member function."), - Interface_name_cannot_be_0: diag(2427, 1 /* Error */, "Interface_name_cannot_be_0_2427", "Interface name cannot be '{0}'."), - All_declarations_of_0_must_have_identical_type_parameters: diag(2428, 1 /* Error */, "All_declarations_of_0_must_have_identical_type_parameters_2428", "All declarations of '{0}' must have identical type parameters."), - Interface_0_incorrectly_extends_interface_1: diag(2430, 1 /* Error */, "Interface_0_incorrectly_extends_interface_1_2430", "Interface '{0}' incorrectly extends interface '{1}'."), - Enum_name_cannot_be_0: diag(2431, 1 /* Error */, "Enum_name_cannot_be_0_2431", "Enum name cannot be '{0}'."), - In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element: diag(2432, 1 /* Error */, "In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enu_2432", "In an enum with multiple declarations, only one declaration can omit an initializer for its first enum element."), - A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged: diag(2433, 1 /* Error */, "A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merg_2433", "A namespace declaration cannot be in a different file from a class or function with which it is merged."), - A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged: diag(2434, 1 /* Error */, "A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged_2434", "A namespace declaration cannot be located prior to a class or function with which it is merged."), - Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces: diag(2435, 1 /* Error */, "Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces_2435", "Ambient modules cannot be nested in other modules or namespaces."), - Ambient_module_declaration_cannot_specify_relative_module_name: diag(2436, 1 /* Error */, "Ambient_module_declaration_cannot_specify_relative_module_name_2436", "Ambient module declaration cannot specify relative module name."), - Module_0_is_hidden_by_a_local_declaration_with_the_same_name: diag(2437, 1 /* Error */, "Module_0_is_hidden_by_a_local_declaration_with_the_same_name_2437", "Module '{0}' is hidden by a local declaration with the same name."), - Import_name_cannot_be_0: diag(2438, 1 /* Error */, "Import_name_cannot_be_0_2438", "Import name cannot be '{0}'."), - Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relative_module_name: diag(2439, 1 /* Error */, "Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relati_2439", "Import or export declaration in an ambient module declaration cannot reference module through relative module name."), - Import_declaration_conflicts_with_local_declaration_of_0: diag(2440, 1 /* Error */, "Import_declaration_conflicts_with_local_declaration_of_0_2440", "Import declaration conflicts with local declaration of '{0}'."), - Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module: diag(2441, 1 /* Error */, "Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_2441", "Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of a module."), - Types_have_separate_declarations_of_a_private_property_0: diag(2442, 1 /* Error */, "Types_have_separate_declarations_of_a_private_property_0_2442", "Types have separate declarations of a private property '{0}'."), - Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2: diag(2443, 1 /* Error */, "Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2_2443", "Property '{0}' is protected but type '{1}' is not a class derived from '{2}'."), - Property_0_is_protected_in_type_1_but_public_in_type_2: diag(2444, 1 /* Error */, "Property_0_is_protected_in_type_1_but_public_in_type_2_2444", "Property '{0}' is protected in type '{1}' but public in type '{2}'."), - Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses: diag(2445, 1 /* Error */, "Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses_2445", "Property '{0}' is protected and only accessible within class '{1}' and its subclasses."), - Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1_This_is_an_instance_of_class_2: diag(2446, 1 /* Error */, "Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1_This_is_an_instance_of_cl_2446", "Property '{0}' is protected and only accessible through an instance of class '{1}'. This is an instance of class '{2}'."), - The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead: diag(2447, 1 /* Error */, "The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead_2447", "The '{0}' operator is not allowed for boolean types. Consider using '{1}' instead."), - Block_scoped_variable_0_used_before_its_declaration: diag(2448, 1 /* Error */, "Block_scoped_variable_0_used_before_its_declaration_2448", "Block-scoped variable '{0}' used before its declaration."), - Class_0_used_before_its_declaration: diag(2449, 1 /* Error */, "Class_0_used_before_its_declaration_2449", "Class '{0}' used before its declaration."), - Enum_0_used_before_its_declaration: diag(2450, 1 /* Error */, "Enum_0_used_before_its_declaration_2450", "Enum '{0}' used before its declaration."), - Cannot_redeclare_block_scoped_variable_0: diag(2451, 1 /* Error */, "Cannot_redeclare_block_scoped_variable_0_2451", "Cannot redeclare block-scoped variable '{0}'."), - An_enum_member_cannot_have_a_numeric_name: diag(2452, 1 /* Error */, "An_enum_member_cannot_have_a_numeric_name_2452", "An enum member cannot have a numeric name."), - Variable_0_is_used_before_being_assigned: diag(2454, 1 /* Error */, "Variable_0_is_used_before_being_assigned_2454", "Variable '{0}' is used before being assigned."), - Type_alias_0_circularly_references_itself: diag(2456, 1 /* Error */, "Type_alias_0_circularly_references_itself_2456", "Type alias '{0}' circularly references itself."), - Type_alias_name_cannot_be_0: diag(2457, 1 /* Error */, "Type_alias_name_cannot_be_0_2457", "Type alias name cannot be '{0}'."), - An_AMD_module_cannot_have_multiple_name_assignments: diag(2458, 1 /* Error */, "An_AMD_module_cannot_have_multiple_name_assignments_2458", "An AMD module cannot have multiple name assignments."), - Module_0_declares_1_locally_but_it_is_not_exported: diag(2459, 1 /* Error */, "Module_0_declares_1_locally_but_it_is_not_exported_2459", "Module '{0}' declares '{1}' locally, but it is not exported."), - Module_0_declares_1_locally_but_it_is_exported_as_2: diag(2460, 1 /* Error */, "Module_0_declares_1_locally_but_it_is_exported_as_2_2460", "Module '{0}' declares '{1}' locally, but it is exported as '{2}'."), - Type_0_is_not_an_array_type: diag(2461, 1 /* Error */, "Type_0_is_not_an_array_type_2461", "Type '{0}' is not an array type."), - A_rest_element_must_be_last_in_a_destructuring_pattern: diag(2462, 1 /* Error */, "A_rest_element_must_be_last_in_a_destructuring_pattern_2462", "A rest element must be last in a destructuring pattern."), - A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature: diag(2463, 1 /* Error */, "A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature_2463", "A binding pattern parameter cannot be optional in an implementation signature."), - A_computed_property_name_must_be_of_type_string_number_symbol_or_any: diag(2464, 1 /* Error */, "A_computed_property_name_must_be_of_type_string_number_symbol_or_any_2464", "A computed property name must be of type 'string', 'number', 'symbol', or 'any'."), - this_cannot_be_referenced_in_a_computed_property_name: diag(2465, 1 /* Error */, "this_cannot_be_referenced_in_a_computed_property_name_2465", "'this' cannot be referenced in a computed property name."), - super_cannot_be_referenced_in_a_computed_property_name: diag(2466, 1 /* Error */, "super_cannot_be_referenced_in_a_computed_property_name_2466", "'super' cannot be referenced in a computed property name."), - A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type: diag(2467, 1 /* Error */, "A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type_2467", "A computed property name cannot reference a type parameter from its containing type."), - Cannot_find_global_value_0: diag(2468, 1 /* Error */, "Cannot_find_global_value_0_2468", "Cannot find global value '{0}'."), - The_0_operator_cannot_be_applied_to_type_symbol: diag(2469, 1 /* Error */, "The_0_operator_cannot_be_applied_to_type_symbol_2469", "The '{0}' operator cannot be applied to type 'symbol'."), - Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher: diag(2472, 1 /* Error */, "Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher_2472", "Spread operator in 'new' expressions is only available when targeting ECMAScript 5 and higher."), - Enum_declarations_must_all_be_const_or_non_const: diag(2473, 1 /* Error */, "Enum_declarations_must_all_be_const_or_non_const_2473", "Enum declarations must all be const or non-const."), - const_enum_member_initializers_must_be_constant_expressions: diag(2474, 1 /* Error */, "const_enum_member_initializers_must_be_constant_expressions_2474", "const enum member initializers must be constant expressions."), - const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment_or_type_query: diag(2475, 1 /* Error */, "const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_im_2475", "'const' enums can only be used in property or index access expressions or the right hand side of an import declaration or export assignment or type query."), - A_const_enum_member_can_only_be_accessed_using_a_string_literal: diag(2476, 1 /* Error */, "A_const_enum_member_can_only_be_accessed_using_a_string_literal_2476", "A const enum member can only be accessed using a string literal."), - const_enum_member_initializer_was_evaluated_to_a_non_finite_value: diag(2477, 1 /* Error */, "const_enum_member_initializer_was_evaluated_to_a_non_finite_value_2477", "'const' enum member initializer was evaluated to a non-finite value."), - const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN: diag(2478, 1 /* Error */, "const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN_2478", "'const' enum member initializer was evaluated to disallowed value 'NaN'."), - let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations: diag(2480, 1 /* Error */, "let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations_2480", "'let' is not allowed to be used as a name in 'let' or 'const' declarations."), - Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1: diag(2481, 1 /* Error */, "Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1_2481", "Cannot initialize outer scoped variable '{0}' in the same scope as block scoped declaration '{1}'."), - The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation: diag(2483, 1 /* Error */, "The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation_2483", "The left-hand side of a 'for...of' statement cannot use a type annotation."), - Export_declaration_conflicts_with_exported_declaration_of_0: diag(2484, 1 /* Error */, "Export_declaration_conflicts_with_exported_declaration_of_0_2484", "Export declaration conflicts with exported declaration of '{0}'."), - The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access: diag(2487, 1 /* Error */, "The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access_2487", "The left-hand side of a 'for...of' statement must be a variable or a property access."), - Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator: diag(2488, 1 /* Error */, "Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator_2488", "Type '{0}' must have a '[Symbol.iterator]()' method that returns an iterator."), - An_iterator_must_have_a_next_method: diag(2489, 1 /* Error */, "An_iterator_must_have_a_next_method_2489", "An iterator must have a 'next()' method."), - The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property: diag(2490, 1 /* Error */, "The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property_2490", "The type returned by the '{0}()' method of an iterator must have a 'value' property."), - The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern: diag(2491, 1 /* Error */, "The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern_2491", "The left-hand side of a 'for...in' statement cannot be a destructuring pattern."), - Cannot_redeclare_identifier_0_in_catch_clause: diag(2492, 1 /* Error */, "Cannot_redeclare_identifier_0_in_catch_clause_2492", "Cannot redeclare identifier '{0}' in catch clause."), - Tuple_type_0_of_length_1_has_no_element_at_index_2: diag(2493, 1 /* Error */, "Tuple_type_0_of_length_1_has_no_element_at_index_2_2493", "Tuple type '{0}' of length '{1}' has no element at index '{2}'."), - Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher: diag(2494, 1 /* Error */, "Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher_2494", "Using a string in a 'for...of' statement is only supported in ECMAScript 5 and higher."), - Type_0_is_not_an_array_type_or_a_string_type: diag(2495, 1 /* Error */, "Type_0_is_not_an_array_type_or_a_string_type_2495", "Type '{0}' is not an array type or a string type."), - The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES3_and_ES5_Consider_using_a_standard_function_expression: diag(2496, 1 /* Error */, "The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES3_and_ES5_Consider_using_a_stand_2496", "The 'arguments' object cannot be referenced in an arrow function in ES3 and ES5. Consider using a standard function expression."), - This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_referencing_its_default_export: diag(2497, 1 /* Error */, "This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_2497", "This module can only be referenced with ECMAScript imports/exports by turning on the '{0}' flag and referencing its default export."), - Module_0_uses_export_and_cannot_be_used_with_export_Asterisk: diag(2498, 1 /* Error */, "Module_0_uses_export_and_cannot_be_used_with_export_Asterisk_2498", "Module '{0}' uses 'export =' and cannot be used with 'export *'."), - An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments: diag(2499, 1 /* Error */, "An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments_2499", "An interface can only extend an identifier/qualified-name with optional type arguments."), - A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments: diag(2500, 1 /* Error */, "A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments_2500", "A class can only implement an identifier/qualified-name with optional type arguments."), - A_rest_element_cannot_contain_a_binding_pattern: diag(2501, 1 /* Error */, "A_rest_element_cannot_contain_a_binding_pattern_2501", "A rest element cannot contain a binding pattern."), - _0_is_referenced_directly_or_indirectly_in_its_own_type_annotation: diag(2502, 1 /* Error */, "_0_is_referenced_directly_or_indirectly_in_its_own_type_annotation_2502", "'{0}' is referenced directly or indirectly in its own type annotation."), - Cannot_find_namespace_0: diag(2503, 1 /* Error */, "Cannot_find_namespace_0_2503", "Cannot find namespace '{0}'."), - Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator: diag(2504, 1 /* Error */, "Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator_2504", "Type '{0}' must have a '[Symbol.asyncIterator]()' method that returns an async iterator."), - A_generator_cannot_have_a_void_type_annotation: diag(2505, 1 /* Error */, "A_generator_cannot_have_a_void_type_annotation_2505", "A generator cannot have a 'void' type annotation."), - _0_is_referenced_directly_or_indirectly_in_its_own_base_expression: diag(2506, 1 /* Error */, "_0_is_referenced_directly_or_indirectly_in_its_own_base_expression_2506", "'{0}' is referenced directly or indirectly in its own base expression."), - Type_0_is_not_a_constructor_function_type: diag(2507, 1 /* Error */, "Type_0_is_not_a_constructor_function_type_2507", "Type '{0}' is not a constructor function type."), - No_base_constructor_has_the_specified_number_of_type_arguments: diag(2508, 1 /* Error */, "No_base_constructor_has_the_specified_number_of_type_arguments_2508", "No base constructor has the specified number of type arguments."), - Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_known_members: diag(2509, 1 /* Error */, "Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_2509", "Base constructor return type '{0}' is not an object type or intersection of object types with statically known members."), - Base_constructors_must_all_have_the_same_return_type: diag(2510, 1 /* Error */, "Base_constructors_must_all_have_the_same_return_type_2510", "Base constructors must all have the same return type."), - Cannot_create_an_instance_of_an_abstract_class: diag(2511, 1 /* Error */, "Cannot_create_an_instance_of_an_abstract_class_2511", "Cannot create an instance of an abstract class."), - Overload_signatures_must_all_be_abstract_or_non_abstract: diag(2512, 1 /* Error */, "Overload_signatures_must_all_be_abstract_or_non_abstract_2512", "Overload signatures must all be abstract or non-abstract."), - Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression: diag(2513, 1 /* Error */, "Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression_2513", "Abstract method '{0}' in class '{1}' cannot be accessed via super expression."), - A_tuple_type_cannot_be_indexed_with_a_negative_value: diag(2514, 1 /* Error */, "A_tuple_type_cannot_be_indexed_with_a_negative_value_2514", "A tuple type cannot be indexed with a negative value."), - Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2: diag(2515, 1 /* Error */, "Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2_2515", "Non-abstract class '{0}' does not implement inherited abstract member '{1}' from class '{2}'."), - All_declarations_of_an_abstract_method_must_be_consecutive: diag(2516, 1 /* Error */, "All_declarations_of_an_abstract_method_must_be_consecutive_2516", "All declarations of an abstract method must be consecutive."), - Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type: diag(2517, 1 /* Error */, "Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type_2517", "Cannot assign an abstract constructor type to a non-abstract constructor type."), - A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard: diag(2518, 1 /* Error */, "A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard_2518", "A 'this'-based type guard is not compatible with a parameter-based type guard."), - An_async_iterator_must_have_a_next_method: diag(2519, 1 /* Error */, "An_async_iterator_must_have_a_next_method_2519", "An async iterator must have a 'next()' method."), - Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions: diag(2520, 1 /* Error */, "Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions_2520", "Duplicate identifier '{0}'. Compiler uses declaration '{1}' to support async functions."), - The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES3_and_ES5_Consider_using_a_standard_function_or_method: diag(2522, 1 /* Error */, "The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES3_and_ES5_Consider_usi_2522", "The 'arguments' object cannot be referenced in an async function or method in ES3 and ES5. Consider using a standard function or method."), - yield_expressions_cannot_be_used_in_a_parameter_initializer: diag(2523, 1 /* Error */, "yield_expressions_cannot_be_used_in_a_parameter_initializer_2523", "'yield' expressions cannot be used in a parameter initializer."), - await_expressions_cannot_be_used_in_a_parameter_initializer: diag(2524, 1 /* Error */, "await_expressions_cannot_be_used_in_a_parameter_initializer_2524", "'await' expressions cannot be used in a parameter initializer."), - Initializer_provides_no_value_for_this_binding_element_and_the_binding_element_has_no_default_value: diag(2525, 1 /* Error */, "Initializer_provides_no_value_for_this_binding_element_and_the_binding_element_has_no_default_value_2525", "Initializer provides no value for this binding element and the binding element has no default value."), - A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface: diag(2526, 1 /* Error */, "A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface_2526", "A 'this' type is available only in a non-static member of a class or interface."), - The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary: diag(2527, 1 /* Error */, "The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary_2527", "The inferred type of '{0}' references an inaccessible '{1}' type. A type annotation is necessary."), - A_module_cannot_have_multiple_default_exports: diag(2528, 1 /* Error */, "A_module_cannot_have_multiple_default_exports_2528", "A module cannot have multiple default exports."), - Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_functions: diag(2529, 1 /* Error */, "Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_func_2529", "Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of a module containing async functions."), - Property_0_is_incompatible_with_index_signature: diag(2530, 1 /* Error */, "Property_0_is_incompatible_with_index_signature_2530", "Property '{0}' is incompatible with index signature."), - Object_is_possibly_null: diag(2531, 1 /* Error */, "Object_is_possibly_null_2531", "Object is possibly 'null'."), - Object_is_possibly_undefined: diag(2532, 1 /* Error */, "Object_is_possibly_undefined_2532", "Object is possibly 'undefined'."), - Object_is_possibly_null_or_undefined: diag(2533, 1 /* Error */, "Object_is_possibly_null_or_undefined_2533", "Object is possibly 'null' or 'undefined'."), - A_function_returning_never_cannot_have_a_reachable_end_point: diag(2534, 1 /* Error */, "A_function_returning_never_cannot_have_a_reachable_end_point_2534", "A function returning 'never' cannot have a reachable end point."), - Type_0_cannot_be_used_to_index_type_1: diag(2536, 1 /* Error */, "Type_0_cannot_be_used_to_index_type_1_2536", "Type '{0}' cannot be used to index type '{1}'."), - Type_0_has_no_matching_index_signature_for_type_1: diag(2537, 1 /* Error */, "Type_0_has_no_matching_index_signature_for_type_1_2537", "Type '{0}' has no matching index signature for type '{1}'."), - Type_0_cannot_be_used_as_an_index_type: diag(2538, 1 /* Error */, "Type_0_cannot_be_used_as_an_index_type_2538", "Type '{0}' cannot be used as an index type."), - Cannot_assign_to_0_because_it_is_not_a_variable: diag(2539, 1 /* Error */, "Cannot_assign_to_0_because_it_is_not_a_variable_2539", "Cannot assign to '{0}' because it is not a variable."), - Cannot_assign_to_0_because_it_is_a_read_only_property: diag(2540, 1 /* Error */, "Cannot_assign_to_0_because_it_is_a_read_only_property_2540", "Cannot assign to '{0}' because it is a read-only property."), - Index_signature_in_type_0_only_permits_reading: diag(2542, 1 /* Error */, "Index_signature_in_type_0_only_permits_reading_2542", "Index signature in type '{0}' only permits reading."), - Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_meta_property_reference: diag(2543, 1 /* Error */, "Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_me_2543", "Duplicate identifier '_newTarget'. Compiler uses variable declaration '_newTarget' to capture 'new.target' meta-property reference."), - Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta_property_reference: diag(2544, 1 /* Error */, "Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta__2544", "Expression resolves to variable declaration '_newTarget' that compiler uses to capture 'new.target' meta-property reference."), - A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any: diag(2545, 1 /* Error */, "A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any_2545", "A mixin class must have a constructor with a single rest parameter of type 'any[]'."), - The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_property: diag(2547, 1 /* Error */, "The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_pro_2547", "The type returned by the '{0}()' method of an async iterator must be a promise for a type with a 'value' property."), - Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator: diag(2548, 1 /* Error */, "Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator_2548", "Type '{0}' is not an array type or does not have a '[Symbol.iterator]()' method that returns an iterator."), - Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator: diag(2549, 1 /* Error */, "Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns__2549", "Type '{0}' is not an array type or a string type or does not have a '[Symbol.iterator]()' method that returns an iterator."), - Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2_or_later: diag(2550, 1 /* Error */, "Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_c_2550", "Property '{0}' does not exist on type '{1}'. Do you need to change your target library? Try changing the 'lib' compiler option to '{2}' or later."), - Property_0_does_not_exist_on_type_1_Did_you_mean_2: diag(2551, 1 /* Error */, "Property_0_does_not_exist_on_type_1_Did_you_mean_2_2551", "Property '{0}' does not exist on type '{1}'. Did you mean '{2}'?"), - Cannot_find_name_0_Did_you_mean_1: diag(2552, 1 /* Error */, "Cannot_find_name_0_Did_you_mean_1_2552", "Cannot find name '{0}'. Did you mean '{1}'?"), - Computed_values_are_not_permitted_in_an_enum_with_string_valued_members: diag(2553, 1 /* Error */, "Computed_values_are_not_permitted_in_an_enum_with_string_valued_members_2553", "Computed values are not permitted in an enum with string valued members."), - Expected_0_arguments_but_got_1: diag(2554, 1 /* Error */, "Expected_0_arguments_but_got_1_2554", "Expected {0} arguments, but got {1}."), - Expected_at_least_0_arguments_but_got_1: diag(2555, 1 /* Error */, "Expected_at_least_0_arguments_but_got_1_2555", "Expected at least {0} arguments, but got {1}."), - A_spread_argument_must_either_have_a_tuple_type_or_be_passed_to_a_rest_parameter: diag(2556, 1 /* Error */, "A_spread_argument_must_either_have_a_tuple_type_or_be_passed_to_a_rest_parameter_2556", "A spread argument must either have a tuple type or be passed to a rest parameter."), - Expected_0_type_arguments_but_got_1: diag(2558, 1 /* Error */, "Expected_0_type_arguments_but_got_1_2558", "Expected {0} type arguments, but got {1}."), - Type_0_has_no_properties_in_common_with_type_1: diag(2559, 1 /* Error */, "Type_0_has_no_properties_in_common_with_type_1_2559", "Type '{0}' has no properties in common with type '{1}'."), - Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it: diag(2560, 1 /* Error */, "Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it_2560", "Value of type '{0}' has no properties in common with type '{1}'. Did you mean to call it?"), - Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_write_2: diag(2561, 1 /* Error */, "Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_writ_2561", "Object literal may only specify known properties, but '{0}' does not exist in type '{1}'. Did you mean to write '{2}'?"), - Base_class_expressions_cannot_reference_class_type_parameters: diag(2562, 1 /* Error */, "Base_class_expressions_cannot_reference_class_type_parameters_2562", "Base class expressions cannot reference class type parameters."), - The_containing_function_or_module_body_is_too_large_for_control_flow_analysis: diag(2563, 1 /* Error */, "The_containing_function_or_module_body_is_too_large_for_control_flow_analysis_2563", "The containing function or module body is too large for control flow analysis."), - Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor: diag(2564, 1 /* Error */, "Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor_2564", "Property '{0}' has no initializer and is not definitely assigned in the constructor."), - Property_0_is_used_before_being_assigned: diag(2565, 1 /* Error */, "Property_0_is_used_before_being_assigned_2565", "Property '{0}' is used before being assigned."), - A_rest_element_cannot_have_a_property_name: diag(2566, 1 /* Error */, "A_rest_element_cannot_have_a_property_name_2566", "A rest element cannot have a property name."), - Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations: diag(2567, 1 /* Error */, "Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations_2567", "Enum declarations can only merge with namespace or other enum declarations."), - Property_0_may_not_exist_on_type_1_Did_you_mean_2: diag(2568, 1 /* Error */, "Property_0_may_not_exist_on_type_1_Did_you_mean_2_2568", "Property '{0}' may not exist on type '{1}'. Did you mean '{2}'?"), - Could_not_find_name_0_Did_you_mean_1: diag(2570, 1 /* Error */, "Could_not_find_name_0_Did_you_mean_1_2570", "Could not find name '{0}'. Did you mean '{1}'?"), - Object_is_of_type_unknown: diag(2571, 1 /* Error */, "Object_is_of_type_unknown_2571", "Object is of type 'unknown'."), - A_rest_element_type_must_be_an_array_type: diag(2574, 1 /* Error */, "A_rest_element_type_must_be_an_array_type_2574", "A rest element type must be an array type."), - No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments: diag(2575, 1 /* Error */, "No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments_2575", "No overload expects {0} arguments, but overloads do exist that expect either {1} or {2} arguments."), - Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead: diag(2576, 1 /* Error */, "Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead_2576", "Property '{0}' does not exist on type '{1}'. Did you mean to access the static member '{2}' instead?"), - Return_type_annotation_circularly_references_itself: diag(2577, 1 /* Error */, "Return_type_annotation_circularly_references_itself_2577", "Return type annotation circularly references itself."), - Unused_ts_expect_error_directive: diag(2578, 1 /* Error */, "Unused_ts_expect_error_directive_2578", "Unused '@ts-expect-error' directive."), - Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode: diag(2580, 1 /* Error */, "Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashno_2580", "Cannot find name '{0}'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`."), - Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery: diag(2581, 1 /* Error */, "Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slash_2581", "Cannot find name '{0}'. Do you need to install type definitions for jQuery? Try `npm i --save-dev @types/jquery`."), - Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha: diag(2582, 1 /* Error */, "Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_type_2582", "Cannot find name '{0}'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha`."), - Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_1_or_later: diag(2583, 1 /* Error */, "Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2583", "Cannot find name '{0}'. Do you need to change your target library? Try changing the 'lib' compiler option to '{1}' or later."), - Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_include_dom: diag(2584, 1 /* Error */, "Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2584", "Cannot find name '{0}'. Do you need to change your target library? Try changing the 'lib' compiler option to include 'dom'."), - _0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_es2015_or_later: diag(2585, 1 /* Error */, "_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_2585", "'{0}' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the 'lib' compiler option to es2015 or later."), - Cannot_assign_to_0_because_it_is_a_constant: diag(2588, 1 /* Error */, "Cannot_assign_to_0_because_it_is_a_constant_2588", "Cannot assign to '{0}' because it is a constant."), - Type_instantiation_is_excessively_deep_and_possibly_infinite: diag(2589, 1 /* Error */, "Type_instantiation_is_excessively_deep_and_possibly_infinite_2589", "Type instantiation is excessively deep and possibly infinite."), - Expression_produces_a_union_type_that_is_too_complex_to_represent: diag(2590, 1 /* Error */, "Expression_produces_a_union_type_that_is_too_complex_to_represent_2590", "Expression produces a union type that is too complex to represent."), - Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode_and_then_add_node_to_the_types_field_in_your_tsconfig: diag(2591, 1 /* Error */, "Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashno_2591", "Cannot find name '{0}'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node` and then add 'node' to the types field in your tsconfig."), - Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery_and_then_add_jquery_to_the_types_field_in_your_tsconfig: diag(2592, 1 /* Error */, "Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slash_2592", "Cannot find name '{0}'. Do you need to install type definitions for jQuery? Try `npm i --save-dev @types/jquery` and then add 'jquery' to the types field in your tsconfig."), - Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha_and_then_add_jest_or_mocha_to_the_types_field_in_your_tsconfig: diag(2593, 1 /* Error */, "Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_type_2593", "Cannot find name '{0}'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha` and then add 'jest' or 'mocha' to the types field in your tsconfig."), - This_module_is_declared_with_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag: diag(2594, 1 /* Error */, "This_module_is_declared_with_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag_2594", "This module is declared with 'export =', and can only be used with a default import when using the '{0}' flag."), - _0_can_only_be_imported_by_using_a_default_import: diag(2595, 1 /* Error */, "_0_can_only_be_imported_by_using_a_default_import_2595", "'{0}' can only be imported by using a default import."), - _0_can_only_be_imported_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import: diag(2596, 1 /* Error */, "_0_can_only_be_imported_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import_2596", "'{0}' can only be imported by turning on the 'esModuleInterop' flag and using a default import."), - _0_can_only_be_imported_by_using_a_require_call_or_by_using_a_default_import: diag(2597, 1 /* Error */, "_0_can_only_be_imported_by_using_a_require_call_or_by_using_a_default_import_2597", "'{0}' can only be imported by using a 'require' call or by using a default import."), - _0_can_only_be_imported_by_using_a_require_call_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import: diag(2598, 1 /* Error */, "_0_can_only_be_imported_by_using_a_require_call_or_by_turning_on_the_esModuleInterop_flag_and_using__2598", "'{0}' can only be imported by using a 'require' call or by turning on the 'esModuleInterop' flag and using a default import."), - JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist: diag(2602, 1 /* Error */, "JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist_2602", "JSX element implicitly has type 'any' because the global type 'JSX.Element' does not exist."), - Property_0_in_type_1_is_not_assignable_to_type_2: diag(2603, 1 /* Error */, "Property_0_in_type_1_is_not_assignable_to_type_2_2603", "Property '{0}' in type '{1}' is not assignable to type '{2}'."), - JSX_element_type_0_does_not_have_any_construct_or_call_signatures: diag(2604, 1 /* Error */, "JSX_element_type_0_does_not_have_any_construct_or_call_signatures_2604", "JSX element type '{0}' does not have any construct or call signatures."), - Property_0_of_JSX_spread_attribute_is_not_assignable_to_target_property: diag(2606, 1 /* Error */, "Property_0_of_JSX_spread_attribute_is_not_assignable_to_target_property_2606", "Property '{0}' of JSX spread attribute is not assignable to target property."), - JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property: diag(2607, 1 /* Error */, "JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property_2607", "JSX element class does not support attributes because it does not have a '{0}' property."), - The_global_type_JSX_0_may_not_have_more_than_one_property: diag(2608, 1 /* Error */, "The_global_type_JSX_0_may_not_have_more_than_one_property_2608", "The global type 'JSX.{0}' may not have more than one property."), - JSX_spread_child_must_be_an_array_type: diag(2609, 1 /* Error */, "JSX_spread_child_must_be_an_array_type_2609", "JSX spread child must be an array type."), - _0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property: diag(2610, 1 /* Error */, "_0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property_2610", "'{0}' is defined as an accessor in class '{1}', but is overridden here in '{2}' as an instance property."), - _0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor: diag(2611, 1 /* Error */, "_0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor_2611", "'{0}' is defined as a property in class '{1}', but is overridden here in '{2}' as an accessor."), - Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_add_a_declare_modifier_or_remove_the_redundant_declaration: diag(2612, 1 /* Error */, "Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_2612", "Property '{0}' will overwrite the base property in '{1}'. If this is intentional, add an initializer. Otherwise, add a 'declare' modifier or remove the redundant declaration."), - Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead: diag(2613, 1 /* Error */, "Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead_2613", "Module '{0}' has no default export. Did you mean to use 'import { {1} } from {0}' instead?"), - Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead: diag(2614, 1 /* Error */, "Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead_2614", "Module '{0}' has no exported member '{1}'. Did you mean to use 'import {1} from {0}' instead?"), - Type_of_property_0_circularly_references_itself_in_mapped_type_1: diag(2615, 1 /* Error */, "Type_of_property_0_circularly_references_itself_in_mapped_type_1_2615", "Type of property '{0}' circularly references itself in mapped type '{1}'."), - _0_can_only_be_imported_by_using_import_1_require_2_or_a_default_import: diag(2616, 1 /* Error */, "_0_can_only_be_imported_by_using_import_1_require_2_or_a_default_import_2616", "'{0}' can only be imported by using 'import {1} = require({2})' or a default import."), - _0_can_only_be_imported_by_using_import_1_require_2_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import: diag(2617, 1 /* Error */, "_0_can_only_be_imported_by_using_import_1_require_2_or_by_turning_on_the_esModuleInterop_flag_and_us_2617", "'{0}' can only be imported by using 'import {1} = require({2})' or by turning on the 'esModuleInterop' flag and using a default import."), - Source_has_0_element_s_but_target_requires_1: diag(2618, 1 /* Error */, "Source_has_0_element_s_but_target_requires_1_2618", "Source has {0} element(s) but target requires {1}."), - Source_has_0_element_s_but_target_allows_only_1: diag(2619, 1 /* Error */, "Source_has_0_element_s_but_target_allows_only_1_2619", "Source has {0} element(s) but target allows only {1}."), - Target_requires_0_element_s_but_source_may_have_fewer: diag(2620, 1 /* Error */, "Target_requires_0_element_s_but_source_may_have_fewer_2620", "Target requires {0} element(s) but source may have fewer."), - Target_allows_only_0_element_s_but_source_may_have_more: diag(2621, 1 /* Error */, "Target_allows_only_0_element_s_but_source_may_have_more_2621", "Target allows only {0} element(s) but source may have more."), - Source_provides_no_match_for_required_element_at_position_0_in_target: diag(2623, 1 /* Error */, "Source_provides_no_match_for_required_element_at_position_0_in_target_2623", "Source provides no match for required element at position {0} in target."), - Source_provides_no_match_for_variadic_element_at_position_0_in_target: diag(2624, 1 /* Error */, "Source_provides_no_match_for_variadic_element_at_position_0_in_target_2624", "Source provides no match for variadic element at position {0} in target."), - Variadic_element_at_position_0_in_source_does_not_match_element_at_position_1_in_target: diag(2625, 1 /* Error */, "Variadic_element_at_position_0_in_source_does_not_match_element_at_position_1_in_target_2625", "Variadic element at position {0} in source does not match element at position {1} in target."), - Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target: diag(2626, 1 /* Error */, "Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target_2626", "Type at position {0} in source is not compatible with type at position {1} in target."), - Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target: diag(2627, 1 /* Error */, "Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target_2627", "Type at positions {0} through {1} in source is not compatible with type at position {2} in target."), - Cannot_assign_to_0_because_it_is_an_enum: diag(2628, 1 /* Error */, "Cannot_assign_to_0_because_it_is_an_enum_2628", "Cannot assign to '{0}' because it is an enum."), - Cannot_assign_to_0_because_it_is_a_class: diag(2629, 1 /* Error */, "Cannot_assign_to_0_because_it_is_a_class_2629", "Cannot assign to '{0}' because it is a class."), - Cannot_assign_to_0_because_it_is_a_function: diag(2630, 1 /* Error */, "Cannot_assign_to_0_because_it_is_a_function_2630", "Cannot assign to '{0}' because it is a function."), - Cannot_assign_to_0_because_it_is_a_namespace: diag(2631, 1 /* Error */, "Cannot_assign_to_0_because_it_is_a_namespace_2631", "Cannot assign to '{0}' because it is a namespace."), - Cannot_assign_to_0_because_it_is_an_import: diag(2632, 1 /* Error */, "Cannot_assign_to_0_because_it_is_an_import_2632", "Cannot assign to '{0}' because it is an import."), - JSX_property_access_expressions_cannot_include_JSX_namespace_names: diag(2633, 1 /* Error */, "JSX_property_access_expressions_cannot_include_JSX_namespace_names_2633", "JSX property access expressions cannot include JSX namespace names"), - _0_index_signatures_are_incompatible: diag(2634, 1 /* Error */, "_0_index_signatures_are_incompatible_2634", "'{0}' index signatures are incompatible."), - Type_0_has_no_signatures_for_which_the_type_argument_list_is_applicable: diag(2635, 1 /* Error */, "Type_0_has_no_signatures_for_which_the_type_argument_list_is_applicable_2635", "Type '{0}' has no signatures for which the type argument list is applicable."), - Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation: diag(2636, 1 /* Error */, "Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation_2636", "Type '{0}' is not assignable to type '{1}' as implied by variance annotation."), - Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_types: diag(2637, 1 /* Error */, "Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_t_2637", "Variance annotations are only supported in type aliases for object, function, constructor, and mapped types."), - Type_0_may_represent_a_primitive_value_which_is_not_permitted_as_the_right_operand_of_the_in_operator: diag(2638, 1 /* Error */, "Type_0_may_represent_a_primitive_value_which_is_not_permitted_as_the_right_operand_of_the_in_operato_2638", "Type '{0}' may represent a primitive value, which is not permitted as the right operand of the 'in' operator."), - React_components_cannot_include_JSX_namespace_names: diag(2639, 1 /* Error */, "React_components_cannot_include_JSX_namespace_names_2639", "React components cannot include JSX namespace names"), - Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity: diag(2649, 1 /* Error */, "Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity_2649", "Cannot augment module '{0}' with value exports because it resolves to a non-module entity."), - A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums: diag(2651, 1 /* Error */, "A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_memb_2651", "A member initializer in a enum declaration cannot reference members declared after it, including members defined in other enums."), - Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_default_0_declaration_instead: diag(2652, 1 /* Error */, "Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_d_2652", "Merged declaration '{0}' cannot include a default export declaration. Consider adding a separate 'export default {0}' declaration instead."), - Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1: diag(2653, 1 /* Error */, "Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1_2653", "Non-abstract class expression does not implement inherited abstract member '{0}' from class '{1}'."), - JSX_expressions_must_have_one_parent_element: diag(2657, 1 /* Error */, "JSX_expressions_must_have_one_parent_element_2657", "JSX expressions must have one parent element."), - Type_0_provides_no_match_for_the_signature_1: diag(2658, 1 /* Error */, "Type_0_provides_no_match_for_the_signature_1_2658", "Type '{0}' provides no match for the signature '{1}'."), - super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_higher: diag(2659, 1 /* Error */, "super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_highe_2659", "'super' is only allowed in members of object literal expressions when option 'target' is 'ES2015' or higher."), - super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions: diag(2660, 1 /* Error */, "super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions_2660", "'super' can only be referenced in members of derived classes or object literal expressions."), - Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module: diag(2661, 1 /* Error */, "Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module_2661", "Cannot export '{0}'. Only local declarations can be exported from a module."), - Cannot_find_name_0_Did_you_mean_the_static_member_1_0: diag(2662, 1 /* Error */, "Cannot_find_name_0_Did_you_mean_the_static_member_1_0_2662", "Cannot find name '{0}'. Did you mean the static member '{1}.{0}'?"), - Cannot_find_name_0_Did_you_mean_the_instance_member_this_0: diag(2663, 1 /* Error */, "Cannot_find_name_0_Did_you_mean_the_instance_member_this_0_2663", "Cannot find name '{0}'. Did you mean the instance member 'this.{0}'?"), - Invalid_module_name_in_augmentation_module_0_cannot_be_found: diag(2664, 1 /* Error */, "Invalid_module_name_in_augmentation_module_0_cannot_be_found_2664", "Invalid module name in augmentation, module '{0}' cannot be found."), - Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augmented: diag(2665, 1 /* Error */, "Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augm_2665", "Invalid module name in augmentation. Module '{0}' resolves to an untyped module at '{1}', which cannot be augmented."), - Exports_and_export_assignments_are_not_permitted_in_module_augmentations: diag(2666, 1 /* Error */, "Exports_and_export_assignments_are_not_permitted_in_module_augmentations_2666", "Exports and export assignments are not permitted in module augmentations."), - Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_module: diag(2667, 1 /* Error */, "Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_mod_2667", "Imports are not permitted in module augmentations. Consider moving them to the enclosing external module."), - export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always_visible: diag(2668, 1 /* Error */, "export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always__2668", "'export' modifier cannot be applied to ambient modules and module augmentations since they are always visible."), - Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations: diag(2669, 1 /* Error */, "Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_2669", "Augmentations for the global scope can only be directly nested in external modules or ambient module declarations."), - Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambient_context: diag(2670, 1 /* Error */, "Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambien_2670", "Augmentations for the global scope should have 'declare' modifier unless they appear in already ambient context."), - Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity: diag(2671, 1 /* Error */, "Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity_2671", "Cannot augment module '{0}' because it resolves to a non-module entity."), - Cannot_assign_a_0_constructor_type_to_a_1_constructor_type: diag(2672, 1 /* Error */, "Cannot_assign_a_0_constructor_type_to_a_1_constructor_type_2672", "Cannot assign a '{0}' constructor type to a '{1}' constructor type."), - Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration: diag(2673, 1 /* Error */, "Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration_2673", "Constructor of class '{0}' is private and only accessible within the class declaration."), - Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration: diag(2674, 1 /* Error */, "Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration_2674", "Constructor of class '{0}' is protected and only accessible within the class declaration."), - Cannot_extend_a_class_0_Class_constructor_is_marked_as_private: diag(2675, 1 /* Error */, "Cannot_extend_a_class_0_Class_constructor_is_marked_as_private_2675", "Cannot extend a class '{0}'. Class constructor is marked as private."), - Accessors_must_both_be_abstract_or_non_abstract: diag(2676, 1 /* Error */, "Accessors_must_both_be_abstract_or_non_abstract_2676", "Accessors must both be abstract or non-abstract."), - A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type: diag(2677, 1 /* Error */, "A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type_2677", "A type predicate's type must be assignable to its parameter's type."), - Type_0_is_not_comparable_to_type_1: diag(2678, 1 /* Error */, "Type_0_is_not_comparable_to_type_1_2678", "Type '{0}' is not comparable to type '{1}'."), - A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void: diag(2679, 1 /* Error */, "A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void_2679", "A function that is called with the 'new' keyword cannot have a 'this' type that is 'void'."), - A_0_parameter_must_be_the_first_parameter: diag(2680, 1 /* Error */, "A_0_parameter_must_be_the_first_parameter_2680", "A '{0}' parameter must be the first parameter."), - A_constructor_cannot_have_a_this_parameter: diag(2681, 1 /* Error */, "A_constructor_cannot_have_a_this_parameter_2681", "A constructor cannot have a 'this' parameter."), - this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation: diag(2683, 1 /* Error */, "this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_2683", "'this' implicitly has type 'any' because it does not have a type annotation."), - The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1: diag(2684, 1 /* Error */, "The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1_2684", "The 'this' context of type '{0}' is not assignable to method's 'this' of type '{1}'."), - The_this_types_of_each_signature_are_incompatible: diag(2685, 1 /* Error */, "The_this_types_of_each_signature_are_incompatible_2685", "The 'this' types of each signature are incompatible."), - _0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead: diag(2686, 1 /* Error */, "_0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead_2686", "'{0}' refers to a UMD global, but the current file is a module. Consider adding an import instead."), - All_declarations_of_0_must_have_identical_modifiers: diag(2687, 1 /* Error */, "All_declarations_of_0_must_have_identical_modifiers_2687", "All declarations of '{0}' must have identical modifiers."), - Cannot_find_type_definition_file_for_0: diag(2688, 1 /* Error */, "Cannot_find_type_definition_file_for_0_2688", "Cannot find type definition file for '{0}'."), - Cannot_extend_an_interface_0_Did_you_mean_implements: diag(2689, 1 /* Error */, "Cannot_extend_an_interface_0_Did_you_mean_implements_2689", "Cannot extend an interface '{0}'. Did you mean 'implements'?"), - _0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Did_you_mean_to_use_1_in_0: diag(2690, 1 /* Error */, "_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Did_you_mean_to_use_1_in_0_2690", "'{0}' only refers to a type, but is being used as a value here. Did you mean to use '{1} in {0}'?"), - _0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible: diag(2692, 1 /* Error */, "_0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible_2692", "'{0}' is a primitive, but '{1}' is a wrapper object. Prefer using '{0}' when possible."), - _0_only_refers_to_a_type_but_is_being_used_as_a_value_here: diag(2693, 1 /* Error */, "_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_2693", "'{0}' only refers to a type, but is being used as a value here."), - Namespace_0_has_no_exported_member_1: diag(2694, 1 /* Error */, "Namespace_0_has_no_exported_member_1_2694", "Namespace '{0}' has no exported member '{1}'."), - Left_side_of_comma_operator_is_unused_and_has_no_side_effects: diag(2695, 1 /* Error */, "Left_side_of_comma_operator_is_unused_and_has_no_side_effects_2695", "Left side of comma operator is unused and has no side effects.", - /*reportsUnnecessary*/ - true), - The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead: diag(2696, 1 /* Error */, "The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead_2696", "The 'Object' type is assignable to very few other types. Did you mean to use the 'any' type instead?"), - An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option: diag(2697, 1 /* Error */, "An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_in_2697", "An async function or method must return a 'Promise'. Make sure you have a declaration for 'Promise' or include 'ES2015' in your '--lib' option."), - Spread_types_may_only_be_created_from_object_types: diag(2698, 1 /* Error */, "Spread_types_may_only_be_created_from_object_types_2698", "Spread types may only be created from object types."), - Static_property_0_conflicts_with_built_in_property_Function_0_of_constructor_function_1: diag(2699, 1 /* Error */, "Static_property_0_conflicts_with_built_in_property_Function_0_of_constructor_function_1_2699", "Static property '{0}' conflicts with built-in property 'Function.{0}' of constructor function '{1}'."), - Rest_types_may_only_be_created_from_object_types: diag(2700, 1 /* Error */, "Rest_types_may_only_be_created_from_object_types_2700", "Rest types may only be created from object types."), - The_target_of_an_object_rest_assignment_must_be_a_variable_or_a_property_access: diag(2701, 1 /* Error */, "The_target_of_an_object_rest_assignment_must_be_a_variable_or_a_property_access_2701", "The target of an object rest assignment must be a variable or a property access."), - _0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here: diag(2702, 1 /* Error */, "_0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here_2702", "'{0}' only refers to a type, but is being used as a namespace here."), - The_operand_of_a_delete_operator_must_be_a_property_reference: diag(2703, 1 /* Error */, "The_operand_of_a_delete_operator_must_be_a_property_reference_2703", "The operand of a 'delete' operator must be a property reference."), - The_operand_of_a_delete_operator_cannot_be_a_read_only_property: diag(2704, 1 /* Error */, "The_operand_of_a_delete_operator_cannot_be_a_read_only_property_2704", "The operand of a 'delete' operator cannot be a read-only property."), - An_async_function_or_method_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option: diag(2705, 1 /* Error */, "An_async_function_or_method_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_de_2705", "An async function or method in ES5/ES3 requires the 'Promise' constructor. Make sure you have a declaration for the 'Promise' constructor or include 'ES2015' in your '--lib' option."), - Required_type_parameters_may_not_follow_optional_type_parameters: diag(2706, 1 /* Error */, "Required_type_parameters_may_not_follow_optional_type_parameters_2706", "Required type parameters may not follow optional type parameters."), - Generic_type_0_requires_between_1_and_2_type_arguments: diag(2707, 1 /* Error */, "Generic_type_0_requires_between_1_and_2_type_arguments_2707", "Generic type '{0}' requires between {1} and {2} type arguments."), - Cannot_use_namespace_0_as_a_value: diag(2708, 1 /* Error */, "Cannot_use_namespace_0_as_a_value_2708", "Cannot use namespace '{0}' as a value."), - Cannot_use_namespace_0_as_a_type: diag(2709, 1 /* Error */, "Cannot_use_namespace_0_as_a_type_2709", "Cannot use namespace '{0}' as a type."), - _0_are_specified_twice_The_attribute_named_0_will_be_overwritten: diag(2710, 1 /* Error */, "_0_are_specified_twice_The_attribute_named_0_will_be_overwritten_2710", "'{0}' are specified twice. The attribute named '{0}' will be overwritten."), - A_dynamic_import_call_returns_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option: diag(2711, 1 /* Error */, "A_dynamic_import_call_returns_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES20_2711", "A dynamic import call returns a 'Promise'. Make sure you have a declaration for 'Promise' or include 'ES2015' in your '--lib' option."), - A_dynamic_import_call_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option: diag(2712, 1 /* Error */, "A_dynamic_import_call_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declarat_2712", "A dynamic import call in ES5/ES3 requires the 'Promise' constructor. Make sure you have a declaration for the 'Promise' constructor or include 'ES2015' in your '--lib' option."), - Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_property_1_in_0_with_0_1: diag(2713, 1 /* Error */, "Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_p_2713", "Cannot access '{0}.{1}' because '{0}' is a type, but not a namespace. Did you mean to retrieve the type of the property '{1}' in '{0}' with '{0}[\"{1}\"]'?"), - The_expression_of_an_export_assignment_must_be_an_identifier_or_qualified_name_in_an_ambient_context: diag(2714, 1 /* Error */, "The_expression_of_an_export_assignment_must_be_an_identifier_or_qualified_name_in_an_ambient_context_2714", "The expression of an export assignment must be an identifier or qualified name in an ambient context."), - Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor: diag(2715, 1 /* Error */, "Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor_2715", "Abstract property '{0}' in class '{1}' cannot be accessed in the constructor."), - Type_parameter_0_has_a_circular_default: diag(2716, 1 /* Error */, "Type_parameter_0_has_a_circular_default_2716", "Type parameter '{0}' has a circular default."), - Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_type_2: diag(2717, 1 /* Error */, "Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_t_2717", "Subsequent property declarations must have the same type. Property '{0}' must be of type '{1}', but here has type '{2}'."), - Duplicate_property_0: diag(2718, 1 /* Error */, "Duplicate_property_0_2718", "Duplicate property '{0}'."), - Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated: diag(2719, 1 /* Error */, "Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated_2719", "Type '{0}' is not assignable to type '{1}'. Two different types with this name exist, but they are unrelated."), - Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclass: diag(2720, 1 /* Error */, "Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclas_2720", "Class '{0}' incorrectly implements class '{1}'. Did you mean to extend '{1}' and inherit its members as a subclass?"), - Cannot_invoke_an_object_which_is_possibly_null: diag(2721, 1 /* Error */, "Cannot_invoke_an_object_which_is_possibly_null_2721", "Cannot invoke an object which is possibly 'null'."), - Cannot_invoke_an_object_which_is_possibly_undefined: diag(2722, 1 /* Error */, "Cannot_invoke_an_object_which_is_possibly_undefined_2722", "Cannot invoke an object which is possibly 'undefined'."), - Cannot_invoke_an_object_which_is_possibly_null_or_undefined: diag(2723, 1 /* Error */, "Cannot_invoke_an_object_which_is_possibly_null_or_undefined_2723", "Cannot invoke an object which is possibly 'null' or 'undefined'."), - _0_has_no_exported_member_named_1_Did_you_mean_2: diag(2724, 1 /* Error */, "_0_has_no_exported_member_named_1_Did_you_mean_2_2724", "'{0}' has no exported member named '{1}'. Did you mean '{2}'?"), - Class_name_cannot_be_Object_when_targeting_ES5_with_module_0: diag(2725, 1 /* Error */, "Class_name_cannot_be_Object_when_targeting_ES5_with_module_0_2725", "Class name cannot be 'Object' when targeting ES5 with module {0}."), - Cannot_find_lib_definition_for_0: diag(2726, 1 /* Error */, "Cannot_find_lib_definition_for_0_2726", "Cannot find lib definition for '{0}'."), - Cannot_find_lib_definition_for_0_Did_you_mean_1: diag(2727, 1 /* Error */, "Cannot_find_lib_definition_for_0_Did_you_mean_1_2727", "Cannot find lib definition for '{0}'. Did you mean '{1}'?"), - _0_is_declared_here: diag(2728, 3 /* Message */, "_0_is_declared_here_2728", "'{0}' is declared here."), - Property_0_is_used_before_its_initialization: diag(2729, 1 /* Error */, "Property_0_is_used_before_its_initialization_2729", "Property '{0}' is used before its initialization."), - An_arrow_function_cannot_have_a_this_parameter: diag(2730, 1 /* Error */, "An_arrow_function_cannot_have_a_this_parameter_2730", "An arrow function cannot have a 'this' parameter."), - Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_in_String: diag(2731, 1 /* Error */, "Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_i_2731", "Implicit conversion of a 'symbol' to a 'string' will fail at runtime. Consider wrapping this expression in 'String(...)'."), - Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension: diag(2732, 1 /* Error */, "Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension_2732", "Cannot find module '{0}'. Consider using '--resolveJsonModule' to import module with '.json' extension."), - Property_0_was_also_declared_here: diag(2733, 1 /* Error */, "Property_0_was_also_declared_here_2733", "Property '{0}' was also declared here."), - Are_you_missing_a_semicolon: diag(2734, 1 /* Error */, "Are_you_missing_a_semicolon_2734", "Are you missing a semicolon?"), - Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1: diag(2735, 1 /* Error */, "Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1_2735", "Did you mean for '{0}' to be constrained to type 'new (...args: any[]) => {1}'?"), - Operator_0_cannot_be_applied_to_type_1: diag(2736, 1 /* Error */, "Operator_0_cannot_be_applied_to_type_1_2736", "Operator '{0}' cannot be applied to type '{1}'."), - BigInt_literals_are_not_available_when_targeting_lower_than_ES2020: diag(2737, 1 /* Error */, "BigInt_literals_are_not_available_when_targeting_lower_than_ES2020_2737", "BigInt literals are not available when targeting lower than ES2020."), - An_outer_value_of_this_is_shadowed_by_this_container: diag(2738, 3 /* Message */, "An_outer_value_of_this_is_shadowed_by_this_container_2738", "An outer value of 'this' is shadowed by this container."), - Type_0_is_missing_the_following_properties_from_type_1_Colon_2: diag(2739, 1 /* Error */, "Type_0_is_missing_the_following_properties_from_type_1_Colon_2_2739", "Type '{0}' is missing the following properties from type '{1}': {2}"), - Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more: diag(2740, 1 /* Error */, "Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more_2740", "Type '{0}' is missing the following properties from type '{1}': {2}, and {3} more."), - Property_0_is_missing_in_type_1_but_required_in_type_2: diag(2741, 1 /* Error */, "Property_0_is_missing_in_type_1_but_required_in_type_2_2741", "Property '{0}' is missing in type '{1}' but required in type '{2}'."), - The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_annotation_is_necessary: diag(2742, 1 /* Error */, "The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_a_2742", "The inferred type of '{0}' cannot be named without a reference to '{1}'. This is likely not portable. A type annotation is necessary."), - No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments: diag(2743, 1 /* Error */, "No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments_2743", "No overload expects {0} type arguments, but overloads do exist that expect either {1} or {2} type arguments."), - Type_parameter_defaults_can_only_reference_previously_declared_type_parameters: diag(2744, 1 /* Error */, "Type_parameter_defaults_can_only_reference_previously_declared_type_parameters_2744", "Type parameter defaults can only reference previously declared type parameters."), - This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_provided: diag(2745, 1 /* Error */, "This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_pr_2745", "This JSX tag's '{0}' prop expects type '{1}' which requires multiple children, but only a single child was provided."), - This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided: diag(2746, 1 /* Error */, "This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided_2746", "This JSX tag's '{0}' prop expects a single child of type '{1}', but multiple children were provided."), - _0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_type_of_1_is_2: diag(2747, 1 /* Error */, "_0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_t_2747", "'{0}' components don't accept text as child elements. Text in JSX has the type 'string', but the expected type of '{1}' is '{2}'."), - Cannot_access_ambient_const_enums_when_0_is_enabled: diag(2748, 1 /* Error */, "Cannot_access_ambient_const_enums_when_0_is_enabled_2748", "Cannot access ambient const enums when '{0}' is enabled."), - _0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0: diag(2749, 1 /* Error */, "_0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0_2749", "'{0}' refers to a value, but is being used as a type here. Did you mean 'typeof {0}'?"), - The_implementation_signature_is_declared_here: diag(2750, 1 /* Error */, "The_implementation_signature_is_declared_here_2750", "The implementation signature is declared here."), - Circularity_originates_in_type_at_this_location: diag(2751, 1 /* Error */, "Circularity_originates_in_type_at_this_location_2751", "Circularity originates in type at this location."), - The_first_export_default_is_here: diag(2752, 1 /* Error */, "The_first_export_default_is_here_2752", "The first export default is here."), - Another_export_default_is_here: diag(2753, 1 /* Error */, "Another_export_default_is_here_2753", "Another export default is here."), - super_may_not_use_type_arguments: diag(2754, 1 /* Error */, "super_may_not_use_type_arguments_2754", "'super' may not use type arguments."), - No_constituent_of_type_0_is_callable: diag(2755, 1 /* Error */, "No_constituent_of_type_0_is_callable_2755", "No constituent of type '{0}' is callable."), - Not_all_constituents_of_type_0_are_callable: diag(2756, 1 /* Error */, "Not_all_constituents_of_type_0_are_callable_2756", "Not all constituents of type '{0}' are callable."), - Type_0_has_no_call_signatures: diag(2757, 1 /* Error */, "Type_0_has_no_call_signatures_2757", "Type '{0}' has no call signatures."), - Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_other: diag(2758, 1 /* Error */, "Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_2758", "Each member of the union type '{0}' has signatures, but none of those signatures are compatible with each other."), - No_constituent_of_type_0_is_constructable: diag(2759, 1 /* Error */, "No_constituent_of_type_0_is_constructable_2759", "No constituent of type '{0}' is constructable."), - Not_all_constituents_of_type_0_are_constructable: diag(2760, 1 /* Error */, "Not_all_constituents_of_type_0_are_constructable_2760", "Not all constituents of type '{0}' are constructable."), - Type_0_has_no_construct_signatures: diag(2761, 1 /* Error */, "Type_0_has_no_construct_signatures_2761", "Type '{0}' has no construct signatures."), - Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_with_each_other: diag(2762, 1 /* Error */, "Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_2762", "Each member of the union type '{0}' has construct signatures, but none of those signatures are compatible with each other."), - Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_send_0: diag(2763, 1 /* Error */, "Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_s_2763", "Cannot iterate value because the 'next' method of its iterator expects type '{1}', but for-of will always send '{0}'."), - Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_always_send_0: diag(2764, 1 /* Error */, "Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_al_2764", "Cannot iterate value because the 'next' method of its iterator expects type '{1}', but array spread will always send '{0}'."), - Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring_will_always_send_0: diag(2765, 1 /* Error */, "Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring__2765", "Cannot iterate value because the 'next' method of its iterator expects type '{1}', but array destructuring will always send '{0}'."), - Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_containing_generator_will_always_send_0: diag(2766, 1 /* Error */, "Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_co_2766", "Cannot delegate iteration to value because the 'next' method of its iterator expects type '{1}', but the containing generator will always send '{0}'."), - The_0_property_of_an_iterator_must_be_a_method: diag(2767, 1 /* Error */, "The_0_property_of_an_iterator_must_be_a_method_2767", "The '{0}' property of an iterator must be a method."), - The_0_property_of_an_async_iterator_must_be_a_method: diag(2768, 1 /* Error */, "The_0_property_of_an_async_iterator_must_be_a_method_2768", "The '{0}' property of an async iterator must be a method."), - No_overload_matches_this_call: diag(2769, 1 /* Error */, "No_overload_matches_this_call_2769", "No overload matches this call."), - The_last_overload_gave_the_following_error: diag(2770, 1 /* Error */, "The_last_overload_gave_the_following_error_2770", "The last overload gave the following error."), - The_last_overload_is_declared_here: diag(2771, 1 /* Error */, "The_last_overload_is_declared_here_2771", "The last overload is declared here."), - Overload_0_of_1_2_gave_the_following_error: diag(2772, 1 /* Error */, "Overload_0_of_1_2_gave_the_following_error_2772", "Overload {0} of {1}, '{2}', gave the following error."), - Did_you_forget_to_use_await: diag(2773, 1 /* Error */, "Did_you_forget_to_use_await_2773", "Did you forget to use 'await'?"), - This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_instead: diag(2774, 1 /* Error */, "This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_2774", "This condition will always return true since this function is always defined. Did you mean to call it instead?"), - Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation: diag(2775, 1 /* Error */, "Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation_2775", "Assertions require every name in the call target to be declared with an explicit type annotation."), - Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name: diag(2776, 1 /* Error */, "Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name_2776", "Assertions require the call target to be an identifier or qualified name."), - The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access: diag(2777, 1 /* Error */, "The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access_2777", "The operand of an increment or decrement operator may not be an optional property access."), - The_target_of_an_object_rest_assignment_may_not_be_an_optional_property_access: diag(2778, 1 /* Error */, "The_target_of_an_object_rest_assignment_may_not_be_an_optional_property_access_2778", "The target of an object rest assignment may not be an optional property access."), - The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access: diag(2779, 1 /* Error */, "The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access_2779", "The left-hand side of an assignment expression may not be an optional property access."), - The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access: diag(2780, 1 /* Error */, "The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access_2780", "The left-hand side of a 'for...in' statement may not be an optional property access."), - The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access: diag(2781, 1 /* Error */, "The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access_2781", "The left-hand side of a 'for...of' statement may not be an optional property access."), - _0_needs_an_explicit_type_annotation: diag(2782, 3 /* Message */, "_0_needs_an_explicit_type_annotation_2782", "'{0}' needs an explicit type annotation."), - _0_is_specified_more_than_once_so_this_usage_will_be_overwritten: diag(2783, 1 /* Error */, "_0_is_specified_more_than_once_so_this_usage_will_be_overwritten_2783", "'{0}' is specified more than once, so this usage will be overwritten."), - get_and_set_accessors_cannot_declare_this_parameters: diag(2784, 1 /* Error */, "get_and_set_accessors_cannot_declare_this_parameters_2784", "'get' and 'set' accessors cannot declare 'this' parameters."), - This_spread_always_overwrites_this_property: diag(2785, 1 /* Error */, "This_spread_always_overwrites_this_property_2785", "This spread always overwrites this property."), - _0_cannot_be_used_as_a_JSX_component: diag(2786, 1 /* Error */, "_0_cannot_be_used_as_a_JSX_component_2786", "'{0}' cannot be used as a JSX component."), - Its_return_type_0_is_not_a_valid_JSX_element: diag(2787, 1 /* Error */, "Its_return_type_0_is_not_a_valid_JSX_element_2787", "Its return type '{0}' is not a valid JSX element."), - Its_instance_type_0_is_not_a_valid_JSX_element: diag(2788, 1 /* Error */, "Its_instance_type_0_is_not_a_valid_JSX_element_2788", "Its instance type '{0}' is not a valid JSX element."), - Its_element_type_0_is_not_a_valid_JSX_element: diag(2789, 1 /* Error */, "Its_element_type_0_is_not_a_valid_JSX_element_2789", "Its element type '{0}' is not a valid JSX element."), - The_operand_of_a_delete_operator_must_be_optional: diag(2790, 1 /* Error */, "The_operand_of_a_delete_operator_must_be_optional_2790", "The operand of a 'delete' operator must be optional."), - Exponentiation_cannot_be_performed_on_bigint_values_unless_the_target_option_is_set_to_es2016_or_later: diag(2791, 1 /* Error */, "Exponentiation_cannot_be_performed_on_bigint_values_unless_the_target_option_is_set_to_es2016_or_lat_2791", "Exponentiation cannot be performed on 'bigint' values unless the 'target' option is set to 'es2016' or later."), - Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_nodenext_or_to_add_aliases_to_the_paths_option: diag(2792, 1 /* Error */, "Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_nodenext_or_to_add_aliases_t_2792", "Cannot find module '{0}'. Did you mean to set the 'moduleResolution' option to 'nodenext', or to add aliases to the 'paths' option?"), - The_call_would_have_succeeded_against_this_implementation_but_implementation_signatures_of_overloads_are_not_externally_visible: diag(2793, 1 /* Error */, "The_call_would_have_succeeded_against_this_implementation_but_implementation_signatures_of_overloads_2793", "The call would have succeeded against this implementation, but implementation signatures of overloads are not externally visible."), - Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise: diag(2794, 1 /* Error */, "Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise_2794", "Expected {0} arguments, but got {1}. Did you forget to include 'void' in your type argument to 'Promise'?"), - The_intrinsic_keyword_can_only_be_used_to_declare_compiler_provided_intrinsic_types: diag(2795, 1 /* Error */, "The_intrinsic_keyword_can_only_be_used_to_declare_compiler_provided_intrinsic_types_2795", "The 'intrinsic' keyword can only be used to declare compiler provided intrinsic types."), - It_is_likely_that_you_are_missing_a_comma_to_separate_these_two_template_expressions_They_form_a_tagged_template_expression_which_cannot_be_invoked: diag(2796, 1 /* Error */, "It_is_likely_that_you_are_missing_a_comma_to_separate_these_two_template_expressions_They_form_a_tag_2796", "It is likely that you are missing a comma to separate these two template expressions. They form a tagged template expression which cannot be invoked."), - A_mixin_class_that_extends_from_a_type_variable_containing_an_abstract_construct_signature_must_also_be_declared_abstract: diag(2797, 1 /* Error */, "A_mixin_class_that_extends_from_a_type_variable_containing_an_abstract_construct_signature_must_also_2797", "A mixin class that extends from a type variable containing an abstract construct signature must also be declared 'abstract'."), - The_declaration_was_marked_as_deprecated_here: diag(2798, 1 /* Error */, "The_declaration_was_marked_as_deprecated_here_2798", "The declaration was marked as deprecated here."), - Type_produces_a_tuple_type_that_is_too_large_to_represent: diag(2799, 1 /* Error */, "Type_produces_a_tuple_type_that_is_too_large_to_represent_2799", "Type produces a tuple type that is too large to represent."), - Expression_produces_a_tuple_type_that_is_too_large_to_represent: diag(2800, 1 /* Error */, "Expression_produces_a_tuple_type_that_is_too_large_to_represent_2800", "Expression produces a tuple type that is too large to represent."), - This_condition_will_always_return_true_since_this_0_is_always_defined: diag(2801, 1 /* Error */, "This_condition_will_always_return_true_since_this_0_is_always_defined_2801", "This condition will always return true since this '{0}' is always defined."), - Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher: diag(2802, 1 /* Error */, "Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es201_2802", "Type '{0}' can only be iterated through when using the '--downlevelIteration' flag or with a '--target' of 'es2015' or higher."), - Cannot_assign_to_private_method_0_Private_methods_are_not_writable: diag(2803, 1 /* Error */, "Cannot_assign_to_private_method_0_Private_methods_are_not_writable_2803", "Cannot assign to private method '{0}'. Private methods are not writable."), - Duplicate_identifier_0_Static_and_instance_elements_cannot_share_the_same_private_name: diag(2804, 1 /* Error */, "Duplicate_identifier_0_Static_and_instance_elements_cannot_share_the_same_private_name_2804", "Duplicate identifier '{0}'. Static and instance elements cannot share the same private name."), - Private_accessor_was_defined_without_a_getter: diag(2806, 1 /* Error */, "Private_accessor_was_defined_without_a_getter_2806", "Private accessor was defined without a getter."), - This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_one_in_0_Consider_upgrading_your_version_of_0: diag(2807, 1 /* Error */, "This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_o_2807", "This syntax requires an imported helper named '{1}' with {2} parameters, which is not compatible with the one in '{0}'. Consider upgrading your version of '{0}'."), - A_get_accessor_must_be_at_least_as_accessible_as_the_setter: diag(2808, 1 /* Error */, "A_get_accessor_must_be_at_least_as_accessible_as_the_setter_2808", "A get accessor must be at least as accessible as the setter"), - Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_destructuring_assignment_you_might_need_to_wrap_the_whole_assignment_in_parentheses: diag(2809, 1 /* Error */, "Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_d_2809", "Declaration or statement expected. This '=' follows a block of statements, so if you intended to write a destructuring assignment, you might need to wrap the whole assignment in parentheses."), - Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_without_arguments: diag(2810, 1 /* Error */, "Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_2810", "Expected 1 argument, but got 0. 'new Promise()' needs a JSDoc hint to produce a 'resolve' that can be called without arguments."), - Initializer_for_property_0: diag(2811, 1 /* Error */, "Initializer_for_property_0_2811", "Initializer for property '{0}'"), - Property_0_does_not_exist_on_type_1_Try_changing_the_lib_compiler_option_to_include_dom: diag(2812, 1 /* Error */, "Property_0_does_not_exist_on_type_1_Try_changing_the_lib_compiler_option_to_include_dom_2812", "Property '{0}' does not exist on type '{1}'. Try changing the 'lib' compiler option to include 'dom'."), - Class_declaration_cannot_implement_overload_list_for_0: diag(2813, 1 /* Error */, "Class_declaration_cannot_implement_overload_list_for_0_2813", "Class declaration cannot implement overload list for '{0}'."), - Function_with_bodies_can_only_merge_with_classes_that_are_ambient: diag(2814, 1 /* Error */, "Function_with_bodies_can_only_merge_with_classes_that_are_ambient_2814", "Function with bodies can only merge with classes that are ambient."), - arguments_cannot_be_referenced_in_property_initializers: diag(2815, 1 /* Error */, "arguments_cannot_be_referenced_in_property_initializers_2815", "'arguments' cannot be referenced in property initializers."), - Cannot_use_this_in_a_static_property_initializer_of_a_decorated_class: diag(2816, 1 /* Error */, "Cannot_use_this_in_a_static_property_initializer_of_a_decorated_class_2816", "Cannot use 'this' in a static property initializer of a decorated class."), - Property_0_has_no_initializer_and_is_not_definitely_assigned_in_a_class_static_block: diag(2817, 1 /* Error */, "Property_0_has_no_initializer_and_is_not_definitely_assigned_in_a_class_static_block_2817", "Property '{0}' has no initializer and is not definitely assigned in a class static block."), - Duplicate_identifier_0_Compiler_reserves_name_1_when_emitting_super_references_in_static_initializers: diag(2818, 1 /* Error */, "Duplicate_identifier_0_Compiler_reserves_name_1_when_emitting_super_references_in_static_initializer_2818", "Duplicate identifier '{0}'. Compiler reserves name '{1}' when emitting 'super' references in static initializers."), - Namespace_name_cannot_be_0: diag(2819, 1 /* Error */, "Namespace_name_cannot_be_0_2819", "Namespace name cannot be '{0}'."), - Type_0_is_not_assignable_to_type_1_Did_you_mean_2: diag(2820, 1 /* Error */, "Type_0_is_not_assignable_to_type_1_Did_you_mean_2_2820", "Type '{0}' is not assignable to type '{1}'. Did you mean '{2}'?"), - Import_assertions_are_only_supported_when_the_module_option_is_set_to_esnext_or_nodenext: diag(2821, 1 /* Error */, "Import_assertions_are_only_supported_when_the_module_option_is_set_to_esnext_or_nodenext_2821", "Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'."), - Import_assertions_cannot_be_used_with_type_only_imports_or_exports: diag(2822, 1 /* Error */, "Import_assertions_cannot_be_used_with_type_only_imports_or_exports_2822", "Import assertions cannot be used with type-only imports or exports."), - Cannot_find_namespace_0_Did_you_mean_1: diag(2833, 1 /* Error */, "Cannot_find_namespace_0_Did_you_mean_1_2833", "Cannot find namespace '{0}'. Did you mean '{1}'?"), - Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_node16_or_nodenext_Consider_adding_an_extension_to_the_import_path: diag(2834, 1 /* Error */, "Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_n_2834", "Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node16' or 'nodenext'. Consider adding an extension to the import path."), - Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_node16_or_nodenext_Did_you_mean_0: diag(2835, 1 /* Error */, "Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_n_2835", "Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node16' or 'nodenext'. Did you mean '{0}'?"), - Import_assertions_are_not_allowed_on_statements_that_transpile_to_commonjs_require_calls: diag(2836, 1 /* Error */, "Import_assertions_are_not_allowed_on_statements_that_transpile_to_commonjs_require_calls_2836", "Import assertions are not allowed on statements that transpile to commonjs 'require' calls."), - Import_assertion_values_must_be_string_literal_expressions: diag(2837, 1 /* Error */, "Import_assertion_values_must_be_string_literal_expressions_2837", "Import assertion values must be string literal expressions."), - All_declarations_of_0_must_have_identical_constraints: diag(2838, 1 /* Error */, "All_declarations_of_0_must_have_identical_constraints_2838", "All declarations of '{0}' must have identical constraints."), - This_condition_will_always_return_0_since_JavaScript_compares_objects_by_reference_not_value: diag(2839, 1 /* Error */, "This_condition_will_always_return_0_since_JavaScript_compares_objects_by_reference_not_value_2839", "This condition will always return '{0}' since JavaScript compares objects by reference, not value."), - An_interface_cannot_extend_a_primitive_type_like_0_an_interface_can_only_extend_named_types_and_classes: diag(2840, 1 /* Error */, "An_interface_cannot_extend_a_primitive_type_like_0_an_interface_can_only_extend_named_types_and_clas_2840", "An interface cannot extend a primitive type like '{0}'; an interface can only extend named types and classes"), - The_type_of_this_expression_cannot_be_named_without_a_resolution_mode_assertion_which_is_an_unstable_feature_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next: diag(2841, 1 /* Error */, "The_type_of_this_expression_cannot_be_named_without_a_resolution_mode_assertion_which_is_an_unstable_2841", "The type of this expression cannot be named without a 'resolution-mode' assertion, which is an unstable feature. Use nightly TypeScript to silence this error. Try updating with 'npm install -D typescript@next'."), - _0_is_an_unused_renaming_of_1_Did_you_intend_to_use_it_as_a_type_annotation: diag(2842, 1 /* Error */, "_0_is_an_unused_renaming_of_1_Did_you_intend_to_use_it_as_a_type_annotation_2842", "'{0}' is an unused renaming of '{1}'. Did you intend to use it as a type annotation?"), - We_can_only_write_a_type_for_0_by_adding_a_type_for_the_entire_parameter_here: diag(2843, 1 /* Error */, "We_can_only_write_a_type_for_0_by_adding_a_type_for_the_entire_parameter_here_2843", "We can only write a type for '{0}' by adding a type for the entire parameter here."), - Type_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor: diag(2844, 1 /* Error */, "Type_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor_2844", "Type of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor."), - This_condition_will_always_return_0: diag(2845, 1 /* Error */, "This_condition_will_always_return_0_2845", "This condition will always return '{0}'."), - A_declaration_file_cannot_be_imported_without_import_type_Did_you_mean_to_import_an_implementation_file_0_instead: diag(2846, 1 /* Error */, "A_declaration_file_cannot_be_imported_without_import_type_Did_you_mean_to_import_an_implementation_f_2846", "A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file '{0}' instead?"), - The_right_hand_side_of_an_instanceof_expression_must_not_be_an_instantiation_expression: diag(2848, 1 /* Error */, "The_right_hand_side_of_an_instanceof_expression_must_not_be_an_instantiation_expression_2848", "The right-hand side of an 'instanceof' expression must not be an instantiation expression."), - Target_signature_provides_too_few_arguments_Expected_0_or_more_but_got_1: diag(2849, 1 /* Error */, "Target_signature_provides_too_few_arguments_Expected_0_or_more_but_got_1_2849", "Target signature provides too few arguments. Expected {0} or more, but got {1}."), - The_initializer_of_a_using_declaration_must_be_either_an_object_with_a_Symbol_dispose_method_or_be_null_or_undefined: diag(2850, 1 /* Error */, "The_initializer_of_a_using_declaration_must_be_either_an_object_with_a_Symbol_dispose_method_or_be_n_2850", "The initializer of a 'using' declaration must be either an object with a '[Symbol.dispose]()' method, or be 'null' or 'undefined'."), - The_initializer_of_an_await_using_declaration_must_be_either_an_object_with_a_Symbol_asyncDispose_or_Symbol_dispose_method_or_be_null_or_undefined: diag(2851, 1 /* Error */, "The_initializer_of_an_await_using_declaration_must_be_either_an_object_with_a_Symbol_asyncDispose_or_2851", "The initializer of an 'await using' declaration must be either an object with a '[Symbol.asyncDispose]()' or '[Symbol.dispose]()' method, or be 'null' or 'undefined'."), - await_using_statements_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules: diag(2852, 1 /* Error */, "await_using_statements_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules_2852", "'await using' statements are only allowed within async functions and at the top levels of modules."), - await_using_statements_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module: diag(2853, 1 /* Error */, "await_using_statements_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_th_2853", "'await using' statements are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module."), - Top_level_await_using_statements_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_or_nodenext_and_the_target_option_is_set_to_es2017_or_higher: diag(2854, 1 /* Error */, "Top_level_await_using_statements_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_sys_2854", "Top-level 'await using' statements are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', or 'nodenext', and the 'target' option is set to 'es2017' or higher."), - Import_declaration_0_is_using_private_name_1: diag(4e3, 1 /* Error */, "Import_declaration_0_is_using_private_name_1_4000", "Import declaration '{0}' is using private name '{1}'."), - Type_parameter_0_of_exported_class_has_or_is_using_private_name_1: diag(4002, 1 /* Error */, "Type_parameter_0_of_exported_class_has_or_is_using_private_name_1_4002", "Type parameter '{0}' of exported class has or is using private name '{1}'."), - Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1: diag(4004, 1 /* Error */, "Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1_4004", "Type parameter '{0}' of exported interface has or is using private name '{1}'."), - Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1: diag(4006, 1 /* Error */, "Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1_4006", "Type parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'."), - Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1: diag(4008, 1 /* Error */, "Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1_4008", "Type parameter '{0}' of call signature from exported interface has or is using private name '{1}'."), - Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1: diag(4010, 1 /* Error */, "Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1_4010", "Type parameter '{0}' of public static method from exported class has or is using private name '{1}'."), - Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1: diag(4012, 1 /* Error */, "Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1_4012", "Type parameter '{0}' of public method from exported class has or is using private name '{1}'."), - Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1: diag(4014, 1 /* Error */, "Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1_4014", "Type parameter '{0}' of method from exported interface has or is using private name '{1}'."), - Type_parameter_0_of_exported_function_has_or_is_using_private_name_1: diag(4016, 1 /* Error */, "Type_parameter_0_of_exported_function_has_or_is_using_private_name_1_4016", "Type parameter '{0}' of exported function has or is using private name '{1}'."), - Implements_clause_of_exported_class_0_has_or_is_using_private_name_1: diag(4019, 1 /* Error */, "Implements_clause_of_exported_class_0_has_or_is_using_private_name_1_4019", "Implements clause of exported class '{0}' has or is using private name '{1}'."), - extends_clause_of_exported_class_0_has_or_is_using_private_name_1: diag(4020, 1 /* Error */, "extends_clause_of_exported_class_0_has_or_is_using_private_name_1_4020", "'extends' clause of exported class '{0}' has or is using private name '{1}'."), - extends_clause_of_exported_class_has_or_is_using_private_name_0: diag(4021, 1 /* Error */, "extends_clause_of_exported_class_has_or_is_using_private_name_0_4021", "'extends' clause of exported class has or is using private name '{0}'."), - extends_clause_of_exported_interface_0_has_or_is_using_private_name_1: diag(4022, 1 /* Error */, "extends_clause_of_exported_interface_0_has_or_is_using_private_name_1_4022", "'extends' clause of exported interface '{0}' has or is using private name '{1}'."), - Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: diag(4023, 1 /* Error */, "Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4023", "Exported variable '{0}' has or is using name '{1}' from external module {2} but cannot be named."), - Exported_variable_0_has_or_is_using_name_1_from_private_module_2: diag(4024, 1 /* Error */, "Exported_variable_0_has_or_is_using_name_1_from_private_module_2_4024", "Exported variable '{0}' has or is using name '{1}' from private module '{2}'."), - Exported_variable_0_has_or_is_using_private_name_1: diag(4025, 1 /* Error */, "Exported_variable_0_has_or_is_using_private_name_1_4025", "Exported variable '{0}' has or is using private name '{1}'."), - Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: diag(4026, 1 /* Error */, "Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot__4026", "Public static property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named."), - Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: diag(4027, 1 /* Error */, "Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4027", "Public static property '{0}' of exported class has or is using name '{1}' from private module '{2}'."), - Public_static_property_0_of_exported_class_has_or_is_using_private_name_1: diag(4028, 1 /* Error */, "Public_static_property_0_of_exported_class_has_or_is_using_private_name_1_4028", "Public static property '{0}' of exported class has or is using private name '{1}'."), - Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: diag(4029, 1 /* Error */, "Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_name_4029", "Public property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named."), - Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: diag(4030, 1 /* Error */, "Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4030", "Public property '{0}' of exported class has or is using name '{1}' from private module '{2}'."), - Public_property_0_of_exported_class_has_or_is_using_private_name_1: diag(4031, 1 /* Error */, "Public_property_0_of_exported_class_has_or_is_using_private_name_1_4031", "Public property '{0}' of exported class has or is using private name '{1}'."), - Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2: diag(4032, 1 /* Error */, "Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2_4032", "Property '{0}' of exported interface has or is using name '{1}' from private module '{2}'."), - Property_0_of_exported_interface_has_or_is_using_private_name_1: diag(4033, 1 /* Error */, "Property_0_of_exported_interface_has_or_is_using_private_name_1_4033", "Property '{0}' of exported interface has or is using private name '{1}'."), - Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2: diag(4034, 1 /* Error */, "Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_mod_4034", "Parameter type of public static setter '{0}' from exported class has or is using name '{1}' from private module '{2}'."), - Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1: diag(4035, 1 /* Error */, "Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1_4035", "Parameter type of public static setter '{0}' from exported class has or is using private name '{1}'."), - Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2: diag(4036, 1 /* Error */, "Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2_4036", "Parameter type of public setter '{0}' from exported class has or is using name '{1}' from private module '{2}'."), - Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1: diag(4037, 1 /* Error */, "Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1_4037", "Parameter type of public setter '{0}' from exported class has or is using private name '{1}'."), - Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: diag(4038, 1 /* Error */, "Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_modul_4038", "Return type of public static getter '{0}' from exported class has or is using name '{1}' from external module {2} but cannot be named."), - Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2: diag(4039, 1 /* Error */, "Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_4039", "Return type of public static getter '{0}' from exported class has or is using name '{1}' from private module '{2}'."), - Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1: diag(4040, 1 /* Error */, "Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1_4040", "Return type of public static getter '{0}' from exported class has or is using private name '{1}'."), - Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: diag(4041, 1 /* Error */, "Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_4041", "Return type of public getter '{0}' from exported class has or is using name '{1}' from external module {2} but cannot be named."), - Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2: diag(4042, 1 /* Error */, "Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2_4042", "Return type of public getter '{0}' from exported class has or is using name '{1}' from private module '{2}'."), - Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1: diag(4043, 1 /* Error */, "Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1_4043", "Return type of public getter '{0}' from exported class has or is using private name '{1}'."), - Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: diag(4044, 1 /* Error */, "Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_mod_4044", "Return type of constructor signature from exported interface has or is using name '{0}' from private module '{1}'."), - Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0: diag(4045, 1 /* Error */, "Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0_4045", "Return type of constructor signature from exported interface has or is using private name '{0}'."), - Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: diag(4046, 1 /* Error */, "Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4046", "Return type of call signature from exported interface has or is using name '{0}' from private module '{1}'."), - Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0: diag(4047, 1 /* Error */, "Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0_4047", "Return type of call signature from exported interface has or is using private name '{0}'."), - Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: diag(4048, 1 /* Error */, "Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4048", "Return type of index signature from exported interface has or is using name '{0}' from private module '{1}'."), - Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0: diag(4049, 1 /* Error */, "Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0_4049", "Return type of index signature from exported interface has or is using private name '{0}'."), - Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: diag(4050, 1 /* Error */, "Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module__4050", "Return type of public static method from exported class has or is using name '{0}' from external module {1} but cannot be named."), - Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1: diag(4051, 1 /* Error */, "Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1_4051", "Return type of public static method from exported class has or is using name '{0}' from private module '{1}'."), - Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0: diag(4052, 1 /* Error */, "Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0_4052", "Return type of public static method from exported class has or is using private name '{0}'."), - Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: diag(4053, 1 /* Error */, "Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_c_4053", "Return type of public method from exported class has or is using name '{0}' from external module {1} but cannot be named."), - Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1: diag(4054, 1 /* Error */, "Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1_4054", "Return type of public method from exported class has or is using name '{0}' from private module '{1}'."), - Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0: diag(4055, 1 /* Error */, "Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0_4055", "Return type of public method from exported class has or is using private name '{0}'."), - Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1: diag(4056, 1 /* Error */, "Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4056", "Return type of method from exported interface has or is using name '{0}' from private module '{1}'."), - Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0: diag(4057, 1 /* Error */, "Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0_4057", "Return type of method from exported interface has or is using private name '{0}'."), - Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: diag(4058, 1 /* Error */, "Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named_4058", "Return type of exported function has or is using name '{0}' from external module {1} but cannot be named."), - Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1: diag(4059, 1 /* Error */, "Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1_4059", "Return type of exported function has or is using name '{0}' from private module '{1}'."), - Return_type_of_exported_function_has_or_is_using_private_name_0: diag(4060, 1 /* Error */, "Return_type_of_exported_function_has_or_is_using_private_name_0_4060", "Return type of exported function has or is using private name '{0}'."), - Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: diag(4061, 1 /* Error */, "Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_can_4061", "Parameter '{0}' of constructor from exported class has or is using name '{1}' from external module {2} but cannot be named."), - Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2: diag(4062, 1 /* Error */, "Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2_4062", "Parameter '{0}' of constructor from exported class has or is using name '{1}' from private module '{2}'."), - Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1: diag(4063, 1 /* Error */, "Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1_4063", "Parameter '{0}' of constructor from exported class has or is using private name '{1}'."), - Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2: diag(4064, 1 /* Error */, "Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_mod_4064", "Parameter '{0}' of constructor signature from exported interface has or is using name '{1}' from private module '{2}'."), - Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1: diag(4065, 1 /* Error */, "Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1_4065", "Parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'."), - Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2: diag(4066, 1 /* Error */, "Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4066", "Parameter '{0}' of call signature from exported interface has or is using name '{1}' from private module '{2}'."), - Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1: diag(4067, 1 /* Error */, "Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1_4067", "Parameter '{0}' of call signature from exported interface has or is using private name '{1}'."), - Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: diag(4068, 1 /* Error */, "Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module__4068", "Parameter '{0}' of public static method from exported class has or is using name '{1}' from external module {2} but cannot be named."), - Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2: diag(4069, 1 /* Error */, "Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2_4069", "Parameter '{0}' of public static method from exported class has or is using name '{1}' from private module '{2}'."), - Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1: diag(4070, 1 /* Error */, "Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1_4070", "Parameter '{0}' of public static method from exported class has or is using private name '{1}'."), - Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: diag(4071, 1 /* Error */, "Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_c_4071", "Parameter '{0}' of public method from exported class has or is using name '{1}' from external module {2} but cannot be named."), - Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2: diag(4072, 1 /* Error */, "Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2_4072", "Parameter '{0}' of public method from exported class has or is using name '{1}' from private module '{2}'."), - Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1: diag(4073, 1 /* Error */, "Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1_4073", "Parameter '{0}' of public method from exported class has or is using private name '{1}'."), - Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2: diag(4074, 1 /* Error */, "Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4074", "Parameter '{0}' of method from exported interface has or is using name '{1}' from private module '{2}'."), - Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1: diag(4075, 1 /* Error */, "Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1_4075", "Parameter '{0}' of method from exported interface has or is using private name '{1}'."), - Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: diag(4076, 1 /* Error */, "Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4076", "Parameter '{0}' of exported function has or is using name '{1}' from external module {2} but cannot be named."), - Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2: diag(4077, 1 /* Error */, "Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2_4077", "Parameter '{0}' of exported function has or is using name '{1}' from private module '{2}'."), - Parameter_0_of_exported_function_has_or_is_using_private_name_1: diag(4078, 1 /* Error */, "Parameter_0_of_exported_function_has_or_is_using_private_name_1_4078", "Parameter '{0}' of exported function has or is using private name '{1}'."), - Exported_type_alias_0_has_or_is_using_private_name_1: diag(4081, 1 /* Error */, "Exported_type_alias_0_has_or_is_using_private_name_1_4081", "Exported type alias '{0}' has or is using private name '{1}'."), - Default_export_of_the_module_has_or_is_using_private_name_0: diag(4082, 1 /* Error */, "Default_export_of_the_module_has_or_is_using_private_name_0_4082", "Default export of the module has or is using private name '{0}'."), - Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1: diag(4083, 1 /* Error */, "Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1_4083", "Type parameter '{0}' of exported type alias has or is using private name '{1}'."), - Exported_type_alias_0_has_or_is_using_private_name_1_from_module_2: diag(4084, 1 /* Error */, "Exported_type_alias_0_has_or_is_using_private_name_1_from_module_2_4084", "Exported type alias '{0}' has or is using private name '{1}' from module {2}."), - Extends_clause_for_inferred_type_0_has_or_is_using_private_name_1: diag(4085, 1 /* Error */, "Extends_clause_for_inferred_type_0_has_or_is_using_private_name_1_4085", "Extends clause for inferred type '{0}' has or is using private name '{1}'."), - Conflicting_definitions_for_0_found_at_1_and_2_Consider_installing_a_specific_version_of_this_library_to_resolve_the_conflict: diag(4090, 1 /* Error */, "Conflicting_definitions_for_0_found_at_1_and_2_Consider_installing_a_specific_version_of_this_librar_4090", "Conflicting definitions for '{0}' found at '{1}' and '{2}'. Consider installing a specific version of this library to resolve the conflict."), - Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2: diag(4091, 1 /* Error */, "Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4091", "Parameter '{0}' of index signature from exported interface has or is using name '{1}' from private module '{2}'."), - Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1: diag(4092, 1 /* Error */, "Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1_4092", "Parameter '{0}' of index signature from exported interface has or is using private name '{1}'."), - Property_0_of_exported_class_expression_may_not_be_private_or_protected: diag(4094, 1 /* Error */, "Property_0_of_exported_class_expression_may_not_be_private_or_protected_4094", "Property '{0}' of exported class expression may not be private or protected."), - Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: diag(4095, 1 /* Error */, "Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_4095", "Public static method '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named."), - Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: diag(4096, 1 /* Error */, "Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4096", "Public static method '{0}' of exported class has or is using name '{1}' from private module '{2}'."), - Public_static_method_0_of_exported_class_has_or_is_using_private_name_1: diag(4097, 1 /* Error */, "Public_static_method_0_of_exported_class_has_or_is_using_private_name_1_4097", "Public static method '{0}' of exported class has or is using private name '{1}'."), - Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: diag(4098, 1 /* Error */, "Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4098", "Public method '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named."), - Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: diag(4099, 1 /* Error */, "Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4099", "Public method '{0}' of exported class has or is using name '{1}' from private module '{2}'."), - Public_method_0_of_exported_class_has_or_is_using_private_name_1: diag(4100, 1 /* Error */, "Public_method_0_of_exported_class_has_or_is_using_private_name_1_4100", "Public method '{0}' of exported class has or is using private name '{1}'."), - Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2: diag(4101, 1 /* Error */, "Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2_4101", "Method '{0}' of exported interface has or is using name '{1}' from private module '{2}'."), - Method_0_of_exported_interface_has_or_is_using_private_name_1: diag(4102, 1 /* Error */, "Method_0_of_exported_interface_has_or_is_using_private_name_1_4102", "Method '{0}' of exported interface has or is using private name '{1}'."), - Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1: diag(4103, 1 /* Error */, "Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1_4103", "Type parameter '{0}' of exported mapped object type is using private name '{1}'."), - The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1: diag(4104, 1 /* Error */, "The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1_4104", "The type '{0}' is 'readonly' and cannot be assigned to the mutable type '{1}'."), - Private_or_protected_member_0_cannot_be_accessed_on_a_type_parameter: diag(4105, 1 /* Error */, "Private_or_protected_member_0_cannot_be_accessed_on_a_type_parameter_4105", "Private or protected member '{0}' cannot be accessed on a type parameter."), - Parameter_0_of_accessor_has_or_is_using_private_name_1: diag(4106, 1 /* Error */, "Parameter_0_of_accessor_has_or_is_using_private_name_1_4106", "Parameter '{0}' of accessor has or is using private name '{1}'."), - Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2: diag(4107, 1 /* Error */, "Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2_4107", "Parameter '{0}' of accessor has or is using name '{1}' from private module '{2}'."), - Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: diag(4108, 1 /* Error */, "Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4108", "Parameter '{0}' of accessor has or is using name '{1}' from external module '{2}' but cannot be named."), - Type_arguments_for_0_circularly_reference_themselves: diag(4109, 1 /* Error */, "Type_arguments_for_0_circularly_reference_themselves_4109", "Type arguments for '{0}' circularly reference themselves."), - Tuple_type_arguments_circularly_reference_themselves: diag(4110, 1 /* Error */, "Tuple_type_arguments_circularly_reference_themselves_4110", "Tuple type arguments circularly reference themselves."), - Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0: diag(4111, 1 /* Error */, "Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0_4111", "Property '{0}' comes from an index signature, so it must be accessed with ['{0}']."), - This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class: diag(4112, 1 /* Error */, "This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another__4112", "This member cannot have an 'override' modifier because its containing class '{0}' does not extend another class."), - This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0: diag(4113, 1 /* Error */, "This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_4113", "This member cannot have an 'override' modifier because it is not declared in the base class '{0}'."), - This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0: diag(4114, 1 /* Error */, "This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0_4114", "This member must have an 'override' modifier because it overrides a member in the base class '{0}'."), - This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0: diag(4115, 1 /* Error */, "This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0_4115", "This parameter property must have an 'override' modifier because it overrides a member in base class '{0}'."), - This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0: diag(4116, 1 /* Error */, "This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared__4116", "This member must have an 'override' modifier because it overrides an abstract method that is declared in the base class '{0}'."), - This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1: diag(4117, 1 /* Error */, "This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you__4117", "This member cannot have an 'override' modifier because it is not declared in the base class '{0}'. Did you mean '{1}'?"), - The_type_of_this_node_cannot_be_serialized_because_its_property_0_cannot_be_serialized: diag(4118, 1 /* Error */, "The_type_of_this_node_cannot_be_serialized_because_its_property_0_cannot_be_serialized_4118", "The type of this node cannot be serialized because its property '{0}' cannot be serialized."), - This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0: diag(4119, 1 /* Error */, "This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_4119", "This member must have a JSDoc comment with an '@override' tag because it overrides a member in the base class '{0}'."), - This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0: diag(4120, 1 /* Error */, "This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_4120", "This parameter property must have a JSDoc comment with an '@override' tag because it overrides a member in the base class '{0}'."), - This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class: diag(4121, 1 /* Error */, "This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_4121", "This member cannot have a JSDoc comment with an '@override' tag because its containing class '{0}' does not extend another class."), - This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0: diag(4122, 1 /* Error */, "This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base__4122", "This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class '{0}'."), - This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1: diag(4123, 1 /* Error */, "This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base__4123", "This member cannot have a JSDoc comment with an 'override' tag because it is not declared in the base class '{0}'. Did you mean '{1}'?"), - Compiler_option_0_of_value_1_is_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next: diag(4124, 1 /* Error */, "Compiler_option_0_of_value_1_is_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_w_4124", "Compiler option '{0}' of value '{1}' is unstable. Use nightly TypeScript to silence this error. Try updating with 'npm install -D typescript@next'."), - resolution_mode_assertions_are_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next: diag(4125, 1 /* Error */, "resolution_mode_assertions_are_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_wi_4125", "'resolution-mode' assertions are unstable. Use nightly TypeScript to silence this error. Try updating with 'npm install -D typescript@next'."), - The_current_host_does_not_support_the_0_option: diag(5001, 1 /* Error */, "The_current_host_does_not_support_the_0_option_5001", "The current host does not support the '{0}' option."), - Cannot_find_the_common_subdirectory_path_for_the_input_files: diag(5009, 1 /* Error */, "Cannot_find_the_common_subdirectory_path_for_the_input_files_5009", "Cannot find the common subdirectory path for the input files."), - File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0: diag(5010, 1 /* Error */, "File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0_5010", "File specification cannot end in a recursive directory wildcard ('**'): '{0}'."), - Cannot_read_file_0_Colon_1: diag(5012, 1 /* Error */, "Cannot_read_file_0_Colon_1_5012", "Cannot read file '{0}': {1}."), - Failed_to_parse_file_0_Colon_1: diag(5014, 1 /* Error */, "Failed_to_parse_file_0_Colon_1_5014", "Failed to parse file '{0}': {1}."), - Unknown_compiler_option_0: diag(5023, 1 /* Error */, "Unknown_compiler_option_0_5023", "Unknown compiler option '{0}'."), - Compiler_option_0_requires_a_value_of_type_1: diag(5024, 1 /* Error */, "Compiler_option_0_requires_a_value_of_type_1_5024", "Compiler option '{0}' requires a value of type {1}."), - Unknown_compiler_option_0_Did_you_mean_1: diag(5025, 1 /* Error */, "Unknown_compiler_option_0_Did_you_mean_1_5025", "Unknown compiler option '{0}'. Did you mean '{1}'?"), - Could_not_write_file_0_Colon_1: diag(5033, 1 /* Error */, "Could_not_write_file_0_Colon_1_5033", "Could not write file '{0}': {1}."), - Option_project_cannot_be_mixed_with_source_files_on_a_command_line: diag(5042, 1 /* Error */, "Option_project_cannot_be_mixed_with_source_files_on_a_command_line_5042", "Option 'project' cannot be mixed with source files on a command line."), - Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES2015_or_higher: diag(5047, 1 /* Error */, "Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES_5047", "Option 'isolatedModules' can only be used when either option '--module' is provided or option 'target' is 'ES2015' or higher."), - Option_0_cannot_be_specified_when_option_target_is_ES3: diag(5048, 1 /* Error */, "Option_0_cannot_be_specified_when_option_target_is_ES3_5048", "Option '{0}' cannot be specified when option 'target' is 'ES3'."), - Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided: diag(5051, 1 /* Error */, "Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided_5051", "Option '{0} can only be used when either option '--inlineSourceMap' or option '--sourceMap' is provided."), - Option_0_cannot_be_specified_without_specifying_option_1: diag(5052, 1 /* Error */, "Option_0_cannot_be_specified_without_specifying_option_1_5052", "Option '{0}' cannot be specified without specifying option '{1}'."), - Option_0_cannot_be_specified_with_option_1: diag(5053, 1 /* Error */, "Option_0_cannot_be_specified_with_option_1_5053", "Option '{0}' cannot be specified with option '{1}'."), - A_tsconfig_json_file_is_already_defined_at_Colon_0: diag(5054, 1 /* Error */, "A_tsconfig_json_file_is_already_defined_at_Colon_0_5054", "A 'tsconfig.json' file is already defined at: '{0}'."), - Cannot_write_file_0_because_it_would_overwrite_input_file: diag(5055, 1 /* Error */, "Cannot_write_file_0_because_it_would_overwrite_input_file_5055", "Cannot write file '{0}' because it would overwrite input file."), - Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files: diag(5056, 1 /* Error */, "Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files_5056", "Cannot write file '{0}' because it would be overwritten by multiple input files."), - Cannot_find_a_tsconfig_json_file_at_the_specified_directory_Colon_0: diag(5057, 1 /* Error */, "Cannot_find_a_tsconfig_json_file_at_the_specified_directory_Colon_0_5057", "Cannot find a tsconfig.json file at the specified directory: '{0}'."), - The_specified_path_does_not_exist_Colon_0: diag(5058, 1 /* Error */, "The_specified_path_does_not_exist_Colon_0_5058", "The specified path does not exist: '{0}'."), - Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier: diag(5059, 1 /* Error */, "Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier_5059", "Invalid value for '--reactNamespace'. '{0}' is not a valid identifier."), - Pattern_0_can_have_at_most_one_Asterisk_character: diag(5061, 1 /* Error */, "Pattern_0_can_have_at_most_one_Asterisk_character_5061", "Pattern '{0}' can have at most one '*' character."), - Substitution_0_in_pattern_1_can_have_at_most_one_Asterisk_character: diag(5062, 1 /* Error */, "Substitution_0_in_pattern_1_can_have_at_most_one_Asterisk_character_5062", "Substitution '{0}' in pattern '{1}' can have at most one '*' character."), - Substitutions_for_pattern_0_should_be_an_array: diag(5063, 1 /* Error */, "Substitutions_for_pattern_0_should_be_an_array_5063", "Substitutions for pattern '{0}' should be an array."), - Substitution_0_for_pattern_1_has_incorrect_type_expected_string_got_2: diag(5064, 1 /* Error */, "Substitution_0_for_pattern_1_has_incorrect_type_expected_string_got_2_5064", "Substitution '{0}' for pattern '{1}' has incorrect type, expected 'string', got '{2}'."), - File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0: diag(5065, 1 /* Error */, "File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildca_5065", "File specification cannot contain a parent directory ('..') that appears after a recursive directory wildcard ('**'): '{0}'."), - Substitutions_for_pattern_0_shouldn_t_be_an_empty_array: diag(5066, 1 /* Error */, "Substitutions_for_pattern_0_shouldn_t_be_an_empty_array_5066", "Substitutions for pattern '{0}' shouldn't be an empty array."), - Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name: diag(5067, 1 /* Error */, "Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name_5067", "Invalid value for 'jsxFactory'. '{0}' is not a valid identifier or qualified-name."), - Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript_files_Learn_more_at_https_Colon_Slash_Slashaka_ms_Slashtsconfig: diag(5068, 1 /* Error */, "Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript__5068", "Adding a tsconfig.json file will help organize projects that contain both TypeScript and JavaScript files. Learn more at https://aka.ms/tsconfig."), - Option_0_cannot_be_specified_without_specifying_option_1_or_option_2: diag(5069, 1 /* Error */, "Option_0_cannot_be_specified_without_specifying_option_1_or_option_2_5069", "Option '{0}' cannot be specified without specifying option '{1}' or option '{2}'."), - Option_resolveJsonModule_cannot_be_specified_when_moduleResolution_is_set_to_classic: diag(5070, 1 /* Error */, "Option_resolveJsonModule_cannot_be_specified_when_moduleResolution_is_set_to_classic_5070", "Option '--resolveJsonModule' cannot be specified when 'moduleResolution' is set to 'classic'."), - Option_resolveJsonModule_can_only_be_specified_when_module_code_generation_is_commonjs_amd_es2015_or_esNext: diag(5071, 1 /* Error */, "Option_resolveJsonModule_can_only_be_specified_when_module_code_generation_is_commonjs_amd_es2015_or_5071", "Option '--resolveJsonModule' can only be specified when module code generation is 'commonjs', 'amd', 'es2015' or 'esNext'."), - Unknown_build_option_0: diag(5072, 1 /* Error */, "Unknown_build_option_0_5072", "Unknown build option '{0}'."), - Build_option_0_requires_a_value_of_type_1: diag(5073, 1 /* Error */, "Build_option_0_requires_a_value_of_type_1_5073", "Build option '{0}' requires a value of type {1}."), - Option_incremental_can_only_be_specified_using_tsconfig_emitting_to_single_file_or_when_option_tsBuildInfoFile_is_specified: diag(5074, 1 /* Error */, "Option_incremental_can_only_be_specified_using_tsconfig_emitting_to_single_file_or_when_option_tsBui_5074", "Option '--incremental' can only be specified using tsconfig, emitting to single file or when option '--tsBuildInfoFile' is specified."), - _0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_constraint_2: diag(5075, 1 /* Error */, "_0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_5075", "'{0}' is assignable to the constraint of type '{1}', but '{1}' could be instantiated with a different subtype of constraint '{2}'."), - _0_and_1_operations_cannot_be_mixed_without_parentheses: diag(5076, 1 /* Error */, "_0_and_1_operations_cannot_be_mixed_without_parentheses_5076", "'{0}' and '{1}' operations cannot be mixed without parentheses."), - Unknown_build_option_0_Did_you_mean_1: diag(5077, 1 /* Error */, "Unknown_build_option_0_Did_you_mean_1_5077", "Unknown build option '{0}'. Did you mean '{1}'?"), - Unknown_watch_option_0: diag(5078, 1 /* Error */, "Unknown_watch_option_0_5078", "Unknown watch option '{0}'."), - Unknown_watch_option_0_Did_you_mean_1: diag(5079, 1 /* Error */, "Unknown_watch_option_0_Did_you_mean_1_5079", "Unknown watch option '{0}'. Did you mean '{1}'?"), - Watch_option_0_requires_a_value_of_type_1: diag(5080, 1 /* Error */, "Watch_option_0_requires_a_value_of_type_1_5080", "Watch option '{0}' requires a value of type {1}."), - Cannot_find_a_tsconfig_json_file_at_the_current_directory_Colon_0: diag(5081, 1 /* Error */, "Cannot_find_a_tsconfig_json_file_at_the_current_directory_Colon_0_5081", "Cannot find a tsconfig.json file at the current directory: {0}."), - _0_could_be_instantiated_with_an_arbitrary_type_which_could_be_unrelated_to_1: diag(5082, 1 /* Error */, "_0_could_be_instantiated_with_an_arbitrary_type_which_could_be_unrelated_to_1_5082", "'{0}' could be instantiated with an arbitrary type which could be unrelated to '{1}'."), - Cannot_read_file_0: diag(5083, 1 /* Error */, "Cannot_read_file_0_5083", "Cannot read file '{0}'."), - A_tuple_member_cannot_be_both_optional_and_rest: diag(5085, 1 /* Error */, "A_tuple_member_cannot_be_both_optional_and_rest_5085", "A tuple member cannot be both optional and rest."), - A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_colon_rather_than_after_the_type: diag(5086, 1 /* Error */, "A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_c_5086", "A labeled tuple element is declared as optional with a question mark after the name and before the colon, rather than after the type."), - A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type: diag(5087, 1 /* Error */, "A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type_5087", "A labeled tuple element is declared as rest with a '...' before the name, rather than before the type."), - The_inferred_type_of_0_references_a_type_with_a_cyclic_structure_which_cannot_be_trivially_serialized_A_type_annotation_is_necessary: diag(5088, 1 /* Error */, "The_inferred_type_of_0_references_a_type_with_a_cyclic_structure_which_cannot_be_trivially_serialize_5088", "The inferred type of '{0}' references a type with a cyclic structure which cannot be trivially serialized. A type annotation is necessary."), - Option_0_cannot_be_specified_when_option_jsx_is_1: diag(5089, 1 /* Error */, "Option_0_cannot_be_specified_when_option_jsx_is_1_5089", "Option '{0}' cannot be specified when option 'jsx' is '{1}'."), - Non_relative_paths_are_not_allowed_when_baseUrl_is_not_set_Did_you_forget_a_leading_Slash: diag(5090, 1 /* Error */, "Non_relative_paths_are_not_allowed_when_baseUrl_is_not_set_Did_you_forget_a_leading_Slash_5090", "Non-relative paths are not allowed when 'baseUrl' is not set. Did you forget a leading './'?"), - Option_preserveConstEnums_cannot_be_disabled_when_0_is_enabled: diag(5091, 1 /* Error */, "Option_preserveConstEnums_cannot_be_disabled_when_0_is_enabled_5091", "Option 'preserveConstEnums' cannot be disabled when '{0}' is enabled."), - The_root_value_of_a_0_file_must_be_an_object: diag(5092, 1 /* Error */, "The_root_value_of_a_0_file_must_be_an_object_5092", "The root value of a '{0}' file must be an object."), - Compiler_option_0_may_only_be_used_with_build: diag(5093, 1 /* Error */, "Compiler_option_0_may_only_be_used_with_build_5093", "Compiler option '--{0}' may only be used with '--build'."), - Compiler_option_0_may_not_be_used_with_build: diag(5094, 1 /* Error */, "Compiler_option_0_may_not_be_used_with_build_5094", "Compiler option '--{0}' may not be used with '--build'."), - Option_0_can_only_be_used_when_module_is_set_to_es2015_or_later: diag(5095, 1 /* Error */, "Option_0_can_only_be_used_when_module_is_set_to_es2015_or_later_5095", "Option '{0}' can only be used when 'module' is set to 'es2015' or later."), - Option_allowImportingTsExtensions_can_only_be_used_when_either_noEmit_or_emitDeclarationOnly_is_set: diag(5096, 1 /* Error */, "Option_allowImportingTsExtensions_can_only_be_used_when_either_noEmit_or_emitDeclarationOnly_is_set_5096", "Option 'allowImportingTsExtensions' can only be used when either 'noEmit' or 'emitDeclarationOnly' is set."), - An_import_path_can_only_end_with_a_0_extension_when_allowImportingTsExtensions_is_enabled: diag(5097, 1 /* Error */, "An_import_path_can_only_end_with_a_0_extension_when_allowImportingTsExtensions_is_enabled_5097", "An import path can only end with a '{0}' extension when 'allowImportingTsExtensions' is enabled."), - Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler: diag(5098, 1 /* Error */, "Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler_5098", "Option '{0}' can only be used when 'moduleResolution' is set to 'node16', 'nodenext', or 'bundler'."), - Option_0_is_deprecated_and_will_stop_functioning_in_TypeScript_1_Specify_compilerOption_ignoreDeprecations_Colon_2_to_silence_this_error: diag(5101, 1 /* Error */, "Option_0_is_deprecated_and_will_stop_functioning_in_TypeScript_1_Specify_compilerOption_ignoreDeprec_5101", "Option '{0}' is deprecated and will stop functioning in TypeScript {1}. Specify compilerOption '\"ignoreDeprecations\": \"{2}\"' to silence this error."), - Option_0_has_been_removed_Please_remove_it_from_your_configuration: diag(5102, 1 /* Error */, "Option_0_has_been_removed_Please_remove_it_from_your_configuration_5102", "Option '{0}' has been removed. Please remove it from your configuration."), - Invalid_value_for_ignoreDeprecations: diag(5103, 1 /* Error */, "Invalid_value_for_ignoreDeprecations_5103", "Invalid value for '--ignoreDeprecations'."), - Option_0_is_redundant_and_cannot_be_specified_with_option_1: diag(5104, 1 /* Error */, "Option_0_is_redundant_and_cannot_be_specified_with_option_1_5104", "Option '{0}' is redundant and cannot be specified with option '{1}'."), - Option_verbatimModuleSyntax_cannot_be_used_when_module_is_set_to_UMD_AMD_or_System: diag(5105, 1 /* Error */, "Option_verbatimModuleSyntax_cannot_be_used_when_module_is_set_to_UMD_AMD_or_System_5105", "Option 'verbatimModuleSyntax' cannot be used when 'module' is set to 'UMD', 'AMD', or 'System'."), - Use_0_instead: diag(5106, 3 /* Message */, "Use_0_instead_5106", "Use '{0}' instead."), - Option_0_1_is_deprecated_and_will_stop_functioning_in_TypeScript_2_Specify_compilerOption_ignoreDeprecations_Colon_3_to_silence_this_error: diag(5107, 1 /* Error */, "Option_0_1_is_deprecated_and_will_stop_functioning_in_TypeScript_2_Specify_compilerOption_ignoreDepr_5107", "Option '{0}={1}' is deprecated and will stop functioning in TypeScript {2}. Specify compilerOption '\"ignoreDeprecations\": \"{3}\"' to silence this error."), - Option_0_1_has_been_removed_Please_remove_it_from_your_configuration: diag(5108, 1 /* Error */, "Option_0_1_has_been_removed_Please_remove_it_from_your_configuration_5108", "Option '{0}={1}' has been removed. Please remove it from your configuration."), - Option_moduleResolution_must_be_set_to_0_or_left_unspecified_when_option_module_is_set_to_1: diag(5109, 1 /* Error */, "Option_moduleResolution_must_be_set_to_0_or_left_unspecified_when_option_module_is_set_to_1_5109", "Option 'moduleResolution' must be set to '{0}' (or left unspecified) when option 'module' is set to '{1}'."), - Option_module_must_be_set_to_0_when_option_moduleResolution_is_set_to_1: diag(5110, 1 /* Error */, "Option_module_must_be_set_to_0_when_option_moduleResolution_is_set_to_1_5110", "Option 'module' must be set to '{0}' when option 'moduleResolution' is set to '{1}'."), - Generates_a_sourcemap_for_each_corresponding_d_ts_file: diag(6e3, 3 /* Message */, "Generates_a_sourcemap_for_each_corresponding_d_ts_file_6000", "Generates a sourcemap for each corresponding '.d.ts' file."), - Concatenate_and_emit_output_to_single_file: diag(6001, 3 /* Message */, "Concatenate_and_emit_output_to_single_file_6001", "Concatenate and emit output to single file."), - Generates_corresponding_d_ts_file: diag(6002, 3 /* Message */, "Generates_corresponding_d_ts_file_6002", "Generates corresponding '.d.ts' file."), - Specify_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations: diag(6004, 3 /* Message */, "Specify_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations_6004", "Specify the location where debugger should locate TypeScript files instead of source locations."), - Watch_input_files: diag(6005, 3 /* Message */, "Watch_input_files_6005", "Watch input files."), - Redirect_output_structure_to_the_directory: diag(6006, 3 /* Message */, "Redirect_output_structure_to_the_directory_6006", "Redirect output structure to the directory."), - Do_not_erase_const_enum_declarations_in_generated_code: diag(6007, 3 /* Message */, "Do_not_erase_const_enum_declarations_in_generated_code_6007", "Do not erase const enum declarations in generated code."), - Do_not_emit_outputs_if_any_errors_were_reported: diag(6008, 3 /* Message */, "Do_not_emit_outputs_if_any_errors_were_reported_6008", "Do not emit outputs if any errors were reported."), - Do_not_emit_comments_to_output: diag(6009, 3 /* Message */, "Do_not_emit_comments_to_output_6009", "Do not emit comments to output."), - Do_not_emit_outputs: diag(6010, 3 /* Message */, "Do_not_emit_outputs_6010", "Do not emit outputs."), - Allow_default_imports_from_modules_with_no_default_export_This_does_not_affect_code_emit_just_typechecking: diag(6011, 3 /* Message */, "Allow_default_imports_from_modules_with_no_default_export_This_does_not_affect_code_emit_just_typech_6011", "Allow default imports from modules with no default export. This does not affect code emit, just typechecking."), - Skip_type_checking_of_declaration_files: diag(6012, 3 /* Message */, "Skip_type_checking_of_declaration_files_6012", "Skip type checking of declaration files."), - Do_not_resolve_the_real_path_of_symlinks: diag(6013, 3 /* Message */, "Do_not_resolve_the_real_path_of_symlinks_6013", "Do not resolve the real path of symlinks."), - Only_emit_d_ts_declaration_files: diag(6014, 3 /* Message */, "Only_emit_d_ts_declaration_files_6014", "Only emit '.d.ts' declaration files."), - Specify_ECMAScript_target_version: diag(6015, 3 /* Message */, "Specify_ECMAScript_target_version_6015", "Specify ECMAScript target version."), - Specify_module_code_generation: diag(6016, 3 /* Message */, "Specify_module_code_generation_6016", "Specify module code generation."), - Print_this_message: diag(6017, 3 /* Message */, "Print_this_message_6017", "Print this message."), - Print_the_compiler_s_version: diag(6019, 3 /* Message */, "Print_the_compiler_s_version_6019", "Print the compiler's version."), - Compile_the_project_given_the_path_to_its_configuration_file_or_to_a_folder_with_a_tsconfig_json: diag(6020, 3 /* Message */, "Compile_the_project_given_the_path_to_its_configuration_file_or_to_a_folder_with_a_tsconfig_json_6020", "Compile the project given the path to its configuration file, or to a folder with a 'tsconfig.json'."), - Syntax_Colon_0: diag(6023, 3 /* Message */, "Syntax_Colon_0_6023", "Syntax: {0}"), - options: diag(6024, 3 /* Message */, "options_6024", "options"), - file: diag(6025, 3 /* Message */, "file_6025", "file"), - Examples_Colon_0: diag(6026, 3 /* Message */, "Examples_Colon_0_6026", "Examples: {0}"), - Options_Colon: diag(6027, 3 /* Message */, "Options_Colon_6027", "Options:"), - Version_0: diag(6029, 3 /* Message */, "Version_0_6029", "Version {0}"), - Insert_command_line_options_and_files_from_a_file: diag(6030, 3 /* Message */, "Insert_command_line_options_and_files_from_a_file_6030", "Insert command line options and files from a file."), - Starting_compilation_in_watch_mode: diag(6031, 3 /* Message */, "Starting_compilation_in_watch_mode_6031", "Starting compilation in watch mode..."), - File_change_detected_Starting_incremental_compilation: diag(6032, 3 /* Message */, "File_change_detected_Starting_incremental_compilation_6032", "File change detected. Starting incremental compilation..."), - KIND: diag(6034, 3 /* Message */, "KIND_6034", "KIND"), - FILE: diag(6035, 3 /* Message */, "FILE_6035", "FILE"), - VERSION: diag(6036, 3 /* Message */, "VERSION_6036", "VERSION"), - LOCATION: diag(6037, 3 /* Message */, "LOCATION_6037", "LOCATION"), - DIRECTORY: diag(6038, 3 /* Message */, "DIRECTORY_6038", "DIRECTORY"), - STRATEGY: diag(6039, 3 /* Message */, "STRATEGY_6039", "STRATEGY"), - FILE_OR_DIRECTORY: diag(6040, 3 /* Message */, "FILE_OR_DIRECTORY_6040", "FILE OR DIRECTORY"), - Errors_Files: diag(6041, 3 /* Message */, "Errors_Files_6041", "Errors Files"), - Generates_corresponding_map_file: diag(6043, 3 /* Message */, "Generates_corresponding_map_file_6043", "Generates corresponding '.map' file."), - Compiler_option_0_expects_an_argument: diag(6044, 1 /* Error */, "Compiler_option_0_expects_an_argument_6044", "Compiler option '{0}' expects an argument."), - Unterminated_quoted_string_in_response_file_0: diag(6045, 1 /* Error */, "Unterminated_quoted_string_in_response_file_0_6045", "Unterminated quoted string in response file '{0}'."), - Argument_for_0_option_must_be_Colon_1: diag(6046, 1 /* Error */, "Argument_for_0_option_must_be_Colon_1_6046", "Argument for '{0}' option must be: {1}."), - Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1: diag(6048, 1 /* Error */, "Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1_6048", "Locale must be of the form or -. For example '{0}' or '{1}'."), - Unable_to_open_file_0: diag(6050, 1 /* Error */, "Unable_to_open_file_0_6050", "Unable to open file '{0}'."), - Corrupted_locale_file_0: diag(6051, 1 /* Error */, "Corrupted_locale_file_0_6051", "Corrupted locale file {0}."), - Raise_error_on_expressions_and_declarations_with_an_implied_any_type: diag(6052, 3 /* Message */, "Raise_error_on_expressions_and_declarations_with_an_implied_any_type_6052", "Raise error on expressions and declarations with an implied 'any' type."), - File_0_not_found: diag(6053, 1 /* Error */, "File_0_not_found_6053", "File '{0}' not found."), - File_0_has_an_unsupported_extension_The_only_supported_extensions_are_1: diag(6054, 1 /* Error */, "File_0_has_an_unsupported_extension_The_only_supported_extensions_are_1_6054", "File '{0}' has an unsupported extension. The only supported extensions are {1}."), - Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures: diag(6055, 3 /* Message */, "Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures_6055", "Suppress noImplicitAny errors for indexing objects lacking index signatures."), - Do_not_emit_declarations_for_code_that_has_an_internal_annotation: diag(6056, 3 /* Message */, "Do_not_emit_declarations_for_code_that_has_an_internal_annotation_6056", "Do not emit declarations for code that has an '@internal' annotation."), - Specify_the_root_directory_of_input_files_Use_to_control_the_output_directory_structure_with_outDir: diag(6058, 3 /* Message */, "Specify_the_root_directory_of_input_files_Use_to_control_the_output_directory_structure_with_outDir_6058", "Specify the root directory of input files. Use to control the output directory structure with --outDir."), - File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files: diag(6059, 1 /* Error */, "File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files_6059", "File '{0}' is not under 'rootDir' '{1}'. 'rootDir' is expected to contain all source files."), - Specify_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix: diag(6060, 3 /* Message */, "Specify_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix_6060", "Specify the end of line sequence to be used when emitting files: 'CRLF' (dos) or 'LF' (unix)."), - NEWLINE: diag(6061, 3 /* Message */, "NEWLINE_6061", "NEWLINE"), - Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line: diag(6064, 1 /* Error */, "Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line_6064", "Option '{0}' can only be specified in 'tsconfig.json' file or set to 'null' on command line."), - Enables_experimental_support_for_ES7_decorators: diag(6065, 3 /* Message */, "Enables_experimental_support_for_ES7_decorators_6065", "Enables experimental support for ES7 decorators."), - Enables_experimental_support_for_emitting_type_metadata_for_decorators: diag(6066, 3 /* Message */, "Enables_experimental_support_for_emitting_type_metadata_for_decorators_6066", "Enables experimental support for emitting type metadata for decorators."), - Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file: diag(6070, 3 /* Message */, "Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file_6070", "Initializes a TypeScript project and creates a tsconfig.json file."), - Successfully_created_a_tsconfig_json_file: diag(6071, 3 /* Message */, "Successfully_created_a_tsconfig_json_file_6071", "Successfully created a tsconfig.json file."), - Suppress_excess_property_checks_for_object_literals: diag(6072, 3 /* Message */, "Suppress_excess_property_checks_for_object_literals_6072", "Suppress excess property checks for object literals."), - Stylize_errors_and_messages_using_color_and_context_experimental: diag(6073, 3 /* Message */, "Stylize_errors_and_messages_using_color_and_context_experimental_6073", "Stylize errors and messages using color and context (experimental)."), - Do_not_report_errors_on_unused_labels: diag(6074, 3 /* Message */, "Do_not_report_errors_on_unused_labels_6074", "Do not report errors on unused labels."), - Report_error_when_not_all_code_paths_in_function_return_a_value: diag(6075, 3 /* Message */, "Report_error_when_not_all_code_paths_in_function_return_a_value_6075", "Report error when not all code paths in function return a value."), - Report_errors_for_fallthrough_cases_in_switch_statement: diag(6076, 3 /* Message */, "Report_errors_for_fallthrough_cases_in_switch_statement_6076", "Report errors for fallthrough cases in switch statement."), - Do_not_report_errors_on_unreachable_code: diag(6077, 3 /* Message */, "Do_not_report_errors_on_unreachable_code_6077", "Do not report errors on unreachable code."), - Disallow_inconsistently_cased_references_to_the_same_file: diag(6078, 3 /* Message */, "Disallow_inconsistently_cased_references_to_the_same_file_6078", "Disallow inconsistently-cased references to the same file."), - Specify_library_files_to_be_included_in_the_compilation: diag(6079, 3 /* Message */, "Specify_library_files_to_be_included_in_the_compilation_6079", "Specify library files to be included in the compilation."), - Specify_JSX_code_generation: diag(6080, 3 /* Message */, "Specify_JSX_code_generation_6080", "Specify JSX code generation."), - File_0_has_an_unsupported_extension_so_skipping_it: diag(6081, 3 /* Message */, "File_0_has_an_unsupported_extension_so_skipping_it_6081", "File '{0}' has an unsupported extension, so skipping it."), - Only_amd_and_system_modules_are_supported_alongside_0: diag(6082, 1 /* Error */, "Only_amd_and_system_modules_are_supported_alongside_0_6082", "Only 'amd' and 'system' modules are supported alongside --{0}."), - Base_directory_to_resolve_non_absolute_module_names: diag(6083, 3 /* Message */, "Base_directory_to_resolve_non_absolute_module_names_6083", "Base directory to resolve non-absolute module names."), - Deprecated_Use_jsxFactory_instead_Specify_the_object_invoked_for_createElement_when_targeting_react_JSX_emit: diag(6084, 3 /* Message */, "Deprecated_Use_jsxFactory_instead_Specify_the_object_invoked_for_createElement_when_targeting_react__6084", "[Deprecated] Use '--jsxFactory' instead. Specify the object invoked for createElement when targeting 'react' JSX emit"), - Enable_tracing_of_the_name_resolution_process: diag(6085, 3 /* Message */, "Enable_tracing_of_the_name_resolution_process_6085", "Enable tracing of the name resolution process."), - Resolving_module_0_from_1: diag(6086, 3 /* Message */, "Resolving_module_0_from_1_6086", "======== Resolving module '{0}' from '{1}'. ========"), - Explicitly_specified_module_resolution_kind_Colon_0: diag(6087, 3 /* Message */, "Explicitly_specified_module_resolution_kind_Colon_0_6087", "Explicitly specified module resolution kind: '{0}'."), - Module_resolution_kind_is_not_specified_using_0: diag(6088, 3 /* Message */, "Module_resolution_kind_is_not_specified_using_0_6088", "Module resolution kind is not specified, using '{0}'."), - Module_name_0_was_successfully_resolved_to_1: diag(6089, 3 /* Message */, "Module_name_0_was_successfully_resolved_to_1_6089", "======== Module name '{0}' was successfully resolved to '{1}'. ========"), - Module_name_0_was_not_resolved: diag(6090, 3 /* Message */, "Module_name_0_was_not_resolved_6090", "======== Module name '{0}' was not resolved. ========"), - paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0: diag(6091, 3 /* Message */, "paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0_6091", "'paths' option is specified, looking for a pattern to match module name '{0}'."), - Module_name_0_matched_pattern_1: diag(6092, 3 /* Message */, "Module_name_0_matched_pattern_1_6092", "Module name '{0}', matched pattern '{1}'."), - Trying_substitution_0_candidate_module_location_Colon_1: diag(6093, 3 /* Message */, "Trying_substitution_0_candidate_module_location_Colon_1_6093", "Trying substitution '{0}', candidate module location: '{1}'."), - Resolving_module_name_0_relative_to_base_url_1_2: diag(6094, 3 /* Message */, "Resolving_module_name_0_relative_to_base_url_1_2_6094", "Resolving module name '{0}' relative to base url '{1}' - '{2}'."), - Loading_module_as_file_Slash_folder_candidate_module_location_0_target_file_types_Colon_1: diag(6095, 3 /* Message */, "Loading_module_as_file_Slash_folder_candidate_module_location_0_target_file_types_Colon_1_6095", "Loading module as file / folder, candidate module location '{0}', target file types: {1}."), - File_0_does_not_exist: diag(6096, 3 /* Message */, "File_0_does_not_exist_6096", "File '{0}' does not exist."), - File_0_exists_use_it_as_a_name_resolution_result: diag(6097, 3 /* Message */, "File_0_exists_use_it_as_a_name_resolution_result_6097", "File '{0}' exists - use it as a name resolution result."), - Loading_module_0_from_node_modules_folder_target_file_types_Colon_1: diag(6098, 3 /* Message */, "Loading_module_0_from_node_modules_folder_target_file_types_Colon_1_6098", "Loading module '{0}' from 'node_modules' folder, target file types: {1}."), - Found_package_json_at_0: diag(6099, 3 /* Message */, "Found_package_json_at_0_6099", "Found 'package.json' at '{0}'."), - package_json_does_not_have_a_0_field: diag(6100, 3 /* Message */, "package_json_does_not_have_a_0_field_6100", "'package.json' does not have a '{0}' field."), - package_json_has_0_field_1_that_references_2: diag(6101, 3 /* Message */, "package_json_has_0_field_1_that_references_2_6101", "'package.json' has '{0}' field '{1}' that references '{2}'."), - Allow_javascript_files_to_be_compiled: diag(6102, 3 /* Message */, "Allow_javascript_files_to_be_compiled_6102", "Allow javascript files to be compiled."), - Checking_if_0_is_the_longest_matching_prefix_for_1_2: diag(6104, 3 /* Message */, "Checking_if_0_is_the_longest_matching_prefix_for_1_2_6104", "Checking if '{0}' is the longest matching prefix for '{1}' - '{2}'."), - Expected_type_of_0_field_in_package_json_to_be_1_got_2: diag(6105, 3 /* Message */, "Expected_type_of_0_field_in_package_json_to_be_1_got_2_6105", "Expected type of '{0}' field in 'package.json' to be '{1}', got '{2}'."), - baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1: diag(6106, 3 /* Message */, "baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1_6106", "'baseUrl' option is set to '{0}', using this value to resolve non-relative module name '{1}'."), - rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0: diag(6107, 3 /* Message */, "rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0_6107", "'rootDirs' option is set, using it to resolve relative module name '{0}'."), - Longest_matching_prefix_for_0_is_1: diag(6108, 3 /* Message */, "Longest_matching_prefix_for_0_is_1_6108", "Longest matching prefix for '{0}' is '{1}'."), - Loading_0_from_the_root_dir_1_candidate_location_2: diag(6109, 3 /* Message */, "Loading_0_from_the_root_dir_1_candidate_location_2_6109", "Loading '{0}' from the root dir '{1}', candidate location '{2}'."), - Trying_other_entries_in_rootDirs: diag(6110, 3 /* Message */, "Trying_other_entries_in_rootDirs_6110", "Trying other entries in 'rootDirs'."), - Module_resolution_using_rootDirs_has_failed: diag(6111, 3 /* Message */, "Module_resolution_using_rootDirs_has_failed_6111", "Module resolution using 'rootDirs' has failed."), - Do_not_emit_use_strict_directives_in_module_output: diag(6112, 3 /* Message */, "Do_not_emit_use_strict_directives_in_module_output_6112", "Do not emit 'use strict' directives in module output."), - Enable_strict_null_checks: diag(6113, 3 /* Message */, "Enable_strict_null_checks_6113", "Enable strict null checks."), - Unknown_option_excludes_Did_you_mean_exclude: diag(6114, 1 /* Error */, "Unknown_option_excludes_Did_you_mean_exclude_6114", "Unknown option 'excludes'. Did you mean 'exclude'?"), - Raise_error_on_this_expressions_with_an_implied_any_type: diag(6115, 3 /* Message */, "Raise_error_on_this_expressions_with_an_implied_any_type_6115", "Raise error on 'this' expressions with an implied 'any' type."), - Resolving_type_reference_directive_0_containing_file_1_root_directory_2: diag(6116, 3 /* Message */, "Resolving_type_reference_directive_0_containing_file_1_root_directory_2_6116", "======== Resolving type reference directive '{0}', containing file '{1}', root directory '{2}'. ========"), - Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2: diag(6119, 3 /* Message */, "Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2_6119", "======== Type reference directive '{0}' was successfully resolved to '{1}', primary: {2}. ========"), - Type_reference_directive_0_was_not_resolved: diag(6120, 3 /* Message */, "Type_reference_directive_0_was_not_resolved_6120", "======== Type reference directive '{0}' was not resolved. ========"), - Resolving_with_primary_search_path_0: diag(6121, 3 /* Message */, "Resolving_with_primary_search_path_0_6121", "Resolving with primary search path '{0}'."), - Root_directory_cannot_be_determined_skipping_primary_search_paths: diag(6122, 3 /* Message */, "Root_directory_cannot_be_determined_skipping_primary_search_paths_6122", "Root directory cannot be determined, skipping primary search paths."), - Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set: diag(6123, 3 /* Message */, "Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set_6123", "======== Resolving type reference directive '{0}', containing file '{1}', root directory not set. ========"), - Type_declaration_files_to_be_included_in_compilation: diag(6124, 3 /* Message */, "Type_declaration_files_to_be_included_in_compilation_6124", "Type declaration files to be included in compilation."), - Looking_up_in_node_modules_folder_initial_location_0: diag(6125, 3 /* Message */, "Looking_up_in_node_modules_folder_initial_location_0_6125", "Looking up in 'node_modules' folder, initial location '{0}'."), - Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_modules_folder: diag(6126, 3 /* Message */, "Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_mod_6126", "Containing file is not specified and root directory cannot be determined, skipping lookup in 'node_modules' folder."), - Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1: diag(6127, 3 /* Message */, "Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1_6127", "======== Resolving type reference directive '{0}', containing file not set, root directory '{1}'. ========"), - Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set: diag(6128, 3 /* Message */, "Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set_6128", "======== Resolving type reference directive '{0}', containing file not set, root directory not set. ========"), - Resolving_real_path_for_0_result_1: diag(6130, 3 /* Message */, "Resolving_real_path_for_0_result_1_6130", "Resolving real path for '{0}', result '{1}'."), - Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system: diag(6131, 1 /* Error */, "Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system_6131", "Cannot compile modules using option '{0}' unless the '--module' flag is 'amd' or 'system'."), - File_name_0_has_a_1_extension_stripping_it: diag(6132, 3 /* Message */, "File_name_0_has_a_1_extension_stripping_it_6132", "File name '{0}' has a '{1}' extension - stripping it."), - _0_is_declared_but_its_value_is_never_read: diag(6133, 1 /* Error */, "_0_is_declared_but_its_value_is_never_read_6133", "'{0}' is declared but its value is never read.", - /*reportsUnnecessary*/ - true), - Report_errors_on_unused_locals: diag(6134, 3 /* Message */, "Report_errors_on_unused_locals_6134", "Report errors on unused locals."), - Report_errors_on_unused_parameters: diag(6135, 3 /* Message */, "Report_errors_on_unused_parameters_6135", "Report errors on unused parameters."), - The_maximum_dependency_depth_to_search_under_node_modules_and_load_JavaScript_files: diag(6136, 3 /* Message */, "The_maximum_dependency_depth_to_search_under_node_modules_and_load_JavaScript_files_6136", "The maximum dependency depth to search under node_modules and load JavaScript files."), - Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1: diag(6137, 1 /* Error */, "Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1_6137", "Cannot import type declaration files. Consider importing '{0}' instead of '{1}'."), - Property_0_is_declared_but_its_value_is_never_read: diag(6138, 1 /* Error */, "Property_0_is_declared_but_its_value_is_never_read_6138", "Property '{0}' is declared but its value is never read.", - /*reportsUnnecessary*/ - true), - Import_emit_helpers_from_tslib: diag(6139, 3 /* Message */, "Import_emit_helpers_from_tslib_6139", "Import emit helpers from 'tslib'."), - Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using_cache_location_2: diag(6140, 1 /* Error */, "Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using__6140", "Auto discovery for typings is enabled in project '{0}'. Running extra resolution pass for module '{1}' using cache location '{2}'."), - Parse_in_strict_mode_and_emit_use_strict_for_each_source_file: diag(6141, 3 /* Message */, "Parse_in_strict_mode_and_emit_use_strict_for_each_source_file_6141", 'Parse in strict mode and emit "use strict" for each source file.'), - Module_0_was_resolved_to_1_but_jsx_is_not_set: diag(6142, 1 /* Error */, "Module_0_was_resolved_to_1_but_jsx_is_not_set_6142", "Module '{0}' was resolved to '{1}', but '--jsx' is not set."), - Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1: diag(6144, 3 /* Message */, "Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1_6144", "Module '{0}' was resolved as locally declared ambient module in file '{1}'."), - Module_0_was_resolved_as_ambient_module_declared_in_1_since_this_file_was_not_modified: diag(6145, 3 /* Message */, "Module_0_was_resolved_as_ambient_module_declared_in_1_since_this_file_was_not_modified_6145", "Module '{0}' was resolved as ambient module declared in '{1}' since this file was not modified."), - Specify_the_JSX_factory_function_to_use_when_targeting_react_JSX_emit_e_g_React_createElement_or_h: diag(6146, 3 /* Message */, "Specify_the_JSX_factory_function_to_use_when_targeting_react_JSX_emit_e_g_React_createElement_or_h_6146", "Specify the JSX factory function to use when targeting 'react' JSX emit, e.g. 'React.createElement' or 'h'."), - Resolution_for_module_0_was_found_in_cache_from_location_1: diag(6147, 3 /* Message */, "Resolution_for_module_0_was_found_in_cache_from_location_1_6147", "Resolution for module '{0}' was found in cache from location '{1}'."), - Directory_0_does_not_exist_skipping_all_lookups_in_it: diag(6148, 3 /* Message */, "Directory_0_does_not_exist_skipping_all_lookups_in_it_6148", "Directory '{0}' does not exist, skipping all lookups in it."), - Show_diagnostic_information: diag(6149, 3 /* Message */, "Show_diagnostic_information_6149", "Show diagnostic information."), - Show_verbose_diagnostic_information: diag(6150, 3 /* Message */, "Show_verbose_diagnostic_information_6150", "Show verbose diagnostic information."), - Emit_a_single_file_with_source_maps_instead_of_having_a_separate_file: diag(6151, 3 /* Message */, "Emit_a_single_file_with_source_maps_instead_of_having_a_separate_file_6151", "Emit a single file with source maps instead of having a separate file."), - Emit_the_source_alongside_the_sourcemaps_within_a_single_file_requires_inlineSourceMap_or_sourceMap_to_be_set: diag(6152, 3 /* Message */, "Emit_the_source_alongside_the_sourcemaps_within_a_single_file_requires_inlineSourceMap_or_sourceMap__6152", "Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set."), - Transpile_each_file_as_a_separate_module_similar_to_ts_transpileModule: diag(6153, 3 /* Message */, "Transpile_each_file_as_a_separate_module_similar_to_ts_transpileModule_6153", "Transpile each file as a separate module (similar to 'ts.transpileModule')."), - Print_names_of_generated_files_part_of_the_compilation: diag(6154, 3 /* Message */, "Print_names_of_generated_files_part_of_the_compilation_6154", "Print names of generated files part of the compilation."), - Print_names_of_files_part_of_the_compilation: diag(6155, 3 /* Message */, "Print_names_of_files_part_of_the_compilation_6155", "Print names of files part of the compilation."), - The_locale_used_when_displaying_messages_to_the_user_e_g_en_us: diag(6156, 3 /* Message */, "The_locale_used_when_displaying_messages_to_the_user_e_g_en_us_6156", "The locale used when displaying messages to the user (e.g. 'en-us')"), - Do_not_generate_custom_helper_functions_like_extends_in_compiled_output: diag(6157, 3 /* Message */, "Do_not_generate_custom_helper_functions_like_extends_in_compiled_output_6157", "Do not generate custom helper functions like '__extends' in compiled output."), - Do_not_include_the_default_library_file_lib_d_ts: diag(6158, 3 /* Message */, "Do_not_include_the_default_library_file_lib_d_ts_6158", "Do not include the default library file (lib.d.ts)."), - Do_not_add_triple_slash_references_or_imported_modules_to_the_list_of_compiled_files: diag(6159, 3 /* Message */, "Do_not_add_triple_slash_references_or_imported_modules_to_the_list_of_compiled_files_6159", "Do not add triple-slash references or imported modules to the list of compiled files."), - Deprecated_Use_skipLibCheck_instead_Skip_type_checking_of_default_library_declaration_files: diag(6160, 3 /* Message */, "Deprecated_Use_skipLibCheck_instead_Skip_type_checking_of_default_library_declaration_files_6160", "[Deprecated] Use '--skipLibCheck' instead. Skip type checking of default library declaration files."), - List_of_folders_to_include_type_definitions_from: diag(6161, 3 /* Message */, "List_of_folders_to_include_type_definitions_from_6161", "List of folders to include type definitions from."), - Disable_size_limitations_on_JavaScript_projects: diag(6162, 3 /* Message */, "Disable_size_limitations_on_JavaScript_projects_6162", "Disable size limitations on JavaScript projects."), - The_character_set_of_the_input_files: diag(6163, 3 /* Message */, "The_character_set_of_the_input_files_6163", "The character set of the input files."), - Skipping_module_0_that_looks_like_an_absolute_URI_target_file_types_Colon_1: diag(6164, 3 /* Message */, "Skipping_module_0_that_looks_like_an_absolute_URI_target_file_types_Colon_1_6164", "Skipping module '{0}' that looks like an absolute URI, target file types: {1}."), - Do_not_truncate_error_messages: diag(6165, 3 /* Message */, "Do_not_truncate_error_messages_6165", "Do not truncate error messages."), - Output_directory_for_generated_declaration_files: diag(6166, 3 /* Message */, "Output_directory_for_generated_declaration_files_6166", "Output directory for generated declaration files."), - A_series_of_entries_which_re_map_imports_to_lookup_locations_relative_to_the_baseUrl: diag(6167, 3 /* Message */, "A_series_of_entries_which_re_map_imports_to_lookup_locations_relative_to_the_baseUrl_6167", "A series of entries which re-map imports to lookup locations relative to the 'baseUrl'."), - List_of_root_folders_whose_combined_content_represents_the_structure_of_the_project_at_runtime: diag(6168, 3 /* Message */, "List_of_root_folders_whose_combined_content_represents_the_structure_of_the_project_at_runtime_6168", "List of root folders whose combined content represents the structure of the project at runtime."), - Show_all_compiler_options: diag(6169, 3 /* Message */, "Show_all_compiler_options_6169", "Show all compiler options."), - Deprecated_Use_outFile_instead_Concatenate_and_emit_output_to_single_file: diag(6170, 3 /* Message */, "Deprecated_Use_outFile_instead_Concatenate_and_emit_output_to_single_file_6170", "[Deprecated] Use '--outFile' instead. Concatenate and emit output to single file"), - Command_line_Options: diag(6171, 3 /* Message */, "Command_line_Options_6171", "Command-line Options"), - Provide_full_support_for_iterables_in_for_of_spread_and_destructuring_when_targeting_ES5_or_ES3: diag(6179, 3 /* Message */, "Provide_full_support_for_iterables_in_for_of_spread_and_destructuring_when_targeting_ES5_or_ES3_6179", "Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'."), - Enable_all_strict_type_checking_options: diag(6180, 3 /* Message */, "Enable_all_strict_type_checking_options_6180", "Enable all strict type-checking options."), - Scoped_package_detected_looking_in_0: diag(6182, 3 /* Message */, "Scoped_package_detected_looking_in_0_6182", "Scoped package detected, looking in '{0}'"), - Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2: diag(6183, 3 /* Message */, "Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_6183", "Reusing resolution of module '{0}' from '{1}' of old program, it was successfully resolved to '{2}'."), - Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3: diag(6184, 3 /* Message */, "Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package__6184", "Reusing resolution of module '{0}' from '{1}' of old program, it was successfully resolved to '{2}' with Package ID '{3}'."), - Enable_strict_checking_of_function_types: diag(6186, 3 /* Message */, "Enable_strict_checking_of_function_types_6186", "Enable strict checking of function types."), - Enable_strict_checking_of_property_initialization_in_classes: diag(6187, 3 /* Message */, "Enable_strict_checking_of_property_initialization_in_classes_6187", "Enable strict checking of property initialization in classes."), - Numeric_separators_are_not_allowed_here: diag(6188, 1 /* Error */, "Numeric_separators_are_not_allowed_here_6188", "Numeric separators are not allowed here."), - Multiple_consecutive_numeric_separators_are_not_permitted: diag(6189, 1 /* Error */, "Multiple_consecutive_numeric_separators_are_not_permitted_6189", "Multiple consecutive numeric separators are not permitted."), - Whether_to_keep_outdated_console_output_in_watch_mode_instead_of_clearing_the_screen: diag(6191, 3 /* Message */, "Whether_to_keep_outdated_console_output_in_watch_mode_instead_of_clearing_the_screen_6191", "Whether to keep outdated console output in watch mode instead of clearing the screen."), - All_imports_in_import_declaration_are_unused: diag(6192, 1 /* Error */, "All_imports_in_import_declaration_are_unused_6192", "All imports in import declaration are unused.", - /*reportsUnnecessary*/ - true), - Found_1_error_Watching_for_file_changes: diag(6193, 3 /* Message */, "Found_1_error_Watching_for_file_changes_6193", "Found 1 error. Watching for file changes."), - Found_0_errors_Watching_for_file_changes: diag(6194, 3 /* Message */, "Found_0_errors_Watching_for_file_changes_6194", "Found {0} errors. Watching for file changes."), - Resolve_keyof_to_string_valued_property_names_only_no_numbers_or_symbols: diag(6195, 3 /* Message */, "Resolve_keyof_to_string_valued_property_names_only_no_numbers_or_symbols_6195", "Resolve 'keyof' to string valued property names only (no numbers or symbols)."), - _0_is_declared_but_never_used: diag(6196, 1 /* Error */, "_0_is_declared_but_never_used_6196", "'{0}' is declared but never used.", - /*reportsUnnecessary*/ - true), - Include_modules_imported_with_json_extension: diag(6197, 3 /* Message */, "Include_modules_imported_with_json_extension_6197", "Include modules imported with '.json' extension"), - All_destructured_elements_are_unused: diag(6198, 1 /* Error */, "All_destructured_elements_are_unused_6198", "All destructured elements are unused.", - /*reportsUnnecessary*/ - true), - All_variables_are_unused: diag(6199, 1 /* Error */, "All_variables_are_unused_6199", "All variables are unused.", - /*reportsUnnecessary*/ - true), - Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0: diag(6200, 1 /* Error */, "Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0_6200", "Definitions of the following identifiers conflict with those in another file: {0}"), - Conflicts_are_in_this_file: diag(6201, 3 /* Message */, "Conflicts_are_in_this_file_6201", "Conflicts are in this file."), - Project_references_may_not_form_a_circular_graph_Cycle_detected_Colon_0: diag(6202, 1 /* Error */, "Project_references_may_not_form_a_circular_graph_Cycle_detected_Colon_0_6202", "Project references may not form a circular graph. Cycle detected: {0}"), - _0_was_also_declared_here: diag(6203, 3 /* Message */, "_0_was_also_declared_here_6203", "'{0}' was also declared here."), - and_here: diag(6204, 3 /* Message */, "and_here_6204", "and here."), - All_type_parameters_are_unused: diag(6205, 1 /* Error */, "All_type_parameters_are_unused_6205", "All type parameters are unused."), - package_json_has_a_typesVersions_field_with_version_specific_path_mappings: diag(6206, 3 /* Message */, "package_json_has_a_typesVersions_field_with_version_specific_path_mappings_6206", "'package.json' has a 'typesVersions' field with version-specific path mappings."), - package_json_does_not_have_a_typesVersions_entry_that_matches_version_0: diag(6207, 3 /* Message */, "package_json_does_not_have_a_typesVersions_entry_that_matches_version_0_6207", "'package.json' does not have a 'typesVersions' entry that matches version '{0}'."), - package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_match_module_name_2: diag(6208, 3 /* Message */, "package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_ma_6208", "'package.json' has a 'typesVersions' entry '{0}' that matches compiler version '{1}', looking for a pattern to match module name '{2}'."), - package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range: diag(6209, 3 /* Message */, "package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range_6209", "'package.json' has a 'typesVersions' entry '{0}' that is not a valid semver range."), - An_argument_for_0_was_not_provided: diag(6210, 3 /* Message */, "An_argument_for_0_was_not_provided_6210", "An argument for '{0}' was not provided."), - An_argument_matching_this_binding_pattern_was_not_provided: diag(6211, 3 /* Message */, "An_argument_matching_this_binding_pattern_was_not_provided_6211", "An argument matching this binding pattern was not provided."), - Did_you_mean_to_call_this_expression: diag(6212, 3 /* Message */, "Did_you_mean_to_call_this_expression_6212", "Did you mean to call this expression?"), - Did_you_mean_to_use_new_with_this_expression: diag(6213, 3 /* Message */, "Did_you_mean_to_use_new_with_this_expression_6213", "Did you mean to use 'new' with this expression?"), - Enable_strict_bind_call_and_apply_methods_on_functions: diag(6214, 3 /* Message */, "Enable_strict_bind_call_and_apply_methods_on_functions_6214", "Enable strict 'bind', 'call', and 'apply' methods on functions."), - Using_compiler_options_of_project_reference_redirect_0: diag(6215, 3 /* Message */, "Using_compiler_options_of_project_reference_redirect_0_6215", "Using compiler options of project reference redirect '{0}'."), - Found_1_error: diag(6216, 3 /* Message */, "Found_1_error_6216", "Found 1 error."), - Found_0_errors: diag(6217, 3 /* Message */, "Found_0_errors_6217", "Found {0} errors."), - Module_name_0_was_successfully_resolved_to_1_with_Package_ID_2: diag(6218, 3 /* Message */, "Module_name_0_was_successfully_resolved_to_1_with_Package_ID_2_6218", "======== Module name '{0}' was successfully resolved to '{1}' with Package ID '{2}'. ========"), - Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3: diag(6219, 3 /* Message */, "Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3_6219", "======== Type reference directive '{0}' was successfully resolved to '{1}' with Package ID '{2}', primary: {3}. ========"), - package_json_had_a_falsy_0_field: diag(6220, 3 /* Message */, "package_json_had_a_falsy_0_field_6220", "'package.json' had a falsy '{0}' field."), - Disable_use_of_source_files_instead_of_declaration_files_from_referenced_projects: diag(6221, 3 /* Message */, "Disable_use_of_source_files_instead_of_declaration_files_from_referenced_projects_6221", "Disable use of source files instead of declaration files from referenced projects."), - Emit_class_fields_with_Define_instead_of_Set: diag(6222, 3 /* Message */, "Emit_class_fields_with_Define_instead_of_Set_6222", "Emit class fields with Define instead of Set."), - Generates_a_CPU_profile: diag(6223, 3 /* Message */, "Generates_a_CPU_profile_6223", "Generates a CPU profile."), - Disable_solution_searching_for_this_project: diag(6224, 3 /* Message */, "Disable_solution_searching_for_this_project_6224", "Disable solution searching for this project."), - Specify_strategy_for_watching_file_Colon_FixedPollingInterval_default_PriorityPollingInterval_DynamicPriorityPolling_FixedChunkSizePolling_UseFsEvents_UseFsEventsOnParentDirectory: diag(6225, 3 /* Message */, "Specify_strategy_for_watching_file_Colon_FixedPollingInterval_default_PriorityPollingInterval_Dynami_6225", "Specify strategy for watching file: 'FixedPollingInterval' (default), 'PriorityPollingInterval', 'DynamicPriorityPolling', 'FixedChunkSizePolling', 'UseFsEvents', 'UseFsEventsOnParentDirectory'."), - Specify_strategy_for_watching_directory_on_platforms_that_don_t_support_recursive_watching_natively_Colon_UseFsEvents_default_FixedPollingInterval_DynamicPriorityPolling_FixedChunkSizePolling: diag(6226, 3 /* Message */, "Specify_strategy_for_watching_directory_on_platforms_that_don_t_support_recursive_watching_natively__6226", "Specify strategy for watching directory on platforms that don't support recursive watching natively: 'UseFsEvents' (default), 'FixedPollingInterval', 'DynamicPriorityPolling', 'FixedChunkSizePolling'."), - Specify_strategy_for_creating_a_polling_watch_when_it_fails_to_create_using_file_system_events_Colon_FixedInterval_default_PriorityInterval_DynamicPriority_FixedChunkSize: diag(6227, 3 /* Message */, "Specify_strategy_for_creating_a_polling_watch_when_it_fails_to_create_using_file_system_events_Colon_6227", "Specify strategy for creating a polling watch when it fails to create using file system events: 'FixedInterval' (default), 'PriorityInterval', 'DynamicPriority', 'FixedChunkSize'."), - Tag_0_expects_at_least_1_arguments_but_the_JSX_factory_2_provides_at_most_3: diag(6229, 1 /* Error */, "Tag_0_expects_at_least_1_arguments_but_the_JSX_factory_2_provides_at_most_3_6229", "Tag '{0}' expects at least '{1}' arguments, but the JSX factory '{2}' provides at most '{3}'."), - Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line: diag(6230, 1 /* Error */, "Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line_6230", "Option '{0}' can only be specified in 'tsconfig.json' file or set to 'false' or 'null' on command line."), - Could_not_resolve_the_path_0_with_the_extensions_Colon_1: diag(6231, 1 /* Error */, "Could_not_resolve_the_path_0_with_the_extensions_Colon_1_6231", "Could not resolve the path '{0}' with the extensions: {1}."), - Declaration_augments_declaration_in_another_file_This_cannot_be_serialized: diag(6232, 1 /* Error */, "Declaration_augments_declaration_in_another_file_This_cannot_be_serialized_6232", "Declaration augments declaration in another file. This cannot be serialized."), - This_is_the_declaration_being_augmented_Consider_moving_the_augmenting_declaration_into_the_same_file: diag(6233, 1 /* Error */, "This_is_the_declaration_being_augmented_Consider_moving_the_augmenting_declaration_into_the_same_fil_6233", "This is the declaration being augmented. Consider moving the augmenting declaration into the same file."), - This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without: diag(6234, 1 /* Error */, "This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without_6234", "This expression is not callable because it is a 'get' accessor. Did you mean to use it without '()'?"), - Disable_loading_referenced_projects: diag(6235, 3 /* Message */, "Disable_loading_referenced_projects_6235", "Disable loading referenced projects."), - Arguments_for_the_rest_parameter_0_were_not_provided: diag(6236, 1 /* Error */, "Arguments_for_the_rest_parameter_0_were_not_provided_6236", "Arguments for the rest parameter '{0}' were not provided."), - Generates_an_event_trace_and_a_list_of_types: diag(6237, 3 /* Message */, "Generates_an_event_trace_and_a_list_of_types_6237", "Generates an event trace and a list of types."), - Specify_the_module_specifier_to_be_used_to_import_the_jsx_and_jsxs_factory_functions_from_eg_react: diag(6238, 1 /* Error */, "Specify_the_module_specifier_to_be_used_to_import_the_jsx_and_jsxs_factory_functions_from_eg_react_6238", "Specify the module specifier to be used to import the 'jsx' and 'jsxs' factory functions from. eg, react"), - File_0_exists_according_to_earlier_cached_lookups: diag(6239, 3 /* Message */, "File_0_exists_according_to_earlier_cached_lookups_6239", "File '{0}' exists according to earlier cached lookups."), - File_0_does_not_exist_according_to_earlier_cached_lookups: diag(6240, 3 /* Message */, "File_0_does_not_exist_according_to_earlier_cached_lookups_6240", "File '{0}' does not exist according to earlier cached lookups."), - Resolution_for_type_reference_directive_0_was_found_in_cache_from_location_1: diag(6241, 3 /* Message */, "Resolution_for_type_reference_directive_0_was_found_in_cache_from_location_1_6241", "Resolution for type reference directive '{0}' was found in cache from location '{1}'."), - Resolving_type_reference_directive_0_containing_file_1: diag(6242, 3 /* Message */, "Resolving_type_reference_directive_0_containing_file_1_6242", "======== Resolving type reference directive '{0}', containing file '{1}'. ========"), - Interpret_optional_property_types_as_written_rather_than_adding_undefined: diag(6243, 3 /* Message */, "Interpret_optional_property_types_as_written_rather_than_adding_undefined_6243", "Interpret optional property types as written, rather than adding 'undefined'."), - Modules: diag(6244, 3 /* Message */, "Modules_6244", "Modules"), - File_Management: diag(6245, 3 /* Message */, "File_Management_6245", "File Management"), - Emit: diag(6246, 3 /* Message */, "Emit_6246", "Emit"), - JavaScript_Support: diag(6247, 3 /* Message */, "JavaScript_Support_6247", "JavaScript Support"), - Type_Checking: diag(6248, 3 /* Message */, "Type_Checking_6248", "Type Checking"), - Editor_Support: diag(6249, 3 /* Message */, "Editor_Support_6249", "Editor Support"), - Watch_and_Build_Modes: diag(6250, 3 /* Message */, "Watch_and_Build_Modes_6250", "Watch and Build Modes"), - Compiler_Diagnostics: diag(6251, 3 /* Message */, "Compiler_Diagnostics_6251", "Compiler Diagnostics"), - Interop_Constraints: diag(6252, 3 /* Message */, "Interop_Constraints_6252", "Interop Constraints"), - Backwards_Compatibility: diag(6253, 3 /* Message */, "Backwards_Compatibility_6253", "Backwards Compatibility"), - Language_and_Environment: diag(6254, 3 /* Message */, "Language_and_Environment_6254", "Language and Environment"), - Projects: diag(6255, 3 /* Message */, "Projects_6255", "Projects"), - Output_Formatting: diag(6256, 3 /* Message */, "Output_Formatting_6256", "Output Formatting"), - Completeness: diag(6257, 3 /* Message */, "Completeness_6257", "Completeness"), - _0_should_be_set_inside_the_compilerOptions_object_of_the_config_json_file: diag(6258, 1 /* Error */, "_0_should_be_set_inside_the_compilerOptions_object_of_the_config_json_file_6258", "'{0}' should be set inside the 'compilerOptions' object of the config json file"), - Found_1_error_in_0: diag(6259, 3 /* Message */, "Found_1_error_in_0_6259", "Found 1 error in {0}"), - Found_0_errors_in_the_same_file_starting_at_Colon_1: diag(6260, 3 /* Message */, "Found_0_errors_in_the_same_file_starting_at_Colon_1_6260", "Found {0} errors in the same file, starting at: {1}"), - Found_0_errors_in_1_files: diag(6261, 3 /* Message */, "Found_0_errors_in_1_files_6261", "Found {0} errors in {1} files."), - File_name_0_has_a_1_extension_looking_up_2_instead: diag(6262, 3 /* Message */, "File_name_0_has_a_1_extension_looking_up_2_instead_6262", "File name '{0}' has a '{1}' extension - looking up '{2}' instead."), - Module_0_was_resolved_to_1_but_allowArbitraryExtensions_is_not_set: diag(6263, 1 /* Error */, "Module_0_was_resolved_to_1_but_allowArbitraryExtensions_is_not_set_6263", "Module '{0}' was resolved to '{1}', but '--allowArbitraryExtensions' is not set."), - Enable_importing_files_with_any_extension_provided_a_declaration_file_is_present: diag(6264, 3 /* Message */, "Enable_importing_files_with_any_extension_provided_a_declaration_file_is_present_6264", "Enable importing files with any extension, provided a declaration file is present."), - Resolving_type_reference_directive_for_program_that_specifies_custom_typeRoots_skipping_lookup_in_node_modules_folder: diag(6265, 3 /* Message */, "Resolving_type_reference_directive_for_program_that_specifies_custom_typeRoots_skipping_lookup_in_no_6265", "Resolving type reference directive for program that specifies custom typeRoots, skipping lookup in 'node_modules' folder."), - Option_0_can_only_be_specified_on_command_line: diag(6266, 1 /* Error */, "Option_0_can_only_be_specified_on_command_line_6266", "Option '{0}' can only be specified on command line."), - Directory_0_has_no_containing_package_json_scope_Imports_will_not_resolve: diag(6270, 3 /* Message */, "Directory_0_has_no_containing_package_json_scope_Imports_will_not_resolve_6270", "Directory '{0}' has no containing package.json scope. Imports will not resolve."), - Import_specifier_0_does_not_exist_in_package_json_scope_at_path_1: diag(6271, 3 /* Message */, "Import_specifier_0_does_not_exist_in_package_json_scope_at_path_1_6271", "Import specifier '{0}' does not exist in package.json scope at path '{1}'."), - Invalid_import_specifier_0_has_no_possible_resolutions: diag(6272, 3 /* Message */, "Invalid_import_specifier_0_has_no_possible_resolutions_6272", "Invalid import specifier '{0}' has no possible resolutions."), - package_json_scope_0_has_no_imports_defined: diag(6273, 3 /* Message */, "package_json_scope_0_has_no_imports_defined_6273", "package.json scope '{0}' has no imports defined."), - package_json_scope_0_explicitly_maps_specifier_1_to_null: diag(6274, 3 /* Message */, "package_json_scope_0_explicitly_maps_specifier_1_to_null_6274", "package.json scope '{0}' explicitly maps specifier '{1}' to null."), - package_json_scope_0_has_invalid_type_for_target_of_specifier_1: diag(6275, 3 /* Message */, "package_json_scope_0_has_invalid_type_for_target_of_specifier_1_6275", "package.json scope '{0}' has invalid type for target of specifier '{1}'"), - Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1: diag(6276, 3 /* Message */, "Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1_6276", "Export specifier '{0}' does not exist in package.json scope at path '{1}'."), - Resolution_of_non_relative_name_failed_trying_with_modern_Node_resolution_features_disabled_to_see_if_npm_library_needs_configuration_update: diag(6277, 3 /* Message */, "Resolution_of_non_relative_name_failed_trying_with_modern_Node_resolution_features_disabled_to_see_i_6277", "Resolution of non-relative name failed; trying with modern Node resolution features disabled to see if npm library needs configuration update."), - There_are_types_at_0_but_this_result_could_not_be_resolved_when_respecting_package_json_exports_The_1_library_may_need_to_update_its_package_json_or_typings: diag(6278, 3 /* Message */, "There_are_types_at_0_but_this_result_could_not_be_resolved_when_respecting_package_json_exports_The__6278", "There are types at '{0}', but this result could not be resolved when respecting package.json \"exports\". The '{1}' library may need to update its package.json or typings."), - Enable_project_compilation: diag(6302, 3 /* Message */, "Enable_project_compilation_6302", "Enable project compilation"), - Composite_projects_may_not_disable_declaration_emit: diag(6304, 1 /* Error */, "Composite_projects_may_not_disable_declaration_emit_6304", "Composite projects may not disable declaration emit."), - Output_file_0_has_not_been_built_from_source_file_1: diag(6305, 1 /* Error */, "Output_file_0_has_not_been_built_from_source_file_1_6305", "Output file '{0}' has not been built from source file '{1}'."), - Referenced_project_0_must_have_setting_composite_Colon_true: diag(6306, 1 /* Error */, "Referenced_project_0_must_have_setting_composite_Colon_true_6306", "Referenced project '{0}' must have setting \"composite\": true."), - File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_include_pattern: diag(6307, 1 /* Error */, "File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_includ_6307", "File '{0}' is not listed within the file list of project '{1}'. Projects must list all files or use an 'include' pattern."), - Cannot_prepend_project_0_because_it_does_not_have_outFile_set: diag(6308, 1 /* Error */, "Cannot_prepend_project_0_because_it_does_not_have_outFile_set_6308", "Cannot prepend project '{0}' because it does not have 'outFile' set"), - Output_file_0_from_project_1_does_not_exist: diag(6309, 1 /* Error */, "Output_file_0_from_project_1_does_not_exist_6309", "Output file '{0}' from project '{1}' does not exist"), - Referenced_project_0_may_not_disable_emit: diag(6310, 1 /* Error */, "Referenced_project_0_may_not_disable_emit_6310", "Referenced project '{0}' may not disable emit."), - Project_0_is_out_of_date_because_output_1_is_older_than_input_2: diag(6350, 3 /* Message */, "Project_0_is_out_of_date_because_output_1_is_older_than_input_2_6350", "Project '{0}' is out of date because output '{1}' is older than input '{2}'"), - Project_0_is_up_to_date_because_newest_input_1_is_older_than_output_2: diag(6351, 3 /* Message */, "Project_0_is_up_to_date_because_newest_input_1_is_older_than_output_2_6351", "Project '{0}' is up to date because newest input '{1}' is older than output '{2}'"), - Project_0_is_out_of_date_because_output_file_1_does_not_exist: diag(6352, 3 /* Message */, "Project_0_is_out_of_date_because_output_file_1_does_not_exist_6352", "Project '{0}' is out of date because output file '{1}' does not exist"), - Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date: diag(6353, 3 /* Message */, "Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date_6353", "Project '{0}' is out of date because its dependency '{1}' is out of date"), - Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies: diag(6354, 3 /* Message */, "Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies_6354", "Project '{0}' is up to date with .d.ts files from its dependencies"), - Projects_in_this_build_Colon_0: diag(6355, 3 /* Message */, "Projects_in_this_build_Colon_0_6355", "Projects in this build: {0}"), - A_non_dry_build_would_delete_the_following_files_Colon_0: diag(6356, 3 /* Message */, "A_non_dry_build_would_delete_the_following_files_Colon_0_6356", "A non-dry build would delete the following files: {0}"), - A_non_dry_build_would_build_project_0: diag(6357, 3 /* Message */, "A_non_dry_build_would_build_project_0_6357", "A non-dry build would build project '{0}'"), - Building_project_0: diag(6358, 3 /* Message */, "Building_project_0_6358", "Building project '{0}'..."), - Updating_output_timestamps_of_project_0: diag(6359, 3 /* Message */, "Updating_output_timestamps_of_project_0_6359", "Updating output timestamps of project '{0}'..."), - Project_0_is_up_to_date: diag(6361, 3 /* Message */, "Project_0_is_up_to_date_6361", "Project '{0}' is up to date"), - Skipping_build_of_project_0_because_its_dependency_1_has_errors: diag(6362, 3 /* Message */, "Skipping_build_of_project_0_because_its_dependency_1_has_errors_6362", "Skipping build of project '{0}' because its dependency '{1}' has errors"), - Project_0_can_t_be_built_because_its_dependency_1_has_errors: diag(6363, 3 /* Message */, "Project_0_can_t_be_built_because_its_dependency_1_has_errors_6363", "Project '{0}' can't be built because its dependency '{1}' has errors"), - Build_one_or_more_projects_and_their_dependencies_if_out_of_date: diag(6364, 3 /* Message */, "Build_one_or_more_projects_and_their_dependencies_if_out_of_date_6364", "Build one or more projects and their dependencies, if out of date"), - Delete_the_outputs_of_all_projects: diag(6365, 3 /* Message */, "Delete_the_outputs_of_all_projects_6365", "Delete the outputs of all projects."), - Show_what_would_be_built_or_deleted_if_specified_with_clean: diag(6367, 3 /* Message */, "Show_what_would_be_built_or_deleted_if_specified_with_clean_6367", "Show what would be built (or deleted, if specified with '--clean')"), - Option_build_must_be_the_first_command_line_argument: diag(6369, 1 /* Error */, "Option_build_must_be_the_first_command_line_argument_6369", "Option '--build' must be the first command line argument."), - Options_0_and_1_cannot_be_combined: diag(6370, 1 /* Error */, "Options_0_and_1_cannot_be_combined_6370", "Options '{0}' and '{1}' cannot be combined."), - Updating_unchanged_output_timestamps_of_project_0: diag(6371, 3 /* Message */, "Updating_unchanged_output_timestamps_of_project_0_6371", "Updating unchanged output timestamps of project '{0}'..."), - Project_0_is_out_of_date_because_output_of_its_dependency_1_has_changed: diag(6372, 3 /* Message */, "Project_0_is_out_of_date_because_output_of_its_dependency_1_has_changed_6372", "Project '{0}' is out of date because output of its dependency '{1}' has changed"), - Updating_output_of_project_0: diag(6373, 3 /* Message */, "Updating_output_of_project_0_6373", "Updating output of project '{0}'..."), - A_non_dry_build_would_update_timestamps_for_output_of_project_0: diag(6374, 3 /* Message */, "A_non_dry_build_would_update_timestamps_for_output_of_project_0_6374", "A non-dry build would update timestamps for output of project '{0}'"), - A_non_dry_build_would_update_output_of_project_0: diag(6375, 3 /* Message */, "A_non_dry_build_would_update_output_of_project_0_6375", "A non-dry build would update output of project '{0}'"), - Cannot_update_output_of_project_0_because_there_was_error_reading_file_1: diag(6376, 3 /* Message */, "Cannot_update_output_of_project_0_because_there_was_error_reading_file_1_6376", "Cannot update output of project '{0}' because there was error reading file '{1}'"), - Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1: diag(6377, 1 /* Error */, "Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1_6377", "Cannot write file '{0}' because it will overwrite '.tsbuildinfo' file generated by referenced project '{1}'"), - Composite_projects_may_not_disable_incremental_compilation: diag(6379, 1 /* Error */, "Composite_projects_may_not_disable_incremental_compilation_6379", "Composite projects may not disable incremental compilation."), - Specify_file_to_store_incremental_compilation_information: diag(6380, 3 /* Message */, "Specify_file_to_store_incremental_compilation_information_6380", "Specify file to store incremental compilation information"), - Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_current_version_2: diag(6381, 3 /* Message */, "Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_curren_6381", "Project '{0}' is out of date because output for it was generated with version '{1}' that differs with current version '{2}'"), - Skipping_build_of_project_0_because_its_dependency_1_was_not_built: diag(6382, 3 /* Message */, "Skipping_build_of_project_0_because_its_dependency_1_was_not_built_6382", "Skipping build of project '{0}' because its dependency '{1}' was not built"), - Project_0_can_t_be_built_because_its_dependency_1_was_not_built: diag(6383, 3 /* Message */, "Project_0_can_t_be_built_because_its_dependency_1_was_not_built_6383", "Project '{0}' can't be built because its dependency '{1}' was not built"), - Have_recompiles_in_incremental_and_watch_assume_that_changes_within_a_file_will_only_affect_files_directly_depending_on_it: diag(6384, 3 /* Message */, "Have_recompiles_in_incremental_and_watch_assume_that_changes_within_a_file_will_only_affect_files_di_6384", "Have recompiles in '--incremental' and '--watch' assume that changes within a file will only affect files directly depending on it."), - _0_is_deprecated: diag(6385, 2 /* Suggestion */, "_0_is_deprecated_6385", "'{0}' is deprecated.", - /*reportsUnnecessary*/ - void 0, - /*elidedInCompatabilityPyramid*/ - void 0, - /*reportsDeprecated*/ - true), - Performance_timings_for_diagnostics_or_extendedDiagnostics_are_not_available_in_this_session_A_native_implementation_of_the_Web_Performance_API_could_not_be_found: diag(6386, 3 /* Message */, "Performance_timings_for_diagnostics_or_extendedDiagnostics_are_not_available_in_this_session_A_nativ_6386", "Performance timings for '--diagnostics' or '--extendedDiagnostics' are not available in this session. A native implementation of the Web Performance API could not be found."), - The_signature_0_of_1_is_deprecated: diag(6387, 2 /* Suggestion */, "The_signature_0_of_1_is_deprecated_6387", "The signature '{0}' of '{1}' is deprecated.", - /*reportsUnnecessary*/ - void 0, - /*elidedInCompatabilityPyramid*/ - void 0, - /*reportsDeprecated*/ - true), - Project_0_is_being_forcibly_rebuilt: diag(6388, 3 /* Message */, "Project_0_is_being_forcibly_rebuilt_6388", "Project '{0}' is being forcibly rebuilt"), - Reusing_resolution_of_module_0_from_1_of_old_program_it_was_not_resolved: diag(6389, 3 /* Message */, "Reusing_resolution_of_module_0_from_1_of_old_program_it_was_not_resolved_6389", "Reusing resolution of module '{0}' from '{1}' of old program, it was not resolved."), - Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2: diag(6390, 3 /* Message */, "Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved__6390", "Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was successfully resolved to '{2}'."), - Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3: diag(6391, 3 /* Message */, "Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved__6391", "Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was successfully resolved to '{2}' with Package ID '{3}'."), - Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_not_resolved: diag(6392, 3 /* Message */, "Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_not_resolved_6392", "Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was not resolved."), - Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3: diag(6393, 3 /* Message */, "Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_6393", "Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}'."), - Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3_with_Package_ID_4: diag(6394, 3 /* Message */, "Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_6394", "Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}' with Package ID '{4}'."), - Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_not_resolved: diag(6395, 3 /* Message */, "Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_not_resolved_6395", "Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was not resolved."), - Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3: diag(6396, 3 /* Message */, "Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_succes_6396", "Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}'."), - Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3_with_Package_ID_4: diag(6397, 3 /* Message */, "Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_succes_6397", "Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}' with Package ID '{4}'."), - Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_not_resolved: diag(6398, 3 /* Message */, "Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_not_re_6398", "Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was not resolved."), - Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_some_of_the_changes_were_not_emitted: diag(6399, 3 /* Message */, "Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_some_of_the_changes_were_not_emitte_6399", "Project '{0}' is out of date because buildinfo file '{1}' indicates that some of the changes were not emitted"), - Project_0_is_up_to_date_but_needs_to_update_timestamps_of_output_files_that_are_older_than_input_files: diag(6400, 3 /* Message */, "Project_0_is_up_to_date_but_needs_to_update_timestamps_of_output_files_that_are_older_than_input_fil_6400", "Project '{0}' is up to date but needs to update timestamps of output files that are older than input files"), - Project_0_is_out_of_date_because_there_was_error_reading_file_1: diag(6401, 3 /* Message */, "Project_0_is_out_of_date_because_there_was_error_reading_file_1_6401", "Project '{0}' is out of date because there was error reading file '{1}'"), - Resolving_in_0_mode_with_conditions_1: diag(6402, 3 /* Message */, "Resolving_in_0_mode_with_conditions_1_6402", "Resolving in {0} mode with conditions {1}."), - Matched_0_condition_1: diag(6403, 3 /* Message */, "Matched_0_condition_1_6403", "Matched '{0}' condition '{1}'."), - Using_0_subpath_1_with_target_2: diag(6404, 3 /* Message */, "Using_0_subpath_1_with_target_2_6404", "Using '{0}' subpath '{1}' with target '{2}'."), - Saw_non_matching_condition_0: diag(6405, 3 /* Message */, "Saw_non_matching_condition_0_6405", "Saw non-matching condition '{0}'."), - Project_0_is_out_of_date_because_buildinfo_file_1_indicates_there_is_change_in_compilerOptions: diag(6406, 3 /* Message */, "Project_0_is_out_of_date_because_buildinfo_file_1_indicates_there_is_change_in_compilerOptions_6406", "Project '{0}' is out of date because buildinfo file '{1}' indicates there is change in compilerOptions"), - Allow_imports_to_include_TypeScript_file_extensions_Requires_moduleResolution_bundler_and_either_noEmit_or_emitDeclarationOnly_to_be_set: diag(6407, 3 /* Message */, "Allow_imports_to_include_TypeScript_file_extensions_Requires_moduleResolution_bundler_and_either_noE_6407", "Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set."), - Use_the_package_json_exports_field_when_resolving_package_imports: diag(6408, 3 /* Message */, "Use_the_package_json_exports_field_when_resolving_package_imports_6408", "Use the package.json 'exports' field when resolving package imports."), - Use_the_package_json_imports_field_when_resolving_imports: diag(6409, 3 /* Message */, "Use_the_package_json_imports_field_when_resolving_imports_6409", "Use the package.json 'imports' field when resolving imports."), - Conditions_to_set_in_addition_to_the_resolver_specific_defaults_when_resolving_imports: diag(6410, 3 /* Message */, "Conditions_to_set_in_addition_to_the_resolver_specific_defaults_when_resolving_imports_6410", "Conditions to set in addition to the resolver-specific defaults when resolving imports."), - true_when_moduleResolution_is_node16_nodenext_or_bundler_otherwise_false: diag(6411, 3 /* Message */, "true_when_moduleResolution_is_node16_nodenext_or_bundler_otherwise_false_6411", "`true` when 'moduleResolution' is 'node16', 'nodenext', or 'bundler'; otherwise `false`."), - Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_file_2_was_root_file_of_compilation_but_not_any_more: diag(6412, 3 /* Message */, "Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_file_2_was_root_file_of_compilation_6412", "Project '{0}' is out of date because buildinfo file '{1}' indicates that file '{2}' was root file of compilation but not any more."), - Entering_conditional_exports: diag(6413, 3 /* Message */, "Entering_conditional_exports_6413", "Entering conditional exports."), - Resolved_under_condition_0: diag(6414, 3 /* Message */, "Resolved_under_condition_0_6414", "Resolved under condition '{0}'."), - Failed_to_resolve_under_condition_0: diag(6415, 3 /* Message */, "Failed_to_resolve_under_condition_0_6415", "Failed to resolve under condition '{0}'."), - Exiting_conditional_exports: diag(6416, 3 /* Message */, "Exiting_conditional_exports_6416", "Exiting conditional exports."), - Searching_all_ancestor_node_modules_directories_for_preferred_extensions_Colon_0: diag(6417, 3 /* Message */, "Searching_all_ancestor_node_modules_directories_for_preferred_extensions_Colon_0_6417", "Searching all ancestor node_modules directories for preferred extensions: {0}."), - Searching_all_ancestor_node_modules_directories_for_fallback_extensions_Colon_0: diag(6418, 3 /* Message */, "Searching_all_ancestor_node_modules_directories_for_fallback_extensions_Colon_0_6418", "Searching all ancestor node_modules directories for fallback extensions: {0}."), - The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1: diag(6500, 3 /* Message */, "The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1_6500", "The expected type comes from property '{0}' which is declared here on type '{1}'"), - The_expected_type_comes_from_this_index_signature: diag(6501, 3 /* Message */, "The_expected_type_comes_from_this_index_signature_6501", "The expected type comes from this index signature."), - The_expected_type_comes_from_the_return_type_of_this_signature: diag(6502, 3 /* Message */, "The_expected_type_comes_from_the_return_type_of_this_signature_6502", "The expected type comes from the return type of this signature."), - Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing: diag(6503, 3 /* Message */, "Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing_6503", "Print names of files that are part of the compilation and then stop processing."), - File_0_is_a_JavaScript_file_Did_you_mean_to_enable_the_allowJs_option: diag(6504, 1 /* Error */, "File_0_is_a_JavaScript_file_Did_you_mean_to_enable_the_allowJs_option_6504", "File '{0}' is a JavaScript file. Did you mean to enable the 'allowJs' option?"), - Print_names_of_files_and_the_reason_they_are_part_of_the_compilation: diag(6505, 3 /* Message */, "Print_names_of_files_and_the_reason_they_are_part_of_the_compilation_6505", "Print names of files and the reason they are part of the compilation."), - Consider_adding_a_declare_modifier_to_this_class: diag(6506, 3 /* Message */, "Consider_adding_a_declare_modifier_to_this_class_6506", "Consider adding a 'declare' modifier to this class."), - Allow_JavaScript_files_to_be_a_part_of_your_program_Use_the_checkJS_option_to_get_errors_from_these_files: diag(6600, 3 /* Message */, "Allow_JavaScript_files_to_be_a_part_of_your_program_Use_the_checkJS_option_to_get_errors_from_these__6600", "Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files."), - Allow_import_x_from_y_when_a_module_doesn_t_have_a_default_export: diag(6601, 3 /* Message */, "Allow_import_x_from_y_when_a_module_doesn_t_have_a_default_export_6601", "Allow 'import x from y' when a module doesn't have a default export."), - Allow_accessing_UMD_globals_from_modules: diag(6602, 3 /* Message */, "Allow_accessing_UMD_globals_from_modules_6602", "Allow accessing UMD globals from modules."), - Disable_error_reporting_for_unreachable_code: diag(6603, 3 /* Message */, "Disable_error_reporting_for_unreachable_code_6603", "Disable error reporting for unreachable code."), - Disable_error_reporting_for_unused_labels: diag(6604, 3 /* Message */, "Disable_error_reporting_for_unused_labels_6604", "Disable error reporting for unused labels."), - Ensure_use_strict_is_always_emitted: diag(6605, 3 /* Message */, "Ensure_use_strict_is_always_emitted_6605", "Ensure 'use strict' is always emitted."), - Have_recompiles_in_projects_that_use_incremental_and_watch_mode_assume_that_changes_within_a_file_will_only_affect_files_directly_depending_on_it: diag(6606, 3 /* Message */, "Have_recompiles_in_projects_that_use_incremental_and_watch_mode_assume_that_changes_within_a_file_wi_6606", "Have recompiles in projects that use 'incremental' and 'watch' mode assume that changes within a file will only affect files directly depending on it."), - Specify_the_base_directory_to_resolve_non_relative_module_names: diag(6607, 3 /* Message */, "Specify_the_base_directory_to_resolve_non_relative_module_names_6607", "Specify the base directory to resolve non-relative module names."), - No_longer_supported_In_early_versions_manually_set_the_text_encoding_for_reading_files: diag(6608, 3 /* Message */, "No_longer_supported_In_early_versions_manually_set_the_text_encoding_for_reading_files_6608", "No longer supported. In early versions, manually set the text encoding for reading files."), - Enable_error_reporting_in_type_checked_JavaScript_files: diag(6609, 3 /* Message */, "Enable_error_reporting_in_type_checked_JavaScript_files_6609", "Enable error reporting in type-checked JavaScript files."), - Enable_constraints_that_allow_a_TypeScript_project_to_be_used_with_project_references: diag(6611, 3 /* Message */, "Enable_constraints_that_allow_a_TypeScript_project_to_be_used_with_project_references_6611", "Enable constraints that allow a TypeScript project to be used with project references."), - Generate_d_ts_files_from_TypeScript_and_JavaScript_files_in_your_project: diag(6612, 3 /* Message */, "Generate_d_ts_files_from_TypeScript_and_JavaScript_files_in_your_project_6612", "Generate .d.ts files from TypeScript and JavaScript files in your project."), - Specify_the_output_directory_for_generated_declaration_files: diag(6613, 3 /* Message */, "Specify_the_output_directory_for_generated_declaration_files_6613", "Specify the output directory for generated declaration files."), - Create_sourcemaps_for_d_ts_files: diag(6614, 3 /* Message */, "Create_sourcemaps_for_d_ts_files_6614", "Create sourcemaps for d.ts files."), - Output_compiler_performance_information_after_building: diag(6615, 3 /* Message */, "Output_compiler_performance_information_after_building_6615", "Output compiler performance information after building."), - Disables_inference_for_type_acquisition_by_looking_at_filenames_in_a_project: diag(6616, 3 /* Message */, "Disables_inference_for_type_acquisition_by_looking_at_filenames_in_a_project_6616", "Disables inference for type acquisition by looking at filenames in a project."), - Reduce_the_number_of_projects_loaded_automatically_by_TypeScript: diag(6617, 3 /* Message */, "Reduce_the_number_of_projects_loaded_automatically_by_TypeScript_6617", "Reduce the number of projects loaded automatically by TypeScript."), - Remove_the_20mb_cap_on_total_source_code_size_for_JavaScript_files_in_the_TypeScript_language_server: diag(6618, 3 /* Message */, "Remove_the_20mb_cap_on_total_source_code_size_for_JavaScript_files_in_the_TypeScript_language_server_6618", "Remove the 20mb cap on total source code size for JavaScript files in the TypeScript language server."), - Opt_a_project_out_of_multi_project_reference_checking_when_editing: diag(6619, 3 /* Message */, "Opt_a_project_out_of_multi_project_reference_checking_when_editing_6619", "Opt a project out of multi-project reference checking when editing."), - Disable_preferring_source_files_instead_of_declaration_files_when_referencing_composite_projects: diag(6620, 3 /* Message */, "Disable_preferring_source_files_instead_of_declaration_files_when_referencing_composite_projects_6620", "Disable preferring source files instead of declaration files when referencing composite projects."), - Emit_more_compliant_but_verbose_and_less_performant_JavaScript_for_iteration: diag(6621, 3 /* Message */, "Emit_more_compliant_but_verbose_and_less_performant_JavaScript_for_iteration_6621", "Emit more compliant, but verbose and less performant JavaScript for iteration."), - Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files: diag(6622, 3 /* Message */, "Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files_6622", "Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files."), - Only_output_d_ts_files_and_not_JavaScript_files: diag(6623, 3 /* Message */, "Only_output_d_ts_files_and_not_JavaScript_files_6623", "Only output d.ts files and not JavaScript files."), - Emit_design_type_metadata_for_decorated_declarations_in_source_files: diag(6624, 3 /* Message */, "Emit_design_type_metadata_for_decorated_declarations_in_source_files_6624", "Emit design-type metadata for decorated declarations in source files."), - Disable_the_type_acquisition_for_JavaScript_projects: diag(6625, 3 /* Message */, "Disable_the_type_acquisition_for_JavaScript_projects_6625", "Disable the type acquisition for JavaScript projects"), - Emit_additional_JavaScript_to_ease_support_for_importing_CommonJS_modules_This_enables_allowSyntheticDefaultImports_for_type_compatibility: diag(6626, 3 /* Message */, "Emit_additional_JavaScript_to_ease_support_for_importing_CommonJS_modules_This_enables_allowSyntheti_6626", "Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility."), - Filters_results_from_the_include_option: diag(6627, 3 /* Message */, "Filters_results_from_the_include_option_6627", "Filters results from the `include` option."), - Remove_a_list_of_directories_from_the_watch_process: diag(6628, 3 /* Message */, "Remove_a_list_of_directories_from_the_watch_process_6628", "Remove a list of directories from the watch process."), - Remove_a_list_of_files_from_the_watch_mode_s_processing: diag(6629, 3 /* Message */, "Remove_a_list_of_files_from_the_watch_mode_s_processing_6629", "Remove a list of files from the watch mode's processing."), - Enable_experimental_support_for_legacy_experimental_decorators: diag(6630, 3 /* Message */, "Enable_experimental_support_for_legacy_experimental_decorators_6630", "Enable experimental support for legacy experimental decorators."), - Print_files_read_during_the_compilation_including_why_it_was_included: diag(6631, 3 /* Message */, "Print_files_read_during_the_compilation_including_why_it_was_included_6631", "Print files read during the compilation including why it was included."), - Output_more_detailed_compiler_performance_information_after_building: diag(6632, 3 /* Message */, "Output_more_detailed_compiler_performance_information_after_building_6632", "Output more detailed compiler performance information after building."), - Specify_one_or_more_path_or_node_module_references_to_base_configuration_files_from_which_settings_are_inherited: diag(6633, 3 /* Message */, "Specify_one_or_more_path_or_node_module_references_to_base_configuration_files_from_which_settings_a_6633", "Specify one or more path or node module references to base configuration files from which settings are inherited."), - Specify_what_approach_the_watcher_should_use_if_the_system_runs_out_of_native_file_watchers: diag(6634, 3 /* Message */, "Specify_what_approach_the_watcher_should_use_if_the_system_runs_out_of_native_file_watchers_6634", "Specify what approach the watcher should use if the system runs out of native file watchers."), - Include_a_list_of_files_This_does_not_support_glob_patterns_as_opposed_to_include: diag(6635, 3 /* Message */, "Include_a_list_of_files_This_does_not_support_glob_patterns_as_opposed_to_include_6635", "Include a list of files. This does not support glob patterns, as opposed to `include`."), - Build_all_projects_including_those_that_appear_to_be_up_to_date: diag(6636, 3 /* Message */, "Build_all_projects_including_those_that_appear_to_be_up_to_date_6636", "Build all projects, including those that appear to be up to date."), - Ensure_that_casing_is_correct_in_imports: diag(6637, 3 /* Message */, "Ensure_that_casing_is_correct_in_imports_6637", "Ensure that casing is correct in imports."), - Emit_a_v8_CPU_profile_of_the_compiler_run_for_debugging: diag(6638, 3 /* Message */, "Emit_a_v8_CPU_profile_of_the_compiler_run_for_debugging_6638", "Emit a v8 CPU profile of the compiler run for debugging."), - Allow_importing_helper_functions_from_tslib_once_per_project_instead_of_including_them_per_file: diag(6639, 3 /* Message */, "Allow_importing_helper_functions_from_tslib_once_per_project_instead_of_including_them_per_file_6639", "Allow importing helper functions from tslib once per project, instead of including them per-file."), - Specify_a_list_of_glob_patterns_that_match_files_to_be_included_in_compilation: diag(6641, 3 /* Message */, "Specify_a_list_of_glob_patterns_that_match_files_to_be_included_in_compilation_6641", "Specify a list of glob patterns that match files to be included in compilation."), - Save_tsbuildinfo_files_to_allow_for_incremental_compilation_of_projects: diag(6642, 3 /* Message */, "Save_tsbuildinfo_files_to_allow_for_incremental_compilation_of_projects_6642", "Save .tsbuildinfo files to allow for incremental compilation of projects."), - Include_sourcemap_files_inside_the_emitted_JavaScript: diag(6643, 3 /* Message */, "Include_sourcemap_files_inside_the_emitted_JavaScript_6643", "Include sourcemap files inside the emitted JavaScript."), - Include_source_code_in_the_sourcemaps_inside_the_emitted_JavaScript: diag(6644, 3 /* Message */, "Include_source_code_in_the_sourcemaps_inside_the_emitted_JavaScript_6644", "Include source code in the sourcemaps inside the emitted JavaScript."), - Ensure_that_each_file_can_be_safely_transpiled_without_relying_on_other_imports: diag(6645, 3 /* Message */, "Ensure_that_each_file_can_be_safely_transpiled_without_relying_on_other_imports_6645", "Ensure that each file can be safely transpiled without relying on other imports."), - Specify_what_JSX_code_is_generated: diag(6646, 3 /* Message */, "Specify_what_JSX_code_is_generated_6646", "Specify what JSX code is generated."), - Specify_the_JSX_factory_function_used_when_targeting_React_JSX_emit_e_g_React_createElement_or_h: diag(6647, 3 /* Message */, "Specify_the_JSX_factory_function_used_when_targeting_React_JSX_emit_e_g_React_createElement_or_h_6647", "Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'."), - Specify_the_JSX_Fragment_reference_used_for_fragments_when_targeting_React_JSX_emit_e_g_React_Fragment_or_Fragment: diag(6648, 3 /* Message */, "Specify_the_JSX_Fragment_reference_used_for_fragments_when_targeting_React_JSX_emit_e_g_React_Fragme_6648", "Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'."), - Specify_module_specifier_used_to_import_the_JSX_factory_functions_when_using_jsx_Colon_react_jsx_Asterisk: diag(6649, 3 /* Message */, "Specify_module_specifier_used_to_import_the_JSX_factory_functions_when_using_jsx_Colon_react_jsx_Ast_6649", "Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'."), - Make_keyof_only_return_strings_instead_of_string_numbers_or_symbols_Legacy_option: diag(6650, 3 /* Message */, "Make_keyof_only_return_strings_instead_of_string_numbers_or_symbols_Legacy_option_6650", "Make keyof only return strings instead of string, numbers or symbols. Legacy option."), - Specify_a_set_of_bundled_library_declaration_files_that_describe_the_target_runtime_environment: diag(6651, 3 /* Message */, "Specify_a_set_of_bundled_library_declaration_files_that_describe_the_target_runtime_environment_6651", "Specify a set of bundled library declaration files that describe the target runtime environment."), - Print_the_names_of_emitted_files_after_a_compilation: diag(6652, 3 /* Message */, "Print_the_names_of_emitted_files_after_a_compilation_6652", "Print the names of emitted files after a compilation."), - Print_all_of_the_files_read_during_the_compilation: diag(6653, 3 /* Message */, "Print_all_of_the_files_read_during_the_compilation_6653", "Print all of the files read during the compilation."), - Set_the_language_of_the_messaging_from_TypeScript_This_does_not_affect_emit: diag(6654, 3 /* Message */, "Set_the_language_of_the_messaging_from_TypeScript_This_does_not_affect_emit_6654", "Set the language of the messaging from TypeScript. This does not affect emit."), - Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations: diag(6655, 3 /* Message */, "Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations_6655", "Specify the location where debugger should locate map files instead of generated locations."), - Specify_the_maximum_folder_depth_used_for_checking_JavaScript_files_from_node_modules_Only_applicable_with_allowJs: diag(6656, 3 /* Message */, "Specify_the_maximum_folder_depth_used_for_checking_JavaScript_files_from_node_modules_Only_applicabl_6656", "Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'."), - Specify_what_module_code_is_generated: diag(6657, 3 /* Message */, "Specify_what_module_code_is_generated_6657", "Specify what module code is generated."), - Specify_how_TypeScript_looks_up_a_file_from_a_given_module_specifier: diag(6658, 3 /* Message */, "Specify_how_TypeScript_looks_up_a_file_from_a_given_module_specifier_6658", "Specify how TypeScript looks up a file from a given module specifier."), - Set_the_newline_character_for_emitting_files: diag(6659, 3 /* Message */, "Set_the_newline_character_for_emitting_files_6659", "Set the newline character for emitting files."), - Disable_emitting_files_from_a_compilation: diag(6660, 3 /* Message */, "Disable_emitting_files_from_a_compilation_6660", "Disable emitting files from a compilation."), - Disable_generating_custom_helper_functions_like_extends_in_compiled_output: diag(6661, 3 /* Message */, "Disable_generating_custom_helper_functions_like_extends_in_compiled_output_6661", "Disable generating custom helper functions like '__extends' in compiled output."), - Disable_emitting_files_if_any_type_checking_errors_are_reported: diag(6662, 3 /* Message */, "Disable_emitting_files_if_any_type_checking_errors_are_reported_6662", "Disable emitting files if any type checking errors are reported."), - Disable_truncating_types_in_error_messages: diag(6663, 3 /* Message */, "Disable_truncating_types_in_error_messages_6663", "Disable truncating types in error messages."), - Enable_error_reporting_for_fallthrough_cases_in_switch_statements: diag(6664, 3 /* Message */, "Enable_error_reporting_for_fallthrough_cases_in_switch_statements_6664", "Enable error reporting for fallthrough cases in switch statements."), - Enable_error_reporting_for_expressions_and_declarations_with_an_implied_any_type: diag(6665, 3 /* Message */, "Enable_error_reporting_for_expressions_and_declarations_with_an_implied_any_type_6665", "Enable error reporting for expressions and declarations with an implied 'any' type."), - Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier: diag(6666, 3 /* Message */, "Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier_6666", "Ensure overriding members in derived classes are marked with an override modifier."), - Enable_error_reporting_for_codepaths_that_do_not_explicitly_return_in_a_function: diag(6667, 3 /* Message */, "Enable_error_reporting_for_codepaths_that_do_not_explicitly_return_in_a_function_6667", "Enable error reporting for codepaths that do not explicitly return in a function."), - Enable_error_reporting_when_this_is_given_the_type_any: diag(6668, 3 /* Message */, "Enable_error_reporting_when_this_is_given_the_type_any_6668", "Enable error reporting when 'this' is given the type 'any'."), - Disable_adding_use_strict_directives_in_emitted_JavaScript_files: diag(6669, 3 /* Message */, "Disable_adding_use_strict_directives_in_emitted_JavaScript_files_6669", "Disable adding 'use strict' directives in emitted JavaScript files."), - Disable_including_any_library_files_including_the_default_lib_d_ts: diag(6670, 3 /* Message */, "Disable_including_any_library_files_including_the_default_lib_d_ts_6670", "Disable including any library files, including the default lib.d.ts."), - Enforces_using_indexed_accessors_for_keys_declared_using_an_indexed_type: diag(6671, 3 /* Message */, "Enforces_using_indexed_accessors_for_keys_declared_using_an_indexed_type_6671", "Enforces using indexed accessors for keys declared using an indexed type."), - Disallow_import_s_require_s_or_reference_s_from_expanding_the_number_of_files_TypeScript_should_add_to_a_project: diag(6672, 3 /* Message */, "Disallow_import_s_require_s_or_reference_s_from_expanding_the_number_of_files_TypeScript_should_add__6672", "Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project."), - Disable_strict_checking_of_generic_signatures_in_function_types: diag(6673, 3 /* Message */, "Disable_strict_checking_of_generic_signatures_in_function_types_6673", "Disable strict checking of generic signatures in function types."), - Add_undefined_to_a_type_when_accessed_using_an_index: diag(6674, 3 /* Message */, "Add_undefined_to_a_type_when_accessed_using_an_index_6674", "Add 'undefined' to a type when accessed using an index."), - Enable_error_reporting_when_local_variables_aren_t_read: diag(6675, 3 /* Message */, "Enable_error_reporting_when_local_variables_aren_t_read_6675", "Enable error reporting when local variables aren't read."), - Raise_an_error_when_a_function_parameter_isn_t_read: diag(6676, 3 /* Message */, "Raise_an_error_when_a_function_parameter_isn_t_read_6676", "Raise an error when a function parameter isn't read."), - Deprecated_setting_Use_outFile_instead: diag(6677, 3 /* Message */, "Deprecated_setting_Use_outFile_instead_6677", "Deprecated setting. Use 'outFile' instead."), - Specify_an_output_folder_for_all_emitted_files: diag(6678, 3 /* Message */, "Specify_an_output_folder_for_all_emitted_files_6678", "Specify an output folder for all emitted files."), - Specify_a_file_that_bundles_all_outputs_into_one_JavaScript_file_If_declaration_is_true_also_designates_a_file_that_bundles_all_d_ts_output: diag(6679, 3 /* Message */, "Specify_a_file_that_bundles_all_outputs_into_one_JavaScript_file_If_declaration_is_true_also_designa_6679", "Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output."), - Specify_a_set_of_entries_that_re_map_imports_to_additional_lookup_locations: diag(6680, 3 /* Message */, "Specify_a_set_of_entries_that_re_map_imports_to_additional_lookup_locations_6680", "Specify a set of entries that re-map imports to additional lookup locations."), - Specify_a_list_of_language_service_plugins_to_include: diag(6681, 3 /* Message */, "Specify_a_list_of_language_service_plugins_to_include_6681", "Specify a list of language service plugins to include."), - Disable_erasing_const_enum_declarations_in_generated_code: diag(6682, 3 /* Message */, "Disable_erasing_const_enum_declarations_in_generated_code_6682", "Disable erasing 'const enum' declarations in generated code."), - Disable_resolving_symlinks_to_their_realpath_This_correlates_to_the_same_flag_in_node: diag(6683, 3 /* Message */, "Disable_resolving_symlinks_to_their_realpath_This_correlates_to_the_same_flag_in_node_6683", "Disable resolving symlinks to their realpath. This correlates to the same flag in node."), - Disable_wiping_the_console_in_watch_mode: diag(6684, 3 /* Message */, "Disable_wiping_the_console_in_watch_mode_6684", "Disable wiping the console in watch mode."), - Enable_color_and_formatting_in_TypeScript_s_output_to_make_compiler_errors_easier_to_read: diag(6685, 3 /* Message */, "Enable_color_and_formatting_in_TypeScript_s_output_to_make_compiler_errors_easier_to_read_6685", "Enable color and formatting in TypeScript's output to make compiler errors easier to read."), - Specify_the_object_invoked_for_createElement_This_only_applies_when_targeting_react_JSX_emit: diag(6686, 3 /* Message */, "Specify_the_object_invoked_for_createElement_This_only_applies_when_targeting_react_JSX_emit_6686", "Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit."), - Specify_an_array_of_objects_that_specify_paths_for_projects_Used_in_project_references: diag(6687, 3 /* Message */, "Specify_an_array_of_objects_that_specify_paths_for_projects_Used_in_project_references_6687", "Specify an array of objects that specify paths for projects. Used in project references."), - Disable_emitting_comments: diag(6688, 3 /* Message */, "Disable_emitting_comments_6688", "Disable emitting comments."), - Enable_importing_json_files: diag(6689, 3 /* Message */, "Enable_importing_json_files_6689", "Enable importing .json files."), - Specify_the_root_folder_within_your_source_files: diag(6690, 3 /* Message */, "Specify_the_root_folder_within_your_source_files_6690", "Specify the root folder within your source files."), - Allow_multiple_folders_to_be_treated_as_one_when_resolving_modules: diag(6691, 3 /* Message */, "Allow_multiple_folders_to_be_treated_as_one_when_resolving_modules_6691", "Allow multiple folders to be treated as one when resolving modules."), - Skip_type_checking_d_ts_files_that_are_included_with_TypeScript: diag(6692, 3 /* Message */, "Skip_type_checking_d_ts_files_that_are_included_with_TypeScript_6692", "Skip type checking .d.ts files that are included with TypeScript."), - Skip_type_checking_all_d_ts_files: diag(6693, 3 /* Message */, "Skip_type_checking_all_d_ts_files_6693", "Skip type checking all .d.ts files."), - Create_source_map_files_for_emitted_JavaScript_files: diag(6694, 3 /* Message */, "Create_source_map_files_for_emitted_JavaScript_files_6694", "Create source map files for emitted JavaScript files."), - Specify_the_root_path_for_debuggers_to_find_the_reference_source_code: diag(6695, 3 /* Message */, "Specify_the_root_path_for_debuggers_to_find_the_reference_source_code_6695", "Specify the root path for debuggers to find the reference source code."), - Check_that_the_arguments_for_bind_call_and_apply_methods_match_the_original_function: diag(6697, 3 /* Message */, "Check_that_the_arguments_for_bind_call_and_apply_methods_match_the_original_function_6697", "Check that the arguments for 'bind', 'call', and 'apply' methods match the original function."), - When_assigning_functions_check_to_ensure_parameters_and_the_return_values_are_subtype_compatible: diag(6698, 3 /* Message */, "When_assigning_functions_check_to_ensure_parameters_and_the_return_values_are_subtype_compatible_6698", "When assigning functions, check to ensure parameters and the return values are subtype-compatible."), - When_type_checking_take_into_account_null_and_undefined: diag(6699, 3 /* Message */, "When_type_checking_take_into_account_null_and_undefined_6699", "When type checking, take into account 'null' and 'undefined'."), - Check_for_class_properties_that_are_declared_but_not_set_in_the_constructor: diag(6700, 3 /* Message */, "Check_for_class_properties_that_are_declared_but_not_set_in_the_constructor_6700", "Check for class properties that are declared but not set in the constructor."), - Disable_emitting_declarations_that_have_internal_in_their_JSDoc_comments: diag(6701, 3 /* Message */, "Disable_emitting_declarations_that_have_internal_in_their_JSDoc_comments_6701", "Disable emitting declarations that have '@internal' in their JSDoc comments."), - Disable_reporting_of_excess_property_errors_during_the_creation_of_object_literals: diag(6702, 3 /* Message */, "Disable_reporting_of_excess_property_errors_during_the_creation_of_object_literals_6702", "Disable reporting of excess property errors during the creation of object literals."), - Suppress_noImplicitAny_errors_when_indexing_objects_that_lack_index_signatures: diag(6703, 3 /* Message */, "Suppress_noImplicitAny_errors_when_indexing_objects_that_lack_index_signatures_6703", "Suppress 'noImplicitAny' errors when indexing objects that lack index signatures."), - Synchronously_call_callbacks_and_update_the_state_of_directory_watchers_on_platforms_that_don_t_support_recursive_watching_natively: diag(6704, 3 /* Message */, "Synchronously_call_callbacks_and_update_the_state_of_directory_watchers_on_platforms_that_don_t_supp_6704", "Synchronously call callbacks and update the state of directory watchers on platforms that don`t support recursive watching natively."), - Set_the_JavaScript_language_version_for_emitted_JavaScript_and_include_compatible_library_declarations: diag(6705, 3 /* Message */, "Set_the_JavaScript_language_version_for_emitted_JavaScript_and_include_compatible_library_declaratio_6705", "Set the JavaScript language version for emitted JavaScript and include compatible library declarations."), - Log_paths_used_during_the_moduleResolution_process: diag(6706, 3 /* Message */, "Log_paths_used_during_the_moduleResolution_process_6706", "Log paths used during the 'moduleResolution' process."), - Specify_the_path_to_tsbuildinfo_incremental_compilation_file: diag(6707, 3 /* Message */, "Specify_the_path_to_tsbuildinfo_incremental_compilation_file_6707", "Specify the path to .tsbuildinfo incremental compilation file."), - Specify_options_for_automatic_acquisition_of_declaration_files: diag(6709, 3 /* Message */, "Specify_options_for_automatic_acquisition_of_declaration_files_6709", "Specify options for automatic acquisition of declaration files."), - Specify_multiple_folders_that_act_like_Slashnode_modules_Slash_types: diag(6710, 3 /* Message */, "Specify_multiple_folders_that_act_like_Slashnode_modules_Slash_types_6710", "Specify multiple folders that act like './node_modules/@types'."), - Specify_type_package_names_to_be_included_without_being_referenced_in_a_source_file: diag(6711, 3 /* Message */, "Specify_type_package_names_to_be_included_without_being_referenced_in_a_source_file_6711", "Specify type package names to be included without being referenced in a source file."), - Emit_ECMAScript_standard_compliant_class_fields: diag(6712, 3 /* Message */, "Emit_ECMAScript_standard_compliant_class_fields_6712", "Emit ECMAScript-standard-compliant class fields."), - Enable_verbose_logging: diag(6713, 3 /* Message */, "Enable_verbose_logging_6713", "Enable verbose logging."), - Specify_how_directories_are_watched_on_systems_that_lack_recursive_file_watching_functionality: diag(6714, 3 /* Message */, "Specify_how_directories_are_watched_on_systems_that_lack_recursive_file_watching_functionality_6714", "Specify how directories are watched on systems that lack recursive file-watching functionality."), - Specify_how_the_TypeScript_watch_mode_works: diag(6715, 3 /* Message */, "Specify_how_the_TypeScript_watch_mode_works_6715", "Specify how the TypeScript watch mode works."), - Require_undeclared_properties_from_index_signatures_to_use_element_accesses: diag(6717, 3 /* Message */, "Require_undeclared_properties_from_index_signatures_to_use_element_accesses_6717", "Require undeclared properties from index signatures to use element accesses."), - Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types: diag(6718, 3 /* Message */, "Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types_6718", "Specify emit/checking behavior for imports that are only used for types."), - Default_catch_clause_variables_as_unknown_instead_of_any: diag(6803, 3 /* Message */, "Default_catch_clause_variables_as_unknown_instead_of_any_6803", "Default catch clause variables as 'unknown' instead of 'any'."), - Do_not_transform_or_elide_any_imports_or_exports_not_marked_as_type_only_ensuring_they_are_written_in_the_output_file_s_format_based_on_the_module_setting: diag(6804, 3 /* Message */, "Do_not_transform_or_elide_any_imports_or_exports_not_marked_as_type_only_ensuring_they_are_written_i_6804", "Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting."), - one_of_Colon: diag(6900, 3 /* Message */, "one_of_Colon_6900", "one of:"), - one_or_more_Colon: diag(6901, 3 /* Message */, "one_or_more_Colon_6901", "one or more:"), - type_Colon: diag(6902, 3 /* Message */, "type_Colon_6902", "type:"), - default_Colon: diag(6903, 3 /* Message */, "default_Colon_6903", "default:"), - module_system_or_esModuleInterop: diag(6904, 3 /* Message */, "module_system_or_esModuleInterop_6904", 'module === "system" or esModuleInterop'), - false_unless_strict_is_set: diag(6905, 3 /* Message */, "false_unless_strict_is_set_6905", "`false`, unless `strict` is set"), - false_unless_composite_is_set: diag(6906, 3 /* Message */, "false_unless_composite_is_set_6906", "`false`, unless `composite` is set"), - node_modules_bower_components_jspm_packages_plus_the_value_of_outDir_if_one_is_specified: diag(6907, 3 /* Message */, "node_modules_bower_components_jspm_packages_plus_the_value_of_outDir_if_one_is_specified_6907", '`["node_modules", "bower_components", "jspm_packages"]`, plus the value of `outDir` if one is specified.'), - if_files_is_specified_otherwise_Asterisk_Asterisk_Slash_Asterisk: diag(6908, 3 /* Message */, "if_files_is_specified_otherwise_Asterisk_Asterisk_Slash_Asterisk_6908", '`[]` if `files` is specified, otherwise `["**/*"]`'), - true_if_composite_false_otherwise: diag(6909, 3 /* Message */, "true_if_composite_false_otherwise_6909", "`true` if `composite`, `false` otherwise"), - module_AMD_or_UMD_or_System_or_ES6_then_Classic_Otherwise_Node: diag(69010, 3 /* Message */, "module_AMD_or_UMD_or_System_or_ES6_then_Classic_Otherwise_Node_69010", "module === `AMD` or `UMD` or `System` or `ES6`, then `Classic`, Otherwise `Node`"), - Computed_from_the_list_of_input_files: diag(6911, 3 /* Message */, "Computed_from_the_list_of_input_files_6911", "Computed from the list of input files"), - Platform_specific: diag(6912, 3 /* Message */, "Platform_specific_6912", "Platform specific"), - You_can_learn_about_all_of_the_compiler_options_at_0: diag(6913, 3 /* Message */, "You_can_learn_about_all_of_the_compiler_options_at_0_6913", "You can learn about all of the compiler options at {0}"), - Including_watch_w_will_start_watching_the_current_project_for_the_file_changes_Once_set_you_can_config_watch_mode_with_Colon: diag(6914, 3 /* Message */, "Including_watch_w_will_start_watching_the_current_project_for_the_file_changes_Once_set_you_can_conf_6914", "Including --watch, -w will start watching the current project for the file changes. Once set, you can config watch mode with:"), - Using_build_b_will_make_tsc_behave_more_like_a_build_orchestrator_than_a_compiler_This_is_used_to_trigger_building_composite_projects_which_you_can_learn_more_about_at_0: diag(6915, 3 /* Message */, "Using_build_b_will_make_tsc_behave_more_like_a_build_orchestrator_than_a_compiler_This_is_used_to_tr_6915", "Using --build, -b will make tsc behave more like a build orchestrator than a compiler. This is used to trigger building composite projects which you can learn more about at {0}"), - COMMON_COMMANDS: diag(6916, 3 /* Message */, "COMMON_COMMANDS_6916", "COMMON COMMANDS"), - ALL_COMPILER_OPTIONS: diag(6917, 3 /* Message */, "ALL_COMPILER_OPTIONS_6917", "ALL COMPILER OPTIONS"), - WATCH_OPTIONS: diag(6918, 3 /* Message */, "WATCH_OPTIONS_6918", "WATCH OPTIONS"), - BUILD_OPTIONS: diag(6919, 3 /* Message */, "BUILD_OPTIONS_6919", "BUILD OPTIONS"), - COMMON_COMPILER_OPTIONS: diag(6920, 3 /* Message */, "COMMON_COMPILER_OPTIONS_6920", "COMMON COMPILER OPTIONS"), - COMMAND_LINE_FLAGS: diag(6921, 3 /* Message */, "COMMAND_LINE_FLAGS_6921", "COMMAND LINE FLAGS"), - tsc_Colon_The_TypeScript_Compiler: diag(6922, 3 /* Message */, "tsc_Colon_The_TypeScript_Compiler_6922", "tsc: The TypeScript Compiler"), - Compiles_the_current_project_tsconfig_json_in_the_working_directory: diag(6923, 3 /* Message */, "Compiles_the_current_project_tsconfig_json_in_the_working_directory_6923", "Compiles the current project (tsconfig.json in the working directory.)"), - Ignoring_tsconfig_json_compiles_the_specified_files_with_default_compiler_options: diag(6924, 3 /* Message */, "Ignoring_tsconfig_json_compiles_the_specified_files_with_default_compiler_options_6924", "Ignoring tsconfig.json, compiles the specified files with default compiler options."), - Build_a_composite_project_in_the_working_directory: diag(6925, 3 /* Message */, "Build_a_composite_project_in_the_working_directory_6925", "Build a composite project in the working directory."), - Creates_a_tsconfig_json_with_the_recommended_settings_in_the_working_directory: diag(6926, 3 /* Message */, "Creates_a_tsconfig_json_with_the_recommended_settings_in_the_working_directory_6926", "Creates a tsconfig.json with the recommended settings in the working directory."), - Compiles_the_TypeScript_project_located_at_the_specified_path: diag(6927, 3 /* Message */, "Compiles_the_TypeScript_project_located_at_the_specified_path_6927", "Compiles the TypeScript project located at the specified path."), - An_expanded_version_of_this_information_showing_all_possible_compiler_options: diag(6928, 3 /* Message */, "An_expanded_version_of_this_information_showing_all_possible_compiler_options_6928", "An expanded version of this information, showing all possible compiler options"), - Compiles_the_current_project_with_additional_settings: diag(6929, 3 /* Message */, "Compiles_the_current_project_with_additional_settings_6929", "Compiles the current project, with additional settings."), - true_for_ES2022_and_above_including_ESNext: diag(6930, 3 /* Message */, "true_for_ES2022_and_above_including_ESNext_6930", "`true` for ES2022 and above, including ESNext."), - List_of_file_name_suffixes_to_search_when_resolving_a_module: diag(6931, 1 /* Error */, "List_of_file_name_suffixes_to_search_when_resolving_a_module_6931", "List of file name suffixes to search when resolving a module."), - Variable_0_implicitly_has_an_1_type: diag(7005, 1 /* Error */, "Variable_0_implicitly_has_an_1_type_7005", "Variable '{0}' implicitly has an '{1}' type."), - Parameter_0_implicitly_has_an_1_type: diag(7006, 1 /* Error */, "Parameter_0_implicitly_has_an_1_type_7006", "Parameter '{0}' implicitly has an '{1}' type."), - Member_0_implicitly_has_an_1_type: diag(7008, 1 /* Error */, "Member_0_implicitly_has_an_1_type_7008", "Member '{0}' implicitly has an '{1}' type."), - new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type: diag(7009, 1 /* Error */, "new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type_7009", "'new' expression, whose target lacks a construct signature, implicitly has an 'any' type."), - _0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type: diag(7010, 1 /* Error */, "_0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type_7010", "'{0}', which lacks return-type annotation, implicitly has an '{1}' return type."), - Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type: diag(7011, 1 /* Error */, "Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type_7011", "Function expression, which lacks return-type annotation, implicitly has an '{0}' return type."), - This_overload_implicitly_returns_the_type_0_because_it_lacks_a_return_type_annotation: diag(7012, 1 /* Error */, "This_overload_implicitly_returns_the_type_0_because_it_lacks_a_return_type_annotation_7012", "This overload implicitly returns the type '{0}' because it lacks a return type annotation."), - Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: diag(7013, 1 /* Error */, "Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type_7013", "Construct signature, which lacks return-type annotation, implicitly has an 'any' return type."), - Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type: diag(7014, 1 /* Error */, "Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type_7014", "Function type, which lacks return-type annotation, implicitly has an '{0}' return type."), - Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number: diag(7015, 1 /* Error */, "Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number_7015", "Element implicitly has an 'any' type because index expression is not of type 'number'."), - Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type: diag(7016, 1 /* Error */, "Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type_7016", "Could not find a declaration file for module '{0}'. '{1}' implicitly has an 'any' type."), - Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature: diag(7017, 1 /* Error */, "Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_7017", "Element implicitly has an 'any' type because type '{0}' has no index signature."), - Object_literal_s_property_0_implicitly_has_an_1_type: diag(7018, 1 /* Error */, "Object_literal_s_property_0_implicitly_has_an_1_type_7018", "Object literal's property '{0}' implicitly has an '{1}' type."), - Rest_parameter_0_implicitly_has_an_any_type: diag(7019, 1 /* Error */, "Rest_parameter_0_implicitly_has_an_any_type_7019", "Rest parameter '{0}' implicitly has an 'any[]' type."), - Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: diag(7020, 1 /* Error */, "Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type_7020", "Call signature, which lacks return-type annotation, implicitly has an 'any' return type."), - _0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer: diag(7022, 1 /* Error */, "_0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or__7022", "'{0}' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer."), - _0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions: diag(7023, 1 /* Error */, "_0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_reference_7023", "'{0}' implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions."), - Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions: diag(7024, 1 /* Error */, "Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_ref_7024", "Function implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions."), - Generator_implicitly_has_yield_type_0_because_it_does_not_yield_any_values_Consider_supplying_a_return_type_annotation: diag(7025, 1 /* Error */, "Generator_implicitly_has_yield_type_0_because_it_does_not_yield_any_values_Consider_supplying_a_retu_7025", "Generator implicitly has yield type '{0}' because it does not yield any values. Consider supplying a return type annotation."), - JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists: diag(7026, 1 /* Error */, "JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists_7026", "JSX element implicitly has type 'any' because no interface 'JSX.{0}' exists."), - Unreachable_code_detected: diag(7027, 1 /* Error */, "Unreachable_code_detected_7027", "Unreachable code detected.", - /*reportsUnnecessary*/ - true), - Unused_label: diag(7028, 1 /* Error */, "Unused_label_7028", "Unused label.", - /*reportsUnnecessary*/ - true), - Fallthrough_case_in_switch: diag(7029, 1 /* Error */, "Fallthrough_case_in_switch_7029", "Fallthrough case in switch."), - Not_all_code_paths_return_a_value: diag(7030, 1 /* Error */, "Not_all_code_paths_return_a_value_7030", "Not all code paths return a value."), - Binding_element_0_implicitly_has_an_1_type: diag(7031, 1 /* Error */, "Binding_element_0_implicitly_has_an_1_type_7031", "Binding element '{0}' implicitly has an '{1}' type."), - Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation: diag(7032, 1 /* Error */, "Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation_7032", "Property '{0}' implicitly has type 'any', because its set accessor lacks a parameter type annotation."), - Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation: diag(7033, 1 /* Error */, "Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation_7033", "Property '{0}' implicitly has type 'any', because its get accessor lacks a return type annotation."), - Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined: diag(7034, 1 /* Error */, "Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined_7034", "Variable '{0}' implicitly has type '{1}' in some locations where its type cannot be determined."), - Try_npm_i_save_dev_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare_module_0: diag(7035, 1 /* Error */, "Try_npm_i_save_dev_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare__7035", "Try `npm i --save-dev @types/{1}` if it exists or add a new declaration (.d.ts) file containing `declare module '{0}';`"), - Dynamic_import_s_specifier_must_be_of_type_string_but_here_has_type_0: diag(7036, 1 /* Error */, "Dynamic_import_s_specifier_must_be_of_type_string_but_here_has_type_0_7036", "Dynamic import's specifier must be of type 'string', but here has type '{0}'."), - Enables_emit_interoperability_between_CommonJS_and_ES_Modules_via_creation_of_namespace_objects_for_all_imports_Implies_allowSyntheticDefaultImports: diag(7037, 3 /* Message */, "Enables_emit_interoperability_between_CommonJS_and_ES_Modules_via_creation_of_namespace_objects_for__7037", "Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'."), - Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cause_a_failure_at_runtime_Consider_using_a_default_import_or_import_require_here_instead: diag(7038, 3 /* Message */, "Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cau_7038", "Type originates at this import. A namespace-style import cannot be called or constructed, and will cause a failure at runtime. Consider using a default import or import require here instead."), - Mapped_object_type_implicitly_has_an_any_template_type: diag(7039, 1 /* Error */, "Mapped_object_type_implicitly_has_an_any_template_type_7039", "Mapped object type implicitly has an 'any' template type."), - If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_Slash_Slashgithub_com_SlashDefinitelyTyped_SlashDefinitelyTyped_Slashtree_Slashmaster_Slashtypes_Slash_1: diag(7040, 1 /* Error */, "If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_S_7040", "If the '{0}' package actually exposes this module, consider sending a pull request to amend 'https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/{1}'"), - The_containing_arrow_function_captures_the_global_value_of_this: diag(7041, 1 /* Error */, "The_containing_arrow_function_captures_the_global_value_of_this_7041", "The containing arrow function captures the global value of 'this'."), - Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used: diag(7042, 1 /* Error */, "Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used_7042", "Module '{0}' was resolved to '{1}', but '--resolveJsonModule' is not used."), - Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage: diag(7043, 2 /* Suggestion */, "Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7043", "Variable '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage."), - Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage: diag(7044, 2 /* Suggestion */, "Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7044", "Parameter '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage."), - Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage: diag(7045, 2 /* Suggestion */, "Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7045", "Member '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage."), - Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage: diag(7046, 2 /* Suggestion */, "Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage_7046", "Variable '{0}' implicitly has type '{1}' in some locations, but a better type may be inferred from usage."), - Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage: diag(7047, 2 /* Suggestion */, "Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage_7047", "Rest parameter '{0}' implicitly has an 'any[]' type, but a better type may be inferred from usage."), - Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage: diag(7048, 2 /* Suggestion */, "Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage_7048", "Property '{0}' implicitly has type 'any', but a better type for its get accessor may be inferred from usage."), - Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage: diag(7049, 2 /* Suggestion */, "Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage_7049", "Property '{0}' implicitly has type 'any', but a better type for its set accessor may be inferred from usage."), - _0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage: diag(7050, 2 /* Suggestion */, "_0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage_7050", "'{0}' implicitly has an '{1}' return type, but a better type may be inferred from usage."), - Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1: diag(7051, 1 /* Error */, "Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1_7051", "Parameter has a name but no type. Did you mean '{0}: {1}'?"), - Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1: diag(7052, 1 /* Error */, "Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1_7052", "Element implicitly has an 'any' type because type '{0}' has no index signature. Did you mean to call '{1}'?"), - Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1: diag(7053, 1 /* Error */, "Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1_7053", "Element implicitly has an 'any' type because expression of type '{0}' can't be used to index type '{1}'."), - No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1: diag(7054, 1 /* Error */, "No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1_7054", "No index signature with a parameter of type '{0}' was found on type '{1}'."), - _0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type: diag(7055, 1 /* Error */, "_0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type_7055", "'{0}', which lacks return-type annotation, implicitly has an '{1}' yield type."), - The_inferred_type_of_this_node_exceeds_the_maximum_length_the_compiler_will_serialize_An_explicit_type_annotation_is_needed: diag(7056, 1 /* Error */, "The_inferred_type_of_this_node_exceeds_the_maximum_length_the_compiler_will_serialize_An_explicit_ty_7056", "The inferred type of this node exceeds the maximum length the compiler will serialize. An explicit type annotation is needed."), - yield_expression_implicitly_results_in_an_any_type_because_its_containing_generator_lacks_a_return_type_annotation: diag(7057, 1 /* Error */, "yield_expression_implicitly_results_in_an_any_type_because_its_containing_generator_lacks_a_return_t_7057", "'yield' expression implicitly results in an 'any' type because its containing generator lacks a return-type annotation."), - If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_declare_module_1: diag(7058, 1 /* Error */, "If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_decl_7058", "If the '{0}' package actually exposes this module, try adding a new declaration (.d.ts) file containing `declare module '{1}';`"), - This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Use_an_as_expression_instead: diag(7059, 1 /* Error */, "This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Use_an_as_expression_instead_7059", "This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead."), - This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Add_a_trailing_comma_or_explicit_constraint: diag(7060, 1 /* Error */, "This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Add_a_trailing_comma_or_explicit_cons_7060", "This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma or explicit constraint."), - A_mapped_type_may_not_declare_properties_or_methods: diag(7061, 1 /* Error */, "A_mapped_type_may_not_declare_properties_or_methods_7061", "A mapped type may not declare properties or methods."), - You_cannot_rename_this_element: diag(8e3, 1 /* Error */, "You_cannot_rename_this_element_8000", "You cannot rename this element."), - You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library: diag(8001, 1 /* Error */, "You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library_8001", "You cannot rename elements that are defined in the standard TypeScript library."), - import_can_only_be_used_in_TypeScript_files: diag(8002, 1 /* Error */, "import_can_only_be_used_in_TypeScript_files_8002", "'import ... =' can only be used in TypeScript files."), - export_can_only_be_used_in_TypeScript_files: diag(8003, 1 /* Error */, "export_can_only_be_used_in_TypeScript_files_8003", "'export =' can only be used in TypeScript files."), - Type_parameter_declarations_can_only_be_used_in_TypeScript_files: diag(8004, 1 /* Error */, "Type_parameter_declarations_can_only_be_used_in_TypeScript_files_8004", "Type parameter declarations can only be used in TypeScript files."), - implements_clauses_can_only_be_used_in_TypeScript_files: diag(8005, 1 /* Error */, "implements_clauses_can_only_be_used_in_TypeScript_files_8005", "'implements' clauses can only be used in TypeScript files."), - _0_declarations_can_only_be_used_in_TypeScript_files: diag(8006, 1 /* Error */, "_0_declarations_can_only_be_used_in_TypeScript_files_8006", "'{0}' declarations can only be used in TypeScript files."), - Type_aliases_can_only_be_used_in_TypeScript_files: diag(8008, 1 /* Error */, "Type_aliases_can_only_be_used_in_TypeScript_files_8008", "Type aliases can only be used in TypeScript files."), - The_0_modifier_can_only_be_used_in_TypeScript_files: diag(8009, 1 /* Error */, "The_0_modifier_can_only_be_used_in_TypeScript_files_8009", "The '{0}' modifier can only be used in TypeScript files."), - Type_annotations_can_only_be_used_in_TypeScript_files: diag(8010, 1 /* Error */, "Type_annotations_can_only_be_used_in_TypeScript_files_8010", "Type annotations can only be used in TypeScript files."), - Type_arguments_can_only_be_used_in_TypeScript_files: diag(8011, 1 /* Error */, "Type_arguments_can_only_be_used_in_TypeScript_files_8011", "Type arguments can only be used in TypeScript files."), - Parameter_modifiers_can_only_be_used_in_TypeScript_files: diag(8012, 1 /* Error */, "Parameter_modifiers_can_only_be_used_in_TypeScript_files_8012", "Parameter modifiers can only be used in TypeScript files."), - Non_null_assertions_can_only_be_used_in_TypeScript_files: diag(8013, 1 /* Error */, "Non_null_assertions_can_only_be_used_in_TypeScript_files_8013", "Non-null assertions can only be used in TypeScript files."), - Type_assertion_expressions_can_only_be_used_in_TypeScript_files: diag(8016, 1 /* Error */, "Type_assertion_expressions_can_only_be_used_in_TypeScript_files_8016", "Type assertion expressions can only be used in TypeScript files."), - Signature_declarations_can_only_be_used_in_TypeScript_files: diag(8017, 1 /* Error */, "Signature_declarations_can_only_be_used_in_TypeScript_files_8017", "Signature declarations can only be used in TypeScript files."), - Report_errors_in_js_files: diag(8019, 3 /* Message */, "Report_errors_in_js_files_8019", "Report errors in .js files."), - JSDoc_types_can_only_be_used_inside_documentation_comments: diag(8020, 1 /* Error */, "JSDoc_types_can_only_be_used_inside_documentation_comments_8020", "JSDoc types can only be used inside documentation comments."), - JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags: diag(8021, 1 /* Error */, "JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags_8021", "JSDoc '@typedef' tag should either have a type annotation or be followed by '@property' or '@member' tags."), - JSDoc_0_is_not_attached_to_a_class: diag(8022, 1 /* Error */, "JSDoc_0_is_not_attached_to_a_class_8022", "JSDoc '@{0}' is not attached to a class."), - JSDoc_0_1_does_not_match_the_extends_2_clause: diag(8023, 1 /* Error */, "JSDoc_0_1_does_not_match_the_extends_2_clause_8023", "JSDoc '@{0} {1}' does not match the 'extends {2}' clause."), - JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name: diag(8024, 1 /* Error */, "JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_8024", "JSDoc '@param' tag has name '{0}', but there is no parameter with that name."), - Class_declarations_cannot_have_more_than_one_augments_or_extends_tag: diag(8025, 1 /* Error */, "Class_declarations_cannot_have_more_than_one_augments_or_extends_tag_8025", "Class declarations cannot have more than one '@augments' or '@extends' tag."), - Expected_0_type_arguments_provide_these_with_an_extends_tag: diag(8026, 1 /* Error */, "Expected_0_type_arguments_provide_these_with_an_extends_tag_8026", "Expected {0} type arguments; provide these with an '@extends' tag."), - Expected_0_1_type_arguments_provide_these_with_an_extends_tag: diag(8027, 1 /* Error */, "Expected_0_1_type_arguments_provide_these_with_an_extends_tag_8027", "Expected {0}-{1} type arguments; provide these with an '@extends' tag."), - JSDoc_may_only_appear_in_the_last_parameter_of_a_signature: diag(8028, 1 /* Error */, "JSDoc_may_only_appear_in_the_last_parameter_of_a_signature_8028", "JSDoc '...' may only appear in the last parameter of a signature."), - JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_had_an_array_type: diag(8029, 1 /* Error */, "JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_h_8029", "JSDoc '@param' tag has name '{0}', but there is no parameter with that name. It would match 'arguments' if it had an array type."), - The_type_of_a_function_declaration_must_match_the_function_s_signature: diag(8030, 1 /* Error */, "The_type_of_a_function_declaration_must_match_the_function_s_signature_8030", "The type of a function declaration must match the function's signature."), - You_cannot_rename_a_module_via_a_global_import: diag(8031, 1 /* Error */, "You_cannot_rename_a_module_via_a_global_import_8031", "You cannot rename a module via a global import."), - Qualified_name_0_is_not_allowed_without_a_leading_param_object_1: diag(8032, 1 /* Error */, "Qualified_name_0_is_not_allowed_without_a_leading_param_object_1_8032", "Qualified name '{0}' is not allowed without a leading '@param {object} {1}'."), - A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags: diag(8033, 1 /* Error */, "A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags_8033", "A JSDoc '@typedef' comment may not contain multiple '@type' tags."), - The_tag_was_first_specified_here: diag(8034, 1 /* Error */, "The_tag_was_first_specified_here_8034", "The tag was first specified here."), - You_cannot_rename_elements_that_are_defined_in_a_node_modules_folder: diag(8035, 1 /* Error */, "You_cannot_rename_elements_that_are_defined_in_a_node_modules_folder_8035", "You cannot rename elements that are defined in a 'node_modules' folder."), - You_cannot_rename_elements_that_are_defined_in_another_node_modules_folder: diag(8036, 1 /* Error */, "You_cannot_rename_elements_that_are_defined_in_another_node_modules_folder_8036", "You cannot rename elements that are defined in another 'node_modules' folder."), - Type_satisfaction_expressions_can_only_be_used_in_TypeScript_files: diag(8037, 1 /* Error */, "Type_satisfaction_expressions_can_only_be_used_in_TypeScript_files_8037", "Type satisfaction expressions can only be used in TypeScript files."), - Decorators_may_not_appear_after_export_or_export_default_if_they_also_appear_before_export: diag(8038, 1 /* Error */, "Decorators_may_not_appear_after_export_or_export_default_if_they_also_appear_before_export_8038", "Decorators may not appear after 'export' or 'export default' if they also appear before 'export'."), - A_JSDoc_template_tag_may_not_follow_a_typedef_callback_or_overload_tag: diag(8039, 1 /* Error */, "A_JSDoc_template_tag_may_not_follow_a_typedef_callback_or_overload_tag_8039", "A JSDoc '@template' tag may not follow a '@typedef', '@callback', or '@overload' tag"), - Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_declaration_emit: diag(9005, 1 /* Error */, "Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_9005", "Declaration emit for this file requires using private name '{0}'. An explicit type annotation may unblock declaration emit."), - Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotation_may_unblock_declaration_emit: diag(9006, 1 /* Error */, "Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotati_9006", "Declaration emit for this file requires using private name '{0}' from module '{1}'. An explicit type annotation may unblock declaration emit."), - JSX_attributes_must_only_be_assigned_a_non_empty_expression: diag(17e3, 1 /* Error */, "JSX_attributes_must_only_be_assigned_a_non_empty_expression_17000", "JSX attributes must only be assigned a non-empty 'expression'."), - JSX_elements_cannot_have_multiple_attributes_with_the_same_name: diag(17001, 1 /* Error */, "JSX_elements_cannot_have_multiple_attributes_with_the_same_name_17001", "JSX elements cannot have multiple attributes with the same name."), - Expected_corresponding_JSX_closing_tag_for_0: diag(17002, 1 /* Error */, "Expected_corresponding_JSX_closing_tag_for_0_17002", "Expected corresponding JSX closing tag for '{0}'."), - Cannot_use_JSX_unless_the_jsx_flag_is_provided: diag(17004, 1 /* Error */, "Cannot_use_JSX_unless_the_jsx_flag_is_provided_17004", "Cannot use JSX unless the '--jsx' flag is provided."), - A_constructor_cannot_contain_a_super_call_when_its_class_extends_null: diag(17005, 1 /* Error */, "A_constructor_cannot_contain_a_super_call_when_its_class_extends_null_17005", "A constructor cannot contain a 'super' call when its class extends 'null'."), - An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses: diag(17006, 1 /* Error */, "An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_ex_17006", "An unary expression with the '{0}' operator is not allowed in the left-hand side of an exponentiation expression. Consider enclosing the expression in parentheses."), - A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses: diag(17007, 1 /* Error */, "A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Con_17007", "A type assertion expression is not allowed in the left-hand side of an exponentiation expression. Consider enclosing the expression in parentheses."), - JSX_element_0_has_no_corresponding_closing_tag: diag(17008, 1 /* Error */, "JSX_element_0_has_no_corresponding_closing_tag_17008", "JSX element '{0}' has no corresponding closing tag."), - super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class: diag(17009, 1 /* Error */, "super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class_17009", "'super' must be called before accessing 'this' in the constructor of a derived class."), - Unknown_type_acquisition_option_0: diag(17010, 1 /* Error */, "Unknown_type_acquisition_option_0_17010", "Unknown type acquisition option '{0}'."), - super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class: diag(17011, 1 /* Error */, "super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class_17011", "'super' must be called before accessing a property of 'super' in the constructor of a derived class."), - _0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2: diag(17012, 1 /* Error */, "_0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2_17012", "'{0}' is not a valid meta-property for keyword '{1}'. Did you mean '{2}'?"), - Meta_property_0_is_only_allowed_in_the_body_of_a_function_declaration_function_expression_or_constructor: diag(17013, 1 /* Error */, "Meta_property_0_is_only_allowed_in_the_body_of_a_function_declaration_function_expression_or_constru_17013", "Meta-property '{0}' is only allowed in the body of a function declaration, function expression, or constructor."), - JSX_fragment_has_no_corresponding_closing_tag: diag(17014, 1 /* Error */, "JSX_fragment_has_no_corresponding_closing_tag_17014", "JSX fragment has no corresponding closing tag."), - Expected_corresponding_closing_tag_for_JSX_fragment: diag(17015, 1 /* Error */, "Expected_corresponding_closing_tag_for_JSX_fragment_17015", "Expected corresponding closing tag for JSX fragment."), - The_jsxFragmentFactory_compiler_option_must_be_provided_to_use_JSX_fragments_with_the_jsxFactory_compiler_option: diag(17016, 1 /* Error */, "The_jsxFragmentFactory_compiler_option_must_be_provided_to_use_JSX_fragments_with_the_jsxFactory_com_17016", "The 'jsxFragmentFactory' compiler option must be provided to use JSX fragments with the 'jsxFactory' compiler option."), - An_jsxFrag_pragma_is_required_when_using_an_jsx_pragma_with_JSX_fragments: diag(17017, 1 /* Error */, "An_jsxFrag_pragma_is_required_when_using_an_jsx_pragma_with_JSX_fragments_17017", "An @jsxFrag pragma is required when using an @jsx pragma with JSX fragments."), - Unknown_type_acquisition_option_0_Did_you_mean_1: diag(17018, 1 /* Error */, "Unknown_type_acquisition_option_0_Did_you_mean_1_17018", "Unknown type acquisition option '{0}'. Did you mean '{1}'?"), - _0_at_the_end_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1: diag(17019, 1 /* Error */, "_0_at_the_end_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1_17019", "'{0}' at the end of a type is not valid TypeScript syntax. Did you mean to write '{1}'?"), - _0_at_the_start_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1: diag(17020, 1 /* Error */, "_0_at_the_start_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1_17020", "'{0}' at the start of a type is not valid TypeScript syntax. Did you mean to write '{1}'?"), - Circularity_detected_while_resolving_configuration_Colon_0: diag(18e3, 1 /* Error */, "Circularity_detected_while_resolving_configuration_Colon_0_18000", "Circularity detected while resolving configuration: {0}"), - The_files_list_in_config_file_0_is_empty: diag(18002, 1 /* Error */, "The_files_list_in_config_file_0_is_empty_18002", "The 'files' list in config file '{0}' is empty."), - No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2: diag(18003, 1 /* Error */, "No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2_18003", "No inputs were found in config file '{0}'. Specified 'include' paths were '{1}' and 'exclude' paths were '{2}'."), - File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module: diag(80001, 2 /* Suggestion */, "File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module_80001", "File is a CommonJS module; it may be converted to an ES module."), - This_constructor_function_may_be_converted_to_a_class_declaration: diag(80002, 2 /* Suggestion */, "This_constructor_function_may_be_converted_to_a_class_declaration_80002", "This constructor function may be converted to a class declaration."), - Import_may_be_converted_to_a_default_import: diag(80003, 2 /* Suggestion */, "Import_may_be_converted_to_a_default_import_80003", "Import may be converted to a default import."), - JSDoc_types_may_be_moved_to_TypeScript_types: diag(80004, 2 /* Suggestion */, "JSDoc_types_may_be_moved_to_TypeScript_types_80004", "JSDoc types may be moved to TypeScript types."), - require_call_may_be_converted_to_an_import: diag(80005, 2 /* Suggestion */, "require_call_may_be_converted_to_an_import_80005", "'require' call may be converted to an import."), - This_may_be_converted_to_an_async_function: diag(80006, 2 /* Suggestion */, "This_may_be_converted_to_an_async_function_80006", "This may be converted to an async function."), - await_has_no_effect_on_the_type_of_this_expression: diag(80007, 2 /* Suggestion */, "await_has_no_effect_on_the_type_of_this_expression_80007", "'await' has no effect on the type of this expression."), - Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accurately_as_integers: diag(80008, 2 /* Suggestion */, "Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accur_80008", "Numeric literals with absolute values equal to 2^53 or greater are too large to be represented accurately as integers."), - JSDoc_typedef_may_be_converted_to_TypeScript_type: diag(80009, 2 /* Suggestion */, "JSDoc_typedef_may_be_converted_to_TypeScript_type_80009", "JSDoc typedef may be converted to TypeScript type."), - JSDoc_typedefs_may_be_converted_to_TypeScript_types: diag(80010, 2 /* Suggestion */, "JSDoc_typedefs_may_be_converted_to_TypeScript_types_80010", "JSDoc typedefs may be converted to TypeScript types."), - Add_missing_super_call: diag(90001, 3 /* Message */, "Add_missing_super_call_90001", "Add missing 'super()' call"), - Make_super_call_the_first_statement_in_the_constructor: diag(90002, 3 /* Message */, "Make_super_call_the_first_statement_in_the_constructor_90002", "Make 'super()' call the first statement in the constructor"), - Change_extends_to_implements: diag(90003, 3 /* Message */, "Change_extends_to_implements_90003", "Change 'extends' to 'implements'"), - Remove_unused_declaration_for_Colon_0: diag(90004, 3 /* Message */, "Remove_unused_declaration_for_Colon_0_90004", "Remove unused declaration for: '{0}'"), - Remove_import_from_0: diag(90005, 3 /* Message */, "Remove_import_from_0_90005", "Remove import from '{0}'"), - Implement_interface_0: diag(90006, 3 /* Message */, "Implement_interface_0_90006", "Implement interface '{0}'"), - Implement_inherited_abstract_class: diag(90007, 3 /* Message */, "Implement_inherited_abstract_class_90007", "Implement inherited abstract class"), - Add_0_to_unresolved_variable: diag(90008, 3 /* Message */, "Add_0_to_unresolved_variable_90008", "Add '{0}.' to unresolved variable"), - Remove_variable_statement: diag(90010, 3 /* Message */, "Remove_variable_statement_90010", "Remove variable statement"), - Remove_template_tag: diag(90011, 3 /* Message */, "Remove_template_tag_90011", "Remove template tag"), - Remove_type_parameters: diag(90012, 3 /* Message */, "Remove_type_parameters_90012", "Remove type parameters"), - Import_0_from_1: diag(90013, 3 /* Message */, "Import_0_from_1_90013", "Import '{0}' from \"{1}\""), - Change_0_to_1: diag(90014, 3 /* Message */, "Change_0_to_1_90014", "Change '{0}' to '{1}'"), - Declare_property_0: diag(90016, 3 /* Message */, "Declare_property_0_90016", "Declare property '{0}'"), - Add_index_signature_for_property_0: diag(90017, 3 /* Message */, "Add_index_signature_for_property_0_90017", "Add index signature for property '{0}'"), - Disable_checking_for_this_file: diag(90018, 3 /* Message */, "Disable_checking_for_this_file_90018", "Disable checking for this file"), - Ignore_this_error_message: diag(90019, 3 /* Message */, "Ignore_this_error_message_90019", "Ignore this error message"), - Initialize_property_0_in_the_constructor: diag(90020, 3 /* Message */, "Initialize_property_0_in_the_constructor_90020", "Initialize property '{0}' in the constructor"), - Initialize_static_property_0: diag(90021, 3 /* Message */, "Initialize_static_property_0_90021", "Initialize static property '{0}'"), - Change_spelling_to_0: diag(90022, 3 /* Message */, "Change_spelling_to_0_90022", "Change spelling to '{0}'"), - Declare_method_0: diag(90023, 3 /* Message */, "Declare_method_0_90023", "Declare method '{0}'"), - Declare_static_method_0: diag(90024, 3 /* Message */, "Declare_static_method_0_90024", "Declare static method '{0}'"), - Prefix_0_with_an_underscore: diag(90025, 3 /* Message */, "Prefix_0_with_an_underscore_90025", "Prefix '{0}' with an underscore"), - Rewrite_as_the_indexed_access_type_0: diag(90026, 3 /* Message */, "Rewrite_as_the_indexed_access_type_0_90026", "Rewrite as the indexed access type '{0}'"), - Declare_static_property_0: diag(90027, 3 /* Message */, "Declare_static_property_0_90027", "Declare static property '{0}'"), - Call_decorator_expression: diag(90028, 3 /* Message */, "Call_decorator_expression_90028", "Call decorator expression"), - Add_async_modifier_to_containing_function: diag(90029, 3 /* Message */, "Add_async_modifier_to_containing_function_90029", "Add async modifier to containing function"), - Replace_infer_0_with_unknown: diag(90030, 3 /* Message */, "Replace_infer_0_with_unknown_90030", "Replace 'infer {0}' with 'unknown'"), - Replace_all_unused_infer_with_unknown: diag(90031, 3 /* Message */, "Replace_all_unused_infer_with_unknown_90031", "Replace all unused 'infer' with 'unknown'"), - Add_parameter_name: diag(90034, 3 /* Message */, "Add_parameter_name_90034", "Add parameter name"), - Declare_private_property_0: diag(90035, 3 /* Message */, "Declare_private_property_0_90035", "Declare private property '{0}'"), - Replace_0_with_Promise_1: diag(90036, 3 /* Message */, "Replace_0_with_Promise_1_90036", "Replace '{0}' with 'Promise<{1}>'"), - Fix_all_incorrect_return_type_of_an_async_functions: diag(90037, 3 /* Message */, "Fix_all_incorrect_return_type_of_an_async_functions_90037", "Fix all incorrect return type of an async functions"), - Declare_private_method_0: diag(90038, 3 /* Message */, "Declare_private_method_0_90038", "Declare private method '{0}'"), - Remove_unused_destructuring_declaration: diag(90039, 3 /* Message */, "Remove_unused_destructuring_declaration_90039", "Remove unused destructuring declaration"), - Remove_unused_declarations_for_Colon_0: diag(90041, 3 /* Message */, "Remove_unused_declarations_for_Colon_0_90041", "Remove unused declarations for: '{0}'"), - Declare_a_private_field_named_0: diag(90053, 3 /* Message */, "Declare_a_private_field_named_0_90053", "Declare a private field named '{0}'."), - Includes_imports_of_types_referenced_by_0: diag(90054, 3 /* Message */, "Includes_imports_of_types_referenced_by_0_90054", "Includes imports of types referenced by '{0}'"), - Remove_type_from_import_declaration_from_0: diag(90055, 3 /* Message */, "Remove_type_from_import_declaration_from_0_90055", "Remove 'type' from import declaration from \"{0}\""), - Remove_type_from_import_of_0_from_1: diag(90056, 3 /* Message */, "Remove_type_from_import_of_0_from_1_90056", "Remove 'type' from import of '{0}' from \"{1}\""), - Add_import_from_0: diag(90057, 3 /* Message */, "Add_import_from_0_90057", 'Add import from "{0}"'), - Update_import_from_0: diag(90058, 3 /* Message */, "Update_import_from_0_90058", 'Update import from "{0}"'), - Export_0_from_module_1: diag(90059, 3 /* Message */, "Export_0_from_module_1_90059", "Export '{0}' from module '{1}'"), - Export_all_referenced_locals: diag(90060, 3 /* Message */, "Export_all_referenced_locals_90060", "Export all referenced locals"), - Convert_function_to_an_ES2015_class: diag(95001, 3 /* Message */, "Convert_function_to_an_ES2015_class_95001", "Convert function to an ES2015 class"), - Convert_0_to_1_in_0: diag(95003, 3 /* Message */, "Convert_0_to_1_in_0_95003", "Convert '{0}' to '{1} in {0}'"), - Extract_to_0_in_1: diag(95004, 3 /* Message */, "Extract_to_0_in_1_95004", "Extract to {0} in {1}"), - Extract_function: diag(95005, 3 /* Message */, "Extract_function_95005", "Extract function"), - Extract_constant: diag(95006, 3 /* Message */, "Extract_constant_95006", "Extract constant"), - Extract_to_0_in_enclosing_scope: diag(95007, 3 /* Message */, "Extract_to_0_in_enclosing_scope_95007", "Extract to {0} in enclosing scope"), - Extract_to_0_in_1_scope: diag(95008, 3 /* Message */, "Extract_to_0_in_1_scope_95008", "Extract to {0} in {1} scope"), - Annotate_with_type_from_JSDoc: diag(95009, 3 /* Message */, "Annotate_with_type_from_JSDoc_95009", "Annotate with type from JSDoc"), - Infer_type_of_0_from_usage: diag(95011, 3 /* Message */, "Infer_type_of_0_from_usage_95011", "Infer type of '{0}' from usage"), - Infer_parameter_types_from_usage: diag(95012, 3 /* Message */, "Infer_parameter_types_from_usage_95012", "Infer parameter types from usage"), - Convert_to_default_import: diag(95013, 3 /* Message */, "Convert_to_default_import_95013", "Convert to default import"), - Install_0: diag(95014, 3 /* Message */, "Install_0_95014", "Install '{0}'"), - Replace_import_with_0: diag(95015, 3 /* Message */, "Replace_import_with_0_95015", "Replace import with '{0}'."), - Use_synthetic_default_member: diag(95016, 3 /* Message */, "Use_synthetic_default_member_95016", "Use synthetic 'default' member."), - Convert_to_ES_module: diag(95017, 3 /* Message */, "Convert_to_ES_module_95017", "Convert to ES module"), - Add_undefined_type_to_property_0: diag(95018, 3 /* Message */, "Add_undefined_type_to_property_0_95018", "Add 'undefined' type to property '{0}'"), - Add_initializer_to_property_0: diag(95019, 3 /* Message */, "Add_initializer_to_property_0_95019", "Add initializer to property '{0}'"), - Add_definite_assignment_assertion_to_property_0: diag(95020, 3 /* Message */, "Add_definite_assignment_assertion_to_property_0_95020", "Add definite assignment assertion to property '{0}'"), - Convert_all_type_literals_to_mapped_type: diag(95021, 3 /* Message */, "Convert_all_type_literals_to_mapped_type_95021", "Convert all type literals to mapped type"), - Add_all_missing_members: diag(95022, 3 /* Message */, "Add_all_missing_members_95022", "Add all missing members"), - Infer_all_types_from_usage: diag(95023, 3 /* Message */, "Infer_all_types_from_usage_95023", "Infer all types from usage"), - Delete_all_unused_declarations: diag(95024, 3 /* Message */, "Delete_all_unused_declarations_95024", "Delete all unused declarations"), - Prefix_all_unused_declarations_with_where_possible: diag(95025, 3 /* Message */, "Prefix_all_unused_declarations_with_where_possible_95025", "Prefix all unused declarations with '_' where possible"), - Fix_all_detected_spelling_errors: diag(95026, 3 /* Message */, "Fix_all_detected_spelling_errors_95026", "Fix all detected spelling errors"), - Add_initializers_to_all_uninitialized_properties: diag(95027, 3 /* Message */, "Add_initializers_to_all_uninitialized_properties_95027", "Add initializers to all uninitialized properties"), - Add_definite_assignment_assertions_to_all_uninitialized_properties: diag(95028, 3 /* Message */, "Add_definite_assignment_assertions_to_all_uninitialized_properties_95028", "Add definite assignment assertions to all uninitialized properties"), - Add_undefined_type_to_all_uninitialized_properties: diag(95029, 3 /* Message */, "Add_undefined_type_to_all_uninitialized_properties_95029", "Add undefined type to all uninitialized properties"), - Change_all_jsdoc_style_types_to_TypeScript: diag(95030, 3 /* Message */, "Change_all_jsdoc_style_types_to_TypeScript_95030", "Change all jsdoc-style types to TypeScript"), - Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types: diag(95031, 3 /* Message */, "Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types_95031", "Change all jsdoc-style types to TypeScript (and add '| undefined' to nullable types)"), - Implement_all_unimplemented_interfaces: diag(95032, 3 /* Message */, "Implement_all_unimplemented_interfaces_95032", "Implement all unimplemented interfaces"), - Install_all_missing_types_packages: diag(95033, 3 /* Message */, "Install_all_missing_types_packages_95033", "Install all missing types packages"), - Rewrite_all_as_indexed_access_types: diag(95034, 3 /* Message */, "Rewrite_all_as_indexed_access_types_95034", "Rewrite all as indexed access types"), - Convert_all_to_default_imports: diag(95035, 3 /* Message */, "Convert_all_to_default_imports_95035", "Convert all to default imports"), - Make_all_super_calls_the_first_statement_in_their_constructor: diag(95036, 3 /* Message */, "Make_all_super_calls_the_first_statement_in_their_constructor_95036", "Make all 'super()' calls the first statement in their constructor"), - Add_qualifier_to_all_unresolved_variables_matching_a_member_name: diag(95037, 3 /* Message */, "Add_qualifier_to_all_unresolved_variables_matching_a_member_name_95037", "Add qualifier to all unresolved variables matching a member name"), - Change_all_extended_interfaces_to_implements: diag(95038, 3 /* Message */, "Change_all_extended_interfaces_to_implements_95038", "Change all extended interfaces to 'implements'"), - Add_all_missing_super_calls: diag(95039, 3 /* Message */, "Add_all_missing_super_calls_95039", "Add all missing super calls"), - Implement_all_inherited_abstract_classes: diag(95040, 3 /* Message */, "Implement_all_inherited_abstract_classes_95040", "Implement all inherited abstract classes"), - Add_all_missing_async_modifiers: diag(95041, 3 /* Message */, "Add_all_missing_async_modifiers_95041", "Add all missing 'async' modifiers"), - Add_ts_ignore_to_all_error_messages: diag(95042, 3 /* Message */, "Add_ts_ignore_to_all_error_messages_95042", "Add '@ts-ignore' to all error messages"), - Annotate_everything_with_types_from_JSDoc: diag(95043, 3 /* Message */, "Annotate_everything_with_types_from_JSDoc_95043", "Annotate everything with types from JSDoc"), - Add_to_all_uncalled_decorators: diag(95044, 3 /* Message */, "Add_to_all_uncalled_decorators_95044", "Add '()' to all uncalled decorators"), - Convert_all_constructor_functions_to_classes: diag(95045, 3 /* Message */, "Convert_all_constructor_functions_to_classes_95045", "Convert all constructor functions to classes"), - Generate_get_and_set_accessors: diag(95046, 3 /* Message */, "Generate_get_and_set_accessors_95046", "Generate 'get' and 'set' accessors"), - Convert_require_to_import: diag(95047, 3 /* Message */, "Convert_require_to_import_95047", "Convert 'require' to 'import'"), - Convert_all_require_to_import: diag(95048, 3 /* Message */, "Convert_all_require_to_import_95048", "Convert all 'require' to 'import'"), - Move_to_a_new_file: diag(95049, 3 /* Message */, "Move_to_a_new_file_95049", "Move to a new file"), - Remove_unreachable_code: diag(95050, 3 /* Message */, "Remove_unreachable_code_95050", "Remove unreachable code"), - Remove_all_unreachable_code: diag(95051, 3 /* Message */, "Remove_all_unreachable_code_95051", "Remove all unreachable code"), - Add_missing_typeof: diag(95052, 3 /* Message */, "Add_missing_typeof_95052", "Add missing 'typeof'"), - Remove_unused_label: diag(95053, 3 /* Message */, "Remove_unused_label_95053", "Remove unused label"), - Remove_all_unused_labels: diag(95054, 3 /* Message */, "Remove_all_unused_labels_95054", "Remove all unused labels"), - Convert_0_to_mapped_object_type: diag(95055, 3 /* Message */, "Convert_0_to_mapped_object_type_95055", "Convert '{0}' to mapped object type"), - Convert_namespace_import_to_named_imports: diag(95056, 3 /* Message */, "Convert_namespace_import_to_named_imports_95056", "Convert namespace import to named imports"), - Convert_named_imports_to_namespace_import: diag(95057, 3 /* Message */, "Convert_named_imports_to_namespace_import_95057", "Convert named imports to namespace import"), - Add_or_remove_braces_in_an_arrow_function: diag(95058, 3 /* Message */, "Add_or_remove_braces_in_an_arrow_function_95058", "Add or remove braces in an arrow function"), - Add_braces_to_arrow_function: diag(95059, 3 /* Message */, "Add_braces_to_arrow_function_95059", "Add braces to arrow function"), - Remove_braces_from_arrow_function: diag(95060, 3 /* Message */, "Remove_braces_from_arrow_function_95060", "Remove braces from arrow function"), - Convert_default_export_to_named_export: diag(95061, 3 /* Message */, "Convert_default_export_to_named_export_95061", "Convert default export to named export"), - Convert_named_export_to_default_export: diag(95062, 3 /* Message */, "Convert_named_export_to_default_export_95062", "Convert named export to default export"), - Add_missing_enum_member_0: diag(95063, 3 /* Message */, "Add_missing_enum_member_0_95063", "Add missing enum member '{0}'"), - Add_all_missing_imports: diag(95064, 3 /* Message */, "Add_all_missing_imports_95064", "Add all missing imports"), - Convert_to_async_function: diag(95065, 3 /* Message */, "Convert_to_async_function_95065", "Convert to async function"), - Convert_all_to_async_functions: diag(95066, 3 /* Message */, "Convert_all_to_async_functions_95066", "Convert all to async functions"), - Add_missing_call_parentheses: diag(95067, 3 /* Message */, "Add_missing_call_parentheses_95067", "Add missing call parentheses"), - Add_all_missing_call_parentheses: diag(95068, 3 /* Message */, "Add_all_missing_call_parentheses_95068", "Add all missing call parentheses"), - Add_unknown_conversion_for_non_overlapping_types: diag(95069, 3 /* Message */, "Add_unknown_conversion_for_non_overlapping_types_95069", "Add 'unknown' conversion for non-overlapping types"), - Add_unknown_to_all_conversions_of_non_overlapping_types: diag(95070, 3 /* Message */, "Add_unknown_to_all_conversions_of_non_overlapping_types_95070", "Add 'unknown' to all conversions of non-overlapping types"), - Add_missing_new_operator_to_call: diag(95071, 3 /* Message */, "Add_missing_new_operator_to_call_95071", "Add missing 'new' operator to call"), - Add_missing_new_operator_to_all_calls: diag(95072, 3 /* Message */, "Add_missing_new_operator_to_all_calls_95072", "Add missing 'new' operator to all calls"), - Add_names_to_all_parameters_without_names: diag(95073, 3 /* Message */, "Add_names_to_all_parameters_without_names_95073", "Add names to all parameters without names"), - Enable_the_experimentalDecorators_option_in_your_configuration_file: diag(95074, 3 /* Message */, "Enable_the_experimentalDecorators_option_in_your_configuration_file_95074", "Enable the 'experimentalDecorators' option in your configuration file"), - Convert_parameters_to_destructured_object: diag(95075, 3 /* Message */, "Convert_parameters_to_destructured_object_95075", "Convert parameters to destructured object"), - Extract_type: diag(95077, 3 /* Message */, "Extract_type_95077", "Extract type"), - Extract_to_type_alias: diag(95078, 3 /* Message */, "Extract_to_type_alias_95078", "Extract to type alias"), - Extract_to_typedef: diag(95079, 3 /* Message */, "Extract_to_typedef_95079", "Extract to typedef"), - Infer_this_type_of_0_from_usage: diag(95080, 3 /* Message */, "Infer_this_type_of_0_from_usage_95080", "Infer 'this' type of '{0}' from usage"), - Add_const_to_unresolved_variable: diag(95081, 3 /* Message */, "Add_const_to_unresolved_variable_95081", "Add 'const' to unresolved variable"), - Add_const_to_all_unresolved_variables: diag(95082, 3 /* Message */, "Add_const_to_all_unresolved_variables_95082", "Add 'const' to all unresolved variables"), - Add_await: diag(95083, 3 /* Message */, "Add_await_95083", "Add 'await'"), - Add_await_to_initializer_for_0: diag(95084, 3 /* Message */, "Add_await_to_initializer_for_0_95084", "Add 'await' to initializer for '{0}'"), - Fix_all_expressions_possibly_missing_await: diag(95085, 3 /* Message */, "Fix_all_expressions_possibly_missing_await_95085", "Fix all expressions possibly missing 'await'"), - Remove_unnecessary_await: diag(95086, 3 /* Message */, "Remove_unnecessary_await_95086", "Remove unnecessary 'await'"), - Remove_all_unnecessary_uses_of_await: diag(95087, 3 /* Message */, "Remove_all_unnecessary_uses_of_await_95087", "Remove all unnecessary uses of 'await'"), - Enable_the_jsx_flag_in_your_configuration_file: diag(95088, 3 /* Message */, "Enable_the_jsx_flag_in_your_configuration_file_95088", "Enable the '--jsx' flag in your configuration file"), - Add_await_to_initializers: diag(95089, 3 /* Message */, "Add_await_to_initializers_95089", "Add 'await' to initializers"), - Extract_to_interface: diag(95090, 3 /* Message */, "Extract_to_interface_95090", "Extract to interface"), - Convert_to_a_bigint_numeric_literal: diag(95091, 3 /* Message */, "Convert_to_a_bigint_numeric_literal_95091", "Convert to a bigint numeric literal"), - Convert_all_to_bigint_numeric_literals: diag(95092, 3 /* Message */, "Convert_all_to_bigint_numeric_literals_95092", "Convert all to bigint numeric literals"), - Convert_const_to_let: diag(95093, 3 /* Message */, "Convert_const_to_let_95093", "Convert 'const' to 'let'"), - Prefix_with_declare: diag(95094, 3 /* Message */, "Prefix_with_declare_95094", "Prefix with 'declare'"), - Prefix_all_incorrect_property_declarations_with_declare: diag(95095, 3 /* Message */, "Prefix_all_incorrect_property_declarations_with_declare_95095", "Prefix all incorrect property declarations with 'declare'"), - Convert_to_template_string: diag(95096, 3 /* Message */, "Convert_to_template_string_95096", "Convert to template string"), - Add_export_to_make_this_file_into_a_module: diag(95097, 3 /* Message */, "Add_export_to_make_this_file_into_a_module_95097", "Add 'export {}' to make this file into a module"), - Set_the_target_option_in_your_configuration_file_to_0: diag(95098, 3 /* Message */, "Set_the_target_option_in_your_configuration_file_to_0_95098", "Set the 'target' option in your configuration file to '{0}'"), - Set_the_module_option_in_your_configuration_file_to_0: diag(95099, 3 /* Message */, "Set_the_module_option_in_your_configuration_file_to_0_95099", "Set the 'module' option in your configuration file to '{0}'"), - Convert_invalid_character_to_its_html_entity_code: diag(95100, 3 /* Message */, "Convert_invalid_character_to_its_html_entity_code_95100", "Convert invalid character to its html entity code"), - Convert_all_invalid_characters_to_HTML_entity_code: diag(95101, 3 /* Message */, "Convert_all_invalid_characters_to_HTML_entity_code_95101", "Convert all invalid characters to HTML entity code"), - Convert_all_const_to_let: diag(95102, 3 /* Message */, "Convert_all_const_to_let_95102", "Convert all 'const' to 'let'"), - Convert_function_expression_0_to_arrow_function: diag(95105, 3 /* Message */, "Convert_function_expression_0_to_arrow_function_95105", "Convert function expression '{0}' to arrow function"), - Convert_function_declaration_0_to_arrow_function: diag(95106, 3 /* Message */, "Convert_function_declaration_0_to_arrow_function_95106", "Convert function declaration '{0}' to arrow function"), - Fix_all_implicit_this_errors: diag(95107, 3 /* Message */, "Fix_all_implicit_this_errors_95107", "Fix all implicit-'this' errors"), - Wrap_invalid_character_in_an_expression_container: diag(95108, 3 /* Message */, "Wrap_invalid_character_in_an_expression_container_95108", "Wrap invalid character in an expression container"), - Wrap_all_invalid_characters_in_an_expression_container: diag(95109, 3 /* Message */, "Wrap_all_invalid_characters_in_an_expression_container_95109", "Wrap all invalid characters in an expression container"), - Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_to_read_more_about_this_file: diag(95110, 3 /* Message */, "Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_to_read_more_about_this_file_95110", "Visit https://aka.ms/tsconfig to read more about this file"), - Add_a_return_statement: diag(95111, 3 /* Message */, "Add_a_return_statement_95111", "Add a return statement"), - Remove_braces_from_arrow_function_body: diag(95112, 3 /* Message */, "Remove_braces_from_arrow_function_body_95112", "Remove braces from arrow function body"), - Wrap_the_following_body_with_parentheses_which_should_be_an_object_literal: diag(95113, 3 /* Message */, "Wrap_the_following_body_with_parentheses_which_should_be_an_object_literal_95113", "Wrap the following body with parentheses which should be an object literal"), - Add_all_missing_return_statement: diag(95114, 3 /* Message */, "Add_all_missing_return_statement_95114", "Add all missing return statement"), - Remove_braces_from_all_arrow_function_bodies_with_relevant_issues: diag(95115, 3 /* Message */, "Remove_braces_from_all_arrow_function_bodies_with_relevant_issues_95115", "Remove braces from all arrow function bodies with relevant issues"), - Wrap_all_object_literal_with_parentheses: diag(95116, 3 /* Message */, "Wrap_all_object_literal_with_parentheses_95116", "Wrap all object literal with parentheses"), - Move_labeled_tuple_element_modifiers_to_labels: diag(95117, 3 /* Message */, "Move_labeled_tuple_element_modifiers_to_labels_95117", "Move labeled tuple element modifiers to labels"), - Convert_overload_list_to_single_signature: diag(95118, 3 /* Message */, "Convert_overload_list_to_single_signature_95118", "Convert overload list to single signature"), - Generate_get_and_set_accessors_for_all_overriding_properties: diag(95119, 3 /* Message */, "Generate_get_and_set_accessors_for_all_overriding_properties_95119", "Generate 'get' and 'set' accessors for all overriding properties"), - Wrap_in_JSX_fragment: diag(95120, 3 /* Message */, "Wrap_in_JSX_fragment_95120", "Wrap in JSX fragment"), - Wrap_all_unparented_JSX_in_JSX_fragment: diag(95121, 3 /* Message */, "Wrap_all_unparented_JSX_in_JSX_fragment_95121", "Wrap all unparented JSX in JSX fragment"), - Convert_arrow_function_or_function_expression: diag(95122, 3 /* Message */, "Convert_arrow_function_or_function_expression_95122", "Convert arrow function or function expression"), - Convert_to_anonymous_function: diag(95123, 3 /* Message */, "Convert_to_anonymous_function_95123", "Convert to anonymous function"), - Convert_to_named_function: diag(95124, 3 /* Message */, "Convert_to_named_function_95124", "Convert to named function"), - Convert_to_arrow_function: diag(95125, 3 /* Message */, "Convert_to_arrow_function_95125", "Convert to arrow function"), - Remove_parentheses: diag(95126, 3 /* Message */, "Remove_parentheses_95126", "Remove parentheses"), - Could_not_find_a_containing_arrow_function: diag(95127, 3 /* Message */, "Could_not_find_a_containing_arrow_function_95127", "Could not find a containing arrow function"), - Containing_function_is_not_an_arrow_function: diag(95128, 3 /* Message */, "Containing_function_is_not_an_arrow_function_95128", "Containing function is not an arrow function"), - Could_not_find_export_statement: diag(95129, 3 /* Message */, "Could_not_find_export_statement_95129", "Could not find export statement"), - This_file_already_has_a_default_export: diag(95130, 3 /* Message */, "This_file_already_has_a_default_export_95130", "This file already has a default export"), - Could_not_find_import_clause: diag(95131, 3 /* Message */, "Could_not_find_import_clause_95131", "Could not find import clause"), - Could_not_find_namespace_import_or_named_imports: diag(95132, 3 /* Message */, "Could_not_find_namespace_import_or_named_imports_95132", "Could not find namespace import or named imports"), - Selection_is_not_a_valid_type_node: diag(95133, 3 /* Message */, "Selection_is_not_a_valid_type_node_95133", "Selection is not a valid type node"), - No_type_could_be_extracted_from_this_type_node: diag(95134, 3 /* Message */, "No_type_could_be_extracted_from_this_type_node_95134", "No type could be extracted from this type node"), - Could_not_find_property_for_which_to_generate_accessor: diag(95135, 3 /* Message */, "Could_not_find_property_for_which_to_generate_accessor_95135", "Could not find property for which to generate accessor"), - Name_is_not_valid: diag(95136, 3 /* Message */, "Name_is_not_valid_95136", "Name is not valid"), - Can_only_convert_property_with_modifier: diag(95137, 3 /* Message */, "Can_only_convert_property_with_modifier_95137", "Can only convert property with modifier"), - Switch_each_misused_0_to_1: diag(95138, 3 /* Message */, "Switch_each_misused_0_to_1_95138", "Switch each misused '{0}' to '{1}'"), - Convert_to_optional_chain_expression: diag(95139, 3 /* Message */, "Convert_to_optional_chain_expression_95139", "Convert to optional chain expression"), - Could_not_find_convertible_access_expression: diag(95140, 3 /* Message */, "Could_not_find_convertible_access_expression_95140", "Could not find convertible access expression"), - Could_not_find_matching_access_expressions: diag(95141, 3 /* Message */, "Could_not_find_matching_access_expressions_95141", "Could not find matching access expressions"), - Can_only_convert_logical_AND_access_chains: diag(95142, 3 /* Message */, "Can_only_convert_logical_AND_access_chains_95142", "Can only convert logical AND access chains"), - Add_void_to_Promise_resolved_without_a_value: diag(95143, 3 /* Message */, "Add_void_to_Promise_resolved_without_a_value_95143", "Add 'void' to Promise resolved without a value"), - Add_void_to_all_Promises_resolved_without_a_value: diag(95144, 3 /* Message */, "Add_void_to_all_Promises_resolved_without_a_value_95144", "Add 'void' to all Promises resolved without a value"), - Use_element_access_for_0: diag(95145, 3 /* Message */, "Use_element_access_for_0_95145", "Use element access for '{0}'"), - Use_element_access_for_all_undeclared_properties: diag(95146, 3 /* Message */, "Use_element_access_for_all_undeclared_properties_95146", "Use element access for all undeclared properties."), - Delete_all_unused_imports: diag(95147, 3 /* Message */, "Delete_all_unused_imports_95147", "Delete all unused imports"), - Infer_function_return_type: diag(95148, 3 /* Message */, "Infer_function_return_type_95148", "Infer function return type"), - Return_type_must_be_inferred_from_a_function: diag(95149, 3 /* Message */, "Return_type_must_be_inferred_from_a_function_95149", "Return type must be inferred from a function"), - Could_not_determine_function_return_type: diag(95150, 3 /* Message */, "Could_not_determine_function_return_type_95150", "Could not determine function return type"), - Could_not_convert_to_arrow_function: diag(95151, 3 /* Message */, "Could_not_convert_to_arrow_function_95151", "Could not convert to arrow function"), - Could_not_convert_to_named_function: diag(95152, 3 /* Message */, "Could_not_convert_to_named_function_95152", "Could not convert to named function"), - Could_not_convert_to_anonymous_function: diag(95153, 3 /* Message */, "Could_not_convert_to_anonymous_function_95153", "Could not convert to anonymous function"), - Can_only_convert_string_concatenation: diag(95154, 3 /* Message */, "Can_only_convert_string_concatenation_95154", "Can only convert string concatenation"), - Selection_is_not_a_valid_statement_or_statements: diag(95155, 3 /* Message */, "Selection_is_not_a_valid_statement_or_statements_95155", "Selection is not a valid statement or statements"), - Add_missing_function_declaration_0: diag(95156, 3 /* Message */, "Add_missing_function_declaration_0_95156", "Add missing function declaration '{0}'"), - Add_all_missing_function_declarations: diag(95157, 3 /* Message */, "Add_all_missing_function_declarations_95157", "Add all missing function declarations"), - Method_not_implemented: diag(95158, 3 /* Message */, "Method_not_implemented_95158", "Method not implemented."), - Function_not_implemented: diag(95159, 3 /* Message */, "Function_not_implemented_95159", "Function not implemented."), - Add_override_modifier: diag(95160, 3 /* Message */, "Add_override_modifier_95160", "Add 'override' modifier"), - Remove_override_modifier: diag(95161, 3 /* Message */, "Remove_override_modifier_95161", "Remove 'override' modifier"), - Add_all_missing_override_modifiers: diag(95162, 3 /* Message */, "Add_all_missing_override_modifiers_95162", "Add all missing 'override' modifiers"), - Remove_all_unnecessary_override_modifiers: diag(95163, 3 /* Message */, "Remove_all_unnecessary_override_modifiers_95163", "Remove all unnecessary 'override' modifiers"), - Can_only_convert_named_export: diag(95164, 3 /* Message */, "Can_only_convert_named_export_95164", "Can only convert named export"), - Add_missing_properties: diag(95165, 3 /* Message */, "Add_missing_properties_95165", "Add missing properties"), - Add_all_missing_properties: diag(95166, 3 /* Message */, "Add_all_missing_properties_95166", "Add all missing properties"), - Add_missing_attributes: diag(95167, 3 /* Message */, "Add_missing_attributes_95167", "Add missing attributes"), - Add_all_missing_attributes: diag(95168, 3 /* Message */, "Add_all_missing_attributes_95168", "Add all missing attributes"), - Add_undefined_to_optional_property_type: diag(95169, 3 /* Message */, "Add_undefined_to_optional_property_type_95169", "Add 'undefined' to optional property type"), - Convert_named_imports_to_default_import: diag(95170, 3 /* Message */, "Convert_named_imports_to_default_import_95170", "Convert named imports to default import"), - Delete_unused_param_tag_0: diag(95171, 3 /* Message */, "Delete_unused_param_tag_0_95171", "Delete unused '@param' tag '{0}'"), - Delete_all_unused_param_tags: diag(95172, 3 /* Message */, "Delete_all_unused_param_tags_95172", "Delete all unused '@param' tags"), - Rename_param_tag_name_0_to_1: diag(95173, 3 /* Message */, "Rename_param_tag_name_0_to_1_95173", "Rename '@param' tag name '{0}' to '{1}'"), - Use_0: diag(95174, 3 /* Message */, "Use_0_95174", "Use `{0}`."), - Use_Number_isNaN_in_all_conditions: diag(95175, 3 /* Message */, "Use_Number_isNaN_in_all_conditions_95175", "Use `Number.isNaN` in all conditions."), - Convert_typedef_to_TypeScript_type: diag(95176, 3 /* Message */, "Convert_typedef_to_TypeScript_type_95176", "Convert typedef to TypeScript type."), - Convert_all_typedef_to_TypeScript_types: diag(95177, 3 /* Message */, "Convert_all_typedef_to_TypeScript_types_95177", "Convert all typedef to TypeScript types."), - Move_to_file: diag(95178, 3 /* Message */, "Move_to_file_95178", "Move to file"), - Cannot_move_to_file_selected_file_is_invalid: diag(95179, 3 /* Message */, "Cannot_move_to_file_selected_file_is_invalid_95179", "Cannot move to file, selected file is invalid"), - Use_import_type: diag(95180, 3 /* Message */, "Use_import_type_95180", "Use 'import type'"), - Use_type_0: diag(95181, 3 /* Message */, "Use_type_0_95181", "Use 'type {0}'"), - Fix_all_with_type_only_imports: diag(95182, 3 /* Message */, "Fix_all_with_type_only_imports_95182", "Fix all with type-only imports"), - Cannot_move_statements_to_the_selected_file: diag(95183, 3 /* Message */, "Cannot_move_statements_to_the_selected_file_95183", "Cannot move statements to the selected file"), - Inline_variable: diag(95184, 3 /* Message */, "Inline_variable_95184", "Inline variable"), - Could_not_find_variable_to_inline: diag(95185, 3 /* Message */, "Could_not_find_variable_to_inline_95185", "Could not find variable to inline."), - Variables_with_multiple_declarations_cannot_be_inlined: diag(95186, 3 /* Message */, "Variables_with_multiple_declarations_cannot_be_inlined_95186", "Variables with multiple declarations cannot be inlined."), - Add_missing_comma_for_object_member_completion_0: diag(95187, 3 /* Message */, "Add_missing_comma_for_object_member_completion_0_95187", "Add missing comma for object member completion '{0}'."), - No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer: diag(18004, 1 /* Error */, "No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer_18004", "No value exists in scope for the shorthand property '{0}'. Either declare one or provide an initializer."), - Classes_may_not_have_a_field_named_constructor: diag(18006, 1 /* Error */, "Classes_may_not_have_a_field_named_constructor_18006", "Classes may not have a field named 'constructor'."), - JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array: diag(18007, 1 /* Error */, "JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array_18007", "JSX expressions may not use the comma operator. Did you mean to write an array?"), - Private_identifiers_cannot_be_used_as_parameters: diag(18009, 1 /* Error */, "Private_identifiers_cannot_be_used_as_parameters_18009", "Private identifiers cannot be used as parameters."), - An_accessibility_modifier_cannot_be_used_with_a_private_identifier: diag(18010, 1 /* Error */, "An_accessibility_modifier_cannot_be_used_with_a_private_identifier_18010", "An accessibility modifier cannot be used with a private identifier."), - The_operand_of_a_delete_operator_cannot_be_a_private_identifier: diag(18011, 1 /* Error */, "The_operand_of_a_delete_operator_cannot_be_a_private_identifier_18011", "The operand of a 'delete' operator cannot be a private identifier."), - constructor_is_a_reserved_word: diag(18012, 1 /* Error */, "constructor_is_a_reserved_word_18012", "'#constructor' is a reserved word."), - Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier: diag(18013, 1 /* Error */, "Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier_18013", "Property '{0}' is not accessible outside class '{1}' because it has a private identifier."), - The_property_0_cannot_be_accessed_on_type_1_within_this_class_because_it_is_shadowed_by_another_private_identifier_with_the_same_spelling: diag(18014, 1 /* Error */, "The_property_0_cannot_be_accessed_on_type_1_within_this_class_because_it_is_shadowed_by_another_priv_18014", "The property '{0}' cannot be accessed on type '{1}' within this class because it is shadowed by another private identifier with the same spelling."), - Property_0_in_type_1_refers_to_a_different_member_that_cannot_be_accessed_from_within_type_2: diag(18015, 1 /* Error */, "Property_0_in_type_1_refers_to_a_different_member_that_cannot_be_accessed_from_within_type_2_18015", "Property '{0}' in type '{1}' refers to a different member that cannot be accessed from within type '{2}'."), - Private_identifiers_are_not_allowed_outside_class_bodies: diag(18016, 1 /* Error */, "Private_identifiers_are_not_allowed_outside_class_bodies_18016", "Private identifiers are not allowed outside class bodies."), - The_shadowing_declaration_of_0_is_defined_here: diag(18017, 1 /* Error */, "The_shadowing_declaration_of_0_is_defined_here_18017", "The shadowing declaration of '{0}' is defined here"), - The_declaration_of_0_that_you_probably_intended_to_use_is_defined_here: diag(18018, 1 /* Error */, "The_declaration_of_0_that_you_probably_intended_to_use_is_defined_here_18018", "The declaration of '{0}' that you probably intended to use is defined here"), - _0_modifier_cannot_be_used_with_a_private_identifier: diag(18019, 1 /* Error */, "_0_modifier_cannot_be_used_with_a_private_identifier_18019", "'{0}' modifier cannot be used with a private identifier."), - An_enum_member_cannot_be_named_with_a_private_identifier: diag(18024, 1 /* Error */, "An_enum_member_cannot_be_named_with_a_private_identifier_18024", "An enum member cannot be named with a private identifier."), - can_only_be_used_at_the_start_of_a_file: diag(18026, 1 /* Error */, "can_only_be_used_at_the_start_of_a_file_18026", "'#!' can only be used at the start of a file."), - Compiler_reserves_name_0_when_emitting_private_identifier_downlevel: diag(18027, 1 /* Error */, "Compiler_reserves_name_0_when_emitting_private_identifier_downlevel_18027", "Compiler reserves name '{0}' when emitting private identifier downlevel."), - Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher: diag(18028, 1 /* Error */, "Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher_18028", "Private identifiers are only available when targeting ECMAScript 2015 and higher."), - Private_identifiers_are_not_allowed_in_variable_declarations: diag(18029, 1 /* Error */, "Private_identifiers_are_not_allowed_in_variable_declarations_18029", "Private identifiers are not allowed in variable declarations."), - An_optional_chain_cannot_contain_private_identifiers: diag(18030, 1 /* Error */, "An_optional_chain_cannot_contain_private_identifiers_18030", "An optional chain cannot contain private identifiers."), - The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituents: diag(18031, 1 /* Error */, "The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituent_18031", "The intersection '{0}' was reduced to 'never' because property '{1}' has conflicting types in some constituents."), - The_intersection_0_was_reduced_to_never_because_property_1_exists_in_multiple_constituents_and_is_private_in_some: diag(18032, 1 /* Error */, "The_intersection_0_was_reduced_to_never_because_property_1_exists_in_multiple_constituents_and_is_pr_18032", "The intersection '{0}' was reduced to 'never' because property '{1}' exists in multiple constituents and is private in some."), - Type_0_is_not_assignable_to_type_1_as_required_for_computed_enum_member_values: diag(18033, 1 /* Error */, "Type_0_is_not_assignable_to_type_1_as_required_for_computed_enum_member_values_18033", "Type '{0}' is not assignable to type '{1}' as required for computed enum member values."), - Specify_the_JSX_fragment_factory_function_to_use_when_targeting_react_JSX_emit_with_jsxFactory_compiler_option_is_specified_e_g_Fragment: diag(18034, 3 /* Message */, "Specify_the_JSX_fragment_factory_function_to_use_when_targeting_react_JSX_emit_with_jsxFactory_compi_18034", "Specify the JSX fragment factory function to use when targeting 'react' JSX emit with 'jsxFactory' compiler option is specified, e.g. 'Fragment'."), - Invalid_value_for_jsxFragmentFactory_0_is_not_a_valid_identifier_or_qualified_name: diag(18035, 1 /* Error */, "Invalid_value_for_jsxFragmentFactory_0_is_not_a_valid_identifier_or_qualified_name_18035", "Invalid value for 'jsxFragmentFactory'. '{0}' is not a valid identifier or qualified-name."), - Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_decorator: diag(18036, 1 /* Error */, "Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_dec_18036", "Class decorators can't be used with static private identifier. Consider removing the experimental decorator."), - await_expression_cannot_be_used_inside_a_class_static_block: diag(18037, 1 /* Error */, "await_expression_cannot_be_used_inside_a_class_static_block_18037", "'await' expression cannot be used inside a class static block."), - for_await_loops_cannot_be_used_inside_a_class_static_block: diag(18038, 1 /* Error */, "for_await_loops_cannot_be_used_inside_a_class_static_block_18038", "'for await' loops cannot be used inside a class static block."), - Invalid_use_of_0_It_cannot_be_used_inside_a_class_static_block: diag(18039, 1 /* Error */, "Invalid_use_of_0_It_cannot_be_used_inside_a_class_static_block_18039", "Invalid use of '{0}'. It cannot be used inside a class static block."), - A_return_statement_cannot_be_used_inside_a_class_static_block: diag(18041, 1 /* Error */, "A_return_statement_cannot_be_used_inside_a_class_static_block_18041", "A 'return' statement cannot be used inside a class static block."), - _0_is_a_type_and_cannot_be_imported_in_JavaScript_files_Use_1_in_a_JSDoc_type_annotation: diag(18042, 1 /* Error */, "_0_is_a_type_and_cannot_be_imported_in_JavaScript_files_Use_1_in_a_JSDoc_type_annotation_18042", "'{0}' is a type and cannot be imported in JavaScript files. Use '{1}' in a JSDoc type annotation."), - Types_cannot_appear_in_export_declarations_in_JavaScript_files: diag(18043, 1 /* Error */, "Types_cannot_appear_in_export_declarations_in_JavaScript_files_18043", "Types cannot appear in export declarations in JavaScript files."), - _0_is_automatically_exported_here: diag(18044, 3 /* Message */, "_0_is_automatically_exported_here_18044", "'{0}' is automatically exported here."), - Properties_with_the_accessor_modifier_are_only_available_when_targeting_ECMAScript_2015_and_higher: diag(18045, 1 /* Error */, "Properties_with_the_accessor_modifier_are_only_available_when_targeting_ECMAScript_2015_and_higher_18045", "Properties with the 'accessor' modifier are only available when targeting ECMAScript 2015 and higher."), - _0_is_of_type_unknown: diag(18046, 1 /* Error */, "_0_is_of_type_unknown_18046", "'{0}' is of type 'unknown'."), - _0_is_possibly_null: diag(18047, 1 /* Error */, "_0_is_possibly_null_18047", "'{0}' is possibly 'null'."), - _0_is_possibly_undefined: diag(18048, 1 /* Error */, "_0_is_possibly_undefined_18048", "'{0}' is possibly 'undefined'."), - _0_is_possibly_null_or_undefined: diag(18049, 1 /* Error */, "_0_is_possibly_null_or_undefined_18049", "'{0}' is possibly 'null' or 'undefined'."), - The_value_0_cannot_be_used_here: diag(18050, 1 /* Error */, "The_value_0_cannot_be_used_here_18050", "The value '{0}' cannot be used here."), - Compiler_option_0_cannot_be_given_an_empty_string: diag(18051, 1 /* Error */, "Compiler_option_0_cannot_be_given_an_empty_string_18051", "Compiler option '{0}' cannot be given an empty string."), - Non_abstract_class_0_does_not_implement_all_abstract_members_of_1: diag(18052, 1 /* Error */, "Non_abstract_class_0_does_not_implement_all_abstract_members_of_1_18052", "Non-abstract class '{0}' does not implement all abstract members of '{1}'"), - Its_type_0_is_not_a_valid_JSX_element_type: diag(18053, 1 /* Error */, "Its_type_0_is_not_a_valid_JSX_element_type_18053", "Its type '{0}' is not a valid JSX element type."), - await_using_statements_cannot_be_used_inside_a_class_static_block: diag(18054, 1 /* Error */, "await_using_statements_cannot_be_used_inside_a_class_static_block_18054", "'await using' statements cannot be used inside a class static block.") -}; -// src/compiler/scanner.ts -function tokenIsIdentifierOrKeyword(token) { - return token >= 80 /* Identifier */; -} -function tokenIsIdentifierOrKeywordOrGreaterThan(token) { - return token === 32 /* GreaterThanToken */ || tokenIsIdentifierOrKeyword(token); -} -var textToKeywordObj = (_t = { - abstract: 128 /* AbstractKeyword */, - accessor: 129 /* AccessorKeyword */, - any: 133 /* AnyKeyword */, - as: 130 /* AsKeyword */, - asserts: 131 /* AssertsKeyword */, - assert: 132 /* AssertKeyword */, - bigint: 163 /* BigIntKeyword */, - boolean: 136 /* BooleanKeyword */, - break: 83 /* BreakKeyword */, - case: 84 /* CaseKeyword */, - catch: 85 /* CatchKeyword */, - class: 86 /* ClassKeyword */, - continue: 88 /* ContinueKeyword */, - const: 87 /* ConstKeyword */ - }, - _t["constructor"] = 137 /* ConstructorKeyword */, - _t.debugger = 89 /* DebuggerKeyword */, - _t.declare = 138 /* DeclareKeyword */, - _t.default = 90 /* DefaultKeyword */, - _t.delete = 91 /* DeleteKeyword */, - _t.do = 92 /* DoKeyword */, - _t.else = 93 /* ElseKeyword */, - _t.enum = 94 /* EnumKeyword */, - _t.export = 95 /* ExportKeyword */, - _t.extends = 96 /* ExtendsKeyword */, - _t.false = 97 /* FalseKeyword */, - _t.finally = 98 /* FinallyKeyword */, - _t.for = 99 /* ForKeyword */, - _t.from = 161 /* FromKeyword */, - _t.function = 100 /* FunctionKeyword */, - _t.get = 139 /* GetKeyword */, - _t.if = 101 /* IfKeyword */, - _t.implements = 119 /* ImplementsKeyword */, - _t.import = 102 /* ImportKeyword */, - _t.in = 103 /* InKeyword */, - _t.infer = 140 /* InferKeyword */, - _t.instanceof = 104 /* InstanceOfKeyword */, - _t.interface = 120 /* InterfaceKeyword */, - _t.intrinsic = 141 /* IntrinsicKeyword */, - _t.is = 142 /* IsKeyword */, - _t.keyof = 143 /* KeyOfKeyword */, - _t.let = 121 /* LetKeyword */, - _t.module = 144 /* ModuleKeyword */, - _t.namespace = 145 /* NamespaceKeyword */, - _t.never = 146 /* NeverKeyword */, - _t.new = 105 /* NewKeyword */, - _t.null = 106 /* NullKeyword */, - _t.number = 150 /* NumberKeyword */, - _t.object = 151 /* ObjectKeyword */, - _t.package = 122 /* PackageKeyword */, - _t.private = 123 /* PrivateKeyword */, - _t.protected = 124 /* ProtectedKeyword */, - _t.public = 125 /* PublicKeyword */, - _t.override = 164 /* OverrideKeyword */, - _t.out = 147 /* OutKeyword */, - _t.readonly = 148 /* ReadonlyKeyword */, - _t.require = 149 /* RequireKeyword */, - _t.global = 162 /* GlobalKeyword */, - _t.return = 107 /* ReturnKeyword */, - _t.satisfies = 152 /* SatisfiesKeyword */, - _t.set = 153 /* SetKeyword */, - _t.static = 126 /* StaticKeyword */, - _t.string = 154 /* StringKeyword */, - _t.super = 108 /* SuperKeyword */, - _t.switch = 109 /* SwitchKeyword */, - _t.symbol = 155 /* SymbolKeyword */, - _t.this = 110 /* ThisKeyword */, - _t.throw = 111 /* ThrowKeyword */, - _t.true = 112 /* TrueKeyword */, - _t.try = 113 /* TryKeyword */, - _t.type = 156 /* TypeKeyword */, - _t.typeof = 114 /* TypeOfKeyword */, - _t.undefined = 157 /* UndefinedKeyword */, - _t.unique = 158 /* UniqueKeyword */, - _t.unknown = 159 /* UnknownKeyword */, - _t.using = 160 /* UsingKeyword */, - _t.var = 115 /* VarKeyword */, - _t.void = 116 /* VoidKeyword */, - _t.while = 117 /* WhileKeyword */, - _t.with = 118 /* WithKeyword */, - _t.yield = 127 /* YieldKeyword */, - _t.async = 134 /* AsyncKeyword */, - _t.await = 135 /* AwaitKeyword */, - _t.of = 165 /* OfKeyword */, - _t); -var textToKeyword = new Map(Object.entries(textToKeywordObj)); -var textToToken = new Map(Object.entries(__assign(__assign({}, textToKeywordObj), { "{": 19 /* OpenBraceToken */, "}": 20 /* CloseBraceToken */, "(": 21 /* OpenParenToken */, ")": 22 /* CloseParenToken */, "[": 23 /* OpenBracketToken */, "]": 24 /* CloseBracketToken */, ".": 25 /* DotToken */, "...": 26 /* DotDotDotToken */, ";": 27 /* SemicolonToken */, ",": 28 /* CommaToken */, "<": 30 /* LessThanToken */, ">": 32 /* GreaterThanToken */, "<=": 33 /* LessThanEqualsToken */, ">=": 34 /* GreaterThanEqualsToken */, "==": 35 /* EqualsEqualsToken */, "!=": 36 /* ExclamationEqualsToken */, "===": 37 /* EqualsEqualsEqualsToken */, "!==": 38 /* ExclamationEqualsEqualsToken */, "=>": 39 /* EqualsGreaterThanToken */, "+": 40 /* PlusToken */, "-": 41 /* MinusToken */, "**": 43 /* AsteriskAsteriskToken */, "*": 42 /* AsteriskToken */, "/": 44 /* SlashToken */, "%": 45 /* PercentToken */, "++": 46 /* PlusPlusToken */, "--": 47 /* MinusMinusToken */, "<<": 48 /* LessThanLessThanToken */, ">": 49 /* GreaterThanGreaterThanToken */, ">>>": 50 /* GreaterThanGreaterThanGreaterThanToken */, "&": 51 /* AmpersandToken */, "|": 52 /* BarToken */, "^": 53 /* CaretToken */, "!": 54 /* ExclamationToken */, "~": 55 /* TildeToken */, "&&": 56 /* AmpersandAmpersandToken */, "||": 57 /* BarBarToken */, "?": 58 /* QuestionToken */, "??": 61 /* QuestionQuestionToken */, "?.": 29 /* QuestionDotToken */, ":": 59 /* ColonToken */, "=": 64 /* EqualsToken */, "+=": 65 /* PlusEqualsToken */, "-=": 66 /* MinusEqualsToken */, "*=": 67 /* AsteriskEqualsToken */, "**=": 68 /* AsteriskAsteriskEqualsToken */, "/=": 69 /* SlashEqualsToken */, "%=": 70 /* PercentEqualsToken */, "<<=": 71 /* LessThanLessThanEqualsToken */, ">>=": 72 /* GreaterThanGreaterThanEqualsToken */, ">>>=": 73 /* GreaterThanGreaterThanGreaterThanEqualsToken */, "&=": 74 /* AmpersandEqualsToken */, "|=": 75 /* BarEqualsToken */, "^=": 79 /* CaretEqualsToken */, "||=": 76 /* BarBarEqualsToken */, "&&=": 77 /* AmpersandAmpersandEqualsToken */, "??=": 78 /* QuestionQuestionEqualsToken */, "@": 60 /* AtToken */, "#": 63 /* HashToken */, "`": 62 /* BacktickToken */ }))); -var unicodeES3IdentifierStart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 543, 546, 563, 592, 685, 688, 696, 699, 705, 720, 721, 736, 740, 750, 750, 890, 890, 902, 902, 904, 906, 908, 908, 910, 929, 931, 974, 976, 983, 986, 1011, 1024, 1153, 1164, 1220, 1223, 1224, 1227, 1228, 1232, 1269, 1272, 1273, 1329, 1366, 1369, 1369, 1377, 1415, 1488, 1514, 1520, 1522, 1569, 1594, 1600, 1610, 1649, 1747, 1749, 1749, 1765, 1766, 1786, 1788, 1808, 1808, 1810, 1836, 1920, 1957, 2309, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2524, 2525, 2527, 2529, 2544, 2545, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 2693, 2699, 2701, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2784, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2870, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 2997, 2999, 3001, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3168, 3169, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3294, 3294, 3296, 3297, 3333, 3340, 3342, 3344, 3346, 3368, 3370, 3385, 3424, 3425, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3805, 3840, 3840, 3904, 3911, 3913, 3946, 3976, 3979, 4096, 4129, 4131, 4135, 4137, 4138, 4176, 4181, 4256, 4293, 4304, 4342, 4352, 4441, 4447, 4514, 4520, 4601, 4608, 4614, 4616, 4678, 4680, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4742, 4744, 4744, 4746, 4749, 4752, 4782, 4784, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4814, 4816, 4822, 4824, 4846, 4848, 4878, 4880, 4880, 4882, 4885, 4888, 4894, 4896, 4934, 4936, 4954, 5024, 5108, 5121, 5740, 5743, 5750, 5761, 5786, 5792, 5866, 6016, 6067, 6176, 6263, 6272, 6312, 7680, 7835, 7840, 7929, 7936, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8319, 8319, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8497, 8499, 8505, 8544, 8579, 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12346, 12353, 12436, 12445, 12446, 12449, 12538, 12540, 12542, 12549, 12588, 12593, 12686, 12704, 12727, 13312, 19893, 19968, 40869, 40960, 42124, 44032, 55203, 63744, 64045, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65136, 65138, 65140, 65140, 65142, 65276, 65313, 65338, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500]; -var unicodeES3IdentifierPart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 543, 546, 563, 592, 685, 688, 696, 699, 705, 720, 721, 736, 740, 750, 750, 768, 846, 864, 866, 890, 890, 902, 902, 904, 906, 908, 908, 910, 929, 931, 974, 976, 983, 986, 1011, 1024, 1153, 1155, 1158, 1164, 1220, 1223, 1224, 1227, 1228, 1232, 1269, 1272, 1273, 1329, 1366, 1369, 1369, 1377, 1415, 1425, 1441, 1443, 1465, 1467, 1469, 1471, 1471, 1473, 1474, 1476, 1476, 1488, 1514, 1520, 1522, 1569, 1594, 1600, 1621, 1632, 1641, 1648, 1747, 1749, 1756, 1759, 1768, 1770, 1773, 1776, 1788, 1808, 1836, 1840, 1866, 1920, 1968, 2305, 2307, 2309, 2361, 2364, 2381, 2384, 2388, 2392, 2403, 2406, 2415, 2433, 2435, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2492, 2492, 2494, 2500, 2503, 2504, 2507, 2509, 2519, 2519, 2524, 2525, 2527, 2531, 2534, 2545, 2562, 2562, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2620, 2620, 2622, 2626, 2631, 2632, 2635, 2637, 2649, 2652, 2654, 2654, 2662, 2676, 2689, 2691, 2693, 2699, 2701, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2748, 2757, 2759, 2761, 2763, 2765, 2768, 2768, 2784, 2784, 2790, 2799, 2817, 2819, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2870, 2873, 2876, 2883, 2887, 2888, 2891, 2893, 2902, 2903, 2908, 2909, 2911, 2913, 2918, 2927, 2946, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 2997, 2999, 3001, 3006, 3010, 3014, 3016, 3018, 3021, 3031, 3031, 3047, 3055, 3073, 3075, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3134, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3168, 3169, 3174, 3183, 3202, 3203, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3262, 3268, 3270, 3272, 3274, 3277, 3285, 3286, 3294, 3294, 3296, 3297, 3302, 3311, 3330, 3331, 3333, 3340, 3342, 3344, 3346, 3368, 3370, 3385, 3390, 3395, 3398, 3400, 3402, 3405, 3415, 3415, 3424, 3425, 3430, 3439, 3458, 3459, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3530, 3530, 3535, 3540, 3542, 3542, 3544, 3551, 3570, 3571, 3585, 3642, 3648, 3662, 3664, 3673, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3769, 3771, 3773, 3776, 3780, 3782, 3782, 3784, 3789, 3792, 3801, 3804, 3805, 3840, 3840, 3864, 3865, 3872, 3881, 3893, 3893, 3895, 3895, 3897, 3897, 3902, 3911, 3913, 3946, 3953, 3972, 3974, 3979, 3984, 3991, 3993, 4028, 4038, 4038, 4096, 4129, 4131, 4135, 4137, 4138, 4140, 4146, 4150, 4153, 4160, 4169, 4176, 4185, 4256, 4293, 4304, 4342, 4352, 4441, 4447, 4514, 4520, 4601, 4608, 4614, 4616, 4678, 4680, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4742, 4744, 4744, 4746, 4749, 4752, 4782, 4784, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4814, 4816, 4822, 4824, 4846, 4848, 4878, 4880, 4880, 4882, 4885, 4888, 4894, 4896, 4934, 4936, 4954, 4969, 4977, 5024, 5108, 5121, 5740, 5743, 5750, 5761, 5786, 5792, 5866, 6016, 6099, 6112, 6121, 6160, 6169, 6176, 6263, 6272, 6313, 7680, 7835, 7840, 7929, 7936, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8255, 8256, 8319, 8319, 8400, 8412, 8417, 8417, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8497, 8499, 8505, 8544, 8579, 12293, 12295, 12321, 12335, 12337, 12341, 12344, 12346, 12353, 12436, 12441, 12442, 12445, 12446, 12449, 12542, 12549, 12588, 12593, 12686, 12704, 12727, 13312, 19893, 19968, 40869, 40960, 42124, 44032, 55203, 63744, 64045, 64256, 64262, 64275, 64279, 64285, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65056, 65059, 65075, 65076, 65101, 65103, 65136, 65138, 65140, 65140, 65142, 65276, 65296, 65305, 65313, 65338, 65343, 65343, 65345, 65370, 65381, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500]; -var unicodeES5IdentifierStart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 880, 884, 886, 887, 890, 893, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1162, 1319, 1329, 1366, 1369, 1369, 1377, 1415, 1488, 1514, 1520, 1522, 1568, 1610, 1646, 1647, 1649, 1747, 1749, 1749, 1765, 1766, 1774, 1775, 1786, 1788, 1791, 1791, 1808, 1808, 1810, 1839, 1869, 1957, 1969, 1969, 1994, 2026, 2036, 2037, 2042, 2042, 2048, 2069, 2074, 2074, 2084, 2084, 2088, 2088, 2112, 2136, 2208, 2208, 2210, 2220, 2308, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2417, 2423, 2425, 2431, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2493, 2493, 2510, 2510, 2524, 2525, 2527, 2529, 2544, 2545, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2785, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2929, 2929, 2947, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3024, 3024, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3133, 3133, 3160, 3161, 3168, 3169, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3261, 3261, 3294, 3294, 3296, 3297, 3313, 3314, 3333, 3340, 3342, 3344, 3346, 3386, 3389, 3389, 3406, 3406, 3424, 3425, 3450, 3455, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3807, 3840, 3840, 3904, 3911, 3913, 3948, 3976, 3980, 4096, 4138, 4159, 4159, 4176, 4181, 4186, 4189, 4193, 4193, 4197, 4198, 4206, 4208, 4213, 4225, 4238, 4238, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4992, 5007, 5024, 5108, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5872, 5888, 5900, 5902, 5905, 5920, 5937, 5952, 5969, 5984, 5996, 5998, 6e3, 6016, 6067, 6103, 6103, 6108, 6108, 6176, 6263, 6272, 6312, 6314, 6314, 6320, 6389, 6400, 6428, 6480, 6509, 6512, 6516, 6528, 6571, 6593, 6599, 6656, 6678, 6688, 6740, 6823, 6823, 6917, 6963, 6981, 6987, 7043, 7072, 7086, 7087, 7098, 7141, 7168, 7203, 7245, 7247, 7258, 7293, 7401, 7404, 7406, 7409, 7413, 7414, 7424, 7615, 7680, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8305, 8305, 8319, 8319, 8336, 8348, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11310, 11312, 11358, 11360, 11492, 11499, 11502, 11506, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11648, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11823, 11823, 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12348, 12353, 12438, 12445, 12447, 12449, 12538, 12540, 12543, 12549, 12589, 12593, 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40908, 40960, 42124, 42192, 42237, 42240, 42508, 42512, 42527, 42538, 42539, 42560, 42606, 42623, 42647, 42656, 42735, 42775, 42783, 42786, 42888, 42891, 42894, 42896, 42899, 42912, 42922, 43e3, 43009, 43011, 43013, 43015, 43018, 43020, 43042, 43072, 43123, 43138, 43187, 43250, 43255, 43259, 43259, 43274, 43301, 43312, 43334, 43360, 43388, 43396, 43442, 43471, 43471, 43520, 43560, 43584, 43586, 43588, 43595, 43616, 43638, 43642, 43642, 43648, 43695, 43697, 43697, 43701, 43702, 43705, 43709, 43712, 43712, 43714, 43714, 43739, 43741, 43744, 43754, 43762, 43764, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43968, 44002, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65136, 65140, 65142, 65276, 65313, 65338, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500]; -var unicodeES5IdentifierPart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 768, 884, 886, 887, 890, 893, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1155, 1159, 1162, 1319, 1329, 1366, 1369, 1369, 1377, 1415, 1425, 1469, 1471, 1471, 1473, 1474, 1476, 1477, 1479, 1479, 1488, 1514, 1520, 1522, 1552, 1562, 1568, 1641, 1646, 1747, 1749, 1756, 1759, 1768, 1770, 1788, 1791, 1791, 1808, 1866, 1869, 1969, 1984, 2037, 2042, 2042, 2048, 2093, 2112, 2139, 2208, 2208, 2210, 2220, 2276, 2302, 2304, 2403, 2406, 2415, 2417, 2423, 2425, 2431, 2433, 2435, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2492, 2500, 2503, 2504, 2507, 2510, 2519, 2519, 2524, 2525, 2527, 2531, 2534, 2545, 2561, 2563, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2620, 2620, 2622, 2626, 2631, 2632, 2635, 2637, 2641, 2641, 2649, 2652, 2654, 2654, 2662, 2677, 2689, 2691, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2748, 2757, 2759, 2761, 2763, 2765, 2768, 2768, 2784, 2787, 2790, 2799, 2817, 2819, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2876, 2884, 2887, 2888, 2891, 2893, 2902, 2903, 2908, 2909, 2911, 2915, 2918, 2927, 2929, 2929, 2946, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3006, 3010, 3014, 3016, 3018, 3021, 3024, 3024, 3031, 3031, 3046, 3055, 3073, 3075, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3133, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3160, 3161, 3168, 3171, 3174, 3183, 3202, 3203, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3260, 3268, 3270, 3272, 3274, 3277, 3285, 3286, 3294, 3294, 3296, 3299, 3302, 3311, 3313, 3314, 3330, 3331, 3333, 3340, 3342, 3344, 3346, 3386, 3389, 3396, 3398, 3400, 3402, 3406, 3415, 3415, 3424, 3427, 3430, 3439, 3450, 3455, 3458, 3459, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3530, 3530, 3535, 3540, 3542, 3542, 3544, 3551, 3570, 3571, 3585, 3642, 3648, 3662, 3664, 3673, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3769, 3771, 3773, 3776, 3780, 3782, 3782, 3784, 3789, 3792, 3801, 3804, 3807, 3840, 3840, 3864, 3865, 3872, 3881, 3893, 3893, 3895, 3895, 3897, 3897, 3902, 3911, 3913, 3948, 3953, 3972, 3974, 3991, 3993, 4028, 4038, 4038, 4096, 4169, 4176, 4253, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4957, 4959, 4992, 5007, 5024, 5108, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5872, 5888, 5900, 5902, 5908, 5920, 5940, 5952, 5971, 5984, 5996, 5998, 6e3, 6002, 6003, 6016, 6099, 6103, 6103, 6108, 6109, 6112, 6121, 6155, 6157, 6160, 6169, 6176, 6263, 6272, 6314, 6320, 6389, 6400, 6428, 6432, 6443, 6448, 6459, 6470, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6608, 6617, 6656, 6683, 6688, 6750, 6752, 6780, 6783, 6793, 6800, 6809, 6823, 6823, 6912, 6987, 6992, 7001, 7019, 7027, 7040, 7155, 7168, 7223, 7232, 7241, 7245, 7293, 7376, 7378, 7380, 7414, 7424, 7654, 7676, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8204, 8205, 8255, 8256, 8276, 8276, 8305, 8305, 8319, 8319, 8336, 8348, 8400, 8412, 8417, 8417, 8421, 8432, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11310, 11312, 11358, 11360, 11492, 11499, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11647, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11744, 11775, 11823, 11823, 12293, 12295, 12321, 12335, 12337, 12341, 12344, 12348, 12353, 12438, 12441, 12442, 12445, 12447, 12449, 12538, 12540, 12543, 12549, 12589, 12593, 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40908, 40960, 42124, 42192, 42237, 42240, 42508, 42512, 42539, 42560, 42607, 42612, 42621, 42623, 42647, 42655, 42737, 42775, 42783, 42786, 42888, 42891, 42894, 42896, 42899, 42912, 42922, 43e3, 43047, 43072, 43123, 43136, 43204, 43216, 43225, 43232, 43255, 43259, 43259, 43264, 43309, 43312, 43347, 43360, 43388, 43392, 43456, 43471, 43481, 43520, 43574, 43584, 43597, 43600, 43609, 43616, 43638, 43642, 43643, 43648, 43714, 43739, 43741, 43744, 43759, 43762, 43766, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43968, 44010, 44012, 44013, 44016, 44025, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65024, 65039, 65056, 65062, 65075, 65076, 65101, 65103, 65136, 65140, 65142, 65276, 65296, 65305, 65313, 65338, 65343, 65343, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500]; -var unicodeESNextIdentifierStart = [65, 90, 97, 122, 170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 880, 884, 886, 887, 890, 893, 895, 895, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1162, 1327, 1329, 1366, 1369, 1369, 1376, 1416, 1488, 1514, 1519, 1522, 1568, 1610, 1646, 1647, 1649, 1747, 1749, 1749, 1765, 1766, 1774, 1775, 1786, 1788, 1791, 1791, 1808, 1808, 1810, 1839, 1869, 1957, 1969, 1969, 1994, 2026, 2036, 2037, 2042, 2042, 2048, 2069, 2074, 2074, 2084, 2084, 2088, 2088, 2112, 2136, 2144, 2154, 2208, 2228, 2230, 2237, 2308, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2417, 2432, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2493, 2493, 2510, 2510, 2524, 2525, 2527, 2529, 2544, 2545, 2556, 2556, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2785, 2809, 2809, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2929, 2929, 2947, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3024, 3024, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3129, 3133, 3133, 3160, 3162, 3168, 3169, 3200, 3200, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3261, 3261, 3294, 3294, 3296, 3297, 3313, 3314, 3333, 3340, 3342, 3344, 3346, 3386, 3389, 3389, 3406, 3406, 3412, 3414, 3423, 3425, 3450, 3455, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, 3718, 3722, 3724, 3747, 3749, 3749, 3751, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3807, 3840, 3840, 3904, 3911, 3913, 3948, 3976, 3980, 4096, 4138, 4159, 4159, 4176, 4181, 4186, 4189, 4193, 4193, 4197, 4198, 4206, 4208, 4213, 4225, 4238, 4238, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4992, 5007, 5024, 5109, 5112, 5117, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5880, 5888, 5900, 5902, 5905, 5920, 5937, 5952, 5969, 5984, 5996, 5998, 6e3, 6016, 6067, 6103, 6103, 6108, 6108, 6176, 6264, 6272, 6312, 6314, 6314, 6320, 6389, 6400, 6430, 6480, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6656, 6678, 6688, 6740, 6823, 6823, 6917, 6963, 6981, 6987, 7043, 7072, 7086, 7087, 7098, 7141, 7168, 7203, 7245, 7247, 7258, 7293, 7296, 7304, 7312, 7354, 7357, 7359, 7401, 7404, 7406, 7411, 7413, 7414, 7418, 7418, 7424, 7615, 7680, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8305, 8305, 8319, 8319, 8336, 8348, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8472, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11310, 11312, 11358, 11360, 11492, 11499, 11502, 11506, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11648, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12348, 12353, 12438, 12443, 12447, 12449, 12538, 12540, 12543, 12549, 12591, 12593, 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40943, 40960, 42124, 42192, 42237, 42240, 42508, 42512, 42527, 42538, 42539, 42560, 42606, 42623, 42653, 42656, 42735, 42775, 42783, 42786, 42888, 42891, 42943, 42946, 42950, 42999, 43009, 43011, 43013, 43015, 43018, 43020, 43042, 43072, 43123, 43138, 43187, 43250, 43255, 43259, 43259, 43261, 43262, 43274, 43301, 43312, 43334, 43360, 43388, 43396, 43442, 43471, 43471, 43488, 43492, 43494, 43503, 43514, 43518, 43520, 43560, 43584, 43586, 43588, 43595, 43616, 43638, 43642, 43642, 43646, 43695, 43697, 43697, 43701, 43702, 43705, 43709, 43712, 43712, 43714, 43714, 43739, 43741, 43744, 43754, 43762, 43764, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43824, 43866, 43868, 43879, 43888, 44002, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65136, 65140, 65142, 65276, 65313, 65338, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 65536, 65547, 65549, 65574, 65576, 65594, 65596, 65597, 65599, 65613, 65616, 65629, 65664, 65786, 65856, 65908, 66176, 66204, 66208, 66256, 66304, 66335, 66349, 66378, 66384, 66421, 66432, 66461, 66464, 66499, 66504, 66511, 66513, 66517, 66560, 66717, 66736, 66771, 66776, 66811, 66816, 66855, 66864, 66915, 67072, 67382, 67392, 67413, 67424, 67431, 67584, 67589, 67592, 67592, 67594, 67637, 67639, 67640, 67644, 67644, 67647, 67669, 67680, 67702, 67712, 67742, 67808, 67826, 67828, 67829, 67840, 67861, 67872, 67897, 67968, 68023, 68030, 68031, 68096, 68096, 68112, 68115, 68117, 68119, 68121, 68149, 68192, 68220, 68224, 68252, 68288, 68295, 68297, 68324, 68352, 68405, 68416, 68437, 68448, 68466, 68480, 68497, 68608, 68680, 68736, 68786, 68800, 68850, 68864, 68899, 69376, 69404, 69415, 69415, 69424, 69445, 69600, 69622, 69635, 69687, 69763, 69807, 69840, 69864, 69891, 69926, 69956, 69956, 69968, 70002, 70006, 70006, 70019, 70066, 70081, 70084, 70106, 70106, 70108, 70108, 70144, 70161, 70163, 70187, 70272, 70278, 70280, 70280, 70282, 70285, 70287, 70301, 70303, 70312, 70320, 70366, 70405, 70412, 70415, 70416, 70419, 70440, 70442, 70448, 70450, 70451, 70453, 70457, 70461, 70461, 70480, 70480, 70493, 70497, 70656, 70708, 70727, 70730, 70751, 70751, 70784, 70831, 70852, 70853, 70855, 70855, 71040, 71086, 71128, 71131, 71168, 71215, 71236, 71236, 71296, 71338, 71352, 71352, 71424, 71450, 71680, 71723, 71840, 71903, 71935, 71935, 72096, 72103, 72106, 72144, 72161, 72161, 72163, 72163, 72192, 72192, 72203, 72242, 72250, 72250, 72272, 72272, 72284, 72329, 72349, 72349, 72384, 72440, 72704, 72712, 72714, 72750, 72768, 72768, 72818, 72847, 72960, 72966, 72968, 72969, 72971, 73008, 73030, 73030, 73056, 73061, 73063, 73064, 73066, 73097, 73112, 73112, 73440, 73458, 73728, 74649, 74752, 74862, 74880, 75075, 77824, 78894, 82944, 83526, 92160, 92728, 92736, 92766, 92880, 92909, 92928, 92975, 92992, 92995, 93027, 93047, 93053, 93071, 93760, 93823, 93952, 94026, 94032, 94032, 94099, 94111, 94176, 94177, 94179, 94179, 94208, 100343, 100352, 101106, 110592, 110878, 110928, 110930, 110948, 110951, 110960, 111355, 113664, 113770, 113776, 113788, 113792, 113800, 113808, 113817, 119808, 119892, 119894, 119964, 119966, 119967, 119970, 119970, 119973, 119974, 119977, 119980, 119982, 119993, 119995, 119995, 119997, 120003, 120005, 120069, 120071, 120074, 120077, 120084, 120086, 120092, 120094, 120121, 120123, 120126, 120128, 120132, 120134, 120134, 120138, 120144, 120146, 120485, 120488, 120512, 120514, 120538, 120540, 120570, 120572, 120596, 120598, 120628, 120630, 120654, 120656, 120686, 120688, 120712, 120714, 120744, 120746, 120770, 120772, 120779, 123136, 123180, 123191, 123197, 123214, 123214, 123584, 123627, 124928, 125124, 125184, 125251, 125259, 125259, 126464, 126467, 126469, 126495, 126497, 126498, 126500, 126500, 126503, 126503, 126505, 126514, 126516, 126519, 126521, 126521, 126523, 126523, 126530, 126530, 126535, 126535, 126537, 126537, 126539, 126539, 126541, 126543, 126545, 126546, 126548, 126548, 126551, 126551, 126553, 126553, 126555, 126555, 126557, 126557, 126559, 126559, 126561, 126562, 126564, 126564, 126567, 126570, 126572, 126578, 126580, 126583, 126585, 126588, 126590, 126590, 126592, 126601, 126603, 126619, 126625, 126627, 126629, 126633, 126635, 126651, 131072, 173782, 173824, 177972, 177984, 178205, 178208, 183969, 183984, 191456, 194560, 195101]; -var unicodeESNextIdentifierPart = [48, 57, 65, 90, 95, 95, 97, 122, 170, 170, 181, 181, 183, 183, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 768, 884, 886, 887, 890, 893, 895, 895, 902, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1155, 1159, 1162, 1327, 1329, 1366, 1369, 1369, 1376, 1416, 1425, 1469, 1471, 1471, 1473, 1474, 1476, 1477, 1479, 1479, 1488, 1514, 1519, 1522, 1552, 1562, 1568, 1641, 1646, 1747, 1749, 1756, 1759, 1768, 1770, 1788, 1791, 1791, 1808, 1866, 1869, 1969, 1984, 2037, 2042, 2042, 2045, 2045, 2048, 2093, 2112, 2139, 2144, 2154, 2208, 2228, 2230, 2237, 2259, 2273, 2275, 2403, 2406, 2415, 2417, 2435, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2492, 2500, 2503, 2504, 2507, 2510, 2519, 2519, 2524, 2525, 2527, 2531, 2534, 2545, 2556, 2556, 2558, 2558, 2561, 2563, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2620, 2620, 2622, 2626, 2631, 2632, 2635, 2637, 2641, 2641, 2649, 2652, 2654, 2654, 2662, 2677, 2689, 2691, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2748, 2757, 2759, 2761, 2763, 2765, 2768, 2768, 2784, 2787, 2790, 2799, 2809, 2815, 2817, 2819, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2876, 2884, 2887, 2888, 2891, 2893, 2902, 2903, 2908, 2909, 2911, 2915, 2918, 2927, 2929, 2929, 2946, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3006, 3010, 3014, 3016, 3018, 3021, 3024, 3024, 3031, 3031, 3046, 3055, 3072, 3084, 3086, 3088, 3090, 3112, 3114, 3129, 3133, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3160, 3162, 3168, 3171, 3174, 3183, 3200, 3203, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3260, 3268, 3270, 3272, 3274, 3277, 3285, 3286, 3294, 3294, 3296, 3299, 3302, 3311, 3313, 3314, 3328, 3331, 3333, 3340, 3342, 3344, 3346, 3396, 3398, 3400, 3402, 3406, 3412, 3415, 3423, 3427, 3430, 3439, 3450, 3455, 3458, 3459, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3530, 3530, 3535, 3540, 3542, 3542, 3544, 3551, 3558, 3567, 3570, 3571, 3585, 3642, 3648, 3662, 3664, 3673, 3713, 3714, 3716, 3716, 3718, 3722, 3724, 3747, 3749, 3749, 3751, 3773, 3776, 3780, 3782, 3782, 3784, 3789, 3792, 3801, 3804, 3807, 3840, 3840, 3864, 3865, 3872, 3881, 3893, 3893, 3895, 3895, 3897, 3897, 3902, 3911, 3913, 3948, 3953, 3972, 3974, 3991, 3993, 4028, 4038, 4038, 4096, 4169, 4176, 4253, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4957, 4959, 4969, 4977, 4992, 5007, 5024, 5109, 5112, 5117, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5880, 5888, 5900, 5902, 5908, 5920, 5940, 5952, 5971, 5984, 5996, 5998, 6e3, 6002, 6003, 6016, 6099, 6103, 6103, 6108, 6109, 6112, 6121, 6155, 6157, 6160, 6169, 6176, 6264, 6272, 6314, 6320, 6389, 6400, 6430, 6432, 6443, 6448, 6459, 6470, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6608, 6618, 6656, 6683, 6688, 6750, 6752, 6780, 6783, 6793, 6800, 6809, 6823, 6823, 6832, 6845, 6912, 6987, 6992, 7001, 7019, 7027, 7040, 7155, 7168, 7223, 7232, 7241, 7245, 7293, 7296, 7304, 7312, 7354, 7357, 7359, 7376, 7378, 7380, 7418, 7424, 7673, 7675, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8255, 8256, 8276, 8276, 8305, 8305, 8319, 8319, 8336, 8348, 8400, 8412, 8417, 8417, 8421, 8432, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8472, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11310, 11312, 11358, 11360, 11492, 11499, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11647, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11744, 11775, 12293, 12295, 12321, 12335, 12337, 12341, 12344, 12348, 12353, 12438, 12441, 12447, 12449, 12538, 12540, 12543, 12549, 12591, 12593, 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40943, 40960, 42124, 42192, 42237, 42240, 42508, 42512, 42539, 42560, 42607, 42612, 42621, 42623, 42737, 42775, 42783, 42786, 42888, 42891, 42943, 42946, 42950, 42999, 43047, 43072, 43123, 43136, 43205, 43216, 43225, 43232, 43255, 43259, 43259, 43261, 43309, 43312, 43347, 43360, 43388, 43392, 43456, 43471, 43481, 43488, 43518, 43520, 43574, 43584, 43597, 43600, 43609, 43616, 43638, 43642, 43714, 43739, 43741, 43744, 43759, 43762, 43766, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43824, 43866, 43868, 43879, 43888, 44010, 44012, 44013, 44016, 44025, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65024, 65039, 65056, 65071, 65075, 65076, 65101, 65103, 65136, 65140, 65142, 65276, 65296, 65305, 65313, 65338, 65343, 65343, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 65536, 65547, 65549, 65574, 65576, 65594, 65596, 65597, 65599, 65613, 65616, 65629, 65664, 65786, 65856, 65908, 66045, 66045, 66176, 66204, 66208, 66256, 66272, 66272, 66304, 66335, 66349, 66378, 66384, 66426, 66432, 66461, 66464, 66499, 66504, 66511, 66513, 66517, 66560, 66717, 66720, 66729, 66736, 66771, 66776, 66811, 66816, 66855, 66864, 66915, 67072, 67382, 67392, 67413, 67424, 67431, 67584, 67589, 67592, 67592, 67594, 67637, 67639, 67640, 67644, 67644, 67647, 67669, 67680, 67702, 67712, 67742, 67808, 67826, 67828, 67829, 67840, 67861, 67872, 67897, 67968, 68023, 68030, 68031, 68096, 68099, 68101, 68102, 68108, 68115, 68117, 68119, 68121, 68149, 68152, 68154, 68159, 68159, 68192, 68220, 68224, 68252, 68288, 68295, 68297, 68326, 68352, 68405, 68416, 68437, 68448, 68466, 68480, 68497, 68608, 68680, 68736, 68786, 68800, 68850, 68864, 68903, 68912, 68921, 69376, 69404, 69415, 69415, 69424, 69456, 69600, 69622, 69632, 69702, 69734, 69743, 69759, 69818, 69840, 69864, 69872, 69881, 69888, 69940, 69942, 69951, 69956, 69958, 69968, 70003, 70006, 70006, 70016, 70084, 70089, 70092, 70096, 70106, 70108, 70108, 70144, 70161, 70163, 70199, 70206, 70206, 70272, 70278, 70280, 70280, 70282, 70285, 70287, 70301, 70303, 70312, 70320, 70378, 70384, 70393, 70400, 70403, 70405, 70412, 70415, 70416, 70419, 70440, 70442, 70448, 70450, 70451, 70453, 70457, 70459, 70468, 70471, 70472, 70475, 70477, 70480, 70480, 70487, 70487, 70493, 70499, 70502, 70508, 70512, 70516, 70656, 70730, 70736, 70745, 70750, 70751, 70784, 70853, 70855, 70855, 70864, 70873, 71040, 71093, 71096, 71104, 71128, 71133, 71168, 71232, 71236, 71236, 71248, 71257, 71296, 71352, 71360, 71369, 71424, 71450, 71453, 71467, 71472, 71481, 71680, 71738, 71840, 71913, 71935, 71935, 72096, 72103, 72106, 72151, 72154, 72161, 72163, 72164, 72192, 72254, 72263, 72263, 72272, 72345, 72349, 72349, 72384, 72440, 72704, 72712, 72714, 72758, 72760, 72768, 72784, 72793, 72818, 72847, 72850, 72871, 72873, 72886, 72960, 72966, 72968, 72969, 72971, 73014, 73018, 73018, 73020, 73021, 73023, 73031, 73040, 73049, 73056, 73061, 73063, 73064, 73066, 73102, 73104, 73105, 73107, 73112, 73120, 73129, 73440, 73462, 73728, 74649, 74752, 74862, 74880, 75075, 77824, 78894, 82944, 83526, 92160, 92728, 92736, 92766, 92768, 92777, 92880, 92909, 92912, 92916, 92928, 92982, 92992, 92995, 93008, 93017, 93027, 93047, 93053, 93071, 93760, 93823, 93952, 94026, 94031, 94087, 94095, 94111, 94176, 94177, 94179, 94179, 94208, 100343, 100352, 101106, 110592, 110878, 110928, 110930, 110948, 110951, 110960, 111355, 113664, 113770, 113776, 113788, 113792, 113800, 113808, 113817, 113821, 113822, 119141, 119145, 119149, 119154, 119163, 119170, 119173, 119179, 119210, 119213, 119362, 119364, 119808, 119892, 119894, 119964, 119966, 119967, 119970, 119970, 119973, 119974, 119977, 119980, 119982, 119993, 119995, 119995, 119997, 120003, 120005, 120069, 120071, 120074, 120077, 120084, 120086, 120092, 120094, 120121, 120123, 120126, 120128, 120132, 120134, 120134, 120138, 120144, 120146, 120485, 120488, 120512, 120514, 120538, 120540, 120570, 120572, 120596, 120598, 120628, 120630, 120654, 120656, 120686, 120688, 120712, 120714, 120744, 120746, 120770, 120772, 120779, 120782, 120831, 121344, 121398, 121403, 121452, 121461, 121461, 121476, 121476, 121499, 121503, 121505, 121519, 122880, 122886, 122888, 122904, 122907, 122913, 122915, 122916, 122918, 122922, 123136, 123180, 123184, 123197, 123200, 123209, 123214, 123214, 123584, 123641, 124928, 125124, 125136, 125142, 125184, 125259, 125264, 125273, 126464, 126467, 126469, 126495, 126497, 126498, 126500, 126500, 126503, 126503, 126505, 126514, 126516, 126519, 126521, 126521, 126523, 126523, 126530, 126530, 126535, 126535, 126537, 126537, 126539, 126539, 126541, 126543, 126545, 126546, 126548, 126548, 126551, 126551, 126553, 126553, 126555, 126555, 126557, 126557, 126559, 126559, 126561, 126562, 126564, 126564, 126567, 126570, 126572, 126578, 126580, 126583, 126585, 126588, 126590, 126590, 126592, 126601, 126603, 126619, 126625, 126627, 126629, 126633, 126635, 126651, 131072, 173782, 173824, 177972, 177984, 178205, 178208, 183969, 183984, 191456, 194560, 195101, 917760, 917999]; -var commentDirectiveRegExSingleLine = /^\/\/\/?\s*@(ts-expect-error|ts-ignore)/; -var commentDirectiveRegExMultiLine = /^(?:\/|\*)*\s*@(ts-expect-error|ts-ignore)/; -function lookupInUnicodeMap(code, map2) { - if (code < map2[0]) { - return false; - } - var lo = 0; - var hi = map2.length; - var mid; - while (lo + 1 < hi) { - mid = lo + (hi - lo) / 2; - mid -= mid % 2; - if (map2[mid] <= code && code <= map2[mid + 1]) { - return true; - } - if (code < map2[mid]) { - hi = mid; - } - else { - lo = mid + 2; - } - } - return false; -} -function isUnicodeIdentifierStart(code, languageVersion) { - return languageVersion >= 2 /* ES2015 */ ? lookupInUnicodeMap(code, unicodeESNextIdentifierStart) : languageVersion === 1 /* ES5 */ ? lookupInUnicodeMap(code, unicodeES5IdentifierStart) : lookupInUnicodeMap(code, unicodeES3IdentifierStart); -} -function isUnicodeIdentifierPart(code, languageVersion) { - return languageVersion >= 2 /* ES2015 */ ? lookupInUnicodeMap(code, unicodeESNextIdentifierPart) : languageVersion === 1 /* ES5 */ ? lookupInUnicodeMap(code, unicodeES5IdentifierPart) : lookupInUnicodeMap(code, unicodeES3IdentifierPart); -} -function makeReverseMap(source) { - var result = []; - source.forEach(function (value, name) { - result[value] = name; - }); - return result; -} -var tokenStrings = makeReverseMap(textToToken); -function tokenToString(t) { - return tokenStrings[t]; -} -function stringToToken(s) { - return textToToken.get(s); -} -function computeLineStarts(text) { - var result = []; - var pos = 0; - var lineStart = 0; - while (pos < text.length) { - var ch = text.charCodeAt(pos); - pos++; - switch (ch) { - case 13 /* carriageReturn */: - if (text.charCodeAt(pos) === 10 /* lineFeed */) { - pos++; - } - case 10 /* lineFeed */: - result.push(lineStart); - lineStart = pos; - break; - default: - if (ch > 127 /* maxAsciiCharacter */ && isLineBreak(ch)) { - result.push(lineStart); - lineStart = pos; - } - break; - } - } - result.push(lineStart); - return result; -} -function getPositionOfLineAndCharacter(sourceFile, line, character, allowEdits) { - return sourceFile.getPositionOfLineAndCharacter ? sourceFile.getPositionOfLineAndCharacter(line, character, allowEdits) : computePositionOfLineAndCharacter(getLineStarts(sourceFile), line, character, sourceFile.text, allowEdits); -} -function computePositionOfLineAndCharacter(lineStarts, line, character, debugText, allowEdits) { - if (line < 0 || line >= lineStarts.length) { - if (allowEdits) { - line = line < 0 ? 0 : line >= lineStarts.length ? lineStarts.length - 1 : line; - } - else { - Debug.fail("Bad line number. Line: ".concat(line, ", lineStarts.length: ").concat(lineStarts.length, " , line map is correct? ").concat(debugText !== void 0 ? arraysEqual(lineStarts, computeLineStarts(debugText)) : "unknown")); - } - } - var res = lineStarts[line] + character; - if (allowEdits) { - return res > lineStarts[line + 1] ? lineStarts[line + 1] : typeof debugText === "string" && res > debugText.length ? debugText.length : res; - } - if (line < lineStarts.length - 1) { - Debug.assert(res < lineStarts[line + 1]); - } - else if (debugText !== void 0) { - Debug.assert(res <= debugText.length); - } - return res; -} -function getLineStarts(sourceFile) { - return sourceFile.lineMap || (sourceFile.lineMap = computeLineStarts(sourceFile.text)); -} -function computeLineAndCharacterOfPosition(lineStarts, position) { - var lineNumber = computeLineOfPosition(lineStarts, position); - return { - line: lineNumber, - character: position - lineStarts[lineNumber] - }; -} -function computeLineOfPosition(lineStarts, position, lowerBound) { - var lineNumber = binarySearch(lineStarts, position, identity, compareValues, lowerBound); - if (lineNumber < 0) { - lineNumber = ~lineNumber - 1; - Debug.assert(lineNumber !== -1, "position cannot precede the beginning of the file"); - } - return lineNumber; -} -function getLinesBetweenPositions(sourceFile, pos1, pos2) { - if (pos1 === pos2) - return 0; - var lineStarts = getLineStarts(sourceFile); - var lower = Math.min(pos1, pos2); - var isNegative = lower === pos2; - var upper = isNegative ? pos1 : pos2; - var lowerLine = computeLineOfPosition(lineStarts, lower); - var upperLine = computeLineOfPosition(lineStarts, upper, lowerLine); - return isNegative ? lowerLine - upperLine : upperLine - lowerLine; -} -function getLineAndCharacterOfPosition(sourceFile, position) { - return computeLineAndCharacterOfPosition(getLineStarts(sourceFile), position); -} -function isWhiteSpaceLike(ch) { - return isWhiteSpaceSingleLine(ch) || isLineBreak(ch); -} -function isWhiteSpaceSingleLine(ch) { - return ch === 32 /* space */ || ch === 9 /* tab */ || ch === 11 /* verticalTab */ || ch === 12 /* formFeed */ || ch === 160 /* nonBreakingSpace */ || ch === 133 /* nextLine */ || ch === 5760 /* ogham */ || ch >= 8192 /* enQuad */ && ch <= 8203 /* zeroWidthSpace */ || ch === 8239 /* narrowNoBreakSpace */ || ch === 8287 /* mathematicalSpace */ || ch === 12288 /* ideographicSpace */ || ch === 65279 /* byteOrderMark */; -} -function isLineBreak(ch) { - return ch === 10 /* lineFeed */ || ch === 13 /* carriageReturn */ || ch === 8232 /* lineSeparator */ || ch === 8233 /* paragraphSeparator */; -} -function isDigit(ch) { - return ch >= 48 /* _0 */ && ch <= 57 /* _9 */; -} -function isHexDigit(ch) { - return isDigit(ch) || ch >= 65 /* A */ && ch <= 70 /* F */ || ch >= 97 /* a */ && ch <= 102 /* f */; -} -function isCodePoint(code) { - return code <= 1114111; -} -function isOctalDigit(ch) { - return ch >= 48 /* _0 */ && ch <= 55 /* _7 */; -} -function couldStartTrivia(text, pos) { - var ch = text.charCodeAt(pos); - switch (ch) { - case 13 /* carriageReturn */: - case 10 /* lineFeed */: - case 9 /* tab */: - case 11 /* verticalTab */: - case 12 /* formFeed */: - case 32 /* space */: - case 47 /* slash */: - case 60 /* lessThan */: - case 124 /* bar */: - case 61 /* equals */: - case 62 /* greaterThan */: - return true; - case 35 /* hash */: - return pos === 0; - default: - return ch > 127 /* maxAsciiCharacter */; - } -} -function skipTrivia(text, pos, stopAfterLineBreak, stopAtComments, inJSDoc) { - if (positionIsSynthesized(pos)) { - return pos; - } - var canConsumeStar = false; - while (true) { - var ch = text.charCodeAt(pos); - switch (ch) { - case 13 /* carriageReturn */: - if (text.charCodeAt(pos + 1) === 10 /* lineFeed */) { - pos++; - } - case 10 /* lineFeed */: - pos++; - if (stopAfterLineBreak) { - return pos; - } - canConsumeStar = !!inJSDoc; - continue; - case 9 /* tab */: - case 11 /* verticalTab */: - case 12 /* formFeed */: - case 32 /* space */: - pos++; - continue; - case 47 /* slash */: - if (stopAtComments) { - break; - } - if (text.charCodeAt(pos + 1) === 47 /* slash */) { - pos += 2; - while (pos < text.length) { - if (isLineBreak(text.charCodeAt(pos))) { - break; - } - pos++; - } - canConsumeStar = false; - continue; - } - if (text.charCodeAt(pos + 1) === 42 /* asterisk */) { - pos += 2; - while (pos < text.length) { - if (text.charCodeAt(pos) === 42 /* asterisk */ && text.charCodeAt(pos + 1) === 47 /* slash */) { - pos += 2; - break; - } - pos++; - } - canConsumeStar = false; - continue; - } - break; - case 60 /* lessThan */: - case 124 /* bar */: - case 61 /* equals */: - case 62 /* greaterThan */: - if (isConflictMarkerTrivia(text, pos)) { - pos = scanConflictMarkerTrivia(text, pos); - canConsumeStar = false; - continue; - } - break; - case 35 /* hash */: - if (pos === 0 && isShebangTrivia(text, pos)) { - pos = scanShebangTrivia(text, pos); - canConsumeStar = false; - continue; - } - break; - case 42 /* asterisk */: - if (canConsumeStar) { - pos++; - canConsumeStar = false; - continue; - } - break; - default: - if (ch > 127 /* maxAsciiCharacter */ && isWhiteSpaceLike(ch)) { - pos++; - continue; - } - break; - } - return pos; - } -} -var mergeConflictMarkerLength = "<<<<<<<".length; -function isConflictMarkerTrivia(text, pos) { - Debug.assert(pos >= 0); - if (pos === 0 || isLineBreak(text.charCodeAt(pos - 1))) { - var ch = text.charCodeAt(pos); - if (pos + mergeConflictMarkerLength < text.length) { - for (var i = 0; i < mergeConflictMarkerLength; i++) { - if (text.charCodeAt(pos + i) !== ch) { - return false; - } - } - return ch === 61 /* equals */ || text.charCodeAt(pos + mergeConflictMarkerLength) === 32 /* space */; - } - } - return false; -} -function scanConflictMarkerTrivia(text, pos, error2) { - if (error2) { - error2(Diagnostics.Merge_conflict_marker_encountered, pos, mergeConflictMarkerLength); - } - var ch = text.charCodeAt(pos); - var len = text.length; - if (ch === 60 /* lessThan */ || ch === 62 /* greaterThan */) { - while (pos < len && !isLineBreak(text.charCodeAt(pos))) { - pos++; - } - } - else { - Debug.assert(ch === 124 /* bar */ || ch === 61 /* equals */); - while (pos < len) { - var currentChar = text.charCodeAt(pos); - if ((currentChar === 61 /* equals */ || currentChar === 62 /* greaterThan */) && currentChar !== ch && isConflictMarkerTrivia(text, pos)) { - break; - } - pos++; - } - } - return pos; -} -var shebangTriviaRegex = /^#!.*/; -function isShebangTrivia(text, pos) { - Debug.assert(pos === 0); - return shebangTriviaRegex.test(text); -} -function scanShebangTrivia(text, pos) { - var shebang = shebangTriviaRegex.exec(text)[0]; - pos = pos + shebang.length; - return pos; -} -function iterateCommentRanges(reduce, text, pos, trailing, cb, state, initial) { - var pendingPos; - var pendingEnd; - var pendingKind; - var pendingHasTrailingNewLine; - var hasPendingCommentRange = false; - var collecting = trailing; - var accumulator = initial; - if (pos === 0) { - collecting = true; - var shebang = getShebang(text); - if (shebang) { - pos = shebang.length; - } - } - scan: while (pos >= 0 && pos < text.length) { - var ch = text.charCodeAt(pos); - switch (ch) { - case 13 /* carriageReturn */: - if (text.charCodeAt(pos + 1) === 10 /* lineFeed */) { - pos++; - } - case 10 /* lineFeed */: - pos++; - if (trailing) { - break scan; - } - collecting = true; - if (hasPendingCommentRange) { - pendingHasTrailingNewLine = true; - } - continue; - case 9 /* tab */: - case 11 /* verticalTab */: - case 12 /* formFeed */: - case 32 /* space */: - pos++; - continue; - case 47 /* slash */: - var nextChar = text.charCodeAt(pos + 1); - var hasTrailingNewLine = false; - if (nextChar === 47 /* slash */ || nextChar === 42 /* asterisk */) { - var kind = nextChar === 47 /* slash */ ? 2 /* SingleLineCommentTrivia */ : 3 /* MultiLineCommentTrivia */; - var startPos = pos; - pos += 2; - if (nextChar === 47 /* slash */) { - while (pos < text.length) { - if (isLineBreak(text.charCodeAt(pos))) { - hasTrailingNewLine = true; - break; - } - pos++; - } - } - else { - while (pos < text.length) { - if (text.charCodeAt(pos) === 42 /* asterisk */ && text.charCodeAt(pos + 1) === 47 /* slash */) { - pos += 2; - break; - } - pos++; - } - } - if (collecting) { - if (hasPendingCommentRange) { - accumulator = cb(pendingPos, pendingEnd, pendingKind, pendingHasTrailingNewLine, state, accumulator); - if (!reduce && accumulator) { - return accumulator; - } - } - pendingPos = startPos; - pendingEnd = pos; - pendingKind = kind; - pendingHasTrailingNewLine = hasTrailingNewLine; - hasPendingCommentRange = true; - } - continue; - } - break scan; - default: - if (ch > 127 /* maxAsciiCharacter */ && isWhiteSpaceLike(ch)) { - if (hasPendingCommentRange && isLineBreak(ch)) { - pendingHasTrailingNewLine = true; - } - pos++; - continue; - } - break scan; - } - } - if (hasPendingCommentRange) { - accumulator = cb(pendingPos, pendingEnd, pendingKind, pendingHasTrailingNewLine, state, accumulator); - } - return accumulator; -} -function forEachLeadingCommentRange(text, pos, cb, state) { - return iterateCommentRanges( - /*reduce*/ - false, text, pos, - /*trailing*/ - false, cb, state); -} -function forEachTrailingCommentRange(text, pos, cb, state) { - return iterateCommentRanges( - /*reduce*/ - false, text, pos, - /*trailing*/ - true, cb, state); -} -function reduceEachLeadingCommentRange(text, pos, cb, state, initial) { - return iterateCommentRanges( - /*reduce*/ - true, text, pos, - /*trailing*/ - false, cb, state, initial); -} -function reduceEachTrailingCommentRange(text, pos, cb, state, initial) { - return iterateCommentRanges( - /*reduce*/ - true, text, pos, - /*trailing*/ - true, cb, state, initial); -} -function appendCommentRange(pos, end, kind, hasTrailingNewLine, _state, comments) { - if (comments === void 0) { comments = []; } - comments.push({ kind: kind, pos: pos, end: end, hasTrailingNewLine: hasTrailingNewLine }); - return comments; -} -function getLeadingCommentRanges(text, pos) { - return reduceEachLeadingCommentRange(text, pos, appendCommentRange, - /*state*/ - void 0, - /*initial*/ - void 0); -} -function getTrailingCommentRanges(text, pos) { - return reduceEachTrailingCommentRange(text, pos, appendCommentRange, - /*state*/ - void 0, - /*initial*/ - void 0); -} -function getShebang(text) { - var match = shebangTriviaRegex.exec(text); - if (match) { - return match[0]; - } -} -function isIdentifierStart(ch, languageVersion) { - return ch >= 65 /* A */ && ch <= 90 /* Z */ || ch >= 97 /* a */ && ch <= 122 /* z */ || ch === 36 /* $ */ || ch === 95 /* _ */ || ch > 127 /* maxAsciiCharacter */ && isUnicodeIdentifierStart(ch, languageVersion); -} -function isIdentifierPart(ch, languageVersion, identifierVariant) { - return ch >= 65 /* A */ && ch <= 90 /* Z */ || ch >= 97 /* a */ && ch <= 122 /* z */ || ch >= 48 /* _0 */ && ch <= 57 /* _9 */ || ch === 36 /* $ */ || ch === 95 /* _ */ || // "-" and ":" are valid in JSX Identifiers - (identifierVariant === 1 /* JSX */ ? ch === 45 /* minus */ || ch === 58 /* colon */ : false) || ch > 127 /* maxAsciiCharacter */ && isUnicodeIdentifierPart(ch, languageVersion); -} -function isIdentifierText(name, languageVersion, identifierVariant) { - var ch = codePointAt(name, 0); - if (!isIdentifierStart(ch, languageVersion)) { - return false; - } - for (var i = charSize(ch); i < name.length; i += charSize(ch)) { - if (!isIdentifierPart(ch = codePointAt(name, i), languageVersion, identifierVariant)) { - return false; - } - } - return true; -} -function createScanner(languageVersion, skipTrivia2, languageVariant /* Standard */, textInitial, onError, start2, length2) { - if (languageVariant === void 0) { languageVariant = 0; } - var text = textInitial; - var pos; - var end; - var fullStartPos; - var tokenStart; - var token; - var tokenValue; - var tokenFlags; - var commentDirectives; - var inJSDocType = 0; - setText(text, start2, length2); - var scanner2 = { - getTokenFullStart: function () { return fullStartPos; }, - getStartPos: function () { return fullStartPos; }, - getTokenEnd: function () { return pos; }, - getTextPos: function () { return pos; }, - getToken: function () { return token; }, - getTokenStart: function () { return tokenStart; }, - getTokenPos: function () { return tokenStart; }, - getTokenText: function () { return text.substring(tokenStart, pos); }, - getTokenValue: function () { return tokenValue; }, - hasUnicodeEscape: function () { return (tokenFlags & 1024 /* UnicodeEscape */) !== 0; }, - hasExtendedUnicodeEscape: function () { return (tokenFlags & 8 /* ExtendedUnicodeEscape */) !== 0; }, - hasPrecedingLineBreak: function () { return (tokenFlags & 1 /* PrecedingLineBreak */) !== 0; }, - hasPrecedingJSDocComment: function () { return (tokenFlags & 2 /* PrecedingJSDocComment */) !== 0; }, - isIdentifier: function () { return token === 80 /* Identifier */ || token > 118; } /* LastReservedWord */, - isReservedWord: function () { return token >= 83 /* FirstReservedWord */ && token <= 118; } /* LastReservedWord */, - isUnterminated: function () { return (tokenFlags & 4 /* Unterminated */) !== 0; }, - getCommentDirectives: function () { return commentDirectives; }, - getNumericLiteralFlags: function () { return tokenFlags & 25584; } /* NumericLiteralFlags */, - getTokenFlags: function () { return tokenFlags; }, - reScanGreaterToken: reScanGreaterToken, - reScanAsteriskEqualsToken: reScanAsteriskEqualsToken, - reScanSlashToken: reScanSlashToken, - reScanTemplateToken: reScanTemplateToken, - reScanTemplateHeadOrNoSubstitutionTemplate: reScanTemplateHeadOrNoSubstitutionTemplate, - scanJsxIdentifier: scanJsxIdentifier, - scanJsxAttributeValue: scanJsxAttributeValue, - reScanJsxAttributeValue: reScanJsxAttributeValue, - reScanJsxToken: reScanJsxToken, - reScanLessThanToken: reScanLessThanToken, - reScanHashToken: reScanHashToken, - reScanQuestionToken: reScanQuestionToken, - reScanInvalidIdentifier: reScanInvalidIdentifier, - scanJsxToken: scanJsxToken, - scanJsDocToken: scanJsDocToken, - scanJSDocCommentTextToken: scanJSDocCommentTextToken, - scan: scan, - getText: getText, - clearCommentDirectives: clearCommentDirectives, - setText: setText, - setScriptTarget: setScriptTarget, - setLanguageVariant: setLanguageVariant, - setOnError: setOnError, - resetTokenState: resetTokenState, - setTextPos: resetTokenState, - setInJSDocType: setInJSDocType, - tryScan: tryScan, - lookAhead: lookAhead, - scanRange: scanRange - }; - if (Debug.isDebugging) { - Object.defineProperty(scanner2, "__debugShowCurrentPositionInText", { - get: function () { - var text2 = scanner2.getText(); - return text2.slice(0, scanner2.getTokenFullStart()) + "\u2551" + text2.slice(scanner2.getTokenFullStart()); - } - }); - } - return scanner2; - function error2(message, errPos, length3, arg0) { - if (errPos === void 0) { errPos = pos; } - if (onError) { - var oldPos = pos; - pos = errPos; - onError(message, length3 || 0, arg0); - pos = oldPos; - } - } - function scanNumberFragment() { - var start3 = pos; - var allowSeparator = false; - var isPreviousTokenSeparator = false; - var result = ""; - while (true) { - var ch = text.charCodeAt(pos); - if (ch === 95 /* _ */) { - tokenFlags |= 512 /* ContainsSeparator */; - if (allowSeparator) { - allowSeparator = false; - isPreviousTokenSeparator = true; - result += text.substring(start3, pos); - } - else { - tokenFlags |= 16384 /* ContainsInvalidSeparator */; - if (isPreviousTokenSeparator) { - error2(Diagnostics.Multiple_consecutive_numeric_separators_are_not_permitted, pos, 1); - } - else { - error2(Diagnostics.Numeric_separators_are_not_allowed_here, pos, 1); - } - } - pos++; - start3 = pos; - continue; - } - if (isDigit(ch)) { - allowSeparator = true; - isPreviousTokenSeparator = false; - pos++; - continue; - } - break; - } - if (text.charCodeAt(pos - 1) === 95 /* _ */) { - tokenFlags |= 16384 /* ContainsInvalidSeparator */; - error2(Diagnostics.Numeric_separators_are_not_allowed_here, pos - 1, 1); - } - return result + text.substring(start3, pos); - } - function scanNumber() { - var start3 = pos; - var mainFragment; - if (text.charCodeAt(pos) === 48 /* _0 */) { - pos++; - if (text.charCodeAt(pos) === 95 /* _ */) { - tokenFlags |= 512 /* ContainsSeparator */ | 16384 /* ContainsInvalidSeparator */; - error2(Diagnostics.Numeric_separators_are_not_allowed_here, pos, 1); - pos--; - mainFragment = scanNumberFragment(); - } - else if (!scanDigits()) { - tokenFlags |= 8192 /* ContainsLeadingZero */; - mainFragment = "" + +tokenValue; - } - else if (!tokenValue) { - mainFragment = "0"; - } - else { - tokenValue = "" + parseInt(tokenValue, 8); - tokenFlags |= 32 /* Octal */; - var withMinus = token === 41 /* MinusToken */; - var literal = (withMinus ? "-" : "") + "0o" + (+tokenValue).toString(8); - if (withMinus) - start3--; - error2(Diagnostics.Octal_literals_are_not_allowed_Use_the_syntax_0, start3, pos - start3, literal); - return 9 /* NumericLiteral */; - } - } - else { - mainFragment = scanNumberFragment(); - } - var decimalFragment; - var scientificFragment; - if (text.charCodeAt(pos) === 46 /* dot */) { - pos++; - decimalFragment = scanNumberFragment(); - } - var end2 = pos; - if (text.charCodeAt(pos) === 69 /* E */ || text.charCodeAt(pos) === 101 /* e */) { - pos++; - tokenFlags |= 16 /* Scientific */; - if (text.charCodeAt(pos) === 43 /* plus */ || text.charCodeAt(pos) === 45 /* minus */) - pos++; - var preNumericPart = pos; - var finalFragment = scanNumberFragment(); - if (!finalFragment) { - error2(Diagnostics.Digit_expected); - } - else { - scientificFragment = text.substring(end2, preNumericPart) + finalFragment; - end2 = pos; - } - } - var result; - if (tokenFlags & 512 /* ContainsSeparator */) { - result = mainFragment; - if (decimalFragment) { - result += "." + decimalFragment; - } - if (scientificFragment) { - result += scientificFragment; - } - } - else { - result = text.substring(start3, end2); - } - if (tokenFlags & 8192 /* ContainsLeadingZero */) { - error2(Diagnostics.Decimals_with_leading_zeros_are_not_allowed, start3, end2 - start3); - tokenValue = "" + +result; - return 9 /* NumericLiteral */; - } - if (decimalFragment !== void 0 || tokenFlags & 16 /* Scientific */) { - checkForIdentifierStartAfterNumericLiteral(start3, decimalFragment === void 0 && !!(tokenFlags & 16 /* Scientific */)); - tokenValue = "" + +result; - return 9 /* NumericLiteral */; - } - else { - tokenValue = result; - var type = checkBigIntSuffix(); - checkForIdentifierStartAfterNumericLiteral(start3); - return type; - } - } - function checkForIdentifierStartAfterNumericLiteral(numericStart, isScientific) { - if (!isIdentifierStart(codePointAt(text, pos), languageVersion)) { - return; - } - var identifierStart = pos; - var length3 = scanIdentifierParts().length; - if (length3 === 1 && text[identifierStart] === "n") { - if (isScientific) { - error2(Diagnostics.A_bigint_literal_cannot_use_exponential_notation, numericStart, identifierStart - numericStart + 1); - } - else { - error2(Diagnostics.A_bigint_literal_must_be_an_integer, numericStart, identifierStart - numericStart + 1); - } - } - else { - error2(Diagnostics.An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal, identifierStart, length3); - pos = identifierStart; - } - } - function scanDigits() { - var start3 = pos; - var isOctal = true; - while (isDigit(text.charCodeAt(pos))) { - if (!isOctalDigit(text.charCodeAt(pos))) { - isOctal = false; - } - pos++; - } - tokenValue = text.substring(start3, pos); - return isOctal; - } - function scanExactNumberOfHexDigits(count, canHaveSeparators) { - var valueString = scanHexDigits( - /*minCount*/ - count, - /*scanAsManyAsPossible*/ - false, canHaveSeparators); - return valueString ? parseInt(valueString, 16) : -1; - } - function scanMinimumNumberOfHexDigits(count, canHaveSeparators) { - return scanHexDigits( - /*minCount*/ - count, - /*scanAsManyAsPossible*/ - true, canHaveSeparators); - } - function scanHexDigits(minCount, scanAsManyAsPossible, canHaveSeparators) { - var valueChars = []; - var allowSeparator = false; - var isPreviousTokenSeparator = false; - while (valueChars.length < minCount || scanAsManyAsPossible) { - var ch = text.charCodeAt(pos); - if (canHaveSeparators && ch === 95 /* _ */) { - tokenFlags |= 512 /* ContainsSeparator */; - if (allowSeparator) { - allowSeparator = false; - isPreviousTokenSeparator = true; - } - else if (isPreviousTokenSeparator) { - error2(Diagnostics.Multiple_consecutive_numeric_separators_are_not_permitted, pos, 1); - } - else { - error2(Diagnostics.Numeric_separators_are_not_allowed_here, pos, 1); - } - pos++; - continue; - } - allowSeparator = canHaveSeparators; - if (ch >= 65 /* A */ && ch <= 70 /* F */) { - ch += 97 /* a */ - 65 /* A */; - } - else if (!(ch >= 48 /* _0 */ && ch <= 57 /* _9 */ || ch >= 97 /* a */ && ch <= 102 /* f */)) { - break; - } - valueChars.push(ch); - pos++; - isPreviousTokenSeparator = false; - } - if (valueChars.length < minCount) { - valueChars = []; - } - if (text.charCodeAt(pos - 1) === 95 /* _ */) { - error2(Diagnostics.Numeric_separators_are_not_allowed_here, pos - 1, 1); - } - return String.fromCharCode.apply(String, __spreadArray([], __read(valueChars), false)); - } - function scanString(jsxAttributeString) { - if (jsxAttributeString === void 0) { jsxAttributeString = false; } - var quote2 = text.charCodeAt(pos); - pos++; - var result = ""; - var start3 = pos; - while (true) { - if (pos >= end) { - result += text.substring(start3, pos); - tokenFlags |= 4 /* Unterminated */; - error2(Diagnostics.Unterminated_string_literal); - break; - } - var ch = text.charCodeAt(pos); - if (ch === quote2) { - result += text.substring(start3, pos); - pos++; - break; - } - if (ch === 92 /* backslash */ && !jsxAttributeString) { - result += text.substring(start3, pos); - result += scanEscapeSequence( - /*shouldEmitInvalidEscapeError*/ - true); - start3 = pos; - continue; - } - if (isLineBreak(ch) && !jsxAttributeString) { - result += text.substring(start3, pos); - tokenFlags |= 4 /* Unterminated */; - error2(Diagnostics.Unterminated_string_literal); - break; - } - pos++; - } - return result; - } - function scanTemplateAndSetTokenValue(shouldEmitInvalidEscapeError) { - var startedWithBacktick = text.charCodeAt(pos) === 96 /* backtick */; - pos++; - var start3 = pos; - var contents = ""; - var resultingToken; - while (true) { - if (pos >= end) { - contents += text.substring(start3, pos); - tokenFlags |= 4 /* Unterminated */; - error2(Diagnostics.Unterminated_template_literal); - resultingToken = startedWithBacktick ? 15 /* NoSubstitutionTemplateLiteral */ : 18 /* TemplateTail */; - break; - } - var currChar = text.charCodeAt(pos); - if (currChar === 96 /* backtick */) { - contents += text.substring(start3, pos); - pos++; - resultingToken = startedWithBacktick ? 15 /* NoSubstitutionTemplateLiteral */ : 18 /* TemplateTail */; - break; - } - if (currChar === 36 /* $ */ && pos + 1 < end && text.charCodeAt(pos + 1) === 123 /* openBrace */) { - contents += text.substring(start3, pos); - pos += 2; - resultingToken = startedWithBacktick ? 16 /* TemplateHead */ : 17 /* TemplateMiddle */; - break; - } - if (currChar === 92 /* backslash */) { - contents += text.substring(start3, pos); - contents += scanEscapeSequence(shouldEmitInvalidEscapeError); - start3 = pos; - continue; - } - if (currChar === 13 /* carriageReturn */) { - contents += text.substring(start3, pos); - pos++; - if (pos < end && text.charCodeAt(pos) === 10 /* lineFeed */) { - pos++; - } - contents += "\n"; - start3 = pos; - continue; - } - pos++; - } - Debug.assert(resultingToken !== void 0); - tokenValue = contents; - return resultingToken; - } - function scanEscapeSequence(shouldEmitInvalidEscapeError) { - var start3 = pos; - pos++; - if (pos >= end) { - error2(Diagnostics.Unexpected_end_of_text); - return ""; - } - var ch = text.charCodeAt(pos); - pos++; - switch (ch) { - case 48 /* _0 */: - if (pos >= end || !isDigit(text.charCodeAt(pos))) { - return "\0"; - } - case 49 /* _1 */: - case 50 /* _2 */: - case 51 /* _3 */: - if (pos < end && isOctalDigit(text.charCodeAt(pos))) { - pos++; - } - case 52 /* _4 */: - case 53 /* _5 */: - case 54 /* _6 */: - case 55 /* _7 */: - if (pos < end && isOctalDigit(text.charCodeAt(pos))) { - pos++; - } - tokenFlags |= 2048 /* ContainsInvalidEscape */; - if (shouldEmitInvalidEscapeError) { - var code = parseInt(text.substring(start3 + 1, pos), 8); - error2(Diagnostics.Octal_escape_sequences_are_not_allowed_Use_the_syntax_0, start3, pos - start3, "\\x" + padLeft(code.toString(16), 2, "0")); - return String.fromCharCode(code); - } - return text.substring(start3, pos); - case 56 /* _8 */: - case 57 /* _9 */: - tokenFlags |= 2048 /* ContainsInvalidEscape */; - if (shouldEmitInvalidEscapeError) { - error2(Diagnostics.Escape_sequence_0_is_not_allowed, start3, pos - start3, text.substring(start3, pos)); - return String.fromCharCode(ch); - } - return text.substring(start3, pos); - case 98 /* b */: - return "\b"; - case 116 /* t */: - return " "; - case 110 /* n */: - return "\n"; - case 118 /* v */: - return "\v"; - case 102 /* f */: - return "\f"; - case 114 /* r */: - return "\r"; - case 39 /* singleQuote */: - return "'"; - case 34 /* doubleQuote */: - return '"'; - case 117 /* u */: - if (pos < end && text.charCodeAt(pos) === 123 /* openBrace */) { - pos++; - var escapedValueString = scanMinimumNumberOfHexDigits(1, - /*canHaveSeparators*/ - false); - var escapedValue = escapedValueString ? parseInt(escapedValueString, 16) : -1; - if (escapedValue < 0) { - tokenFlags |= 2048 /* ContainsInvalidEscape */; - if (shouldEmitInvalidEscapeError) { - error2(Diagnostics.Hexadecimal_digit_expected); - } - return text.substring(start3, pos); - } - if (!isCodePoint(escapedValue)) { - tokenFlags |= 2048 /* ContainsInvalidEscape */; - if (shouldEmitInvalidEscapeError) { - error2(Diagnostics.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive); - } - return text.substring(start3, pos); - } - if (pos >= end) { - tokenFlags |= 2048 /* ContainsInvalidEscape */; - if (shouldEmitInvalidEscapeError) { - error2(Diagnostics.Unexpected_end_of_text); - } - return text.substring(start3, pos); - } - if (text.charCodeAt(pos) !== 125 /* closeBrace */) { - tokenFlags |= 2048 /* ContainsInvalidEscape */; - if (shouldEmitInvalidEscapeError) { - error2(Diagnostics.Unterminated_Unicode_escape_sequence); - } - return text.substring(start3, pos); - } - pos++; - tokenFlags |= 8 /* ExtendedUnicodeEscape */; - return utf16EncodeAsString(escapedValue); - } - for (; pos < start3 + 6; pos++) { - if (!(pos < end && isHexDigit(text.charCodeAt(pos)))) { - tokenFlags |= 2048 /* ContainsInvalidEscape */; - if (shouldEmitInvalidEscapeError) { - error2(Diagnostics.Hexadecimal_digit_expected); - } - return text.substring(start3, pos); - } - } - tokenFlags |= 1024 /* UnicodeEscape */; - return String.fromCharCode(parseInt(text.substring(start3 + 2, pos), 16)); - case 120 /* x */: - for (; pos < start3 + 4; pos++) { - if (!(pos < end && isHexDigit(text.charCodeAt(pos)))) { - tokenFlags |= 2048 /* ContainsInvalidEscape */; - if (shouldEmitInvalidEscapeError) { - error2(Diagnostics.Hexadecimal_digit_expected); - } - return text.substring(start3, pos); - } - } - tokenFlags |= 4096 /* HexEscape */; - return String.fromCharCode(parseInt(text.substring(start3 + 2, pos), 16)); - case 13 /* carriageReturn */: - if (pos < end && text.charCodeAt(pos) === 10 /* lineFeed */) { - pos++; - } - case 10 /* lineFeed */: - case 8232 /* lineSeparator */: - case 8233 /* paragraphSeparator */: - return ""; - default: - return String.fromCharCode(ch); - } - } - function scanExtendedUnicodeEscape() { - var escapedValueString = scanMinimumNumberOfHexDigits(1, - /*canHaveSeparators*/ - false); - var escapedValue = escapedValueString ? parseInt(escapedValueString, 16) : -1; - var isInvalidExtendedEscape = false; - if (escapedValue < 0) { - error2(Diagnostics.Hexadecimal_digit_expected); - isInvalidExtendedEscape = true; - } - else if (escapedValue > 1114111) { - error2(Diagnostics.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive); - isInvalidExtendedEscape = true; - } - if (pos >= end) { - error2(Diagnostics.Unexpected_end_of_text); - isInvalidExtendedEscape = true; - } - else if (text.charCodeAt(pos) === 125 /* closeBrace */) { - pos++; - } - else { - error2(Diagnostics.Unterminated_Unicode_escape_sequence); - isInvalidExtendedEscape = true; - } - if (isInvalidExtendedEscape) { - return ""; - } - return utf16EncodeAsString(escapedValue); - } - function peekUnicodeEscape() { - if (pos + 5 < end && text.charCodeAt(pos + 1) === 117 /* u */) { - var start3 = pos; - pos += 2; - var value = scanExactNumberOfHexDigits(4, - /*canHaveSeparators*/ - false); - pos = start3; - return value; - } - return -1; - } - function peekExtendedUnicodeEscape() { - if (codePointAt(text, pos + 1) === 117 /* u */ && codePointAt(text, pos + 2) === 123 /* openBrace */) { - var start3 = pos; - pos += 3; - var escapedValueString = scanMinimumNumberOfHexDigits(1, - /*canHaveSeparators*/ - false); - var escapedValue = escapedValueString ? parseInt(escapedValueString, 16) : -1; - pos = start3; - return escapedValue; - } - return -1; - } - function scanIdentifierParts() { - var result = ""; - var start3 = pos; - while (pos < end) { - var ch = codePointAt(text, pos); - if (isIdentifierPart(ch, languageVersion)) { - pos += charSize(ch); - } - else if (ch === 92 /* backslash */) { - ch = peekExtendedUnicodeEscape(); - if (ch >= 0 && isIdentifierPart(ch, languageVersion)) { - pos += 3; - tokenFlags |= 8 /* ExtendedUnicodeEscape */; - result += scanExtendedUnicodeEscape(); - start3 = pos; - continue; - } - ch = peekUnicodeEscape(); - if (!(ch >= 0 && isIdentifierPart(ch, languageVersion))) { - break; - } - tokenFlags |= 1024 /* UnicodeEscape */; - result += text.substring(start3, pos); - result += utf16EncodeAsString(ch); - pos += 6; - start3 = pos; - } - else { - break; - } - } - result += text.substring(start3, pos); - return result; - } - function getIdentifierToken() { - var len = tokenValue.length; - if (len >= 2 && len <= 12) { - var ch = tokenValue.charCodeAt(0); - if (ch >= 97 /* a */ && ch <= 122 /* z */) { - var keyword = textToKeyword.get(tokenValue); - if (keyword !== void 0) { - return token = keyword; - } - } - } - return token = 80 /* Identifier */; - } - function scanBinaryOrOctalDigits(base) { - var value = ""; - var separatorAllowed = false; - var isPreviousTokenSeparator = false; - while (true) { - var ch = text.charCodeAt(pos); - if (ch === 95 /* _ */) { - tokenFlags |= 512 /* ContainsSeparator */; - if (separatorAllowed) { - separatorAllowed = false; - isPreviousTokenSeparator = true; - } - else if (isPreviousTokenSeparator) { - error2(Diagnostics.Multiple_consecutive_numeric_separators_are_not_permitted, pos, 1); - } - else { - error2(Diagnostics.Numeric_separators_are_not_allowed_here, pos, 1); - } - pos++; - continue; - } - separatorAllowed = true; - if (!isDigit(ch) || ch - 48 /* _0 */ >= base) { - break; - } - value += text[pos]; - pos++; - isPreviousTokenSeparator = false; - } - if (text.charCodeAt(pos - 1) === 95 /* _ */) { - error2(Diagnostics.Numeric_separators_are_not_allowed_here, pos - 1, 1); - } - return value; - } - function checkBigIntSuffix() { - if (text.charCodeAt(pos) === 110 /* n */) { - tokenValue += "n"; - if (tokenFlags & 384 /* BinaryOrOctalSpecifier */) { - tokenValue = parsePseudoBigInt(tokenValue) + "n"; - } - pos++; - return 10 /* BigIntLiteral */; - } - else { - var numericValue = tokenFlags & 128 /* BinarySpecifier */ ? parseInt(tokenValue.slice(2), 2) : tokenFlags & 256 /* OctalSpecifier */ ? parseInt(tokenValue.slice(2), 8) : +tokenValue; - tokenValue = "" + numericValue; - return 9 /* NumericLiteral */; - } - } - function scan() { - fullStartPos = pos; - tokenFlags = 0 /* None */; - var asteriskSeen = false; - while (true) { - tokenStart = pos; - if (pos >= end) { - return token = 1 /* EndOfFileToken */; - } - var ch = codePointAt(text, pos); - if (pos === 0) { - if (ch === 65533 /* replacementCharacter */) { - error2(Diagnostics.File_appears_to_be_binary); - pos = end; - return token = 8 /* NonTextFileMarkerTrivia */; - } - if (ch === 35 /* hash */ && isShebangTrivia(text, pos)) { - pos = scanShebangTrivia(text, pos); - if (skipTrivia2) { - continue; - } - else { - return token = 6 /* ShebangTrivia */; - } - } - } - switch (ch) { - case 10 /* lineFeed */: - case 13 /* carriageReturn */: - tokenFlags |= 1 /* PrecedingLineBreak */; - if (skipTrivia2) { - pos++; - continue; - } - else { - if (ch === 13 /* carriageReturn */ && pos + 1 < end && text.charCodeAt(pos + 1) === 10 /* lineFeed */) { - pos += 2; - } - else { - pos++; - } - return token = 4 /* NewLineTrivia */; - } - case 9 /* tab */: - case 11 /* verticalTab */: - case 12 /* formFeed */: - case 32 /* space */: - case 160 /* nonBreakingSpace */: - case 5760 /* ogham */: - case 8192 /* enQuad */: - case 8193 /* emQuad */: - case 8194 /* enSpace */: - case 8195 /* emSpace */: - case 8196 /* threePerEmSpace */: - case 8197 /* fourPerEmSpace */: - case 8198 /* sixPerEmSpace */: - case 8199 /* figureSpace */: - case 8200 /* punctuationSpace */: - case 8201 /* thinSpace */: - case 8202 /* hairSpace */: - case 8203 /* zeroWidthSpace */: - case 8239 /* narrowNoBreakSpace */: - case 8287 /* mathematicalSpace */: - case 12288 /* ideographicSpace */: - case 65279 /* byteOrderMark */: - if (skipTrivia2) { - pos++; - continue; - } - else { - while (pos < end && isWhiteSpaceSingleLine(text.charCodeAt(pos))) { - pos++; - } - return token = 5 /* WhitespaceTrivia */; - } - case 33 /* exclamation */: - if (text.charCodeAt(pos + 1) === 61 /* equals */) { - if (text.charCodeAt(pos + 2) === 61 /* equals */) { - return pos += 3, token = 38 /* ExclamationEqualsEqualsToken */; - } - return pos += 2, token = 36 /* ExclamationEqualsToken */; - } - pos++; - return token = 54 /* ExclamationToken */; - case 34 /* doubleQuote */: - case 39 /* singleQuote */: - tokenValue = scanString(); - return token = 11 /* StringLiteral */; - case 96 /* backtick */: - return token = scanTemplateAndSetTokenValue( - /*shouldEmitInvalidEscapeError*/ - false); - case 37 /* percent */: - if (text.charCodeAt(pos + 1) === 61 /* equals */) { - return pos += 2, token = 70 /* PercentEqualsToken */; - } - pos++; - return token = 45 /* PercentToken */; - case 38 /* ampersand */: - if (text.charCodeAt(pos + 1) === 38 /* ampersand */) { - if (text.charCodeAt(pos + 2) === 61 /* equals */) { - return pos += 3, token = 77 /* AmpersandAmpersandEqualsToken */; - } - return pos += 2, token = 56 /* AmpersandAmpersandToken */; - } - if (text.charCodeAt(pos + 1) === 61 /* equals */) { - return pos += 2, token = 74 /* AmpersandEqualsToken */; - } - pos++; - return token = 51 /* AmpersandToken */; - case 40 /* openParen */: - pos++; - return token = 21 /* OpenParenToken */; - case 41 /* closeParen */: - pos++; - return token = 22 /* CloseParenToken */; - case 42 /* asterisk */: - if (text.charCodeAt(pos + 1) === 61 /* equals */) { - return pos += 2, token = 67 /* AsteriskEqualsToken */; - } - if (text.charCodeAt(pos + 1) === 42 /* asterisk */) { - if (text.charCodeAt(pos + 2) === 61 /* equals */) { - return pos += 3, token = 68 /* AsteriskAsteriskEqualsToken */; - } - return pos += 2, token = 43 /* AsteriskAsteriskToken */; - } - pos++; - if (inJSDocType && !asteriskSeen && tokenFlags & 1 /* PrecedingLineBreak */) { - asteriskSeen = true; - continue; - } - return token = 42 /* AsteriskToken */; - case 43 /* plus */: - if (text.charCodeAt(pos + 1) === 43 /* plus */) { - return pos += 2, token = 46 /* PlusPlusToken */; - } - if (text.charCodeAt(pos + 1) === 61 /* equals */) { - return pos += 2, token = 65 /* PlusEqualsToken */; - } - pos++; - return token = 40 /* PlusToken */; - case 44 /* comma */: - pos++; - return token = 28 /* CommaToken */; - case 45 /* minus */: - if (text.charCodeAt(pos + 1) === 45 /* minus */) { - return pos += 2, token = 47 /* MinusMinusToken */; - } - if (text.charCodeAt(pos + 1) === 61 /* equals */) { - return pos += 2, token = 66 /* MinusEqualsToken */; - } - pos++; - return token = 41 /* MinusToken */; - case 46 /* dot */: - if (isDigit(text.charCodeAt(pos + 1))) { - scanNumber(); - return token = 9 /* NumericLiteral */; - } - if (text.charCodeAt(pos + 1) === 46 /* dot */ && text.charCodeAt(pos + 2) === 46 /* dot */) { - return pos += 3, token = 26 /* DotDotDotToken */; - } - pos++; - return token = 25 /* DotToken */; - case 47 /* slash */: - if (text.charCodeAt(pos + 1) === 47 /* slash */) { - pos += 2; - while (pos < end) { - if (isLineBreak(text.charCodeAt(pos))) { - break; - } - pos++; - } - commentDirectives = appendIfCommentDirective(commentDirectives, text.slice(tokenStart, pos), commentDirectiveRegExSingleLine, tokenStart); - if (skipTrivia2) { - continue; - } - else { - return token = 2 /* SingleLineCommentTrivia */; - } - } - if (text.charCodeAt(pos + 1) === 42 /* asterisk */) { - pos += 2; - if (text.charCodeAt(pos) === 42 /* asterisk */ && text.charCodeAt(pos + 1) !== 47 /* slash */) { - tokenFlags |= 2 /* PrecedingJSDocComment */; - } - var commentClosed = false; - var lastLineStart = tokenStart; - while (pos < end) { - var ch2 = text.charCodeAt(pos); - if (ch2 === 42 /* asterisk */ && text.charCodeAt(pos + 1) === 47 /* slash */) { - pos += 2; - commentClosed = true; - break; - } - pos++; - if (isLineBreak(ch2)) { - lastLineStart = pos; - tokenFlags |= 1 /* PrecedingLineBreak */; - } - } - commentDirectives = appendIfCommentDirective(commentDirectives, text.slice(lastLineStart, pos), commentDirectiveRegExMultiLine, lastLineStart); - if (!commentClosed) { - error2(Diagnostics.Asterisk_Slash_expected); - } - if (skipTrivia2) { - continue; - } - else { - if (!commentClosed) { - tokenFlags |= 4 /* Unterminated */; - } - return token = 3 /* MultiLineCommentTrivia */; - } - } - if (text.charCodeAt(pos + 1) === 61 /* equals */) { - return pos += 2, token = 69 /* SlashEqualsToken */; - } - pos++; - return token = 44 /* SlashToken */; - case 48 /* _0 */: - if (pos + 2 < end && (text.charCodeAt(pos + 1) === 88 /* X */ || text.charCodeAt(pos + 1) === 120 /* x */)) { - pos += 2; - tokenValue = scanMinimumNumberOfHexDigits(1, - /*canHaveSeparators*/ - true); - if (!tokenValue) { - error2(Diagnostics.Hexadecimal_digit_expected); - tokenValue = "0"; - } - tokenValue = "0x" + tokenValue; - tokenFlags |= 64 /* HexSpecifier */; - return token = checkBigIntSuffix(); - } - else if (pos + 2 < end && (text.charCodeAt(pos + 1) === 66 /* B */ || text.charCodeAt(pos + 1) === 98 /* b */)) { - pos += 2; - tokenValue = scanBinaryOrOctalDigits( - /* base */ - 2); - if (!tokenValue) { - error2(Diagnostics.Binary_digit_expected); - tokenValue = "0"; - } - tokenValue = "0b" + tokenValue; - tokenFlags |= 128 /* BinarySpecifier */; - return token = checkBigIntSuffix(); - } - else if (pos + 2 < end && (text.charCodeAt(pos + 1) === 79 /* O */ || text.charCodeAt(pos + 1) === 111 /* o */)) { - pos += 2; - tokenValue = scanBinaryOrOctalDigits( - /* base */ - 8); - if (!tokenValue) { - error2(Diagnostics.Octal_digit_expected); - tokenValue = "0"; - } - tokenValue = "0o" + tokenValue; - tokenFlags |= 256 /* OctalSpecifier */; - return token = checkBigIntSuffix(); - } - case 49 /* _1 */: - case 50 /* _2 */: - case 51 /* _3 */: - case 52 /* _4 */: - case 53 /* _5 */: - case 54 /* _6 */: - case 55 /* _7 */: - case 56 /* _8 */: - case 57 /* _9 */: - return token = scanNumber(); - case 58 /* colon */: - pos++; - return token = 59 /* ColonToken */; - case 59 /* semicolon */: - pos++; - return token = 27 /* SemicolonToken */; - case 60 /* lessThan */: - if (isConflictMarkerTrivia(text, pos)) { - pos = scanConflictMarkerTrivia(text, pos, error2); - if (skipTrivia2) { - continue; - } - else { - return token = 7 /* ConflictMarkerTrivia */; - } - } - if (text.charCodeAt(pos + 1) === 60 /* lessThan */) { - if (text.charCodeAt(pos + 2) === 61 /* equals */) { - return pos += 3, token = 71 /* LessThanLessThanEqualsToken */; - } - return pos += 2, token = 48 /* LessThanLessThanToken */; - } - if (text.charCodeAt(pos + 1) === 61 /* equals */) { - return pos += 2, token = 33 /* LessThanEqualsToken */; - } - if (languageVariant === 1 /* JSX */ && text.charCodeAt(pos + 1) === 47 /* slash */ && text.charCodeAt(pos + 2) !== 42 /* asterisk */) { - return pos += 2, token = 31 /* LessThanSlashToken */; - } - pos++; - return token = 30 /* LessThanToken */; - case 61 /* equals */: - if (isConflictMarkerTrivia(text, pos)) { - pos = scanConflictMarkerTrivia(text, pos, error2); - if (skipTrivia2) { - continue; - } - else { - return token = 7 /* ConflictMarkerTrivia */; - } - } - if (text.charCodeAt(pos + 1) === 61 /* equals */) { - if (text.charCodeAt(pos + 2) === 61 /* equals */) { - return pos += 3, token = 37 /* EqualsEqualsEqualsToken */; - } - return pos += 2, token = 35 /* EqualsEqualsToken */; - } - if (text.charCodeAt(pos + 1) === 62 /* greaterThan */) { - return pos += 2, token = 39 /* EqualsGreaterThanToken */; - } - pos++; - return token = 64 /* EqualsToken */; - case 62 /* greaterThan */: - if (isConflictMarkerTrivia(text, pos)) { - pos = scanConflictMarkerTrivia(text, pos, error2); - if (skipTrivia2) { - continue; - } - else { - return token = 7 /* ConflictMarkerTrivia */; - } - } - pos++; - return token = 32 /* GreaterThanToken */; - case 63 /* question */: - if (text.charCodeAt(pos + 1) === 46 /* dot */ && !isDigit(text.charCodeAt(pos + 2))) { - return pos += 2, token = 29 /* QuestionDotToken */; - } - if (text.charCodeAt(pos + 1) === 63 /* question */) { - if (text.charCodeAt(pos + 2) === 61 /* equals */) { - return pos += 3, token = 78 /* QuestionQuestionEqualsToken */; - } - return pos += 2, token = 61 /* QuestionQuestionToken */; - } - pos++; - return token = 58 /* QuestionToken */; - case 91 /* openBracket */: - pos++; - return token = 23 /* OpenBracketToken */; - case 93 /* closeBracket */: - pos++; - return token = 24 /* CloseBracketToken */; - case 94 /* caret */: - if (text.charCodeAt(pos + 1) === 61 /* equals */) { - return pos += 2, token = 79 /* CaretEqualsToken */; - } - pos++; - return token = 53 /* CaretToken */; - case 123 /* openBrace */: - pos++; - return token = 19 /* OpenBraceToken */; - case 124 /* bar */: - if (isConflictMarkerTrivia(text, pos)) { - pos = scanConflictMarkerTrivia(text, pos, error2); - if (skipTrivia2) { - continue; - } - else { - return token = 7 /* ConflictMarkerTrivia */; - } - } - if (text.charCodeAt(pos + 1) === 124 /* bar */) { - if (text.charCodeAt(pos + 2) === 61 /* equals */) { - return pos += 3, token = 76 /* BarBarEqualsToken */; - } - return pos += 2, token = 57 /* BarBarToken */; - } - if (text.charCodeAt(pos + 1) === 61 /* equals */) { - return pos += 2, token = 75 /* BarEqualsToken */; - } - pos++; - return token = 52 /* BarToken */; - case 125 /* closeBrace */: - pos++; - return token = 20 /* CloseBraceToken */; - case 126 /* tilde */: - pos++; - return token = 55 /* TildeToken */; - case 64 /* at */: - pos++; - return token = 60 /* AtToken */; - case 92 /* backslash */: - var extendedCookedChar = peekExtendedUnicodeEscape(); - if (extendedCookedChar >= 0 && isIdentifierStart(extendedCookedChar, languageVersion)) { - pos += 3; - tokenFlags |= 8 /* ExtendedUnicodeEscape */; - tokenValue = scanExtendedUnicodeEscape() + scanIdentifierParts(); - return token = getIdentifierToken(); - } - var cookedChar = peekUnicodeEscape(); - if (cookedChar >= 0 && isIdentifierStart(cookedChar, languageVersion)) { - pos += 6; - tokenFlags |= 1024 /* UnicodeEscape */; - tokenValue = String.fromCharCode(cookedChar) + scanIdentifierParts(); - return token = getIdentifierToken(); - } - error2(Diagnostics.Invalid_character); - pos++; - return token = 0 /* Unknown */; - case 35 /* hash */: - if (pos !== 0 && text[pos + 1] === "!") { - error2(Diagnostics.can_only_be_used_at_the_start_of_a_file); - pos++; - return token = 0 /* Unknown */; - } - var charAfterHash = codePointAt(text, pos + 1); - if (charAfterHash === 92 /* backslash */) { - pos++; - var extendedCookedChar2 = peekExtendedUnicodeEscape(); - if (extendedCookedChar2 >= 0 && isIdentifierStart(extendedCookedChar2, languageVersion)) { - pos += 3; - tokenFlags |= 8 /* ExtendedUnicodeEscape */; - tokenValue = "#" + scanExtendedUnicodeEscape() + scanIdentifierParts(); - return token = 81 /* PrivateIdentifier */; - } - var cookedChar2 = peekUnicodeEscape(); - if (cookedChar2 >= 0 && isIdentifierStart(cookedChar2, languageVersion)) { - pos += 6; - tokenFlags |= 1024 /* UnicodeEscape */; - tokenValue = "#" + String.fromCharCode(cookedChar2) + scanIdentifierParts(); - return token = 81 /* PrivateIdentifier */; - } - pos--; - } - if (isIdentifierStart(charAfterHash, languageVersion)) { - pos++; - scanIdentifier(charAfterHash, languageVersion); - } - else { - tokenValue = "#"; - error2(Diagnostics.Invalid_character, pos++, charSize(ch)); - } - return token = 81 /* PrivateIdentifier */; - default: - var identifierKind = scanIdentifier(ch, languageVersion); - if (identifierKind) { - return token = identifierKind; - } - else if (isWhiteSpaceSingleLine(ch)) { - pos += charSize(ch); - continue; - } - else if (isLineBreak(ch)) { - tokenFlags |= 1 /* PrecedingLineBreak */; - pos += charSize(ch); - continue; - } - var size = charSize(ch); - error2(Diagnostics.Invalid_character, pos, size); - pos += size; - return token = 0 /* Unknown */; - } - } - } - function reScanInvalidIdentifier() { - Debug.assert(token === 0 /* Unknown */, "'reScanInvalidIdentifier' should only be called when the current token is 'SyntaxKind.Unknown'."); - pos = tokenStart = fullStartPos; - tokenFlags = 0; - var ch = codePointAt(text, pos); - var identifierKind = scanIdentifier(ch, 99 /* ESNext */); - if (identifierKind) { - return token = identifierKind; - } - pos += charSize(ch); - return token; - } - function scanIdentifier(startCharacter, languageVersion2) { - var ch = startCharacter; - if (isIdentifierStart(ch, languageVersion2)) { - pos += charSize(ch); - while (pos < end && isIdentifierPart(ch = codePointAt(text, pos), languageVersion2)) - pos += charSize(ch); - tokenValue = text.substring(tokenStart, pos); - if (ch === 92 /* backslash */) { - tokenValue += scanIdentifierParts(); - } - return getIdentifierToken(); - } - } - function reScanGreaterToken() { - if (token === 32 /* GreaterThanToken */) { - if (text.charCodeAt(pos) === 62 /* greaterThan */) { - if (text.charCodeAt(pos + 1) === 62 /* greaterThan */) { - if (text.charCodeAt(pos + 2) === 61 /* equals */) { - return pos += 3, token = 73 /* GreaterThanGreaterThanGreaterThanEqualsToken */; - } - return pos += 2, token = 50 /* GreaterThanGreaterThanGreaterThanToken */; - } - if (text.charCodeAt(pos + 1) === 61 /* equals */) { - return pos += 2, token = 72 /* GreaterThanGreaterThanEqualsToken */; - } - pos++; - return token = 49 /* GreaterThanGreaterThanToken */; - } - if (text.charCodeAt(pos) === 61 /* equals */) { - pos++; - return token = 34 /* GreaterThanEqualsToken */; - } - } - return token; - } - function reScanAsteriskEqualsToken() { - Debug.assert(token === 67 /* AsteriskEqualsToken */, "'reScanAsteriskEqualsToken' should only be called on a '*='"); - pos = tokenStart + 1; - return token = 64 /* EqualsToken */; - } - function reScanSlashToken() { - if (token === 44 /* SlashToken */ || token === 69 /* SlashEqualsToken */) { - var p = tokenStart + 1; - var inEscape = false; - var inCharacterClass = false; - while (true) { - if (p >= end) { - tokenFlags |= 4 /* Unterminated */; - error2(Diagnostics.Unterminated_regular_expression_literal); - break; - } - var ch = text.charCodeAt(p); - if (isLineBreak(ch)) { - tokenFlags |= 4 /* Unterminated */; - error2(Diagnostics.Unterminated_regular_expression_literal); - break; - } - if (inEscape) { - inEscape = false; - } - else if (ch === 47 /* slash */ && !inCharacterClass) { - p++; - break; - } - else if (ch === 91 /* openBracket */) { - inCharacterClass = true; - } - else if (ch === 92 /* backslash */) { - inEscape = true; - } - else if (ch === 93 /* closeBracket */) { - inCharacterClass = false; - } - p++; - } - while (p < end && isIdentifierPart(text.charCodeAt(p), languageVersion)) { - p++; - } - pos = p; - tokenValue = text.substring(tokenStart, pos); - token = 14 /* RegularExpressionLiteral */; - } - return token; - } - function appendIfCommentDirective(commentDirectives2, text2, commentDirectiveRegEx, lineStart) { - var type = getDirectiveFromComment(trimStringStart(text2), commentDirectiveRegEx); - if (type === void 0) { - return commentDirectives2; - } - return append(commentDirectives2, { - range: { pos: lineStart, end: pos }, - type: type - }); - } - function getDirectiveFromComment(text2, commentDirectiveRegEx) { - var match = commentDirectiveRegEx.exec(text2); - if (!match) { - return void 0; - } - switch (match[1]) { - case "ts-expect-error": - return 0 /* ExpectError */; - case "ts-ignore": - return 1 /* Ignore */; - } - return void 0; - } - function reScanTemplateToken(isTaggedTemplate) { - pos = tokenStart; - return token = scanTemplateAndSetTokenValue(!isTaggedTemplate); - } - function reScanTemplateHeadOrNoSubstitutionTemplate() { - pos = tokenStart; - return token = scanTemplateAndSetTokenValue( - /*shouldEmitInvalidEscapeError*/ - true); - } - function reScanJsxToken(allowMultilineJsxText) { - if (allowMultilineJsxText === void 0) { allowMultilineJsxText = true; } - pos = tokenStart = fullStartPos; - return token = scanJsxToken(allowMultilineJsxText); - } - function reScanLessThanToken() { - if (token === 48 /* LessThanLessThanToken */) { - pos = tokenStart + 1; - return token = 30 /* LessThanToken */; - } - return token; - } - function reScanHashToken() { - if (token === 81 /* PrivateIdentifier */) { - pos = tokenStart + 1; - return token = 63 /* HashToken */; - } - return token; - } - function reScanQuestionToken() { - Debug.assert(token === 61 /* QuestionQuestionToken */, "'reScanQuestionToken' should only be called on a '??'"); - pos = tokenStart + 1; - return token = 58 /* QuestionToken */; - } - function scanJsxToken(allowMultilineJsxText) { - if (allowMultilineJsxText === void 0) { allowMultilineJsxText = true; } - fullStartPos = tokenStart = pos; - if (pos >= end) { - return token = 1 /* EndOfFileToken */; - } - var char = text.charCodeAt(pos); - if (char === 60 /* lessThan */) { - if (text.charCodeAt(pos + 1) === 47 /* slash */) { - pos += 2; - return token = 31 /* LessThanSlashToken */; - } - pos++; - return token = 30 /* LessThanToken */; - } - if (char === 123 /* openBrace */) { - pos++; - return token = 19 /* OpenBraceToken */; - } - var firstNonWhitespace = 0; - while (pos < end) { - char = text.charCodeAt(pos); - if (char === 123 /* openBrace */) { - break; - } - if (char === 60 /* lessThan */) { - if (isConflictMarkerTrivia(text, pos)) { - pos = scanConflictMarkerTrivia(text, pos, error2); - return token = 7 /* ConflictMarkerTrivia */; - } - break; - } - if (char === 62 /* greaterThan */) { - error2(Diagnostics.Unexpected_token_Did_you_mean_or_gt, pos, 1); - } - if (char === 125 /* closeBrace */) { - error2(Diagnostics.Unexpected_token_Did_you_mean_or_rbrace, pos, 1); - } - if (isLineBreak(char) && firstNonWhitespace === 0) { - firstNonWhitespace = -1; - } - else if (!allowMultilineJsxText && isLineBreak(char) && firstNonWhitespace > 0) { - break; - } - else if (!isWhiteSpaceLike(char)) { - firstNonWhitespace = pos; - } - pos++; - } - tokenValue = text.substring(fullStartPos, pos); - return firstNonWhitespace === -1 ? 13 /* JsxTextAllWhiteSpaces */ : 12 /* JsxText */; - } - function scanJsxIdentifier() { - if (tokenIsIdentifierOrKeyword(token)) { - while (pos < end) { - var ch = text.charCodeAt(pos); - if (ch === 45 /* minus */) { - tokenValue += "-"; - pos++; - continue; - } - var oldPos = pos; - tokenValue += scanIdentifierParts(); - if (pos === oldPos) { - break; - } - } - return getIdentifierToken(); - } - return token; - } - function scanJsxAttributeValue() { - fullStartPos = pos; - switch (text.charCodeAt(pos)) { - case 34 /* doubleQuote */: - case 39 /* singleQuote */: - tokenValue = scanString( - /*jsxAttributeString*/ - true); - return token = 11 /* StringLiteral */; - default: - return scan(); - } - } - function reScanJsxAttributeValue() { - pos = tokenStart = fullStartPos; - return scanJsxAttributeValue(); - } - function scanJSDocCommentTextToken(inBackticks) { - fullStartPos = tokenStart = pos; - tokenFlags = 0 /* None */; - if (pos >= end) { - return token = 1 /* EndOfFileToken */; - } - for (var ch = text.charCodeAt(pos); pos < end && (!isLineBreak(ch) && ch !== 96 /* backtick */); ch = codePointAt(text, ++pos)) { - if (!inBackticks) { - if (ch === 123 /* openBrace */) { - break; - } - else if (ch === 64 /* at */ && pos - 1 >= 0 && isWhiteSpaceSingleLine(text.charCodeAt(pos - 1)) && !(pos + 1 < end && isWhiteSpaceLike(text.charCodeAt(pos + 1)))) { - break; - } - } - } - if (pos === tokenStart) { - return scanJsDocToken(); - } - tokenValue = text.substring(tokenStart, pos); - return token = 82 /* JSDocCommentTextToken */; - } - function scanJsDocToken() { - fullStartPos = tokenStart = pos; - tokenFlags = 0 /* None */; - if (pos >= end) { - return token = 1 /* EndOfFileToken */; - } - var ch = codePointAt(text, pos); - pos += charSize(ch); - switch (ch) { - case 9 /* tab */: - case 11 /* verticalTab */: - case 12 /* formFeed */: - case 32 /* space */: - while (pos < end && isWhiteSpaceSingleLine(text.charCodeAt(pos))) { - pos++; - } - return token = 5 /* WhitespaceTrivia */; - case 64 /* at */: - return token = 60 /* AtToken */; - case 13 /* carriageReturn */: - if (text.charCodeAt(pos) === 10 /* lineFeed */) { - pos++; - } - case 10 /* lineFeed */: - tokenFlags |= 1 /* PrecedingLineBreak */; - return token = 4 /* NewLineTrivia */; - case 42 /* asterisk */: - return token = 42 /* AsteriskToken */; - case 123 /* openBrace */: - return token = 19 /* OpenBraceToken */; - case 125 /* closeBrace */: - return token = 20 /* CloseBraceToken */; - case 91 /* openBracket */: - return token = 23 /* OpenBracketToken */; - case 93 /* closeBracket */: - return token = 24 /* CloseBracketToken */; - case 60 /* lessThan */: - return token = 30 /* LessThanToken */; - case 62 /* greaterThan */: - return token = 32 /* GreaterThanToken */; - case 61 /* equals */: - return token = 64 /* EqualsToken */; - case 44 /* comma */: - return token = 28 /* CommaToken */; - case 46 /* dot */: - return token = 25 /* DotToken */; - case 96 /* backtick */: - return token = 62 /* BacktickToken */; - case 35 /* hash */: - return token = 63 /* HashToken */; - case 92 /* backslash */: - pos--; - var extendedCookedChar = peekExtendedUnicodeEscape(); - if (extendedCookedChar >= 0 && isIdentifierStart(extendedCookedChar, languageVersion)) { - pos += 3; - tokenFlags |= 8 /* ExtendedUnicodeEscape */; - tokenValue = scanExtendedUnicodeEscape() + scanIdentifierParts(); - return token = getIdentifierToken(); - } - var cookedChar = peekUnicodeEscape(); - if (cookedChar >= 0 && isIdentifierStart(cookedChar, languageVersion)) { - pos += 6; - tokenFlags |= 1024 /* UnicodeEscape */; - tokenValue = String.fromCharCode(cookedChar) + scanIdentifierParts(); - return token = getIdentifierToken(); - } - pos++; - return token = 0 /* Unknown */; - } - if (isIdentifierStart(ch, languageVersion)) { - var char = ch; - while (pos < end && isIdentifierPart(char = codePointAt(text, pos), languageVersion) || text.charCodeAt(pos) === 45 /* minus */) - pos += charSize(char); - tokenValue = text.substring(tokenStart, pos); - if (char === 92 /* backslash */) { - tokenValue += scanIdentifierParts(); - } - return token = getIdentifierToken(); - } - else { - return token = 0 /* Unknown */; - } - } - function speculationHelper(callback, isLookahead) { - var savePos = pos; - var saveStartPos = fullStartPos; - var saveTokenPos = tokenStart; - var saveToken = token; - var saveTokenValue = tokenValue; - var saveTokenFlags = tokenFlags; - var result = callback(); - if (!result || isLookahead) { - pos = savePos; - fullStartPos = saveStartPos; - tokenStart = saveTokenPos; - token = saveToken; - tokenValue = saveTokenValue; - tokenFlags = saveTokenFlags; - } - return result; - } - function scanRange(start3, length3, callback) { - var saveEnd = end; - var savePos = pos; - var saveStartPos = fullStartPos; - var saveTokenPos = tokenStart; - var saveToken = token; - var saveTokenValue = tokenValue; - var saveTokenFlags = tokenFlags; - var saveErrorExpectations = commentDirectives; - setText(text, start3, length3); - var result = callback(); - end = saveEnd; - pos = savePos; - fullStartPos = saveStartPos; - tokenStart = saveTokenPos; - token = saveToken; - tokenValue = saveTokenValue; - tokenFlags = saveTokenFlags; - commentDirectives = saveErrorExpectations; - return result; - } - function lookAhead(callback) { - return speculationHelper(callback, - /*isLookahead*/ - true); - } - function tryScan(callback) { - return speculationHelper(callback, - /*isLookahead*/ - false); - } - function getText() { - return text; - } - function clearCommentDirectives() { - commentDirectives = void 0; - } - function setText(newText, start3, length3) { - text = newText || ""; - end = length3 === void 0 ? text.length : start3 + length3; - resetTokenState(start3 || 0); - } - function setOnError(errorCallback) { - onError = errorCallback; - } - function setScriptTarget(scriptTarget) { - languageVersion = scriptTarget; - } - function setLanguageVariant(variant) { - languageVariant = variant; - } - function resetTokenState(position) { - Debug.assert(position >= 0); - pos = position; - fullStartPos = position; - tokenStart = position; - token = 0 /* Unknown */; - tokenValue = void 0; - tokenFlags = 0 /* None */; - } - function setInJSDocType(inType) { - inJSDocType += inType ? 1 : -1; - } -} -var codePointAt = String.prototype.codePointAt ? function (s, i) { return s.codePointAt(i); } : function codePointAt2(str, i) { - var size = str.length; - if (i < 0 || i >= size) { - return void 0; - } - var first2 = str.charCodeAt(i); - if (first2 >= 55296 && first2 <= 56319 && size > i + 1) { - var second = str.charCodeAt(i + 1); - if (second >= 56320 && second <= 57343) { - return (first2 - 55296) * 1024 + second - 56320 + 65536; - } - } - return first2; -}; -function charSize(ch) { - if (ch >= 65536) { - return 2; - } - return 1; -} -function utf16EncodeAsStringFallback(codePoint) { - Debug.assert(0 <= codePoint && codePoint <= 1114111); - if (codePoint <= 65535) { - return String.fromCharCode(codePoint); - } - var codeUnit1 = Math.floor((codePoint - 65536) / 1024) + 55296; - var codeUnit2 = (codePoint - 65536) % 1024 + 56320; - return String.fromCharCode(codeUnit1, codeUnit2); -} -var utf16EncodeAsStringWorker = String.fromCodePoint ? function (codePoint) { return String.fromCodePoint(codePoint); } : utf16EncodeAsStringFallback; -function utf16EncodeAsString(codePoint) { - return utf16EncodeAsStringWorker(codePoint); -} -// src/compiler/utilitiesPublic.ts -function isExternalModuleNameRelative(moduleName) { - return pathIsRelative(moduleName) || isRootedDiskPath(moduleName); -} -function sortAndDeduplicateDiagnostics(diagnostics) { - return sortAndDeduplicate(diagnostics, compareDiagnostics); -} -function getDefaultLibFileName(options) { - switch (getEmitScriptTarget(options)) { - case 99 /* ESNext */: - return "lib.esnext.full.d.ts"; - case 9 /* ES2022 */: - return "lib.es2022.full.d.ts"; - case 8 /* ES2021 */: - return "lib.es2021.full.d.ts"; - case 7 /* ES2020 */: - return "lib.es2020.full.d.ts"; - case 6 /* ES2019 */: - return "lib.es2019.full.d.ts"; - case 5 /* ES2018 */: - return "lib.es2018.full.d.ts"; - case 4 /* ES2017 */: - return "lib.es2017.full.d.ts"; - case 3 /* ES2016 */: - return "lib.es2016.full.d.ts"; - case 2 /* ES2015 */: - return "lib.es6.d.ts"; - default: - return "lib.d.ts"; - } -} -function textSpanEnd(span) { - return span.start + span.length; -} -function textSpanIsEmpty(span) { - return span.length === 0; -} -function textSpanContainsPosition(span, position) { - return position >= span.start && position < textSpanEnd(span); -} -function textRangeContainsPositionInclusive(span, position) { - return position >= span.pos && position <= span.end; -} -function textSpanContainsTextSpan(span, other) { - return other.start >= span.start && textSpanEnd(other) <= textSpanEnd(span); -} -function textSpanOverlapsWith(span, other) { - return textSpanOverlap(span, other) !== void 0; -} -function textSpanOverlap(span1, span2) { - var overlap = textSpanIntersection(span1, span2); - return overlap && overlap.length === 0 ? void 0 : overlap; -} -function textSpanIntersectsWithTextSpan(span, other) { - return decodedTextSpanIntersectsWith(span.start, span.length, other.start, other.length); -} -function textSpanIntersectsWith(span, start2, length2) { - return decodedTextSpanIntersectsWith(span.start, span.length, start2, length2); -} -function decodedTextSpanIntersectsWith(start1, length1, start2, length2) { - var end1 = start1 + length1; - var end2 = start2 + length2; - return start2 <= end1 && end2 >= start1; -} -function textSpanIntersectsWithPosition(span, position) { - return position <= textSpanEnd(span) && position >= span.start; -} -function textSpanIntersection(span1, span2) { - var start2 = Math.max(span1.start, span2.start); - var end = Math.min(textSpanEnd(span1), textSpanEnd(span2)); - return start2 <= end ? createTextSpanFromBounds(start2, end) : void 0; -} -function createTextSpan(start2, length2) { - if (start2 < 0) { - throw new Error("start < 0"); - } - if (length2 < 0) { - throw new Error("length < 0"); - } - return { start: start2, length: length2 }; -} -function createTextSpanFromBounds(start2, end) { - return createTextSpan(start2, end - start2); -} -function textChangeRangeNewSpan(range) { - return createTextSpan(range.span.start, range.newLength); -} -function textChangeRangeIsUnchanged(range) { - return textSpanIsEmpty(range.span) && range.newLength === 0; -} -function createTextChangeRange(span, newLength) { - if (newLength < 0) { - throw new Error("newLength < 0"); - } - return { span: span, newLength: newLength }; -} -var unchangedTextChangeRange = createTextChangeRange(createTextSpan(0, 0), 0); -function collapseTextChangeRangesAcrossMultipleVersions(changes) { - if (changes.length === 0) { - return unchangedTextChangeRange; - } - if (changes.length === 1) { - return changes[0]; - } - var change0 = changes[0]; - var oldStartN = change0.span.start; - var oldEndN = textSpanEnd(change0.span); - var newEndN = oldStartN + change0.newLength; - for (var i = 1; i < changes.length; i++) { - var nextChange = changes[i]; - var oldStart1 = oldStartN; - var oldEnd1 = oldEndN; - var newEnd1 = newEndN; - var oldStart2 = nextChange.span.start; - var oldEnd2 = textSpanEnd(nextChange.span); - var newEnd2 = oldStart2 + nextChange.newLength; - oldStartN = Math.min(oldStart1, oldStart2); - oldEndN = Math.max(oldEnd1, oldEnd1 + (oldEnd2 - newEnd1)); - newEndN = Math.max(newEnd2, newEnd2 + (newEnd1 - oldEnd2)); - } - return createTextChangeRange(createTextSpanFromBounds(oldStartN, oldEndN), - /*newLength*/ - newEndN - oldStartN); -} -function getTypeParameterOwner(d) { - if (d && d.kind === 168 /* TypeParameter */) { - for (var current = d; current; current = current.parent) { - if (isFunctionLike(current) || isClassLike(current) || current.kind === 264 /* InterfaceDeclaration */) { - return current; - } - } - } -} -function isParameterPropertyDeclaration(node, parent2) { - return isParameter(node) && hasSyntacticModifier(node, 16476 /* ParameterPropertyModifier */) && parent2.kind === 176 /* Constructor */; -} -function isEmptyBindingPattern(node) { - if (isBindingPattern(node)) { - return every(node.elements, isEmptyBindingElement); - } - return false; -} -function isEmptyBindingElement(node) { - if (isOmittedExpression(node)) { - return true; - } - return isEmptyBindingPattern(node.name); -} -function walkUpBindingElementsAndPatterns(binding) { - var node = binding.parent; - while (isBindingElement(node.parent)) { - node = node.parent.parent; - } - return node.parent; -} -function getCombinedFlags(node, getFlags) { - if (isBindingElement(node)) { - node = walkUpBindingElementsAndPatterns(node); - } - var flags = getFlags(node); - if (node.kind === 260 /* VariableDeclaration */) { - node = node.parent; - } - if (node && node.kind === 261 /* VariableDeclarationList */) { - flags |= getFlags(node); - node = node.parent; - } - if (node && node.kind === 243 /* VariableStatement */) { - flags |= getFlags(node); - } - return flags; -} -function getCombinedModifierFlags(node) { - return getCombinedFlags(node, getEffectiveModifierFlags); -} -function getCombinedNodeFlagsAlwaysIncludeJSDoc(node) { - return getCombinedFlags(node, getEffectiveModifierFlagsAlwaysIncludeJSDoc); -} -function getCombinedNodeFlags(node) { - return getCombinedFlags(node, getNodeFlags); -} -function getNodeFlags(node) { - return node.flags; -} -var supportedLocaleDirectories = ["cs", "de", "es", "fr", "it", "ja", "ko", "pl", "pt-br", "ru", "tr", "zh-cn", "zh-tw"]; -function validateLocaleAndSetLanguage(locale, sys2, errors) { - var lowerCaseLocale = locale.toLowerCase(); - var matchResult = /^([a-z]+)([_-]([a-z]+))?$/.exec(lowerCaseLocale); - if (!matchResult) { - if (errors) { - errors.push(createCompilerDiagnostic(Diagnostics.Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1, "en", "ja-jp")); - } - return; - } - var language = matchResult[1]; - var territory = matchResult[3]; - if (contains(supportedLocaleDirectories, lowerCaseLocale) && !trySetLanguageAndTerritory(language, territory, errors)) { - trySetLanguageAndTerritory(language, - /*territory*/ - void 0, errors); - } - setUILocale(locale); - function trySetLanguageAndTerritory(language2, territory2, errors2) { - var compilerFilePath = normalizePath(sys2.getExecutingFilePath()); - var containingDirectoryPath = getDirectoryPath(compilerFilePath); - var filePath = combinePaths(containingDirectoryPath, language2); - if (territory2) { - filePath = filePath + "-" + territory2; - } - filePath = sys2.resolvePath(combinePaths(filePath, "diagnosticMessages.generated.json")); - if (!sys2.fileExists(filePath)) { - return false; - } - var fileContents = ""; - try { - fileContents = sys2.readFile(filePath); - } - catch (e) { - if (errors2) { - errors2.push(createCompilerDiagnostic(Diagnostics.Unable_to_open_file_0, filePath)); - } - return false; - } - try { - setLocalizedDiagnosticMessages(JSON.parse(fileContents)); - } - catch (_t) { - if (errors2) { - errors2.push(createCompilerDiagnostic(Diagnostics.Corrupted_locale_file_0, filePath)); - } - return false; - } - return true; - } -} -function getOriginalNode(node, nodeTest) { - if (node) { - while (node.original !== void 0) { - node = node.original; - } - } - if (!node || !nodeTest) { - return node; - } - return nodeTest(node) ? node : void 0; -} -function findAncestor(node, callback) { - while (node) { - var result = callback(node); - if (result === "quit") { - return void 0; - } - else if (result) { - return node; - } - node = node.parent; - } - return void 0; -} -function isParseTreeNode(node) { - return (node.flags & 16 /* Synthesized */) === 0; -} -function getParseTreeNode(node, nodeTest) { - if (node === void 0 || isParseTreeNode(node)) { - return node; - } - node = node.original; - while (node) { - if (isParseTreeNode(node)) { - return !nodeTest || nodeTest(node) ? node : void 0; - } - node = node.original; - } -} -function escapeLeadingUnderscores(identifier) { - return identifier.length >= 2 && identifier.charCodeAt(0) === 95 /* _ */ && identifier.charCodeAt(1) === 95 /* _ */ ? "_" + identifier : identifier; -} -function unescapeLeadingUnderscores(identifier) { - var id = identifier; - return id.length >= 3 && id.charCodeAt(0) === 95 /* _ */ && id.charCodeAt(1) === 95 /* _ */ && id.charCodeAt(2) === 95 /* _ */ ? id.substr(1) : id; -} -function idText(identifierOrPrivateName) { - return unescapeLeadingUnderscores(identifierOrPrivateName.escapedText); -} -function identifierToKeywordKind(node) { - var token = stringToToken(node.escapedText); - return token ? tryCast(token, isKeyword) : void 0; -} -function symbolName(symbol) { - if (symbol.valueDeclaration && isPrivateIdentifierClassElementDeclaration(symbol.valueDeclaration)) { - return idText(symbol.valueDeclaration.name); - } - return unescapeLeadingUnderscores(symbol.escapedName); -} -function nameForNamelessJSDocTypedef(declaration) { - var hostNode = declaration.parent.parent; - if (!hostNode) { - return void 0; - } - if (isDeclaration(hostNode)) { - return getDeclarationIdentifier(hostNode); - } - switch (hostNode.kind) { - case 243 /* VariableStatement */: - if (hostNode.declarationList && hostNode.declarationList.declarations[0]) { - return getDeclarationIdentifier(hostNode.declarationList.declarations[0]); - } - break; - case 244 /* ExpressionStatement */: - var expr = hostNode.expression; - if (expr.kind === 226 /* BinaryExpression */ && expr.operatorToken.kind === 64 /* EqualsToken */) { - expr = expr.left; - } - switch (expr.kind) { - case 211 /* PropertyAccessExpression */: - return expr.name; - case 212 /* ElementAccessExpression */: - var arg = expr.argumentExpression; - if (isIdentifier(arg)) { - return arg; - } - } - break; - case 217 /* ParenthesizedExpression */: { - return getDeclarationIdentifier(hostNode.expression); - } - case 256 /* LabeledStatement */: { - if (isDeclaration(hostNode.statement) || isExpression(hostNode.statement)) { - return getDeclarationIdentifier(hostNode.statement); - } - break; - } - } -} -function getDeclarationIdentifier(node) { - var name = getNameOfDeclaration(node); - return name && isIdentifier(name) ? name : void 0; -} -function nodeHasName(statement, name) { - if (isNamedDeclaration(statement) && isIdentifier(statement.name) && idText(statement.name) === idText(name)) { - return true; - } - if (isVariableStatement(statement) && some(statement.declarationList.declarations, function (d) { return nodeHasName(d, name); })) { - return true; - } - return false; -} -function getNameOfJSDocTypedef(declaration) { - return declaration.name || nameForNamelessJSDocTypedef(declaration); -} -function isNamedDeclaration(node) { - return !!node.name; -} -function getNonAssignedNameOfDeclaration(declaration) { - switch (declaration.kind) { - case 80 /* Identifier */: - return declaration; - case 355 /* JSDocPropertyTag */: - case 348 /* JSDocParameterTag */: { - var name_4 = declaration.name; - if (name_4.kind === 166 /* QualifiedName */) { - return name_4.right; - } - break; - } - case 213 /* CallExpression */: - case 226 /* BinaryExpression */: { - var expr2 = declaration; - switch (getAssignmentDeclarationKind(expr2)) { - case 1 /* ExportsProperty */: - case 4 /* ThisProperty */: - case 5 /* Property */: - case 3 /* PrototypeProperty */: - return getElementOrPropertyAccessArgumentExpressionOrName(expr2.left); - case 7 /* ObjectDefinePropertyValue */: - case 8 /* ObjectDefinePropertyExports */: - case 9 /* ObjectDefinePrototypeProperty */: - return expr2.arguments[1]; - default: - return void 0; - } - } - case 353 /* JSDocTypedefTag */: - return getNameOfJSDocTypedef(declaration); - case 347 /* JSDocEnumTag */: - return nameForNamelessJSDocTypedef(declaration); - case 277 /* ExportAssignment */: { - var expression = declaration.expression; - return isIdentifier(expression) ? expression : void 0; - } - case 212 /* ElementAccessExpression */: - var expr = declaration; - if (isBindableStaticElementAccessExpression(expr)) { - return expr.argumentExpression; - } - } - return declaration.name; -} -function getNameOfDeclaration(declaration) { - if (declaration === void 0) - return void 0; - return getNonAssignedNameOfDeclaration(declaration) || (isFunctionExpression(declaration) || isArrowFunction(declaration) || isClassExpression(declaration) ? getAssignedName(declaration) : void 0); -} -function getAssignedName(node) { - if (!node.parent) { - return void 0; - } - else if (isPropertyAssignment(node.parent) || isBindingElement(node.parent)) { - return node.parent.name; - } - else if (isBinaryExpression(node.parent) && node === node.parent.right) { - if (isIdentifier(node.parent.left)) { - return node.parent.left; - } - else if (isAccessExpression(node.parent.left)) { - return getElementOrPropertyAccessArgumentExpressionOrName(node.parent.left); - } - } - else if (isVariableDeclaration(node.parent) && isIdentifier(node.parent.name)) { - return node.parent.name; - } -} -function getDecorators(node) { - if (hasDecorators(node)) { - return filter(node.modifiers, isDecorator); - } -} -function getModifiers(node) { - if (hasSyntacticModifier(node, 126975 /* Modifier */)) { - return filter(node.modifiers, isModifier); - } -} -function getJSDocParameterTagsWorker(param, noCache) { - if (param.name) { - if (isIdentifier(param.name)) { - var name_5 = param.name.escapedText; - return getJSDocTagsWorker(param.parent, noCache).filter(function (tag) { return isJSDocParameterTag(tag) && isIdentifier(tag.name) && tag.name.escapedText === name_5; }); - } - else { - var i = param.parent.parameters.indexOf(param); - Debug.assert(i > -1, "Parameters should always be in their parents' parameter list"); - var paramTags = getJSDocTagsWorker(param.parent, noCache).filter(isJSDocParameterTag); - if (i < paramTags.length) { - return [paramTags[i]]; - } - } - } - return emptyArray; -} -function getJSDocParameterTags(param) { - return getJSDocParameterTagsWorker(param, - /*noCache*/ - false); -} -function getJSDocParameterTagsNoCache(param) { - return getJSDocParameterTagsWorker(param, - /*noCache*/ - true); -} -function getJSDocTypeParameterTagsWorker(param, noCache) { - var name = param.name.escapedText; - return getJSDocTagsWorker(param.parent, noCache).filter(function (tag) { return isJSDocTemplateTag(tag) && tag.typeParameters.some(function (tp) { return tp.name.escapedText === name; }); }); -} -function getJSDocTypeParameterTags(param) { - return getJSDocTypeParameterTagsWorker(param, - /*noCache*/ - false); -} -function getJSDocTypeParameterTagsNoCache(param) { - return getJSDocTypeParameterTagsWorker(param, - /*noCache*/ - true); -} -function hasJSDocParameterTags(node) { - return !!getFirstJSDocTag(node, isJSDocParameterTag); -} -function getJSDocAugmentsTag(node) { - return getFirstJSDocTag(node, isJSDocAugmentsTag); -} -function getJSDocImplementsTags(node) { - return getAllJSDocTags(node, isJSDocImplementsTag); -} -function getJSDocClassTag(node) { - return getFirstJSDocTag(node, isJSDocClassTag); -} -function getJSDocPublicTag(node) { - return getFirstJSDocTag(node, isJSDocPublicTag); -} -function getJSDocPublicTagNoCache(node) { - return getFirstJSDocTag(node, isJSDocPublicTag, - /*noCache*/ - true); -} -function getJSDocPrivateTag(node) { - return getFirstJSDocTag(node, isJSDocPrivateTag); -} -function getJSDocPrivateTagNoCache(node) { - return getFirstJSDocTag(node, isJSDocPrivateTag, - /*noCache*/ - true); -} -function getJSDocProtectedTag(node) { - return getFirstJSDocTag(node, isJSDocProtectedTag); -} -function getJSDocProtectedTagNoCache(node) { - return getFirstJSDocTag(node, isJSDocProtectedTag, - /*noCache*/ - true); -} -function getJSDocReadonlyTag(node) { - return getFirstJSDocTag(node, isJSDocReadonlyTag); -} -function getJSDocReadonlyTagNoCache(node) { - return getFirstJSDocTag(node, isJSDocReadonlyTag, - /*noCache*/ - true); -} -function getJSDocOverrideTagNoCache(node) { - return getFirstJSDocTag(node, isJSDocOverrideTag, - /*noCache*/ - true); -} -function getJSDocDeprecatedTag(node) { - return getFirstJSDocTag(node, isJSDocDeprecatedTag); -} -function getJSDocDeprecatedTagNoCache(node) { - return getFirstJSDocTag(node, isJSDocDeprecatedTag, - /*noCache*/ - true); -} -function getJSDocEnumTag(node) { - return getFirstJSDocTag(node, isJSDocEnumTag); -} -function getJSDocThisTag(node) { - return getFirstJSDocTag(node, isJSDocThisTag); -} -function getJSDocReturnTag(node) { - return getFirstJSDocTag(node, isJSDocReturnTag); -} -function getJSDocTemplateTag(node) { - return getFirstJSDocTag(node, isJSDocTemplateTag); -} -function getJSDocSatisfiesTag(node) { - return getFirstJSDocTag(node, isJSDocSatisfiesTag); -} -function getJSDocTypeTag(node) { - var tag = getFirstJSDocTag(node, isJSDocTypeTag); - if (tag && tag.typeExpression && tag.typeExpression.type) { - return tag; - } - return void 0; -} -function getJSDocType(node) { - var tag = getFirstJSDocTag(node, isJSDocTypeTag); - if (!tag && isParameter(node)) { - tag = find(getJSDocParameterTags(node), function (tag2) { return !!tag2.typeExpression; }); - } - return tag && tag.typeExpression && tag.typeExpression.type; -} -function getJSDocReturnType(node) { - var returnTag = getJSDocReturnTag(node); - if (returnTag && returnTag.typeExpression) { - return returnTag.typeExpression.type; - } - var typeTag = getJSDocTypeTag(node); - if (typeTag && typeTag.typeExpression) { - var type = typeTag.typeExpression.type; - if (isTypeLiteralNode(type)) { - var sig = find(type.members, isCallSignatureDeclaration); - return sig && sig.type; - } - if (isFunctionTypeNode(type) || isJSDocFunctionType(type)) { - return type.type; - } - } -} -function getJSDocTagsWorker(node, noCache) { - var _t; - var _a; - if (!canHaveJSDoc(node)) - return emptyArray; - var tags = (_a = node.jsDoc) == null ? void 0 : _a.jsDocCache; - if (tags === void 0 || noCache) { - var comments = getJSDocCommentsAndTags(node, noCache); - Debug.assert(comments.length < 2 || comments[0] !== comments[1]); - tags = flatMap(comments, function (j) { return isJSDoc(j) ? j.tags : j; }); - if (!noCache) { - (_t = node.jsDoc) !== null && _t !== void 0 ? _t : (node.jsDoc = []); - node.jsDoc.jsDocCache = tags; - } - } - return tags; -} -function getJSDocTags(node) { - return getJSDocTagsWorker(node, - /*noCache*/ - false); -} -function getJSDocTagsNoCache(node) { - return getJSDocTagsWorker(node, - /*noCache*/ - true); -} -function getFirstJSDocTag(node, predicate, noCache) { - return find(getJSDocTagsWorker(node, noCache), predicate); -} -function getAllJSDocTags(node, predicate) { - return getJSDocTags(node).filter(predicate); -} -function getAllJSDocTagsOfKind(node, kind) { - return getJSDocTags(node).filter(function (doc) { return doc.kind === kind; }); -} -function getTextOfJSDocComment(comment) { - return typeof comment === "string" ? comment : comment == null ? void 0 : comment.map(function (c) { return c.kind === 328 /* JSDocText */ ? c.text : formatJSDocLink(c); }).join(""); -} -function formatJSDocLink(link) { - var kind = link.kind === 331 /* JSDocLink */ ? "link" : link.kind === 332 /* JSDocLinkCode */ ? "linkcode" : "linkplain"; - var name = link.name ? entityNameToString(link.name) : ""; - var space = link.name && link.text.startsWith("://") ? "" : " "; - return "{@".concat(kind, " ").concat(name).concat(space).concat(link.text, "}"); -} -function getEffectiveTypeParameterDeclarations(node) { - if (isJSDocSignature(node)) { - if (isJSDocOverloadTag(node.parent)) { - var jsDoc = getJSDocRoot(node.parent); - if (jsDoc && length(jsDoc.tags)) { - return flatMap(jsDoc.tags, function (tag) { return isJSDocTemplateTag(tag) ? tag.typeParameters : void 0; }); - } - } - return emptyArray; - } - if (isJSDocTypeAlias(node)) { - Debug.assert(node.parent.kind === 327 /* JSDoc */); - return flatMap(node.parent.tags, function (tag) { return isJSDocTemplateTag(tag) ? tag.typeParameters : void 0; }); - } - if (node.typeParameters) { - return node.typeParameters; - } - if (canHaveIllegalTypeParameters(node) && node.typeParameters) { - return node.typeParameters; - } - if (isInJSFile(node)) { - var decls = getJSDocTypeParameterDeclarations(node); - if (decls.length) { - return decls; - } - var typeTag = getJSDocType(node); - if (typeTag && isFunctionTypeNode(typeTag) && typeTag.typeParameters) { - return typeTag.typeParameters; - } - } - return emptyArray; -} -function getEffectiveConstraintOfTypeParameter(node) { - return node.constraint ? node.constraint : isJSDocTemplateTag(node.parent) && node === node.parent.typeParameters[0] ? node.parent.constraint : void 0; -} -function isMemberName(node) { - return node.kind === 80 /* Identifier */ || node.kind === 81 /* PrivateIdentifier */; -} -function isGetOrSetAccessorDeclaration(node) { - return node.kind === 178 /* SetAccessor */ || node.kind === 177 /* GetAccessor */; -} -function isPropertyAccessChain(node) { - return isPropertyAccessExpression(node) && !!(node.flags & 64 /* OptionalChain */); -} -function isElementAccessChain(node) { - return isElementAccessExpression(node) && !!(node.flags & 64 /* OptionalChain */); -} -function isCallChain(node) { - return isCallExpression(node) && !!(node.flags & 64 /* OptionalChain */); -} -function isOptionalChain(node) { - var kind = node.kind; - return !!(node.flags & 64 /* OptionalChain */) && (kind === 211 /* PropertyAccessExpression */ || kind === 212 /* ElementAccessExpression */ || kind === 213 /* CallExpression */ || kind === 235 /* NonNullExpression */); -} -function isOptionalChainRoot(node) { - return isOptionalChain(node) && !isNonNullExpression(node) && !!node.questionDotToken; -} -function isExpressionOfOptionalChainRoot(node) { - return isOptionalChainRoot(node.parent) && node.parent.expression === node; -} -function isOutermostOptionalChain(node) { - return !isOptionalChain(node.parent) || isOptionalChainRoot(node.parent) || node !== node.parent.expression; -} -function isNullishCoalesce(node) { - return node.kind === 226 /* BinaryExpression */ && node.operatorToken.kind === 61 /* QuestionQuestionToken */; -} -function isConstTypeReference(node) { - return isTypeReferenceNode(node) && isIdentifier(node.typeName) && node.typeName.escapedText === "const" && !node.typeArguments; -} -function skipPartiallyEmittedExpressions(node) { - return skipOuterExpressions(node, 8 /* PartiallyEmittedExpressions */); -} -function isNonNullChain(node) { - return isNonNullExpression(node) && !!(node.flags & 64 /* OptionalChain */); -} -function isBreakOrContinueStatement(node) { - return node.kind === 252 /* BreakStatement */ || node.kind === 251 /* ContinueStatement */; -} -function isNamedExportBindings(node) { - return node.kind === 280 /* NamespaceExport */ || node.kind === 279 /* NamedExports */; -} -function isUnparsedTextLike(node) { - switch (node.kind) { - case 309 /* UnparsedText */: - case 310 /* UnparsedInternalText */: - return true; - default: - return false; - } -} -function isUnparsedNode(node) { - return isUnparsedTextLike(node) || node.kind === 307 /* UnparsedPrologue */ || node.kind === 311 /* UnparsedSyntheticReference */; -} -function isJSDocPropertyLikeTag(node) { - return node.kind === 355 /* JSDocPropertyTag */ || node.kind === 348 /* JSDocParameterTag */; -} -function isNode(node) { - return isNodeKind(node.kind); -} -function isNodeKind(kind) { - return kind >= 166 /* FirstNode */; -} -function isTokenKind(kind) { - return kind >= 0 /* FirstToken */ && kind <= 165 /* LastToken */; -} -function isToken(n) { - return isTokenKind(n.kind); -} -function isNodeArray(array) { - return hasProperty(array, "pos") && hasProperty(array, "end"); -} -function isLiteralKind(kind) { - return 9 /* FirstLiteralToken */ <= kind && kind <= 15 /* LastLiteralToken */; -} -function isLiteralExpression(node) { - return isLiteralKind(node.kind); -} -function isLiteralExpressionOfObject(node) { - switch (node.kind) { - case 210 /* ObjectLiteralExpression */: - case 209 /* ArrayLiteralExpression */: - case 14 /* RegularExpressionLiteral */: - case 218 /* FunctionExpression */: - case 231 /* ClassExpression */: - return true; - } - return false; -} -function isTemplateLiteralKind(kind) { - return 15 /* FirstTemplateToken */ <= kind && kind <= 18 /* LastTemplateToken */; -} -function isTemplateLiteralToken(node) { - return isTemplateLiteralKind(node.kind); -} -function isTemplateMiddleOrTemplateTail(node) { - var kind = node.kind; - return kind === 17 /* TemplateMiddle */ || kind === 18 /* TemplateTail */; -} -function isImportOrExportSpecifier(node) { - return isImportSpecifier(node) || isExportSpecifier(node); -} -function isTypeOnlyImportDeclaration(node) { - switch (node.kind) { - case 276 /* ImportSpecifier */: - return node.isTypeOnly || node.parent.parent.isTypeOnly; - case 274 /* NamespaceImport */: - return node.parent.isTypeOnly; - case 273 /* ImportClause */: - case 271 /* ImportEqualsDeclaration */: - return node.isTypeOnly; - } - return false; -} -function isTypeOnlyExportDeclaration(node) { - switch (node.kind) { - case 281 /* ExportSpecifier */: - return node.isTypeOnly || node.parent.parent.isTypeOnly; - case 278 /* ExportDeclaration */: - return node.isTypeOnly && !!node.moduleSpecifier && !node.exportClause; - case 280 /* NamespaceExport */: - return node.parent.isTypeOnly; - } - return false; -} -function isTypeOnlyImportOrExportDeclaration(node) { - return isTypeOnlyImportDeclaration(node) || isTypeOnlyExportDeclaration(node); -} -function isAssertionKey(node) { - return isStringLiteral(node) || isIdentifier(node); -} -function isStringTextContainingNode(node) { - return node.kind === 11 /* StringLiteral */ || isTemplateLiteralKind(node.kind); -} -function isGeneratedIdentifier(node) { - var _a; - return isIdentifier(node) && ((_a = node.emitNode) == null ? void 0 : _a.autoGenerate) !== void 0; -} -function isGeneratedPrivateIdentifier(node) { - var _a; - return isPrivateIdentifier(node) && ((_a = node.emitNode) == null ? void 0 : _a.autoGenerate) !== void 0; -} -function isFileLevelReservedGeneratedIdentifier(node) { - var flags = node.emitNode.autoGenerate.flags; - return !!(flags & 32 /* FileLevel */) && !!(flags & 16 /* Optimistic */) && !!(flags & 8 /* ReservedInNestedScopes */); -} -function isPrivateIdentifierClassElementDeclaration(node) { - return (isPropertyDeclaration(node) || isMethodOrAccessor(node)) && isPrivateIdentifier(node.name); -} -function isPrivateIdentifierPropertyAccessExpression(node) { - return isPropertyAccessExpression(node) && isPrivateIdentifier(node.name); -} -function isModifierKind(token) { - switch (token) { - case 128 /* AbstractKeyword */: - case 129 /* AccessorKeyword */: - case 134 /* AsyncKeyword */: - case 87 /* ConstKeyword */: - case 138 /* DeclareKeyword */: - case 90 /* DefaultKeyword */: - case 95 /* ExportKeyword */: - case 103 /* InKeyword */: - case 125 /* PublicKeyword */: - case 123 /* PrivateKeyword */: - case 124 /* ProtectedKeyword */: - case 148 /* ReadonlyKeyword */: - case 126 /* StaticKeyword */: - case 147 /* OutKeyword */: - case 164 /* OverrideKeyword */: - return true; - } - return false; -} -function isParameterPropertyModifier(kind) { - return !!(modifierToFlag(kind) & 16476 /* ParameterPropertyModifier */); -} -function isClassMemberModifier(idToken) { - return isParameterPropertyModifier(idToken) || idToken === 126 /* StaticKeyword */ || idToken === 164 /* OverrideKeyword */ || idToken === 129 /* AccessorKeyword */; -} -function isModifier(node) { - return isModifierKind(node.kind); -} -function isEntityName(node) { - var kind = node.kind; - return kind === 166 /* QualifiedName */ || kind === 80 /* Identifier */; -} -function isPropertyName(node) { - var kind = node.kind; - return kind === 80 /* Identifier */ || kind === 81 /* PrivateIdentifier */ || kind === 11 /* StringLiteral */ || kind === 9 /* NumericLiteral */ || kind === 167 /* ComputedPropertyName */; -} -function isBindingName(node) { - var kind = node.kind; - return kind === 80 /* Identifier */ || kind === 206 /* ObjectBindingPattern */ || kind === 207 /* ArrayBindingPattern */; -} -function isFunctionLike(node) { - return !!node && isFunctionLikeKind(node.kind); -} -function isFunctionLikeOrClassStaticBlockDeclaration(node) { - return !!node && (isFunctionLikeKind(node.kind) || isClassStaticBlockDeclaration(node)); -} -function isFunctionLikeDeclaration(node) { - return node && isFunctionLikeDeclarationKind(node.kind); -} -function isBooleanLiteral(node) { - return node.kind === 112 /* TrueKeyword */ || node.kind === 97 /* FalseKeyword */; -} -function isFunctionLikeDeclarationKind(kind) { - switch (kind) { - case 262 /* FunctionDeclaration */: - case 174 /* MethodDeclaration */: - case 176 /* Constructor */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - case 218 /* FunctionExpression */: - case 219 /* ArrowFunction */: - return true; - default: - return false; - } -} -function isFunctionLikeKind(kind) { - switch (kind) { - case 173 /* MethodSignature */: - case 179 /* CallSignature */: - case 330 /* JSDocSignature */: - case 180 /* ConstructSignature */: - case 181 /* IndexSignature */: - case 184 /* FunctionType */: - case 324 /* JSDocFunctionType */: - case 185 /* ConstructorType */: - return true; - default: - return isFunctionLikeDeclarationKind(kind); - } -} -function isFunctionOrModuleBlock(node) { - return isSourceFile(node) || isModuleBlock(node) || isBlock(node) && isFunctionLike(node.parent); -} -function isClassElement(node) { - var kind = node.kind; - return kind === 176 /* Constructor */ || kind === 172 /* PropertyDeclaration */ || kind === 174 /* MethodDeclaration */ || kind === 177 /* GetAccessor */ || kind === 178 /* SetAccessor */ || kind === 181 /* IndexSignature */ || kind === 175 /* ClassStaticBlockDeclaration */ || kind === 240 /* SemicolonClassElement */; -} -function isClassLike(node) { - return node && (node.kind === 263 /* ClassDeclaration */ || node.kind === 231 /* ClassExpression */); -} -function isAccessor(node) { - return node && (node.kind === 177 /* GetAccessor */ || node.kind === 178 /* SetAccessor */); -} -function isAutoAccessorPropertyDeclaration(node) { - return isPropertyDeclaration(node) && hasAccessorModifier(node); -} -function isMethodOrAccessor(node) { - switch (node.kind) { - case 174 /* MethodDeclaration */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - return true; - default: - return false; - } -} -function isNamedClassElement(node) { - switch (node.kind) { - case 174 /* MethodDeclaration */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - case 172 /* PropertyDeclaration */: - return true; - default: - return false; - } -} -function isModifierLike(node) { - return isModifier(node) || isDecorator(node); -} -function isTypeElement(node) { - var kind = node.kind; - return kind === 180 /* ConstructSignature */ || kind === 179 /* CallSignature */ || kind === 171 /* PropertySignature */ || kind === 173 /* MethodSignature */ || kind === 181 /* IndexSignature */ || kind === 177 /* GetAccessor */ || kind === 178 /* SetAccessor */; -} -function isClassOrTypeElement(node) { - return isTypeElement(node) || isClassElement(node); -} -function isObjectLiteralElementLike(node) { - var kind = node.kind; - return kind === 303 /* PropertyAssignment */ || kind === 304 /* ShorthandPropertyAssignment */ || kind === 305 /* SpreadAssignment */ || kind === 174 /* MethodDeclaration */ || kind === 177 /* GetAccessor */ || kind === 178 /* SetAccessor */; -} -function isTypeNode(node) { - return isTypeNodeKind(node.kind); -} -function isFunctionOrConstructorTypeNode(node) { - switch (node.kind) { - case 184 /* FunctionType */: - case 185 /* ConstructorType */: - return true; - } - return false; -} -function isBindingPattern(node) { - if (node) { - var kind = node.kind; - return kind === 207 /* ArrayBindingPattern */ || kind === 206 /* ObjectBindingPattern */; - } - return false; -} -function isAssignmentPattern(node) { - var kind = node.kind; - return kind === 209 /* ArrayLiteralExpression */ || kind === 210 /* ObjectLiteralExpression */; -} -function isArrayBindingElement(node) { - var kind = node.kind; - return kind === 208 /* BindingElement */ || kind === 232 /* OmittedExpression */; -} -function isDeclarationBindingElement(bindingElement) { - switch (bindingElement.kind) { - case 260 /* VariableDeclaration */: - case 169 /* Parameter */: - case 208 /* BindingElement */: - return true; - } - return false; -} -function isBindingOrAssignmentElement(node) { - return isVariableDeclaration(node) || isParameter(node) || isObjectBindingOrAssignmentElement(node) || isArrayBindingOrAssignmentElement(node); -} -function isBindingOrAssignmentPattern(node) { - return isObjectBindingOrAssignmentPattern(node) || isArrayBindingOrAssignmentPattern(node); -} -function isObjectBindingOrAssignmentPattern(node) { - switch (node.kind) { - case 206 /* ObjectBindingPattern */: - case 210 /* ObjectLiteralExpression */: - return true; - } - return false; -} -function isObjectBindingOrAssignmentElement(node) { - switch (node.kind) { - case 208 /* BindingElement */: - case 303 /* PropertyAssignment */: - case 304 /* ShorthandPropertyAssignment */: - case 305 /* SpreadAssignment */: - return true; - } - return false; -} -function isArrayBindingOrAssignmentPattern(node) { - switch (node.kind) { - case 207 /* ArrayBindingPattern */: - case 209 /* ArrayLiteralExpression */: - return true; - } - return false; -} -function isArrayBindingOrAssignmentElement(node) { - switch (node.kind) { - case 208 /* BindingElement */: - case 232 /* OmittedExpression */: - case 230 /* SpreadElement */: - case 209 /* ArrayLiteralExpression */: - case 210 /* ObjectLiteralExpression */: - case 80 /* Identifier */: - case 211 /* PropertyAccessExpression */: - case 212 /* ElementAccessExpression */: - return true; - } - return isAssignmentExpression(node, - /*excludeCompoundAssignment*/ - true); -} -function isPropertyAccessOrQualifiedNameOrImportTypeNode(node) { - var kind = node.kind; - return kind === 211 /* PropertyAccessExpression */ || kind === 166 /* QualifiedName */ || kind === 205 /* ImportType */; -} -function isPropertyAccessOrQualifiedName(node) { - var kind = node.kind; - return kind === 211 /* PropertyAccessExpression */ || kind === 166 /* QualifiedName */; -} -function isCallLikeExpression(node) { - switch (node.kind) { - case 286 /* JsxOpeningElement */: - case 285 /* JsxSelfClosingElement */: - case 213 /* CallExpression */: - case 214 /* NewExpression */: - case 215 /* TaggedTemplateExpression */: - case 170 /* Decorator */: - return true; - default: - return false; - } -} -function isCallOrNewExpression(node) { - return node.kind === 213 /* CallExpression */ || node.kind === 214 /* NewExpression */; -} -function isTemplateLiteral(node) { - var kind = node.kind; - return kind === 228 /* TemplateExpression */ || kind === 15 /* NoSubstitutionTemplateLiteral */; -} -function isLeftHandSideExpression(node) { - return isLeftHandSideExpressionKind(skipPartiallyEmittedExpressions(node).kind); -} -function isLeftHandSideExpressionKind(kind) { - switch (kind) { - case 211 /* PropertyAccessExpression */: - case 212 /* ElementAccessExpression */: - case 214 /* NewExpression */: - case 213 /* CallExpression */: - case 284 /* JsxElement */: - case 285 /* JsxSelfClosingElement */: - case 288 /* JsxFragment */: - case 215 /* TaggedTemplateExpression */: - case 209 /* ArrayLiteralExpression */: - case 217 /* ParenthesizedExpression */: - case 210 /* ObjectLiteralExpression */: - case 231 /* ClassExpression */: - case 218 /* FunctionExpression */: - case 80 /* Identifier */: - case 81 /* PrivateIdentifier */: - case 14 /* RegularExpressionLiteral */: - case 9 /* NumericLiteral */: - case 10 /* BigIntLiteral */: - case 11 /* StringLiteral */: - case 15 /* NoSubstitutionTemplateLiteral */: - case 228 /* TemplateExpression */: - case 97 /* FalseKeyword */: - case 106 /* NullKeyword */: - case 110 /* ThisKeyword */: - case 112 /* TrueKeyword */: - case 108 /* SuperKeyword */: - case 235 /* NonNullExpression */: - case 233 /* ExpressionWithTypeArguments */: - case 236 /* MetaProperty */: - case 102 /* ImportKeyword */: - case 282 /* MissingDeclaration */: - return true; - default: - return false; - } -} -function isUnaryExpression(node) { - return isUnaryExpressionKind(skipPartiallyEmittedExpressions(node).kind); -} -function isUnaryExpressionKind(kind) { - switch (kind) { - case 224 /* PrefixUnaryExpression */: - case 225 /* PostfixUnaryExpression */: - case 220 /* DeleteExpression */: - case 221 /* TypeOfExpression */: - case 222 /* VoidExpression */: - case 223 /* AwaitExpression */: - case 216 /* TypeAssertionExpression */: - return true; - default: - return isLeftHandSideExpressionKind(kind); - } -} -function isUnaryExpressionWithWrite(expr) { - switch (expr.kind) { - case 225 /* PostfixUnaryExpression */: - return true; - case 224 /* PrefixUnaryExpression */: - return expr.operator === 46 /* PlusPlusToken */ || expr.operator === 47 /* MinusMinusToken */; - default: - return false; - } -} -function isLiteralTypeLiteral(node) { - switch (node.kind) { - case 106 /* NullKeyword */: - case 112 /* TrueKeyword */: - case 97 /* FalseKeyword */: - case 224 /* PrefixUnaryExpression */: - return true; - default: - return isLiteralExpression(node); - } -} -function isExpression(node) { - return isExpressionKind(skipPartiallyEmittedExpressions(node).kind); -} -function isExpressionKind(kind) { - switch (kind) { - case 227 /* ConditionalExpression */: - case 229 /* YieldExpression */: - case 219 /* ArrowFunction */: - case 226 /* BinaryExpression */: - case 230 /* SpreadElement */: - case 234 /* AsExpression */: - case 232 /* OmittedExpression */: - case 361 /* CommaListExpression */: - case 360 /* PartiallyEmittedExpression */: - case 238 /* SatisfiesExpression */: - return true; - default: - return isUnaryExpressionKind(kind); - } -} -function isAssertionExpression(node) { - var kind = node.kind; - return kind === 216 /* TypeAssertionExpression */ || kind === 234 /* AsExpression */; -} -function isNotEmittedOrPartiallyEmittedNode(node) { - return isNotEmittedStatement(node) || isPartiallyEmittedExpression(node); -} -function isIterationStatement(node, lookInLabeledStatements) { - switch (node.kind) { - case 248 /* ForStatement */: - case 249 /* ForInStatement */: - case 250 /* ForOfStatement */: - case 246 /* DoStatement */: - case 247 /* WhileStatement */: - return true; - case 256 /* LabeledStatement */: - return lookInLabeledStatements && isIterationStatement(node.statement, lookInLabeledStatements); - } - return false; -} -function isScopeMarker(node) { - return isExportAssignment(node) || isExportDeclaration(node); -} -function hasScopeMarker(statements) { - return some(statements, isScopeMarker); -} -function needsScopeMarker(result) { - return !isAnyImportOrReExport(result) && !isExportAssignment(result) && !hasSyntacticModifier(result, 1 /* Export */) && !isAmbientModule(result); -} -function isExternalModuleIndicator(result) { - return isAnyImportOrReExport(result) || isExportAssignment(result) || hasSyntacticModifier(result, 1 /* Export */); -} -function isForInOrOfStatement(node) { - return node.kind === 249 /* ForInStatement */ || node.kind === 250 /* ForOfStatement */; -} -function isConciseBody(node) { - return isBlock(node) || isExpression(node); -} -function isFunctionBody(node) { - return isBlock(node); -} -function isForInitializer(node) { - return isVariableDeclarationList(node) || isExpression(node); -} -function isModuleBody(node) { - var kind = node.kind; - return kind === 268 /* ModuleBlock */ || kind === 267 /* ModuleDeclaration */ || kind === 80 /* Identifier */; -} -function isNamespaceBody(node) { - var kind = node.kind; - return kind === 268 /* ModuleBlock */ || kind === 267 /* ModuleDeclaration */; -} -function isJSDocNamespaceBody(node) { - var kind = node.kind; - return kind === 80 /* Identifier */ || kind === 267 /* ModuleDeclaration */; -} -function isNamedImportBindings(node) { - var kind = node.kind; - return kind === 275 /* NamedImports */ || kind === 274 /* NamespaceImport */; -} -function isModuleOrEnumDeclaration(node) { - return node.kind === 267 /* ModuleDeclaration */ || node.kind === 266 /* EnumDeclaration */; -} -function canHaveSymbol(node) { - switch (node.kind) { - case 219 /* ArrowFunction */: - case 226 /* BinaryExpression */: - case 208 /* BindingElement */: - case 213 /* CallExpression */: - case 179 /* CallSignature */: - case 263 /* ClassDeclaration */: - case 231 /* ClassExpression */: - case 175 /* ClassStaticBlockDeclaration */: - case 176 /* Constructor */: - case 185 /* ConstructorType */: - case 180 /* ConstructSignature */: - case 212 /* ElementAccessExpression */: - case 266 /* EnumDeclaration */: - case 306 /* EnumMember */: - case 277 /* ExportAssignment */: - case 278 /* ExportDeclaration */: - case 281 /* ExportSpecifier */: - case 262 /* FunctionDeclaration */: - case 218 /* FunctionExpression */: - case 184 /* FunctionType */: - case 177 /* GetAccessor */: - case 80 /* Identifier */: - case 273 /* ImportClause */: - case 271 /* ImportEqualsDeclaration */: - case 276 /* ImportSpecifier */: - case 181 /* IndexSignature */: - case 264 /* InterfaceDeclaration */: - case 345 /* JSDocCallbackTag */: - case 347 /* JSDocEnumTag */: - case 324 /* JSDocFunctionType */: - case 348 /* JSDocParameterTag */: - case 355 /* JSDocPropertyTag */: - case 330 /* JSDocSignature */: - case 353 /* JSDocTypedefTag */: - case 329 /* JSDocTypeLiteral */: - case 291 /* JsxAttribute */: - case 292 /* JsxAttributes */: - case 293 /* JsxSpreadAttribute */: - case 200 /* MappedType */: - case 174 /* MethodDeclaration */: - case 173 /* MethodSignature */: - case 267 /* ModuleDeclaration */: - case 202 /* NamedTupleMember */: - case 280 /* NamespaceExport */: - case 270 /* NamespaceExportDeclaration */: - case 274 /* NamespaceImport */: - case 214 /* NewExpression */: - case 15 /* NoSubstitutionTemplateLiteral */: - case 9 /* NumericLiteral */: - case 210 /* ObjectLiteralExpression */: - case 169 /* Parameter */: - case 211 /* PropertyAccessExpression */: - case 303 /* PropertyAssignment */: - case 172 /* PropertyDeclaration */: - case 171 /* PropertySignature */: - case 178 /* SetAccessor */: - case 304 /* ShorthandPropertyAssignment */: - case 312 /* SourceFile */: - case 305 /* SpreadAssignment */: - case 11 /* StringLiteral */: - case 265 /* TypeAliasDeclaration */: - case 187 /* TypeLiteral */: - case 168 /* TypeParameter */: - case 260 /* VariableDeclaration */: - return true; - default: - return false; - } -} -function canHaveLocals(node) { - switch (node.kind) { - case 219 /* ArrowFunction */: - case 241 /* Block */: - case 179 /* CallSignature */: - case 269 /* CaseBlock */: - case 299 /* CatchClause */: - case 175 /* ClassStaticBlockDeclaration */: - case 194 /* ConditionalType */: - case 176 /* Constructor */: - case 185 /* ConstructorType */: - case 180 /* ConstructSignature */: - case 248 /* ForStatement */: - case 249 /* ForInStatement */: - case 250 /* ForOfStatement */: - case 262 /* FunctionDeclaration */: - case 218 /* FunctionExpression */: - case 184 /* FunctionType */: - case 177 /* GetAccessor */: - case 181 /* IndexSignature */: - case 345 /* JSDocCallbackTag */: - case 347 /* JSDocEnumTag */: - case 324 /* JSDocFunctionType */: - case 330 /* JSDocSignature */: - case 353 /* JSDocTypedefTag */: - case 200 /* MappedType */: - case 174 /* MethodDeclaration */: - case 173 /* MethodSignature */: - case 267 /* ModuleDeclaration */: - case 178 /* SetAccessor */: - case 312 /* SourceFile */: - case 265 /* TypeAliasDeclaration */: - return true; - default: - return false; - } -} -function isDeclarationKind(kind) { - return kind === 219 /* ArrowFunction */ || kind === 208 /* BindingElement */ || kind === 263 /* ClassDeclaration */ || kind === 231 /* ClassExpression */ || kind === 175 /* ClassStaticBlockDeclaration */ || kind === 176 /* Constructor */ || kind === 266 /* EnumDeclaration */ || kind === 306 /* EnumMember */ || kind === 281 /* ExportSpecifier */ || kind === 262 /* FunctionDeclaration */ || kind === 218 /* FunctionExpression */ || kind === 177 /* GetAccessor */ || kind === 273 /* ImportClause */ || kind === 271 /* ImportEqualsDeclaration */ || kind === 276 /* ImportSpecifier */ || kind === 264 /* InterfaceDeclaration */ || kind === 291 /* JsxAttribute */ || kind === 174 /* MethodDeclaration */ || kind === 173 /* MethodSignature */ || kind === 267 /* ModuleDeclaration */ || kind === 270 /* NamespaceExportDeclaration */ || kind === 274 /* NamespaceImport */ || kind === 280 /* NamespaceExport */ || kind === 169 /* Parameter */ || kind === 303 /* PropertyAssignment */ || kind === 172 /* PropertyDeclaration */ || kind === 171 /* PropertySignature */ || kind === 178 /* SetAccessor */ || kind === 304 /* ShorthandPropertyAssignment */ || kind === 265 /* TypeAliasDeclaration */ || kind === 168 /* TypeParameter */ || kind === 260 /* VariableDeclaration */ || kind === 353 /* JSDocTypedefTag */ || kind === 345 /* JSDocCallbackTag */ || kind === 355 /* JSDocPropertyTag */; -} -function isDeclarationStatementKind(kind) { - return kind === 262 /* FunctionDeclaration */ || kind === 282 /* MissingDeclaration */ || kind === 263 /* ClassDeclaration */ || kind === 264 /* InterfaceDeclaration */ || kind === 265 /* TypeAliasDeclaration */ || kind === 266 /* EnumDeclaration */ || kind === 267 /* ModuleDeclaration */ || kind === 272 /* ImportDeclaration */ || kind === 271 /* ImportEqualsDeclaration */ || kind === 278 /* ExportDeclaration */ || kind === 277 /* ExportAssignment */ || kind === 270 /* NamespaceExportDeclaration */; -} -function isStatementKindButNotDeclarationKind(kind) { - return kind === 252 /* BreakStatement */ || kind === 251 /* ContinueStatement */ || kind === 259 /* DebuggerStatement */ || kind === 246 /* DoStatement */ || kind === 244 /* ExpressionStatement */ || kind === 242 /* EmptyStatement */ || kind === 249 /* ForInStatement */ || kind === 250 /* ForOfStatement */ || kind === 248 /* ForStatement */ || kind === 245 /* IfStatement */ || kind === 256 /* LabeledStatement */ || kind === 253 /* ReturnStatement */ || kind === 255 /* SwitchStatement */ || kind === 257 /* ThrowStatement */ || kind === 258 /* TryStatement */ || kind === 243 /* VariableStatement */ || kind === 247 /* WhileStatement */ || kind === 254 /* WithStatement */ || kind === 359 /* NotEmittedStatement */; -} -function isDeclaration(node) { - if (node.kind === 168 /* TypeParameter */) { - return node.parent && node.parent.kind !== 352 /* JSDocTemplateTag */ || isInJSFile(node); - } - return isDeclarationKind(node.kind); -} -function isDeclarationStatement(node) { - return isDeclarationStatementKind(node.kind); -} -function isStatementButNotDeclaration(node) { - return isStatementKindButNotDeclarationKind(node.kind); -} -function isStatement(node) { - var kind = node.kind; - return isStatementKindButNotDeclarationKind(kind) || isDeclarationStatementKind(kind) || isBlockStatement(node); -} -function isBlockStatement(node) { - if (node.kind !== 241 /* Block */) - return false; - if (node.parent !== void 0) { - if (node.parent.kind === 258 /* TryStatement */ || node.parent.kind === 299 /* CatchClause */) { - return false; - } - } - return !isFunctionBlock(node); -} -function isStatementOrBlock(node) { - var kind = node.kind; - return isStatementKindButNotDeclarationKind(kind) || isDeclarationStatementKind(kind) || kind === 241 /* Block */; -} -function isModuleReference(node) { - var kind = node.kind; - return kind === 283 /* ExternalModuleReference */ || kind === 166 /* QualifiedName */ || kind === 80 /* Identifier */; -} -function isJsxTagNameExpression(node) { - var kind = node.kind; - return kind === 110 /* ThisKeyword */ || kind === 80 /* Identifier */ || kind === 211 /* PropertyAccessExpression */ || kind === 295 /* JsxNamespacedName */; -} -function isJsxChild(node) { - var kind = node.kind; - return kind === 284 /* JsxElement */ || kind === 294 /* JsxExpression */ || kind === 285 /* JsxSelfClosingElement */ || kind === 12 /* JsxText */ || kind === 288 /* JsxFragment */; -} -function isJsxAttributeLike(node) { - var kind = node.kind; - return kind === 291 /* JsxAttribute */ || kind === 293 /* JsxSpreadAttribute */; -} -function isStringLiteralOrJsxExpression(node) { - var kind = node.kind; - return kind === 11 /* StringLiteral */ || kind === 294 /* JsxExpression */; -} -function isJsxOpeningLikeElement(node) { - var kind = node.kind; - return kind === 286 /* JsxOpeningElement */ || kind === 285 /* JsxSelfClosingElement */; -} -function isCaseOrDefaultClause(node) { - var kind = node.kind; - return kind === 296 /* CaseClause */ || kind === 297 /* DefaultClause */; -} -function isJSDocNode(node) { - return node.kind >= 316 /* FirstJSDocNode */ && node.kind <= 357 /* LastJSDocNode */; -} -function isJSDocCommentContainingNode(node) { - return node.kind === 327 /* JSDoc */ || node.kind === 326 /* JSDocNamepathType */ || node.kind === 328 /* JSDocText */ || isJSDocLinkLike(node) || isJSDocTag(node) || isJSDocTypeLiteral(node) || isJSDocSignature(node); -} -function isJSDocTag(node) { - return node.kind >= 334 /* FirstJSDocTagNode */ && node.kind <= 357 /* LastJSDocTagNode */; -} -function isSetAccessor(node) { - return node.kind === 178 /* SetAccessor */; -} -function isGetAccessor(node) { - return node.kind === 177 /* GetAccessor */; -} -function hasJSDocNodes(node) { - if (!canHaveJSDoc(node)) - return false; - var jsDoc = node.jsDoc; - return !!jsDoc && jsDoc.length > 0; -} -function hasType(node) { - return !!node.type; -} -function hasInitializer(node) { - return !!node.initializer; -} -function hasOnlyExpressionInitializer(node) { - switch (node.kind) { - case 260 /* VariableDeclaration */: - case 169 /* Parameter */: - case 208 /* BindingElement */: - case 172 /* PropertyDeclaration */: - case 303 /* PropertyAssignment */: - case 306 /* EnumMember */: - return true; - default: - return false; - } -} -function isObjectLiteralElement(node) { - return node.kind === 291 /* JsxAttribute */ || node.kind === 293 /* JsxSpreadAttribute */ || isObjectLiteralElementLike(node); -} -function isTypeReferenceType(node) { - return node.kind === 183 /* TypeReference */ || node.kind === 233 /* ExpressionWithTypeArguments */; -} -var MAX_SMI_X86 = 1073741823; -function guessIndentation(lines) { - var e_53, _t; - var indentation = MAX_SMI_X86; - try { - for (var lines_1 = __values(lines), lines_1_1 = lines_1.next(); !lines_1_1.done; lines_1_1 = lines_1.next()) { - var line = lines_1_1.value; - if (!line.length) { - continue; - } - var i = 0; - for (; i < line.length && i < indentation; i++) { - if (!isWhiteSpaceLike(line.charCodeAt(i))) { - break; - } - } - if (i < indentation) { - indentation = i; - } - if (indentation === 0) { - return 0; - } - } - } - catch (e_53_1) { e_53 = { error: e_53_1 }; } - finally { - try { - if (lines_1_1 && !lines_1_1.done && (_t = lines_1.return)) _t.call(lines_1); - } - finally { if (e_53) throw e_53.error; } - } - return indentation === MAX_SMI_X86 ? void 0 : indentation; -} -function isStringLiteralLike(node) { - return node.kind === 11 /* StringLiteral */ || node.kind === 15 /* NoSubstitutionTemplateLiteral */; -} -function isJSDocLinkLike(node) { - return node.kind === 331 /* JSDocLink */ || node.kind === 332 /* JSDocLinkCode */ || node.kind === 333 /* JSDocLinkPlain */; -} -function hasRestParameter(s) { - var last2 = lastOrUndefined(s.parameters); - return !!last2 && isRestParameter(last2); -} -function isRestParameter(node) { - var type = isJSDocParameterTag(node) ? node.typeExpression && node.typeExpression.type : node.type; - return node.dotDotDotToken !== void 0 || !!type && type.kind === 325 /* JSDocVariadicType */; -} -// src/compiler/utilities.ts -var resolvingEmptyArray = []; -var externalHelpersModuleNameText = "tslib"; -var defaultMaximumTruncationLength = 160; -var noTruncationMaximumTruncationLength = 1e6; -function getDeclarationOfKind(symbol, kind) { - var e_54, _t; - var declarations = symbol.declarations; - if (declarations) { - try { - for (var declarations_1 = __values(declarations), declarations_1_1 = declarations_1.next(); !declarations_1_1.done; declarations_1_1 = declarations_1.next()) { - var declaration = declarations_1_1.value; - if (declaration.kind === kind) { - return declaration; - } - } - } - catch (e_54_1) { e_54 = { error: e_54_1 }; } - finally { - try { - if (declarations_1_1 && !declarations_1_1.done && (_t = declarations_1.return)) _t.call(declarations_1); - } - finally { if (e_54) throw e_54.error; } - } - } - return void 0; -} -function getDeclarationsOfKind(symbol, kind) { - return filter(symbol.declarations || emptyArray, function (d) { return d.kind === kind; }); -} -function createSymbolTable(symbols) { - var e_55, _t; - var result = /* @__PURE__ */ new Map(); - if (symbols) { - try { - for (var symbols_1 = __values(symbols), symbols_1_1 = symbols_1.next(); !symbols_1_1.done; symbols_1_1 = symbols_1.next()) { - var symbol = symbols_1_1.value; - result.set(symbol.escapedName, symbol); - } - } - catch (e_55_1) { e_55 = { error: e_55_1 }; } - finally { - try { - if (symbols_1_1 && !symbols_1_1.done && (_t = symbols_1.return)) _t.call(symbols_1); - } - finally { if (e_55) throw e_55.error; } - } - } - return result; -} -function isTransientSymbol(symbol) { - return (symbol.flags & 33554432 /* Transient */) !== 0; -} -var stringWriter = createSingleLineStringWriter(); -function createSingleLineStringWriter() { - var str = ""; - var writeText = function (text) { return str += text; }; - return { - getText: function () { return str; }, - write: writeText, - rawWrite: writeText, - writeKeyword: writeText, - writeOperator: writeText, - writePunctuation: writeText, - writeSpace: writeText, - writeStringLiteral: writeText, - writeLiteral: writeText, - writeParameter: writeText, - writeProperty: writeText, - writeSymbol: function (s, _) { return writeText(s); }, - writeTrailingSemicolon: writeText, - writeComment: writeText, - getTextPos: function () { return str.length; }, - getLine: function () { return 0; }, - getColumn: function () { return 0; }, - getIndent: function () { return 0; }, - isAtStartOfLine: function () { return false; }, - hasTrailingComment: function () { return false; }, - hasTrailingWhitespace: function () { return !!str.length && isWhiteSpaceLike(str.charCodeAt(str.length - 1)); }, - // Completely ignore indentation for string writers. And map newlines to - // a single space. - writeLine: function () { return str += " "; }, - increaseIndent: noop, - decreaseIndent: noop, - clear: function () { return str = ""; } - }; -} -function changesAffectModuleResolution(oldOptions, newOptions) { - return oldOptions.configFilePath !== newOptions.configFilePath || optionsHaveModuleResolutionChanges(oldOptions, newOptions); -} -function optionsHaveModuleResolutionChanges(oldOptions, newOptions) { - return optionsHaveChanges(oldOptions, newOptions, moduleResolutionOptionDeclarations); -} -function changesAffectingProgramStructure(oldOptions, newOptions) { - return optionsHaveChanges(oldOptions, newOptions, optionsAffectingProgramStructure); -} -function optionsHaveChanges(oldOptions, newOptions, optionDeclarations2) { - return oldOptions !== newOptions && optionDeclarations2.some(function (o) { return !isJsonEqual(getCompilerOptionValue(oldOptions, o), getCompilerOptionValue(newOptions, o)); }); -} -function forEachAncestor(node, callback) { - while (true) { - var res = callback(node); - if (res === "quit") - return void 0; - if (res !== void 0) - return res; - if (isSourceFile(node)) - return void 0; - node = node.parent; - } -} -function forEachEntry(map2, callback) { - var e_56, _t; - var iterator = map2.entries(); - try { - for (var iterator_3 = __values(iterator), iterator_3_1 = iterator_3.next(); !iterator_3_1.done; iterator_3_1 = iterator_3.next()) { - var _u = __read(iterator_3_1.value, 2), key = _u[0], value = _u[1]; - var result = callback(value, key); - if (result) { - return result; - } - } - } - catch (e_56_1) { e_56 = { error: e_56_1 }; } - finally { - try { - if (iterator_3_1 && !iterator_3_1.done && (_t = iterator_3.return)) _t.call(iterator_3); - } - finally { if (e_56) throw e_56.error; } - } - return void 0; -} -function forEachKey(map2, callback) { - var e_57, _t; - var iterator = map2.keys(); - try { - for (var iterator_4 = __values(iterator), iterator_4_1 = iterator_4.next(); !iterator_4_1.done; iterator_4_1 = iterator_4.next()) { - var key = iterator_4_1.value; - var result = callback(key); - if (result) { - return result; - } - } - } - catch (e_57_1) { e_57 = { error: e_57_1 }; } - finally { - try { - if (iterator_4_1 && !iterator_4_1.done && (_t = iterator_4.return)) _t.call(iterator_4); - } - finally { if (e_57) throw e_57.error; } - } - return void 0; -} -function copyEntries(source, target) { - source.forEach(function (value, key) { - target.set(key, value); - }); -} -function usingSingleLineStringWriter(action) { - var oldString = stringWriter.getText(); - try { - action(stringWriter); - return stringWriter.getText(); - } - finally { - stringWriter.clear(); - stringWriter.writeKeyword(oldString); - } -} -function getFullWidth(node) { - return node.end - node.pos; -} -function getResolvedModule(sourceFile, moduleNameText, mode) { - var _a, _b; - return (_b = (_a = sourceFile == null ? void 0 : sourceFile.resolvedModules) == null ? void 0 : _a.get(moduleNameText, mode)) == null ? void 0 : _b.resolvedModule; -} -function setResolvedModule(sourceFile, moduleNameText, resolvedModule, mode) { - if (!sourceFile.resolvedModules) { - sourceFile.resolvedModules = createModeAwareCache(); - } - sourceFile.resolvedModules.set(moduleNameText, mode, resolvedModule); -} -function setResolvedTypeReferenceDirective(sourceFile, typeReferenceDirectiveName, resolvedTypeReferenceDirective, mode) { - if (!sourceFile.resolvedTypeReferenceDirectiveNames) { - sourceFile.resolvedTypeReferenceDirectiveNames = createModeAwareCache(); - } - sourceFile.resolvedTypeReferenceDirectiveNames.set(typeReferenceDirectiveName, mode, resolvedTypeReferenceDirective); -} -function getResolvedTypeReferenceDirective(sourceFile, typeReferenceDirectiveName, mode) { - var _a, _b; - return (_b = (_a = sourceFile == null ? void 0 : sourceFile.resolvedTypeReferenceDirectiveNames) == null ? void 0 : _a.get(typeReferenceDirectiveName, mode)) == null ? void 0 : _b.resolvedTypeReferenceDirective; -} -function projectReferenceIsEqualTo(oldRef, newRef) { - return oldRef.path === newRef.path && !oldRef.prepend === !newRef.prepend && !oldRef.circular === !newRef.circular; -} -function moduleResolutionIsEqualTo(oldResolution, newResolution) { - return oldResolution === newResolution || oldResolution.resolvedModule === newResolution.resolvedModule || !!oldResolution.resolvedModule && !!newResolution.resolvedModule && oldResolution.resolvedModule.isExternalLibraryImport === newResolution.resolvedModule.isExternalLibraryImport && oldResolution.resolvedModule.extension === newResolution.resolvedModule.extension && oldResolution.resolvedModule.resolvedFileName === newResolution.resolvedModule.resolvedFileName && oldResolution.resolvedModule.originalPath === newResolution.resolvedModule.originalPath && packageIdIsEqual(oldResolution.resolvedModule.packageId, newResolution.resolvedModule.packageId) && oldResolution.node10Result === newResolution.node10Result; -} -function createModuleNotFoundChain(sourceFile, host, moduleReference, mode, packageName) { - var _a, _b; - var node10Result = (_b = (_a = sourceFile.resolvedModules) == null ? void 0 : _a.get(moduleReference, mode)) == null ? void 0 : _b.node10Result; - var result = node10Result ? chainDiagnosticMessages( - /*details*/ - void 0, Diagnostics.There_are_types_at_0_but_this_result_could_not_be_resolved_when_respecting_package_json_exports_The_1_library_may_need_to_update_its_package_json_or_typings, node10Result, node10Result.indexOf(nodeModulesPathPart + "@types/") > -1 ? "@types/".concat(mangleScopedPackageName(packageName)) : packageName) : host.typesPackageExists(packageName) ? chainDiagnosticMessages( - /*details*/ - void 0, Diagnostics.If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_Slash_Slashgithub_com_SlashDefinitelyTyped_SlashDefinitelyTyped_Slashtree_Slashmaster_Slashtypes_Slash_1, packageName, mangleScopedPackageName(packageName)) : host.packageBundlesTypes(packageName) ? chainDiagnosticMessages( - /*details*/ - void 0, Diagnostics.If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_declare_module_1, packageName, moduleReference) : chainDiagnosticMessages( - /*details*/ - void 0, Diagnostics.Try_npm_i_save_dev_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare_module_0, moduleReference, mangleScopedPackageName(packageName)); - if (result) - result.repopulateInfo = function () { return ({ moduleReference: moduleReference, mode: mode, packageName: packageName === moduleReference ? void 0 : packageName }); }; - return result; -} -function packageIdIsEqual(a, b) { - return a === b || !!a && !!b && a.name === b.name && a.subModuleName === b.subModuleName && a.version === b.version; -} -function packageIdToPackageName(_t) { - var name = _t.name, subModuleName = _t.subModuleName; - return subModuleName ? "".concat(name, "/").concat(subModuleName) : name; -} -function packageIdToString(packageId) { - return "".concat(packageIdToPackageName(packageId), "@").concat(packageId.version); -} -function typeDirectiveIsEqualTo(oldResolution, newResolution) { - return oldResolution === newResolution || oldResolution.resolvedTypeReferenceDirective === newResolution.resolvedTypeReferenceDirective || !!oldResolution.resolvedTypeReferenceDirective && !!newResolution.resolvedTypeReferenceDirective && oldResolution.resolvedTypeReferenceDirective.resolvedFileName === newResolution.resolvedTypeReferenceDirective.resolvedFileName && !!oldResolution.resolvedTypeReferenceDirective.primary === !!newResolution.resolvedTypeReferenceDirective.primary && oldResolution.resolvedTypeReferenceDirective.originalPath === newResolution.resolvedTypeReferenceDirective.originalPath; -} -function hasChangesInResolutions(names, newSourceFile, newResolutions, oldResolutions, comparer, nameAndModeGetter) { - Debug.assert(names.length === newResolutions.length); - for (var i = 0; i < names.length; i++) { - var newResolution = newResolutions[i]; - var entry = names[i]; - var name_6 = nameAndModeGetter.getName(entry); - var mode = nameAndModeGetter.getMode(entry, newSourceFile); - var oldResolution = oldResolutions && oldResolutions.get(name_6, mode); - var changed = oldResolution ? !newResolution || !comparer(oldResolution, newResolution) : newResolution; - if (changed) { - return true; - } - } - return false; -} -function containsParseError(node) { - aggregateChildData(node); - return (node.flags & 1048576 /* ThisNodeOrAnySubNodesHasError */) !== 0; -} -function aggregateChildData(node) { - if (!(node.flags & 2097152 /* HasAggregatedChildData */)) { - var thisNodeOrAnySubNodesHasError = (node.flags & 262144 /* ThisNodeHasError */) !== 0 || forEachChild(node, containsParseError); - if (thisNodeOrAnySubNodesHasError) { - node.flags |= 1048576 /* ThisNodeOrAnySubNodesHasError */; - } - node.flags |= 2097152 /* HasAggregatedChildData */; - } -} -function getSourceFileOfNode(node) { - while (node && node.kind !== 312 /* SourceFile */) { - node = node.parent; - } - return node; -} -function getSourceFileOfModule(module2) { - return getSourceFileOfNode(module2.valueDeclaration || getNonAugmentationDeclaration(module2)); -} -function isPlainJsFile(file, checkJs) { - return !!file && (file.scriptKind === 1 /* JS */ || file.scriptKind === 2 /* JSX */) && !file.checkJsDirective && checkJs === void 0; -} -function isStatementWithLocals(node) { - switch (node.kind) { - case 241 /* Block */: - case 269 /* CaseBlock */: - case 248 /* ForStatement */: - case 249 /* ForInStatement */: - case 250 /* ForOfStatement */: - return true; - } - return false; -} -function getStartPositionOfLine(line, sourceFile) { - Debug.assert(line >= 0); - return getLineStarts(sourceFile)[line]; -} -function nodePosToString(node) { - var file = getSourceFileOfNode(node); - var loc = getLineAndCharacterOfPosition(file, node.pos); - return "".concat(file.fileName, "(").concat(loc.line + 1, ",").concat(loc.character + 1, ")"); -} -function getEndLinePosition(line, sourceFile) { - Debug.assert(line >= 0); - var lineStarts = getLineStarts(sourceFile); - var lineIndex = line; - var sourceText = sourceFile.text; - if (lineIndex + 1 === lineStarts.length) { - return sourceText.length - 1; - } - else { - var start2 = lineStarts[lineIndex]; - var pos = lineStarts[lineIndex + 1] - 1; - Debug.assert(isLineBreak(sourceText.charCodeAt(pos))); - while (start2 <= pos && isLineBreak(sourceText.charCodeAt(pos))) { - pos--; - } - return pos; - } -} -function isFileLevelUniqueName(sourceFile, name, hasGlobalName) { - return !(hasGlobalName && hasGlobalName(name)) && !sourceFile.identifiers.has(name); -} -function nodeIsMissing(node) { - if (node === void 0) { - return true; - } - return node.pos === node.end && node.pos >= 0 && node.kind !== 1 /* EndOfFileToken */; -} -function nodeIsPresent(node) { - return !nodeIsMissing(node); -} -function isGrammarError(parent2, child) { - if (isTypeParameterDeclaration(parent2)) - return child === parent2.expression; - if (isClassStaticBlockDeclaration(parent2)) - return child === parent2.modifiers; - if (isPropertySignature(parent2)) - return child === parent2.initializer; - if (isPropertyDeclaration(parent2)) - return child === parent2.questionToken && isAutoAccessorPropertyDeclaration(parent2); - if (isPropertyAssignment(parent2)) - return child === parent2.modifiers || child === parent2.questionToken || child === parent2.exclamationToken || isGrammarErrorElement(parent2.modifiers, child, isModifierLike); - if (isShorthandPropertyAssignment(parent2)) - return child === parent2.equalsToken || child === parent2.modifiers || child === parent2.questionToken || child === parent2.exclamationToken || isGrammarErrorElement(parent2.modifiers, child, isModifierLike); - if (isMethodDeclaration(parent2)) - return child === parent2.exclamationToken; - if (isConstructorDeclaration(parent2)) - return child === parent2.typeParameters || child === parent2.type || isGrammarErrorElement(parent2.typeParameters, child, isTypeParameterDeclaration); - if (isGetAccessorDeclaration(parent2)) - return child === parent2.typeParameters || isGrammarErrorElement(parent2.typeParameters, child, isTypeParameterDeclaration); - if (isSetAccessorDeclaration(parent2)) - return child === parent2.typeParameters || child === parent2.type || isGrammarErrorElement(parent2.typeParameters, child, isTypeParameterDeclaration); - if (isNamespaceExportDeclaration(parent2)) - return child === parent2.modifiers || isGrammarErrorElement(parent2.modifiers, child, isModifierLike); - return false; -} -function isGrammarErrorElement(nodeArray, child, isElement) { - if (!nodeArray || isArray(child) || !isElement(child)) - return false; - return contains(nodeArray, child); -} -function insertStatementsAfterPrologue(to, from, isPrologueDirective2) { - if (from === void 0 || from.length === 0) - return to; - var statementIndex = 0; - for (; statementIndex < to.length; ++statementIndex) { - if (!isPrologueDirective2(to[statementIndex])) { - break; - } - } - to.splice.apply(to, __spreadArray([statementIndex, 0], __read(from), false)); - return to; -} -function insertStatementAfterPrologue(to, statement, isPrologueDirective2) { - if (statement === void 0) - return to; - var statementIndex = 0; - for (; statementIndex < to.length; ++statementIndex) { - if (!isPrologueDirective2(to[statementIndex])) { - break; - } - } - to.splice(statementIndex, 0, statement); - return to; -} -function isAnyPrologueDirective(node) { - return isPrologueDirective(node) || !!(getEmitFlags(node) & 2097152 /* CustomPrologue */); -} -function insertStatementsAfterStandardPrologue(to, from) { - return insertStatementsAfterPrologue(to, from, isPrologueDirective); -} -function insertStatementsAfterCustomPrologue(to, from) { - return insertStatementsAfterPrologue(to, from, isAnyPrologueDirective); -} -function insertStatementAfterStandardPrologue(to, statement) { - return insertStatementAfterPrologue(to, statement, isPrologueDirective); -} -function insertStatementAfterCustomPrologue(to, statement) { - return insertStatementAfterPrologue(to, statement, isAnyPrologueDirective); -} -function isRecognizedTripleSlashComment(text, commentPos, commentEnd) { - if (text.charCodeAt(commentPos + 1) === 47 /* slash */ && commentPos + 2 < commentEnd && text.charCodeAt(commentPos + 2) === 47 /* slash */) { - var textSubStr = text.substring(commentPos, commentEnd); - return fullTripleSlashReferencePathRegEx.test(textSubStr) || fullTripleSlashAMDReferencePathRegEx.test(textSubStr) || fullTripleSlashAMDModuleRegEx.test(textSubStr) || fullTripleSlashReferenceTypeReferenceDirectiveRegEx.test(textSubStr) || fullTripleSlashLibReferenceRegEx.test(textSubStr) || defaultLibReferenceRegEx.test(textSubStr) ? true : false; - } - return false; -} -function isPinnedComment(text, start2) { - return text.charCodeAt(start2 + 1) === 42 /* asterisk */ && text.charCodeAt(start2 + 2) === 33 /* exclamation */; -} -function createCommentDirectivesMap(sourceFile, commentDirectives) { - var directivesByLine = new Map(commentDirectives.map(function (commentDirective) { return [ - "".concat(getLineAndCharacterOfPosition(sourceFile, commentDirective.range.end).line), - commentDirective - ]; })); - var usedLines = /* @__PURE__ */ new Map(); - return { getUnusedExpectations: getUnusedExpectations, markUsed: markUsed }; - function getUnusedExpectations() { - return arrayFrom(directivesByLine.entries()).filter(function (_t) { - var _u = __read(_t, 2), line = _u[0], directive = _u[1]; - return directive.type === 0 /* ExpectError */ && !usedLines.get(line); - }).map(function (_t) { - var _u = __read(_t, 2), _ = _u[0], directive = _u[1]; - return directive; - }); - } - function markUsed(line) { - if (!directivesByLine.has("".concat(line))) { - return false; - } - usedLines.set("".concat(line), true); - return true; - } -} -function getTokenPosOfNode(node, sourceFile, includeJsDoc) { - if (nodeIsMissing(node)) { - return node.pos; - } - if (isJSDocNode(node) || node.kind === 12 /* JsxText */) { - return skipTrivia((sourceFile || getSourceFileOfNode(node)).text, node.pos, - /*stopAfterLineBreak*/ - false, - /*stopAtComments*/ - true); - } - if (includeJsDoc && hasJSDocNodes(node)) { - return getTokenPosOfNode(node.jsDoc[0], sourceFile); - } - if (node.kind === 358 /* SyntaxList */ && node._children.length > 0) { - return getTokenPosOfNode(node._children[0], sourceFile, includeJsDoc); - } - return skipTrivia((sourceFile || getSourceFileOfNode(node)).text, node.pos, - /*stopAfterLineBreak*/ - false, - /*stopAtComments*/ - false, isInJSDoc(node)); -} -function getNonDecoratorTokenPosOfNode(node, sourceFile) { - var lastDecorator = !nodeIsMissing(node) && canHaveModifiers(node) ? findLast(node.modifiers, isDecorator) : void 0; - if (!lastDecorator) { - return getTokenPosOfNode(node, sourceFile); - } - return skipTrivia((sourceFile || getSourceFileOfNode(node)).text, lastDecorator.end); -} -function getSourceTextOfNodeFromSourceFile(sourceFile, node, includeTrivia) { - if (includeTrivia === void 0) { includeTrivia = false; } - return getTextOfNodeFromSourceText(sourceFile.text, node, includeTrivia); -} -function isJSDocTypeExpressionOrChild(node) { - return !!findAncestor(node, isJSDocTypeExpression); -} -function isExportNamespaceAsDefaultDeclaration(node) { - return !!(isExportDeclaration(node) && node.exportClause && isNamespaceExport(node.exportClause) && node.exportClause.name.escapedText === "default"); -} -function getTextOfNodeFromSourceText(sourceText, node, includeTrivia) { - if (includeTrivia === void 0) { includeTrivia = false; } - if (nodeIsMissing(node)) { - return ""; - } - var text = sourceText.substring(includeTrivia ? node.pos : skipTrivia(sourceText, node.pos), node.end); - if (isJSDocTypeExpressionOrChild(node)) { - text = text.split(/\r\n|\n|\r/).map(function (line) { return trimStringStart(line.replace(/^\s*\*/, "")); }).join("\n"); - } - return text; -} -function getTextOfNode(node, includeTrivia) { - if (includeTrivia === void 0) { includeTrivia = false; } - return getSourceTextOfNodeFromSourceFile(getSourceFileOfNode(node), node, includeTrivia); -} -function getPos(range) { - return range.pos; -} -function indexOfNode(nodeArray, node) { - return binarySearch(nodeArray, node, getPos, compareValues); -} -function getEmitFlags(node) { - var emitNode = node.emitNode; - return emitNode && emitNode.flags || 0; -} -function getInternalEmitFlags(node) { - var emitNode = node.emitNode; - return emitNode && emitNode.internalFlags || 0; -} -function getScriptTargetFeatures() { - return new Map(Object.entries({ - Array: new Map(Object.entries({ - es2015: [ - "find", - "findIndex", - "fill", - "copyWithin", - "entries", - "keys", - "values" - ], - es2016: [ - "includes" - ], - es2019: [ - "flat", - "flatMap" - ], - es2022: [ - "at" - ], - es2023: [ - "findLastIndex", - "findLast" - ] - })), - Iterator: new Map(Object.entries({ - es2015: emptyArray - })), - AsyncIterator: new Map(Object.entries({ - es2015: emptyArray - })), - Atomics: new Map(Object.entries({ - es2017: emptyArray - })), - SharedArrayBuffer: new Map(Object.entries({ - es2017: emptyArray - })), - AsyncIterable: new Map(Object.entries({ - es2018: emptyArray - })), - AsyncIterableIterator: new Map(Object.entries({ - es2018: emptyArray - })), - AsyncGenerator: new Map(Object.entries({ - es2018: emptyArray - })), - AsyncGeneratorFunction: new Map(Object.entries({ - es2018: emptyArray - })), - RegExp: new Map(Object.entries({ - es2015: [ - "flags", - "sticky", - "unicode" - ], - es2018: [ - "dotAll" - ] - })), - Reflect: new Map(Object.entries({ - es2015: [ - "apply", - "construct", - "defineProperty", - "deleteProperty", - "get", - " getOwnPropertyDescriptor", - "getPrototypeOf", - "has", - "isExtensible", - "ownKeys", - "preventExtensions", - "set", - "setPrototypeOf" - ] - })), - ArrayConstructor: new Map(Object.entries({ - es2015: [ - "from", - "of" - ] - })), - ObjectConstructor: new Map(Object.entries({ - es2015: [ - "assign", - "getOwnPropertySymbols", - "keys", - "is", - "setPrototypeOf" - ], - es2017: [ - "values", - "entries", - "getOwnPropertyDescriptors" - ], - es2019: [ - "fromEntries" - ], - es2022: [ - "hasOwn" - ] - })), - NumberConstructor: new Map(Object.entries({ - es2015: [ - "isFinite", - "isInteger", - "isNaN", - "isSafeInteger", - "parseFloat", - "parseInt" - ] - })), - Math: new Map(Object.entries({ - es2015: [ - "clz32", - "imul", - "sign", - "log10", - "log2", - "log1p", - "expm1", - "cosh", - "sinh", - "tanh", - "acosh", - "asinh", - "atanh", - "hypot", - "trunc", - "fround", - "cbrt" - ] - })), - Map: new Map(Object.entries({ - es2015: [ - "entries", - "keys", - "values" - ] - })), - Set: new Map(Object.entries({ - es2015: [ - "entries", - "keys", - "values" - ] - })), - PromiseConstructor: new Map(Object.entries({ - es2015: [ - "all", - "race", - "reject", - "resolve" - ], - es2020: [ - "allSettled" - ], - es2021: [ - "any" - ] - })), - Symbol: new Map(Object.entries({ - es2015: [ - "for", - "keyFor" - ], - es2019: [ - "description" - ] - })), - WeakMap: new Map(Object.entries({ - es2015: [ - "entries", - "keys", - "values" - ] - })), - WeakSet: new Map(Object.entries({ - es2015: [ - "entries", - "keys", - "values" - ] - })), - String: new Map(Object.entries({ - es2015: [ - "codePointAt", - "includes", - "endsWith", - "normalize", - "repeat", - "startsWith", - "anchor", - "big", - "blink", - "bold", - "fixed", - "fontcolor", - "fontsize", - "italics", - "link", - "small", - "strike", - "sub", - "sup" - ], - es2017: [ - "padStart", - "padEnd" - ], - es2019: [ - "trimStart", - "trimEnd", - "trimLeft", - "trimRight" - ], - es2020: [ - "matchAll" - ], - es2021: [ - "replaceAll" - ], - es2022: [ - "at" - ] - })), - StringConstructor: new Map(Object.entries({ - es2015: [ - "fromCodePoint", - "raw" - ] - })), - DateTimeFormat: new Map(Object.entries({ - es2017: [ - "formatToParts" - ] - })), - Promise: new Map(Object.entries({ - es2015: emptyArray, - es2018: [ - "finally" - ] - })), - RegExpMatchArray: new Map(Object.entries({ - es2018: [ - "groups" - ] - })), - RegExpExecArray: new Map(Object.entries({ - es2018: [ - "groups" - ] - })), - Intl: new Map(Object.entries({ - es2018: [ - "PluralRules" - ] - })), - NumberFormat: new Map(Object.entries({ - es2018: [ - "formatToParts" - ] - })), - SymbolConstructor: new Map(Object.entries({ - es2020: [ - "matchAll" - ] - })), - DataView: new Map(Object.entries({ - es2020: [ - "setBigInt64", - "setBigUint64", - "getBigInt64", - "getBigUint64" - ] - })), - BigInt: new Map(Object.entries({ - es2020: emptyArray - })), - RelativeTimeFormat: new Map(Object.entries({ - es2020: [ - "format", - "formatToParts", - "resolvedOptions" - ] - })), - Int8Array: new Map(Object.entries({ - es2022: [ - "at" - ], - es2023: [ - "findLastIndex", - "findLast" - ] - })), - Uint8Array: new Map(Object.entries({ - es2022: [ - "at" - ], - es2023: [ - "findLastIndex", - "findLast" - ] - })), - Uint8ClampedArray: new Map(Object.entries({ - es2022: [ - "at" - ], - es2023: [ - "findLastIndex", - "findLast" - ] - })), - Int16Array: new Map(Object.entries({ - es2022: [ - "at" - ], - es2023: [ - "findLastIndex", - "findLast" - ] - })), - Uint16Array: new Map(Object.entries({ - es2022: [ - "at" - ], - es2023: [ - "findLastIndex", - "findLast" - ] - })), - Int32Array: new Map(Object.entries({ - es2022: [ - "at" - ], - es2023: [ - "findLastIndex", - "findLast" - ] - })), - Uint32Array: new Map(Object.entries({ - es2022: [ - "at" - ], - es2023: [ - "findLastIndex", - "findLast" - ] - })), - Float32Array: new Map(Object.entries({ - es2022: [ - "at" - ], - es2023: [ - "findLastIndex", - "findLast" - ] - })), - Float64Array: new Map(Object.entries({ - es2022: [ - "at" - ], - es2023: [ - "findLastIndex", - "findLast" - ] - })), - BigInt64Array: new Map(Object.entries({ - es2020: emptyArray, - es2022: [ - "at" - ], - es2023: [ - "findLastIndex", - "findLast" - ] - })), - BigUint64Array: new Map(Object.entries({ - es2020: emptyArray, - es2022: [ - "at" - ], - es2023: [ - "findLastIndex", - "findLast" - ] - })), - Error: new Map(Object.entries({ - es2022: [ - "cause" - ] - })) - })); -} -var GetLiteralTextFlags = /* @__PURE__ */ (function (GetLiteralTextFlags2) { - GetLiteralTextFlags2[GetLiteralTextFlags2["None"] = 0] = "None"; - GetLiteralTextFlags2[GetLiteralTextFlags2["NeverAsciiEscape"] = 1] = "NeverAsciiEscape"; - GetLiteralTextFlags2[GetLiteralTextFlags2["JsxAttributeEscape"] = 2] = "JsxAttributeEscape"; - GetLiteralTextFlags2[GetLiteralTextFlags2["TerminateUnterminatedLiterals"] = 4] = "TerminateUnterminatedLiterals"; - GetLiteralTextFlags2[GetLiteralTextFlags2["AllowNumericSeparator"] = 8] = "AllowNumericSeparator"; - return GetLiteralTextFlags2; -})(GetLiteralTextFlags || {}); -function getLiteralText(node, sourceFile, flags) { - var _t; - if (sourceFile && canUseOriginalText(node, flags)) { - return getSourceTextOfNodeFromSourceFile(sourceFile, node); - } - switch (node.kind) { - case 11 /* StringLiteral */: { - var escapeText = flags & 2 /* JsxAttributeEscape */ ? escapeJsxAttributeString : flags & 1 /* NeverAsciiEscape */ || getEmitFlags(node) & 16777216 /* NoAsciiEscaping */ ? escapeString : escapeNonAsciiString; - if (node.singleQuote) { - return "'" + escapeText(node.text, 39 /* singleQuote */) + "'"; - } - else { - return '"' + escapeText(node.text, 34 /* doubleQuote */) + '"'; - } - } - case 15 /* NoSubstitutionTemplateLiteral */: - case 16 /* TemplateHead */: - case 17 /* TemplateMiddle */: - case 18 /* TemplateTail */: { - var escapeText = flags & 1 /* NeverAsciiEscape */ || getEmitFlags(node) & 16777216 /* NoAsciiEscaping */ ? escapeString : escapeNonAsciiString; - var rawText = (_t = node.rawText) !== null && _t !== void 0 ? _t : escapeTemplateSubstitution(escapeText(node.text, 96 /* backtick */)); - switch (node.kind) { - case 15 /* NoSubstitutionTemplateLiteral */: - return "`" + rawText + "`"; - case 16 /* TemplateHead */: - return "`" + rawText + "${"; - case 17 /* TemplateMiddle */: - return "}" + rawText + "${"; - case 18 /* TemplateTail */: - return "}" + rawText + "`"; - } - break; - } - case 9 /* NumericLiteral */: - case 10 /* BigIntLiteral */: - return node.text; - case 14 /* RegularExpressionLiteral */: - if (flags & 4 /* TerminateUnterminatedLiterals */ && node.isUnterminated) { - return node.text + (node.text.charCodeAt(node.text.length - 1) === 92 /* backslash */ ? " /" : "/"); - } - return node.text; - } - return Debug.fail("Literal kind '".concat(node.kind, "' not accounted for.")); -} -function canUseOriginalText(node, flags) { - if (nodeIsSynthesized(node) || !node.parent || flags & 4 /* TerminateUnterminatedLiterals */ && node.isUnterminated) { - return false; - } - if (isNumericLiteral(node)) { - if (node.numericLiteralFlags & 26656 /* IsInvalid */) { - return false; - } - if (node.numericLiteralFlags & 512 /* ContainsSeparator */) { - return !!(flags & 8 /* AllowNumericSeparator */); - } - } - return !isBigIntLiteral(node); -} -function getTextOfConstantValue(value) { - return isString(value) ? '"' + escapeNonAsciiString(value) + '"' : "" + value; -} -function makeIdentifierFromModuleName(moduleName) { - return getBaseFileName(moduleName).replace(/^(\d)/, "_$1").replace(/\W/g, "_"); -} -function isBlockOrCatchScoped(declaration) { - return (getCombinedNodeFlags(declaration) & 7 /* BlockScoped */) !== 0 || isCatchClauseVariableDeclarationOrBindingElement(declaration); -} -function isCatchClauseVariableDeclarationOrBindingElement(declaration) { - var node = getRootDeclaration(declaration); - return node.kind === 260 /* VariableDeclaration */ && node.parent.kind === 299 /* CatchClause */; -} -function isAmbientModule(node) { - return isModuleDeclaration(node) && (node.name.kind === 11 /* StringLiteral */ || isGlobalScopeAugmentation(node)); -} -function isModuleWithStringLiteralName(node) { - return isModuleDeclaration(node) && node.name.kind === 11 /* StringLiteral */; -} -function isNonGlobalAmbientModule(node) { - return isModuleDeclaration(node) && isStringLiteral(node.name); -} -function isEffectiveModuleDeclaration(node) { - return isModuleDeclaration(node) || isIdentifier(node); -} -function isShorthandAmbientModuleSymbol(moduleSymbol) { - return isShorthandAmbientModule(moduleSymbol.valueDeclaration); -} -function isShorthandAmbientModule(node) { - return !!node && node.kind === 267 /* ModuleDeclaration */ && !node.body; -} -function isBlockScopedContainerTopLevel(node) { - return node.kind === 312 /* SourceFile */ || node.kind === 267 /* ModuleDeclaration */ || isFunctionLikeOrClassStaticBlockDeclaration(node); -} -function isGlobalScopeAugmentation(module2) { - return !!(module2.flags & 2048 /* GlobalAugmentation */); -} -function isExternalModuleAugmentation(node) { - return isAmbientModule(node) && isModuleAugmentationExternal(node); -} -function isModuleAugmentationExternal(node) { - switch (node.parent.kind) { - case 312 /* SourceFile */: - return isExternalModule(node.parent); - case 268 /* ModuleBlock */: - return isAmbientModule(node.parent.parent) && isSourceFile(node.parent.parent.parent) && !isExternalModule(node.parent.parent.parent); - } - return false; -} -function getNonAugmentationDeclaration(symbol) { - var _a; - return (_a = symbol.declarations) == null ? void 0 : _a.find(function (d) { return !isExternalModuleAugmentation(d) && !(isModuleDeclaration(d) && isGlobalScopeAugmentation(d)); }); -} -function isCommonJSContainingModuleKind(kind) { - return kind === 1 /* CommonJS */ || kind === 100 /* Node16 */ || kind === 199 /* NodeNext */; -} -function isEffectiveExternalModule(node, compilerOptions) { - return isExternalModule(node) || isCommonJSContainingModuleKind(getEmitModuleKind(compilerOptions)) && !!node.commonJsModuleIndicator; -} -function isEffectiveStrictModeSourceFile(node, compilerOptions) { - switch (node.scriptKind) { - case 1 /* JS */: - case 3 /* TS */: - case 2 /* JSX */: - case 4 /* TSX */: - break; - default: - return false; - } - if (node.isDeclarationFile) { - return false; - } - if (getStrictOptionValue(compilerOptions, "alwaysStrict")) { - return true; - } - if (startsWithUseStrict(node.statements)) { - return true; - } - if (isExternalModule(node) || getIsolatedModules(compilerOptions)) { - if (getEmitModuleKind(compilerOptions) >= 5 /* ES2015 */) { - return true; - } - return !compilerOptions.noImplicitUseStrict; - } - return false; -} -function isAmbientPropertyDeclaration(node) { - return !!(node.flags & 33554432 /* Ambient */) || hasSyntacticModifier(node, 2 /* Ambient */); -} -function isBlockScope(node, parentNode) { - switch (node.kind) { - case 312 /* SourceFile */: - case 269 /* CaseBlock */: - case 299 /* CatchClause */: - case 267 /* ModuleDeclaration */: - case 248 /* ForStatement */: - case 249 /* ForInStatement */: - case 250 /* ForOfStatement */: - case 176 /* Constructor */: - case 174 /* MethodDeclaration */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - case 262 /* FunctionDeclaration */: - case 218 /* FunctionExpression */: - case 219 /* ArrowFunction */: - case 172 /* PropertyDeclaration */: - case 175 /* ClassStaticBlockDeclaration */: - return true; - case 241 /* Block */: - return !isFunctionLikeOrClassStaticBlockDeclaration(parentNode); - } - return false; -} -function isDeclarationWithTypeParameters(node) { - Debug.type(node); - switch (node.kind) { - case 345 /* JSDocCallbackTag */: - case 353 /* JSDocTypedefTag */: - case 330 /* JSDocSignature */: - return true; - default: - assertType(node); - return isDeclarationWithTypeParameterChildren(node); - } -} -function isDeclarationWithTypeParameterChildren(node) { - Debug.type(node); - switch (node.kind) { - case 179 /* CallSignature */: - case 180 /* ConstructSignature */: - case 173 /* MethodSignature */: - case 181 /* IndexSignature */: - case 184 /* FunctionType */: - case 185 /* ConstructorType */: - case 324 /* JSDocFunctionType */: - case 263 /* ClassDeclaration */: - case 231 /* ClassExpression */: - case 264 /* InterfaceDeclaration */: - case 265 /* TypeAliasDeclaration */: - case 352 /* JSDocTemplateTag */: - case 262 /* FunctionDeclaration */: - case 174 /* MethodDeclaration */: - case 176 /* Constructor */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - case 218 /* FunctionExpression */: - case 219 /* ArrowFunction */: - return true; - default: - assertType(node); - return false; - } -} -function isAnyImportSyntax(node) { - switch (node.kind) { - case 272 /* ImportDeclaration */: - case 271 /* ImportEqualsDeclaration */: - return true; - default: - return false; - } -} -function isAnyImportOrBareOrAccessedRequire(node) { - return isAnyImportSyntax(node) || isVariableDeclarationInitializedToBareOrAccessedRequire(node); -} -function isLateVisibilityPaintedStatement(node) { - switch (node.kind) { - case 272 /* ImportDeclaration */: - case 271 /* ImportEqualsDeclaration */: - case 243 /* VariableStatement */: - case 263 /* ClassDeclaration */: - case 262 /* FunctionDeclaration */: - case 267 /* ModuleDeclaration */: - case 265 /* TypeAliasDeclaration */: - case 264 /* InterfaceDeclaration */: - case 266 /* EnumDeclaration */: - return true; - default: - return false; - } -} -function hasPossibleExternalModuleReference(node) { - return isAnyImportOrReExport(node) || isModuleDeclaration(node) || isImportTypeNode(node) || isImportCall(node); -} -function isAnyImportOrReExport(node) { - return isAnyImportSyntax(node) || isExportDeclaration(node); -} -function getEnclosingContainer(node) { - return findAncestor(node.parent, function (n) { return !!(getContainerFlags(n) & 1 /* IsContainer */); }); -} -function getEnclosingBlockScopeContainer(node) { - return findAncestor(node.parent, function (current) { return isBlockScope(current, current.parent); }); -} -function forEachEnclosingBlockScopeContainer(node, cb) { - var container = getEnclosingBlockScopeContainer(node); - while (container) { - cb(container); - container = getEnclosingBlockScopeContainer(container); - } -} -function declarationNameToString(name) { - return !name || getFullWidth(name) === 0 ? "(Missing)" : getTextOfNode(name); -} -function getNameFromIndexInfo(info) { - return info.declaration ? declarationNameToString(info.declaration.parameters[0].name) : void 0; -} -function isComputedNonLiteralName(name) { - return name.kind === 167 /* ComputedPropertyName */ && !isStringOrNumericLiteralLike(name.expression); -} -function tryGetTextOfPropertyName(name) { - var _a; - switch (name.kind) { - case 80 /* Identifier */: - case 81 /* PrivateIdentifier */: - return ((_a = name.emitNode) == null ? void 0 : _a.autoGenerate) ? void 0 : name.escapedText; - case 11 /* StringLiteral */: - case 9 /* NumericLiteral */: - case 15 /* NoSubstitutionTemplateLiteral */: - return escapeLeadingUnderscores(name.text); - case 167 /* ComputedPropertyName */: - if (isStringOrNumericLiteralLike(name.expression)) - return escapeLeadingUnderscores(name.expression.text); - return void 0; - case 295 /* JsxNamespacedName */: - return getEscapedTextOfJsxNamespacedName(name); - default: - return Debug.assertNever(name); - } -} -function getTextOfPropertyName(name) { - return Debug.checkDefined(tryGetTextOfPropertyName(name)); -} -function entityNameToString(name) { - switch (name.kind) { - case 110 /* ThisKeyword */: - return "this"; - case 81 /* PrivateIdentifier */: - case 80 /* Identifier */: - return getFullWidth(name) === 0 ? idText(name) : getTextOfNode(name); - case 166 /* QualifiedName */: - return entityNameToString(name.left) + "." + entityNameToString(name.right); - case 211 /* PropertyAccessExpression */: - if (isIdentifier(name.name) || isPrivateIdentifier(name.name)) { - return entityNameToString(name.expression) + "." + entityNameToString(name.name); - } - else { - return Debug.assertNever(name.name); - } - case 318 /* JSDocMemberName */: - return entityNameToString(name.left) + entityNameToString(name.right); - case 295 /* JsxNamespacedName */: - return entityNameToString(name.namespace) + ":" + entityNameToString(name.name); - default: - return Debug.assertNever(name); - } -} -function createDiagnosticForNode(node, message) { - var args = []; - for (var _t = 2; _t < arguments.length; _t++) { - args[_t - 2] = arguments[_t]; - } - var sourceFile = getSourceFileOfNode(node); - return createDiagnosticForNodeInSourceFile.apply(void 0, __spreadArray([sourceFile, node, message], __read(args), false)); -} -function createDiagnosticForNodeArray(sourceFile, nodes, message) { - var args = []; - for (var _t = 3; _t < arguments.length; _t++) { - args[_t - 3] = arguments[_t]; - } - var start2 = skipTrivia(sourceFile.text, nodes.pos); - return createFileDiagnostic.apply(void 0, __spreadArray([sourceFile, start2, nodes.end - start2, message], __read(args), false)); -} -function createDiagnosticForNodeInSourceFile(sourceFile, node, message) { - var args = []; - for (var _t = 3; _t < arguments.length; _t++) { - args[_t - 3] = arguments[_t]; - } - var span = getErrorSpanForNode(sourceFile, node); - return createFileDiagnostic.apply(void 0, __spreadArray([sourceFile, span.start, span.length, message], __read(args), false)); -} -function createDiagnosticForNodeFromMessageChain(sourceFile, node, messageChain, relatedInformation) { - var span = getErrorSpanForNode(sourceFile, node); - return createFileDiagnosticFromMessageChain(sourceFile, span.start, span.length, messageChain, relatedInformation); -} -function createDiagnosticForNodeArrayFromMessageChain(sourceFile, nodes, messageChain, relatedInformation) { - var start2 = skipTrivia(sourceFile.text, nodes.pos); - return createFileDiagnosticFromMessageChain(sourceFile, start2, nodes.end - start2, messageChain, relatedInformation); -} -function assertDiagnosticLocation(file, start2, length2) { - Debug.assertGreaterThanOrEqual(start2, 0); - Debug.assertGreaterThanOrEqual(length2, 0); - if (file) { - Debug.assertLessThanOrEqual(start2, file.text.length); - Debug.assertLessThanOrEqual(start2 + length2, file.text.length); - } -} -function createFileDiagnosticFromMessageChain(file, start2, length2, messageChain, relatedInformation) { - assertDiagnosticLocation(file, start2, length2); - return { - file: file, - start: start2, - length: length2, - code: messageChain.code, - category: messageChain.category, - messageText: messageChain.next ? messageChain : messageChain.messageText, - relatedInformation: relatedInformation - }; -} -function createDiagnosticForFileFromMessageChain(sourceFile, messageChain, relatedInformation) { - return { - file: sourceFile, - start: 0, - length: 0, - code: messageChain.code, - category: messageChain.category, - messageText: messageChain.next ? messageChain : messageChain.messageText, - relatedInformation: relatedInformation - }; -} -function createDiagnosticMessageChainFromDiagnostic(diagnostic) { - return typeof diagnostic.messageText === "string" ? { - code: diagnostic.code, - category: diagnostic.category, - messageText: diagnostic.messageText, - next: diagnostic.next - } : diagnostic.messageText; -} -function createDiagnosticForRange(sourceFile, range, message) { - return { - file: sourceFile, - start: range.pos, - length: range.end - range.pos, - code: message.code, - category: message.category, - messageText: message.message - }; -} -function getSpanOfTokenAtPosition(sourceFile, pos) { - var scanner2 = createScanner(sourceFile.languageVersion, - /*skipTrivia*/ - true, sourceFile.languageVariant, sourceFile.text, - /*onError*/ - void 0, pos); - scanner2.scan(); - var start2 = scanner2.getTokenStart(); - return createTextSpanFromBounds(start2, scanner2.getTokenEnd()); -} -function scanTokenAtPosition(sourceFile, pos) { - var scanner2 = createScanner(sourceFile.languageVersion, - /*skipTrivia*/ - true, sourceFile.languageVariant, sourceFile.text, - /*onError*/ - void 0, pos); - scanner2.scan(); - return scanner2.getToken(); -} -function getErrorSpanForArrowFunction(sourceFile, node) { - var pos = skipTrivia(sourceFile.text, node.pos); - if (node.body && node.body.kind === 241 /* Block */) { - var startLine = getLineAndCharacterOfPosition(sourceFile, node.body.pos).line; - var endLine = getLineAndCharacterOfPosition(sourceFile, node.body.end).line; - if (startLine < endLine) { - return createTextSpan(pos, getEndLinePosition(startLine, sourceFile) - pos + 1); - } - } - return createTextSpanFromBounds(pos, node.end); -} -function getErrorSpanForNode(sourceFile, node) { - var errorNode = node; - switch (node.kind) { - case 312 /* SourceFile */: { - var pos2 = skipTrivia(sourceFile.text, 0, - /*stopAfterLineBreak*/ - false); - if (pos2 === sourceFile.text.length) { - return createTextSpan(0, 0); - } - return getSpanOfTokenAtPosition(sourceFile, pos2); - } - case 260 /* VariableDeclaration */: - case 208 /* BindingElement */: - case 263 /* ClassDeclaration */: - case 231 /* ClassExpression */: - case 264 /* InterfaceDeclaration */: - case 267 /* ModuleDeclaration */: - case 266 /* EnumDeclaration */: - case 306 /* EnumMember */: - case 262 /* FunctionDeclaration */: - case 218 /* FunctionExpression */: - case 174 /* MethodDeclaration */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - case 265 /* TypeAliasDeclaration */: - case 172 /* PropertyDeclaration */: - case 171 /* PropertySignature */: - case 274 /* NamespaceImport */: - errorNode = node.name; - break; - case 219 /* ArrowFunction */: - return getErrorSpanForArrowFunction(sourceFile, node); - case 296 /* CaseClause */: - case 297 /* DefaultClause */: { - var start2 = skipTrivia(sourceFile.text, node.pos); - var end = node.statements.length > 0 ? node.statements[0].pos : node.end; - return createTextSpanFromBounds(start2, end); - } - case 253 /* ReturnStatement */: - case 229 /* YieldExpression */: { - var pos2 = skipTrivia(sourceFile.text, node.pos); - return getSpanOfTokenAtPosition(sourceFile, pos2); - } - case 238 /* SatisfiesExpression */: { - var pos2 = skipTrivia(sourceFile.text, node.expression.end); - return getSpanOfTokenAtPosition(sourceFile, pos2); - } - case 357 /* JSDocSatisfiesTag */: { - var pos2 = skipTrivia(sourceFile.text, node.tagName.pos); - return getSpanOfTokenAtPosition(sourceFile, pos2); - } - } - if (errorNode === void 0) { - return getSpanOfTokenAtPosition(sourceFile, node.pos); - } - Debug.assert(!isJSDoc(errorNode)); - var isMissing = nodeIsMissing(errorNode); - var pos = isMissing || isJsxText(node) ? errorNode.pos : skipTrivia(sourceFile.text, errorNode.pos); - if (isMissing) { - Debug.assert(pos === errorNode.pos, "This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809"); - Debug.assert(pos === errorNode.end, "This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809"); - } - else { - Debug.assert(pos >= errorNode.pos, "This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809"); - Debug.assert(pos <= errorNode.end, "This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809"); - } - return createTextSpanFromBounds(pos, errorNode.end); -} -function isExternalOrCommonJsModule(file) { - return (file.externalModuleIndicator || file.commonJsModuleIndicator) !== void 0; -} -function isJsonSourceFile(file) { - return file.scriptKind === 6 /* JSON */; -} -function isEnumConst(node) { - return !!(getCombinedModifierFlags(node) & 2048 /* Const */); -} -function isDeclarationReadonly(declaration) { - return !!(getCombinedModifierFlags(declaration) & 64 /* Readonly */ && !isParameterPropertyDeclaration(declaration, declaration.parent)); -} -function isVarAwaitUsing(node) { - return (getCombinedNodeFlags(node) & 7 /* BlockScoped */) === 6 /* AwaitUsing */; -} -function isVarUsing(node) { - return (getCombinedNodeFlags(node) & 7 /* BlockScoped */) === 4 /* Using */; -} -function isVarConst(node) { - return (getCombinedNodeFlags(node) & 7 /* BlockScoped */) === 2 /* Const */; -} -function isLet(node) { - return (getCombinedNodeFlags(node) & 7 /* BlockScoped */) === 1 /* Let */; -} -function isSuperCall(n) { - return n.kind === 213 /* CallExpression */ && n.expression.kind === 108 /* SuperKeyword */; -} -function isImportCall(n) { - return n.kind === 213 /* CallExpression */ && n.expression.kind === 102 /* ImportKeyword */; -} -function isImportMeta(n) { - return isMetaProperty(n) && n.keywordToken === 102 /* ImportKeyword */ && n.name.escapedText === "meta"; -} -function isLiteralImportTypeNode(n) { - return isImportTypeNode(n) && isLiteralTypeNode(n.argument) && isStringLiteral(n.argument.literal); -} -function isPrologueDirective(node) { - return node.kind === 244 /* ExpressionStatement */ && node.expression.kind === 11 /* StringLiteral */; -} -function isCustomPrologue(node) { - return !!(getEmitFlags(node) & 2097152 /* CustomPrologue */); -} -function isHoistedFunction(node) { - return isCustomPrologue(node) && isFunctionDeclaration(node); -} -function isHoistedVariable(node) { - return isIdentifier(node.name) && !node.initializer; -} -function isHoistedVariableStatement(node) { - return isCustomPrologue(node) && isVariableStatement(node) && every(node.declarationList.declarations, isHoistedVariable); -} -function getLeadingCommentRangesOfNode(node, sourceFileOfNode) { - return node.kind !== 12 /* JsxText */ ? getLeadingCommentRanges(sourceFileOfNode.text, node.pos) : void 0; -} -function getJSDocCommentRanges(node, text) { - var commentRanges = node.kind === 169 /* Parameter */ || node.kind === 168 /* TypeParameter */ || node.kind === 218 /* FunctionExpression */ || node.kind === 219 /* ArrowFunction */ || node.kind === 217 /* ParenthesizedExpression */ || node.kind === 260 /* VariableDeclaration */ || node.kind === 281 /* ExportSpecifier */ ? concatenate(getTrailingCommentRanges(text, node.pos), getLeadingCommentRanges(text, node.pos)) : getLeadingCommentRanges(text, node.pos); - return filter(commentRanges, function (comment) { return text.charCodeAt(comment.pos + 1) === 42 /* asterisk */ && text.charCodeAt(comment.pos + 2) === 42 /* asterisk */ && text.charCodeAt(comment.pos + 3) !== 47; } /* slash */); -} -var fullTripleSlashReferencePathRegEx = /^(\/\/\/\s*/; -var fullTripleSlashReferenceTypeReferenceDirectiveRegEx = /^(\/\/\/\s*/; -var fullTripleSlashLibReferenceRegEx = /^(\/\/\/\s*/; -var fullTripleSlashAMDReferencePathRegEx = /^(\/\/\/\s*/; -var fullTripleSlashAMDModuleRegEx = /^\/\/\/\s*/; -var defaultLibReferenceRegEx = /^(\/\/\/\s*/; -function isPartOfTypeNode(node) { - if (182 /* FirstTypeNode */ <= node.kind && node.kind <= 205 /* LastTypeNode */) { - return true; - } - switch (node.kind) { - case 133 /* AnyKeyword */: - case 159 /* UnknownKeyword */: - case 150 /* NumberKeyword */: - case 163 /* BigIntKeyword */: - case 154 /* StringKeyword */: - case 136 /* BooleanKeyword */: - case 155 /* SymbolKeyword */: - case 151 /* ObjectKeyword */: - case 157 /* UndefinedKeyword */: - case 106 /* NullKeyword */: - case 146 /* NeverKeyword */: - return true; - case 116 /* VoidKeyword */: - return node.parent.kind !== 222 /* VoidExpression */; - case 233 /* ExpressionWithTypeArguments */: - return isHeritageClause(node.parent) && !isExpressionWithTypeArgumentsInClassExtendsClause(node); - case 168 /* TypeParameter */: - return node.parent.kind === 200 /* MappedType */ || node.parent.kind === 195 /* InferType */; - case 80 /* Identifier */: - if (node.parent.kind === 166 /* QualifiedName */ && node.parent.right === node) { - node = node.parent; - } - else if (node.parent.kind === 211 /* PropertyAccessExpression */ && node.parent.name === node) { - node = node.parent; - } - Debug.assert(node.kind === 80 /* Identifier */ || node.kind === 166 /* QualifiedName */ || node.kind === 211 /* PropertyAccessExpression */, "'node' was expected to be a qualified name, identifier or property access in 'isPartOfTypeNode'."); - case 166 /* QualifiedName */: - case 211 /* PropertyAccessExpression */: - case 110 /* ThisKeyword */: { - var parent2 = node.parent; - if (parent2.kind === 186 /* TypeQuery */) { - return false; - } - if (parent2.kind === 205 /* ImportType */) { - return !parent2.isTypeOf; - } - if (182 /* FirstTypeNode */ <= parent2.kind && parent2.kind <= 205 /* LastTypeNode */) { - return true; - } - switch (parent2.kind) { - case 233 /* ExpressionWithTypeArguments */: - return isHeritageClause(parent2.parent) && !isExpressionWithTypeArgumentsInClassExtendsClause(parent2); - case 168 /* TypeParameter */: - return node === parent2.constraint; - case 352 /* JSDocTemplateTag */: - return node === parent2.constraint; - case 172 /* PropertyDeclaration */: - case 171 /* PropertySignature */: - case 169 /* Parameter */: - case 260 /* VariableDeclaration */: - return node === parent2.type; - case 262 /* FunctionDeclaration */: - case 218 /* FunctionExpression */: - case 219 /* ArrowFunction */: - case 176 /* Constructor */: - case 174 /* MethodDeclaration */: - case 173 /* MethodSignature */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - return node === parent2.type; - case 179 /* CallSignature */: - case 180 /* ConstructSignature */: - case 181 /* IndexSignature */: - return node === parent2.type; - case 216 /* TypeAssertionExpression */: - return node === parent2.type; - case 213 /* CallExpression */: - case 214 /* NewExpression */: - case 215 /* TaggedTemplateExpression */: - return contains(parent2.typeArguments, node); - } - } - } - return false; -} -function isChildOfNodeWithKind(node, kind) { - while (node) { - if (node.kind === kind) { - return true; - } - node = node.parent; - } - return false; -} -function forEachReturnStatement(body, visitor) { - return traverse(body); - function traverse(node) { - switch (node.kind) { - case 253 /* ReturnStatement */: - return visitor(node); - case 269 /* CaseBlock */: - case 241 /* Block */: - case 245 /* IfStatement */: - case 246 /* DoStatement */: - case 247 /* WhileStatement */: - case 248 /* ForStatement */: - case 249 /* ForInStatement */: - case 250 /* ForOfStatement */: - case 254 /* WithStatement */: - case 255 /* SwitchStatement */: - case 296 /* CaseClause */: - case 297 /* DefaultClause */: - case 256 /* LabeledStatement */: - case 258 /* TryStatement */: - case 299 /* CatchClause */: - return forEachChild(node, traverse); - } - } -} -function forEachYieldExpression(body, visitor) { - return traverse(body); - function traverse(node) { - switch (node.kind) { - case 229 /* YieldExpression */: - visitor(node); - var operand = node.expression; - if (operand) { - traverse(operand); - } - return; - case 266 /* EnumDeclaration */: - case 264 /* InterfaceDeclaration */: - case 267 /* ModuleDeclaration */: - case 265 /* TypeAliasDeclaration */: - return; - default: - if (isFunctionLike(node)) { - if (node.name && node.name.kind === 167 /* ComputedPropertyName */) { - traverse(node.name.expression); - return; - } - } - else if (!isPartOfTypeNode(node)) { - forEachChild(node, traverse); - } - } - } -} -function getRestParameterElementType(node) { - if (node && node.kind === 188 /* ArrayType */) { - return node.elementType; - } - else if (node && node.kind === 183 /* TypeReference */) { - return singleOrUndefined(node.typeArguments); - } - else { - return void 0; - } -} -function getMembersOfDeclaration(node) { - switch (node.kind) { - case 264 /* InterfaceDeclaration */: - case 263 /* ClassDeclaration */: - case 231 /* ClassExpression */: - case 187 /* TypeLiteral */: - return node.members; - case 210 /* ObjectLiteralExpression */: - return node.properties; - } -} -function isVariableLike(node) { - if (node) { - switch (node.kind) { - case 208 /* BindingElement */: - case 306 /* EnumMember */: - case 169 /* Parameter */: - case 303 /* PropertyAssignment */: - case 172 /* PropertyDeclaration */: - case 171 /* PropertySignature */: - case 304 /* ShorthandPropertyAssignment */: - case 260 /* VariableDeclaration */: - return true; - } - } - return false; -} -function isVariableLikeOrAccessor(node) { - return isVariableLike(node) || isAccessor(node); -} -function isVariableDeclarationInVariableStatement(node) { - return node.parent.kind === 261 /* VariableDeclarationList */ && node.parent.parent.kind === 243 /* VariableStatement */; -} -function isCommonJsExportedExpression(node) { - if (!isInJSFile(node)) - return false; - return isObjectLiteralExpression(node.parent) && isBinaryExpression(node.parent.parent) && getAssignmentDeclarationKind(node.parent.parent) === 2 /* ModuleExports */ || isCommonJsExportPropertyAssignment(node.parent); -} -function isCommonJsExportPropertyAssignment(node) { - if (!isInJSFile(node)) - return false; - return isBinaryExpression(node) && getAssignmentDeclarationKind(node) === 1 /* ExportsProperty */; -} -function isValidESSymbolDeclaration(node) { - return (isVariableDeclaration(node) ? isVarConst(node) && isIdentifier(node.name) && isVariableDeclarationInVariableStatement(node) : isPropertyDeclaration(node) ? hasEffectiveReadonlyModifier(node) && hasStaticModifier(node) : isPropertySignature(node) && hasEffectiveReadonlyModifier(node)) || isCommonJsExportPropertyAssignment(node); -} -function introducesArgumentsExoticObject(node) { - switch (node.kind) { - case 174 /* MethodDeclaration */: - case 173 /* MethodSignature */: - case 176 /* Constructor */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - case 262 /* FunctionDeclaration */: - case 218 /* FunctionExpression */: - return true; - } - return false; -} -function unwrapInnermostStatementOfLabel(node, beforeUnwrapLabelCallback) { - while (true) { - if (beforeUnwrapLabelCallback) { - beforeUnwrapLabelCallback(node); - } - if (node.statement.kind !== 256 /* LabeledStatement */) { - return node.statement; - } - node = node.statement; - } -} -function isFunctionBlock(node) { - return node && node.kind === 241 /* Block */ && isFunctionLike(node.parent); -} -function isObjectLiteralMethod(node) { - return node && node.kind === 174 /* MethodDeclaration */ && node.parent.kind === 210 /* ObjectLiteralExpression */; -} -function isObjectLiteralOrClassExpressionMethodOrAccessor(node) { - return (node.kind === 174 /* MethodDeclaration */ || node.kind === 177 /* GetAccessor */ || node.kind === 178 /* SetAccessor */) && (node.parent.kind === 210 /* ObjectLiteralExpression */ || node.parent.kind === 231 /* ClassExpression */); -} -function isIdentifierTypePredicate(predicate) { - return predicate && predicate.kind === 1 /* Identifier */; -} -function isThisTypePredicate(predicate) { - return predicate && predicate.kind === 0 /* This */; -} -function forEachPropertyAssignment(objectLiteral, key, callback, key2) { - return forEach(objectLiteral == null ? void 0 : objectLiteral.properties, function (property) { - if (!isPropertyAssignment(property)) - return void 0; - var propName = tryGetTextOfPropertyName(property.name); - return key === propName || key2 && key2 === propName ? callback(property) : void 0; - }); -} -function getPropertyArrayElementValue(objectLiteral, propKey, elementValue) { - return forEachPropertyAssignment(objectLiteral, propKey, function (property) { return isArrayLiteralExpression(property.initializer) ? find(property.initializer.elements, function (element) { return isStringLiteral(element) && element.text === elementValue; }) : void 0; }); -} -function getTsConfigObjectLiteralExpression(tsConfigSourceFile) { - if (tsConfigSourceFile && tsConfigSourceFile.statements.length) { - var expression = tsConfigSourceFile.statements[0].expression; - return tryCast(expression, isObjectLiteralExpression); - } -} -function getTsConfigPropArrayElementValue(tsConfigSourceFile, propKey, elementValue) { - return forEachTsConfigPropArray(tsConfigSourceFile, propKey, function (property) { return isArrayLiteralExpression(property.initializer) ? find(property.initializer.elements, function (element) { return isStringLiteral(element) && element.text === elementValue; }) : void 0; }); -} -function forEachTsConfigPropArray(tsConfigSourceFile, propKey, callback) { - return forEachPropertyAssignment(getTsConfigObjectLiteralExpression(tsConfigSourceFile), propKey, callback); -} -function getContainingFunction(node) { - return findAncestor(node.parent, isFunctionLike); -} -function getContainingFunctionDeclaration(node) { - return findAncestor(node.parent, isFunctionLikeDeclaration); -} -function getContainingClass(node) { - return findAncestor(node.parent, isClassLike); -} -function getContainingClassStaticBlock(node) { - return findAncestor(node.parent, function (n) { - if (isClassLike(n) || isFunctionLike(n)) { - return "quit"; - } - return isClassStaticBlockDeclaration(n); - }); -} -function getContainingFunctionOrClassStaticBlock(node) { - return findAncestor(node.parent, isFunctionLikeOrClassStaticBlockDeclaration); -} -function getContainingClassExcludingClassDecorators(node) { - var decorator = findAncestor(node.parent, function (n) { return isClassLike(n) ? "quit" : isDecorator(n); }); - return decorator && isClassLike(decorator.parent) ? getContainingClass(decorator.parent) : getContainingClass(decorator !== null && decorator !== void 0 ? decorator : node); -} -function getThisContainer(node, includeArrowFunctions, includeClassComputedPropertyName) { - Debug.assert(node.kind !== 312 /* SourceFile */); - while (true) { - node = node.parent; - if (!node) { - return Debug.fail(); - } - switch (node.kind) { - case 167 /* ComputedPropertyName */: - if (includeClassComputedPropertyName && isClassLike(node.parent.parent)) { - return node; - } - node = node.parent.parent; - break; - case 170 /* Decorator */: - if (node.parent.kind === 169 /* Parameter */ && isClassElement(node.parent.parent)) { - node = node.parent.parent; - } - else if (isClassElement(node.parent)) { - node = node.parent; - } - break; - case 219 /* ArrowFunction */: - if (!includeArrowFunctions) { - continue; - } - case 262 /* FunctionDeclaration */: - case 218 /* FunctionExpression */: - case 267 /* ModuleDeclaration */: - case 175 /* ClassStaticBlockDeclaration */: - case 172 /* PropertyDeclaration */: - case 171 /* PropertySignature */: - case 174 /* MethodDeclaration */: - case 173 /* MethodSignature */: - case 176 /* Constructor */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - case 179 /* CallSignature */: - case 180 /* ConstructSignature */: - case 181 /* IndexSignature */: - case 266 /* EnumDeclaration */: - case 312 /* SourceFile */: - return node; - } - } -} -function isThisContainerOrFunctionBlock(node) { - switch (node.kind) { - case 219 /* ArrowFunction */: - case 262 /* FunctionDeclaration */: - case 218 /* FunctionExpression */: - case 172 /* PropertyDeclaration */: - return true; - case 241 /* Block */: - switch (node.parent.kind) { - case 176 /* Constructor */: - case 174 /* MethodDeclaration */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - return true; - default: - return false; - } - default: - return false; - } -} -function isInTopLevelContext(node) { - if (isIdentifier(node) && (isClassDeclaration(node.parent) || isFunctionDeclaration(node.parent)) && node.parent.name === node) { - node = node.parent; - } - var container = getThisContainer(node, - /*includeArrowFunctions*/ - true, - /*includeClassComputedPropertyName*/ - false); - return isSourceFile(container); -} -function getNewTargetContainer(node) { - var container = getThisContainer(node, - /*includeArrowFunctions*/ - false, - /*includeClassComputedPropertyName*/ - false); - if (container) { - switch (container.kind) { - case 176 /* Constructor */: - case 262 /* FunctionDeclaration */: - case 218 /* FunctionExpression */: - return container; - } - } - return void 0; -} -function getSuperContainer(node, stopOnFunctions) { - while (true) { - node = node.parent; - if (!node) { - return void 0; - } - switch (node.kind) { - case 167 /* ComputedPropertyName */: - node = node.parent; - break; - case 262 /* FunctionDeclaration */: - case 218 /* FunctionExpression */: - case 219 /* ArrowFunction */: - if (!stopOnFunctions) { - continue; - } - case 172 /* PropertyDeclaration */: - case 171 /* PropertySignature */: - case 174 /* MethodDeclaration */: - case 173 /* MethodSignature */: - case 176 /* Constructor */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - case 175 /* ClassStaticBlockDeclaration */: - return node; - case 170 /* Decorator */: - if (node.parent.kind === 169 /* Parameter */ && isClassElement(node.parent.parent)) { - node = node.parent.parent; - } - else if (isClassElement(node.parent)) { - node = node.parent; - } - break; - } - } -} -function getImmediatelyInvokedFunctionExpression(func) { - if (func.kind === 218 /* FunctionExpression */ || func.kind === 219 /* ArrowFunction */) { - var prev = func; - var parent2 = func.parent; - while (parent2.kind === 217 /* ParenthesizedExpression */) { - prev = parent2; - parent2 = parent2.parent; - } - if (parent2.kind === 213 /* CallExpression */ && parent2.expression === prev) { - return parent2; - } - } -} -function isSuperOrSuperProperty(node) { - return node.kind === 108 /* SuperKeyword */ || isSuperProperty(node); -} -function isSuperProperty(node) { - var kind = node.kind; - return (kind === 211 /* PropertyAccessExpression */ || kind === 212 /* ElementAccessExpression */) && node.expression.kind === 108 /* SuperKeyword */; -} -function isThisProperty(node) { - var kind = node.kind; - return (kind === 211 /* PropertyAccessExpression */ || kind === 212 /* ElementAccessExpression */) && node.expression.kind === 110 /* ThisKeyword */; -} -function isThisInitializedDeclaration(node) { - var _a; - return !!node && isVariableDeclaration(node) && ((_a = node.initializer) == null ? void 0 : _a.kind) === 110 /* ThisKeyword */; -} -function isThisInitializedObjectBindingExpression(node) { - return !!node && (isShorthandPropertyAssignment(node) || isPropertyAssignment(node)) && isBinaryExpression(node.parent.parent) && node.parent.parent.operatorToken.kind === 64 /* EqualsToken */ && node.parent.parent.right.kind === 110 /* ThisKeyword */; -} -function getEntityNameFromTypeNode(node) { - switch (node.kind) { - case 183 /* TypeReference */: - return node.typeName; - case 233 /* ExpressionWithTypeArguments */: - return isEntityNameExpression(node.expression) ? node.expression : void 0; - case 80 /* Identifier */: - case 166 /* QualifiedName */: - return node; - } - return void 0; -} -function getInvokedExpression(node) { - switch (node.kind) { - case 215 /* TaggedTemplateExpression */: - return node.tag; - case 286 /* JsxOpeningElement */: - case 285 /* JsxSelfClosingElement */: - return node.tagName; - default: - return node.expression; - } -} -function nodeCanBeDecorated(useLegacyDecorators, node, parent2, grandparent) { - if (useLegacyDecorators && isNamedDeclaration(node) && isPrivateIdentifier(node.name)) { - return false; - } - switch (node.kind) { - case 263 /* ClassDeclaration */: - return true; - case 231 /* ClassExpression */: - return !useLegacyDecorators; - case 172 /* PropertyDeclaration */: - return parent2 !== void 0 && (useLegacyDecorators ? isClassDeclaration(parent2) : isClassLike(parent2) && !hasAbstractModifier(node) && !hasAmbientModifier(node)); - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - case 174 /* MethodDeclaration */: - return node.body !== void 0 && parent2 !== void 0 && (useLegacyDecorators ? isClassDeclaration(parent2) : isClassLike(parent2)); - case 169 /* Parameter */: - if (!useLegacyDecorators) - return false; - return parent2 !== void 0 && parent2.body !== void 0 && (parent2.kind === 176 /* Constructor */ || parent2.kind === 174 /* MethodDeclaration */ || parent2.kind === 178 /* SetAccessor */) && getThisParameter(parent2) !== node && grandparent !== void 0 && grandparent.kind === 263 /* ClassDeclaration */; - } - return false; -} -function nodeIsDecorated(useLegacyDecorators, node, parent2, grandparent) { - return hasDecorators(node) && nodeCanBeDecorated(useLegacyDecorators, node, parent2, grandparent); -} -function nodeOrChildIsDecorated(useLegacyDecorators, node, parent2, grandparent) { - return nodeIsDecorated(useLegacyDecorators, node, parent2, grandparent) || childIsDecorated(useLegacyDecorators, node, parent2); -} -function childIsDecorated(useLegacyDecorators, node, parent2) { - switch (node.kind) { - case 263 /* ClassDeclaration */: - return some(node.members, function (m) { return nodeOrChildIsDecorated(useLegacyDecorators, m, node, parent2); }); - case 231 /* ClassExpression */: - return !useLegacyDecorators && some(node.members, function (m) { return nodeOrChildIsDecorated(useLegacyDecorators, m, node, parent2); }); - case 174 /* MethodDeclaration */: - case 178 /* SetAccessor */: - case 176 /* Constructor */: - return some(node.parameters, function (p) { return nodeIsDecorated(useLegacyDecorators, p, node, parent2); }); - default: - return false; - } -} -function classOrConstructorParameterIsDecorated(useLegacyDecorators, node) { - if (nodeIsDecorated(useLegacyDecorators, node)) - return true; - var constructor = getFirstConstructorWithBody(node); - return !!constructor && childIsDecorated(useLegacyDecorators, constructor, node); -} -function classElementOrClassElementParameterIsDecorated(useLegacyDecorators, node, parent2) { - var e_58, _t; - var parameters; - if (isAccessor(node)) { - var _u = getAllAccessorDeclarations(parent2.members, node), firstAccessor = _u.firstAccessor, secondAccessor = _u.secondAccessor, setAccessor = _u.setAccessor; - var firstAccessorWithDecorators = hasDecorators(firstAccessor) ? firstAccessor : secondAccessor && hasDecorators(secondAccessor) ? secondAccessor : void 0; - if (!firstAccessorWithDecorators || node !== firstAccessorWithDecorators) { - return false; - } - parameters = setAccessor == null ? void 0 : setAccessor.parameters; - } - else if (isMethodDeclaration(node)) { - parameters = node.parameters; - } - if (nodeIsDecorated(useLegacyDecorators, node, parent2)) { - return true; - } - if (parameters) { - try { - for (var parameters_1 = __values(parameters), parameters_1_1 = parameters_1.next(); !parameters_1_1.done; parameters_1_1 = parameters_1.next()) { - var parameter = parameters_1_1.value; - if (parameterIsThisKeyword(parameter)) - continue; - if (nodeIsDecorated(useLegacyDecorators, parameter, node, parent2)) - return true; - } - } - catch (e_58_1) { e_58 = { error: e_58_1 }; } - finally { - try { - if (parameters_1_1 && !parameters_1_1.done && (_t = parameters_1.return)) _t.call(parameters_1); - } - finally { if (e_58) throw e_58.error; } - } - } - return false; -} -function isEmptyStringLiteral(node) { - if (node.textSourceNode) { - switch (node.textSourceNode.kind) { - case 11 /* StringLiteral */: - return isEmptyStringLiteral(node.textSourceNode); - case 15 /* NoSubstitutionTemplateLiteral */: - return node.text === ""; - } - return false; - } - return node.text === ""; -} -function isJSXTagName(node) { - var parent2 = node.parent; - if (parent2.kind === 286 /* JsxOpeningElement */ || parent2.kind === 285 /* JsxSelfClosingElement */ || parent2.kind === 287 /* JsxClosingElement */) { - return parent2.tagName === node; - } - return false; -} -function isExpressionNode(node) { - switch (node.kind) { - case 108 /* SuperKeyword */: - case 106 /* NullKeyword */: - case 112 /* TrueKeyword */: - case 97 /* FalseKeyword */: - case 14 /* RegularExpressionLiteral */: - case 209 /* ArrayLiteralExpression */: - case 210 /* ObjectLiteralExpression */: - case 211 /* PropertyAccessExpression */: - case 212 /* ElementAccessExpression */: - case 213 /* CallExpression */: - case 214 /* NewExpression */: - case 215 /* TaggedTemplateExpression */: - case 234 /* AsExpression */: - case 216 /* TypeAssertionExpression */: - case 238 /* SatisfiesExpression */: - case 235 /* NonNullExpression */: - case 217 /* ParenthesizedExpression */: - case 218 /* FunctionExpression */: - case 231 /* ClassExpression */: - case 219 /* ArrowFunction */: - case 222 /* VoidExpression */: - case 220 /* DeleteExpression */: - case 221 /* TypeOfExpression */: - case 224 /* PrefixUnaryExpression */: - case 225 /* PostfixUnaryExpression */: - case 226 /* BinaryExpression */: - case 227 /* ConditionalExpression */: - case 230 /* SpreadElement */: - case 228 /* TemplateExpression */: - case 232 /* OmittedExpression */: - case 284 /* JsxElement */: - case 285 /* JsxSelfClosingElement */: - case 288 /* JsxFragment */: - case 229 /* YieldExpression */: - case 223 /* AwaitExpression */: - case 236 /* MetaProperty */: - return true; - case 233 /* ExpressionWithTypeArguments */: - return !isHeritageClause(node.parent) && !isJSDocAugmentsTag(node.parent); - case 166 /* QualifiedName */: - while (node.parent.kind === 166 /* QualifiedName */) { - node = node.parent; - } - return node.parent.kind === 186 /* TypeQuery */ || isJSDocLinkLike(node.parent) || isJSDocNameReference(node.parent) || isJSDocMemberName(node.parent) || isJSXTagName(node); - case 318 /* JSDocMemberName */: - while (isJSDocMemberName(node.parent)) { - node = node.parent; - } - return node.parent.kind === 186 /* TypeQuery */ || isJSDocLinkLike(node.parent) || isJSDocNameReference(node.parent) || isJSDocMemberName(node.parent) || isJSXTagName(node); - case 81 /* PrivateIdentifier */: - return isBinaryExpression(node.parent) && node.parent.left === node && node.parent.operatorToken.kind === 103 /* InKeyword */; - case 80 /* Identifier */: - if (node.parent.kind === 186 /* TypeQuery */ || isJSDocLinkLike(node.parent) || isJSDocNameReference(node.parent) || isJSDocMemberName(node.parent) || isJSXTagName(node)) { - return true; - } - case 9 /* NumericLiteral */: - case 10 /* BigIntLiteral */: - case 11 /* StringLiteral */: - case 15 /* NoSubstitutionTemplateLiteral */: - case 110 /* ThisKeyword */: - return isInExpressionContext(node); - default: - return false; - } -} -function isInExpressionContext(node) { - var parent2 = node.parent; - switch (parent2.kind) { - case 260 /* VariableDeclaration */: - case 169 /* Parameter */: - case 172 /* PropertyDeclaration */: - case 171 /* PropertySignature */: - case 306 /* EnumMember */: - case 303 /* PropertyAssignment */: - case 208 /* BindingElement */: - return parent2.initializer === node; - case 244 /* ExpressionStatement */: - case 245 /* IfStatement */: - case 246 /* DoStatement */: - case 247 /* WhileStatement */: - case 253 /* ReturnStatement */: - case 254 /* WithStatement */: - case 255 /* SwitchStatement */: - case 296 /* CaseClause */: - case 257 /* ThrowStatement */: - return parent2.expression === node; - case 248 /* ForStatement */: - var forStatement = parent2; - return forStatement.initializer === node && forStatement.initializer.kind !== 261 /* VariableDeclarationList */ || forStatement.condition === node || forStatement.incrementor === node; - case 249 /* ForInStatement */: - case 250 /* ForOfStatement */: - var forInStatement = parent2; - return forInStatement.initializer === node && forInStatement.initializer.kind !== 261 /* VariableDeclarationList */ || forInStatement.expression === node; - case 216 /* TypeAssertionExpression */: - case 234 /* AsExpression */: - return node === parent2.expression; - case 239 /* TemplateSpan */: - return node === parent2.expression; - case 167 /* ComputedPropertyName */: - return node === parent2.expression; - case 170 /* Decorator */: - case 294 /* JsxExpression */: - case 293 /* JsxSpreadAttribute */: - case 305 /* SpreadAssignment */: - return true; - case 233 /* ExpressionWithTypeArguments */: - return parent2.expression === node && !isPartOfTypeNode(parent2); - case 304 /* ShorthandPropertyAssignment */: - return parent2.objectAssignmentInitializer === node; - case 238 /* SatisfiesExpression */: - return node === parent2.expression; - default: - return isExpressionNode(parent2); - } -} -function isPartOfTypeQuery(node) { - while (node.kind === 166 /* QualifiedName */ || node.kind === 80 /* Identifier */) { - node = node.parent; - } - return node.kind === 186 /* TypeQuery */; -} -function isNamespaceReexportDeclaration(node) { - return isNamespaceExport(node) && !!node.parent.moduleSpecifier; -} -function isExternalModuleImportEqualsDeclaration(node) { - return node.kind === 271 /* ImportEqualsDeclaration */ && node.moduleReference.kind === 283 /* ExternalModuleReference */; -} -function getExternalModuleImportEqualsDeclarationExpression(node) { - Debug.assert(isExternalModuleImportEqualsDeclaration(node)); - return node.moduleReference.expression; -} -function getExternalModuleRequireArgument(node) { - return isVariableDeclarationInitializedToBareOrAccessedRequire(node) && getLeftmostAccessExpression(node.initializer).arguments[0]; -} -function isInternalModuleImportEqualsDeclaration(node) { - return node.kind === 271 /* ImportEqualsDeclaration */ && node.moduleReference.kind !== 283 /* ExternalModuleReference */; -} -function isSourceFileJS(file) { - return isInJSFile(file); -} -function isSourceFileNotJS(file) { - return !isInJSFile(file); -} -function isInJSFile(node) { - return !!node && !!(node.flags & 524288 /* JavaScriptFile */); -} -function isInJsonFile(node) { - return !!node && !!(node.flags & 134217728 /* JsonFile */); -} -function isSourceFileNotJson(file) { - return !isJsonSourceFile(file); -} -function isInJSDoc(node) { - return !!node && !!(node.flags & 16777216 /* JSDoc */); -} -function isJSDocIndexSignature(node) { - return isTypeReferenceNode(node) && isIdentifier(node.typeName) && node.typeName.escapedText === "Object" && node.typeArguments && node.typeArguments.length === 2 && (node.typeArguments[0].kind === 154 /* StringKeyword */ || node.typeArguments[0].kind === 150 /* NumberKeyword */); -} -function isRequireCall(callExpression, requireStringLiteralLikeArgument) { - if (callExpression.kind !== 213 /* CallExpression */) { - return false; - } - var expression = callExpression.expression, args = callExpression.arguments; - if (expression.kind !== 80 /* Identifier */ || expression.escapedText !== "require") { - return false; - } - if (args.length !== 1) { - return false; - } - var arg = args[0]; - return !requireStringLiteralLikeArgument || isStringLiteralLike(arg); -} -function isVariableDeclarationInitializedToRequire(node) { - return isVariableDeclarationInitializedWithRequireHelper(node, - /*allowAccessedRequire*/ - false); -} -function isVariableDeclarationInitializedToBareOrAccessedRequire(node) { - return isVariableDeclarationInitializedWithRequireHelper(node, - /*allowAccessedRequire*/ - true); -} -function isBindingElementOfBareOrAccessedRequire(node) { - return isBindingElement(node) && isVariableDeclarationInitializedToBareOrAccessedRequire(node.parent.parent); -} -function isVariableDeclarationInitializedWithRequireHelper(node, allowAccessedRequire) { - return isVariableDeclaration(node) && !!node.initializer && isRequireCall(allowAccessedRequire ? getLeftmostAccessExpression(node.initializer) : node.initializer, - /*requireStringLiteralLikeArgument*/ - true); -} -function isRequireVariableStatement(node) { - return isVariableStatement(node) && node.declarationList.declarations.length > 0 && every(node.declarationList.declarations, function (decl) { return isVariableDeclarationInitializedToRequire(decl); }); -} -function isSingleOrDoubleQuote(charCode) { - return charCode === 39 /* singleQuote */ || charCode === 34 /* doubleQuote */; -} -function isStringDoubleQuoted(str, sourceFile) { - return getSourceTextOfNodeFromSourceFile(sourceFile, str).charCodeAt(0) === 34 /* doubleQuote */; -} -function isAssignmentDeclaration(decl) { - return isBinaryExpression(decl) || isAccessExpression(decl) || isIdentifier(decl) || isCallExpression(decl); -} -function getEffectiveInitializer(node) { - if (isInJSFile(node) && node.initializer && isBinaryExpression(node.initializer) && (node.initializer.operatorToken.kind === 57 /* BarBarToken */ || node.initializer.operatorToken.kind === 61 /* QuestionQuestionToken */) && node.name && isEntityNameExpression(node.name) && isSameEntityName(node.name, node.initializer.left)) { - return node.initializer.right; - } - return node.initializer; -} -function getDeclaredExpandoInitializer(node) { - var init = getEffectiveInitializer(node); - return init && getExpandoInitializer(init, isPrototypeAccess(node.name)); -} -function hasExpandoValueProperty(node, isPrototypeAssignment) { - return forEach(node.properties, function (p) { return isPropertyAssignment(p) && isIdentifier(p.name) && p.name.escapedText === "value" && p.initializer && getExpandoInitializer(p.initializer, isPrototypeAssignment); }); -} -function getAssignedExpandoInitializer(node) { - if (node && node.parent && isBinaryExpression(node.parent) && node.parent.operatorToken.kind === 64 /* EqualsToken */) { - var isPrototypeAssignment = isPrototypeAccess(node.parent.left); - return getExpandoInitializer(node.parent.right, isPrototypeAssignment) || getDefaultedExpandoInitializer(node.parent.left, node.parent.right, isPrototypeAssignment); - } - if (node && isCallExpression(node) && isBindableObjectDefinePropertyCall(node)) { - var result = hasExpandoValueProperty(node.arguments[2], node.arguments[1].text === "prototype"); - if (result) { - return result; - } - } -} -function getExpandoInitializer(initializer, isPrototypeAssignment) { - if (isCallExpression(initializer)) { - var e = skipParentheses(initializer.expression); - return e.kind === 218 /* FunctionExpression */ || e.kind === 219 /* ArrowFunction */ ? initializer : void 0; - } - if (initializer.kind === 218 /* FunctionExpression */ || initializer.kind === 231 /* ClassExpression */ || initializer.kind === 219 /* ArrowFunction */) { - return initializer; - } - if (isObjectLiteralExpression(initializer) && (initializer.properties.length === 0 || isPrototypeAssignment)) { - return initializer; - } -} -function getDefaultedExpandoInitializer(name, initializer, isPrototypeAssignment) { - var e = isBinaryExpression(initializer) && (initializer.operatorToken.kind === 57 /* BarBarToken */ || initializer.operatorToken.kind === 61 /* QuestionQuestionToken */) && getExpandoInitializer(initializer.right, isPrototypeAssignment); - if (e && isSameEntityName(name, initializer.left)) { - return e; - } -} -function isDefaultedExpandoInitializer(node) { - var name = isVariableDeclaration(node.parent) ? node.parent.name : isBinaryExpression(node.parent) && node.parent.operatorToken.kind === 64 /* EqualsToken */ ? node.parent.left : void 0; - return name && getExpandoInitializer(node.right, isPrototypeAccess(name)) && isEntityNameExpression(name) && isSameEntityName(name, node.left); -} -function getNameOfExpando(node) { - if (isBinaryExpression(node.parent)) { - var parent2 = (node.parent.operatorToken.kind === 57 /* BarBarToken */ || node.parent.operatorToken.kind === 61 /* QuestionQuestionToken */) && isBinaryExpression(node.parent.parent) ? node.parent.parent : node.parent; - if (parent2.operatorToken.kind === 64 /* EqualsToken */ && isIdentifier(parent2.left)) { - return parent2.left; - } - } - else if (isVariableDeclaration(node.parent)) { - return node.parent.name; - } -} -function isSameEntityName(name, initializer) { - if (isPropertyNameLiteral(name) && isPropertyNameLiteral(initializer)) { - return getTextOfIdentifierOrLiteral(name) === getTextOfIdentifierOrLiteral(initializer); - } - if (isMemberName(name) && isLiteralLikeAccess(initializer) && (initializer.expression.kind === 110 /* ThisKeyword */ || isIdentifier(initializer.expression) && (initializer.expression.escapedText === "window" || initializer.expression.escapedText === "self" || initializer.expression.escapedText === "global"))) { - return isSameEntityName(name, getNameOrArgument(initializer)); - } - if (isLiteralLikeAccess(name) && isLiteralLikeAccess(initializer)) { - return getElementOrPropertyAccessName(name) === getElementOrPropertyAccessName(initializer) && isSameEntityName(name.expression, initializer.expression); - } - return false; -} -function getRightMostAssignedExpression(node) { - while (isAssignmentExpression(node, - /*excludeCompoundAssignment*/ - true)) { - node = node.right; - } - return node; -} -function isExportsIdentifier(node) { - return isIdentifier(node) && node.escapedText === "exports"; -} -function isModuleIdentifier(node) { - return isIdentifier(node) && node.escapedText === "module"; -} -function isModuleExportsAccessExpression(node) { - return (isPropertyAccessExpression(node) || isLiteralLikeElementAccess(node)) && isModuleIdentifier(node.expression) && getElementOrPropertyAccessName(node) === "exports"; -} -function getAssignmentDeclarationKind(expr) { - var special = getAssignmentDeclarationKindWorker(expr); - return special === 5 /* Property */ || isInJSFile(expr) ? special : 0 /* None */; -} -function isBindableObjectDefinePropertyCall(expr) { - return length(expr.arguments) === 3 && isPropertyAccessExpression(expr.expression) && isIdentifier(expr.expression.expression) && idText(expr.expression.expression) === "Object" && idText(expr.expression.name) === "defineProperty" && isStringOrNumericLiteralLike(expr.arguments[1]) && isBindableStaticNameExpression(expr.arguments[0], - /*excludeThisKeyword*/ - true); -} -function isLiteralLikeAccess(node) { - return isPropertyAccessExpression(node) || isLiteralLikeElementAccess(node); -} -function isLiteralLikeElementAccess(node) { - return isElementAccessExpression(node) && isStringOrNumericLiteralLike(node.argumentExpression); -} -function isBindableStaticAccessExpression(node, excludeThisKeyword) { - return isPropertyAccessExpression(node) && (!excludeThisKeyword && node.expression.kind === 110 /* ThisKeyword */ || isIdentifier(node.name) && isBindableStaticNameExpression(node.expression, - /*excludeThisKeyword*/ - true)) || isBindableStaticElementAccessExpression(node, excludeThisKeyword); -} -function isBindableStaticElementAccessExpression(node, excludeThisKeyword) { - return isLiteralLikeElementAccess(node) && (!excludeThisKeyword && node.expression.kind === 110 /* ThisKeyword */ || isEntityNameExpression(node.expression) || isBindableStaticAccessExpression(node.expression, - /*excludeThisKeyword*/ - true)); -} -function isBindableStaticNameExpression(node, excludeThisKeyword) { - return isEntityNameExpression(node) || isBindableStaticAccessExpression(node, excludeThisKeyword); -} -function getNameOrArgument(expr) { - if (isPropertyAccessExpression(expr)) { - return expr.name; - } - return expr.argumentExpression; -} -function getAssignmentDeclarationKindWorker(expr) { - if (isCallExpression(expr)) { - if (!isBindableObjectDefinePropertyCall(expr)) { - return 0 /* None */; - } - var entityName = expr.arguments[0]; - if (isExportsIdentifier(entityName) || isModuleExportsAccessExpression(entityName)) { - return 8 /* ObjectDefinePropertyExports */; - } - if (isBindableStaticAccessExpression(entityName) && getElementOrPropertyAccessName(entityName) === "prototype") { - return 9 /* ObjectDefinePrototypeProperty */; - } - return 7 /* ObjectDefinePropertyValue */; - } - if (expr.operatorToken.kind !== 64 /* EqualsToken */ || !isAccessExpression(expr.left) || isVoidZero(getRightMostAssignedExpression(expr))) { - return 0 /* None */; - } - if (isBindableStaticNameExpression(expr.left.expression, - /*excludeThisKeyword*/ - true) && getElementOrPropertyAccessName(expr.left) === "prototype" && isObjectLiteralExpression(getInitializerOfBinaryExpression(expr))) { - return 6 /* Prototype */; - } - return getAssignmentDeclarationPropertyAccessKind(expr.left); -} -function isVoidZero(node) { - return isVoidExpression(node) && isNumericLiteral(node.expression) && node.expression.text === "0"; -} -function getElementOrPropertyAccessArgumentExpressionOrName(node) { - if (isPropertyAccessExpression(node)) { - return node.name; - } - var arg = skipParentheses(node.argumentExpression); - if (isNumericLiteral(arg) || isStringLiteralLike(arg)) { - return arg; - } - return node; -} -function getElementOrPropertyAccessName(node) { - var name = getElementOrPropertyAccessArgumentExpressionOrName(node); - if (name) { - if (isIdentifier(name)) { - return name.escapedText; - } - if (isStringLiteralLike(name) || isNumericLiteral(name)) { - return escapeLeadingUnderscores(name.text); - } - } - return void 0; -} -function getAssignmentDeclarationPropertyAccessKind(lhs) { - if (lhs.expression.kind === 110 /* ThisKeyword */) { - return 4 /* ThisProperty */; - } - else if (isModuleExportsAccessExpression(lhs)) { - return 2 /* ModuleExports */; - } - else if (isBindableStaticNameExpression(lhs.expression, - /*excludeThisKeyword*/ - true)) { - if (isPrototypeAccess(lhs.expression)) { - return 3 /* PrototypeProperty */; - } - var nextToLast = lhs; - while (!isIdentifier(nextToLast.expression)) { - nextToLast = nextToLast.expression; - } - var id = nextToLast.expression; - if ((id.escapedText === "exports" || id.escapedText === "module" && getElementOrPropertyAccessName(nextToLast) === "exports") && // ExportsProperty does not support binding with computed names - isBindableStaticAccessExpression(lhs)) { - return 1 /* ExportsProperty */; - } - if (isBindableStaticNameExpression(lhs, - /*excludeThisKeyword*/ - true) || isElementAccessExpression(lhs) && isDynamicName(lhs)) { - return 5 /* Property */; - } - } - return 0 /* None */; -} -function getInitializerOfBinaryExpression(expr) { - while (isBinaryExpression(expr.right)) { - expr = expr.right; - } - return expr.right; -} -function isPrototypePropertyAssignment(node) { - return isBinaryExpression(node) && getAssignmentDeclarationKind(node) === 3 /* PrototypeProperty */; -} -function isSpecialPropertyDeclaration(expr) { - return isInJSFile(expr) && expr.parent && expr.parent.kind === 244 /* ExpressionStatement */ && (!isElementAccessExpression(expr) || isLiteralLikeElementAccess(expr)) && !!getJSDocTypeTag(expr.parent); -} -function setValueDeclaration(symbol, node) { - var valueDeclaration = symbol.valueDeclaration; - if (!valueDeclaration || !(node.flags & 33554432 /* Ambient */ && !isInJSFile(node) && !(valueDeclaration.flags & 33554432 /* Ambient */)) && (isAssignmentDeclaration(valueDeclaration) && !isAssignmentDeclaration(node)) || valueDeclaration.kind !== node.kind && isEffectiveModuleDeclaration(valueDeclaration)) { - symbol.valueDeclaration = node; - } -} -function isFunctionSymbol(symbol) { - if (!symbol || !symbol.valueDeclaration) { - return false; - } - var decl = symbol.valueDeclaration; - return decl.kind === 262 /* FunctionDeclaration */ || isVariableDeclaration(decl) && decl.initializer && isFunctionLike(decl.initializer); -} -function tryGetModuleSpecifierFromDeclaration(node) { - var _a, _b; - switch (node.kind) { - case 260 /* VariableDeclaration */: - case 208 /* BindingElement */: - return (_a = findAncestor(node.initializer, function (node2) { return isRequireCall(node2, - /*requireStringLiteralLikeArgument*/ - true); })) == null ? void 0 : _a.arguments[0]; - case 272 /* ImportDeclaration */: - return tryCast(node.moduleSpecifier, isStringLiteralLike); - case 271 /* ImportEqualsDeclaration */: - return tryCast((_b = tryCast(node.moduleReference, isExternalModuleReference)) == null ? void 0 : _b.expression, isStringLiteralLike); - case 273 /* ImportClause */: - case 280 /* NamespaceExport */: - return tryCast(node.parent.moduleSpecifier, isStringLiteralLike); - case 274 /* NamespaceImport */: - case 281 /* ExportSpecifier */: - return tryCast(node.parent.parent.moduleSpecifier, isStringLiteralLike); - case 276 /* ImportSpecifier */: - return tryCast(node.parent.parent.parent.moduleSpecifier, isStringLiteralLike); - default: - Debug.assertNever(node); - } -} -function importFromModuleSpecifier(node) { - return tryGetImportFromModuleSpecifier(node) || Debug.failBadSyntaxKind(node.parent); -} -function tryGetImportFromModuleSpecifier(node) { - switch (node.parent.kind) { - case 272 /* ImportDeclaration */: - case 278 /* ExportDeclaration */: - return node.parent; - case 283 /* ExternalModuleReference */: - return node.parent.parent; - case 213 /* CallExpression */: - return isImportCall(node.parent) || isRequireCall(node.parent, - /*requireStringLiteralLikeArgument*/ - false) ? node.parent : void 0; - case 201 /* LiteralType */: - Debug.assert(isStringLiteral(node)); - return tryCast(node.parent.parent, isImportTypeNode); - default: - return void 0; - } -} -function getExternalModuleName(node) { - switch (node.kind) { - case 272 /* ImportDeclaration */: - case 278 /* ExportDeclaration */: - return node.moduleSpecifier; - case 271 /* ImportEqualsDeclaration */: - return node.moduleReference.kind === 283 /* ExternalModuleReference */ ? node.moduleReference.expression : void 0; - case 205 /* ImportType */: - return isLiteralImportTypeNode(node) ? node.argument.literal : void 0; - case 213 /* CallExpression */: - return node.arguments[0]; - case 267 /* ModuleDeclaration */: - return node.name.kind === 11 /* StringLiteral */ ? node.name : void 0; - default: - return Debug.assertNever(node); - } -} -function getNamespaceDeclarationNode(node) { - switch (node.kind) { - case 272 /* ImportDeclaration */: - return node.importClause && tryCast(node.importClause.namedBindings, isNamespaceImport); - case 271 /* ImportEqualsDeclaration */: - return node; - case 278 /* ExportDeclaration */: - return node.exportClause && tryCast(node.exportClause, isNamespaceExport); - default: - return Debug.assertNever(node); - } -} -function isDefaultImport(node) { - return node.kind === 272 /* ImportDeclaration */ && !!node.importClause && !!node.importClause.name; -} -function forEachImportClauseDeclaration(node, action) { - if (node.name) { - var result = action(node); - if (result) - return result; - } - if (node.namedBindings) { - var result = isNamespaceImport(node.namedBindings) ? action(node.namedBindings) : forEach(node.namedBindings.elements, action); - if (result) - return result; - } -} -function hasQuestionToken(node) { - if (node) { - switch (node.kind) { - case 169 /* Parameter */: - case 174 /* MethodDeclaration */: - case 173 /* MethodSignature */: - case 304 /* ShorthandPropertyAssignment */: - case 303 /* PropertyAssignment */: - case 172 /* PropertyDeclaration */: - case 171 /* PropertySignature */: - return node.questionToken !== void 0; - } - } - return false; -} -function isJSDocConstructSignature(node) { - var param = isJSDocFunctionType(node) ? firstOrUndefined(node.parameters) : void 0; - var name = tryCast(param && param.name, isIdentifier); - return !!name && name.escapedText === "new"; -} -function isJSDocTypeAlias(node) { - return node.kind === 353 /* JSDocTypedefTag */ || node.kind === 345 /* JSDocCallbackTag */ || node.kind === 347 /* JSDocEnumTag */; -} -function isTypeAlias(node) { - return isJSDocTypeAlias(node) || isTypeAliasDeclaration(node); -} -function getSourceOfAssignment(node) { - return isExpressionStatement(node) && isBinaryExpression(node.expression) && node.expression.operatorToken.kind === 64 /* EqualsToken */ ? getRightMostAssignedExpression(node.expression) : void 0; -} -function getSourceOfDefaultedAssignment(node) { - return isExpressionStatement(node) && isBinaryExpression(node.expression) && getAssignmentDeclarationKind(node.expression) !== 0 /* None */ && isBinaryExpression(node.expression.right) && (node.expression.right.operatorToken.kind === 57 /* BarBarToken */ || node.expression.right.operatorToken.kind === 61 /* QuestionQuestionToken */) ? node.expression.right.right : void 0; -} -function getSingleInitializerOfVariableStatementOrPropertyDeclaration(node) { - switch (node.kind) { - case 243 /* VariableStatement */: - var v = getSingleVariableOfVariableStatement(node); - return v && v.initializer; - case 172 /* PropertyDeclaration */: - return node.initializer; - case 303 /* PropertyAssignment */: - return node.initializer; - } -} -function getSingleVariableOfVariableStatement(node) { - return isVariableStatement(node) ? firstOrUndefined(node.declarationList.declarations) : void 0; -} -function getNestedModuleDeclaration(node) { - return isModuleDeclaration(node) && node.body && node.body.kind === 267 /* ModuleDeclaration */ ? node.body : void 0; -} -function canHaveFlowNode(node) { - if (node.kind >= 243 /* FirstStatement */ && node.kind <= 259 /* LastStatement */) { - return true; - } - switch (node.kind) { - case 80 /* Identifier */: - case 110 /* ThisKeyword */: - case 108 /* SuperKeyword */: - case 166 /* QualifiedName */: - case 236 /* MetaProperty */: - case 212 /* ElementAccessExpression */: - case 211 /* PropertyAccessExpression */: - case 208 /* BindingElement */: - case 218 /* FunctionExpression */: - case 219 /* ArrowFunction */: - case 174 /* MethodDeclaration */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - return true; - default: - return false; - } -} -function canHaveJSDoc(node) { - switch (node.kind) { - case 219 /* ArrowFunction */: - case 226 /* BinaryExpression */: - case 241 /* Block */: - case 252 /* BreakStatement */: - case 179 /* CallSignature */: - case 296 /* CaseClause */: - case 263 /* ClassDeclaration */: - case 231 /* ClassExpression */: - case 175 /* ClassStaticBlockDeclaration */: - case 176 /* Constructor */: - case 185 /* ConstructorType */: - case 180 /* ConstructSignature */: - case 251 /* ContinueStatement */: - case 259 /* DebuggerStatement */: - case 246 /* DoStatement */: - case 212 /* ElementAccessExpression */: - case 242 /* EmptyStatement */: - case 1 /* EndOfFileToken */: - case 266 /* EnumDeclaration */: - case 306 /* EnumMember */: - case 277 /* ExportAssignment */: - case 278 /* ExportDeclaration */: - case 281 /* ExportSpecifier */: - case 244 /* ExpressionStatement */: - case 249 /* ForInStatement */: - case 250 /* ForOfStatement */: - case 248 /* ForStatement */: - case 262 /* FunctionDeclaration */: - case 218 /* FunctionExpression */: - case 184 /* FunctionType */: - case 177 /* GetAccessor */: - case 80 /* Identifier */: - case 245 /* IfStatement */: - case 272 /* ImportDeclaration */: - case 271 /* ImportEqualsDeclaration */: - case 181 /* IndexSignature */: - case 264 /* InterfaceDeclaration */: - case 324 /* JSDocFunctionType */: - case 330 /* JSDocSignature */: - case 256 /* LabeledStatement */: - case 174 /* MethodDeclaration */: - case 173 /* MethodSignature */: - case 267 /* ModuleDeclaration */: - case 202 /* NamedTupleMember */: - case 270 /* NamespaceExportDeclaration */: - case 210 /* ObjectLiteralExpression */: - case 169 /* Parameter */: - case 217 /* ParenthesizedExpression */: - case 211 /* PropertyAccessExpression */: - case 303 /* PropertyAssignment */: - case 172 /* PropertyDeclaration */: - case 171 /* PropertySignature */: - case 253 /* ReturnStatement */: - case 240 /* SemicolonClassElement */: - case 178 /* SetAccessor */: - case 304 /* ShorthandPropertyAssignment */: - case 305 /* SpreadAssignment */: - case 255 /* SwitchStatement */: - case 257 /* ThrowStatement */: - case 258 /* TryStatement */: - case 265 /* TypeAliasDeclaration */: - case 168 /* TypeParameter */: - case 260 /* VariableDeclaration */: - case 243 /* VariableStatement */: - case 247 /* WhileStatement */: - case 254 /* WithStatement */: - return true; - default: - return false; - } -} -function getJSDocCommentsAndTags(hostNode, noCache) { - var result; - if (isVariableLike(hostNode) && hasInitializer(hostNode) && hasJSDocNodes(hostNode.initializer)) { - result = addRange(result, filterOwnedJSDocTags(hostNode, last(hostNode.initializer.jsDoc))); - } - var node = hostNode; - while (node && node.parent) { - if (hasJSDocNodes(node)) { - result = addRange(result, filterOwnedJSDocTags(hostNode, last(node.jsDoc))); - } - if (node.kind === 169 /* Parameter */) { - result = addRange(result, (noCache ? getJSDocParameterTagsNoCache : getJSDocParameterTags)(node)); - break; - } - if (node.kind === 168 /* TypeParameter */) { - result = addRange(result, (noCache ? getJSDocTypeParameterTagsNoCache : getJSDocTypeParameterTags)(node)); - break; - } - node = getNextJSDocCommentLocation(node); - } - return result || emptyArray; -} -function filterOwnedJSDocTags(hostNode, jsDoc) { - if (isJSDoc(jsDoc)) { - var ownedTags = filter(jsDoc.tags, function (tag) { return ownsJSDocTag(hostNode, tag); }); - return jsDoc.tags === ownedTags ? [jsDoc] : ownedTags; - } - return ownsJSDocTag(hostNode, jsDoc) ? [jsDoc] : void 0; -} -function ownsJSDocTag(hostNode, tag) { - return !(isJSDocTypeTag(tag) || isJSDocSatisfiesTag(tag)) || !tag.parent || !isJSDoc(tag.parent) || !isParenthesizedExpression(tag.parent.parent) || tag.parent.parent === hostNode; -} -function getNextJSDocCommentLocation(node) { - var parent2 = node.parent; - if (parent2.kind === 303 /* PropertyAssignment */ || parent2.kind === 277 /* ExportAssignment */ || parent2.kind === 172 /* PropertyDeclaration */ || parent2.kind === 244 /* ExpressionStatement */ && node.kind === 211 /* PropertyAccessExpression */ || parent2.kind === 253 /* ReturnStatement */ || getNestedModuleDeclaration(parent2) || isBinaryExpression(node) && node.operatorToken.kind === 64 /* EqualsToken */) { - return parent2; - } - else if (parent2.parent && (getSingleVariableOfVariableStatement(parent2.parent) === node || isBinaryExpression(parent2) && parent2.operatorToken.kind === 64 /* EqualsToken */)) { - return parent2.parent; - } - else if (parent2.parent && parent2.parent.parent && (getSingleVariableOfVariableStatement(parent2.parent.parent) || getSingleInitializerOfVariableStatementOrPropertyDeclaration(parent2.parent.parent) === node || getSourceOfDefaultedAssignment(parent2.parent.parent))) { - return parent2.parent.parent; - } -} -function getParameterSymbolFromJSDoc(node) { - if (node.symbol) { - return node.symbol; - } - if (!isIdentifier(node.name)) { - return void 0; - } - var name = node.name.escapedText; - var decl = getHostSignatureFromJSDoc(node); - if (!decl) { - return void 0; - } - var parameter = find(decl.parameters, function (p) { return p.name.kind === 80 /* Identifier */ && p.name.escapedText === name; }); - return parameter && parameter.symbol; -} -function getEffectiveContainerForJSDocTemplateTag(node) { - if (isJSDoc(node.parent) && node.parent.tags) { - var typeAlias = find(node.parent.tags, isJSDocTypeAlias); - if (typeAlias) { - return typeAlias; - } - } - return getHostSignatureFromJSDoc(node); -} -function getHostSignatureFromJSDoc(node) { - var host = getEffectiveJSDocHost(node); - if (host) { - return isPropertySignature(host) && host.type && isFunctionLike(host.type) ? host.type : isFunctionLike(host) ? host : void 0; - } - return void 0; -} -function getEffectiveJSDocHost(node) { - var host = getJSDocHost(node); - if (host) { - return getSourceOfDefaultedAssignment(host) || getSourceOfAssignment(host) || getSingleInitializerOfVariableStatementOrPropertyDeclaration(host) || getSingleVariableOfVariableStatement(host) || getNestedModuleDeclaration(host) || host; - } -} -function getJSDocHost(node) { - var jsDoc = getJSDocRoot(node); - if (!jsDoc) { - return void 0; - } - var host = jsDoc.parent; - if (host && host.jsDoc && jsDoc === lastOrUndefined(host.jsDoc)) { - return host; - } -} -function getJSDocRoot(node) { - return findAncestor(node.parent, isJSDoc); -} -function getTypeParameterFromJsDoc(node) { - var name = node.name.escapedText; - var typeParameters = node.parent.parent.parent.typeParameters; - return typeParameters && find(typeParameters, function (p) { return p.name.escapedText === name; }); -} -function hasTypeArguments(node) { - return !!node.typeArguments; -} -var AssignmentKind = /* @__PURE__ */ (function (AssignmentKind2) { - AssignmentKind2[AssignmentKind2["None"] = 0] = "None"; - AssignmentKind2[AssignmentKind2["Definite"] = 1] = "Definite"; - AssignmentKind2[AssignmentKind2["Compound"] = 2] = "Compound"; - return AssignmentKind2; -})(AssignmentKind || {}); -function getAssignmentTargetKind(node) { - var parent2 = node.parent; - while (true) { - switch (parent2.kind) { - case 226 /* BinaryExpression */: - var binaryOperator = parent2.operatorToken.kind; - return isAssignmentOperator(binaryOperator) && parent2.left === node ? binaryOperator === 64 /* EqualsToken */ || isLogicalOrCoalescingAssignmentOperator(binaryOperator) ? 1 /* Definite */ : 2 /* Compound */ : 0 /* None */; - case 224 /* PrefixUnaryExpression */: - case 225 /* PostfixUnaryExpression */: - var unaryOperator = parent2.operator; - return unaryOperator === 46 /* PlusPlusToken */ || unaryOperator === 47 /* MinusMinusToken */ ? 2 /* Compound */ : 0 /* None */; - case 249 /* ForInStatement */: - case 250 /* ForOfStatement */: - return parent2.initializer === node ? 1 /* Definite */ : 0 /* None */; - case 217 /* ParenthesizedExpression */: - case 209 /* ArrayLiteralExpression */: - case 230 /* SpreadElement */: - case 235 /* NonNullExpression */: - node = parent2; - break; - case 305 /* SpreadAssignment */: - node = parent2.parent; - break; - case 304 /* ShorthandPropertyAssignment */: - if (parent2.name !== node) { - return 0 /* None */; - } - node = parent2.parent; - break; - case 303 /* PropertyAssignment */: - if (parent2.name === node) { - return 0 /* None */; - } - node = parent2.parent; - break; - default: - return 0 /* None */; - } - parent2 = node.parent; - } -} -function isAssignmentTarget(node) { - return getAssignmentTargetKind(node) !== 0 /* None */; -} -function isNodeWithPossibleHoistedDeclaration(node) { - switch (node.kind) { - case 241 /* Block */: - case 243 /* VariableStatement */: - case 254 /* WithStatement */: - case 245 /* IfStatement */: - case 255 /* SwitchStatement */: - case 269 /* CaseBlock */: - case 296 /* CaseClause */: - case 297 /* DefaultClause */: - case 256 /* LabeledStatement */: - case 248 /* ForStatement */: - case 249 /* ForInStatement */: - case 250 /* ForOfStatement */: - case 246 /* DoStatement */: - case 247 /* WhileStatement */: - case 258 /* TryStatement */: - case 299 /* CatchClause */: - return true; - } - return false; -} -function isValueSignatureDeclaration(node) { - return isFunctionExpression(node) || isArrowFunction(node) || isMethodOrAccessor(node) || isFunctionDeclaration(node) || isConstructorDeclaration(node); -} -function walkUp(node, kind) { - while (node && node.kind === kind) { - node = node.parent; - } - return node; -} -function walkUpParenthesizedTypes(node) { - return walkUp(node, 196 /* ParenthesizedType */); -} -function walkUpParenthesizedExpressions(node) { - return walkUp(node, 217 /* ParenthesizedExpression */); -} -function walkUpParenthesizedTypesAndGetParentAndChild(node) { - var child; - while (node && node.kind === 196 /* ParenthesizedType */) { - child = node; - node = node.parent; - } - return [child, node]; -} -function skipTypeParentheses(node) { - while (isParenthesizedTypeNode(node)) - node = node.type; - return node; -} -function skipParentheses(node, excludeJSDocTypeAssertions) { - var flags = excludeJSDocTypeAssertions ? 1 /* Parentheses */ | 16 /* ExcludeJSDocTypeAssertion */ : 1 /* Parentheses */; - return skipOuterExpressions(node, flags); -} -function isDeleteTarget(node) { - if (node.kind !== 211 /* PropertyAccessExpression */ && node.kind !== 212 /* ElementAccessExpression */) { - return false; - } - node = walkUpParenthesizedExpressions(node.parent); - return node && node.kind === 220 /* DeleteExpression */; -} -function isNodeDescendantOf(node, ancestor) { - while (node) { - if (node === ancestor) - return true; - node = node.parent; - } - return false; -} -function isDeclarationName(name) { - return !isSourceFile(name) && !isBindingPattern(name) && isDeclaration(name.parent) && name.parent.name === name; -} -function getDeclarationFromName(name) { - var parent2 = name.parent; - switch (name.kind) { - case 11 /* StringLiteral */: - case 15 /* NoSubstitutionTemplateLiteral */: - case 9 /* NumericLiteral */: - if (isComputedPropertyName(parent2)) - return parent2.parent; - case 80 /* Identifier */: - if (isDeclaration(parent2)) { - return parent2.name === name ? parent2 : void 0; - } - else if (isQualifiedName(parent2)) { - var tag = parent2.parent; - return isJSDocParameterTag(tag) && tag.name === parent2 ? tag : void 0; - } - else { - var binExp = parent2.parent; - return isBinaryExpression(binExp) && getAssignmentDeclarationKind(binExp) !== 0 /* None */ && (binExp.left.symbol || binExp.symbol) && getNameOfDeclaration(binExp) === name ? binExp : void 0; - } - case 81 /* PrivateIdentifier */: - return isDeclaration(parent2) && parent2.name === name ? parent2 : void 0; - default: - return void 0; - } -} -function isLiteralComputedPropertyDeclarationName(node) { - return isStringOrNumericLiteralLike(node) && node.parent.kind === 167 /* ComputedPropertyName */ && isDeclaration(node.parent.parent); -} -function isIdentifierName(node) { - var parent2 = node.parent; - switch (parent2.kind) { - case 172 /* PropertyDeclaration */: - case 171 /* PropertySignature */: - case 174 /* MethodDeclaration */: - case 173 /* MethodSignature */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - case 306 /* EnumMember */: - case 303 /* PropertyAssignment */: - case 211 /* PropertyAccessExpression */: - return parent2.name === node; - case 166 /* QualifiedName */: - return parent2.right === node; - case 208 /* BindingElement */: - case 276 /* ImportSpecifier */: - return parent2.propertyName === node; - case 281 /* ExportSpecifier */: - case 291 /* JsxAttribute */: - case 285 /* JsxSelfClosingElement */: - case 286 /* JsxOpeningElement */: - case 287 /* JsxClosingElement */: - return true; - } - return false; -} -function isAliasSymbolDeclaration(node) { - if (node.kind === 271 /* ImportEqualsDeclaration */ || node.kind === 270 /* NamespaceExportDeclaration */ || node.kind === 273 /* ImportClause */ && !!node.name || node.kind === 274 /* NamespaceImport */ || node.kind === 280 /* NamespaceExport */ || node.kind === 276 /* ImportSpecifier */ || node.kind === 281 /* ExportSpecifier */ || node.kind === 277 /* ExportAssignment */ && exportAssignmentIsAlias(node)) { - return true; - } - return isInJSFile(node) && (isBinaryExpression(node) && getAssignmentDeclarationKind(node) === 2 /* ModuleExports */ && exportAssignmentIsAlias(node) || isPropertyAccessExpression(node) && isBinaryExpression(node.parent) && node.parent.left === node && node.parent.operatorToken.kind === 64 /* EqualsToken */ && isAliasableExpression(node.parent.right)); -} -function getAliasDeclarationFromName(node) { - switch (node.parent.kind) { - case 273 /* ImportClause */: - case 276 /* ImportSpecifier */: - case 274 /* NamespaceImport */: - case 281 /* ExportSpecifier */: - case 277 /* ExportAssignment */: - case 271 /* ImportEqualsDeclaration */: - case 280 /* NamespaceExport */: - return node.parent; - case 166 /* QualifiedName */: - do { - node = node.parent; - } while (node.parent.kind === 166 /* QualifiedName */); - return getAliasDeclarationFromName(node); - } -} -function isAliasableExpression(e) { - return isEntityNameExpression(e) || isClassExpression(e); -} -function exportAssignmentIsAlias(node) { - var e = getExportAssignmentExpression(node); - return isAliasableExpression(e); -} -function getExportAssignmentExpression(node) { - return isExportAssignment(node) ? node.expression : node.right; -} -function getPropertyAssignmentAliasLikeExpression(node) { - return node.kind === 304 /* ShorthandPropertyAssignment */ ? node.name : node.kind === 303 /* PropertyAssignment */ ? node.initializer : node.parent.right; -} -function getEffectiveBaseTypeNode(node) { - var baseType = getClassExtendsHeritageElement(node); - if (baseType && isInJSFile(node)) { - var tag = getJSDocAugmentsTag(node); - if (tag) { - return tag.class; - } - } - return baseType; -} -function getClassExtendsHeritageElement(node) { - var heritageClause = getHeritageClause(node.heritageClauses, 96 /* ExtendsKeyword */); - return heritageClause && heritageClause.types.length > 0 ? heritageClause.types[0] : void 0; -} -function getEffectiveImplementsTypeNodes(node) { - if (isInJSFile(node)) { - return getJSDocImplementsTags(node).map(function (n) { return n.class; }); - } - else { - var heritageClause = getHeritageClause(node.heritageClauses, 119 /* ImplementsKeyword */); - return heritageClause == null ? void 0 : heritageClause.types; - } -} -function getAllSuperTypeNodes(node) { - return isInterfaceDeclaration(node) ? getInterfaceBaseTypeNodes(node) || emptyArray : isClassLike(node) ? concatenate(singleElementArray(getEffectiveBaseTypeNode(node)), getEffectiveImplementsTypeNodes(node)) || emptyArray : emptyArray; -} -function getInterfaceBaseTypeNodes(node) { - var heritageClause = getHeritageClause(node.heritageClauses, 96 /* ExtendsKeyword */); - return heritageClause ? heritageClause.types : void 0; -} -function getHeritageClause(clauses, kind) { - var e_59, _t; - if (clauses) { - try { - for (var clauses_1 = __values(clauses), clauses_1_1 = clauses_1.next(); !clauses_1_1.done; clauses_1_1 = clauses_1.next()) { - var clause = clauses_1_1.value; - if (clause.token === kind) { - return clause; - } - } - } - catch (e_59_1) { e_59 = { error: e_59_1 }; } - finally { - try { - if (clauses_1_1 && !clauses_1_1.done && (_t = clauses_1.return)) _t.call(clauses_1); - } - finally { if (e_59) throw e_59.error; } - } - } - return void 0; -} -function getAncestor(node, kind) { - while (node) { - if (node.kind === kind) { - return node; - } - node = node.parent; - } - return void 0; -} -function isKeyword(token) { - return 83 /* FirstKeyword */ <= token && token <= 165 /* LastKeyword */; -} -function isPunctuation(token) { - return 19 /* FirstPunctuation */ <= token && token <= 79 /* LastPunctuation */; -} -function isKeywordOrPunctuation(token) { - return isKeyword(token) || isPunctuation(token); -} -function isContextualKeyword(token) { - return 128 /* FirstContextualKeyword */ <= token && token <= 165 /* LastContextualKeyword */; -} -function isNonContextualKeyword(token) { - return isKeyword(token) && !isContextualKeyword(token); -} -function isFutureReservedKeyword(token) { - return 119 /* FirstFutureReservedWord */ <= token && token <= 127 /* LastFutureReservedWord */; -} -function isStringANonContextualKeyword(name) { - var token = stringToToken(name); - return token !== void 0 && isNonContextualKeyword(token); -} -function isStringAKeyword(name) { - var token = stringToToken(name); - return token !== void 0 && isKeyword(token); -} -function isIdentifierANonContextualKeyword(node) { - var originalKeywordKind = identifierToKeywordKind(node); - return !!originalKeywordKind && !isContextualKeyword(originalKeywordKind); -} -function isTrivia(token) { - return 2 /* FirstTriviaToken */ <= token && token <= 7 /* LastTriviaToken */; -} -var FunctionFlags = /* @__PURE__ */ (function (FunctionFlags2) { - FunctionFlags2[FunctionFlags2["Normal"] = 0] = "Normal"; - FunctionFlags2[FunctionFlags2["Generator"] = 1] = "Generator"; - FunctionFlags2[FunctionFlags2["Async"] = 2] = "Async"; - FunctionFlags2[FunctionFlags2["Invalid"] = 4] = "Invalid"; - FunctionFlags2[FunctionFlags2["AsyncGenerator"] = 3] = "AsyncGenerator"; - return FunctionFlags2; -})(FunctionFlags || {}); -function getFunctionFlags(node) { - if (!node) { - return 4 /* Invalid */; - } - var flags = 0 /* Normal */; - switch (node.kind) { - case 262 /* FunctionDeclaration */: - case 218 /* FunctionExpression */: - case 174 /* MethodDeclaration */: - if (node.asteriskToken) { - flags |= 1 /* Generator */; - } - case 219 /* ArrowFunction */: - if (hasSyntacticModifier(node, 512 /* Async */)) { - flags |= 2 /* Async */; - } - break; - } - if (!node.body) { - flags |= 4 /* Invalid */; - } - return flags; -} -function isAsyncFunction(node) { - switch (node.kind) { - case 262 /* FunctionDeclaration */: - case 218 /* FunctionExpression */: - case 219 /* ArrowFunction */: - case 174 /* MethodDeclaration */: - return node.body !== void 0 && node.asteriskToken === void 0 && hasSyntacticModifier(node, 512 /* Async */); - } - return false; -} -function isStringOrNumericLiteralLike(node) { - return isStringLiteralLike(node) || isNumericLiteral(node); -} -function isSignedNumericLiteral(node) { - return isPrefixUnaryExpression(node) && (node.operator === 40 /* PlusToken */ || node.operator === 41 /* MinusToken */) && isNumericLiteral(node.operand); -} -function hasDynamicName(declaration) { - var name = getNameOfDeclaration(declaration); - return !!name && isDynamicName(name); -} -function isDynamicName(name) { - if (!(name.kind === 167 /* ComputedPropertyName */ || name.kind === 212 /* ElementAccessExpression */)) { - return false; - } - var expr = isElementAccessExpression(name) ? skipParentheses(name.argumentExpression) : name.expression; - return !isStringOrNumericLiteralLike(expr) && !isSignedNumericLiteral(expr); -} -function getPropertyNameForPropertyNameNode(name) { - switch (name.kind) { - case 80 /* Identifier */: - case 81 /* PrivateIdentifier */: - return name.escapedText; - case 11 /* StringLiteral */: - case 9 /* NumericLiteral */: - return escapeLeadingUnderscores(name.text); - case 167 /* ComputedPropertyName */: - var nameExpression = name.expression; - if (isStringOrNumericLiteralLike(nameExpression)) { - return escapeLeadingUnderscores(nameExpression.text); - } - else if (isSignedNumericLiteral(nameExpression)) { - if (nameExpression.operator === 41 /* MinusToken */) { - return tokenToString(nameExpression.operator) + nameExpression.operand.text; - } - return nameExpression.operand.text; - } - return void 0; - case 295 /* JsxNamespacedName */: - return getEscapedTextOfJsxNamespacedName(name); - default: - return Debug.assertNever(name); - } -} -function isPropertyNameLiteral(node) { - switch (node.kind) { - case 80 /* Identifier */: - case 11 /* StringLiteral */: - case 15 /* NoSubstitutionTemplateLiteral */: - case 9 /* NumericLiteral */: - return true; - default: - return false; - } -} -function getTextOfIdentifierOrLiteral(node) { - return isMemberName(node) ? idText(node) : isJsxNamespacedName(node) ? getTextOfJsxNamespacedName(node) : node.text; -} -function getEscapedTextOfIdentifierOrLiteral(node) { - return isMemberName(node) ? node.escapedText : isJsxNamespacedName(node) ? getEscapedTextOfJsxNamespacedName(node) : escapeLeadingUnderscores(node.text); -} -function getPropertyNameForUniqueESSymbol(symbol) { - return "__@".concat(getSymbolId(symbol), "@").concat(symbol.escapedName); -} -function getSymbolNameForPrivateIdentifier(containingClassSymbol, description3) { - return "__#".concat(getSymbolId(containingClassSymbol), "@").concat(description3); -} -function isKnownSymbol(symbol) { - return startsWith(symbol.escapedName, "__@"); -} -function isPrivateIdentifierSymbol(symbol) { - return startsWith(symbol.escapedName, "__#"); -} -function isESSymbolIdentifier(node) { - return node.kind === 80 /* Identifier */ && node.escapedText === "Symbol"; -} -function isProtoSetter(node) { - return isIdentifier(node) ? idText(node) === "__proto__" : isStringLiteral(node) && node.text === "__proto__"; -} -function isAnonymousFunctionDefinition(node, cb) { - node = skipOuterExpressions(node); - switch (node.kind) { - case 231 /* ClassExpression */: - if (classHasDeclaredOrExplicitlyAssignedName(node)) { - return false; - } - break; - case 218 /* FunctionExpression */: - if (node.name) { - return false; - } - break; - case 219 /* ArrowFunction */: - break; - default: - return false; - } - return typeof cb === "function" ? cb(node) : true; -} -function isNamedEvaluationSource(node) { - switch (node.kind) { - case 303 /* PropertyAssignment */: - return !isProtoSetter(node.name); - case 304 /* ShorthandPropertyAssignment */: - return !!node.objectAssignmentInitializer; - case 260 /* VariableDeclaration */: - return isIdentifier(node.name) && !!node.initializer; - case 169 /* Parameter */: - return isIdentifier(node.name) && !!node.initializer && !node.dotDotDotToken; - case 208 /* BindingElement */: - return isIdentifier(node.name) && !!node.initializer && !node.dotDotDotToken; - case 172 /* PropertyDeclaration */: - return !!node.initializer; - case 226 /* BinaryExpression */: - switch (node.operatorToken.kind) { - case 64 /* EqualsToken */: - case 77 /* AmpersandAmpersandEqualsToken */: - case 76 /* BarBarEqualsToken */: - case 78 /* QuestionQuestionEqualsToken */: - return isIdentifier(node.left); - } - break; - case 277 /* ExportAssignment */: - return true; - } - return false; -} -function isNamedEvaluation(node, cb) { - if (!isNamedEvaluationSource(node)) - return false; - switch (node.kind) { - case 303 /* PropertyAssignment */: - return isAnonymousFunctionDefinition(node.initializer, cb); - case 304 /* ShorthandPropertyAssignment */: - return isAnonymousFunctionDefinition(node.objectAssignmentInitializer, cb); - case 260 /* VariableDeclaration */: - case 169 /* Parameter */: - case 208 /* BindingElement */: - case 172 /* PropertyDeclaration */: - return isAnonymousFunctionDefinition(node.initializer, cb); - case 226 /* BinaryExpression */: - return isAnonymousFunctionDefinition(node.right, cb); - case 277 /* ExportAssignment */: - return isAnonymousFunctionDefinition(node.expression, cb); - } -} -function isPushOrUnshiftIdentifier(node) { - return node.escapedText === "push" || node.escapedText === "unshift"; -} -function isParameterDeclaration(node) { - var root = getRootDeclaration(node); - return root.kind === 169 /* Parameter */; -} -function getRootDeclaration(node) { - while (node.kind === 208 /* BindingElement */) { - node = node.parent.parent; - } - return node; -} -function nodeStartsNewLexicalEnvironment(node) { - var kind = node.kind; - return kind === 176 /* Constructor */ || kind === 218 /* FunctionExpression */ || kind === 262 /* FunctionDeclaration */ || kind === 219 /* ArrowFunction */ || kind === 174 /* MethodDeclaration */ || kind === 177 /* GetAccessor */ || kind === 178 /* SetAccessor */ || kind === 267 /* ModuleDeclaration */ || kind === 312 /* SourceFile */; -} -function nodeIsSynthesized(range) { - return positionIsSynthesized(range.pos) || positionIsSynthesized(range.end); -} -function getOriginalSourceFile(sourceFile) { - return getParseTreeNode(sourceFile, isSourceFile) || sourceFile; -} -var Associativity = /* @__PURE__ */ (function (Associativity2) { - Associativity2[Associativity2["Left"] = 0] = "Left"; - Associativity2[Associativity2["Right"] = 1] = "Right"; - return Associativity2; -})(Associativity || {}); -function getExpressionAssociativity(expression) { - var operator = getOperator(expression); - var hasArguments = expression.kind === 214 /* NewExpression */ && expression.arguments !== void 0; - return getOperatorAssociativity(expression.kind, operator, hasArguments); -} -function getOperatorAssociativity(kind, operator, hasArguments) { - switch (kind) { - case 214 /* NewExpression */: - return hasArguments ? 0 /* Left */ : 1 /* Right */; - case 224 /* PrefixUnaryExpression */: - case 221 /* TypeOfExpression */: - case 222 /* VoidExpression */: - case 220 /* DeleteExpression */: - case 223 /* AwaitExpression */: - case 227 /* ConditionalExpression */: - case 229 /* YieldExpression */: - return 1 /* Right */; - case 226 /* BinaryExpression */: - switch (operator) { - case 43 /* AsteriskAsteriskToken */: - case 64 /* EqualsToken */: - case 65 /* PlusEqualsToken */: - case 66 /* MinusEqualsToken */: - case 68 /* AsteriskAsteriskEqualsToken */: - case 67 /* AsteriskEqualsToken */: - case 69 /* SlashEqualsToken */: - case 70 /* PercentEqualsToken */: - case 71 /* LessThanLessThanEqualsToken */: - case 72 /* GreaterThanGreaterThanEqualsToken */: - case 73 /* GreaterThanGreaterThanGreaterThanEqualsToken */: - case 74 /* AmpersandEqualsToken */: - case 79 /* CaretEqualsToken */: - case 75 /* BarEqualsToken */: - case 76 /* BarBarEqualsToken */: - case 77 /* AmpersandAmpersandEqualsToken */: - case 78 /* QuestionQuestionEqualsToken */: - return 1 /* Right */; - } - } - return 0 /* Left */; -} -function getExpressionPrecedence(expression) { - var operator = getOperator(expression); - var hasArguments = expression.kind === 214 /* NewExpression */ && expression.arguments !== void 0; - return getOperatorPrecedence(expression.kind, operator, hasArguments); -} -function getOperator(expression) { - if (expression.kind === 226 /* BinaryExpression */) { - return expression.operatorToken.kind; - } - else if (expression.kind === 224 /* PrefixUnaryExpression */ || expression.kind === 225 /* PostfixUnaryExpression */) { - return expression.operator; - } - else { - return expression.kind; - } -} -var OperatorPrecedence = /* @__PURE__ */ (function (OperatorPrecedence2) { - OperatorPrecedence2[OperatorPrecedence2["Comma"] = 0] = "Comma"; - OperatorPrecedence2[OperatorPrecedence2["Spread"] = 1] = "Spread"; - OperatorPrecedence2[OperatorPrecedence2["Yield"] = 2] = "Yield"; - OperatorPrecedence2[OperatorPrecedence2["Assignment"] = 3] = "Assignment"; - OperatorPrecedence2[OperatorPrecedence2["Conditional"] = 4] = "Conditional"; - OperatorPrecedence2[OperatorPrecedence2["Coalesce"] = 4 /* Conditional */] = "Coalesce"; - OperatorPrecedence2[OperatorPrecedence2["LogicalOR"] = 5] = "LogicalOR"; - OperatorPrecedence2[OperatorPrecedence2["LogicalAND"] = 6] = "LogicalAND"; - OperatorPrecedence2[OperatorPrecedence2["BitwiseOR"] = 7] = "BitwiseOR"; - OperatorPrecedence2[OperatorPrecedence2["BitwiseXOR"] = 8] = "BitwiseXOR"; - OperatorPrecedence2[OperatorPrecedence2["BitwiseAND"] = 9] = "BitwiseAND"; - OperatorPrecedence2[OperatorPrecedence2["Equality"] = 10] = "Equality"; - OperatorPrecedence2[OperatorPrecedence2["Relational"] = 11] = "Relational"; - OperatorPrecedence2[OperatorPrecedence2["Shift"] = 12] = "Shift"; - OperatorPrecedence2[OperatorPrecedence2["Additive"] = 13] = "Additive"; - OperatorPrecedence2[OperatorPrecedence2["Multiplicative"] = 14] = "Multiplicative"; - OperatorPrecedence2[OperatorPrecedence2["Exponentiation"] = 15] = "Exponentiation"; - OperatorPrecedence2[OperatorPrecedence2["Unary"] = 16] = "Unary"; - OperatorPrecedence2[OperatorPrecedence2["Update"] = 17] = "Update"; - OperatorPrecedence2[OperatorPrecedence2["LeftHandSide"] = 18] = "LeftHandSide"; - OperatorPrecedence2[OperatorPrecedence2["Member"] = 19] = "Member"; - OperatorPrecedence2[OperatorPrecedence2["Primary"] = 20] = "Primary"; - OperatorPrecedence2[OperatorPrecedence2["Highest"] = 20 /* Primary */] = "Highest"; - OperatorPrecedence2[OperatorPrecedence2["Lowest"] = 0 /* Comma */] = "Lowest"; - OperatorPrecedence2[OperatorPrecedence2["Invalid"] = -1] = "Invalid"; - return OperatorPrecedence2; -})(OperatorPrecedence || {}); -function getOperatorPrecedence(nodeKind, operatorKind, hasArguments) { - switch (nodeKind) { - case 361 /* CommaListExpression */: - return 0 /* Comma */; - case 230 /* SpreadElement */: - return 1 /* Spread */; - case 229 /* YieldExpression */: - return 2 /* Yield */; - case 227 /* ConditionalExpression */: - return 4 /* Conditional */; - case 226 /* BinaryExpression */: - switch (operatorKind) { - case 28 /* CommaToken */: - return 0 /* Comma */; - case 64 /* EqualsToken */: - case 65 /* PlusEqualsToken */: - case 66 /* MinusEqualsToken */: - case 68 /* AsteriskAsteriskEqualsToken */: - case 67 /* AsteriskEqualsToken */: - case 69 /* SlashEqualsToken */: - case 70 /* PercentEqualsToken */: - case 71 /* LessThanLessThanEqualsToken */: - case 72 /* GreaterThanGreaterThanEqualsToken */: - case 73 /* GreaterThanGreaterThanGreaterThanEqualsToken */: - case 74 /* AmpersandEqualsToken */: - case 79 /* CaretEqualsToken */: - case 75 /* BarEqualsToken */: - case 76 /* BarBarEqualsToken */: - case 77 /* AmpersandAmpersandEqualsToken */: - case 78 /* QuestionQuestionEqualsToken */: - return 3 /* Assignment */; - default: - return getBinaryOperatorPrecedence(operatorKind); - } - case 216 /* TypeAssertionExpression */: - case 235 /* NonNullExpression */: - case 224 /* PrefixUnaryExpression */: - case 221 /* TypeOfExpression */: - case 222 /* VoidExpression */: - case 220 /* DeleteExpression */: - case 223 /* AwaitExpression */: - return 16 /* Unary */; - case 225 /* PostfixUnaryExpression */: - return 17 /* Update */; - case 213 /* CallExpression */: - return 18 /* LeftHandSide */; - case 214 /* NewExpression */: - return hasArguments ? 19 /* Member */ : 18 /* LeftHandSide */; - case 215 /* TaggedTemplateExpression */: - case 211 /* PropertyAccessExpression */: - case 212 /* ElementAccessExpression */: - case 236 /* MetaProperty */: - return 19 /* Member */; - case 234 /* AsExpression */: - case 238 /* SatisfiesExpression */: - return 11 /* Relational */; - case 110 /* ThisKeyword */: - case 108 /* SuperKeyword */: - case 80 /* Identifier */: - case 81 /* PrivateIdentifier */: - case 106 /* NullKeyword */: - case 112 /* TrueKeyword */: - case 97 /* FalseKeyword */: - case 9 /* NumericLiteral */: - case 10 /* BigIntLiteral */: - case 11 /* StringLiteral */: - case 209 /* ArrayLiteralExpression */: - case 210 /* ObjectLiteralExpression */: - case 218 /* FunctionExpression */: - case 219 /* ArrowFunction */: - case 231 /* ClassExpression */: - case 14 /* RegularExpressionLiteral */: - case 15 /* NoSubstitutionTemplateLiteral */: - case 228 /* TemplateExpression */: - case 217 /* ParenthesizedExpression */: - case 232 /* OmittedExpression */: - case 284 /* JsxElement */: - case 285 /* JsxSelfClosingElement */: - case 288 /* JsxFragment */: - return 20 /* Primary */; - default: - return -1 /* Invalid */; - } -} -function getBinaryOperatorPrecedence(kind) { - switch (kind) { - case 61 /* QuestionQuestionToken */: - return 4 /* Coalesce */; - case 57 /* BarBarToken */: - return 5 /* LogicalOR */; - case 56 /* AmpersandAmpersandToken */: - return 6 /* LogicalAND */; - case 52 /* BarToken */: - return 7 /* BitwiseOR */; - case 53 /* CaretToken */: - return 8 /* BitwiseXOR */; - case 51 /* AmpersandToken */: - return 9 /* BitwiseAND */; - case 35 /* EqualsEqualsToken */: - case 36 /* ExclamationEqualsToken */: - case 37 /* EqualsEqualsEqualsToken */: - case 38 /* ExclamationEqualsEqualsToken */: - return 10 /* Equality */; - case 30 /* LessThanToken */: - case 32 /* GreaterThanToken */: - case 33 /* LessThanEqualsToken */: - case 34 /* GreaterThanEqualsToken */: - case 104 /* InstanceOfKeyword */: - case 103 /* InKeyword */: - case 130 /* AsKeyword */: - case 152 /* SatisfiesKeyword */: - return 11 /* Relational */; - case 48 /* LessThanLessThanToken */: - case 49 /* GreaterThanGreaterThanToken */: - case 50 /* GreaterThanGreaterThanGreaterThanToken */: - return 12 /* Shift */; - case 40 /* PlusToken */: - case 41 /* MinusToken */: - return 13 /* Additive */; - case 42 /* AsteriskToken */: - case 44 /* SlashToken */: - case 45 /* PercentToken */: - return 14 /* Multiplicative */; - case 43 /* AsteriskAsteriskToken */: - return 15 /* Exponentiation */; - } - return -1; -} -function getSemanticJsxChildren(children) { - return filter(children, function (i) { - switch (i.kind) { - case 294 /* JsxExpression */: - return !!i.expression; - case 12 /* JsxText */: - return !i.containsOnlyTriviaWhiteSpaces; - default: - return true; - } - }); -} -function createDiagnosticCollection() { - var nonFileDiagnostics = []; - var filesWithDiagnostics = []; - var fileDiagnostics = /* @__PURE__ */ new Map(); - var hasReadNonFileDiagnostics = false; - return { - add: add, - lookup: lookup, - getGlobalDiagnostics: getGlobalDiagnostics, - getDiagnostics: getDiagnostics2 - }; - function lookup(diagnostic) { - var diagnostics; - if (diagnostic.file) { - diagnostics = fileDiagnostics.get(diagnostic.file.fileName); - } - else { - diagnostics = nonFileDiagnostics; - } - if (!diagnostics) { - return void 0; - } - var result = binarySearch(diagnostics, diagnostic, identity, compareDiagnosticsSkipRelatedInformation); - if (result >= 0) { - return diagnostics[result]; - } - return void 0; - } - function add(diagnostic) { - var diagnostics; - if (diagnostic.file) { - diagnostics = fileDiagnostics.get(diagnostic.file.fileName); - if (!diagnostics) { - diagnostics = []; - fileDiagnostics.set(diagnostic.file.fileName, diagnostics); - insertSorted(filesWithDiagnostics, diagnostic.file.fileName, compareStringsCaseSensitive); - } - } - else { - if (hasReadNonFileDiagnostics) { - hasReadNonFileDiagnostics = false; - nonFileDiagnostics = nonFileDiagnostics.slice(); - } - diagnostics = nonFileDiagnostics; - } - insertSorted(diagnostics, diagnostic, compareDiagnosticsSkipRelatedInformation); - } - function getGlobalDiagnostics() { - hasReadNonFileDiagnostics = true; - return nonFileDiagnostics; - } - function getDiagnostics2(fileName) { - if (fileName) { - return fileDiagnostics.get(fileName) || []; - } - var fileDiags = flatMapToMutable(filesWithDiagnostics, function (f) { return fileDiagnostics.get(f); }); - if (!nonFileDiagnostics.length) { - return fileDiags; - } - fileDiags.unshift.apply(fileDiags, __spreadArray([], __read(nonFileDiagnostics), false)); - return fileDiags; - } -} -var templateSubstitutionRegExp = /\$\{/g; -function escapeTemplateSubstitution(str) { - return str.replace(templateSubstitutionRegExp, "\\${"); -} -function hasInvalidEscape(template) { - return template && !!(isNoSubstitutionTemplateLiteral(template) ? template.templateFlags : template.head.templateFlags || some(template.templateSpans, function (span) { return !!span.literal.templateFlags; })); -} -var doubleQuoteEscapedCharsRegExp = /[\\"\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g; -var singleQuoteEscapedCharsRegExp = /[\\'\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g; -var backtickQuoteEscapedCharsRegExp = /\r\n|[\\`\u0000-\u001f\t\v\f\b\r\u2028\u2029\u0085]/g; -var escapedCharsMap = new Map(Object.entries({ - " ": "\\t", - "\v": "\\v", - "\f": "\\f", - "\b": "\\b", - "\r": "\\r", - "\n": "\\n", - "\\": "\\\\", - '"': '\\"', - "'": "\\'", - "`": "\\`", - "\u2028": "\\u2028", - // lineSeparator - "\u2029": "\\u2029", - // paragraphSeparator - "\x85": "\\u0085", - // nextLine - "\r\n": "\\r\\n" - // special case for CRLFs in backticks -})); -function encodeUtf16EscapeSequence(charCode) { - var hexCharCode = charCode.toString(16).toUpperCase(); - var paddedHexCode = ("0000" + hexCharCode).slice(-4); - return "\\u" + paddedHexCode; -} -function getReplacement(c, offset, input) { - if (c.charCodeAt(0) === 0 /* nullCharacter */) { - var lookAhead = input.charCodeAt(offset + c.length); - if (lookAhead >= 48 /* _0 */ && lookAhead <= 57 /* _9 */) { - return "\\x00"; - } - return "\\0"; - } - return escapedCharsMap.get(c) || encodeUtf16EscapeSequence(c.charCodeAt(0)); -} -function escapeString(s, quoteChar) { - var escapedCharsRegExp = quoteChar === 96 /* backtick */ ? backtickQuoteEscapedCharsRegExp : quoteChar === 39 /* singleQuote */ ? singleQuoteEscapedCharsRegExp : doubleQuoteEscapedCharsRegExp; - return s.replace(escapedCharsRegExp, getReplacement); -} -var nonAsciiCharacters = /[^\u0000-\u007F]/g; -function escapeNonAsciiString(s, quoteChar) { - s = escapeString(s, quoteChar); - return nonAsciiCharacters.test(s) ? s.replace(nonAsciiCharacters, function (c) { return encodeUtf16EscapeSequence(c.charCodeAt(0)); }) : s; -} -var jsxDoubleQuoteEscapedCharsRegExp = /["\u0000-\u001f\u2028\u2029\u0085]/g; -var jsxSingleQuoteEscapedCharsRegExp = /['\u0000-\u001f\u2028\u2029\u0085]/g; -var jsxEscapedCharsMap = new Map(Object.entries({ - '"': """, - "'": "'" -})); -function encodeJsxCharacterEntity(charCode) { - var hexCharCode = charCode.toString(16).toUpperCase(); - return "&#x" + hexCharCode + ";"; -} -function getJsxAttributeStringReplacement(c) { - if (c.charCodeAt(0) === 0 /* nullCharacter */) { - return "�"; - } - return jsxEscapedCharsMap.get(c) || encodeJsxCharacterEntity(c.charCodeAt(0)); -} -function escapeJsxAttributeString(s, quoteChar) { - var escapedCharsRegExp = quoteChar === 39 /* singleQuote */ ? jsxSingleQuoteEscapedCharsRegExp : jsxDoubleQuoteEscapedCharsRegExp; - return s.replace(escapedCharsRegExp, getJsxAttributeStringReplacement); -} -function stripQuotes(name) { - var length2 = name.length; - if (length2 >= 2 && name.charCodeAt(0) === name.charCodeAt(length2 - 1) && isQuoteOrBacktick(name.charCodeAt(0))) { - return name.substring(1, length2 - 1); - } - return name; -} -function isQuoteOrBacktick(charCode) { - return charCode === 39 /* singleQuote */ || charCode === 34 /* doubleQuote */ || charCode === 96 /* backtick */; -} -function isIntrinsicJsxName(name) { - var ch = name.charCodeAt(0); - return ch >= 97 /* a */ && ch <= 122 /* z */ || stringContains(name, "-"); -} -var indentStrings = ["", " "]; -function getIndentString(level) { - var singleLevel = indentStrings[1]; - for (var current = indentStrings.length; current <= level; current++) { - indentStrings.push(indentStrings[current - 1] + singleLevel); - } - return indentStrings[level]; -} -function getIndentSize() { - return indentStrings[1].length; -} -function isNightly() { - return stringContains(version, "-dev") || stringContains(version, "-insiders"); -} -function createTextWriter(newLine) { - var output; - var indent3; - var lineStart; - var lineCount; - var linePos; - var hasTrailingComment = false; - function updateLineCountAndPosFor(s) { - var lineStartsOfS = computeLineStarts(s); - if (lineStartsOfS.length > 1) { - lineCount = lineCount + lineStartsOfS.length - 1; - linePos = output.length - s.length + last(lineStartsOfS); - lineStart = linePos - output.length === 0; - } - else { - lineStart = false; - } - } - function writeText(s) { - if (s && s.length) { - if (lineStart) { - s = getIndentString(indent3) + s; - lineStart = false; - } - output += s; - updateLineCountAndPosFor(s); - } - } - function write(s) { - if (s) - hasTrailingComment = false; - writeText(s); - } - function writeComment(s) { - if (s) - hasTrailingComment = true; - writeText(s); - } - function reset2() { - output = ""; - indent3 = 0; - lineStart = true; - lineCount = 0; - linePos = 0; - hasTrailingComment = false; - } - function rawWrite(s) { - if (s !== void 0) { - output += s; - updateLineCountAndPosFor(s); - hasTrailingComment = false; - } - } - function writeLiteral(s) { - if (s && s.length) { - write(s); - } - } - function writeLine(force) { - if (!lineStart || force) { - output += newLine; - lineCount++; - linePos = output.length; - lineStart = true; - hasTrailingComment = false; - } - } - function getTextPosWithWriteLine() { - return lineStart ? output.length : output.length + newLine.length; - } - reset2(); - return { - write: write, - rawWrite: rawWrite, - writeLiteral: writeLiteral, - writeLine: writeLine, - increaseIndent: function () { - indent3++; - }, - decreaseIndent: function () { - indent3--; - }, - getIndent: function () { return indent3; }, - getTextPos: function () { return output.length; }, - getLine: function () { return lineCount; }, - getColumn: function () { return lineStart ? indent3 * getIndentSize() : output.length - linePos; }, - getText: function () { return output; }, - isAtStartOfLine: function () { return lineStart; }, - hasTrailingComment: function () { return hasTrailingComment; }, - hasTrailingWhitespace: function () { return !!output.length && isWhiteSpaceLike(output.charCodeAt(output.length - 1)); }, - clear: reset2, - writeKeyword: write, - writeOperator: write, - writeParameter: write, - writeProperty: write, - writePunctuation: write, - writeSpace: write, - writeStringLiteral: write, - writeSymbol: function (s, _) { return write(s); }, - writeTrailingSemicolon: write, - writeComment: writeComment, - getTextPosWithWriteLine: getTextPosWithWriteLine - }; -} -function getTrailingSemicolonDeferringWriter(writer) { - var pendingTrailingSemicolon = false; - function commitPendingTrailingSemicolon() { - if (pendingTrailingSemicolon) { - writer.writeTrailingSemicolon(";"); - pendingTrailingSemicolon = false; - } - } - return __assign(__assign({}, writer), { writeTrailingSemicolon: function () { - pendingTrailingSemicolon = true; - }, writeLiteral: function (s) { - commitPendingTrailingSemicolon(); - writer.writeLiteral(s); - }, writeStringLiteral: function (s) { - commitPendingTrailingSemicolon(); - writer.writeStringLiteral(s); - }, writeSymbol: function (s, sym) { - commitPendingTrailingSemicolon(); - writer.writeSymbol(s, sym); - }, writePunctuation: function (s) { - commitPendingTrailingSemicolon(); - writer.writePunctuation(s); - }, writeKeyword: function (s) { - commitPendingTrailingSemicolon(); - writer.writeKeyword(s); - }, writeOperator: function (s) { - commitPendingTrailingSemicolon(); - writer.writeOperator(s); - }, writeParameter: function (s) { - commitPendingTrailingSemicolon(); - writer.writeParameter(s); - }, writeSpace: function (s) { - commitPendingTrailingSemicolon(); - writer.writeSpace(s); - }, writeProperty: function (s) { - commitPendingTrailingSemicolon(); - writer.writeProperty(s); - }, writeComment: function (s) { - commitPendingTrailingSemicolon(); - writer.writeComment(s); - }, writeLine: function () { - commitPendingTrailingSemicolon(); - writer.writeLine(); - }, increaseIndent: function () { - commitPendingTrailingSemicolon(); - writer.increaseIndent(); - }, decreaseIndent: function () { - commitPendingTrailingSemicolon(); - writer.decreaseIndent(); - } }); -} -function hostUsesCaseSensitiveFileNames(host) { - return host.useCaseSensitiveFileNames ? host.useCaseSensitiveFileNames() : false; -} -function hostGetCanonicalFileName(host) { - return createGetCanonicalFileName(hostUsesCaseSensitiveFileNames(host)); -} -function getResolvedExternalModuleName(host, file, referenceFile) { - return file.moduleName || getExternalModuleNameFromPath(host, file.fileName, referenceFile && referenceFile.fileName); -} -function getCanonicalAbsolutePath(host, path) { - return host.getCanonicalFileName(getNormalizedAbsolutePath(path, host.getCurrentDirectory())); -} -function getExternalModuleNameFromDeclaration(host, resolver, declaration) { - var file = resolver.getExternalModuleFileFromDeclaration(declaration); - if (!file || file.isDeclarationFile) { - return void 0; - } - var specifier = getExternalModuleName(declaration); - if (specifier && isStringLiteralLike(specifier) && !pathIsRelative(specifier.text) && getCanonicalAbsolutePath(host, file.path).indexOf(getCanonicalAbsolutePath(host, ensureTrailingDirectorySeparator(host.getCommonSourceDirectory()))) === -1) { - return void 0; - } - return getResolvedExternalModuleName(host, file); -} -function getExternalModuleNameFromPath(host, fileName, referencePath) { - var getCanonicalFileName = function (f) { return host.getCanonicalFileName(f); }; - var dir = toPath(referencePath ? getDirectoryPath(referencePath) : host.getCommonSourceDirectory(), host.getCurrentDirectory(), getCanonicalFileName); - var filePath = getNormalizedAbsolutePath(fileName, host.getCurrentDirectory()); - var relativePath = getRelativePathToDirectoryOrUrl(dir, filePath, dir, getCanonicalFileName, - /*isAbsolutePathAnUrl*/ - false); - var extensionless = removeFileExtension(relativePath); - return referencePath ? ensurePathIsNonModuleName(extensionless) : extensionless; -} -function getOwnEmitOutputFilePath(fileName, host, extension) { - var compilerOptions = host.getCompilerOptions(); - var emitOutputFilePathWithoutExtension; - if (compilerOptions.outDir) { - emitOutputFilePathWithoutExtension = removeFileExtension(getSourceFilePathInNewDir(fileName, host, compilerOptions.outDir)); - } - else { - emitOutputFilePathWithoutExtension = removeFileExtension(fileName); - } - return emitOutputFilePathWithoutExtension + extension; -} -function getDeclarationEmitOutputFilePath(fileName, host) { - return getDeclarationEmitOutputFilePathWorker(fileName, host.getCompilerOptions(), host.getCurrentDirectory(), host.getCommonSourceDirectory(), function (f) { return host.getCanonicalFileName(f); }); -} -function getDeclarationEmitOutputFilePathWorker(fileName, options, currentDirectory, commonSourceDirectory, getCanonicalFileName) { - var outputDir = options.declarationDir || options.outDir; - var path = outputDir ? getSourceFilePathInNewDirWorker(fileName, outputDir, currentDirectory, commonSourceDirectory, getCanonicalFileName) : fileName; - var declarationExtension = getDeclarationEmitExtensionForPath(path); - return removeFileExtension(path) + declarationExtension; -} -function getDeclarationEmitExtensionForPath(path) { - return fileExtensionIsOneOf(path, [".mjs" /* Mjs */, ".mts" /* Mts */]) ? ".d.mts" /* Dmts */ : fileExtensionIsOneOf(path, [".cjs" /* Cjs */, ".cts" /* Cts */]) ? ".d.cts" /* Dcts */ : fileExtensionIsOneOf(path, [".json" /* Json */]) ? ".d.json.ts" : ( - // Drive-by redefinition of json declaration file output name so if it's ever enabled, it behaves well - ".d.ts" /* Dts */); -} -function getPossibleOriginalInputExtensionForExtension(path) { - return fileExtensionIsOneOf(path, [".d.mts" /* Dmts */, ".mjs" /* Mjs */, ".mts" /* Mts */]) ? [".mts" /* Mts */, ".mjs" /* Mjs */] : fileExtensionIsOneOf(path, [".d.cts" /* Dcts */, ".cjs" /* Cjs */, ".cts" /* Cts */]) ? [".cts" /* Cts */, ".cjs" /* Cjs */] : fileExtensionIsOneOf(path, [".d.json.ts"]) ? [".json" /* Json */] : [".tsx" /* Tsx */, ".ts" /* Ts */, ".jsx" /* Jsx */, ".js" /* Js */]; -} -function outFile(options) { - return options.outFile || options.out; -} -function getPathsBasePath(options, host) { - var _t; - var _a; - if (!options.paths) - return void 0; - return (_t = options.baseUrl) !== null && _t !== void 0 ? _t : Debug.checkDefined(options.pathsBasePath || ((_a = host.getCurrentDirectory) == null ? void 0 : _a.call(host)), "Encountered 'paths' without a 'baseUrl', config file, or host 'getCurrentDirectory'."); -} -function getSourceFilesToEmit(host, targetSourceFile, forceDtsEmit) { - var options = host.getCompilerOptions(); - if (outFile(options)) { - var moduleKind = getEmitModuleKind(options); - var moduleEmitEnabled_1 = options.emitDeclarationOnly || moduleKind === 2 /* AMD */ || moduleKind === 4 /* System */; - return filter(host.getSourceFiles(), function (sourceFile) { return (moduleEmitEnabled_1 || !isExternalModule(sourceFile)) && sourceFileMayBeEmitted(sourceFile, host, forceDtsEmit); }); - } - else { - var sourceFiles = targetSourceFile === void 0 ? host.getSourceFiles() : [targetSourceFile]; - return filter(sourceFiles, function (sourceFile) { return sourceFileMayBeEmitted(sourceFile, host, forceDtsEmit); }); - } -} -function sourceFileMayBeEmitted(sourceFile, host, forceDtsEmit) { - var options = host.getCompilerOptions(); - return !(options.noEmitForJsFiles && isSourceFileJS(sourceFile)) && !sourceFile.isDeclarationFile && !host.isSourceFileFromExternalLibrary(sourceFile) && (forceDtsEmit || !(isJsonSourceFile(sourceFile) && host.getResolvedProjectReferenceToRedirect(sourceFile.fileName)) && !host.isSourceOfProjectReferenceRedirect(sourceFile.fileName)); -} -function getSourceFilePathInNewDir(fileName, host, newDirPath) { - return getSourceFilePathInNewDirWorker(fileName, newDirPath, host.getCurrentDirectory(), host.getCommonSourceDirectory(), function (f) { return host.getCanonicalFileName(f); }); -} -function getSourceFilePathInNewDirWorker(fileName, newDirPath, currentDirectory, commonSourceDirectory, getCanonicalFileName) { - var sourceFilePath = getNormalizedAbsolutePath(fileName, currentDirectory); - var isSourceFileInCommonSourceDirectory = getCanonicalFileName(sourceFilePath).indexOf(getCanonicalFileName(commonSourceDirectory)) === 0; - sourceFilePath = isSourceFileInCommonSourceDirectory ? sourceFilePath.substring(commonSourceDirectory.length) : sourceFilePath; - return combinePaths(newDirPath, sourceFilePath); -} -function writeFile(host, diagnostics, fileName, text, writeByteOrderMark, sourceFiles, data) { - host.writeFile(fileName, text, writeByteOrderMark, function (hostErrorMessage) { - diagnostics.add(createCompilerDiagnostic(Diagnostics.Could_not_write_file_0_Colon_1, fileName, hostErrorMessage)); - }, sourceFiles, data); -} -function ensureDirectoriesExist(directoryPath, createDirectory, directoryExists) { - if (directoryPath.length > getRootLength(directoryPath) && !directoryExists(directoryPath)) { - var parentDirectory = getDirectoryPath(directoryPath); - ensureDirectoriesExist(parentDirectory, createDirectory, directoryExists); - createDirectory(directoryPath); - } -} -function writeFileEnsuringDirectories(path, data, writeByteOrderMark, writeFile2, createDirectory, directoryExists) { - try { - writeFile2(path, data, writeByteOrderMark); - } - catch (_t) { - ensureDirectoriesExist(getDirectoryPath(normalizePath(path)), createDirectory, directoryExists); - writeFile2(path, data, writeByteOrderMark); - } -} -function getLineOfLocalPosition(sourceFile, pos) { - var lineStarts = getLineStarts(sourceFile); - return computeLineOfPosition(lineStarts, pos); -} -function getLineOfLocalPositionFromLineMap(lineMap, pos) { - return computeLineOfPosition(lineMap, pos); -} -function getFirstConstructorWithBody(node) { - return find(node.members, function (member) { return isConstructorDeclaration(member) && nodeIsPresent(member.body); }); -} -function getSetAccessorValueParameter(accessor) { - if (accessor && accessor.parameters.length > 0) { - var hasThis = accessor.parameters.length === 2 && parameterIsThisKeyword(accessor.parameters[0]); - return accessor.parameters[hasThis ? 1 : 0]; - } -} -function getSetAccessorTypeAnnotationNode(accessor) { - var parameter = getSetAccessorValueParameter(accessor); - return parameter && parameter.type; -} -function getThisParameter(signature) { - if (signature.parameters.length && !isJSDocSignature(signature)) { - var thisParameter = signature.parameters[0]; - if (parameterIsThisKeyword(thisParameter)) { - return thisParameter; - } - } -} -function parameterIsThisKeyword(parameter) { - return isThisIdentifier(parameter.name); -} -function isThisIdentifier(node) { - return !!node && node.kind === 80 /* Identifier */ && identifierIsThisKeyword(node); -} -function isInTypeQuery(node) { - return !!findAncestor(node, function (n) { return n.kind === 186 /* TypeQuery */ ? true : n.kind === 80 /* Identifier */ || n.kind === 166 /* QualifiedName */ ? false : "quit"; }); -} -function isThisInTypeQuery(node) { - if (!isThisIdentifier(node)) { - return false; - } - while (isQualifiedName(node.parent) && node.parent.left === node) { - node = node.parent; - } - return node.parent.kind === 186 /* TypeQuery */; -} -function identifierIsThisKeyword(id) { - return id.escapedText === "this"; -} -function getAllAccessorDeclarations(declarations, accessor) { - var firstAccessor; - var secondAccessor; - var getAccessor; - var setAccessor; - if (hasDynamicName(accessor)) { - firstAccessor = accessor; - if (accessor.kind === 177 /* GetAccessor */) { - getAccessor = accessor; - } - else if (accessor.kind === 178 /* SetAccessor */) { - setAccessor = accessor; - } - else { - Debug.fail("Accessor has wrong kind"); - } - } - else { - forEach(declarations, function (member) { - if (isAccessor(member) && isStatic(member) === isStatic(accessor)) { - var memberName = getPropertyNameForPropertyNameNode(member.name); - var accessorName = getPropertyNameForPropertyNameNode(accessor.name); - if (memberName === accessorName) { - if (!firstAccessor) { - firstAccessor = member; - } - else if (!secondAccessor) { - secondAccessor = member; - } - if (member.kind === 177 /* GetAccessor */ && !getAccessor) { - getAccessor = member; - } - if (member.kind === 178 /* SetAccessor */ && !setAccessor) { - setAccessor = member; - } - } - } - }); - } - return { - firstAccessor: firstAccessor, - secondAccessor: secondAccessor, - getAccessor: getAccessor, - setAccessor: setAccessor - }; -} -function getEffectiveTypeAnnotationNode(node) { - if (!isInJSFile(node) && isFunctionDeclaration(node)) - return void 0; - var type = node.type; - if (type || !isInJSFile(node)) - return type; - return isJSDocPropertyLikeTag(node) ? node.typeExpression && node.typeExpression.type : getJSDocType(node); -} -function getTypeAnnotationNode(node) { - return node.type; -} -function getEffectiveReturnTypeNode(node) { - return isJSDocSignature(node) ? node.type && node.type.typeExpression && node.type.typeExpression.type : node.type || (isInJSFile(node) ? getJSDocReturnType(node) : void 0); -} -function getJSDocTypeParameterDeclarations(node) { - return flatMap(getJSDocTags(node), function (tag) { return isNonTypeAliasTemplate(tag) ? tag.typeParameters : void 0; }); -} -function isNonTypeAliasTemplate(tag) { - return isJSDocTemplateTag(tag) && !(tag.parent.kind === 327 /* JSDoc */ && (tag.parent.tags.some(isJSDocTypeAlias) || tag.parent.tags.some(isJSDocOverloadTag))); -} -function getEffectiveSetAccessorTypeAnnotationNode(node) { - var parameter = getSetAccessorValueParameter(node); - return parameter && getEffectiveTypeAnnotationNode(parameter); -} -function emitNewLineBeforeLeadingComments(lineMap, writer, node, leadingComments) { - emitNewLineBeforeLeadingCommentsOfPosition(lineMap, writer, node.pos, leadingComments); -} -function emitNewLineBeforeLeadingCommentsOfPosition(lineMap, writer, pos, leadingComments) { - if (leadingComments && leadingComments.length && pos !== leadingComments[0].pos && getLineOfLocalPositionFromLineMap(lineMap, pos) !== getLineOfLocalPositionFromLineMap(lineMap, leadingComments[0].pos)) { - writer.writeLine(); - } -} -function emitNewLineBeforeLeadingCommentOfPosition(lineMap, writer, pos, commentPos) { - if (pos !== commentPos && getLineOfLocalPositionFromLineMap(lineMap, pos) !== getLineOfLocalPositionFromLineMap(lineMap, commentPos)) { - writer.writeLine(); - } -} -function emitComments(text, lineMap, writer, comments, leadingSeparator, trailingSeparator, newLine, writeComment) { - var e_60, _t; - if (comments && comments.length > 0) { - if (leadingSeparator) { - writer.writeSpace(" "); - } - var emitInterveningSeparator = false; - try { - for (var comments_1 = __values(comments), comments_1_1 = comments_1.next(); !comments_1_1.done; comments_1_1 = comments_1.next()) { - var comment = comments_1_1.value; - if (emitInterveningSeparator) { - writer.writeSpace(" "); - emitInterveningSeparator = false; - } - writeComment(text, lineMap, writer, comment.pos, comment.end, newLine); - if (comment.hasTrailingNewLine) { - writer.writeLine(); - } - else { - emitInterveningSeparator = true; - } - } - } - catch (e_60_1) { e_60 = { error: e_60_1 }; } - finally { - try { - if (comments_1_1 && !comments_1_1.done && (_t = comments_1.return)) _t.call(comments_1); - } - finally { if (e_60) throw e_60.error; } - } - if (emitInterveningSeparator && trailingSeparator) { - writer.writeSpace(" "); - } - } -} -function emitDetachedComments(text, lineMap, writer, writeComment, node, newLine, removeComments) { - var e_61, _t; - var leadingComments; - var currentDetachedCommentInfo; - if (removeComments) { - if (node.pos === 0) { - leadingComments = filter(getLeadingCommentRanges(text, node.pos), isPinnedCommentLocal); - } - } - else { - leadingComments = getLeadingCommentRanges(text, node.pos); - } - if (leadingComments) { - var detachedComments = []; - var lastComment = void 0; - try { - for (var leadingComments_1 = __values(leadingComments), leadingComments_1_1 = leadingComments_1.next(); !leadingComments_1_1.done; leadingComments_1_1 = leadingComments_1.next()) { - var comment = leadingComments_1_1.value; - if (lastComment) { - var lastCommentLine = getLineOfLocalPositionFromLineMap(lineMap, lastComment.end); - var commentLine = getLineOfLocalPositionFromLineMap(lineMap, comment.pos); - if (commentLine >= lastCommentLine + 2) { - break; - } - } - detachedComments.push(comment); - lastComment = comment; - } - } - catch (e_61_1) { e_61 = { error: e_61_1 }; } - finally { - try { - if (leadingComments_1_1 && !leadingComments_1_1.done && (_t = leadingComments_1.return)) _t.call(leadingComments_1); - } - finally { if (e_61) throw e_61.error; } - } - if (detachedComments.length) { - var lastCommentLine = getLineOfLocalPositionFromLineMap(lineMap, last(detachedComments).end); - var nodeLine = getLineOfLocalPositionFromLineMap(lineMap, skipTrivia(text, node.pos)); - if (nodeLine >= lastCommentLine + 2) { - emitNewLineBeforeLeadingComments(lineMap, writer, node, leadingComments); - emitComments(text, lineMap, writer, detachedComments, - /*leadingSeparator*/ - false, - /*trailingSeparator*/ - true, newLine, writeComment); - currentDetachedCommentInfo = { nodePos: node.pos, detachedCommentEndPos: last(detachedComments).end }; - } - } - } - return currentDetachedCommentInfo; - function isPinnedCommentLocal(comment) { - return isPinnedComment(text, comment.pos); - } -} -function writeCommentRange(text, lineMap, writer, commentPos, commentEnd, newLine) { - if (text.charCodeAt(commentPos + 1) === 42 /* asterisk */) { - var firstCommentLineAndCharacter = computeLineAndCharacterOfPosition(lineMap, commentPos); - var lineCount = lineMap.length; - var firstCommentLineIndent = void 0; - for (var pos = commentPos, currentLine = firstCommentLineAndCharacter.line; pos < commentEnd; currentLine++) { - var nextLineStart = currentLine + 1 === lineCount ? text.length + 1 : lineMap[currentLine + 1]; - if (pos !== commentPos) { - if (firstCommentLineIndent === void 0) { - firstCommentLineIndent = calculateIndent(text, lineMap[firstCommentLineAndCharacter.line], commentPos); - } - var currentWriterIndentSpacing = writer.getIndent() * getIndentSize(); - var spacesToEmit = currentWriterIndentSpacing - firstCommentLineIndent + calculateIndent(text, pos, nextLineStart); - if (spacesToEmit > 0) { - var numberOfSingleSpacesToEmit = spacesToEmit % getIndentSize(); - var indentSizeSpaceString = getIndentString((spacesToEmit - numberOfSingleSpacesToEmit) / getIndentSize()); - writer.rawWrite(indentSizeSpaceString); - while (numberOfSingleSpacesToEmit) { - writer.rawWrite(" "); - numberOfSingleSpacesToEmit--; - } - } - else { - writer.rawWrite(""); - } - } - writeTrimmedCurrentLine(text, commentEnd, writer, newLine, pos, nextLineStart); - pos = nextLineStart; - } - } - else { - writer.writeComment(text.substring(commentPos, commentEnd)); - } -} -function writeTrimmedCurrentLine(text, commentEnd, writer, newLine, pos, nextLineStart) { - var end = Math.min(commentEnd, nextLineStart - 1); - var currentLineText = trimString(text.substring(pos, end)); - if (currentLineText) { - writer.writeComment(currentLineText); - if (end !== commentEnd) { - writer.writeLine(); - } - } - else { - writer.rawWrite(newLine); - } -} -function calculateIndent(text, pos, end) { - var currentLineIndent = 0; - for (; pos < end && isWhiteSpaceSingleLine(text.charCodeAt(pos)); pos++) { - if (text.charCodeAt(pos) === 9 /* tab */) { - currentLineIndent += getIndentSize() - currentLineIndent % getIndentSize(); - } - else { - currentLineIndent++; - } - } - return currentLineIndent; -} -function hasEffectiveModifiers(node) { - return getEffectiveModifierFlags(node) !== 0 /* None */; -} -function hasSyntacticModifiers(node) { - return getSyntacticModifierFlags(node) !== 0 /* None */; -} -function hasEffectiveModifier(node, flags) { - return !!getSelectedEffectiveModifierFlags(node, flags); -} -function hasSyntacticModifier(node, flags) { - return !!getSelectedSyntacticModifierFlags(node, flags); -} -function isStatic(node) { - return isClassElement(node) && hasStaticModifier(node) || isClassStaticBlockDeclaration(node); -} -function hasStaticModifier(node) { - return hasSyntacticModifier(node, 32 /* Static */); -} -function hasOverrideModifier(node) { - return hasEffectiveModifier(node, 16384 /* Override */); -} -function hasAbstractModifier(node) { - return hasSyntacticModifier(node, 256 /* Abstract */); -} -function hasAmbientModifier(node) { - return hasSyntacticModifier(node, 2 /* Ambient */); -} -function hasAccessorModifier(node) { - return hasSyntacticModifier(node, 128 /* Accessor */); -} -function hasEffectiveReadonlyModifier(node) { - return hasEffectiveModifier(node, 64 /* Readonly */); -} -function hasDecorators(node) { - return hasSyntacticModifier(node, 131072 /* Decorator */); -} -function getSelectedEffectiveModifierFlags(node, flags) { - return getEffectiveModifierFlags(node) & flags; -} -function getSelectedSyntacticModifierFlags(node, flags) { - return getSyntacticModifierFlags(node) & flags; -} -function getModifierFlagsWorker(node, includeJSDoc, alwaysIncludeJSDoc) { - if (node.kind >= 0 /* FirstToken */ && node.kind <= 165 /* LastToken */) { - return 0 /* None */; - } - if (!(node.modifierFlagsCache & 536870912 /* HasComputedFlags */)) { - node.modifierFlagsCache = getSyntacticModifierFlagsNoCache(node) | 536870912 /* HasComputedFlags */; - } - if (includeJSDoc && !(node.modifierFlagsCache & 4096 /* HasComputedJSDocModifiers */) && (alwaysIncludeJSDoc || isInJSFile(node)) && node.parent) { - node.modifierFlagsCache |= getJSDocModifierFlagsNoCache(node) | 4096 /* HasComputedJSDocModifiers */; - } - return node.modifierFlagsCache & ~(536870912 /* HasComputedFlags */ | 4096 /* HasComputedJSDocModifiers */); -} -function getEffectiveModifierFlags(node) { - return getModifierFlagsWorker(node, - /*includeJSDoc*/ - true); -} -function getEffectiveModifierFlagsAlwaysIncludeJSDoc(node) { - return getModifierFlagsWorker(node, - /*includeJSDoc*/ - true, - /*alwaysIncludeJSDoc*/ - true); -} -function getSyntacticModifierFlags(node) { - return getModifierFlagsWorker(node, - /*includeJSDoc*/ - false); -} -function getJSDocModifierFlagsNoCache(node) { - var flags = 0 /* None */; - if (!!node.parent && !isParameter(node)) { - if (isInJSFile(node)) { - if (getJSDocPublicTagNoCache(node)) - flags |= 4 /* Public */; - if (getJSDocPrivateTagNoCache(node)) - flags |= 8 /* Private */; - if (getJSDocProtectedTagNoCache(node)) - flags |= 16 /* Protected */; - if (getJSDocReadonlyTagNoCache(node)) - flags |= 64 /* Readonly */; - if (getJSDocOverrideTagNoCache(node)) - flags |= 16384 /* Override */; - } - if (getJSDocDeprecatedTagNoCache(node)) - flags |= 8192 /* Deprecated */; - } - return flags; -} -function getEffectiveModifierFlagsNoCache(node) { - return getSyntacticModifierFlagsNoCache(node) | getJSDocModifierFlagsNoCache(node); -} -function getSyntacticModifierFlagsNoCache(node) { - var flags = canHaveModifiers(node) ? modifiersToFlags(node.modifiers) : 0 /* None */; - if (node.flags & 8 /* NestedNamespace */ || node.kind === 80 /* Identifier */ && node.flags & 4096 /* IdentifierIsInJSDocNamespace */) { - flags |= 1 /* Export */; - } - return flags; -} -function modifiersToFlags(modifiers) { - var e_62, _t; - var flags = 0 /* None */; - if (modifiers) { - try { - for (var modifiers_1 = __values(modifiers), modifiers_1_1 = modifiers_1.next(); !modifiers_1_1.done; modifiers_1_1 = modifiers_1.next()) { - var modifier = modifiers_1_1.value; - flags |= modifierToFlag(modifier.kind); - } - } - catch (e_62_1) { e_62 = { error: e_62_1 }; } - finally { - try { - if (modifiers_1_1 && !modifiers_1_1.done && (_t = modifiers_1.return)) _t.call(modifiers_1); - } - finally { if (e_62) throw e_62.error; } - } - } - return flags; -} -function modifierToFlag(token) { - switch (token) { - case 126 /* StaticKeyword */: - return 32 /* Static */; - case 125 /* PublicKeyword */: - return 4 /* Public */; - case 124 /* ProtectedKeyword */: - return 16 /* Protected */; - case 123 /* PrivateKeyword */: - return 8 /* Private */; - case 128 /* AbstractKeyword */: - return 256 /* Abstract */; - case 129 /* AccessorKeyword */: - return 128 /* Accessor */; - case 95 /* ExportKeyword */: - return 1 /* Export */; - case 138 /* DeclareKeyword */: - return 2 /* Ambient */; - case 87 /* ConstKeyword */: - return 2048 /* Const */; - case 90 /* DefaultKeyword */: - return 1024 /* Default */; - case 134 /* AsyncKeyword */: - return 512 /* Async */; - case 148 /* ReadonlyKeyword */: - return 64 /* Readonly */; - case 164 /* OverrideKeyword */: - return 16384 /* Override */; - case 103 /* InKeyword */: - return 32768 /* In */; - case 147 /* OutKeyword */: - return 65536 /* Out */; - case 170 /* Decorator */: - return 131072 /* Decorator */; - } - return 0 /* None */; -} -function isBinaryLogicalOperator(token) { - return token === 57 /* BarBarToken */ || token === 56 /* AmpersandAmpersandToken */; -} -function isLogicalOperator(token) { - return isBinaryLogicalOperator(token) || token === 54 /* ExclamationToken */; -} -function isLogicalOrCoalescingAssignmentOperator(token) { - return token === 76 /* BarBarEqualsToken */ || token === 77 /* AmpersandAmpersandEqualsToken */ || token === 78 /* QuestionQuestionEqualsToken */; -} -function isLogicalOrCoalescingAssignmentExpression(expr) { - return isBinaryExpression(expr) && isLogicalOrCoalescingAssignmentOperator(expr.operatorToken.kind); -} -function isLogicalOrCoalescingBinaryOperator(token) { - return isBinaryLogicalOperator(token) || token === 61 /* QuestionQuestionToken */; -} -function isLogicalOrCoalescingBinaryExpression(expr) { - return isBinaryExpression(expr) && isLogicalOrCoalescingBinaryOperator(expr.operatorToken.kind); -} -function isAssignmentOperator(token) { - return token >= 64 /* FirstAssignment */ && token <= 79 /* LastAssignment */; -} -function tryGetClassExtendingExpressionWithTypeArguments(node) { - var cls = tryGetClassImplementingOrExtendingExpressionWithTypeArguments(node); - return cls && !cls.isImplements ? cls.class : void 0; -} -function tryGetClassImplementingOrExtendingExpressionWithTypeArguments(node) { - if (isExpressionWithTypeArguments(node)) { - if (isHeritageClause(node.parent) && isClassLike(node.parent.parent)) { - return { class: node.parent.parent, isImplements: node.parent.token === 119 /* ImplementsKeyword */ }; - } - if (isJSDocAugmentsTag(node.parent)) { - var host = getEffectiveJSDocHost(node.parent); - if (host && isClassLike(host)) { - return { class: host, isImplements: false }; - } - } - } - return void 0; -} -function isAssignmentExpression(node, excludeCompoundAssignment) { - return isBinaryExpression(node) && (excludeCompoundAssignment ? node.operatorToken.kind === 64 /* EqualsToken */ : isAssignmentOperator(node.operatorToken.kind)) && isLeftHandSideExpression(node.left); -} -function isLeftHandSideOfAssignment(node) { - return isAssignmentExpression(node.parent) && node.parent.left === node; -} -function isDestructuringAssignment(node) { - if (isAssignmentExpression(node, - /*excludeCompoundAssignment*/ - true)) { - var kind = node.left.kind; - return kind === 210 /* ObjectLiteralExpression */ || kind === 209 /* ArrayLiteralExpression */; - } - return false; -} -function isExpressionWithTypeArgumentsInClassExtendsClause(node) { - return tryGetClassExtendingExpressionWithTypeArguments(node) !== void 0; -} -function isEntityNameExpression(node) { - return node.kind === 80 /* Identifier */ || isPropertyAccessEntityNameExpression(node); -} -function getFirstIdentifier(node) { - switch (node.kind) { - case 80 /* Identifier */: - return node; - case 166 /* QualifiedName */: - do { - node = node.left; - } while (node.kind !== 80 /* Identifier */); - return node; - case 211 /* PropertyAccessExpression */: - do { - node = node.expression; - } while (node.kind !== 80 /* Identifier */); - return node; - } -} -function isDottedName(node) { - return node.kind === 80 /* Identifier */ || node.kind === 110 /* ThisKeyword */ || node.kind === 108 /* SuperKeyword */ || node.kind === 236 /* MetaProperty */ || node.kind === 211 /* PropertyAccessExpression */ && isDottedName(node.expression) || node.kind === 217 /* ParenthesizedExpression */ && isDottedName(node.expression); -} -function isPropertyAccessEntityNameExpression(node) { - return isPropertyAccessExpression(node) && isIdentifier(node.name) && isEntityNameExpression(node.expression); -} -function tryGetPropertyAccessOrIdentifierToString(expr) { - if (isPropertyAccessExpression(expr)) { - var baseStr = tryGetPropertyAccessOrIdentifierToString(expr.expression); - if (baseStr !== void 0) { - return baseStr + "." + entityNameToString(expr.name); - } - } - else if (isElementAccessExpression(expr)) { - var baseStr = tryGetPropertyAccessOrIdentifierToString(expr.expression); - if (baseStr !== void 0 && isPropertyName(expr.argumentExpression)) { - return baseStr + "." + getPropertyNameForPropertyNameNode(expr.argumentExpression); - } - } - else if (isIdentifier(expr)) { - return unescapeLeadingUnderscores(expr.escapedText); - } - else if (isJsxNamespacedName(expr)) { - return getTextOfJsxNamespacedName(expr); - } - return void 0; -} -function isPrototypeAccess(node) { - return isBindableStaticAccessExpression(node) && getElementOrPropertyAccessName(node) === "prototype"; -} -function isRightSideOfQualifiedNameOrPropertyAccess(node) { - return node.parent.kind === 166 /* QualifiedName */ && node.parent.right === node || node.parent.kind === 211 /* PropertyAccessExpression */ && node.parent.name === node || node.parent.kind === 236 /* MetaProperty */ && node.parent.name === node; -} -function isRightSideOfAccessExpression(node) { - return isPropertyAccessExpression(node.parent) && node.parent.name === node || isElementAccessExpression(node.parent) && node.parent.argumentExpression === node; -} -function isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName(node) { - return isQualifiedName(node.parent) && node.parent.right === node || isPropertyAccessExpression(node.parent) && node.parent.name === node || isJSDocMemberName(node.parent) && node.parent.right === node; -} -function isEmptyObjectLiteral(expression) { - return expression.kind === 210 /* ObjectLiteralExpression */ && expression.properties.length === 0; -} -function isEmptyArrayLiteral(expression) { - return expression.kind === 209 /* ArrayLiteralExpression */ && expression.elements.length === 0; -} -function getLocalSymbolForExportDefault(symbol) { - var e_63, _t; - if (!isExportDefaultSymbol(symbol) || !symbol.declarations) - return void 0; - try { - for (var _u = __values(symbol.declarations), _v = _u.next(); !_v.done; _v = _u.next()) { - var decl = _v.value; - if (decl.localSymbol) - return decl.localSymbol; - } - } - catch (e_63_1) { e_63 = { error: e_63_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_63) throw e_63.error; } - } - return void 0; -} -function isExportDefaultSymbol(symbol) { - return symbol && length(symbol.declarations) > 0 && hasSyntacticModifier(symbol.declarations[0], 1024 /* Default */); -} -function tryExtractTSExtension(fileName) { - return find(supportedTSExtensionsForExtractExtension, function (extension) { return fileExtensionIs(fileName, extension); }); -} -function getExpandedCharCodes(input) { - var output = []; - var length2 = input.length; - for (var i = 0; i < length2; i++) { - var charCode = input.charCodeAt(i); - if (charCode < 128) { - output.push(charCode); - } - else if (charCode < 2048) { - output.push(charCode >> 6 | 192); - output.push(charCode & 63 | 128); - } - else if (charCode < 65536) { - output.push(charCode >> 12 | 224); - output.push(charCode >> 6 & 63 | 128); - output.push(charCode & 63 | 128); - } - else if (charCode < 131072) { - output.push(charCode >> 18 | 240); - output.push(charCode >> 12 & 63 | 128); - output.push(charCode >> 6 & 63 | 128); - output.push(charCode & 63 | 128); - } - else { - Debug.assert(false, "Unexpected code point"); - } - } - return output; -} -var base64Digits = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; -function convertToBase64(input) { - var result = ""; - var charCodes = getExpandedCharCodes(input); - var i = 0; - var length2 = charCodes.length; - var byte1, byte2, byte3, byte4; - while (i < length2) { - byte1 = charCodes[i] >> 2; - byte2 = (charCodes[i] & 3) << 4 | charCodes[i + 1] >> 4; - byte3 = (charCodes[i + 1] & 15) << 2 | charCodes[i + 2] >> 6; - byte4 = charCodes[i + 2] & 63; - if (i + 1 >= length2) { - byte3 = byte4 = 64; - } - else if (i + 2 >= length2) { - byte4 = 64; - } - result += base64Digits.charAt(byte1) + base64Digits.charAt(byte2) + base64Digits.charAt(byte3) + base64Digits.charAt(byte4); - i += 3; - } - return result; -} -function getStringFromExpandedCharCodes(codes) { - var output = ""; - var i = 0; - var length2 = codes.length; - while (i < length2) { - var charCode = codes[i]; - if (charCode < 128) { - output += String.fromCharCode(charCode); - i++; - } - else if ((charCode & 192) === 192) { - var value = charCode & 63; - i++; - var nextCode = codes[i]; - while ((nextCode & 192) === 128) { - value = value << 6 | nextCode & 63; - i++; - nextCode = codes[i]; - } - output += String.fromCharCode(value); - } - else { - output += String.fromCharCode(charCode); - i++; - } - } - return output; -} -function base64encode(host, input) { - if (host && host.base64encode) { - return host.base64encode(input); - } - return convertToBase64(input); -} -function base64decode(host, input) { - if (host && host.base64decode) { - return host.base64decode(input); - } - var length2 = input.length; - var expandedCharCodes = []; - var i = 0; - while (i < length2) { - if (input.charCodeAt(i) === base64Digits.charCodeAt(64)) { - break; - } - var ch1 = base64Digits.indexOf(input[i]); - var ch2 = base64Digits.indexOf(input[i + 1]); - var ch3 = base64Digits.indexOf(input[i + 2]); - var ch4 = base64Digits.indexOf(input[i + 3]); - var code1 = (ch1 & 63) << 2 | ch2 >> 4 & 3; - var code2 = (ch2 & 15) << 4 | ch3 >> 2 & 15; - var code3 = (ch3 & 3) << 6 | ch4 & 63; - if (code2 === 0 && ch3 !== 0) { - expandedCharCodes.push(code1); - } - else if (code3 === 0 && ch4 !== 0) { - expandedCharCodes.push(code1, code2); - } - else { - expandedCharCodes.push(code1, code2, code3); - } - i += 4; - } - return getStringFromExpandedCharCodes(expandedCharCodes); -} -function readJsonOrUndefined(path, hostOrText) { - var jsonText = isString(hostOrText) ? hostOrText : hostOrText.readFile(path); - if (!jsonText) - return void 0; - var result = parseConfigFileTextToJson(path, jsonText); - return !result.error ? result.config : void 0; -} -function readJson(path, host) { - return readJsonOrUndefined(path, host) || {}; -} -function directoryProbablyExists(directoryName, host) { - return !host.directoryExists || host.directoryExists(directoryName); -} -var carriageReturnLineFeed = "\r\n"; -var lineFeed = "\n"; -function getNewLineCharacter(options) { - switch (options.newLine) { - case 0 /* CarriageReturnLineFeed */: - return carriageReturnLineFeed; - case 1 /* LineFeed */: - case void 0: - return lineFeed; - } -} -function createRange(pos, end) { - if (end === void 0) { end = pos; } - Debug.assert(end >= pos || end === -1); - return { pos: pos, end: end }; -} -function moveRangeEnd(range, end) { - return createRange(range.pos, end); -} -function moveRangePos(range, pos) { - return createRange(pos, range.end); -} -function moveRangePastDecorators(node) { - var lastDecorator = canHaveModifiers(node) ? findLast(node.modifiers, isDecorator) : void 0; - return lastDecorator && !positionIsSynthesized(lastDecorator.end) ? moveRangePos(node, lastDecorator.end) : node; -} -function moveRangePastModifiers(node) { - if (isPropertyDeclaration(node) || isMethodDeclaration(node)) { - return moveRangePos(node, node.name.pos); - } - var lastModifier = canHaveModifiers(node) ? lastOrUndefined(node.modifiers) : void 0; - return lastModifier && !positionIsSynthesized(lastModifier.end) ? moveRangePos(node, lastModifier.end) : moveRangePastDecorators(node); -} -function isCollapsedRange(range) { - return range.pos === range.end; -} -function createTokenRange(pos, token) { - return createRange(pos, pos + tokenToString(token).length); -} -function rangeIsOnSingleLine(range, sourceFile) { - return rangeStartIsOnSameLineAsRangeEnd(range, range, sourceFile); -} -function rangeStartPositionsAreOnSameLine(range1, range2, sourceFile) { - return positionsAreOnSameLine(getStartPositionOfRange(range1, sourceFile, - /*includeComments*/ - false), getStartPositionOfRange(range2, sourceFile, - /*includeComments*/ - false), sourceFile); -} -function rangeEndPositionsAreOnSameLine(range1, range2, sourceFile) { - return positionsAreOnSameLine(range1.end, range2.end, sourceFile); -} -function rangeStartIsOnSameLineAsRangeEnd(range1, range2, sourceFile) { - return positionsAreOnSameLine(getStartPositionOfRange(range1, sourceFile, - /*includeComments*/ - false), range2.end, sourceFile); -} -function rangeEndIsOnSameLineAsRangeStart(range1, range2, sourceFile) { - return positionsAreOnSameLine(range1.end, getStartPositionOfRange(range2, sourceFile, - /*includeComments*/ - false), sourceFile); -} -function getLinesBetweenRangeEndAndRangeStart(range1, range2, sourceFile, includeSecondRangeComments) { - var range2Start = getStartPositionOfRange(range2, sourceFile, includeSecondRangeComments); - return getLinesBetweenPositions(sourceFile, range1.end, range2Start); -} -function getLinesBetweenRangeEndPositions(range1, range2, sourceFile) { - return getLinesBetweenPositions(sourceFile, range1.end, range2.end); -} -function isNodeArrayMultiLine(list, sourceFile) { - return !positionsAreOnSameLine(list.pos, list.end, sourceFile); -} -function positionsAreOnSameLine(pos1, pos2, sourceFile) { - return getLinesBetweenPositions(sourceFile, pos1, pos2) === 0; -} -function getStartPositionOfRange(range, sourceFile, includeComments) { - return positionIsSynthesized(range.pos) ? -1 : skipTrivia(sourceFile.text, range.pos, - /*stopAfterLineBreak*/ - false, includeComments); -} -function getLinesBetweenPositionAndPrecedingNonWhitespaceCharacter(pos, stopPos, sourceFile, includeComments) { - var startPos = skipTrivia(sourceFile.text, pos, - /*stopAfterLineBreak*/ - false, includeComments); - var prevPos = getPreviousNonWhitespacePosition(startPos, stopPos, sourceFile); - return getLinesBetweenPositions(sourceFile, prevPos !== null && prevPos !== void 0 ? prevPos : stopPos, startPos); -} -function getLinesBetweenPositionAndNextNonWhitespaceCharacter(pos, stopPos, sourceFile, includeComments) { - var nextPos = skipTrivia(sourceFile.text, pos, - /*stopAfterLineBreak*/ - false, includeComments); - return getLinesBetweenPositions(sourceFile, pos, Math.min(stopPos, nextPos)); -} -function getPreviousNonWhitespacePosition(pos, stopPos, sourceFile) { - if (stopPos === void 0) { stopPos = 0; } - while (pos-- > stopPos) { - if (!isWhiteSpaceLike(sourceFile.text.charCodeAt(pos))) { - return pos; - } - } -} -function isDeclarationNameOfEnumOrNamespace(node) { - var parseNode = getParseTreeNode(node); - if (parseNode) { - switch (parseNode.parent.kind) { - case 266 /* EnumDeclaration */: - case 267 /* ModuleDeclaration */: - return parseNode === parseNode.parent.name; - } - } - return false; -} -function getInitializedVariables(node) { - return filter(node.declarations, isInitializedVariable); -} -function isInitializedVariable(node) { - return isVariableDeclaration(node) && node.initializer !== void 0; -} -function isWatchSet(options) { - return options.watch && hasProperty(options, "watch"); -} -function closeFileWatcher(watcher) { - watcher.close(); -} -function getCheckFlags(symbol) { - return symbol.flags & 33554432 /* Transient */ ? symbol.links.checkFlags : 0; -} -function getDeclarationModifierFlagsFromSymbol(s, isWrite) { - if (isWrite === void 0) { isWrite = false; } - if (s.valueDeclaration) { - var declaration = isWrite && s.declarations && find(s.declarations, isSetAccessorDeclaration) || s.flags & 32768 /* GetAccessor */ && find(s.declarations, isGetAccessorDeclaration) || s.valueDeclaration; - var flags = getCombinedModifierFlags(declaration); - return s.parent && s.parent.flags & 32 /* Class */ ? flags : flags & ~28 /* AccessibilityModifier */; - } - if (getCheckFlags(s) & 6 /* Synthetic */) { - var checkFlags = s.links.checkFlags; - var accessModifier = checkFlags & 1024 /* ContainsPrivate */ ? 8 /* Private */ : checkFlags & 256 /* ContainsPublic */ ? 4 /* Public */ : 16 /* Protected */; - var staticModifier = checkFlags & 2048 /* ContainsStatic */ ? 32 /* Static */ : 0; - return accessModifier | staticModifier; - } - if (s.flags & 4194304 /* Prototype */) { - return 4 /* Public */ | 32 /* Static */; - } - return 0; -} -function skipAlias(symbol, checker) { - return symbol.flags & 2097152 /* Alias */ ? checker.getAliasedSymbol(symbol) : symbol; -} -function getCombinedLocalAndExportSymbolFlags(symbol) { - return symbol.exportSymbol ? symbol.exportSymbol.flags | symbol.flags : symbol.flags; -} -function isWriteOnlyAccess(node) { - return accessKind(node) === 1 /* Write */; -} -function isWriteAccess(node) { - return accessKind(node) !== 0 /* Read */; -} -function accessKind(node) { - var parent2 = node.parent; - switch (parent2 == null ? void 0 : parent2.kind) { - case 217 /* ParenthesizedExpression */: - return accessKind(parent2); - case 225 /* PostfixUnaryExpression */: - case 224 /* PrefixUnaryExpression */: - var operator = parent2.operator; - return operator === 46 /* PlusPlusToken */ || operator === 47 /* MinusMinusToken */ ? 2 /* ReadWrite */ : 0 /* Read */; - case 226 /* BinaryExpression */: - var left = parent2.left, operatorToken = parent2.operatorToken; - return left === node && isAssignmentOperator(operatorToken.kind) ? operatorToken.kind === 64 /* EqualsToken */ ? 1 /* Write */ : 2 /* ReadWrite */ : 0 /* Read */; - case 211 /* PropertyAccessExpression */: - return parent2.name !== node ? 0 /* Read */ : accessKind(parent2); - case 303 /* PropertyAssignment */: { - var parentAccess = accessKind(parent2.parent); - return node === parent2.name ? reverseAccessKind(parentAccess) : parentAccess; - } - case 304 /* ShorthandPropertyAssignment */: - return node === parent2.objectAssignmentInitializer ? 0 /* Read */ : accessKind(parent2.parent); - case 209 /* ArrayLiteralExpression */: - return accessKind(parent2); - default: - return 0 /* Read */; - } -} -function reverseAccessKind(a) { - switch (a) { - case 0 /* Read */: - return 1 /* Write */; - case 1 /* Write */: - return 0 /* Read */; - case 2 /* ReadWrite */: - return 2 /* ReadWrite */; - default: - return Debug.assertNever(a); - } -} -function compareDataObjects(dst, src) { - if (!dst || !src || Object.keys(dst).length !== Object.keys(src).length) { - return false; - } - for (var e in dst) { - if (typeof dst[e] === "object") { - if (!compareDataObjects(dst[e], src[e])) { - return false; - } - } - else if (typeof dst[e] !== "function") { - if (dst[e] !== src[e]) { - return false; - } - } - } - return true; -} -function clearMap(map2, onDeleteValue) { - map2.forEach(onDeleteValue); - map2.clear(); -} -function mutateMapSkippingNewValues(map2, newMap, options) { - var onDeleteValue = options.onDeleteValue, onExistingValue = options.onExistingValue; - map2.forEach(function (existingValue, key) { - var valueInNewMap = newMap.get(key); - if (valueInNewMap === void 0) { - map2.delete(key); - onDeleteValue(existingValue, key); - } - else if (onExistingValue) { - onExistingValue(existingValue, valueInNewMap, key); - } - }); -} -function mutateMap(map2, newMap, options) { - mutateMapSkippingNewValues(map2, newMap, options); - var createNewValue = options.createNewValue; - newMap.forEach(function (valueInNewMap, key) { - if (!map2.has(key)) { - map2.set(key, createNewValue(key, valueInNewMap)); - } - }); -} -function isAbstractConstructorSymbol(symbol) { - if (symbol.flags & 32 /* Class */) { - var declaration = getClassLikeDeclarationOfSymbol(symbol); - return !!declaration && hasSyntacticModifier(declaration, 256 /* Abstract */); - } - return false; -} -function getClassLikeDeclarationOfSymbol(symbol) { - var _a; - return (_a = symbol.declarations) == null ? void 0 : _a.find(isClassLike); -} -function getObjectFlags(type) { - return type.flags & 138117121 /* ObjectFlagsType */ ? type.objectFlags : 0; -} -function forSomeAncestorDirectory(directory, callback) { - return !!forEachAncestorDirectory(directory, function (d) { return callback(d) ? true : void 0; }); -} -function isUMDExportSymbol(symbol) { - return !!symbol && !!symbol.declarations && !!symbol.declarations[0] && isNamespaceExportDeclaration(symbol.declarations[0]); -} -function showModuleSpecifier(_t) { - var moduleSpecifier = _t.moduleSpecifier; - return isStringLiteral(moduleSpecifier) ? moduleSpecifier.text : getTextOfNode(moduleSpecifier); -} -function getLastChild(node) { - var lastChild; - forEachChild(node, function (child) { - if (nodeIsPresent(child)) - lastChild = child; - }, function (children) { - for (var i = children.length - 1; i >= 0; i--) { - if (nodeIsPresent(children[i])) { - lastChild = children[i]; - break; - } - } - }); - return lastChild; -} -function addToSeen(seen, key, value) { - if (value === void 0) { value = true; } - if (seen.has(key)) { - return false; - } - seen.set(key, value); - return true; -} -function isObjectTypeDeclaration(node) { - return isClassLike(node) || isInterfaceDeclaration(node) || isTypeLiteralNode(node); -} -function isTypeNodeKind(kind) { - return kind >= 182 /* FirstTypeNode */ && kind <= 205 /* LastTypeNode */ || kind === 133 /* AnyKeyword */ || kind === 159 /* UnknownKeyword */ || kind === 150 /* NumberKeyword */ || kind === 163 /* BigIntKeyword */ || kind === 151 /* ObjectKeyword */ || kind === 136 /* BooleanKeyword */ || kind === 154 /* StringKeyword */ || kind === 155 /* SymbolKeyword */ || kind === 116 /* VoidKeyword */ || kind === 157 /* UndefinedKeyword */ || kind === 146 /* NeverKeyword */ || kind === 141 /* IntrinsicKeyword */ || kind === 233 /* ExpressionWithTypeArguments */ || kind === 319 /* JSDocAllType */ || kind === 320 /* JSDocUnknownType */ || kind === 321 /* JSDocNullableType */ || kind === 322 /* JSDocNonNullableType */ || kind === 323 /* JSDocOptionalType */ || kind === 324 /* JSDocFunctionType */ || kind === 325 /* JSDocVariadicType */; -} -function isAccessExpression(node) { - return node.kind === 211 /* PropertyAccessExpression */ || node.kind === 212 /* ElementAccessExpression */; -} -function getNameOfAccessExpression(node) { - if (node.kind === 211 /* PropertyAccessExpression */) { - return node.name; - } - Debug.assert(node.kind === 212 /* ElementAccessExpression */); - return node.argumentExpression; -} -function isBundleFileTextLike(section) { - switch (section.kind) { - case "text" /* Text */: - case "internal" /* Internal */: - return true; - default: - return false; - } -} -function isNamedImportsOrExports(node) { - return node.kind === 275 /* NamedImports */ || node.kind === 279 /* NamedExports */; -} -function getLeftmostAccessExpression(expr) { - while (isAccessExpression(expr)) { - expr = expr.expression; - } - return expr; -} -function forEachNameInAccessChainWalkingLeft(name, action) { - if (isAccessExpression(name.parent) && isRightSideOfAccessExpression(name)) { - return walkAccessExpression(name.parent); - } - function walkAccessExpression(access) { - if (access.kind === 211 /* PropertyAccessExpression */) { - var res = action(access.name); - if (res !== void 0) { - return res; - } - } - else if (access.kind === 212 /* ElementAccessExpression */) { - if (isIdentifier(access.argumentExpression) || isStringLiteralLike(access.argumentExpression)) { - var res = action(access.argumentExpression); - if (res !== void 0) { - return res; - } - } - else { - return void 0; - } - } - if (isAccessExpression(access.expression)) { - return walkAccessExpression(access.expression); - } - if (isIdentifier(access.expression)) { - return action(access.expression); - } - return void 0; - } -} -function getLeftmostExpression(node, stopAtCallExpressions) { - while (true) { - switch (node.kind) { - case 225 /* PostfixUnaryExpression */: - node = node.operand; - continue; - case 226 /* BinaryExpression */: - node = node.left; - continue; - case 227 /* ConditionalExpression */: - node = node.condition; - continue; - case 215 /* TaggedTemplateExpression */: - node = node.tag; - continue; - case 213 /* CallExpression */: - if (stopAtCallExpressions) { - return node; - } - case 234 /* AsExpression */: - case 212 /* ElementAccessExpression */: - case 211 /* PropertyAccessExpression */: - case 235 /* NonNullExpression */: - case 360 /* PartiallyEmittedExpression */: - case 238 /* SatisfiesExpression */: - node = node.expression; - continue; - } - return node; - } -} -function Symbol4(flags, name) { - this.flags = flags; - this.escapedName = name; - this.declarations = void 0; - this.valueDeclaration = void 0; - this.id = 0; - this.mergeId = 0; - this.parent = void 0; - this.members = void 0; - this.exports = void 0; - this.exportSymbol = void 0; - this.constEnumOnlyModule = void 0; - this.isReferenced = void 0; - this.isAssigned = void 0; - this.links = void 0; -} -function Type3(checker, flags) { - this.flags = flags; - if (Debug.isDebugging || tracing) { - this.checker = checker; - } -} -function Signature2(checker, flags) { - this.flags = flags; - if (Debug.isDebugging) { - this.checker = checker; - } -} -function Node4(kind, pos, end) { - this.pos = pos; - this.end = end; - this.kind = kind; - this.id = 0; - this.flags = 0 /* None */; - this.modifierFlagsCache = 0 /* None */; - this.transformFlags = 0 /* None */; - this.parent = void 0; - this.original = void 0; - this.emitNode = void 0; -} -function Token(kind, pos, end) { - this.pos = pos; - this.end = end; - this.kind = kind; - this.id = 0; - this.flags = 0 /* None */; - this.transformFlags = 0 /* None */; - this.parent = void 0; - this.emitNode = void 0; -} -function Identifier2(kind, pos, end) { - this.pos = pos; - this.end = end; - this.kind = kind; - this.id = 0; - this.flags = 0 /* None */; - this.transformFlags = 0 /* None */; - this.parent = void 0; - this.original = void 0; - this.emitNode = void 0; -} -function SourceMapSource(fileName, text, skipTrivia2) { - this.fileName = fileName; - this.text = text; - this.skipTrivia = skipTrivia2 || (function (pos) { return pos; }); -} -var objectAllocator = { - getNodeConstructor: function () { return Node4; }, - getTokenConstructor: function () { return Token; }, - getIdentifierConstructor: function () { return Identifier2; }, - getPrivateIdentifierConstructor: function () { return Node4; }, - getSourceFileConstructor: function () { return Node4; }, - getSymbolConstructor: function () { return Symbol4; }, - getTypeConstructor: function () { return Type3; }, - getSignatureConstructor: function () { return Signature2; }, - getSourceMapSourceConstructor: function () { return SourceMapSource; } -}; -var objectAllocatorPatchers = []; -function addObjectAllocatorPatcher(fn) { - objectAllocatorPatchers.push(fn); - fn(objectAllocator); -} -function setObjectAllocator(alloc) { - Object.assign(objectAllocator, alloc); - forEach(objectAllocatorPatchers, function (fn) { return fn(objectAllocator); }); -} -function formatStringFromArgs(text, args, baseIndex) { - if (baseIndex === void 0) { baseIndex = 0; } - return text.replace(/\{(\d+)\}/g, function (_match, index) { return "" + Debug.checkDefined(args[+index + baseIndex]); }); -} -var localizedDiagnosticMessages; -function setLocalizedDiagnosticMessages(messages) { - localizedDiagnosticMessages = messages; -} -function maybeSetLocalizedDiagnosticMessages(getMessages) { - if (!localizedDiagnosticMessages && getMessages) { - localizedDiagnosticMessages = getMessages(); - } -} -function getLocaleSpecificMessage(message) { - return localizedDiagnosticMessages && localizedDiagnosticMessages[message.key] || message.message; -} -function createDetachedDiagnostic(fileName, start2, length2, message) { - assertDiagnosticLocation( - /*file*/ - void 0, start2, length2); - var text = getLocaleSpecificMessage(message); - if (arguments.length > 4) { - text = formatStringFromArgs(text, arguments, 4); - } - return { - file: void 0, - start: start2, - length: length2, - messageText: text, - category: message.category, - code: message.code, - reportsUnnecessary: message.reportsUnnecessary, - fileName: fileName - }; -} -function isDiagnosticWithDetachedLocation(diagnostic) { - return diagnostic.file === void 0 && diagnostic.start !== void 0 && diagnostic.length !== void 0 && typeof diagnostic.fileName === "string"; -} -function attachFileToDiagnostic(diagnostic, file) { - var e_64, _t; - var fileName = file.fileName || ""; - var length2 = file.text.length; - Debug.assertEqual(diagnostic.fileName, fileName); - Debug.assertLessThanOrEqual(diagnostic.start, length2); - Debug.assertLessThanOrEqual(diagnostic.start + diagnostic.length, length2); - var diagnosticWithLocation = { - file: file, - start: diagnostic.start, - length: diagnostic.length, - messageText: diagnostic.messageText, - category: diagnostic.category, - code: diagnostic.code, - reportsUnnecessary: diagnostic.reportsUnnecessary - }; - if (diagnostic.relatedInformation) { - diagnosticWithLocation.relatedInformation = []; - try { - for (var _u = __values(diagnostic.relatedInformation), _v = _u.next(); !_v.done; _v = _u.next()) { - var related = _v.value; - if (isDiagnosticWithDetachedLocation(related) && related.fileName === fileName) { - Debug.assertLessThanOrEqual(related.start, length2); - Debug.assertLessThanOrEqual(related.start + related.length, length2); - diagnosticWithLocation.relatedInformation.push(attachFileToDiagnostic(related, file)); - } - else { - diagnosticWithLocation.relatedInformation.push(related); - } - } - } - catch (e_64_1) { e_64 = { error: e_64_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_64) throw e_64.error; } - } - } - return diagnosticWithLocation; -} -function attachFileToDiagnostics(diagnostics, file) { - var e_65, _t; - var diagnosticsWithLocation = []; - try { - for (var diagnostics_1 = __values(diagnostics), diagnostics_1_1 = diagnostics_1.next(); !diagnostics_1_1.done; diagnostics_1_1 = diagnostics_1.next()) { - var diagnostic = diagnostics_1_1.value; - diagnosticsWithLocation.push(attachFileToDiagnostic(diagnostic, file)); - } - } - catch (e_65_1) { e_65 = { error: e_65_1 }; } - finally { - try { - if (diagnostics_1_1 && !diagnostics_1_1.done && (_t = diagnostics_1.return)) _t.call(diagnostics_1); - } - finally { if (e_65) throw e_65.error; } - } - return diagnosticsWithLocation; -} -function createFileDiagnostic(file, start2, length2, message) { - assertDiagnosticLocation(file, start2, length2); - var text = getLocaleSpecificMessage(message); - if (arguments.length > 4) { - text = formatStringFromArgs(text, arguments, 4); - } - return { - file: file, - start: start2, - length: length2, - messageText: text, - category: message.category, - code: message.code, - reportsUnnecessary: message.reportsUnnecessary, - reportsDeprecated: message.reportsDeprecated - }; -} -function formatMessage(_dummy, message) { - var text = getLocaleSpecificMessage(message); - if (arguments.length > 2) { - text = formatStringFromArgs(text, arguments, 2); - } - return text; -} -function createCompilerDiagnostic(message) { - var text = getLocaleSpecificMessage(message); - if (arguments.length > 1) { - text = formatStringFromArgs(text, arguments, 1); - } - return { - file: void 0, - start: void 0, - length: void 0, - messageText: text, - category: message.category, - code: message.code, - reportsUnnecessary: message.reportsUnnecessary, - reportsDeprecated: message.reportsDeprecated - }; -} -function createCompilerDiagnosticFromMessageChain(chain, relatedInformation) { - return { - file: void 0, - start: void 0, - length: void 0, - code: chain.code, - category: chain.category, - messageText: chain.next ? chain : chain.messageText, - relatedInformation: relatedInformation - }; -} -function chainDiagnosticMessages(details, message) { - var text = getLocaleSpecificMessage(message); - if (arguments.length > 2) { - text = formatStringFromArgs(text, arguments, 2); - } - return { - messageText: text, - category: message.category, - code: message.code, - next: details === void 0 || Array.isArray(details) ? details : [details] - }; -} -function concatenateDiagnosticMessageChains(headChain, tailChain) { - var lastChain = headChain; - while (lastChain.next) { - lastChain = lastChain.next[0]; - } - lastChain.next = [tailChain]; -} -function getDiagnosticFilePath(diagnostic) { - return diagnostic.file ? diagnostic.file.path : void 0; -} -function compareDiagnostics(d1, d2) { - return compareDiagnosticsSkipRelatedInformation(d1, d2) || compareRelatedInformation(d1, d2) || 0 /* EqualTo */; -} -function compareDiagnosticsSkipRelatedInformation(d1, d2) { - return compareStringsCaseSensitive(getDiagnosticFilePath(d1), getDiagnosticFilePath(d2)) || compareValues(d1.start, d2.start) || compareValues(d1.length, d2.length) || compareValues(d1.code, d2.code) || compareMessageText(d1.messageText, d2.messageText) || 0 /* EqualTo */; -} -function compareRelatedInformation(d1, d2) { - if (!d1.relatedInformation && !d2.relatedInformation) { - return 0 /* EqualTo */; - } - if (d1.relatedInformation && d2.relatedInformation) { - return compareValues(d1.relatedInformation.length, d2.relatedInformation.length) || forEach(d1.relatedInformation, function (d1i, index) { - var d2i = d2.relatedInformation[index]; - return compareDiagnostics(d1i, d2i); - }) || 0 /* EqualTo */; - } - return d1.relatedInformation ? -1 /* LessThan */ : 1 /* GreaterThan */; -} -function compareMessageText(t1, t2) { - if (typeof t1 === "string" && typeof t2 === "string") { - return compareStringsCaseSensitive(t1, t2); - } - else if (typeof t1 === "string") { - return -1 /* LessThan */; - } - else if (typeof t2 === "string") { - return 1 /* GreaterThan */; - } - var res = compareStringsCaseSensitive(t1.messageText, t2.messageText); - if (res) { - return res; - } - if (!t1.next && !t2.next) { - return 0 /* EqualTo */; - } - if (!t1.next) { - return -1 /* LessThan */; - } - if (!t2.next) { - return 1 /* GreaterThan */; - } - var len = Math.min(t1.next.length, t2.next.length); - for (var i = 0; i < len; i++) { - res = compareMessageText(t1.next[i], t2.next[i]); - if (res) { - return res; - } - } - if (t1.next.length < t2.next.length) { - return -1 /* LessThan */; - } - else if (t1.next.length > t2.next.length) { - return 1 /* GreaterThan */; - } - return 0 /* EqualTo */; -} -function getLanguageVariant(scriptKind) { - return scriptKind === 4 /* TSX */ || scriptKind === 2 /* JSX */ || scriptKind === 1 /* JS */ || scriptKind === 6 /* JSON */ ? 1 /* JSX */ : 0 /* Standard */; -} -function walkTreeForJSXTags(node) { - if (!(node.transformFlags & 2 /* ContainsJsx */)) - return void 0; - return isJsxOpeningLikeElement(node) || isJsxFragment(node) ? node : forEachChild(node, walkTreeForJSXTags); -} -function isFileModuleFromUsingJSXTag(file) { - return !file.isDeclarationFile ? walkTreeForJSXTags(file) : void 0; -} -function isFileForcedToBeModuleByFormat(file) { - return (file.impliedNodeFormat === 99 /* ESNext */ || fileExtensionIsOneOf(file.fileName, [".cjs" /* Cjs */, ".cts" /* Cts */, ".mjs" /* Mjs */, ".mts" /* Mts */])) && !file.isDeclarationFile ? true : void 0; -} -function getSetExternalModuleIndicator(options) { - switch (getEmitModuleDetectionKind(options)) { - case 3 /* Force */: - return function (file) { - file.externalModuleIndicator = isFileProbablyExternalModule(file) || !file.isDeclarationFile || void 0; - }; - case 1 /* Legacy */: - return function (file) { - file.externalModuleIndicator = isFileProbablyExternalModule(file); - }; - case 2 /* Auto */: - var checks = [isFileProbablyExternalModule]; - if (options.jsx === 4 /* ReactJSX */ || options.jsx === 5 /* ReactJSXDev */) { - checks.push(isFileModuleFromUsingJSXTag); - } - checks.push(isFileForcedToBeModuleByFormat); - var combined_1 = or.apply(void 0, __spreadArray([], __read(checks), false)); - var callback = function (file) { return void (file.externalModuleIndicator = combined_1(file)); }; - return callback; - } -} -function getEmitScriptTarget(compilerOptions) { - var _t; - return (_t = compilerOptions.target) !== null && _t !== void 0 ? _t : (compilerOptions.module === 100 /* Node16 */ && 9 /* ES2022 */ || compilerOptions.module === 199 /* NodeNext */ && 99 /* ESNext */ || 1 /* ES5 */); -} -function getEmitModuleKind(compilerOptions) { - return typeof compilerOptions.module === "number" ? compilerOptions.module : getEmitScriptTarget(compilerOptions) >= 2 /* ES2015 */ ? 5 /* ES2015 */ : 1 /* CommonJS */; -} -function emitModuleKindIsNonNodeESM(moduleKind) { - return moduleKind >= 5 /* ES2015 */ && moduleKind <= 99 /* ESNext */; -} -function getEmitModuleResolutionKind(compilerOptions) { - var moduleResolution = compilerOptions.moduleResolution; - if (moduleResolution === void 0) { - switch (getEmitModuleKind(compilerOptions)) { - case 1 /* CommonJS */: - moduleResolution = 2 /* Node10 */; - break; - case 100 /* Node16 */: - moduleResolution = 3 /* Node16 */; - break; - case 199 /* NodeNext */: - moduleResolution = 99 /* NodeNext */; - break; - default: - moduleResolution = 1 /* Classic */; - break; - } - } - return moduleResolution; -} -function getEmitModuleDetectionKind(options) { - return options.moduleDetection || (getEmitModuleKind(options) === 100 /* Node16 */ || getEmitModuleKind(options) === 199 /* NodeNext */ ? 3 /* Force */ : 2 /* Auto */); -} -function hasJsonModuleEmitEnabled(options) { - switch (getEmitModuleKind(options)) { - case 1 /* CommonJS */: - case 2 /* AMD */: - case 5 /* ES2015 */: - case 6 /* ES2020 */: - case 7 /* ES2022 */: - case 99 /* ESNext */: - case 100 /* Node16 */: - case 199 /* NodeNext */: - return true; - default: - return false; - } -} -function getIsolatedModules(options) { - return !!(options.isolatedModules || options.verbatimModuleSyntax); -} -function importNameElisionDisabled(options) { - return options.verbatimModuleSyntax || options.isolatedModules && options.preserveValueImports; -} -function unreachableCodeIsError(options) { - return options.allowUnreachableCode === false; -} -function unusedLabelIsError(options) { - return options.allowUnusedLabels === false; -} -function getAreDeclarationMapsEnabled(options) { - return !!(getEmitDeclarations(options) && options.declarationMap); -} -function getESModuleInterop(compilerOptions) { - if (compilerOptions.esModuleInterop !== void 0) { - return compilerOptions.esModuleInterop; - } - switch (getEmitModuleKind(compilerOptions)) { - case 100 /* Node16 */: - case 199 /* NodeNext */: - return true; - } - return void 0; -} -function getAllowSyntheticDefaultImports(compilerOptions) { - if (compilerOptions.allowSyntheticDefaultImports !== void 0) { - return compilerOptions.allowSyntheticDefaultImports; - } - return getESModuleInterop(compilerOptions) || getEmitModuleKind(compilerOptions) === 4 /* System */ || getEmitModuleResolutionKind(compilerOptions) === 100 /* Bundler */; -} -function moduleResolutionSupportsPackageJsonExportsAndImports(moduleResolution) { - return moduleResolution >= 3 /* Node16 */ && moduleResolution <= 99 /* NodeNext */ || moduleResolution === 100 /* Bundler */; -} -function shouldResolveJsRequire(compilerOptions) { - return !!compilerOptions.noDtsResolution || getEmitModuleResolutionKind(compilerOptions) !== 100 /* Bundler */; -} -function getResolvePackageJsonExports(compilerOptions) { - var moduleResolution = getEmitModuleResolutionKind(compilerOptions); - if (!moduleResolutionSupportsPackageJsonExportsAndImports(moduleResolution)) { - return false; - } - if (compilerOptions.resolvePackageJsonExports !== void 0) { - return compilerOptions.resolvePackageJsonExports; - } - switch (moduleResolution) { - case 3 /* Node16 */: - case 99 /* NodeNext */: - case 100 /* Bundler */: - return true; - } - return false; -} -function getResolvePackageJsonImports(compilerOptions) { - var moduleResolution = getEmitModuleResolutionKind(compilerOptions); - if (!moduleResolutionSupportsPackageJsonExportsAndImports(moduleResolution)) { - return false; - } - if (compilerOptions.resolvePackageJsonExports !== void 0) { - return compilerOptions.resolvePackageJsonExports; - } - switch (moduleResolution) { - case 3 /* Node16 */: - case 99 /* NodeNext */: - case 100 /* Bundler */: - return true; - } - return false; -} -function getResolveJsonModule(compilerOptions) { - if (compilerOptions.resolveJsonModule !== void 0) { - return compilerOptions.resolveJsonModule; - } - return getEmitModuleResolutionKind(compilerOptions) === 100 /* Bundler */; -} -function getEmitDeclarations(compilerOptions) { - return !!(compilerOptions.declaration || compilerOptions.composite); -} -function shouldPreserveConstEnums(compilerOptions) { - return !!(compilerOptions.preserveConstEnums || getIsolatedModules(compilerOptions)); -} -function isIncrementalCompilation(options) { - return !!(options.incremental || options.composite); -} -function getStrictOptionValue(compilerOptions, flag) { - return compilerOptions[flag] === void 0 ? !!compilerOptions.strict : !!compilerOptions[flag]; -} -function getAllowJSCompilerOption(compilerOptions) { - return compilerOptions.allowJs === void 0 ? !!compilerOptions.checkJs : compilerOptions.allowJs; -} -function getUseDefineForClassFields(compilerOptions) { - return compilerOptions.useDefineForClassFields === void 0 ? getEmitScriptTarget(compilerOptions) >= 9 /* ES2022 */ : compilerOptions.useDefineForClassFields; -} -function getEmitStandardClassFields(compilerOptions) { - return compilerOptions.useDefineForClassFields !== false && getEmitScriptTarget(compilerOptions) >= 9 /* ES2022 */; -} -function compilerOptionsAffectSemanticDiagnostics(newOptions, oldOptions) { - return optionsHaveChanges(oldOptions, newOptions, semanticDiagnosticsOptionDeclarations); -} -function compilerOptionsAffectEmit(newOptions, oldOptions) { - return optionsHaveChanges(oldOptions, newOptions, affectsEmitOptionDeclarations); -} -function compilerOptionsAffectDeclarationPath(newOptions, oldOptions) { - return optionsHaveChanges(oldOptions, newOptions, affectsDeclarationPathOptionDeclarations); -} -function getCompilerOptionValue(options, option) { - return option.strictFlag ? getStrictOptionValue(options, option.name) : options[option.name]; -} -function getJSXTransformEnabled(options) { - var jsx = options.jsx; - return jsx === 2 /* React */ || jsx === 4 /* ReactJSX */ || jsx === 5 /* ReactJSXDev */; -} -function getJSXImplicitImportBase(compilerOptions, file) { - var jsxImportSourcePragmas = file == null ? void 0 : file.pragmas.get("jsximportsource"); - var jsxImportSourcePragma = isArray(jsxImportSourcePragmas) ? jsxImportSourcePragmas[jsxImportSourcePragmas.length - 1] : jsxImportSourcePragmas; - return compilerOptions.jsx === 4 /* ReactJSX */ || compilerOptions.jsx === 5 /* ReactJSXDev */ || compilerOptions.jsxImportSource || jsxImportSourcePragma ? (jsxImportSourcePragma == null ? void 0 : jsxImportSourcePragma.arguments.factory) || compilerOptions.jsxImportSource || "react" : void 0; -} -function getJSXRuntimeImport(base, options) { - return base ? "".concat(base, "/").concat(options.jsx === 5 /* ReactJSXDev */ ? "jsx-dev-runtime" : "jsx-runtime") : void 0; -} -function hasZeroOrOneAsteriskCharacter(str) { - var seenAsterisk = false; - for (var i = 0; i < str.length; i++) { - if (str.charCodeAt(i) === 42 /* asterisk */) { - if (!seenAsterisk) { - seenAsterisk = true; - } - else { - return false; - } - } - } - return true; -} -function createSymlinkCache(cwd, getCanonicalFileName) { - var symlinkedDirectories; - var symlinkedDirectoriesByRealpath; - var symlinkedFiles; - var hasProcessedResolutions = false; - return { - getSymlinkedFiles: function () { return symlinkedFiles; }, - getSymlinkedDirectories: function () { return symlinkedDirectories; }, - getSymlinkedDirectoriesByRealpath: function () { return symlinkedDirectoriesByRealpath; }, - setSymlinkedFile: function (path, real) { return (symlinkedFiles || (symlinkedFiles = /* @__PURE__ */ new Map())).set(path, real); }, - setSymlinkedDirectory: function (symlink, real) { - var symlinkPath = toPath(symlink, cwd, getCanonicalFileName); - if (!containsIgnoredPath(symlinkPath)) { - symlinkPath = ensureTrailingDirectorySeparator(symlinkPath); - if (real !== false && !(symlinkedDirectories == null ? void 0 : symlinkedDirectories.has(symlinkPath))) { - (symlinkedDirectoriesByRealpath || (symlinkedDirectoriesByRealpath = createMultiMap())).add(ensureTrailingDirectorySeparator(real.realPath), symlink); - } - (symlinkedDirectories || (symlinkedDirectories = /* @__PURE__ */ new Map())).set(symlinkPath, real); - } - }, - setSymlinksFromResolutions: function (files, typeReferenceDirectives) { - var e_66, _t; - var _this = this; - var _a, _b; - Debug.assert(!hasProcessedResolutions); - hasProcessedResolutions = true; - try { - for (var files_1 = __values(files), files_1_1 = files_1.next(); !files_1_1.done; files_1_1 = files_1.next()) { - var file = files_1_1.value; - (_a = file.resolvedModules) == null ? void 0 : _a.forEach(function (resolution) { return processResolution(_this, resolution.resolvedModule); }); - (_b = file.resolvedTypeReferenceDirectiveNames) == null ? void 0 : _b.forEach(function (resolution) { return processResolution(_this, resolution.resolvedTypeReferenceDirective); }); - } - } - catch (e_66_1) { e_66 = { error: e_66_1 }; } - finally { - try { - if (files_1_1 && !files_1_1.done && (_t = files_1.return)) _t.call(files_1); - } - finally { if (e_66) throw e_66.error; } - } - typeReferenceDirectives.forEach(function (resolution) { return processResolution(_this, resolution.resolvedTypeReferenceDirective); }); - }, - hasProcessedResolutions: function () { return hasProcessedResolutions; } - }; - function processResolution(cache, resolution) { - if (!resolution || !resolution.originalPath || !resolution.resolvedFileName) - return; - var resolvedFileName = resolution.resolvedFileName, originalPath = resolution.originalPath; - cache.setSymlinkedFile(toPath(originalPath, cwd, getCanonicalFileName), resolvedFileName); - var _t = __read(guessDirectorySymlink(resolvedFileName, originalPath, cwd, getCanonicalFileName) || emptyArray, 2), commonResolved = _t[0], commonOriginal = _t[1]; - if (commonResolved && commonOriginal) { - cache.setSymlinkedDirectory(commonOriginal, { real: commonResolved, realPath: toPath(commonResolved, cwd, getCanonicalFileName) }); - } - } -} -function guessDirectorySymlink(a, b, cwd, getCanonicalFileName) { - var aParts = getPathComponents(getNormalizedAbsolutePath(a, cwd)); - var bParts = getPathComponents(getNormalizedAbsolutePath(b, cwd)); - var isDirectory = false; - while (aParts.length >= 2 && bParts.length >= 2 && !isNodeModulesOrScopedPackageDirectory(aParts[aParts.length - 2], getCanonicalFileName) && !isNodeModulesOrScopedPackageDirectory(bParts[bParts.length - 2], getCanonicalFileName) && getCanonicalFileName(aParts[aParts.length - 1]) === getCanonicalFileName(bParts[bParts.length - 1])) { - aParts.pop(); - bParts.pop(); - isDirectory = true; - } - return isDirectory ? [getPathFromPathComponents(aParts), getPathFromPathComponents(bParts)] : void 0; -} -function isNodeModulesOrScopedPackageDirectory(s, getCanonicalFileName) { - return s !== void 0 && (getCanonicalFileName(s) === "node_modules" || startsWith(s, "@")); -} -function stripLeadingDirectorySeparator(s) { - return isAnyDirectorySeparator(s.charCodeAt(0)) ? s.slice(1) : void 0; -} -function tryRemoveDirectoryPrefix(path, dirPath, getCanonicalFileName) { - var withoutPrefix = tryRemovePrefix(path, dirPath, getCanonicalFileName); - return withoutPrefix === void 0 ? void 0 : stripLeadingDirectorySeparator(withoutPrefix); -} -var reservedCharacterPattern = /[^\w\s/]/g; -function regExpEscape(text) { - return text.replace(reservedCharacterPattern, escapeRegExpCharacter); -} -function escapeRegExpCharacter(match) { - return "\\" + match; -} -var wildcardCharCodes = [42 /* asterisk */, 63 /* question */]; -var commonPackageFolders = ["node_modules", "bower_components", "jspm_packages"]; -var implicitExcludePathRegexPattern = "(?!(".concat(commonPackageFolders.join("|"), ")(/|$))"); -var filesMatcher = { - /** - * Matches any single directory segment unless it is the last segment and a .min.js file - * Breakdown: - * [^./] # matches everything up to the first . character (excluding directory separators) - * (\\.(?!min\\.js$))? # matches . characters but not if they are part of the .min.js file extension - */ - singleAsteriskRegexFragment: "([^./]|(\\.(?!min\\.js$))?)*", - /** - * Regex for the ** wildcard. Matches any number of subdirectories. When used for including - * files or directories, does not match subdirectories that start with a . character - */ - doubleAsteriskRegexFragment: "(/".concat(implicitExcludePathRegexPattern, "[^/.][^/]*)*?"), - replaceWildcardCharacter: function (match) { return replaceWildcardCharacter(match, filesMatcher.singleAsteriskRegexFragment); } -}; -var directoriesMatcher = { - singleAsteriskRegexFragment: "[^/]*", - /** - * Regex for the ** wildcard. Matches any number of subdirectories. When used for including - * files or directories, does not match subdirectories that start with a . character - */ - doubleAsteriskRegexFragment: "(/".concat(implicitExcludePathRegexPattern, "[^/.][^/]*)*?"), - replaceWildcardCharacter: function (match) { return replaceWildcardCharacter(match, directoriesMatcher.singleAsteriskRegexFragment); } -}; -var excludeMatcher = { - singleAsteriskRegexFragment: "[^/]*", - doubleAsteriskRegexFragment: "(/.+?)?", - replaceWildcardCharacter: function (match) { return replaceWildcardCharacter(match, excludeMatcher.singleAsteriskRegexFragment); } -}; -var wildcardMatchers = { - files: filesMatcher, - directories: directoriesMatcher, - exclude: excludeMatcher -}; -function getRegularExpressionForWildcard(specs, basePath, usage) { - var patterns = getRegularExpressionsForWildcards(specs, basePath, usage); - if (!patterns || !patterns.length) { - return void 0; - } - var pattern = patterns.map(function (pattern2) { return "(".concat(pattern2, ")"); }).join("|"); - var terminator = usage === "exclude" ? "($|/)" : "$"; - return "^(".concat(pattern, ")").concat(terminator); -} -function getRegularExpressionsForWildcards(specs, basePath, usage) { - if (specs === void 0 || specs.length === 0) { - return void 0; - } - return flatMap(specs, function (spec) { return spec && getSubPatternFromSpec(spec, basePath, usage, wildcardMatchers[usage]); }); -} -function isImplicitGlob(lastPathComponent) { - return !/[.*?]/.test(lastPathComponent); -} -function getPatternFromSpec(spec, basePath, usage) { - var pattern = spec && getSubPatternFromSpec(spec, basePath, usage, wildcardMatchers[usage]); - return pattern && "^(".concat(pattern, ")").concat(usage === "exclude" ? "($|/)" : "$"); -} -function getSubPatternFromSpec(spec, basePath, usage, _t) { - var e_67, _u; - var singleAsteriskRegexFragment = _t.singleAsteriskRegexFragment, doubleAsteriskRegexFragment = _t.doubleAsteriskRegexFragment, replaceWildcardCharacter2 = _t.replaceWildcardCharacter; - var subpattern = ""; - var hasWrittenComponent = false; - var components = getNormalizedPathComponents(spec, basePath); - var lastComponent = last(components); - if (usage !== "exclude" && lastComponent === "**") { - return void 0; - } - components[0] = removeTrailingDirectorySeparator(components[0]); - if (isImplicitGlob(lastComponent)) { - components.push("**", "*"); - } - var optionalCount = 0; - try { - for (var components_1 = __values(components), components_1_1 = components_1.next(); !components_1_1.done; components_1_1 = components_1.next()) { - var component = components_1_1.value; - if (component === "**") { - subpattern += doubleAsteriskRegexFragment; - } - else { - if (usage === "directories") { - subpattern += "("; - optionalCount++; - } - if (hasWrittenComponent) { - subpattern += directorySeparator; - } - if (usage !== "exclude") { - var componentPattern = ""; - if (component.charCodeAt(0) === 42 /* asterisk */) { - componentPattern += "([^./]" + singleAsteriskRegexFragment + ")?"; - component = component.substr(1); - } - else if (component.charCodeAt(0) === 63 /* question */) { - componentPattern += "[^./]"; - component = component.substr(1); - } - componentPattern += component.replace(reservedCharacterPattern, replaceWildcardCharacter2); - if (componentPattern !== component) { - subpattern += implicitExcludePathRegexPattern; - } - subpattern += componentPattern; - } - else { - subpattern += component.replace(reservedCharacterPattern, replaceWildcardCharacter2); - } - } - hasWrittenComponent = true; - } - } - catch (e_67_1) { e_67 = { error: e_67_1 }; } - finally { - try { - if (components_1_1 && !components_1_1.done && (_u = components_1.return)) _u.call(components_1); - } - finally { if (e_67) throw e_67.error; } - } - while (optionalCount > 0) { - subpattern += ")?"; - optionalCount--; - } - return subpattern; -} -function replaceWildcardCharacter(match, singleAsteriskRegexFragment) { - return match === "*" ? singleAsteriskRegexFragment : match === "?" ? "[^/]" : "\\" + match; -} -function getFileMatcherPatterns(path, excludes, includes, useCaseSensitiveFileNames2, currentDirectory) { - path = normalizePath(path); - currentDirectory = normalizePath(currentDirectory); - var absolutePath = combinePaths(currentDirectory, path); - return { - includeFilePatterns: map(getRegularExpressionsForWildcards(includes, absolutePath, "files"), function (pattern) { return "^".concat(pattern, "$"); }), - includeFilePattern: getRegularExpressionForWildcard(includes, absolutePath, "files"), - includeDirectoryPattern: getRegularExpressionForWildcard(includes, absolutePath, "directories"), - excludePattern: getRegularExpressionForWildcard(excludes, absolutePath, "exclude"), - basePaths: getBasePaths(path, includes, useCaseSensitiveFileNames2) - }; -} -function getRegexFromPattern(pattern, useCaseSensitiveFileNames2) { - return new RegExp(pattern, useCaseSensitiveFileNames2 ? "" : "i"); -} -function matchFiles(path, extensions, excludes, includes, useCaseSensitiveFileNames2, currentDirectory, depth, getFileSystemEntries, realpath) { - var e_68, _t; - path = normalizePath(path); - currentDirectory = normalizePath(currentDirectory); - var patterns = getFileMatcherPatterns(path, excludes, includes, useCaseSensitiveFileNames2, currentDirectory); - var includeFileRegexes = patterns.includeFilePatterns && patterns.includeFilePatterns.map(function (pattern) { return getRegexFromPattern(pattern, useCaseSensitiveFileNames2); }); - var includeDirectoryRegex = patterns.includeDirectoryPattern && getRegexFromPattern(patterns.includeDirectoryPattern, useCaseSensitiveFileNames2); - var excludeRegex = patterns.excludePattern && getRegexFromPattern(patterns.excludePattern, useCaseSensitiveFileNames2); - var results = includeFileRegexes ? includeFileRegexes.map(function () { return []; }) : [[]]; - var visited = /* @__PURE__ */ new Map(); - var toCanonical = createGetCanonicalFileName(useCaseSensitiveFileNames2); - try { - for (var _u = __values(patterns.basePaths), _v = _u.next(); !_v.done; _v = _u.next()) { - var basePath = _v.value; - visitDirectory(basePath, combinePaths(currentDirectory, basePath), depth); - } - } - catch (e_68_1) { e_68 = { error: e_68_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_68) throw e_68.error; } - } - return flatten(results); - function visitDirectory(path2, absolutePath, depth2) { - var e_69, _t, e_70, _u; - var canonicalPath = toCanonical(realpath(absolutePath)); - if (visited.has(canonicalPath)) - return; - visited.set(canonicalPath, true); - var _v = getFileSystemEntries(path2), files = _v.files, directories = _v.directories; - var _loop_2 = function (current) { - var name_7 = combinePaths(path2, current); - var absoluteName = combinePaths(absolutePath, current); - if (extensions && !fileExtensionIsOneOf(name_7, extensions)) - return "continue"; - if (excludeRegex && excludeRegex.test(absoluteName)) - return "continue"; - if (!includeFileRegexes) { - results[0].push(name_7); - } - else { - var includeIndex = findIndex(includeFileRegexes, function (re) { return re.test(absoluteName); }); - if (includeIndex !== -1) { - results[includeIndex].push(name_7); - } - } - }; - try { - for (var _w = __values(sort(files, compareStringsCaseSensitive)), _x = _w.next(); !_x.done; _x = _w.next()) { - var current = _x.value; - _loop_2(current); - } - } - catch (e_69_1) { e_69 = { error: e_69_1 }; } - finally { - try { - if (_x && !_x.done && (_t = _w.return)) _t.call(_w); - } - finally { if (e_69) throw e_69.error; } - } - if (depth2 !== void 0) { - depth2--; - if (depth2 === 0) { - return; - } - } - try { - for (var _y = __values(sort(directories, compareStringsCaseSensitive)), _z = _y.next(); !_z.done; _z = _y.next()) { - var current = _z.value; - var name_8 = combinePaths(path2, current); - var absoluteName = combinePaths(absolutePath, current); - if ((!includeDirectoryRegex || includeDirectoryRegex.test(absoluteName)) && (!excludeRegex || !excludeRegex.test(absoluteName))) { - visitDirectory(name_8, absoluteName, depth2); - } - } - } - catch (e_70_1) { e_70 = { error: e_70_1 }; } - finally { - try { - if (_z && !_z.done && (_u = _y.return)) _u.call(_y); - } - finally { if (e_70) throw e_70.error; } - } - } -} -function getBasePaths(path, includes, useCaseSensitiveFileNames2) { - var e_71, _t, e_72, _u; - var basePaths = [path]; - if (includes) { - var includeBasePaths = []; - try { - for (var includes_1 = __values(includes), includes_1_1 = includes_1.next(); !includes_1_1.done; includes_1_1 = includes_1.next()) { - var include = includes_1_1.value; - var absolute = isRootedDiskPath(include) ? include : normalizePath(combinePaths(path, include)); - includeBasePaths.push(getIncludeBasePath(absolute)); - } - } - catch (e_71_1) { e_71 = { error: e_71_1 }; } - finally { - try { - if (includes_1_1 && !includes_1_1.done && (_t = includes_1.return)) _t.call(includes_1); - } - finally { if (e_71) throw e_71.error; } - } - includeBasePaths.sort(getStringComparer(!useCaseSensitiveFileNames2)); - var _loop_3 = function (includeBasePath) { - if (every(basePaths, function (basePath) { return !containsPath(basePath, includeBasePath, path, !useCaseSensitiveFileNames2); })) { - basePaths.push(includeBasePath); - } - }; - try { - for (var includeBasePaths_1 = __values(includeBasePaths), includeBasePaths_1_1 = includeBasePaths_1.next(); !includeBasePaths_1_1.done; includeBasePaths_1_1 = includeBasePaths_1.next()) { - var includeBasePath = includeBasePaths_1_1.value; - _loop_3(includeBasePath); - } - } - catch (e_72_1) { e_72 = { error: e_72_1 }; } - finally { - try { - if (includeBasePaths_1_1 && !includeBasePaths_1_1.done && (_u = includeBasePaths_1.return)) _u.call(includeBasePaths_1); - } - finally { if (e_72) throw e_72.error; } - } - } - return basePaths; -} -function getIncludeBasePath(absolute) { - var wildcardOffset = indexOfAnyCharCode(absolute, wildcardCharCodes); - if (wildcardOffset < 0) { - return !hasExtension(absolute) ? absolute : removeTrailingDirectorySeparator(getDirectoryPath(absolute)); - } - return absolute.substring(0, absolute.lastIndexOf(directorySeparator, wildcardOffset)); -} -function ensureScriptKind(fileName, scriptKind) { - return scriptKind || getScriptKindFromFileName(fileName) || 3 /* TS */; -} -function getScriptKindFromFileName(fileName) { - var ext = fileName.substr(fileName.lastIndexOf(".")); - switch (ext.toLowerCase()) { - case ".js" /* Js */: - case ".cjs" /* Cjs */: - case ".mjs" /* Mjs */: - return 1 /* JS */; - case ".jsx" /* Jsx */: - return 2 /* JSX */; - case ".ts" /* Ts */: - case ".cts" /* Cts */: - case ".mts" /* Mts */: - return 3 /* TS */; - case ".tsx" /* Tsx */: - return 4 /* TSX */; - case ".json" /* Json */: - return 6 /* JSON */; - default: - return 0 /* Unknown */; - } -} -var supportedTSExtensions = [[".ts" /* Ts */, ".tsx" /* Tsx */, ".d.ts" /* Dts */], [".cts" /* Cts */, ".d.cts" /* Dcts */], [".mts" /* Mts */, ".d.mts" /* Dmts */]]; -var supportedTSExtensionsFlat = flatten(supportedTSExtensions); -var supportedTSExtensionsWithJson = __spreadArray(__spreadArray([], __read(supportedTSExtensions), false), [[".json" /* Json */]], false); -var supportedTSExtensionsForExtractExtension = [".d.ts" /* Dts */, ".d.cts" /* Dcts */, ".d.mts" /* Dmts */, ".cts" /* Cts */, ".mts" /* Mts */, ".ts" /* Ts */, ".tsx" /* Tsx */]; -var supportedJSExtensions = [[".js" /* Js */, ".jsx" /* Jsx */], [".mjs" /* Mjs */], [".cjs" /* Cjs */]]; -var supportedJSExtensionsFlat = flatten(supportedJSExtensions); -var allSupportedExtensions = [[".ts" /* Ts */, ".tsx" /* Tsx */, ".d.ts" /* Dts */, ".js" /* Js */, ".jsx" /* Jsx */], [".cts" /* Cts */, ".d.cts" /* Dcts */, ".cjs" /* Cjs */], [".mts" /* Mts */, ".d.mts" /* Dmts */, ".mjs" /* Mjs */]]; -var allSupportedExtensionsWithJson = __spreadArray(__spreadArray([], __read(allSupportedExtensions), false), [[".json" /* Json */]], false); -var supportedDeclarationExtensions = [".d.ts" /* Dts */, ".d.cts" /* Dcts */, ".d.mts" /* Dmts */]; -var supportedTSImplementationExtensions = [".ts" /* Ts */, ".cts" /* Cts */, ".mts" /* Mts */, ".tsx" /* Tsx */]; -var extensionsNotSupportingExtensionlessResolution = [".mts" /* Mts */, ".d.mts" /* Dmts */, ".mjs" /* Mjs */, ".cts" /* Cts */, ".d.cts" /* Dcts */, ".cjs" /* Cjs */]; -function getSupportedExtensions(options, extraFileExtensions) { - var needJsExtensions = options && getAllowJSCompilerOption(options); - if (!extraFileExtensions || extraFileExtensions.length === 0) { - return needJsExtensions ? allSupportedExtensions : supportedTSExtensions; - } - var builtins = needJsExtensions ? allSupportedExtensions : supportedTSExtensions; - var flatBuiltins = flatten(builtins); - var extensions = __spreadArray(__spreadArray([], __read(builtins), false), __read(mapDefined(extraFileExtensions, function (x) { return x.scriptKind === 7 /* Deferred */ || needJsExtensions && isJSLike(x.scriptKind) && flatBuiltins.indexOf(x.extension) === -1 ? [x.extension] : void 0; })), false); - return extensions; -} -function getSupportedExtensionsWithJsonIfResolveJsonModule(options, supportedExtensions) { - if (!options || !getResolveJsonModule(options)) - return supportedExtensions; - if (supportedExtensions === allSupportedExtensions) - return allSupportedExtensionsWithJson; - if (supportedExtensions === supportedTSExtensions) - return supportedTSExtensionsWithJson; - return __spreadArray(__spreadArray([], __read(supportedExtensions), false), [[".json" /* Json */]], false); -} -function isJSLike(scriptKind) { - return scriptKind === 1 /* JS */ || scriptKind === 2 /* JSX */; -} -function hasJSFileExtension(fileName) { - return some(supportedJSExtensionsFlat, function (extension) { return fileExtensionIs(fileName, extension); }); -} -function hasTSFileExtension(fileName) { - return some(supportedTSExtensionsFlat, function (extension) { return fileExtensionIs(fileName, extension); }); -} -var ModuleSpecifierEnding = /* @__PURE__ */ (function (ModuleSpecifierEnding2) { - ModuleSpecifierEnding2[ModuleSpecifierEnding2["Minimal"] = 0] = "Minimal"; - ModuleSpecifierEnding2[ModuleSpecifierEnding2["Index"] = 1] = "Index"; - ModuleSpecifierEnding2[ModuleSpecifierEnding2["JsExtension"] = 2] = "JsExtension"; - ModuleSpecifierEnding2[ModuleSpecifierEnding2["TsExtension"] = 3] = "TsExtension"; - return ModuleSpecifierEnding2; -})(ModuleSpecifierEnding || {}); -function usesExtensionsOnImports(_t, hasExtension2) { - var imports = _t.imports; - if (hasExtension2 === void 0) { hasExtension2 = or(hasJSFileExtension, hasTSFileExtension); } - return firstDefined(imports, function (_t) { - var text = _t.text; - return pathIsRelative(text) && !fileExtensionIsOneOf(text, extensionsNotSupportingExtensionlessResolution) ? hasExtension2(text) : void 0; - }) || false; -} -function getModuleSpecifierEndingPreference(preference, resolutionMode, compilerOptions, sourceFile) { - if (preference === "js" || resolutionMode === 99 /* ESNext */) { - if (!shouldAllowImportingTsExtension(compilerOptions)) { - return 2 /* JsExtension */; - } - return inferPreference() !== 2 /* JsExtension */ ? 3 /* TsExtension */ : 2 /* JsExtension */; - } - if (preference === "minimal") { - return 0 /* Minimal */; - } - if (preference === "index") { - return 1 /* Index */; - } - if (!shouldAllowImportingTsExtension(compilerOptions)) { - return usesExtensionsOnImports(sourceFile) ? 2 /* JsExtension */ : 0 /* Minimal */; - } - return inferPreference(); - function inferPreference() { - var e_73, _t; - var usesJsExtensions = false; - var specifiers = sourceFile.imports.length ? sourceFile.imports.map(function (i) { return i.text; }) : isSourceFileJS(sourceFile) ? getRequiresAtTopOfFile(sourceFile).map(function (r) { return r.arguments[0].text; }) : emptyArray; - try { - for (var specifiers_1 = __values(specifiers), specifiers_1_1 = specifiers_1.next(); !specifiers_1_1.done; specifiers_1_1 = specifiers_1.next()) { - var specifier = specifiers_1_1.value; - if (pathIsRelative(specifier)) { - if (fileExtensionIsOneOf(specifier, extensionsNotSupportingExtensionlessResolution)) { - continue; - } - if (hasTSFileExtension(specifier)) { - return 3 /* TsExtension */; - } - if (hasJSFileExtension(specifier)) { - usesJsExtensions = true; - } - } - } - } - catch (e_73_1) { e_73 = { error: e_73_1 }; } - finally { - try { - if (specifiers_1_1 && !specifiers_1_1.done && (_t = specifiers_1.return)) _t.call(specifiers_1); - } - finally { if (e_73) throw e_73.error; } - } - return usesJsExtensions ? 2 /* JsExtension */ : 0 /* Minimal */; - } -} -function getRequiresAtTopOfFile(sourceFile) { - var e_74, _t; - var nonRequireStatementCount = 0; - var requires; - try { - for (var _u = __values(sourceFile.statements), _v = _u.next(); !_v.done; _v = _u.next()) { - var statement = _v.value; - if (nonRequireStatementCount > 3) { - break; - } - if (isRequireVariableStatement(statement)) { - requires = concatenate(requires, statement.declarationList.declarations.map(function (d) { return d.initializer; })); - } - else if (isExpressionStatement(statement) && isRequireCall(statement.expression, - /*requireStringLiteralLikeArgument*/ - true)) { - requires = append(requires, statement.expression); - } - else { - nonRequireStatementCount++; - } - } - } - catch (e_74_1) { e_74 = { error: e_74_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_74) throw e_74.error; } - } - return requires || emptyArray; -} -function isSupportedSourceFileName(fileName, compilerOptions, extraFileExtensions) { - var e_75, _t; - if (!fileName) - return false; - var supportedExtensions = getSupportedExtensions(compilerOptions, extraFileExtensions); - try { - for (var _u = __values(flatten(getSupportedExtensionsWithJsonIfResolveJsonModule(compilerOptions, supportedExtensions))), _v = _u.next(); !_v.done; _v = _u.next()) { - var extension = _v.value; - if (fileExtensionIs(fileName, extension)) { - return true; - } - } - } - catch (e_75_1) { e_75 = { error: e_75_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_75) throw e_75.error; } - } - return false; -} -function numberOfDirectorySeparators(str) { - var match = str.match(/\//g); - return match ? match.length : 0; -} -function compareNumberOfDirectorySeparators(path1, path2) { - return compareValues(numberOfDirectorySeparators(path1), numberOfDirectorySeparators(path2)); -} -var extensionsToRemove = [".d.ts" /* Dts */, ".d.mts" /* Dmts */, ".d.cts" /* Dcts */, ".mjs" /* Mjs */, ".mts" /* Mts */, ".cjs" /* Cjs */, ".cts" /* Cts */, ".ts" /* Ts */, ".js" /* Js */, ".tsx" /* Tsx */, ".jsx" /* Jsx */, ".json" /* Json */]; -function removeFileExtension(path) { - var e_76, _t; - try { - for (var extensionsToRemove_1 = __values(extensionsToRemove), extensionsToRemove_1_1 = extensionsToRemove_1.next(); !extensionsToRemove_1_1.done; extensionsToRemove_1_1 = extensionsToRemove_1.next()) { - var ext = extensionsToRemove_1_1.value; - var extensionless = tryRemoveExtension(path, ext); - if (extensionless !== void 0) { - return extensionless; - } - } - } - catch (e_76_1) { e_76 = { error: e_76_1 }; } - finally { - try { - if (extensionsToRemove_1_1 && !extensionsToRemove_1_1.done && (_t = extensionsToRemove_1.return)) _t.call(extensionsToRemove_1); - } - finally { if (e_76) throw e_76.error; } - } - return path; -} -function tryRemoveExtension(path, extension) { - return fileExtensionIs(path, extension) ? removeExtension(path, extension) : void 0; -} -function removeExtension(path, extension) { - return path.substring(0, path.length - extension.length); -} -function changeExtension(path, newExtension) { - return changeAnyExtension(path, newExtension, extensionsToRemove, - /*ignoreCase*/ - false); -} -function tryParsePattern(pattern) { - var indexOfStar = pattern.indexOf("*"); - if (indexOfStar === -1) { - return pattern; - } - return pattern.indexOf("*", indexOfStar + 1) !== -1 ? void 0 : { - prefix: pattern.substr(0, indexOfStar), - suffix: pattern.substr(indexOfStar + 1) - }; -} -function tryParsePatterns(paths) { - return mapDefined(getOwnKeys(paths), function (path) { return tryParsePattern(path); }); -} -function positionIsSynthesized(pos) { - return !(pos >= 0); -} -function extensionIsTS(ext) { - return ext === ".ts" /* Ts */ || ext === ".tsx" /* Tsx */ || ext === ".d.ts" /* Dts */ || ext === ".cts" /* Cts */ || ext === ".mts" /* Mts */ || ext === ".d.mts" /* Dmts */ || ext === ".d.cts" /* Dcts */ || startsWith(ext, ".d.") && endsWith(ext, ".ts"); -} -function resolutionExtensionIsTSOrJson(ext) { - return extensionIsTS(ext) || ext === ".json" /* Json */; -} -function extensionFromPath(path) { - var ext = tryGetExtensionFromPath2(path); - return ext !== void 0 ? ext : Debug.fail("File ".concat(path, " has unknown extension.")); -} -function isAnySupportedFileExtension(path) { - return tryGetExtensionFromPath2(path) !== void 0; -} -function tryGetExtensionFromPath2(path) { - return find(extensionsToRemove, function (e) { return fileExtensionIs(path, e); }); -} -function isCheckJsEnabledForFile(sourceFile, compilerOptions) { - return sourceFile.checkJsDirective ? sourceFile.checkJsDirective.enabled : compilerOptions.checkJs; -} -var emptyFileSystemEntries = { - files: emptyArray, - directories: emptyArray -}; -function matchPatternOrExact(patternOrStrings, candidate) { - var e_77, _t; - var patterns = []; - try { - for (var patternOrStrings_1 = __values(patternOrStrings), patternOrStrings_1_1 = patternOrStrings_1.next(); !patternOrStrings_1_1.done; patternOrStrings_1_1 = patternOrStrings_1.next()) { - var patternOrString = patternOrStrings_1_1.value; - if (patternOrString === candidate) { - return candidate; - } - if (!isString(patternOrString)) { - patterns.push(patternOrString); - } - } - } - catch (e_77_1) { e_77 = { error: e_77_1 }; } - finally { - try { - if (patternOrStrings_1_1 && !patternOrStrings_1_1.done && (_t = patternOrStrings_1.return)) _t.call(patternOrStrings_1); - } - finally { if (e_77) throw e_77.error; } - } - return findBestPatternMatch(patterns, function (_) { return _; }, candidate); -} -function sliceAfter(arr, value) { - var index = arr.indexOf(value); - Debug.assert(index !== -1); - return arr.slice(index); -} -function addRelatedInfo(diagnostic) { - var _t; - var relatedInformation = []; - for (var _u = 1; _u < arguments.length; _u++) { - relatedInformation[_u - 1] = arguments[_u]; - } - if (!relatedInformation.length) { - return diagnostic; - } - if (!diagnostic.relatedInformation) { - diagnostic.relatedInformation = []; - } - Debug.assert(diagnostic.relatedInformation !== emptyArray, "Diagnostic had empty array singleton for related info, but is still being constructed!"); - (_t = diagnostic.relatedInformation).push.apply(_t, __spreadArray([], __read(relatedInformation), false)); - return diagnostic; -} -function minAndMax(arr, getValue) { - Debug.assert(arr.length !== 0); - var min2 = getValue(arr[0]); - var max = min2; - for (var i = 1; i < arr.length; i++) { - var value = getValue(arr[i]); - if (value < min2) { - min2 = value; - } - else if (value > max) { - max = value; - } - } - return { min: min2, max: max }; -} -function rangeOfNode(node) { - return { pos: getTokenPosOfNode(node), end: node.end }; -} -function rangeOfTypeParameters(sourceFile, typeParameters) { - var pos = typeParameters.pos - 1; - var end = Math.min(sourceFile.text.length, skipTrivia(sourceFile.text, typeParameters.end) + 1); - return { pos: pos, end: end }; -} -function skipTypeChecking(sourceFile, options, host) { - return options.skipLibCheck && sourceFile.isDeclarationFile || options.skipDefaultLibCheck && sourceFile.hasNoDefaultLib || host.isSourceOfProjectReferenceRedirect(sourceFile.fileName); -} -function isJsonEqual(a, b) { - return a === b || typeof a === "object" && a !== null && typeof b === "object" && b !== null && equalOwnProperties(a, b, isJsonEqual); -} -function parsePseudoBigInt(stringValue) { - var log2Base; - switch (stringValue.charCodeAt(1)) { - case 98 /* b */: - case 66 /* B */: - log2Base = 1; - break; - case 111 /* o */: - case 79 /* O */: - log2Base = 3; - break; - case 120 /* x */: - case 88 /* X */: - log2Base = 4; - break; - default: - var nIndex = stringValue.length - 1; - var nonZeroStart = 0; - while (stringValue.charCodeAt(nonZeroStart) === 48 /* _0 */) { - nonZeroStart++; - } - return stringValue.slice(nonZeroStart, nIndex) || "0"; - } - var startIndex = 2, endIndex = stringValue.length - 1; - var bitsNeeded = (endIndex - startIndex) * log2Base; - var segments = new Uint16Array((bitsNeeded >>> 4) + (bitsNeeded & 15 ? 1 : 0)); - for (var i = endIndex - 1, bitOffset = 0; i >= startIndex; i--, bitOffset += log2Base) { - var segment = bitOffset >>> 4; - var digitChar = stringValue.charCodeAt(i); - var digit = digitChar <= 57 /* _9 */ ? digitChar - 48 /* _0 */ : 10 + digitChar - (digitChar <= 70 /* F */ ? 65 /* A */ : 97 /* a */); - var shiftedDigit = digit << (bitOffset & 15); - segments[segment] |= shiftedDigit; - var residual = shiftedDigit >>> 16; - if (residual) - segments[segment + 1] |= residual; - } - var base10Value = ""; - var firstNonzeroSegment = segments.length - 1; - var segmentsRemaining = true; - while (segmentsRemaining) { - var mod10 = 0; - segmentsRemaining = false; - for (var segment = firstNonzeroSegment; segment >= 0; segment--) { - var newSegment = mod10 << 16 | segments[segment]; - var segmentValue = newSegment / 10 | 0; - segments[segment] = segmentValue; - mod10 = newSegment - segmentValue * 10; - if (segmentValue && !segmentsRemaining) { - firstNonzeroSegment = segment; - segmentsRemaining = true; - } - } - base10Value = mod10 + base10Value; - } - return base10Value; -} -function pseudoBigIntToString(_t) { - var negative = _t.negative, base10Value = _t.base10Value; - return (negative && base10Value !== "0" ? "-" : "") + base10Value; -} -function parseBigInt(text) { - if (!isValidBigIntString(text, - /*roundTripOnly*/ - false)) { - return void 0; - } - return parseValidBigInt(text); -} -function parseValidBigInt(text) { - var negative = text.startsWith("-"); - var base10Value = parsePseudoBigInt("".concat(negative ? text.slice(1) : text, "n")); - return { negative: negative, base10Value: base10Value }; -} -function isValidBigIntString(s, roundTripOnly) { - if (s === "") - return false; - var scanner2 = createScanner(99 /* ESNext */, - /*skipTrivia*/ - false); - var success = true; - scanner2.setOnError(function () { return success = false; }); - scanner2.setText(s + "n"); - var result = scanner2.scan(); - var negative = result === 41 /* MinusToken */; - if (negative) { - result = scanner2.scan(); - } - var flags = scanner2.getTokenFlags(); - return success && result === 10 /* BigIntLiteral */ && scanner2.getTokenEnd() === s.length + 1 && !(flags & 512 /* ContainsSeparator */) && (!roundTripOnly || s === pseudoBigIntToString({ negative: negative, base10Value: parsePseudoBigInt(scanner2.getTokenValue()) })); -} -function isValidTypeOnlyAliasUseSite(useSite) { - return !!(useSite.flags & 33554432 /* Ambient */) || isPartOfTypeQuery(useSite) || isIdentifierInNonEmittingHeritageClause(useSite) || isPartOfPossiblyValidTypeOrAbstractComputedPropertyName(useSite) || !(isExpressionNode(useSite) || isShorthandPropertyNameUseSite(useSite)); -} -function isShorthandPropertyNameUseSite(useSite) { - return isIdentifier(useSite) && isShorthandPropertyAssignment(useSite.parent) && useSite.parent.name === useSite; -} -function isPartOfPossiblyValidTypeOrAbstractComputedPropertyName(node) { - while (node.kind === 80 /* Identifier */ || node.kind === 211 /* PropertyAccessExpression */) { - node = node.parent; - } - if (node.kind !== 167 /* ComputedPropertyName */) { - return false; - } - if (hasSyntacticModifier(node.parent, 256 /* Abstract */)) { - return true; - } - var containerKind = node.parent.parent.kind; - return containerKind === 264 /* InterfaceDeclaration */ || containerKind === 187 /* TypeLiteral */; -} -function isIdentifierInNonEmittingHeritageClause(node) { - if (node.kind !== 80 /* Identifier */) - return false; - var heritageClause = findAncestor(node.parent, function (parent2) { - switch (parent2.kind) { - case 298 /* HeritageClause */: - return true; - case 211 /* PropertyAccessExpression */: - case 233 /* ExpressionWithTypeArguments */: - return false; - default: - return "quit"; - } - }); - return (heritageClause == null ? void 0 : heritageClause.token) === 119 /* ImplementsKeyword */ || (heritageClause == null ? void 0 : heritageClause.parent.kind) === 264 /* InterfaceDeclaration */; -} -function isIdentifierTypeReference(node) { - return isTypeReferenceNode(node) && isIdentifier(node.typeName); -} -function arrayIsHomogeneous(array, comparer) { - if (comparer === void 0) { comparer = equateValues; } - if (array.length < 2) - return true; - var first2 = array[0]; - for (var i = 1, length2 = array.length; i < length2; i++) { - var target = array[i]; - if (!comparer(first2, target)) - return false; - } - return true; -} -function setTextRangePos(range, pos) { - range.pos = pos; - return range; -} -function setTextRangeEnd(range, end) { - range.end = end; - return range; -} -function setTextRangePosEnd(range, pos, end) { - return setTextRangeEnd(setTextRangePos(range, pos), end); -} -function setTextRangePosWidth(range, pos, width) { - return setTextRangePosEnd(range, pos, pos + width); -} -function setNodeFlags(node, newFlags) { - if (node) { - node.flags = newFlags; - } - return node; -} -function setParent(child, parent2) { - if (child && parent2) { - child.parent = parent2; - } - return child; -} -function setEachParent(children, parent2) { - var e_78, _t; - if (children) { - try { - for (var children_1 = __values(children), children_1_1 = children_1.next(); !children_1_1.done; children_1_1 = children_1.next()) { - var child = children_1_1.value; - setParent(child, parent2); - } - } - catch (e_78_1) { e_78 = { error: e_78_1 }; } - finally { - try { - if (children_1_1 && !children_1_1.done && (_t = children_1.return)) _t.call(children_1); - } - finally { if (e_78) throw e_78.error; } - } - } - return children; -} -function setParentRecursive(rootNode, incremental) { - if (!rootNode) - return rootNode; - forEachChildRecursively(rootNode, isJSDocNode(rootNode) ? bindParentToChildIgnoringJSDoc : bindParentToChild); - return rootNode; - function bindParentToChildIgnoringJSDoc(child, parent2) { - if (incremental && child.parent === parent2) { - return "skip"; - } - setParent(child, parent2); - } - function bindJSDoc(child) { - var e_79, _t; - if (hasJSDocNodes(child)) { - try { - for (var _u = __values(child.jsDoc), _v = _u.next(); !_v.done; _v = _u.next()) { - var doc = _v.value; - bindParentToChildIgnoringJSDoc(doc, child); - forEachChildRecursively(doc, bindParentToChildIgnoringJSDoc); - } - } - catch (e_79_1) { e_79 = { error: e_79_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_79) throw e_79.error; } - } - } - } - function bindParentToChild(child, parent2) { - return bindParentToChildIgnoringJSDoc(child, parent2) || bindJSDoc(child); - } -} -function isPackedElement(node) { - return !isOmittedExpression(node); -} -function isPackedArrayLiteral(node) { - return isArrayLiteralExpression(node) && every(node.elements, isPackedElement); -} -function expressionResultIsUnused(node) { - Debug.assertIsDefined(node.parent); - while (true) { - var parent2 = node.parent; - if (isParenthesizedExpression(parent2)) { - node = parent2; - continue; - } - if (isExpressionStatement(parent2) || isVoidExpression(parent2) || isForStatement(parent2) && (parent2.initializer === node || parent2.incrementor === node)) { - return true; - } - if (isCommaListExpression(parent2)) { - if (node !== last(parent2.elements)) - return true; - node = parent2; - continue; - } - if (isBinaryExpression(parent2) && parent2.operatorToken.kind === 28 /* CommaToken */) { - if (node === parent2.left) - return true; - node = parent2; - continue; - } - return false; - } -} -function containsIgnoredPath(path) { - return some(ignoredPaths, function (p) { return stringContains(path, p); }); -} -function getContainingNodeArray(node) { - if (!node.parent) - return void 0; - switch (node.kind) { - case 168 /* TypeParameter */: - var parent3 = node.parent; - return parent3.kind === 195 /* InferType */ ? void 0 : parent3.typeParameters; - case 169 /* Parameter */: - return node.parent.parameters; - case 204 /* TemplateLiteralTypeSpan */: - return node.parent.templateSpans; - case 239 /* TemplateSpan */: - return node.parent.templateSpans; - case 170 /* Decorator */: { - var parent4 = node.parent; - return canHaveDecorators(parent4) ? parent4.modifiers : void 0; - } - case 298 /* HeritageClause */: - return node.parent.heritageClauses; - } - var parent2 = node.parent; - if (isJSDocTag(node)) { - return isJSDocTypeLiteral(node.parent) ? void 0 : node.parent.tags; - } - switch (parent2.kind) { - case 187 /* TypeLiteral */: - case 264 /* InterfaceDeclaration */: - return isTypeElement(node) ? parent2.members : void 0; - case 192 /* UnionType */: - case 193 /* IntersectionType */: - return parent2.types; - case 189 /* TupleType */: - case 209 /* ArrayLiteralExpression */: - case 361 /* CommaListExpression */: - case 275 /* NamedImports */: - case 279 /* NamedExports */: - return parent2.elements; - case 210 /* ObjectLiteralExpression */: - case 292 /* JsxAttributes */: - return parent2.properties; - case 213 /* CallExpression */: - case 214 /* NewExpression */: - return isTypeNode(node) ? parent2.typeArguments : parent2.expression === node ? void 0 : parent2.arguments; - case 284 /* JsxElement */: - case 288 /* JsxFragment */: - return isJsxChild(node) ? parent2.children : void 0; - case 286 /* JsxOpeningElement */: - case 285 /* JsxSelfClosingElement */: - return isTypeNode(node) ? parent2.typeArguments : void 0; - case 241 /* Block */: - case 296 /* CaseClause */: - case 297 /* DefaultClause */: - case 268 /* ModuleBlock */: - return parent2.statements; - case 269 /* CaseBlock */: - return parent2.clauses; - case 263 /* ClassDeclaration */: - case 231 /* ClassExpression */: - return isClassElement(node) ? parent2.members : void 0; - case 266 /* EnumDeclaration */: - return isEnumMember(node) ? parent2.members : void 0; - case 312 /* SourceFile */: - return parent2.statements; - } -} -function hasContextSensitiveParameters(node) { - if (!node.typeParameters) { - if (some(node.parameters, function (p) { return !getEffectiveTypeAnnotationNode(p); })) { - return true; - } - if (node.kind !== 219 /* ArrowFunction */) { - var parameter = firstOrUndefined(node.parameters); - if (!(parameter && parameterIsThisKeyword(parameter))) { - return true; - } - } - } - return false; -} -function isInfinityOrNaNString(name) { - return name === "Infinity" || name === "-Infinity" || name === "NaN"; -} -function isCatchClauseVariableDeclaration(node) { - return node.kind === 260 /* VariableDeclaration */ && node.parent.kind === 299 /* CatchClause */; -} -function isParameterOrCatchClauseVariable(symbol) { - var declaration = symbol.valueDeclaration && getRootDeclaration(symbol.valueDeclaration); - return !!declaration && (isParameter(declaration) || isCatchClauseVariableDeclaration(declaration)); -} -function isFunctionExpressionOrArrowFunction(node) { - return node.kind === 218 /* FunctionExpression */ || node.kind === 219 /* ArrowFunction */; -} -function escapeSnippetText(text) { - return text.replace(/\$/gm, function () { return "\\$"; }); -} -function isNumericLiteralName(name) { - return (+name).toString() === name; -} -function createPropertyNameNodeForIdentifierOrLiteral(name, target, singleQuote, stringNamed) { - return isIdentifierText(name, target) ? factory.createIdentifier(name) : !stringNamed && isNumericLiteralName(name) && +name >= 0 ? factory.createNumericLiteral(+name) : factory.createStringLiteral(name, !!singleQuote); -} -function isThisTypeParameter(type) { - return !!(type.flags & 262144 /* TypeParameter */ && type.isThisType); -} -function getNodeModulePathParts(fullPath) { - var topLevelNodeModulesIndex = 0; - var topLevelPackageNameIndex = 0; - var packageRootIndex = 0; - var fileNameIndex = 0; - var States; - (function (States2) { - States2[States2["BeforeNodeModules"] = 0] = "BeforeNodeModules"; - States2[States2["NodeModules"] = 1] = "NodeModules"; - States2[States2["Scope"] = 2] = "Scope"; - States2[States2["PackageContent"] = 3] = "PackageContent"; - })(States || (States = {})); - var partStart = 0; - var partEnd = 0; - var state = 0 /* BeforeNodeModules */; - while (partEnd >= 0) { - partStart = partEnd; - partEnd = fullPath.indexOf("/", partStart + 1); - switch (state) { - case 0 /* BeforeNodeModules */: - if (fullPath.indexOf(nodeModulesPathPart, partStart) === partStart) { - topLevelNodeModulesIndex = partStart; - topLevelPackageNameIndex = partEnd; - state = 1 /* NodeModules */; - } - break; - case 1 /* NodeModules */: - case 2 /* Scope */: - if (state === 1 /* NodeModules */ && fullPath.charAt(partStart + 1) === "@") { - state = 2 /* Scope */; - } - else { - packageRootIndex = partEnd; - state = 3 /* PackageContent */; - } - break; - case 3 /* PackageContent */: - if (fullPath.indexOf(nodeModulesPathPart, partStart) === partStart) { - state = 1 /* NodeModules */; - } - else { - state = 3 /* PackageContent */; - } - break; - } - } - fileNameIndex = partStart; - return state > 1 /* NodeModules */ ? { topLevelNodeModulesIndex: topLevelNodeModulesIndex, topLevelPackageNameIndex: topLevelPackageNameIndex, packageRootIndex: packageRootIndex, fileNameIndex: fileNameIndex } : void 0; -} -function getParameterTypeNode(parameter) { - var _a; - return parameter.kind === 348 /* JSDocParameterTag */ ? (_a = parameter.typeExpression) == null ? void 0 : _a.type : parameter.type; -} -function isTypeDeclaration(node) { - switch (node.kind) { - case 168 /* TypeParameter */: - case 263 /* ClassDeclaration */: - case 264 /* InterfaceDeclaration */: - case 265 /* TypeAliasDeclaration */: - case 266 /* EnumDeclaration */: - case 353 /* JSDocTypedefTag */: - case 345 /* JSDocCallbackTag */: - case 347 /* JSDocEnumTag */: - return true; - case 273 /* ImportClause */: - return node.isTypeOnly; - case 276 /* ImportSpecifier */: - case 281 /* ExportSpecifier */: - return node.parent.parent.isTypeOnly; - default: - return false; - } -} -function canHaveExportModifier(node) { - return isEnumDeclaration(node) || isVariableStatement(node) || isFunctionDeclaration(node) || isClassDeclaration(node) || isInterfaceDeclaration(node) || isTypeDeclaration(node) || isModuleDeclaration(node) && !isExternalModuleAugmentation(node) && !isGlobalScopeAugmentation(node); -} -function isOptionalJSDocPropertyLikeTag(node) { - if (!isJSDocPropertyLikeTag(node)) { - return false; - } - var isBracketed = node.isBracketed, typeExpression = node.typeExpression; - return isBracketed || !!typeExpression && typeExpression.type.kind === 323 /* JSDocOptionalType */; -} -function canUsePropertyAccess(name, languageVersion) { - if (name.length === 0) { - return false; - } - var firstChar = name.charCodeAt(0); - return firstChar === 35 /* hash */ ? name.length > 1 && isIdentifierStart(name.charCodeAt(1), languageVersion) : isIdentifierStart(firstChar, languageVersion); -} -function hasTabstop(node) { - var _a; - return ((_a = getSnippetElement(node)) == null ? void 0 : _a.kind) === 0 /* TabStop */; -} -function isJSDocOptionalParameter(node) { - return isInJSFile(node) && // node.type should only be a JSDocOptionalType when node is a parameter of a JSDocFunctionType - (node.type && node.type.kind === 323 /* JSDocOptionalType */ || getJSDocParameterTags(node).some(function (_t) { - var isBracketed = _t.isBracketed, typeExpression = _t.typeExpression; - return isBracketed || !!typeExpression && typeExpression.type.kind === 323; - } /* JSDocOptionalType */)); -} -function isOptionalDeclaration(declaration) { - switch (declaration.kind) { - case 172 /* PropertyDeclaration */: - case 171 /* PropertySignature */: - return !!declaration.questionToken; - case 169 /* Parameter */: - return !!declaration.questionToken || isJSDocOptionalParameter(declaration); - case 355 /* JSDocPropertyTag */: - case 348 /* JSDocParameterTag */: - return isOptionalJSDocPropertyLikeTag(declaration); - default: - return false; - } -} -function isNonNullAccess(node) { - var kind = node.kind; - return (kind === 211 /* PropertyAccessExpression */ || kind === 212 /* ElementAccessExpression */) && isNonNullExpression(node.expression); -} -function isJSDocSatisfiesExpression(node) { - return isInJSFile(node) && isParenthesizedExpression(node) && hasJSDocNodes(node) && !!getJSDocSatisfiesTag(node); -} -function getJSDocSatisfiesExpressionType(node) { - return Debug.checkDefined(tryGetJSDocSatisfiesTypeNode(node)); -} -function tryGetJSDocSatisfiesTypeNode(node) { - var tag = getJSDocSatisfiesTag(node); - return tag && tag.typeExpression && tag.typeExpression.type; -} -function getEscapedTextOfJsxAttributeName(node) { - return isIdentifier(node) ? node.escapedText : getEscapedTextOfJsxNamespacedName(node); -} -function getTextOfJsxAttributeName(node) { - return isIdentifier(node) ? idText(node) : getTextOfJsxNamespacedName(node); -} -function isJsxAttributeName(node) { - var kind = node.kind; - return kind === 80 /* Identifier */ || kind === 295 /* JsxNamespacedName */; -} -function getEscapedTextOfJsxNamespacedName(node) { - return "".concat(node.namespace.escapedText, ":").concat(idText(node.name)); -} -function getTextOfJsxNamespacedName(node) { - return "".concat(idText(node.namespace), ":").concat(idText(node.name)); -} -function intrinsicTagNameToString(node) { - return isIdentifier(node) ? idText(node) : getTextOfJsxNamespacedName(node); -} -function isTypeUsableAsPropertyName(type) { - return !!(type.flags & 8576 /* StringOrNumberLiteralOrUnique */); -} -function getPropertyNameFromType(type) { - if (type.flags & 8192 /* UniqueESSymbol */) { - return type.escapedName; - } - if (type.flags & (128 /* StringLiteral */ | 256 /* NumberLiteral */)) { - return escapeLeadingUnderscores("" + type.value); - } - return Debug.fail(); -} -// src/compiler/factory/baseNodeFactory.ts -function createBaseNodeFactory() { - var NodeConstructor2; - var TokenConstructor2; - var IdentifierConstructor2; - var PrivateIdentifierConstructor2; - var SourceFileConstructor2; - return { - createBaseSourceFileNode: createBaseSourceFileNode, - createBaseIdentifierNode: createBaseIdentifierNode, - createBasePrivateIdentifierNode: createBasePrivateIdentifierNode, - createBaseTokenNode: createBaseTokenNode, - createBaseNode: createBaseNode - }; - function createBaseSourceFileNode(kind) { - return new (SourceFileConstructor2 || (SourceFileConstructor2 = objectAllocator.getSourceFileConstructor()))(kind, - /*pos*/ - -1, - /*end*/ - -1); - } - function createBaseIdentifierNode(kind) { - return new (IdentifierConstructor2 || (IdentifierConstructor2 = objectAllocator.getIdentifierConstructor()))(kind, - /*pos*/ - -1, - /*end*/ - -1); - } - function createBasePrivateIdentifierNode(kind) { - return new (PrivateIdentifierConstructor2 || (PrivateIdentifierConstructor2 = objectAllocator.getPrivateIdentifierConstructor()))(kind, - /*pos*/ - -1, - /*end*/ - -1); - } - function createBaseTokenNode(kind) { - return new (TokenConstructor2 || (TokenConstructor2 = objectAllocator.getTokenConstructor()))(kind, - /*pos*/ - -1, - /*end*/ - -1); - } - function createBaseNode(kind) { - return new (NodeConstructor2 || (NodeConstructor2 = objectAllocator.getNodeConstructor()))(kind, - /*pos*/ - -1, - /*end*/ - -1); - } -} -// src/compiler/factory/parenthesizerRules.ts -function createParenthesizerRules(factory2) { - var binaryLeftOperandParenthesizerCache; - var binaryRightOperandParenthesizerCache; - return { - getParenthesizeLeftSideOfBinaryForOperator: getParenthesizeLeftSideOfBinaryForOperator, - getParenthesizeRightSideOfBinaryForOperator: getParenthesizeRightSideOfBinaryForOperator, - parenthesizeLeftSideOfBinary: parenthesizeLeftSideOfBinary, - parenthesizeRightSideOfBinary: parenthesizeRightSideOfBinary, - parenthesizeExpressionOfComputedPropertyName: parenthesizeExpressionOfComputedPropertyName, - parenthesizeConditionOfConditionalExpression: parenthesizeConditionOfConditionalExpression, - parenthesizeBranchOfConditionalExpression: parenthesizeBranchOfConditionalExpression, - parenthesizeExpressionOfExportDefault: parenthesizeExpressionOfExportDefault, - parenthesizeExpressionOfNew: parenthesizeExpressionOfNew, - parenthesizeLeftSideOfAccess: parenthesizeLeftSideOfAccess, - parenthesizeOperandOfPostfixUnary: parenthesizeOperandOfPostfixUnary, - parenthesizeOperandOfPrefixUnary: parenthesizeOperandOfPrefixUnary, - parenthesizeExpressionsOfCommaDelimitedList: parenthesizeExpressionsOfCommaDelimitedList, - parenthesizeExpressionForDisallowedComma: parenthesizeExpressionForDisallowedComma, - parenthesizeExpressionOfExpressionStatement: parenthesizeExpressionOfExpressionStatement, - parenthesizeConciseBodyOfArrowFunction: parenthesizeConciseBodyOfArrowFunction, - parenthesizeCheckTypeOfConditionalType: parenthesizeCheckTypeOfConditionalType, - parenthesizeExtendsTypeOfConditionalType: parenthesizeExtendsTypeOfConditionalType, - parenthesizeConstituentTypesOfUnionType: parenthesizeConstituentTypesOfUnionType, - parenthesizeConstituentTypeOfUnionType: parenthesizeConstituentTypeOfUnionType, - parenthesizeConstituentTypesOfIntersectionType: parenthesizeConstituentTypesOfIntersectionType, - parenthesizeConstituentTypeOfIntersectionType: parenthesizeConstituentTypeOfIntersectionType, - parenthesizeOperandOfTypeOperator: parenthesizeOperandOfTypeOperator, - parenthesizeOperandOfReadonlyTypeOperator: parenthesizeOperandOfReadonlyTypeOperator, - parenthesizeNonArrayTypeOfPostfixType: parenthesizeNonArrayTypeOfPostfixType, - parenthesizeElementTypesOfTupleType: parenthesizeElementTypesOfTupleType, - parenthesizeElementTypeOfTupleType: parenthesizeElementTypeOfTupleType, - parenthesizeTypeOfOptionalType: parenthesizeTypeOfOptionalType, - parenthesizeTypeArguments: parenthesizeTypeArguments, - parenthesizeLeadingTypeArgument: parenthesizeLeadingTypeArgument - }; - function getParenthesizeLeftSideOfBinaryForOperator(operatorKind) { - binaryLeftOperandParenthesizerCache || (binaryLeftOperandParenthesizerCache = /* @__PURE__ */ new Map()); - var parenthesizerRule = binaryLeftOperandParenthesizerCache.get(operatorKind); - if (!parenthesizerRule) { - parenthesizerRule = function (node) { return parenthesizeLeftSideOfBinary(operatorKind, node); }; - binaryLeftOperandParenthesizerCache.set(operatorKind, parenthesizerRule); - } - return parenthesizerRule; - } - function getParenthesizeRightSideOfBinaryForOperator(operatorKind) { - binaryRightOperandParenthesizerCache || (binaryRightOperandParenthesizerCache = /* @__PURE__ */ new Map()); - var parenthesizerRule = binaryRightOperandParenthesizerCache.get(operatorKind); - if (!parenthesizerRule) { - parenthesizerRule = function (node) { return parenthesizeRightSideOfBinary(operatorKind, - /*leftSide*/ - void 0, node); }; - binaryRightOperandParenthesizerCache.set(operatorKind, parenthesizerRule); - } - return parenthesizerRule; - } - function binaryOperandNeedsParentheses(binaryOperator, operand, isLeftSideOfBinary, leftOperand) { - var binaryOperatorPrecedence = getOperatorPrecedence(226 /* BinaryExpression */, binaryOperator); - var binaryOperatorAssociativity = getOperatorAssociativity(226 /* BinaryExpression */, binaryOperator); - var emittedOperand = skipPartiallyEmittedExpressions(operand); - if (!isLeftSideOfBinary && operand.kind === 219 /* ArrowFunction */ && binaryOperatorPrecedence > 3 /* Assignment */) { - return true; - } - var operandPrecedence = getExpressionPrecedence(emittedOperand); - switch (compareValues(operandPrecedence, binaryOperatorPrecedence)) { - case -1 /* LessThan */: - if (!isLeftSideOfBinary && binaryOperatorAssociativity === 1 /* Right */ && operand.kind === 229 /* YieldExpression */) { - return false; - } - return true; - case 1 /* GreaterThan */: - return false; - case 0 /* EqualTo */: - if (isLeftSideOfBinary) { - return binaryOperatorAssociativity === 1 /* Right */; - } - else { - if (isBinaryExpression(emittedOperand) && emittedOperand.operatorToken.kind === binaryOperator) { - if (operatorHasAssociativeProperty(binaryOperator)) { - return false; - } - if (binaryOperator === 40 /* PlusToken */) { - var leftKind = leftOperand ? getLiteralKindOfBinaryPlusOperand(leftOperand) : 0 /* Unknown */; - if (isLiteralKind(leftKind) && leftKind === getLiteralKindOfBinaryPlusOperand(emittedOperand)) { - return false; - } - } - } - var operandAssociativity = getExpressionAssociativity(emittedOperand); - return operandAssociativity === 0 /* Left */; - } - } - } - function operatorHasAssociativeProperty(binaryOperator) { - return binaryOperator === 42 /* AsteriskToken */ || binaryOperator === 52 /* BarToken */ || binaryOperator === 51 /* AmpersandToken */ || binaryOperator === 53 /* CaretToken */ || binaryOperator === 28 /* CommaToken */; - } - function getLiteralKindOfBinaryPlusOperand(node) { - node = skipPartiallyEmittedExpressions(node); - if (isLiteralKind(node.kind)) { - return node.kind; - } - if (node.kind === 226 /* BinaryExpression */ && node.operatorToken.kind === 40 /* PlusToken */) { - if (node.cachedLiteralKind !== void 0) { - return node.cachedLiteralKind; - } - var leftKind = getLiteralKindOfBinaryPlusOperand(node.left); - var literalKind = isLiteralKind(leftKind) && leftKind === getLiteralKindOfBinaryPlusOperand(node.right) ? leftKind : 0 /* Unknown */; - node.cachedLiteralKind = literalKind; - return literalKind; - } - return 0 /* Unknown */; - } - function parenthesizeBinaryOperand(binaryOperator, operand, isLeftSideOfBinary, leftOperand) { - var skipped = skipPartiallyEmittedExpressions(operand); - if (skipped.kind === 217 /* ParenthesizedExpression */) { - return operand; - } - return binaryOperandNeedsParentheses(binaryOperator, operand, isLeftSideOfBinary, leftOperand) ? factory2.createParenthesizedExpression(operand) : operand; - } - function parenthesizeLeftSideOfBinary(binaryOperator, leftSide) { - return parenthesizeBinaryOperand(binaryOperator, leftSide, - /*isLeftSideOfBinary*/ - true); - } - function parenthesizeRightSideOfBinary(binaryOperator, leftSide, rightSide) { - return parenthesizeBinaryOperand(binaryOperator, rightSide, - /*isLeftSideOfBinary*/ - false, leftSide); - } - function parenthesizeExpressionOfComputedPropertyName(expression) { - return isCommaSequence(expression) ? factory2.createParenthesizedExpression(expression) : expression; - } - function parenthesizeConditionOfConditionalExpression(condition) { - var conditionalPrecedence = getOperatorPrecedence(227 /* ConditionalExpression */, 58 /* QuestionToken */); - var emittedCondition = skipPartiallyEmittedExpressions(condition); - var conditionPrecedence = getExpressionPrecedence(emittedCondition); - if (compareValues(conditionPrecedence, conditionalPrecedence) !== 1 /* GreaterThan */) { - return factory2.createParenthesizedExpression(condition); - } - return condition; - } - function parenthesizeBranchOfConditionalExpression(branch) { - var emittedExpression = skipPartiallyEmittedExpressions(branch); - return isCommaSequence(emittedExpression) ? factory2.createParenthesizedExpression(branch) : branch; - } - function parenthesizeExpressionOfExportDefault(expression) { - var check = skipPartiallyEmittedExpressions(expression); - var needsParens = isCommaSequence(check); - if (!needsParens) { - switch (getLeftmostExpression(check, - /*stopAtCallExpressions*/ - false).kind) { - case 231 /* ClassExpression */: - case 218 /* FunctionExpression */: - needsParens = true; - } - } - return needsParens ? factory2.createParenthesizedExpression(expression) : expression; - } - function parenthesizeExpressionOfNew(expression) { - var leftmostExpr = getLeftmostExpression(expression, - /*stopAtCallExpressions*/ - true); - switch (leftmostExpr.kind) { - case 213 /* CallExpression */: - return factory2.createParenthesizedExpression(expression); - case 214 /* NewExpression */: - return !leftmostExpr.arguments ? factory2.createParenthesizedExpression(expression) : expression; - } - return parenthesizeLeftSideOfAccess(expression); - } - function parenthesizeLeftSideOfAccess(expression, optionalChain) { - var emittedExpression = skipPartiallyEmittedExpressions(expression); - if (isLeftHandSideExpression(emittedExpression) && (emittedExpression.kind !== 214 /* NewExpression */ || emittedExpression.arguments) && (optionalChain || !isOptionalChain(emittedExpression))) { - return expression; - } - return setTextRange(factory2.createParenthesizedExpression(expression), expression); - } - function parenthesizeOperandOfPostfixUnary(operand) { - return isLeftHandSideExpression(operand) ? operand : setTextRange(factory2.createParenthesizedExpression(operand), operand); - } - function parenthesizeOperandOfPrefixUnary(operand) { - return isUnaryExpression(operand) ? operand : setTextRange(factory2.createParenthesizedExpression(operand), operand); - } - function parenthesizeExpressionsOfCommaDelimitedList(elements) { - var result = sameMap(elements, parenthesizeExpressionForDisallowedComma); - return setTextRange(factory2.createNodeArray(result, elements.hasTrailingComma), elements); - } - function parenthesizeExpressionForDisallowedComma(expression) { - var emittedExpression = skipPartiallyEmittedExpressions(expression); - var expressionPrecedence = getExpressionPrecedence(emittedExpression); - var commaPrecedence = getOperatorPrecedence(226 /* BinaryExpression */, 28 /* CommaToken */); - return expressionPrecedence > commaPrecedence ? expression : setTextRange(factory2.createParenthesizedExpression(expression), expression); - } - function parenthesizeExpressionOfExpressionStatement(expression) { - var emittedExpression = skipPartiallyEmittedExpressions(expression); - if (isCallExpression(emittedExpression)) { - var callee = emittedExpression.expression; - var kind = skipPartiallyEmittedExpressions(callee).kind; - if (kind === 218 /* FunctionExpression */ || kind === 219 /* ArrowFunction */) { - var updated = factory2.updateCallExpression(emittedExpression, setTextRange(factory2.createParenthesizedExpression(callee), callee), emittedExpression.typeArguments, emittedExpression.arguments); - return factory2.restoreOuterExpressions(expression, updated, 8 /* PartiallyEmittedExpressions */); - } - } - var leftmostExpressionKind = getLeftmostExpression(emittedExpression, - /*stopAtCallExpressions*/ - false).kind; - if (leftmostExpressionKind === 210 /* ObjectLiteralExpression */ || leftmostExpressionKind === 218 /* FunctionExpression */) { - return setTextRange(factory2.createParenthesizedExpression(expression), expression); - } - return expression; - } - function parenthesizeConciseBodyOfArrowFunction(body) { - if (!isBlock(body) && (isCommaSequence(body) || getLeftmostExpression(body, - /*stopAtCallExpressions*/ - false).kind === 210 /* ObjectLiteralExpression */)) { - return setTextRange(factory2.createParenthesizedExpression(body), body); - } - return body; - } - function parenthesizeCheckTypeOfConditionalType(checkType) { - switch (checkType.kind) { - case 184 /* FunctionType */: - case 185 /* ConstructorType */: - case 194 /* ConditionalType */: - return factory2.createParenthesizedType(checkType); - } - return checkType; - } - function parenthesizeExtendsTypeOfConditionalType(extendsType) { - switch (extendsType.kind) { - case 194 /* ConditionalType */: - return factory2.createParenthesizedType(extendsType); - } - return extendsType; - } - function parenthesizeConstituentTypeOfUnionType(type) { - switch (type.kind) { - case 192 /* UnionType */: - case 193 /* IntersectionType */: - return factory2.createParenthesizedType(type); - } - return parenthesizeCheckTypeOfConditionalType(type); - } - function parenthesizeConstituentTypesOfUnionType(members) { - return factory2.createNodeArray(sameMap(members, parenthesizeConstituentTypeOfUnionType)); - } - function parenthesizeConstituentTypeOfIntersectionType(type) { - switch (type.kind) { - case 192 /* UnionType */: - case 193 /* IntersectionType */: - return factory2.createParenthesizedType(type); - } - return parenthesizeConstituentTypeOfUnionType(type); - } - function parenthesizeConstituentTypesOfIntersectionType(members) { - return factory2.createNodeArray(sameMap(members, parenthesizeConstituentTypeOfIntersectionType)); - } - function parenthesizeOperandOfTypeOperator(type) { - switch (type.kind) { - case 193 /* IntersectionType */: - return factory2.createParenthesizedType(type); - } - return parenthesizeConstituentTypeOfIntersectionType(type); - } - function parenthesizeOperandOfReadonlyTypeOperator(type) { - switch (type.kind) { - case 198 /* TypeOperator */: - return factory2.createParenthesizedType(type); - } - return parenthesizeOperandOfTypeOperator(type); - } - function parenthesizeNonArrayTypeOfPostfixType(type) { - switch (type.kind) { - case 195 /* InferType */: - case 198 /* TypeOperator */: - case 186 /* TypeQuery */: - return factory2.createParenthesizedType(type); - } - return parenthesizeOperandOfTypeOperator(type); - } - function parenthesizeElementTypesOfTupleType(types) { - return factory2.createNodeArray(sameMap(types, parenthesizeElementTypeOfTupleType)); - } - function parenthesizeElementTypeOfTupleType(type) { - if (hasJSDocPostfixQuestion(type)) - return factory2.createParenthesizedType(type); - return type; - } - function hasJSDocPostfixQuestion(type) { - if (isJSDocNullableType(type)) - return type.postfix; - if (isNamedTupleMember(type)) - return hasJSDocPostfixQuestion(type.type); - if (isFunctionTypeNode(type) || isConstructorTypeNode(type) || isTypeOperatorNode(type)) - return hasJSDocPostfixQuestion(type.type); - if (isConditionalTypeNode(type)) - return hasJSDocPostfixQuestion(type.falseType); - if (isUnionTypeNode(type)) - return hasJSDocPostfixQuestion(last(type.types)); - if (isIntersectionTypeNode(type)) - return hasJSDocPostfixQuestion(last(type.types)); - if (isInferTypeNode(type)) - return !!type.typeParameter.constraint && hasJSDocPostfixQuestion(type.typeParameter.constraint); - return false; - } - function parenthesizeTypeOfOptionalType(type) { - if (hasJSDocPostfixQuestion(type)) - return factory2.createParenthesizedType(type); - return parenthesizeNonArrayTypeOfPostfixType(type); - } - function parenthesizeLeadingTypeArgument(node) { - return isFunctionOrConstructorTypeNode(node) && node.typeParameters ? factory2.createParenthesizedType(node) : node; - } - function parenthesizeOrdinalTypeArgument(node, i) { - return i === 0 ? parenthesizeLeadingTypeArgument(node) : node; - } - function parenthesizeTypeArguments(typeArguments) { - if (some(typeArguments)) { - return factory2.createNodeArray(sameMap(typeArguments, parenthesizeOrdinalTypeArgument)); - } - } -} -var nullParenthesizerRules = { - getParenthesizeLeftSideOfBinaryForOperator: function (_) { return identity; }, - getParenthesizeRightSideOfBinaryForOperator: function (_) { return identity; }, - parenthesizeLeftSideOfBinary: function (_binaryOperator, leftSide) { return leftSide; }, - parenthesizeRightSideOfBinary: function (_binaryOperator, _leftSide, rightSide) { return rightSide; }, - parenthesizeExpressionOfComputedPropertyName: identity, - parenthesizeConditionOfConditionalExpression: identity, - parenthesizeBranchOfConditionalExpression: identity, - parenthesizeExpressionOfExportDefault: identity, - parenthesizeExpressionOfNew: function (expression) { return cast(expression, isLeftHandSideExpression); }, - parenthesizeLeftSideOfAccess: function (expression) { return cast(expression, isLeftHandSideExpression); }, - parenthesizeOperandOfPostfixUnary: function (operand) { return cast(operand, isLeftHandSideExpression); }, - parenthesizeOperandOfPrefixUnary: function (operand) { return cast(operand, isUnaryExpression); }, - parenthesizeExpressionsOfCommaDelimitedList: function (nodes) { return cast(nodes, isNodeArray); }, - parenthesizeExpressionForDisallowedComma: identity, - parenthesizeExpressionOfExpressionStatement: identity, - parenthesizeConciseBodyOfArrowFunction: identity, - parenthesizeCheckTypeOfConditionalType: identity, - parenthesizeExtendsTypeOfConditionalType: identity, - parenthesizeConstituentTypesOfUnionType: function (nodes) { return cast(nodes, isNodeArray); }, - parenthesizeConstituentTypeOfUnionType: identity, - parenthesizeConstituentTypesOfIntersectionType: function (nodes) { return cast(nodes, isNodeArray); }, - parenthesizeConstituentTypeOfIntersectionType: identity, - parenthesizeOperandOfTypeOperator: identity, - parenthesizeOperandOfReadonlyTypeOperator: identity, - parenthesizeNonArrayTypeOfPostfixType: identity, - parenthesizeElementTypesOfTupleType: function (nodes) { return cast(nodes, isNodeArray); }, - parenthesizeElementTypeOfTupleType: identity, - parenthesizeTypeOfOptionalType: identity, - parenthesizeTypeArguments: function (nodes) { return nodes && cast(nodes, isNodeArray); }, - parenthesizeLeadingTypeArgument: identity -}; -// src/compiler/factory/nodeConverters.ts -function createNodeConverters(factory2) { - return { - convertToFunctionBlock: convertToFunctionBlock, - convertToFunctionExpression: convertToFunctionExpression, - convertToClassExpression: convertToClassExpression, - convertToArrayAssignmentElement: convertToArrayAssignmentElement, - convertToObjectAssignmentElement: convertToObjectAssignmentElement, - convertToAssignmentPattern: convertToAssignmentPattern, - convertToObjectAssignmentPattern: convertToObjectAssignmentPattern, - convertToArrayAssignmentPattern: convertToArrayAssignmentPattern, - convertToAssignmentElementTarget: convertToAssignmentElementTarget - }; - function convertToFunctionBlock(node, multiLine) { - if (isBlock(node)) - return node; - var returnStatement = factory2.createReturnStatement(node); - setTextRange(returnStatement, node); - var body = factory2.createBlock([returnStatement], multiLine); - setTextRange(body, node); - return body; - } - function convertToFunctionExpression(node) { - var _a; - if (!node.body) - return Debug.fail("Cannot convert a FunctionDeclaration without a body"); - var updated = factory2.createFunctionExpression((_a = getModifiers(node)) == null ? void 0 : _a.filter(function (modifier) { return !isExportModifier(modifier) && !isDefaultModifier(modifier); }), node.asteriskToken, node.name, node.typeParameters, node.parameters, node.type, node.body); - setOriginalNode(updated, node); - setTextRange(updated, node); - if (getStartsOnNewLine(node)) { - setStartsOnNewLine(updated, - /*newLine*/ - true); - } - return updated; - } - function convertToClassExpression(node) { - var _a; - var updated = factory2.createClassExpression((_a = node.modifiers) == null ? void 0 : _a.filter(function (modifier) { return !isExportModifier(modifier) && !isDefaultModifier(modifier); }), node.name, node.typeParameters, node.heritageClauses, node.members); - setOriginalNode(updated, node); - setTextRange(updated, node); - if (getStartsOnNewLine(node)) { - setStartsOnNewLine(updated, - /*newLine*/ - true); - } - return updated; - } - function convertToArrayAssignmentElement(element) { - if (isBindingElement(element)) { - if (element.dotDotDotToken) { - Debug.assertNode(element.name, isIdentifier); - return setOriginalNode(setTextRange(factory2.createSpreadElement(element.name), element), element); - } - var expression = convertToAssignmentElementTarget(element.name); - return element.initializer ? setOriginalNode(setTextRange(factory2.createAssignment(expression, element.initializer), element), element) : expression; - } - return cast(element, isExpression); - } - function convertToObjectAssignmentElement(element) { - if (isBindingElement(element)) { - if (element.dotDotDotToken) { - Debug.assertNode(element.name, isIdentifier); - return setOriginalNode(setTextRange(factory2.createSpreadAssignment(element.name), element), element); - } - if (element.propertyName) { - var expression = convertToAssignmentElementTarget(element.name); - return setOriginalNode(setTextRange(factory2.createPropertyAssignment(element.propertyName, element.initializer ? factory2.createAssignment(expression, element.initializer) : expression), element), element); - } - Debug.assertNode(element.name, isIdentifier); - return setOriginalNode(setTextRange(factory2.createShorthandPropertyAssignment(element.name, element.initializer), element), element); - } - return cast(element, isObjectLiteralElementLike); - } - function convertToAssignmentPattern(node) { - switch (node.kind) { - case 207 /* ArrayBindingPattern */: - case 209 /* ArrayLiteralExpression */: - return convertToArrayAssignmentPattern(node); - case 206 /* ObjectBindingPattern */: - case 210 /* ObjectLiteralExpression */: - return convertToObjectAssignmentPattern(node); - } - } - function convertToObjectAssignmentPattern(node) { - if (isObjectBindingPattern(node)) { - return setOriginalNode(setTextRange(factory2.createObjectLiteralExpression(map(node.elements, convertToObjectAssignmentElement)), node), node); - } - return cast(node, isObjectLiteralExpression); - } - function convertToArrayAssignmentPattern(node) { - if (isArrayBindingPattern(node)) { - return setOriginalNode(setTextRange(factory2.createArrayLiteralExpression(map(node.elements, convertToArrayAssignmentElement)), node), node); - } - return cast(node, isArrayLiteralExpression); - } - function convertToAssignmentElementTarget(node) { - if (isBindingPattern(node)) { - return convertToAssignmentPattern(node); - } - return cast(node, isExpression); - } -} -var nullNodeConverters = { - convertToFunctionBlock: notImplemented, - convertToFunctionExpression: notImplemented, - convertToClassExpression: notImplemented, - convertToArrayAssignmentElement: notImplemented, - convertToObjectAssignmentElement: notImplemented, - convertToAssignmentPattern: notImplemented, - convertToObjectAssignmentPattern: notImplemented, - convertToArrayAssignmentPattern: notImplemented, - convertToAssignmentElementTarget: notImplemented -}; -// src/compiler/factory/nodeFactory.ts -var nextAutoGenerateId = 0; -var NodeFactoryFlags = /* @__PURE__ */ (function (NodeFactoryFlags2) { - NodeFactoryFlags2[NodeFactoryFlags2["None"] = 0] = "None"; - NodeFactoryFlags2[NodeFactoryFlags2["NoParenthesizerRules"] = 1] = "NoParenthesizerRules"; - NodeFactoryFlags2[NodeFactoryFlags2["NoNodeConverters"] = 2] = "NoNodeConverters"; - NodeFactoryFlags2[NodeFactoryFlags2["NoIndentationOnFreshPropertyAccess"] = 4] = "NoIndentationOnFreshPropertyAccess"; - NodeFactoryFlags2[NodeFactoryFlags2["NoOriginalNode"] = 8] = "NoOriginalNode"; - return NodeFactoryFlags2; -})(NodeFactoryFlags || {}); -var nodeFactoryPatchers = []; -function addNodeFactoryPatcher(fn) { - nodeFactoryPatchers.push(fn); -} -function createNodeFactory(flags, baseFactory2) { - var update = flags & 8 /* NoOriginalNode */ ? updateWithoutOriginal : updateWithOriginal; - var parenthesizerRules = memoize(function () { return flags & 1 /* NoParenthesizerRules */ ? nullParenthesizerRules : createParenthesizerRules(factory2); }); - var converters = memoize(function () { return flags & 2 /* NoNodeConverters */ ? nullNodeConverters : createNodeConverters(factory2); }); - var getBinaryCreateFunction = memoizeOne(function (operator) { return function (left, right) { return createBinaryExpression(left, operator, right); }; }); - var getPrefixUnaryCreateFunction = memoizeOne(function (operator) { return function (operand) { return createPrefixUnaryExpression(operator, operand); }; }); - var getPostfixUnaryCreateFunction = memoizeOne(function (operator) { return function (operand) { return createPostfixUnaryExpression(operand, operator); }; }); - var getJSDocPrimaryTypeCreateFunction = memoizeOne(function (kind) { return function () { return createJSDocPrimaryTypeWorker(kind); }; }); - var getJSDocUnaryTypeCreateFunction = memoizeOne(function (kind) { return function (type) { return createJSDocUnaryTypeWorker(kind, type); }; }); - var getJSDocUnaryTypeUpdateFunction = memoizeOne(function (kind) { return function (node, type) { return updateJSDocUnaryTypeWorker(kind, node, type); }; }); - var getJSDocPrePostfixUnaryTypeCreateFunction = memoizeOne(function (kind) { return function (type, postfix) { return createJSDocPrePostfixUnaryTypeWorker(kind, type, postfix); }; }); - var getJSDocPrePostfixUnaryTypeUpdateFunction = memoizeOne(function (kind) { return function (node, type) { return updateJSDocPrePostfixUnaryTypeWorker(kind, node, type); }; }); - var getJSDocSimpleTagCreateFunction = memoizeOne(function (kind) { return function (tagName, comment) { return createJSDocSimpleTagWorker(kind, tagName, comment); }; }); - var getJSDocSimpleTagUpdateFunction = memoizeOne(function (kind) { return function (node, tagName, comment) { return updateJSDocSimpleTagWorker(kind, node, tagName, comment); }; }); - var getJSDocTypeLikeTagCreateFunction = memoizeOne(function (kind) { return function (tagName, typeExpression, comment) { return createJSDocTypeLikeTagWorker(kind, tagName, typeExpression, comment); }; }); - var getJSDocTypeLikeTagUpdateFunction = memoizeOne(function (kind) { return function (node, tagName, typeExpression, comment) { return updateJSDocTypeLikeTagWorker(kind, node, tagName, typeExpression, comment); }; }); - var factory2 = { - get parenthesizer() { - return parenthesizerRules(); - }, - get converters() { - return converters(); - }, - baseFactory: baseFactory2, - flags: flags, - createNodeArray: createNodeArray, - createNumericLiteral: createNumericLiteral, - createBigIntLiteral: createBigIntLiteral, - createStringLiteral: createStringLiteral, - createStringLiteralFromNode: createStringLiteralFromNode, - createRegularExpressionLiteral: createRegularExpressionLiteral, - createLiteralLikeNode: createLiteralLikeNode, - createIdentifier: createIdentifier, - createTempVariable: createTempVariable, - createLoopVariable: createLoopVariable, - createUniqueName: createUniqueName, - getGeneratedNameForNode: getGeneratedNameForNode, - createPrivateIdentifier: createPrivateIdentifier, - createUniquePrivateName: createUniquePrivateName, - getGeneratedPrivateNameForNode: getGeneratedPrivateNameForNode, - createToken: createToken, - createSuper: createSuper, - createThis: createThis, - createNull: createNull, - createTrue: createTrue, - createFalse: createFalse, - createModifier: createModifier, - createModifiersFromModifierFlags: createModifiersFromModifierFlags, - createQualifiedName: createQualifiedName, - updateQualifiedName: updateQualifiedName, - createComputedPropertyName: createComputedPropertyName, - updateComputedPropertyName: updateComputedPropertyName, - createTypeParameterDeclaration: createTypeParameterDeclaration, - updateTypeParameterDeclaration: updateTypeParameterDeclaration, - createParameterDeclaration: createParameterDeclaration, - updateParameterDeclaration: updateParameterDeclaration, - createDecorator: createDecorator, - updateDecorator: updateDecorator, - createPropertySignature: createPropertySignature, - updatePropertySignature: updatePropertySignature, - createPropertyDeclaration: createPropertyDeclaration, - updatePropertyDeclaration: updatePropertyDeclaration2, - createMethodSignature: createMethodSignature, - updateMethodSignature: updateMethodSignature, - createMethodDeclaration: createMethodDeclaration, - updateMethodDeclaration: updateMethodDeclaration, - createConstructorDeclaration: createConstructorDeclaration, - updateConstructorDeclaration: updateConstructorDeclaration, - createGetAccessorDeclaration: createGetAccessorDeclaration, - updateGetAccessorDeclaration: updateGetAccessorDeclaration, - createSetAccessorDeclaration: createSetAccessorDeclaration, - updateSetAccessorDeclaration: updateSetAccessorDeclaration, - createCallSignature: createCallSignature, - updateCallSignature: updateCallSignature, - createConstructSignature: createConstructSignature, - updateConstructSignature: updateConstructSignature, - createIndexSignature: createIndexSignature, - updateIndexSignature: updateIndexSignature, - createClassStaticBlockDeclaration: createClassStaticBlockDeclaration, - updateClassStaticBlockDeclaration: updateClassStaticBlockDeclaration, - createTemplateLiteralTypeSpan: createTemplateLiteralTypeSpan, - updateTemplateLiteralTypeSpan: updateTemplateLiteralTypeSpan, - createKeywordTypeNode: createKeywordTypeNode, - createTypePredicateNode: createTypePredicateNode, - updateTypePredicateNode: updateTypePredicateNode, - createTypeReferenceNode: createTypeReferenceNode, - updateTypeReferenceNode: updateTypeReferenceNode, - createFunctionTypeNode: createFunctionTypeNode, - updateFunctionTypeNode: updateFunctionTypeNode, - createConstructorTypeNode: createConstructorTypeNode, - updateConstructorTypeNode: updateConstructorTypeNode, - createTypeQueryNode: createTypeQueryNode, - updateTypeQueryNode: updateTypeQueryNode, - createTypeLiteralNode: createTypeLiteralNode, - updateTypeLiteralNode: updateTypeLiteralNode, - createArrayTypeNode: createArrayTypeNode, - updateArrayTypeNode: updateArrayTypeNode, - createTupleTypeNode: createTupleTypeNode, - updateTupleTypeNode: updateTupleTypeNode, - createNamedTupleMember: createNamedTupleMember, - updateNamedTupleMember: updateNamedTupleMember, - createOptionalTypeNode: createOptionalTypeNode, - updateOptionalTypeNode: updateOptionalTypeNode, - createRestTypeNode: createRestTypeNode, - updateRestTypeNode: updateRestTypeNode, - createUnionTypeNode: createUnionTypeNode, - updateUnionTypeNode: updateUnionTypeNode, - createIntersectionTypeNode: createIntersectionTypeNode, - updateIntersectionTypeNode: updateIntersectionTypeNode, - createConditionalTypeNode: createConditionalTypeNode, - updateConditionalTypeNode: updateConditionalTypeNode, - createInferTypeNode: createInferTypeNode, - updateInferTypeNode: updateInferTypeNode, - createImportTypeNode: createImportTypeNode, - updateImportTypeNode: updateImportTypeNode, - createParenthesizedType: createParenthesizedType, - updateParenthesizedType: updateParenthesizedType, - createThisTypeNode: createThisTypeNode, - createTypeOperatorNode: createTypeOperatorNode, - updateTypeOperatorNode: updateTypeOperatorNode, - createIndexedAccessTypeNode: createIndexedAccessTypeNode, - updateIndexedAccessTypeNode: updateIndexedAccessTypeNode, - createMappedTypeNode: createMappedTypeNode, - updateMappedTypeNode: updateMappedTypeNode, - createLiteralTypeNode: createLiteralTypeNode, - updateLiteralTypeNode: updateLiteralTypeNode, - createTemplateLiteralType: createTemplateLiteralType, - updateTemplateLiteralType: updateTemplateLiteralType, - createObjectBindingPattern: createObjectBindingPattern, - updateObjectBindingPattern: updateObjectBindingPattern, - createArrayBindingPattern: createArrayBindingPattern, - updateArrayBindingPattern: updateArrayBindingPattern, - createBindingElement: createBindingElement, - updateBindingElement: updateBindingElement, - createArrayLiteralExpression: createArrayLiteralExpression, - updateArrayLiteralExpression: updateArrayLiteralExpression, - createObjectLiteralExpression: createObjectLiteralExpression, - updateObjectLiteralExpression: updateObjectLiteralExpression, - createPropertyAccessExpression: flags & 4 /* NoIndentationOnFreshPropertyAccess */ ? function (expression, name) { return setEmitFlags(createPropertyAccessExpression(expression, name), 262144 /* NoIndentation */); } : createPropertyAccessExpression, - updatePropertyAccessExpression: updatePropertyAccessExpression, - createPropertyAccessChain: flags & 4 /* NoIndentationOnFreshPropertyAccess */ ? function (expression, questionDotToken, name) { return setEmitFlags(createPropertyAccessChain(expression, questionDotToken, name), 262144 /* NoIndentation */); } : createPropertyAccessChain, - updatePropertyAccessChain: updatePropertyAccessChain, - createElementAccessExpression: createElementAccessExpression, - updateElementAccessExpression: updateElementAccessExpression, - createElementAccessChain: createElementAccessChain, - updateElementAccessChain: updateElementAccessChain, - createCallExpression: createCallExpression, - updateCallExpression: updateCallExpression, - createCallChain: createCallChain, - updateCallChain: updateCallChain, - createNewExpression: createNewExpression, - updateNewExpression: updateNewExpression, - createTaggedTemplateExpression: createTaggedTemplateExpression, - updateTaggedTemplateExpression: updateTaggedTemplateExpression, - createTypeAssertion: createTypeAssertion, - updateTypeAssertion: updateTypeAssertion, - createParenthesizedExpression: createParenthesizedExpression, - updateParenthesizedExpression: updateParenthesizedExpression, - createFunctionExpression: createFunctionExpression, - updateFunctionExpression: updateFunctionExpression, - createArrowFunction: createArrowFunction, - updateArrowFunction: updateArrowFunction, - createDeleteExpression: createDeleteExpression, - updateDeleteExpression: updateDeleteExpression, - createTypeOfExpression: createTypeOfExpression, - updateTypeOfExpression: updateTypeOfExpression, - createVoidExpression: createVoidExpression, - updateVoidExpression: updateVoidExpression, - createAwaitExpression: createAwaitExpression, - updateAwaitExpression: updateAwaitExpression, - createPrefixUnaryExpression: createPrefixUnaryExpression, - updatePrefixUnaryExpression: updatePrefixUnaryExpression, - createPostfixUnaryExpression: createPostfixUnaryExpression, - updatePostfixUnaryExpression: updatePostfixUnaryExpression, - createBinaryExpression: createBinaryExpression, - updateBinaryExpression: updateBinaryExpression, - createConditionalExpression: createConditionalExpression, - updateConditionalExpression: updateConditionalExpression, - createTemplateExpression: createTemplateExpression, - updateTemplateExpression: updateTemplateExpression, - createTemplateHead: createTemplateHead, - createTemplateMiddle: createTemplateMiddle, - createTemplateTail: createTemplateTail, - createNoSubstitutionTemplateLiteral: createNoSubstitutionTemplateLiteral, - createTemplateLiteralLikeNode: createTemplateLiteralLikeNode, - createYieldExpression: createYieldExpression, - updateYieldExpression: updateYieldExpression, - createSpreadElement: createSpreadElement, - updateSpreadElement: updateSpreadElement, - createClassExpression: createClassExpression, - updateClassExpression: updateClassExpression, - createOmittedExpression: createOmittedExpression, - createExpressionWithTypeArguments: createExpressionWithTypeArguments, - updateExpressionWithTypeArguments: updateExpressionWithTypeArguments, - createAsExpression: createAsExpression, - updateAsExpression: updateAsExpression, - createNonNullExpression: createNonNullExpression, - updateNonNullExpression: updateNonNullExpression, - createSatisfiesExpression: createSatisfiesExpression, - updateSatisfiesExpression: updateSatisfiesExpression, - createNonNullChain: createNonNullChain, - updateNonNullChain: updateNonNullChain, - createMetaProperty: createMetaProperty, - updateMetaProperty: updateMetaProperty, - createTemplateSpan: createTemplateSpan, - updateTemplateSpan: updateTemplateSpan, - createSemicolonClassElement: createSemicolonClassElement, - createBlock: createBlock, - updateBlock: updateBlock, - createVariableStatement: createVariableStatement, - updateVariableStatement: updateVariableStatement, - createEmptyStatement: createEmptyStatement, - createExpressionStatement: createExpressionStatement, - updateExpressionStatement: updateExpressionStatement, - createIfStatement: createIfStatement, - updateIfStatement: updateIfStatement, - createDoStatement: createDoStatement, - updateDoStatement: updateDoStatement, - createWhileStatement: createWhileStatement, - updateWhileStatement: updateWhileStatement, - createForStatement: createForStatement, - updateForStatement: updateForStatement, - createForInStatement: createForInStatement, - updateForInStatement: updateForInStatement, - createForOfStatement: createForOfStatement, - updateForOfStatement: updateForOfStatement, - createContinueStatement: createContinueStatement, - updateContinueStatement: updateContinueStatement, - createBreakStatement: createBreakStatement, - updateBreakStatement: updateBreakStatement, - createReturnStatement: createReturnStatement, - updateReturnStatement: updateReturnStatement, - createWithStatement: createWithStatement, - updateWithStatement: updateWithStatement, - createSwitchStatement: createSwitchStatement, - updateSwitchStatement: updateSwitchStatement, - createLabeledStatement: createLabeledStatement, - updateLabeledStatement: updateLabeledStatement, - createThrowStatement: createThrowStatement, - updateThrowStatement: updateThrowStatement, - createTryStatement: createTryStatement, - updateTryStatement: updateTryStatement, - createDebuggerStatement: createDebuggerStatement, - createVariableDeclaration: createVariableDeclaration, - updateVariableDeclaration: updateVariableDeclaration, - createVariableDeclarationList: createVariableDeclarationList, - updateVariableDeclarationList: updateVariableDeclarationList, - createFunctionDeclaration: createFunctionDeclaration, - updateFunctionDeclaration: updateFunctionDeclaration, - createClassDeclaration: createClassDeclaration, - updateClassDeclaration: updateClassDeclaration, - createInterfaceDeclaration: createInterfaceDeclaration, - updateInterfaceDeclaration: updateInterfaceDeclaration, - createTypeAliasDeclaration: createTypeAliasDeclaration, - updateTypeAliasDeclaration: updateTypeAliasDeclaration, - createEnumDeclaration: createEnumDeclaration, - updateEnumDeclaration: updateEnumDeclaration, - createModuleDeclaration: createModuleDeclaration, - updateModuleDeclaration: updateModuleDeclaration, - createModuleBlock: createModuleBlock, - updateModuleBlock: updateModuleBlock, - createCaseBlock: createCaseBlock, - updateCaseBlock: updateCaseBlock, - createNamespaceExportDeclaration: createNamespaceExportDeclaration, - updateNamespaceExportDeclaration: updateNamespaceExportDeclaration, - createImportEqualsDeclaration: createImportEqualsDeclaration, - updateImportEqualsDeclaration: updateImportEqualsDeclaration, - createImportDeclaration: createImportDeclaration, - updateImportDeclaration: updateImportDeclaration, - createImportClause: createImportClause, - updateImportClause: updateImportClause, - createAssertClause: createAssertClause, - updateAssertClause: updateAssertClause, - createAssertEntry: createAssertEntry, - updateAssertEntry: updateAssertEntry, - createImportTypeAssertionContainer: createImportTypeAssertionContainer, - updateImportTypeAssertionContainer: updateImportTypeAssertionContainer, - createNamespaceImport: createNamespaceImport, - updateNamespaceImport: updateNamespaceImport, - createNamespaceExport: createNamespaceExport, - updateNamespaceExport: updateNamespaceExport, - createNamedImports: createNamedImports, - updateNamedImports: updateNamedImports, - createImportSpecifier: createImportSpecifier, - updateImportSpecifier: updateImportSpecifier, - createExportAssignment: createExportAssignment2, - updateExportAssignment: updateExportAssignment, - createExportDeclaration: createExportDeclaration, - updateExportDeclaration: updateExportDeclaration, - createNamedExports: createNamedExports, - updateNamedExports: updateNamedExports, - createExportSpecifier: createExportSpecifier, - updateExportSpecifier: updateExportSpecifier, - createMissingDeclaration: createMissingDeclaration, - createExternalModuleReference: createExternalModuleReference, - updateExternalModuleReference: updateExternalModuleReference, - // lazily load factory members for JSDoc types with similar structure - get createJSDocAllType() { - return getJSDocPrimaryTypeCreateFunction(319 /* JSDocAllType */); - }, - get createJSDocUnknownType() { - return getJSDocPrimaryTypeCreateFunction(320 /* JSDocUnknownType */); - }, - get createJSDocNonNullableType() { - return getJSDocPrePostfixUnaryTypeCreateFunction(322 /* JSDocNonNullableType */); - }, - get updateJSDocNonNullableType() { - return getJSDocPrePostfixUnaryTypeUpdateFunction(322 /* JSDocNonNullableType */); - }, - get createJSDocNullableType() { - return getJSDocPrePostfixUnaryTypeCreateFunction(321 /* JSDocNullableType */); - }, - get updateJSDocNullableType() { - return getJSDocPrePostfixUnaryTypeUpdateFunction(321 /* JSDocNullableType */); - }, - get createJSDocOptionalType() { - return getJSDocUnaryTypeCreateFunction(323 /* JSDocOptionalType */); - }, - get updateJSDocOptionalType() { - return getJSDocUnaryTypeUpdateFunction(323 /* JSDocOptionalType */); - }, - get createJSDocVariadicType() { - return getJSDocUnaryTypeCreateFunction(325 /* JSDocVariadicType */); - }, - get updateJSDocVariadicType() { - return getJSDocUnaryTypeUpdateFunction(325 /* JSDocVariadicType */); - }, - get createJSDocNamepathType() { - return getJSDocUnaryTypeCreateFunction(326 /* JSDocNamepathType */); - }, - get updateJSDocNamepathType() { - return getJSDocUnaryTypeUpdateFunction(326 /* JSDocNamepathType */); - }, - createJSDocFunctionType: createJSDocFunctionType, - updateJSDocFunctionType: updateJSDocFunctionType, - createJSDocTypeLiteral: createJSDocTypeLiteral, - updateJSDocTypeLiteral: updateJSDocTypeLiteral, - createJSDocTypeExpression: createJSDocTypeExpression, - updateJSDocTypeExpression: updateJSDocTypeExpression, - createJSDocSignature: createJSDocSignature, - updateJSDocSignature: updateJSDocSignature, - createJSDocTemplateTag: createJSDocTemplateTag, - updateJSDocTemplateTag: updateJSDocTemplateTag, - createJSDocTypedefTag: createJSDocTypedefTag, - updateJSDocTypedefTag: updateJSDocTypedefTag, - createJSDocParameterTag: createJSDocParameterTag, - updateJSDocParameterTag: updateJSDocParameterTag, - createJSDocPropertyTag: createJSDocPropertyTag, - updateJSDocPropertyTag: updateJSDocPropertyTag, - createJSDocCallbackTag: createJSDocCallbackTag, - updateJSDocCallbackTag: updateJSDocCallbackTag, - createJSDocOverloadTag: createJSDocOverloadTag, - updateJSDocOverloadTag: updateJSDocOverloadTag, - createJSDocAugmentsTag: createJSDocAugmentsTag, - updateJSDocAugmentsTag: updateJSDocAugmentsTag, - createJSDocImplementsTag: createJSDocImplementsTag, - updateJSDocImplementsTag: updateJSDocImplementsTag, - createJSDocSeeTag: createJSDocSeeTag, - updateJSDocSeeTag: updateJSDocSeeTag, - createJSDocNameReference: createJSDocNameReference, - updateJSDocNameReference: updateJSDocNameReference, - createJSDocMemberName: createJSDocMemberName, - updateJSDocMemberName: updateJSDocMemberName, - createJSDocLink: createJSDocLink, - updateJSDocLink: updateJSDocLink, - createJSDocLinkCode: createJSDocLinkCode, - updateJSDocLinkCode: updateJSDocLinkCode, - createJSDocLinkPlain: createJSDocLinkPlain, - updateJSDocLinkPlain: updateJSDocLinkPlain, - // lazily load factory members for JSDoc tags with similar structure - get createJSDocTypeTag() { - return getJSDocTypeLikeTagCreateFunction(351 /* JSDocTypeTag */); - }, - get updateJSDocTypeTag() { - return getJSDocTypeLikeTagUpdateFunction(351 /* JSDocTypeTag */); - }, - get createJSDocReturnTag() { - return getJSDocTypeLikeTagCreateFunction(349 /* JSDocReturnTag */); - }, - get updateJSDocReturnTag() { - return getJSDocTypeLikeTagUpdateFunction(349 /* JSDocReturnTag */); - }, - get createJSDocThisTag() { - return getJSDocTypeLikeTagCreateFunction(350 /* JSDocThisTag */); - }, - get updateJSDocThisTag() { - return getJSDocTypeLikeTagUpdateFunction(350 /* JSDocThisTag */); - }, - get createJSDocAuthorTag() { - return getJSDocSimpleTagCreateFunction(337 /* JSDocAuthorTag */); - }, - get updateJSDocAuthorTag() { - return getJSDocSimpleTagUpdateFunction(337 /* JSDocAuthorTag */); - }, - get createJSDocClassTag() { - return getJSDocSimpleTagCreateFunction(339 /* JSDocClassTag */); - }, - get updateJSDocClassTag() { - return getJSDocSimpleTagUpdateFunction(339 /* JSDocClassTag */); - }, - get createJSDocPublicTag() { - return getJSDocSimpleTagCreateFunction(340 /* JSDocPublicTag */); - }, - get updateJSDocPublicTag() { - return getJSDocSimpleTagUpdateFunction(340 /* JSDocPublicTag */); - }, - get createJSDocPrivateTag() { - return getJSDocSimpleTagCreateFunction(341 /* JSDocPrivateTag */); - }, - get updateJSDocPrivateTag() { - return getJSDocSimpleTagUpdateFunction(341 /* JSDocPrivateTag */); - }, - get createJSDocProtectedTag() { - return getJSDocSimpleTagCreateFunction(342 /* JSDocProtectedTag */); - }, - get updateJSDocProtectedTag() { - return getJSDocSimpleTagUpdateFunction(342 /* JSDocProtectedTag */); - }, - get createJSDocReadonlyTag() { - return getJSDocSimpleTagCreateFunction(343 /* JSDocReadonlyTag */); - }, - get updateJSDocReadonlyTag() { - return getJSDocSimpleTagUpdateFunction(343 /* JSDocReadonlyTag */); - }, - get createJSDocOverrideTag() { - return getJSDocSimpleTagCreateFunction(344 /* JSDocOverrideTag */); - }, - get updateJSDocOverrideTag() { - return getJSDocSimpleTagUpdateFunction(344 /* JSDocOverrideTag */); - }, - get createJSDocDeprecatedTag() { - return getJSDocSimpleTagCreateFunction(338 /* JSDocDeprecatedTag */); - }, - get updateJSDocDeprecatedTag() { - return getJSDocSimpleTagUpdateFunction(338 /* JSDocDeprecatedTag */); - }, - get createJSDocThrowsTag() { - return getJSDocTypeLikeTagCreateFunction(356 /* JSDocThrowsTag */); - }, - get updateJSDocThrowsTag() { - return getJSDocTypeLikeTagUpdateFunction(356 /* JSDocThrowsTag */); - }, - get createJSDocSatisfiesTag() { - return getJSDocTypeLikeTagCreateFunction(357 /* JSDocSatisfiesTag */); - }, - get updateJSDocSatisfiesTag() { - return getJSDocTypeLikeTagUpdateFunction(357 /* JSDocSatisfiesTag */); - }, - createJSDocEnumTag: createJSDocEnumTag, - updateJSDocEnumTag: updateJSDocEnumTag, - createJSDocUnknownTag: createJSDocUnknownTag, - updateJSDocUnknownTag: updateJSDocUnknownTag, - createJSDocText: createJSDocText, - updateJSDocText: updateJSDocText, - createJSDocComment: createJSDocComment, - updateJSDocComment: updateJSDocComment, - createJsxElement: createJsxElement, - updateJsxElement: updateJsxElement, - createJsxSelfClosingElement: createJsxSelfClosingElement, - updateJsxSelfClosingElement: updateJsxSelfClosingElement, - createJsxOpeningElement: createJsxOpeningElement, - updateJsxOpeningElement: updateJsxOpeningElement, - createJsxClosingElement: createJsxClosingElement, - updateJsxClosingElement: updateJsxClosingElement, - createJsxFragment: createJsxFragment, - createJsxText: createJsxText, - updateJsxText: updateJsxText, - createJsxOpeningFragment: createJsxOpeningFragment, - createJsxJsxClosingFragment: createJsxJsxClosingFragment, - updateJsxFragment: updateJsxFragment, - createJsxAttribute: createJsxAttribute, - updateJsxAttribute: updateJsxAttribute, - createJsxAttributes: createJsxAttributes, - updateJsxAttributes: updateJsxAttributes, - createJsxSpreadAttribute: createJsxSpreadAttribute, - updateJsxSpreadAttribute: updateJsxSpreadAttribute, - createJsxExpression: createJsxExpression, - updateJsxExpression: updateJsxExpression, - createJsxNamespacedName: createJsxNamespacedName, - updateJsxNamespacedName: updateJsxNamespacedName, - createCaseClause: createCaseClause, - updateCaseClause: updateCaseClause, - createDefaultClause: createDefaultClause, - updateDefaultClause: updateDefaultClause, - createHeritageClause: createHeritageClause, - updateHeritageClause: updateHeritageClause, - createCatchClause: createCatchClause, - updateCatchClause: updateCatchClause, - createPropertyAssignment: createPropertyAssignment, - updatePropertyAssignment: updatePropertyAssignment, - createShorthandPropertyAssignment: createShorthandPropertyAssignment, - updateShorthandPropertyAssignment: updateShorthandPropertyAssignment, - createSpreadAssignment: createSpreadAssignment, - updateSpreadAssignment: updateSpreadAssignment, - createEnumMember: createEnumMember, - updateEnumMember: updateEnumMember, - createSourceFile: createSourceFile2, - updateSourceFile: updateSourceFile2, - createRedirectedSourceFile: createRedirectedSourceFile, - createBundle: createBundle, - updateBundle: updateBundle, - createUnparsedSource: createUnparsedSource, - createUnparsedPrologue: createUnparsedPrologue, - createUnparsedPrepend: createUnparsedPrepend, - createUnparsedTextLike: createUnparsedTextLike, - createUnparsedSyntheticReference: createUnparsedSyntheticReference, - createInputFiles: createInputFiles2, - createSyntheticExpression: createSyntheticExpression, - createSyntaxList: createSyntaxList3, - createNotEmittedStatement: createNotEmittedStatement, - createPartiallyEmittedExpression: createPartiallyEmittedExpression, - updatePartiallyEmittedExpression: updatePartiallyEmittedExpression, - createCommaListExpression: createCommaListExpression, - updateCommaListExpression: updateCommaListExpression, - createSyntheticReferenceExpression: createSyntheticReferenceExpression, - updateSyntheticReferenceExpression: updateSyntheticReferenceExpression, - cloneNode: cloneNode, - // Lazily load factory methods for common operator factories and utilities - get createComma() { - return getBinaryCreateFunction(28 /* CommaToken */); - }, - get createAssignment() { - return getBinaryCreateFunction(64 /* EqualsToken */); - }, - get createLogicalOr() { - return getBinaryCreateFunction(57 /* BarBarToken */); - }, - get createLogicalAnd() { - return getBinaryCreateFunction(56 /* AmpersandAmpersandToken */); - }, - get createBitwiseOr() { - return getBinaryCreateFunction(52 /* BarToken */); - }, - get createBitwiseXor() { - return getBinaryCreateFunction(53 /* CaretToken */); - }, - get createBitwiseAnd() { - return getBinaryCreateFunction(51 /* AmpersandToken */); - }, - get createStrictEquality() { - return getBinaryCreateFunction(37 /* EqualsEqualsEqualsToken */); - }, - get createStrictInequality() { - return getBinaryCreateFunction(38 /* ExclamationEqualsEqualsToken */); - }, - get createEquality() { - return getBinaryCreateFunction(35 /* EqualsEqualsToken */); - }, - get createInequality() { - return getBinaryCreateFunction(36 /* ExclamationEqualsToken */); - }, - get createLessThan() { - return getBinaryCreateFunction(30 /* LessThanToken */); - }, - get createLessThanEquals() { - return getBinaryCreateFunction(33 /* LessThanEqualsToken */); - }, - get createGreaterThan() { - return getBinaryCreateFunction(32 /* GreaterThanToken */); - }, - get createGreaterThanEquals() { - return getBinaryCreateFunction(34 /* GreaterThanEqualsToken */); - }, - get createLeftShift() { - return getBinaryCreateFunction(48 /* LessThanLessThanToken */); - }, - get createRightShift() { - return getBinaryCreateFunction(49 /* GreaterThanGreaterThanToken */); - }, - get createUnsignedRightShift() { - return getBinaryCreateFunction(50 /* GreaterThanGreaterThanGreaterThanToken */); - }, - get createAdd() { - return getBinaryCreateFunction(40 /* PlusToken */); - }, - get createSubtract() { - return getBinaryCreateFunction(41 /* MinusToken */); - }, - get createMultiply() { - return getBinaryCreateFunction(42 /* AsteriskToken */); - }, - get createDivide() { - return getBinaryCreateFunction(44 /* SlashToken */); - }, - get createModulo() { - return getBinaryCreateFunction(45 /* PercentToken */); - }, - get createExponent() { - return getBinaryCreateFunction(43 /* AsteriskAsteriskToken */); - }, - get createPrefixPlus() { - return getPrefixUnaryCreateFunction(40 /* PlusToken */); - }, - get createPrefixMinus() { - return getPrefixUnaryCreateFunction(41 /* MinusToken */); - }, - get createPrefixIncrement() { - return getPrefixUnaryCreateFunction(46 /* PlusPlusToken */); - }, - get createPrefixDecrement() { - return getPrefixUnaryCreateFunction(47 /* MinusMinusToken */); - }, - get createBitwiseNot() { - return getPrefixUnaryCreateFunction(55 /* TildeToken */); - }, - get createLogicalNot() { - return getPrefixUnaryCreateFunction(54 /* ExclamationToken */); - }, - get createPostfixIncrement() { - return getPostfixUnaryCreateFunction(46 /* PlusPlusToken */); - }, - get createPostfixDecrement() { - return getPostfixUnaryCreateFunction(47 /* MinusMinusToken */); - }, - // Compound nodes - createImmediatelyInvokedFunctionExpression: createImmediatelyInvokedFunctionExpression, - createImmediatelyInvokedArrowFunction: createImmediatelyInvokedArrowFunction, - createVoidZero: createVoidZero, - createExportDefault: createExportDefault, - createExternalModuleExport: createExternalModuleExport, - createTypeCheck: createTypeCheck, - createIsNotTypeCheck: createIsNotTypeCheck, - createMethodCall: createMethodCall, - createGlobalMethodCall: createGlobalMethodCall, - createFunctionBindCall: createFunctionBindCall, - createFunctionCallCall: createFunctionCallCall, - createFunctionApplyCall: createFunctionApplyCall, - createArraySliceCall: createArraySliceCall, - createArrayConcatCall: createArrayConcatCall, - createObjectDefinePropertyCall: createObjectDefinePropertyCall, - createObjectGetOwnPropertyDescriptorCall: createObjectGetOwnPropertyDescriptorCall, - createReflectGetCall: createReflectGetCall, - createReflectSetCall: createReflectSetCall, - createPropertyDescriptor: createPropertyDescriptor, - createCallBinding: createCallBinding, - createAssignmentTargetWrapper: createAssignmentTargetWrapper, - // Utilities - inlineExpressions: inlineExpressions, - getInternalName: getInternalName, - getLocalName: getLocalName, - getExportName: getExportName, - getDeclarationName: getDeclarationName, - getNamespaceMemberName: getNamespaceMemberName, - getExternalModuleOrNamespaceExportName: getExternalModuleOrNamespaceExportName, - restoreOuterExpressions: restoreOuterExpressions, - restoreEnclosingLabel: restoreEnclosingLabel, - createUseStrictPrologue: createUseStrictPrologue, - copyPrologue: copyPrologue, - copyStandardPrologue: copyStandardPrologue, - copyCustomPrologue: copyCustomPrologue, - ensureUseStrict: ensureUseStrict, - liftToBlock: liftToBlock, - mergeLexicalEnvironment: mergeLexicalEnvironment, - updateModifiers: updateModifiers, - updateModifierLike: updateModifierLike - }; - forEach(nodeFactoryPatchers, function (fn) { return fn(factory2); }); - return factory2; - function createNodeArray(elements, hasTrailingComma) { - if (elements === void 0 || elements === emptyArray) { - elements = []; - } - else if (isNodeArray(elements)) { - if (hasTrailingComma === void 0 || elements.hasTrailingComma === hasTrailingComma) { - if (elements.transformFlags === void 0) { - aggregateChildrenFlags(elements); - } - Debug.attachNodeArrayDebugInfo(elements); - return elements; - } - var array2 = elements.slice(); - array2.pos = elements.pos; - array2.end = elements.end; - array2.hasTrailingComma = hasTrailingComma; - array2.transformFlags = elements.transformFlags; - Debug.attachNodeArrayDebugInfo(array2); - return array2; - } - var length2 = elements.length; - var array = length2 >= 1 && length2 <= 4 ? elements.slice() : elements; - array.pos = -1; - array.end = -1; - array.hasTrailingComma = !!hasTrailingComma; - array.transformFlags = 0 /* None */; - aggregateChildrenFlags(array); - Debug.attachNodeArrayDebugInfo(array); - return array; - } - function createBaseNode(kind) { - return baseFactory2.createBaseNode(kind); - } - function createBaseDeclaration(kind) { - var node = createBaseNode(kind); - node.symbol = void 0; - node.localSymbol = void 0; - return node; - } - function finishUpdateBaseSignatureDeclaration(updated, original) { - if (updated !== original) { - updated.typeArguments = original.typeArguments; - } - return update(updated, original); - } - function createNumericLiteral(value, numericLiteralFlags /* None */) { - if (numericLiteralFlags === void 0) { numericLiteralFlags = 0; } - var node = createBaseDeclaration(9 /* NumericLiteral */); - node.text = typeof value === "number" ? value + "" : value; - node.numericLiteralFlags = numericLiteralFlags; - if (numericLiteralFlags & 384 /* BinaryOrOctalSpecifier */) - node.transformFlags |= 1024 /* ContainsES2015 */; - return node; - } - function createBigIntLiteral(value) { - var node = createBaseToken(10 /* BigIntLiteral */); - node.text = typeof value === "string" ? value : pseudoBigIntToString(value) + "n"; - node.transformFlags |= 32 /* ContainsES2020 */; - return node; - } - function createBaseStringLiteral(text, isSingleQuote) { - var node = createBaseDeclaration(11 /* StringLiteral */); - node.text = text; - node.singleQuote = isSingleQuote; - return node; - } - function createStringLiteral(text, isSingleQuote, hasExtendedUnicodeEscape) { - var node = createBaseStringLiteral(text, isSingleQuote); - node.hasExtendedUnicodeEscape = hasExtendedUnicodeEscape; - if (hasExtendedUnicodeEscape) - node.transformFlags |= 1024 /* ContainsES2015 */; - return node; - } - function createStringLiteralFromNode(sourceNode) { - var node = createBaseStringLiteral(getTextOfIdentifierOrLiteral(sourceNode), - /*isSingleQuote*/ - void 0); - node.textSourceNode = sourceNode; - return node; - } - function createRegularExpressionLiteral(text) { - var node = createBaseToken(14 /* RegularExpressionLiteral */); - node.text = text; - return node; - } - function createLiteralLikeNode(kind, text) { - switch (kind) { - case 9 /* NumericLiteral */: - return createNumericLiteral(text, - /*numericLiteralFlags*/ - 0); - case 10 /* BigIntLiteral */: - return createBigIntLiteral(text); - case 11 /* StringLiteral */: - return createStringLiteral(text, - /*isSingleQuote*/ - void 0); - case 12 /* JsxText */: - return createJsxText(text, - /*containsOnlyTriviaWhiteSpaces*/ - false); - case 13 /* JsxTextAllWhiteSpaces */: - return createJsxText(text, - /*containsOnlyTriviaWhiteSpaces*/ - true); - case 14 /* RegularExpressionLiteral */: - return createRegularExpressionLiteral(text); - case 15 /* NoSubstitutionTemplateLiteral */: - return createTemplateLiteralLikeNode(kind, text, - /*rawText*/ - void 0, - /*templateFlags*/ - 0); - } - } - function createBaseIdentifier(escapedText) { - var node = baseFactory2.createBaseIdentifierNode(80 /* Identifier */); - node.escapedText = escapedText; - node.jsDoc = void 0; - node.flowNode = void 0; - node.symbol = void 0; - return node; - } - function createBaseGeneratedIdentifier(text, autoGenerateFlags, prefix, suffix) { - var node = createBaseIdentifier(escapeLeadingUnderscores(text)); - setIdentifierAutoGenerate(node, { - flags: autoGenerateFlags, - id: nextAutoGenerateId, - prefix: prefix, - suffix: suffix - }); - nextAutoGenerateId++; - return node; - } - function createIdentifier(text, originalKeywordKind, hasExtendedUnicodeEscape) { - if (originalKeywordKind === void 0 && text) { - originalKeywordKind = stringToToken(text); - } - if (originalKeywordKind === 80 /* Identifier */) { - originalKeywordKind = void 0; - } - var node = createBaseIdentifier(escapeLeadingUnderscores(text)); - if (hasExtendedUnicodeEscape) - node.flags |= 256 /* IdentifierHasExtendedUnicodeEscape */; - if (node.escapedText === "await") { - node.transformFlags |= 67108864 /* ContainsPossibleTopLevelAwait */; - } - if (node.flags & 256 /* IdentifierHasExtendedUnicodeEscape */) { - node.transformFlags |= 1024 /* ContainsES2015 */; - } - return node; - } - function createTempVariable(recordTempVariable, reservedInNestedScopes, prefix, suffix) { - var flags2 = 1 /* Auto */; - if (reservedInNestedScopes) - flags2 |= 8 /* ReservedInNestedScopes */; - var name = createBaseGeneratedIdentifier("", flags2, prefix, suffix); - if (recordTempVariable) { - recordTempVariable(name); - } - return name; - } - function createLoopVariable(reservedInNestedScopes) { - var flags2 = 2 /* Loop */; - if (reservedInNestedScopes) - flags2 |= 8 /* ReservedInNestedScopes */; - return createBaseGeneratedIdentifier("", flags2, - /*prefix*/ - void 0, - /*suffix*/ - void 0); - } - function createUniqueName(text, flags2 /* None */, prefix, suffix) { - if (flags2 === void 0) { flags2 = 0; } - Debug.assert(!(flags2 & 7 /* KindMask */), "Argument out of range: flags"); - Debug.assert((flags2 & (16 /* Optimistic */ | 32 /* FileLevel */)) !== 32 /* FileLevel */, "GeneratedIdentifierFlags.FileLevel cannot be set without also setting GeneratedIdentifierFlags.Optimistic"); - return createBaseGeneratedIdentifier(text, 3 /* Unique */ | flags2, prefix, suffix); - } - function getGeneratedNameForNode(node, flags2, prefix, suffix) { - if (flags2 === void 0) { flags2 = 0; } - Debug.assert(!(flags2 & 7 /* KindMask */), "Argument out of range: flags"); - var text = !node ? "" : isMemberName(node) ? formatGeneratedName( - /*privateName*/ - false, prefix, node, suffix, idText) : "generated@".concat(getNodeId(node)); - if (prefix || suffix) - flags2 |= 16 /* Optimistic */; - var name = createBaseGeneratedIdentifier(text, 4 /* Node */ | flags2, prefix, suffix); - name.original = node; - return name; - } - function createBasePrivateIdentifier(escapedText) { - var node = baseFactory2.createBasePrivateIdentifierNode(81 /* PrivateIdentifier */); - node.escapedText = escapedText; - node.transformFlags |= 16777216 /* ContainsClassFields */; - return node; - } - function createPrivateIdentifier(text) { - if (!startsWith(text, "#")) - Debug.fail("First character of private identifier must be #: " + text); - return createBasePrivateIdentifier(escapeLeadingUnderscores(text)); - } - function createBaseGeneratedPrivateIdentifier(text, autoGenerateFlags, prefix, suffix) { - var node = createBasePrivateIdentifier(escapeLeadingUnderscores(text)); - setIdentifierAutoGenerate(node, { - flags: autoGenerateFlags, - id: nextAutoGenerateId, - prefix: prefix, - suffix: suffix - }); - nextAutoGenerateId++; - return node; - } - function createUniquePrivateName(text, prefix, suffix) { - if (text && !startsWith(text, "#")) - Debug.fail("First character of private identifier must be #: " + text); - var autoGenerateFlags = 8 /* ReservedInNestedScopes */ | (text ? 3 /* Unique */ : 1 /* Auto */); - return createBaseGeneratedPrivateIdentifier(text !== null && text !== void 0 ? text : "", autoGenerateFlags, prefix, suffix); - } - function getGeneratedPrivateNameForNode(node, prefix, suffix) { - var text = isMemberName(node) ? formatGeneratedName( - /*privateName*/ - true, prefix, node, suffix, idText) : "#generated@".concat(getNodeId(node)); - var flags2 = prefix || suffix ? 16 /* Optimistic */ : 0 /* None */; - var name = createBaseGeneratedPrivateIdentifier(text, 4 /* Node */ | flags2, prefix, suffix); - name.original = node; - return name; - } - function createBaseToken(kind) { - return baseFactory2.createBaseTokenNode(kind); - } - function createToken(token) { - Debug.assert(token >= 0 /* FirstToken */ && token <= 165 /* LastToken */, "Invalid token"); - Debug.assert(token <= 15 /* FirstTemplateToken */ || token >= 18 /* LastTemplateToken */, "Invalid token. Use 'createTemplateLiteralLikeNode' to create template literals."); - Debug.assert(token <= 9 /* FirstLiteralToken */ || token >= 15 /* LastLiteralToken */, "Invalid token. Use 'createLiteralLikeNode' to create literals."); - Debug.assert(token !== 80 /* Identifier */, "Invalid token. Use 'createIdentifier' to create identifiers"); - var node = createBaseToken(token); - var transformFlags = 0 /* None */; - switch (token) { - case 134 /* AsyncKeyword */: - transformFlags = 256 /* ContainsES2017 */ | 128 /* ContainsES2018 */; - break; - case 160 /* UsingKeyword */: - transformFlags = 4 /* ContainsESNext */; - break; - case 125 /* PublicKeyword */: - case 123 /* PrivateKeyword */: - case 124 /* ProtectedKeyword */: - case 148 /* ReadonlyKeyword */: - case 128 /* AbstractKeyword */: - case 138 /* DeclareKeyword */: - case 87 /* ConstKeyword */: - case 133 /* AnyKeyword */: - case 150 /* NumberKeyword */: - case 163 /* BigIntKeyword */: - case 146 /* NeverKeyword */: - case 151 /* ObjectKeyword */: - case 103 /* InKeyword */: - case 147 /* OutKeyword */: - case 164 /* OverrideKeyword */: - case 154 /* StringKeyword */: - case 136 /* BooleanKeyword */: - case 155 /* SymbolKeyword */: - case 116 /* VoidKeyword */: - case 159 /* UnknownKeyword */: - case 157 /* UndefinedKeyword */: - transformFlags = 1 /* ContainsTypeScript */; - break; - case 108 /* SuperKeyword */: - transformFlags = 1024 /* ContainsES2015 */ | 134217728 /* ContainsLexicalSuper */; - node.flowNode = void 0; - break; - case 126 /* StaticKeyword */: - transformFlags = 1024 /* ContainsES2015 */; - break; - case 129 /* AccessorKeyword */: - transformFlags = 16777216 /* ContainsClassFields */; - break; - case 110 /* ThisKeyword */: - transformFlags = 16384 /* ContainsLexicalThis */; - node.flowNode = void 0; - break; - } - if (transformFlags) { - node.transformFlags |= transformFlags; - } - return node; - } - function createSuper() { - return createToken(108 /* SuperKeyword */); - } - function createThis() { - return createToken(110 /* ThisKeyword */); - } - function createNull() { - return createToken(106 /* NullKeyword */); - } - function createTrue() { - return createToken(112 /* TrueKeyword */); - } - function createFalse() { - return createToken(97 /* FalseKeyword */); - } - function createModifier(kind) { - return createToken(kind); - } - function createModifiersFromModifierFlags(flags2) { - var result = []; - if (flags2 & 1 /* Export */) - result.push(createModifier(95 /* ExportKeyword */)); - if (flags2 & 2 /* Ambient */) - result.push(createModifier(138 /* DeclareKeyword */)); - if (flags2 & 1024 /* Default */) - result.push(createModifier(90 /* DefaultKeyword */)); - if (flags2 & 2048 /* Const */) - result.push(createModifier(87 /* ConstKeyword */)); - if (flags2 & 4 /* Public */) - result.push(createModifier(125 /* PublicKeyword */)); - if (flags2 & 8 /* Private */) - result.push(createModifier(123 /* PrivateKeyword */)); - if (flags2 & 16 /* Protected */) - result.push(createModifier(124 /* ProtectedKeyword */)); - if (flags2 & 256 /* Abstract */) - result.push(createModifier(128 /* AbstractKeyword */)); - if (flags2 & 32 /* Static */) - result.push(createModifier(126 /* StaticKeyword */)); - if (flags2 & 16384 /* Override */) - result.push(createModifier(164 /* OverrideKeyword */)); - if (flags2 & 64 /* Readonly */) - result.push(createModifier(148 /* ReadonlyKeyword */)); - if (flags2 & 128 /* Accessor */) - result.push(createModifier(129 /* AccessorKeyword */)); - if (flags2 & 512 /* Async */) - result.push(createModifier(134 /* AsyncKeyword */)); - if (flags2 & 32768 /* In */) - result.push(createModifier(103 /* InKeyword */)); - if (flags2 & 65536 /* Out */) - result.push(createModifier(147 /* OutKeyword */)); - return result.length ? result : void 0; - } - function createQualifiedName(left, right) { - var node = createBaseNode(166 /* QualifiedName */); - node.left = left; - node.right = asName(right); - node.transformFlags |= propagateChildFlags(node.left) | propagateIdentifierNameFlags(node.right); - node.flowNode = void 0; - return node; - } - function updateQualifiedName(node, left, right) { - return node.left !== left || node.right !== right ? update(createQualifiedName(left, right), node) : node; - } - function createComputedPropertyName(expression) { - var node = createBaseNode(167 /* ComputedPropertyName */); - node.expression = parenthesizerRules().parenthesizeExpressionOfComputedPropertyName(expression); - node.transformFlags |= propagateChildFlags(node.expression) | 1024 /* ContainsES2015 */ | 131072 /* ContainsComputedPropertyName */; - return node; - } - function updateComputedPropertyName(node, expression) { - return node.expression !== expression ? update(createComputedPropertyName(expression), node) : node; - } - function createTypeParameterDeclaration(modifiers, name, constraint, defaultType) { - var node = createBaseDeclaration(168 /* TypeParameter */); - node.modifiers = asNodeArray(modifiers); - node.name = asName(name); - node.constraint = constraint; - node.default = defaultType; - node.transformFlags = 1 /* ContainsTypeScript */; - node.expression = void 0; - node.jsDoc = void 0; - return node; - } - function updateTypeParameterDeclaration(node, modifiers, name, constraint, defaultType) { - return node.modifiers !== modifiers || node.name !== name || node.constraint !== constraint || node.default !== defaultType ? update(createTypeParameterDeclaration(modifiers, name, constraint, defaultType), node) : node; - } - function createParameterDeclaration(modifiers, dotDotDotToken, name, questionToken, type, initializer) { - var _t, _u; - var node = createBaseDeclaration(169 /* Parameter */); - node.modifiers = asNodeArray(modifiers); - node.dotDotDotToken = dotDotDotToken; - node.name = asName(name); - node.questionToken = questionToken; - node.type = type; - node.initializer = asInitializer(initializer); - if (isThisIdentifier(node.name)) { - node.transformFlags = 1 /* ContainsTypeScript */; - } - else { - node.transformFlags = propagateChildrenFlags(node.modifiers) | propagateChildFlags(node.dotDotDotToken) | propagateNameFlags(node.name) | propagateChildFlags(node.questionToken) | propagateChildFlags(node.initializer) | (((_t = node.questionToken) !== null && _t !== void 0 ? _t : node.type) ? 1 /* ContainsTypeScript */ : 0 /* None */) | (((_u = node.dotDotDotToken) !== null && _u !== void 0 ? _u : node.initializer) ? 1024 /* ContainsES2015 */ : 0 /* None */) | (modifiersToFlags(node.modifiers) & 16476 /* ParameterPropertyModifier */ ? 8192 /* ContainsTypeScriptClassSyntax */ : 0 /* None */); - } - node.jsDoc = void 0; - return node; - } - function updateParameterDeclaration(node, modifiers, dotDotDotToken, name, questionToken, type, initializer) { - return node.modifiers !== modifiers || node.dotDotDotToken !== dotDotDotToken || node.name !== name || node.questionToken !== questionToken || node.type !== type || node.initializer !== initializer ? update(createParameterDeclaration(modifiers, dotDotDotToken, name, questionToken, type, initializer), node) : node; - } - function createDecorator(expression) { - var node = createBaseNode(170 /* Decorator */); - node.expression = parenthesizerRules().parenthesizeLeftSideOfAccess(expression, - /*optionalChain*/ - false); - node.transformFlags |= propagateChildFlags(node.expression) | 1 /* ContainsTypeScript */ | 8192 /* ContainsTypeScriptClassSyntax */ | 33554432 /* ContainsDecorators */; - return node; - } - function updateDecorator(node, expression) { - return node.expression !== expression ? update(createDecorator(expression), node) : node; - } - function createPropertySignature(modifiers, name, questionToken, type) { - var node = createBaseDeclaration(171 /* PropertySignature */); - node.modifiers = asNodeArray(modifiers); - node.name = asName(name); - node.type = type; - node.questionToken = questionToken; - node.transformFlags = 1 /* ContainsTypeScript */; - node.initializer = void 0; - node.jsDoc = void 0; - return node; - } - function updatePropertySignature(node, modifiers, name, questionToken, type) { - return node.modifiers !== modifiers || node.name !== name || node.questionToken !== questionToken || node.type !== type ? finishUpdatePropertySignature(createPropertySignature(modifiers, name, questionToken, type), node) : node; - } - function finishUpdatePropertySignature(updated, original) { - if (updated !== original) { - updated.initializer = original.initializer; - } - return update(updated, original); - } - function createPropertyDeclaration(modifiers, name, questionOrExclamationToken, type, initializer) { - var node = createBaseDeclaration(172 /* PropertyDeclaration */); - node.modifiers = asNodeArray(modifiers); - node.name = asName(name); - node.questionToken = questionOrExclamationToken && isQuestionToken(questionOrExclamationToken) ? questionOrExclamationToken : void 0; - node.exclamationToken = questionOrExclamationToken && isExclamationToken(questionOrExclamationToken) ? questionOrExclamationToken : void 0; - node.type = type; - node.initializer = asInitializer(initializer); - var isAmbient = node.flags & 33554432 /* Ambient */ || modifiersToFlags(node.modifiers) & 2 /* Ambient */; - node.transformFlags = propagateChildrenFlags(node.modifiers) | propagateNameFlags(node.name) | propagateChildFlags(node.initializer) | (isAmbient || node.questionToken || node.exclamationToken || node.type ? 1 /* ContainsTypeScript */ : 0 /* None */) | (isComputedPropertyName(node.name) || modifiersToFlags(node.modifiers) & 32 /* Static */ && node.initializer ? 8192 /* ContainsTypeScriptClassSyntax */ : 0 /* None */) | 16777216 /* ContainsClassFields */; - node.jsDoc = void 0; - return node; - } - function updatePropertyDeclaration2(node, modifiers, name, questionOrExclamationToken, type, initializer) { - return node.modifiers !== modifiers || node.name !== name || node.questionToken !== (questionOrExclamationToken !== void 0 && isQuestionToken(questionOrExclamationToken) ? questionOrExclamationToken : void 0) || node.exclamationToken !== (questionOrExclamationToken !== void 0 && isExclamationToken(questionOrExclamationToken) ? questionOrExclamationToken : void 0) || node.type !== type || node.initializer !== initializer ? update(createPropertyDeclaration(modifiers, name, questionOrExclamationToken, type, initializer), node) : node; - } - function createMethodSignature(modifiers, name, questionToken, typeParameters, parameters, type) { - var node = createBaseDeclaration(173 /* MethodSignature */); - node.modifiers = asNodeArray(modifiers); - node.name = asName(name); - node.questionToken = questionToken; - node.typeParameters = asNodeArray(typeParameters); - node.parameters = asNodeArray(parameters); - node.type = type; - node.transformFlags = 1 /* ContainsTypeScript */; - node.jsDoc = void 0; - node.locals = void 0; - node.nextContainer = void 0; - node.typeArguments = void 0; - return node; - } - function updateMethodSignature(node, modifiers, name, questionToken, typeParameters, parameters, type) { - return node.modifiers !== modifiers || node.name !== name || node.questionToken !== questionToken || node.typeParameters !== typeParameters || node.parameters !== parameters || node.type !== type ? finishUpdateBaseSignatureDeclaration(createMethodSignature(modifiers, name, questionToken, typeParameters, parameters, type), node) : node; - } - function createMethodDeclaration(modifiers, asteriskToken, name, questionToken, typeParameters, parameters, type, body) { - var node = createBaseDeclaration(174 /* MethodDeclaration */); - node.modifiers = asNodeArray(modifiers); - node.asteriskToken = asteriskToken; - node.name = asName(name); - node.questionToken = questionToken; - node.exclamationToken = void 0; - node.typeParameters = asNodeArray(typeParameters); - node.parameters = createNodeArray(parameters); - node.type = type; - node.body = body; - if (!node.body) { - node.transformFlags = 1 /* ContainsTypeScript */; - } - else { - var isAsync = modifiersToFlags(node.modifiers) & 512 /* Async */; - var isGenerator = !!node.asteriskToken; - var isAsyncGenerator = isAsync && isGenerator; - node.transformFlags = propagateChildrenFlags(node.modifiers) | propagateChildFlags(node.asteriskToken) | propagateNameFlags(node.name) | propagateChildFlags(node.questionToken) | propagateChildrenFlags(node.typeParameters) | propagateChildrenFlags(node.parameters) | propagateChildFlags(node.type) | propagateChildFlags(node.body) & ~67108864 /* ContainsPossibleTopLevelAwait */ | (isAsyncGenerator ? 128 /* ContainsES2018 */ : isAsync ? 256 /* ContainsES2017 */ : isGenerator ? 2048 /* ContainsGenerator */ : 0 /* None */) | (node.questionToken || node.typeParameters || node.type ? 1 /* ContainsTypeScript */ : 0 /* None */) | 1024 /* ContainsES2015 */; - } - node.typeArguments = void 0; - node.jsDoc = void 0; - node.locals = void 0; - node.nextContainer = void 0; - node.flowNode = void 0; - node.endFlowNode = void 0; - node.returnFlowNode = void 0; - return node; - } - function updateMethodDeclaration(node, modifiers, asteriskToken, name, questionToken, typeParameters, parameters, type, body) { - return node.modifiers !== modifiers || node.asteriskToken !== asteriskToken || node.name !== name || node.questionToken !== questionToken || node.typeParameters !== typeParameters || node.parameters !== parameters || node.type !== type || node.body !== body ? finishUpdateMethodDeclaration(createMethodDeclaration(modifiers, asteriskToken, name, questionToken, typeParameters, parameters, type, body), node) : node; - } - function finishUpdateMethodDeclaration(updated, original) { - if (updated !== original) { - updated.exclamationToken = original.exclamationToken; - } - return update(updated, original); - } - function createClassStaticBlockDeclaration(body) { - var node = createBaseDeclaration(175 /* ClassStaticBlockDeclaration */); - node.body = body; - node.transformFlags = propagateChildFlags(body) | 16777216 /* ContainsClassFields */; - node.modifiers = void 0; - node.jsDoc = void 0; - node.locals = void 0; - node.nextContainer = void 0; - node.endFlowNode = void 0; - node.returnFlowNode = void 0; - return node; - } - function updateClassStaticBlockDeclaration(node, body) { - return node.body !== body ? finishUpdateClassStaticBlockDeclaration(createClassStaticBlockDeclaration(body), node) : node; - } - function finishUpdateClassStaticBlockDeclaration(updated, original) { - if (updated !== original) { - updated.modifiers = original.modifiers; - } - return update(updated, original); - } - function createConstructorDeclaration(modifiers, parameters, body) { - var node = createBaseDeclaration(176 /* Constructor */); - node.modifiers = asNodeArray(modifiers); - node.parameters = createNodeArray(parameters); - node.body = body; - node.transformFlags = propagateChildrenFlags(node.modifiers) | propagateChildrenFlags(node.parameters) | propagateChildFlags(node.body) & ~67108864 /* ContainsPossibleTopLevelAwait */ | 1024 /* ContainsES2015 */; - node.typeParameters = void 0; - node.type = void 0; - node.typeArguments = void 0; - node.jsDoc = void 0; - node.locals = void 0; - node.nextContainer = void 0; - node.endFlowNode = void 0; - node.returnFlowNode = void 0; - return node; - } - function updateConstructorDeclaration(node, modifiers, parameters, body) { - return node.modifiers !== modifiers || node.parameters !== parameters || node.body !== body ? finishUpdateConstructorDeclaration(createConstructorDeclaration(modifiers, parameters, body), node) : node; - } - function finishUpdateConstructorDeclaration(updated, original) { - if (updated !== original) { - updated.typeParameters = original.typeParameters; - updated.type = original.type; - } - return finishUpdateBaseSignatureDeclaration(updated, original); - } - function createGetAccessorDeclaration(modifiers, name, parameters, type, body) { - var node = createBaseDeclaration(177 /* GetAccessor */); - node.modifiers = asNodeArray(modifiers); - node.name = asName(name); - node.parameters = createNodeArray(parameters); - node.type = type; - node.body = body; - if (!node.body) { - node.transformFlags = 1 /* ContainsTypeScript */; - } - else { - node.transformFlags = propagateChildrenFlags(node.modifiers) | propagateNameFlags(node.name) | propagateChildrenFlags(node.parameters) | propagateChildFlags(node.type) | propagateChildFlags(node.body) & ~67108864 /* ContainsPossibleTopLevelAwait */ | (node.type ? 1 /* ContainsTypeScript */ : 0 /* None */); - } - node.typeArguments = void 0; - node.typeParameters = void 0; - node.jsDoc = void 0; - node.locals = void 0; - node.nextContainer = void 0; - node.flowNode = void 0; - node.endFlowNode = void 0; - node.returnFlowNode = void 0; - return node; - } - function updateGetAccessorDeclaration(node, modifiers, name, parameters, type, body) { - return node.modifiers !== modifiers || node.name !== name || node.parameters !== parameters || node.type !== type || node.body !== body ? finishUpdateGetAccessorDeclaration(createGetAccessorDeclaration(modifiers, name, parameters, type, body), node) : node; - } - function finishUpdateGetAccessorDeclaration(updated, original) { - if (updated !== original) { - updated.typeParameters = original.typeParameters; - } - return finishUpdateBaseSignatureDeclaration(updated, original); - } - function createSetAccessorDeclaration(modifiers, name, parameters, body) { - var node = createBaseDeclaration(178 /* SetAccessor */); - node.modifiers = asNodeArray(modifiers); - node.name = asName(name); - node.parameters = createNodeArray(parameters); - node.body = body; - if (!node.body) { - node.transformFlags = 1 /* ContainsTypeScript */; - } - else { - node.transformFlags = propagateChildrenFlags(node.modifiers) | propagateNameFlags(node.name) | propagateChildrenFlags(node.parameters) | propagateChildFlags(node.body) & ~67108864 /* ContainsPossibleTopLevelAwait */ | (node.type ? 1 /* ContainsTypeScript */ : 0 /* None */); - } - node.typeArguments = void 0; - node.typeParameters = void 0; - node.type = void 0; - node.jsDoc = void 0; - node.locals = void 0; - node.nextContainer = void 0; - node.flowNode = void 0; - node.endFlowNode = void 0; - node.returnFlowNode = void 0; - return node; - } - function updateSetAccessorDeclaration(node, modifiers, name, parameters, body) { - return node.modifiers !== modifiers || node.name !== name || node.parameters !== parameters || node.body !== body ? finishUpdateSetAccessorDeclaration(createSetAccessorDeclaration(modifiers, name, parameters, body), node) : node; - } - function finishUpdateSetAccessorDeclaration(updated, original) { - if (updated !== original) { - updated.typeParameters = original.typeParameters; - updated.type = original.type; - } - return finishUpdateBaseSignatureDeclaration(updated, original); - } - function createCallSignature(typeParameters, parameters, type) { - var node = createBaseDeclaration(179 /* CallSignature */); - node.typeParameters = asNodeArray(typeParameters); - node.parameters = asNodeArray(parameters); - node.type = type; - node.transformFlags = 1 /* ContainsTypeScript */; - node.jsDoc = void 0; - node.locals = void 0; - node.nextContainer = void 0; - node.typeArguments = void 0; - return node; - } - function updateCallSignature(node, typeParameters, parameters, type) { - return node.typeParameters !== typeParameters || node.parameters !== parameters || node.type !== type ? finishUpdateBaseSignatureDeclaration(createCallSignature(typeParameters, parameters, type), node) : node; - } - function createConstructSignature(typeParameters, parameters, type) { - var node = createBaseDeclaration(180 /* ConstructSignature */); - node.typeParameters = asNodeArray(typeParameters); - node.parameters = asNodeArray(parameters); - node.type = type; - node.transformFlags = 1 /* ContainsTypeScript */; - node.jsDoc = void 0; - node.locals = void 0; - node.nextContainer = void 0; - node.typeArguments = void 0; - return node; - } - function updateConstructSignature(node, typeParameters, parameters, type) { - return node.typeParameters !== typeParameters || node.parameters !== parameters || node.type !== type ? finishUpdateBaseSignatureDeclaration(createConstructSignature(typeParameters, parameters, type), node) : node; - } - function createIndexSignature(modifiers, parameters, type) { - var node = createBaseDeclaration(181 /* IndexSignature */); - node.modifiers = asNodeArray(modifiers); - node.parameters = asNodeArray(parameters); - node.type = type; - node.transformFlags = 1 /* ContainsTypeScript */; - node.jsDoc = void 0; - node.locals = void 0; - node.nextContainer = void 0; - node.typeArguments = void 0; - return node; - } - function updateIndexSignature(node, modifiers, parameters, type) { - return node.parameters !== parameters || node.type !== type || node.modifiers !== modifiers ? finishUpdateBaseSignatureDeclaration(createIndexSignature(modifiers, parameters, type), node) : node; - } - function createTemplateLiteralTypeSpan(type, literal) { - var node = createBaseNode(204 /* TemplateLiteralTypeSpan */); - node.type = type; - node.literal = literal; - node.transformFlags = 1 /* ContainsTypeScript */; - return node; - } - function updateTemplateLiteralTypeSpan(node, type, literal) { - return node.type !== type || node.literal !== literal ? update(createTemplateLiteralTypeSpan(type, literal), node) : node; - } - function createKeywordTypeNode(kind) { - return createToken(kind); - } - function createTypePredicateNode(assertsModifier, parameterName, type) { - var node = createBaseNode(182 /* TypePredicate */); - node.assertsModifier = assertsModifier; - node.parameterName = asName(parameterName); - node.type = type; - node.transformFlags = 1 /* ContainsTypeScript */; - return node; - } - function updateTypePredicateNode(node, assertsModifier, parameterName, type) { - return node.assertsModifier !== assertsModifier || node.parameterName !== parameterName || node.type !== type ? update(createTypePredicateNode(assertsModifier, parameterName, type), node) : node; - } - function createTypeReferenceNode(typeName, typeArguments) { - var node = createBaseNode(183 /* TypeReference */); - node.typeName = asName(typeName); - node.typeArguments = typeArguments && parenthesizerRules().parenthesizeTypeArguments(createNodeArray(typeArguments)); - node.transformFlags = 1 /* ContainsTypeScript */; - return node; - } - function updateTypeReferenceNode(node, typeName, typeArguments) { - return node.typeName !== typeName || node.typeArguments !== typeArguments ? update(createTypeReferenceNode(typeName, typeArguments), node) : node; - } - function createFunctionTypeNode(typeParameters, parameters, type) { - var node = createBaseDeclaration(184 /* FunctionType */); - node.typeParameters = asNodeArray(typeParameters); - node.parameters = asNodeArray(parameters); - node.type = type; - node.transformFlags = 1 /* ContainsTypeScript */; - node.modifiers = void 0; - node.jsDoc = void 0; - node.locals = void 0; - node.nextContainer = void 0; - node.typeArguments = void 0; - return node; - } - function updateFunctionTypeNode(node, typeParameters, parameters, type) { - return node.typeParameters !== typeParameters || node.parameters !== parameters || node.type !== type ? finishUpdateFunctionTypeNode(createFunctionTypeNode(typeParameters, parameters, type), node) : node; - } - function finishUpdateFunctionTypeNode(updated, original) { - if (updated !== original) { - updated.modifiers = original.modifiers; - } - return finishUpdateBaseSignatureDeclaration(updated, original); - } - function createConstructorTypeNode() { - var args = []; - for (var _t = 0; _t < arguments.length; _t++) { - args[_t] = arguments[_t]; - } - return args.length === 4 ? createConstructorTypeNode1.apply(void 0, __spreadArray([], __read(args), false)) : args.length === 3 ? createConstructorTypeNode2.apply(void 0, __spreadArray([], __read(args), false)) : Debug.fail("Incorrect number of arguments specified."); - } - function createConstructorTypeNode1(modifiers, typeParameters, parameters, type) { - var node = createBaseDeclaration(185 /* ConstructorType */); - node.modifiers = asNodeArray(modifiers); - node.typeParameters = asNodeArray(typeParameters); - node.parameters = asNodeArray(parameters); - node.type = type; - node.transformFlags = 1 /* ContainsTypeScript */; - node.jsDoc = void 0; - node.locals = void 0; - node.nextContainer = void 0; - node.typeArguments = void 0; - return node; - } - function createConstructorTypeNode2(typeParameters, parameters, type) { - return createConstructorTypeNode1( - /*modifiers*/ - void 0, typeParameters, parameters, type); - } - function updateConstructorTypeNode() { - var args = []; - for (var _t = 0; _t < arguments.length; _t++) { - args[_t] = arguments[_t]; - } - return args.length === 5 ? updateConstructorTypeNode1.apply(void 0, __spreadArray([], __read(args), false)) : args.length === 4 ? updateConstructorTypeNode2.apply(void 0, __spreadArray([], __read(args), false)) : Debug.fail("Incorrect number of arguments specified."); - } - function updateConstructorTypeNode1(node, modifiers, typeParameters, parameters, type) { - return node.modifiers !== modifiers || node.typeParameters !== typeParameters || node.parameters !== parameters || node.type !== type ? finishUpdateBaseSignatureDeclaration(createConstructorTypeNode(modifiers, typeParameters, parameters, type), node) : node; - } - function updateConstructorTypeNode2(node, typeParameters, parameters, type) { - return updateConstructorTypeNode1(node, node.modifiers, typeParameters, parameters, type); - } - function createTypeQueryNode(exprName, typeArguments) { - var node = createBaseNode(186 /* TypeQuery */); - node.exprName = exprName; - node.typeArguments = typeArguments && parenthesizerRules().parenthesizeTypeArguments(typeArguments); - node.transformFlags = 1 /* ContainsTypeScript */; - return node; - } - function updateTypeQueryNode(node, exprName, typeArguments) { - return node.exprName !== exprName || node.typeArguments !== typeArguments ? update(createTypeQueryNode(exprName, typeArguments), node) : node; - } - function createTypeLiteralNode(members) { - var node = createBaseDeclaration(187 /* TypeLiteral */); - node.members = createNodeArray(members); - node.transformFlags = 1 /* ContainsTypeScript */; - return node; - } - function updateTypeLiteralNode(node, members) { - return node.members !== members ? update(createTypeLiteralNode(members), node) : node; - } - function createArrayTypeNode(elementType) { - var node = createBaseNode(188 /* ArrayType */); - node.elementType = parenthesizerRules().parenthesizeNonArrayTypeOfPostfixType(elementType); - node.transformFlags = 1 /* ContainsTypeScript */; - return node; - } - function updateArrayTypeNode(node, elementType) { - return node.elementType !== elementType ? update(createArrayTypeNode(elementType), node) : node; - } - function createTupleTypeNode(elements) { - var node = createBaseNode(189 /* TupleType */); - node.elements = createNodeArray(parenthesizerRules().parenthesizeElementTypesOfTupleType(elements)); - node.transformFlags = 1 /* ContainsTypeScript */; - return node; - } - function updateTupleTypeNode(node, elements) { - return node.elements !== elements ? update(createTupleTypeNode(elements), node) : node; - } - function createNamedTupleMember(dotDotDotToken, name, questionToken, type) { - var node = createBaseDeclaration(202 /* NamedTupleMember */); - node.dotDotDotToken = dotDotDotToken; - node.name = name; - node.questionToken = questionToken; - node.type = type; - node.transformFlags = 1 /* ContainsTypeScript */; - node.jsDoc = void 0; - return node; - } - function updateNamedTupleMember(node, dotDotDotToken, name, questionToken, type) { - return node.dotDotDotToken !== dotDotDotToken || node.name !== name || node.questionToken !== questionToken || node.type !== type ? update(createNamedTupleMember(dotDotDotToken, name, questionToken, type), node) : node; - } - function createOptionalTypeNode(type) { - var node = createBaseNode(190 /* OptionalType */); - node.type = parenthesizerRules().parenthesizeTypeOfOptionalType(type); - node.transformFlags = 1 /* ContainsTypeScript */; - return node; - } - function updateOptionalTypeNode(node, type) { - return node.type !== type ? update(createOptionalTypeNode(type), node) : node; - } - function createRestTypeNode(type) { - var node = createBaseNode(191 /* RestType */); - node.type = type; - node.transformFlags = 1 /* ContainsTypeScript */; - return node; - } - function updateRestTypeNode(node, type) { - return node.type !== type ? update(createRestTypeNode(type), node) : node; - } - function createUnionOrIntersectionTypeNode(kind, types, parenthesize) { - var node = createBaseNode(kind); - node.types = factory2.createNodeArray(parenthesize(types)); - node.transformFlags = 1 /* ContainsTypeScript */; - return node; - } - function updateUnionOrIntersectionTypeNode(node, types, parenthesize) { - return node.types !== types ? update(createUnionOrIntersectionTypeNode(node.kind, types, parenthesize), node) : node; - } - function createUnionTypeNode(types) { - return createUnionOrIntersectionTypeNode(192 /* UnionType */, types, parenthesizerRules().parenthesizeConstituentTypesOfUnionType); - } - function updateUnionTypeNode(node, types) { - return updateUnionOrIntersectionTypeNode(node, types, parenthesizerRules().parenthesizeConstituentTypesOfUnionType); - } - function createIntersectionTypeNode(types) { - return createUnionOrIntersectionTypeNode(193 /* IntersectionType */, types, parenthesizerRules().parenthesizeConstituentTypesOfIntersectionType); - } - function updateIntersectionTypeNode(node, types) { - return updateUnionOrIntersectionTypeNode(node, types, parenthesizerRules().parenthesizeConstituentTypesOfIntersectionType); - } - function createConditionalTypeNode(checkType, extendsType, trueType, falseType) { - var node = createBaseNode(194 /* ConditionalType */); - node.checkType = parenthesizerRules().parenthesizeCheckTypeOfConditionalType(checkType); - node.extendsType = parenthesizerRules().parenthesizeExtendsTypeOfConditionalType(extendsType); - node.trueType = trueType; - node.falseType = falseType; - node.transformFlags = 1 /* ContainsTypeScript */; - node.locals = void 0; - node.nextContainer = void 0; - return node; - } - function updateConditionalTypeNode(node, checkType, extendsType, trueType, falseType) { - return node.checkType !== checkType || node.extendsType !== extendsType || node.trueType !== trueType || node.falseType !== falseType ? update(createConditionalTypeNode(checkType, extendsType, trueType, falseType), node) : node; - } - function createInferTypeNode(typeParameter) { - var node = createBaseNode(195 /* InferType */); - node.typeParameter = typeParameter; - node.transformFlags = 1 /* ContainsTypeScript */; - return node; - } - function updateInferTypeNode(node, typeParameter) { - return node.typeParameter !== typeParameter ? update(createInferTypeNode(typeParameter), node) : node; - } - function createTemplateLiteralType(head, templateSpans) { - var node = createBaseNode(203 /* TemplateLiteralType */); - node.head = head; - node.templateSpans = createNodeArray(templateSpans); - node.transformFlags = 1 /* ContainsTypeScript */; - return node; - } - function updateTemplateLiteralType(node, head, templateSpans) { - return node.head !== head || node.templateSpans !== templateSpans ? update(createTemplateLiteralType(head, templateSpans), node) : node; - } - function createImportTypeNode(argument, assertions, qualifier, typeArguments, isTypeOf) { - if (isTypeOf === void 0) { isTypeOf = false; } - var node = createBaseNode(205 /* ImportType */); - node.argument = argument; - node.assertions = assertions; - node.qualifier = qualifier; - node.typeArguments = typeArguments && parenthesizerRules().parenthesizeTypeArguments(typeArguments); - node.isTypeOf = isTypeOf; - node.transformFlags = 1 /* ContainsTypeScript */; - return node; - } - function updateImportTypeNode(node, argument, assertions, qualifier, typeArguments, isTypeOf) { - if (isTypeOf === void 0) { isTypeOf = node.isTypeOf; } - return node.argument !== argument || node.assertions !== assertions || node.qualifier !== qualifier || node.typeArguments !== typeArguments || node.isTypeOf !== isTypeOf ? update(createImportTypeNode(argument, assertions, qualifier, typeArguments, isTypeOf), node) : node; - } - function createParenthesizedType(type) { - var node = createBaseNode(196 /* ParenthesizedType */); - node.type = type; - node.transformFlags = 1 /* ContainsTypeScript */; - return node; - } - function updateParenthesizedType(node, type) { - return node.type !== type ? update(createParenthesizedType(type), node) : node; - } - function createThisTypeNode() { - var node = createBaseNode(197 /* ThisType */); - node.transformFlags = 1 /* ContainsTypeScript */; - return node; - } - function createTypeOperatorNode(operator, type) { - var node = createBaseNode(198 /* TypeOperator */); - node.operator = operator; - node.type = operator === 148 /* ReadonlyKeyword */ ? parenthesizerRules().parenthesizeOperandOfReadonlyTypeOperator(type) : parenthesizerRules().parenthesizeOperandOfTypeOperator(type); - node.transformFlags = 1 /* ContainsTypeScript */; - return node; - } - function updateTypeOperatorNode(node, type) { - return node.type !== type ? update(createTypeOperatorNode(node.operator, type), node) : node; - } - function createIndexedAccessTypeNode(objectType, indexType) { - var node = createBaseNode(199 /* IndexedAccessType */); - node.objectType = parenthesizerRules().parenthesizeNonArrayTypeOfPostfixType(objectType); - node.indexType = indexType; - node.transformFlags = 1 /* ContainsTypeScript */; - return node; - } - function updateIndexedAccessTypeNode(node, objectType, indexType) { - return node.objectType !== objectType || node.indexType !== indexType ? update(createIndexedAccessTypeNode(objectType, indexType), node) : node; - } - function createMappedTypeNode(readonlyToken, typeParameter, nameType, questionToken, type, members) { - var node = createBaseDeclaration(200 /* MappedType */); - node.readonlyToken = readonlyToken; - node.typeParameter = typeParameter; - node.nameType = nameType; - node.questionToken = questionToken; - node.type = type; - node.members = members && createNodeArray(members); - node.transformFlags = 1 /* ContainsTypeScript */; - node.locals = void 0; - node.nextContainer = void 0; - return node; - } - function updateMappedTypeNode(node, readonlyToken, typeParameter, nameType, questionToken, type, members) { - return node.readonlyToken !== readonlyToken || node.typeParameter !== typeParameter || node.nameType !== nameType || node.questionToken !== questionToken || node.type !== type || node.members !== members ? update(createMappedTypeNode(readonlyToken, typeParameter, nameType, questionToken, type, members), node) : node; - } - function createLiteralTypeNode(literal) { - var node = createBaseNode(201 /* LiteralType */); - node.literal = literal; - node.transformFlags = 1 /* ContainsTypeScript */; - return node; - } - function updateLiteralTypeNode(node, literal) { - return node.literal !== literal ? update(createLiteralTypeNode(literal), node) : node; - } - function createObjectBindingPattern(elements) { - var node = createBaseNode(206 /* ObjectBindingPattern */); - node.elements = createNodeArray(elements); - node.transformFlags |= propagateChildrenFlags(node.elements) | 1024 /* ContainsES2015 */ | 524288 /* ContainsBindingPattern */; - if (node.transformFlags & 32768 /* ContainsRestOrSpread */) { - node.transformFlags |= 128 /* ContainsES2018 */ | 65536 /* ContainsObjectRestOrSpread */; - } - return node; - } - function updateObjectBindingPattern(node, elements) { - return node.elements !== elements ? update(createObjectBindingPattern(elements), node) : node; - } - function createArrayBindingPattern(elements) { - var node = createBaseNode(207 /* ArrayBindingPattern */); - node.elements = createNodeArray(elements); - node.transformFlags |= propagateChildrenFlags(node.elements) | 1024 /* ContainsES2015 */ | 524288 /* ContainsBindingPattern */; - return node; - } - function updateArrayBindingPattern(node, elements) { - return node.elements !== elements ? update(createArrayBindingPattern(elements), node) : node; - } - function createBindingElement(dotDotDotToken, propertyName, name, initializer) { - var node = createBaseDeclaration(208 /* BindingElement */); - node.dotDotDotToken = dotDotDotToken; - node.propertyName = asName(propertyName); - node.name = asName(name); - node.initializer = asInitializer(initializer); - node.transformFlags |= propagateChildFlags(node.dotDotDotToken) | propagateNameFlags(node.propertyName) | propagateNameFlags(node.name) | propagateChildFlags(node.initializer) | (node.dotDotDotToken ? 32768 /* ContainsRestOrSpread */ : 0 /* None */) | 1024 /* ContainsES2015 */; - node.flowNode = void 0; - return node; - } - function updateBindingElement(node, dotDotDotToken, propertyName, name, initializer) { - return node.propertyName !== propertyName || node.dotDotDotToken !== dotDotDotToken || node.name !== name || node.initializer !== initializer ? update(createBindingElement(dotDotDotToken, propertyName, name, initializer), node) : node; - } - function createArrayLiteralExpression(elements, multiLine) { - var node = createBaseNode(209 /* ArrayLiteralExpression */); - var lastElement = elements && lastOrUndefined(elements); - var elementsArray = createNodeArray(elements, lastElement && isOmittedExpression(lastElement) ? true : void 0); - node.elements = parenthesizerRules().parenthesizeExpressionsOfCommaDelimitedList(elementsArray); - node.multiLine = multiLine; - node.transformFlags |= propagateChildrenFlags(node.elements); - return node; - } - function updateArrayLiteralExpression(node, elements) { - return node.elements !== elements ? update(createArrayLiteralExpression(elements, node.multiLine), node) : node; - } - function createObjectLiteralExpression(properties, multiLine) { - var node = createBaseDeclaration(210 /* ObjectLiteralExpression */); - node.properties = createNodeArray(properties); - node.multiLine = multiLine; - node.transformFlags |= propagateChildrenFlags(node.properties); - node.jsDoc = void 0; - return node; - } - function updateObjectLiteralExpression(node, properties) { - return node.properties !== properties ? update(createObjectLiteralExpression(properties, node.multiLine), node) : node; - } - function createBasePropertyAccessExpression(expression, questionDotToken, name) { - var node = createBaseDeclaration(211 /* PropertyAccessExpression */); - node.expression = expression; - node.questionDotToken = questionDotToken; - node.name = name; - node.transformFlags = propagateChildFlags(node.expression) | propagateChildFlags(node.questionDotToken) | (isIdentifier(node.name) ? propagateIdentifierNameFlags(node.name) : propagateChildFlags(node.name) | 536870912 /* ContainsPrivateIdentifierInExpression */); - node.jsDoc = void 0; - node.flowNode = void 0; - return node; - } - function createPropertyAccessExpression(expression, name) { - var node = createBasePropertyAccessExpression(parenthesizerRules().parenthesizeLeftSideOfAccess(expression, - /*optionalChain*/ - false), - /*questionDotToken*/ - void 0, asName(name)); - if (isSuperKeyword(expression)) { - node.transformFlags |= 256 /* ContainsES2017 */ | 128 /* ContainsES2018 */; - } - return node; - } - function updatePropertyAccessExpression(node, expression, name) { - if (isPropertyAccessChain(node)) { - return updatePropertyAccessChain(node, expression, node.questionDotToken, cast(name, isIdentifier)); - } - return node.expression !== expression || node.name !== name ? update(createPropertyAccessExpression(expression, name), node) : node; - } - function createPropertyAccessChain(expression, questionDotToken, name) { - var node = createBasePropertyAccessExpression(parenthesizerRules().parenthesizeLeftSideOfAccess(expression, - /*optionalChain*/ - true), questionDotToken, asName(name)); - node.flags |= 64 /* OptionalChain */; - node.transformFlags |= 32 /* ContainsES2020 */; - return node; - } - function updatePropertyAccessChain(node, expression, questionDotToken, name) { - Debug.assert(!!(node.flags & 64 /* OptionalChain */), "Cannot update a PropertyAccessExpression using updatePropertyAccessChain. Use updatePropertyAccess instead."); - return node.expression !== expression || node.questionDotToken !== questionDotToken || node.name !== name ? update(createPropertyAccessChain(expression, questionDotToken, name), node) : node; - } - function createBaseElementAccessExpression(expression, questionDotToken, argumentExpression) { - var node = createBaseDeclaration(212 /* ElementAccessExpression */); - node.expression = expression; - node.questionDotToken = questionDotToken; - node.argumentExpression = argumentExpression; - node.transformFlags |= propagateChildFlags(node.expression) | propagateChildFlags(node.questionDotToken) | propagateChildFlags(node.argumentExpression); - node.jsDoc = void 0; - node.flowNode = void 0; - return node; - } - function createElementAccessExpression(expression, index) { - var node = createBaseElementAccessExpression(parenthesizerRules().parenthesizeLeftSideOfAccess(expression, - /*optionalChain*/ - false), - /*questionDotToken*/ - void 0, asExpression(index)); - if (isSuperKeyword(expression)) { - node.transformFlags |= 256 /* ContainsES2017 */ | 128 /* ContainsES2018 */; - } - return node; - } - function updateElementAccessExpression(node, expression, argumentExpression) { - if (isElementAccessChain(node)) { - return updateElementAccessChain(node, expression, node.questionDotToken, argumentExpression); - } - return node.expression !== expression || node.argumentExpression !== argumentExpression ? update(createElementAccessExpression(expression, argumentExpression), node) : node; - } - function createElementAccessChain(expression, questionDotToken, index) { - var node = createBaseElementAccessExpression(parenthesizerRules().parenthesizeLeftSideOfAccess(expression, - /*optionalChain*/ - true), questionDotToken, asExpression(index)); - node.flags |= 64 /* OptionalChain */; - node.transformFlags |= 32 /* ContainsES2020 */; - return node; - } - function updateElementAccessChain(node, expression, questionDotToken, argumentExpression) { - Debug.assert(!!(node.flags & 64 /* OptionalChain */), "Cannot update a ElementAccessExpression using updateElementAccessChain. Use updateElementAccess instead."); - return node.expression !== expression || node.questionDotToken !== questionDotToken || node.argumentExpression !== argumentExpression ? update(createElementAccessChain(expression, questionDotToken, argumentExpression), node) : node; - } - function createBaseCallExpression(expression, questionDotToken, typeArguments, argumentsArray) { - var node = createBaseDeclaration(213 /* CallExpression */); - node.expression = expression; - node.questionDotToken = questionDotToken; - node.typeArguments = typeArguments; - node.arguments = argumentsArray; - node.transformFlags |= propagateChildFlags(node.expression) | propagateChildFlags(node.questionDotToken) | propagateChildrenFlags(node.typeArguments) | propagateChildrenFlags(node.arguments); - if (node.typeArguments) { - node.transformFlags |= 1 /* ContainsTypeScript */; - } - if (isSuperProperty(node.expression)) { - node.transformFlags |= 16384 /* ContainsLexicalThis */; - } - return node; - } - function createCallExpression(expression, typeArguments, argumentsArray) { - var node = createBaseCallExpression(parenthesizerRules().parenthesizeLeftSideOfAccess(expression, - /*optionalChain*/ - false), - /*questionDotToken*/ - void 0, asNodeArray(typeArguments), parenthesizerRules().parenthesizeExpressionsOfCommaDelimitedList(createNodeArray(argumentsArray))); - if (isImportKeyword(node.expression)) { - node.transformFlags |= 8388608 /* ContainsDynamicImport */; - } - return node; - } - function updateCallExpression(node, expression, typeArguments, argumentsArray) { - if (isCallChain(node)) { - return updateCallChain(node, expression, node.questionDotToken, typeArguments, argumentsArray); - } - return node.expression !== expression || node.typeArguments !== typeArguments || node.arguments !== argumentsArray ? update(createCallExpression(expression, typeArguments, argumentsArray), node) : node; - } - function createCallChain(expression, questionDotToken, typeArguments, argumentsArray) { - var node = createBaseCallExpression(parenthesizerRules().parenthesizeLeftSideOfAccess(expression, - /*optionalChain*/ - true), questionDotToken, asNodeArray(typeArguments), parenthesizerRules().parenthesizeExpressionsOfCommaDelimitedList(createNodeArray(argumentsArray))); - node.flags |= 64 /* OptionalChain */; - node.transformFlags |= 32 /* ContainsES2020 */; - return node; - } - function updateCallChain(node, expression, questionDotToken, typeArguments, argumentsArray) { - Debug.assert(!!(node.flags & 64 /* OptionalChain */), "Cannot update a CallExpression using updateCallChain. Use updateCall instead."); - return node.expression !== expression || node.questionDotToken !== questionDotToken || node.typeArguments !== typeArguments || node.arguments !== argumentsArray ? update(createCallChain(expression, questionDotToken, typeArguments, argumentsArray), node) : node; - } - function createNewExpression(expression, typeArguments, argumentsArray) { - var node = createBaseDeclaration(214 /* NewExpression */); - node.expression = parenthesizerRules().parenthesizeExpressionOfNew(expression); - node.typeArguments = asNodeArray(typeArguments); - node.arguments = argumentsArray ? parenthesizerRules().parenthesizeExpressionsOfCommaDelimitedList(argumentsArray) : void 0; - node.transformFlags |= propagateChildFlags(node.expression) | propagateChildrenFlags(node.typeArguments) | propagateChildrenFlags(node.arguments) | 32 /* ContainsES2020 */; - if (node.typeArguments) { - node.transformFlags |= 1 /* ContainsTypeScript */; - } - return node; - } - function updateNewExpression(node, expression, typeArguments, argumentsArray) { - return node.expression !== expression || node.typeArguments !== typeArguments || node.arguments !== argumentsArray ? update(createNewExpression(expression, typeArguments, argumentsArray), node) : node; - } - function createTaggedTemplateExpression(tag, typeArguments, template) { - var node = createBaseNode(215 /* TaggedTemplateExpression */); - node.tag = parenthesizerRules().parenthesizeLeftSideOfAccess(tag, - /*optionalChain*/ - false); - node.typeArguments = asNodeArray(typeArguments); - node.template = template; - node.transformFlags |= propagateChildFlags(node.tag) | propagateChildrenFlags(node.typeArguments) | propagateChildFlags(node.template) | 1024 /* ContainsES2015 */; - if (node.typeArguments) { - node.transformFlags |= 1 /* ContainsTypeScript */; - } - if (hasInvalidEscape(node.template)) { - node.transformFlags |= 128 /* ContainsES2018 */; - } - return node; - } - function updateTaggedTemplateExpression(node, tag, typeArguments, template) { - return node.tag !== tag || node.typeArguments !== typeArguments || node.template !== template ? update(createTaggedTemplateExpression(tag, typeArguments, template), node) : node; - } - function createTypeAssertion(type, expression) { - var node = createBaseNode(216 /* TypeAssertionExpression */); - node.expression = parenthesizerRules().parenthesizeOperandOfPrefixUnary(expression); - node.type = type; - node.transformFlags |= propagateChildFlags(node.expression) | propagateChildFlags(node.type) | 1 /* ContainsTypeScript */; - return node; - } - function updateTypeAssertion(node, type, expression) { - return node.type !== type || node.expression !== expression ? update(createTypeAssertion(type, expression), node) : node; - } - function createParenthesizedExpression(expression) { - var node = createBaseNode(217 /* ParenthesizedExpression */); - node.expression = expression; - node.transformFlags = propagateChildFlags(node.expression); - node.jsDoc = void 0; - return node; - } - function updateParenthesizedExpression(node, expression) { - return node.expression !== expression ? update(createParenthesizedExpression(expression), node) : node; - } - function createFunctionExpression(modifiers, asteriskToken, name, typeParameters, parameters, type, body) { - var node = createBaseDeclaration(218 /* FunctionExpression */); - node.modifiers = asNodeArray(modifiers); - node.asteriskToken = asteriskToken; - node.name = asName(name); - node.typeParameters = asNodeArray(typeParameters); - node.parameters = createNodeArray(parameters); - node.type = type; - node.body = body; - var isAsync = modifiersToFlags(node.modifiers) & 512 /* Async */; - var isGenerator = !!node.asteriskToken; - var isAsyncGenerator = isAsync && isGenerator; - node.transformFlags = propagateChildrenFlags(node.modifiers) | propagateChildFlags(node.asteriskToken) | propagateNameFlags(node.name) | propagateChildrenFlags(node.typeParameters) | propagateChildrenFlags(node.parameters) | propagateChildFlags(node.type) | propagateChildFlags(node.body) & ~67108864 /* ContainsPossibleTopLevelAwait */ | (isAsyncGenerator ? 128 /* ContainsES2018 */ : isAsync ? 256 /* ContainsES2017 */ : isGenerator ? 2048 /* ContainsGenerator */ : 0 /* None */) | (node.typeParameters || node.type ? 1 /* ContainsTypeScript */ : 0 /* None */) | 4194304 /* ContainsHoistedDeclarationOrCompletion */; - node.typeArguments = void 0; - node.jsDoc = void 0; - node.locals = void 0; - node.nextContainer = void 0; - node.flowNode = void 0; - node.endFlowNode = void 0; - node.returnFlowNode = void 0; - return node; - } - function updateFunctionExpression(node, modifiers, asteriskToken, name, typeParameters, parameters, type, body) { - return node.name !== name || node.modifiers !== modifiers || node.asteriskToken !== asteriskToken || node.typeParameters !== typeParameters || node.parameters !== parameters || node.type !== type || node.body !== body ? finishUpdateBaseSignatureDeclaration(createFunctionExpression(modifiers, asteriskToken, name, typeParameters, parameters, type, body), node) : node; - } - function createArrowFunction(modifiers, typeParameters, parameters, type, equalsGreaterThanToken, body) { - var node = createBaseDeclaration(219 /* ArrowFunction */); - node.modifiers = asNodeArray(modifiers); - node.typeParameters = asNodeArray(typeParameters); - node.parameters = createNodeArray(parameters); - node.type = type; - node.equalsGreaterThanToken = equalsGreaterThanToken !== null && equalsGreaterThanToken !== void 0 ? equalsGreaterThanToken : createToken(39 /* EqualsGreaterThanToken */); - node.body = parenthesizerRules().parenthesizeConciseBodyOfArrowFunction(body); - var isAsync = modifiersToFlags(node.modifiers) & 512 /* Async */; - node.transformFlags = propagateChildrenFlags(node.modifiers) | propagateChildrenFlags(node.typeParameters) | propagateChildrenFlags(node.parameters) | propagateChildFlags(node.type) | propagateChildFlags(node.equalsGreaterThanToken) | propagateChildFlags(node.body) & ~67108864 /* ContainsPossibleTopLevelAwait */ | (node.typeParameters || node.type ? 1 /* ContainsTypeScript */ : 0 /* None */) | (isAsync ? 256 /* ContainsES2017 */ | 16384 /* ContainsLexicalThis */ : 0 /* None */) | 1024 /* ContainsES2015 */; - node.typeArguments = void 0; - node.jsDoc = void 0; - node.locals = void 0; - node.nextContainer = void 0; - node.flowNode = void 0; - node.endFlowNode = void 0; - node.returnFlowNode = void 0; - return node; - } - function updateArrowFunction(node, modifiers, typeParameters, parameters, type, equalsGreaterThanToken, body) { - return node.modifiers !== modifiers || node.typeParameters !== typeParameters || node.parameters !== parameters || node.type !== type || node.equalsGreaterThanToken !== equalsGreaterThanToken || node.body !== body ? finishUpdateBaseSignatureDeclaration(createArrowFunction(modifiers, typeParameters, parameters, type, equalsGreaterThanToken, body), node) : node; - } - function createDeleteExpression(expression) { - var node = createBaseNode(220 /* DeleteExpression */); - node.expression = parenthesizerRules().parenthesizeOperandOfPrefixUnary(expression); - node.transformFlags |= propagateChildFlags(node.expression); - return node; - } - function updateDeleteExpression(node, expression) { - return node.expression !== expression ? update(createDeleteExpression(expression), node) : node; - } - function createTypeOfExpression(expression) { - var node = createBaseNode(221 /* TypeOfExpression */); - node.expression = parenthesizerRules().parenthesizeOperandOfPrefixUnary(expression); - node.transformFlags |= propagateChildFlags(node.expression); - return node; - } - function updateTypeOfExpression(node, expression) { - return node.expression !== expression ? update(createTypeOfExpression(expression), node) : node; - } - function createVoidExpression(expression) { - var node = createBaseNode(222 /* VoidExpression */); - node.expression = parenthesizerRules().parenthesizeOperandOfPrefixUnary(expression); - node.transformFlags |= propagateChildFlags(node.expression); - return node; - } - function updateVoidExpression(node, expression) { - return node.expression !== expression ? update(createVoidExpression(expression), node) : node; - } - function createAwaitExpression(expression) { - var node = createBaseNode(223 /* AwaitExpression */); - node.expression = parenthesizerRules().parenthesizeOperandOfPrefixUnary(expression); - node.transformFlags |= propagateChildFlags(node.expression) | 256 /* ContainsES2017 */ | 128 /* ContainsES2018 */ | 2097152 /* ContainsAwait */; - return node; - } - function updateAwaitExpression(node, expression) { - return node.expression !== expression ? update(createAwaitExpression(expression), node) : node; - } - function createPrefixUnaryExpression(operator, operand) { - var node = createBaseNode(224 /* PrefixUnaryExpression */); - node.operator = operator; - node.operand = parenthesizerRules().parenthesizeOperandOfPrefixUnary(operand); - node.transformFlags |= propagateChildFlags(node.operand); - if ((operator === 46 /* PlusPlusToken */ || operator === 47 /* MinusMinusToken */) && isIdentifier(node.operand) && !isGeneratedIdentifier(node.operand) && !isLocalName(node.operand)) { - node.transformFlags |= 268435456 /* ContainsUpdateExpressionForIdentifier */; - } - return node; - } - function updatePrefixUnaryExpression(node, operand) { - return node.operand !== operand ? update(createPrefixUnaryExpression(node.operator, operand), node) : node; - } - function createPostfixUnaryExpression(operand, operator) { - var node = createBaseNode(225 /* PostfixUnaryExpression */); - node.operator = operator; - node.operand = parenthesizerRules().parenthesizeOperandOfPostfixUnary(operand); - node.transformFlags |= propagateChildFlags(node.operand); - if (isIdentifier(node.operand) && !isGeneratedIdentifier(node.operand) && !isLocalName(node.operand)) { - node.transformFlags |= 268435456 /* ContainsUpdateExpressionForIdentifier */; - } - return node; - } - function updatePostfixUnaryExpression(node, operand) { - return node.operand !== operand ? update(createPostfixUnaryExpression(operand, node.operator), node) : node; - } - function createBinaryExpression(left, operator, right) { - var node = createBaseDeclaration(226 /* BinaryExpression */); - var operatorToken = asToken(operator); - var operatorKind = operatorToken.kind; - node.left = parenthesizerRules().parenthesizeLeftSideOfBinary(operatorKind, left); - node.operatorToken = operatorToken; - node.right = parenthesizerRules().parenthesizeRightSideOfBinary(operatorKind, node.left, right); - node.transformFlags |= propagateChildFlags(node.left) | propagateChildFlags(node.operatorToken) | propagateChildFlags(node.right); - if (operatorKind === 61 /* QuestionQuestionToken */) { - node.transformFlags |= 32 /* ContainsES2020 */; - } - else if (operatorKind === 64 /* EqualsToken */) { - if (isObjectLiteralExpression(node.left)) { - node.transformFlags |= 1024 /* ContainsES2015 */ | 128 /* ContainsES2018 */ | 4096 /* ContainsDestructuringAssignment */ | propagateAssignmentPatternFlags(node.left); - } - else if (isArrayLiteralExpression(node.left)) { - node.transformFlags |= 1024 /* ContainsES2015 */ | 4096 /* ContainsDestructuringAssignment */ | propagateAssignmentPatternFlags(node.left); - } - } - else if (operatorKind === 43 /* AsteriskAsteriskToken */ || operatorKind === 68 /* AsteriskAsteriskEqualsToken */) { - node.transformFlags |= 512 /* ContainsES2016 */; - } - else if (isLogicalOrCoalescingAssignmentOperator(operatorKind)) { - node.transformFlags |= 16 /* ContainsES2021 */; - } - if (operatorKind === 103 /* InKeyword */ && isPrivateIdentifier(node.left)) { - node.transformFlags |= 536870912 /* ContainsPrivateIdentifierInExpression */; - } - node.jsDoc = void 0; - return node; - } - function propagateAssignmentPatternFlags(node) { - return containsObjectRestOrSpread(node) ? 65536 /* ContainsObjectRestOrSpread */ : 0 /* None */; - } - function updateBinaryExpression(node, left, operator, right) { - return node.left !== left || node.operatorToken !== operator || node.right !== right ? update(createBinaryExpression(left, operator, right), node) : node; - } - function createConditionalExpression(condition, questionToken, whenTrue, colonToken, whenFalse) { - var node = createBaseNode(227 /* ConditionalExpression */); - node.condition = parenthesizerRules().parenthesizeConditionOfConditionalExpression(condition); - node.questionToken = questionToken !== null && questionToken !== void 0 ? questionToken : createToken(58 /* QuestionToken */); - node.whenTrue = parenthesizerRules().parenthesizeBranchOfConditionalExpression(whenTrue); - node.colonToken = colonToken !== null && colonToken !== void 0 ? colonToken : createToken(59 /* ColonToken */); - node.whenFalse = parenthesizerRules().parenthesizeBranchOfConditionalExpression(whenFalse); - node.transformFlags |= propagateChildFlags(node.condition) | propagateChildFlags(node.questionToken) | propagateChildFlags(node.whenTrue) | propagateChildFlags(node.colonToken) | propagateChildFlags(node.whenFalse); - return node; - } - function updateConditionalExpression(node, condition, questionToken, whenTrue, colonToken, whenFalse) { - return node.condition !== condition || node.questionToken !== questionToken || node.whenTrue !== whenTrue || node.colonToken !== colonToken || node.whenFalse !== whenFalse ? update(createConditionalExpression(condition, questionToken, whenTrue, colonToken, whenFalse), node) : node; - } - function createTemplateExpression(head, templateSpans) { - var node = createBaseNode(228 /* TemplateExpression */); - node.head = head; - node.templateSpans = createNodeArray(templateSpans); - node.transformFlags |= propagateChildFlags(node.head) | propagateChildrenFlags(node.templateSpans) | 1024 /* ContainsES2015 */; - return node; - } - function updateTemplateExpression(node, head, templateSpans) { - return node.head !== head || node.templateSpans !== templateSpans ? update(createTemplateExpression(head, templateSpans), node) : node; - } - function checkTemplateLiteralLikeNode(kind, text, rawText, templateFlags /* None */) { - if (templateFlags === void 0) { templateFlags = 0; } - Debug.assert(!(templateFlags & ~7176 /* TemplateLiteralLikeFlags */), "Unsupported template flags."); - var cooked = void 0; - if (rawText !== void 0 && rawText !== text) { - cooked = getCookedText(kind, rawText); - if (typeof cooked === "object") { - return Debug.fail("Invalid raw text"); - } - } - if (text === void 0) { - if (cooked === void 0) { - return Debug.fail("Arguments 'text' and 'rawText' may not both be undefined."); - } - text = cooked; - } - else if (cooked !== void 0) { - Debug.assert(text === cooked, "Expected argument 'text' to be the normalized (i.e. 'cooked') version of argument 'rawText'."); - } - return text; - } - function getTransformFlagsOfTemplateLiteralLike(templateFlags) { - var transformFlags = 1024 /* ContainsES2015 */; - if (templateFlags) { - transformFlags |= 128 /* ContainsES2018 */; - } - return transformFlags; - } - function createTemplateLiteralLikeToken(kind, text, rawText, templateFlags) { - var node = createBaseToken(kind); - node.text = text; - node.rawText = rawText; - node.templateFlags = templateFlags & 7176 /* TemplateLiteralLikeFlags */; - node.transformFlags = getTransformFlagsOfTemplateLiteralLike(node.templateFlags); - return node; - } - function createTemplateLiteralLikeDeclaration(kind, text, rawText, templateFlags) { - var node = createBaseDeclaration(kind); - node.text = text; - node.rawText = rawText; - node.templateFlags = templateFlags & 7176 /* TemplateLiteralLikeFlags */; - node.transformFlags = getTransformFlagsOfTemplateLiteralLike(node.templateFlags); - return node; - } - function createTemplateLiteralLikeNode(kind, text, rawText, templateFlags) { - if (kind === 15 /* NoSubstitutionTemplateLiteral */) { - return createTemplateLiteralLikeDeclaration(kind, text, rawText, templateFlags); - } - return createTemplateLiteralLikeToken(kind, text, rawText, templateFlags); - } - function createTemplateHead(text, rawText, templateFlags) { - text = checkTemplateLiteralLikeNode(16 /* TemplateHead */, text, rawText, templateFlags); - return createTemplateLiteralLikeNode(16 /* TemplateHead */, text, rawText, templateFlags); - } - function createTemplateMiddle(text, rawText, templateFlags) { - text = checkTemplateLiteralLikeNode(16 /* TemplateHead */, text, rawText, templateFlags); - return createTemplateLiteralLikeNode(17 /* TemplateMiddle */, text, rawText, templateFlags); - } - function createTemplateTail(text, rawText, templateFlags) { - text = checkTemplateLiteralLikeNode(16 /* TemplateHead */, text, rawText, templateFlags); - return createTemplateLiteralLikeNode(18 /* TemplateTail */, text, rawText, templateFlags); - } - function createNoSubstitutionTemplateLiteral(text, rawText, templateFlags) { - text = checkTemplateLiteralLikeNode(16 /* TemplateHead */, text, rawText, templateFlags); - return createTemplateLiteralLikeDeclaration(15 /* NoSubstitutionTemplateLiteral */, text, rawText, templateFlags); - } - function createYieldExpression(asteriskToken, expression) { - Debug.assert(!asteriskToken || !!expression, "A `YieldExpression` with an asteriskToken must have an expression."); - var node = createBaseNode(229 /* YieldExpression */); - node.expression = expression && parenthesizerRules().parenthesizeExpressionForDisallowedComma(expression); - node.asteriskToken = asteriskToken; - node.transformFlags |= propagateChildFlags(node.expression) | propagateChildFlags(node.asteriskToken) | 1024 /* ContainsES2015 */ | 128 /* ContainsES2018 */ | 1048576 /* ContainsYield */; - return node; - } - function updateYieldExpression(node, asteriskToken, expression) { - return node.expression !== expression || node.asteriskToken !== asteriskToken ? update(createYieldExpression(asteriskToken, expression), node) : node; - } - function createSpreadElement(expression) { - var node = createBaseNode(230 /* SpreadElement */); - node.expression = parenthesizerRules().parenthesizeExpressionForDisallowedComma(expression); - node.transformFlags |= propagateChildFlags(node.expression) | 1024 /* ContainsES2015 */ | 32768 /* ContainsRestOrSpread */; - return node; - } - function updateSpreadElement(node, expression) { - return node.expression !== expression ? update(createSpreadElement(expression), node) : node; - } - function createClassExpression(modifiers, name, typeParameters, heritageClauses, members) { - var node = createBaseDeclaration(231 /* ClassExpression */); - node.modifiers = asNodeArray(modifiers); - node.name = asName(name); - node.typeParameters = asNodeArray(typeParameters); - node.heritageClauses = asNodeArray(heritageClauses); - node.members = createNodeArray(members); - node.transformFlags |= propagateChildrenFlags(node.modifiers) | propagateNameFlags(node.name) | propagateChildrenFlags(node.typeParameters) | propagateChildrenFlags(node.heritageClauses) | propagateChildrenFlags(node.members) | (node.typeParameters ? 1 /* ContainsTypeScript */ : 0 /* None */) | 1024 /* ContainsES2015 */; - node.jsDoc = void 0; - return node; - } - function updateClassExpression(node, modifiers, name, typeParameters, heritageClauses, members) { - return node.modifiers !== modifiers || node.name !== name || node.typeParameters !== typeParameters || node.heritageClauses !== heritageClauses || node.members !== members ? update(createClassExpression(modifiers, name, typeParameters, heritageClauses, members), node) : node; - } - function createOmittedExpression() { - return createBaseNode(232 /* OmittedExpression */); - } - function createExpressionWithTypeArguments(expression, typeArguments) { - var node = createBaseNode(233 /* ExpressionWithTypeArguments */); - node.expression = parenthesizerRules().parenthesizeLeftSideOfAccess(expression, - /*optionalChain*/ - false); - node.typeArguments = typeArguments && parenthesizerRules().parenthesizeTypeArguments(typeArguments); - node.transformFlags |= propagateChildFlags(node.expression) | propagateChildrenFlags(node.typeArguments) | 1024 /* ContainsES2015 */; - return node; - } - function updateExpressionWithTypeArguments(node, expression, typeArguments) { - return node.expression !== expression || node.typeArguments !== typeArguments ? update(createExpressionWithTypeArguments(expression, typeArguments), node) : node; - } - function createAsExpression(expression, type) { - var node = createBaseNode(234 /* AsExpression */); - node.expression = expression; - node.type = type; - node.transformFlags |= propagateChildFlags(node.expression) | propagateChildFlags(node.type) | 1 /* ContainsTypeScript */; - return node; - } - function updateAsExpression(node, expression, type) { - return node.expression !== expression || node.type !== type ? update(createAsExpression(expression, type), node) : node; - } - function createNonNullExpression(expression) { - var node = createBaseNode(235 /* NonNullExpression */); - node.expression = parenthesizerRules().parenthesizeLeftSideOfAccess(expression, - /*optionalChain*/ - false); - node.transformFlags |= propagateChildFlags(node.expression) | 1 /* ContainsTypeScript */; - return node; - } - function updateNonNullExpression(node, expression) { - if (isNonNullChain(node)) { - return updateNonNullChain(node, expression); - } - return node.expression !== expression ? update(createNonNullExpression(expression), node) : node; - } - function createSatisfiesExpression(expression, type) { - var node = createBaseNode(238 /* SatisfiesExpression */); - node.expression = expression; - node.type = type; - node.transformFlags |= propagateChildFlags(node.expression) | propagateChildFlags(node.type) | 1 /* ContainsTypeScript */; - return node; - } - function updateSatisfiesExpression(node, expression, type) { - return node.expression !== expression || node.type !== type ? update(createSatisfiesExpression(expression, type), node) : node; - } - function createNonNullChain(expression) { - var node = createBaseNode(235 /* NonNullExpression */); - node.flags |= 64 /* OptionalChain */; - node.expression = parenthesizerRules().parenthesizeLeftSideOfAccess(expression, - /*optionalChain*/ - true); - node.transformFlags |= propagateChildFlags(node.expression) | 1 /* ContainsTypeScript */; - return node; - } - function updateNonNullChain(node, expression) { - Debug.assert(!!(node.flags & 64 /* OptionalChain */), "Cannot update a NonNullExpression using updateNonNullChain. Use updateNonNullExpression instead."); - return node.expression !== expression ? update(createNonNullChain(expression), node) : node; - } - function createMetaProperty(keywordToken, name) { - var node = createBaseNode(236 /* MetaProperty */); - node.keywordToken = keywordToken; - node.name = name; - node.transformFlags |= propagateChildFlags(node.name); - switch (keywordToken) { - case 105 /* NewKeyword */: - node.transformFlags |= 1024 /* ContainsES2015 */; - break; - case 102 /* ImportKeyword */: - node.transformFlags |= 32 /* ContainsES2020 */; - break; - default: - return Debug.assertNever(keywordToken); - } - node.flowNode = void 0; - return node; - } - function updateMetaProperty(node, name) { - return node.name !== name ? update(createMetaProperty(node.keywordToken, name), node) : node; - } - function createTemplateSpan(expression, literal) { - var node = createBaseNode(239 /* TemplateSpan */); - node.expression = expression; - node.literal = literal; - node.transformFlags |= propagateChildFlags(node.expression) | propagateChildFlags(node.literal) | 1024 /* ContainsES2015 */; - return node; - } - function updateTemplateSpan(node, expression, literal) { - return node.expression !== expression || node.literal !== literal ? update(createTemplateSpan(expression, literal), node) : node; - } - function createSemicolonClassElement() { - var node = createBaseNode(240 /* SemicolonClassElement */); - node.transformFlags |= 1024 /* ContainsES2015 */; - return node; - } - function createBlock(statements, multiLine) { - var node = createBaseNode(241 /* Block */); - node.statements = createNodeArray(statements); - node.multiLine = multiLine; - node.transformFlags |= propagateChildrenFlags(node.statements); - node.jsDoc = void 0; - node.locals = void 0; - node.nextContainer = void 0; - return node; - } - function updateBlock(node, statements) { - return node.statements !== statements ? update(createBlock(statements, node.multiLine), node) : node; - } - function createVariableStatement(modifiers, declarationList) { - var node = createBaseNode(243 /* VariableStatement */); - node.modifiers = asNodeArray(modifiers); - node.declarationList = isArray(declarationList) ? createVariableDeclarationList(declarationList) : declarationList; - node.transformFlags |= propagateChildrenFlags(node.modifiers) | propagateChildFlags(node.declarationList); - if (modifiersToFlags(node.modifiers) & 2 /* Ambient */) { - node.transformFlags = 1 /* ContainsTypeScript */; - } - node.jsDoc = void 0; - node.flowNode = void 0; - return node; - } - function updateVariableStatement(node, modifiers, declarationList) { - return node.modifiers !== modifiers || node.declarationList !== declarationList ? update(createVariableStatement(modifiers, declarationList), node) : node; - } - function createEmptyStatement() { - var node = createBaseNode(242 /* EmptyStatement */); - node.jsDoc = void 0; - return node; - } - function createExpressionStatement(expression) { - var node = createBaseNode(244 /* ExpressionStatement */); - node.expression = parenthesizerRules().parenthesizeExpressionOfExpressionStatement(expression); - node.transformFlags |= propagateChildFlags(node.expression); - node.jsDoc = void 0; - node.flowNode = void 0; - return node; - } - function updateExpressionStatement(node, expression) { - return node.expression !== expression ? update(createExpressionStatement(expression), node) : node; - } - function createIfStatement(expression, thenStatement, elseStatement) { - var node = createBaseNode(245 /* IfStatement */); - node.expression = expression; - node.thenStatement = asEmbeddedStatement(thenStatement); - node.elseStatement = asEmbeddedStatement(elseStatement); - node.transformFlags |= propagateChildFlags(node.expression) | propagateChildFlags(node.thenStatement) | propagateChildFlags(node.elseStatement); - node.jsDoc = void 0; - node.flowNode = void 0; - return node; - } - function updateIfStatement(node, expression, thenStatement, elseStatement) { - return node.expression !== expression || node.thenStatement !== thenStatement || node.elseStatement !== elseStatement ? update(createIfStatement(expression, thenStatement, elseStatement), node) : node; - } - function createDoStatement(statement, expression) { - var node = createBaseNode(246 /* DoStatement */); - node.statement = asEmbeddedStatement(statement); - node.expression = expression; - node.transformFlags |= propagateChildFlags(node.statement) | propagateChildFlags(node.expression); - node.jsDoc = void 0; - node.flowNode = void 0; - return node; - } - function updateDoStatement(node, statement, expression) { - return node.statement !== statement || node.expression !== expression ? update(createDoStatement(statement, expression), node) : node; - } - function createWhileStatement(expression, statement) { - var node = createBaseNode(247 /* WhileStatement */); - node.expression = expression; - node.statement = asEmbeddedStatement(statement); - node.transformFlags |= propagateChildFlags(node.expression) | propagateChildFlags(node.statement); - node.jsDoc = void 0; - node.flowNode = void 0; - return node; - } - function updateWhileStatement(node, expression, statement) { - return node.expression !== expression || node.statement !== statement ? update(createWhileStatement(expression, statement), node) : node; - } - function createForStatement(initializer, condition, incrementor, statement) { - var node = createBaseNode(248 /* ForStatement */); - node.initializer = initializer; - node.condition = condition; - node.incrementor = incrementor; - node.statement = asEmbeddedStatement(statement); - node.transformFlags |= propagateChildFlags(node.initializer) | propagateChildFlags(node.condition) | propagateChildFlags(node.incrementor) | propagateChildFlags(node.statement); - node.jsDoc = void 0; - node.locals = void 0; - node.nextContainer = void 0; - node.flowNode = void 0; - return node; - } - function updateForStatement(node, initializer, condition, incrementor, statement) { - return node.initializer !== initializer || node.condition !== condition || node.incrementor !== incrementor || node.statement !== statement ? update(createForStatement(initializer, condition, incrementor, statement), node) : node; - } - function createForInStatement(initializer, expression, statement) { - var node = createBaseNode(249 /* ForInStatement */); - node.initializer = initializer; - node.expression = expression; - node.statement = asEmbeddedStatement(statement); - node.transformFlags |= propagateChildFlags(node.initializer) | propagateChildFlags(node.expression) | propagateChildFlags(node.statement); - node.jsDoc = void 0; - node.locals = void 0; - node.nextContainer = void 0; - node.flowNode = void 0; - return node; - } - function updateForInStatement(node, initializer, expression, statement) { - return node.initializer !== initializer || node.expression !== expression || node.statement !== statement ? update(createForInStatement(initializer, expression, statement), node) : node; - } - function createForOfStatement(awaitModifier, initializer, expression, statement) { - var node = createBaseNode(250 /* ForOfStatement */); - node.awaitModifier = awaitModifier; - node.initializer = initializer; - node.expression = parenthesizerRules().parenthesizeExpressionForDisallowedComma(expression); - node.statement = asEmbeddedStatement(statement); - node.transformFlags |= propagateChildFlags(node.awaitModifier) | propagateChildFlags(node.initializer) | propagateChildFlags(node.expression) | propagateChildFlags(node.statement) | 1024 /* ContainsES2015 */; - if (awaitModifier) - node.transformFlags |= 128 /* ContainsES2018 */; - node.jsDoc = void 0; - node.locals = void 0; - node.nextContainer = void 0; - node.flowNode = void 0; - return node; - } - function updateForOfStatement(node, awaitModifier, initializer, expression, statement) { - return node.awaitModifier !== awaitModifier || node.initializer !== initializer || node.expression !== expression || node.statement !== statement ? update(createForOfStatement(awaitModifier, initializer, expression, statement), node) : node; - } - function createContinueStatement(label) { - var node = createBaseNode(251 /* ContinueStatement */); - node.label = asName(label); - node.transformFlags |= propagateChildFlags(node.label) | 4194304 /* ContainsHoistedDeclarationOrCompletion */; - node.jsDoc = void 0; - node.flowNode = void 0; - return node; - } - function updateContinueStatement(node, label) { - return node.label !== label ? update(createContinueStatement(label), node) : node; - } - function createBreakStatement(label) { - var node = createBaseNode(252 /* BreakStatement */); - node.label = asName(label); - node.transformFlags |= propagateChildFlags(node.label) | 4194304 /* ContainsHoistedDeclarationOrCompletion */; - node.jsDoc = void 0; - node.flowNode = void 0; - return node; - } - function updateBreakStatement(node, label) { - return node.label !== label ? update(createBreakStatement(label), node) : node; - } - function createReturnStatement(expression) { - var node = createBaseNode(253 /* ReturnStatement */); - node.expression = expression; - node.transformFlags |= propagateChildFlags(node.expression) | 128 /* ContainsES2018 */ | 4194304 /* ContainsHoistedDeclarationOrCompletion */; - node.jsDoc = void 0; - node.flowNode = void 0; - return node; - } - function updateReturnStatement(node, expression) { - return node.expression !== expression ? update(createReturnStatement(expression), node) : node; - } - function createWithStatement(expression, statement) { - var node = createBaseNode(254 /* WithStatement */); - node.expression = expression; - node.statement = asEmbeddedStatement(statement); - node.transformFlags |= propagateChildFlags(node.expression) | propagateChildFlags(node.statement); - node.jsDoc = void 0; - node.flowNode = void 0; - return node; - } - function updateWithStatement(node, expression, statement) { - return node.expression !== expression || node.statement !== statement ? update(createWithStatement(expression, statement), node) : node; - } - function createSwitchStatement(expression, caseBlock) { - var node = createBaseNode(255 /* SwitchStatement */); - node.expression = parenthesizerRules().parenthesizeExpressionForDisallowedComma(expression); - node.caseBlock = caseBlock; - node.transformFlags |= propagateChildFlags(node.expression) | propagateChildFlags(node.caseBlock); - node.jsDoc = void 0; - node.flowNode = void 0; - node.possiblyExhaustive = false; - return node; - } - function updateSwitchStatement(node, expression, caseBlock) { - return node.expression !== expression || node.caseBlock !== caseBlock ? update(createSwitchStatement(expression, caseBlock), node) : node; - } - function createLabeledStatement(label, statement) { - var node = createBaseNode(256 /* LabeledStatement */); - node.label = asName(label); - node.statement = asEmbeddedStatement(statement); - node.transformFlags |= propagateChildFlags(node.label) | propagateChildFlags(node.statement); - node.jsDoc = void 0; - node.flowNode = void 0; - return node; - } - function updateLabeledStatement(node, label, statement) { - return node.label !== label || node.statement !== statement ? update(createLabeledStatement(label, statement), node) : node; - } - function createThrowStatement(expression) { - var node = createBaseNode(257 /* ThrowStatement */); - node.expression = expression; - node.transformFlags |= propagateChildFlags(node.expression); - node.jsDoc = void 0; - node.flowNode = void 0; - return node; - } - function updateThrowStatement(node, expression) { - return node.expression !== expression ? update(createThrowStatement(expression), node) : node; - } - function createTryStatement(tryBlock, catchClause, finallyBlock) { - var node = createBaseNode(258 /* TryStatement */); - node.tryBlock = tryBlock; - node.catchClause = catchClause; - node.finallyBlock = finallyBlock; - node.transformFlags |= propagateChildFlags(node.tryBlock) | propagateChildFlags(node.catchClause) | propagateChildFlags(node.finallyBlock); - node.jsDoc = void 0; - node.flowNode = void 0; - return node; - } - function updateTryStatement(node, tryBlock, catchClause, finallyBlock) { - return node.tryBlock !== tryBlock || node.catchClause !== catchClause || node.finallyBlock !== finallyBlock ? update(createTryStatement(tryBlock, catchClause, finallyBlock), node) : node; - } - function createDebuggerStatement() { - var node = createBaseNode(259 /* DebuggerStatement */); - node.jsDoc = void 0; - node.flowNode = void 0; - return node; - } - function createVariableDeclaration(name, exclamationToken, type, initializer) { - var _t; - var node = createBaseDeclaration(260 /* VariableDeclaration */); - node.name = asName(name); - node.exclamationToken = exclamationToken; - node.type = type; - node.initializer = asInitializer(initializer); - node.transformFlags |= propagateNameFlags(node.name) | propagateChildFlags(node.initializer) | (((_t = node.exclamationToken) !== null && _t !== void 0 ? _t : node.type) ? 1 /* ContainsTypeScript */ : 0 /* None */); - node.jsDoc = void 0; - return node; - } - function updateVariableDeclaration(node, name, exclamationToken, type, initializer) { - return node.name !== name || node.type !== type || node.exclamationToken !== exclamationToken || node.initializer !== initializer ? update(createVariableDeclaration(name, exclamationToken, type, initializer), node) : node; - } - function createVariableDeclarationList(declarations, flags2 /* None */) { - if (flags2 === void 0) { flags2 = 0; } - var node = createBaseNode(261 /* VariableDeclarationList */); - node.flags |= flags2 & 7 /* BlockScoped */; - node.declarations = createNodeArray(declarations); - node.transformFlags |= propagateChildrenFlags(node.declarations) | 4194304 /* ContainsHoistedDeclarationOrCompletion */; - if (flags2 & 7 /* BlockScoped */) { - node.transformFlags |= 1024 /* ContainsES2015 */ | 262144 /* ContainsBlockScopedBinding */; - } - if (flags2 & 4 /* Using */) { - node.transformFlags |= 4 /* ContainsESNext */; - } - return node; - } - function updateVariableDeclarationList(node, declarations) { - return node.declarations !== declarations ? update(createVariableDeclarationList(declarations, node.flags), node) : node; - } - function createFunctionDeclaration(modifiers, asteriskToken, name, typeParameters, parameters, type, body) { - var node = createBaseDeclaration(262 /* FunctionDeclaration */); - node.modifiers = asNodeArray(modifiers); - node.asteriskToken = asteriskToken; - node.name = asName(name); - node.typeParameters = asNodeArray(typeParameters); - node.parameters = createNodeArray(parameters); - node.type = type; - node.body = body; - if (!node.body || modifiersToFlags(node.modifiers) & 2 /* Ambient */) { - node.transformFlags = 1 /* ContainsTypeScript */; - } - else { - var isAsync = modifiersToFlags(node.modifiers) & 512 /* Async */; - var isGenerator = !!node.asteriskToken; - var isAsyncGenerator = isAsync && isGenerator; - node.transformFlags = propagateChildrenFlags(node.modifiers) | propagateChildFlags(node.asteriskToken) | propagateNameFlags(node.name) | propagateChildrenFlags(node.typeParameters) | propagateChildrenFlags(node.parameters) | propagateChildFlags(node.type) | propagateChildFlags(node.body) & ~67108864 /* ContainsPossibleTopLevelAwait */ | (isAsyncGenerator ? 128 /* ContainsES2018 */ : isAsync ? 256 /* ContainsES2017 */ : isGenerator ? 2048 /* ContainsGenerator */ : 0 /* None */) | (node.typeParameters || node.type ? 1 /* ContainsTypeScript */ : 0 /* None */) | 4194304 /* ContainsHoistedDeclarationOrCompletion */; - } - node.typeArguments = void 0; - node.jsDoc = void 0; - node.locals = void 0; - node.nextContainer = void 0; - node.endFlowNode = void 0; - node.returnFlowNode = void 0; - return node; - } - function updateFunctionDeclaration(node, modifiers, asteriskToken, name, typeParameters, parameters, type, body) { - return node.modifiers !== modifiers || node.asteriskToken !== asteriskToken || node.name !== name || node.typeParameters !== typeParameters || node.parameters !== parameters || node.type !== type || node.body !== body ? finishUpdateFunctionDeclaration(createFunctionDeclaration(modifiers, asteriskToken, name, typeParameters, parameters, type, body), node) : node; - } - function finishUpdateFunctionDeclaration(updated, original) { - if (updated !== original) { - if (updated.modifiers === original.modifiers) { - updated.modifiers = original.modifiers; - } - } - return finishUpdateBaseSignatureDeclaration(updated, original); - } - function createClassDeclaration(modifiers, name, typeParameters, heritageClauses, members) { - var node = createBaseDeclaration(263 /* ClassDeclaration */); - node.modifiers = asNodeArray(modifiers); - node.name = asName(name); - node.typeParameters = asNodeArray(typeParameters); - node.heritageClauses = asNodeArray(heritageClauses); - node.members = createNodeArray(members); - if (modifiersToFlags(node.modifiers) & 2 /* Ambient */) { - node.transformFlags = 1 /* ContainsTypeScript */; - } - else { - node.transformFlags |= propagateChildrenFlags(node.modifiers) | propagateNameFlags(node.name) | propagateChildrenFlags(node.typeParameters) | propagateChildrenFlags(node.heritageClauses) | propagateChildrenFlags(node.members) | (node.typeParameters ? 1 /* ContainsTypeScript */ : 0 /* None */) | 1024 /* ContainsES2015 */; - if (node.transformFlags & 8192 /* ContainsTypeScriptClassSyntax */) { - node.transformFlags |= 1 /* ContainsTypeScript */; - } - } - node.jsDoc = void 0; - return node; - } - function updateClassDeclaration(node, modifiers, name, typeParameters, heritageClauses, members) { - return node.modifiers !== modifiers || node.name !== name || node.typeParameters !== typeParameters || node.heritageClauses !== heritageClauses || node.members !== members ? update(createClassDeclaration(modifiers, name, typeParameters, heritageClauses, members), node) : node; - } - function createInterfaceDeclaration(modifiers, name, typeParameters, heritageClauses, members) { - var node = createBaseDeclaration(264 /* InterfaceDeclaration */); - node.modifiers = asNodeArray(modifiers); - node.name = asName(name); - node.typeParameters = asNodeArray(typeParameters); - node.heritageClauses = asNodeArray(heritageClauses); - node.members = createNodeArray(members); - node.transformFlags = 1 /* ContainsTypeScript */; - node.jsDoc = void 0; - return node; - } - function updateInterfaceDeclaration(node, modifiers, name, typeParameters, heritageClauses, members) { - return node.modifiers !== modifiers || node.name !== name || node.typeParameters !== typeParameters || node.heritageClauses !== heritageClauses || node.members !== members ? update(createInterfaceDeclaration(modifiers, name, typeParameters, heritageClauses, members), node) : node; - } - function createTypeAliasDeclaration(modifiers, name, typeParameters, type) { - var node = createBaseDeclaration(265 /* TypeAliasDeclaration */); - node.modifiers = asNodeArray(modifiers); - node.name = asName(name); - node.typeParameters = asNodeArray(typeParameters); - node.type = type; - node.transformFlags = 1 /* ContainsTypeScript */; - node.jsDoc = void 0; - node.locals = void 0; - node.nextContainer = void 0; - return node; - } - function updateTypeAliasDeclaration(node, modifiers, name, typeParameters, type) { - return node.modifiers !== modifiers || node.name !== name || node.typeParameters !== typeParameters || node.type !== type ? update(createTypeAliasDeclaration(modifiers, name, typeParameters, type), node) : node; - } - function createEnumDeclaration(modifiers, name, members) { - var node = createBaseDeclaration(266 /* EnumDeclaration */); - node.modifiers = asNodeArray(modifiers); - node.name = asName(name); - node.members = createNodeArray(members); - node.transformFlags |= propagateChildrenFlags(node.modifiers) | propagateChildFlags(node.name) | propagateChildrenFlags(node.members) | 1 /* ContainsTypeScript */; - node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */; - node.jsDoc = void 0; - return node; - } - function updateEnumDeclaration(node, modifiers, name, members) { - return node.modifiers !== modifiers || node.name !== name || node.members !== members ? update(createEnumDeclaration(modifiers, name, members), node) : node; - } - function createModuleDeclaration(modifiers, name, body, flags2 /* None */) { - if (flags2 === void 0) { flags2 = 0; } - var node = createBaseDeclaration(267 /* ModuleDeclaration */); - node.modifiers = asNodeArray(modifiers); - node.flags |= flags2 & (32 /* Namespace */ | 8 /* NestedNamespace */ | 2048 /* GlobalAugmentation */); - node.name = name; - node.body = body; - if (modifiersToFlags(node.modifiers) & 2 /* Ambient */) { - node.transformFlags = 1 /* ContainsTypeScript */; - } - else { - node.transformFlags |= propagateChildrenFlags(node.modifiers) | propagateChildFlags(node.name) | propagateChildFlags(node.body) | 1 /* ContainsTypeScript */; - } - node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */; - node.jsDoc = void 0; - node.locals = void 0; - node.nextContainer = void 0; - return node; - } - function updateModuleDeclaration(node, modifiers, name, body) { - return node.modifiers !== modifiers || node.name !== name || node.body !== body ? update(createModuleDeclaration(modifiers, name, body, node.flags), node) : node; - } - function createModuleBlock(statements) { - var node = createBaseNode(268 /* ModuleBlock */); - node.statements = createNodeArray(statements); - node.transformFlags |= propagateChildrenFlags(node.statements); - node.jsDoc = void 0; - return node; - } - function updateModuleBlock(node, statements) { - return node.statements !== statements ? update(createModuleBlock(statements), node) : node; - } - function createCaseBlock(clauses) { - var node = createBaseNode(269 /* CaseBlock */); - node.clauses = createNodeArray(clauses); - node.transformFlags |= propagateChildrenFlags(node.clauses); - node.locals = void 0; - node.nextContainer = void 0; - return node; - } - function updateCaseBlock(node, clauses) { - return node.clauses !== clauses ? update(createCaseBlock(clauses), node) : node; - } - function createNamespaceExportDeclaration(name) { - var node = createBaseDeclaration(270 /* NamespaceExportDeclaration */); - node.name = asName(name); - node.transformFlags |= propagateIdentifierNameFlags(node.name) | 1 /* ContainsTypeScript */; - node.modifiers = void 0; - node.jsDoc = void 0; - return node; - } - function updateNamespaceExportDeclaration(node, name) { - return node.name !== name ? finishUpdateNamespaceExportDeclaration(createNamespaceExportDeclaration(name), node) : node; - } - function finishUpdateNamespaceExportDeclaration(updated, original) { - if (updated !== original) { - updated.modifiers = original.modifiers; - } - return update(updated, original); - } - function createImportEqualsDeclaration(modifiers, isTypeOnly, name, moduleReference) { - var node = createBaseDeclaration(271 /* ImportEqualsDeclaration */); - node.modifiers = asNodeArray(modifiers); - node.name = asName(name); - node.isTypeOnly = isTypeOnly; - node.moduleReference = moduleReference; - node.transformFlags |= propagateChildrenFlags(node.modifiers) | propagateIdentifierNameFlags(node.name) | propagateChildFlags(node.moduleReference); - if (!isExternalModuleReference(node.moduleReference)) { - node.transformFlags |= 1 /* ContainsTypeScript */; - } - node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */; - node.jsDoc = void 0; - return node; - } - function updateImportEqualsDeclaration(node, modifiers, isTypeOnly, name, moduleReference) { - return node.modifiers !== modifiers || node.isTypeOnly !== isTypeOnly || node.name !== name || node.moduleReference !== moduleReference ? update(createImportEqualsDeclaration(modifiers, isTypeOnly, name, moduleReference), node) : node; - } - function createImportDeclaration(modifiers, importClause, moduleSpecifier, assertClause) { - var node = createBaseNode(272 /* ImportDeclaration */); - node.modifiers = asNodeArray(modifiers); - node.importClause = importClause; - node.moduleSpecifier = moduleSpecifier; - node.assertClause = assertClause; - node.transformFlags |= propagateChildFlags(node.importClause) | propagateChildFlags(node.moduleSpecifier); - node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */; - node.jsDoc = void 0; - return node; - } - function updateImportDeclaration(node, modifiers, importClause, moduleSpecifier, assertClause) { - return node.modifiers !== modifiers || node.importClause !== importClause || node.moduleSpecifier !== moduleSpecifier || node.assertClause !== assertClause ? update(createImportDeclaration(modifiers, importClause, moduleSpecifier, assertClause), node) : node; - } - function createImportClause(isTypeOnly, name, namedBindings) { - var node = createBaseDeclaration(273 /* ImportClause */); - node.isTypeOnly = isTypeOnly; - node.name = name; - node.namedBindings = namedBindings; - node.transformFlags |= propagateChildFlags(node.name) | propagateChildFlags(node.namedBindings); - if (isTypeOnly) { - node.transformFlags |= 1 /* ContainsTypeScript */; - } - node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */; - return node; - } - function updateImportClause(node, isTypeOnly, name, namedBindings) { - return node.isTypeOnly !== isTypeOnly || node.name !== name || node.namedBindings !== namedBindings ? update(createImportClause(isTypeOnly, name, namedBindings), node) : node; - } - function createAssertClause(elements, multiLine) { - var node = createBaseNode(300 /* AssertClause */); - node.elements = createNodeArray(elements); - node.multiLine = multiLine; - node.transformFlags |= 4 /* ContainsESNext */; - return node; - } - function updateAssertClause(node, elements, multiLine) { - return node.elements !== elements || node.multiLine !== multiLine ? update(createAssertClause(elements, multiLine), node) : node; - } - function createAssertEntry(name, value) { - var node = createBaseNode(301 /* AssertEntry */); - node.name = name; - node.value = value; - node.transformFlags |= 4 /* ContainsESNext */; - return node; - } - function updateAssertEntry(node, name, value) { - return node.name !== name || node.value !== value ? update(createAssertEntry(name, value), node) : node; - } - function createImportTypeAssertionContainer(clause, multiLine) { - var node = createBaseNode(302 /* ImportTypeAssertionContainer */); - node.assertClause = clause; - node.multiLine = multiLine; - return node; - } - function updateImportTypeAssertionContainer(node, clause, multiLine) { - return node.assertClause !== clause || node.multiLine !== multiLine ? update(createImportTypeAssertionContainer(clause, multiLine), node) : node; - } - function createNamespaceImport(name) { - var node = createBaseDeclaration(274 /* NamespaceImport */); - node.name = name; - node.transformFlags |= propagateChildFlags(node.name); - node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */; - return node; - } - function updateNamespaceImport(node, name) { - return node.name !== name ? update(createNamespaceImport(name), node) : node; - } - function createNamespaceExport(name) { - var node = createBaseDeclaration(280 /* NamespaceExport */); - node.name = name; - node.transformFlags |= propagateChildFlags(node.name) | 32 /* ContainsES2020 */; - node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */; - return node; - } - function updateNamespaceExport(node, name) { - return node.name !== name ? update(createNamespaceExport(name), node) : node; - } - function createNamedImports(elements) { - var node = createBaseNode(275 /* NamedImports */); - node.elements = createNodeArray(elements); - node.transformFlags |= propagateChildrenFlags(node.elements); - node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */; - return node; - } - function updateNamedImports(node, elements) { - return node.elements !== elements ? update(createNamedImports(elements), node) : node; - } - function createImportSpecifier(isTypeOnly, propertyName, name) { - var node = createBaseDeclaration(276 /* ImportSpecifier */); - node.isTypeOnly = isTypeOnly; - node.propertyName = propertyName; - node.name = name; - node.transformFlags |= propagateChildFlags(node.propertyName) | propagateChildFlags(node.name); - node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */; - return node; - } - function updateImportSpecifier(node, isTypeOnly, propertyName, name) { - return node.isTypeOnly !== isTypeOnly || node.propertyName !== propertyName || node.name !== name ? update(createImportSpecifier(isTypeOnly, propertyName, name), node) : node; - } - function createExportAssignment2(modifiers, isExportEquals, expression) { - var node = createBaseDeclaration(277 /* ExportAssignment */); - node.modifiers = asNodeArray(modifiers); - node.isExportEquals = isExportEquals; - node.expression = isExportEquals ? parenthesizerRules().parenthesizeRightSideOfBinary(64 /* EqualsToken */, - /*leftSide*/ - void 0, expression) : parenthesizerRules().parenthesizeExpressionOfExportDefault(expression); - node.transformFlags |= propagateChildrenFlags(node.modifiers) | propagateChildFlags(node.expression); - node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */; - node.jsDoc = void 0; - return node; - } - function updateExportAssignment(node, modifiers, expression) { - return node.modifiers !== modifiers || node.expression !== expression ? update(createExportAssignment2(modifiers, node.isExportEquals, expression), node) : node; - } - function createExportDeclaration(modifiers, isTypeOnly, exportClause, moduleSpecifier, assertClause) { - var node = createBaseDeclaration(278 /* ExportDeclaration */); - node.modifiers = asNodeArray(modifiers); - node.isTypeOnly = isTypeOnly; - node.exportClause = exportClause; - node.moduleSpecifier = moduleSpecifier; - node.assertClause = assertClause; - node.transformFlags |= propagateChildrenFlags(node.modifiers) | propagateChildFlags(node.exportClause) | propagateChildFlags(node.moduleSpecifier); - node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */; - node.jsDoc = void 0; - return node; - } - function updateExportDeclaration(node, modifiers, isTypeOnly, exportClause, moduleSpecifier, assertClause) { - return node.modifiers !== modifiers || node.isTypeOnly !== isTypeOnly || node.exportClause !== exportClause || node.moduleSpecifier !== moduleSpecifier || node.assertClause !== assertClause ? finishUpdateExportDeclaration(createExportDeclaration(modifiers, isTypeOnly, exportClause, moduleSpecifier, assertClause), node) : node; - } - function finishUpdateExportDeclaration(updated, original) { - if (updated !== original) { - if (updated.modifiers === original.modifiers) { - updated.modifiers = original.modifiers; - } - } - return update(updated, original); - } - function createNamedExports(elements) { - var node = createBaseNode(279 /* NamedExports */); - node.elements = createNodeArray(elements); - node.transformFlags |= propagateChildrenFlags(node.elements); - node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */; - return node; - } - function updateNamedExports(node, elements) { - return node.elements !== elements ? update(createNamedExports(elements), node) : node; - } - function createExportSpecifier(isTypeOnly, propertyName, name) { - var node = createBaseNode(281 /* ExportSpecifier */); - node.isTypeOnly = isTypeOnly; - node.propertyName = asName(propertyName); - node.name = asName(name); - node.transformFlags |= propagateChildFlags(node.propertyName) | propagateChildFlags(node.name); - node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */; - node.jsDoc = void 0; - return node; - } - function updateExportSpecifier(node, isTypeOnly, propertyName, name) { - return node.isTypeOnly !== isTypeOnly || node.propertyName !== propertyName || node.name !== name ? update(createExportSpecifier(isTypeOnly, propertyName, name), node) : node; - } - function createMissingDeclaration() { - var node = createBaseDeclaration(282 /* MissingDeclaration */); - node.jsDoc = void 0; - return node; - } - function createExternalModuleReference(expression) { - var node = createBaseNode(283 /* ExternalModuleReference */); - node.expression = expression; - node.transformFlags |= propagateChildFlags(node.expression); - node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */; - return node; - } - function updateExternalModuleReference(node, expression) { - return node.expression !== expression ? update(createExternalModuleReference(expression), node) : node; - } - function createJSDocPrimaryTypeWorker(kind) { - return createBaseNode(kind); - } - function createJSDocPrePostfixUnaryTypeWorker(kind, type, postfix) { - if (postfix === void 0) { postfix = false; } - var node = createJSDocUnaryTypeWorker(kind, postfix ? type && parenthesizerRules().parenthesizeNonArrayTypeOfPostfixType(type) : type); - node.postfix = postfix; - return node; - } - function createJSDocUnaryTypeWorker(kind, type) { - var node = createBaseNode(kind); - node.type = type; - return node; - } - function updateJSDocPrePostfixUnaryTypeWorker(kind, node, type) { - return node.type !== type ? update(createJSDocPrePostfixUnaryTypeWorker(kind, type, node.postfix), node) : node; - } - function updateJSDocUnaryTypeWorker(kind, node, type) { - return node.type !== type ? update(createJSDocUnaryTypeWorker(kind, type), node) : node; - } - function createJSDocFunctionType(parameters, type) { - var node = createBaseDeclaration(324 /* JSDocFunctionType */); - node.parameters = asNodeArray(parameters); - node.type = type; - node.transformFlags = propagateChildrenFlags(node.parameters) | (node.type ? 1 /* ContainsTypeScript */ : 0 /* None */); - node.jsDoc = void 0; - node.locals = void 0; - node.nextContainer = void 0; - node.typeArguments = void 0; - return node; - } - function updateJSDocFunctionType(node, parameters, type) { - return node.parameters !== parameters || node.type !== type ? update(createJSDocFunctionType(parameters, type), node) : node; - } - function createJSDocTypeLiteral(propertyTags, isArrayType) { - if (isArrayType === void 0) { isArrayType = false; } - var node = createBaseDeclaration(329 /* JSDocTypeLiteral */); - node.jsDocPropertyTags = asNodeArray(propertyTags); - node.isArrayType = isArrayType; - return node; - } - function updateJSDocTypeLiteral(node, propertyTags, isArrayType) { - return node.jsDocPropertyTags !== propertyTags || node.isArrayType !== isArrayType ? update(createJSDocTypeLiteral(propertyTags, isArrayType), node) : node; - } - function createJSDocTypeExpression(type) { - var node = createBaseNode(316 /* JSDocTypeExpression */); - node.type = type; - return node; - } - function updateJSDocTypeExpression(node, type) { - return node.type !== type ? update(createJSDocTypeExpression(type), node) : node; - } - function createJSDocSignature(typeParameters, parameters, type) { - var node = createBaseDeclaration(330 /* JSDocSignature */); - node.typeParameters = asNodeArray(typeParameters); - node.parameters = createNodeArray(parameters); - node.type = type; - node.jsDoc = void 0; - node.locals = void 0; - node.nextContainer = void 0; - return node; - } - function updateJSDocSignature(node, typeParameters, parameters, type) { - return node.typeParameters !== typeParameters || node.parameters !== parameters || node.type !== type ? update(createJSDocSignature(typeParameters, parameters, type), node) : node; - } - function getDefaultTagName(node) { - var defaultTagName = getDefaultTagNameForKind(node.kind); - return node.tagName.escapedText === escapeLeadingUnderscores(defaultTagName) ? node.tagName : createIdentifier(defaultTagName); - } - function createBaseJSDocTag(kind, tagName, comment) { - var node = createBaseNode(kind); - node.tagName = tagName; - node.comment = comment; - return node; - } - function createBaseJSDocTagDeclaration(kind, tagName, comment) { - var node = createBaseDeclaration(kind); - node.tagName = tagName; - node.comment = comment; - return node; - } - function createJSDocTemplateTag(tagName, constraint, typeParameters, comment) { - var node = createBaseJSDocTag(352 /* JSDocTemplateTag */, tagName !== null && tagName !== void 0 ? tagName : createIdentifier("template"), comment); - node.constraint = constraint; - node.typeParameters = createNodeArray(typeParameters); - return node; - } - function updateJSDocTemplateTag(node, tagName, constraint, typeParameters, comment) { - if (tagName === void 0) { tagName = getDefaultTagName(node); } - return node.tagName !== tagName || node.constraint !== constraint || node.typeParameters !== typeParameters || node.comment !== comment ? update(createJSDocTemplateTag(tagName, constraint, typeParameters, comment), node) : node; - } - function createJSDocTypedefTag(tagName, typeExpression, fullName, comment) { - var node = createBaseJSDocTagDeclaration(353 /* JSDocTypedefTag */, tagName !== null && tagName !== void 0 ? tagName : createIdentifier("typedef"), comment); - node.typeExpression = typeExpression; - node.fullName = fullName; - node.name = getJSDocTypeAliasName(fullName); - node.locals = void 0; - node.nextContainer = void 0; - return node; - } - function updateJSDocTypedefTag(node, tagName, typeExpression, fullName, comment) { - if (tagName === void 0) { tagName = getDefaultTagName(node); } - return node.tagName !== tagName || node.typeExpression !== typeExpression || node.fullName !== fullName || node.comment !== comment ? update(createJSDocTypedefTag(tagName, typeExpression, fullName, comment), node) : node; - } - function createJSDocParameterTag(tagName, name, isBracketed, typeExpression, isNameFirst, comment) { - var node = createBaseJSDocTagDeclaration(348 /* JSDocParameterTag */, tagName !== null && tagName !== void 0 ? tagName : createIdentifier("param"), comment); - node.typeExpression = typeExpression; - node.name = name; - node.isNameFirst = !!isNameFirst; - node.isBracketed = isBracketed; - return node; - } - function updateJSDocParameterTag(node, tagName, name, isBracketed, typeExpression, isNameFirst, comment) { - if (tagName === void 0) { tagName = getDefaultTagName(node); } - return node.tagName !== tagName || node.name !== name || node.isBracketed !== isBracketed || node.typeExpression !== typeExpression || node.isNameFirst !== isNameFirst || node.comment !== comment ? update(createJSDocParameterTag(tagName, name, isBracketed, typeExpression, isNameFirst, comment), node) : node; - } - function createJSDocPropertyTag(tagName, name, isBracketed, typeExpression, isNameFirst, comment) { - var node = createBaseJSDocTagDeclaration(355 /* JSDocPropertyTag */, tagName !== null && tagName !== void 0 ? tagName : createIdentifier("prop"), comment); - node.typeExpression = typeExpression; - node.name = name; - node.isNameFirst = !!isNameFirst; - node.isBracketed = isBracketed; - return node; - } - function updateJSDocPropertyTag(node, tagName, name, isBracketed, typeExpression, isNameFirst, comment) { - if (tagName === void 0) { tagName = getDefaultTagName(node); } - return node.tagName !== tagName || node.name !== name || node.isBracketed !== isBracketed || node.typeExpression !== typeExpression || node.isNameFirst !== isNameFirst || node.comment !== comment ? update(createJSDocPropertyTag(tagName, name, isBracketed, typeExpression, isNameFirst, comment), node) : node; - } - function createJSDocCallbackTag(tagName, typeExpression, fullName, comment) { - var node = createBaseJSDocTagDeclaration(345 /* JSDocCallbackTag */, tagName !== null && tagName !== void 0 ? tagName : createIdentifier("callback"), comment); - node.typeExpression = typeExpression; - node.fullName = fullName; - node.name = getJSDocTypeAliasName(fullName); - node.locals = void 0; - node.nextContainer = void 0; - return node; - } - function updateJSDocCallbackTag(node, tagName, typeExpression, fullName, comment) { - if (tagName === void 0) { tagName = getDefaultTagName(node); } - return node.tagName !== tagName || node.typeExpression !== typeExpression || node.fullName !== fullName || node.comment !== comment ? update(createJSDocCallbackTag(tagName, typeExpression, fullName, comment), node) : node; - } - function createJSDocOverloadTag(tagName, typeExpression, comment) { - var node = createBaseJSDocTag(346 /* JSDocOverloadTag */, tagName !== null && tagName !== void 0 ? tagName : createIdentifier("overload"), comment); - node.typeExpression = typeExpression; - return node; - } - function updateJSDocOverloadTag(node, tagName, typeExpression, comment) { - if (tagName === void 0) { tagName = getDefaultTagName(node); } - return node.tagName !== tagName || node.typeExpression !== typeExpression || node.comment !== comment ? update(createJSDocOverloadTag(tagName, typeExpression, comment), node) : node; - } - function createJSDocAugmentsTag(tagName, className, comment) { - var node = createBaseJSDocTag(335 /* JSDocAugmentsTag */, tagName !== null && tagName !== void 0 ? tagName : createIdentifier("augments"), comment); - node.class = className; - return node; - } - function updateJSDocAugmentsTag(node, tagName, className, comment) { - if (tagName === void 0) { tagName = getDefaultTagName(node); } - return node.tagName !== tagName || node.class !== className || node.comment !== comment ? update(createJSDocAugmentsTag(tagName, className, comment), node) : node; - } - function createJSDocImplementsTag(tagName, className, comment) { - var node = createBaseJSDocTag(336 /* JSDocImplementsTag */, tagName !== null && tagName !== void 0 ? tagName : createIdentifier("implements"), comment); - node.class = className; - return node; - } - function createJSDocSeeTag(tagName, name, comment) { - var node = createBaseJSDocTag(354 /* JSDocSeeTag */, tagName !== null && tagName !== void 0 ? tagName : createIdentifier("see"), comment); - node.name = name; - return node; - } - function updateJSDocSeeTag(node, tagName, name, comment) { - return node.tagName !== tagName || node.name !== name || node.comment !== comment ? update(createJSDocSeeTag(tagName, name, comment), node) : node; - } - function createJSDocNameReference(name) { - var node = createBaseNode(317 /* JSDocNameReference */); - node.name = name; - return node; - } - function updateJSDocNameReference(node, name) { - return node.name !== name ? update(createJSDocNameReference(name), node) : node; - } - function createJSDocMemberName(left, right) { - var node = createBaseNode(318 /* JSDocMemberName */); - node.left = left; - node.right = right; - node.transformFlags |= propagateChildFlags(node.left) | propagateChildFlags(node.right); - return node; - } - function updateJSDocMemberName(node, left, right) { - return node.left !== left || node.right !== right ? update(createJSDocMemberName(left, right), node) : node; - } - function createJSDocLink(name, text) { - var node = createBaseNode(331 /* JSDocLink */); - node.name = name; - node.text = text; - return node; - } - function updateJSDocLink(node, name, text) { - return node.name !== name ? update(createJSDocLink(name, text), node) : node; - } - function createJSDocLinkCode(name, text) { - var node = createBaseNode(332 /* JSDocLinkCode */); - node.name = name; - node.text = text; - return node; - } - function updateJSDocLinkCode(node, name, text) { - return node.name !== name ? update(createJSDocLinkCode(name, text), node) : node; - } - function createJSDocLinkPlain(name, text) { - var node = createBaseNode(333 /* JSDocLinkPlain */); - node.name = name; - node.text = text; - return node; - } - function updateJSDocLinkPlain(node, name, text) { - return node.name !== name ? update(createJSDocLinkPlain(name, text), node) : node; - } - function updateJSDocImplementsTag(node, tagName, className, comment) { - if (tagName === void 0) { tagName = getDefaultTagName(node); } - return node.tagName !== tagName || node.class !== className || node.comment !== comment ? update(createJSDocImplementsTag(tagName, className, comment), node) : node; - } - function createJSDocSimpleTagWorker(kind, tagName, comment) { - var node = createBaseJSDocTag(kind, tagName !== null && tagName !== void 0 ? tagName : createIdentifier(getDefaultTagNameForKind(kind)), comment); - return node; - } - function updateJSDocSimpleTagWorker(kind, node, tagName, comment) { - if (tagName === void 0) { tagName = getDefaultTagName(node); } - return node.tagName !== tagName || node.comment !== comment ? update(createJSDocSimpleTagWorker(kind, tagName, comment), node) : node; - } - function createJSDocTypeLikeTagWorker(kind, tagName, typeExpression, comment) { - var node = createBaseJSDocTag(kind, tagName !== null && tagName !== void 0 ? tagName : createIdentifier(getDefaultTagNameForKind(kind)), comment); - node.typeExpression = typeExpression; - return node; - } - function updateJSDocTypeLikeTagWorker(kind, node, tagName, typeExpression, comment) { - if (tagName === void 0) { tagName = getDefaultTagName(node); } - return node.tagName !== tagName || node.typeExpression !== typeExpression || node.comment !== comment ? update(createJSDocTypeLikeTagWorker(kind, tagName, typeExpression, comment), node) : node; - } - function createJSDocUnknownTag(tagName, comment) { - var node = createBaseJSDocTag(334 /* JSDocTag */, tagName, comment); - return node; - } - function updateJSDocUnknownTag(node, tagName, comment) { - return node.tagName !== tagName || node.comment !== comment ? update(createJSDocUnknownTag(tagName, comment), node) : node; - } - function createJSDocEnumTag(tagName, typeExpression, comment) { - var node = createBaseJSDocTagDeclaration(347 /* JSDocEnumTag */, tagName !== null && tagName !== void 0 ? tagName : createIdentifier(getDefaultTagNameForKind(347 /* JSDocEnumTag */)), comment); - node.typeExpression = typeExpression; - node.locals = void 0; - node.nextContainer = void 0; - return node; - } - function updateJSDocEnumTag(node, tagName, typeExpression, comment) { - if (tagName === void 0) { tagName = getDefaultTagName(node); } - return node.tagName !== tagName || node.typeExpression !== typeExpression || node.comment !== comment ? update(createJSDocEnumTag(tagName, typeExpression, comment), node) : node; - } - function createJSDocText(text) { - var node = createBaseNode(328 /* JSDocText */); - node.text = text; - return node; - } - function updateJSDocText(node, text) { - return node.text !== text ? update(createJSDocText(text), node) : node; - } - function createJSDocComment(comment, tags) { - var node = createBaseNode(327 /* JSDoc */); - node.comment = comment; - node.tags = asNodeArray(tags); - return node; - } - function updateJSDocComment(node, comment, tags) { - return node.comment !== comment || node.tags !== tags ? update(createJSDocComment(comment, tags), node) : node; - } - function createJsxElement(openingElement, children, closingElement) { - var node = createBaseNode(284 /* JsxElement */); - node.openingElement = openingElement; - node.children = createNodeArray(children); - node.closingElement = closingElement; - node.transformFlags |= propagateChildFlags(node.openingElement) | propagateChildrenFlags(node.children) | propagateChildFlags(node.closingElement) | 2 /* ContainsJsx */; - return node; - } - function updateJsxElement(node, openingElement, children, closingElement) { - return node.openingElement !== openingElement || node.children !== children || node.closingElement !== closingElement ? update(createJsxElement(openingElement, children, closingElement), node) : node; - } - function createJsxSelfClosingElement(tagName, typeArguments, attributes) { - var node = createBaseNode(285 /* JsxSelfClosingElement */); - node.tagName = tagName; - node.typeArguments = asNodeArray(typeArguments); - node.attributes = attributes; - node.transformFlags |= propagateChildFlags(node.tagName) | propagateChildrenFlags(node.typeArguments) | propagateChildFlags(node.attributes) | 2 /* ContainsJsx */; - if (node.typeArguments) { - node.transformFlags |= 1 /* ContainsTypeScript */; - } - return node; - } - function updateJsxSelfClosingElement(node, tagName, typeArguments, attributes) { - return node.tagName !== tagName || node.typeArguments !== typeArguments || node.attributes !== attributes ? update(createJsxSelfClosingElement(tagName, typeArguments, attributes), node) : node; - } - function createJsxOpeningElement(tagName, typeArguments, attributes) { - var node = createBaseNode(286 /* JsxOpeningElement */); - node.tagName = tagName; - node.typeArguments = asNodeArray(typeArguments); - node.attributes = attributes; - node.transformFlags |= propagateChildFlags(node.tagName) | propagateChildrenFlags(node.typeArguments) | propagateChildFlags(node.attributes) | 2 /* ContainsJsx */; - if (typeArguments) { - node.transformFlags |= 1 /* ContainsTypeScript */; - } - return node; - } - function updateJsxOpeningElement(node, tagName, typeArguments, attributes) { - return node.tagName !== tagName || node.typeArguments !== typeArguments || node.attributes !== attributes ? update(createJsxOpeningElement(tagName, typeArguments, attributes), node) : node; - } - function createJsxClosingElement(tagName) { - var node = createBaseNode(287 /* JsxClosingElement */); - node.tagName = tagName; - node.transformFlags |= propagateChildFlags(node.tagName) | 2 /* ContainsJsx */; - return node; - } - function updateJsxClosingElement(node, tagName) { - return node.tagName !== tagName ? update(createJsxClosingElement(tagName), node) : node; - } - function createJsxFragment(openingFragment, children, closingFragment) { - var node = createBaseNode(288 /* JsxFragment */); - node.openingFragment = openingFragment; - node.children = createNodeArray(children); - node.closingFragment = closingFragment; - node.transformFlags |= propagateChildFlags(node.openingFragment) | propagateChildrenFlags(node.children) | propagateChildFlags(node.closingFragment) | 2 /* ContainsJsx */; - return node; - } - function updateJsxFragment(node, openingFragment, children, closingFragment) { - return node.openingFragment !== openingFragment || node.children !== children || node.closingFragment !== closingFragment ? update(createJsxFragment(openingFragment, children, closingFragment), node) : node; - } - function createJsxText(text, containsOnlyTriviaWhiteSpaces) { - var node = createBaseNode(12 /* JsxText */); - node.text = text; - node.containsOnlyTriviaWhiteSpaces = !!containsOnlyTriviaWhiteSpaces; - node.transformFlags |= 2 /* ContainsJsx */; - return node; - } - function updateJsxText(node, text, containsOnlyTriviaWhiteSpaces) { - return node.text !== text || node.containsOnlyTriviaWhiteSpaces !== containsOnlyTriviaWhiteSpaces ? update(createJsxText(text, containsOnlyTriviaWhiteSpaces), node) : node; - } - function createJsxOpeningFragment() { - var node = createBaseNode(289 /* JsxOpeningFragment */); - node.transformFlags |= 2 /* ContainsJsx */; - return node; - } - function createJsxJsxClosingFragment() { - var node = createBaseNode(290 /* JsxClosingFragment */); - node.transformFlags |= 2 /* ContainsJsx */; - return node; - } - function createJsxAttribute(name, initializer) { - var node = createBaseDeclaration(291 /* JsxAttribute */); - node.name = name; - node.initializer = initializer; - node.transformFlags |= propagateChildFlags(node.name) | propagateChildFlags(node.initializer) | 2 /* ContainsJsx */; - return node; - } - function updateJsxAttribute(node, name, initializer) { - return node.name !== name || node.initializer !== initializer ? update(createJsxAttribute(name, initializer), node) : node; - } - function createJsxAttributes(properties) { - var node = createBaseDeclaration(292 /* JsxAttributes */); - node.properties = createNodeArray(properties); - node.transformFlags |= propagateChildrenFlags(node.properties) | 2 /* ContainsJsx */; - return node; - } - function updateJsxAttributes(node, properties) { - return node.properties !== properties ? update(createJsxAttributes(properties), node) : node; - } - function createJsxSpreadAttribute(expression) { - var node = createBaseNode(293 /* JsxSpreadAttribute */); - node.expression = expression; - node.transformFlags |= propagateChildFlags(node.expression) | 2 /* ContainsJsx */; - return node; - } - function updateJsxSpreadAttribute(node, expression) { - return node.expression !== expression ? update(createJsxSpreadAttribute(expression), node) : node; - } - function createJsxExpression(dotDotDotToken, expression) { - var node = createBaseNode(294 /* JsxExpression */); - node.dotDotDotToken = dotDotDotToken; - node.expression = expression; - node.transformFlags |= propagateChildFlags(node.dotDotDotToken) | propagateChildFlags(node.expression) | 2 /* ContainsJsx */; - return node; - } - function updateJsxExpression(node, expression) { - return node.expression !== expression ? update(createJsxExpression(node.dotDotDotToken, expression), node) : node; - } - function createJsxNamespacedName(namespace, name) { - var node = createBaseNode(295 /* JsxNamespacedName */); - node.namespace = namespace; - node.name = name; - node.transformFlags |= propagateChildFlags(node.namespace) | propagateChildFlags(node.name) | 2 /* ContainsJsx */; - return node; - } - function updateJsxNamespacedName(node, namespace, name) { - return node.namespace !== namespace || node.name !== name ? update(createJsxNamespacedName(namespace, name), node) : node; - } - function createCaseClause(expression, statements) { - var node = createBaseNode(296 /* CaseClause */); - node.expression = parenthesizerRules().parenthesizeExpressionForDisallowedComma(expression); - node.statements = createNodeArray(statements); - node.transformFlags |= propagateChildFlags(node.expression) | propagateChildrenFlags(node.statements); - node.jsDoc = void 0; - return node; - } - function updateCaseClause(node, expression, statements) { - return node.expression !== expression || node.statements !== statements ? update(createCaseClause(expression, statements), node) : node; - } - function createDefaultClause(statements) { - var node = createBaseNode(297 /* DefaultClause */); - node.statements = createNodeArray(statements); - node.transformFlags = propagateChildrenFlags(node.statements); - return node; - } - function updateDefaultClause(node, statements) { - return node.statements !== statements ? update(createDefaultClause(statements), node) : node; - } - function createHeritageClause(token, types) { - var node = createBaseNode(298 /* HeritageClause */); - node.token = token; - node.types = createNodeArray(types); - node.transformFlags |= propagateChildrenFlags(node.types); - switch (token) { - case 96 /* ExtendsKeyword */: - node.transformFlags |= 1024 /* ContainsES2015 */; - break; - case 119 /* ImplementsKeyword */: - node.transformFlags |= 1 /* ContainsTypeScript */; - break; - default: - return Debug.assertNever(token); - } - return node; - } - function updateHeritageClause(node, types) { - return node.types !== types ? update(createHeritageClause(node.token, types), node) : node; - } - function createCatchClause(variableDeclaration, block) { - var node = createBaseNode(299 /* CatchClause */); - node.variableDeclaration = asVariableDeclaration(variableDeclaration); - node.block = block; - node.transformFlags |= propagateChildFlags(node.variableDeclaration) | propagateChildFlags(node.block) | (!variableDeclaration ? 64 /* ContainsES2019 */ : 0 /* None */); - node.locals = void 0; - node.nextContainer = void 0; - return node; - } - function updateCatchClause(node, variableDeclaration, block) { - return node.variableDeclaration !== variableDeclaration || node.block !== block ? update(createCatchClause(variableDeclaration, block), node) : node; - } - function createPropertyAssignment(name, initializer) { - var node = createBaseDeclaration(303 /* PropertyAssignment */); - node.name = asName(name); - node.initializer = parenthesizerRules().parenthesizeExpressionForDisallowedComma(initializer); - node.transformFlags |= propagateNameFlags(node.name) | propagateChildFlags(node.initializer); - node.modifiers = void 0; - node.questionToken = void 0; - node.exclamationToken = void 0; - node.jsDoc = void 0; - return node; - } - function updatePropertyAssignment(node, name, initializer) { - return node.name !== name || node.initializer !== initializer ? finishUpdatePropertyAssignment(createPropertyAssignment(name, initializer), node) : node; - } - function finishUpdatePropertyAssignment(updated, original) { - if (updated !== original) { - updated.modifiers = original.modifiers; - updated.questionToken = original.questionToken; - updated.exclamationToken = original.exclamationToken; - } - return update(updated, original); - } - function createShorthandPropertyAssignment(name, objectAssignmentInitializer) { - var node = createBaseDeclaration(304 /* ShorthandPropertyAssignment */); - node.name = asName(name); - node.objectAssignmentInitializer = objectAssignmentInitializer && parenthesizerRules().parenthesizeExpressionForDisallowedComma(objectAssignmentInitializer); - node.transformFlags |= propagateIdentifierNameFlags(node.name) | propagateChildFlags(node.objectAssignmentInitializer) | 1024 /* ContainsES2015 */; - node.equalsToken = void 0; - node.modifiers = void 0; - node.questionToken = void 0; - node.exclamationToken = void 0; - node.jsDoc = void 0; - return node; - } - function updateShorthandPropertyAssignment(node, name, objectAssignmentInitializer) { - return node.name !== name || node.objectAssignmentInitializer !== objectAssignmentInitializer ? finishUpdateShorthandPropertyAssignment(createShorthandPropertyAssignment(name, objectAssignmentInitializer), node) : node; - } - function finishUpdateShorthandPropertyAssignment(updated, original) { - if (updated !== original) { - updated.modifiers = original.modifiers; - updated.questionToken = original.questionToken; - updated.exclamationToken = original.exclamationToken; - updated.equalsToken = original.equalsToken; - } - return update(updated, original); - } - function createSpreadAssignment(expression) { - var node = createBaseDeclaration(305 /* SpreadAssignment */); - node.expression = parenthesizerRules().parenthesizeExpressionForDisallowedComma(expression); - node.transformFlags |= propagateChildFlags(node.expression) | 128 /* ContainsES2018 */ | 65536 /* ContainsObjectRestOrSpread */; - node.jsDoc = void 0; - return node; - } - function updateSpreadAssignment(node, expression) { - return node.expression !== expression ? update(createSpreadAssignment(expression), node) : node; - } - function createEnumMember(name, initializer) { - var node = createBaseDeclaration(306 /* EnumMember */); - node.name = asName(name); - node.initializer = initializer && parenthesizerRules().parenthesizeExpressionForDisallowedComma(initializer); - node.transformFlags |= propagateChildFlags(node.name) | propagateChildFlags(node.initializer) | 1 /* ContainsTypeScript */; - node.jsDoc = void 0; - return node; - } - function updateEnumMember(node, name, initializer) { - return node.name !== name || node.initializer !== initializer ? update(createEnumMember(name, initializer), node) : node; - } - function createSourceFile2(statements, endOfFileToken, flags2) { - var node = baseFactory2.createBaseSourceFileNode(312 /* SourceFile */); - node.statements = createNodeArray(statements); - node.endOfFileToken = endOfFileToken; - node.flags |= flags2; - node.text = ""; - node.fileName = ""; - node.path = ""; - node.resolvedPath = ""; - node.originalFileName = ""; - node.languageVersion = 0; - node.languageVariant = 0; - node.scriptKind = 0; - node.isDeclarationFile = false; - node.hasNoDefaultLib = false; - node.transformFlags |= propagateChildrenFlags(node.statements) | propagateChildFlags(node.endOfFileToken); - node.locals = void 0; - node.nextContainer = void 0; - node.endFlowNode = void 0; - node.nodeCount = 0; - node.identifierCount = 0; - node.symbolCount = 0; - node.parseDiagnostics = void 0; - node.bindDiagnostics = void 0; - node.bindSuggestionDiagnostics = void 0; - node.lineMap = void 0; - node.externalModuleIndicator = void 0; - node.setExternalModuleIndicator = void 0; - node.pragmas = void 0; - node.checkJsDirective = void 0; - node.referencedFiles = void 0; - node.typeReferenceDirectives = void 0; - node.libReferenceDirectives = void 0; - node.amdDependencies = void 0; - node.commentDirectives = void 0; - node.identifiers = void 0; - node.packageJsonLocations = void 0; - node.packageJsonScope = void 0; - node.imports = void 0; - node.moduleAugmentations = void 0; - node.ambientModuleNames = void 0; - node.resolvedModules = void 0; - node.classifiableNames = void 0; - node.impliedNodeFormat = void 0; - return node; - } - function createRedirectedSourceFile(redirectInfo) { - var node = Object.create(redirectInfo.redirectTarget); - Object.defineProperties(node, { - id: { - get: function () { - return this.redirectInfo.redirectTarget.id; - }, - set: function (value) { - this.redirectInfo.redirectTarget.id = value; - } - }, - symbol: { - get: function () { - return this.redirectInfo.redirectTarget.symbol; - }, - set: function (value) { - this.redirectInfo.redirectTarget.symbol = value; - } - } - }); - node.redirectInfo = redirectInfo; - return node; - } - function cloneRedirectedSourceFile(source) { - var node = createRedirectedSourceFile(source.redirectInfo); - node.flags |= source.flags & ~16 /* Synthesized */; - node.fileName = source.fileName; - node.path = source.path; - node.resolvedPath = source.resolvedPath; - node.originalFileName = source.originalFileName; - node.packageJsonLocations = source.packageJsonLocations; - node.packageJsonScope = source.packageJsonScope; - node.emitNode = void 0; - return node; - } - function cloneSourceFileWorker(source) { - var node = baseFactory2.createBaseSourceFileNode(312 /* SourceFile */); - node.flags |= source.flags & ~16 /* Synthesized */; - for (var p in source) { - if (hasProperty(node, p) || !hasProperty(source, p)) { - continue; - } - if (p === "emitNode") { - node.emitNode = void 0; - continue; - } - node[p] = source[p]; - } - return node; - } - function cloneSourceFile(source) { - var node = source.redirectInfo ? cloneRedirectedSourceFile(source) : cloneSourceFileWorker(source); - setOriginalNode(node, source); - return node; - } - function cloneSourceFileWithChanges(source, statements, isDeclarationFile, referencedFiles, typeReferences, hasNoDefaultLib, libReferences) { - var node = cloneSourceFile(source); - node.statements = createNodeArray(statements); - node.isDeclarationFile = isDeclarationFile; - node.referencedFiles = referencedFiles; - node.typeReferenceDirectives = typeReferences; - node.hasNoDefaultLib = hasNoDefaultLib; - node.libReferenceDirectives = libReferences; - node.transformFlags = propagateChildrenFlags(node.statements) | propagateChildFlags(node.endOfFileToken); - return node; - } - function updateSourceFile2(node, statements, isDeclarationFile, referencedFiles, typeReferenceDirectives, hasNoDefaultLib, libReferenceDirectives) { - if (isDeclarationFile === void 0) { isDeclarationFile = node.isDeclarationFile; } - if (referencedFiles === void 0) { referencedFiles = node.referencedFiles; } - if (typeReferenceDirectives === void 0) { typeReferenceDirectives = node.typeReferenceDirectives; } - if (hasNoDefaultLib === void 0) { hasNoDefaultLib = node.hasNoDefaultLib; } - if (libReferenceDirectives === void 0) { libReferenceDirectives = node.libReferenceDirectives; } - return node.statements !== statements || node.isDeclarationFile !== isDeclarationFile || node.referencedFiles !== referencedFiles || node.typeReferenceDirectives !== typeReferenceDirectives || node.hasNoDefaultLib !== hasNoDefaultLib || node.libReferenceDirectives !== libReferenceDirectives ? update(cloneSourceFileWithChanges(node, statements, isDeclarationFile, referencedFiles, typeReferenceDirectives, hasNoDefaultLib, libReferenceDirectives), node) : node; - } - function createBundle(sourceFiles, prepends) { - if (prepends === void 0) { prepends = emptyArray; } - var node = createBaseNode(313 /* Bundle */); - node.prepends = prepends; - node.sourceFiles = sourceFiles; - node.syntheticFileReferences = void 0; - node.syntheticTypeReferences = void 0; - node.syntheticLibReferences = void 0; - node.hasNoDefaultLib = void 0; - return node; - } - function updateBundle(node, sourceFiles, prepends) { - if (prepends === void 0) { prepends = emptyArray; } - return node.sourceFiles !== sourceFiles || node.prepends !== prepends ? update(createBundle(sourceFiles, prepends), node) : node; - } - function createUnparsedSource(prologues, syntheticReferences, texts) { - var node = createBaseNode(314 /* UnparsedSource */); - node.prologues = prologues; - node.syntheticReferences = syntheticReferences; - node.texts = texts; - node.fileName = ""; - node.text = ""; - node.referencedFiles = emptyArray; - node.libReferenceDirectives = emptyArray; - node.getLineAndCharacterOfPosition = function (pos) { return getLineAndCharacterOfPosition(node, pos); }; - return node; - } - function createBaseUnparsedNode(kind, data) { - var node = createBaseNode(kind); - node.data = data; - return node; - } - function createUnparsedPrologue(data) { - return createBaseUnparsedNode(307 /* UnparsedPrologue */, data); - } - function createUnparsedPrepend(data, texts) { - var node = createBaseUnparsedNode(308 /* UnparsedPrepend */, data); - node.texts = texts; - return node; - } - function createUnparsedTextLike(data, internal) { - return createBaseUnparsedNode(internal ? 310 /* UnparsedInternalText */ : 309 /* UnparsedText */, data); - } - function createUnparsedSyntheticReference(section) { - var node = createBaseNode(311 /* UnparsedSyntheticReference */); - node.data = section.data; - node.section = section; - return node; - } - function createInputFiles2() { - var node = createBaseNode(315 /* InputFiles */); - node.javascriptText = ""; - node.declarationText = ""; - return node; - } - function createSyntheticExpression(type, isSpread, tupleNameSource) { - if (isSpread === void 0) { isSpread = false; } - var node = createBaseNode(237 /* SyntheticExpression */); - node.type = type; - node.isSpread = isSpread; - node.tupleNameSource = tupleNameSource; - return node; - } - function createSyntaxList3(children) { - var node = createBaseNode(358 /* SyntaxList */); - node._children = children; - return node; - } - function createNotEmittedStatement(original) { - var node = createBaseNode(359 /* NotEmittedStatement */); - node.original = original; - setTextRange(node, original); - return node; - } - function createPartiallyEmittedExpression(expression, original) { - var node = createBaseNode(360 /* PartiallyEmittedExpression */); - node.expression = expression; - node.original = original; - node.transformFlags |= propagateChildFlags(node.expression) | 1 /* ContainsTypeScript */; - setTextRange(node, original); - return node; - } - function updatePartiallyEmittedExpression(node, expression) { - return node.expression !== expression ? update(createPartiallyEmittedExpression(expression, node.original), node) : node; - } - function flattenCommaElements(node) { - if (nodeIsSynthesized(node) && !isParseTreeNode(node) && !node.original && !node.emitNode && !node.id) { - if (isCommaListExpression(node)) { - return node.elements; - } - if (isBinaryExpression(node) && isCommaToken(node.operatorToken)) { - return [node.left, node.right]; - } - } - return node; - } - function createCommaListExpression(elements) { - var node = createBaseNode(361 /* CommaListExpression */); - node.elements = createNodeArray(sameFlatMap(elements, flattenCommaElements)); - node.transformFlags |= propagateChildrenFlags(node.elements); - return node; - } - function updateCommaListExpression(node, elements) { - return node.elements !== elements ? update(createCommaListExpression(elements), node) : node; - } - function createSyntheticReferenceExpression(expression, thisArg) { - var node = createBaseNode(362 /* SyntheticReferenceExpression */); - node.expression = expression; - node.thisArg = thisArg; - node.transformFlags |= propagateChildFlags(node.expression) | propagateChildFlags(node.thisArg); - return node; - } - function updateSyntheticReferenceExpression(node, expression, thisArg) { - return node.expression !== expression || node.thisArg !== thisArg ? update(createSyntheticReferenceExpression(expression, thisArg), node) : node; - } - function cloneGeneratedIdentifier(node) { - var clone2 = createBaseIdentifier(node.escapedText); - clone2.flags |= node.flags & ~16 /* Synthesized */; - clone2.transformFlags = node.transformFlags; - setOriginalNode(clone2, node); - setIdentifierAutoGenerate(clone2, __assign({}, node.emitNode.autoGenerate)); - return clone2; - } - function cloneIdentifier(node) { - var clone2 = createBaseIdentifier(node.escapedText); - clone2.flags |= node.flags & ~16 /* Synthesized */; - clone2.jsDoc = node.jsDoc; - clone2.flowNode = node.flowNode; - clone2.symbol = node.symbol; - clone2.transformFlags = node.transformFlags; - setOriginalNode(clone2, node); - var typeArguments = getIdentifierTypeArguments(node); - if (typeArguments) - setIdentifierTypeArguments(clone2, typeArguments); - return clone2; - } - function cloneGeneratedPrivateIdentifier(node) { - var clone2 = createBasePrivateIdentifier(node.escapedText); - clone2.flags |= node.flags & ~16 /* Synthesized */; - clone2.transformFlags = node.transformFlags; - setOriginalNode(clone2, node); - setIdentifierAutoGenerate(clone2, __assign({}, node.emitNode.autoGenerate)); - return clone2; - } - function clonePrivateIdentifier(node) { - var clone2 = createBasePrivateIdentifier(node.escapedText); - clone2.flags |= node.flags & ~16 /* Synthesized */; - clone2.transformFlags = node.transformFlags; - setOriginalNode(clone2, node); - return clone2; - } - function cloneNode(node) { - if (node === void 0) { - return node; - } - if (isSourceFile(node)) { - return cloneSourceFile(node); - } - if (isGeneratedIdentifier(node)) { - return cloneGeneratedIdentifier(node); - } - if (isIdentifier(node)) { - return cloneIdentifier(node); - } - if (isGeneratedPrivateIdentifier(node)) { - return cloneGeneratedPrivateIdentifier(node); - } - if (isPrivateIdentifier(node)) { - return clonePrivateIdentifier(node); - } - var clone2 = !isNodeKind(node.kind) ? baseFactory2.createBaseTokenNode(node.kind) : baseFactory2.createBaseNode(node.kind); - clone2.flags |= node.flags & ~16 /* Synthesized */; - clone2.transformFlags = node.transformFlags; - setOriginalNode(clone2, node); - for (var key in node) { - if (hasProperty(clone2, key) || !hasProperty(node, key)) { - continue; - } - clone2[key] = node[key]; - } - return clone2; - } - function createImmediatelyInvokedFunctionExpression(statements, param, paramValue) { - return createCallExpression(createFunctionExpression( - /*modifiers*/ - void 0, - /*asteriskToken*/ - void 0, - /*name*/ - void 0, - /*typeParameters*/ - void 0, - /*parameters*/ - param ? [param] : [], - /*type*/ - void 0, createBlock(statements, - /*multiLine*/ - true)), - /*typeArguments*/ - void 0, - /*argumentsArray*/ - paramValue ? [paramValue] : []); - } - function createImmediatelyInvokedArrowFunction(statements, param, paramValue) { - return createCallExpression(createArrowFunction( - /*modifiers*/ - void 0, - /*typeParameters*/ - void 0, - /*parameters*/ - param ? [param] : [], - /*type*/ - void 0, - /*equalsGreaterThanToken*/ - void 0, createBlock(statements, - /*multiLine*/ - true)), - /*typeArguments*/ - void 0, - /*argumentsArray*/ - paramValue ? [paramValue] : []); - } - function createVoidZero() { - return createVoidExpression(createNumericLiteral("0")); - } - function createExportDefault(expression) { - return createExportAssignment2( - /*modifiers*/ - void 0, - /*isExportEquals*/ - false, expression); - } - function createExternalModuleExport(exportName) { - return createExportDeclaration( - /*modifiers*/ - void 0, - /*isTypeOnly*/ - false, createNamedExports([ - createExportSpecifier( - /*isTypeOnly*/ - false, - /*propertyName*/ - void 0, exportName) - ])); - } - function createTypeCheck(value, tag) { - return tag === "null" ? factory2.createStrictEquality(value, createNull()) : tag === "undefined" ? factory2.createStrictEquality(value, createVoidZero()) : factory2.createStrictEquality(createTypeOfExpression(value), createStringLiteral(tag)); - } - function createIsNotTypeCheck(value, tag) { - return tag === "null" ? factory2.createStrictInequality(value, createNull()) : tag === "undefined" ? factory2.createStrictInequality(value, createVoidZero()) : factory2.createStrictInequality(createTypeOfExpression(value), createStringLiteral(tag)); - } - function createMethodCall(object, methodName, argumentsList) { - if (isCallChain(object)) { - return createCallChain(createPropertyAccessChain(object, - /*questionDotToken*/ - void 0, methodName), - /*questionDotToken*/ - void 0, - /*typeArguments*/ - void 0, argumentsList); - } - return createCallExpression(createPropertyAccessExpression(object, methodName), - /*typeArguments*/ - void 0, argumentsList); - } - function createFunctionBindCall(target, thisArg, argumentsList) { - return createMethodCall(target, "bind", __spreadArray([thisArg], __read(argumentsList), false)); - } - function createFunctionCallCall(target, thisArg, argumentsList) { - return createMethodCall(target, "call", __spreadArray([thisArg], __read(argumentsList), false)); - } - function createFunctionApplyCall(target, thisArg, argumentsExpression) { - return createMethodCall(target, "apply", [thisArg, argumentsExpression]); - } - function createGlobalMethodCall(globalObjectName, methodName, argumentsList) { - return createMethodCall(createIdentifier(globalObjectName), methodName, argumentsList); - } - function createArraySliceCall(array, start2) { - return createMethodCall(array, "slice", start2 === void 0 ? [] : [asExpression(start2)]); - } - function createArrayConcatCall(array, argumentsList) { - return createMethodCall(array, "concat", argumentsList); - } - function createObjectDefinePropertyCall(target, propertyName, attributes) { - return createGlobalMethodCall("Object", "defineProperty", [target, asExpression(propertyName), attributes]); - } - function createObjectGetOwnPropertyDescriptorCall(target, propertyName) { - return createGlobalMethodCall("Object", "getOwnPropertyDescriptor", [target, asExpression(propertyName)]); - } - function createReflectGetCall(target, propertyKey, receiver) { - return createGlobalMethodCall("Reflect", "get", receiver ? [target, propertyKey, receiver] : [target, propertyKey]); - } - function createReflectSetCall(target, propertyKey, value, receiver) { - return createGlobalMethodCall("Reflect", "set", receiver ? [target, propertyKey, value, receiver] : [target, propertyKey, value]); - } - function tryAddPropertyAssignment(properties, propertyName, expression) { - if (expression) { - properties.push(createPropertyAssignment(propertyName, expression)); - return true; - } - return false; - } - function createPropertyDescriptor(attributes, singleLine) { - var properties = []; - tryAddPropertyAssignment(properties, "enumerable", asExpression(attributes.enumerable)); - tryAddPropertyAssignment(properties, "configurable", asExpression(attributes.configurable)); - var isData = tryAddPropertyAssignment(properties, "writable", asExpression(attributes.writable)); - isData = tryAddPropertyAssignment(properties, "value", attributes.value) || isData; - var isAccessor2 = tryAddPropertyAssignment(properties, "get", attributes.get); - isAccessor2 = tryAddPropertyAssignment(properties, "set", attributes.set) || isAccessor2; - Debug.assert(!(isData && isAccessor2), "A PropertyDescriptor may not be both an accessor descriptor and a data descriptor."); - return createObjectLiteralExpression(properties, !singleLine); - } - function updateOuterExpression(outerExpression, expression) { - switch (outerExpression.kind) { - case 217 /* ParenthesizedExpression */: - return updateParenthesizedExpression(outerExpression, expression); - case 216 /* TypeAssertionExpression */: - return updateTypeAssertion(outerExpression, outerExpression.type, expression); - case 234 /* AsExpression */: - return updateAsExpression(outerExpression, expression, outerExpression.type); - case 238 /* SatisfiesExpression */: - return updateSatisfiesExpression(outerExpression, expression, outerExpression.type); - case 235 /* NonNullExpression */: - return updateNonNullExpression(outerExpression, expression); - case 360 /* PartiallyEmittedExpression */: - return updatePartiallyEmittedExpression(outerExpression, expression); - } - } - function isIgnorableParen(node) { - return isParenthesizedExpression(node) && nodeIsSynthesized(node) && nodeIsSynthesized(getSourceMapRange(node)) && nodeIsSynthesized(getCommentRange(node)) && !some(getSyntheticLeadingComments(node)) && !some(getSyntheticTrailingComments(node)); - } - function restoreOuterExpressions(outerExpression, innerExpression, kinds /* All */) { - if (kinds === void 0) { kinds = 15; } - if (outerExpression && isOuterExpression(outerExpression, kinds) && !isIgnorableParen(outerExpression)) { - return updateOuterExpression(outerExpression, restoreOuterExpressions(outerExpression.expression, innerExpression)); - } - return innerExpression; - } - function restoreEnclosingLabel(node, outermostLabeledStatement, afterRestoreLabelCallback) { - if (!outermostLabeledStatement) { - return node; - } - var updated = updateLabeledStatement(outermostLabeledStatement, outermostLabeledStatement.label, isLabeledStatement(outermostLabeledStatement.statement) ? restoreEnclosingLabel(node, outermostLabeledStatement.statement) : node); - if (afterRestoreLabelCallback) { - afterRestoreLabelCallback(outermostLabeledStatement); - } - return updated; - } - function shouldBeCapturedInTempVariable(node, cacheIdentifiers) { - var target = skipParentheses(node); - switch (target.kind) { - case 80 /* Identifier */: - return cacheIdentifiers; - case 110 /* ThisKeyword */: - case 9 /* NumericLiteral */: - case 10 /* BigIntLiteral */: - case 11 /* StringLiteral */: - return false; - case 209 /* ArrayLiteralExpression */: - var elements = target.elements; - if (elements.length === 0) { - return false; - } - return true; - case 210 /* ObjectLiteralExpression */: - return target.properties.length > 0; - default: - return true; - } - } - function createCallBinding(expression, recordTempVariable, languageVersion, cacheIdentifiers) { - if (cacheIdentifiers === void 0) { cacheIdentifiers = false; } - var callee = skipOuterExpressions(expression, 15 /* All */); - var thisArg; - var target; - if (isSuperProperty(callee)) { - thisArg = createThis(); - target = callee; - } - else if (isSuperKeyword(callee)) { - thisArg = createThis(); - target = languageVersion !== void 0 && languageVersion < 2 /* ES2015 */ ? setTextRange(createIdentifier("_super"), callee) : callee; - } - else if (getEmitFlags(callee) & 8192 /* HelperName */) { - thisArg = createVoidZero(); - target = parenthesizerRules().parenthesizeLeftSideOfAccess(callee, - /*optionalChain*/ - false); - } - else if (isPropertyAccessExpression(callee)) { - if (shouldBeCapturedInTempVariable(callee.expression, cacheIdentifiers)) { - thisArg = createTempVariable(recordTempVariable); - target = createPropertyAccessExpression(setTextRange(factory2.createAssignment(thisArg, callee.expression), callee.expression), callee.name); - setTextRange(target, callee); - } - else { - thisArg = callee.expression; - target = callee; - } - } - else if (isElementAccessExpression(callee)) { - if (shouldBeCapturedInTempVariable(callee.expression, cacheIdentifiers)) { - thisArg = createTempVariable(recordTempVariable); - target = createElementAccessExpression(setTextRange(factory2.createAssignment(thisArg, callee.expression), callee.expression), callee.argumentExpression); - setTextRange(target, callee); - } - else { - thisArg = callee.expression; - target = callee; - } - } - else { - thisArg = createVoidZero(); - target = parenthesizerRules().parenthesizeLeftSideOfAccess(expression, - /*optionalChain*/ - false); - } - return { target: target, thisArg: thisArg }; - } - function createAssignmentTargetWrapper(paramName, expression) { - return createPropertyAccessExpression( - // Explicit parens required because of v8 regression (https://bugs.chromium.org/p/v8/issues/detail?id=9560) - createParenthesizedExpression(createObjectLiteralExpression([ - createSetAccessorDeclaration( - /*modifiers*/ - void 0, "value", [createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, paramName, - /*questionToken*/ - void 0, - /*type*/ - void 0, - /*initializer*/ - void 0)], createBlock([ - createExpressionStatement(expression) - ])) - ])), "value"); - } - function inlineExpressions(expressions) { - return expressions.length > 10 ? createCommaListExpression(expressions) : reduceLeft(expressions, factory2.createComma); - } - function getName(node, allowComments, allowSourceMaps, emitFlags, ignoreAssignedName) { - if (emitFlags === void 0) { emitFlags = 0; } - var nodeName = ignoreAssignedName ? node && getNonAssignedNameOfDeclaration(node) : getNameOfDeclaration(node); - if (nodeName && isIdentifier(nodeName) && !isGeneratedIdentifier(nodeName)) { - var name_9 = setParent(setTextRange(cloneNode(nodeName), nodeName), nodeName.parent); - emitFlags |= getEmitFlags(nodeName); - if (!allowSourceMaps) - emitFlags |= 96 /* NoSourceMap */; - if (!allowComments) - emitFlags |= 3072 /* NoComments */; - if (emitFlags) - setEmitFlags(name_9, emitFlags); - return name_9; - } - return getGeneratedNameForNode(node); - } - function getInternalName(node, allowComments, allowSourceMaps) { - return getName(node, allowComments, allowSourceMaps, 32768 /* LocalName */ | 65536 /* InternalName */); - } - function getLocalName(node, allowComments, allowSourceMaps, ignoreAssignedName) { - return getName(node, allowComments, allowSourceMaps, 32768 /* LocalName */, ignoreAssignedName); - } - function getExportName(node, allowComments, allowSourceMaps) { - return getName(node, allowComments, allowSourceMaps, 16384 /* ExportName */); - } - function getDeclarationName(node, allowComments, allowSourceMaps) { - return getName(node, allowComments, allowSourceMaps); - } - function getNamespaceMemberName(ns, name, allowComments, allowSourceMaps) { - var qualifiedName = createPropertyAccessExpression(ns, nodeIsSynthesized(name) ? name : cloneNode(name)); - setTextRange(qualifiedName, name); - var emitFlags = 0; - if (!allowSourceMaps) - emitFlags |= 96 /* NoSourceMap */; - if (!allowComments) - emitFlags |= 3072 /* NoComments */; - if (emitFlags) - setEmitFlags(qualifiedName, emitFlags); - return qualifiedName; - } - function getExternalModuleOrNamespaceExportName(ns, node, allowComments, allowSourceMaps) { - if (ns && hasSyntacticModifier(node, 1 /* Export */)) { - return getNamespaceMemberName(ns, getName(node), allowComments, allowSourceMaps); - } - return getExportName(node, allowComments, allowSourceMaps); - } - function copyPrologue(source, target, ensureUseStrict2, visitor) { - var offset = copyStandardPrologue(source, target, 0, ensureUseStrict2); - return copyCustomPrologue(source, target, offset, visitor); - } - function isUseStrictPrologue2(node) { - return isStringLiteral(node.expression) && node.expression.text === "use strict"; - } - function createUseStrictPrologue() { - return startOnNewLine(createExpressionStatement(createStringLiteral("use strict"))); - } - function copyStandardPrologue(source, target, statementOffset, ensureUseStrict2) { - if (statementOffset === void 0) { statementOffset = 0; } - Debug.assert(target.length === 0, "Prologue directives should be at the first statement in the target statements array"); - var foundUseStrict = false; - var numStatements = source.length; - while (statementOffset < numStatements) { - var statement = source[statementOffset]; - if (isPrologueDirective(statement)) { - if (isUseStrictPrologue2(statement)) { - foundUseStrict = true; - } - target.push(statement); - } - else { - break; - } - statementOffset++; - } - if (ensureUseStrict2 && !foundUseStrict) { - target.push(createUseStrictPrologue()); - } - return statementOffset; - } - function copyCustomPrologue(source, target, statementOffset, visitor, filter2) { - if (filter2 === void 0) { filter2 = returnTrue; } - var numStatements = source.length; - while (statementOffset !== void 0 && statementOffset < numStatements) { - var statement = source[statementOffset]; - if (getEmitFlags(statement) & 2097152 /* CustomPrologue */ && filter2(statement)) { - append(target, visitor ? visitNode(statement, visitor, isStatement) : statement); - } - else { - break; - } - statementOffset++; - } - return statementOffset; - } - function ensureUseStrict(statements) { - var foundUseStrict = findUseStrictPrologue(statements); - if (!foundUseStrict) { - return setTextRange(createNodeArray(__spreadArray([createUseStrictPrologue()], __read(statements), false)), statements); - } - return statements; - } - function liftToBlock(nodes) { - Debug.assert(every(nodes, isStatementOrBlock), "Cannot lift nodes to a Block."); - return singleOrUndefined(nodes) || createBlock(nodes); - } - function findSpanEnd(array, test, start2) { - var i = start2; - while (i < array.length && test(array[i])) { - i++; - } - return i; - } - function mergeLexicalEnvironment(statements, declarations) { - if (!some(declarations)) { - return statements; - } - var leftStandardPrologueEnd = findSpanEnd(statements, isPrologueDirective, 0); - var leftHoistedFunctionsEnd = findSpanEnd(statements, isHoistedFunction, leftStandardPrologueEnd); - var leftHoistedVariablesEnd = findSpanEnd(statements, isHoistedVariableStatement, leftHoistedFunctionsEnd); - var rightStandardPrologueEnd = findSpanEnd(declarations, isPrologueDirective, 0); - var rightHoistedFunctionsEnd = findSpanEnd(declarations, isHoistedFunction, rightStandardPrologueEnd); - var rightHoistedVariablesEnd = findSpanEnd(declarations, isHoistedVariableStatement, rightHoistedFunctionsEnd); - var rightCustomPrologueEnd = findSpanEnd(declarations, isCustomPrologue, rightHoistedVariablesEnd); - Debug.assert(rightCustomPrologueEnd === declarations.length, "Expected declarations to be valid standard or custom prologues"); - var left = isNodeArray(statements) ? statements.slice() : statements; - if (rightCustomPrologueEnd > rightHoistedVariablesEnd) { - left.splice.apply(left, __spreadArray([leftHoistedVariablesEnd, 0], __read(declarations.slice(rightHoistedVariablesEnd, rightCustomPrologueEnd)), false)); - } - if (rightHoistedVariablesEnd > rightHoistedFunctionsEnd) { - left.splice.apply(left, __spreadArray([leftHoistedFunctionsEnd, 0], __read(declarations.slice(rightHoistedFunctionsEnd, rightHoistedVariablesEnd)), false)); - } - if (rightHoistedFunctionsEnd > rightStandardPrologueEnd) { - left.splice.apply(left, __spreadArray([leftStandardPrologueEnd, 0], __read(declarations.slice(rightStandardPrologueEnd, rightHoistedFunctionsEnd)), false)); - } - if (rightStandardPrologueEnd > 0) { - if (leftStandardPrologueEnd === 0) { - left.splice.apply(left, __spreadArray([0, 0], __read(declarations.slice(0, rightStandardPrologueEnd)), false)); - } - else { - var leftPrologues = /* @__PURE__ */ new Map(); - for (var i = 0; i < leftStandardPrologueEnd; i++) { - var leftPrologue = statements[i]; - leftPrologues.set(leftPrologue.expression.text, true); - } - for (var i = rightStandardPrologueEnd - 1; i >= 0; i--) { - var rightPrologue = declarations[i]; - if (!leftPrologues.has(rightPrologue.expression.text)) { - left.unshift(rightPrologue); - } - } - } - } - if (isNodeArray(statements)) { - return setTextRange(createNodeArray(left, statements.hasTrailingComma), statements); - } - return statements; - } - function updateModifiers(node, modifiers) { - var _t; - var modifierArray; - if (typeof modifiers === "number") { - modifierArray = createModifiersFromModifierFlags(modifiers); - } - else { - modifierArray = modifiers; - } - return isTypeParameterDeclaration(node) ? updateTypeParameterDeclaration(node, modifierArray, node.name, node.constraint, node.default) : isParameter(node) ? updateParameterDeclaration(node, modifierArray, node.dotDotDotToken, node.name, node.questionToken, node.type, node.initializer) : isConstructorTypeNode(node) ? updateConstructorTypeNode1(node, modifierArray, node.typeParameters, node.parameters, node.type) : isPropertySignature(node) ? updatePropertySignature(node, modifierArray, node.name, node.questionToken, node.type) : isPropertyDeclaration(node) ? updatePropertyDeclaration2(node, modifierArray, node.name, (_t = node.questionToken) !== null && _t !== void 0 ? _t : node.exclamationToken, node.type, node.initializer) : isMethodSignature(node) ? updateMethodSignature(node, modifierArray, node.name, node.questionToken, node.typeParameters, node.parameters, node.type) : isMethodDeclaration(node) ? updateMethodDeclaration(node, modifierArray, node.asteriskToken, node.name, node.questionToken, node.typeParameters, node.parameters, node.type, node.body) : isConstructorDeclaration(node) ? updateConstructorDeclaration(node, modifierArray, node.parameters, node.body) : isGetAccessorDeclaration(node) ? updateGetAccessorDeclaration(node, modifierArray, node.name, node.parameters, node.type, node.body) : isSetAccessorDeclaration(node) ? updateSetAccessorDeclaration(node, modifierArray, node.name, node.parameters, node.body) : isIndexSignatureDeclaration(node) ? updateIndexSignature(node, modifierArray, node.parameters, node.type) : isFunctionExpression(node) ? updateFunctionExpression(node, modifierArray, node.asteriskToken, node.name, node.typeParameters, node.parameters, node.type, node.body) : isArrowFunction(node) ? updateArrowFunction(node, modifierArray, node.typeParameters, node.parameters, node.type, node.equalsGreaterThanToken, node.body) : isClassExpression(node) ? updateClassExpression(node, modifierArray, node.name, node.typeParameters, node.heritageClauses, node.members) : isVariableStatement(node) ? updateVariableStatement(node, modifierArray, node.declarationList) : isFunctionDeclaration(node) ? updateFunctionDeclaration(node, modifierArray, node.asteriskToken, node.name, node.typeParameters, node.parameters, node.type, node.body) : isClassDeclaration(node) ? updateClassDeclaration(node, modifierArray, node.name, node.typeParameters, node.heritageClauses, node.members) : isInterfaceDeclaration(node) ? updateInterfaceDeclaration(node, modifierArray, node.name, node.typeParameters, node.heritageClauses, node.members) : isTypeAliasDeclaration(node) ? updateTypeAliasDeclaration(node, modifierArray, node.name, node.typeParameters, node.type) : isEnumDeclaration(node) ? updateEnumDeclaration(node, modifierArray, node.name, node.members) : isModuleDeclaration(node) ? updateModuleDeclaration(node, modifierArray, node.name, node.body) : isImportEqualsDeclaration(node) ? updateImportEqualsDeclaration(node, modifierArray, node.isTypeOnly, node.name, node.moduleReference) : isImportDeclaration(node) ? updateImportDeclaration(node, modifierArray, node.importClause, node.moduleSpecifier, node.assertClause) : isExportAssignment(node) ? updateExportAssignment(node, modifierArray, node.expression) : isExportDeclaration(node) ? updateExportDeclaration(node, modifierArray, node.isTypeOnly, node.exportClause, node.moduleSpecifier, node.assertClause) : Debug.assertNever(node); - } - function updateModifierLike(node, modifierArray) { - var _t; - return isParameter(node) ? updateParameterDeclaration(node, modifierArray, node.dotDotDotToken, node.name, node.questionToken, node.type, node.initializer) : isPropertyDeclaration(node) ? updatePropertyDeclaration2(node, modifierArray, node.name, (_t = node.questionToken) !== null && _t !== void 0 ? _t : node.exclamationToken, node.type, node.initializer) : isMethodDeclaration(node) ? updateMethodDeclaration(node, modifierArray, node.asteriskToken, node.name, node.questionToken, node.typeParameters, node.parameters, node.type, node.body) : isGetAccessorDeclaration(node) ? updateGetAccessorDeclaration(node, modifierArray, node.name, node.parameters, node.type, node.body) : isSetAccessorDeclaration(node) ? updateSetAccessorDeclaration(node, modifierArray, node.name, node.parameters, node.body) : isClassExpression(node) ? updateClassExpression(node, modifierArray, node.name, node.typeParameters, node.heritageClauses, node.members) : isClassDeclaration(node) ? updateClassDeclaration(node, modifierArray, node.name, node.typeParameters, node.heritageClauses, node.members) : Debug.assertNever(node); - } - function asNodeArray(array) { - return array ? createNodeArray(array) : void 0; - } - function asName(name) { - return typeof name === "string" ? createIdentifier(name) : name; - } - function asExpression(value) { - return typeof value === "string" ? createStringLiteral(value) : typeof value === "number" ? createNumericLiteral(value) : typeof value === "boolean" ? value ? createTrue() : createFalse() : value; - } - function asInitializer(node) { - return node && parenthesizerRules().parenthesizeExpressionForDisallowedComma(node); - } - function asToken(value) { - return typeof value === "number" ? createToken(value) : value; - } - function asEmbeddedStatement(statement) { - return statement && isNotEmittedStatement(statement) ? setTextRange(setOriginalNode(createEmptyStatement(), statement), statement) : statement; - } - function asVariableDeclaration(variableDeclaration) { - if (typeof variableDeclaration === "string" || variableDeclaration && !isVariableDeclaration(variableDeclaration)) { - return createVariableDeclaration(variableDeclaration, - /*exclamationToken*/ - void 0, - /*type*/ - void 0, - /*initializer*/ - void 0); - } - return variableDeclaration; - } -} -function updateWithoutOriginal(updated, original) { - if (updated !== original) { - setTextRange(updated, original); - } - return updated; -} -function updateWithOriginal(updated, original) { - if (updated !== original) { - setOriginalNode(updated, original); - setTextRange(updated, original); - } - return updated; -} -function getDefaultTagNameForKind(kind) { - switch (kind) { - case 351 /* JSDocTypeTag */: - return "type"; - case 349 /* JSDocReturnTag */: - return "returns"; - case 350 /* JSDocThisTag */: - return "this"; - case 347 /* JSDocEnumTag */: - return "enum"; - case 337 /* JSDocAuthorTag */: - return "author"; - case 339 /* JSDocClassTag */: - return "class"; - case 340 /* JSDocPublicTag */: - return "public"; - case 341 /* JSDocPrivateTag */: - return "private"; - case 342 /* JSDocProtectedTag */: - return "protected"; - case 343 /* JSDocReadonlyTag */: - return "readonly"; - case 344 /* JSDocOverrideTag */: - return "override"; - case 352 /* JSDocTemplateTag */: - return "template"; - case 353 /* JSDocTypedefTag */: - return "typedef"; - case 348 /* JSDocParameterTag */: - return "param"; - case 355 /* JSDocPropertyTag */: - return "prop"; - case 345 /* JSDocCallbackTag */: - return "callback"; - case 346 /* JSDocOverloadTag */: - return "overload"; - case 335 /* JSDocAugmentsTag */: - return "augments"; - case 336 /* JSDocImplementsTag */: - return "implements"; - default: - return Debug.fail("Unsupported kind: ".concat(Debug.formatSyntaxKind(kind))); - } -} -var rawTextScanner; -var invalidValueSentinel = {}; -function getCookedText(kind, rawText) { - if (!rawTextScanner) { - rawTextScanner = createScanner(99 /* Latest */, - /*skipTrivia*/ - false, 0 /* Standard */); - } - switch (kind) { - case 15 /* NoSubstitutionTemplateLiteral */: - rawTextScanner.setText("`" + rawText + "`"); - break; - case 16 /* TemplateHead */: - rawTextScanner.setText("`" + rawText + "${"); - break; - case 17 /* TemplateMiddle */: - rawTextScanner.setText("}" + rawText + "${"); - break; - case 18 /* TemplateTail */: - rawTextScanner.setText("}" + rawText + "`"); - break; - } - var token = rawTextScanner.scan(); - if (token === 20 /* CloseBraceToken */) { - token = rawTextScanner.reScanTemplateToken( - /*isTaggedTemplate*/ - false); - } - if (rawTextScanner.isUnterminated()) { - rawTextScanner.setText(void 0); - return invalidValueSentinel; - } - var tokenValue; - switch (token) { - case 15 /* NoSubstitutionTemplateLiteral */: - case 16 /* TemplateHead */: - case 17 /* TemplateMiddle */: - case 18 /* TemplateTail */: - tokenValue = rawTextScanner.getTokenValue(); - break; - } - if (tokenValue === void 0 || rawTextScanner.scan() !== 1 /* EndOfFileToken */) { - rawTextScanner.setText(void 0); - return invalidValueSentinel; - } - rawTextScanner.setText(void 0); - return tokenValue; -} -function propagateNameFlags(node) { - return node && isIdentifier(node) ? propagateIdentifierNameFlags(node) : propagateChildFlags(node); -} -function propagateIdentifierNameFlags(node) { - return propagateChildFlags(node) & ~67108864 /* ContainsPossibleTopLevelAwait */; -} -function propagatePropertyNameFlagsOfChild(node, transformFlags) { - return transformFlags | node.transformFlags & 134234112 /* PropertyNamePropagatingFlags */; -} -function propagateChildFlags(child) { - if (!child) - return 0 /* None */; - var childFlags = child.transformFlags & ~getTransformFlagsSubtreeExclusions(child.kind); - return isNamedDeclaration(child) && isPropertyName(child.name) ? propagatePropertyNameFlagsOfChild(child.name, childFlags) : childFlags; -} -function propagateChildrenFlags(children) { - return children ? children.transformFlags : 0 /* None */; -} -function aggregateChildrenFlags(children) { - var e_80, _t; - var subtreeFlags = 0 /* None */; - try { - for (var children_2 = __values(children), children_2_1 = children_2.next(); !children_2_1.done; children_2_1 = children_2.next()) { - var child = children_2_1.value; - subtreeFlags |= propagateChildFlags(child); - } - } - catch (e_80_1) { e_80 = { error: e_80_1 }; } - finally { - try { - if (children_2_1 && !children_2_1.done && (_t = children_2.return)) _t.call(children_2); - } - finally { if (e_80) throw e_80.error; } - } - children.transformFlags = subtreeFlags; -} -function getTransformFlagsSubtreeExclusions(kind) { - if (kind >= 182 /* FirstTypeNode */ && kind <= 205 /* LastTypeNode */) { - return -2 /* TypeExcludes */; - } - switch (kind) { - case 213 /* CallExpression */: - case 214 /* NewExpression */: - case 209 /* ArrayLiteralExpression */: - return -2147450880 /* ArrayLiteralOrCallOrNewExcludes */; - case 267 /* ModuleDeclaration */: - return -1941676032 /* ModuleExcludes */; - case 169 /* Parameter */: - return -2147483648 /* ParameterExcludes */; - case 219 /* ArrowFunction */: - return -2072174592 /* ArrowFunctionExcludes */; - case 218 /* FunctionExpression */: - case 262 /* FunctionDeclaration */: - return -1937940480 /* FunctionExcludes */; - case 261 /* VariableDeclarationList */: - return -2146893824 /* VariableDeclarationListExcludes */; - case 263 /* ClassDeclaration */: - case 231 /* ClassExpression */: - return -2147344384 /* ClassExcludes */; - case 176 /* Constructor */: - return -1937948672 /* ConstructorExcludes */; - case 172 /* PropertyDeclaration */: - return -2013249536 /* PropertyExcludes */; - case 174 /* MethodDeclaration */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - return -2005057536 /* MethodOrAccessorExcludes */; - case 133 /* AnyKeyword */: - case 150 /* NumberKeyword */: - case 163 /* BigIntKeyword */: - case 146 /* NeverKeyword */: - case 154 /* StringKeyword */: - case 151 /* ObjectKeyword */: - case 136 /* BooleanKeyword */: - case 155 /* SymbolKeyword */: - case 116 /* VoidKeyword */: - case 168 /* TypeParameter */: - case 171 /* PropertySignature */: - case 173 /* MethodSignature */: - case 179 /* CallSignature */: - case 180 /* ConstructSignature */: - case 181 /* IndexSignature */: - case 264 /* InterfaceDeclaration */: - case 265 /* TypeAliasDeclaration */: - return -2 /* TypeExcludes */; - case 210 /* ObjectLiteralExpression */: - return -2147278848 /* ObjectLiteralExcludes */; - case 299 /* CatchClause */: - return -2147418112 /* CatchClauseExcludes */; - case 206 /* ObjectBindingPattern */: - case 207 /* ArrayBindingPattern */: - return -2147450880 /* BindingPatternExcludes */; - case 216 /* TypeAssertionExpression */: - case 238 /* SatisfiesExpression */: - case 234 /* AsExpression */: - case 360 /* PartiallyEmittedExpression */: - case 217 /* ParenthesizedExpression */: - case 108 /* SuperKeyword */: - return -2147483648 /* OuterExpressionExcludes */; - case 211 /* PropertyAccessExpression */: - case 212 /* ElementAccessExpression */: - return -2147483648 /* PropertyAccessExcludes */; - default: - return -2147483648 /* NodeExcludes */; - } -} -var baseFactory = createBaseNodeFactory(); -function makeSynthetic(node) { - node.flags |= 16 /* Synthesized */; - return node; -} -var syntheticFactory = { - createBaseSourceFileNode: function (kind) { return makeSynthetic(baseFactory.createBaseSourceFileNode(kind)); }, - createBaseIdentifierNode: function (kind) { return makeSynthetic(baseFactory.createBaseIdentifierNode(kind)); }, - createBasePrivateIdentifierNode: function (kind) { return makeSynthetic(baseFactory.createBasePrivateIdentifierNode(kind)); }, - createBaseTokenNode: function (kind) { return makeSynthetic(baseFactory.createBaseTokenNode(kind)); }, - createBaseNode: function (kind) { return makeSynthetic(baseFactory.createBaseNode(kind)); } -}; -var factory = createNodeFactory(4 /* NoIndentationOnFreshPropertyAccess */, syntheticFactory); -function createUnparsedSourceFile(textOrInputFiles, mapPathOrType, mapTextOrStripInternal) { - var stripInternal; - var bundleFileInfo; - var fileName; - var text; - var length2; - var sourceMapPath; - var sourceMapText; - var getText; - var getSourceMapText; - var oldFileOfCurrentEmit; - if (!isString(textOrInputFiles)) { - Debug.assert(mapPathOrType === "js" || mapPathOrType === "dts"); - fileName = (mapPathOrType === "js" ? textOrInputFiles.javascriptPath : textOrInputFiles.declarationPath) || ""; - sourceMapPath = mapPathOrType === "js" ? textOrInputFiles.javascriptMapPath : textOrInputFiles.declarationMapPath; - getText = function () { return mapPathOrType === "js" ? textOrInputFiles.javascriptText : textOrInputFiles.declarationText; }; - getSourceMapText = function () { return mapPathOrType === "js" ? textOrInputFiles.javascriptMapText : textOrInputFiles.declarationMapText; }; - length2 = function () { return getText().length; }; - if (textOrInputFiles.buildInfo && textOrInputFiles.buildInfo.bundle) { - Debug.assert(mapTextOrStripInternal === void 0 || typeof mapTextOrStripInternal === "boolean"); - stripInternal = mapTextOrStripInternal; - bundleFileInfo = mapPathOrType === "js" ? textOrInputFiles.buildInfo.bundle.js : textOrInputFiles.buildInfo.bundle.dts; - oldFileOfCurrentEmit = textOrInputFiles.oldFileOfCurrentEmit; - } - } - else { - fileName = ""; - text = textOrInputFiles; - length2 = textOrInputFiles.length; - sourceMapPath = mapPathOrType; - sourceMapText = mapTextOrStripInternal; - } - var node = oldFileOfCurrentEmit ? parseOldFileOfCurrentEmit(Debug.checkDefined(bundleFileInfo)) : parseUnparsedSourceFile(bundleFileInfo, stripInternal, length2); - node.fileName = fileName; - node.sourceMapPath = sourceMapPath; - node.oldFileOfCurrentEmit = oldFileOfCurrentEmit; - if (getText && getSourceMapText) { - Object.defineProperty(node, "text", { get: getText }); - Object.defineProperty(node, "sourceMapText", { get: getSourceMapText }); - } - else { - Debug.assert(!oldFileOfCurrentEmit); - node.text = text !== null && text !== void 0 ? text : ""; - node.sourceMapText = sourceMapText; - } - return node; -} -function parseUnparsedSourceFile(bundleFileInfo, stripInternal, length2) { - var e_81, _t, e_82, _u; - var prologues; - var helpers; - var referencedFiles; - var typeReferenceDirectives; - var libReferenceDirectives; - var prependChildren; - var texts; - var hasNoDefaultLib; - try { - for (var _v = __values(bundleFileInfo ? bundleFileInfo.sections : emptyArray), _w = _v.next(); !_w.done; _w = _v.next()) { - var section = _w.value; - switch (section.kind) { - case "prologue" /* Prologue */: - prologues = append(prologues, setTextRange(factory.createUnparsedPrologue(section.data), section)); - break; - case "emitHelpers" /* EmitHelpers */: - helpers = append(helpers, getAllUnscopedEmitHelpers().get(section.data)); - break; - case "no-default-lib" /* NoDefaultLib */: - hasNoDefaultLib = true; - break; - case "reference" /* Reference */: - referencedFiles = append(referencedFiles, { pos: -1, end: -1, fileName: section.data }); - break; - case "type" /* Type */: - typeReferenceDirectives = append(typeReferenceDirectives, { pos: -1, end: -1, fileName: section.data }); - break; - case "type-import" /* TypeResolutionModeImport */: - typeReferenceDirectives = append(typeReferenceDirectives, { pos: -1, end: -1, fileName: section.data, resolutionMode: 99 /* ESNext */ }); - break; - case "type-require" /* TypeResolutionModeRequire */: - typeReferenceDirectives = append(typeReferenceDirectives, { pos: -1, end: -1, fileName: section.data, resolutionMode: 1 /* CommonJS */ }); - break; - case "lib" /* Lib */: - libReferenceDirectives = append(libReferenceDirectives, { pos: -1, end: -1, fileName: section.data }); - break; - case "prepend" /* Prepend */: - var prependTexts = void 0; - try { - for (var _x = (e_82 = void 0, __values(section.texts)), _y = _x.next(); !_y.done; _y = _x.next()) { - var text = _y.value; - if (!stripInternal || text.kind !== "internal" /* Internal */) { - prependTexts = append(prependTexts, setTextRange(factory.createUnparsedTextLike(text.data, text.kind === "internal" /* Internal */), text)); - } - } - } - catch (e_82_1) { e_82 = { error: e_82_1 }; } - finally { - try { - if (_y && !_y.done && (_u = _x.return)) _u.call(_x); - } - finally { if (e_82) throw e_82.error; } - } - prependChildren = addRange(prependChildren, prependTexts); - texts = append(texts, factory.createUnparsedPrepend(section.data, prependTexts !== null && prependTexts !== void 0 ? prependTexts : emptyArray)); - break; - case "internal" /* Internal */: - if (stripInternal) { - if (!texts) - texts = []; - break; - } - case "text" /* Text */: - texts = append(texts, setTextRange(factory.createUnparsedTextLike(section.data, section.kind === "internal" /* Internal */), section)); - break; - default: - Debug.assertNever(section); - } - } - } - catch (e_81_1) { e_81 = { error: e_81_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_81) throw e_81.error; } - } - if (!texts) { - var textNode = factory.createUnparsedTextLike( - /*data*/ - void 0, - /*internal*/ - false); - setTextRangePosWidth(textNode, 0, typeof length2 === "function" ? length2() : length2); - texts = [textNode]; - } - var node = parseNodeFactory.createUnparsedSource(prologues !== null && prologues !== void 0 ? prologues : emptyArray, - /*syntheticReferences*/ - void 0, texts); - setEachParent(prologues, node); - setEachParent(texts, node); - setEachParent(prependChildren, node); - node.hasNoDefaultLib = hasNoDefaultLib; - node.helpers = helpers; - node.referencedFiles = referencedFiles || emptyArray; - node.typeReferenceDirectives = typeReferenceDirectives; - node.libReferenceDirectives = libReferenceDirectives || emptyArray; - return node; -} -function parseOldFileOfCurrentEmit(bundleFileInfo) { - var e_83, _t; - var texts; - var syntheticReferences; - try { - for (var _u = __values(bundleFileInfo.sections), _v = _u.next(); !_v.done; _v = _u.next()) { - var section = _v.value; - switch (section.kind) { - case "internal" /* Internal */: - case "text" /* Text */: - texts = append(texts, setTextRange(factory.createUnparsedTextLike(section.data, section.kind === "internal" /* Internal */), section)); - break; - case "no-default-lib" /* NoDefaultLib */: - case "reference" /* Reference */: - case "type" /* Type */: - case "type-import" /* TypeResolutionModeImport */: - case "type-require" /* TypeResolutionModeRequire */: - case "lib" /* Lib */: - syntheticReferences = append(syntheticReferences, setTextRange(factory.createUnparsedSyntheticReference(section), section)); - break; - case "prologue" /* Prologue */: - case "emitHelpers" /* EmitHelpers */: - case "prepend" /* Prepend */: - break; - default: - Debug.assertNever(section); - } - } - } - catch (e_83_1) { e_83 = { error: e_83_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_83) throw e_83.error; } - } - var node = factory.createUnparsedSource(emptyArray, syntheticReferences, texts !== null && texts !== void 0 ? texts : emptyArray); - setEachParent(syntheticReferences, node); - setEachParent(texts, node); - node.helpers = map(bundleFileInfo.sources && bundleFileInfo.sources.helpers, function (name) { return getAllUnscopedEmitHelpers().get(name); }); - return node; -} -function createInputFiles(javascriptTextOrReadFileText, declarationTextOrJavascriptPath, javascriptMapPath, javascriptMapTextOrDeclarationPath, declarationMapPath, declarationMapTextOrBuildInfoPath) { - return !isString(javascriptTextOrReadFileText) ? createInputFilesWithFilePaths(javascriptTextOrReadFileText, declarationTextOrJavascriptPath, javascriptMapPath, javascriptMapTextOrDeclarationPath, declarationMapPath, declarationMapTextOrBuildInfoPath) : createInputFilesWithFileTexts( - /*javascriptPath*/ - void 0, javascriptTextOrReadFileText, javascriptMapPath, javascriptMapTextOrDeclarationPath, - /*declarationPath*/ - void 0, declarationTextOrJavascriptPath, declarationMapPath, declarationMapTextOrBuildInfoPath); -} -function createInputFilesWithFilePaths(readFileText, javascriptPath, javascriptMapPath, declarationPath, declarationMapPath, buildInfoPath, host, options) { - var node = parseNodeFactory.createInputFiles(); - node.javascriptPath = javascriptPath; - node.javascriptMapPath = javascriptMapPath; - node.declarationPath = declarationPath; - node.declarationMapPath = declarationMapPath; - node.buildInfoPath = buildInfoPath; - var cache = /* @__PURE__ */ new Map(); - var textGetter = function (path) { - if (path === void 0) - return void 0; - var value = cache.get(path); - if (value === void 0) { - value = readFileText(path); - cache.set(path, value !== void 0 ? value : false); - } - return value !== false ? value : void 0; - }; - var definedTextGetter = function (path) { - var result = textGetter(path); - return result !== void 0 ? result : "/* Input file ".concat(path, " was missing */\r\n"); - }; - var buildInfo; - var getAndCacheBuildInfo = function () { - var _t, _u; - if (buildInfo === void 0 && buildInfoPath) { - if (host == null ? void 0 : host.getBuildInfo) { - buildInfo = (_t = host.getBuildInfo(buildInfoPath, options.configFilePath)) !== null && _t !== void 0 ? _t : false; - } - else { - var result = textGetter(buildInfoPath); - buildInfo = result !== void 0 ? (_u = getBuildInfo(buildInfoPath, result)) !== null && _u !== void 0 ? _u : false : false; - } - } - return buildInfo || void 0; - }; - Object.defineProperties(node, { - javascriptText: { get: function () { return definedTextGetter(javascriptPath); } }, - javascriptMapText: { get: function () { return textGetter(javascriptMapPath); } }, - // TODO:: if there is inline sourceMap in jsFile, use that - declarationText: { get: function () { return definedTextGetter(Debug.checkDefined(declarationPath)); } }, - declarationMapText: { get: function () { return textGetter(declarationMapPath); } }, - // TODO:: if there is inline sourceMap in dtsFile, use that - buildInfo: { get: getAndCacheBuildInfo } - }); - return node; -} -function createInputFilesWithFileTexts(javascriptPath, javascriptText, javascriptMapPath, javascriptMapText, declarationPath, declarationText, declarationMapPath, declarationMapText, buildInfoPath, buildInfo, oldFileOfCurrentEmit) { - var node = parseNodeFactory.createInputFiles(); - node.javascriptPath = javascriptPath; - node.javascriptText = javascriptText; - node.javascriptMapPath = javascriptMapPath; - node.javascriptMapText = javascriptMapText; - node.declarationPath = declarationPath; - node.declarationText = declarationText; - node.declarationMapPath = declarationMapPath; - node.declarationMapText = declarationMapText; - node.buildInfoPath = buildInfoPath; - node.buildInfo = buildInfo; - node.oldFileOfCurrentEmit = oldFileOfCurrentEmit; - return node; -} -var SourceMapSource2; -function createSourceMapSource(fileName, text, skipTrivia2) { - return new (SourceMapSource2 || (SourceMapSource2 = objectAllocator.getSourceMapSourceConstructor()))(fileName, text, skipTrivia2); -} -function setOriginalNode(node, original) { - if (node.original !== original) { - node.original = original; - if (original) { - var emitNode = original.emitNode; - if (emitNode) - node.emitNode = mergeEmitNode(emitNode, node.emitNode); - } - } - return node; -} -function mergeEmitNode(sourceEmitNode, destEmitNode) { - var e_84, _t; - var flags = sourceEmitNode.flags, internalFlags = sourceEmitNode.internalFlags, leadingComments = sourceEmitNode.leadingComments, trailingComments = sourceEmitNode.trailingComments, commentRange = sourceEmitNode.commentRange, sourceMapRange = sourceEmitNode.sourceMapRange, tokenSourceMapRanges = sourceEmitNode.tokenSourceMapRanges, constantValue = sourceEmitNode.constantValue, helpers = sourceEmitNode.helpers, startsOnNewLine = sourceEmitNode.startsOnNewLine, snippetElement = sourceEmitNode.snippetElement, classThis = sourceEmitNode.classThis, assignedName = sourceEmitNode.assignedName; - if (!destEmitNode) - destEmitNode = {}; - if (flags) { - destEmitNode.flags = flags; - } - if (internalFlags) { - destEmitNode.internalFlags = internalFlags & ~8 /* Immutable */; - } - if (leadingComments) { - destEmitNode.leadingComments = addRange(leadingComments.slice(), destEmitNode.leadingComments); - } - if (trailingComments) { - destEmitNode.trailingComments = addRange(trailingComments.slice(), destEmitNode.trailingComments); - } - if (commentRange) { - destEmitNode.commentRange = commentRange; - } - if (sourceMapRange) { - destEmitNode.sourceMapRange = sourceMapRange; - } - if (tokenSourceMapRanges) { - destEmitNode.tokenSourceMapRanges = mergeTokenSourceMapRanges(tokenSourceMapRanges, destEmitNode.tokenSourceMapRanges); - } - if (constantValue !== void 0) { - destEmitNode.constantValue = constantValue; - } - if (helpers) { - try { - for (var helpers_1 = __values(helpers), helpers_1_1 = helpers_1.next(); !helpers_1_1.done; helpers_1_1 = helpers_1.next()) { - var helper = helpers_1_1.value; - destEmitNode.helpers = appendIfUnique(destEmitNode.helpers, helper); - } - } - catch (e_84_1) { e_84 = { error: e_84_1 }; } - finally { - try { - if (helpers_1_1 && !helpers_1_1.done && (_t = helpers_1.return)) _t.call(helpers_1); - } - finally { if (e_84) throw e_84.error; } - } - } - if (startsOnNewLine !== void 0) { - destEmitNode.startsOnNewLine = startsOnNewLine; - } - if (snippetElement !== void 0) { - destEmitNode.snippetElement = snippetElement; - } - if (classThis) { - destEmitNode.classThis = classThis; - } - if (assignedName) { - destEmitNode.assignedName = assignedName; - } - return destEmitNode; -} -function mergeTokenSourceMapRanges(sourceRanges, destRanges) { - if (!destRanges) - destRanges = []; - for (var key in sourceRanges) { - destRanges[key] = sourceRanges[key]; - } - return destRanges; -} -// src/compiler/factory/emitNode.ts -function getOrCreateEmitNode(node) { - var _t; - if (!node.emitNode) { - if (isParseTreeNode(node)) { - if (node.kind === 312 /* SourceFile */) { - return node.emitNode = { annotatedNodes: [node] }; - } - var sourceFile = (_t = getSourceFileOfNode(getParseTreeNode(getSourceFileOfNode(node)))) !== null && _t !== void 0 ? _t : Debug.fail("Could not determine parsed source file."); - getOrCreateEmitNode(sourceFile).annotatedNodes.push(node); - } - node.emitNode = {}; - } - else { - Debug.assert(!(node.emitNode.internalFlags & 8 /* Immutable */), "Invalid attempt to mutate an immutable node."); - } - return node.emitNode; -} -function disposeEmitNodes(sourceFile) { - var e_85, _t; - var _a, _b; - var annotatedNodes = (_b = (_a = getSourceFileOfNode(getParseTreeNode(sourceFile))) == null ? void 0 : _a.emitNode) == null ? void 0 : _b.annotatedNodes; - if (annotatedNodes) { - try { - for (var annotatedNodes_1 = __values(annotatedNodes), annotatedNodes_1_1 = annotatedNodes_1.next(); !annotatedNodes_1_1.done; annotatedNodes_1_1 = annotatedNodes_1.next()) { - var node = annotatedNodes_1_1.value; - node.emitNode = void 0; - } - } - catch (e_85_1) { e_85 = { error: e_85_1 }; } - finally { - try { - if (annotatedNodes_1_1 && !annotatedNodes_1_1.done && (_t = annotatedNodes_1.return)) _t.call(annotatedNodes_1); - } - finally { if (e_85) throw e_85.error; } - } - } -} -function removeAllComments(node) { - var emitNode = getOrCreateEmitNode(node); - emitNode.flags |= 3072 /* NoComments */; - emitNode.leadingComments = void 0; - emitNode.trailingComments = void 0; - return node; -} -function setEmitFlags(node, emitFlags) { - getOrCreateEmitNode(node).flags = emitFlags; - return node; -} -function addEmitFlags(node, emitFlags) { - var emitNode = getOrCreateEmitNode(node); - emitNode.flags = emitNode.flags | emitFlags; - return node; -} -function setInternalEmitFlags(node, emitFlags) { - getOrCreateEmitNode(node).internalFlags = emitFlags; - return node; -} -function addInternalEmitFlags(node, emitFlags) { - var emitNode = getOrCreateEmitNode(node); - emitNode.internalFlags = emitNode.internalFlags | emitFlags; - return node; -} -function getSourceMapRange(node) { - var _t; - var _a; - return (_t = ((_a = node.emitNode) == null ? void 0 : _a.sourceMapRange)) !== null && _t !== void 0 ? _t : node; -} -function setSourceMapRange(node, range) { - getOrCreateEmitNode(node).sourceMapRange = range; - return node; -} -function getTokenSourceMapRange(node, token) { - var _a, _b; - return (_b = (_a = node.emitNode) == null ? void 0 : _a.tokenSourceMapRanges) == null ? void 0 : _b[token]; -} -function setTokenSourceMapRange(node, token, range) { - var _t; - var emitNode = getOrCreateEmitNode(node); - var tokenSourceMapRanges = (_t = emitNode.tokenSourceMapRanges) !== null && _t !== void 0 ? _t : (emitNode.tokenSourceMapRanges = []); - tokenSourceMapRanges[token] = range; - return node; -} -function getStartsOnNewLine(node) { - var _a; - return (_a = node.emitNode) == null ? void 0 : _a.startsOnNewLine; -} -function setStartsOnNewLine(node, newLine) { - getOrCreateEmitNode(node).startsOnNewLine = newLine; - return node; -} -function getCommentRange(node) { - var _t; - var _a; - return (_t = ((_a = node.emitNode) == null ? void 0 : _a.commentRange)) !== null && _t !== void 0 ? _t : node; -} -function setCommentRange(node, range) { - getOrCreateEmitNode(node).commentRange = range; - return node; -} -function getSyntheticLeadingComments(node) { - var _a; - return (_a = node.emitNode) == null ? void 0 : _a.leadingComments; -} -function setSyntheticLeadingComments(node, comments) { - getOrCreateEmitNode(node).leadingComments = comments; - return node; -} -function addSyntheticLeadingComment(node, kind, text, hasTrailingNewLine) { - return setSyntheticLeadingComments(node, append(getSyntheticLeadingComments(node), { kind: kind, pos: -1, end: -1, hasTrailingNewLine: hasTrailingNewLine, text: text })); -} -function getSyntheticTrailingComments(node) { - var _a; - return (_a = node.emitNode) == null ? void 0 : _a.trailingComments; -} -function setSyntheticTrailingComments(node, comments) { - getOrCreateEmitNode(node).trailingComments = comments; - return node; -} -function addSyntheticTrailingComment(node, kind, text, hasTrailingNewLine) { - return setSyntheticTrailingComments(node, append(getSyntheticTrailingComments(node), { kind: kind, pos: -1, end: -1, hasTrailingNewLine: hasTrailingNewLine, text: text })); -} -function moveSyntheticComments(node, original) { - setSyntheticLeadingComments(node, getSyntheticLeadingComments(original)); - setSyntheticTrailingComments(node, getSyntheticTrailingComments(original)); - var emit = getOrCreateEmitNode(original); - emit.leadingComments = void 0; - emit.trailingComments = void 0; - return node; -} -function getConstantValue(node) { - var _a; - return (_a = node.emitNode) == null ? void 0 : _a.constantValue; -} -function setConstantValue(node, value) { - var emitNode = getOrCreateEmitNode(node); - emitNode.constantValue = value; - return node; -} -function addEmitHelper(node, helper) { - var emitNode = getOrCreateEmitNode(node); - emitNode.helpers = append(emitNode.helpers, helper); - return node; -} -function addEmitHelpers(node, helpers) { - var e_86, _t; - if (some(helpers)) { - var emitNode = getOrCreateEmitNode(node); - try { - for (var helpers_2 = __values(helpers), helpers_2_1 = helpers_2.next(); !helpers_2_1.done; helpers_2_1 = helpers_2.next()) { - var helper = helpers_2_1.value; - emitNode.helpers = appendIfUnique(emitNode.helpers, helper); - } - } - catch (e_86_1) { e_86 = { error: e_86_1 }; } - finally { - try { - if (helpers_2_1 && !helpers_2_1.done && (_t = helpers_2.return)) _t.call(helpers_2); - } - finally { if (e_86) throw e_86.error; } - } - } - return node; -} -function removeEmitHelper(node, helper) { - var _a; - var helpers = (_a = node.emitNode) == null ? void 0 : _a.helpers; - if (helpers) { - return orderedRemoveItem(helpers, helper); - } - return false; -} -function getEmitHelpers(node) { - var _a; - return (_a = node.emitNode) == null ? void 0 : _a.helpers; -} -function moveEmitHelpers(source, target, predicate) { - var sourceEmitNode = source.emitNode; - var sourceEmitHelpers = sourceEmitNode && sourceEmitNode.helpers; - if (!some(sourceEmitHelpers)) - return; - var targetEmitNode = getOrCreateEmitNode(target); - var helpersRemoved = 0; - for (var i = 0; i < sourceEmitHelpers.length; i++) { - var helper = sourceEmitHelpers[i]; - if (predicate(helper)) { - helpersRemoved++; - targetEmitNode.helpers = appendIfUnique(targetEmitNode.helpers, helper); - } - else if (helpersRemoved > 0) { - sourceEmitHelpers[i - helpersRemoved] = helper; - } - } - if (helpersRemoved > 0) { - sourceEmitHelpers.length -= helpersRemoved; - } -} -function getSnippetElement(node) { - var _a; - return (_a = node.emitNode) == null ? void 0 : _a.snippetElement; -} -function setSnippetElement(node, snippet) { - var emitNode = getOrCreateEmitNode(node); - emitNode.snippetElement = snippet; - return node; -} -function ignoreSourceNewlines(node) { - getOrCreateEmitNode(node).internalFlags |= 4 /* IgnoreSourceNewlines */; - return node; -} -function setTypeNode(node, type) { - var emitNode = getOrCreateEmitNode(node); - emitNode.typeNode = type; - return node; -} -function getTypeNode(node) { - var _a; - return (_a = node.emitNode) == null ? void 0 : _a.typeNode; -} -function setIdentifierTypeArguments(node, typeArguments) { - getOrCreateEmitNode(node).identifierTypeArguments = typeArguments; - return node; -} -function getIdentifierTypeArguments(node) { - var _a; - return (_a = node.emitNode) == null ? void 0 : _a.identifierTypeArguments; -} -function setIdentifierAutoGenerate(node, autoGenerate) { - getOrCreateEmitNode(node).autoGenerate = autoGenerate; - return node; -} -function getIdentifierAutoGenerate(node) { - var _a; - return (_a = node.emitNode) == null ? void 0 : _a.autoGenerate; -} -function setIdentifierGeneratedImportReference(node, value) { - getOrCreateEmitNode(node).generatedImportReference = value; - return node; -} -function getIdentifierGeneratedImportReference(node) { - var _a; - return (_a = node.emitNode) == null ? void 0 : _a.generatedImportReference; -} -// src/compiler/factory/emitHelpers.ts -var PrivateIdentifierKind = /* @__PURE__ */ (function (PrivateIdentifierKind2) { - PrivateIdentifierKind2["Field"] = "f"; - PrivateIdentifierKind2["Method"] = "m"; - PrivateIdentifierKind2["Accessor"] = "a"; - return PrivateIdentifierKind2; -})(PrivateIdentifierKind || {}); -function createEmitHelperFactory(context) { - var factory2 = context.factory; - var immutableTrue = memoize(function () { return setInternalEmitFlags(factory2.createTrue(), 8 /* Immutable */); }); - var immutableFalse = memoize(function () { return setInternalEmitFlags(factory2.createFalse(), 8 /* Immutable */); }); - return { - getUnscopedHelperName: getUnscopedHelperName, - // TypeScript Helpers - createDecorateHelper: createDecorateHelper, - createMetadataHelper: createMetadataHelper, - createParamHelper: createParamHelper, - // ES Decorators Helpers - createESDecorateHelper: createESDecorateHelper, - createRunInitializersHelper: createRunInitializersHelper, - // ES2018 Helpers - createAssignHelper: createAssignHelper, - createAwaitHelper: createAwaitHelper, - createAsyncGeneratorHelper: createAsyncGeneratorHelper, - createAsyncDelegatorHelper: createAsyncDelegatorHelper, - createAsyncValuesHelper: createAsyncValuesHelper, - // ES2018 Destructuring Helpers - createRestHelper: createRestHelper, - // ES2017 Helpers - createAwaiterHelper: createAwaiterHelper, - // ES2015 Helpers - createExtendsHelper: createExtendsHelper, - createTemplateObjectHelper: createTemplateObjectHelper, - createSpreadArrayHelper: createSpreadArrayHelper, - createPropKeyHelper: createPropKeyHelper, - createSetFunctionNameHelper: createSetFunctionNameHelper, - // ES2015 Destructuring Helpers - createValuesHelper: createValuesHelper, - createReadHelper: createReadHelper, - // ES2015 Generator Helpers - createGeneratorHelper: createGeneratorHelper, - // ES Module Helpers - createCreateBindingHelper: createCreateBindingHelper, - createImportStarHelper: createImportStarHelper, - createImportStarCallbackHelper: createImportStarCallbackHelper, - createImportDefaultHelper: createImportDefaultHelper, - createExportStarHelper: createExportStarHelper, - // Class Fields Helpers - createClassPrivateFieldGetHelper: createClassPrivateFieldGetHelper, - createClassPrivateFieldSetHelper: createClassPrivateFieldSetHelper, - createClassPrivateFieldInHelper: createClassPrivateFieldInHelper, - // 'using' helpers - createAddDisposableResourceHelper: createAddDisposableResourceHelper, - createDisposeResourcesHelper: createDisposeResourcesHelper - }; - function getUnscopedHelperName(name) { - return setEmitFlags(factory2.createIdentifier(name), 8192 /* HelperName */ | 4 /* AdviseOnEmitNode */); - } - function createDecorateHelper(decoratorExpressions, target, memberName, descriptor) { - context.requestEmitHelper(decorateHelper); - var argumentsArray = []; - argumentsArray.push(factory2.createArrayLiteralExpression(decoratorExpressions, - /*multiLine*/ - true)); - argumentsArray.push(target); - if (memberName) { - argumentsArray.push(memberName); - if (descriptor) { - argumentsArray.push(descriptor); - } - } - return factory2.createCallExpression(getUnscopedHelperName("__decorate"), - /*typeArguments*/ - void 0, argumentsArray); - } - function createMetadataHelper(metadataKey, metadataValue) { - context.requestEmitHelper(metadataHelper); - return factory2.createCallExpression(getUnscopedHelperName("__metadata"), - /*typeArguments*/ - void 0, [ - factory2.createStringLiteral(metadataKey), - metadataValue - ]); - } - function createParamHelper(expression, parameterOffset, location) { - context.requestEmitHelper(paramHelper); - return setTextRange(factory2.createCallExpression(getUnscopedHelperName("__param"), - /*typeArguments*/ - void 0, [ - factory2.createNumericLiteral(parameterOffset + ""), - expression - ]), location); - } - function createESDecorateClassContextObject(contextIn) { - var properties = [ - factory2.createPropertyAssignment(factory2.createIdentifier("kind"), factory2.createStringLiteral("class")), - factory2.createPropertyAssignment(factory2.createIdentifier("name"), contextIn.name), - factory2.createPropertyAssignment(factory2.createIdentifier("metadata"), contextIn.metadata) - ]; - return factory2.createObjectLiteralExpression(properties); - } - function createESDecorateClassElementAccessGetMethod(elementName) { - var accessor = elementName.computed ? factory2.createElementAccessExpression(factory2.createIdentifier("obj"), elementName.name) : factory2.createPropertyAccessExpression(factory2.createIdentifier("obj"), elementName.name); - return factory2.createPropertyAssignment("get", factory2.createArrowFunction( - /*modifiers*/ - void 0, - /*typeParameters*/ - void 0, [factory2.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, factory2.createIdentifier("obj"))], - /*type*/ - void 0, - /*equalsGreaterThanToken*/ - void 0, accessor)); - } - function createESDecorateClassElementAccessSetMethod(elementName) { - var accessor = elementName.computed ? factory2.createElementAccessExpression(factory2.createIdentifier("obj"), elementName.name) : factory2.createPropertyAccessExpression(factory2.createIdentifier("obj"), elementName.name); - return factory2.createPropertyAssignment("set", factory2.createArrowFunction( - /*modifiers*/ - void 0, - /*typeParameters*/ - void 0, [ - factory2.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, factory2.createIdentifier("obj")), - factory2.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, factory2.createIdentifier("value")) - ], - /*type*/ - void 0, - /*equalsGreaterThanToken*/ - void 0, factory2.createBlock([ - factory2.createExpressionStatement(factory2.createAssignment(accessor, factory2.createIdentifier("value"))) - ]))); - } - function createESDecorateClassElementAccessHasMethod(elementName) { - var propertyName = elementName.computed ? elementName.name : isIdentifier(elementName.name) ? factory2.createStringLiteralFromNode(elementName.name) : elementName.name; - return factory2.createPropertyAssignment("has", factory2.createArrowFunction( - /*modifiers*/ - void 0, - /*typeParameters*/ - void 0, [factory2.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, factory2.createIdentifier("obj"))], - /*type*/ - void 0, - /*equalsGreaterThanToken*/ - void 0, factory2.createBinaryExpression(propertyName, 103 /* InKeyword */, factory2.createIdentifier("obj")))); - } - function createESDecorateClassElementAccessObject(name, access) { - var properties = []; - properties.push(createESDecorateClassElementAccessHasMethod(name)); - if (access.get) - properties.push(createESDecorateClassElementAccessGetMethod(name)); - if (access.set) - properties.push(createESDecorateClassElementAccessSetMethod(name)); - return factory2.createObjectLiteralExpression(properties); - } - function createESDecorateClassElementContextObject(contextIn) { - var properties = [ - factory2.createPropertyAssignment(factory2.createIdentifier("kind"), factory2.createStringLiteral(contextIn.kind)), - factory2.createPropertyAssignment(factory2.createIdentifier("name"), contextIn.name.computed ? contextIn.name.name : factory2.createStringLiteralFromNode(contextIn.name.name)), - factory2.createPropertyAssignment(factory2.createIdentifier("static"), contextIn.static ? factory2.createTrue() : factory2.createFalse()), - factory2.createPropertyAssignment(factory2.createIdentifier("private"), contextIn.private ? factory2.createTrue() : factory2.createFalse()), - factory2.createPropertyAssignment(factory2.createIdentifier("access"), createESDecorateClassElementAccessObject(contextIn.name, contextIn.access)), - factory2.createPropertyAssignment(factory2.createIdentifier("metadata"), contextIn.metadata) - ]; - return factory2.createObjectLiteralExpression(properties); - } - function createESDecorateContextObject(contextIn) { - return contextIn.kind === "class" ? createESDecorateClassContextObject(contextIn) : createESDecorateClassElementContextObject(contextIn); - } - function createESDecorateHelper(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) { - context.requestEmitHelper(esDecorateHelper); - return factory2.createCallExpression(getUnscopedHelperName("__esDecorate"), - /*typeArguments*/ - void 0, [ - ctor !== null && ctor !== void 0 ? ctor : factory2.createNull(), - descriptorIn !== null && descriptorIn !== void 0 ? descriptorIn : factory2.createNull(), - decorators, - createESDecorateContextObject(contextIn), - initializers, - extraInitializers - ]); - } - function createRunInitializersHelper(thisArg, initializers, value) { - context.requestEmitHelper(runInitializersHelper); - return factory2.createCallExpression(getUnscopedHelperName("__runInitializers"), - /*typeArguments*/ - void 0, value ? [thisArg, initializers, value] : [thisArg, initializers]); - } - function createAssignHelper(attributesSegments) { - if (getEmitScriptTarget(context.getCompilerOptions()) >= 2 /* ES2015 */) { - return factory2.createCallExpression(factory2.createPropertyAccessExpression(factory2.createIdentifier("Object"), "assign"), - /*typeArguments*/ - void 0, attributesSegments); - } - context.requestEmitHelper(assignHelper); - return factory2.createCallExpression(getUnscopedHelperName("__assign"), - /*typeArguments*/ - void 0, attributesSegments); - } - function createAwaitHelper(expression) { - context.requestEmitHelper(awaitHelper); - return factory2.createCallExpression(getUnscopedHelperName("__await"), - /*typeArguments*/ - void 0, [expression]); - } - function createAsyncGeneratorHelper(generatorFunc, hasLexicalThis) { - context.requestEmitHelper(awaitHelper); - context.requestEmitHelper(asyncGeneratorHelper); - (generatorFunc.emitNode || (generatorFunc.emitNode = {})).flags |= 524288 /* AsyncFunctionBody */ | 1048576 /* ReuseTempVariableScope */; - return factory2.createCallExpression(getUnscopedHelperName("__asyncGenerator"), - /*typeArguments*/ - void 0, [ - hasLexicalThis ? factory2.createThis() : factory2.createVoidZero(), - factory2.createIdentifier("arguments"), - generatorFunc - ]); - } - function createAsyncDelegatorHelper(expression) { - context.requestEmitHelper(awaitHelper); - context.requestEmitHelper(asyncDelegator); - return factory2.createCallExpression(getUnscopedHelperName("__asyncDelegator"), - /*typeArguments*/ - void 0, [expression]); - } - function createAsyncValuesHelper(expression) { - context.requestEmitHelper(asyncValues); - return factory2.createCallExpression(getUnscopedHelperName("__asyncValues"), - /*typeArguments*/ - void 0, [expression]); - } - function createRestHelper(value, elements, computedTempVariables, location) { - context.requestEmitHelper(restHelper); - var propertyNames = []; - var computedTempVariableOffset = 0; - for (var i = 0; i < elements.length - 1; i++) { - var propertyName = getPropertyNameOfBindingOrAssignmentElement(elements[i]); - if (propertyName) { - if (isComputedPropertyName(propertyName)) { - Debug.assertIsDefined(computedTempVariables, "Encountered computed property name but 'computedTempVariables' argument was not provided."); - var temp = computedTempVariables[computedTempVariableOffset]; - computedTempVariableOffset++; - propertyNames.push(factory2.createConditionalExpression(factory2.createTypeCheck(temp, "symbol"), - /*questionToken*/ - void 0, temp, - /*colonToken*/ - void 0, factory2.createAdd(temp, factory2.createStringLiteral("")))); - } - else { - propertyNames.push(factory2.createStringLiteralFromNode(propertyName)); - } - } - } - return factory2.createCallExpression(getUnscopedHelperName("__rest"), - /*typeArguments*/ - void 0, [ - value, - setTextRange(factory2.createArrayLiteralExpression(propertyNames), location) - ]); - } - function createAwaiterHelper(hasLexicalThis, hasLexicalArguments, promiseConstructor, body) { - context.requestEmitHelper(awaiterHelper); - var generatorFunc = factory2.createFunctionExpression( - /*modifiers*/ - void 0, factory2.createToken(42 /* AsteriskToken */), - /*name*/ - void 0, - /*typeParameters*/ - void 0, - /*parameters*/ - [], - /*type*/ - void 0, body); - (generatorFunc.emitNode || (generatorFunc.emitNode = {})).flags |= 524288 /* AsyncFunctionBody */ | 1048576 /* ReuseTempVariableScope */; - return factory2.createCallExpression(getUnscopedHelperName("__awaiter"), - /*typeArguments*/ - void 0, [ - hasLexicalThis ? factory2.createThis() : factory2.createVoidZero(), - hasLexicalArguments ? factory2.createIdentifier("arguments") : factory2.createVoidZero(), - promiseConstructor ? createExpressionFromEntityName(factory2, promiseConstructor) : factory2.createVoidZero(), - generatorFunc - ]); - } - function createExtendsHelper(name) { - context.requestEmitHelper(extendsHelper); - return factory2.createCallExpression(getUnscopedHelperName("__extends"), - /*typeArguments*/ - void 0, [name, factory2.createUniqueName("_super", 16 /* Optimistic */ | 32 /* FileLevel */)]); - } - function createTemplateObjectHelper(cooked, raw) { - context.requestEmitHelper(templateObjectHelper); - return factory2.createCallExpression(getUnscopedHelperName("__makeTemplateObject"), - /*typeArguments*/ - void 0, [cooked, raw]); - } - function createSpreadArrayHelper(to, from, packFrom) { - context.requestEmitHelper(spreadArrayHelper); - return factory2.createCallExpression(getUnscopedHelperName("__spreadArray"), - /*typeArguments*/ - void 0, [to, from, packFrom ? immutableTrue() : immutableFalse()]); - } - function createPropKeyHelper(expr) { - context.requestEmitHelper(propKeyHelper); - return factory2.createCallExpression(getUnscopedHelperName("__propKey"), - /*typeArguments*/ - void 0, [expr]); - } - function createSetFunctionNameHelper(f, name, prefix) { - context.requestEmitHelper(setFunctionNameHelper); - return context.factory.createCallExpression(getUnscopedHelperName("__setFunctionName"), - /*typeArguments*/ - void 0, prefix ? [f, name, context.factory.createStringLiteral(prefix)] : [f, name]); - } - function createValuesHelper(expression) { - context.requestEmitHelper(valuesHelper); - return factory2.createCallExpression(getUnscopedHelperName("__values"), - /*typeArguments*/ - void 0, [expression]); - } - function createReadHelper(iteratorRecord, count) { - context.requestEmitHelper(readHelper); - return factory2.createCallExpression(getUnscopedHelperName("__read"), - /*typeArguments*/ - void 0, count !== void 0 ? [iteratorRecord, factory2.createNumericLiteral(count + "")] : [iteratorRecord]); - } - function createGeneratorHelper(body) { - context.requestEmitHelper(generatorHelper); - return factory2.createCallExpression(getUnscopedHelperName("__generator"), - /*typeArguments*/ - void 0, [factory2.createThis(), body]); - } - function createCreateBindingHelper(module2, inputName, outputName) { - context.requestEmitHelper(createBindingHelper); - return factory2.createCallExpression(getUnscopedHelperName("__createBinding"), - /*typeArguments*/ - void 0, __spreadArray([factory2.createIdentifier("exports"), module2, inputName], __read(outputName ? [outputName] : []), false)); - } - function createImportStarHelper(expression) { - context.requestEmitHelper(importStarHelper); - return factory2.createCallExpression(getUnscopedHelperName("__importStar"), - /*typeArguments*/ - void 0, [expression]); - } - function createImportStarCallbackHelper() { - context.requestEmitHelper(importStarHelper); - return getUnscopedHelperName("__importStar"); - } - function createImportDefaultHelper(expression) { - context.requestEmitHelper(importDefaultHelper); - return factory2.createCallExpression(getUnscopedHelperName("__importDefault"), - /*typeArguments*/ - void 0, [expression]); - } - function createExportStarHelper(moduleExpression, exportsExpression) { - if (exportsExpression === void 0) { exportsExpression = factory2.createIdentifier("exports"); } - context.requestEmitHelper(exportStarHelper); - context.requestEmitHelper(createBindingHelper); - return factory2.createCallExpression(getUnscopedHelperName("__exportStar"), - /*typeArguments*/ - void 0, [moduleExpression, exportsExpression]); - } - function createClassPrivateFieldGetHelper(receiver, state, kind, f) { - context.requestEmitHelper(classPrivateFieldGetHelper); - var args; - if (!f) { - args = [receiver, state, factory2.createStringLiteral(kind)]; - } - else { - args = [receiver, state, factory2.createStringLiteral(kind), f]; - } - return factory2.createCallExpression(getUnscopedHelperName("__classPrivateFieldGet"), - /*typeArguments*/ - void 0, args); - } - function createClassPrivateFieldSetHelper(receiver, state, value, kind, f) { - context.requestEmitHelper(classPrivateFieldSetHelper); - var args; - if (!f) { - args = [receiver, state, value, factory2.createStringLiteral(kind)]; - } - else { - args = [receiver, state, value, factory2.createStringLiteral(kind), f]; - } - return factory2.createCallExpression(getUnscopedHelperName("__classPrivateFieldSet"), - /*typeArguments*/ - void 0, args); - } - function createClassPrivateFieldInHelper(state, receiver) { - context.requestEmitHelper(classPrivateFieldInHelper); - return factory2.createCallExpression(getUnscopedHelperName("__classPrivateFieldIn"), - /*typeArguments*/ - void 0, [state, receiver]); - } - function createAddDisposableResourceHelper(envBinding, value, async) { - context.requestEmitHelper(addDisposableResourceHelper); - return factory2.createCallExpression(getUnscopedHelperName("__addDisposableResource"), - /*typeArguments*/ - void 0, [envBinding, value, async ? factory2.createTrue() : factory2.createFalse()]); - } - function createDisposeResourcesHelper(envBinding) { - context.requestEmitHelper(disposeResourcesHelper); - return factory2.createCallExpression(getUnscopedHelperName("__disposeResources"), - /*typeArguments*/ - void 0, [envBinding]); - } -} -function compareEmitHelpers(x, y) { - if (x === y) - return 0 /* EqualTo */; - if (x.priority === y.priority) - return 0 /* EqualTo */; - if (x.priority === void 0) - return 1 /* GreaterThan */; - if (y.priority === void 0) - return -1 /* LessThan */; - return compareValues(x.priority, y.priority); -} -function helperString(input) { - var args = []; - for (var _t = 1; _t < arguments.length; _t++) { - args[_t - 1] = arguments[_t]; - } - return function (uniqueName) { - var result = ""; - for (var i = 0; i < args.length; i++) { - result += input[i]; - result += uniqueName(args[i]); - } - result += input[input.length - 1]; - return result; - }; -} -var decorateHelper = { - name: "typescript:decorate", - importName: "__decorate", - scoped: false, - priority: 2, - text: "\n var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n };" -}; -var metadataHelper = { - name: "typescript:metadata", - importName: "__metadata", - scoped: false, - priority: 3, - text: "\n var __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n };" -}; -var paramHelper = { - name: "typescript:param", - importName: "__param", - scoped: false, - priority: 4, - text: "\n var __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n };" -}; -var esDecorateHelper = { - name: "typescript:esDecorate", - importName: "__esDecorate", - scoped: false, - priority: 2, - text: "\n var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n };" -}; -var runInitializersHelper = { - name: "typescript:runInitializers", - importName: "__runInitializers", - scoped: false, - priority: 2, - text: "\n var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n };" -}; -var assignHelper = { - name: "typescript:assign", - importName: "__assign", - scoped: false, - priority: 1, - text: "\n var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n };" -}; -var awaitHelper = { - name: "typescript:await", - importName: "__await", - scoped: false, - text: "\n var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }" -}; -var asyncGeneratorHelper = { - name: "typescript:asyncGenerator", - importName: "__asyncGenerator", - scoped: false, - dependencies: [awaitHelper], - text: "\n var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n };" -}; -var asyncDelegator = { - name: "typescript:asyncDelegator", - importName: "__asyncDelegator", - scoped: false, - dependencies: [awaitHelper], - text: "\n var __asyncDelegator = (this && this.__asyncDelegator) || function (o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n };" -}; -var asyncValues = { - name: "typescript:asyncValues", - importName: "__asyncValues", - scoped: false, - text: "\n var __asyncValues = (this && this.__asyncValues) || function (o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n };" -}; -var restHelper = { - name: "typescript:rest", - importName: "__rest", - scoped: false, - text: "\n var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n };" -}; -var awaiterHelper = { - name: "typescript:awaiter", - importName: "__awaiter", - scoped: false, - priority: 5, - text: "\n var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n };" -}; -var extendsHelper = { - name: "typescript:extends", - importName: "__extends", - scoped: false, - priority: 0, - text: "\n var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n })();" -}; -var templateObjectHelper = { - name: "typescript:makeTemplateObject", - importName: "__makeTemplateObject", - scoped: false, - priority: 0, - text: "\n var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n };" -}; -var readHelper = { - name: "typescript:read", - importName: "__read", - scoped: false, - text: "\n var __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n };" -}; -var spreadArrayHelper = { - name: "typescript:spreadArray", - importName: "__spreadArray", - scoped: false, - text: "\n var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n };" -}; -var propKeyHelper = { - name: "typescript:propKey", - importName: "__propKey", - scoped: false, - text: "\n var __propKey = (this && this.__propKey) || function (x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n };" -}; -var setFunctionNameHelper = { - name: "typescript:setFunctionName", - importName: "__setFunctionName", - scoped: false, - text: "\n var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n };" -}; -var valuesHelper = { - name: "typescript:values", - importName: "__values", - scoped: false, - text: "\n var __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n };" -}; -var generatorHelper = { - name: "typescript:generator", - importName: "__generator", - scoped: false, - priority: 6, - text: "\n var __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n };" -}; -var createBindingHelper = { - name: "typescript:commonjscreatebinding", - importName: "__createBinding", - scoped: false, - priority: 1, - text: "\n var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n }) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n }));" -}; -var setModuleDefaultHelper = { - name: "typescript:commonjscreatevalue", - importName: "__setModuleDefault", - scoped: false, - priority: 1, - text: "\n var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n }) : function(o, v) {\n o[\"default\"] = v;\n });" -}; -var importStarHelper = { - name: "typescript:commonjsimportstar", - importName: "__importStar", - scoped: false, - dependencies: [createBindingHelper, setModuleDefaultHelper], - priority: 2, - text: "\n var __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n };" -}; -var importDefaultHelper = { - name: "typescript:commonjsimportdefault", - importName: "__importDefault", - scoped: false, - text: "\n var __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n };" -}; -var exportStarHelper = { - name: "typescript:export-star", - importName: "__exportStar", - scoped: false, - dependencies: [createBindingHelper], - priority: 2, - text: "\n var __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n };" -}; -var classPrivateFieldGetHelper = { - name: "typescript:classPrivateFieldGet", - importName: "__classPrivateFieldGet", - scoped: false, - text: "\n var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n };" -}; -var classPrivateFieldSetHelper = { - name: "typescript:classPrivateFieldSet", - importName: "__classPrivateFieldSet", - scoped: false, - text: "\n var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n };" -}; -var classPrivateFieldInHelper = { - name: "typescript:classPrivateFieldIn", - importName: "__classPrivateFieldIn", - scoped: false, - text: "\n var __classPrivateFieldIn = (this && this.__classPrivateFieldIn) || function(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n };" -}; -var addDisposableResourceHelper = { - name: "typescript:addDisposableResource", - importName: "__addDisposableResource", - scoped: false, - text: "\n var __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n };" -}; -var disposeResourcesHelper = { - name: "typescript:disposeResources", - importName: "__disposeResources", - scoped: false, - text: "\n var __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {\n return function (env) {\n function fail(e) {\n env.error = env.hasError ? new SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n };\n })(typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n });" -}; -var allUnscopedEmitHelpers; -function getAllUnscopedEmitHelpers() { - return allUnscopedEmitHelpers || (allUnscopedEmitHelpers = arrayToMap([ - decorateHelper, - metadataHelper, - paramHelper, - esDecorateHelper, - runInitializersHelper, - assignHelper, - awaitHelper, - asyncGeneratorHelper, - asyncDelegator, - asyncValues, - restHelper, - awaiterHelper, - extendsHelper, - templateObjectHelper, - spreadArrayHelper, - valuesHelper, - readHelper, - propKeyHelper, - setFunctionNameHelper, - generatorHelper, - importStarHelper, - importDefaultHelper, - exportStarHelper, - classPrivateFieldGetHelper, - classPrivateFieldSetHelper, - classPrivateFieldInHelper, - createBindingHelper, - setModuleDefaultHelper, - addDisposableResourceHelper, - disposeResourcesHelper - ], function (helper) { return helper.name; })); -} -var asyncSuperHelper = { - name: "typescript:async-super", - scoped: true, - text: helperString(__makeTemplateObject(["\n const ", " = name => super[name];"], ["\n const ", " = name => super[name];"]), "_superIndex") -}; -var advancedAsyncSuperHelper = { - name: "typescript:advanced-async-super", - scoped: true, - text: helperString(__makeTemplateObject(["\n const ", " = (function (geti, seti) {\n const cache = Object.create(null);\n return name => cache[name] || (cache[name] = { get value() { return geti(name); }, set value(v) { seti(name, v); } });\n })(name => super[name], (name, value) => super[name] = value);"], ["\n const ", " = (function (geti, seti) {\n const cache = Object.create(null);\n return name => cache[name] || (cache[name] = { get value() { return geti(name); }, set value(v) { seti(name, v); } });\n })(name => super[name], (name, value) => super[name] = value);"]), "_superIndex") -}; -function isCallToHelper(firstSegment, helperName) { - return isCallExpression(firstSegment) && isIdentifier(firstSegment.expression) && (getEmitFlags(firstSegment.expression) & 8192 /* HelperName */) !== 0 && firstSegment.expression.escapedText === helperName; -} -// src/compiler/factory/nodeTests.ts -function isNumericLiteral(node) { - return node.kind === 9 /* NumericLiteral */; -} -function isBigIntLiteral(node) { - return node.kind === 10 /* BigIntLiteral */; -} -function isStringLiteral(node) { - return node.kind === 11 /* StringLiteral */; -} -function isJsxText(node) { - return node.kind === 12 /* JsxText */; -} -function isRegularExpressionLiteral(node) { - return node.kind === 14 /* RegularExpressionLiteral */; -} -function isNoSubstitutionTemplateLiteral(node) { - return node.kind === 15 /* NoSubstitutionTemplateLiteral */; -} -function isTemplateHead(node) { - return node.kind === 16 /* TemplateHead */; -} -function isTemplateMiddle(node) { - return node.kind === 17 /* TemplateMiddle */; -} -function isTemplateTail(node) { - return node.kind === 18 /* TemplateTail */; -} -function isDotDotDotToken(node) { - return node.kind === 26 /* DotDotDotToken */; -} -function isCommaToken(node) { - return node.kind === 28 /* CommaToken */; -} -function isPlusToken(node) { - return node.kind === 40 /* PlusToken */; -} -function isMinusToken(node) { - return node.kind === 41 /* MinusToken */; -} -function isAsteriskToken(node) { - return node.kind === 42 /* AsteriskToken */; -} -function isExclamationToken(node) { - return node.kind === 54 /* ExclamationToken */; -} -function isQuestionToken(node) { - return node.kind === 58 /* QuestionToken */; -} -function isColonToken(node) { - return node.kind === 59 /* ColonToken */; -} -function isQuestionDotToken(node) { - return node.kind === 29 /* QuestionDotToken */; -} -function isEqualsGreaterThanToken(node) { - return node.kind === 39 /* EqualsGreaterThanToken */; -} -function isIdentifier(node) { - return node.kind === 80 /* Identifier */; -} -function isPrivateIdentifier(node) { - return node.kind === 81 /* PrivateIdentifier */; -} -function isExportModifier(node) { - return node.kind === 95 /* ExportKeyword */; -} -function isDefaultModifier(node) { - return node.kind === 90 /* DefaultKeyword */; -} -function isAsyncModifier(node) { - return node.kind === 134 /* AsyncKeyword */; -} -function isAssertsKeyword(node) { - return node.kind === 131 /* AssertsKeyword */; -} -function isAwaitKeyword(node) { - return node.kind === 135 /* AwaitKeyword */; -} -function isReadonlyKeyword(node) { - return node.kind === 148 /* ReadonlyKeyword */; -} -function isStaticModifier(node) { - return node.kind === 126 /* StaticKeyword */; -} -function isAbstractModifier(node) { - return node.kind === 128 /* AbstractKeyword */; -} -function isOverrideModifier(node) { - return node.kind === 164 /* OverrideKeyword */; -} -function isAccessorModifier(node) { - return node.kind === 129 /* AccessorKeyword */; -} -function isSuperKeyword(node) { - return node.kind === 108 /* SuperKeyword */; -} -function isImportKeyword(node) { - return node.kind === 102 /* ImportKeyword */; -} -function isCaseKeyword(node) { - return node.kind === 84 /* CaseKeyword */; -} -function isQualifiedName(node) { - return node.kind === 166 /* QualifiedName */; -} -function isComputedPropertyName(node) { - return node.kind === 167 /* ComputedPropertyName */; -} -function isTypeParameterDeclaration(node) { - return node.kind === 168 /* TypeParameter */; -} -function isParameter(node) { - return node.kind === 169 /* Parameter */; -} -function isDecorator(node) { - return node.kind === 170 /* Decorator */; -} -function isPropertySignature(node) { - return node.kind === 171 /* PropertySignature */; -} -function isPropertyDeclaration(node) { - return node.kind === 172 /* PropertyDeclaration */; -} -function isMethodSignature(node) { - return node.kind === 173 /* MethodSignature */; -} -function isMethodDeclaration(node) { - return node.kind === 174 /* MethodDeclaration */; -} -function isClassStaticBlockDeclaration(node) { - return node.kind === 175 /* ClassStaticBlockDeclaration */; -} -function isConstructorDeclaration(node) { - return node.kind === 176 /* Constructor */; -} -function isGetAccessorDeclaration(node) { - return node.kind === 177 /* GetAccessor */; -} -function isSetAccessorDeclaration(node) { - return node.kind === 178 /* SetAccessor */; -} -function isCallSignatureDeclaration(node) { - return node.kind === 179 /* CallSignature */; -} -function isConstructSignatureDeclaration(node) { - return node.kind === 180 /* ConstructSignature */; -} -function isIndexSignatureDeclaration(node) { - return node.kind === 181 /* IndexSignature */; -} -function isTypePredicateNode(node) { - return node.kind === 182 /* TypePredicate */; -} -function isTypeReferenceNode(node) { - return node.kind === 183 /* TypeReference */; -} -function isFunctionTypeNode(node) { - return node.kind === 184 /* FunctionType */; -} -function isConstructorTypeNode(node) { - return node.kind === 185 /* ConstructorType */; -} -function isTypeQueryNode(node) { - return node.kind === 186 /* TypeQuery */; -} -function isTypeLiteralNode(node) { - return node.kind === 187 /* TypeLiteral */; -} -function isArrayTypeNode(node) { - return node.kind === 188 /* ArrayType */; -} -function isTupleTypeNode(node) { - return node.kind === 189 /* TupleType */; -} -function isNamedTupleMember(node) { - return node.kind === 202 /* NamedTupleMember */; -} -function isOptionalTypeNode(node) { - return node.kind === 190 /* OptionalType */; -} -function isRestTypeNode(node) { - return node.kind === 191 /* RestType */; -} -function isUnionTypeNode(node) { - return node.kind === 192 /* UnionType */; -} -function isIntersectionTypeNode(node) { - return node.kind === 193 /* IntersectionType */; -} -function isConditionalTypeNode(node) { - return node.kind === 194 /* ConditionalType */; -} -function isInferTypeNode(node) { - return node.kind === 195 /* InferType */; -} -function isParenthesizedTypeNode(node) { - return node.kind === 196 /* ParenthesizedType */; -} -function isThisTypeNode(node) { - return node.kind === 197 /* ThisType */; -} -function isTypeOperatorNode(node) { - return node.kind === 198 /* TypeOperator */; -} -function isIndexedAccessTypeNode(node) { - return node.kind === 199 /* IndexedAccessType */; -} -function isMappedTypeNode(node) { - return node.kind === 200 /* MappedType */; -} -function isLiteralTypeNode(node) { - return node.kind === 201 /* LiteralType */; -} -function isImportTypeNode(node) { - return node.kind === 205 /* ImportType */; -} -function isTemplateLiteralTypeSpan(node) { - return node.kind === 204 /* TemplateLiteralTypeSpan */; -} -function isTemplateLiteralTypeNode(node) { - return node.kind === 203 /* TemplateLiteralType */; -} -function isObjectBindingPattern(node) { - return node.kind === 206 /* ObjectBindingPattern */; -} -function isArrayBindingPattern(node) { - return node.kind === 207 /* ArrayBindingPattern */; -} -function isBindingElement(node) { - return node.kind === 208 /* BindingElement */; -} -function isArrayLiteralExpression(node) { - return node.kind === 209 /* ArrayLiteralExpression */; -} -function isObjectLiteralExpression(node) { - return node.kind === 210 /* ObjectLiteralExpression */; -} -function isPropertyAccessExpression(node) { - return node.kind === 211 /* PropertyAccessExpression */; -} -function isElementAccessExpression(node) { - return node.kind === 212 /* ElementAccessExpression */; -} -function isCallExpression(node) { - return node.kind === 213 /* CallExpression */; -} -function isNewExpression(node) { - return node.kind === 214 /* NewExpression */; -} -function isTaggedTemplateExpression(node) { - return node.kind === 215 /* TaggedTemplateExpression */; -} -function isTypeAssertionExpression(node) { - return node.kind === 216 /* TypeAssertionExpression */; -} -function isParenthesizedExpression(node) { - return node.kind === 217 /* ParenthesizedExpression */; -} -function isFunctionExpression(node) { - return node.kind === 218 /* FunctionExpression */; -} -function isArrowFunction(node) { - return node.kind === 219 /* ArrowFunction */; -} -function isDeleteExpression(node) { - return node.kind === 220 /* DeleteExpression */; -} -function isTypeOfExpression(node) { - return node.kind === 221 /* TypeOfExpression */; -} -function isVoidExpression(node) { - return node.kind === 222 /* VoidExpression */; -} -function isAwaitExpression(node) { - return node.kind === 223 /* AwaitExpression */; -} -function isPrefixUnaryExpression(node) { - return node.kind === 224 /* PrefixUnaryExpression */; -} -function isPostfixUnaryExpression(node) { - return node.kind === 225 /* PostfixUnaryExpression */; -} -function isBinaryExpression(node) { - return node.kind === 226 /* BinaryExpression */; -} -function isConditionalExpression(node) { - return node.kind === 227 /* ConditionalExpression */; -} -function isTemplateExpression(node) { - return node.kind === 228 /* TemplateExpression */; -} -function isYieldExpression(node) { - return node.kind === 229 /* YieldExpression */; -} -function isSpreadElement(node) { - return node.kind === 230 /* SpreadElement */; -} -function isClassExpression(node) { - return node.kind === 231 /* ClassExpression */; -} -function isOmittedExpression(node) { - return node.kind === 232 /* OmittedExpression */; -} -function isExpressionWithTypeArguments(node) { - return node.kind === 233 /* ExpressionWithTypeArguments */; -} -function isAsExpression(node) { - return node.kind === 234 /* AsExpression */; -} -function isSatisfiesExpression(node) { - return node.kind === 238 /* SatisfiesExpression */; -} -function isNonNullExpression(node) { - return node.kind === 235 /* NonNullExpression */; -} -function isMetaProperty(node) { - return node.kind === 236 /* MetaProperty */; -} -function isSyntheticExpression(node) { - return node.kind === 237 /* SyntheticExpression */; -} -function isPartiallyEmittedExpression(node) { - return node.kind === 360 /* PartiallyEmittedExpression */; -} -function isCommaListExpression(node) { - return node.kind === 361 /* CommaListExpression */; -} -function isTemplateSpan(node) { - return node.kind === 239 /* TemplateSpan */; -} -function isSemicolonClassElement(node) { - return node.kind === 240 /* SemicolonClassElement */; -} -function isBlock(node) { - return node.kind === 241 /* Block */; -} -function isVariableStatement(node) { - return node.kind === 243 /* VariableStatement */; -} -function isEmptyStatement(node) { - return node.kind === 242 /* EmptyStatement */; -} -function isExpressionStatement(node) { - return node.kind === 244 /* ExpressionStatement */; -} -function isIfStatement(node) { - return node.kind === 245 /* IfStatement */; -} -function isDoStatement(node) { - return node.kind === 246 /* DoStatement */; -} -function isWhileStatement(node) { - return node.kind === 247 /* WhileStatement */; -} -function isForStatement(node) { - return node.kind === 248 /* ForStatement */; -} -function isForInStatement(node) { - return node.kind === 249 /* ForInStatement */; -} -function isForOfStatement(node) { - return node.kind === 250 /* ForOfStatement */; -} -function isContinueStatement(node) { - return node.kind === 251 /* ContinueStatement */; -} -function isBreakStatement(node) { - return node.kind === 252 /* BreakStatement */; -} -function isReturnStatement(node) { - return node.kind === 253 /* ReturnStatement */; -} -function isWithStatement(node) { - return node.kind === 254 /* WithStatement */; -} -function isSwitchStatement(node) { - return node.kind === 255 /* SwitchStatement */; -} -function isLabeledStatement(node) { - return node.kind === 256 /* LabeledStatement */; -} -function isThrowStatement(node) { - return node.kind === 257 /* ThrowStatement */; -} -function isTryStatement(node) { - return node.kind === 258 /* TryStatement */; -} -function isDebuggerStatement(node) { - return node.kind === 259 /* DebuggerStatement */; -} -function isVariableDeclaration(node) { - return node.kind === 260 /* VariableDeclaration */; -} -function isVariableDeclarationList(node) { - return node.kind === 261 /* VariableDeclarationList */; -} -function isFunctionDeclaration(node) { - return node.kind === 262 /* FunctionDeclaration */; -} -function isClassDeclaration(node) { - return node.kind === 263 /* ClassDeclaration */; -} -function isInterfaceDeclaration(node) { - return node.kind === 264 /* InterfaceDeclaration */; -} -function isTypeAliasDeclaration(node) { - return node.kind === 265 /* TypeAliasDeclaration */; -} -function isEnumDeclaration(node) { - return node.kind === 266 /* EnumDeclaration */; -} -function isModuleDeclaration(node) { - return node.kind === 267 /* ModuleDeclaration */; -} -function isModuleBlock(node) { - return node.kind === 268 /* ModuleBlock */; -} -function isCaseBlock(node) { - return node.kind === 269 /* CaseBlock */; -} -function isNamespaceExportDeclaration(node) { - return node.kind === 270 /* NamespaceExportDeclaration */; -} -function isImportEqualsDeclaration(node) { - return node.kind === 271 /* ImportEqualsDeclaration */; -} -function isImportDeclaration(node) { - return node.kind === 272 /* ImportDeclaration */; -} -function isImportClause(node) { - return node.kind === 273 /* ImportClause */; -} -function isImportTypeAssertionContainer(node) { - return node.kind === 302 /* ImportTypeAssertionContainer */; -} -function isAssertClause(node) { - return node.kind === 300 /* AssertClause */; -} -function isAssertEntry(node) { - return node.kind === 301 /* AssertEntry */; -} -function isNamespaceImport(node) { - return node.kind === 274 /* NamespaceImport */; -} -function isNamespaceExport(node) { - return node.kind === 280 /* NamespaceExport */; -} -function isNamedImports(node) { - return node.kind === 275 /* NamedImports */; -} -function isImportSpecifier(node) { - return node.kind === 276 /* ImportSpecifier */; -} -function isExportAssignment(node) { - return node.kind === 277 /* ExportAssignment */; -} -function isExportDeclaration(node) { - return node.kind === 278 /* ExportDeclaration */; -} -function isNamedExports(node) { - return node.kind === 279 /* NamedExports */; -} -function isExportSpecifier(node) { - return node.kind === 281 /* ExportSpecifier */; -} -function isMissingDeclaration(node) { - return node.kind === 282 /* MissingDeclaration */; -} -function isNotEmittedStatement(node) { - return node.kind === 359 /* NotEmittedStatement */; -} -function isSyntheticReference(node) { - return node.kind === 362 /* SyntheticReferenceExpression */; -} -function isExternalModuleReference(node) { - return node.kind === 283 /* ExternalModuleReference */; -} -function isJsxElement(node) { - return node.kind === 284 /* JsxElement */; -} -function isJsxSelfClosingElement(node) { - return node.kind === 285 /* JsxSelfClosingElement */; -} -function isJsxOpeningElement(node) { - return node.kind === 286 /* JsxOpeningElement */; -} -function isJsxClosingElement(node) { - return node.kind === 287 /* JsxClosingElement */; -} -function isJsxFragment(node) { - return node.kind === 288 /* JsxFragment */; -} -function isJsxOpeningFragment(node) { - return node.kind === 289 /* JsxOpeningFragment */; -} -function isJsxClosingFragment(node) { - return node.kind === 290 /* JsxClosingFragment */; -} -function isJsxAttribute(node) { - return node.kind === 291 /* JsxAttribute */; -} -function isJsxAttributes(node) { - return node.kind === 292 /* JsxAttributes */; -} -function isJsxSpreadAttribute(node) { - return node.kind === 293 /* JsxSpreadAttribute */; -} -function isJsxExpression(node) { - return node.kind === 294 /* JsxExpression */; -} -function isJsxNamespacedName(node) { - return node.kind === 295 /* JsxNamespacedName */; -} -function isCaseClause(node) { - return node.kind === 296 /* CaseClause */; -} -function isDefaultClause(node) { - return node.kind === 297 /* DefaultClause */; -} -function isHeritageClause(node) { - return node.kind === 298 /* HeritageClause */; -} -function isCatchClause(node) { - return node.kind === 299 /* CatchClause */; -} -function isPropertyAssignment(node) { - return node.kind === 303 /* PropertyAssignment */; -} -function isShorthandPropertyAssignment(node) { - return node.kind === 304 /* ShorthandPropertyAssignment */; -} -function isSpreadAssignment(node) { - return node.kind === 305 /* SpreadAssignment */; -} -function isEnumMember(node) { - return node.kind === 306 /* EnumMember */; -} -function isUnparsedPrepend(node) { - return node.kind === 308 /* UnparsedPrepend */; -} -function isSourceFile(node) { - return node.kind === 312 /* SourceFile */; -} -function isBundle(node) { - return node.kind === 313 /* Bundle */; -} -function isUnparsedSource(node) { - return node.kind === 314 /* UnparsedSource */; -} -function isJSDocTypeExpression(node) { - return node.kind === 316 /* JSDocTypeExpression */; -} -function isJSDocNameReference(node) { - return node.kind === 317 /* JSDocNameReference */; -} -function isJSDocMemberName(node) { - return node.kind === 318 /* JSDocMemberName */; -} -function isJSDocLink(node) { - return node.kind === 331 /* JSDocLink */; -} -function isJSDocLinkCode(node) { - return node.kind === 332 /* JSDocLinkCode */; -} -function isJSDocLinkPlain(node) { - return node.kind === 333 /* JSDocLinkPlain */; -} -function isJSDocAllType(node) { - return node.kind === 319 /* JSDocAllType */; -} -function isJSDocUnknownType(node) { - return node.kind === 320 /* JSDocUnknownType */; -} -function isJSDocNullableType(node) { - return node.kind === 321 /* JSDocNullableType */; -} -function isJSDocNonNullableType(node) { - return node.kind === 322 /* JSDocNonNullableType */; -} -function isJSDocOptionalType(node) { - return node.kind === 323 /* JSDocOptionalType */; -} -function isJSDocFunctionType(node) { - return node.kind === 324 /* JSDocFunctionType */; -} -function isJSDocVariadicType(node) { - return node.kind === 325 /* JSDocVariadicType */; -} -function isJSDocNamepathType(node) { - return node.kind === 326 /* JSDocNamepathType */; -} -function isJSDoc(node) { - return node.kind === 327 /* JSDoc */; -} -function isJSDocTypeLiteral(node) { - return node.kind === 329 /* JSDocTypeLiteral */; -} -function isJSDocSignature(node) { - return node.kind === 330 /* JSDocSignature */; -} -function isJSDocAugmentsTag(node) { - return node.kind === 335 /* JSDocAugmentsTag */; -} -function isJSDocAuthorTag(node) { - return node.kind === 337 /* JSDocAuthorTag */; -} -function isJSDocClassTag(node) { - return node.kind === 339 /* JSDocClassTag */; -} -function isJSDocCallbackTag(node) { - return node.kind === 345 /* JSDocCallbackTag */; -} -function isJSDocPublicTag(node) { - return node.kind === 340 /* JSDocPublicTag */; -} -function isJSDocPrivateTag(node) { - return node.kind === 341 /* JSDocPrivateTag */; -} -function isJSDocProtectedTag(node) { - return node.kind === 342 /* JSDocProtectedTag */; -} -function isJSDocReadonlyTag(node) { - return node.kind === 343 /* JSDocReadonlyTag */; -} -function isJSDocOverrideTag(node) { - return node.kind === 344 /* JSDocOverrideTag */; -} -function isJSDocOverloadTag(node) { - return node.kind === 346 /* JSDocOverloadTag */; -} -function isJSDocDeprecatedTag(node) { - return node.kind === 338 /* JSDocDeprecatedTag */; -} -function isJSDocSeeTag(node) { - return node.kind === 354 /* JSDocSeeTag */; -} -function isJSDocEnumTag(node) { - return node.kind === 347 /* JSDocEnumTag */; -} -function isJSDocParameterTag(node) { - return node.kind === 348 /* JSDocParameterTag */; -} -function isJSDocReturnTag(node) { - return node.kind === 349 /* JSDocReturnTag */; -} -function isJSDocThisTag(node) { - return node.kind === 350 /* JSDocThisTag */; -} -function isJSDocTypeTag(node) { - return node.kind === 351 /* JSDocTypeTag */; -} -function isJSDocTemplateTag(node) { - return node.kind === 352 /* JSDocTemplateTag */; -} -function isJSDocTypedefTag(node) { - return node.kind === 353 /* JSDocTypedefTag */; -} -function isJSDocUnknownTag(node) { - return node.kind === 334 /* JSDocTag */; -} -function isJSDocPropertyTag(node) { - return node.kind === 355 /* JSDocPropertyTag */; -} -function isJSDocImplementsTag(node) { - return node.kind === 336 /* JSDocImplementsTag */; -} -function isJSDocSatisfiesTag(node) { - return node.kind === 357 /* JSDocSatisfiesTag */; -} -function isJSDocThrowsTag(node) { - return node.kind === 356 /* JSDocThrowsTag */; -} -function isSyntaxList(n) { - return n.kind === 358 /* SyntaxList */; -} -// src/compiler/factory/utilities.ts -function createEmptyExports(factory2) { - return factory2.createExportDeclaration( - /*modifiers*/ - void 0, - /*isTypeOnly*/ - false, factory2.createNamedExports([]), - /*moduleSpecifier*/ - void 0); -} -function createMemberAccessForPropertyName(factory2, target, memberName, location) { - if (isComputedPropertyName(memberName)) { - return setTextRange(factory2.createElementAccessExpression(target, memberName.expression), location); - } - else { - var expression = setTextRange(isMemberName(memberName) ? factory2.createPropertyAccessExpression(target, memberName) : factory2.createElementAccessExpression(target, memberName), memberName); - addEmitFlags(expression, 128 /* NoNestedSourceMaps */); - return expression; - } -} -function createReactNamespace(reactNamespace, parent2) { - var react = parseNodeFactory.createIdentifier(reactNamespace || "React"); - setParent(react, getParseTreeNode(parent2)); - return react; -} -function createJsxFactoryExpressionFromEntityName(factory2, jsxFactory, parent2) { - if (isQualifiedName(jsxFactory)) { - var left = createJsxFactoryExpressionFromEntityName(factory2, jsxFactory.left, parent2); - var right = factory2.createIdentifier(idText(jsxFactory.right)); - right.escapedText = jsxFactory.right.escapedText; - return factory2.createPropertyAccessExpression(left, right); - } - else { - return createReactNamespace(idText(jsxFactory), parent2); - } -} -function createJsxFactoryExpression(factory2, jsxFactoryEntity, reactNamespace, parent2) { - return jsxFactoryEntity ? createJsxFactoryExpressionFromEntityName(factory2, jsxFactoryEntity, parent2) : factory2.createPropertyAccessExpression(createReactNamespace(reactNamespace, parent2), "createElement"); -} -function createJsxFragmentFactoryExpression(factory2, jsxFragmentFactoryEntity, reactNamespace, parent2) { - return jsxFragmentFactoryEntity ? createJsxFactoryExpressionFromEntityName(factory2, jsxFragmentFactoryEntity, parent2) : factory2.createPropertyAccessExpression(createReactNamespace(reactNamespace, parent2), "Fragment"); -} -function createExpressionForJsxElement(factory2, callee, tagName, props, children, location) { - var e_87, _t; - var argumentsList = [tagName]; - if (props) { - argumentsList.push(props); - } - if (children && children.length > 0) { - if (!props) { - argumentsList.push(factory2.createNull()); - } - if (children.length > 1) { - try { - for (var children_3 = __values(children), children_3_1 = children_3.next(); !children_3_1.done; children_3_1 = children_3.next()) { - var child = children_3_1.value; - startOnNewLine(child); - argumentsList.push(child); - } - } - catch (e_87_1) { e_87 = { error: e_87_1 }; } - finally { - try { - if (children_3_1 && !children_3_1.done && (_t = children_3.return)) _t.call(children_3); - } - finally { if (e_87) throw e_87.error; } - } - } - else { - argumentsList.push(children[0]); - } - } - return setTextRange(factory2.createCallExpression(callee, - /*typeArguments*/ - void 0, argumentsList), location); -} -function createExpressionForJsxFragment(factory2, jsxFactoryEntity, jsxFragmentFactoryEntity, reactNamespace, children, parentElement, location) { - var e_88, _t; - var tagName = createJsxFragmentFactoryExpression(factory2, jsxFragmentFactoryEntity, reactNamespace, parentElement); - var argumentsList = [tagName, factory2.createNull()]; - if (children && children.length > 0) { - if (children.length > 1) { - try { - for (var children_4 = __values(children), children_4_1 = children_4.next(); !children_4_1.done; children_4_1 = children_4.next()) { - var child = children_4_1.value; - startOnNewLine(child); - argumentsList.push(child); - } - } - catch (e_88_1) { e_88 = { error: e_88_1 }; } - finally { - try { - if (children_4_1 && !children_4_1.done && (_t = children_4.return)) _t.call(children_4); - } - finally { if (e_88) throw e_88.error; } - } - } - else { - argumentsList.push(children[0]); - } - } - return setTextRange(factory2.createCallExpression(createJsxFactoryExpression(factory2, jsxFactoryEntity, reactNamespace, parentElement), - /*typeArguments*/ - void 0, argumentsList), location); -} -function createForOfBindingStatement(factory2, node, boundValue) { - if (isVariableDeclarationList(node)) { - var firstDeclaration = first(node.declarations); - var updatedDeclaration = factory2.updateVariableDeclaration(firstDeclaration, firstDeclaration.name, - /*exclamationToken*/ - void 0, - /*type*/ - void 0, boundValue); - return setTextRange(factory2.createVariableStatement( - /*modifiers*/ - void 0, factory2.updateVariableDeclarationList(node, [updatedDeclaration])), - /*location*/ - node); - } - else { - var updatedExpression = setTextRange(factory2.createAssignment(node, boundValue), - /*location*/ - node); - return setTextRange(factory2.createExpressionStatement(updatedExpression), - /*location*/ - node); - } -} -function insertLeadingStatement(factory2, dest, source) { - if (isBlock(dest)) { - return factory2.updateBlock(dest, setTextRange(factory2.createNodeArray(__spreadArray([source], __read(dest.statements), false)), dest.statements)); - } - else { - return factory2.createBlock(factory2.createNodeArray([dest, source]), - /*multiLine*/ - true); - } -} -function createExpressionFromEntityName(factory2, node) { - if (isQualifiedName(node)) { - var left = createExpressionFromEntityName(factory2, node.left); - var right = setParent(setTextRange(factory2.cloneNode(node.right), node.right), node.right.parent); - return setTextRange(factory2.createPropertyAccessExpression(left, right), node); - } - else { - return setParent(setTextRange(factory2.cloneNode(node), node), node.parent); - } -} -function createExpressionForPropertyName(factory2, memberName) { - if (isIdentifier(memberName)) { - return factory2.createStringLiteralFromNode(memberName); - } - else if (isComputedPropertyName(memberName)) { - return setParent(setTextRange(factory2.cloneNode(memberName.expression), memberName.expression), memberName.expression.parent); - } - else { - return setParent(setTextRange(factory2.cloneNode(memberName), memberName), memberName.parent); - } -} -function createExpressionForAccessorDeclaration(factory2, properties, property, receiver, multiLine) { - var _t = getAllAccessorDeclarations(properties, property), firstAccessor = _t.firstAccessor, getAccessor = _t.getAccessor, setAccessor = _t.setAccessor; - if (property === firstAccessor) { - return setTextRange(factory2.createObjectDefinePropertyCall(receiver, createExpressionForPropertyName(factory2, property.name), factory2.createPropertyDescriptor({ - enumerable: factory2.createFalse(), - configurable: true, - get: getAccessor && setTextRange(setOriginalNode(factory2.createFunctionExpression(getModifiers(getAccessor), - /*asteriskToken*/ - void 0, - /*name*/ - void 0, - /*typeParameters*/ - void 0, getAccessor.parameters, - /*type*/ - void 0, getAccessor.body - // TODO: GH#18217 - ), getAccessor), getAccessor), - set: setAccessor && setTextRange(setOriginalNode(factory2.createFunctionExpression(getModifiers(setAccessor), - /*asteriskToken*/ - void 0, - /*name*/ - void 0, - /*typeParameters*/ - void 0, setAccessor.parameters, - /*type*/ - void 0, setAccessor.body - // TODO: GH#18217 - ), setAccessor), setAccessor) - }, !multiLine)), firstAccessor); - } - return void 0; -} -function createExpressionForPropertyAssignment(factory2, property, receiver) { - return setOriginalNode(setTextRange(factory2.createAssignment(createMemberAccessForPropertyName(factory2, receiver, property.name, - /*location*/ - property.name), property.initializer), property), property); -} -function createExpressionForShorthandPropertyAssignment(factory2, property, receiver) { - return setOriginalNode(setTextRange(factory2.createAssignment(createMemberAccessForPropertyName(factory2, receiver, property.name, - /*location*/ - property.name), factory2.cloneNode(property.name)), - /*location*/ - property), - /*original*/ - property); -} -function createExpressionForMethodDeclaration(factory2, method, receiver) { - return setOriginalNode(setTextRange(factory2.createAssignment(createMemberAccessForPropertyName(factory2, receiver, method.name, - /*location*/ - method.name), setOriginalNode(setTextRange(factory2.createFunctionExpression(getModifiers(method), method.asteriskToken, - /*name*/ - void 0, - /*typeParameters*/ - void 0, method.parameters, - /*type*/ - void 0, method.body - // TODO: GH#18217 - ), - /*location*/ - method), - /*original*/ - method)), - /*location*/ - method), - /*original*/ - method); -} -function createExpressionForObjectLiteralElementLike(factory2, node, property, receiver) { - if (property.name && isPrivateIdentifier(property.name)) { - Debug.failBadSyntaxKind(property.name, "Private identifiers are not allowed in object literals."); - } - switch (property.kind) { - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - return createExpressionForAccessorDeclaration(factory2, node.properties, property, receiver, !!node.multiLine); - case 303 /* PropertyAssignment */: - return createExpressionForPropertyAssignment(factory2, property, receiver); - case 304 /* ShorthandPropertyAssignment */: - return createExpressionForShorthandPropertyAssignment(factory2, property, receiver); - case 174 /* MethodDeclaration */: - return createExpressionForMethodDeclaration(factory2, property, receiver); - } -} -function expandPreOrPostfixIncrementOrDecrementExpression(factory2, node, expression, recordTempVariable, resultVariable) { - var operator = node.operator; - Debug.assert(operator === 46 /* PlusPlusToken */ || operator === 47 /* MinusMinusToken */, "Expected 'node' to be a pre- or post-increment or pre- or post-decrement expression"); - var temp = factory2.createTempVariable(recordTempVariable); - expression = factory2.createAssignment(temp, expression); - setTextRange(expression, node.operand); - var operation = isPrefixUnaryExpression(node) ? factory2.createPrefixUnaryExpression(operator, temp) : factory2.createPostfixUnaryExpression(temp, operator); - setTextRange(operation, node); - if (resultVariable) { - operation = factory2.createAssignment(resultVariable, operation); - setTextRange(operation, node); - } - expression = factory2.createComma(expression, operation); - setTextRange(expression, node); - if (isPostfixUnaryExpression(node)) { - expression = factory2.createComma(expression, temp); - setTextRange(expression, node); - } - return expression; -} -function isInternalName(node) { - return (getEmitFlags(node) & 65536 /* InternalName */) !== 0; -} -function isLocalName(node) { - return (getEmitFlags(node) & 32768 /* LocalName */) !== 0; -} -function isExportName(node) { - return (getEmitFlags(node) & 16384 /* ExportName */) !== 0; -} -function isUseStrictPrologue(node) { - return isStringLiteral(node.expression) && node.expression.text === "use strict"; -} -function findUseStrictPrologue(statements) { - var e_89, _t; - try { - for (var statements_1 = __values(statements), statements_1_1 = statements_1.next(); !statements_1_1.done; statements_1_1 = statements_1.next()) { - var statement = statements_1_1.value; - if (isPrologueDirective(statement)) { - if (isUseStrictPrologue(statement)) { - return statement; - } - } - else { - break; - } - } - } - catch (e_89_1) { e_89 = { error: e_89_1 }; } - finally { - try { - if (statements_1_1 && !statements_1_1.done && (_t = statements_1.return)) _t.call(statements_1); - } - finally { if (e_89) throw e_89.error; } - } - return void 0; -} -function startsWithUseStrict(statements) { - var firstStatement = firstOrUndefined(statements); - return firstStatement !== void 0 && isPrologueDirective(firstStatement) && isUseStrictPrologue(firstStatement); -} -function isCommaExpression(node) { - return node.kind === 226 /* BinaryExpression */ && node.operatorToken.kind === 28 /* CommaToken */; -} -function isCommaSequence(node) { - return isCommaExpression(node) || isCommaListExpression(node); -} -function isJSDocTypeAssertion(node) { - return isParenthesizedExpression(node) && isInJSFile(node) && !!getJSDocTypeTag(node); -} -function getJSDocTypeAssertionType(node) { - var type = getJSDocType(node); - Debug.assertIsDefined(type); - return type; -} -function isOuterExpression(node, kinds /* All */) { - if (kinds === void 0) { kinds = 15; } - switch (node.kind) { - case 217 /* ParenthesizedExpression */: - if (kinds & 16 /* ExcludeJSDocTypeAssertion */ && isJSDocTypeAssertion(node)) { - return false; - } - return (kinds & 1 /* Parentheses */) !== 0; - case 216 /* TypeAssertionExpression */: - case 234 /* AsExpression */: - case 233 /* ExpressionWithTypeArguments */: - case 238 /* SatisfiesExpression */: - return (kinds & 2 /* TypeAssertions */) !== 0; - case 235 /* NonNullExpression */: - return (kinds & 4 /* NonNullAssertions */) !== 0; - case 360 /* PartiallyEmittedExpression */: - return (kinds & 8 /* PartiallyEmittedExpressions */) !== 0; - } - return false; -} -function skipOuterExpressions(node, kinds /* All */) { - if (kinds === void 0) { kinds = 15; } - while (isOuterExpression(node, kinds)) { - node = node.expression; - } - return node; -} -function walkUpOuterExpressions(node, kinds /* All */) { - if (kinds === void 0) { kinds = 15; } - var parent2 = node.parent; - while (isOuterExpression(parent2, kinds)) { - parent2 = parent2.parent; - Debug.assert(parent2); - } - return parent2; -} -function skipAssertions(node) { - return skipOuterExpressions(node, 6 /* Assertions */); -} -function startOnNewLine(node) { - return setStartsOnNewLine(node, - /*newLine*/ - true); -} -function getExternalHelpersModuleName(node) { - var parseNode = getOriginalNode(node, isSourceFile); - var emitNode = parseNode && parseNode.emitNode; - return emitNode && emitNode.externalHelpersModuleName; -} -function hasRecordedExternalHelpers(sourceFile) { - var parseNode = getOriginalNode(sourceFile, isSourceFile); - var emitNode = parseNode && parseNode.emitNode; - return !!emitNode && (!!emitNode.externalHelpersModuleName || !!emitNode.externalHelpers); -} -function createExternalHelpersImportDeclarationIfNeeded(nodeFactory, helperFactory, sourceFile, compilerOptions, hasExportStarsToExportValues, hasImportStar, hasImportDefault) { - var e_90, _t; - if (compilerOptions.importHelpers && isEffectiveExternalModule(sourceFile, compilerOptions)) { - var namedBindings = void 0; - var moduleKind = getEmitModuleKind(compilerOptions); - if (moduleKind >= 5 /* ES2015 */ && moduleKind <= 99 /* ESNext */ || sourceFile.impliedNodeFormat === 99 /* ESNext */) { - var helpers = getEmitHelpers(sourceFile); - if (helpers) { - var helperNames = []; - try { - for (var helpers_3 = __values(helpers), helpers_3_1 = helpers_3.next(); !helpers_3_1.done; helpers_3_1 = helpers_3.next()) { - var helper = helpers_3_1.value; - if (!helper.scoped) { - var importName = helper.importName; - if (importName) { - pushIfUnique(helperNames, importName); - } - } - } - } - catch (e_90_1) { e_90 = { error: e_90_1 }; } - finally { - try { - if (helpers_3_1 && !helpers_3_1.done && (_t = helpers_3.return)) _t.call(helpers_3); - } - finally { if (e_90) throw e_90.error; } - } - if (some(helperNames)) { - helperNames.sort(compareStringsCaseSensitive); - namedBindings = nodeFactory.createNamedImports(map(helperNames, function (name) { return isFileLevelUniqueName(sourceFile, name) ? nodeFactory.createImportSpecifier( - /*isTypeOnly*/ - false, - /*propertyName*/ - void 0, nodeFactory.createIdentifier(name)) : nodeFactory.createImportSpecifier( - /*isTypeOnly*/ - false, nodeFactory.createIdentifier(name), helperFactory.getUnscopedHelperName(name)); })); - var parseNode = getOriginalNode(sourceFile, isSourceFile); - var emitNode = getOrCreateEmitNode(parseNode); - emitNode.externalHelpers = true; - } - } - } - else { - var externalHelpersModuleName = getOrCreateExternalHelpersModuleNameIfNeeded(nodeFactory, sourceFile, compilerOptions, hasExportStarsToExportValues, hasImportStar || hasImportDefault); - if (externalHelpersModuleName) { - namedBindings = nodeFactory.createNamespaceImport(externalHelpersModuleName); - } - } - if (namedBindings) { - var externalHelpersImportDeclaration = nodeFactory.createImportDeclaration( - /*modifiers*/ - void 0, nodeFactory.createImportClause( - /*isTypeOnly*/ - false, - /*name*/ - void 0, namedBindings), nodeFactory.createStringLiteral(externalHelpersModuleNameText), - /*assertClause*/ - void 0); - addInternalEmitFlags(externalHelpersImportDeclaration, 2 /* NeverApplyImportHelper */); - return externalHelpersImportDeclaration; - } - } -} -function getOrCreateExternalHelpersModuleNameIfNeeded(factory2, node, compilerOptions, hasExportStarsToExportValues, hasImportStarOrImportDefault) { - var e_91, _t; - if (compilerOptions.importHelpers && isEffectiveExternalModule(node, compilerOptions)) { - var externalHelpersModuleName = getExternalHelpersModuleName(node); - if (externalHelpersModuleName) { - return externalHelpersModuleName; - } - var moduleKind = getEmitModuleKind(compilerOptions); - var create = (hasExportStarsToExportValues || getESModuleInterop(compilerOptions) && hasImportStarOrImportDefault) && moduleKind !== 4 /* System */ && (moduleKind < 5 /* ES2015 */ || node.impliedNodeFormat === 1 /* CommonJS */); - if (!create) { - var helpers = getEmitHelpers(node); - if (helpers) { - try { - for (var helpers_4 = __values(helpers), helpers_4_1 = helpers_4.next(); !helpers_4_1.done; helpers_4_1 = helpers_4.next()) { - var helper = helpers_4_1.value; - if (!helper.scoped) { - create = true; - break; - } - } - } - catch (e_91_1) { e_91 = { error: e_91_1 }; } - finally { - try { - if (helpers_4_1 && !helpers_4_1.done && (_t = helpers_4.return)) _t.call(helpers_4); - } - finally { if (e_91) throw e_91.error; } - } - } - } - if (create) { - var parseNode = getOriginalNode(node, isSourceFile); - var emitNode = getOrCreateEmitNode(parseNode); - return emitNode.externalHelpersModuleName || (emitNode.externalHelpersModuleName = factory2.createUniqueName(externalHelpersModuleNameText)); - } - } -} -function getLocalNameForExternalImport(factory2, node, sourceFile) { - var namespaceDeclaration = getNamespaceDeclarationNode(node); - if (namespaceDeclaration && !isDefaultImport(node) && !isExportNamespaceAsDefaultDeclaration(node)) { - var name_10 = namespaceDeclaration.name; - return isGeneratedIdentifier(name_10) ? name_10 : factory2.createIdentifier(getSourceTextOfNodeFromSourceFile(sourceFile, name_10) || idText(name_10)); - } - if (node.kind === 272 /* ImportDeclaration */ && node.importClause) { - return factory2.getGeneratedNameForNode(node); - } - if (node.kind === 278 /* ExportDeclaration */ && node.moduleSpecifier) { - return factory2.getGeneratedNameForNode(node); - } - return void 0; -} -function getExternalModuleNameLiteral(factory2, importNode, sourceFile, host, resolver, compilerOptions) { - var moduleName = getExternalModuleName(importNode); - if (moduleName && isStringLiteral(moduleName)) { - return tryGetModuleNameFromDeclaration(importNode, host, factory2, resolver, compilerOptions) || tryRenameExternalModule(factory2, moduleName, sourceFile) || factory2.cloneNode(moduleName); - } - return void 0; -} -function tryRenameExternalModule(factory2, moduleName, sourceFile) { - var rename = sourceFile.renamedDependencies && sourceFile.renamedDependencies.get(moduleName.text); - return rename ? factory2.createStringLiteral(rename) : void 0; -} -function tryGetModuleNameFromFile(factory2, file, host, options) { - if (!file) { - return void 0; - } - if (file.moduleName) { - return factory2.createStringLiteral(file.moduleName); - } - if (!file.isDeclarationFile && outFile(options)) { - return factory2.createStringLiteral(getExternalModuleNameFromPath(host, file.fileName)); - } - return void 0; -} -function tryGetModuleNameFromDeclaration(declaration, host, factory2, resolver, compilerOptions) { - return tryGetModuleNameFromFile(factory2, resolver.getExternalModuleFileFromDeclaration(declaration), host, compilerOptions); -} -function getInitializerOfBindingOrAssignmentElement(bindingElement) { - if (isDeclarationBindingElement(bindingElement)) { - return bindingElement.initializer; - } - if (isPropertyAssignment(bindingElement)) { - var initializer = bindingElement.initializer; - return isAssignmentExpression(initializer, - /*excludeCompoundAssignment*/ - true) ? initializer.right : void 0; - } - if (isShorthandPropertyAssignment(bindingElement)) { - return bindingElement.objectAssignmentInitializer; - } - if (isAssignmentExpression(bindingElement, - /*excludeCompoundAssignment*/ - true)) { - return bindingElement.right; - } - if (isSpreadElement(bindingElement)) { - return getInitializerOfBindingOrAssignmentElement(bindingElement.expression); - } -} -function getTargetOfBindingOrAssignmentElement(bindingElement) { - if (isDeclarationBindingElement(bindingElement)) { - return bindingElement.name; - } - if (isObjectLiteralElementLike(bindingElement)) { - switch (bindingElement.kind) { - case 303 /* PropertyAssignment */: - return getTargetOfBindingOrAssignmentElement(bindingElement.initializer); - case 304 /* ShorthandPropertyAssignment */: - return bindingElement.name; - case 305 /* SpreadAssignment */: - return getTargetOfBindingOrAssignmentElement(bindingElement.expression); - } - return void 0; - } - if (isAssignmentExpression(bindingElement, - /*excludeCompoundAssignment*/ - true)) { - return getTargetOfBindingOrAssignmentElement(bindingElement.left); - } - if (isSpreadElement(bindingElement)) { - return getTargetOfBindingOrAssignmentElement(bindingElement.expression); - } - return bindingElement; -} -function getRestIndicatorOfBindingOrAssignmentElement(bindingElement) { - switch (bindingElement.kind) { - case 169 /* Parameter */: - case 208 /* BindingElement */: - return bindingElement.dotDotDotToken; - case 230 /* SpreadElement */: - case 305 /* SpreadAssignment */: - return bindingElement; - } - return void 0; -} -function getPropertyNameOfBindingOrAssignmentElement(bindingElement) { - var propertyName = tryGetPropertyNameOfBindingOrAssignmentElement(bindingElement); - Debug.assert(!!propertyName || isSpreadAssignment(bindingElement), "Invalid property name for binding element."); - return propertyName; -} -function tryGetPropertyNameOfBindingOrAssignmentElement(bindingElement) { - switch (bindingElement.kind) { - case 208 /* BindingElement */: - if (bindingElement.propertyName) { - var propertyName = bindingElement.propertyName; - if (isPrivateIdentifier(propertyName)) { - return Debug.failBadSyntaxKind(propertyName); - } - return isComputedPropertyName(propertyName) && isStringOrNumericLiteral(propertyName.expression) ? propertyName.expression : propertyName; - } - break; - case 303 /* PropertyAssignment */: - if (bindingElement.name) { - var propertyName = bindingElement.name; - if (isPrivateIdentifier(propertyName)) { - return Debug.failBadSyntaxKind(propertyName); - } - return isComputedPropertyName(propertyName) && isStringOrNumericLiteral(propertyName.expression) ? propertyName.expression : propertyName; - } - break; - case 305 /* SpreadAssignment */: - if (bindingElement.name && isPrivateIdentifier(bindingElement.name)) { - return Debug.failBadSyntaxKind(bindingElement.name); - } - return bindingElement.name; - } - var target = getTargetOfBindingOrAssignmentElement(bindingElement); - if (target && isPropertyName(target)) { - return target; - } -} -function isStringOrNumericLiteral(node) { - var kind = node.kind; - return kind === 11 /* StringLiteral */ || kind === 9 /* NumericLiteral */; -} -function getElementsOfBindingOrAssignmentPattern(name) { - switch (name.kind) { - case 206 /* ObjectBindingPattern */: - case 207 /* ArrayBindingPattern */: - case 209 /* ArrayLiteralExpression */: - return name.elements; - case 210 /* ObjectLiteralExpression */: - return name.properties; - } -} -function getJSDocTypeAliasName(fullName) { - if (fullName) { - var rightNode = fullName; - while (true) { - if (isIdentifier(rightNode) || !rightNode.body) { - return isIdentifier(rightNode) ? rightNode : rightNode.name; - } - rightNode = rightNode.body; - } - } -} -function canHaveIllegalType(node) { - var kind = node.kind; - return kind === 176 /* Constructor */ || kind === 178 /* SetAccessor */; -} -function canHaveIllegalTypeParameters(node) { - var kind = node.kind; - return kind === 176 /* Constructor */ || kind === 177 /* GetAccessor */ || kind === 178 /* SetAccessor */; -} -function canHaveIllegalDecorators(node) { - var kind = node.kind; - return kind === 303 /* PropertyAssignment */ || kind === 304 /* ShorthandPropertyAssignment */ || kind === 262 /* FunctionDeclaration */ || kind === 176 /* Constructor */ || kind === 181 /* IndexSignature */ || kind === 175 /* ClassStaticBlockDeclaration */ || kind === 282 /* MissingDeclaration */ || kind === 243 /* VariableStatement */ || kind === 264 /* InterfaceDeclaration */ || kind === 265 /* TypeAliasDeclaration */ || kind === 266 /* EnumDeclaration */ || kind === 267 /* ModuleDeclaration */ || kind === 271 /* ImportEqualsDeclaration */ || kind === 272 /* ImportDeclaration */ || kind === 270 /* NamespaceExportDeclaration */ || kind === 278 /* ExportDeclaration */ || kind === 277 /* ExportAssignment */; -} -function canHaveIllegalModifiers(node) { - var kind = node.kind; - return kind === 175 /* ClassStaticBlockDeclaration */ || kind === 303 /* PropertyAssignment */ || kind === 304 /* ShorthandPropertyAssignment */ || kind === 282 /* MissingDeclaration */ || kind === 270 /* NamespaceExportDeclaration */; -} -function isQuestionOrExclamationToken(node) { - return isQuestionToken(node) || isExclamationToken(node); -} -function isIdentifierOrThisTypeNode(node) { - return isIdentifier(node) || isThisTypeNode(node); -} -function isReadonlyKeywordOrPlusOrMinusToken(node) { - return isReadonlyKeyword(node) || isPlusToken(node) || isMinusToken(node); -} -function isQuestionOrPlusOrMinusToken(node) { - return isQuestionToken(node) || isPlusToken(node) || isMinusToken(node); -} -function isModuleName(node) { - return isIdentifier(node) || isStringLiteral(node); -} -function isLiteralTypeLikeExpression(node) { - var kind = node.kind; - return kind === 106 /* NullKeyword */ || kind === 112 /* TrueKeyword */ || kind === 97 /* FalseKeyword */ || isLiteralExpression(node) || isPrefixUnaryExpression(node); -} -function isExponentiationOperator(kind) { - return kind === 43 /* AsteriskAsteriskToken */; -} -function isMultiplicativeOperator(kind) { - return kind === 42 /* AsteriskToken */ || kind === 44 /* SlashToken */ || kind === 45 /* PercentToken */; -} -function isMultiplicativeOperatorOrHigher(kind) { - return isExponentiationOperator(kind) || isMultiplicativeOperator(kind); -} -function isAdditiveOperator(kind) { - return kind === 40 /* PlusToken */ || kind === 41 /* MinusToken */; -} -function isAdditiveOperatorOrHigher(kind) { - return isAdditiveOperator(kind) || isMultiplicativeOperatorOrHigher(kind); -} -function isShiftOperator(kind) { - return kind === 48 /* LessThanLessThanToken */ || kind === 49 /* GreaterThanGreaterThanToken */ || kind === 50 /* GreaterThanGreaterThanGreaterThanToken */; -} -function isShiftOperatorOrHigher(kind) { - return isShiftOperator(kind) || isAdditiveOperatorOrHigher(kind); -} -function isRelationalOperator(kind) { - return kind === 30 /* LessThanToken */ || kind === 33 /* LessThanEqualsToken */ || kind === 32 /* GreaterThanToken */ || kind === 34 /* GreaterThanEqualsToken */ || kind === 104 /* InstanceOfKeyword */ || kind === 103 /* InKeyword */; -} -function isRelationalOperatorOrHigher(kind) { - return isRelationalOperator(kind) || isShiftOperatorOrHigher(kind); -} -function isEqualityOperator(kind) { - return kind === 35 /* EqualsEqualsToken */ || kind === 37 /* EqualsEqualsEqualsToken */ || kind === 36 /* ExclamationEqualsToken */ || kind === 38 /* ExclamationEqualsEqualsToken */; -} -function isEqualityOperatorOrHigher(kind) { - return isEqualityOperator(kind) || isRelationalOperatorOrHigher(kind); -} -function isBitwiseOperator(kind) { - return kind === 51 /* AmpersandToken */ || kind === 52 /* BarToken */ || kind === 53 /* CaretToken */; -} -function isBitwiseOperatorOrHigher(kind) { - return isBitwiseOperator(kind) || isEqualityOperatorOrHigher(kind); -} -function isLogicalOperator2(kind) { - return kind === 56 /* AmpersandAmpersandToken */ || kind === 57 /* BarBarToken */; -} -function isLogicalOperatorOrHigher(kind) { - return isLogicalOperator2(kind) || isBitwiseOperatorOrHigher(kind); -} -function isAssignmentOperatorOrHigher(kind) { - return kind === 61 /* QuestionQuestionToken */ || isLogicalOperatorOrHigher(kind) || isAssignmentOperator(kind); -} -function isBinaryOperator(kind) { - return isAssignmentOperatorOrHigher(kind) || kind === 28 /* CommaToken */; -} -function isBinaryOperatorToken(node) { - return isBinaryOperator(node.kind); -} -var BinaryExpressionState; -(function (BinaryExpressionState2) { - function enter(machine, stackIndex, stateStack, nodeStack, userStateStack, _resultHolder, outerState) { - var prevUserState = stackIndex > 0 ? userStateStack[stackIndex - 1] : void 0; - Debug.assertEqual(stateStack[stackIndex], enter); - userStateStack[stackIndex] = machine.onEnter(nodeStack[stackIndex], prevUserState, outerState); - stateStack[stackIndex] = nextState(machine, enter); - return stackIndex; - } - BinaryExpressionState2.enter = enter; - function left(machine, stackIndex, stateStack, nodeStack, userStateStack, _resultHolder, _outerState) { - Debug.assertEqual(stateStack[stackIndex], left); - Debug.assertIsDefined(machine.onLeft); - stateStack[stackIndex] = nextState(machine, left); - var nextNode = machine.onLeft(nodeStack[stackIndex].left, userStateStack[stackIndex], nodeStack[stackIndex]); - if (nextNode) { - checkCircularity(stackIndex, nodeStack, nextNode); - return pushStack(stackIndex, stateStack, nodeStack, userStateStack, nextNode); - } - return stackIndex; - } - BinaryExpressionState2.left = left; - function operator(machine, stackIndex, stateStack, nodeStack, userStateStack, _resultHolder, _outerState) { - Debug.assertEqual(stateStack[stackIndex], operator); - Debug.assertIsDefined(machine.onOperator); - stateStack[stackIndex] = nextState(machine, operator); - machine.onOperator(nodeStack[stackIndex].operatorToken, userStateStack[stackIndex], nodeStack[stackIndex]); - return stackIndex; - } - BinaryExpressionState2.operator = operator; - function right(machine, stackIndex, stateStack, nodeStack, userStateStack, _resultHolder, _outerState) { - Debug.assertEqual(stateStack[stackIndex], right); - Debug.assertIsDefined(machine.onRight); - stateStack[stackIndex] = nextState(machine, right); - var nextNode = machine.onRight(nodeStack[stackIndex].right, userStateStack[stackIndex], nodeStack[stackIndex]); - if (nextNode) { - checkCircularity(stackIndex, nodeStack, nextNode); - return pushStack(stackIndex, stateStack, nodeStack, userStateStack, nextNode); - } - return stackIndex; - } - BinaryExpressionState2.right = right; - function exit(machine, stackIndex, stateStack, nodeStack, userStateStack, resultHolder, _outerState) { - Debug.assertEqual(stateStack[stackIndex], exit); - stateStack[stackIndex] = nextState(machine, exit); - var result = machine.onExit(nodeStack[stackIndex], userStateStack[stackIndex]); - if (stackIndex > 0) { - stackIndex--; - if (machine.foldState) { - var side = stateStack[stackIndex] === exit ? "right" : "left"; - userStateStack[stackIndex] = machine.foldState(userStateStack[stackIndex], result, side); - } - } - else { - resultHolder.value = result; - } - return stackIndex; - } - BinaryExpressionState2.exit = exit; - function done(_machine, stackIndex, stateStack, _nodeStack, _userStateStack, _resultHolder, _outerState) { - Debug.assertEqual(stateStack[stackIndex], done); - return stackIndex; - } - BinaryExpressionState2.done = done; - function nextState(machine, currentState) { - switch (currentState) { - case enter: - if (machine.onLeft) - return left; - case left: - if (machine.onOperator) - return operator; - case operator: - if (machine.onRight) - return right; - case right: - return exit; - case exit: - return done; - case done: - return done; - default: - Debug.fail("Invalid state"); - } - } - BinaryExpressionState2.nextState = nextState; - function pushStack(stackIndex, stateStack, nodeStack, userStateStack, node) { - stackIndex++; - stateStack[stackIndex] = enter; - nodeStack[stackIndex] = node; - userStateStack[stackIndex] = void 0; - return stackIndex; - } - function checkCircularity(stackIndex, nodeStack, node) { - if (Debug.shouldAssert(2 /* Aggressive */)) { - while (stackIndex >= 0) { - Debug.assert(nodeStack[stackIndex] !== node, "Circular traversal detected."); - stackIndex--; - } - } - } -})(BinaryExpressionState || (BinaryExpressionState = {})); -var BinaryExpressionStateMachine = /** @class */ (function () { - function BinaryExpressionStateMachine(onEnter, onLeft, onOperator, onRight, onExit, foldState) { - this.onEnter = onEnter; - this.onLeft = onLeft; - this.onOperator = onOperator; - this.onRight = onRight; - this.onExit = onExit; - this.foldState = foldState; - } - return BinaryExpressionStateMachine; -}()); -function createBinaryExpressionTrampoline(onEnter, onLeft, onOperator, onRight, onExit, foldState) { - var machine = new BinaryExpressionStateMachine(onEnter, onLeft, onOperator, onRight, onExit, foldState); - return trampoline; - function trampoline(node, outerState) { - var resultHolder = { value: void 0 }; - var stateStack = [BinaryExpressionState.enter]; - var nodeStack = [node]; - var userStateStack = [void 0]; - var stackIndex = 0; - while (stateStack[stackIndex] !== BinaryExpressionState.done) { - stackIndex = stateStack[stackIndex](machine, stackIndex, stateStack, nodeStack, userStateStack, resultHolder, outerState); - } - Debug.assertEqual(stackIndex, 0); - return resultHolder.value; - } -} -function isExportOrDefaultKeywordKind(kind) { - return kind === 95 /* ExportKeyword */ || kind === 90 /* DefaultKeyword */; -} -function isExportOrDefaultModifier(node) { - var kind = node.kind; - return isExportOrDefaultKeywordKind(kind); -} -function isNonExportDefaultModifier(node) { - var kind = node.kind; - return isModifierKind(kind) && !isExportOrDefaultKeywordKind(kind); -} -function elideNodes(factory2, nodes) { - if (nodes === void 0) - return void 0; - if (nodes.length === 0) - return nodes; - return setTextRange(factory2.createNodeArray([], nodes.hasTrailingComma), nodes); -} -function getNodeForGeneratedName(name) { - var _a; - var autoGenerate = name.emitNode.autoGenerate; - if (autoGenerate.flags & 4 /* Node */) { - var autoGenerateId = autoGenerate.id; - var node = name; - var original = node.original; - while (original) { - node = original; - var autoGenerate2 = (_a = node.emitNode) == null ? void 0 : _a.autoGenerate; - if (isMemberName(node) && (autoGenerate2 === void 0 || !!(autoGenerate2.flags & 4 /* Node */) && autoGenerate2.id !== autoGenerateId)) { - break; - } - original = node.original; - } - return node; - } - return name; -} -function formatGeneratedNamePart(part, generateName) { - return typeof part === "object" ? formatGeneratedName( - /*privateName*/ - false, part.prefix, part.node, part.suffix, generateName) : typeof part === "string" ? part.length > 0 && part.charCodeAt(0) === 35 /* hash */ ? part.slice(1) : part : ""; -} -function formatIdentifier(name, generateName) { - return typeof name === "string" ? name : formatIdentifierWorker(name, Debug.checkDefined(generateName)); -} -function formatIdentifierWorker(node, generateName) { - return isGeneratedPrivateIdentifier(node) ? generateName(node).slice(1) : isGeneratedIdentifier(node) ? generateName(node) : isPrivateIdentifier(node) ? node.escapedText.slice(1) : idText(node); -} -function formatGeneratedName(privateName, prefix, baseName, suffix, generateName) { - prefix = formatGeneratedNamePart(prefix, generateName); - suffix = formatGeneratedNamePart(suffix, generateName); - baseName = formatIdentifier(baseName, generateName); - return "".concat(privateName ? "#" : "").concat(prefix).concat(baseName).concat(suffix); -} -function createAccessorPropertyBackingField(factory2, node, modifiers, initializer) { - return factory2.updatePropertyDeclaration(node, modifiers, factory2.getGeneratedPrivateNameForNode(node.name, - /*prefix*/ - void 0, "_accessor_storage"), - /*questionOrExclamationToken*/ - void 0, - /*type*/ - void 0, initializer); -} -function createAccessorPropertyGetRedirector(factory2, node, modifiers, name, receiver) { - if (receiver === void 0) { receiver = factory2.createThis(); } - return factory2.createGetAccessorDeclaration(modifiers, name, [], - /*type*/ - void 0, factory2.createBlock([ - factory2.createReturnStatement(factory2.createPropertyAccessExpression(receiver, factory2.getGeneratedPrivateNameForNode(node.name, - /*prefix*/ - void 0, "_accessor_storage"))) - ])); -} -function createAccessorPropertySetRedirector(factory2, node, modifiers, name, receiver) { - if (receiver === void 0) { receiver = factory2.createThis(); } - return factory2.createSetAccessorDeclaration(modifiers, name, [factory2.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, "value")], factory2.createBlock([ - factory2.createExpressionStatement(factory2.createAssignment(factory2.createPropertyAccessExpression(receiver, factory2.getGeneratedPrivateNameForNode(node.name, - /*prefix*/ - void 0, "_accessor_storage")), factory2.createIdentifier("value"))) - ])); -} -function findComputedPropertyNameCacheAssignment(name) { - var node = name.expression; - while (true) { - node = skipOuterExpressions(node); - if (isCommaListExpression(node)) { - node = last(node.elements); - continue; - } - if (isCommaExpression(node)) { - node = node.right; - continue; - } - if (isAssignmentExpression(node, - /*excludeCompoundAssignment*/ - true) && isGeneratedIdentifier(node.left)) { - return node; - } - break; - } -} -function isSyntheticParenthesizedExpression(node) { - return isParenthesizedExpression(node) && nodeIsSynthesized(node) && !node.emitNode; -} -function flattenCommaListWorker(node, expressions) { - var e_92, _t; - if (isSyntheticParenthesizedExpression(node)) { - flattenCommaListWorker(node.expression, expressions); - } - else if (isCommaExpression(node)) { - flattenCommaListWorker(node.left, expressions); - flattenCommaListWorker(node.right, expressions); - } - else if (isCommaListExpression(node)) { - try { - for (var _u = __values(node.elements), _v = _u.next(); !_v.done; _v = _u.next()) { - var child = _v.value; - flattenCommaListWorker(child, expressions); - } - } - catch (e_92_1) { e_92 = { error: e_92_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_92) throw e_92.error; } - } - } - else { - expressions.push(node); - } -} -function flattenCommaList(node) { - var expressions = []; - flattenCommaListWorker(node, expressions); - return expressions; -} -function containsObjectRestOrSpread(node) { - var e_93, _t; - if (node.transformFlags & 65536 /* ContainsObjectRestOrSpread */) - return true; - if (node.transformFlags & 128 /* ContainsES2018 */) { - try { - for (var _u = __values(getElementsOfBindingOrAssignmentPattern(node)), _v = _u.next(); !_v.done; _v = _u.next()) { - var element = _v.value; - var target = getTargetOfBindingOrAssignmentElement(element); - if (target && isAssignmentPattern(target)) { - if (target.transformFlags & 65536 /* ContainsObjectRestOrSpread */) { - return true; - } - if (target.transformFlags & 128 /* ContainsES2018 */) { - if (containsObjectRestOrSpread(target)) - return true; - } - } - } - } - catch (e_93_1) { e_93 = { error: e_93_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_93) throw e_93.error; } - } - } - return false; -} -// src/compiler/factory/utilitiesPublic.ts -function setTextRange(range, location) { - return location ? setTextRangePosEnd(range, location.pos, location.end) : range; -} -function canHaveModifiers(node) { - var kind = node.kind; - return kind === 168 /* TypeParameter */ || kind === 169 /* Parameter */ || kind === 171 /* PropertySignature */ || kind === 172 /* PropertyDeclaration */ || kind === 173 /* MethodSignature */ || kind === 174 /* MethodDeclaration */ || kind === 176 /* Constructor */ || kind === 177 /* GetAccessor */ || kind === 178 /* SetAccessor */ || kind === 181 /* IndexSignature */ || kind === 185 /* ConstructorType */ || kind === 218 /* FunctionExpression */ || kind === 219 /* ArrowFunction */ || kind === 231 /* ClassExpression */ || kind === 243 /* VariableStatement */ || kind === 262 /* FunctionDeclaration */ || kind === 263 /* ClassDeclaration */ || kind === 264 /* InterfaceDeclaration */ || kind === 265 /* TypeAliasDeclaration */ || kind === 266 /* EnumDeclaration */ || kind === 267 /* ModuleDeclaration */ || kind === 271 /* ImportEqualsDeclaration */ || kind === 272 /* ImportDeclaration */ || kind === 277 /* ExportAssignment */ || kind === 278 /* ExportDeclaration */; -} -function canHaveDecorators(node) { - var kind = node.kind; - return kind === 169 /* Parameter */ || kind === 172 /* PropertyDeclaration */ || kind === 174 /* MethodDeclaration */ || kind === 177 /* GetAccessor */ || kind === 178 /* SetAccessor */ || kind === 231 /* ClassExpression */ || kind === 263 /* ClassDeclaration */; -} -// src/compiler/parser.ts -var NodeConstructor; -var TokenConstructor; -var IdentifierConstructor; -var PrivateIdentifierConstructor; -var SourceFileConstructor; -var parseBaseNodeFactory = { - createBaseSourceFileNode: function (kind) { return new (SourceFileConstructor || (SourceFileConstructor = objectAllocator.getSourceFileConstructor()))(kind, -1, -1); }, - createBaseIdentifierNode: function (kind) { return new (IdentifierConstructor || (IdentifierConstructor = objectAllocator.getIdentifierConstructor()))(kind, -1, -1); }, - createBasePrivateIdentifierNode: function (kind) { return new (PrivateIdentifierConstructor || (PrivateIdentifierConstructor = objectAllocator.getPrivateIdentifierConstructor()))(kind, -1, -1); }, - createBaseTokenNode: function (kind) { return new (TokenConstructor || (TokenConstructor = objectAllocator.getTokenConstructor()))(kind, -1, -1); }, - createBaseNode: function (kind) { return new (NodeConstructor || (NodeConstructor = objectAllocator.getNodeConstructor()))(kind, -1, -1); } -}; -var parseNodeFactory = createNodeFactory(1 /* NoParenthesizerRules */, parseBaseNodeFactory); -function visitNode2(cbNode, node) { - return node && cbNode(node); -} -function visitNodes(cbNode, cbNodes, nodes) { - var e_94, _t; - if (nodes) { - if (cbNodes) { - return cbNodes(nodes); - } - try { - for (var nodes_4 = __values(nodes), nodes_4_1 = nodes_4.next(); !nodes_4_1.done; nodes_4_1 = nodes_4.next()) { - var node = nodes_4_1.value; - var result = cbNode(node); - if (result) { - return result; - } - } - } - catch (e_94_1) { e_94 = { error: e_94_1 }; } - finally { - try { - if (nodes_4_1 && !nodes_4_1.done && (_t = nodes_4.return)) _t.call(nodes_4); - } - finally { if (e_94) throw e_94.error; } - } - } -} -function isJSDocLikeText(text, start2) { - return text.charCodeAt(start2 + 1) === 42 /* asterisk */ && text.charCodeAt(start2 + 2) === 42 /* asterisk */ && text.charCodeAt(start2 + 3) !== 47 /* slash */; -} -function isFileProbablyExternalModule(sourceFile) { - return forEach(sourceFile.statements, isAnExternalModuleIndicatorNode) || getImportMetaIfNecessary(sourceFile); -} -function isAnExternalModuleIndicatorNode(node) { - return canHaveModifiers(node) && hasModifierOfKind(node, 95 /* ExportKeyword */) || isImportEqualsDeclaration(node) && isExternalModuleReference(node.moduleReference) || isImportDeclaration(node) || isExportAssignment(node) || isExportDeclaration(node) ? node : void 0; -} -function getImportMetaIfNecessary(sourceFile) { - return sourceFile.flags & 8388608 /* PossiblyContainsImportMeta */ ? walkTreeForImportMeta(sourceFile) : void 0; -} -function walkTreeForImportMeta(node) { - return isImportMeta2(node) ? node : forEachChild(node, walkTreeForImportMeta); -} -function hasModifierOfKind(node, kind) { - return some(node.modifiers, function (m) { return m.kind === kind; }); -} -function isImportMeta2(node) { - return isMetaProperty(node) && node.keywordToken === 102 /* ImportKeyword */ && node.name.escapedText === "meta"; -} -var forEachChildTable = (_u = {}, - _u[166 /* QualifiedName */] = function forEachChildInQualifiedName(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.left) || visitNode2(cbNode, node.right); - }, - _u[168 /* TypeParameter */] = function forEachChildInTypeParameter(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNode2(cbNode, node.constraint) || visitNode2(cbNode, node.default) || visitNode2(cbNode, node.expression); - }, - _u[304 /* ShorthandPropertyAssignment */] = function forEachChildInShorthandPropertyAssignment(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNode2(cbNode, node.questionToken) || visitNode2(cbNode, node.exclamationToken) || visitNode2(cbNode, node.equalsToken) || visitNode2(cbNode, node.objectAssignmentInitializer); - }, - _u[305 /* SpreadAssignment */] = function forEachChildInSpreadAssignment(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.expression); - }, - _u[169 /* Parameter */] = function forEachChildInParameter(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.dotDotDotToken) || visitNode2(cbNode, node.name) || visitNode2(cbNode, node.questionToken) || visitNode2(cbNode, node.type) || visitNode2(cbNode, node.initializer); - }, - _u[172 /* PropertyDeclaration */] = function forEachChildInPropertyDeclaration(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNode2(cbNode, node.questionToken) || visitNode2(cbNode, node.exclamationToken) || visitNode2(cbNode, node.type) || visitNode2(cbNode, node.initializer); - }, - _u[171 /* PropertySignature */] = function forEachChildInPropertySignature(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNode2(cbNode, node.questionToken) || visitNode2(cbNode, node.type) || visitNode2(cbNode, node.initializer); - }, - _u[303 /* PropertyAssignment */] = function forEachChildInPropertyAssignment(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNode2(cbNode, node.questionToken) || visitNode2(cbNode, node.exclamationToken) || visitNode2(cbNode, node.initializer); - }, - _u[260 /* VariableDeclaration */] = function forEachChildInVariableDeclaration(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.name) || visitNode2(cbNode, node.exclamationToken) || visitNode2(cbNode, node.type) || visitNode2(cbNode, node.initializer); - }, - _u[208 /* BindingElement */] = function forEachChildInBindingElement(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.dotDotDotToken) || visitNode2(cbNode, node.propertyName) || visitNode2(cbNode, node.name) || visitNode2(cbNode, node.initializer); - }, - _u[181 /* IndexSignature */] = function forEachChildInIndexSignature(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.modifiers) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.parameters) || visitNode2(cbNode, node.type); - }, - _u[185 /* ConstructorType */] = function forEachChildInConstructorType(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.modifiers) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.parameters) || visitNode2(cbNode, node.type); - }, - _u[184 /* FunctionType */] = function forEachChildInFunctionType(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.modifiers) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.parameters) || visitNode2(cbNode, node.type); - }, - _u[179 /* CallSignature */] = forEachChildInCallOrConstructSignature, - _u[180 /* ConstructSignature */] = forEachChildInCallOrConstructSignature, - _u[174 /* MethodDeclaration */] = function forEachChildInMethodDeclaration(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.asteriskToken) || visitNode2(cbNode, node.name) || visitNode2(cbNode, node.questionToken) || visitNode2(cbNode, node.exclamationToken) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.parameters) || visitNode2(cbNode, node.type) || visitNode2(cbNode, node.body); - }, - _u[173 /* MethodSignature */] = function forEachChildInMethodSignature(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNode2(cbNode, node.questionToken) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.parameters) || visitNode2(cbNode, node.type); - }, - _u[176 /* Constructor */] = function forEachChildInConstructor(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.parameters) || visitNode2(cbNode, node.type) || visitNode2(cbNode, node.body); - }, - _u[177 /* GetAccessor */] = function forEachChildInGetAccessor(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.parameters) || visitNode2(cbNode, node.type) || visitNode2(cbNode, node.body); - }, - _u[178 /* SetAccessor */] = function forEachChildInSetAccessor(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.parameters) || visitNode2(cbNode, node.type) || visitNode2(cbNode, node.body); - }, - _u[262 /* FunctionDeclaration */] = function forEachChildInFunctionDeclaration(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.asteriskToken) || visitNode2(cbNode, node.name) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.parameters) || visitNode2(cbNode, node.type) || visitNode2(cbNode, node.body); - }, - _u[218 /* FunctionExpression */] = function forEachChildInFunctionExpression(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.asteriskToken) || visitNode2(cbNode, node.name) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.parameters) || visitNode2(cbNode, node.type) || visitNode2(cbNode, node.body); - }, - _u[219 /* ArrowFunction */] = function forEachChildInArrowFunction(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.modifiers) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.parameters) || visitNode2(cbNode, node.type) || visitNode2(cbNode, node.equalsGreaterThanToken) || visitNode2(cbNode, node.body); - }, - _u[175 /* ClassStaticBlockDeclaration */] = function forEachChildInClassStaticBlockDeclaration(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.body); - }, - _u[183 /* TypeReference */] = function forEachChildInTypeReference(node, cbNode, cbNodes) { - return visitNode2(cbNode, node.typeName) || visitNodes(cbNode, cbNodes, node.typeArguments); - }, - _u[182 /* TypePredicate */] = function forEachChildInTypePredicate(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.assertsModifier) || visitNode2(cbNode, node.parameterName) || visitNode2(cbNode, node.type); - }, - _u[186 /* TypeQuery */] = function forEachChildInTypeQuery(node, cbNode, cbNodes) { - return visitNode2(cbNode, node.exprName) || visitNodes(cbNode, cbNodes, node.typeArguments); - }, - _u[187 /* TypeLiteral */] = function forEachChildInTypeLiteral(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.members); - }, - _u[188 /* ArrayType */] = function forEachChildInArrayType(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.elementType); - }, - _u[189 /* TupleType */] = function forEachChildInTupleType(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.elements); - }, - _u[192 /* UnionType */] = forEachChildInUnionOrIntersectionType, - _u[193 /* IntersectionType */] = forEachChildInUnionOrIntersectionType, - _u[194 /* ConditionalType */] = function forEachChildInConditionalType(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.checkType) || visitNode2(cbNode, node.extendsType) || visitNode2(cbNode, node.trueType) || visitNode2(cbNode, node.falseType); - }, - _u[195 /* InferType */] = function forEachChildInInferType(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.typeParameter); - }, - _u[205 /* ImportType */] = function forEachChildInImportType(node, cbNode, cbNodes) { - return visitNode2(cbNode, node.argument) || visitNode2(cbNode, node.assertions) || visitNode2(cbNode, node.qualifier) || visitNodes(cbNode, cbNodes, node.typeArguments); - }, - _u[302 /* ImportTypeAssertionContainer */] = function forEachChildInImportTypeAssertionContainer(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.assertClause); - }, - _u[196 /* ParenthesizedType */] = forEachChildInParenthesizedTypeOrTypeOperator, - _u[198 /* TypeOperator */] = forEachChildInParenthesizedTypeOrTypeOperator, - _u[199 /* IndexedAccessType */] = function forEachChildInIndexedAccessType(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.objectType) || visitNode2(cbNode, node.indexType); - }, - _u[200 /* MappedType */] = function forEachChildInMappedType(node, cbNode, cbNodes) { - return visitNode2(cbNode, node.readonlyToken) || visitNode2(cbNode, node.typeParameter) || visitNode2(cbNode, node.nameType) || visitNode2(cbNode, node.questionToken) || visitNode2(cbNode, node.type) || visitNodes(cbNode, cbNodes, node.members); - }, - _u[201 /* LiteralType */] = function forEachChildInLiteralType(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.literal); - }, - _u[202 /* NamedTupleMember */] = function forEachChildInNamedTupleMember(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.dotDotDotToken) || visitNode2(cbNode, node.name) || visitNode2(cbNode, node.questionToken) || visitNode2(cbNode, node.type); - }, - _u[206 /* ObjectBindingPattern */] = forEachChildInObjectOrArrayBindingPattern, - _u[207 /* ArrayBindingPattern */] = forEachChildInObjectOrArrayBindingPattern, - _u[209 /* ArrayLiteralExpression */] = function forEachChildInArrayLiteralExpression(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.elements); - }, - _u[210 /* ObjectLiteralExpression */] = function forEachChildInObjectLiteralExpression(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.properties); - }, - _u[211 /* PropertyAccessExpression */] = function forEachChildInPropertyAccessExpression(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.expression) || visitNode2(cbNode, node.questionDotToken) || visitNode2(cbNode, node.name); - }, - _u[212 /* ElementAccessExpression */] = function forEachChildInElementAccessExpression(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.expression) || visitNode2(cbNode, node.questionDotToken) || visitNode2(cbNode, node.argumentExpression); - }, - _u[213 /* CallExpression */] = forEachChildInCallOrNewExpression, - _u[214 /* NewExpression */] = forEachChildInCallOrNewExpression, - _u[215 /* TaggedTemplateExpression */] = function forEachChildInTaggedTemplateExpression(node, cbNode, cbNodes) { - return visitNode2(cbNode, node.tag) || visitNode2(cbNode, node.questionDotToken) || visitNodes(cbNode, cbNodes, node.typeArguments) || visitNode2(cbNode, node.template); - }, - _u[216 /* TypeAssertionExpression */] = function forEachChildInTypeAssertionExpression(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.type) || visitNode2(cbNode, node.expression); - }, - _u[217 /* ParenthesizedExpression */] = function forEachChildInParenthesizedExpression(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.expression); - }, - _u[220 /* DeleteExpression */] = function forEachChildInDeleteExpression(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.expression); - }, - _u[221 /* TypeOfExpression */] = function forEachChildInTypeOfExpression(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.expression); - }, - _u[222 /* VoidExpression */] = function forEachChildInVoidExpression(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.expression); - }, - _u[224 /* PrefixUnaryExpression */] = function forEachChildInPrefixUnaryExpression(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.operand); - }, - _u[229 /* YieldExpression */] = function forEachChildInYieldExpression(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.asteriskToken) || visitNode2(cbNode, node.expression); - }, - _u[223 /* AwaitExpression */] = function forEachChildInAwaitExpression(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.expression); - }, - _u[225 /* PostfixUnaryExpression */] = function forEachChildInPostfixUnaryExpression(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.operand); - }, - _u[226 /* BinaryExpression */] = function forEachChildInBinaryExpression(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.left) || visitNode2(cbNode, node.operatorToken) || visitNode2(cbNode, node.right); - }, - _u[234 /* AsExpression */] = function forEachChildInAsExpression(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.expression) || visitNode2(cbNode, node.type); - }, - _u[235 /* NonNullExpression */] = function forEachChildInNonNullExpression(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.expression); - }, - _u[238 /* SatisfiesExpression */] = function forEachChildInSatisfiesExpression(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.expression) || visitNode2(cbNode, node.type); - }, - _u[236 /* MetaProperty */] = function forEachChildInMetaProperty(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.name); - }, - _u[227 /* ConditionalExpression */] = function forEachChildInConditionalExpression(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.condition) || visitNode2(cbNode, node.questionToken) || visitNode2(cbNode, node.whenTrue) || visitNode2(cbNode, node.colonToken) || visitNode2(cbNode, node.whenFalse); - }, - _u[230 /* SpreadElement */] = function forEachChildInSpreadElement(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.expression); - }, - _u[241 /* Block */] = forEachChildInBlock, - _u[268 /* ModuleBlock */] = forEachChildInBlock, - _u[312 /* SourceFile */] = function forEachChildInSourceFile(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.statements) || visitNode2(cbNode, node.endOfFileToken); - }, - _u[243 /* VariableStatement */] = function forEachChildInVariableStatement(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.declarationList); - }, - _u[261 /* VariableDeclarationList */] = function forEachChildInVariableDeclarationList(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.declarations); - }, - _u[244 /* ExpressionStatement */] = function forEachChildInExpressionStatement(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.expression); - }, - _u[245 /* IfStatement */] = function forEachChildInIfStatement(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.expression) || visitNode2(cbNode, node.thenStatement) || visitNode2(cbNode, node.elseStatement); - }, - _u[246 /* DoStatement */] = function forEachChildInDoStatement(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.statement) || visitNode2(cbNode, node.expression); - }, - _u[247 /* WhileStatement */] = function forEachChildInWhileStatement(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.expression) || visitNode2(cbNode, node.statement); - }, - _u[248 /* ForStatement */] = function forEachChildInForStatement(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.initializer) || visitNode2(cbNode, node.condition) || visitNode2(cbNode, node.incrementor) || visitNode2(cbNode, node.statement); - }, - _u[249 /* ForInStatement */] = function forEachChildInForInStatement(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.initializer) || visitNode2(cbNode, node.expression) || visitNode2(cbNode, node.statement); - }, - _u[250 /* ForOfStatement */] = function forEachChildInForOfStatement(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.awaitModifier) || visitNode2(cbNode, node.initializer) || visitNode2(cbNode, node.expression) || visitNode2(cbNode, node.statement); - }, - _u[251 /* ContinueStatement */] = forEachChildInContinueOrBreakStatement, - _u[252 /* BreakStatement */] = forEachChildInContinueOrBreakStatement, - _u[253 /* ReturnStatement */] = function forEachChildInReturnStatement(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.expression); - }, - _u[254 /* WithStatement */] = function forEachChildInWithStatement(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.expression) || visitNode2(cbNode, node.statement); - }, - _u[255 /* SwitchStatement */] = function forEachChildInSwitchStatement(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.expression) || visitNode2(cbNode, node.caseBlock); - }, - _u[269 /* CaseBlock */] = function forEachChildInCaseBlock(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.clauses); - }, - _u[296 /* CaseClause */] = function forEachChildInCaseClause(node, cbNode, cbNodes) { - return visitNode2(cbNode, node.expression) || visitNodes(cbNode, cbNodes, node.statements); - }, - _u[297 /* DefaultClause */] = function forEachChildInDefaultClause(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.statements); - }, - _u[256 /* LabeledStatement */] = function forEachChildInLabeledStatement(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.label) || visitNode2(cbNode, node.statement); - }, - _u[257 /* ThrowStatement */] = function forEachChildInThrowStatement(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.expression); - }, - _u[258 /* TryStatement */] = function forEachChildInTryStatement(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.tryBlock) || visitNode2(cbNode, node.catchClause) || visitNode2(cbNode, node.finallyBlock); - }, - _u[299 /* CatchClause */] = function forEachChildInCatchClause(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.variableDeclaration) || visitNode2(cbNode, node.block); - }, - _u[170 /* Decorator */] = function forEachChildInDecorator(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.expression); - }, - _u[263 /* ClassDeclaration */] = forEachChildInClassDeclarationOrExpression, - _u[231 /* ClassExpression */] = forEachChildInClassDeclarationOrExpression, - _u[264 /* InterfaceDeclaration */] = function forEachChildInInterfaceDeclaration(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.heritageClauses) || visitNodes(cbNode, cbNodes, node.members); - }, - _u[265 /* TypeAliasDeclaration */] = function forEachChildInTypeAliasDeclaration(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNode2(cbNode, node.type); - }, - _u[266 /* EnumDeclaration */] = function forEachChildInEnumDeclaration(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNodes(cbNode, cbNodes, node.members); - }, - _u[306 /* EnumMember */] = function forEachChildInEnumMember(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.name) || visitNode2(cbNode, node.initializer); - }, - _u[267 /* ModuleDeclaration */] = function forEachChildInModuleDeclaration(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNode2(cbNode, node.body); - }, - _u[271 /* ImportEqualsDeclaration */] = function forEachChildInImportEqualsDeclaration(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNode2(cbNode, node.moduleReference); - }, - _u[272 /* ImportDeclaration */] = function forEachChildInImportDeclaration(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.importClause) || visitNode2(cbNode, node.moduleSpecifier) || visitNode2(cbNode, node.assertClause); - }, - _u[273 /* ImportClause */] = function forEachChildInImportClause(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.name) || visitNode2(cbNode, node.namedBindings); - }, - _u[300 /* AssertClause */] = function forEachChildInAssertClause(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.elements); - }, - _u[301 /* AssertEntry */] = function forEachChildInAssertEntry(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.name) || visitNode2(cbNode, node.value); - }, - _u[270 /* NamespaceExportDeclaration */] = function forEachChildInNamespaceExportDeclaration(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name); - }, - _u[274 /* NamespaceImport */] = function forEachChildInNamespaceImport(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.name); - }, - _u[280 /* NamespaceExport */] = function forEachChildInNamespaceExport(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.name); - }, - _u[275 /* NamedImports */] = forEachChildInNamedImportsOrExports, - _u[279 /* NamedExports */] = forEachChildInNamedImportsOrExports, - _u[278 /* ExportDeclaration */] = function forEachChildInExportDeclaration(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.exportClause) || visitNode2(cbNode, node.moduleSpecifier) || visitNode2(cbNode, node.assertClause); - }, - _u[276 /* ImportSpecifier */] = forEachChildInImportOrExportSpecifier, - _u[281 /* ExportSpecifier */] = forEachChildInImportOrExportSpecifier, - _u[277 /* ExportAssignment */] = function forEachChildInExportAssignment(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.expression); - }, - _u[228 /* TemplateExpression */] = function forEachChildInTemplateExpression(node, cbNode, cbNodes) { - return visitNode2(cbNode, node.head) || visitNodes(cbNode, cbNodes, node.templateSpans); - }, - _u[239 /* TemplateSpan */] = function forEachChildInTemplateSpan(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.expression) || visitNode2(cbNode, node.literal); - }, - _u[203 /* TemplateLiteralType */] = function forEachChildInTemplateLiteralType(node, cbNode, cbNodes) { - return visitNode2(cbNode, node.head) || visitNodes(cbNode, cbNodes, node.templateSpans); - }, - _u[204 /* TemplateLiteralTypeSpan */] = function forEachChildInTemplateLiteralTypeSpan(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.type) || visitNode2(cbNode, node.literal); - }, - _u[167 /* ComputedPropertyName */] = function forEachChildInComputedPropertyName(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.expression); - }, - _u[298 /* HeritageClause */] = function forEachChildInHeritageClause(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.types); - }, - _u[233 /* ExpressionWithTypeArguments */] = function forEachChildInExpressionWithTypeArguments(node, cbNode, cbNodes) { - return visitNode2(cbNode, node.expression) || visitNodes(cbNode, cbNodes, node.typeArguments); - }, - _u[283 /* ExternalModuleReference */] = function forEachChildInExternalModuleReference(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.expression); - }, - _u[282 /* MissingDeclaration */] = function forEachChildInMissingDeclaration(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.modifiers); - }, - _u[361 /* CommaListExpression */] = function forEachChildInCommaListExpression(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.elements); - }, - _u[284 /* JsxElement */] = function forEachChildInJsxElement(node, cbNode, cbNodes) { - return visitNode2(cbNode, node.openingElement) || visitNodes(cbNode, cbNodes, node.children) || visitNode2(cbNode, node.closingElement); - }, - _u[288 /* JsxFragment */] = function forEachChildInJsxFragment(node, cbNode, cbNodes) { - return visitNode2(cbNode, node.openingFragment) || visitNodes(cbNode, cbNodes, node.children) || visitNode2(cbNode, node.closingFragment); - }, - _u[285 /* JsxSelfClosingElement */] = forEachChildInJsxOpeningOrSelfClosingElement, - _u[286 /* JsxOpeningElement */] = forEachChildInJsxOpeningOrSelfClosingElement, - _u[292 /* JsxAttributes */] = function forEachChildInJsxAttributes(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.properties); - }, - _u[291 /* JsxAttribute */] = function forEachChildInJsxAttribute(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.name) || visitNode2(cbNode, node.initializer); - }, - _u[293 /* JsxSpreadAttribute */] = function forEachChildInJsxSpreadAttribute(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.expression); - }, - _u[294 /* JsxExpression */] = function forEachChildInJsxExpression(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.dotDotDotToken) || visitNode2(cbNode, node.expression); - }, - _u[287 /* JsxClosingElement */] = function forEachChildInJsxClosingElement(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.tagName); - }, - _u[295 /* JsxNamespacedName */] = function forEachChildInJsxNamespacedName(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.namespace) || visitNode2(cbNode, node.name); - }, - _u[190 /* OptionalType */] = forEachChildInOptionalRestOrJSDocParameterModifier, - _u[191 /* RestType */] = forEachChildInOptionalRestOrJSDocParameterModifier, - _u[316 /* JSDocTypeExpression */] = forEachChildInOptionalRestOrJSDocParameterModifier, - _u[322 /* JSDocNonNullableType */] = forEachChildInOptionalRestOrJSDocParameterModifier, - _u[321 /* JSDocNullableType */] = forEachChildInOptionalRestOrJSDocParameterModifier, - _u[323 /* JSDocOptionalType */] = forEachChildInOptionalRestOrJSDocParameterModifier, - _u[325 /* JSDocVariadicType */] = forEachChildInOptionalRestOrJSDocParameterModifier, - _u[324 /* JSDocFunctionType */] = function forEachChildInJSDocFunctionType(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.parameters) || visitNode2(cbNode, node.type); - }, - _u[327 /* JSDoc */] = function forEachChildInJSDoc(node, cbNode, cbNodes) { - return (typeof node.comment === "string" ? void 0 : visitNodes(cbNode, cbNodes, node.comment)) || visitNodes(cbNode, cbNodes, node.tags); - }, - _u[354 /* JSDocSeeTag */] = function forEachChildInJSDocSeeTag(node, cbNode, cbNodes) { - return visitNode2(cbNode, node.tagName) || visitNode2(cbNode, node.name) || (typeof node.comment === "string" ? void 0 : visitNodes(cbNode, cbNodes, node.comment)); - }, - _u[317 /* JSDocNameReference */] = function forEachChildInJSDocNameReference(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.name); - }, - _u[318 /* JSDocMemberName */] = function forEachChildInJSDocMemberName(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.left) || visitNode2(cbNode, node.right); - }, - _u[348 /* JSDocParameterTag */] = forEachChildInJSDocParameterOrPropertyTag, - _u[355 /* JSDocPropertyTag */] = forEachChildInJSDocParameterOrPropertyTag, - _u[337 /* JSDocAuthorTag */] = function forEachChildInJSDocAuthorTag(node, cbNode, cbNodes) { - return visitNode2(cbNode, node.tagName) || (typeof node.comment === "string" ? void 0 : visitNodes(cbNode, cbNodes, node.comment)); - }, - _u[336 /* JSDocImplementsTag */] = function forEachChildInJSDocImplementsTag(node, cbNode, cbNodes) { - return visitNode2(cbNode, node.tagName) || visitNode2(cbNode, node.class) || (typeof node.comment === "string" ? void 0 : visitNodes(cbNode, cbNodes, node.comment)); - }, - _u[335 /* JSDocAugmentsTag */] = function forEachChildInJSDocAugmentsTag(node, cbNode, cbNodes) { - return visitNode2(cbNode, node.tagName) || visitNode2(cbNode, node.class) || (typeof node.comment === "string" ? void 0 : visitNodes(cbNode, cbNodes, node.comment)); - }, - _u[352 /* JSDocTemplateTag */] = function forEachChildInJSDocTemplateTag(node, cbNode, cbNodes) { - return visitNode2(cbNode, node.tagName) || visitNode2(cbNode, node.constraint) || visitNodes(cbNode, cbNodes, node.typeParameters) || (typeof node.comment === "string" ? void 0 : visitNodes(cbNode, cbNodes, node.comment)); - }, - _u[353 /* JSDocTypedefTag */] = function forEachChildInJSDocTypedefTag(node, cbNode, cbNodes) { - return visitNode2(cbNode, node.tagName) || (node.typeExpression && node.typeExpression.kind === 316 /* JSDocTypeExpression */ ? visitNode2(cbNode, node.typeExpression) || visitNode2(cbNode, node.fullName) || (typeof node.comment === "string" ? void 0 : visitNodes(cbNode, cbNodes, node.comment)) : visitNode2(cbNode, node.fullName) || visitNode2(cbNode, node.typeExpression) || (typeof node.comment === "string" ? void 0 : visitNodes(cbNode, cbNodes, node.comment))); - }, - _u[345 /* JSDocCallbackTag */] = function forEachChildInJSDocCallbackTag(node, cbNode, cbNodes) { - return visitNode2(cbNode, node.tagName) || visitNode2(cbNode, node.fullName) || visitNode2(cbNode, node.typeExpression) || (typeof node.comment === "string" ? void 0 : visitNodes(cbNode, cbNodes, node.comment)); - }, - _u[349 /* JSDocReturnTag */] = forEachChildInJSDocTypeLikeTag, - _u[351 /* JSDocTypeTag */] = forEachChildInJSDocTypeLikeTag, - _u[350 /* JSDocThisTag */] = forEachChildInJSDocTypeLikeTag, - _u[347 /* JSDocEnumTag */] = forEachChildInJSDocTypeLikeTag, - _u[357 /* JSDocSatisfiesTag */] = forEachChildInJSDocTypeLikeTag, - _u[356 /* JSDocThrowsTag */] = forEachChildInJSDocTypeLikeTag, - _u[346 /* JSDocOverloadTag */] = forEachChildInJSDocTypeLikeTag, - _u[330 /* JSDocSignature */] = function forEachChildInJSDocSignature(node, cbNode, _cbNodes) { - return forEach(node.typeParameters, cbNode) || forEach(node.parameters, cbNode) || visitNode2(cbNode, node.type); - }, - _u[331 /* JSDocLink */] = forEachChildInJSDocLinkCodeOrPlain, - _u[332 /* JSDocLinkCode */] = forEachChildInJSDocLinkCodeOrPlain, - _u[333 /* JSDocLinkPlain */] = forEachChildInJSDocLinkCodeOrPlain, - _u[329 /* JSDocTypeLiteral */] = function forEachChildInJSDocTypeLiteral(node, cbNode, _cbNodes) { - return forEach(node.jsDocPropertyTags, cbNode); - }, - _u[334 /* JSDocTag */] = forEachChildInJSDocTag, - _u[339 /* JSDocClassTag */] = forEachChildInJSDocTag, - _u[340 /* JSDocPublicTag */] = forEachChildInJSDocTag, - _u[341 /* JSDocPrivateTag */] = forEachChildInJSDocTag, - _u[342 /* JSDocProtectedTag */] = forEachChildInJSDocTag, - _u[343 /* JSDocReadonlyTag */] = forEachChildInJSDocTag, - _u[338 /* JSDocDeprecatedTag */] = forEachChildInJSDocTag, - _u[344 /* JSDocOverrideTag */] = forEachChildInJSDocTag, - _u[360 /* PartiallyEmittedExpression */] = forEachChildInPartiallyEmittedExpression, - _u); -function forEachChildInCallOrConstructSignature(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.parameters) || visitNode2(cbNode, node.type); -} -function forEachChildInUnionOrIntersectionType(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.types); -} -function forEachChildInParenthesizedTypeOrTypeOperator(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.type); -} -function forEachChildInObjectOrArrayBindingPattern(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.elements); -} -function forEachChildInCallOrNewExpression(node, cbNode, cbNodes) { - return visitNode2(cbNode, node.expression) || // TODO: should we separate these branches out? - visitNode2(cbNode, node.questionDotToken) || visitNodes(cbNode, cbNodes, node.typeArguments) || visitNodes(cbNode, cbNodes, node.arguments); -} -function forEachChildInBlock(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.statements); -} -function forEachChildInContinueOrBreakStatement(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.label); -} -function forEachChildInClassDeclarationOrExpression(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.heritageClauses) || visitNodes(cbNode, cbNodes, node.members); -} -function forEachChildInNamedImportsOrExports(node, cbNode, cbNodes) { - return visitNodes(cbNode, cbNodes, node.elements); -} -function forEachChildInImportOrExportSpecifier(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.propertyName) || visitNode2(cbNode, node.name); -} -function forEachChildInJsxOpeningOrSelfClosingElement(node, cbNode, cbNodes) { - return visitNode2(cbNode, node.tagName) || visitNodes(cbNode, cbNodes, node.typeArguments) || visitNode2(cbNode, node.attributes); -} -function forEachChildInOptionalRestOrJSDocParameterModifier(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.type); -} -function forEachChildInJSDocParameterOrPropertyTag(node, cbNode, cbNodes) { - return visitNode2(cbNode, node.tagName) || (node.isNameFirst ? visitNode2(cbNode, node.name) || visitNode2(cbNode, node.typeExpression) : visitNode2(cbNode, node.typeExpression) || visitNode2(cbNode, node.name)) || (typeof node.comment === "string" ? void 0 : visitNodes(cbNode, cbNodes, node.comment)); -} -function forEachChildInJSDocTypeLikeTag(node, cbNode, cbNodes) { - return visitNode2(cbNode, node.tagName) || visitNode2(cbNode, node.typeExpression) || (typeof node.comment === "string" ? void 0 : visitNodes(cbNode, cbNodes, node.comment)); -} -function forEachChildInJSDocLinkCodeOrPlain(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.name); -} -function forEachChildInJSDocTag(node, cbNode, cbNodes) { - return visitNode2(cbNode, node.tagName) || (typeof node.comment === "string" ? void 0 : visitNodes(cbNode, cbNodes, node.comment)); -} -function forEachChildInPartiallyEmittedExpression(node, cbNode, _cbNodes) { - return visitNode2(cbNode, node.expression); -} -function forEachChild(node, cbNode, cbNodes) { - if (node === void 0 || node.kind <= 165 /* LastToken */) { - return; - } - var fn = forEachChildTable[node.kind]; - return fn === void 0 ? void 0 : fn(node, cbNode, cbNodes); -} -function forEachChildRecursively(rootNode, cbNode, cbNodes) { - var e_95, _t; - var queue = gatherPossibleChildren(rootNode); - var parents = []; - while (parents.length < queue.length) { - parents.push(rootNode); - } - while (queue.length !== 0) { - var current = queue.pop(); - var parent2 = parents.pop(); - if (isArray(current)) { - if (cbNodes) { - var res = cbNodes(current, parent2); - if (res) { - if (res === "skip") - continue; - return res; - } - } - for (var i = current.length - 1; i >= 0; --i) { - queue.push(current[i]); - parents.push(parent2); - } - } - else { - var res = cbNode(current, parent2); - if (res) { - if (res === "skip") - continue; - return res; - } - if (current.kind >= 166 /* FirstNode */) { - try { - for (var _u = (e_95 = void 0, __values(gatherPossibleChildren(current))), _v = _u.next(); !_v.done; _v = _u.next()) { - var child = _v.value; - queue.push(child); - parents.push(current); - } - } - catch (e_95_1) { e_95 = { error: e_95_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_95) throw e_95.error; } - } - } - } - } -} -function gatherPossibleChildren(node) { - var children = []; - forEachChild(node, addWorkItem, addWorkItem); - return children; - function addWorkItem(n) { - children.unshift(n); - } -} -function setExternalModuleIndicator(sourceFile) { - sourceFile.externalModuleIndicator = isFileProbablyExternalModule(sourceFile); -} -function createSourceFile(fileName, sourceText, languageVersionOrOptions, setParentNodes, scriptKind) { - if (setParentNodes === void 0) { setParentNodes = false; } - var _a, _b, _c, _d; - (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Parse, "createSourceFile", { path: fileName }, - /*separateBeginAndEnd*/ - true); - mark("beforeParse"); - var result; - (_b = perfLogger) == null ? void 0 : _b.logStartParseSourceFile(fileName); - var _t = typeof languageVersionOrOptions === "object" ? languageVersionOrOptions : { languageVersion: languageVersionOrOptions }, languageVersion = _t.languageVersion, overrideSetExternalModuleIndicator = _t.setExternalModuleIndicator, format = _t.impliedNodeFormat; - if (languageVersion === 100 /* JSON */) { - result = Parser.parseSourceFile(fileName, sourceText, languageVersion, - /*syntaxCursor*/ - void 0, setParentNodes, 6 /* JSON */, noop); - } - else { - var setIndicator = format === void 0 ? overrideSetExternalModuleIndicator : function (file) { - file.impliedNodeFormat = format; - return (overrideSetExternalModuleIndicator || setExternalModuleIndicator)(file); - }; - result = Parser.parseSourceFile(fileName, sourceText, languageVersion, - /*syntaxCursor*/ - void 0, setParentNodes, scriptKind, setIndicator); - } - (_c = perfLogger) == null ? void 0 : _c.logStopParseSourceFile(); - mark("afterParse"); - measure("Parse", "beforeParse", "afterParse"); - (_d = tracing) == null ? void 0 : _d.pop(); - return result; -} -function parseIsolatedEntityName(text, languageVersion) { - return Parser.parseIsolatedEntityName(text, languageVersion); -} -function parseJsonText(fileName, sourceText) { - return Parser.parseJsonText(fileName, sourceText); -} -function isExternalModule(file) { - return file.externalModuleIndicator !== void 0; -} -function updateSourceFile(sourceFile, newText, textChangeRange, aggressiveChecks) { - if (aggressiveChecks === void 0) { aggressiveChecks = false; } - var newSourceFile = IncrementalParser.updateSourceFile(sourceFile, newText, textChangeRange, aggressiveChecks); - newSourceFile.flags |= sourceFile.flags & 12582912 /* PermanentlySetIncrementalFlags */; - return newSourceFile; -} -function parseIsolatedJSDocComment(content, start2, length2) { - var result = Parser.JSDocParser.parseIsolatedJSDocComment(content, start2, length2); - if (result && result.jsDoc) { - Parser.fixupParentReferences(result.jsDoc); - } - return result; -} -function parseJSDocTypeExpressionForTests(content, start2, length2) { - return Parser.JSDocParser.parseJSDocTypeExpressionForTests(content, start2, length2); -} -var Parser; -(function (Parser2) { - var scanner2 = createScanner(99 /* Latest */, - /*skipTrivia*/ - true); - var disallowInAndDecoratorContext = 8192 /* DisallowInContext */ | 32768 /* DecoratorContext */; - var NodeConstructor2; - var TokenConstructor2; - var IdentifierConstructor2; - var PrivateIdentifierConstructor2; - var SourceFileConstructor2; - function countNode(node) { - nodeCount++; - return node; - } - var baseNodeFactory = { - createBaseSourceFileNode: function (kind) { return countNode(new SourceFileConstructor2(kind, - /*pos*/ - 0, - /*end*/ - 0)); }, - createBaseIdentifierNode: function (kind) { return countNode(new IdentifierConstructor2(kind, - /*pos*/ - 0, - /*end*/ - 0)); }, - createBasePrivateIdentifierNode: function (kind) { return countNode(new PrivateIdentifierConstructor2(kind, - /*pos*/ - 0, - /*end*/ - 0)); }, - createBaseTokenNode: function (kind) { return countNode(new TokenConstructor2(kind, - /*pos*/ - 0, - /*end*/ - 0)); }, - createBaseNode: function (kind) { return countNode(new NodeConstructor2(kind, - /*pos*/ - 0, - /*end*/ - 0)); } - }; - var factory2 = createNodeFactory(1 /* NoParenthesizerRules */ | 2 /* NoNodeConverters */ | 8 /* NoOriginalNode */, baseNodeFactory); - var factoryCreateNodeArray = factory2.createNodeArray, factoryCreateNumericLiteral = factory2.createNumericLiteral, factoryCreateStringLiteral = factory2.createStringLiteral, factoryCreateLiteralLikeNode = factory2.createLiteralLikeNode, factoryCreateIdentifier = factory2.createIdentifier, factoryCreatePrivateIdentifier = factory2.createPrivateIdentifier, factoryCreateToken = factory2.createToken, factoryCreateArrayLiteralExpression = factory2.createArrayLiteralExpression, factoryCreateObjectLiteralExpression = factory2.createObjectLiteralExpression, factoryCreatePropertyAccessExpression = factory2.createPropertyAccessExpression, factoryCreatePropertyAccessChain = factory2.createPropertyAccessChain, factoryCreateElementAccessExpression = factory2.createElementAccessExpression, factoryCreateElementAccessChain = factory2.createElementAccessChain, factoryCreateCallExpression = factory2.createCallExpression, factoryCreateCallChain = factory2.createCallChain, factoryCreateNewExpression = factory2.createNewExpression, factoryCreateParenthesizedExpression = factory2.createParenthesizedExpression, factoryCreateBlock = factory2.createBlock, factoryCreateVariableStatement = factory2.createVariableStatement, factoryCreateExpressionStatement = factory2.createExpressionStatement, factoryCreateIfStatement = factory2.createIfStatement, factoryCreateWhileStatement = factory2.createWhileStatement, factoryCreateForStatement = factory2.createForStatement, factoryCreateForOfStatement = factory2.createForOfStatement, factoryCreateVariableDeclaration = factory2.createVariableDeclaration, factoryCreateVariableDeclarationList = factory2.createVariableDeclarationList; - var fileName; - var sourceFlags; - var sourceText; - var languageVersion; - var scriptKind; - var languageVariant; - var parseDiagnostics; - var jsDocDiagnostics; - var syntaxCursor; - var currentToken; - var nodeCount; - var identifiers; - var identifierCount; - var parsingContext; - var notParenthesizedArrow; - var contextFlags; - var topLevel = true; - var parseErrorBeforeNextFinishedNode = false; - function parseSourceFile(fileName2, sourceText2, languageVersion2, syntaxCursor2, setParentNodes, scriptKind2, setExternalModuleIndicatorOverride) { - if (setParentNodes === void 0) { setParentNodes = false; } - var _a; - scriptKind2 = ensureScriptKind(fileName2, scriptKind2); - if (scriptKind2 === 6 /* JSON */) { - var result2 = parseJsonText2(fileName2, sourceText2, languageVersion2, syntaxCursor2, setParentNodes); - convertToJson(result2, (_a = result2.statements[0]) == null ? void 0 : _a.expression, result2.parseDiagnostics, - /*returnValue*/ - false, - /*jsonConversionNotifier*/ - void 0); - result2.referencedFiles = emptyArray; - result2.typeReferenceDirectives = emptyArray; - result2.libReferenceDirectives = emptyArray; - result2.amdDependencies = emptyArray; - result2.hasNoDefaultLib = false; - result2.pragmas = emptyMap; - return result2; - } - initializeState(fileName2, sourceText2, languageVersion2, syntaxCursor2, scriptKind2); - var result = parseSourceFileWorker(languageVersion2, setParentNodes, scriptKind2, setExternalModuleIndicatorOverride || setExternalModuleIndicator); - clearState(); - return result; - } - Parser2.parseSourceFile = parseSourceFile; - function parseIsolatedEntityName2(content, languageVersion2) { - initializeState("", content, languageVersion2, - /*syntaxCursor*/ - void 0, 1 /* JS */); - nextToken(); - var entityName = parseEntityName( - /*allowReservedWords*/ - true); - var isInvalid = token() === 1 /* EndOfFileToken */ && !parseDiagnostics.length; - clearState(); - return isInvalid ? entityName : void 0; - } - Parser2.parseIsolatedEntityName = parseIsolatedEntityName2; - function parseJsonText2(fileName2, sourceText2, languageVersion2 /* ES2015 */, syntaxCursor2, setParentNodes) { - if (languageVersion2 === void 0) { languageVersion2 = 2; } - if (setParentNodes === void 0) { setParentNodes = false; } - initializeState(fileName2, sourceText2, languageVersion2, syntaxCursor2, 6 /* JSON */); - sourceFlags = contextFlags; - nextToken(); - var pos = getNodePos(); - var statements, endOfFileToken; - if (token() === 1 /* EndOfFileToken */) { - statements = createNodeArray([], pos, pos); - endOfFileToken = parseTokenNode(); - } - else { - var expressions = void 0; - while (token() !== 1 /* EndOfFileToken */) { - var expression2 = void 0; - switch (token()) { - case 23 /* OpenBracketToken */: - expression2 = parseArrayLiteralExpression(); - break; - case 112 /* TrueKeyword */: - case 97 /* FalseKeyword */: - case 106 /* NullKeyword */: - expression2 = parseTokenNode(); - break; - case 41 /* MinusToken */: - if (lookAhead(function () { return nextToken() === 9 /* NumericLiteral */ && nextToken() !== 59; } /* ColonToken */)) { - expression2 = parsePrefixUnaryExpression(); - } - else { - expression2 = parseObjectLiteralExpression(); - } - break; - case 9 /* NumericLiteral */: - case 11 /* StringLiteral */: - if (lookAhead(function () { return nextToken() !== 59; } /* ColonToken */)) { - expression2 = parseLiteralNode(); - break; - } - default: - expression2 = parseObjectLiteralExpression(); - break; - } - if (expressions && isArray(expressions)) { - expressions.push(expression2); - } - else if (expressions) { - expressions = [expressions, expression2]; - } - else { - expressions = expression2; - if (token() !== 1 /* EndOfFileToken */) { - parseErrorAtCurrentToken(Diagnostics.Unexpected_token); - } - } - } - var expression = isArray(expressions) ? finishNode(factoryCreateArrayLiteralExpression(expressions), pos) : Debug.checkDefined(expressions); - var statement = factoryCreateExpressionStatement(expression); - finishNode(statement, pos); - statements = createNodeArray([statement], pos); - endOfFileToken = parseExpectedToken(1 /* EndOfFileToken */, Diagnostics.Unexpected_token); - } - var sourceFile = createSourceFile2(fileName2, 2 /* ES2015 */, 6 /* JSON */, - /*isDeclarationFile*/ - false, statements, endOfFileToken, sourceFlags, noop); - if (setParentNodes) { - fixupParentReferences(sourceFile); - } - sourceFile.nodeCount = nodeCount; - sourceFile.identifierCount = identifierCount; - sourceFile.identifiers = identifiers; - sourceFile.parseDiagnostics = attachFileToDiagnostics(parseDiagnostics, sourceFile); - if (jsDocDiagnostics) { - sourceFile.jsDocDiagnostics = attachFileToDiagnostics(jsDocDiagnostics, sourceFile); - } - var result = sourceFile; - clearState(); - return result; - } - Parser2.parseJsonText = parseJsonText2; - function initializeState(_fileName, _sourceText, _languageVersion, _syntaxCursor, _scriptKind) { - NodeConstructor2 = objectAllocator.getNodeConstructor(); - TokenConstructor2 = objectAllocator.getTokenConstructor(); - IdentifierConstructor2 = objectAllocator.getIdentifierConstructor(); - PrivateIdentifierConstructor2 = objectAllocator.getPrivateIdentifierConstructor(); - SourceFileConstructor2 = objectAllocator.getSourceFileConstructor(); - fileName = normalizePath(_fileName); - sourceText = _sourceText; - languageVersion = _languageVersion; - syntaxCursor = _syntaxCursor; - scriptKind = _scriptKind; - languageVariant = getLanguageVariant(_scriptKind); - parseDiagnostics = []; - parsingContext = 0; - identifiers = /* @__PURE__ */ new Map(); - identifierCount = 0; - nodeCount = 0; - sourceFlags = 0; - topLevel = true; - switch (scriptKind) { - case 1 /* JS */: - case 2 /* JSX */: - contextFlags = 524288 /* JavaScriptFile */; - break; - case 6 /* JSON */: - contextFlags = 524288 /* JavaScriptFile */ | 134217728 /* JsonFile */; - break; - default: - contextFlags = 0 /* None */; - break; - } - parseErrorBeforeNextFinishedNode = false; - scanner2.setText(sourceText); - scanner2.setOnError(scanError); - scanner2.setScriptTarget(languageVersion); - scanner2.setLanguageVariant(languageVariant); - } - function clearState() { - scanner2.clearCommentDirectives(); - scanner2.setText(""); - scanner2.setOnError(void 0); - sourceText = void 0; - languageVersion = void 0; - syntaxCursor = void 0; - scriptKind = void 0; - languageVariant = void 0; - sourceFlags = 0; - parseDiagnostics = void 0; - jsDocDiagnostics = void 0; - parsingContext = 0; - identifiers = void 0; - notParenthesizedArrow = void 0; - topLevel = true; - } - function parseSourceFileWorker(languageVersion2, setParentNodes, scriptKind2, setExternalModuleIndicator2) { - var isDeclarationFile = isDeclarationFileName(fileName); - if (isDeclarationFile) { - contextFlags |= 33554432 /* Ambient */; - } - sourceFlags = contextFlags; - nextToken(); - var statements = parseList(0 /* SourceElements */, parseStatement); - Debug.assert(token() === 1 /* EndOfFileToken */); - var endHasJSDoc = hasPrecedingJSDocComment(); - var endOfFileToken = withJSDoc(parseTokenNode(), endHasJSDoc); - var sourceFile = createSourceFile2(fileName, languageVersion2, scriptKind2, isDeclarationFile, statements, endOfFileToken, sourceFlags, setExternalModuleIndicator2); - processCommentPragmas(sourceFile, sourceText); - processPragmasIntoFields(sourceFile, reportPragmaDiagnostic); - sourceFile.commentDirectives = scanner2.getCommentDirectives(); - sourceFile.nodeCount = nodeCount; - sourceFile.identifierCount = identifierCount; - sourceFile.identifiers = identifiers; - sourceFile.parseDiagnostics = attachFileToDiagnostics(parseDiagnostics, sourceFile); - if (jsDocDiagnostics) { - sourceFile.jsDocDiagnostics = attachFileToDiagnostics(jsDocDiagnostics, sourceFile); - } - if (setParentNodes) { - fixupParentReferences(sourceFile); - } - return sourceFile; - function reportPragmaDiagnostic(pos, end, diagnostic) { - parseDiagnostics.push(createDetachedDiagnostic(fileName, pos, end, diagnostic)); - } - } - var hasDeprecatedTag = false; - function withJSDoc(node, hasJSDoc) { - if (!hasJSDoc) { - return node; - } - Debug.assert(!node.jsDoc); - var jsDoc = mapDefined(getJSDocCommentRanges(node, sourceText), function (comment) { return JSDocParser.parseJSDocComment(node, comment.pos, comment.end - comment.pos); }); - if (jsDoc.length) - node.jsDoc = jsDoc; - if (hasDeprecatedTag) { - hasDeprecatedTag = false; - node.flags |= 536870912 /* Deprecated */; - } - return node; - } - function reparseTopLevelAwait(sourceFile) { - var savedSyntaxCursor = syntaxCursor; - var baseSyntaxCursor = IncrementalParser.createSyntaxCursor(sourceFile); - syntaxCursor = { currentNode: currentNode2 }; - var statements = []; - var savedParseDiagnostics = parseDiagnostics; - parseDiagnostics = []; - var pos = 0; - var start2 = findNextStatementWithAwait(sourceFile.statements, 0); - var _loop_4 = function () { - var prevStatement = sourceFile.statements[pos]; - var nextStatement = sourceFile.statements[start2]; - addRange(statements, sourceFile.statements, pos, start2); - pos = findNextStatementWithoutAwait(sourceFile.statements, start2); - var diagnosticStart = findIndex(savedParseDiagnostics, function (diagnostic) { return diagnostic.start >= prevStatement.pos; }); - var diagnosticEnd = diagnosticStart >= 0 ? findIndex(savedParseDiagnostics, function (diagnostic) { return diagnostic.start >= nextStatement.pos; }, diagnosticStart) : -1; - if (diagnosticStart >= 0) { - addRange(parseDiagnostics, savedParseDiagnostics, diagnosticStart, diagnosticEnd >= 0 ? diagnosticEnd : void 0); - } - speculationHelper(function () { - var savedContextFlags = contextFlags; - contextFlags |= 65536 /* AwaitContext */; - scanner2.resetTokenState(nextStatement.pos); - nextToken(); - while (token() !== 1 /* EndOfFileToken */) { - var startPos = scanner2.getTokenFullStart(); - var statement = parseListElement(0 /* SourceElements */, parseStatement); - statements.push(statement); - if (startPos === scanner2.getTokenFullStart()) { - nextToken(); - } - if (pos >= 0) { - var nonAwaitStatement = sourceFile.statements[pos]; - if (statement.end === nonAwaitStatement.pos) { - break; - } - if (statement.end > nonAwaitStatement.pos) { - pos = findNextStatementWithoutAwait(sourceFile.statements, pos + 1); - } - } - } - contextFlags = savedContextFlags; - }, 2 /* Reparse */); - start2 = pos >= 0 ? findNextStatementWithAwait(sourceFile.statements, pos) : -1; - }; - while (start2 !== -1) { - _loop_4(); - } - if (pos >= 0) { - var prevStatement_1 = sourceFile.statements[pos]; - addRange(statements, sourceFile.statements, pos); - var diagnosticStart = findIndex(savedParseDiagnostics, function (diagnostic) { return diagnostic.start >= prevStatement_1.pos; }); - if (diagnosticStart >= 0) { - addRange(parseDiagnostics, savedParseDiagnostics, diagnosticStart); - } - } - syntaxCursor = savedSyntaxCursor; - return factory2.updateSourceFile(sourceFile, setTextRange(factoryCreateNodeArray(statements), sourceFile.statements)); - function containsPossibleTopLevelAwait(node) { - return !(node.flags & 65536 /* AwaitContext */) && !!(node.transformFlags & 67108864 /* ContainsPossibleTopLevelAwait */); - } - function findNextStatementWithAwait(statements2, start3) { - for (var i = start3; i < statements2.length; i++) { - if (containsPossibleTopLevelAwait(statements2[i])) { - return i; - } - } - return -1; - } - function findNextStatementWithoutAwait(statements2, start3) { - for (var i = start3; i < statements2.length; i++) { - if (!containsPossibleTopLevelAwait(statements2[i])) { - return i; - } - } - return -1; - } - function currentNode2(position) { - var node = baseSyntaxCursor.currentNode(position); - if (topLevel && node && containsPossibleTopLevelAwait(node)) { - node.intersectsChange = true; - } - return node; - } - } - function fixupParentReferences(rootNode) { - setParentRecursive(rootNode, - /*incremental*/ - true); - } - Parser2.fixupParentReferences = fixupParentReferences; - function createSourceFile2(fileName2, languageVersion2, scriptKind2, isDeclarationFile, statements, endOfFileToken, flags, setExternalModuleIndicator2) { - var sourceFile = factory2.createSourceFile(statements, endOfFileToken, flags); - setTextRangePosWidth(sourceFile, 0, sourceText.length); - setFields(sourceFile); - if (!isDeclarationFile && isExternalModule(sourceFile) && sourceFile.transformFlags & 67108864 /* ContainsPossibleTopLevelAwait */) { - sourceFile = reparseTopLevelAwait(sourceFile); - setFields(sourceFile); - } - return sourceFile; - function setFields(sourceFile2) { - sourceFile2.text = sourceText; - sourceFile2.bindDiagnostics = []; - sourceFile2.bindSuggestionDiagnostics = void 0; - sourceFile2.languageVersion = languageVersion2; - sourceFile2.fileName = fileName2; - sourceFile2.languageVariant = getLanguageVariant(scriptKind2); - sourceFile2.isDeclarationFile = isDeclarationFile; - sourceFile2.scriptKind = scriptKind2; - setExternalModuleIndicator2(sourceFile2); - sourceFile2.setExternalModuleIndicator = setExternalModuleIndicator2; - } - } - function setContextFlag(val, flag) { - if (val) { - contextFlags |= flag; - } - else { - contextFlags &= ~flag; - } - } - function setDisallowInContext(val) { - setContextFlag(val, 8192 /* DisallowInContext */); - } - function setYieldContext(val) { - setContextFlag(val, 16384 /* YieldContext */); - } - function setDecoratorContext(val) { - setContextFlag(val, 32768 /* DecoratorContext */); - } - function setAwaitContext(val) { - setContextFlag(val, 65536 /* AwaitContext */); - } - function doOutsideOfContext(context, func) { - var contextFlagsToClear = context & contextFlags; - if (contextFlagsToClear) { - setContextFlag( - /*val*/ - false, contextFlagsToClear); - var result = func(); - setContextFlag( - /*val*/ - true, contextFlagsToClear); - return result; - } - return func(); - } - function doInsideOfContext(context, func) { - var contextFlagsToSet = context & ~contextFlags; - if (contextFlagsToSet) { - setContextFlag( - /*val*/ - true, contextFlagsToSet); - var result = func(); - setContextFlag( - /*val*/ - false, contextFlagsToSet); - return result; - } - return func(); - } - function allowInAnd(func) { - return doOutsideOfContext(8192 /* DisallowInContext */, func); - } - function disallowInAnd(func) { - return doInsideOfContext(8192 /* DisallowInContext */, func); - } - function allowConditionalTypesAnd(func) { - return doOutsideOfContext(131072 /* DisallowConditionalTypesContext */, func); - } - function disallowConditionalTypesAnd(func) { - return doInsideOfContext(131072 /* DisallowConditionalTypesContext */, func); - } - function doInYieldContext(func) { - return doInsideOfContext(16384 /* YieldContext */, func); - } - function doInDecoratorContext(func) { - return doInsideOfContext(32768 /* DecoratorContext */, func); - } - function doInAwaitContext(func) { - return doInsideOfContext(65536 /* AwaitContext */, func); - } - function doOutsideOfAwaitContext(func) { - return doOutsideOfContext(65536 /* AwaitContext */, func); - } - function doInYieldAndAwaitContext(func) { - return doInsideOfContext(16384 /* YieldContext */ | 65536 /* AwaitContext */, func); - } - function doOutsideOfYieldAndAwaitContext(func) { - return doOutsideOfContext(16384 /* YieldContext */ | 65536 /* AwaitContext */, func); - } - function inContext(flags) { - return (contextFlags & flags) !== 0; - } - function inYieldContext() { - return inContext(16384 /* YieldContext */); - } - function inDisallowInContext() { - return inContext(8192 /* DisallowInContext */); - } - function inDisallowConditionalTypesContext() { - return inContext(131072 /* DisallowConditionalTypesContext */); - } - function inDecoratorContext() { - return inContext(32768 /* DecoratorContext */); - } - function inAwaitContext() { - return inContext(65536 /* AwaitContext */); - } - function parseErrorAtCurrentToken(message) { - var args = []; - for (var _t = 1; _t < arguments.length; _t++) { - args[_t - 1] = arguments[_t]; - } - return parseErrorAt.apply(void 0, __spreadArray([scanner2.getTokenStart(), scanner2.getTokenEnd(), message], __read(args), false)); - } - function parseErrorAtPosition(start2, length2, message) { - var args = []; - for (var _t = 3; _t < arguments.length; _t++) { - args[_t - 3] = arguments[_t]; - } - var lastError = lastOrUndefined(parseDiagnostics); - var result; - if (!lastError || start2 !== lastError.start) { - result = createDetachedDiagnostic.apply(void 0, __spreadArray([fileName, start2, length2, message], __read(args), false)); - parseDiagnostics.push(result); - } - parseErrorBeforeNextFinishedNode = true; - return result; - } - function parseErrorAt(start2, end, message) { - var args = []; - for (var _t = 3; _t < arguments.length; _t++) { - args[_t - 3] = arguments[_t]; - } - return parseErrorAtPosition.apply(void 0, __spreadArray([start2, end - start2, message], __read(args), false)); - } - function parseErrorAtRange(range, message) { - var args = []; - for (var _t = 2; _t < arguments.length; _t++) { - args[_t - 2] = arguments[_t]; - } - parseErrorAt.apply(void 0, __spreadArray([range.pos, range.end, message], __read(args), false)); - } - function scanError(message, length2, arg0) { - parseErrorAtPosition(scanner2.getTokenEnd(), length2, message, arg0); - } - function getNodePos() { - return scanner2.getTokenFullStart(); - } - function hasPrecedingJSDocComment() { - return scanner2.hasPrecedingJSDocComment(); - } - function token() { - return currentToken; - } - function nextTokenWithoutCheck() { - return currentToken = scanner2.scan(); - } - function nextTokenAnd(func) { - nextToken(); - return func(); - } - function nextToken() { - if (isKeyword(currentToken) && (scanner2.hasUnicodeEscape() || scanner2.hasExtendedUnicodeEscape())) { - parseErrorAt(scanner2.getTokenStart(), scanner2.getTokenEnd(), Diagnostics.Keywords_cannot_contain_escape_characters); - } - return nextTokenWithoutCheck(); - } - function nextTokenJSDoc() { - return currentToken = scanner2.scanJsDocToken(); - } - function nextJSDocCommentTextToken(inBackticks) { - return currentToken = scanner2.scanJSDocCommentTextToken(inBackticks); - } - function reScanGreaterToken() { - return currentToken = scanner2.reScanGreaterToken(); - } - function reScanSlashToken() { - return currentToken = scanner2.reScanSlashToken(); - } - function reScanTemplateToken(isTaggedTemplate) { - return currentToken = scanner2.reScanTemplateToken(isTaggedTemplate); - } - function reScanLessThanToken() { - return currentToken = scanner2.reScanLessThanToken(); - } - function reScanHashToken() { - return currentToken = scanner2.reScanHashToken(); - } - function scanJsxIdentifier() { - return currentToken = scanner2.scanJsxIdentifier(); - } - function scanJsxText() { - return currentToken = scanner2.scanJsxToken(); - } - function scanJsxAttributeValue() { - return currentToken = scanner2.scanJsxAttributeValue(); - } - function speculationHelper(callback, speculationKind) { - var saveToken = currentToken; - var saveParseDiagnosticsLength = parseDiagnostics.length; - var saveParseErrorBeforeNextFinishedNode = parseErrorBeforeNextFinishedNode; - var saveContextFlags = contextFlags; - var result = speculationKind !== 0 /* TryParse */ ? scanner2.lookAhead(callback) : scanner2.tryScan(callback); - Debug.assert(saveContextFlags === contextFlags); - if (!result || speculationKind !== 0 /* TryParse */) { - currentToken = saveToken; - if (speculationKind !== 2 /* Reparse */) { - parseDiagnostics.length = saveParseDiagnosticsLength; - } - parseErrorBeforeNextFinishedNode = saveParseErrorBeforeNextFinishedNode; - } - return result; - } - function lookAhead(callback) { - return speculationHelper(callback, 1 /* Lookahead */); - } - function tryParse(callback) { - return speculationHelper(callback, 0 /* TryParse */); - } - function isBindingIdentifier() { - if (token() === 80 /* Identifier */) { - return true; - } - return token() > 118 /* LastReservedWord */; - } - function isIdentifier2() { - if (token() === 80 /* Identifier */) { - return true; - } - if (token() === 127 /* YieldKeyword */ && inYieldContext()) { - return false; - } - if (token() === 135 /* AwaitKeyword */ && inAwaitContext()) { - return false; - } - return token() > 118 /* LastReservedWord */; - } - function parseExpected(kind, diagnosticMessage, shouldAdvance) { - if (shouldAdvance === void 0) { shouldAdvance = true; } - if (token() === kind) { - if (shouldAdvance) { - nextToken(); - } - return true; - } - if (diagnosticMessage) { - parseErrorAtCurrentToken(diagnosticMessage); - } - else { - parseErrorAtCurrentToken(Diagnostics._0_expected, tokenToString(kind)); - } - return false; - } - var viableKeywordSuggestions = Object.keys(textToKeywordObj).filter(function (keyword) { return keyword.length > 2; }); - function parseErrorForMissingSemicolonAfter(node) { - var _t; - if (isTaggedTemplateExpression(node)) { - parseErrorAt(skipTrivia(sourceText, node.template.pos), node.template.end, Diagnostics.Module_declaration_names_may_only_use_or_quoted_strings); - return; - } - var expressionText = isIdentifier(node) ? idText(node) : void 0; - if (!expressionText || !isIdentifierText(expressionText, languageVersion)) { - parseErrorAtCurrentToken(Diagnostics._0_expected, tokenToString(27 /* SemicolonToken */)); - return; - } - var pos = skipTrivia(sourceText, node.pos); - switch (expressionText) { - case "const": - case "let": - case "var": - parseErrorAt(pos, node.end, Diagnostics.Variable_declaration_not_allowed_at_this_location); - return; - case "declare": - return; - case "interface": - parseErrorForInvalidName(Diagnostics.Interface_name_cannot_be_0, Diagnostics.Interface_must_be_given_a_name, 19 /* OpenBraceToken */); - return; - case "is": - parseErrorAt(pos, scanner2.getTokenStart(), Diagnostics.A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods); - return; - case "module": - case "namespace": - parseErrorForInvalidName(Diagnostics.Namespace_name_cannot_be_0, Diagnostics.Namespace_must_be_given_a_name, 19 /* OpenBraceToken */); - return; - case "type": - parseErrorForInvalidName(Diagnostics.Type_alias_name_cannot_be_0, Diagnostics.Type_alias_must_be_given_a_name, 64 /* EqualsToken */); - return; - } - var suggestion = (_t = getSpellingSuggestion(expressionText, viableKeywordSuggestions, function (n) { return n; })) !== null && _t !== void 0 ? _t : getSpaceSuggestion(expressionText); - if (suggestion) { - parseErrorAt(pos, node.end, Diagnostics.Unknown_keyword_or_identifier_Did_you_mean_0, suggestion); - return; - } - if (token() === 0 /* Unknown */) { - return; - } - parseErrorAt(pos, node.end, Diagnostics.Unexpected_keyword_or_identifier); - } - function parseErrorForInvalidName(nameDiagnostic, blankDiagnostic, tokenIfBlankName) { - if (token() === tokenIfBlankName) { - parseErrorAtCurrentToken(blankDiagnostic); - } - else { - parseErrorAtCurrentToken(nameDiagnostic, scanner2.getTokenValue()); - } - } - function getSpaceSuggestion(expressionText) { - var e_96, _t; - try { - for (var viableKeywordSuggestions_1 = __values(viableKeywordSuggestions), viableKeywordSuggestions_1_1 = viableKeywordSuggestions_1.next(); !viableKeywordSuggestions_1_1.done; viableKeywordSuggestions_1_1 = viableKeywordSuggestions_1.next()) { - var keyword = viableKeywordSuggestions_1_1.value; - if (expressionText.length > keyword.length + 2 && startsWith(expressionText, keyword)) { - return "".concat(keyword, " ").concat(expressionText.slice(keyword.length)); - } - } - } - catch (e_96_1) { e_96 = { error: e_96_1 }; } - finally { - try { - if (viableKeywordSuggestions_1_1 && !viableKeywordSuggestions_1_1.done && (_t = viableKeywordSuggestions_1.return)) _t.call(viableKeywordSuggestions_1); - } - finally { if (e_96) throw e_96.error; } - } - return void 0; - } - function parseSemicolonAfterPropertyName(name, type, initializer) { - if (token() === 60 /* AtToken */ && !scanner2.hasPrecedingLineBreak()) { - parseErrorAtCurrentToken(Diagnostics.Decorators_must_precede_the_name_and_all_keywords_of_property_declarations); - return; - } - if (token() === 21 /* OpenParenToken */) { - parseErrorAtCurrentToken(Diagnostics.Cannot_start_a_function_call_in_a_type_annotation); - nextToken(); - return; - } - if (type && !canParseSemicolon()) { - if (initializer) { - parseErrorAtCurrentToken(Diagnostics._0_expected, tokenToString(27 /* SemicolonToken */)); - } - else { - parseErrorAtCurrentToken(Diagnostics.Expected_for_property_initializer); - } - return; - } - if (tryParseSemicolon()) { - return; - } - if (initializer) { - parseErrorAtCurrentToken(Diagnostics._0_expected, tokenToString(27 /* SemicolonToken */)); - return; - } - parseErrorForMissingSemicolonAfter(name); - } - function parseExpectedJSDoc(kind) { - if (token() === kind) { - nextTokenJSDoc(); - return true; - } - Debug.assert(isKeywordOrPunctuation(kind)); - parseErrorAtCurrentToken(Diagnostics._0_expected, tokenToString(kind)); - return false; - } - function parseExpectedMatchingBrackets(openKind, closeKind, openParsed, openPosition) { - if (token() === closeKind) { - nextToken(); - return; - } - var lastError = parseErrorAtCurrentToken(Diagnostics._0_expected, tokenToString(closeKind)); - if (!openParsed) { - return; - } - if (lastError) { - addRelatedInfo(lastError, createDetachedDiagnostic(fileName, openPosition, 1, Diagnostics.The_parser_expected_to_find_a_1_to_match_the_0_token_here, tokenToString(openKind), tokenToString(closeKind))); - } - } - function parseOptional(t) { - if (token() === t) { - nextToken(); - return true; - } - return false; - } - function parseOptionalToken(t) { - if (token() === t) { - return parseTokenNode(); - } - return void 0; - } - function parseOptionalTokenJSDoc(t) { - if (token() === t) { - return parseTokenNodeJSDoc(); - } - return void 0; - } - function parseExpectedToken(t, diagnosticMessage, arg0) { - return parseOptionalToken(t) || createMissingNode(t, - /*reportAtCurrentPosition*/ - false, diagnosticMessage || Diagnostics._0_expected, arg0 || tokenToString(t)); - } - function parseExpectedTokenJSDoc(t) { - var optional = parseOptionalTokenJSDoc(t); - if (optional) - return optional; - Debug.assert(isKeywordOrPunctuation(t)); - return createMissingNode(t, - /*reportAtCurrentPosition*/ - false, Diagnostics._0_expected, tokenToString(t)); - } - function parseTokenNode() { - var pos = getNodePos(); - var kind = token(); - nextToken(); - return finishNode(factoryCreateToken(kind), pos); - } - function parseTokenNodeJSDoc() { - var pos = getNodePos(); - var kind = token(); - nextTokenJSDoc(); - return finishNode(factoryCreateToken(kind), pos); - } - function canParseSemicolon() { - if (token() === 27 /* SemicolonToken */) { - return true; - } - return token() === 20 /* CloseBraceToken */ || token() === 1 /* EndOfFileToken */ || scanner2.hasPrecedingLineBreak(); - } - function tryParseSemicolon() { - if (!canParseSemicolon()) { - return false; - } - if (token() === 27 /* SemicolonToken */) { - nextToken(); - } - return true; - } - function parseSemicolon() { - return tryParseSemicolon() || parseExpected(27 /* SemicolonToken */); - } - function createNodeArray(elements, pos, end, hasTrailingComma) { - var array = factoryCreateNodeArray(elements, hasTrailingComma); - setTextRangePosEnd(array, pos, end !== null && end !== void 0 ? end : scanner2.getTokenFullStart()); - return array; - } - function finishNode(node, pos, end) { - setTextRangePosEnd(node, pos, end !== null && end !== void 0 ? end : scanner2.getTokenFullStart()); - if (contextFlags) { - node.flags |= contextFlags; - } - if (parseErrorBeforeNextFinishedNode) { - parseErrorBeforeNextFinishedNode = false; - node.flags |= 262144 /* ThisNodeHasError */; - } - return node; - } - function createMissingNode(kind, reportAtCurrentPosition, diagnosticMessage) { - var args = []; - for (var _t = 3; _t < arguments.length; _t++) { - args[_t - 3] = arguments[_t]; - } - if (reportAtCurrentPosition) { - parseErrorAtPosition.apply(void 0, __spreadArray([scanner2.getTokenFullStart(), 0, diagnosticMessage], __read(args), false)); - } - else if (diagnosticMessage) { - parseErrorAtCurrentToken.apply(void 0, __spreadArray([diagnosticMessage], __read(args), false)); - } - var pos = getNodePos(); - var result = kind === 80 /* Identifier */ ? factoryCreateIdentifier("", - /*originalKeywordKind*/ - void 0) : isTemplateLiteralKind(kind) ? factory2.createTemplateLiteralLikeNode(kind, "", "", - /*templateFlags*/ - void 0) : kind === 9 /* NumericLiteral */ ? factoryCreateNumericLiteral("", - /*numericLiteralFlags*/ - void 0) : kind === 11 /* StringLiteral */ ? factoryCreateStringLiteral("", - /*isSingleQuote*/ - void 0) : kind === 282 /* MissingDeclaration */ ? factory2.createMissingDeclaration() : factoryCreateToken(kind); - return finishNode(result, pos); - } - function internIdentifier(text) { - var identifier = identifiers.get(text); - if (identifier === void 0) { - identifiers.set(text, identifier = text); - } - return identifier; - } - function createIdentifier(isIdentifier3, diagnosticMessage, privateIdentifierDiagnosticMessage) { - if (isIdentifier3) { - identifierCount++; - var pos = getNodePos(); - var originalKeywordKind = token(); - var text = internIdentifier(scanner2.getTokenValue()); - var hasExtendedUnicodeEscape = scanner2.hasExtendedUnicodeEscape(); - nextTokenWithoutCheck(); - return finishNode(factoryCreateIdentifier(text, originalKeywordKind, hasExtendedUnicodeEscape), pos); - } - if (token() === 81 /* PrivateIdentifier */) { - parseErrorAtCurrentToken(privateIdentifierDiagnosticMessage || Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies); - return createIdentifier( - /*isIdentifier*/ - true); - } - if (token() === 0 /* Unknown */ && scanner2.tryScan(function () { return scanner2.reScanInvalidIdentifier() === 80; } /* Identifier */)) { - return createIdentifier( - /*isIdentifier*/ - true); - } - identifierCount++; - var reportAtCurrentPosition = token() === 1 /* EndOfFileToken */; - var isReservedWord = scanner2.isReservedWord(); - var msgArg = scanner2.getTokenText(); - var defaultMessage = isReservedWord ? Diagnostics.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here : Diagnostics.Identifier_expected; - return createMissingNode(80 /* Identifier */, reportAtCurrentPosition, diagnosticMessage || defaultMessage, msgArg); - } - function parseBindingIdentifier(privateIdentifierDiagnosticMessage) { - return createIdentifier(isBindingIdentifier(), - /*diagnosticMessage*/ - void 0, privateIdentifierDiagnosticMessage); - } - function parseIdentifier(diagnosticMessage, privateIdentifierDiagnosticMessage) { - return createIdentifier(isIdentifier2(), diagnosticMessage, privateIdentifierDiagnosticMessage); - } - function parseIdentifierName(diagnosticMessage) { - return createIdentifier(tokenIsIdentifierOrKeyword(token()), diagnosticMessage); - } - function isLiteralPropertyName() { - return tokenIsIdentifierOrKeyword(token()) || token() === 11 /* StringLiteral */ || token() === 9 /* NumericLiteral */; - } - function isAssertionKey2() { - return tokenIsIdentifierOrKeyword(token()) || token() === 11 /* StringLiteral */; - } - function parsePropertyNameWorker(allowComputedPropertyNames) { - if (token() === 11 /* StringLiteral */ || token() === 9 /* NumericLiteral */) { - var node = parseLiteralNode(); - node.text = internIdentifier(node.text); - return node; - } - if (allowComputedPropertyNames && token() === 23 /* OpenBracketToken */) { - return parseComputedPropertyName(); - } - if (token() === 81 /* PrivateIdentifier */) { - return parsePrivateIdentifier(); - } - return parseIdentifierName(); - } - function parsePropertyName() { - return parsePropertyNameWorker( - /*allowComputedPropertyNames*/ - true); - } - function parseComputedPropertyName() { - var pos = getNodePos(); - parseExpected(23 /* OpenBracketToken */); - var expression = allowInAnd(parseExpression); - parseExpected(24 /* CloseBracketToken */); - return finishNode(factory2.createComputedPropertyName(expression), pos); - } - function parsePrivateIdentifier() { - var pos = getNodePos(); - var node = factoryCreatePrivateIdentifier(internIdentifier(scanner2.getTokenValue())); - nextToken(); - return finishNode(node, pos); - } - function parseContextualModifier(t) { - return token() === t && tryParse(nextTokenCanFollowModifier); - } - function nextTokenIsOnSameLineAndCanFollowModifier() { - nextToken(); - if (scanner2.hasPrecedingLineBreak()) { - return false; - } - return canFollowModifier(); - } - function nextTokenCanFollowModifier() { - switch (token()) { - case 87 /* ConstKeyword */: - return nextToken() === 94 /* EnumKeyword */; - case 95 /* ExportKeyword */: - nextToken(); - if (token() === 90 /* DefaultKeyword */) { - return lookAhead(nextTokenCanFollowDefaultKeyword); - } - if (token() === 156 /* TypeKeyword */) { - return lookAhead(nextTokenCanFollowExportModifier); - } - return canFollowExportModifier(); - case 90 /* DefaultKeyword */: - return nextTokenCanFollowDefaultKeyword(); - case 126 /* StaticKeyword */: - case 139 /* GetKeyword */: - case 153 /* SetKeyword */: - nextToken(); - return canFollowModifier(); - default: - return nextTokenIsOnSameLineAndCanFollowModifier(); - } - } - function canFollowExportModifier() { - return token() === 60 /* AtToken */ || token() !== 42 /* AsteriskToken */ && token() !== 130 /* AsKeyword */ && token() !== 19 /* OpenBraceToken */ && canFollowModifier(); - } - function nextTokenCanFollowExportModifier() { - nextToken(); - return canFollowExportModifier(); - } - function parseAnyContextualModifier() { - return isModifierKind(token()) && tryParse(nextTokenCanFollowModifier); - } - function canFollowModifier() { - return token() === 23 /* OpenBracketToken */ || token() === 19 /* OpenBraceToken */ || token() === 42 /* AsteriskToken */ || token() === 26 /* DotDotDotToken */ || isLiteralPropertyName(); - } - function nextTokenCanFollowDefaultKeyword() { - nextToken(); - return token() === 86 /* ClassKeyword */ || token() === 100 /* FunctionKeyword */ || token() === 120 /* InterfaceKeyword */ || token() === 60 /* AtToken */ || token() === 128 /* AbstractKeyword */ && lookAhead(nextTokenIsClassKeywordOnSameLine) || token() === 134 /* AsyncKeyword */ && lookAhead(nextTokenIsFunctionKeywordOnSameLine); - } - function isListElement2(parsingContext2, inErrorRecovery) { - var node = currentNode(parsingContext2); - if (node) { - return true; - } - switch (parsingContext2) { - case 0 /* SourceElements */: - case 1 /* BlockStatements */: - case 3 /* SwitchClauseStatements */: - return !(token() === 27 /* SemicolonToken */ && inErrorRecovery) && isStartOfStatement(); - case 2 /* SwitchClauses */: - return token() === 84 /* CaseKeyword */ || token() === 90 /* DefaultKeyword */; - case 4 /* TypeMembers */: - return lookAhead(isTypeMemberStart); - case 5 /* ClassMembers */: - return lookAhead(isClassMemberStart) || token() === 27 /* SemicolonToken */ && !inErrorRecovery; - case 6 /* EnumMembers */: - return token() === 23 /* OpenBracketToken */ || isLiteralPropertyName(); - case 12 /* ObjectLiteralMembers */: - switch (token()) { - case 23 /* OpenBracketToken */: - case 42 /* AsteriskToken */: - case 26 /* DotDotDotToken */: - case 25 /* DotToken */: - return true; - default: - return isLiteralPropertyName(); - } - case 18 /* RestProperties */: - return isLiteralPropertyName(); - case 9 /* ObjectBindingElements */: - return token() === 23 /* OpenBracketToken */ || token() === 26 /* DotDotDotToken */ || isLiteralPropertyName(); - case 24 /* AssertEntries */: - return isAssertionKey2(); - case 7 /* HeritageClauseElement */: - if (token() === 19 /* OpenBraceToken */) { - return lookAhead(isValidHeritageClauseObjectLiteral); - } - if (!inErrorRecovery) { - return isStartOfLeftHandSideExpression() && !isHeritageClauseExtendsOrImplementsKeyword(); - } - else { - return isIdentifier2() && !isHeritageClauseExtendsOrImplementsKeyword(); - } - case 8 /* VariableDeclarations */: - return isBindingIdentifierOrPrivateIdentifierOrPattern(); - case 10 /* ArrayBindingElements */: - return token() === 28 /* CommaToken */ || token() === 26 /* DotDotDotToken */ || isBindingIdentifierOrPrivateIdentifierOrPattern(); - case 19 /* TypeParameters */: - return token() === 103 /* InKeyword */ || token() === 87 /* ConstKeyword */ || isIdentifier2(); - case 15 /* ArrayLiteralMembers */: - switch (token()) { - case 28 /* CommaToken */: - case 25 /* DotToken */: - return true; - } - case 11 /* ArgumentExpressions */: - return token() === 26 /* DotDotDotToken */ || isStartOfExpression(); - case 16 /* Parameters */: - return isStartOfParameter( - /*isJSDocParameter*/ - false); - case 17 /* JSDocParameters */: - return isStartOfParameter( - /*isJSDocParameter*/ - true); - case 20 /* TypeArguments */: - case 21 /* TupleElementTypes */: - return token() === 28 /* CommaToken */ || isStartOfType(); - case 22 /* HeritageClauses */: - return isHeritageClause2(); - case 23 /* ImportOrExportSpecifiers */: - if (token() === 161 /* FromKeyword */ && lookAhead(nextTokenIsStringLiteral)) { - return false; - } - return tokenIsIdentifierOrKeyword(token()); - case 13 /* JsxAttributes */: - return tokenIsIdentifierOrKeyword(token()) || token() === 19 /* OpenBraceToken */; - case 14 /* JsxChildren */: - return true; - case 25 /* JSDocComment */: - return true; - case 26 /* Count */: - return Debug.fail("ParsingContext.Count used as a context"); - default: - Debug.assertNever(parsingContext2, "Non-exhaustive case in 'isListElement'."); - } - } - function isValidHeritageClauseObjectLiteral() { - Debug.assert(token() === 19 /* OpenBraceToken */); - if (nextToken() === 20 /* CloseBraceToken */) { - var next = nextToken(); - return next === 28 /* CommaToken */ || next === 19 /* OpenBraceToken */ || next === 96 /* ExtendsKeyword */ || next === 119 /* ImplementsKeyword */; - } - return true; - } - function nextTokenIsIdentifier() { - nextToken(); - return isIdentifier2(); - } - function nextTokenIsIdentifierOrKeyword() { - nextToken(); - return tokenIsIdentifierOrKeyword(token()); - } - function nextTokenIsIdentifierOrKeywordOrGreaterThan() { - nextToken(); - return tokenIsIdentifierOrKeywordOrGreaterThan(token()); - } - function isHeritageClauseExtendsOrImplementsKeyword() { - if (token() === 119 /* ImplementsKeyword */ || token() === 96 /* ExtendsKeyword */) { - return lookAhead(nextTokenIsStartOfExpression); - } - return false; - } - function nextTokenIsStartOfExpression() { - nextToken(); - return isStartOfExpression(); - } - function nextTokenIsStartOfType() { - nextToken(); - return isStartOfType(); - } - function isListTerminator(kind) { - if (token() === 1 /* EndOfFileToken */) { - return true; - } - switch (kind) { - case 1 /* BlockStatements */: - case 2 /* SwitchClauses */: - case 4 /* TypeMembers */: - case 5 /* ClassMembers */: - case 6 /* EnumMembers */: - case 12 /* ObjectLiteralMembers */: - case 9 /* ObjectBindingElements */: - case 23 /* ImportOrExportSpecifiers */: - case 24 /* AssertEntries */: - return token() === 20 /* CloseBraceToken */; - case 3 /* SwitchClauseStatements */: - return token() === 20 /* CloseBraceToken */ || token() === 84 /* CaseKeyword */ || token() === 90 /* DefaultKeyword */; - case 7 /* HeritageClauseElement */: - return token() === 19 /* OpenBraceToken */ || token() === 96 /* ExtendsKeyword */ || token() === 119 /* ImplementsKeyword */; - case 8 /* VariableDeclarations */: - return isVariableDeclaratorListTerminator(); - case 19 /* TypeParameters */: - return token() === 32 /* GreaterThanToken */ || token() === 21 /* OpenParenToken */ || token() === 19 /* OpenBraceToken */ || token() === 96 /* ExtendsKeyword */ || token() === 119 /* ImplementsKeyword */; - case 11 /* ArgumentExpressions */: - return token() === 22 /* CloseParenToken */ || token() === 27 /* SemicolonToken */; - case 15 /* ArrayLiteralMembers */: - case 21 /* TupleElementTypes */: - case 10 /* ArrayBindingElements */: - return token() === 24 /* CloseBracketToken */; - case 17 /* JSDocParameters */: - case 16 /* Parameters */: - case 18 /* RestProperties */: - return token() === 22 /* CloseParenToken */ || token() === 24 /* CloseBracketToken */; - case 20 /* TypeArguments */: - return token() !== 28 /* CommaToken */; - case 22 /* HeritageClauses */: - return token() === 19 /* OpenBraceToken */ || token() === 20 /* CloseBraceToken */; - case 13 /* JsxAttributes */: - return token() === 32 /* GreaterThanToken */ || token() === 44 /* SlashToken */; - case 14 /* JsxChildren */: - return token() === 30 /* LessThanToken */ && lookAhead(nextTokenIsSlash); - default: - return false; - } - } - function isVariableDeclaratorListTerminator() { - if (canParseSemicolon()) { - return true; - } - if (isInOrOfKeyword(token())) { - return true; - } - if (token() === 39 /* EqualsGreaterThanToken */) { - return true; - } - return false; - } - function isInSomeParsingContext() { - Debug.assert(parsingContext, "Missing parsing context"); - for (var kind = 0; kind < 26 /* Count */; kind++) { - if (parsingContext & 1 << kind) { - if (isListElement2(kind, - /*inErrorRecovery*/ - true) || isListTerminator(kind)) { - return true; - } - } - } - return false; - } - function parseList(kind, parseElement) { - var saveParsingContext = parsingContext; - parsingContext |= 1 << kind; - var list = []; - var listPos = getNodePos(); - while (!isListTerminator(kind)) { - if (isListElement2(kind, - /*inErrorRecovery*/ - false)) { - list.push(parseListElement(kind, parseElement)); - continue; - } - if (abortParsingListOrMoveToNextToken(kind)) { - break; - } - } - parsingContext = saveParsingContext; - return createNodeArray(list, listPos); - } - function parseListElement(parsingContext2, parseElement) { - var node = currentNode(parsingContext2); - if (node) { - return consumeNode(node); - } - return parseElement(); - } - function currentNode(parsingContext2, pos) { - var _a; - if (!syntaxCursor || !isReusableParsingContext(parsingContext2) || parseErrorBeforeNextFinishedNode) { - return void 0; - } - var node = syntaxCursor.currentNode(pos !== null && pos !== void 0 ? pos : scanner2.getTokenFullStart()); - if (nodeIsMissing(node) || node.intersectsChange || containsParseError(node)) { - return void 0; - } - var nodeContextFlags = node.flags & 101441536 /* ContextFlags */; - if (nodeContextFlags !== contextFlags) { - return void 0; - } - if (!canReuseNode(node, parsingContext2)) { - return void 0; - } - if (canHaveJSDoc(node) && ((_a = node.jsDoc) == null ? void 0 : _a.jsDocCache)) { - node.jsDoc.jsDocCache = void 0; - } - return node; - } - function consumeNode(node) { - scanner2.resetTokenState(node.end); - nextToken(); - return node; - } - function isReusableParsingContext(parsingContext2) { - switch (parsingContext2) { - case 5 /* ClassMembers */: - case 2 /* SwitchClauses */: - case 0 /* SourceElements */: - case 1 /* BlockStatements */: - case 3 /* SwitchClauseStatements */: - case 6 /* EnumMembers */: - case 4 /* TypeMembers */: - case 8 /* VariableDeclarations */: - case 17 /* JSDocParameters */: - case 16 /* Parameters */: - return true; - } - return false; - } - function canReuseNode(node, parsingContext2) { - switch (parsingContext2) { - case 5 /* ClassMembers */: - return isReusableClassMember(node); - case 2 /* SwitchClauses */: - return isReusableSwitchClause(node); - case 0 /* SourceElements */: - case 1 /* BlockStatements */: - case 3 /* SwitchClauseStatements */: - return isReusableStatement(node); - case 6 /* EnumMembers */: - return isReusableEnumMember(node); - case 4 /* TypeMembers */: - return isReusableTypeMember(node); - case 8 /* VariableDeclarations */: - return isReusableVariableDeclaration(node); - case 17 /* JSDocParameters */: - case 16 /* Parameters */: - return isReusableParameter(node); - } - return false; - } - function isReusableClassMember(node) { - if (node) { - switch (node.kind) { - case 176 /* Constructor */: - case 181 /* IndexSignature */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - case 172 /* PropertyDeclaration */: - case 240 /* SemicolonClassElement */: - return true; - case 174 /* MethodDeclaration */: - var methodDeclaration = node; - var nameIsConstructor = methodDeclaration.name.kind === 80 /* Identifier */ && methodDeclaration.name.escapedText === "constructor"; - return !nameIsConstructor; - } - } - return false; - } - function isReusableSwitchClause(node) { - if (node) { - switch (node.kind) { - case 296 /* CaseClause */: - case 297 /* DefaultClause */: - return true; - } - } - return false; - } - function isReusableStatement(node) { - if (node) { - switch (node.kind) { - case 262 /* FunctionDeclaration */: - case 243 /* VariableStatement */: - case 241 /* Block */: - case 245 /* IfStatement */: - case 244 /* ExpressionStatement */: - case 257 /* ThrowStatement */: - case 253 /* ReturnStatement */: - case 255 /* SwitchStatement */: - case 252 /* BreakStatement */: - case 251 /* ContinueStatement */: - case 249 /* ForInStatement */: - case 250 /* ForOfStatement */: - case 248 /* ForStatement */: - case 247 /* WhileStatement */: - case 254 /* WithStatement */: - case 242 /* EmptyStatement */: - case 258 /* TryStatement */: - case 256 /* LabeledStatement */: - case 246 /* DoStatement */: - case 259 /* DebuggerStatement */: - case 272 /* ImportDeclaration */: - case 271 /* ImportEqualsDeclaration */: - case 278 /* ExportDeclaration */: - case 277 /* ExportAssignment */: - case 267 /* ModuleDeclaration */: - case 263 /* ClassDeclaration */: - case 264 /* InterfaceDeclaration */: - case 266 /* EnumDeclaration */: - case 265 /* TypeAliasDeclaration */: - return true; - } - } - return false; - } - function isReusableEnumMember(node) { - return node.kind === 306 /* EnumMember */; - } - function isReusableTypeMember(node) { - if (node) { - switch (node.kind) { - case 180 /* ConstructSignature */: - case 173 /* MethodSignature */: - case 181 /* IndexSignature */: - case 171 /* PropertySignature */: - case 179 /* CallSignature */: - return true; - } - } - return false; - } - function isReusableVariableDeclaration(node) { - if (node.kind !== 260 /* VariableDeclaration */) { - return false; - } - var variableDeclarator = node; - return variableDeclarator.initializer === void 0; - } - function isReusableParameter(node) { - if (node.kind !== 169 /* Parameter */) { - return false; - } - var parameter = node; - return parameter.initializer === void 0; - } - function abortParsingListOrMoveToNextToken(kind) { - parsingContextErrors(kind); - if (isInSomeParsingContext()) { - return true; - } - nextToken(); - return false; - } - function parsingContextErrors(context) { - switch (context) { - case 0 /* SourceElements */: - return token() === 90 /* DefaultKeyword */ ? parseErrorAtCurrentToken(Diagnostics._0_expected, tokenToString(95 /* ExportKeyword */)) : parseErrorAtCurrentToken(Diagnostics.Declaration_or_statement_expected); - case 1 /* BlockStatements */: - return parseErrorAtCurrentToken(Diagnostics.Declaration_or_statement_expected); - case 2 /* SwitchClauses */: - return parseErrorAtCurrentToken(Diagnostics.case_or_default_expected); - case 3 /* SwitchClauseStatements */: - return parseErrorAtCurrentToken(Diagnostics.Statement_expected); - case 18 /* RestProperties */: - case 4 /* TypeMembers */: - return parseErrorAtCurrentToken(Diagnostics.Property_or_signature_expected); - case 5 /* ClassMembers */: - return parseErrorAtCurrentToken(Diagnostics.Unexpected_token_A_constructor_method_accessor_or_property_was_expected); - case 6 /* EnumMembers */: - return parseErrorAtCurrentToken(Diagnostics.Enum_member_expected); - case 7 /* HeritageClauseElement */: - return parseErrorAtCurrentToken(Diagnostics.Expression_expected); - case 8 /* VariableDeclarations */: - return isKeyword(token()) ? parseErrorAtCurrentToken(Diagnostics._0_is_not_allowed_as_a_variable_declaration_name, tokenToString(token())) : parseErrorAtCurrentToken(Diagnostics.Variable_declaration_expected); - case 9 /* ObjectBindingElements */: - return parseErrorAtCurrentToken(Diagnostics.Property_destructuring_pattern_expected); - case 10 /* ArrayBindingElements */: - return parseErrorAtCurrentToken(Diagnostics.Array_element_destructuring_pattern_expected); - case 11 /* ArgumentExpressions */: - return parseErrorAtCurrentToken(Diagnostics.Argument_expression_expected); - case 12 /* ObjectLiteralMembers */: - return parseErrorAtCurrentToken(Diagnostics.Property_assignment_expected); - case 15 /* ArrayLiteralMembers */: - return parseErrorAtCurrentToken(Diagnostics.Expression_or_comma_expected); - case 17 /* JSDocParameters */: - return parseErrorAtCurrentToken(Diagnostics.Parameter_declaration_expected); - case 16 /* Parameters */: - return isKeyword(token()) ? parseErrorAtCurrentToken(Diagnostics._0_is_not_allowed_as_a_parameter_name, tokenToString(token())) : parseErrorAtCurrentToken(Diagnostics.Parameter_declaration_expected); - case 19 /* TypeParameters */: - return parseErrorAtCurrentToken(Diagnostics.Type_parameter_declaration_expected); - case 20 /* TypeArguments */: - return parseErrorAtCurrentToken(Diagnostics.Type_argument_expected); - case 21 /* TupleElementTypes */: - return parseErrorAtCurrentToken(Diagnostics.Type_expected); - case 22 /* HeritageClauses */: - return parseErrorAtCurrentToken(Diagnostics.Unexpected_token_expected); - case 23 /* ImportOrExportSpecifiers */: - if (token() === 161 /* FromKeyword */) { - return parseErrorAtCurrentToken(Diagnostics._0_expected, "}"); - } - return parseErrorAtCurrentToken(Diagnostics.Identifier_expected); - case 13 /* JsxAttributes */: - return parseErrorAtCurrentToken(Diagnostics.Identifier_expected); - case 14 /* JsxChildren */: - return parseErrorAtCurrentToken(Diagnostics.Identifier_expected); - case 24 /* AssertEntries */: - return parseErrorAtCurrentToken(Diagnostics.Identifier_or_string_literal_expected); - case 25 /* JSDocComment */: - return parseErrorAtCurrentToken(Diagnostics.Identifier_expected); - case 26 /* Count */: - return Debug.fail("ParsingContext.Count used as a context"); - default: - Debug.assertNever(context); - } - } - function parseDelimitedList(kind, parseElement, considerSemicolonAsDelimiter) { - var saveParsingContext = parsingContext; - parsingContext |= 1 << kind; - var list = []; - var listPos = getNodePos(); - var commaStart = -1; - while (true) { - if (isListElement2(kind, - /*inErrorRecovery*/ - false)) { - var startPos = scanner2.getTokenFullStart(); - var result = parseListElement(kind, parseElement); - if (!result) { - parsingContext = saveParsingContext; - return void 0; - } - list.push(result); - commaStart = scanner2.getTokenStart(); - if (parseOptional(28 /* CommaToken */)) { - continue; - } - commaStart = -1; - if (isListTerminator(kind)) { - break; - } - parseExpected(28 /* CommaToken */, getExpectedCommaDiagnostic(kind)); - if (considerSemicolonAsDelimiter && token() === 27 /* SemicolonToken */ && !scanner2.hasPrecedingLineBreak()) { - nextToken(); - } - if (startPos === scanner2.getTokenFullStart()) { - nextToken(); - } - continue; - } - if (isListTerminator(kind)) { - break; - } - if (abortParsingListOrMoveToNextToken(kind)) { - break; - } - } - parsingContext = saveParsingContext; - return createNodeArray(list, listPos, - /*end*/ - void 0, commaStart >= 0); - } - function getExpectedCommaDiagnostic(kind) { - return kind === 6 /* EnumMembers */ ? Diagnostics.An_enum_member_name_must_be_followed_by_a_or : void 0; - } - function createMissingList() { - var list = createNodeArray([], getNodePos()); - list.isMissingList = true; - return list; - } - function isMissingList(arr) { - return !!arr.isMissingList; - } - function parseBracketedList(kind, parseElement, open, close) { - if (parseExpected(open)) { - var result = parseDelimitedList(kind, parseElement); - parseExpected(close); - return result; - } - return createMissingList(); - } - function parseEntityName(allowReservedWords, diagnosticMessage) { - var pos = getNodePos(); - var entity = allowReservedWords ? parseIdentifierName(diagnosticMessage) : parseIdentifier(diagnosticMessage); - while (parseOptional(25 /* DotToken */)) { - if (token() === 30 /* LessThanToken */) { - break; - } - entity = finishNode(factory2.createQualifiedName(entity, parseRightSideOfDot(allowReservedWords, - /*allowPrivateIdentifiers*/ - false)), pos); - } - return entity; - } - function createQualifiedName(entity, name) { - return finishNode(factory2.createQualifiedName(entity, name), entity.pos); - } - function parseRightSideOfDot(allowIdentifierNames, allowPrivateIdentifiers) { - if (scanner2.hasPrecedingLineBreak() && tokenIsIdentifierOrKeyword(token())) { - var matchesPattern = lookAhead(nextTokenIsIdentifierOrKeywordOnSameLine); - if (matchesPattern) { - return createMissingNode(80 /* Identifier */, - /*reportAtCurrentPosition*/ - true, Diagnostics.Identifier_expected); - } - } - if (token() === 81 /* PrivateIdentifier */) { - var node = parsePrivateIdentifier(); - return allowPrivateIdentifiers ? node : createMissingNode(80 /* Identifier */, - /*reportAtCurrentPosition*/ - true, Diagnostics.Identifier_expected); - } - return allowIdentifierNames ? parseIdentifierName() : parseIdentifier(); - } - function parseTemplateSpans(isTaggedTemplate) { - var pos = getNodePos(); - var list = []; - var node; - do { - node = parseTemplateSpan(isTaggedTemplate); - list.push(node); - } while (node.literal.kind === 17 /* TemplateMiddle */); - return createNodeArray(list, pos); - } - function parseTemplateExpression(isTaggedTemplate) { - var pos = getNodePos(); - return finishNode(factory2.createTemplateExpression(parseTemplateHead(isTaggedTemplate), parseTemplateSpans(isTaggedTemplate)), pos); - } - function parseTemplateType() { - var pos = getNodePos(); - return finishNode(factory2.createTemplateLiteralType(parseTemplateHead( - /*isTaggedTemplate*/ - false), parseTemplateTypeSpans()), pos); - } - function parseTemplateTypeSpans() { - var pos = getNodePos(); - var list = []; - var node; - do { - node = parseTemplateTypeSpan(); - list.push(node); - } while (node.literal.kind === 17 /* TemplateMiddle */); - return createNodeArray(list, pos); - } - function parseTemplateTypeSpan() { - var pos = getNodePos(); - return finishNode(factory2.createTemplateLiteralTypeSpan(parseType(), parseLiteralOfTemplateSpan( - /*isTaggedTemplate*/ - false)), pos); - } - function parseLiteralOfTemplateSpan(isTaggedTemplate) { - if (token() === 20 /* CloseBraceToken */) { - reScanTemplateToken(isTaggedTemplate); - return parseTemplateMiddleOrTemplateTail(); - } - else { - return parseExpectedToken(18 /* TemplateTail */, Diagnostics._0_expected, tokenToString(20 /* CloseBraceToken */)); - } - } - function parseTemplateSpan(isTaggedTemplate) { - var pos = getNodePos(); - return finishNode(factory2.createTemplateSpan(allowInAnd(parseExpression), parseLiteralOfTemplateSpan(isTaggedTemplate)), pos); - } - function parseLiteralNode() { - return parseLiteralLikeNode(token()); - } - function parseTemplateHead(isTaggedTemplate) { - if (!isTaggedTemplate && scanner2.getTokenFlags() & 26656 /* IsInvalid */) { - reScanTemplateToken( - /*isTaggedTemplate*/ - false); - } - var fragment = parseLiteralLikeNode(token()); - Debug.assert(fragment.kind === 16 /* TemplateHead */, "Template head has wrong token kind"); - return fragment; - } - function parseTemplateMiddleOrTemplateTail() { - var fragment = parseLiteralLikeNode(token()); - Debug.assert(fragment.kind === 17 /* TemplateMiddle */ || fragment.kind === 18 /* TemplateTail */, "Template fragment has wrong token kind"); - return fragment; - } - function getTemplateLiteralRawText(kind) { - var isLast = kind === 15 /* NoSubstitutionTemplateLiteral */ || kind === 18 /* TemplateTail */; - var tokenText = scanner2.getTokenText(); - return tokenText.substring(1, tokenText.length - (scanner2.isUnterminated() ? 0 : isLast ? 1 : 2)); - } - function parseLiteralLikeNode(kind) { - var pos = getNodePos(); - var node = isTemplateLiteralKind(kind) ? factory2.createTemplateLiteralLikeNode(kind, scanner2.getTokenValue(), getTemplateLiteralRawText(kind), scanner2.getTokenFlags() & 7176 /* TemplateLiteralLikeFlags */) : ( - // Note that theoretically the following condition would hold true literals like 009, - // which is not octal. But because of how the scanner separates the tokens, we would - // never get a token like this. Instead, we would get 00 and 9 as two separate tokens. - // We also do not need to check for negatives because any prefix operator would be part of a - // parent unary expression. - kind === 9 /* NumericLiteral */ ? factoryCreateNumericLiteral(scanner2.getTokenValue(), scanner2.getNumericLiteralFlags()) : kind === 11 /* StringLiteral */ ? factoryCreateStringLiteral(scanner2.getTokenValue(), - /*isSingleQuote*/ - void 0, scanner2.hasExtendedUnicodeEscape()) : isLiteralKind(kind) ? factoryCreateLiteralLikeNode(kind, scanner2.getTokenValue()) : Debug.fail()); - if (scanner2.hasExtendedUnicodeEscape()) { - node.hasExtendedUnicodeEscape = true; - } - if (scanner2.isUnterminated()) { - node.isUnterminated = true; - } - nextToken(); - return finishNode(node, pos); - } - function parseEntityNameOfTypeReference() { - return parseEntityName( - /*allowReservedWords*/ - true, Diagnostics.Type_expected); - } - function parseTypeArgumentsOfTypeReference() { - if (!scanner2.hasPrecedingLineBreak() && reScanLessThanToken() === 30 /* LessThanToken */) { - return parseBracketedList(20 /* TypeArguments */, parseType, 30 /* LessThanToken */, 32 /* GreaterThanToken */); - } - } - function parseTypeReference() { - var pos = getNodePos(); - return finishNode(factory2.createTypeReferenceNode(parseEntityNameOfTypeReference(), parseTypeArgumentsOfTypeReference()), pos); - } - function typeHasArrowFunctionBlockingParseError(node) { - switch (node.kind) { - case 183 /* TypeReference */: - return nodeIsMissing(node.typeName); - case 184 /* FunctionType */: - case 185 /* ConstructorType */: { - var parameters = node.parameters, type = node.type; - return isMissingList(parameters) || typeHasArrowFunctionBlockingParseError(type); - } - case 196 /* ParenthesizedType */: - return typeHasArrowFunctionBlockingParseError(node.type); - default: - return false; - } - } - function parseThisTypePredicate(lhs) { - nextToken(); - return finishNode(factory2.createTypePredicateNode( - /*assertsModifier*/ - void 0, lhs, parseType()), lhs.pos); - } - function parseThisTypeNode() { - var pos = getNodePos(); - nextToken(); - return finishNode(factory2.createThisTypeNode(), pos); - } - function parseJSDocAllType() { - var pos = getNodePos(); - nextToken(); - return finishNode(factory2.createJSDocAllType(), pos); - } - function parseJSDocNonNullableType() { - var pos = getNodePos(); - nextToken(); - return finishNode(factory2.createJSDocNonNullableType(parseNonArrayType(), - /*postfix*/ - false), pos); - } - function parseJSDocUnknownOrNullableType() { - var pos = getNodePos(); - nextToken(); - if (token() === 28 /* CommaToken */ || token() === 20 /* CloseBraceToken */ || token() === 22 /* CloseParenToken */ || token() === 32 /* GreaterThanToken */ || token() === 64 /* EqualsToken */ || token() === 52 /* BarToken */) { - return finishNode(factory2.createJSDocUnknownType(), pos); - } - else { - return finishNode(factory2.createJSDocNullableType(parseType(), - /*postfix*/ - false), pos); - } - } - function parseJSDocFunctionType() { - var pos = getNodePos(); - var hasJSDoc = hasPrecedingJSDocComment(); - if (lookAhead(nextTokenIsOpenParen)) { - nextToken(); - var parameters = parseParameters(4 /* Type */ | 32 /* JSDoc */); - var type = parseReturnType(59 /* ColonToken */, - /*isType*/ - false); - return withJSDoc(finishNode(factory2.createJSDocFunctionType(parameters, type), pos), hasJSDoc); - } - return finishNode(factory2.createTypeReferenceNode(parseIdentifierName(), - /*typeArguments*/ - void 0), pos); - } - function parseJSDocParameter() { - var pos = getNodePos(); - var name; - if (token() === 110 /* ThisKeyword */ || token() === 105 /* NewKeyword */) { - name = parseIdentifierName(); - parseExpected(59 /* ColonToken */); - } - return finishNode(factory2.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, - // TODO(rbuckton): JSDoc parameters don't have names (except `this`/`new`), should we manufacture an empty identifier? - name, - /*questionToken*/ - void 0, parseJSDocType(), - /*initializer*/ - void 0), pos); - } - function parseJSDocType() { - scanner2.setInJSDocType(true); - var pos = getNodePos(); - if (parseOptional(144 /* ModuleKeyword */)) { - var moduleTag = factory2.createJSDocNamepathType( - /*type*/ - void 0); - terminate: while (true) { - switch (token()) { - case 20 /* CloseBraceToken */: - case 1 /* EndOfFileToken */: - case 28 /* CommaToken */: - case 5 /* WhitespaceTrivia */: - break terminate; - default: - nextTokenJSDoc(); - } - } - scanner2.setInJSDocType(false); - return finishNode(moduleTag, pos); - } - var hasDotDotDot = parseOptional(26 /* DotDotDotToken */); - var type = parseTypeOrTypePredicate(); - scanner2.setInJSDocType(false); - if (hasDotDotDot) { - type = finishNode(factory2.createJSDocVariadicType(type), pos); - } - if (token() === 64 /* EqualsToken */) { - nextToken(); - return finishNode(factory2.createJSDocOptionalType(type), pos); - } - return type; - } - function parseTypeQuery() { - var pos = getNodePos(); - parseExpected(114 /* TypeOfKeyword */); - var entityName = parseEntityName( - /*allowReservedWords*/ - true); - var typeArguments = !scanner2.hasPrecedingLineBreak() ? tryParseTypeArguments() : void 0; - return finishNode(factory2.createTypeQueryNode(entityName, typeArguments), pos); - } - function parseTypeParameter() { - var pos = getNodePos(); - var modifiers = parseModifiers( - /*allowDecorators*/ - false, - /*permitConstAsModifier*/ - true); - var name = parseIdentifier(); - var constraint; - var expression; - if (parseOptional(96 /* ExtendsKeyword */)) { - if (isStartOfType() || !isStartOfExpression()) { - constraint = parseType(); - } - else { - expression = parseUnaryExpressionOrHigher(); - } - } - var defaultType = parseOptional(64 /* EqualsToken */) ? parseType() : void 0; - var node = factory2.createTypeParameterDeclaration(modifiers, name, constraint, defaultType); - node.expression = expression; - return finishNode(node, pos); - } - function parseTypeParameters() { - if (token() === 30 /* LessThanToken */) { - return parseBracketedList(19 /* TypeParameters */, parseTypeParameter, 30 /* LessThanToken */, 32 /* GreaterThanToken */); - } - } - function isStartOfParameter(isJSDocParameter) { - return token() === 26 /* DotDotDotToken */ || isBindingIdentifierOrPrivateIdentifierOrPattern() || isModifierKind(token()) || token() === 60 /* AtToken */ || isStartOfType( - /*inStartOfParameter*/ - !isJSDocParameter); - } - function parseNameOfParameter(modifiers) { - var name = parseIdentifierOrPattern(Diagnostics.Private_identifiers_cannot_be_used_as_parameters); - if (getFullWidth(name) === 0 && !some(modifiers) && isModifierKind(token())) { - nextToken(); - } - return name; - } - function isParameterNameStart() { - return isBindingIdentifier() || token() === 23 /* OpenBracketToken */ || token() === 19 /* OpenBraceToken */; - } - function parseParameter(inOuterAwaitContext) { - return parseParameterWorker(inOuterAwaitContext); - } - function parseParameterForSpeculation(inOuterAwaitContext) { - return parseParameterWorker(inOuterAwaitContext, - /*allowAmbiguity*/ - false); - } - function parseParameterWorker(inOuterAwaitContext, allowAmbiguity) { - if (allowAmbiguity === void 0) { allowAmbiguity = true; } - var pos = getNodePos(); - var hasJSDoc = hasPrecedingJSDocComment(); - var modifiers = inOuterAwaitContext ? doInAwaitContext(function () { return parseModifiers( - /*allowDecorators*/ - true); }) : doOutsideOfAwaitContext(function () { return parseModifiers( - /*allowDecorators*/ - true); }); - if (token() === 110 /* ThisKeyword */) { - var node2 = factory2.createParameterDeclaration(modifiers, - /*dotDotDotToken*/ - void 0, createIdentifier( - /*isIdentifier*/ - true), - /*questionToken*/ - void 0, parseTypeAnnotation(), - /*initializer*/ - void 0); - var modifier = firstOrUndefined(modifiers); - if (modifier) { - parseErrorAtRange(modifier, Diagnostics.Neither_decorators_nor_modifiers_may_be_applied_to_this_parameters); - } - return withJSDoc(finishNode(node2, pos), hasJSDoc); - } - var savedTopLevel = topLevel; - topLevel = false; - var dotDotDotToken = parseOptionalToken(26 /* DotDotDotToken */); - if (!allowAmbiguity && !isParameterNameStart()) { - return void 0; - } - var node = withJSDoc(finishNode(factory2.createParameterDeclaration(modifiers, dotDotDotToken, parseNameOfParameter(modifiers), parseOptionalToken(58 /* QuestionToken */), parseTypeAnnotation(), parseInitializer()), pos), hasJSDoc); - topLevel = savedTopLevel; - return node; - } - function parseReturnType(returnToken, isType) { - if (shouldParseReturnType(returnToken, isType)) { - return allowConditionalTypesAnd(parseTypeOrTypePredicate); - } - } - function shouldParseReturnType(returnToken, isType) { - if (returnToken === 39 /* EqualsGreaterThanToken */) { - parseExpected(returnToken); - return true; - } - else if (parseOptional(59 /* ColonToken */)) { - return true; - } - else if (isType && token() === 39 /* EqualsGreaterThanToken */) { - parseErrorAtCurrentToken(Diagnostics._0_expected, tokenToString(59 /* ColonToken */)); - nextToken(); - return true; - } - return false; - } - function parseParametersWorker(flags, allowAmbiguity) { - var savedYieldContext = inYieldContext(); - var savedAwaitContext = inAwaitContext(); - setYieldContext(!!(flags & 1 /* Yield */)); - setAwaitContext(!!(flags & 2 /* Await */)); - var parameters = flags & 32 /* JSDoc */ ? parseDelimitedList(17 /* JSDocParameters */, parseJSDocParameter) : parseDelimitedList(16 /* Parameters */, function () { return allowAmbiguity ? parseParameter(savedAwaitContext) : parseParameterForSpeculation(savedAwaitContext); }); - setYieldContext(savedYieldContext); - setAwaitContext(savedAwaitContext); - return parameters; - } - function parseParameters(flags) { - if (!parseExpected(21 /* OpenParenToken */)) { - return createMissingList(); - } - var parameters = parseParametersWorker(flags, - /*allowAmbiguity*/ - true); - parseExpected(22 /* CloseParenToken */); - return parameters; - } - function parseTypeMemberSemicolon() { - if (parseOptional(28 /* CommaToken */)) { - return; - } - parseSemicolon(); - } - function parseSignatureMember(kind) { - var pos = getNodePos(); - var hasJSDoc = hasPrecedingJSDocComment(); - if (kind === 180 /* ConstructSignature */) { - parseExpected(105 /* NewKeyword */); - } - var typeParameters = parseTypeParameters(); - var parameters = parseParameters(4 /* Type */); - var type = parseReturnType(59 /* ColonToken */, - /*isType*/ - true); - parseTypeMemberSemicolon(); - var node = kind === 179 /* CallSignature */ ? factory2.createCallSignature(typeParameters, parameters, type) : factory2.createConstructSignature(typeParameters, parameters, type); - return withJSDoc(finishNode(node, pos), hasJSDoc); - } - function isIndexSignature() { - return token() === 23 /* OpenBracketToken */ && lookAhead(isUnambiguouslyIndexSignature); - } - function isUnambiguouslyIndexSignature() { - nextToken(); - if (token() === 26 /* DotDotDotToken */ || token() === 24 /* CloseBracketToken */) { - return true; - } - if (isModifierKind(token())) { - nextToken(); - if (isIdentifier2()) { - return true; - } - } - else if (!isIdentifier2()) { - return false; - } - else { - nextToken(); - } - if (token() === 59 /* ColonToken */ || token() === 28 /* CommaToken */) { - return true; - } - if (token() !== 58 /* QuestionToken */) { - return false; - } - nextToken(); - return token() === 59 /* ColonToken */ || token() === 28 /* CommaToken */ || token() === 24 /* CloseBracketToken */; - } - function parseIndexSignatureDeclaration(pos, hasJSDoc, modifiers) { - var parameters = parseBracketedList(16 /* Parameters */, function () { return parseParameter( - /*inOuterAwaitContext*/ - false); }, 23 /* OpenBracketToken */, 24 /* CloseBracketToken */); - var type = parseTypeAnnotation(); - parseTypeMemberSemicolon(); - var node = factory2.createIndexSignature(modifiers, parameters, type); - return withJSDoc(finishNode(node, pos), hasJSDoc); - } - function parsePropertyOrMethodSignature(pos, hasJSDoc, modifiers) { - var name = parsePropertyName(); - var questionToken = parseOptionalToken(58 /* QuestionToken */); - var node; - if (token() === 21 /* OpenParenToken */ || token() === 30 /* LessThanToken */) { - var typeParameters = parseTypeParameters(); - var parameters = parseParameters(4 /* Type */); - var type = parseReturnType(59 /* ColonToken */, - /*isType*/ - true); - node = factory2.createMethodSignature(modifiers, name, questionToken, typeParameters, parameters, type); - } - else { - var type = parseTypeAnnotation(); - node = factory2.createPropertySignature(modifiers, name, questionToken, type); - if (token() === 64 /* EqualsToken */) - node.initializer = parseInitializer(); - } - parseTypeMemberSemicolon(); - return withJSDoc(finishNode(node, pos), hasJSDoc); - } - function isTypeMemberStart() { - if (token() === 21 /* OpenParenToken */ || token() === 30 /* LessThanToken */ || token() === 139 /* GetKeyword */ || token() === 153 /* SetKeyword */) { - return true; - } - var idToken = false; - while (isModifierKind(token())) { - idToken = true; - nextToken(); - } - if (token() === 23 /* OpenBracketToken */) { - return true; - } - if (isLiteralPropertyName()) { - idToken = true; - nextToken(); - } - if (idToken) { - return token() === 21 /* OpenParenToken */ || token() === 30 /* LessThanToken */ || token() === 58 /* QuestionToken */ || token() === 59 /* ColonToken */ || token() === 28 /* CommaToken */ || canParseSemicolon(); - } - return false; - } - function parseTypeMember() { - if (token() === 21 /* OpenParenToken */ || token() === 30 /* LessThanToken */) { - return parseSignatureMember(179 /* CallSignature */); - } - if (token() === 105 /* NewKeyword */ && lookAhead(nextTokenIsOpenParenOrLessThan)) { - return parseSignatureMember(180 /* ConstructSignature */); - } - var pos = getNodePos(); - var hasJSDoc = hasPrecedingJSDocComment(); - var modifiers = parseModifiers( - /*allowDecorators*/ - false); - if (parseContextualModifier(139 /* GetKeyword */)) { - return parseAccessorDeclaration(pos, hasJSDoc, modifiers, 177 /* GetAccessor */, 4 /* Type */); - } - if (parseContextualModifier(153 /* SetKeyword */)) { - return parseAccessorDeclaration(pos, hasJSDoc, modifiers, 178 /* SetAccessor */, 4 /* Type */); - } - if (isIndexSignature()) { - return parseIndexSignatureDeclaration(pos, hasJSDoc, modifiers); - } - return parsePropertyOrMethodSignature(pos, hasJSDoc, modifiers); - } - function nextTokenIsOpenParenOrLessThan() { - nextToken(); - return token() === 21 /* OpenParenToken */ || token() === 30 /* LessThanToken */; - } - function nextTokenIsDot() { - return nextToken() === 25 /* DotToken */; - } - function nextTokenIsOpenParenOrLessThanOrDot() { - switch (nextToken()) { - case 21 /* OpenParenToken */: - case 30 /* LessThanToken */: - case 25 /* DotToken */: - return true; - } - return false; - } - function parseTypeLiteral() { - var pos = getNodePos(); - return finishNode(factory2.createTypeLiteralNode(parseObjectTypeMembers()), pos); - } - function parseObjectTypeMembers() { - var members; - if (parseExpected(19 /* OpenBraceToken */)) { - members = parseList(4 /* TypeMembers */, parseTypeMember); - parseExpected(20 /* CloseBraceToken */); - } - else { - members = createMissingList(); - } - return members; - } - function isStartOfMappedType() { - nextToken(); - if (token() === 40 /* PlusToken */ || token() === 41 /* MinusToken */) { - return nextToken() === 148 /* ReadonlyKeyword */; - } - if (token() === 148 /* ReadonlyKeyword */) { - nextToken(); - } - return token() === 23 /* OpenBracketToken */ && nextTokenIsIdentifier() && nextToken() === 103 /* InKeyword */; - } - function parseMappedTypeParameter() { - var pos = getNodePos(); - var name = parseIdentifierName(); - parseExpected(103 /* InKeyword */); - var type = parseType(); - return finishNode(factory2.createTypeParameterDeclaration( - /*modifiers*/ - void 0, name, type, - /*defaultType*/ - void 0), pos); - } - function parseMappedType() { - var pos = getNodePos(); - parseExpected(19 /* OpenBraceToken */); - var readonlyToken; - if (token() === 148 /* ReadonlyKeyword */ || token() === 40 /* PlusToken */ || token() === 41 /* MinusToken */) { - readonlyToken = parseTokenNode(); - if (readonlyToken.kind !== 148 /* ReadonlyKeyword */) { - parseExpected(148 /* ReadonlyKeyword */); - } - } - parseExpected(23 /* OpenBracketToken */); - var typeParameter = parseMappedTypeParameter(); - var nameType = parseOptional(130 /* AsKeyword */) ? parseType() : void 0; - parseExpected(24 /* CloseBracketToken */); - var questionToken; - if (token() === 58 /* QuestionToken */ || token() === 40 /* PlusToken */ || token() === 41 /* MinusToken */) { - questionToken = parseTokenNode(); - if (questionToken.kind !== 58 /* QuestionToken */) { - parseExpected(58 /* QuestionToken */); - } - } - var type = parseTypeAnnotation(); - parseSemicolon(); - var members = parseList(4 /* TypeMembers */, parseTypeMember); - parseExpected(20 /* CloseBraceToken */); - return finishNode(factory2.createMappedTypeNode(readonlyToken, typeParameter, nameType, questionToken, type, members), pos); - } - function parseTupleElementType() { - var pos = getNodePos(); - if (parseOptional(26 /* DotDotDotToken */)) { - return finishNode(factory2.createRestTypeNode(parseType()), pos); - } - var type = parseType(); - if (isJSDocNullableType(type) && type.pos === type.type.pos) { - var node = factory2.createOptionalTypeNode(type.type); - setTextRange(node, type); - node.flags = type.flags; - return node; - } - return type; - } - function isNextTokenColonOrQuestionColon() { - return nextToken() === 59 /* ColonToken */ || token() === 58 /* QuestionToken */ && nextToken() === 59 /* ColonToken */; - } - function isTupleElementName() { - if (token() === 26 /* DotDotDotToken */) { - return tokenIsIdentifierOrKeyword(nextToken()) && isNextTokenColonOrQuestionColon(); - } - return tokenIsIdentifierOrKeyword(token()) && isNextTokenColonOrQuestionColon(); - } - function parseTupleElementNameOrTupleElementType() { - if (lookAhead(isTupleElementName)) { - var pos = getNodePos(); - var hasJSDoc = hasPrecedingJSDocComment(); - var dotDotDotToken = parseOptionalToken(26 /* DotDotDotToken */); - var name_11 = parseIdentifierName(); - var questionToken = parseOptionalToken(58 /* QuestionToken */); - parseExpected(59 /* ColonToken */); - var type = parseTupleElementType(); - var node = factory2.createNamedTupleMember(dotDotDotToken, name_11, questionToken, type); - return withJSDoc(finishNode(node, pos), hasJSDoc); - } - return parseTupleElementType(); - } - function parseTupleType() { - var pos = getNodePos(); - return finishNode(factory2.createTupleTypeNode(parseBracketedList(21 /* TupleElementTypes */, parseTupleElementNameOrTupleElementType, 23 /* OpenBracketToken */, 24 /* CloseBracketToken */)), pos); - } - function parseParenthesizedType() { - var pos = getNodePos(); - parseExpected(21 /* OpenParenToken */); - var type = parseType(); - parseExpected(22 /* CloseParenToken */); - return finishNode(factory2.createParenthesizedType(type), pos); - } - function parseModifiersForConstructorType() { - var modifiers; - if (token() === 128 /* AbstractKeyword */) { - var pos = getNodePos(); - nextToken(); - var modifier = finishNode(factoryCreateToken(128 /* AbstractKeyword */), pos); - modifiers = createNodeArray([modifier], pos); - } - return modifiers; - } - function parseFunctionOrConstructorType() { - var pos = getNodePos(); - var hasJSDoc = hasPrecedingJSDocComment(); - var modifiers = parseModifiersForConstructorType(); - var isConstructorType = parseOptional(105 /* NewKeyword */); - Debug.assert(!modifiers || isConstructorType, "Per isStartOfFunctionOrConstructorType, a function type cannot have modifiers."); - var typeParameters = parseTypeParameters(); - var parameters = parseParameters(4 /* Type */); - var type = parseReturnType(39 /* EqualsGreaterThanToken */, - /*isType*/ - false); - var node = isConstructorType ? factory2.createConstructorTypeNode(modifiers, typeParameters, parameters, type) : factory2.createFunctionTypeNode(typeParameters, parameters, type); - return withJSDoc(finishNode(node, pos), hasJSDoc); - } - function parseKeywordAndNoDot() { - var node = parseTokenNode(); - return token() === 25 /* DotToken */ ? void 0 : node; - } - function parseLiteralTypeNode(negative) { - var pos = getNodePos(); - if (negative) { - nextToken(); - } - var expression = token() === 112 /* TrueKeyword */ || token() === 97 /* FalseKeyword */ || token() === 106 /* NullKeyword */ ? parseTokenNode() : parseLiteralLikeNode(token()); - if (negative) { - expression = finishNode(factory2.createPrefixUnaryExpression(41 /* MinusToken */, expression), pos); - } - return finishNode(factory2.createLiteralTypeNode(expression), pos); - } - function isStartOfTypeOfImportType() { - nextToken(); - return token() === 102 /* ImportKeyword */; - } - function parseImportTypeAssertions() { - var pos = getNodePos(); - var openBracePosition = scanner2.getTokenStart(); - parseExpected(19 /* OpenBraceToken */); - var multiLine = scanner2.hasPrecedingLineBreak(); - parseExpected(132 /* AssertKeyword */); - parseExpected(59 /* ColonToken */); - var clause = parseAssertClause( - /*skipAssertKeyword*/ - true); - if (!parseExpected(20 /* CloseBraceToken */)) { - var lastError = lastOrUndefined(parseDiagnostics); - if (lastError && lastError.code === Diagnostics._0_expected.code) { - addRelatedInfo(lastError, createDetachedDiagnostic(fileName, openBracePosition, 1, Diagnostics.The_parser_expected_to_find_a_1_to_match_the_0_token_here, "{", "}")); - } - } - return finishNode(factory2.createImportTypeAssertionContainer(clause, multiLine), pos); - } - function parseImportType() { - sourceFlags |= 4194304 /* PossiblyContainsDynamicImport */; - var pos = getNodePos(); - var isTypeOf = parseOptional(114 /* TypeOfKeyword */); - parseExpected(102 /* ImportKeyword */); - parseExpected(21 /* OpenParenToken */); - var type = parseType(); - var assertions; - if (parseOptional(28 /* CommaToken */)) { - assertions = parseImportTypeAssertions(); - } - parseExpected(22 /* CloseParenToken */); - var qualifier = parseOptional(25 /* DotToken */) ? parseEntityNameOfTypeReference() : void 0; - var typeArguments = parseTypeArgumentsOfTypeReference(); - return finishNode(factory2.createImportTypeNode(type, assertions, qualifier, typeArguments, isTypeOf), pos); - } - function nextTokenIsNumericOrBigIntLiteral() { - nextToken(); - return token() === 9 /* NumericLiteral */ || token() === 10 /* BigIntLiteral */; - } - function parseNonArrayType() { - switch (token()) { - case 133 /* AnyKeyword */: - case 159 /* UnknownKeyword */: - case 154 /* StringKeyword */: - case 150 /* NumberKeyword */: - case 163 /* BigIntKeyword */: - case 155 /* SymbolKeyword */: - case 136 /* BooleanKeyword */: - case 157 /* UndefinedKeyword */: - case 146 /* NeverKeyword */: - case 151 /* ObjectKeyword */: - return tryParse(parseKeywordAndNoDot) || parseTypeReference(); - case 67 /* AsteriskEqualsToken */: - scanner2.reScanAsteriskEqualsToken(); - case 42 /* AsteriskToken */: - return parseJSDocAllType(); - case 61 /* QuestionQuestionToken */: - scanner2.reScanQuestionToken(); - case 58 /* QuestionToken */: - return parseJSDocUnknownOrNullableType(); - case 100 /* FunctionKeyword */: - return parseJSDocFunctionType(); - case 54 /* ExclamationToken */: - return parseJSDocNonNullableType(); - case 15 /* NoSubstitutionTemplateLiteral */: - case 11 /* StringLiteral */: - case 9 /* NumericLiteral */: - case 10 /* BigIntLiteral */: - case 112 /* TrueKeyword */: - case 97 /* FalseKeyword */: - case 106 /* NullKeyword */: - return parseLiteralTypeNode(); - case 41 /* MinusToken */: - return lookAhead(nextTokenIsNumericOrBigIntLiteral) ? parseLiteralTypeNode( - /*negative*/ - true) : parseTypeReference(); - case 116 /* VoidKeyword */: - return parseTokenNode(); - case 110 /* ThisKeyword */: { - var thisKeyword = parseThisTypeNode(); - if (token() === 142 /* IsKeyword */ && !scanner2.hasPrecedingLineBreak()) { - return parseThisTypePredicate(thisKeyword); - } - else { - return thisKeyword; - } - } - case 114 /* TypeOfKeyword */: - return lookAhead(isStartOfTypeOfImportType) ? parseImportType() : parseTypeQuery(); - case 19 /* OpenBraceToken */: - return lookAhead(isStartOfMappedType) ? parseMappedType() : parseTypeLiteral(); - case 23 /* OpenBracketToken */: - return parseTupleType(); - case 21 /* OpenParenToken */: - return parseParenthesizedType(); - case 102 /* ImportKeyword */: - return parseImportType(); - case 131 /* AssertsKeyword */: - return lookAhead(nextTokenIsIdentifierOrKeywordOnSameLine) ? parseAssertsTypePredicate() : parseTypeReference(); - case 16 /* TemplateHead */: - return parseTemplateType(); - default: - return parseTypeReference(); - } - } - function isStartOfType(inStartOfParameter) { - switch (token()) { - case 133 /* AnyKeyword */: - case 159 /* UnknownKeyword */: - case 154 /* StringKeyword */: - case 150 /* NumberKeyword */: - case 163 /* BigIntKeyword */: - case 136 /* BooleanKeyword */: - case 148 /* ReadonlyKeyword */: - case 155 /* SymbolKeyword */: - case 158 /* UniqueKeyword */: - case 116 /* VoidKeyword */: - case 157 /* UndefinedKeyword */: - case 106 /* NullKeyword */: - case 110 /* ThisKeyword */: - case 114 /* TypeOfKeyword */: - case 146 /* NeverKeyword */: - case 19 /* OpenBraceToken */: - case 23 /* OpenBracketToken */: - case 30 /* LessThanToken */: - case 52 /* BarToken */: - case 51 /* AmpersandToken */: - case 105 /* NewKeyword */: - case 11 /* StringLiteral */: - case 9 /* NumericLiteral */: - case 10 /* BigIntLiteral */: - case 112 /* TrueKeyword */: - case 97 /* FalseKeyword */: - case 151 /* ObjectKeyword */: - case 42 /* AsteriskToken */: - case 58 /* QuestionToken */: - case 54 /* ExclamationToken */: - case 26 /* DotDotDotToken */: - case 140 /* InferKeyword */: - case 102 /* ImportKeyword */: - case 131 /* AssertsKeyword */: - case 15 /* NoSubstitutionTemplateLiteral */: - case 16 /* TemplateHead */: - return true; - case 100 /* FunctionKeyword */: - return !inStartOfParameter; - case 41 /* MinusToken */: - return !inStartOfParameter && lookAhead(nextTokenIsNumericOrBigIntLiteral); - case 21 /* OpenParenToken */: - return !inStartOfParameter && lookAhead(isStartOfParenthesizedOrFunctionType); - default: - return isIdentifier2(); - } - } - function isStartOfParenthesizedOrFunctionType() { - nextToken(); - return token() === 22 /* CloseParenToken */ || isStartOfParameter( - /*isJSDocParameter*/ - false) || isStartOfType(); - } - function parsePostfixTypeOrHigher() { - var pos = getNodePos(); - var type = parseNonArrayType(); - while (!scanner2.hasPrecedingLineBreak()) { - switch (token()) { - case 54 /* ExclamationToken */: - nextToken(); - type = finishNode(factory2.createJSDocNonNullableType(type, - /*postfix*/ - true), pos); - break; - case 58 /* QuestionToken */: - if (lookAhead(nextTokenIsStartOfType)) { - return type; - } - nextToken(); - type = finishNode(factory2.createJSDocNullableType(type, - /*postfix*/ - true), pos); - break; - case 23 /* OpenBracketToken */: - parseExpected(23 /* OpenBracketToken */); - if (isStartOfType()) { - var indexType = parseType(); - parseExpected(24 /* CloseBracketToken */); - type = finishNode(factory2.createIndexedAccessTypeNode(type, indexType), pos); - } - else { - parseExpected(24 /* CloseBracketToken */); - type = finishNode(factory2.createArrayTypeNode(type), pos); - } - break; - default: - return type; - } - } - return type; - } - function parseTypeOperator(operator) { - var pos = getNodePos(); - parseExpected(operator); - return finishNode(factory2.createTypeOperatorNode(operator, parseTypeOperatorOrHigher()), pos); - } - function tryParseConstraintOfInferType() { - if (parseOptional(96 /* ExtendsKeyword */)) { - var constraint = disallowConditionalTypesAnd(parseType); - if (inDisallowConditionalTypesContext() || token() !== 58 /* QuestionToken */) { - return constraint; - } - } - } - function parseTypeParameterOfInferType() { - var pos = getNodePos(); - var name = parseIdentifier(); - var constraint = tryParse(tryParseConstraintOfInferType); - var node = factory2.createTypeParameterDeclaration( - /*modifiers*/ - void 0, name, constraint); - return finishNode(node, pos); - } - function parseInferType() { - var pos = getNodePos(); - parseExpected(140 /* InferKeyword */); - return finishNode(factory2.createInferTypeNode(parseTypeParameterOfInferType()), pos); - } - function parseTypeOperatorOrHigher() { - var operator = token(); - switch (operator) { - case 143 /* KeyOfKeyword */: - case 158 /* UniqueKeyword */: - case 148 /* ReadonlyKeyword */: - return parseTypeOperator(operator); - case 140 /* InferKeyword */: - return parseInferType(); - } - return allowConditionalTypesAnd(parsePostfixTypeOrHigher); - } - function parseFunctionOrConstructorTypeToError(isInUnionType) { - if (isStartOfFunctionTypeOrConstructorType()) { - var type = parseFunctionOrConstructorType(); - var diagnostic = void 0; - if (isFunctionTypeNode(type)) { - diagnostic = isInUnionType ? Diagnostics.Function_type_notation_must_be_parenthesized_when_used_in_a_union_type : Diagnostics.Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type; - } - else { - diagnostic = isInUnionType ? Diagnostics.Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type : Diagnostics.Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type; - } - parseErrorAtRange(type, diagnostic); - return type; - } - return void 0; - } - function parseUnionOrIntersectionType(operator, parseConstituentType, createTypeNode) { - var pos = getNodePos(); - var isUnionType = operator === 52 /* BarToken */; - var hasLeadingOperator = parseOptional(operator); - var type = hasLeadingOperator && parseFunctionOrConstructorTypeToError(isUnionType) || parseConstituentType(); - if (token() === operator || hasLeadingOperator) { - var types = [type]; - while (parseOptional(operator)) { - types.push(parseFunctionOrConstructorTypeToError(isUnionType) || parseConstituentType()); - } - type = finishNode(createTypeNode(createNodeArray(types, pos)), pos); - } - return type; - } - function parseIntersectionTypeOrHigher() { - return parseUnionOrIntersectionType(51 /* AmpersandToken */, parseTypeOperatorOrHigher, factory2.createIntersectionTypeNode); - } - function parseUnionTypeOrHigher() { - return parseUnionOrIntersectionType(52 /* BarToken */, parseIntersectionTypeOrHigher, factory2.createUnionTypeNode); - } - function nextTokenIsNewKeyword() { - nextToken(); - return token() === 105 /* NewKeyword */; - } - function isStartOfFunctionTypeOrConstructorType() { - if (token() === 30 /* LessThanToken */) { - return true; - } - if (token() === 21 /* OpenParenToken */ && lookAhead(isUnambiguouslyStartOfFunctionType)) { - return true; - } - return token() === 105 /* NewKeyword */ || token() === 128 /* AbstractKeyword */ && lookAhead(nextTokenIsNewKeyword); - } - function skipParameterStart() { - if (isModifierKind(token())) { - parseModifiers( - /*allowDecorators*/ - false); - } - if (isIdentifier2() || token() === 110 /* ThisKeyword */) { - nextToken(); - return true; - } - if (token() === 23 /* OpenBracketToken */ || token() === 19 /* OpenBraceToken */) { - var previousErrorCount = parseDiagnostics.length; - parseIdentifierOrPattern(); - return previousErrorCount === parseDiagnostics.length; - } - return false; - } - function isUnambiguouslyStartOfFunctionType() { - nextToken(); - if (token() === 22 /* CloseParenToken */ || token() === 26 /* DotDotDotToken */) { - return true; - } - if (skipParameterStart()) { - if (token() === 59 /* ColonToken */ || token() === 28 /* CommaToken */ || token() === 58 /* QuestionToken */ || token() === 64 /* EqualsToken */) { - return true; - } - if (token() === 22 /* CloseParenToken */) { - nextToken(); - if (token() === 39 /* EqualsGreaterThanToken */) { - return true; - } - } - } - return false; - } - function parseTypeOrTypePredicate() { - var pos = getNodePos(); - var typePredicateVariable = isIdentifier2() && tryParse(parseTypePredicatePrefix); - var type = parseType(); - if (typePredicateVariable) { - return finishNode(factory2.createTypePredicateNode( - /*assertsModifier*/ - void 0, typePredicateVariable, type), pos); - } - else { - return type; - } - } - function parseTypePredicatePrefix() { - var id = parseIdentifier(); - if (token() === 142 /* IsKeyword */ && !scanner2.hasPrecedingLineBreak()) { - nextToken(); - return id; - } - } - function parseAssertsTypePredicate() { - var pos = getNodePos(); - var assertsModifier = parseExpectedToken(131 /* AssertsKeyword */); - var parameterName = token() === 110 /* ThisKeyword */ ? parseThisTypeNode() : parseIdentifier(); - var type = parseOptional(142 /* IsKeyword */) ? parseType() : void 0; - return finishNode(factory2.createTypePredicateNode(assertsModifier, parameterName, type), pos); - } - function parseType() { - if (contextFlags & 81920 /* TypeExcludesFlags */) { - return doOutsideOfContext(81920 /* TypeExcludesFlags */, parseType); - } - if (isStartOfFunctionTypeOrConstructorType()) { - return parseFunctionOrConstructorType(); - } - var pos = getNodePos(); - var type = parseUnionTypeOrHigher(); - if (!inDisallowConditionalTypesContext() && !scanner2.hasPrecedingLineBreak() && parseOptional(96 /* ExtendsKeyword */)) { - var extendsType = disallowConditionalTypesAnd(parseType); - parseExpected(58 /* QuestionToken */); - var trueType = allowConditionalTypesAnd(parseType); - parseExpected(59 /* ColonToken */); - var falseType = allowConditionalTypesAnd(parseType); - return finishNode(factory2.createConditionalTypeNode(type, extendsType, trueType, falseType), pos); - } - return type; - } - function parseTypeAnnotation() { - return parseOptional(59 /* ColonToken */) ? parseType() : void 0; - } - function isStartOfLeftHandSideExpression() { - switch (token()) { - case 110 /* ThisKeyword */: - case 108 /* SuperKeyword */: - case 106 /* NullKeyword */: - case 112 /* TrueKeyword */: - case 97 /* FalseKeyword */: - case 9 /* NumericLiteral */: - case 10 /* BigIntLiteral */: - case 11 /* StringLiteral */: - case 15 /* NoSubstitutionTemplateLiteral */: - case 16 /* TemplateHead */: - case 21 /* OpenParenToken */: - case 23 /* OpenBracketToken */: - case 19 /* OpenBraceToken */: - case 100 /* FunctionKeyword */: - case 86 /* ClassKeyword */: - case 105 /* NewKeyword */: - case 44 /* SlashToken */: - case 69 /* SlashEqualsToken */: - case 80 /* Identifier */: - return true; - case 102 /* ImportKeyword */: - return lookAhead(nextTokenIsOpenParenOrLessThanOrDot); - default: - return isIdentifier2(); - } - } - function isStartOfExpression() { - if (isStartOfLeftHandSideExpression()) { - return true; - } - switch (token()) { - case 40 /* PlusToken */: - case 41 /* MinusToken */: - case 55 /* TildeToken */: - case 54 /* ExclamationToken */: - case 91 /* DeleteKeyword */: - case 114 /* TypeOfKeyword */: - case 116 /* VoidKeyword */: - case 46 /* PlusPlusToken */: - case 47 /* MinusMinusToken */: - case 30 /* LessThanToken */: - case 135 /* AwaitKeyword */: - case 127 /* YieldKeyword */: - case 81 /* PrivateIdentifier */: - case 60 /* AtToken */: - return true; - default: - if (isBinaryOperator2()) { - return true; - } - return isIdentifier2(); - } - } - function isStartOfExpressionStatement() { - return token() !== 19 /* OpenBraceToken */ && token() !== 100 /* FunctionKeyword */ && token() !== 86 /* ClassKeyword */ && token() !== 60 /* AtToken */ && isStartOfExpression(); - } - function parseExpression() { - var saveDecoratorContext = inDecoratorContext(); - if (saveDecoratorContext) { - setDecoratorContext( - /*val*/ - false); - } - var pos = getNodePos(); - var expr = parseAssignmentExpressionOrHigher( - /*allowReturnTypeInArrowFunction*/ - true); - var operatorToken; - while (operatorToken = parseOptionalToken(28 /* CommaToken */)) { - expr = makeBinaryExpression(expr, operatorToken, parseAssignmentExpressionOrHigher( - /*allowReturnTypeInArrowFunction*/ - true), pos); - } - if (saveDecoratorContext) { - setDecoratorContext( - /*val*/ - true); - } - return expr; - } - function parseInitializer() { - return parseOptional(64 /* EqualsToken */) ? parseAssignmentExpressionOrHigher( - /*allowReturnTypeInArrowFunction*/ - true) : void 0; - } - function parseAssignmentExpressionOrHigher(allowReturnTypeInArrowFunction) { - if (isYieldExpression2()) { - return parseYieldExpression(); - } - var arrowExpression = tryParseParenthesizedArrowFunctionExpression(allowReturnTypeInArrowFunction) || tryParseAsyncSimpleArrowFunctionExpression(allowReturnTypeInArrowFunction); - if (arrowExpression) { - return arrowExpression; - } - var pos = getNodePos(); - var hasJSDoc = hasPrecedingJSDocComment(); - var expr = parseBinaryExpressionOrHigher(0 /* Lowest */); - if (expr.kind === 80 /* Identifier */ && token() === 39 /* EqualsGreaterThanToken */) { - return parseSimpleArrowFunctionExpression(pos, expr, allowReturnTypeInArrowFunction, hasJSDoc, - /*asyncModifier*/ - void 0); - } - if (isLeftHandSideExpression(expr) && isAssignmentOperator(reScanGreaterToken())) { - return makeBinaryExpression(expr, parseTokenNode(), parseAssignmentExpressionOrHigher(allowReturnTypeInArrowFunction), pos); - } - return parseConditionalExpressionRest(expr, pos, allowReturnTypeInArrowFunction); - } - function isYieldExpression2() { - if (token() === 127 /* YieldKeyword */) { - if (inYieldContext()) { - return true; - } - return lookAhead(nextTokenIsIdentifierOrKeywordOrLiteralOnSameLine); - } - return false; - } - function nextTokenIsIdentifierOnSameLine() { - nextToken(); - return !scanner2.hasPrecedingLineBreak() && isIdentifier2(); - } - function parseYieldExpression() { - var pos = getNodePos(); - nextToken(); - if (!scanner2.hasPrecedingLineBreak() && (token() === 42 /* AsteriskToken */ || isStartOfExpression())) { - return finishNode(factory2.createYieldExpression(parseOptionalToken(42 /* AsteriskToken */), parseAssignmentExpressionOrHigher( - /*allowReturnTypeInArrowFunction*/ - true)), pos); - } - else { - return finishNode(factory2.createYieldExpression( - /*asteriskToken*/ - void 0, - /*expression*/ - void 0), pos); - } - } - function parseSimpleArrowFunctionExpression(pos, identifier, allowReturnTypeInArrowFunction, hasJSDoc, asyncModifier) { - Debug.assert(token() === 39 /* EqualsGreaterThanToken */, "parseSimpleArrowFunctionExpression should only have been called if we had a =>"); - var parameter = factory2.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, identifier, - /*questionToken*/ - void 0, - /*type*/ - void 0, - /*initializer*/ - void 0); - finishNode(parameter, identifier.pos); - var parameters = createNodeArray([parameter], parameter.pos, parameter.end); - var equalsGreaterThanToken = parseExpectedToken(39 /* EqualsGreaterThanToken */); - var body = parseArrowFunctionExpressionBody( - /*isAsync*/ - !!asyncModifier, allowReturnTypeInArrowFunction); - var node = factory2.createArrowFunction(asyncModifier, - /*typeParameters*/ - void 0, parameters, - /*type*/ - void 0, equalsGreaterThanToken, body); - return withJSDoc(finishNode(node, pos), hasJSDoc); - } - function tryParseParenthesizedArrowFunctionExpression(allowReturnTypeInArrowFunction) { - var triState = isParenthesizedArrowFunctionExpression(); - if (triState === 0 /* False */) { - return void 0; - } - return triState === 1 /* True */ ? parseParenthesizedArrowFunctionExpression( - /*allowAmbiguity*/ - true, - /*allowReturnTypeInArrowFunction*/ - true) : tryParse(function () { return parsePossibleParenthesizedArrowFunctionExpression(allowReturnTypeInArrowFunction); }); - } - function isParenthesizedArrowFunctionExpression() { - if (token() === 21 /* OpenParenToken */ || token() === 30 /* LessThanToken */ || token() === 134 /* AsyncKeyword */) { - return lookAhead(isParenthesizedArrowFunctionExpressionWorker); - } - if (token() === 39 /* EqualsGreaterThanToken */) { - return 1 /* True */; - } - return 0 /* False */; - } - function isParenthesizedArrowFunctionExpressionWorker() { - if (token() === 134 /* AsyncKeyword */) { - nextToken(); - if (scanner2.hasPrecedingLineBreak()) { - return 0 /* False */; - } - if (token() !== 21 /* OpenParenToken */ && token() !== 30 /* LessThanToken */) { - return 0 /* False */; - } - } - var first2 = token(); - var second = nextToken(); - if (first2 === 21 /* OpenParenToken */) { - if (second === 22 /* CloseParenToken */) { - var third = nextToken(); - switch (third) { - case 39 /* EqualsGreaterThanToken */: - case 59 /* ColonToken */: - case 19 /* OpenBraceToken */: - return 1 /* True */; - default: - return 0 /* False */; - } - } - if (second === 23 /* OpenBracketToken */ || second === 19 /* OpenBraceToken */) { - return 2 /* Unknown */; - } - if (second === 26 /* DotDotDotToken */) { - return 1 /* True */; - } - if (isModifierKind(second) && second !== 134 /* AsyncKeyword */ && lookAhead(nextTokenIsIdentifier)) { - if (nextToken() === 130 /* AsKeyword */) { - return 0 /* False */; - } - return 1 /* True */; - } - if (!isIdentifier2() && second !== 110 /* ThisKeyword */) { - return 0 /* False */; - } - switch (nextToken()) { - case 59 /* ColonToken */: - return 1 /* True */; - case 58 /* QuestionToken */: - nextToken(); - if (token() === 59 /* ColonToken */ || token() === 28 /* CommaToken */ || token() === 64 /* EqualsToken */ || token() === 22 /* CloseParenToken */) { - return 1 /* True */; - } - return 0 /* False */; - case 28 /* CommaToken */: - case 64 /* EqualsToken */: - case 22 /* CloseParenToken */: - return 2 /* Unknown */; - } - return 0 /* False */; - } - else { - Debug.assert(first2 === 30 /* LessThanToken */); - if (!isIdentifier2() && token() !== 87 /* ConstKeyword */) { - return 0 /* False */; - } - if (languageVariant === 1 /* JSX */) { - var isArrowFunctionInJsx = lookAhead(function () { - parseOptional(87 /* ConstKeyword */); - var third = nextToken(); - if (third === 96 /* ExtendsKeyword */) { - var fourth = nextToken(); - switch (fourth) { - case 64 /* EqualsToken */: - case 32 /* GreaterThanToken */: - case 44 /* SlashToken */: - return false; - default: - return true; - } - } - else if (third === 28 /* CommaToken */ || third === 64 /* EqualsToken */) { - return true; - } - return false; - }); - if (isArrowFunctionInJsx) { - return 1 /* True */; - } - return 0 /* False */; - } - return 2 /* Unknown */; - } - } - function parsePossibleParenthesizedArrowFunctionExpression(allowReturnTypeInArrowFunction) { - var tokenPos = scanner2.getTokenStart(); - if (notParenthesizedArrow == null ? void 0 : notParenthesizedArrow.has(tokenPos)) { - return void 0; - } - var result = parseParenthesizedArrowFunctionExpression( - /*allowAmbiguity*/ - false, allowReturnTypeInArrowFunction); - if (!result) { - (notParenthesizedArrow || (notParenthesizedArrow = /* @__PURE__ */ new Set())).add(tokenPos); - } - return result; - } - function tryParseAsyncSimpleArrowFunctionExpression(allowReturnTypeInArrowFunction) { - if (token() === 134 /* AsyncKeyword */) { - if (lookAhead(isUnParenthesizedAsyncArrowFunctionWorker) === 1 /* True */) { - var pos = getNodePos(); - var hasJSDoc = hasPrecedingJSDocComment(); - var asyncModifier = parseModifiersForArrowFunction(); - var expr = parseBinaryExpressionOrHigher(0 /* Lowest */); - return parseSimpleArrowFunctionExpression(pos, expr, allowReturnTypeInArrowFunction, hasJSDoc, asyncModifier); - } - } - return void 0; - } - function isUnParenthesizedAsyncArrowFunctionWorker() { - if (token() === 134 /* AsyncKeyword */) { - nextToken(); - if (scanner2.hasPrecedingLineBreak() || token() === 39 /* EqualsGreaterThanToken */) { - return 0 /* False */; - } - var expr = parseBinaryExpressionOrHigher(0 /* Lowest */); - if (!scanner2.hasPrecedingLineBreak() && expr.kind === 80 /* Identifier */ && token() === 39 /* EqualsGreaterThanToken */) { - return 1 /* True */; - } - } - return 0 /* False */; - } - function parseParenthesizedArrowFunctionExpression(allowAmbiguity, allowReturnTypeInArrowFunction) { - var pos = getNodePos(); - var hasJSDoc = hasPrecedingJSDocComment(); - var modifiers = parseModifiersForArrowFunction(); - var isAsync = some(modifiers, isAsyncModifier) ? 2 /* Await */ : 0 /* None */; - var typeParameters = parseTypeParameters(); - var parameters; - if (!parseExpected(21 /* OpenParenToken */)) { - if (!allowAmbiguity) { - return void 0; - } - parameters = createMissingList(); - } - else { - if (!allowAmbiguity) { - var maybeParameters = parseParametersWorker(isAsync, allowAmbiguity); - if (!maybeParameters) { - return void 0; - } - parameters = maybeParameters; - } - else { - parameters = parseParametersWorker(isAsync, allowAmbiguity); - } - if (!parseExpected(22 /* CloseParenToken */) && !allowAmbiguity) { - return void 0; - } - } - var hasReturnColon = token() === 59 /* ColonToken */; - var type = parseReturnType(59 /* ColonToken */, - /*isType*/ - false); - if (type && !allowAmbiguity && typeHasArrowFunctionBlockingParseError(type)) { - return void 0; - } - var unwrappedType = type; - while ((unwrappedType == null ? void 0 : unwrappedType.kind) === 196 /* ParenthesizedType */) { - unwrappedType = unwrappedType.type; - } - var hasJSDocFunctionType = unwrappedType && isJSDocFunctionType(unwrappedType); - if (!allowAmbiguity && token() !== 39 /* EqualsGreaterThanToken */ && (hasJSDocFunctionType || token() !== 19 /* OpenBraceToken */)) { - return void 0; - } - var lastToken = token(); - var equalsGreaterThanToken = parseExpectedToken(39 /* EqualsGreaterThanToken */); - var body = lastToken === 39 /* EqualsGreaterThanToken */ || lastToken === 19 /* OpenBraceToken */ ? parseArrowFunctionExpressionBody(some(modifiers, isAsyncModifier), allowReturnTypeInArrowFunction) : parseIdentifier(); - if (!allowReturnTypeInArrowFunction && hasReturnColon) { - if (token() !== 59 /* ColonToken */) { - return void 0; - } - } - var node = factory2.createArrowFunction(modifiers, typeParameters, parameters, type, equalsGreaterThanToken, body); - return withJSDoc(finishNode(node, pos), hasJSDoc); - } - function parseArrowFunctionExpressionBody(isAsync, allowReturnTypeInArrowFunction) { - if (token() === 19 /* OpenBraceToken */) { - return parseFunctionBlock(isAsync ? 2 /* Await */ : 0 /* None */); - } - if (token() !== 27 /* SemicolonToken */ && token() !== 100 /* FunctionKeyword */ && token() !== 86 /* ClassKeyword */ && isStartOfStatement() && !isStartOfExpressionStatement()) { - return parseFunctionBlock(16 /* IgnoreMissingOpenBrace */ | (isAsync ? 2 /* Await */ : 0 /* None */)); - } - var savedTopLevel = topLevel; - topLevel = false; - var node = isAsync ? doInAwaitContext(function () { return parseAssignmentExpressionOrHigher(allowReturnTypeInArrowFunction); }) : doOutsideOfAwaitContext(function () { return parseAssignmentExpressionOrHigher(allowReturnTypeInArrowFunction); }); - topLevel = savedTopLevel; - return node; - } - function parseConditionalExpressionRest(leftOperand, pos, allowReturnTypeInArrowFunction) { - var questionToken = parseOptionalToken(58 /* QuestionToken */); - if (!questionToken) { - return leftOperand; - } - var colonToken; - return finishNode(factory2.createConditionalExpression(leftOperand, questionToken, doOutsideOfContext(disallowInAndDecoratorContext, function () { return parseAssignmentExpressionOrHigher( - /*allowReturnTypeInArrowFunction*/ - false); }), colonToken = parseExpectedToken(59 /* ColonToken */), nodeIsPresent(colonToken) ? parseAssignmentExpressionOrHigher(allowReturnTypeInArrowFunction) : createMissingNode(80 /* Identifier */, - /*reportAtCurrentPosition*/ - false, Diagnostics._0_expected, tokenToString(59 /* ColonToken */))), pos); - } - function parseBinaryExpressionOrHigher(precedence) { - var pos = getNodePos(); - var leftOperand = parseUnaryExpressionOrHigher(); - return parseBinaryExpressionRest(precedence, leftOperand, pos); - } - function isInOrOfKeyword(t) { - return t === 103 /* InKeyword */ || t === 165 /* OfKeyword */; - } - function parseBinaryExpressionRest(precedence, leftOperand, pos) { - while (true) { - reScanGreaterToken(); - var newPrecedence = getBinaryOperatorPrecedence(token()); - var consumeCurrentOperator = token() === 43 /* AsteriskAsteriskToken */ ? newPrecedence >= precedence : newPrecedence > precedence; - if (!consumeCurrentOperator) { - break; - } - if (token() === 103 /* InKeyword */ && inDisallowInContext()) { - break; - } - if (token() === 130 /* AsKeyword */ || token() === 152 /* SatisfiesKeyword */) { - if (scanner2.hasPrecedingLineBreak()) { - break; - } - else { - var keywordKind = token(); - nextToken(); - leftOperand = keywordKind === 152 /* SatisfiesKeyword */ ? makeSatisfiesExpression(leftOperand, parseType()) : makeAsExpression(leftOperand, parseType()); - } - } - else { - leftOperand = makeBinaryExpression(leftOperand, parseTokenNode(), parseBinaryExpressionOrHigher(newPrecedence), pos); - } - } - return leftOperand; - } - function isBinaryOperator2() { - if (inDisallowInContext() && token() === 103 /* InKeyword */) { - return false; - } - return getBinaryOperatorPrecedence(token()) > 0; - } - function makeSatisfiesExpression(left, right) { - return finishNode(factory2.createSatisfiesExpression(left, right), left.pos); - } - function makeBinaryExpression(left, operatorToken, right, pos) { - return finishNode(factory2.createBinaryExpression(left, operatorToken, right), pos); - } - function makeAsExpression(left, right) { - return finishNode(factory2.createAsExpression(left, right), left.pos); - } - function parsePrefixUnaryExpression() { - var pos = getNodePos(); - return finishNode(factory2.createPrefixUnaryExpression(token(), nextTokenAnd(parseSimpleUnaryExpression)), pos); - } - function parseDeleteExpression() { - var pos = getNodePos(); - return finishNode(factory2.createDeleteExpression(nextTokenAnd(parseSimpleUnaryExpression)), pos); - } - function parseTypeOfExpression() { - var pos = getNodePos(); - return finishNode(factory2.createTypeOfExpression(nextTokenAnd(parseSimpleUnaryExpression)), pos); - } - function parseVoidExpression() { - var pos = getNodePos(); - return finishNode(factory2.createVoidExpression(nextTokenAnd(parseSimpleUnaryExpression)), pos); - } - function isAwaitExpression2() { - if (token() === 135 /* AwaitKeyword */) { - if (inAwaitContext()) { - return true; - } - return lookAhead(nextTokenIsIdentifierOrKeywordOrLiteralOnSameLine); - } - return false; - } - function parseAwaitExpression() { - var pos = getNodePos(); - return finishNode(factory2.createAwaitExpression(nextTokenAnd(parseSimpleUnaryExpression)), pos); - } - function parseUnaryExpressionOrHigher() { - if (isUpdateExpression()) { - var pos = getNodePos(); - var updateExpression = parseUpdateExpression(); - return token() === 43 /* AsteriskAsteriskToken */ ? parseBinaryExpressionRest(getBinaryOperatorPrecedence(token()), updateExpression, pos) : updateExpression; - } - var unaryOperator = token(); - var simpleUnaryExpression = parseSimpleUnaryExpression(); - if (token() === 43 /* AsteriskAsteriskToken */) { - var pos = skipTrivia(sourceText, simpleUnaryExpression.pos); - var end = simpleUnaryExpression.end; - if (simpleUnaryExpression.kind === 216 /* TypeAssertionExpression */) { - parseErrorAt(pos, end, Diagnostics.A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses); - } - else { - Debug.assert(isKeywordOrPunctuation(unaryOperator)); - parseErrorAt(pos, end, Diagnostics.An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses, tokenToString(unaryOperator)); - } - } - return simpleUnaryExpression; - } - function parseSimpleUnaryExpression() { - switch (token()) { - case 40 /* PlusToken */: - case 41 /* MinusToken */: - case 55 /* TildeToken */: - case 54 /* ExclamationToken */: - return parsePrefixUnaryExpression(); - case 91 /* DeleteKeyword */: - return parseDeleteExpression(); - case 114 /* TypeOfKeyword */: - return parseTypeOfExpression(); - case 116 /* VoidKeyword */: - return parseVoidExpression(); - case 30 /* LessThanToken */: - if (languageVariant === 1 /* JSX */) { - return parseJsxElementOrSelfClosingElementOrFragment( - /*inExpressionContext*/ - true, - /*topInvalidNodePosition*/ - void 0, - /*openingTag*/ - void 0, - /*mustBeUnary*/ - true); - } - return parseTypeAssertion(); - case 135 /* AwaitKeyword */: - if (isAwaitExpression2()) { - return parseAwaitExpression(); - } - default: - return parseUpdateExpression(); - } - } - function isUpdateExpression() { - switch (token()) { - case 40 /* PlusToken */: - case 41 /* MinusToken */: - case 55 /* TildeToken */: - case 54 /* ExclamationToken */: - case 91 /* DeleteKeyword */: - case 114 /* TypeOfKeyword */: - case 116 /* VoidKeyword */: - case 135 /* AwaitKeyword */: - return false; - case 30 /* LessThanToken */: - if (languageVariant !== 1 /* JSX */) { - return false; - } - default: - return true; - } - } - function parseUpdateExpression() { - if (token() === 46 /* PlusPlusToken */ || token() === 47 /* MinusMinusToken */) { - var pos = getNodePos(); - return finishNode(factory2.createPrefixUnaryExpression(token(), nextTokenAnd(parseLeftHandSideExpressionOrHigher)), pos); - } - else if (languageVariant === 1 /* JSX */ && token() === 30 /* LessThanToken */ && lookAhead(nextTokenIsIdentifierOrKeywordOrGreaterThan)) { - return parseJsxElementOrSelfClosingElementOrFragment( - /*inExpressionContext*/ - true); - } - var expression = parseLeftHandSideExpressionOrHigher(); - Debug.assert(isLeftHandSideExpression(expression)); - if ((token() === 46 /* PlusPlusToken */ || token() === 47 /* MinusMinusToken */) && !scanner2.hasPrecedingLineBreak()) { - var operator = token(); - nextToken(); - return finishNode(factory2.createPostfixUnaryExpression(expression, operator), expression.pos); - } - return expression; - } - function parseLeftHandSideExpressionOrHigher() { - var pos = getNodePos(); - var expression; - if (token() === 102 /* ImportKeyword */) { - if (lookAhead(nextTokenIsOpenParenOrLessThan)) { - sourceFlags |= 4194304 /* PossiblyContainsDynamicImport */; - expression = parseTokenNode(); - } - else if (lookAhead(nextTokenIsDot)) { - nextToken(); - nextToken(); - expression = finishNode(factory2.createMetaProperty(102 /* ImportKeyword */, parseIdentifierName()), pos); - sourceFlags |= 8388608 /* PossiblyContainsImportMeta */; - } - else { - expression = parseMemberExpressionOrHigher(); - } - } - else { - expression = token() === 108 /* SuperKeyword */ ? parseSuperExpression() : parseMemberExpressionOrHigher(); - } - return parseCallExpressionRest(pos, expression); - } - function parseMemberExpressionOrHigher() { - var pos = getNodePos(); - var expression = parsePrimaryExpression(); - return parseMemberExpressionRest(pos, expression, - /*allowOptionalChain*/ - true); - } - function parseSuperExpression() { - var pos = getNodePos(); - var expression = parseTokenNode(); - if (token() === 30 /* LessThanToken */) { - var startPos = getNodePos(); - var typeArguments = tryParse(parseTypeArgumentsInExpression); - if (typeArguments !== void 0) { - parseErrorAt(startPos, getNodePos(), Diagnostics.super_may_not_use_type_arguments); - if (!isTemplateStartOfTaggedTemplate()) { - expression = factory2.createExpressionWithTypeArguments(expression, typeArguments); - } - } - } - if (token() === 21 /* OpenParenToken */ || token() === 25 /* DotToken */ || token() === 23 /* OpenBracketToken */) { - return expression; - } - parseExpectedToken(25 /* DotToken */, Diagnostics.super_must_be_followed_by_an_argument_list_or_member_access); - return finishNode(factoryCreatePropertyAccessExpression(expression, parseRightSideOfDot( - /*allowIdentifierNames*/ - true, - /*allowPrivateIdentifiers*/ - true)), pos); - } - function parseJsxElementOrSelfClosingElementOrFragment(inExpressionContext, topInvalidNodePosition, openingTag, mustBeUnary) { - if (mustBeUnary === void 0) { mustBeUnary = false; } - var pos = getNodePos(); - var opening = parseJsxOpeningOrSelfClosingElementOrOpeningFragment(inExpressionContext); - var result; - if (opening.kind === 286 /* JsxOpeningElement */) { - var children = parseJsxChildren(opening); - var closingElement = void 0; - var lastChild = children[children.length - 1]; - if ((lastChild == null ? void 0 : lastChild.kind) === 284 /* JsxElement */ && !tagNamesAreEquivalent(lastChild.openingElement.tagName, lastChild.closingElement.tagName) && tagNamesAreEquivalent(opening.tagName, lastChild.closingElement.tagName)) { - var end = lastChild.children.end; - var newLast = finishNode(factory2.createJsxElement(lastChild.openingElement, lastChild.children, finishNode(factory2.createJsxClosingElement(finishNode(factoryCreateIdentifier(""), end, end)), end, end)), lastChild.openingElement.pos, end); - children = createNodeArray(__spreadArray(__spreadArray([], __read(children.slice(0, children.length - 1)), false), [newLast], false), children.pos, end); - closingElement = lastChild.closingElement; - } - else { - closingElement = parseJsxClosingElement(opening, inExpressionContext); - if (!tagNamesAreEquivalent(opening.tagName, closingElement.tagName)) { - if (openingTag && isJsxOpeningElement(openingTag) && tagNamesAreEquivalent(closingElement.tagName, openingTag.tagName)) { - parseErrorAtRange(opening.tagName, Diagnostics.JSX_element_0_has_no_corresponding_closing_tag, getTextOfNodeFromSourceText(sourceText, opening.tagName)); - } - else { - parseErrorAtRange(closingElement.tagName, Diagnostics.Expected_corresponding_JSX_closing_tag_for_0, getTextOfNodeFromSourceText(sourceText, opening.tagName)); - } - } - } - result = finishNode(factory2.createJsxElement(opening, children, closingElement), pos); - } - else if (opening.kind === 289 /* JsxOpeningFragment */) { - result = finishNode(factory2.createJsxFragment(opening, parseJsxChildren(opening), parseJsxClosingFragment(inExpressionContext)), pos); - } - else { - Debug.assert(opening.kind === 285 /* JsxSelfClosingElement */); - result = opening; - } - if (!mustBeUnary && inExpressionContext && token() === 30 /* LessThanToken */) { - var topBadPos_1 = typeof topInvalidNodePosition === "undefined" ? result.pos : topInvalidNodePosition; - var invalidElement = tryParse(function () { return parseJsxElementOrSelfClosingElementOrFragment( - /*inExpressionContext*/ - true, topBadPos_1); }); - if (invalidElement) { - var operatorToken = createMissingNode(28 /* CommaToken */, - /*reportAtCurrentPosition*/ - false); - setTextRangePosWidth(operatorToken, invalidElement.pos, 0); - parseErrorAt(skipTrivia(sourceText, topBadPos_1), invalidElement.end, Diagnostics.JSX_expressions_must_have_one_parent_element); - return finishNode(factory2.createBinaryExpression(result, operatorToken, invalidElement), pos); - } - } - return result; - } - function parseJsxText() { - var pos = getNodePos(); - var node = factory2.createJsxText(scanner2.getTokenValue(), currentToken === 13 /* JsxTextAllWhiteSpaces */); - currentToken = scanner2.scanJsxToken(); - return finishNode(node, pos); - } - function parseJsxChild(openingTag, token2) { - switch (token2) { - case 1 /* EndOfFileToken */: - if (isJsxOpeningFragment(openingTag)) { - parseErrorAtRange(openingTag, Diagnostics.JSX_fragment_has_no_corresponding_closing_tag); - } - else { - var tag = openingTag.tagName; - var start2 = Math.min(skipTrivia(sourceText, tag.pos), tag.end); - parseErrorAt(start2, tag.end, Diagnostics.JSX_element_0_has_no_corresponding_closing_tag, getTextOfNodeFromSourceText(sourceText, openingTag.tagName)); - } - return void 0; - case 31 /* LessThanSlashToken */: - case 7 /* ConflictMarkerTrivia */: - return void 0; - case 12 /* JsxText */: - case 13 /* JsxTextAllWhiteSpaces */: - return parseJsxText(); - case 19 /* OpenBraceToken */: - return parseJsxExpression( - /*inExpressionContext*/ - false); - case 30 /* LessThanToken */: - return parseJsxElementOrSelfClosingElementOrFragment( - /*inExpressionContext*/ - false, - /*topInvalidNodePosition*/ - void 0, openingTag); - default: - return Debug.assertNever(token2); - } - } - function parseJsxChildren(openingTag) { - var list = []; - var listPos = getNodePos(); - var saveParsingContext = parsingContext; - parsingContext |= 1 << 14 /* JsxChildren */; - while (true) { - var child = parseJsxChild(openingTag, currentToken = scanner2.reScanJsxToken()); - if (!child) - break; - list.push(child); - if (isJsxOpeningElement(openingTag) && (child == null ? void 0 : child.kind) === 284 /* JsxElement */ && !tagNamesAreEquivalent(child.openingElement.tagName, child.closingElement.tagName) && tagNamesAreEquivalent(openingTag.tagName, child.closingElement.tagName)) { - break; - } - } - parsingContext = saveParsingContext; - return createNodeArray(list, listPos); - } - function parseJsxAttributes() { - var pos = getNodePos(); - return finishNode(factory2.createJsxAttributes(parseList(13 /* JsxAttributes */, parseJsxAttribute)), pos); - } - function parseJsxOpeningOrSelfClosingElementOrOpeningFragment(inExpressionContext) { - var pos = getNodePos(); - parseExpected(30 /* LessThanToken */); - if (token() === 32 /* GreaterThanToken */) { - scanJsxText(); - return finishNode(factory2.createJsxOpeningFragment(), pos); - } - var tagName = parseJsxElementName(); - var typeArguments = (contextFlags & 524288 /* JavaScriptFile */) === 0 ? tryParseTypeArguments() : void 0; - var attributes = parseJsxAttributes(); - var node; - if (token() === 32 /* GreaterThanToken */) { - scanJsxText(); - node = factory2.createJsxOpeningElement(tagName, typeArguments, attributes); - } - else { - parseExpected(44 /* SlashToken */); - if (parseExpected(32 /* GreaterThanToken */, - /*diagnosticMessage*/ - void 0, - /*shouldAdvance*/ - false)) { - if (inExpressionContext) { - nextToken(); - } - else { - scanJsxText(); - } - } - node = factory2.createJsxSelfClosingElement(tagName, typeArguments, attributes); - } - return finishNode(node, pos); - } - function parseJsxElementName() { - var pos = getNodePos(); - var initialExpression = parseJsxTagName(); - if (isJsxNamespacedName(initialExpression)) { - return initialExpression; - } - var expression = initialExpression; - while (parseOptional(25 /* DotToken */)) { - expression = finishNode(factoryCreatePropertyAccessExpression(expression, parseRightSideOfDot( - /*allowIdentifierNames*/ - true, - /*allowPrivateIdentifiers*/ - false)), pos); - } - return expression; - } - function parseJsxTagName() { - var pos = getNodePos(); - scanJsxIdentifier(); - var isThis2 = token() === 110 /* ThisKeyword */; - var tagName = parseIdentifierName(); - if (parseOptional(59 /* ColonToken */)) { - scanJsxIdentifier(); - return finishNode(factory2.createJsxNamespacedName(tagName, parseIdentifierName()), pos); - } - return isThis2 ? finishNode(factory2.createToken(110 /* ThisKeyword */), pos) : tagName; - } - function parseJsxExpression(inExpressionContext) { - var pos = getNodePos(); - if (!parseExpected(19 /* OpenBraceToken */)) { - return void 0; - } - var dotDotDotToken; - var expression; - if (token() !== 20 /* CloseBraceToken */) { - dotDotDotToken = parseOptionalToken(26 /* DotDotDotToken */); - expression = parseExpression(); - } - if (inExpressionContext) { - parseExpected(20 /* CloseBraceToken */); - } - else { - if (parseExpected(20 /* CloseBraceToken */, - /*diagnosticMessage*/ - void 0, - /*shouldAdvance*/ - false)) { - scanJsxText(); - } - } - return finishNode(factory2.createJsxExpression(dotDotDotToken, expression), pos); - } - function parseJsxAttribute() { - if (token() === 19 /* OpenBraceToken */) { - return parseJsxSpreadAttribute(); - } - var pos = getNodePos(); - return finishNode(factory2.createJsxAttribute(parseJsxAttributeName(), parseJsxAttributeValue()), pos); - } - function parseJsxAttributeValue() { - if (token() === 64 /* EqualsToken */) { - if (scanJsxAttributeValue() === 11 /* StringLiteral */) { - return parseLiteralNode(); - } - if (token() === 19 /* OpenBraceToken */) { - return parseJsxExpression( - /*inExpressionContext*/ - true); - } - if (token() === 30 /* LessThanToken */) { - return parseJsxElementOrSelfClosingElementOrFragment( - /*inExpressionContext*/ - true); - } - parseErrorAtCurrentToken(Diagnostics.or_JSX_element_expected); - } - return void 0; - } - function parseJsxAttributeName() { - var pos = getNodePos(); - scanJsxIdentifier(); - var attrName = parseIdentifierName(); - if (parseOptional(59 /* ColonToken */)) { - scanJsxIdentifier(); - return finishNode(factory2.createJsxNamespacedName(attrName, parseIdentifierName()), pos); - } - return attrName; - } - function parseJsxSpreadAttribute() { - var pos = getNodePos(); - parseExpected(19 /* OpenBraceToken */); - parseExpected(26 /* DotDotDotToken */); - var expression = parseExpression(); - parseExpected(20 /* CloseBraceToken */); - return finishNode(factory2.createJsxSpreadAttribute(expression), pos); - } - function parseJsxClosingElement(open, inExpressionContext) { - var pos = getNodePos(); - parseExpected(31 /* LessThanSlashToken */); - var tagName = parseJsxElementName(); - if (parseExpected(32 /* GreaterThanToken */, - /*diagnosticMessage*/ - void 0, - /*shouldAdvance*/ - false)) { - if (inExpressionContext || !tagNamesAreEquivalent(open.tagName, tagName)) { - nextToken(); - } - else { - scanJsxText(); - } - } - return finishNode(factory2.createJsxClosingElement(tagName), pos); - } - function parseJsxClosingFragment(inExpressionContext) { - var pos = getNodePos(); - parseExpected(31 /* LessThanSlashToken */); - if (parseExpected(32 /* GreaterThanToken */, Diagnostics.Expected_corresponding_closing_tag_for_JSX_fragment, - /*shouldAdvance*/ - false)) { - if (inExpressionContext) { - nextToken(); - } - else { - scanJsxText(); - } - } - return finishNode(factory2.createJsxJsxClosingFragment(), pos); - } - function parseTypeAssertion() { - Debug.assert(languageVariant !== 1 /* JSX */, "Type assertions should never be parsed in JSX; they should be parsed as comparisons or JSX elements/fragments."); - var pos = getNodePos(); - parseExpected(30 /* LessThanToken */); - var type = parseType(); - parseExpected(32 /* GreaterThanToken */); - var expression = parseSimpleUnaryExpression(); - return finishNode(factory2.createTypeAssertion(type, expression), pos); - } - function nextTokenIsIdentifierOrKeywordOrOpenBracketOrTemplate() { - nextToken(); - return tokenIsIdentifierOrKeyword(token()) || token() === 23 /* OpenBracketToken */ || isTemplateStartOfTaggedTemplate(); - } - function isStartOfOptionalPropertyOrElementAccessChain() { - return token() === 29 /* QuestionDotToken */ && lookAhead(nextTokenIsIdentifierOrKeywordOrOpenBracketOrTemplate); - } - function tryReparseOptionalChain(node) { - if (node.flags & 64 /* OptionalChain */) { - return true; - } - if (isNonNullExpression(node)) { - var expr = node.expression; - while (isNonNullExpression(expr) && !(expr.flags & 64 /* OptionalChain */)) { - expr = expr.expression; - } - if (expr.flags & 64 /* OptionalChain */) { - while (isNonNullExpression(node)) { - node.flags |= 64 /* OptionalChain */; - node = node.expression; - } - return true; - } - } - return false; - } - function parsePropertyAccessExpressionRest(pos, expression, questionDotToken) { - var name = parseRightSideOfDot( - /*allowIdentifierNames*/ - true, - /*allowPrivateIdentifiers*/ - true); - var isOptionalChain2 = questionDotToken || tryReparseOptionalChain(expression); - var propertyAccess = isOptionalChain2 ? factoryCreatePropertyAccessChain(expression, questionDotToken, name) : factoryCreatePropertyAccessExpression(expression, name); - if (isOptionalChain2 && isPrivateIdentifier(propertyAccess.name)) { - parseErrorAtRange(propertyAccess.name, Diagnostics.An_optional_chain_cannot_contain_private_identifiers); - } - if (isExpressionWithTypeArguments(expression) && expression.typeArguments) { - var pos2 = expression.typeArguments.pos - 1; - var end = skipTrivia(sourceText, expression.typeArguments.end) + 1; - parseErrorAt(pos2, end, Diagnostics.An_instantiation_expression_cannot_be_followed_by_a_property_access); - } - return finishNode(propertyAccess, pos); - } - function parseElementAccessExpressionRest(pos, expression, questionDotToken) { - var argumentExpression; - if (token() === 24 /* CloseBracketToken */) { - argumentExpression = createMissingNode(80 /* Identifier */, - /*reportAtCurrentPosition*/ - true, Diagnostics.An_element_access_expression_should_take_an_argument); - } - else { - var argument = allowInAnd(parseExpression); - if (isStringOrNumericLiteralLike(argument)) { - argument.text = internIdentifier(argument.text); - } - argumentExpression = argument; - } - parseExpected(24 /* CloseBracketToken */); - var indexedAccess = questionDotToken || tryReparseOptionalChain(expression) ? factoryCreateElementAccessChain(expression, questionDotToken, argumentExpression) : factoryCreateElementAccessExpression(expression, argumentExpression); - return finishNode(indexedAccess, pos); - } - function parseMemberExpressionRest(pos, expression, allowOptionalChain) { - while (true) { - var questionDotToken = void 0; - var isPropertyAccess = false; - if (allowOptionalChain && isStartOfOptionalPropertyOrElementAccessChain()) { - questionDotToken = parseExpectedToken(29 /* QuestionDotToken */); - isPropertyAccess = tokenIsIdentifierOrKeyword(token()); - } - else { - isPropertyAccess = parseOptional(25 /* DotToken */); - } - if (isPropertyAccess) { - expression = parsePropertyAccessExpressionRest(pos, expression, questionDotToken); - continue; - } - if ((questionDotToken || !inDecoratorContext()) && parseOptional(23 /* OpenBracketToken */)) { - expression = parseElementAccessExpressionRest(pos, expression, questionDotToken); - continue; - } - if (isTemplateStartOfTaggedTemplate()) { - expression = !questionDotToken && expression.kind === 233 /* ExpressionWithTypeArguments */ ? parseTaggedTemplateRest(pos, expression.expression, questionDotToken, expression.typeArguments) : parseTaggedTemplateRest(pos, expression, questionDotToken, - /*typeArguments*/ - void 0); - continue; - } - if (!questionDotToken) { - if (token() === 54 /* ExclamationToken */ && !scanner2.hasPrecedingLineBreak()) { - nextToken(); - expression = finishNode(factory2.createNonNullExpression(expression), pos); - continue; - } - var typeArguments = tryParse(parseTypeArgumentsInExpression); - if (typeArguments) { - expression = finishNode(factory2.createExpressionWithTypeArguments(expression, typeArguments), pos); - continue; - } - } - return expression; - } - } - function isTemplateStartOfTaggedTemplate() { - return token() === 15 /* NoSubstitutionTemplateLiteral */ || token() === 16 /* TemplateHead */; - } - function parseTaggedTemplateRest(pos, tag, questionDotToken, typeArguments) { - var tagExpression = factory2.createTaggedTemplateExpression(tag, typeArguments, token() === 15 /* NoSubstitutionTemplateLiteral */ ? (reScanTemplateToken( - /*isTaggedTemplate*/ - true), parseLiteralNode()) : parseTemplateExpression( - /*isTaggedTemplate*/ - true)); - if (questionDotToken || tag.flags & 64 /* OptionalChain */) { - tagExpression.flags |= 64 /* OptionalChain */; - } - tagExpression.questionDotToken = questionDotToken; - return finishNode(tagExpression, pos); - } - function parseCallExpressionRest(pos, expression) { - while (true) { - expression = parseMemberExpressionRest(pos, expression, - /*allowOptionalChain*/ - true); - var typeArguments = void 0; - var questionDotToken = parseOptionalToken(29 /* QuestionDotToken */); - if (questionDotToken) { - typeArguments = tryParse(parseTypeArgumentsInExpression); - if (isTemplateStartOfTaggedTemplate()) { - expression = parseTaggedTemplateRest(pos, expression, questionDotToken, typeArguments); - continue; - } - } - if (typeArguments || token() === 21 /* OpenParenToken */) { - if (!questionDotToken && expression.kind === 233 /* ExpressionWithTypeArguments */) { - typeArguments = expression.typeArguments; - expression = expression.expression; - } - var argumentList = parseArgumentList(); - var callExpr = questionDotToken || tryReparseOptionalChain(expression) ? factoryCreateCallChain(expression, questionDotToken, typeArguments, argumentList) : factoryCreateCallExpression(expression, typeArguments, argumentList); - expression = finishNode(callExpr, pos); - continue; - } - if (questionDotToken) { - var name_12 = createMissingNode(80 /* Identifier */, - /*reportAtCurrentPosition*/ - false, Diagnostics.Identifier_expected); - expression = finishNode(factoryCreatePropertyAccessChain(expression, questionDotToken, name_12), pos); - } - break; - } - return expression; - } - function parseArgumentList() { - parseExpected(21 /* OpenParenToken */); - var result = parseDelimitedList(11 /* ArgumentExpressions */, parseArgumentExpression); - parseExpected(22 /* CloseParenToken */); - return result; - } - function parseTypeArgumentsInExpression() { - if ((contextFlags & 524288 /* JavaScriptFile */) !== 0) { - return void 0; - } - if (reScanLessThanToken() !== 30 /* LessThanToken */) { - return void 0; - } - nextToken(); - var typeArguments = parseDelimitedList(20 /* TypeArguments */, parseType); - if (reScanGreaterToken() !== 32 /* GreaterThanToken */) { - return void 0; - } - nextToken(); - return typeArguments && canFollowTypeArgumentsInExpression() ? typeArguments : void 0; - } - function canFollowTypeArgumentsInExpression() { - switch (token()) { - case 21 /* OpenParenToken */: - case 15 /* NoSubstitutionTemplateLiteral */: - case 16 /* TemplateHead */: - return true; - case 30 /* LessThanToken */: - case 32 /* GreaterThanToken */: - case 40 /* PlusToken */: - case 41 /* MinusToken */: - return false; - } - return scanner2.hasPrecedingLineBreak() || isBinaryOperator2() || !isStartOfExpression(); - } - function parsePrimaryExpression() { - switch (token()) { - case 15 /* NoSubstitutionTemplateLiteral */: - if (scanner2.getTokenFlags() & 26656 /* IsInvalid */) { - reScanTemplateToken( - /*isTaggedTemplate*/ - false); - } - case 9 /* NumericLiteral */: - case 10 /* BigIntLiteral */: - case 11 /* StringLiteral */: - return parseLiteralNode(); - case 110 /* ThisKeyword */: - case 108 /* SuperKeyword */: - case 106 /* NullKeyword */: - case 112 /* TrueKeyword */: - case 97 /* FalseKeyword */: - return parseTokenNode(); - case 21 /* OpenParenToken */: - return parseParenthesizedExpression(); - case 23 /* OpenBracketToken */: - return parseArrayLiteralExpression(); - case 19 /* OpenBraceToken */: - return parseObjectLiteralExpression(); - case 134 /* AsyncKeyword */: - if (!lookAhead(nextTokenIsFunctionKeywordOnSameLine)) { - break; - } - return parseFunctionExpression(); - case 60 /* AtToken */: - return parseDecoratedExpression(); - case 86 /* ClassKeyword */: - return parseClassExpression(); - case 100 /* FunctionKeyword */: - return parseFunctionExpression(); - case 105 /* NewKeyword */: - return parseNewExpressionOrNewDotTarget(); - case 44 /* SlashToken */: - case 69 /* SlashEqualsToken */: - if (reScanSlashToken() === 14 /* RegularExpressionLiteral */) { - return parseLiteralNode(); - } - break; - case 16 /* TemplateHead */: - return parseTemplateExpression( - /*isTaggedTemplate*/ - false); - case 81 /* PrivateIdentifier */: - return parsePrivateIdentifier(); - } - return parseIdentifier(Diagnostics.Expression_expected); - } - function parseParenthesizedExpression() { - var pos = getNodePos(); - var hasJSDoc = hasPrecedingJSDocComment(); - parseExpected(21 /* OpenParenToken */); - var expression = allowInAnd(parseExpression); - parseExpected(22 /* CloseParenToken */); - return withJSDoc(finishNode(factoryCreateParenthesizedExpression(expression), pos), hasJSDoc); - } - function parseSpreadElement() { - var pos = getNodePos(); - parseExpected(26 /* DotDotDotToken */); - var expression = parseAssignmentExpressionOrHigher( - /*allowReturnTypeInArrowFunction*/ - true); - return finishNode(factory2.createSpreadElement(expression), pos); - } - function parseArgumentOrArrayLiteralElement() { - return token() === 26 /* DotDotDotToken */ ? parseSpreadElement() : token() === 28 /* CommaToken */ ? finishNode(factory2.createOmittedExpression(), getNodePos()) : parseAssignmentExpressionOrHigher( - /*allowReturnTypeInArrowFunction*/ - true); - } - function parseArgumentExpression() { - return doOutsideOfContext(disallowInAndDecoratorContext, parseArgumentOrArrayLiteralElement); - } - function parseArrayLiteralExpression() { - var pos = getNodePos(); - var openBracketPosition = scanner2.getTokenStart(); - var openBracketParsed = parseExpected(23 /* OpenBracketToken */); - var multiLine = scanner2.hasPrecedingLineBreak(); - var elements = parseDelimitedList(15 /* ArrayLiteralMembers */, parseArgumentOrArrayLiteralElement); - parseExpectedMatchingBrackets(23 /* OpenBracketToken */, 24 /* CloseBracketToken */, openBracketParsed, openBracketPosition); - return finishNode(factoryCreateArrayLiteralExpression(elements, multiLine), pos); - } - function parseObjectLiteralElement() { - var pos = getNodePos(); - var hasJSDoc = hasPrecedingJSDocComment(); - if (parseOptionalToken(26 /* DotDotDotToken */)) { - var expression = parseAssignmentExpressionOrHigher( - /*allowReturnTypeInArrowFunction*/ - true); - return withJSDoc(finishNode(factory2.createSpreadAssignment(expression), pos), hasJSDoc); - } - var modifiers = parseModifiers( - /*allowDecorators*/ - true); - if (parseContextualModifier(139 /* GetKeyword */)) { - return parseAccessorDeclaration(pos, hasJSDoc, modifiers, 177 /* GetAccessor */, 0 /* None */); - } - if (parseContextualModifier(153 /* SetKeyword */)) { - return parseAccessorDeclaration(pos, hasJSDoc, modifiers, 178 /* SetAccessor */, 0 /* None */); - } - var asteriskToken = parseOptionalToken(42 /* AsteriskToken */); - var tokenIsIdentifier = isIdentifier2(); - var name = parsePropertyName(); - var questionToken = parseOptionalToken(58 /* QuestionToken */); - var exclamationToken = parseOptionalToken(54 /* ExclamationToken */); - if (asteriskToken || token() === 21 /* OpenParenToken */ || token() === 30 /* LessThanToken */) { - return parseMethodDeclaration(pos, hasJSDoc, modifiers, asteriskToken, name, questionToken, exclamationToken); - } - var node; - var isShorthandPropertyAssignment2 = tokenIsIdentifier && token() !== 59 /* ColonToken */; - if (isShorthandPropertyAssignment2) { - var equalsToken = parseOptionalToken(64 /* EqualsToken */); - var objectAssignmentInitializer = equalsToken ? allowInAnd(function () { return parseAssignmentExpressionOrHigher( - /*allowReturnTypeInArrowFunction*/ - true); }) : void 0; - node = factory2.createShorthandPropertyAssignment(name, objectAssignmentInitializer); - node.equalsToken = equalsToken; - } - else { - parseExpected(59 /* ColonToken */); - var initializer = allowInAnd(function () { return parseAssignmentExpressionOrHigher( - /*allowReturnTypeInArrowFunction*/ - true); }); - node = factory2.createPropertyAssignment(name, initializer); - } - node.modifiers = modifiers; - node.questionToken = questionToken; - node.exclamationToken = exclamationToken; - return withJSDoc(finishNode(node, pos), hasJSDoc); - } - function parseObjectLiteralExpression() { - var pos = getNodePos(); - var openBracePosition = scanner2.getTokenStart(); - var openBraceParsed = parseExpected(19 /* OpenBraceToken */); - var multiLine = scanner2.hasPrecedingLineBreak(); - var properties = parseDelimitedList(12 /* ObjectLiteralMembers */, parseObjectLiteralElement, - /*considerSemicolonAsDelimiter*/ - true); - parseExpectedMatchingBrackets(19 /* OpenBraceToken */, 20 /* CloseBraceToken */, openBraceParsed, openBracePosition); - return finishNode(factoryCreateObjectLiteralExpression(properties, multiLine), pos); - } - function parseFunctionExpression() { - var savedDecoratorContext = inDecoratorContext(); - setDecoratorContext( - /*val*/ - false); - var pos = getNodePos(); - var hasJSDoc = hasPrecedingJSDocComment(); - var modifiers = parseModifiers( - /*allowDecorators*/ - false); - parseExpected(100 /* FunctionKeyword */); - var asteriskToken = parseOptionalToken(42 /* AsteriskToken */); - var isGenerator = asteriskToken ? 1 /* Yield */ : 0 /* None */; - var isAsync = some(modifiers, isAsyncModifier) ? 2 /* Await */ : 0 /* None */; - var name = isGenerator && isAsync ? doInYieldAndAwaitContext(parseOptionalBindingIdentifier) : isGenerator ? doInYieldContext(parseOptionalBindingIdentifier) : isAsync ? doInAwaitContext(parseOptionalBindingIdentifier) : parseOptionalBindingIdentifier(); - var typeParameters = parseTypeParameters(); - var parameters = parseParameters(isGenerator | isAsync); - var type = parseReturnType(59 /* ColonToken */, - /*isType*/ - false); - var body = parseFunctionBlock(isGenerator | isAsync); - setDecoratorContext(savedDecoratorContext); - var node = factory2.createFunctionExpression(modifiers, asteriskToken, name, typeParameters, parameters, type, body); - return withJSDoc(finishNode(node, pos), hasJSDoc); - } - function parseOptionalBindingIdentifier() { - return isBindingIdentifier() ? parseBindingIdentifier() : void 0; - } - function parseNewExpressionOrNewDotTarget() { - var pos = getNodePos(); - parseExpected(105 /* NewKeyword */); - if (parseOptional(25 /* DotToken */)) { - var name_13 = parseIdentifierName(); - return finishNode(factory2.createMetaProperty(105 /* NewKeyword */, name_13), pos); - } - var expressionPos = getNodePos(); - var expression = parseMemberExpressionRest(expressionPos, parsePrimaryExpression(), - /*allowOptionalChain*/ - false); - var typeArguments; - if (expression.kind === 233 /* ExpressionWithTypeArguments */) { - typeArguments = expression.typeArguments; - expression = expression.expression; - } - if (token() === 29 /* QuestionDotToken */) { - parseErrorAtCurrentToken(Diagnostics.Invalid_optional_chain_from_new_expression_Did_you_mean_to_call_0, getTextOfNodeFromSourceText(sourceText, expression)); - } - var argumentList = token() === 21 /* OpenParenToken */ ? parseArgumentList() : void 0; - return finishNode(factoryCreateNewExpression(expression, typeArguments, argumentList), pos); - } - function parseBlock(ignoreMissingOpenBrace, diagnosticMessage) { - var pos = getNodePos(); - var hasJSDoc = hasPrecedingJSDocComment(); - var openBracePosition = scanner2.getTokenStart(); - var openBraceParsed = parseExpected(19 /* OpenBraceToken */, diagnosticMessage); - if (openBraceParsed || ignoreMissingOpenBrace) { - var multiLine = scanner2.hasPrecedingLineBreak(); - var statements = parseList(1 /* BlockStatements */, parseStatement); - parseExpectedMatchingBrackets(19 /* OpenBraceToken */, 20 /* CloseBraceToken */, openBraceParsed, openBracePosition); - var result = withJSDoc(finishNode(factoryCreateBlock(statements, multiLine), pos), hasJSDoc); - if (token() === 64 /* EqualsToken */) { - parseErrorAtCurrentToken(Diagnostics.Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_destructuring_assignment_you_might_need_to_wrap_the_whole_assignment_in_parentheses); - nextToken(); - } - return result; - } - else { - var statements = createMissingList(); - return withJSDoc(finishNode(factoryCreateBlock(statements, - /*multiLine*/ - void 0), pos), hasJSDoc); - } - } - function parseFunctionBlock(flags, diagnosticMessage) { - var savedYieldContext = inYieldContext(); - setYieldContext(!!(flags & 1 /* Yield */)); - var savedAwaitContext = inAwaitContext(); - setAwaitContext(!!(flags & 2 /* Await */)); - var savedTopLevel = topLevel; - topLevel = false; - var saveDecoratorContext = inDecoratorContext(); - if (saveDecoratorContext) { - setDecoratorContext( - /*val*/ - false); - } - var block = parseBlock(!!(flags & 16 /* IgnoreMissingOpenBrace */), diagnosticMessage); - if (saveDecoratorContext) { - setDecoratorContext( - /*val*/ - true); - } - topLevel = savedTopLevel; - setYieldContext(savedYieldContext); - setAwaitContext(savedAwaitContext); - return block; - } - function parseEmptyStatement() { - var pos = getNodePos(); - var hasJSDoc = hasPrecedingJSDocComment(); - parseExpected(27 /* SemicolonToken */); - return withJSDoc(finishNode(factory2.createEmptyStatement(), pos), hasJSDoc); - } - function parseIfStatement() { - var pos = getNodePos(); - var hasJSDoc = hasPrecedingJSDocComment(); - parseExpected(101 /* IfKeyword */); - var openParenPosition = scanner2.getTokenStart(); - var openParenParsed = parseExpected(21 /* OpenParenToken */); - var expression = allowInAnd(parseExpression); - parseExpectedMatchingBrackets(21 /* OpenParenToken */, 22 /* CloseParenToken */, openParenParsed, openParenPosition); - var thenStatement = parseStatement(); - var elseStatement = parseOptional(93 /* ElseKeyword */) ? parseStatement() : void 0; - return withJSDoc(finishNode(factoryCreateIfStatement(expression, thenStatement, elseStatement), pos), hasJSDoc); - } - function parseDoStatement() { - var pos = getNodePos(); - var hasJSDoc = hasPrecedingJSDocComment(); - parseExpected(92 /* DoKeyword */); - var statement = parseStatement(); - parseExpected(117 /* WhileKeyword */); - var openParenPosition = scanner2.getTokenStart(); - var openParenParsed = parseExpected(21 /* OpenParenToken */); - var expression = allowInAnd(parseExpression); - parseExpectedMatchingBrackets(21 /* OpenParenToken */, 22 /* CloseParenToken */, openParenParsed, openParenPosition); - parseOptional(27 /* SemicolonToken */); - return withJSDoc(finishNode(factory2.createDoStatement(statement, expression), pos), hasJSDoc); - } - function parseWhileStatement() { - var pos = getNodePos(); - var hasJSDoc = hasPrecedingJSDocComment(); - parseExpected(117 /* WhileKeyword */); - var openParenPosition = scanner2.getTokenStart(); - var openParenParsed = parseExpected(21 /* OpenParenToken */); - var expression = allowInAnd(parseExpression); - parseExpectedMatchingBrackets(21 /* OpenParenToken */, 22 /* CloseParenToken */, openParenParsed, openParenPosition); - var statement = parseStatement(); - return withJSDoc(finishNode(factoryCreateWhileStatement(expression, statement), pos), hasJSDoc); - } - function parseForOrForInOrForOfStatement() { - var pos = getNodePos(); - var hasJSDoc = hasPrecedingJSDocComment(); - parseExpected(99 /* ForKeyword */); - var awaitToken = parseOptionalToken(135 /* AwaitKeyword */); - parseExpected(21 /* OpenParenToken */); - var initializer; - if (token() !== 27 /* SemicolonToken */) { - if (token() === 115 /* VarKeyword */ || token() === 121 /* LetKeyword */ || token() === 87 /* ConstKeyword */ || token() === 160 /* UsingKeyword */ && lookAhead(nextTokenIsBindingIdentifierOrStartOfDestructuringOnSameLineDisallowOf) || token() === 135 /* AwaitKeyword */ && lookAhead(nextTokenIsUsingKeywordThenBindingIdentifierOrStartOfObjectDestructuringOnSameLineDisallowOf)) { - initializer = parseVariableDeclarationList( - /*inForStatementInitializer*/ - true); - } - else { - initializer = disallowInAnd(parseExpression); - } - } - var node; - if (awaitToken ? parseExpected(165 /* OfKeyword */) : parseOptional(165 /* OfKeyword */)) { - var expression = allowInAnd(function () { return parseAssignmentExpressionOrHigher( - /*allowReturnTypeInArrowFunction*/ - true); }); - parseExpected(22 /* CloseParenToken */); - node = factoryCreateForOfStatement(awaitToken, initializer, expression, parseStatement()); - } - else if (parseOptional(103 /* InKeyword */)) { - var expression = allowInAnd(parseExpression); - parseExpected(22 /* CloseParenToken */); - node = factory2.createForInStatement(initializer, expression, parseStatement()); - } - else { - parseExpected(27 /* SemicolonToken */); - var condition = token() !== 27 /* SemicolonToken */ && token() !== 22 /* CloseParenToken */ ? allowInAnd(parseExpression) : void 0; - parseExpected(27 /* SemicolonToken */); - var incrementor = token() !== 22 /* CloseParenToken */ ? allowInAnd(parseExpression) : void 0; - parseExpected(22 /* CloseParenToken */); - node = factoryCreateForStatement(initializer, condition, incrementor, parseStatement()); - } - return withJSDoc(finishNode(node, pos), hasJSDoc); - } - function parseBreakOrContinueStatement(kind) { - var pos = getNodePos(); - var hasJSDoc = hasPrecedingJSDocComment(); - parseExpected(kind === 252 /* BreakStatement */ ? 83 /* BreakKeyword */ : 88 /* ContinueKeyword */); - var label = canParseSemicolon() ? void 0 : parseIdentifier(); - parseSemicolon(); - var node = kind === 252 /* BreakStatement */ ? factory2.createBreakStatement(label) : factory2.createContinueStatement(label); - return withJSDoc(finishNode(node, pos), hasJSDoc); - } - function parseReturnStatement() { - var pos = getNodePos(); - var hasJSDoc = hasPrecedingJSDocComment(); - parseExpected(107 /* ReturnKeyword */); - var expression = canParseSemicolon() ? void 0 : allowInAnd(parseExpression); - parseSemicolon(); - return withJSDoc(finishNode(factory2.createReturnStatement(expression), pos), hasJSDoc); - } - function parseWithStatement() { - var pos = getNodePos(); - var hasJSDoc = hasPrecedingJSDocComment(); - parseExpected(118 /* WithKeyword */); - var openParenPosition = scanner2.getTokenStart(); - var openParenParsed = parseExpected(21 /* OpenParenToken */); - var expression = allowInAnd(parseExpression); - parseExpectedMatchingBrackets(21 /* OpenParenToken */, 22 /* CloseParenToken */, openParenParsed, openParenPosition); - var statement = doInsideOfContext(67108864 /* InWithStatement */, parseStatement); - return withJSDoc(finishNode(factory2.createWithStatement(expression, statement), pos), hasJSDoc); - } - function parseCaseClause() { - var pos = getNodePos(); - var hasJSDoc = hasPrecedingJSDocComment(); - parseExpected(84 /* CaseKeyword */); - var expression = allowInAnd(parseExpression); - parseExpected(59 /* ColonToken */); - var statements = parseList(3 /* SwitchClauseStatements */, parseStatement); - return withJSDoc(finishNode(factory2.createCaseClause(expression, statements), pos), hasJSDoc); - } - function parseDefaultClause() { - var pos = getNodePos(); - parseExpected(90 /* DefaultKeyword */); - parseExpected(59 /* ColonToken */); - var statements = parseList(3 /* SwitchClauseStatements */, parseStatement); - return finishNode(factory2.createDefaultClause(statements), pos); - } - function parseCaseOrDefaultClause() { - return token() === 84 /* CaseKeyword */ ? parseCaseClause() : parseDefaultClause(); - } - function parseCaseBlock() { - var pos = getNodePos(); - parseExpected(19 /* OpenBraceToken */); - var clauses = parseList(2 /* SwitchClauses */, parseCaseOrDefaultClause); - parseExpected(20 /* CloseBraceToken */); - return finishNode(factory2.createCaseBlock(clauses), pos); - } - function parseSwitchStatement() { - var pos = getNodePos(); - var hasJSDoc = hasPrecedingJSDocComment(); - parseExpected(109 /* SwitchKeyword */); - parseExpected(21 /* OpenParenToken */); - var expression = allowInAnd(parseExpression); - parseExpected(22 /* CloseParenToken */); - var caseBlock = parseCaseBlock(); - return withJSDoc(finishNode(factory2.createSwitchStatement(expression, caseBlock), pos), hasJSDoc); - } - function parseThrowStatement() { - var pos = getNodePos(); - var hasJSDoc = hasPrecedingJSDocComment(); - parseExpected(111 /* ThrowKeyword */); - var expression = scanner2.hasPrecedingLineBreak() ? void 0 : allowInAnd(parseExpression); - if (expression === void 0) { - identifierCount++; - expression = finishNode(factoryCreateIdentifier(""), getNodePos()); - } - if (!tryParseSemicolon()) { - parseErrorForMissingSemicolonAfter(expression); - } - return withJSDoc(finishNode(factory2.createThrowStatement(expression), pos), hasJSDoc); - } - function parseTryStatement() { - var pos = getNodePos(); - var hasJSDoc = hasPrecedingJSDocComment(); - parseExpected(113 /* TryKeyword */); - var tryBlock = parseBlock( - /*ignoreMissingOpenBrace*/ - false); - var catchClause = token() === 85 /* CatchKeyword */ ? parseCatchClause() : void 0; - var finallyBlock; - if (!catchClause || token() === 98 /* FinallyKeyword */) { - parseExpected(98 /* FinallyKeyword */, Diagnostics.catch_or_finally_expected); - finallyBlock = parseBlock( - /*ignoreMissingOpenBrace*/ - false); - } - return withJSDoc(finishNode(factory2.createTryStatement(tryBlock, catchClause, finallyBlock), pos), hasJSDoc); - } - function parseCatchClause() { - var pos = getNodePos(); - parseExpected(85 /* CatchKeyword */); - var variableDeclaration; - if (parseOptional(21 /* OpenParenToken */)) { - variableDeclaration = parseVariableDeclaration(); - parseExpected(22 /* CloseParenToken */); - } - else { - variableDeclaration = void 0; - } - var block = parseBlock( - /*ignoreMissingOpenBrace*/ - false); - return finishNode(factory2.createCatchClause(variableDeclaration, block), pos); - } - function parseDebuggerStatement() { - var pos = getNodePos(); - var hasJSDoc = hasPrecedingJSDocComment(); - parseExpected(89 /* DebuggerKeyword */); - parseSemicolon(); - return withJSDoc(finishNode(factory2.createDebuggerStatement(), pos), hasJSDoc); - } - function parseExpressionOrLabeledStatement() { - var pos = getNodePos(); - var hasJSDoc = hasPrecedingJSDocComment(); - var node; - var hasParen = token() === 21 /* OpenParenToken */; - var expression = allowInAnd(parseExpression); - if (isIdentifier(expression) && parseOptional(59 /* ColonToken */)) { - node = factory2.createLabeledStatement(expression, parseStatement()); - } - else { - if (!tryParseSemicolon()) { - parseErrorForMissingSemicolonAfter(expression); - } - node = factoryCreateExpressionStatement(expression); - if (hasParen) { - hasJSDoc = false; - } - } - return withJSDoc(finishNode(node, pos), hasJSDoc); - } - function nextTokenIsIdentifierOrKeywordOnSameLine() { - nextToken(); - return tokenIsIdentifierOrKeyword(token()) && !scanner2.hasPrecedingLineBreak(); - } - function nextTokenIsClassKeywordOnSameLine() { - nextToken(); - return token() === 86 /* ClassKeyword */ && !scanner2.hasPrecedingLineBreak(); - } - function nextTokenIsFunctionKeywordOnSameLine() { - nextToken(); - return token() === 100 /* FunctionKeyword */ && !scanner2.hasPrecedingLineBreak(); - } - function nextTokenIsIdentifierOrKeywordOrLiteralOnSameLine() { - nextToken(); - return (tokenIsIdentifierOrKeyword(token()) || token() === 9 /* NumericLiteral */ || token() === 10 /* BigIntLiteral */ || token() === 11 /* StringLiteral */) && !scanner2.hasPrecedingLineBreak(); - } - function isDeclaration2() { - while (true) { - switch (token()) { - case 115 /* VarKeyword */: - case 121 /* LetKeyword */: - case 87 /* ConstKeyword */: - case 100 /* FunctionKeyword */: - case 86 /* ClassKeyword */: - case 94 /* EnumKeyword */: - return true; - case 160 /* UsingKeyword */: - return isUsingDeclaration(); - case 135 /* AwaitKeyword */: - return isAwaitUsingDeclaration(); - case 120 /* InterfaceKeyword */: - case 156 /* TypeKeyword */: - return nextTokenIsIdentifierOnSameLine(); - case 144 /* ModuleKeyword */: - case 145 /* NamespaceKeyword */: - return nextTokenIsIdentifierOrStringLiteralOnSameLine(); - case 128 /* AbstractKeyword */: - case 129 /* AccessorKeyword */: - case 134 /* AsyncKeyword */: - case 138 /* DeclareKeyword */: - case 123 /* PrivateKeyword */: - case 124 /* ProtectedKeyword */: - case 125 /* PublicKeyword */: - case 148 /* ReadonlyKeyword */: - var previousToken = token(); - nextToken(); - if (scanner2.hasPrecedingLineBreak()) { - return false; - } - if (previousToken === 138 /* DeclareKeyword */ && token() === 156 /* TypeKeyword */) { - return true; - } - continue; - case 162 /* GlobalKeyword */: - nextToken(); - return token() === 19 /* OpenBraceToken */ || token() === 80 /* Identifier */ || token() === 95 /* ExportKeyword */; - case 102 /* ImportKeyword */: - nextToken(); - return token() === 11 /* StringLiteral */ || token() === 42 /* AsteriskToken */ || token() === 19 /* OpenBraceToken */ || tokenIsIdentifierOrKeyword(token()); - case 95 /* ExportKeyword */: - var currentToken2 = nextToken(); - if (currentToken2 === 156 /* TypeKeyword */) { - currentToken2 = lookAhead(nextToken); - } - if (currentToken2 === 64 /* EqualsToken */ || currentToken2 === 42 /* AsteriskToken */ || currentToken2 === 19 /* OpenBraceToken */ || currentToken2 === 90 /* DefaultKeyword */ || currentToken2 === 130 /* AsKeyword */ || currentToken2 === 60 /* AtToken */) { - return true; - } - continue; - case 126 /* StaticKeyword */: - nextToken(); - continue; - default: - return false; - } - } - } - function isStartOfDeclaration() { - return lookAhead(isDeclaration2); - } - function isStartOfStatement() { - switch (token()) { - case 60 /* AtToken */: - case 27 /* SemicolonToken */: - case 19 /* OpenBraceToken */: - case 115 /* VarKeyword */: - case 121 /* LetKeyword */: - case 160 /* UsingKeyword */: - case 100 /* FunctionKeyword */: - case 86 /* ClassKeyword */: - case 94 /* EnumKeyword */: - case 101 /* IfKeyword */: - case 92 /* DoKeyword */: - case 117 /* WhileKeyword */: - case 99 /* ForKeyword */: - case 88 /* ContinueKeyword */: - case 83 /* BreakKeyword */: - case 107 /* ReturnKeyword */: - case 118 /* WithKeyword */: - case 109 /* SwitchKeyword */: - case 111 /* ThrowKeyword */: - case 113 /* TryKeyword */: - case 89 /* DebuggerKeyword */: - case 85 /* CatchKeyword */: - case 98 /* FinallyKeyword */: - return true; - case 102 /* ImportKeyword */: - return isStartOfDeclaration() || lookAhead(nextTokenIsOpenParenOrLessThanOrDot); - case 87 /* ConstKeyword */: - case 95 /* ExportKeyword */: - return isStartOfDeclaration(); - case 134 /* AsyncKeyword */: - case 138 /* DeclareKeyword */: - case 120 /* InterfaceKeyword */: - case 144 /* ModuleKeyword */: - case 145 /* NamespaceKeyword */: - case 156 /* TypeKeyword */: - case 162 /* GlobalKeyword */: - return true; - case 129 /* AccessorKeyword */: - case 125 /* PublicKeyword */: - case 123 /* PrivateKeyword */: - case 124 /* ProtectedKeyword */: - case 126 /* StaticKeyword */: - case 148 /* ReadonlyKeyword */: - return isStartOfDeclaration() || !lookAhead(nextTokenIsIdentifierOrKeywordOnSameLine); - default: - return isStartOfExpression(); - } - } - function nextTokenIsBindingIdentifierOrStartOfDestructuring() { - nextToken(); - return isBindingIdentifier() || token() === 19 /* OpenBraceToken */ || token() === 23 /* OpenBracketToken */; - } - function isLetDeclaration() { - return lookAhead(nextTokenIsBindingIdentifierOrStartOfDestructuring); - } - function nextTokenIsBindingIdentifierOrStartOfDestructuringOnSameLineDisallowOf() { - return nextTokenIsBindingIdentifierOrStartOfDestructuringOnSameLine( - /*disallowOf*/ - true); - } - function nextTokenIsBindingIdentifierOrStartOfDestructuringOnSameLine(disallowOf) { - nextToken(); - if (disallowOf && token() === 165 /* OfKeyword */) - return false; - return (isBindingIdentifier() || token() === 19 /* OpenBraceToken */) && !scanner2.hasPrecedingLineBreak(); - } - function isUsingDeclaration() { - return lookAhead(nextTokenIsBindingIdentifierOrStartOfDestructuringOnSameLine); - } - function nextTokenIsUsingKeywordThenBindingIdentifierOrStartOfObjectDestructuringOnSameLineDisallowOf() { - return nextTokenIsUsingKeywordThenBindingIdentifierOrStartOfObjectDestructuringOnSameLine( - /*disallowOf*/ - true); - } - function nextTokenIsUsingKeywordThenBindingIdentifierOrStartOfObjectDestructuringOnSameLine(disallowOf) { - if (nextToken() === 160 /* UsingKeyword */) { - return nextTokenIsBindingIdentifierOrStartOfDestructuringOnSameLine(disallowOf); - } - return false; - } - function isAwaitUsingDeclaration() { - return lookAhead(nextTokenIsUsingKeywordThenBindingIdentifierOrStartOfObjectDestructuringOnSameLine); - } - function parseStatement() { - switch (token()) { - case 27 /* SemicolonToken */: - return parseEmptyStatement(); - case 19 /* OpenBraceToken */: - return parseBlock( - /*ignoreMissingOpenBrace*/ - false); - case 115 /* VarKeyword */: - return parseVariableStatement(getNodePos(), hasPrecedingJSDocComment(), - /*modifiers*/ - void 0); - case 121 /* LetKeyword */: - if (isLetDeclaration()) { - return parseVariableStatement(getNodePos(), hasPrecedingJSDocComment(), - /*modifiers*/ - void 0); - } - break; - case 135 /* AwaitKeyword */: - if (isAwaitUsingDeclaration()) { - return parseVariableStatement(getNodePos(), hasPrecedingJSDocComment(), - /*modifiers*/ - void 0); - } - break; - case 160 /* UsingKeyword */: - if (isUsingDeclaration()) { - return parseVariableStatement(getNodePos(), hasPrecedingJSDocComment(), - /*modifiers*/ - void 0); - } - break; - case 100 /* FunctionKeyword */: - return parseFunctionDeclaration(getNodePos(), hasPrecedingJSDocComment(), - /*modifiers*/ - void 0); - case 86 /* ClassKeyword */: - return parseClassDeclaration(getNodePos(), hasPrecedingJSDocComment(), - /*modifiers*/ - void 0); - case 101 /* IfKeyword */: - return parseIfStatement(); - case 92 /* DoKeyword */: - return parseDoStatement(); - case 117 /* WhileKeyword */: - return parseWhileStatement(); - case 99 /* ForKeyword */: - return parseForOrForInOrForOfStatement(); - case 88 /* ContinueKeyword */: - return parseBreakOrContinueStatement(251 /* ContinueStatement */); - case 83 /* BreakKeyword */: - return parseBreakOrContinueStatement(252 /* BreakStatement */); - case 107 /* ReturnKeyword */: - return parseReturnStatement(); - case 118 /* WithKeyword */: - return parseWithStatement(); - case 109 /* SwitchKeyword */: - return parseSwitchStatement(); - case 111 /* ThrowKeyword */: - return parseThrowStatement(); - case 113 /* TryKeyword */: - case 85 /* CatchKeyword */: - case 98 /* FinallyKeyword */: - return parseTryStatement(); - case 89 /* DebuggerKeyword */: - return parseDebuggerStatement(); - case 60 /* AtToken */: - return parseDeclaration(); - case 134 /* AsyncKeyword */: - case 120 /* InterfaceKeyword */: - case 156 /* TypeKeyword */: - case 144 /* ModuleKeyword */: - case 145 /* NamespaceKeyword */: - case 138 /* DeclareKeyword */: - case 87 /* ConstKeyword */: - case 94 /* EnumKeyword */: - case 95 /* ExportKeyword */: - case 102 /* ImportKeyword */: - case 123 /* PrivateKeyword */: - case 124 /* ProtectedKeyword */: - case 125 /* PublicKeyword */: - case 128 /* AbstractKeyword */: - case 129 /* AccessorKeyword */: - case 126 /* StaticKeyword */: - case 148 /* ReadonlyKeyword */: - case 162 /* GlobalKeyword */: - if (isStartOfDeclaration()) { - return parseDeclaration(); - } - break; - } - return parseExpressionOrLabeledStatement(); - } - function isDeclareModifier(modifier) { - return modifier.kind === 138 /* DeclareKeyword */; - } - function parseDeclaration() { - var e_97, _t; - var pos = getNodePos(); - var hasJSDoc = hasPrecedingJSDocComment(); - var modifiers = parseModifiers( - /*allowDecorators*/ - true); - var isAmbient = some(modifiers, isDeclareModifier); - if (isAmbient) { - var node = tryReuseAmbientDeclaration(pos); - if (node) { - return node; - } - try { - for (var modifiers_2 = __values(modifiers), modifiers_2_1 = modifiers_2.next(); !modifiers_2_1.done; modifiers_2_1 = modifiers_2.next()) { - var m = modifiers_2_1.value; - m.flags |= 33554432 /* Ambient */; - } - } - catch (e_97_1) { e_97 = { error: e_97_1 }; } - finally { - try { - if (modifiers_2_1 && !modifiers_2_1.done && (_t = modifiers_2.return)) _t.call(modifiers_2); - } - finally { if (e_97) throw e_97.error; } - } - return doInsideOfContext(33554432 /* Ambient */, function () { return parseDeclarationWorker(pos, hasJSDoc, modifiers); }); - } - else { - return parseDeclarationWorker(pos, hasJSDoc, modifiers); - } - } - function tryReuseAmbientDeclaration(pos) { - return doInsideOfContext(33554432 /* Ambient */, function () { - var node = currentNode(parsingContext, pos); - if (node) { - return consumeNode(node); - } - }); - } - function parseDeclarationWorker(pos, hasJSDoc, modifiersIn) { - switch (token()) { - case 115 /* VarKeyword */: - case 121 /* LetKeyword */: - case 87 /* ConstKeyword */: - case 160 /* UsingKeyword */: - case 135 /* AwaitKeyword */: - return parseVariableStatement(pos, hasJSDoc, modifiersIn); - case 100 /* FunctionKeyword */: - return parseFunctionDeclaration(pos, hasJSDoc, modifiersIn); - case 86 /* ClassKeyword */: - return parseClassDeclaration(pos, hasJSDoc, modifiersIn); - case 120 /* InterfaceKeyword */: - return parseInterfaceDeclaration(pos, hasJSDoc, modifiersIn); - case 156 /* TypeKeyword */: - return parseTypeAliasDeclaration(pos, hasJSDoc, modifiersIn); - case 94 /* EnumKeyword */: - return parseEnumDeclaration(pos, hasJSDoc, modifiersIn); - case 162 /* GlobalKeyword */: - case 144 /* ModuleKeyword */: - case 145 /* NamespaceKeyword */: - return parseModuleDeclaration(pos, hasJSDoc, modifiersIn); - case 102 /* ImportKeyword */: - return parseImportDeclarationOrImportEqualsDeclaration(pos, hasJSDoc, modifiersIn); - case 95 /* ExportKeyword */: - nextToken(); - switch (token()) { - case 90 /* DefaultKeyword */: - case 64 /* EqualsToken */: - return parseExportAssignment(pos, hasJSDoc, modifiersIn); - case 130 /* AsKeyword */: - return parseNamespaceExportDeclaration(pos, hasJSDoc, modifiersIn); - default: - return parseExportDeclaration(pos, hasJSDoc, modifiersIn); - } - default: - if (modifiersIn) { - var missing = createMissingNode(282 /* MissingDeclaration */, - /*reportAtCurrentPosition*/ - true, Diagnostics.Declaration_expected); - setTextRangePos(missing, pos); - missing.modifiers = modifiersIn; - return missing; - } - return void 0; - } - } - function nextTokenIsStringLiteral() { - return nextToken() === 11 /* StringLiteral */; - } - function nextTokenIsIdentifierOrStringLiteralOnSameLine() { - nextToken(); - return !scanner2.hasPrecedingLineBreak() && (isIdentifier2() || token() === 11 /* StringLiteral */); - } - function parseFunctionBlockOrSemicolon(flags, diagnosticMessage) { - if (token() !== 19 /* OpenBraceToken */) { - if (flags & 4 /* Type */) { - parseTypeMemberSemicolon(); - return; - } - if (canParseSemicolon()) { - parseSemicolon(); - return; - } - } - return parseFunctionBlock(flags, diagnosticMessage); - } - function parseArrayBindingElement() { - var pos = getNodePos(); - if (token() === 28 /* CommaToken */) { - return finishNode(factory2.createOmittedExpression(), pos); - } - var dotDotDotToken = parseOptionalToken(26 /* DotDotDotToken */); - var name = parseIdentifierOrPattern(); - var initializer = parseInitializer(); - return finishNode(factory2.createBindingElement(dotDotDotToken, - /*propertyName*/ - void 0, name, initializer), pos); - } - function parseObjectBindingElement() { - var pos = getNodePos(); - var dotDotDotToken = parseOptionalToken(26 /* DotDotDotToken */); - var tokenIsIdentifier = isBindingIdentifier(); - var propertyName = parsePropertyName(); - var name; - if (tokenIsIdentifier && token() !== 59 /* ColonToken */) { - name = propertyName; - propertyName = void 0; - } - else { - parseExpected(59 /* ColonToken */); - name = parseIdentifierOrPattern(); - } - var initializer = parseInitializer(); - return finishNode(factory2.createBindingElement(dotDotDotToken, propertyName, name, initializer), pos); - } - function parseObjectBindingPattern() { - var pos = getNodePos(); - parseExpected(19 /* OpenBraceToken */); - var elements = allowInAnd(function () { return parseDelimitedList(9 /* ObjectBindingElements */, parseObjectBindingElement); }); - parseExpected(20 /* CloseBraceToken */); - return finishNode(factory2.createObjectBindingPattern(elements), pos); - } - function parseArrayBindingPattern() { - var pos = getNodePos(); - parseExpected(23 /* OpenBracketToken */); - var elements = allowInAnd(function () { return parseDelimitedList(10 /* ArrayBindingElements */, parseArrayBindingElement); }); - parseExpected(24 /* CloseBracketToken */); - return finishNode(factory2.createArrayBindingPattern(elements), pos); - } - function isBindingIdentifierOrPrivateIdentifierOrPattern() { - return token() === 19 /* OpenBraceToken */ || token() === 23 /* OpenBracketToken */ || token() === 81 /* PrivateIdentifier */ || isBindingIdentifier(); - } - function parseIdentifierOrPattern(privateIdentifierDiagnosticMessage) { - if (token() === 23 /* OpenBracketToken */) { - return parseArrayBindingPattern(); - } - if (token() === 19 /* OpenBraceToken */) { - return parseObjectBindingPattern(); - } - return parseBindingIdentifier(privateIdentifierDiagnosticMessage); - } - function parseVariableDeclarationAllowExclamation() { - return parseVariableDeclaration( - /*allowExclamation*/ - true); - } - function parseVariableDeclaration(allowExclamation) { - var pos = getNodePos(); - var hasJSDoc = hasPrecedingJSDocComment(); - var name = parseIdentifierOrPattern(Diagnostics.Private_identifiers_are_not_allowed_in_variable_declarations); - var exclamationToken; - if (allowExclamation && name.kind === 80 /* Identifier */ && token() === 54 /* ExclamationToken */ && !scanner2.hasPrecedingLineBreak()) { - exclamationToken = parseTokenNode(); - } - var type = parseTypeAnnotation(); - var initializer = isInOrOfKeyword(token()) ? void 0 : parseInitializer(); - var node = factoryCreateVariableDeclaration(name, exclamationToken, type, initializer); - return withJSDoc(finishNode(node, pos), hasJSDoc); - } - function parseVariableDeclarationList(inForStatementInitializer) { - var pos = getNodePos(); - var flags = 0; - switch (token()) { - case 115 /* VarKeyword */: - break; - case 121 /* LetKeyword */: - flags |= 1 /* Let */; - break; - case 87 /* ConstKeyword */: - flags |= 2 /* Const */; - break; - case 160 /* UsingKeyword */: - flags |= 4 /* Using */; - break; - case 135 /* AwaitKeyword */: - Debug.assert(isAwaitUsingDeclaration()); - flags |= 6 /* AwaitUsing */; - nextToken(); - break; - default: - Debug.fail(); - } - nextToken(); - var declarations; - if (token() === 165 /* OfKeyword */ && lookAhead(canFollowContextualOfKeyword)) { - declarations = createMissingList(); - } - else { - var savedDisallowIn = inDisallowInContext(); - setDisallowInContext(inForStatementInitializer); - declarations = parseDelimitedList(8 /* VariableDeclarations */, inForStatementInitializer ? parseVariableDeclaration : parseVariableDeclarationAllowExclamation); - setDisallowInContext(savedDisallowIn); - } - return finishNode(factoryCreateVariableDeclarationList(declarations, flags), pos); - } - function canFollowContextualOfKeyword() { - return nextTokenIsIdentifier() && nextToken() === 22 /* CloseParenToken */; - } - function parseVariableStatement(pos, hasJSDoc, modifiers) { - var declarationList = parseVariableDeclarationList( - /*inForStatementInitializer*/ - false); - parseSemicolon(); - var node = factoryCreateVariableStatement(modifiers, declarationList); - return withJSDoc(finishNode(node, pos), hasJSDoc); - } - function parseFunctionDeclaration(pos, hasJSDoc, modifiers) { - var savedAwaitContext = inAwaitContext(); - var modifierFlags = modifiersToFlags(modifiers); - parseExpected(100 /* FunctionKeyword */); - var asteriskToken = parseOptionalToken(42 /* AsteriskToken */); - var name = modifierFlags & 1024 /* Default */ ? parseOptionalBindingIdentifier() : parseBindingIdentifier(); - var isGenerator = asteriskToken ? 1 /* Yield */ : 0 /* None */; - var isAsync = modifierFlags & 512 /* Async */ ? 2 /* Await */ : 0 /* None */; - var typeParameters = parseTypeParameters(); - if (modifierFlags & 1 /* Export */) - setAwaitContext( - /*value*/ - true); - var parameters = parseParameters(isGenerator | isAsync); - var type = parseReturnType(59 /* ColonToken */, - /*isType*/ - false); - var body = parseFunctionBlockOrSemicolon(isGenerator | isAsync, Diagnostics.or_expected); - setAwaitContext(savedAwaitContext); - var node = factory2.createFunctionDeclaration(modifiers, asteriskToken, name, typeParameters, parameters, type, body); - return withJSDoc(finishNode(node, pos), hasJSDoc); - } - function parseConstructorName() { - if (token() === 137 /* ConstructorKeyword */) { - return parseExpected(137 /* ConstructorKeyword */); - } - if (token() === 11 /* StringLiteral */ && lookAhead(nextToken) === 21 /* OpenParenToken */) { - return tryParse(function () { - var literalNode = parseLiteralNode(); - return literalNode.text === "constructor" ? literalNode : void 0; - }); - } - } - function tryParseConstructorDeclaration(pos, hasJSDoc, modifiers) { - return tryParse(function () { - if (parseConstructorName()) { - var typeParameters = parseTypeParameters(); - var parameters = parseParameters(0 /* None */); - var type = parseReturnType(59 /* ColonToken */, - /*isType*/ - false); - var body = parseFunctionBlockOrSemicolon(0 /* None */, Diagnostics.or_expected); - var node = factory2.createConstructorDeclaration(modifiers, parameters, body); - node.typeParameters = typeParameters; - node.type = type; - return withJSDoc(finishNode(node, pos), hasJSDoc); - } - }); - } - function parseMethodDeclaration(pos, hasJSDoc, modifiers, asteriskToken, name, questionToken, exclamationToken, diagnosticMessage) { - var isGenerator = asteriskToken ? 1 /* Yield */ : 0 /* None */; - var isAsync = some(modifiers, isAsyncModifier) ? 2 /* Await */ : 0 /* None */; - var typeParameters = parseTypeParameters(); - var parameters = parseParameters(isGenerator | isAsync); - var type = parseReturnType(59 /* ColonToken */, - /*isType*/ - false); - var body = parseFunctionBlockOrSemicolon(isGenerator | isAsync, diagnosticMessage); - var node = factory2.createMethodDeclaration(modifiers, asteriskToken, name, questionToken, typeParameters, parameters, type, body); - node.exclamationToken = exclamationToken; - return withJSDoc(finishNode(node, pos), hasJSDoc); - } - function parsePropertyDeclaration(pos, hasJSDoc, modifiers, name, questionToken) { - var exclamationToken = !questionToken && !scanner2.hasPrecedingLineBreak() ? parseOptionalToken(54 /* ExclamationToken */) : void 0; - var type = parseTypeAnnotation(); - var initializer = doOutsideOfContext(16384 /* YieldContext */ | 65536 /* AwaitContext */ | 8192 /* DisallowInContext */, parseInitializer); - parseSemicolonAfterPropertyName(name, type, initializer); - var node = factory2.createPropertyDeclaration(modifiers, name, questionToken || exclamationToken, type, initializer); - return withJSDoc(finishNode(node, pos), hasJSDoc); - } - function parsePropertyOrMethodDeclaration(pos, hasJSDoc, modifiers) { - var asteriskToken = parseOptionalToken(42 /* AsteriskToken */); - var name = parsePropertyName(); - var questionToken = parseOptionalToken(58 /* QuestionToken */); - if (asteriskToken || token() === 21 /* OpenParenToken */ || token() === 30 /* LessThanToken */) { - return parseMethodDeclaration(pos, hasJSDoc, modifiers, asteriskToken, name, questionToken, - /*exclamationToken*/ - void 0, Diagnostics.or_expected); - } - return parsePropertyDeclaration(pos, hasJSDoc, modifiers, name, questionToken); - } - function parseAccessorDeclaration(pos, hasJSDoc, modifiers, kind, flags) { - var name = parsePropertyName(); - var typeParameters = parseTypeParameters(); - var parameters = parseParameters(0 /* None */); - var type = parseReturnType(59 /* ColonToken */, - /*isType*/ - false); - var body = parseFunctionBlockOrSemicolon(flags); - var node = kind === 177 /* GetAccessor */ ? factory2.createGetAccessorDeclaration(modifiers, name, parameters, type, body) : factory2.createSetAccessorDeclaration(modifiers, name, parameters, body); - node.typeParameters = typeParameters; - if (isSetAccessorDeclaration(node)) - node.type = type; - return withJSDoc(finishNode(node, pos), hasJSDoc); - } - function isClassMemberStart() { - var idToken; - if (token() === 60 /* AtToken */) { - return true; - } - while (isModifierKind(token())) { - idToken = token(); - if (isClassMemberModifier(idToken)) { - return true; - } - nextToken(); - } - if (token() === 42 /* AsteriskToken */) { - return true; - } - if (isLiteralPropertyName()) { - idToken = token(); - nextToken(); - } - if (token() === 23 /* OpenBracketToken */) { - return true; - } - if (idToken !== void 0) { - if (!isKeyword(idToken) || idToken === 153 /* SetKeyword */ || idToken === 139 /* GetKeyword */) { - return true; - } - switch (token()) { - case 21 /* OpenParenToken */: - case 30 /* LessThanToken */: - case 54 /* ExclamationToken */: - case 59 /* ColonToken */: - case 64 /* EqualsToken */: - case 58 /* QuestionToken */: - return true; - default: - return canParseSemicolon(); - } - } - return false; - } - function parseClassStaticBlockDeclaration(pos, hasJSDoc, modifiers) { - parseExpectedToken(126 /* StaticKeyword */); - var body = parseClassStaticBlockBody(); - var node = withJSDoc(finishNode(factory2.createClassStaticBlockDeclaration(body), pos), hasJSDoc); - node.modifiers = modifiers; - return node; - } - function parseClassStaticBlockBody() { - var savedYieldContext = inYieldContext(); - var savedAwaitContext = inAwaitContext(); - setYieldContext(false); - setAwaitContext(true); - var body = parseBlock( - /*ignoreMissingOpenBrace*/ - false); - setYieldContext(savedYieldContext); - setAwaitContext(savedAwaitContext); - return body; - } - function parseDecoratorExpression() { - if (inAwaitContext() && token() === 135 /* AwaitKeyword */) { - var pos = getNodePos(); - var awaitExpression = parseIdentifier(Diagnostics.Expression_expected); - nextToken(); - var memberExpression = parseMemberExpressionRest(pos, awaitExpression, - /*allowOptionalChain*/ - true); - return parseCallExpressionRest(pos, memberExpression); - } - return parseLeftHandSideExpressionOrHigher(); - } - function tryParseDecorator() { - var pos = getNodePos(); - if (!parseOptional(60 /* AtToken */)) { - return void 0; - } - var expression = doInDecoratorContext(parseDecoratorExpression); - return finishNode(factory2.createDecorator(expression), pos); - } - function tryParseModifier(hasSeenStaticModifier, permitConstAsModifier, stopOnStartOfClassStaticBlock) { - var pos = getNodePos(); - var kind = token(); - if (token() === 87 /* ConstKeyword */ && permitConstAsModifier) { - if (!tryParse(nextTokenIsOnSameLineAndCanFollowModifier)) { - return void 0; - } - } - else if (stopOnStartOfClassStaticBlock && token() === 126 /* StaticKeyword */ && lookAhead(nextTokenIsOpenBrace)) { - return void 0; - } - else if (hasSeenStaticModifier && token() === 126 /* StaticKeyword */) { - return void 0; - } - else { - if (!parseAnyContextualModifier()) { - return void 0; - } - } - return finishNode(factoryCreateToken(kind), pos); - } - function parseModifiers(allowDecorators, permitConstAsModifier, stopOnStartOfClassStaticBlock) { - var pos = getNodePos(); - var list; - var decorator, modifier, hasSeenStaticModifier = false, hasLeadingModifier = false, hasTrailingDecorator = false; - if (allowDecorators && token() === 60 /* AtToken */) { - while (decorator = tryParseDecorator()) { - list = append(list, decorator); - } - } - while (modifier = tryParseModifier(hasSeenStaticModifier, permitConstAsModifier, stopOnStartOfClassStaticBlock)) { - if (modifier.kind === 126 /* StaticKeyword */) - hasSeenStaticModifier = true; - list = append(list, modifier); - hasLeadingModifier = true; - } - if (hasLeadingModifier && allowDecorators && token() === 60 /* AtToken */) { - while (decorator = tryParseDecorator()) { - list = append(list, decorator); - hasTrailingDecorator = true; - } - } - if (hasTrailingDecorator) { - while (modifier = tryParseModifier(hasSeenStaticModifier, permitConstAsModifier, stopOnStartOfClassStaticBlock)) { - if (modifier.kind === 126 /* StaticKeyword */) - hasSeenStaticModifier = true; - list = append(list, modifier); - } - } - return list && createNodeArray(list, pos); - } - function parseModifiersForArrowFunction() { - var modifiers; - if (token() === 134 /* AsyncKeyword */) { - var pos = getNodePos(); - nextToken(); - var modifier = finishNode(factoryCreateToken(134 /* AsyncKeyword */), pos); - modifiers = createNodeArray([modifier], pos); - } - return modifiers; - } - function parseClassElement() { - var e_98, _t; - var pos = getNodePos(); - var hasJSDoc = hasPrecedingJSDocComment(); - if (token() === 27 /* SemicolonToken */) { - nextToken(); - return withJSDoc(finishNode(factory2.createSemicolonClassElement(), pos), hasJSDoc); - } - var modifiers = parseModifiers( - /*allowDecorators*/ - true, - /*permitConstAsModifier*/ - true, - /*stopOnStartOfClassStaticBlock*/ - true); - if (token() === 126 /* StaticKeyword */ && lookAhead(nextTokenIsOpenBrace)) { - return parseClassStaticBlockDeclaration(pos, hasJSDoc, modifiers); - } - if (parseContextualModifier(139 /* GetKeyword */)) { - return parseAccessorDeclaration(pos, hasJSDoc, modifiers, 177 /* GetAccessor */, 0 /* None */); - } - if (parseContextualModifier(153 /* SetKeyword */)) { - return parseAccessorDeclaration(pos, hasJSDoc, modifiers, 178 /* SetAccessor */, 0 /* None */); - } - if (token() === 137 /* ConstructorKeyword */ || token() === 11 /* StringLiteral */) { - var constructorDeclaration = tryParseConstructorDeclaration(pos, hasJSDoc, modifiers); - if (constructorDeclaration) { - return constructorDeclaration; - } - } - if (isIndexSignature()) { - return parseIndexSignatureDeclaration(pos, hasJSDoc, modifiers); - } - if (tokenIsIdentifierOrKeyword(token()) || token() === 11 /* StringLiteral */ || token() === 9 /* NumericLiteral */ || token() === 42 /* AsteriskToken */ || token() === 23 /* OpenBracketToken */) { - var isAmbient = some(modifiers, isDeclareModifier); - if (isAmbient) { - try { - for (var modifiers_3 = __values(modifiers), modifiers_3_1 = modifiers_3.next(); !modifiers_3_1.done; modifiers_3_1 = modifiers_3.next()) { - var m = modifiers_3_1.value; - m.flags |= 33554432 /* Ambient */; - } - } - catch (e_98_1) { e_98 = { error: e_98_1 }; } - finally { - try { - if (modifiers_3_1 && !modifiers_3_1.done && (_t = modifiers_3.return)) _t.call(modifiers_3); - } - finally { if (e_98) throw e_98.error; } - } - return doInsideOfContext(33554432 /* Ambient */, function () { return parsePropertyOrMethodDeclaration(pos, hasJSDoc, modifiers); }); - } - else { - return parsePropertyOrMethodDeclaration(pos, hasJSDoc, modifiers); - } - } - if (modifiers) { - var name_14 = createMissingNode(80 /* Identifier */, - /*reportAtCurrentPosition*/ - true, Diagnostics.Declaration_expected); - return parsePropertyDeclaration(pos, hasJSDoc, modifiers, name_14, - /*questionToken*/ - void 0); - } - return Debug.fail("Should not have attempted to parse class member declaration."); - } - function parseDecoratedExpression() { - var pos = getNodePos(); - var hasJSDoc = hasPrecedingJSDocComment(); - var modifiers = parseModifiers( - /*allowDecorators*/ - true); - if (token() === 86 /* ClassKeyword */) { - return parseClassDeclarationOrExpression(pos, hasJSDoc, modifiers, 231 /* ClassExpression */); - } - var missing = createMissingNode(282 /* MissingDeclaration */, - /*reportAtCurrentPosition*/ - true, Diagnostics.Expression_expected); - setTextRangePos(missing, pos); - missing.modifiers = modifiers; - return missing; - } - function parseClassExpression() { - return parseClassDeclarationOrExpression(getNodePos(), hasPrecedingJSDocComment(), - /*modifiers*/ - void 0, 231 /* ClassExpression */); - } - function parseClassDeclaration(pos, hasJSDoc, modifiers) { - return parseClassDeclarationOrExpression(pos, hasJSDoc, modifiers, 263 /* ClassDeclaration */); - } - function parseClassDeclarationOrExpression(pos, hasJSDoc, modifiers, kind) { - var savedAwaitContext = inAwaitContext(); - parseExpected(86 /* ClassKeyword */); - var name = parseNameOfClassDeclarationOrExpression(); - var typeParameters = parseTypeParameters(); - if (some(modifiers, isExportModifier)) - setAwaitContext( - /*value*/ - true); - var heritageClauses = parseHeritageClauses(); - var members; - if (parseExpected(19 /* OpenBraceToken */)) { - members = parseClassMembers(); - parseExpected(20 /* CloseBraceToken */); - } - else { - members = createMissingList(); - } - setAwaitContext(savedAwaitContext); - var node = kind === 263 /* ClassDeclaration */ ? factory2.createClassDeclaration(modifiers, name, typeParameters, heritageClauses, members) : factory2.createClassExpression(modifiers, name, typeParameters, heritageClauses, members); - return withJSDoc(finishNode(node, pos), hasJSDoc); - } - function parseNameOfClassDeclarationOrExpression() { - return isBindingIdentifier() && !isImplementsClause() ? createIdentifier(isBindingIdentifier()) : void 0; - } - function isImplementsClause() { - return token() === 119 /* ImplementsKeyword */ && lookAhead(nextTokenIsIdentifierOrKeyword); - } - function parseHeritageClauses() { - if (isHeritageClause2()) { - return parseList(22 /* HeritageClauses */, parseHeritageClause); - } - return void 0; - } - function parseHeritageClause() { - var pos = getNodePos(); - var tok = token(); - Debug.assert(tok === 96 /* ExtendsKeyword */ || tok === 119 /* ImplementsKeyword */); - nextToken(); - var types = parseDelimitedList(7 /* HeritageClauseElement */, parseExpressionWithTypeArguments); - return finishNode(factory2.createHeritageClause(tok, types), pos); - } - function parseExpressionWithTypeArguments() { - var pos = getNodePos(); - var expression = parseLeftHandSideExpressionOrHigher(); - if (expression.kind === 233 /* ExpressionWithTypeArguments */) { - return expression; - } - var typeArguments = tryParseTypeArguments(); - return finishNode(factory2.createExpressionWithTypeArguments(expression, typeArguments), pos); - } - function tryParseTypeArguments() { - return token() === 30 /* LessThanToken */ ? parseBracketedList(20 /* TypeArguments */, parseType, 30 /* LessThanToken */, 32 /* GreaterThanToken */) : void 0; - } - function isHeritageClause2() { - return token() === 96 /* ExtendsKeyword */ || token() === 119 /* ImplementsKeyword */; - } - function parseClassMembers() { - return parseList(5 /* ClassMembers */, parseClassElement); - } - function parseInterfaceDeclaration(pos, hasJSDoc, modifiers) { - parseExpected(120 /* InterfaceKeyword */); - var name = parseIdentifier(); - var typeParameters = parseTypeParameters(); - var heritageClauses = parseHeritageClauses(); - var members = parseObjectTypeMembers(); - var node = factory2.createInterfaceDeclaration(modifiers, name, typeParameters, heritageClauses, members); - return withJSDoc(finishNode(node, pos), hasJSDoc); - } - function parseTypeAliasDeclaration(pos, hasJSDoc, modifiers) { - parseExpected(156 /* TypeKeyword */); - if (scanner2.hasPrecedingLineBreak()) { - parseErrorAtCurrentToken(Diagnostics.Line_break_not_permitted_here); - } - var name = parseIdentifier(); - var typeParameters = parseTypeParameters(); - parseExpected(64 /* EqualsToken */); - var type = token() === 141 /* IntrinsicKeyword */ && tryParse(parseKeywordAndNoDot) || parseType(); - parseSemicolon(); - var node = factory2.createTypeAliasDeclaration(modifiers, name, typeParameters, type); - return withJSDoc(finishNode(node, pos), hasJSDoc); - } - function parseEnumMember() { - var pos = getNodePos(); - var hasJSDoc = hasPrecedingJSDocComment(); - var name = parsePropertyName(); - var initializer = allowInAnd(parseInitializer); - return withJSDoc(finishNode(factory2.createEnumMember(name, initializer), pos), hasJSDoc); - } - function parseEnumDeclaration(pos, hasJSDoc, modifiers) { - parseExpected(94 /* EnumKeyword */); - var name = parseIdentifier(); - var members; - if (parseExpected(19 /* OpenBraceToken */)) { - members = doOutsideOfYieldAndAwaitContext(function () { return parseDelimitedList(6 /* EnumMembers */, parseEnumMember); }); - parseExpected(20 /* CloseBraceToken */); - } - else { - members = createMissingList(); - } - var node = factory2.createEnumDeclaration(modifiers, name, members); - return withJSDoc(finishNode(node, pos), hasJSDoc); - } - function parseModuleBlock() { - var pos = getNodePos(); - var statements; - if (parseExpected(19 /* OpenBraceToken */)) { - statements = parseList(1 /* BlockStatements */, parseStatement); - parseExpected(20 /* CloseBraceToken */); - } - else { - statements = createMissingList(); - } - return finishNode(factory2.createModuleBlock(statements), pos); - } - function parseModuleOrNamespaceDeclaration(pos, hasJSDoc, modifiers, flags) { - var namespaceFlag = flags & 32 /* Namespace */; - var name = parseIdentifier(); - var body = parseOptional(25 /* DotToken */) ? parseModuleOrNamespaceDeclaration(getNodePos(), - /*hasJSDoc*/ - false, - /*modifiers*/ - void 0, 8 /* NestedNamespace */ | namespaceFlag) : parseModuleBlock(); - var node = factory2.createModuleDeclaration(modifiers, name, body, flags); - return withJSDoc(finishNode(node, pos), hasJSDoc); - } - function parseAmbientExternalModuleDeclaration(pos, hasJSDoc, modifiersIn) { - var flags = 0; - var name; - if (token() === 162 /* GlobalKeyword */) { - name = parseIdentifier(); - flags |= 2048 /* GlobalAugmentation */; - } - else { - name = parseLiteralNode(); - name.text = internIdentifier(name.text); - } - var body; - if (token() === 19 /* OpenBraceToken */) { - body = parseModuleBlock(); - } - else { - parseSemicolon(); - } - var node = factory2.createModuleDeclaration(modifiersIn, name, body, flags); - return withJSDoc(finishNode(node, pos), hasJSDoc); - } - function parseModuleDeclaration(pos, hasJSDoc, modifiersIn) { - var flags = 0; - if (token() === 162 /* GlobalKeyword */) { - return parseAmbientExternalModuleDeclaration(pos, hasJSDoc, modifiersIn); - } - else if (parseOptional(145 /* NamespaceKeyword */)) { - flags |= 32 /* Namespace */; - } - else { - parseExpected(144 /* ModuleKeyword */); - if (token() === 11 /* StringLiteral */) { - return parseAmbientExternalModuleDeclaration(pos, hasJSDoc, modifiersIn); - } - } - return parseModuleOrNamespaceDeclaration(pos, hasJSDoc, modifiersIn, flags); - } - function isExternalModuleReference2() { - return token() === 149 /* RequireKeyword */ && lookAhead(nextTokenIsOpenParen); - } - function nextTokenIsOpenParen() { - return nextToken() === 21 /* OpenParenToken */; - } - function nextTokenIsOpenBrace() { - return nextToken() === 19 /* OpenBraceToken */; - } - function nextTokenIsSlash() { - return nextToken() === 44 /* SlashToken */; - } - function parseNamespaceExportDeclaration(pos, hasJSDoc, modifiers) { - parseExpected(130 /* AsKeyword */); - parseExpected(145 /* NamespaceKeyword */); - var name = parseIdentifier(); - parseSemicolon(); - var node = factory2.createNamespaceExportDeclaration(name); - node.modifiers = modifiers; - return withJSDoc(finishNode(node, pos), hasJSDoc); - } - function parseImportDeclarationOrImportEqualsDeclaration(pos, hasJSDoc, modifiers) { - parseExpected(102 /* ImportKeyword */); - var afterImportPos = scanner2.getTokenFullStart(); - var identifier; - if (isIdentifier2()) { - identifier = parseIdentifier(); - } - var isTypeOnly = false; - if (token() !== 161 /* FromKeyword */ && (identifier == null ? void 0 : identifier.escapedText) === "type" && (isIdentifier2() || tokenAfterImportDefinitelyProducesImportDeclaration())) { - isTypeOnly = true; - identifier = isIdentifier2() ? parseIdentifier() : void 0; - } - if (identifier && !tokenAfterImportedIdentifierDefinitelyProducesImportDeclaration()) { - return parseImportEqualsDeclaration(pos, hasJSDoc, modifiers, identifier, isTypeOnly); - } - var importClause; - if (identifier || // import id - token() === 42 /* AsteriskToken */ || // import * - token() === 19 /* OpenBraceToken */) { - importClause = parseImportClause(identifier, afterImportPos, isTypeOnly); - parseExpected(161 /* FromKeyword */); - } - var moduleSpecifier = parseModuleSpecifier(); - var assertClause; - if (token() === 132 /* AssertKeyword */ && !scanner2.hasPrecedingLineBreak()) { - assertClause = parseAssertClause(); - } - parseSemicolon(); - var node = factory2.createImportDeclaration(modifiers, importClause, moduleSpecifier, assertClause); - return withJSDoc(finishNode(node, pos), hasJSDoc); - } - function parseAssertEntry() { - var pos = getNodePos(); - var name = tokenIsIdentifierOrKeyword(token()) ? parseIdentifierName() : parseLiteralLikeNode(11 /* StringLiteral */); - parseExpected(59 /* ColonToken */); - var value = parseAssignmentExpressionOrHigher( - /*allowReturnTypeInArrowFunction*/ - true); - return finishNode(factory2.createAssertEntry(name, value), pos); - } - function parseAssertClause(skipAssertKeyword) { - var pos = getNodePos(); - if (!skipAssertKeyword) { - parseExpected(132 /* AssertKeyword */); - } - var openBracePosition = scanner2.getTokenStart(); - if (parseExpected(19 /* OpenBraceToken */)) { - var multiLine = scanner2.hasPrecedingLineBreak(); - var elements = parseDelimitedList(24 /* AssertEntries */, parseAssertEntry, - /*considerSemicolonAsDelimiter*/ - true); - if (!parseExpected(20 /* CloseBraceToken */)) { - var lastError = lastOrUndefined(parseDiagnostics); - if (lastError && lastError.code === Diagnostics._0_expected.code) { - addRelatedInfo(lastError, createDetachedDiagnostic(fileName, openBracePosition, 1, Diagnostics.The_parser_expected_to_find_a_1_to_match_the_0_token_here, "{", "}")); - } - } - return finishNode(factory2.createAssertClause(elements, multiLine), pos); - } - else { - var elements = createNodeArray([], getNodePos(), - /*end*/ - void 0, - /*hasTrailingComma*/ - false); - return finishNode(factory2.createAssertClause(elements, - /*multiLine*/ - false), pos); - } - } - function tokenAfterImportDefinitelyProducesImportDeclaration() { - return token() === 42 /* AsteriskToken */ || token() === 19 /* OpenBraceToken */; - } - function tokenAfterImportedIdentifierDefinitelyProducesImportDeclaration() { - return token() === 28 /* CommaToken */ || token() === 161 /* FromKeyword */; - } - function parseImportEqualsDeclaration(pos, hasJSDoc, modifiers, identifier, isTypeOnly) { - parseExpected(64 /* EqualsToken */); - var moduleReference = parseModuleReference(); - parseSemicolon(); - var node = factory2.createImportEqualsDeclaration(modifiers, isTypeOnly, identifier, moduleReference); - var finished = withJSDoc(finishNode(node, pos), hasJSDoc); - return finished; - } - function parseImportClause(identifier, pos, isTypeOnly) { - var namedBindings; - if (!identifier || parseOptional(28 /* CommaToken */)) { - namedBindings = token() === 42 /* AsteriskToken */ ? parseNamespaceImport() : parseNamedImportsOrExports(275 /* NamedImports */); - } - return finishNode(factory2.createImportClause(isTypeOnly, identifier, namedBindings), pos); - } - function parseModuleReference() { - return isExternalModuleReference2() ? parseExternalModuleReference() : parseEntityName( - /*allowReservedWords*/ - false); - } - function parseExternalModuleReference() { - var pos = getNodePos(); - parseExpected(149 /* RequireKeyword */); - parseExpected(21 /* OpenParenToken */); - var expression = parseModuleSpecifier(); - parseExpected(22 /* CloseParenToken */); - return finishNode(factory2.createExternalModuleReference(expression), pos); - } - function parseModuleSpecifier() { - if (token() === 11 /* StringLiteral */) { - var result = parseLiteralNode(); - result.text = internIdentifier(result.text); - return result; - } - else { - return parseExpression(); - } - } - function parseNamespaceImport() { - var pos = getNodePos(); - parseExpected(42 /* AsteriskToken */); - parseExpected(130 /* AsKeyword */); - var name = parseIdentifier(); - return finishNode(factory2.createNamespaceImport(name), pos); - } - function parseNamedImportsOrExports(kind) { - var pos = getNodePos(); - var node = kind === 275 /* NamedImports */ ? factory2.createNamedImports(parseBracketedList(23 /* ImportOrExportSpecifiers */, parseImportSpecifier, 19 /* OpenBraceToken */, 20 /* CloseBraceToken */)) : factory2.createNamedExports(parseBracketedList(23 /* ImportOrExportSpecifiers */, parseExportSpecifier, 19 /* OpenBraceToken */, 20 /* CloseBraceToken */)); - return finishNode(node, pos); - } - function parseExportSpecifier() { - var hasJSDoc = hasPrecedingJSDocComment(); - return withJSDoc(parseImportOrExportSpecifier(281 /* ExportSpecifier */), hasJSDoc); - } - function parseImportSpecifier() { - return parseImportOrExportSpecifier(276 /* ImportSpecifier */); - } - function parseImportOrExportSpecifier(kind) { - var pos = getNodePos(); - var checkIdentifierIsKeyword = isKeyword(token()) && !isIdentifier2(); - var checkIdentifierStart = scanner2.getTokenStart(); - var checkIdentifierEnd = scanner2.getTokenEnd(); - var isTypeOnly = false; - var propertyName; - var canParseAsKeyword = true; - var name = parseIdentifierName(); - if (name.escapedText === "type") { - if (token() === 130 /* AsKeyword */) { - var firstAs = parseIdentifierName(); - if (token() === 130 /* AsKeyword */) { - var secondAs = parseIdentifierName(); - if (tokenIsIdentifierOrKeyword(token())) { - isTypeOnly = true; - propertyName = firstAs; - name = parseNameWithKeywordCheck(); - canParseAsKeyword = false; - } - else { - propertyName = name; - name = secondAs; - canParseAsKeyword = false; - } - } - else if (tokenIsIdentifierOrKeyword(token())) { - propertyName = name; - canParseAsKeyword = false; - name = parseNameWithKeywordCheck(); - } - else { - isTypeOnly = true; - name = firstAs; - } - } - else if (tokenIsIdentifierOrKeyword(token())) { - isTypeOnly = true; - name = parseNameWithKeywordCheck(); - } - } - if (canParseAsKeyword && token() === 130 /* AsKeyword */) { - propertyName = name; - parseExpected(130 /* AsKeyword */); - name = parseNameWithKeywordCheck(); - } - if (kind === 276 /* ImportSpecifier */ && checkIdentifierIsKeyword) { - parseErrorAt(checkIdentifierStart, checkIdentifierEnd, Diagnostics.Identifier_expected); - } - var node = kind === 276 /* ImportSpecifier */ ? factory2.createImportSpecifier(isTypeOnly, propertyName, name) : factory2.createExportSpecifier(isTypeOnly, propertyName, name); - return finishNode(node, pos); - function parseNameWithKeywordCheck() { - checkIdentifierIsKeyword = isKeyword(token()) && !isIdentifier2(); - checkIdentifierStart = scanner2.getTokenStart(); - checkIdentifierEnd = scanner2.getTokenEnd(); - return parseIdentifierName(); - } - } - function parseNamespaceExport(pos) { - return finishNode(factory2.createNamespaceExport(parseIdentifierName()), pos); - } - function parseExportDeclaration(pos, hasJSDoc, modifiers) { - var savedAwaitContext = inAwaitContext(); - setAwaitContext( - /*value*/ - true); - var exportClause; - var moduleSpecifier; - var assertClause; - var isTypeOnly = parseOptional(156 /* TypeKeyword */); - var namespaceExportPos = getNodePos(); - if (parseOptional(42 /* AsteriskToken */)) { - if (parseOptional(130 /* AsKeyword */)) { - exportClause = parseNamespaceExport(namespaceExportPos); - } - parseExpected(161 /* FromKeyword */); - moduleSpecifier = parseModuleSpecifier(); - } - else { - exportClause = parseNamedImportsOrExports(279 /* NamedExports */); - if (token() === 161 /* FromKeyword */ || token() === 11 /* StringLiteral */ && !scanner2.hasPrecedingLineBreak()) { - parseExpected(161 /* FromKeyword */); - moduleSpecifier = parseModuleSpecifier(); - } - } - if (moduleSpecifier && token() === 132 /* AssertKeyword */ && !scanner2.hasPrecedingLineBreak()) { - assertClause = parseAssertClause(); - } - parseSemicolon(); - setAwaitContext(savedAwaitContext); - var node = factory2.createExportDeclaration(modifiers, isTypeOnly, exportClause, moduleSpecifier, assertClause); - return withJSDoc(finishNode(node, pos), hasJSDoc); - } - function parseExportAssignment(pos, hasJSDoc, modifiers) { - var savedAwaitContext = inAwaitContext(); - setAwaitContext( - /*value*/ - true); - var isExportEquals; - if (parseOptional(64 /* EqualsToken */)) { - isExportEquals = true; - } - else { - parseExpected(90 /* DefaultKeyword */); - } - var expression = parseAssignmentExpressionOrHigher( - /*allowReturnTypeInArrowFunction*/ - true); - parseSemicolon(); - setAwaitContext(savedAwaitContext); - var node = factory2.createExportAssignment(modifiers, isExportEquals, expression); - return withJSDoc(finishNode(node, pos), hasJSDoc); - } - var ParsingContext; - (function (ParsingContext2) { - ParsingContext2[ParsingContext2["SourceElements"] = 0] = "SourceElements"; - ParsingContext2[ParsingContext2["BlockStatements"] = 1] = "BlockStatements"; - ParsingContext2[ParsingContext2["SwitchClauses"] = 2] = "SwitchClauses"; - ParsingContext2[ParsingContext2["SwitchClauseStatements"] = 3] = "SwitchClauseStatements"; - ParsingContext2[ParsingContext2["TypeMembers"] = 4] = "TypeMembers"; - ParsingContext2[ParsingContext2["ClassMembers"] = 5] = "ClassMembers"; - ParsingContext2[ParsingContext2["EnumMembers"] = 6] = "EnumMembers"; - ParsingContext2[ParsingContext2["HeritageClauseElement"] = 7] = "HeritageClauseElement"; - ParsingContext2[ParsingContext2["VariableDeclarations"] = 8] = "VariableDeclarations"; - ParsingContext2[ParsingContext2["ObjectBindingElements"] = 9] = "ObjectBindingElements"; - ParsingContext2[ParsingContext2["ArrayBindingElements"] = 10] = "ArrayBindingElements"; - ParsingContext2[ParsingContext2["ArgumentExpressions"] = 11] = "ArgumentExpressions"; - ParsingContext2[ParsingContext2["ObjectLiteralMembers"] = 12] = "ObjectLiteralMembers"; - ParsingContext2[ParsingContext2["JsxAttributes"] = 13] = "JsxAttributes"; - ParsingContext2[ParsingContext2["JsxChildren"] = 14] = "JsxChildren"; - ParsingContext2[ParsingContext2["ArrayLiteralMembers"] = 15] = "ArrayLiteralMembers"; - ParsingContext2[ParsingContext2["Parameters"] = 16] = "Parameters"; - ParsingContext2[ParsingContext2["JSDocParameters"] = 17] = "JSDocParameters"; - ParsingContext2[ParsingContext2["RestProperties"] = 18] = "RestProperties"; - ParsingContext2[ParsingContext2["TypeParameters"] = 19] = "TypeParameters"; - ParsingContext2[ParsingContext2["TypeArguments"] = 20] = "TypeArguments"; - ParsingContext2[ParsingContext2["TupleElementTypes"] = 21] = "TupleElementTypes"; - ParsingContext2[ParsingContext2["HeritageClauses"] = 22] = "HeritageClauses"; - ParsingContext2[ParsingContext2["ImportOrExportSpecifiers"] = 23] = "ImportOrExportSpecifiers"; - ParsingContext2[ParsingContext2["AssertEntries"] = 24] = "AssertEntries"; - ParsingContext2[ParsingContext2["JSDocComment"] = 25] = "JSDocComment"; - ParsingContext2[ParsingContext2["Count"] = 26] = "Count"; - })(ParsingContext || (ParsingContext = {})); - var Tristate; - (function (Tristate2) { - Tristate2[Tristate2["False"] = 0] = "False"; - Tristate2[Tristate2["True"] = 1] = "True"; - Tristate2[Tristate2["Unknown"] = 2] = "Unknown"; - })(Tristate || (Tristate = {})); - var JSDocParser; - (function (JSDocParser2) { - function parseJSDocTypeExpressionForTests2(content, start2, length2) { - initializeState("file.js", content, 99 /* Latest */, - /*syntaxCursor*/ - void 0, 1 /* JS */); - scanner2.setText(content, start2, length2); - currentToken = scanner2.scan(); - var jsDocTypeExpression = parseJSDocTypeExpression(); - var sourceFile = createSourceFile2("file.js", 99 /* Latest */, 1 /* JS */, - /*isDeclarationFile*/ - false, [], factoryCreateToken(1 /* EndOfFileToken */), 0 /* None */, noop); - var diagnostics = attachFileToDiagnostics(parseDiagnostics, sourceFile); - if (jsDocDiagnostics) { - sourceFile.jsDocDiagnostics = attachFileToDiagnostics(jsDocDiagnostics, sourceFile); - } - clearState(); - return jsDocTypeExpression ? { jsDocTypeExpression: jsDocTypeExpression, diagnostics: diagnostics } : void 0; - } - JSDocParser2.parseJSDocTypeExpressionForTests = parseJSDocTypeExpressionForTests2; - function parseJSDocTypeExpression(mayOmitBraces) { - var pos = getNodePos(); - var hasBrace = (mayOmitBraces ? parseOptional : parseExpected)(19 /* OpenBraceToken */); - var type = doInsideOfContext(16777216 /* JSDoc */, parseJSDocType); - if (!mayOmitBraces || hasBrace) { - parseExpectedJSDoc(20 /* CloseBraceToken */); - } - var result = factory2.createJSDocTypeExpression(type); - fixupParentReferences(result); - return finishNode(result, pos); - } - JSDocParser2.parseJSDocTypeExpression = parseJSDocTypeExpression; - function parseJSDocNameReference() { - var pos = getNodePos(); - var hasBrace = parseOptional(19 /* OpenBraceToken */); - var p2 = getNodePos(); - var entityName = parseEntityName( - /*allowReservedWords*/ - false); - while (token() === 81 /* PrivateIdentifier */) { - reScanHashToken(); - nextTokenJSDoc(); - entityName = finishNode(factory2.createJSDocMemberName(entityName, parseIdentifier()), p2); - } - if (hasBrace) { - parseExpectedJSDoc(20 /* CloseBraceToken */); - } - var result = factory2.createJSDocNameReference(entityName); - fixupParentReferences(result); - return finishNode(result, pos); - } - JSDocParser2.parseJSDocNameReference = parseJSDocNameReference; - function parseIsolatedJSDocComment2(content, start2, length2) { - initializeState("", content, 99 /* Latest */, - /*syntaxCursor*/ - void 0, 1 /* JS */); - var jsDoc = doInsideOfContext(16777216 /* JSDoc */, function () { return parseJSDocCommentWorker(start2, length2); }); - var sourceFile = { languageVariant: 0 /* Standard */, text: content }; - var diagnostics = attachFileToDiagnostics(parseDiagnostics, sourceFile); - clearState(); - return jsDoc ? { jsDoc: jsDoc, diagnostics: diagnostics } : void 0; - } - JSDocParser2.parseIsolatedJSDocComment = parseIsolatedJSDocComment2; - function parseJSDocComment(parent2, start2, length2) { - var saveToken = currentToken; - var saveParseDiagnosticsLength = parseDiagnostics.length; - var saveParseErrorBeforeNextFinishedNode = parseErrorBeforeNextFinishedNode; - var comment = doInsideOfContext(16777216 /* JSDoc */, function () { return parseJSDocCommentWorker(start2, length2); }); - setParent(comment, parent2); - if (contextFlags & 524288 /* JavaScriptFile */) { - if (!jsDocDiagnostics) { - jsDocDiagnostics = []; - } - jsDocDiagnostics.push.apply(jsDocDiagnostics, __spreadArray([], __read(parseDiagnostics), false)); - } - currentToken = saveToken; - parseDiagnostics.length = saveParseDiagnosticsLength; - parseErrorBeforeNextFinishedNode = saveParseErrorBeforeNextFinishedNode; - return comment; - } - JSDocParser2.parseJSDocComment = parseJSDocComment; - var JSDocState; - (function (JSDocState2) { - JSDocState2[JSDocState2["BeginningOfLine"] = 0] = "BeginningOfLine"; - JSDocState2[JSDocState2["SawAsterisk"] = 1] = "SawAsterisk"; - JSDocState2[JSDocState2["SavingComments"] = 2] = "SavingComments"; - JSDocState2[JSDocState2["SavingBackticks"] = 3] = "SavingBackticks"; - })(JSDocState || (JSDocState = {})); - var PropertyLikeParse; - (function (PropertyLikeParse2) { - PropertyLikeParse2[PropertyLikeParse2["Property"] = 1] = "Property"; - PropertyLikeParse2[PropertyLikeParse2["Parameter"] = 2] = "Parameter"; - PropertyLikeParse2[PropertyLikeParse2["CallbackParameter"] = 4] = "CallbackParameter"; - })(PropertyLikeParse || (PropertyLikeParse = {})); - function parseJSDocCommentWorker(start2, length2) { - if (start2 === void 0) { start2 = 0; } - var saveParsingContext = parsingContext; - parsingContext |= 1 << 25 /* JSDocComment */; - var content = sourceText; - var end = length2 === void 0 ? content.length : start2 + length2; - length2 = end - start2; - Debug.assert(start2 >= 0); - Debug.assert(start2 <= end); - Debug.assert(end <= content.length); - if (!isJSDocLikeText(content, start2)) { - return void 0; - } - var tags; - var tagsPos; - var tagsEnd; - var linkEnd; - var commentsPos; - var comments = []; - var parts = []; - var result = scanner2.scanRange(start2 + 3, length2 - 5, doJSDocScan); - parsingContext = saveParsingContext; - return result; - function doJSDocScan() { - var state = 1 /* SawAsterisk */; - var margin; - var indent3 = start2 - (content.lastIndexOf("\n", start2) + 1) + 4; - function pushComment(text) { - if (!margin) { - margin = indent3; - } - comments.push(text); - indent3 += text.length; - } - nextTokenJSDoc(); - while (parseOptionalJsdoc(5 /* WhitespaceTrivia */)) - ; - if (parseOptionalJsdoc(4 /* NewLineTrivia */)) { - state = 0 /* BeginningOfLine */; - indent3 = 0; - } - loop: while (true) { - switch (token()) { - case 60 /* AtToken */: - removeTrailingWhitespace(comments); - if (!commentsPos) - commentsPos = getNodePos(); - addTag(parseTag(indent3)); - state = 0 /* BeginningOfLine */; - margin = void 0; - break; - case 4 /* NewLineTrivia */: - comments.push(scanner2.getTokenText()); - state = 0 /* BeginningOfLine */; - indent3 = 0; - break; - case 42 /* AsteriskToken */: - var asterisk = scanner2.getTokenText(); - if (state === 1 /* SawAsterisk */) { - state = 2 /* SavingComments */; - pushComment(asterisk); - } - else { - Debug.assert(state === 0 /* BeginningOfLine */); - state = 1 /* SawAsterisk */; - indent3 += asterisk.length; - } - break; - case 5 /* WhitespaceTrivia */: - Debug.assert(state !== 2 /* SavingComments */, "whitespace shouldn't come from the scanner while saving top-level comment text"); - var whitespace = scanner2.getTokenText(); - if (margin !== void 0 && indent3 + whitespace.length > margin) { - comments.push(whitespace.slice(margin - indent3)); - } - indent3 += whitespace.length; - break; - case 1 /* EndOfFileToken */: - break loop; - case 82 /* JSDocCommentTextToken */: - state = 2 /* SavingComments */; - pushComment(scanner2.getTokenValue()); - break; - case 19 /* OpenBraceToken */: - state = 2 /* SavingComments */; - var commentEnd = scanner2.getTokenFullStart(); - var linkStart = scanner2.getTokenEnd() - 1; - var link = parseJSDocLink(linkStart); - if (link) { - if (!linkEnd) { - removeLeadingNewlines(comments); - } - parts.push(finishNode(factory2.createJSDocText(comments.join("")), linkEnd !== null && linkEnd !== void 0 ? linkEnd : start2, commentEnd)); - parts.push(link); - comments = []; - linkEnd = scanner2.getTokenEnd(); - break; - } - default: - state = 2 /* SavingComments */; - pushComment(scanner2.getTokenText()); - break; - } - if (state === 2 /* SavingComments */) { - nextJSDocCommentTextToken( - /*inBackticks*/ - false); - } - else { - nextTokenJSDoc(); - } - } - var trimmedComments = trimStringEnd(comments.join("")); - if (parts.length && trimmedComments.length) { - parts.push(finishNode(factory2.createJSDocText(trimmedComments), linkEnd !== null && linkEnd !== void 0 ? linkEnd : start2, commentsPos)); - } - if (parts.length && tags) - Debug.assertIsDefined(commentsPos, "having parsed tags implies that the end of the comment span should be set"); - var tagsArray = tags && createNodeArray(tags, tagsPos, tagsEnd); - return finishNode(factory2.createJSDocComment(parts.length ? createNodeArray(parts, start2, commentsPos) : trimmedComments.length ? trimmedComments : void 0, tagsArray), start2, end); - } - function removeLeadingNewlines(comments2) { - while (comments2.length && (comments2[0] === "\n" || comments2[0] === "\r")) { - comments2.shift(); - } - } - function removeTrailingWhitespace(comments2) { - while (comments2.length) { - var trimmed = trimStringEnd(comments2[comments2.length - 1]); - if (trimmed === "") { - comments2.pop(); - } - else if (trimmed.length < comments2[comments2.length - 1].length) { - comments2[comments2.length - 1] = trimmed; - break; - } - else { - break; - } - } - } - function isNextNonwhitespaceTokenEndOfFile() { - while (true) { - nextTokenJSDoc(); - if (token() === 1 /* EndOfFileToken */) { - return true; - } - if (!(token() === 5 /* WhitespaceTrivia */ || token() === 4 /* NewLineTrivia */)) { - return false; - } - } - } - function skipWhitespace() { - if (token() === 5 /* WhitespaceTrivia */ || token() === 4 /* NewLineTrivia */) { - if (lookAhead(isNextNonwhitespaceTokenEndOfFile)) { - return; - } - } - while (token() === 5 /* WhitespaceTrivia */ || token() === 4 /* NewLineTrivia */) { - nextTokenJSDoc(); - } - } - function skipWhitespaceOrAsterisk() { - if (token() === 5 /* WhitespaceTrivia */ || token() === 4 /* NewLineTrivia */) { - if (lookAhead(isNextNonwhitespaceTokenEndOfFile)) { - return ""; - } - } - var precedingLineBreak = scanner2.hasPrecedingLineBreak(); - var seenLineBreak = false; - var indentText = ""; - while (precedingLineBreak && token() === 42 /* AsteriskToken */ || token() === 5 /* WhitespaceTrivia */ || token() === 4 /* NewLineTrivia */) { - indentText += scanner2.getTokenText(); - if (token() === 4 /* NewLineTrivia */) { - precedingLineBreak = true; - seenLineBreak = true; - indentText = ""; - } - else if (token() === 42 /* AsteriskToken */) { - precedingLineBreak = false; - } - nextTokenJSDoc(); - } - return seenLineBreak ? indentText : ""; - } - function parseTag(margin) { - Debug.assert(token() === 60 /* AtToken */); - var start3 = scanner2.getTokenStart(); - nextTokenJSDoc(); - var tagName = parseJSDocIdentifierName( - /*message*/ - void 0); - var indentText = skipWhitespaceOrAsterisk(); - var tag; - switch (tagName.escapedText) { - case "author": - tag = parseAuthorTag(start3, tagName, margin, indentText); - break; - case "implements": - tag = parseImplementsTag(start3, tagName, margin, indentText); - break; - case "augments": - case "extends": - tag = parseAugmentsTag(start3, tagName, margin, indentText); - break; - case "class": - case "constructor": - tag = parseSimpleTag(start3, factory2.createJSDocClassTag, tagName, margin, indentText); - break; - case "public": - tag = parseSimpleTag(start3, factory2.createJSDocPublicTag, tagName, margin, indentText); - break; - case "private": - tag = parseSimpleTag(start3, factory2.createJSDocPrivateTag, tagName, margin, indentText); - break; - case "protected": - tag = parseSimpleTag(start3, factory2.createJSDocProtectedTag, tagName, margin, indentText); - break; - case "readonly": - tag = parseSimpleTag(start3, factory2.createJSDocReadonlyTag, tagName, margin, indentText); - break; - case "override": - tag = parseSimpleTag(start3, factory2.createJSDocOverrideTag, tagName, margin, indentText); - break; - case "deprecated": - hasDeprecatedTag = true; - tag = parseSimpleTag(start3, factory2.createJSDocDeprecatedTag, tagName, margin, indentText); - break; - case "this": - tag = parseThisTag(start3, tagName, margin, indentText); - break; - case "enum": - tag = parseEnumTag(start3, tagName, margin, indentText); - break; - case "arg": - case "argument": - case "param": - return parseParameterOrPropertyTag(start3, tagName, 2 /* Parameter */, margin); - case "return": - case "returns": - tag = parseReturnTag(start3, tagName, margin, indentText); - break; - case "template": - tag = parseTemplateTag(start3, tagName, margin, indentText); - break; - case "type": - tag = parseTypeTag(start3, tagName, margin, indentText); - break; - case "typedef": - tag = parseTypedefTag(start3, tagName, margin, indentText); - break; - case "callback": - tag = parseCallbackTag(start3, tagName, margin, indentText); - break; - case "overload": - tag = parseOverloadTag(start3, tagName, margin, indentText); - break; - case "satisfies": - tag = parseSatisfiesTag(start3, tagName, margin, indentText); - break; - case "see": - tag = parseSeeTag(start3, tagName, margin, indentText); - break; - case "exception": - case "throws": - tag = parseThrowsTag(start3, tagName, margin, indentText); - break; - default: - tag = parseUnknownTag(start3, tagName, margin, indentText); - break; - } - return tag; - } - function parseTrailingTagComments(pos, end2, margin, indentText) { - if (!indentText) { - margin += end2 - pos; - } - return parseTagComments(margin, indentText.slice(margin)); - } - function parseTagComments(indent3, initialMargin) { - var commentsPos2 = getNodePos(); - var comments2 = []; - var parts2 = []; - var linkEnd2; - var state = 0 /* BeginningOfLine */; - var margin; - function pushComment(text) { - if (!margin) { - margin = indent3; - } - comments2.push(text); - indent3 += text.length; - } - if (initialMargin !== void 0) { - if (initialMargin !== "") { - pushComment(initialMargin); - } - state = 1 /* SawAsterisk */; - } - var tok = token(); - loop: while (true) { - switch (tok) { - case 4 /* NewLineTrivia */: - state = 0 /* BeginningOfLine */; - comments2.push(scanner2.getTokenText()); - indent3 = 0; - break; - case 60 /* AtToken */: - scanner2.resetTokenState(scanner2.getTokenEnd() - 1); - break loop; - case 1 /* EndOfFileToken */: - break loop; - case 5 /* WhitespaceTrivia */: - Debug.assert(state !== 2 /* SavingComments */ && state !== 3 /* SavingBackticks */, "whitespace shouldn't come from the scanner while saving comment text"); - var whitespace = scanner2.getTokenText(); - if (margin !== void 0 && indent3 + whitespace.length > margin) { - comments2.push(whitespace.slice(margin - indent3)); - state = 2 /* SavingComments */; - } - indent3 += whitespace.length; - break; - case 19 /* OpenBraceToken */: - state = 2 /* SavingComments */; - var commentEnd = scanner2.getTokenFullStart(); - var linkStart = scanner2.getTokenEnd() - 1; - var link = parseJSDocLink(linkStart); - if (link) { - parts2.push(finishNode(factory2.createJSDocText(comments2.join("")), linkEnd2 !== null && linkEnd2 !== void 0 ? linkEnd2 : commentsPos2, commentEnd)); - parts2.push(link); - comments2 = []; - linkEnd2 = scanner2.getTokenEnd(); - } - else { - pushComment(scanner2.getTokenText()); - } - break; - case 62 /* BacktickToken */: - if (state === 3 /* SavingBackticks */) { - state = 2 /* SavingComments */; - } - else { - state = 3 /* SavingBackticks */; - } - pushComment(scanner2.getTokenText()); - break; - case 82 /* JSDocCommentTextToken */: - if (state !== 3 /* SavingBackticks */) { - state = 2 /* SavingComments */; - } - pushComment(scanner2.getTokenValue()); - break; - case 42 /* AsteriskToken */: - if (state === 0 /* BeginningOfLine */) { - state = 1 /* SawAsterisk */; - indent3 += 1; - break; - } - default: - if (state !== 3 /* SavingBackticks */) { - state = 2 /* SavingComments */; - } - pushComment(scanner2.getTokenText()); - break; - } - if (state === 2 /* SavingComments */ || state === 3 /* SavingBackticks */) { - tok = nextJSDocCommentTextToken(state === 3 /* SavingBackticks */); - } - else { - tok = nextTokenJSDoc(); - } - } - removeLeadingNewlines(comments2); - var trimmedComments = trimStringEnd(comments2.join("")); - if (parts2.length) { - if (trimmedComments.length) { - parts2.push(finishNode(factory2.createJSDocText(trimmedComments), linkEnd2 !== null && linkEnd2 !== void 0 ? linkEnd2 : commentsPos2)); - } - return createNodeArray(parts2, commentsPos2, scanner2.getTokenEnd()); - } - else if (trimmedComments.length) { - return trimmedComments; - } - } - function parseJSDocLink(start3) { - var linkType = tryParse(parseJSDocLinkPrefix); - if (!linkType) { - return void 0; - } - nextTokenJSDoc(); - skipWhitespace(); - var p2 = getNodePos(); - var name = tokenIsIdentifierOrKeyword(token()) ? parseEntityName( - /*allowReservedWords*/ - true) : void 0; - if (name) { - while (token() === 81 /* PrivateIdentifier */) { - reScanHashToken(); - nextTokenJSDoc(); - name = finishNode(factory2.createJSDocMemberName(name, parseIdentifier()), p2); - } - } - var text = []; - while (token() !== 20 /* CloseBraceToken */ && token() !== 4 /* NewLineTrivia */ && token() !== 1 /* EndOfFileToken */) { - text.push(scanner2.getTokenText()); - nextTokenJSDoc(); - } - var create = linkType === "link" ? factory2.createJSDocLink : linkType === "linkcode" ? factory2.createJSDocLinkCode : factory2.createJSDocLinkPlain; - return finishNode(create(name, text.join("")), start3, scanner2.getTokenEnd()); - } - function parseJSDocLinkPrefix() { - skipWhitespaceOrAsterisk(); - if (token() === 19 /* OpenBraceToken */ && nextTokenJSDoc() === 60 /* AtToken */ && tokenIsIdentifierOrKeyword(nextTokenJSDoc())) { - var kind = scanner2.getTokenValue(); - if (isJSDocLinkTag(kind)) - return kind; - } - } - function isJSDocLinkTag(kind) { - return kind === "link" || kind === "linkcode" || kind === "linkplain"; - } - function parseUnknownTag(start3, tagName, indent3, indentText) { - return finishNode(factory2.createJSDocUnknownTag(tagName, parseTrailingTagComments(start3, getNodePos(), indent3, indentText)), start3); - } - function addTag(tag) { - if (!tag) { - return; - } - if (!tags) { - tags = [tag]; - tagsPos = tag.pos; - } - else { - tags.push(tag); - } - tagsEnd = tag.end; - } - function tryParseTypeExpression() { - skipWhitespaceOrAsterisk(); - return token() === 19 /* OpenBraceToken */ ? parseJSDocTypeExpression() : void 0; - } - function parseBracketNameInPropertyAndParamTag() { - var isBracketed = parseOptionalJsdoc(23 /* OpenBracketToken */); - if (isBracketed) { - skipWhitespace(); - } - var isBackquoted = parseOptionalJsdoc(62 /* BacktickToken */); - var name = parseJSDocEntityName(); - if (isBackquoted) { - parseExpectedTokenJSDoc(62 /* BacktickToken */); - } - if (isBracketed) { - skipWhitespace(); - if (parseOptionalToken(64 /* EqualsToken */)) { - parseExpression(); - } - parseExpected(24 /* CloseBracketToken */); - } - return { name: name, isBracketed: isBracketed }; - } - function isObjectOrObjectArrayTypeReference(node) { - switch (node.kind) { - case 151 /* ObjectKeyword */: - return true; - case 188 /* ArrayType */: - return isObjectOrObjectArrayTypeReference(node.elementType); - default: - return isTypeReferenceNode(node) && isIdentifier(node.typeName) && node.typeName.escapedText === "Object" && !node.typeArguments; - } - } - function parseParameterOrPropertyTag(start3, tagName, target, indent3) { - var typeExpression = tryParseTypeExpression(); - var isNameFirst = !typeExpression; - skipWhitespaceOrAsterisk(); - var _t = parseBracketNameInPropertyAndParamTag(), name = _t.name, isBracketed = _t.isBracketed; - var indentText = skipWhitespaceOrAsterisk(); - if (isNameFirst && !lookAhead(parseJSDocLinkPrefix)) { - typeExpression = tryParseTypeExpression(); - } - var comment = parseTrailingTagComments(start3, getNodePos(), indent3, indentText); - var nestedTypeLiteral = parseNestedTypeLiteral(typeExpression, name, target, indent3); - if (nestedTypeLiteral) { - typeExpression = nestedTypeLiteral; - isNameFirst = true; - } - var result2 = target === 1 /* Property */ ? factory2.createJSDocPropertyTag(tagName, name, isBracketed, typeExpression, isNameFirst, comment) : factory2.createJSDocParameterTag(tagName, name, isBracketed, typeExpression, isNameFirst, comment); - return finishNode(result2, start3); - } - function parseNestedTypeLiteral(typeExpression, name, target, indent3) { - if (typeExpression && isObjectOrObjectArrayTypeReference(typeExpression.type)) { - var pos = getNodePos(); - var child = void 0; - var children = void 0; - while (child = tryParse(function () { return parseChildParameterOrPropertyTag(target, indent3, name); })) { - if (child.kind === 348 /* JSDocParameterTag */ || child.kind === 355 /* JSDocPropertyTag */) { - children = append(children, child); - } - else if (child.kind === 352 /* JSDocTemplateTag */) { - parseErrorAtRange(child.tagName, Diagnostics.A_JSDoc_template_tag_may_not_follow_a_typedef_callback_or_overload_tag); - } - } - if (children) { - var literal = finishNode(factory2.createJSDocTypeLiteral(children, typeExpression.type.kind === 188 /* ArrayType */), pos); - return finishNode(factory2.createJSDocTypeExpression(literal), pos); - } - } - } - function parseReturnTag(start3, tagName, indent3, indentText) { - if (some(tags, isJSDocReturnTag)) { - parseErrorAt(tagName.pos, scanner2.getTokenStart(), Diagnostics._0_tag_already_specified, unescapeLeadingUnderscores(tagName.escapedText)); - } - var typeExpression = tryParseTypeExpression(); - return finishNode(factory2.createJSDocReturnTag(tagName, typeExpression, parseTrailingTagComments(start3, getNodePos(), indent3, indentText)), start3); - } - function parseTypeTag(start3, tagName, indent3, indentText) { - if (some(tags, isJSDocTypeTag)) { - parseErrorAt(tagName.pos, scanner2.getTokenStart(), Diagnostics._0_tag_already_specified, unescapeLeadingUnderscores(tagName.escapedText)); - } - var typeExpression = parseJSDocTypeExpression( - /*mayOmitBraces*/ - true); - var comments2 = indent3 !== void 0 && indentText !== void 0 ? parseTrailingTagComments(start3, getNodePos(), indent3, indentText) : void 0; - return finishNode(factory2.createJSDocTypeTag(tagName, typeExpression, comments2), start3); - } - function parseSeeTag(start3, tagName, indent3, indentText) { - var isMarkdownOrJSDocLink = token() === 23 /* OpenBracketToken */ || lookAhead(function () { return nextTokenJSDoc() === 60 /* AtToken */ && tokenIsIdentifierOrKeyword(nextTokenJSDoc()) && isJSDocLinkTag(scanner2.getTokenValue()); }); - var nameExpression = isMarkdownOrJSDocLink ? void 0 : parseJSDocNameReference(); - var comments2 = indent3 !== void 0 && indentText !== void 0 ? parseTrailingTagComments(start3, getNodePos(), indent3, indentText) : void 0; - return finishNode(factory2.createJSDocSeeTag(tagName, nameExpression, comments2), start3); - } - function parseThrowsTag(start3, tagName, indent3, indentText) { - var typeExpression = tryParseTypeExpression(); - var comment = parseTrailingTagComments(start3, getNodePos(), indent3, indentText); - return finishNode(factory2.createJSDocThrowsTag(tagName, typeExpression, comment), start3); - } - function parseAuthorTag(start3, tagName, indent3, indentText) { - var commentStart = getNodePos(); - var textOnly = parseAuthorNameAndEmail(); - var commentEnd = scanner2.getTokenFullStart(); - var comments2 = parseTrailingTagComments(start3, commentEnd, indent3, indentText); - if (!comments2) { - commentEnd = scanner2.getTokenFullStart(); - } - var allParts = typeof comments2 !== "string" ? createNodeArray(concatenate([finishNode(textOnly, commentStart, commentEnd)], comments2), commentStart) : textOnly.text + comments2; - return finishNode(factory2.createJSDocAuthorTag(tagName, allParts), start3); - } - function parseAuthorNameAndEmail() { - var comments2 = []; - var inEmail = false; - var token2 = scanner2.getToken(); - while (token2 !== 1 /* EndOfFileToken */ && token2 !== 4 /* NewLineTrivia */) { - if (token2 === 30 /* LessThanToken */) { - inEmail = true; - } - else if (token2 === 60 /* AtToken */ && !inEmail) { - break; - } - else if (token2 === 32 /* GreaterThanToken */ && inEmail) { - comments2.push(scanner2.getTokenText()); - scanner2.resetTokenState(scanner2.getTokenEnd()); - break; - } - comments2.push(scanner2.getTokenText()); - token2 = nextTokenJSDoc(); - } - return factory2.createJSDocText(comments2.join("")); - } - function parseImplementsTag(start3, tagName, margin, indentText) { - var className = parseExpressionWithTypeArgumentsForAugments(); - return finishNode(factory2.createJSDocImplementsTag(tagName, className, parseTrailingTagComments(start3, getNodePos(), margin, indentText)), start3); - } - function parseAugmentsTag(start3, tagName, margin, indentText) { - var className = parseExpressionWithTypeArgumentsForAugments(); - return finishNode(factory2.createJSDocAugmentsTag(tagName, className, parseTrailingTagComments(start3, getNodePos(), margin, indentText)), start3); - } - function parseSatisfiesTag(start3, tagName, margin, indentText) { - var typeExpression = parseJSDocTypeExpression( - /*mayOmitBraces*/ - false); - var comments2 = margin !== void 0 && indentText !== void 0 ? parseTrailingTagComments(start3, getNodePos(), margin, indentText) : void 0; - return finishNode(factory2.createJSDocSatisfiesTag(tagName, typeExpression, comments2), start3); - } - function parseExpressionWithTypeArgumentsForAugments() { - var usedBrace = parseOptional(19 /* OpenBraceToken */); - var pos = getNodePos(); - var expression = parsePropertyAccessEntityNameExpression(); - scanner2.setInJSDocType(true); - var typeArguments = tryParseTypeArguments(); - scanner2.setInJSDocType(false); - var node = factory2.createExpressionWithTypeArguments(expression, typeArguments); - var res = finishNode(node, pos); - if (usedBrace) { - parseExpected(20 /* CloseBraceToken */); - } - return res; - } - function parsePropertyAccessEntityNameExpression() { - var pos = getNodePos(); - var node = parseJSDocIdentifierName(); - while (parseOptional(25 /* DotToken */)) { - var name_15 = parseJSDocIdentifierName(); - node = finishNode(factoryCreatePropertyAccessExpression(node, name_15), pos); - } - return node; - } - function parseSimpleTag(start3, createTag, tagName, margin, indentText) { - return finishNode(createTag(tagName, parseTrailingTagComments(start3, getNodePos(), margin, indentText)), start3); - } - function parseThisTag(start3, tagName, margin, indentText) { - var typeExpression = parseJSDocTypeExpression( - /*mayOmitBraces*/ - true); - skipWhitespace(); - return finishNode(factory2.createJSDocThisTag(tagName, typeExpression, parseTrailingTagComments(start3, getNodePos(), margin, indentText)), start3); - } - function parseEnumTag(start3, tagName, margin, indentText) { - var typeExpression = parseJSDocTypeExpression( - /*mayOmitBraces*/ - true); - skipWhitespace(); - return finishNode(factory2.createJSDocEnumTag(tagName, typeExpression, parseTrailingTagComments(start3, getNodePos(), margin, indentText)), start3); - } - function parseTypedefTag(start3, tagName, indent3, indentText) { - var _t; - var typeExpression = tryParseTypeExpression(); - skipWhitespaceOrAsterisk(); - var fullName = parseJSDocTypeNameWithNamespace(); - skipWhitespace(); - var comment = parseTagComments(indent3); - var end2; - if (!typeExpression || isObjectOrObjectArrayTypeReference(typeExpression.type)) { - var child = void 0; - var childTypeTag = void 0; - var jsDocPropertyTags = void 0; - var hasChildren = false; - while (child = tryParse(function () { return parseChildPropertyTag(indent3); })) { - if (child.kind === 352 /* JSDocTemplateTag */) { - break; - } - hasChildren = true; - if (child.kind === 351 /* JSDocTypeTag */) { - if (childTypeTag) { - var lastError = parseErrorAtCurrentToken(Diagnostics.A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags); - if (lastError) { - addRelatedInfo(lastError, createDetachedDiagnostic(fileName, 0, 0, Diagnostics.The_tag_was_first_specified_here)); - } - break; - } - else { - childTypeTag = child; - } - } - else { - jsDocPropertyTags = append(jsDocPropertyTags, child); - } - } - if (hasChildren) { - var isArrayType = typeExpression && typeExpression.type.kind === 188 /* ArrayType */; - var jsdocTypeLiteral = factory2.createJSDocTypeLiteral(jsDocPropertyTags, isArrayType); - typeExpression = childTypeTag && childTypeTag.typeExpression && !isObjectOrObjectArrayTypeReference(childTypeTag.typeExpression.type) ? childTypeTag.typeExpression : finishNode(jsdocTypeLiteral, start3); - end2 = typeExpression.end; - } - } - end2 = end2 || comment !== void 0 ? getNodePos() : ((_t = fullName !== null && fullName !== void 0 ? fullName : typeExpression) !== null && _t !== void 0 ? _t : tagName).end; - if (!comment) { - comment = parseTrailingTagComments(start3, end2, indent3, indentText); - } - var typedefTag = factory2.createJSDocTypedefTag(tagName, typeExpression, fullName, comment); - return finishNode(typedefTag, start3, end2); - } - function parseJSDocTypeNameWithNamespace(nested) { - var start3 = scanner2.getTokenStart(); - if (!tokenIsIdentifierOrKeyword(token())) { - return void 0; - } - var typeNameOrNamespaceName = parseJSDocIdentifierName(); - if (parseOptional(25 /* DotToken */)) { - var body = parseJSDocTypeNameWithNamespace( - /*nested*/ - true); - var jsDocNamespaceNode = factory2.createModuleDeclaration( - /*modifiers*/ - void 0, typeNameOrNamespaceName, body, nested ? 8 /* NestedNamespace */ : void 0); - return finishNode(jsDocNamespaceNode, start3); - } - if (nested) { - typeNameOrNamespaceName.flags |= 4096 /* IdentifierIsInJSDocNamespace */; - } - return typeNameOrNamespaceName; - } - function parseCallbackTagParameters(indent3) { - var pos = getNodePos(); - var child; - var parameters; - while (child = tryParse(function () { return parseChildParameterOrPropertyTag(4 /* CallbackParameter */, indent3); })) { - if (child.kind === 352 /* JSDocTemplateTag */) { - parseErrorAtRange(child.tagName, Diagnostics.A_JSDoc_template_tag_may_not_follow_a_typedef_callback_or_overload_tag); - break; - } - parameters = append(parameters, child); - } - return createNodeArray(parameters || [], pos); - } - function parseJSDocSignature(start3, indent3) { - var parameters = parseCallbackTagParameters(indent3); - var returnTag = tryParse(function () { - if (parseOptionalJsdoc(60 /* AtToken */)) { - var tag = parseTag(indent3); - if (tag && tag.kind === 349 /* JSDocReturnTag */) { - return tag; - } - } - }); - return finishNode(factory2.createJSDocSignature( - /*typeParameters*/ - void 0, parameters, returnTag), start3); - } - function parseCallbackTag(start3, tagName, indent3, indentText) { - var fullName = parseJSDocTypeNameWithNamespace(); - skipWhitespace(); - var comment = parseTagComments(indent3); - var typeExpression = parseJSDocSignature(start3, indent3); - if (!comment) { - comment = parseTrailingTagComments(start3, getNodePos(), indent3, indentText); - } - var end2 = comment !== void 0 ? getNodePos() : typeExpression.end; - return finishNode(factory2.createJSDocCallbackTag(tagName, typeExpression, fullName, comment), start3, end2); - } - function parseOverloadTag(start3, tagName, indent3, indentText) { - skipWhitespace(); - var comment = parseTagComments(indent3); - var typeExpression = parseJSDocSignature(start3, indent3); - if (!comment) { - comment = parseTrailingTagComments(start3, getNodePos(), indent3, indentText); - } - var end2 = comment !== void 0 ? getNodePos() : typeExpression.end; - return finishNode(factory2.createJSDocOverloadTag(tagName, typeExpression, comment), start3, end2); - } - function escapedTextsEqual(a, b) { - while (!isIdentifier(a) || !isIdentifier(b)) { - if (!isIdentifier(a) && !isIdentifier(b) && a.right.escapedText === b.right.escapedText) { - a = a.left; - b = b.left; - } - else { - return false; - } - } - return a.escapedText === b.escapedText; - } - function parseChildPropertyTag(indent3) { - return parseChildParameterOrPropertyTag(1 /* Property */, indent3); - } - function parseChildParameterOrPropertyTag(target, indent3, name) { - var canParseTag = true; - var seenAsterisk = false; - while (true) { - switch (nextTokenJSDoc()) { - case 60 /* AtToken */: - if (canParseTag) { - var child = tryParseChildTag(target, indent3); - if (child && (child.kind === 348 /* JSDocParameterTag */ || child.kind === 355 /* JSDocPropertyTag */) && name && (isIdentifier(child.name) || !escapedTextsEqual(name, child.name.left))) { - return false; - } - return child; - } - seenAsterisk = false; - break; - case 4 /* NewLineTrivia */: - canParseTag = true; - seenAsterisk = false; - break; - case 42 /* AsteriskToken */: - if (seenAsterisk) { - canParseTag = false; - } - seenAsterisk = true; - break; - case 80 /* Identifier */: - canParseTag = false; - break; - case 1 /* EndOfFileToken */: - return false; - } - } - } - function tryParseChildTag(target, indent3) { - Debug.assert(token() === 60 /* AtToken */); - var start3 = scanner2.getTokenFullStart(); - nextTokenJSDoc(); - var tagName = parseJSDocIdentifierName(); - var indentText = skipWhitespaceOrAsterisk(); - var t; - switch (tagName.escapedText) { - case "type": - return target === 1 /* Property */ && parseTypeTag(start3, tagName); - case "prop": - case "property": - t = 1 /* Property */; - break; - case "arg": - case "argument": - case "param": - t = 2 /* Parameter */ | 4 /* CallbackParameter */; - break; - case "template": - return parseTemplateTag(start3, tagName, indent3, indentText); - default: - return false; - } - if (!(target & t)) { - return false; - } - return parseParameterOrPropertyTag(start3, tagName, target, indent3); - } - function parseTemplateTagTypeParameter() { - var typeParameterPos = getNodePos(); - var isBracketed = parseOptionalJsdoc(23 /* OpenBracketToken */); - if (isBracketed) { - skipWhitespace(); - } - var name = parseJSDocIdentifierName(Diagnostics.Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces); - var defaultType; - if (isBracketed) { - skipWhitespace(); - parseExpected(64 /* EqualsToken */); - defaultType = doInsideOfContext(16777216 /* JSDoc */, parseJSDocType); - parseExpected(24 /* CloseBracketToken */); - } - if (nodeIsMissing(name)) { - return void 0; - } - return finishNode(factory2.createTypeParameterDeclaration( - /*modifiers*/ - void 0, name, - /*constraint*/ - void 0, defaultType), typeParameterPos); - } - function parseTemplateTagTypeParameters() { - var pos = getNodePos(); - var typeParameters = []; - do { - skipWhitespace(); - var node = parseTemplateTagTypeParameter(); - if (node !== void 0) { - typeParameters.push(node); - } - skipWhitespaceOrAsterisk(); - } while (parseOptionalJsdoc(28 /* CommaToken */)); - return createNodeArray(typeParameters, pos); - } - function parseTemplateTag(start3, tagName, indent3, indentText) { - var constraint = token() === 19 /* OpenBraceToken */ ? parseJSDocTypeExpression() : void 0; - var typeParameters = parseTemplateTagTypeParameters(); - return finishNode(factory2.createJSDocTemplateTag(tagName, constraint, typeParameters, parseTrailingTagComments(start3, getNodePos(), indent3, indentText)), start3); - } - function parseOptionalJsdoc(t) { - if (token() === t) { - nextTokenJSDoc(); - return true; - } - return false; - } - function parseJSDocEntityName() { - var entity = parseJSDocIdentifierName(); - if (parseOptional(23 /* OpenBracketToken */)) { - parseExpected(24 /* CloseBracketToken */); - } - while (parseOptional(25 /* DotToken */)) { - var name_16 = parseJSDocIdentifierName(); - if (parseOptional(23 /* OpenBracketToken */)) { - parseExpected(24 /* CloseBracketToken */); - } - entity = createQualifiedName(entity, name_16); - } - return entity; - } - function parseJSDocIdentifierName(message) { - if (!tokenIsIdentifierOrKeyword(token())) { - return createMissingNode(80 /* Identifier */, - /*reportAtCurrentPosition*/ - !message, message || Diagnostics.Identifier_expected); - } - identifierCount++; - var start3 = scanner2.getTokenStart(); - var end2 = scanner2.getTokenEnd(); - var originalKeywordKind = token(); - var text = internIdentifier(scanner2.getTokenValue()); - var result2 = finishNode(factoryCreateIdentifier(text, originalKeywordKind), start3, end2); - nextTokenJSDoc(); - return result2; - } - } - })(JSDocParser = Parser2.JSDocParser || (Parser2.JSDocParser = {})); -})(Parser || (Parser = {})); -var IncrementalParser; -(function (IncrementalParser2) { - function updateSourceFile2(sourceFile, newText, textChangeRange, aggressiveChecks) { - aggressiveChecks = aggressiveChecks || Debug.shouldAssert(2 /* Aggressive */); - checkChangeRange(sourceFile, newText, textChangeRange, aggressiveChecks); - if (textChangeRangeIsUnchanged(textChangeRange)) { - return sourceFile; - } - if (sourceFile.statements.length === 0) { - return Parser.parseSourceFile(sourceFile.fileName, newText, sourceFile.languageVersion, - /*syntaxCursor*/ - void 0, - /*setParentNodes*/ - true, sourceFile.scriptKind, sourceFile.setExternalModuleIndicator); - } - var incrementalSourceFile = sourceFile; - Debug.assert(!incrementalSourceFile.hasBeenIncrementallyParsed); - incrementalSourceFile.hasBeenIncrementallyParsed = true; - Parser.fixupParentReferences(incrementalSourceFile); - var oldText = sourceFile.text; - var syntaxCursor = createSyntaxCursor(sourceFile); - var changeRange = extendToAffectedRange(sourceFile, textChangeRange); - checkChangeRange(sourceFile, newText, changeRange, aggressiveChecks); - Debug.assert(changeRange.span.start <= textChangeRange.span.start); - Debug.assert(textSpanEnd(changeRange.span) === textSpanEnd(textChangeRange.span)); - Debug.assert(textSpanEnd(textChangeRangeNewSpan(changeRange)) === textSpanEnd(textChangeRangeNewSpan(textChangeRange))); - var delta = textChangeRangeNewSpan(changeRange).length - changeRange.span.length; - updateTokenPositionsAndMarkElements(incrementalSourceFile, changeRange.span.start, textSpanEnd(changeRange.span), textSpanEnd(textChangeRangeNewSpan(changeRange)), delta, oldText, newText, aggressiveChecks); - var result = Parser.parseSourceFile(sourceFile.fileName, newText, sourceFile.languageVersion, syntaxCursor, - /*setParentNodes*/ - true, sourceFile.scriptKind, sourceFile.setExternalModuleIndicator); - result.commentDirectives = getNewCommentDirectives(sourceFile.commentDirectives, result.commentDirectives, changeRange.span.start, textSpanEnd(changeRange.span), delta, oldText, newText, aggressiveChecks); - result.impliedNodeFormat = sourceFile.impliedNodeFormat; - return result; - } - IncrementalParser2.updateSourceFile = updateSourceFile2; - function getNewCommentDirectives(oldDirectives, newDirectives, changeStart, changeRangeOldEnd, delta, oldText, newText, aggressiveChecks) { - var e_99, _t; - if (!oldDirectives) - return newDirectives; - var commentDirectives; - var addedNewlyScannedDirectives = false; - try { - for (var oldDirectives_1 = __values(oldDirectives), oldDirectives_1_1 = oldDirectives_1.next(); !oldDirectives_1_1.done; oldDirectives_1_1 = oldDirectives_1.next()) { - var directive = oldDirectives_1_1.value; - var range = directive.range, type = directive.type; - if (range.end < changeStart) { - commentDirectives = append(commentDirectives, directive); - } - else if (range.pos > changeRangeOldEnd) { - addNewlyScannedDirectives(); - var updatedDirective = { - range: { pos: range.pos + delta, end: range.end + delta }, - type: type - }; - commentDirectives = append(commentDirectives, updatedDirective); - if (aggressiveChecks) { - Debug.assert(oldText.substring(range.pos, range.end) === newText.substring(updatedDirective.range.pos, updatedDirective.range.end)); - } - } - } - } - catch (e_99_1) { e_99 = { error: e_99_1 }; } - finally { - try { - if (oldDirectives_1_1 && !oldDirectives_1_1.done && (_t = oldDirectives_1.return)) _t.call(oldDirectives_1); - } - finally { if (e_99) throw e_99.error; } - } - addNewlyScannedDirectives(); - return commentDirectives; - function addNewlyScannedDirectives() { - if (addedNewlyScannedDirectives) - return; - addedNewlyScannedDirectives = true; - if (!commentDirectives) { - commentDirectives = newDirectives; - } - else if (newDirectives) { - commentDirectives.push.apply(commentDirectives, __spreadArray([], __read(newDirectives), false)); - } - } - } - function moveElementEntirelyPastChangeRange(element, isArray2, delta, oldText, newText, aggressiveChecks) { - if (isArray2) { - visitArray2(element); - } - else { - visitNode3(element); - } - return; - function visitNode3(node) { - var e_100, _t; - var text = ""; - if (aggressiveChecks && shouldCheckNode(node)) { - text = oldText.substring(node.pos, node.end); - } - if (node._children) { - node._children = void 0; - } - setTextRangePosEnd(node, node.pos + delta, node.end + delta); - if (aggressiveChecks && shouldCheckNode(node)) { - Debug.assert(text === newText.substring(node.pos, node.end)); - } - forEachChild(node, visitNode3, visitArray2); - if (hasJSDocNodes(node)) { - try { - for (var _u = __values(node.jsDoc), _v = _u.next(); !_v.done; _v = _u.next()) { - var jsDocComment = _v.value; - visitNode3(jsDocComment); - } - } - catch (e_100_1) { e_100 = { error: e_100_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_100) throw e_100.error; } - } - } - checkNodePositions(node, aggressiveChecks); - } - function visitArray2(array) { - var e_101, _t; - array._children = void 0; - setTextRangePosEnd(array, array.pos + delta, array.end + delta); - try { - for (var array_7 = __values(array), array_7_1 = array_7.next(); !array_7_1.done; array_7_1 = array_7.next()) { - var node = array_7_1.value; - visitNode3(node); - } - } - catch (e_101_1) { e_101 = { error: e_101_1 }; } - finally { - try { - if (array_7_1 && !array_7_1.done && (_t = array_7.return)) _t.call(array_7); - } - finally { if (e_101) throw e_101.error; } - } - } - } - function shouldCheckNode(node) { - switch (node.kind) { - case 11 /* StringLiteral */: - case 9 /* NumericLiteral */: - case 80 /* Identifier */: - return true; - } - return false; - } - function adjustIntersectingElement(element, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta) { - Debug.assert(element.end >= changeStart, "Adjusting an element that was entirely before the change range"); - Debug.assert(element.pos <= changeRangeOldEnd, "Adjusting an element that was entirely after the change range"); - Debug.assert(element.pos <= element.end); - var pos = Math.min(element.pos, changeRangeNewEnd); - var end = element.end >= changeRangeOldEnd ? ( - // Element ends after the change range. Always adjust the end pos. - element.end + delta) : ( - // Element ends in the change range. The element will keep its position if - // possible. Or Move backward to the new-end if it's in the 'Y' range. - Math.min(element.end, changeRangeNewEnd)); - Debug.assert(pos <= end); - if (element.parent) { - Debug.assertGreaterThanOrEqual(pos, element.parent.pos); - Debug.assertLessThanOrEqual(end, element.parent.end); - } - setTextRangePosEnd(element, pos, end); - } - function checkNodePositions(node, aggressiveChecks) { - var e_102, _t; - if (aggressiveChecks) { - var pos_1 = node.pos; - var visitNode3 = function (child) { - Debug.assert(child.pos >= pos_1); - pos_1 = child.end; - }; - if (hasJSDocNodes(node)) { - try { - for (var _u = __values(node.jsDoc), _v = _u.next(); !_v.done; _v = _u.next()) { - var jsDocComment = _v.value; - visitNode3(jsDocComment); - } - } - catch (e_102_1) { e_102 = { error: e_102_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_102) throw e_102.error; } - } - } - forEachChild(node, visitNode3); - Debug.assert(pos_1 <= node.end); - } - } - function updateTokenPositionsAndMarkElements(sourceFile, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta, oldText, newText, aggressiveChecks) { - visitNode3(sourceFile); - return; - function visitNode3(child) { - var e_103, _t; - Debug.assert(child.pos <= child.end); - if (child.pos > changeRangeOldEnd) { - moveElementEntirelyPastChangeRange(child, - /*isArray*/ - false, delta, oldText, newText, aggressiveChecks); - return; - } - var fullEnd = child.end; - if (fullEnd >= changeStart) { - child.intersectsChange = true; - child._children = void 0; - adjustIntersectingElement(child, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta); - forEachChild(child, visitNode3, visitArray2); - if (hasJSDocNodes(child)) { - try { - for (var _u = __values(child.jsDoc), _v = _u.next(); !_v.done; _v = _u.next()) { - var jsDocComment = _v.value; - visitNode3(jsDocComment); - } - } - catch (e_103_1) { e_103 = { error: e_103_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_103) throw e_103.error; } - } - } - checkNodePositions(child, aggressiveChecks); - return; - } - Debug.assert(fullEnd < changeStart); - } - function visitArray2(array) { - var e_104, _t; - Debug.assert(array.pos <= array.end); - if (array.pos > changeRangeOldEnd) { - moveElementEntirelyPastChangeRange(array, - /*isArray*/ - true, delta, oldText, newText, aggressiveChecks); - return; - } - var fullEnd = array.end; - if (fullEnd >= changeStart) { - array.intersectsChange = true; - array._children = void 0; - adjustIntersectingElement(array, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta); - try { - for (var array_8 = __values(array), array_8_1 = array_8.next(); !array_8_1.done; array_8_1 = array_8.next()) { - var node = array_8_1.value; - visitNode3(node); - } - } - catch (e_104_1) { e_104 = { error: e_104_1 }; } - finally { - try { - if (array_8_1 && !array_8_1.done && (_t = array_8.return)) _t.call(array_8); - } - finally { if (e_104) throw e_104.error; } - } - return; - } - Debug.assert(fullEnd < changeStart); - } - } - function extendToAffectedRange(sourceFile, changeRange) { - var maxLookahead = 1; - var start2 = changeRange.span.start; - for (var i = 0; start2 > 0 && i <= maxLookahead; i++) { - var nearestNode = findNearestNodeStartingBeforeOrAtPosition(sourceFile, start2); - Debug.assert(nearestNode.pos <= start2); - var position = nearestNode.pos; - start2 = Math.max(0, position - 1); - } - var finalSpan = createTextSpanFromBounds(start2, textSpanEnd(changeRange.span)); - var finalLength = changeRange.newLength + (changeRange.span.start - start2); - return createTextChangeRange(finalSpan, finalLength); - } - function findNearestNodeStartingBeforeOrAtPosition(sourceFile, position) { - var bestResult = sourceFile; - var lastNodeEntirelyBeforePosition; - forEachChild(sourceFile, visit); - if (lastNodeEntirelyBeforePosition) { - var lastChildOfLastEntireNodeBeforePosition = getLastDescendant(lastNodeEntirelyBeforePosition); - if (lastChildOfLastEntireNodeBeforePosition.pos > bestResult.pos) { - bestResult = lastChildOfLastEntireNodeBeforePosition; - } - } - return bestResult; - function getLastDescendant(node) { - while (true) { - var lastChild = getLastChild(node); - if (lastChild) { - node = lastChild; - } - else { - return node; - } - } - } - function visit(child) { - if (nodeIsMissing(child)) { - return; - } - if (child.pos <= position) { - if (child.pos >= bestResult.pos) { - bestResult = child; - } - if (position < child.end) { - forEachChild(child, visit); - return true; - } - else { - Debug.assert(child.end <= position); - lastNodeEntirelyBeforePosition = child; - } - } - else { - Debug.assert(child.pos > position); - return true; - } - } - } - function checkChangeRange(sourceFile, newText, textChangeRange, aggressiveChecks) { - var oldText = sourceFile.text; - if (textChangeRange) { - Debug.assert(oldText.length - textChangeRange.span.length + textChangeRange.newLength === newText.length); - if (aggressiveChecks || Debug.shouldAssert(3 /* VeryAggressive */)) { - var oldTextPrefix = oldText.substr(0, textChangeRange.span.start); - var newTextPrefix = newText.substr(0, textChangeRange.span.start); - Debug.assert(oldTextPrefix === newTextPrefix); - var oldTextSuffix = oldText.substring(textSpanEnd(textChangeRange.span), oldText.length); - var newTextSuffix = newText.substring(textSpanEnd(textChangeRangeNewSpan(textChangeRange)), newText.length); - Debug.assert(oldTextSuffix === newTextSuffix); - } - } - } - function createSyntaxCursor(sourceFile) { - var currentArray = sourceFile.statements; - var currentArrayIndex = 0; - Debug.assert(currentArrayIndex < currentArray.length); - var current = currentArray[currentArrayIndex]; - var lastQueriedPosition = -1 /* Value */; - return { - currentNode: function (position) { - if (position !== lastQueriedPosition) { - if (current && current.end === position && currentArrayIndex < currentArray.length - 1) { - currentArrayIndex++; - current = currentArray[currentArrayIndex]; - } - if (!current || current.pos !== position) { - findHighestListElementThatStartsAtPosition(position); - } - } - lastQueriedPosition = position; - Debug.assert(!current || current.pos === position); - return current; - } - }; - function findHighestListElementThatStartsAtPosition(position) { - currentArray = void 0; - currentArrayIndex = -1 /* Value */; - current = void 0; - forEachChild(sourceFile, visitNode3, visitArray2); - return; - function visitNode3(node) { - if (position >= node.pos && position < node.end) { - forEachChild(node, visitNode3, visitArray2); - return true; - } - return false; - } - function visitArray2(array) { - if (position >= array.pos && position < array.end) { - for (var i = 0; i < array.length; i++) { - var child = array[i]; - if (child) { - if (child.pos === position) { - currentArray = array; - currentArrayIndex = i; - current = child; - return true; - } - else { - if (child.pos < position && position < child.end) { - forEachChild(child, visitNode3, visitArray2); - return true; - } - } - } - } - } - return false; - } - } - } - IncrementalParser2.createSyntaxCursor = createSyntaxCursor; - var InvalidPosition; - (function (InvalidPosition2) { - InvalidPosition2[InvalidPosition2["Value"] = -1] = "Value"; - })(InvalidPosition || (InvalidPosition = {})); -})(IncrementalParser || (IncrementalParser = {})); -function isDeclarationFileName(fileName) { - return fileExtensionIsOneOf(fileName, supportedDeclarationExtensions) || fileExtensionIs(fileName, ".ts" /* Ts */) && stringContains(getBaseFileName(fileName), ".d."); -} -function parseResolutionMode(mode, pos, end, reportDiagnostic) { - if (!mode) { - return void 0; - } - if (mode === "import") { - return 99 /* ESNext */; - } - if (mode === "require") { - return 1 /* CommonJS */; - } - reportDiagnostic(pos, end - pos, Diagnostics.resolution_mode_should_be_either_require_or_import); - return void 0; -} -function processCommentPragmas(context, sourceText) { - var e_105, _t, e_106, _u; - var pragmas = []; - try { - for (var _v = __values(getLeadingCommentRanges(sourceText, 0) || emptyArray), _w = _v.next(); !_w.done; _w = _v.next()) { - var range = _w.value; - var comment = sourceText.substring(range.pos, range.end); - extractPragmas(pragmas, range, comment); - } - } - catch (e_105_1) { e_105 = { error: e_105_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_105) throw e_105.error; } - } - context.pragmas = /* @__PURE__ */ new Map(); - try { - for (var pragmas_1 = __values(pragmas), pragmas_1_1 = pragmas_1.next(); !pragmas_1_1.done; pragmas_1_1 = pragmas_1.next()) { - var pragma = pragmas_1_1.value; - if (context.pragmas.has(pragma.name)) { - var currentValue = context.pragmas.get(pragma.name); - if (currentValue instanceof Array) { - currentValue.push(pragma.args); - } - else { - context.pragmas.set(pragma.name, [currentValue, pragma.args]); - } - continue; - } - context.pragmas.set(pragma.name, pragma.args); - } - } - catch (e_106_1) { e_106 = { error: e_106_1 }; } - finally { - try { - if (pragmas_1_1 && !pragmas_1_1.done && (_u = pragmas_1.return)) _u.call(pragmas_1); - } - finally { if (e_106) throw e_106.error; } - } -} -function processPragmasIntoFields(context, reportDiagnostic) { - context.checkJsDirective = void 0; - context.referencedFiles = []; - context.typeReferenceDirectives = []; - context.libReferenceDirectives = []; - context.amdDependencies = []; - context.hasNoDefaultLib = false; - context.pragmas.forEach(function (entryOrList, key) { - var e_107, _t; - switch (key) { - case "reference": { - var referencedFiles_1 = context.referencedFiles; - var typeReferenceDirectives_1 = context.typeReferenceDirectives; - var libReferenceDirectives_1 = context.libReferenceDirectives; - forEach(toArray(entryOrList), function (arg) { - var _t = arg.arguments, types = _t.types, lib = _t.lib, path = _t.path, res = _t["resolution-mode"]; - if (arg.arguments["no-default-lib"]) { - context.hasNoDefaultLib = true; - } - else if (types) { - var parsed = parseResolutionMode(res, types.pos, types.end, reportDiagnostic); - typeReferenceDirectives_1.push(__assign({ pos: types.pos, end: types.end, fileName: types.value }, parsed ? { resolutionMode: parsed } : {})); - } - else if (lib) { - libReferenceDirectives_1.push({ pos: lib.pos, end: lib.end, fileName: lib.value }); - } - else if (path) { - referencedFiles_1.push({ pos: path.pos, end: path.end, fileName: path.value }); - } - else { - reportDiagnostic(arg.range.pos, arg.range.end - arg.range.pos, Diagnostics.Invalid_reference_directive_syntax); - } - }); - break; - } - case "amd-dependency": { - context.amdDependencies = map(toArray(entryOrList), function (x) { return ({ name: x.arguments.name, path: x.arguments.path }); }); - break; - } - case "amd-module": { - if (entryOrList instanceof Array) { - try { - for (var entryOrList_1 = __values(entryOrList), entryOrList_1_1 = entryOrList_1.next(); !entryOrList_1_1.done; entryOrList_1_1 = entryOrList_1.next()) { - var entry = entryOrList_1_1.value; - if (context.moduleName) { - reportDiagnostic(entry.range.pos, entry.range.end - entry.range.pos, Diagnostics.An_AMD_module_cannot_have_multiple_name_assignments); - } - context.moduleName = entry.arguments.name; - } - } - catch (e_107_1) { e_107 = { error: e_107_1 }; } - finally { - try { - if (entryOrList_1_1 && !entryOrList_1_1.done && (_t = entryOrList_1.return)) _t.call(entryOrList_1); - } - finally { if (e_107) throw e_107.error; } - } - } - else { - context.moduleName = entryOrList.arguments.name; - } - break; - } - case "ts-nocheck": - case "ts-check": { - forEach(toArray(entryOrList), function (entry) { - if (!context.checkJsDirective || entry.range.pos > context.checkJsDirective.pos) { - context.checkJsDirective = { - enabled: key === "ts-check", - end: entry.range.end, - pos: entry.range.pos - }; - } - }); - break; - } - case "jsx": - case "jsxfrag": - case "jsximportsource": - case "jsxruntime": - return; - default: - Debug.fail("Unhandled pragma kind"); - } - }); -} -var namedArgRegExCache = /* @__PURE__ */ new Map(); -function getNamedArgRegEx(name) { - if (namedArgRegExCache.has(name)) { - return namedArgRegExCache.get(name); - } - var result = new RegExp("(\\s".concat(name, "\\s*=\\s*)(?:(?:'([^']*)')|(?:\"([^\"]*)\"))"), "im"); - namedArgRegExCache.set(name, result); - return result; -} -var tripleSlashXMLCommentStartRegEx = /^\/\/\/\s*<(\S+)\s.*?\/>/im; -var singleLinePragmaRegEx = /^\/\/\/?\s*@([^\s:]+)(.*)\s*$/im; -function extractPragmas(pragmas, range, text) { - var e_108, _t; - var tripleSlash = range.kind === 2 /* SingleLineCommentTrivia */ && tripleSlashXMLCommentStartRegEx.exec(text); - if (tripleSlash) { - var name_17 = tripleSlash[1].toLowerCase(); - var pragma = commentPragmas[name_17]; - if (!pragma || !(pragma.kind & 1 /* TripleSlashXML */)) { - return; - } - if (pragma.args) { - var argument = {}; - try { - for (var _u = __values(pragma.args), _v = _u.next(); !_v.done; _v = _u.next()) { - var arg = _v.value; - var matcher = getNamedArgRegEx(arg.name); - var matchResult = matcher.exec(text); - if (!matchResult && !arg.optional) { - return; - } - else if (matchResult) { - var value = matchResult[2] || matchResult[3]; - if (arg.captureSpan) { - var startPos = range.pos + matchResult.index + matchResult[1].length + 1; - argument[arg.name] = { - value: value, - pos: startPos, - end: startPos + value.length - }; - } - else { - argument[arg.name] = value; - } - } - } - } - catch (e_108_1) { e_108 = { error: e_108_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_108) throw e_108.error; } - } - pragmas.push({ name: name_17, args: { arguments: argument, range: range } }); - } - else { - pragmas.push({ name: name_17, args: { arguments: {}, range: range } }); - } - return; - } - var singleLine = range.kind === 2 /* SingleLineCommentTrivia */ && singleLinePragmaRegEx.exec(text); - if (singleLine) { - return addPragmaForMatch(pragmas, range, 2 /* SingleLine */, singleLine); - } - if (range.kind === 3 /* MultiLineCommentTrivia */) { - var multiLinePragmaRegEx = /@(\S+)(\s+.*)?$/gim; - var multiLineMatch = void 0; - while (multiLineMatch = multiLinePragmaRegEx.exec(text)) { - addPragmaForMatch(pragmas, range, 4 /* MultiLine */, multiLineMatch); - } - } -} -function addPragmaForMatch(pragmas, range, kind, match) { - if (!match) - return; - var name = match[1].toLowerCase(); - var pragma = commentPragmas[name]; - if (!pragma || !(pragma.kind & kind)) { - return; - } - var args = match[2]; - var argument = getNamedPragmaArguments(pragma, args); - if (argument === "fail") - return; - pragmas.push({ name: name, args: { arguments: argument, range: range } }); - return; -} -function getNamedPragmaArguments(pragma, text) { - if (!text) - return {}; - if (!pragma.args) - return {}; - var args = trimString(text).split(/\s+/); - var argMap = {}; - for (var i = 0; i < pragma.args.length; i++) { - var argument = pragma.args[i]; - if (!args[i] && !argument.optional) { - return "fail"; - } - if (argument.captureSpan) { - return Debug.fail("Capture spans not yet implemented for non-xml pragmas"); - } - argMap[argument.name] = args[i]; - } - return argMap; -} -function tagNamesAreEquivalent(lhs, rhs) { - if (lhs.kind !== rhs.kind) { - return false; - } - if (lhs.kind === 80 /* Identifier */) { - return lhs.escapedText === rhs.escapedText; - } - if (lhs.kind === 110 /* ThisKeyword */) { - return true; - } - if (lhs.kind === 295 /* JsxNamespacedName */) { - return lhs.namespace.escapedText === rhs.namespace.escapedText && lhs.name.escapedText === rhs.name.escapedText; - } - return lhs.name.escapedText === rhs.name.escapedText && tagNamesAreEquivalent(lhs.expression, rhs.expression); -} -// src/compiler/commandLineParser.ts -var compileOnSaveCommandLineOption = { - name: "compileOnSave", - type: "boolean", - defaultValueDescription: false -}; -var jsxOptionMap = new Map(Object.entries({ - "preserve": 1 /* Preserve */, - "react-native": 3 /* ReactNative */, - "react": 2 /* React */, - "react-jsx": 4 /* ReactJSX */, - "react-jsxdev": 5 /* ReactJSXDev */ -})); -var inverseJsxOptionMap = new Map(mapIterator(jsxOptionMap.entries(), function (_t) { - var _u = __read(_t, 2), key = _u[0], value = _u[1]; - return ["" + value, key]; -})); -var libEntries = [ - // JavaScript only - ["es5", "lib.es5.d.ts"], - ["es6", "lib.es2015.d.ts"], - ["es2015", "lib.es2015.d.ts"], - ["es7", "lib.es2016.d.ts"], - ["es2016", "lib.es2016.d.ts"], - ["es2017", "lib.es2017.d.ts"], - ["es2018", "lib.es2018.d.ts"], - ["es2019", "lib.es2019.d.ts"], - ["es2020", "lib.es2020.d.ts"], - ["es2021", "lib.es2021.d.ts"], - ["es2022", "lib.es2022.d.ts"], - ["es2023", "lib.es2023.d.ts"], - ["esnext", "lib.esnext.d.ts"], - // Host only - ["dom", "lib.dom.d.ts"], - ["dom.iterable", "lib.dom.iterable.d.ts"], - ["webworker", "lib.webworker.d.ts"], - ["webworker.importscripts", "lib.webworker.importscripts.d.ts"], - ["webworker.iterable", "lib.webworker.iterable.d.ts"], - ["scripthost", "lib.scripthost.d.ts"], - // ES2015 Or ESNext By-feature options - ["es2015.core", "lib.es2015.core.d.ts"], - ["es2015.collection", "lib.es2015.collection.d.ts"], - ["es2015.generator", "lib.es2015.generator.d.ts"], - ["es2015.iterable", "lib.es2015.iterable.d.ts"], - ["es2015.promise", "lib.es2015.promise.d.ts"], - ["es2015.proxy", "lib.es2015.proxy.d.ts"], - ["es2015.reflect", "lib.es2015.reflect.d.ts"], - ["es2015.symbol", "lib.es2015.symbol.d.ts"], - ["es2015.symbol.wellknown", "lib.es2015.symbol.wellknown.d.ts"], - ["es2016.array.include", "lib.es2016.array.include.d.ts"], - ["es2017.date", "lib.es2017.date.d.ts"], - ["es2017.object", "lib.es2017.object.d.ts"], - ["es2017.sharedmemory", "lib.es2017.sharedmemory.d.ts"], - ["es2017.string", "lib.es2017.string.d.ts"], - ["es2017.intl", "lib.es2017.intl.d.ts"], - ["es2017.typedarrays", "lib.es2017.typedarrays.d.ts"], - ["es2018.asyncgenerator", "lib.es2018.asyncgenerator.d.ts"], - ["es2018.asynciterable", "lib.es2018.asynciterable.d.ts"], - ["es2018.intl", "lib.es2018.intl.d.ts"], - ["es2018.promise", "lib.es2018.promise.d.ts"], - ["es2018.regexp", "lib.es2018.regexp.d.ts"], - ["es2019.array", "lib.es2019.array.d.ts"], - ["es2019.object", "lib.es2019.object.d.ts"], - ["es2019.string", "lib.es2019.string.d.ts"], - ["es2019.symbol", "lib.es2019.symbol.d.ts"], - ["es2019.intl", "lib.es2019.intl.d.ts"], - ["es2020.bigint", "lib.es2020.bigint.d.ts"], - ["es2020.date", "lib.es2020.date.d.ts"], - ["es2020.promise", "lib.es2020.promise.d.ts"], - ["es2020.sharedmemory", "lib.es2020.sharedmemory.d.ts"], - ["es2020.string", "lib.es2020.string.d.ts"], - ["es2020.symbol.wellknown", "lib.es2020.symbol.wellknown.d.ts"], - ["es2020.intl", "lib.es2020.intl.d.ts"], - ["es2020.number", "lib.es2020.number.d.ts"], - ["es2021.promise", "lib.es2021.promise.d.ts"], - ["es2021.string", "lib.es2021.string.d.ts"], - ["es2021.weakref", "lib.es2021.weakref.d.ts"], - ["es2021.intl", "lib.es2021.intl.d.ts"], - ["es2022.array", "lib.es2022.array.d.ts"], - ["es2022.error", "lib.es2022.error.d.ts"], - ["es2022.intl", "lib.es2022.intl.d.ts"], - ["es2022.object", "lib.es2022.object.d.ts"], - ["es2022.sharedmemory", "lib.es2022.sharedmemory.d.ts"], - ["es2022.string", "lib.es2022.string.d.ts"], - ["es2022.regexp", "lib.es2022.regexp.d.ts"], - ["es2023.array", "lib.es2023.array.d.ts"], - ["es2023.collection", "lib.es2023.collection.d.ts"], - ["esnext.array", "lib.es2023.array.d.ts"], - ["esnext.collection", "lib.es2023.collection.d.ts"], - ["esnext.symbol", "lib.es2019.symbol.d.ts"], - ["esnext.asynciterable", "lib.es2018.asynciterable.d.ts"], - ["esnext.intl", "lib.esnext.intl.d.ts"], - ["esnext.disposable", "lib.esnext.disposable.d.ts"], - ["esnext.bigint", "lib.es2020.bigint.d.ts"], - ["esnext.string", "lib.es2022.string.d.ts"], - ["esnext.promise", "lib.es2021.promise.d.ts"], - ["esnext.weakref", "lib.es2021.weakref.d.ts"], - ["esnext.decorators", "lib.esnext.decorators.d.ts"], - ["decorators", "lib.decorators.d.ts"], - ["decorators.legacy", "lib.decorators.legacy.d.ts"] -]; -var libs = libEntries.map(function (entry) { return entry[0]; }); -var libMap = new Map(libEntries); -var optionsForWatch = [ - { - name: "watchFile", - type: new Map(Object.entries({ - fixedpollinginterval: 0 /* FixedPollingInterval */, - prioritypollinginterval: 1 /* PriorityPollingInterval */, - dynamicprioritypolling: 2 /* DynamicPriorityPolling */, - fixedchunksizepolling: 3 /* FixedChunkSizePolling */, - usefsevents: 4 /* UseFsEvents */, - usefseventsonparentdirectory: 5 /* UseFsEventsOnParentDirectory */ - })), - category: Diagnostics.Watch_and_Build_Modes, - description: Diagnostics.Specify_how_the_TypeScript_watch_mode_works, - defaultValueDescription: 4 /* UseFsEvents */ - }, - { - name: "watchDirectory", - type: new Map(Object.entries({ - usefsevents: 0 /* UseFsEvents */, - fixedpollinginterval: 1 /* FixedPollingInterval */, - dynamicprioritypolling: 2 /* DynamicPriorityPolling */, - fixedchunksizepolling: 3 /* FixedChunkSizePolling */ - })), - category: Diagnostics.Watch_and_Build_Modes, - description: Diagnostics.Specify_how_directories_are_watched_on_systems_that_lack_recursive_file_watching_functionality, - defaultValueDescription: 0 /* UseFsEvents */ - }, - { - name: "fallbackPolling", - type: new Map(Object.entries({ - fixedinterval: 0 /* FixedInterval */, - priorityinterval: 1 /* PriorityInterval */, - dynamicpriority: 2 /* DynamicPriority */, - fixedchunksize: 3 /* FixedChunkSize */ - })), - category: Diagnostics.Watch_and_Build_Modes, - description: Diagnostics.Specify_what_approach_the_watcher_should_use_if_the_system_runs_out_of_native_file_watchers, - defaultValueDescription: 1 /* PriorityInterval */ - }, - { - name: "synchronousWatchDirectory", - type: "boolean", - category: Diagnostics.Watch_and_Build_Modes, - description: Diagnostics.Synchronously_call_callbacks_and_update_the_state_of_directory_watchers_on_platforms_that_don_t_support_recursive_watching_natively, - defaultValueDescription: false - }, - { - name: "excludeDirectories", - type: "list", - element: { - name: "excludeDirectory", - type: "string", - isFilePath: true, - extraValidation: specToDiagnostic - }, - category: Diagnostics.Watch_and_Build_Modes, - description: Diagnostics.Remove_a_list_of_directories_from_the_watch_process - }, - { - name: "excludeFiles", - type: "list", - element: { - name: "excludeFile", - type: "string", - isFilePath: true, - extraValidation: specToDiagnostic - }, - category: Diagnostics.Watch_and_Build_Modes, - description: Diagnostics.Remove_a_list_of_files_from_the_watch_mode_s_processing - } -]; -var commonOptionsWithBuild = [ - { - name: "help", - shortName: "h", - type: "boolean", - showInSimplifiedHelpView: true, - isCommandLineOnly: true, - category: Diagnostics.Command_line_Options, - description: Diagnostics.Print_this_message, - defaultValueDescription: false - }, - { - name: "help", - shortName: "?", - type: "boolean", - isCommandLineOnly: true, - category: Diagnostics.Command_line_Options, - defaultValueDescription: false - }, - { - name: "watch", - shortName: "w", - type: "boolean", - showInSimplifiedHelpView: true, - isCommandLineOnly: true, - category: Diagnostics.Command_line_Options, - description: Diagnostics.Watch_input_files, - defaultValueDescription: false - }, - { - name: "preserveWatchOutput", - type: "boolean", - showInSimplifiedHelpView: false, - category: Diagnostics.Output_Formatting, - description: Diagnostics.Disable_wiping_the_console_in_watch_mode, - defaultValueDescription: false - }, - { - name: "listFiles", - type: "boolean", - category: Diagnostics.Compiler_Diagnostics, - description: Diagnostics.Print_all_of_the_files_read_during_the_compilation, - defaultValueDescription: false - }, - { - name: "explainFiles", - type: "boolean", - category: Diagnostics.Compiler_Diagnostics, - description: Diagnostics.Print_files_read_during_the_compilation_including_why_it_was_included, - defaultValueDescription: false - }, - { - name: "listEmittedFiles", - type: "boolean", - category: Diagnostics.Compiler_Diagnostics, - description: Diagnostics.Print_the_names_of_emitted_files_after_a_compilation, - defaultValueDescription: false - }, - { - name: "pretty", - type: "boolean", - showInSimplifiedHelpView: true, - category: Diagnostics.Output_Formatting, - description: Diagnostics.Enable_color_and_formatting_in_TypeScript_s_output_to_make_compiler_errors_easier_to_read, - defaultValueDescription: true - }, - { - name: "traceResolution", - type: "boolean", - category: Diagnostics.Compiler_Diagnostics, - description: Diagnostics.Log_paths_used_during_the_moduleResolution_process, - defaultValueDescription: false - }, - { - name: "diagnostics", - type: "boolean", - category: Diagnostics.Compiler_Diagnostics, - description: Diagnostics.Output_compiler_performance_information_after_building, - defaultValueDescription: false - }, - { - name: "extendedDiagnostics", - type: "boolean", - category: Diagnostics.Compiler_Diagnostics, - description: Diagnostics.Output_more_detailed_compiler_performance_information_after_building, - defaultValueDescription: false - }, - { - name: "generateCpuProfile", - type: "string", - isFilePath: true, - paramType: Diagnostics.FILE_OR_DIRECTORY, - category: Diagnostics.Compiler_Diagnostics, - description: Diagnostics.Emit_a_v8_CPU_profile_of_the_compiler_run_for_debugging, - defaultValueDescription: "profile.cpuprofile" - }, - { - name: "generateTrace", - type: "string", - isFilePath: true, - isCommandLineOnly: true, - paramType: Diagnostics.DIRECTORY, - category: Diagnostics.Compiler_Diagnostics, - description: Diagnostics.Generates_an_event_trace_and_a_list_of_types - }, - { - name: "incremental", - shortName: "i", - type: "boolean", - category: Diagnostics.Projects, - description: Diagnostics.Save_tsbuildinfo_files_to_allow_for_incremental_compilation_of_projects, - transpileOptionValue: void 0, - defaultValueDescription: Diagnostics.false_unless_composite_is_set - }, - { - name: "declaration", - shortName: "d", - type: "boolean", - // Not setting affectsEmit because we calculate this flag might not affect full emit - affectsBuildInfo: true, - showInSimplifiedHelpView: true, - category: Diagnostics.Emit, - transpileOptionValue: void 0, - description: Diagnostics.Generate_d_ts_files_from_TypeScript_and_JavaScript_files_in_your_project, - defaultValueDescription: Diagnostics.false_unless_composite_is_set - }, - { - name: "declarationMap", - type: "boolean", - // Not setting affectsEmit because we calculate this flag might not affect full emit - affectsBuildInfo: true, - showInSimplifiedHelpView: true, - category: Diagnostics.Emit, - transpileOptionValue: void 0, - defaultValueDescription: false, - description: Diagnostics.Create_sourcemaps_for_d_ts_files - }, - { - name: "emitDeclarationOnly", - type: "boolean", - // Not setting affectsEmit because we calculate this flag might not affect full emit - affectsBuildInfo: true, - showInSimplifiedHelpView: true, - category: Diagnostics.Emit, - description: Diagnostics.Only_output_d_ts_files_and_not_JavaScript_files, - transpileOptionValue: void 0, - defaultValueDescription: false - }, - { - name: "sourceMap", - type: "boolean", - // Not setting affectsEmit because we calculate this flag might not affect full emit - affectsBuildInfo: true, - showInSimplifiedHelpView: true, - category: Diagnostics.Emit, - defaultValueDescription: false, - description: Diagnostics.Create_source_map_files_for_emitted_JavaScript_files - }, - { - name: "inlineSourceMap", - type: "boolean", - // Not setting affectsEmit because we calculate this flag might not affect full emit - affectsBuildInfo: true, - category: Diagnostics.Emit, - description: Diagnostics.Include_sourcemap_files_inside_the_emitted_JavaScript, - defaultValueDescription: false - }, - { - name: "assumeChangesOnlyAffectDirectDependencies", - type: "boolean", - affectsSemanticDiagnostics: true, - affectsEmit: true, - affectsBuildInfo: true, - category: Diagnostics.Watch_and_Build_Modes, - description: Diagnostics.Have_recompiles_in_projects_that_use_incremental_and_watch_mode_assume_that_changes_within_a_file_will_only_affect_files_directly_depending_on_it, - defaultValueDescription: false - }, - { - name: "locale", - type: "string", - category: Diagnostics.Command_line_Options, - isCommandLineOnly: true, - description: Diagnostics.Set_the_language_of_the_messaging_from_TypeScript_This_does_not_affect_emit, - defaultValueDescription: Diagnostics.Platform_specific - } -]; -var targetOptionDeclaration = { - name: "target", - shortName: "t", - type: new Map(Object.entries({ - es3: 0 /* ES3 */, - es5: 1 /* ES5 */, - es6: 2 /* ES2015 */, - es2015: 2 /* ES2015 */, - es2016: 3 /* ES2016 */, - es2017: 4 /* ES2017 */, - es2018: 5 /* ES2018 */, - es2019: 6 /* ES2019 */, - es2020: 7 /* ES2020 */, - es2021: 8 /* ES2021 */, - es2022: 9 /* ES2022 */, - esnext: 99 /* ESNext */ - })), - affectsSourceFile: true, - affectsModuleResolution: true, - affectsEmit: true, - affectsBuildInfo: true, - paramType: Diagnostics.VERSION, - showInSimplifiedHelpView: true, - category: Diagnostics.Language_and_Environment, - description: Diagnostics.Set_the_JavaScript_language_version_for_emitted_JavaScript_and_include_compatible_library_declarations, - defaultValueDescription: 1 /* ES5 */ -}; -var moduleOptionDeclaration = { - name: "module", - shortName: "m", - type: new Map(Object.entries({ - none: 0 /* None */, - commonjs: 1 /* CommonJS */, - amd: 2 /* AMD */, - system: 4 /* System */, - umd: 3 /* UMD */, - es6: 5 /* ES2015 */, - es2015: 5 /* ES2015 */, - es2020: 6 /* ES2020 */, - es2022: 7 /* ES2022 */, - esnext: 99 /* ESNext */, - node16: 100 /* Node16 */, - nodenext: 199 /* NodeNext */ - })), - affectsModuleResolution: true, - affectsEmit: true, - affectsBuildInfo: true, - paramType: Diagnostics.KIND, - showInSimplifiedHelpView: true, - category: Diagnostics.Modules, - description: Diagnostics.Specify_what_module_code_is_generated, - defaultValueDescription: void 0 -}; -var commandOptionsWithoutBuild = [ - // CommandLine only options - { - name: "all", - type: "boolean", - showInSimplifiedHelpView: true, - category: Diagnostics.Command_line_Options, - description: Diagnostics.Show_all_compiler_options, - defaultValueDescription: false - }, - { - name: "version", - shortName: "v", - type: "boolean", - showInSimplifiedHelpView: true, - category: Diagnostics.Command_line_Options, - description: Diagnostics.Print_the_compiler_s_version, - defaultValueDescription: false - }, - { - name: "init", - type: "boolean", - showInSimplifiedHelpView: true, - category: Diagnostics.Command_line_Options, - description: Diagnostics.Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file, - defaultValueDescription: false - }, - { - name: "project", - shortName: "p", - type: "string", - isFilePath: true, - showInSimplifiedHelpView: true, - category: Diagnostics.Command_line_Options, - paramType: Diagnostics.FILE_OR_DIRECTORY, - description: Diagnostics.Compile_the_project_given_the_path_to_its_configuration_file_or_to_a_folder_with_a_tsconfig_json - }, - { - name: "build", - type: "boolean", - shortName: "b", - showInSimplifiedHelpView: true, - category: Diagnostics.Command_line_Options, - description: Diagnostics.Build_one_or_more_projects_and_their_dependencies_if_out_of_date, - defaultValueDescription: false - }, - { - name: "showConfig", - type: "boolean", - showInSimplifiedHelpView: true, - category: Diagnostics.Command_line_Options, - isCommandLineOnly: true, - description: Diagnostics.Print_the_final_configuration_instead_of_building, - defaultValueDescription: false - }, - { - name: "listFilesOnly", - type: "boolean", - category: Diagnostics.Command_line_Options, - isCommandLineOnly: true, - description: Diagnostics.Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing, - defaultValueDescription: false - }, - // Basic - targetOptionDeclaration, - moduleOptionDeclaration, - { - name: "lib", - type: "list", - element: { - name: "lib", - type: libMap, - defaultValueDescription: void 0 - }, - affectsProgramStructure: true, - showInSimplifiedHelpView: true, - category: Diagnostics.Language_and_Environment, - description: Diagnostics.Specify_a_set_of_bundled_library_declaration_files_that_describe_the_target_runtime_environment, - transpileOptionValue: void 0 - }, - { - name: "allowJs", - type: "boolean", - affectsModuleResolution: true, - showInSimplifiedHelpView: true, - category: Diagnostics.JavaScript_Support, - description: Diagnostics.Allow_JavaScript_files_to_be_a_part_of_your_program_Use_the_checkJS_option_to_get_errors_from_these_files, - defaultValueDescription: false - }, - { - name: "checkJs", - type: "boolean", - affectsModuleResolution: true, - showInSimplifiedHelpView: true, - category: Diagnostics.JavaScript_Support, - description: Diagnostics.Enable_error_reporting_in_type_checked_JavaScript_files, - defaultValueDescription: false - }, - { - name: "jsx", - type: jsxOptionMap, - affectsSourceFile: true, - affectsEmit: true, - affectsBuildInfo: true, - affectsModuleResolution: true, - paramType: Diagnostics.KIND, - showInSimplifiedHelpView: true, - category: Diagnostics.Language_and_Environment, - description: Diagnostics.Specify_what_JSX_code_is_generated, - defaultValueDescription: void 0 - }, - { - name: "outFile", - type: "string", - affectsEmit: true, - affectsBuildInfo: true, - affectsDeclarationPath: true, - isFilePath: true, - paramType: Diagnostics.FILE, - showInSimplifiedHelpView: true, - category: Diagnostics.Emit, - description: Diagnostics.Specify_a_file_that_bundles_all_outputs_into_one_JavaScript_file_If_declaration_is_true_also_designates_a_file_that_bundles_all_d_ts_output, - transpileOptionValue: void 0 - }, - { - name: "outDir", - type: "string", - affectsEmit: true, - affectsBuildInfo: true, - affectsDeclarationPath: true, - isFilePath: true, - paramType: Diagnostics.DIRECTORY, - showInSimplifiedHelpView: true, - category: Diagnostics.Emit, - description: Diagnostics.Specify_an_output_folder_for_all_emitted_files - }, - { - name: "rootDir", - type: "string", - affectsEmit: true, - affectsBuildInfo: true, - affectsDeclarationPath: true, - isFilePath: true, - paramType: Diagnostics.LOCATION, - category: Diagnostics.Modules, - description: Diagnostics.Specify_the_root_folder_within_your_source_files, - defaultValueDescription: Diagnostics.Computed_from_the_list_of_input_files - }, - { - name: "composite", - type: "boolean", - // Not setting affectsEmit because we calculate this flag might not affect full emit - affectsBuildInfo: true, - isTSConfigOnly: true, - category: Diagnostics.Projects, - transpileOptionValue: void 0, - defaultValueDescription: false, - description: Diagnostics.Enable_constraints_that_allow_a_TypeScript_project_to_be_used_with_project_references - }, - { - name: "tsBuildInfoFile", - type: "string", - affectsEmit: true, - affectsBuildInfo: true, - isFilePath: true, - paramType: Diagnostics.FILE, - category: Diagnostics.Projects, - transpileOptionValue: void 0, - defaultValueDescription: ".tsbuildinfo", - description: Diagnostics.Specify_the_path_to_tsbuildinfo_incremental_compilation_file - }, - { - name: "removeComments", - type: "boolean", - affectsEmit: true, - affectsBuildInfo: true, - showInSimplifiedHelpView: true, - category: Diagnostics.Emit, - defaultValueDescription: false, - description: Diagnostics.Disable_emitting_comments - }, - { - name: "noEmit", - type: "boolean", - showInSimplifiedHelpView: true, - category: Diagnostics.Emit, - description: Diagnostics.Disable_emitting_files_from_a_compilation, - transpileOptionValue: void 0, - defaultValueDescription: false - }, - { - name: "importHelpers", - type: "boolean", - affectsEmit: true, - affectsBuildInfo: true, - category: Diagnostics.Emit, - description: Diagnostics.Allow_importing_helper_functions_from_tslib_once_per_project_instead_of_including_them_per_file, - defaultValueDescription: false - }, - { - name: "importsNotUsedAsValues", - type: new Map(Object.entries({ - remove: 0 /* Remove */, - preserve: 1 /* Preserve */, - error: 2 /* Error */ - })), - affectsEmit: true, - affectsSemanticDiagnostics: true, - affectsBuildInfo: true, - category: Diagnostics.Emit, - description: Diagnostics.Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types, - defaultValueDescription: 0 /* Remove */ - }, - { - name: "downlevelIteration", - type: "boolean", - affectsEmit: true, - affectsBuildInfo: true, - category: Diagnostics.Emit, - description: Diagnostics.Emit_more_compliant_but_verbose_and_less_performant_JavaScript_for_iteration, - defaultValueDescription: false - }, - { - name: "isolatedModules", - type: "boolean", - category: Diagnostics.Interop_Constraints, - description: Diagnostics.Ensure_that_each_file_can_be_safely_transpiled_without_relying_on_other_imports, - transpileOptionValue: true, - defaultValueDescription: false - }, - { - name: "verbatimModuleSyntax", - type: "boolean", - category: Diagnostics.Interop_Constraints, - description: Diagnostics.Do_not_transform_or_elide_any_imports_or_exports_not_marked_as_type_only_ensuring_they_are_written_in_the_output_file_s_format_based_on_the_module_setting, - defaultValueDescription: false - }, - // Strict Type Checks - { - name: "strict", - type: "boolean", - // Though this affects semantic diagnostics, affectsSemanticDiagnostics is not set here - // The value of each strictFlag depends on own strictFlag value or this and never accessed directly. - // But we need to store `strict` in builf info, even though it won't be examined directly, so that the - // flags it controls (e.g. `strictNullChecks`) will be retrieved correctly - affectsBuildInfo: true, - showInSimplifiedHelpView: true, - category: Diagnostics.Type_Checking, - description: Diagnostics.Enable_all_strict_type_checking_options, - defaultValueDescription: false - }, - { - name: "noImplicitAny", - type: "boolean", - affectsSemanticDiagnostics: true, - affectsBuildInfo: true, - strictFlag: true, - category: Diagnostics.Type_Checking, - description: Diagnostics.Enable_error_reporting_for_expressions_and_declarations_with_an_implied_any_type, - defaultValueDescription: Diagnostics.false_unless_strict_is_set - }, - { - name: "strictNullChecks", - type: "boolean", - affectsSemanticDiagnostics: true, - affectsBuildInfo: true, - strictFlag: true, - category: Diagnostics.Type_Checking, - description: Diagnostics.When_type_checking_take_into_account_null_and_undefined, - defaultValueDescription: Diagnostics.false_unless_strict_is_set - }, - { - name: "strictFunctionTypes", - type: "boolean", - affectsSemanticDiagnostics: true, - affectsBuildInfo: true, - strictFlag: true, - category: Diagnostics.Type_Checking, - description: Diagnostics.When_assigning_functions_check_to_ensure_parameters_and_the_return_values_are_subtype_compatible, - defaultValueDescription: Diagnostics.false_unless_strict_is_set - }, - { - name: "strictBindCallApply", - type: "boolean", - affectsSemanticDiagnostics: true, - affectsBuildInfo: true, - strictFlag: true, - category: Diagnostics.Type_Checking, - description: Diagnostics.Check_that_the_arguments_for_bind_call_and_apply_methods_match_the_original_function, - defaultValueDescription: Diagnostics.false_unless_strict_is_set - }, - { - name: "strictPropertyInitialization", - type: "boolean", - affectsSemanticDiagnostics: true, - affectsBuildInfo: true, - strictFlag: true, - category: Diagnostics.Type_Checking, - description: Diagnostics.Check_for_class_properties_that_are_declared_but_not_set_in_the_constructor, - defaultValueDescription: Diagnostics.false_unless_strict_is_set - }, - { - name: "noImplicitThis", - type: "boolean", - affectsSemanticDiagnostics: true, - affectsBuildInfo: true, - strictFlag: true, - category: Diagnostics.Type_Checking, - description: Diagnostics.Enable_error_reporting_when_this_is_given_the_type_any, - defaultValueDescription: Diagnostics.false_unless_strict_is_set - }, - { - name: "useUnknownInCatchVariables", - type: "boolean", - affectsSemanticDiagnostics: true, - affectsBuildInfo: true, - strictFlag: true, - category: Diagnostics.Type_Checking, - description: Diagnostics.Default_catch_clause_variables_as_unknown_instead_of_any, - defaultValueDescription: Diagnostics.false_unless_strict_is_set - }, - { - name: "alwaysStrict", - type: "boolean", - affectsSourceFile: true, - affectsEmit: true, - affectsBuildInfo: true, - strictFlag: true, - category: Diagnostics.Type_Checking, - description: Diagnostics.Ensure_use_strict_is_always_emitted, - defaultValueDescription: Diagnostics.false_unless_strict_is_set - }, - // Additional Checks - { - name: "noUnusedLocals", - type: "boolean", - affectsSemanticDiagnostics: true, - affectsBuildInfo: true, - category: Diagnostics.Type_Checking, - description: Diagnostics.Enable_error_reporting_when_local_variables_aren_t_read, - defaultValueDescription: false - }, - { - name: "noUnusedParameters", - type: "boolean", - affectsSemanticDiagnostics: true, - affectsBuildInfo: true, - category: Diagnostics.Type_Checking, - description: Diagnostics.Raise_an_error_when_a_function_parameter_isn_t_read, - defaultValueDescription: false - }, - { - name: "exactOptionalPropertyTypes", - type: "boolean", - affectsSemanticDiagnostics: true, - affectsBuildInfo: true, - category: Diagnostics.Type_Checking, - description: Diagnostics.Interpret_optional_property_types_as_written_rather_than_adding_undefined, - defaultValueDescription: false - }, - { - name: "noImplicitReturns", - type: "boolean", - affectsSemanticDiagnostics: true, - affectsBuildInfo: true, - category: Diagnostics.Type_Checking, - description: Diagnostics.Enable_error_reporting_for_codepaths_that_do_not_explicitly_return_in_a_function, - defaultValueDescription: false - }, - { - name: "noFallthroughCasesInSwitch", - type: "boolean", - affectsBindDiagnostics: true, - affectsSemanticDiagnostics: true, - affectsBuildInfo: true, - category: Diagnostics.Type_Checking, - description: Diagnostics.Enable_error_reporting_for_fallthrough_cases_in_switch_statements, - defaultValueDescription: false - }, - { - name: "noUncheckedIndexedAccess", - type: "boolean", - affectsSemanticDiagnostics: true, - affectsBuildInfo: true, - category: Diagnostics.Type_Checking, - description: Diagnostics.Add_undefined_to_a_type_when_accessed_using_an_index, - defaultValueDescription: false - }, - { - name: "noImplicitOverride", - type: "boolean", - affectsSemanticDiagnostics: true, - affectsBuildInfo: true, - category: Diagnostics.Type_Checking, - description: Diagnostics.Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier, - defaultValueDescription: false - }, - { - name: "noPropertyAccessFromIndexSignature", - type: "boolean", - affectsSemanticDiagnostics: true, - affectsBuildInfo: true, - showInSimplifiedHelpView: false, - category: Diagnostics.Type_Checking, - description: Diagnostics.Enforces_using_indexed_accessors_for_keys_declared_using_an_indexed_type, - defaultValueDescription: false - }, - // Module Resolution - { - name: "moduleResolution", - type: new Map(Object.entries({ - // N.B. The first entry specifies the value shown in `tsc --init` - node10: 2 /* Node10 */, - node: 2 /* Node10 */, - classic: 1 /* Classic */, - node16: 3 /* Node16 */, - nodenext: 99 /* NodeNext */, - bundler: 100 /* Bundler */ - })), - deprecatedKeys: /* @__PURE__ */ new Set(["node"]), - affectsModuleResolution: true, - paramType: Diagnostics.STRATEGY, - category: Diagnostics.Modules, - description: Diagnostics.Specify_how_TypeScript_looks_up_a_file_from_a_given_module_specifier, - defaultValueDescription: Diagnostics.module_AMD_or_UMD_or_System_or_ES6_then_Classic_Otherwise_Node - }, - { - name: "baseUrl", - type: "string", - affectsModuleResolution: true, - isFilePath: true, - category: Diagnostics.Modules, - description: Diagnostics.Specify_the_base_directory_to_resolve_non_relative_module_names - }, - { - // this option can only be specified in tsconfig.json - // use type = object to copy the value as-is - name: "paths", - type: "object", - affectsModuleResolution: true, - isTSConfigOnly: true, - category: Diagnostics.Modules, - description: Diagnostics.Specify_a_set_of_entries_that_re_map_imports_to_additional_lookup_locations, - transpileOptionValue: void 0 - }, - { - // this option can only be specified in tsconfig.json - // use type = object to copy the value as-is - name: "rootDirs", - type: "list", - isTSConfigOnly: true, - element: { - name: "rootDirs", - type: "string", - isFilePath: true - }, - affectsModuleResolution: true, - category: Diagnostics.Modules, - description: Diagnostics.Allow_multiple_folders_to_be_treated_as_one_when_resolving_modules, - transpileOptionValue: void 0, - defaultValueDescription: Diagnostics.Computed_from_the_list_of_input_files - }, - { - name: "typeRoots", - type: "list", - element: { - name: "typeRoots", - type: "string", - isFilePath: true - }, - affectsModuleResolution: true, - category: Diagnostics.Modules, - description: Diagnostics.Specify_multiple_folders_that_act_like_Slashnode_modules_Slash_types - }, - { - name: "types", - type: "list", - element: { - name: "types", - type: "string" - }, - affectsProgramStructure: true, - showInSimplifiedHelpView: true, - category: Diagnostics.Modules, - description: Diagnostics.Specify_type_package_names_to_be_included_without_being_referenced_in_a_source_file, - transpileOptionValue: void 0 - }, - { - name: "allowSyntheticDefaultImports", - type: "boolean", - affectsSemanticDiagnostics: true, - affectsBuildInfo: true, - category: Diagnostics.Interop_Constraints, - description: Diagnostics.Allow_import_x_from_y_when_a_module_doesn_t_have_a_default_export, - defaultValueDescription: Diagnostics.module_system_or_esModuleInterop - }, - { - name: "esModuleInterop", - type: "boolean", - affectsSemanticDiagnostics: true, - affectsEmit: true, - affectsBuildInfo: true, - showInSimplifiedHelpView: true, - category: Diagnostics.Interop_Constraints, - description: Diagnostics.Emit_additional_JavaScript_to_ease_support_for_importing_CommonJS_modules_This_enables_allowSyntheticDefaultImports_for_type_compatibility, - defaultValueDescription: false - }, - { - name: "preserveSymlinks", - type: "boolean", - category: Diagnostics.Interop_Constraints, - description: Diagnostics.Disable_resolving_symlinks_to_their_realpath_This_correlates_to_the_same_flag_in_node, - defaultValueDescription: false - }, - { - name: "allowUmdGlobalAccess", - type: "boolean", - affectsSemanticDiagnostics: true, - affectsBuildInfo: true, - category: Diagnostics.Modules, - description: Diagnostics.Allow_accessing_UMD_globals_from_modules, - defaultValueDescription: false - }, - { - name: "moduleSuffixes", - type: "list", - element: { - name: "suffix", - type: "string" - }, - listPreserveFalsyValues: true, - affectsModuleResolution: true, - category: Diagnostics.Modules, - description: Diagnostics.List_of_file_name_suffixes_to_search_when_resolving_a_module - }, - { - name: "allowImportingTsExtensions", - type: "boolean", - affectsSemanticDiagnostics: true, - affectsBuildInfo: true, - category: Diagnostics.Modules, - description: Diagnostics.Allow_imports_to_include_TypeScript_file_extensions_Requires_moduleResolution_bundler_and_either_noEmit_or_emitDeclarationOnly_to_be_set, - defaultValueDescription: false, - transpileOptionValue: void 0 - }, - { - name: "resolvePackageJsonExports", - type: "boolean", - affectsModuleResolution: true, - category: Diagnostics.Modules, - description: Diagnostics.Use_the_package_json_exports_field_when_resolving_package_imports, - defaultValueDescription: Diagnostics.true_when_moduleResolution_is_node16_nodenext_or_bundler_otherwise_false - }, - { - name: "resolvePackageJsonImports", - type: "boolean", - affectsModuleResolution: true, - category: Diagnostics.Modules, - description: Diagnostics.Use_the_package_json_imports_field_when_resolving_imports, - defaultValueDescription: Diagnostics.true_when_moduleResolution_is_node16_nodenext_or_bundler_otherwise_false - }, - { - name: "customConditions", - type: "list", - element: { - name: "condition", - type: "string" - }, - affectsModuleResolution: true, - category: Diagnostics.Modules, - description: Diagnostics.Conditions_to_set_in_addition_to_the_resolver_specific_defaults_when_resolving_imports - }, - // Source Maps - { - name: "sourceRoot", - type: "string", - affectsEmit: true, - affectsBuildInfo: true, - paramType: Diagnostics.LOCATION, - category: Diagnostics.Emit, - description: Diagnostics.Specify_the_root_path_for_debuggers_to_find_the_reference_source_code - }, - { - name: "mapRoot", - type: "string", - affectsEmit: true, - affectsBuildInfo: true, - paramType: Diagnostics.LOCATION, - category: Diagnostics.Emit, - description: Diagnostics.Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations - }, - { - name: "inlineSources", - type: "boolean", - affectsEmit: true, - affectsBuildInfo: true, - category: Diagnostics.Emit, - description: Diagnostics.Include_source_code_in_the_sourcemaps_inside_the_emitted_JavaScript, - defaultValueDescription: false - }, - // Experimental - { - name: "experimentalDecorators", - type: "boolean", - affectsEmit: true, - affectsSemanticDiagnostics: true, - affectsBuildInfo: true, - category: Diagnostics.Language_and_Environment, - description: Diagnostics.Enable_experimental_support_for_legacy_experimental_decorators, - defaultValueDescription: false - }, - { - name: "emitDecoratorMetadata", - type: "boolean", - affectsSemanticDiagnostics: true, - affectsEmit: true, - affectsBuildInfo: true, - category: Diagnostics.Language_and_Environment, - description: Diagnostics.Emit_design_type_metadata_for_decorated_declarations_in_source_files, - defaultValueDescription: false - }, - // Advanced - { - name: "jsxFactory", - type: "string", - category: Diagnostics.Language_and_Environment, - description: Diagnostics.Specify_the_JSX_factory_function_used_when_targeting_React_JSX_emit_e_g_React_createElement_or_h, - defaultValueDescription: "`React.createElement`" - }, - { - name: "jsxFragmentFactory", - type: "string", - category: Diagnostics.Language_and_Environment, - description: Diagnostics.Specify_the_JSX_Fragment_reference_used_for_fragments_when_targeting_React_JSX_emit_e_g_React_Fragment_or_Fragment, - defaultValueDescription: "React.Fragment" - }, - { - name: "jsxImportSource", - type: "string", - affectsSemanticDiagnostics: true, - affectsEmit: true, - affectsBuildInfo: true, - affectsModuleResolution: true, - category: Diagnostics.Language_and_Environment, - description: Diagnostics.Specify_module_specifier_used_to_import_the_JSX_factory_functions_when_using_jsx_Colon_react_jsx_Asterisk, - defaultValueDescription: "react" - }, - { - name: "resolveJsonModule", - type: "boolean", - affectsModuleResolution: true, - category: Diagnostics.Modules, - description: Diagnostics.Enable_importing_json_files, - defaultValueDescription: false - }, - { - name: "allowArbitraryExtensions", - type: "boolean", - affectsProgramStructure: true, - category: Diagnostics.Modules, - description: Diagnostics.Enable_importing_files_with_any_extension_provided_a_declaration_file_is_present, - defaultValueDescription: false - }, - { - name: "out", - type: "string", - affectsEmit: true, - affectsBuildInfo: true, - affectsDeclarationPath: true, - isFilePath: false, - // This is intentionally broken to support compatability with existing tsconfig files - // for correct behaviour, please use outFile - category: Diagnostics.Backwards_Compatibility, - paramType: Diagnostics.FILE, - transpileOptionValue: void 0, - description: Diagnostics.Deprecated_setting_Use_outFile_instead - }, - { - name: "reactNamespace", - type: "string", - affectsEmit: true, - affectsBuildInfo: true, - category: Diagnostics.Language_and_Environment, - description: Diagnostics.Specify_the_object_invoked_for_createElement_This_only_applies_when_targeting_react_JSX_emit, - defaultValueDescription: "`React`" - }, - { - name: "skipDefaultLibCheck", - type: "boolean", - // We need to store these to determine whether `lib` files need to be rechecked - affectsBuildInfo: true, - category: Diagnostics.Completeness, - description: Diagnostics.Skip_type_checking_d_ts_files_that_are_included_with_TypeScript, - defaultValueDescription: false - }, - { - name: "charset", - type: "string", - category: Diagnostics.Backwards_Compatibility, - description: Diagnostics.No_longer_supported_In_early_versions_manually_set_the_text_encoding_for_reading_files, - defaultValueDescription: "utf8" - }, - { - name: "emitBOM", - type: "boolean", - affectsEmit: true, - affectsBuildInfo: true, - category: Diagnostics.Emit, - description: Diagnostics.Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files, - defaultValueDescription: false - }, - { - name: "newLine", - type: new Map(Object.entries({ - crlf: 0 /* CarriageReturnLineFeed */, - lf: 1 /* LineFeed */ - })), - affectsEmit: true, - affectsBuildInfo: true, - paramType: Diagnostics.NEWLINE, - category: Diagnostics.Emit, - description: Diagnostics.Set_the_newline_character_for_emitting_files, - defaultValueDescription: "lf" - }, - { - name: "noErrorTruncation", - type: "boolean", - affectsSemanticDiagnostics: true, - affectsBuildInfo: true, - category: Diagnostics.Output_Formatting, - description: Diagnostics.Disable_truncating_types_in_error_messages, - defaultValueDescription: false - }, - { - name: "noLib", - type: "boolean", - category: Diagnostics.Language_and_Environment, - affectsProgramStructure: true, - description: Diagnostics.Disable_including_any_library_files_including_the_default_lib_d_ts, - // We are not returning a sourceFile for lib file when asked by the program, - // so pass --noLib to avoid reporting a file not found error. - transpileOptionValue: true, - defaultValueDescription: false - }, - { - name: "noResolve", - type: "boolean", - affectsModuleResolution: true, - category: Diagnostics.Modules, - description: Diagnostics.Disallow_import_s_require_s_or_reference_s_from_expanding_the_number_of_files_TypeScript_should_add_to_a_project, - // We are not doing a full typecheck, we are not resolving the whole context, - // so pass --noResolve to avoid reporting missing file errors. - transpileOptionValue: true, - defaultValueDescription: false - }, - { - name: "stripInternal", - type: "boolean", - affectsEmit: true, - affectsBuildInfo: true, - category: Diagnostics.Emit, - description: Diagnostics.Disable_emitting_declarations_that_have_internal_in_their_JSDoc_comments, - defaultValueDescription: false - }, - { - name: "disableSizeLimit", - type: "boolean", - affectsProgramStructure: true, - category: Diagnostics.Editor_Support, - description: Diagnostics.Remove_the_20mb_cap_on_total_source_code_size_for_JavaScript_files_in_the_TypeScript_language_server, - defaultValueDescription: false - }, - { - name: "disableSourceOfProjectReferenceRedirect", - type: "boolean", - isTSConfigOnly: true, - category: Diagnostics.Projects, - description: Diagnostics.Disable_preferring_source_files_instead_of_declaration_files_when_referencing_composite_projects, - defaultValueDescription: false - }, - { - name: "disableSolutionSearching", - type: "boolean", - isTSConfigOnly: true, - category: Diagnostics.Projects, - description: Diagnostics.Opt_a_project_out_of_multi_project_reference_checking_when_editing, - defaultValueDescription: false - }, - { - name: "disableReferencedProjectLoad", - type: "boolean", - isTSConfigOnly: true, - category: Diagnostics.Projects, - description: Diagnostics.Reduce_the_number_of_projects_loaded_automatically_by_TypeScript, - defaultValueDescription: false - }, - { - name: "noImplicitUseStrict", - type: "boolean", - affectsSemanticDiagnostics: true, - affectsBuildInfo: true, - category: Diagnostics.Backwards_Compatibility, - description: Diagnostics.Disable_adding_use_strict_directives_in_emitted_JavaScript_files, - defaultValueDescription: false - }, - { - name: "noEmitHelpers", - type: "boolean", - affectsEmit: true, - affectsBuildInfo: true, - category: Diagnostics.Emit, - description: Diagnostics.Disable_generating_custom_helper_functions_like_extends_in_compiled_output, - defaultValueDescription: false - }, - { - name: "noEmitOnError", - type: "boolean", - affectsEmit: true, - affectsBuildInfo: true, - category: Diagnostics.Emit, - transpileOptionValue: void 0, - description: Diagnostics.Disable_emitting_files_if_any_type_checking_errors_are_reported, - defaultValueDescription: false - }, - { - name: "preserveConstEnums", - type: "boolean", - affectsEmit: true, - affectsBuildInfo: true, - category: Diagnostics.Emit, - description: Diagnostics.Disable_erasing_const_enum_declarations_in_generated_code, - defaultValueDescription: false - }, - { - name: "declarationDir", - type: "string", - affectsEmit: true, - affectsBuildInfo: true, - affectsDeclarationPath: true, - isFilePath: true, - paramType: Diagnostics.DIRECTORY, - category: Diagnostics.Emit, - transpileOptionValue: void 0, - description: Diagnostics.Specify_the_output_directory_for_generated_declaration_files - }, - { - name: "skipLibCheck", - type: "boolean", - // We need to store these to determine whether `lib` files need to be rechecked - affectsBuildInfo: true, - category: Diagnostics.Completeness, - description: Diagnostics.Skip_type_checking_all_d_ts_files, - defaultValueDescription: false - }, - { - name: "allowUnusedLabels", - type: "boolean", - affectsBindDiagnostics: true, - affectsSemanticDiagnostics: true, - affectsBuildInfo: true, - category: Diagnostics.Type_Checking, - description: Diagnostics.Disable_error_reporting_for_unused_labels, - defaultValueDescription: void 0 - }, - { - name: "allowUnreachableCode", - type: "boolean", - affectsBindDiagnostics: true, - affectsSemanticDiagnostics: true, - affectsBuildInfo: true, - category: Diagnostics.Type_Checking, - description: Diagnostics.Disable_error_reporting_for_unreachable_code, - defaultValueDescription: void 0 - }, - { - name: "suppressExcessPropertyErrors", - type: "boolean", - affectsSemanticDiagnostics: true, - affectsBuildInfo: true, - category: Diagnostics.Backwards_Compatibility, - description: Diagnostics.Disable_reporting_of_excess_property_errors_during_the_creation_of_object_literals, - defaultValueDescription: false - }, - { - name: "suppressImplicitAnyIndexErrors", - type: "boolean", - affectsSemanticDiagnostics: true, - affectsBuildInfo: true, - category: Diagnostics.Backwards_Compatibility, - description: Diagnostics.Suppress_noImplicitAny_errors_when_indexing_objects_that_lack_index_signatures, - defaultValueDescription: false - }, - { - name: "forceConsistentCasingInFileNames", - type: "boolean", - affectsModuleResolution: true, - category: Diagnostics.Interop_Constraints, - description: Diagnostics.Ensure_that_casing_is_correct_in_imports, - defaultValueDescription: true - }, - { - name: "maxNodeModuleJsDepth", - type: "number", - affectsModuleResolution: true, - category: Diagnostics.JavaScript_Support, - description: Diagnostics.Specify_the_maximum_folder_depth_used_for_checking_JavaScript_files_from_node_modules_Only_applicable_with_allowJs, - defaultValueDescription: 0 - }, - { - name: "noStrictGenericChecks", - type: "boolean", - affectsSemanticDiagnostics: true, - affectsBuildInfo: true, - category: Diagnostics.Backwards_Compatibility, - description: Diagnostics.Disable_strict_checking_of_generic_signatures_in_function_types, - defaultValueDescription: false - }, - { - name: "useDefineForClassFields", - type: "boolean", - affectsSemanticDiagnostics: true, - affectsEmit: true, - affectsBuildInfo: true, - category: Diagnostics.Language_and_Environment, - description: Diagnostics.Emit_ECMAScript_standard_compliant_class_fields, - defaultValueDescription: Diagnostics.true_for_ES2022_and_above_including_ESNext - }, - { - name: "preserveValueImports", - type: "boolean", - affectsEmit: true, - affectsBuildInfo: true, - category: Diagnostics.Emit, - description: Diagnostics.Preserve_unused_imported_values_in_the_JavaScript_output_that_would_otherwise_be_removed, - defaultValueDescription: false - }, - { - name: "keyofStringsOnly", - type: "boolean", - category: Diagnostics.Backwards_Compatibility, - description: Diagnostics.Make_keyof_only_return_strings_instead_of_string_numbers_or_symbols_Legacy_option, - defaultValueDescription: false - }, - { - // A list of plugins to load in the language service - name: "plugins", - type: "list", - isTSConfigOnly: true, - element: { - name: "plugin", - type: "object" - }, - description: Diagnostics.Specify_a_list_of_language_service_plugins_to_include, - category: Diagnostics.Editor_Support - }, - { - name: "moduleDetection", - type: new Map(Object.entries({ - auto: 2 /* Auto */, - legacy: 1 /* Legacy */, - force: 3 /* Force */ - })), - affectsModuleResolution: true, - description: Diagnostics.Control_what_method_is_used_to_detect_module_format_JS_files, - category: Diagnostics.Language_and_Environment, - defaultValueDescription: Diagnostics.auto_Colon_Treat_files_with_imports_exports_import_meta_jsx_with_jsx_Colon_react_jsx_or_esm_format_with_module_Colon_node16_as_modules - }, - { - name: "ignoreDeprecations", - type: "string", - defaultValueDescription: void 0 - } -]; -var optionDeclarations = __spreadArray(__spreadArray([], __read(commonOptionsWithBuild), false), __read(commandOptionsWithoutBuild), false); -var semanticDiagnosticsOptionDeclarations = optionDeclarations.filter(function (option) { return !!option.affectsSemanticDiagnostics; }); -var affectsEmitOptionDeclarations = optionDeclarations.filter(function (option) { return !!option.affectsEmit; }); -var affectsDeclarationPathOptionDeclarations = optionDeclarations.filter(function (option) { return !!option.affectsDeclarationPath; }); -var moduleResolutionOptionDeclarations = optionDeclarations.filter(function (option) { return !!option.affectsModuleResolution; }); -var sourceFileAffectingCompilerOptions = optionDeclarations.filter(function (option) { return !!option.affectsSourceFile || !!option.affectsModuleResolution || !!option.affectsBindDiagnostics; }); -var optionsAffectingProgramStructure = optionDeclarations.filter(function (option) { return !!option.affectsProgramStructure; }); -var transpileOptionValueCompilerOptions = optionDeclarations.filter(function (option) { return hasProperty(option, "transpileOptionValue"); }); -var optionsForBuild = [ - { - name: "verbose", - shortName: "v", - category: Diagnostics.Command_line_Options, - description: Diagnostics.Enable_verbose_logging, - type: "boolean", - defaultValueDescription: false - }, - { - name: "dry", - shortName: "d", - category: Diagnostics.Command_line_Options, - description: Diagnostics.Show_what_would_be_built_or_deleted_if_specified_with_clean, - type: "boolean", - defaultValueDescription: false - }, - { - name: "force", - shortName: "f", - category: Diagnostics.Command_line_Options, - description: Diagnostics.Build_all_projects_including_those_that_appear_to_be_up_to_date, - type: "boolean", - defaultValueDescription: false - }, - { - name: "clean", - category: Diagnostics.Command_line_Options, - description: Diagnostics.Delete_the_outputs_of_all_projects, - type: "boolean", - defaultValueDescription: false - } -]; -var buildOpts = __spreadArray(__spreadArray([], __read(commonOptionsWithBuild), false), __read(optionsForBuild), false); -var typeAcquisitionDeclarations = [ - { - name: "enable", - type: "boolean", - defaultValueDescription: false - }, - { - name: "include", - type: "list", - element: { - name: "include", - type: "string" - } - }, - { - name: "exclude", - type: "list", - element: { - name: "exclude", - type: "string" - } - }, - { - name: "disableFilenameBasedTypeAcquisition", - type: "boolean", - defaultValueDescription: false - } -]; -function createOptionNameMap(optionDeclarations2) { - var optionsNameMap = /* @__PURE__ */ new Map(); - var shortOptionNames = /* @__PURE__ */ new Map(); - forEach(optionDeclarations2, function (option) { - optionsNameMap.set(option.name.toLowerCase(), option); - if (option.shortName) { - shortOptionNames.set(option.shortName, option.name); - } - }); - return { optionsNameMap: optionsNameMap, shortOptionNames: shortOptionNames }; -} -var optionsNameMapCache; -function getOptionsNameMap() { - return optionsNameMapCache || (optionsNameMapCache = createOptionNameMap(optionDeclarations)); -} -var compilerOptionsAlternateMode = { - diagnostic: Diagnostics.Compiler_option_0_may_only_be_used_with_build, - getOptionsNameMap: getBuildOptionsNameMap -}; -var defaultInitCompilerOptions = { - module: 1 /* CommonJS */, - target: 3 /* ES2016 */, - strict: true, - esModuleInterop: true, - forceConsistentCasingInFileNames: true, - skipLibCheck: true -}; -function createCompilerDiagnosticForInvalidCustomType(opt) { - return createDiagnosticForInvalidCustomType(opt, createCompilerDiagnostic); -} -function createDiagnosticForInvalidCustomType(opt, createDiagnostic) { - var namesOfType = arrayFrom(opt.type.keys()); - var stringNames = (opt.deprecatedKeys ? namesOfType.filter(function (k) { return !opt.deprecatedKeys.has(k); }) : namesOfType).map(function (key) { return "'".concat(key, "'"); }).join(", "); - return createDiagnostic(Diagnostics.Argument_for_0_option_must_be_Colon_1, "--".concat(opt.name), stringNames); -} -function parseCustomTypeOption(opt, value, errors) { - return convertJsonOptionOfCustomType(opt, trimString(value || ""), errors); -} -function parseListTypeOption(opt, value, errors) { - if (value === void 0) { value = ""; } - value = trimString(value); - if (startsWith(value, "-")) { - return void 0; - } - if (opt.type === "listOrElement" && !stringContains(value, ",")) { - return validateJsonOptionValue(opt, value, errors); - } - if (value === "") { - return []; - } - var values = value.split(","); - switch (opt.element.type) { - case "number": - return mapDefined(values, function (v) { return validateJsonOptionValue(opt.element, parseInt(v), errors); }); - case "string": - return mapDefined(values, function (v) { return validateJsonOptionValue(opt.element, v || "", errors); }); - case "boolean": - case "object": - return Debug.fail("List of ".concat(opt.element.type, " is not yet supported.")); - default: - return mapDefined(values, function (v) { return parseCustomTypeOption(opt.element, v, errors); }); - } -} -function getOptionName(option) { - return option.name; -} -function createUnknownOptionError(unknownOption, diagnostics, unknownOptionErrorText, node, sourceFile) { - var _a; - if ((_a = diagnostics.alternateMode) == null ? void 0 : _a.getOptionsNameMap().optionsNameMap.has(unknownOption.toLowerCase())) { - return createDiagnosticForNodeInSourceFileOrCompilerDiagnostic(sourceFile, node, diagnostics.alternateMode.diagnostic, unknownOption); - } - var possibleOption = getSpellingSuggestion(unknownOption, diagnostics.optionDeclarations, getOptionName); - return possibleOption ? createDiagnosticForNodeInSourceFileOrCompilerDiagnostic(sourceFile, node, diagnostics.unknownDidYouMeanDiagnostic, unknownOptionErrorText || unknownOption, possibleOption.name) : createDiagnosticForNodeInSourceFileOrCompilerDiagnostic(sourceFile, node, diagnostics.unknownOptionDiagnostic, unknownOptionErrorText || unknownOption); -} -function parseCommandLineWorker(diagnostics, commandLine, readFile) { - var options = {}; - var watchOptions; - var fileNames = []; - var errors = []; - parseStrings(commandLine); - return { - options: options, - watchOptions: watchOptions, - fileNames: fileNames, - errors: errors - }; - function parseStrings(args) { - var i = 0; - while (i < args.length) { - var s = args[i]; - i++; - if (s.charCodeAt(0) === 64 /* at */) { - parseResponseFile(s.slice(1)); - } - else if (s.charCodeAt(0) === 45 /* minus */) { - var inputOptionName = s.slice(s.charCodeAt(1) === 45 /* minus */ ? 2 : 1); - var opt = getOptionDeclarationFromName(diagnostics.getOptionsNameMap, inputOptionName, - /*allowShort*/ - true); - if (opt) { - i = parseOptionValue(args, i, diagnostics, opt, options, errors); - } - else { - var watchOpt = getOptionDeclarationFromName(watchOptionsDidYouMeanDiagnostics.getOptionsNameMap, inputOptionName, - /*allowShort*/ - true); - if (watchOpt) { - i = parseOptionValue(args, i, watchOptionsDidYouMeanDiagnostics, watchOpt, watchOptions || (watchOptions = {}), errors); - } - else { - errors.push(createUnknownOptionError(inputOptionName, diagnostics, s)); - } - } - } - else { - fileNames.push(s); - } - } - } - function parseResponseFile(fileName) { - var text = tryReadFile(fileName, readFile || (function (fileName2) { return sys.readFile(fileName2); })); - if (!isString(text)) { - errors.push(text); - return; - } - var args = []; - var pos = 0; - while (true) { - while (pos < text.length && text.charCodeAt(pos) <= 32 /* space */) - pos++; - if (pos >= text.length) - break; - var start2 = pos; - if (text.charCodeAt(start2) === 34 /* doubleQuote */) { - pos++; - while (pos < text.length && text.charCodeAt(pos) !== 34 /* doubleQuote */) - pos++; - if (pos < text.length) { - args.push(text.substring(start2 + 1, pos)); - pos++; - } - else { - errors.push(createCompilerDiagnostic(Diagnostics.Unterminated_quoted_string_in_response_file_0, fileName)); - } - } - else { - while (text.charCodeAt(pos) > 32 /* space */) - pos++; - args.push(text.substring(start2, pos)); - } - } - parseStrings(args); - } -} -function parseOptionValue(args, i, diagnostics, opt, options, errors) { - if (opt.isTSConfigOnly) { - var optValue = args[i]; - if (optValue === "null") { - options[opt.name] = void 0; - i++; - } - else if (opt.type === "boolean") { - if (optValue === "false") { - options[opt.name] = validateJsonOptionValue(opt, - /*value*/ - false, errors); - i++; - } - else { - if (optValue === "true") - i++; - errors.push(createCompilerDiagnostic(Diagnostics.Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line, opt.name)); - } - } - else { - errors.push(createCompilerDiagnostic(Diagnostics.Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line, opt.name)); - if (optValue && !startsWith(optValue, "-")) - i++; - } - } - else { - if (!args[i] && opt.type !== "boolean") { - errors.push(createCompilerDiagnostic(diagnostics.optionTypeMismatchDiagnostic, opt.name, getCompilerOptionValueTypeString(opt))); - } - if (args[i] !== "null") { - switch (opt.type) { - case "number": - options[opt.name] = validateJsonOptionValue(opt, parseInt(args[i]), errors); - i++; - break; - case "boolean": - var optValue = args[i]; - options[opt.name] = validateJsonOptionValue(opt, optValue !== "false", errors); - if (optValue === "false" || optValue === "true") { - i++; - } - break; - case "string": - options[opt.name] = validateJsonOptionValue(opt, args[i] || "", errors); - i++; - break; - case "list": - var result = parseListTypeOption(opt, args[i], errors); - options[opt.name] = result || []; - if (result) { - i++; - } - break; - case "listOrElement": - Debug.fail("listOrElement not supported here"); - break; - default: - options[opt.name] = parseCustomTypeOption(opt, args[i], errors); - i++; - break; - } - } - else { - options[opt.name] = void 0; - i++; - } - } - return i; -} -var compilerOptionsDidYouMeanDiagnostics = { - alternateMode: compilerOptionsAlternateMode, - getOptionsNameMap: getOptionsNameMap, - optionDeclarations: optionDeclarations, - unknownOptionDiagnostic: Diagnostics.Unknown_compiler_option_0, - unknownDidYouMeanDiagnostic: Diagnostics.Unknown_compiler_option_0_Did_you_mean_1, - optionTypeMismatchDiagnostic: Diagnostics.Compiler_option_0_expects_an_argument -}; -function parseCommandLine(commandLine, readFile) { - return parseCommandLineWorker(compilerOptionsDidYouMeanDiagnostics, commandLine, readFile); -} -function getOptionFromName(optionName, allowShort) { - return getOptionDeclarationFromName(getOptionsNameMap, optionName, allowShort); -} -function getOptionDeclarationFromName(getOptionNameMap, optionName, allowShort) { - if (allowShort === void 0) { allowShort = false; } - optionName = optionName.toLowerCase(); - var _t = getOptionNameMap(), optionsNameMap = _t.optionsNameMap, shortOptionNames = _t.shortOptionNames; - if (allowShort) { - var short = shortOptionNames.get(optionName); - if (short !== void 0) { - optionName = short; - } - } - return optionsNameMap.get(optionName); -} -var buildOptionsNameMapCache; -function getBuildOptionsNameMap() { - return buildOptionsNameMapCache || (buildOptionsNameMapCache = createOptionNameMap(buildOpts)); -} -var buildOptionsAlternateMode = { - diagnostic: Diagnostics.Compiler_option_0_may_not_be_used_with_build, - getOptionsNameMap: getOptionsNameMap -}; -var buildOptionsDidYouMeanDiagnostics = { - alternateMode: buildOptionsAlternateMode, - getOptionsNameMap: getBuildOptionsNameMap, - optionDeclarations: buildOpts, - unknownOptionDiagnostic: Diagnostics.Unknown_build_option_0, - unknownDidYouMeanDiagnostic: Diagnostics.Unknown_build_option_0_Did_you_mean_1, - optionTypeMismatchDiagnostic: Diagnostics.Build_option_0_requires_a_value_of_type_1 -}; -function parseBuildCommand(args) { - var _t = parseCommandLineWorker(buildOptionsDidYouMeanDiagnostics, args), options = _t.options, watchOptions = _t.watchOptions, projects = _t.fileNames, errors = _t.errors; - var buildOptions = options; - if (projects.length === 0) { - projects.push("."); - } - if (buildOptions.clean && buildOptions.force) { - errors.push(createCompilerDiagnostic(Diagnostics.Options_0_and_1_cannot_be_combined, "clean", "force")); - } - if (buildOptions.clean && buildOptions.verbose) { - errors.push(createCompilerDiagnostic(Diagnostics.Options_0_and_1_cannot_be_combined, "clean", "verbose")); - } - if (buildOptions.clean && buildOptions.watch) { - errors.push(createCompilerDiagnostic(Diagnostics.Options_0_and_1_cannot_be_combined, "clean", "watch")); - } - if (buildOptions.watch && buildOptions.dry) { - errors.push(createCompilerDiagnostic(Diagnostics.Options_0_and_1_cannot_be_combined, "watch", "dry")); - } - return { buildOptions: buildOptions, watchOptions: watchOptions, projects: projects, errors: errors }; -} -function getDiagnosticText(_message) { - var _args = []; - for (var _t = 1; _t < arguments.length; _t++) { - _args[_t - 1] = arguments[_t]; - } - var diagnostic = createCompilerDiagnostic.apply(void 0, arguments); - return diagnostic.messageText; -} -function getParsedCommandLineOfConfigFile(configFileName, optionsToExtend, host, extendedConfigCache, watchOptionsToExtend, extraFileExtensions) { - var configFileText = tryReadFile(configFileName, function (fileName) { return host.readFile(fileName); }); - if (!isString(configFileText)) { - host.onUnRecoverableConfigFileDiagnostic(configFileText); - return void 0; - } - var result = parseJsonText(configFileName, configFileText); - var cwd = host.getCurrentDirectory(); - result.path = toPath(configFileName, cwd, createGetCanonicalFileName(host.useCaseSensitiveFileNames)); - result.resolvedPath = result.path; - result.originalFileName = result.fileName; - return parseJsonSourceFileConfigFileContent(result, host, getNormalizedAbsolutePath(getDirectoryPath(configFileName), cwd), optionsToExtend, getNormalizedAbsolutePath(configFileName, cwd), - /*resolutionStack*/ - void 0, extraFileExtensions, extendedConfigCache, watchOptionsToExtend); -} -function readConfigFile(fileName, readFile) { - var textOrDiagnostic = tryReadFile(fileName, readFile); - return isString(textOrDiagnostic) ? parseConfigFileTextToJson(fileName, textOrDiagnostic) : { config: {}, error: textOrDiagnostic }; -} -function parseConfigFileTextToJson(fileName, jsonText) { - var jsonSourceFile = parseJsonText(fileName, jsonText); - return { - config: convertConfigFileToObject(jsonSourceFile, jsonSourceFile.parseDiagnostics, - /*jsonConversionNotifier*/ - void 0), - error: jsonSourceFile.parseDiagnostics.length ? jsonSourceFile.parseDiagnostics[0] : void 0 - }; -} -function readJsonConfigFile(fileName, readFile) { - var textOrDiagnostic = tryReadFile(fileName, readFile); - return isString(textOrDiagnostic) ? parseJsonText(fileName, textOrDiagnostic) : { fileName: fileName, parseDiagnostics: [textOrDiagnostic] }; -} -function tryReadFile(fileName, readFile) { - var text; - try { - text = readFile(fileName); - } - catch (e) { - return createCompilerDiagnostic(Diagnostics.Cannot_read_file_0_Colon_1, fileName, e.message); - } - return text === void 0 ? createCompilerDiagnostic(Diagnostics.Cannot_read_file_0, fileName) : text; -} -function commandLineOptionsToMap(options) { - return arrayToMap(options, getOptionName); -} -var typeAcquisitionDidYouMeanDiagnostics = { - optionDeclarations: typeAcquisitionDeclarations, - unknownOptionDiagnostic: Diagnostics.Unknown_type_acquisition_option_0, - unknownDidYouMeanDiagnostic: Diagnostics.Unknown_type_acquisition_option_0_Did_you_mean_1 -}; -var watchOptionsNameMapCache; -function getWatchOptionsNameMap() { - return watchOptionsNameMapCache || (watchOptionsNameMapCache = createOptionNameMap(optionsForWatch)); -} -var watchOptionsDidYouMeanDiagnostics = { - getOptionsNameMap: getWatchOptionsNameMap, - optionDeclarations: optionsForWatch, - unknownOptionDiagnostic: Diagnostics.Unknown_watch_option_0, - unknownDidYouMeanDiagnostic: Diagnostics.Unknown_watch_option_0_Did_you_mean_1, - optionTypeMismatchDiagnostic: Diagnostics.Watch_option_0_requires_a_value_of_type_1 -}; -var commandLineCompilerOptionsMapCache; -function getCommandLineCompilerOptionsMap() { - return commandLineCompilerOptionsMapCache || (commandLineCompilerOptionsMapCache = commandLineOptionsToMap(optionDeclarations)); -} -var commandLineWatchOptionsMapCache; -function getCommandLineWatchOptionsMap() { - return commandLineWatchOptionsMapCache || (commandLineWatchOptionsMapCache = commandLineOptionsToMap(optionsForWatch)); -} -var commandLineTypeAcquisitionMapCache; -function getCommandLineTypeAcquisitionMap() { - return commandLineTypeAcquisitionMapCache || (commandLineTypeAcquisitionMapCache = commandLineOptionsToMap(typeAcquisitionDeclarations)); -} -var extendsOptionDeclaration = { - name: "extends", - type: "listOrElement", - element: { - name: "extends", - type: "string" - }, - category: Diagnostics.File_Management, - disallowNullOrUndefined: true -}; -var compilerOptionsDeclaration = { - name: "compilerOptions", - type: "object", - elementOptions: getCommandLineCompilerOptionsMap(), - extraKeyDiagnostics: compilerOptionsDidYouMeanDiagnostics -}; -var watchOptionsDeclaration = { - name: "watchOptions", - type: "object", - elementOptions: getCommandLineWatchOptionsMap(), - extraKeyDiagnostics: watchOptionsDidYouMeanDiagnostics -}; -var typeAcquisitionDeclaration = { - name: "typeAcquisition", - type: "object", - elementOptions: getCommandLineTypeAcquisitionMap(), - extraKeyDiagnostics: typeAcquisitionDidYouMeanDiagnostics -}; -var _tsconfigRootOptions; -function getTsconfigRootOptionsMap() { - if (_tsconfigRootOptions === void 0) { - _tsconfigRootOptions = { - name: void 0, - // should never be needed since this is root - type: "object", - elementOptions: commandLineOptionsToMap([ - compilerOptionsDeclaration, - watchOptionsDeclaration, - typeAcquisitionDeclaration, - extendsOptionDeclaration, - { - name: "references", - type: "list", - element: { - name: "references", - type: "object" - }, - category: Diagnostics.Projects - }, - { - name: "files", - type: "list", - element: { - name: "files", - type: "string" - }, - category: Diagnostics.File_Management - }, - { - name: "include", - type: "list", - element: { - name: "include", - type: "string" - }, - category: Diagnostics.File_Management, - defaultValueDescription: Diagnostics.if_files_is_specified_otherwise_Asterisk_Asterisk_Slash_Asterisk - }, - { - name: "exclude", - type: "list", - element: { - name: "exclude", - type: "string" - }, - category: Diagnostics.File_Management, - defaultValueDescription: Diagnostics.node_modules_bower_components_jspm_packages_plus_the_value_of_outDir_if_one_is_specified - }, - compileOnSaveCommandLineOption - ]) - }; - } - return _tsconfigRootOptions; -} -function convertConfigFileToObject(sourceFile, errors, jsonConversionNotifier) { - var _a; - var rootExpression = (_a = sourceFile.statements[0]) == null ? void 0 : _a.expression; - if (rootExpression && rootExpression.kind !== 210 /* ObjectLiteralExpression */) { - errors.push(createDiagnosticForNodeInSourceFile(sourceFile, rootExpression, Diagnostics.The_root_value_of_a_0_file_must_be_an_object, getBaseFileName(sourceFile.fileName) === "jsconfig.json" ? "jsconfig.json" : "tsconfig.json")); - if (isArrayLiteralExpression(rootExpression)) { - var firstObject = find(rootExpression.elements, isObjectLiteralExpression); - if (firstObject) { - return convertToJson(sourceFile, firstObject, errors, - /*returnValue*/ - true, jsonConversionNotifier); - } - } - return {}; - } - return convertToJson(sourceFile, rootExpression, errors, - /*returnValue*/ - true, jsonConversionNotifier); -} -function convertToObject(sourceFile, errors) { - var _a; - return convertToJson(sourceFile, (_a = sourceFile.statements[0]) == null ? void 0 : _a.expression, errors, - /*returnValue*/ - true, - /*jsonConversionNotifier*/ - void 0); -} -function convertToJson(sourceFile, rootExpression, errors, returnValue, jsonConversionNotifier) { - if (!rootExpression) { - return returnValue ? {} : void 0; - } - return convertPropertyValueToJson(rootExpression, jsonConversionNotifier == null ? void 0 : jsonConversionNotifier.rootOptions); - function convertObjectLiteralExpressionToJson(node, objectOption) { - var e_109, _t; - var _a; - var result = returnValue ? {} : void 0; - try { - for (var _u = __values(node.properties), _v = _u.next(); !_v.done; _v = _u.next()) { - var element = _v.value; - if (element.kind !== 303 /* PropertyAssignment */) { - errors.push(createDiagnosticForNodeInSourceFile(sourceFile, element, Diagnostics.Property_assignment_expected)); - continue; - } - if (element.questionToken) { - errors.push(createDiagnosticForNodeInSourceFile(sourceFile, element.questionToken, Diagnostics.The_0_modifier_can_only_be_used_in_TypeScript_files, "?")); - } - if (!isDoubleQuotedString(element.name)) { - errors.push(createDiagnosticForNodeInSourceFile(sourceFile, element.name, Diagnostics.String_literal_with_double_quotes_expected)); - } - var textOfKey = isComputedNonLiteralName(element.name) ? void 0 : getTextOfPropertyName(element.name); - var keyText = textOfKey && unescapeLeadingUnderscores(textOfKey); - var option = keyText ? (_a = objectOption == null ? void 0 : objectOption.elementOptions) == null ? void 0 : _a.get(keyText) : void 0; - var value = convertPropertyValueToJson(element.initializer, option); - if (typeof keyText !== "undefined") { - if (returnValue) { - result[keyText] = value; - } - jsonConversionNotifier == null ? void 0 : jsonConversionNotifier.onPropertySet(keyText, value, element, objectOption, option); - } - } - } - catch (e_109_1) { e_109 = { error: e_109_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_109) throw e_109.error; } - } - return result; - } - function convertArrayLiteralExpressionToJson(elements, elementOption) { - if (!returnValue) { - elements.forEach(function (element) { return convertPropertyValueToJson(element, elementOption); }); - return void 0; - } - return filter(elements.map(function (element) { return convertPropertyValueToJson(element, elementOption); }), function (v) { return v !== void 0; }); - } - function convertPropertyValueToJson(valueExpression, option) { - switch (valueExpression.kind) { - case 112 /* TrueKeyword */: - return true; - case 97 /* FalseKeyword */: - return false; - case 106 /* NullKeyword */: - return null; - case 11 /* StringLiteral */: - if (!isDoubleQuotedString(valueExpression)) { - errors.push(createDiagnosticForNodeInSourceFile(sourceFile, valueExpression, Diagnostics.String_literal_with_double_quotes_expected)); - } - return valueExpression.text; - case 9 /* NumericLiteral */: - return Number(valueExpression.text); - case 224 /* PrefixUnaryExpression */: - if (valueExpression.operator !== 41 /* MinusToken */ || valueExpression.operand.kind !== 9 /* NumericLiteral */) { - break; - } - return -Number(valueExpression.operand.text); - case 210 /* ObjectLiteralExpression */: - var objectLiteralExpression = valueExpression; - return convertObjectLiteralExpressionToJson(objectLiteralExpression, option); - case 209 /* ArrayLiteralExpression */: - return convertArrayLiteralExpressionToJson(valueExpression.elements, option && option.element); - } - if (option) { - errors.push(createDiagnosticForNodeInSourceFile(sourceFile, valueExpression, Diagnostics.Compiler_option_0_requires_a_value_of_type_1, option.name, getCompilerOptionValueTypeString(option))); - } - else { - errors.push(createDiagnosticForNodeInSourceFile(sourceFile, valueExpression, Diagnostics.Property_value_can_only_be_string_literal_numeric_literal_true_false_null_object_literal_or_array_literal)); - } - return void 0; - } - function isDoubleQuotedString(node) { - return isStringLiteral(node) && isStringDoubleQuoted(node, sourceFile); - } -} -function getCompilerOptionValueTypeString(option) { - return option.type === "listOrElement" ? "".concat(getCompilerOptionValueTypeString(option.element), " or Array") : option.type === "list" ? "Array" : isString(option.type) ? option.type : "string"; -} -function isCompilerOptionsValue(option, value) { - if (option) { - if (isNullOrUndefined(value)) - return !option.disallowNullOrUndefined; - if (option.type === "list") { - return isArray(value); - } - if (option.type === "listOrElement") { - return isArray(value) || isCompilerOptionsValue(option.element, value); - } - var expectedType = isString(option.type) ? option.type : "string"; - return typeof value === expectedType; - } - return false; -} -function convertToTSConfig(configParseResult, configFileName, host) { - var _a, _b, _c; - var getCanonicalFileName = createGetCanonicalFileName(host.useCaseSensitiveFileNames); - var files = map(filter(configParseResult.fileNames, !((_b = (_a = configParseResult.options.configFile) == null ? void 0 : _a.configFileSpecs) == null ? void 0 : _b.validatedIncludeSpecs) ? returnTrue : matchesSpecs(configFileName, configParseResult.options.configFile.configFileSpecs.validatedIncludeSpecs, configParseResult.options.configFile.configFileSpecs.validatedExcludeSpecs, host)), function (f) { return getRelativePathFromFile(getNormalizedAbsolutePath(configFileName, host.getCurrentDirectory()), getNormalizedAbsolutePath(f, host.getCurrentDirectory()), getCanonicalFileName); }); - var optionMap = serializeCompilerOptions(configParseResult.options, { configFilePath: getNormalizedAbsolutePath(configFileName, host.getCurrentDirectory()), useCaseSensitiveFileNames: host.useCaseSensitiveFileNames }); - var watchOptionMap = configParseResult.watchOptions && serializeWatchOptions(configParseResult.watchOptions); - var config = __assign(__assign({ compilerOptions: __assign(__assign({}, optionMapToObject(optionMap)), { showConfig: void 0, configFile: void 0, configFilePath: void 0, help: void 0, init: void 0, listFiles: void 0, listEmittedFiles: void 0, project: void 0, build: void 0, version: void 0 }), watchOptions: watchOptionMap && optionMapToObject(watchOptionMap), references: map(configParseResult.projectReferences, function (r) { return (__assign(__assign({}, r), { path: r.originalPath ? r.originalPath : "", originalPath: void 0 })); }), files: length(files) ? files : void 0 }, ((_c = configParseResult.options.configFile) == null ? void 0 : _c.configFileSpecs) ? { - include: filterSameAsDefaultInclude(configParseResult.options.configFile.configFileSpecs.validatedIncludeSpecs), - exclude: configParseResult.options.configFile.configFileSpecs.validatedExcludeSpecs - } : {}), { compileOnSave: !!configParseResult.compileOnSave ? true : void 0 }); - return config; -} -function optionMapToObject(optionMap) { - return __assign({}, arrayFrom(optionMap.entries()).reduce(function (prev, cur) { - var _t; - return (__assign(__assign({}, prev), (_t = {}, _t[cur[0]] = cur[1], _t))); - }, {})); -} -function filterSameAsDefaultInclude(specs) { - if (!length(specs)) - return void 0; - if (length(specs) !== 1) - return specs; - if (specs[0] === defaultIncludeSpec) - return void 0; - return specs; -} -function matchesSpecs(path, includeSpecs, excludeSpecs, host) { - if (!includeSpecs) - return returnTrue; - var patterns = getFileMatcherPatterns(path, excludeSpecs, includeSpecs, host.useCaseSensitiveFileNames, host.getCurrentDirectory()); - var excludeRe = patterns.excludePattern && getRegexFromPattern(patterns.excludePattern, host.useCaseSensitiveFileNames); - var includeRe = patterns.includeFilePattern && getRegexFromPattern(patterns.includeFilePattern, host.useCaseSensitiveFileNames); - if (includeRe) { - if (excludeRe) { - return function (path2) { return !(includeRe.test(path2) && !excludeRe.test(path2)); }; - } - return function (path2) { return !includeRe.test(path2); }; - } - if (excludeRe) { - return function (path2) { return excludeRe.test(path2); }; - } - return returnTrue; -} -function getCustomTypeMapOfCommandLineOption(optionDefinition) { - switch (optionDefinition.type) { - case "string": - case "number": - case "boolean": - case "object": - return void 0; - case "list": - case "listOrElement": - return getCustomTypeMapOfCommandLineOption(optionDefinition.element); - default: - return optionDefinition.type; - } -} -function getNameOfCompilerOptionValue(value, customTypeMap) { - return forEachEntry(customTypeMap, function (mapValue, key) { - if (mapValue === value) { - return key; - } - }); -} -function serializeCompilerOptions(options, pathOptions) { - return serializeOptionBaseObject(options, getOptionsNameMap(), pathOptions); -} -function serializeWatchOptions(options) { - return serializeOptionBaseObject(options, getWatchOptionsNameMap()); -} -function serializeOptionBaseObject(options, _t, pathOptions) { - var optionsNameMap = _t.optionsNameMap; - var result = /* @__PURE__ */ new Map(); - var getCanonicalFileName = pathOptions && createGetCanonicalFileName(pathOptions.useCaseSensitiveFileNames); - var _loop_5 = function (name_18) { - if (hasProperty(options, name_18)) { - if (optionsNameMap.has(name_18) && (optionsNameMap.get(name_18).category === Diagnostics.Command_line_Options || optionsNameMap.get(name_18).category === Diagnostics.Output_Formatting)) { - return "continue"; - } - var value = options[name_18]; - var optionDefinition = optionsNameMap.get(name_18.toLowerCase()); - if (optionDefinition) { - Debug.assert(optionDefinition.type !== "listOrElement"); - var customTypeMap_1 = getCustomTypeMapOfCommandLineOption(optionDefinition); - if (!customTypeMap_1) { - if (pathOptions && optionDefinition.isFilePath) { - result.set(name_18, getRelativePathFromFile(pathOptions.configFilePath, getNormalizedAbsolutePath(value, getDirectoryPath(pathOptions.configFilePath)), getCanonicalFileName)); - } - else { - result.set(name_18, value); - } - } - else { - if (optionDefinition.type === "list") { - result.set(name_18, value.map(function (element) { return getNameOfCompilerOptionValue(element, customTypeMap_1); })); - } - else { - result.set(name_18, getNameOfCompilerOptionValue(value, customTypeMap_1)); - } - } - } - } - }; - for (var name_18 in options) { - _loop_5(name_18); - } - return result; -} -function getCompilerOptionsDiffValue(options, newLine) { - var compilerOptionsMap = getSerializedCompilerOption(options); - return getOverwrittenDefaultOptions(); - function makePadding(paddingLength) { - return Array(paddingLength + 1).join(" "); - } - function getOverwrittenDefaultOptions() { - var result = []; - var tab = makePadding(2); - commandOptionsWithoutBuild.forEach(function (cmd) { - if (!compilerOptionsMap.has(cmd.name)) { - return; - } - var newValue = compilerOptionsMap.get(cmd.name); - var defaultValue = getDefaultValueForOption(cmd); - if (newValue !== defaultValue) { - result.push("".concat(tab).concat(cmd.name, ": ").concat(newValue)); - } - else if (hasProperty(defaultInitCompilerOptions, cmd.name)) { - result.push("".concat(tab).concat(cmd.name, ": ").concat(defaultValue)); - } - }); - return result.join(newLine) + newLine; - } -} -function getSerializedCompilerOption(options) { - var compilerOptions = extend(options, defaultInitCompilerOptions); - return serializeCompilerOptions(compilerOptions); -} -function generateTSConfig(options, fileNames, newLine) { - var compilerOptionsMap = getSerializedCompilerOption(options); - return writeConfigurations(); - function makePadding(paddingLength) { - return Array(paddingLength + 1).join(" "); - } - function isAllowedOptionForOutput(_t) { - var category = _t.category, name = _t.name, isCommandLineOnly = _t.isCommandLineOnly; - var categoriesToSkip = [Diagnostics.Command_line_Options, Diagnostics.Editor_Support, Diagnostics.Compiler_Diagnostics, Diagnostics.Backwards_Compatibility, Diagnostics.Watch_and_Build_Modes, Diagnostics.Output_Formatting]; - return !isCommandLineOnly && category !== void 0 && (!categoriesToSkip.includes(category) || compilerOptionsMap.has(name)); - } - function writeConfigurations() { - var e_110, _t, e_111, _u; - var categorizedOptions = /* @__PURE__ */ new Map(); - categorizedOptions.set(Diagnostics.Projects, []); - categorizedOptions.set(Diagnostics.Language_and_Environment, []); - categorizedOptions.set(Diagnostics.Modules, []); - categorizedOptions.set(Diagnostics.JavaScript_Support, []); - categorizedOptions.set(Diagnostics.Emit, []); - categorizedOptions.set(Diagnostics.Interop_Constraints, []); - categorizedOptions.set(Diagnostics.Type_Checking, []); - categorizedOptions.set(Diagnostics.Completeness, []); - try { - for (var optionDeclarations_1 = __values(optionDeclarations), optionDeclarations_1_1 = optionDeclarations_1.next(); !optionDeclarations_1_1.done; optionDeclarations_1_1 = optionDeclarations_1.next()) { - var option = optionDeclarations_1_1.value; - if (isAllowedOptionForOutput(option)) { - var listForCategory = categorizedOptions.get(option.category); - if (!listForCategory) - categorizedOptions.set(option.category, listForCategory = []); - listForCategory.push(option); - } - } - } - catch (e_110_1) { e_110 = { error: e_110_1 }; } - finally { - try { - if (optionDeclarations_1_1 && !optionDeclarations_1_1.done && (_t = optionDeclarations_1.return)) _t.call(optionDeclarations_1); - } - finally { if (e_110) throw e_110.error; } - } - var marginLength = 0; - var seenKnownKeys = 0; - var entries = []; - categorizedOptions.forEach(function (options2, category) { - var e_112, _t; - if (entries.length !== 0) { - entries.push({ value: "" }); - } - entries.push({ value: "/* ".concat(getLocaleSpecificMessage(category), " */") }); - try { - for (var options2_1 = __values(options2), options2_1_1 = options2_1.next(); !options2_1_1.done; options2_1_1 = options2_1.next()) { - var option = options2_1_1.value; - var optionName = void 0; - if (compilerOptionsMap.has(option.name)) { - optionName = "\"".concat(option.name, "\": ").concat(JSON.stringify(compilerOptionsMap.get(option.name))).concat((seenKnownKeys += 1) === compilerOptionsMap.size ? "" : ","); - } - else { - optionName = "// \"".concat(option.name, "\": ").concat(JSON.stringify(getDefaultValueForOption(option)), ","); - } - entries.push({ - value: optionName, - description: "/* ".concat(option.description && getLocaleSpecificMessage(option.description) || option.name, " */") - }); - marginLength = Math.max(optionName.length, marginLength); - } - } - catch (e_112_1) { e_112 = { error: e_112_1 }; } - finally { - try { - if (options2_1_1 && !options2_1_1.done && (_t = options2_1.return)) _t.call(options2_1); - } - finally { if (e_112) throw e_112.error; } - } - }); - var tab = makePadding(2); - var result = []; - result.push("{"); - result.push("".concat(tab, "\"compilerOptions\": {")); - result.push("".concat(tab).concat(tab, "/* ").concat(getLocaleSpecificMessage(Diagnostics.Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_to_read_more_about_this_file), " */")); - result.push(""); - try { - for (var entries_2 = __values(entries), entries_2_1 = entries_2.next(); !entries_2_1.done; entries_2_1 = entries_2.next()) { - var entry = entries_2_1.value; - var value = entry.value, _v = entry.description, description3 = _v === void 0 ? "" : _v; - result.push(value && "".concat(tab).concat(tab).concat(value).concat(description3 && makePadding(marginLength - value.length + 2) + description3)); - } - } - catch (e_111_1) { e_111 = { error: e_111_1 }; } - finally { - try { - if (entries_2_1 && !entries_2_1.done && (_u = entries_2.return)) _u.call(entries_2); - } - finally { if (e_111) throw e_111.error; } - } - if (fileNames.length) { - result.push("".concat(tab, "},")); - result.push("".concat(tab, "\"files\": [")); - for (var i = 0; i < fileNames.length; i++) { - result.push("".concat(tab).concat(tab).concat(JSON.stringify(fileNames[i])).concat(i === fileNames.length - 1 ? "" : ",")); - } - result.push("".concat(tab, "]")); - } - else { - result.push("".concat(tab, "}")); - } - result.push("}"); - return result.join(newLine) + newLine; - } -} -function convertToOptionsWithAbsolutePaths(options, toAbsolutePath) { - var result = {}; - var optionsNameMap = getOptionsNameMap().optionsNameMap; - for (var name_19 in options) { - if (hasProperty(options, name_19)) { - result[name_19] = convertToOptionValueWithAbsolutePaths(optionsNameMap.get(name_19.toLowerCase()), options[name_19], toAbsolutePath); - } - } - if (result.configFilePath) { - result.configFilePath = toAbsolutePath(result.configFilePath); - } - return result; -} -function convertToOptionValueWithAbsolutePaths(option, value, toAbsolutePath) { - if (option && !isNullOrUndefined(value)) { - if (option.type === "list") { - var values = value; - if (option.element.isFilePath && values.length) { - return values.map(toAbsolutePath); - } - } - else if (option.isFilePath) { - return toAbsolutePath(value); - } - Debug.assert(option.type !== "listOrElement"); - } - return value; -} -function parseJsonConfigFileContent(json, host, basePath, existingOptions, configFileName, resolutionStack, extraFileExtensions, extendedConfigCache, existingWatchOptions) { - return parseJsonConfigFileContentWorker(json, - /*sourceFile*/ - void 0, host, basePath, existingOptions, existingWatchOptions, configFileName, resolutionStack, extraFileExtensions, extendedConfigCache); -} -function parseJsonSourceFileConfigFileContent(sourceFile, host, basePath, existingOptions, configFileName, resolutionStack, extraFileExtensions, extendedConfigCache, existingWatchOptions) { - var _a, _b; - (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Parse, "parseJsonSourceFileConfigFileContent", { path: sourceFile.fileName }); - var result = parseJsonConfigFileContentWorker( - /*json*/ - void 0, sourceFile, host, basePath, existingOptions, existingWatchOptions, configFileName, resolutionStack, extraFileExtensions, extendedConfigCache); - (_b = tracing) == null ? void 0 : _b.pop(); - return result; -} -function setConfigFileInOptions(options, configFile) { - if (configFile) { - Object.defineProperty(options, "configFile", { enumerable: false, writable: false, value: configFile }); - } -} -function isNullOrUndefined(x) { - return x === void 0 || x === null; -} -function directoryOfCombinedPath(fileName, basePath) { - return getDirectoryPath(getNormalizedAbsolutePath(fileName, basePath)); -} -var defaultIncludeSpec = "**/*"; -function parseJsonConfigFileContentWorker(json, sourceFile, host, basePath, existingOptions, existingWatchOptions, configFileName, resolutionStack, extraFileExtensions, extendedConfigCache) { - if (existingOptions === void 0) { existingOptions = {}; } - if (resolutionStack === void 0) { resolutionStack = []; } - if (extraFileExtensions === void 0) { extraFileExtensions = []; } - Debug.assert(json === void 0 && sourceFile !== void 0 || json !== void 0 && sourceFile === void 0); - var errors = []; - var parsedConfig = parseConfig(json, sourceFile, host, basePath, configFileName, resolutionStack, errors, extendedConfigCache); - var raw = parsedConfig.raw; - var options = extend(existingOptions, parsedConfig.options || {}); - var watchOptions = existingWatchOptions && parsedConfig.watchOptions ? extend(existingWatchOptions, parsedConfig.watchOptions) : parsedConfig.watchOptions || existingWatchOptions; - options.configFilePath = configFileName && normalizeSlashes(configFileName); - var configFileSpecs = getConfigFileSpecs(); - if (sourceFile) - sourceFile.configFileSpecs = configFileSpecs; - setConfigFileInOptions(options, sourceFile); - var basePathForFileNames = normalizePath(configFileName ? directoryOfCombinedPath(configFileName, basePath) : basePath); - return { - options: options, - watchOptions: watchOptions, - fileNames: getFileNames(basePathForFileNames), - projectReferences: getProjectReferences(basePathForFileNames), - typeAcquisition: parsedConfig.typeAcquisition || getDefaultTypeAcquisition(), - raw: raw, - errors: errors, - // Wildcard directories (provided as part of a wildcard path) are stored in a - // file map that marks whether it was a regular wildcard match (with a `*` or `?` token), - // or a recursive directory. This information is used by filesystem watchers to monitor for - // new entries in these paths. - wildcardDirectories: getWildcardDirectories(configFileSpecs, basePathForFileNames, host.useCaseSensitiveFileNames), - compileOnSave: !!raw.compileOnSave - }; - function getConfigFileSpecs() { - var referencesOfRaw = getPropFromRaw("references", function (element) { return typeof element === "object"; }, "object"); - var filesSpecs = toPropValue(getSpecsFromRaw("files")); - if (filesSpecs) { - var hasZeroOrNoReferences = referencesOfRaw === "no-prop" || isArray(referencesOfRaw) && referencesOfRaw.length === 0; - var hasExtends = hasProperty(raw, "extends"); - if (filesSpecs.length === 0 && hasZeroOrNoReferences && !hasExtends) { - if (sourceFile) { - var fileName = configFileName || "tsconfig.json"; - var diagnosticMessage = Diagnostics.The_files_list_in_config_file_0_is_empty; - var nodeValue = forEachTsConfigPropArray(sourceFile, "files", function (property) { return property.initializer; }); - var error2 = createDiagnosticForNodeInSourceFileOrCompilerDiagnostic(sourceFile, nodeValue, diagnosticMessage, fileName); - errors.push(error2); - } - else { - createCompilerDiagnosticOnlyIfJson(Diagnostics.The_files_list_in_config_file_0_is_empty, configFileName || "tsconfig.json"); - } - } - } - var includeSpecs = toPropValue(getSpecsFromRaw("include")); - var excludeOfRaw = getSpecsFromRaw("exclude"); - var isDefaultIncludeSpec = false; - var excludeSpecs = toPropValue(excludeOfRaw); - if (excludeOfRaw === "no-prop" && raw.compilerOptions) { - var outDir = raw.compilerOptions.outDir; - var declarationDir = raw.compilerOptions.declarationDir; - if (outDir || declarationDir) { - excludeSpecs = [outDir, declarationDir].filter(function (d) { return !!d; }); - } - } - if (filesSpecs === void 0 && includeSpecs === void 0) { - includeSpecs = [defaultIncludeSpec]; - isDefaultIncludeSpec = true; - } - var validatedIncludeSpecs, validatedExcludeSpecs; - if (includeSpecs) { - validatedIncludeSpecs = validateSpecs(includeSpecs, errors, - /*disallowTrailingRecursion*/ - true, sourceFile, "include"); - } - if (excludeSpecs) { - validatedExcludeSpecs = validateSpecs(excludeSpecs, errors, - /*disallowTrailingRecursion*/ - false, sourceFile, "exclude"); - } - return { - filesSpecs: filesSpecs, - includeSpecs: includeSpecs, - excludeSpecs: excludeSpecs, - validatedFilesSpec: filter(filesSpecs, isString), - validatedIncludeSpecs: validatedIncludeSpecs, - validatedExcludeSpecs: validatedExcludeSpecs, - pathPatterns: void 0, - // Initialized on first use - isDefaultIncludeSpec: isDefaultIncludeSpec - }; - } - function getFileNames(basePath2) { - var fileNames = getFileNamesFromConfigSpecs(configFileSpecs, basePath2, options, host, extraFileExtensions); - if (shouldReportNoInputFiles(fileNames, canJsonReportNoInputFiles(raw), resolutionStack)) { - errors.push(getErrorForNoInputFiles(configFileSpecs, configFileName)); - } - return fileNames; - } - function getProjectReferences(basePath2) { - var e_113, _t; - var projectReferences; - var referencesOfRaw = getPropFromRaw("references", function (element) { return typeof element === "object"; }, "object"); - if (isArray(referencesOfRaw)) { - try { - for (var referencesOfRaw_1 = __values(referencesOfRaw), referencesOfRaw_1_1 = referencesOfRaw_1.next(); !referencesOfRaw_1_1.done; referencesOfRaw_1_1 = referencesOfRaw_1.next()) { - var ref = referencesOfRaw_1_1.value; - if (typeof ref.path !== "string") { - createCompilerDiagnosticOnlyIfJson(Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "reference.path", "string"); - } - else { - (projectReferences || (projectReferences = [])).push({ - path: getNormalizedAbsolutePath(ref.path, basePath2), - originalPath: ref.path, - prepend: ref.prepend, - circular: ref.circular - }); - } - } - } - catch (e_113_1) { e_113 = { error: e_113_1 }; } - finally { - try { - if (referencesOfRaw_1_1 && !referencesOfRaw_1_1.done && (_t = referencesOfRaw_1.return)) _t.call(referencesOfRaw_1); - } - finally { if (e_113) throw e_113.error; } - } - } - return projectReferences; - } - function toPropValue(specResult) { - return isArray(specResult) ? specResult : void 0; - } - function getSpecsFromRaw(prop) { - return getPropFromRaw(prop, isString, "string"); - } - function getPropFromRaw(prop, validateElement, elementTypeName) { - if (hasProperty(raw, prop) && !isNullOrUndefined(raw[prop])) { - if (isArray(raw[prop])) { - var result = raw[prop]; - if (!sourceFile && !every(result, validateElement)) { - errors.push(createCompilerDiagnostic(Diagnostics.Compiler_option_0_requires_a_value_of_type_1, prop, elementTypeName)); - } - return result; - } - else { - createCompilerDiagnosticOnlyIfJson(Diagnostics.Compiler_option_0_requires_a_value_of_type_1, prop, "Array"); - return "not-array"; - } - } - return "no-prop"; - } - function createCompilerDiagnosticOnlyIfJson(message) { - var args = []; - for (var _t = 1; _t < arguments.length; _t++) { - args[_t - 1] = arguments[_t]; - } - if (!sourceFile) { - errors.push(createCompilerDiagnostic.apply(void 0, __spreadArray([message], __read(args), false))); - } - } -} -function isErrorNoInputFiles(error2) { - return error2.code === Diagnostics.No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2.code; -} -function getErrorForNoInputFiles(_t, configFileName) { - var includeSpecs = _t.includeSpecs, excludeSpecs = _t.excludeSpecs; - return createCompilerDiagnostic(Diagnostics.No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2, configFileName || "tsconfig.json", JSON.stringify(includeSpecs || []), JSON.stringify(excludeSpecs || [])); -} -function shouldReportNoInputFiles(fileNames, canJsonReportNoInutFiles, resolutionStack) { - return fileNames.length === 0 && canJsonReportNoInutFiles && (!resolutionStack || resolutionStack.length === 0); -} -function canJsonReportNoInputFiles(raw) { - return !hasProperty(raw, "files") && !hasProperty(raw, "references"); -} -function updateErrorForNoInputFiles(fileNames, configFileName, configFileSpecs, configParseDiagnostics, canJsonReportNoInutFiles) { - var existingErrors = configParseDiagnostics.length; - if (shouldReportNoInputFiles(fileNames, canJsonReportNoInutFiles)) { - configParseDiagnostics.push(getErrorForNoInputFiles(configFileSpecs, configFileName)); - } - else { - filterMutate(configParseDiagnostics, function (error2) { return !isErrorNoInputFiles(error2); }); - } - return existingErrors !== configParseDiagnostics.length; -} -function isSuccessfulParsedTsconfig(value) { - return !!value.options; -} -function parseConfig(json, sourceFile, host, basePath, configFileName, resolutionStack, errors, extendedConfigCache) { - var _a; - basePath = normalizeSlashes(basePath); - var resolvedPath = getNormalizedAbsolutePath(configFileName || "", basePath); - if (resolutionStack.indexOf(resolvedPath) >= 0) { - errors.push(createCompilerDiagnostic(Diagnostics.Circularity_detected_while_resolving_configuration_Colon_0, __spreadArray(__spreadArray([], __read(resolutionStack), false), [resolvedPath], false).join(" -> "))); - return { raw: json || convertToObject(sourceFile, errors) }; - } - var ownConfig = json ? parseOwnConfigOfJson(json, host, basePath, configFileName, errors) : parseOwnConfigOfJsonSourceFile(sourceFile, host, basePath, configFileName, errors); - if ((_a = ownConfig.options) == null ? void 0 : _a.paths) { - ownConfig.options.pathsBasePath = basePath; - } - if (ownConfig.extendedConfigPath) { - resolutionStack = resolutionStack.concat([resolvedPath]); - var result_1 = { options: {} }; - if (isString(ownConfig.extendedConfigPath)) { - applyExtendedConfig(result_1, ownConfig.extendedConfigPath); - } - else { - ownConfig.extendedConfigPath.forEach(function (extendedConfigPath) { return applyExtendedConfig(result_1, extendedConfigPath); }); - } - if (!ownConfig.raw.include && result_1.include) - ownConfig.raw.include = result_1.include; - if (!ownConfig.raw.exclude && result_1.exclude) - ownConfig.raw.exclude = result_1.exclude; - if (!ownConfig.raw.files && result_1.files) - ownConfig.raw.files = result_1.files; - if (ownConfig.raw.compileOnSave === void 0 && result_1.compileOnSave) - ownConfig.raw.compileOnSave = result_1.compileOnSave; - if (sourceFile && result_1.extendedSourceFiles) - sourceFile.extendedSourceFiles = arrayFrom(result_1.extendedSourceFiles.keys()); - ownConfig.options = assign(result_1.options, ownConfig.options); - ownConfig.watchOptions = ownConfig.watchOptions && result_1.watchOptions ? assign(result_1.watchOptions, ownConfig.watchOptions) : ownConfig.watchOptions || result_1.watchOptions; - } - return ownConfig; - function applyExtendedConfig(result, extendedConfigPath) { - var extendedConfig = getExtendedConfig(sourceFile, extendedConfigPath, host, resolutionStack, errors, extendedConfigCache, result); - if (extendedConfig && isSuccessfulParsedTsconfig(extendedConfig)) { - var extendsRaw_1 = extendedConfig.raw; - var relativeDifference_1; - var setPropertyInResultIfNotUndefined = function (propertyName) { - if (extendsRaw_1[propertyName]) { - result[propertyName] = map(extendsRaw_1[propertyName], function (path) { return isRootedDiskPath(path) ? path : combinePaths(relativeDifference_1 || (relativeDifference_1 = convertToRelativePath(getDirectoryPath(extendedConfigPath), basePath, createGetCanonicalFileName(host.useCaseSensitiveFileNames))), path); }); - } - }; - setPropertyInResultIfNotUndefined("include"); - setPropertyInResultIfNotUndefined("exclude"); - setPropertyInResultIfNotUndefined("files"); - if (extendsRaw_1.compileOnSave !== void 0) { - result.compileOnSave = extendsRaw_1.compileOnSave; - } - assign(result.options, extendedConfig.options); - result.watchOptions = result.watchOptions && extendedConfig.watchOptions ? assign({}, result.watchOptions, extendedConfig.watchOptions) : result.watchOptions || extendedConfig.watchOptions; - } - } -} -function parseOwnConfigOfJson(json, host, basePath, configFileName, errors) { - if (hasProperty(json, "excludes")) { - errors.push(createCompilerDiagnostic(Diagnostics.Unknown_option_excludes_Did_you_mean_exclude)); - } - var options = convertCompilerOptionsFromJsonWorker(json.compilerOptions, basePath, errors, configFileName); - var typeAcquisition = convertTypeAcquisitionFromJsonWorker(json.typeAcquisition, basePath, errors, configFileName); - var watchOptions = convertWatchOptionsFromJsonWorker(json.watchOptions, basePath, errors); - json.compileOnSave = convertCompileOnSaveOptionFromJson(json, basePath, errors); - var extendedConfigPath = json.extends || json.extends === "" ? getExtendsConfigPathOrArray(json.extends, host, basePath, configFileName, errors) : void 0; - return { raw: json, options: options, watchOptions: watchOptions, typeAcquisition: typeAcquisition, extendedConfigPath: extendedConfigPath }; -} -function getExtendsConfigPathOrArray(value, host, basePath, configFileName, errors, propertyAssignment, valueExpression, sourceFile) { - var extendedConfigPath; - var newBase = configFileName ? directoryOfCombinedPath(configFileName, basePath) : basePath; - if (isString(value)) { - extendedConfigPath = getExtendsConfigPath(value, host, newBase, errors, valueExpression, sourceFile); - } - else if (isArray(value)) { - extendedConfigPath = []; - for (var index = 0; index < value.length; index++) { - var fileName = value[index]; - if (isString(fileName)) { - extendedConfigPath = append(extendedConfigPath, getExtendsConfigPath(fileName, host, newBase, errors, valueExpression == null ? void 0 : valueExpression.elements[index], sourceFile)); - } - else { - convertJsonOption(extendsOptionDeclaration.element, value, basePath, errors, propertyAssignment, valueExpression == null ? void 0 : valueExpression.elements[index], sourceFile); - } - } - } - else { - convertJsonOption(extendsOptionDeclaration, value, basePath, errors, propertyAssignment, valueExpression, sourceFile); - } - return extendedConfigPath; -} -function parseOwnConfigOfJsonSourceFile(sourceFile, host, basePath, configFileName, errors) { - var options = getDefaultCompilerOptions(configFileName); - var typeAcquisition; - var watchOptions; - var extendedConfigPath; - var rootCompilerOptions; - var rootOptions = getTsconfigRootOptionsMap(); - var json = convertConfigFileToObject(sourceFile, errors, { rootOptions: rootOptions, onPropertySet: onPropertySet }); - if (!typeAcquisition) { - typeAcquisition = getDefaultTypeAcquisition(configFileName); - } - if (rootCompilerOptions && json && json.compilerOptions === void 0) { - errors.push(createDiagnosticForNodeInSourceFile(sourceFile, rootCompilerOptions[0], Diagnostics._0_should_be_set_inside_the_compilerOptions_object_of_the_config_json_file, getTextOfPropertyName(rootCompilerOptions[0]))); - } - return { raw: json, options: options, watchOptions: watchOptions, typeAcquisition: typeAcquisition, extendedConfigPath: extendedConfigPath }; - function onPropertySet(keyText, value, propertyAssignment, parentOption, option) { - if (option && option !== extendsOptionDeclaration) - value = convertJsonOption(option, value, basePath, errors, propertyAssignment, propertyAssignment.initializer, sourceFile); - if (parentOption == null ? void 0 : parentOption.name) { - if (option) { - var currentOption = void 0; - if (parentOption === compilerOptionsDeclaration) - currentOption = options; - else if (parentOption === watchOptionsDeclaration) - currentOption = watchOptions !== null && watchOptions !== void 0 ? watchOptions : (watchOptions = {}); - else if (parentOption === typeAcquisitionDeclaration) - currentOption = typeAcquisition !== null && typeAcquisition !== void 0 ? typeAcquisition : (typeAcquisition = getDefaultTypeAcquisition(configFileName)); - else - Debug.fail("Unknown option"); - currentOption[option.name] = value; - } - else if (keyText && (parentOption == null ? void 0 : parentOption.extraKeyDiagnostics)) { - if (parentOption.elementOptions) { - errors.push(createUnknownOptionError(keyText, parentOption.extraKeyDiagnostics, - /*unknownOptionErrorText*/ - void 0, propertyAssignment.name, sourceFile)); - } - else { - errors.push(createDiagnosticForNodeInSourceFile(sourceFile, propertyAssignment.name, parentOption.extraKeyDiagnostics.unknownOptionDiagnostic, keyText)); - } - } - } - else if (parentOption === rootOptions) { - if (option === extendsOptionDeclaration) { - extendedConfigPath = getExtendsConfigPathOrArray(value, host, basePath, configFileName, errors, propertyAssignment, propertyAssignment.initializer, sourceFile); - } - else if (!option) { - if (keyText === "excludes") { - errors.push(createDiagnosticForNodeInSourceFile(sourceFile, propertyAssignment.name, Diagnostics.Unknown_option_excludes_Did_you_mean_exclude)); - } - if (find(commandOptionsWithoutBuild, function (opt) { return opt.name === keyText; })) { - rootCompilerOptions = append(rootCompilerOptions, propertyAssignment.name); - } - } - } - } -} -function getExtendsConfigPath(extendedConfig, host, basePath, errors, valueExpression, sourceFile) { - extendedConfig = normalizeSlashes(extendedConfig); - if (isRootedDiskPath(extendedConfig) || startsWith(extendedConfig, "./") || startsWith(extendedConfig, "../")) { - var extendedConfigPath = getNormalizedAbsolutePath(extendedConfig, basePath); - if (!host.fileExists(extendedConfigPath) && !endsWith(extendedConfigPath, ".json" /* Json */)) { - extendedConfigPath = "".concat(extendedConfigPath, ".json"); - if (!host.fileExists(extendedConfigPath)) { - errors.push(createDiagnosticForNodeInSourceFileOrCompilerDiagnostic(sourceFile, valueExpression, Diagnostics.File_0_not_found, extendedConfig)); - return void 0; - } - } - return extendedConfigPath; - } - var resolved = nodeNextJsonConfigResolver(extendedConfig, combinePaths(basePath, "tsconfig.json"), host); - if (resolved.resolvedModule) { - return resolved.resolvedModule.resolvedFileName; - } - if (extendedConfig === "") { - errors.push(createDiagnosticForNodeInSourceFileOrCompilerDiagnostic(sourceFile, valueExpression, Diagnostics.Compiler_option_0_cannot_be_given_an_empty_string, "extends")); - } - else { - errors.push(createDiagnosticForNodeInSourceFileOrCompilerDiagnostic(sourceFile, valueExpression, Diagnostics.File_0_not_found, extendedConfig)); - } - return void 0; -} -function getExtendedConfig(sourceFile, extendedConfigPath, host, resolutionStack, errors, extendedConfigCache, result) { - var e_114, _t; - var _u; - var path = host.useCaseSensitiveFileNames ? extendedConfigPath : toFileNameLowerCase(extendedConfigPath); - var value; - var extendedResult; - var extendedConfig; - if (extendedConfigCache && (value = extendedConfigCache.get(path))) { - (extendedResult = value.extendedResult, extendedConfig = value.extendedConfig); - } - else { - extendedResult = readJsonConfigFile(extendedConfigPath, function (path2) { return host.readFile(path2); }); - if (!extendedResult.parseDiagnostics.length) { - extendedConfig = parseConfig( - /*json*/ - void 0, extendedResult, host, getDirectoryPath(extendedConfigPath), getBaseFileName(extendedConfigPath), resolutionStack, errors, extendedConfigCache); - } - if (extendedConfigCache) { - extendedConfigCache.set(path, { extendedResult: extendedResult, extendedConfig: extendedConfig }); - } - } - if (sourceFile) { - ((_u = result.extendedSourceFiles) !== null && _u !== void 0 ? _u : (result.extendedSourceFiles = /* @__PURE__ */ new Set())).add(extendedResult.fileName); - if (extendedResult.extendedSourceFiles) { - try { - for (var _v = __values(extendedResult.extendedSourceFiles), _w = _v.next(); !_w.done; _w = _v.next()) { - var extenedSourceFile = _w.value; - result.extendedSourceFiles.add(extenedSourceFile); - } - } - catch (e_114_1) { e_114 = { error: e_114_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_114) throw e_114.error; } - } - } - } - if (extendedResult.parseDiagnostics.length) { - errors.push.apply(errors, __spreadArray([], __read(extendedResult.parseDiagnostics), false)); - return void 0; - } - return extendedConfig; -} -function convertCompileOnSaveOptionFromJson(jsonOption, basePath, errors) { - if (!hasProperty(jsonOption, compileOnSaveCommandLineOption.name)) { - return false; - } - var result = convertJsonOption(compileOnSaveCommandLineOption, jsonOption.compileOnSave, basePath, errors); - return typeof result === "boolean" && result; -} -function convertCompilerOptionsFromJson(jsonOptions, basePath, configFileName) { - var errors = []; - var options = convertCompilerOptionsFromJsonWorker(jsonOptions, basePath, errors, configFileName); - return { options: options, errors: errors }; -} -function convertTypeAcquisitionFromJson(jsonOptions, basePath, configFileName) { - var errors = []; - var options = convertTypeAcquisitionFromJsonWorker(jsonOptions, basePath, errors, configFileName); - return { options: options, errors: errors }; -} -function getDefaultCompilerOptions(configFileName) { - var options = configFileName && getBaseFileName(configFileName) === "jsconfig.json" ? { allowJs: true, maxNodeModuleJsDepth: 2, allowSyntheticDefaultImports: true, skipLibCheck: true, noEmit: true } : {}; - return options; -} -function convertCompilerOptionsFromJsonWorker(jsonOptions, basePath, errors, configFileName) { - var options = getDefaultCompilerOptions(configFileName); - convertOptionsFromJson(getCommandLineCompilerOptionsMap(), jsonOptions, basePath, options, compilerOptionsDidYouMeanDiagnostics, errors); - if (configFileName) { - options.configFilePath = normalizeSlashes(configFileName); - } - return options; -} -function getDefaultTypeAcquisition(configFileName) { - return { enable: !!configFileName && getBaseFileName(configFileName) === "jsconfig.json", include: [], exclude: [] }; -} -function convertTypeAcquisitionFromJsonWorker(jsonOptions, basePath, errors, configFileName) { - var options = getDefaultTypeAcquisition(configFileName); - convertOptionsFromJson(getCommandLineTypeAcquisitionMap(), jsonOptions, basePath, options, typeAcquisitionDidYouMeanDiagnostics, errors); - return options; -} -function convertWatchOptionsFromJsonWorker(jsonOptions, basePath, errors) { - return convertOptionsFromJson(getCommandLineWatchOptionsMap(), jsonOptions, basePath, - /*defaultOptions*/ - void 0, watchOptionsDidYouMeanDiagnostics, errors); -} -function convertOptionsFromJson(optionsNameMap, jsonOptions, basePath, defaultOptions, diagnostics, errors) { - if (!jsonOptions) { - return; - } - for (var id in jsonOptions) { - var opt = optionsNameMap.get(id); - if (opt) { - (defaultOptions || (defaultOptions = {}))[opt.name] = convertJsonOption(opt, jsonOptions[id], basePath, errors); - } - else { - errors.push(createUnknownOptionError(id, diagnostics)); - } - } - return defaultOptions; -} -function createDiagnosticForNodeInSourceFileOrCompilerDiagnostic(sourceFile, node, message) { - var args = []; - for (var _t = 3; _t < arguments.length; _t++) { - args[_t - 3] = arguments[_t]; - } - return sourceFile && node ? createDiagnosticForNodeInSourceFile.apply(void 0, __spreadArray([sourceFile, node, message], __read(args), false)) : createCompilerDiagnostic.apply(void 0, __spreadArray([message], __read(args), false)); -} -function convertJsonOption(opt, value, basePath, errors, propertyAssignment, valueExpression, sourceFile) { - if (opt.isCommandLineOnly) { - errors.push(createDiagnosticForNodeInSourceFileOrCompilerDiagnostic(sourceFile, propertyAssignment == null ? void 0 : propertyAssignment.name, Diagnostics.Option_0_can_only_be_specified_on_command_line, opt.name)); - return void 0; - } - if (isCompilerOptionsValue(opt, value)) { - var optType = opt.type; - if (optType === "list" && isArray(value)) { - return convertJsonOptionOfListType(opt, value, basePath, errors, propertyAssignment, valueExpression, sourceFile); - } - else if (optType === "listOrElement") { - return isArray(value) ? convertJsonOptionOfListType(opt, value, basePath, errors, propertyAssignment, valueExpression, sourceFile) : convertJsonOption(opt.element, value, basePath, errors, propertyAssignment, valueExpression, sourceFile); - } - else if (!isString(opt.type)) { - return convertJsonOptionOfCustomType(opt, value, errors, valueExpression, sourceFile); - } - var validatedValue = validateJsonOptionValue(opt, value, errors, valueExpression, sourceFile); - return isNullOrUndefined(validatedValue) ? validatedValue : normalizeNonListOptionValue(opt, basePath, validatedValue); - } - else { - errors.push(createDiagnosticForNodeInSourceFileOrCompilerDiagnostic(sourceFile, valueExpression, Diagnostics.Compiler_option_0_requires_a_value_of_type_1, opt.name, getCompilerOptionValueTypeString(opt))); - } -} -function normalizeNonListOptionValue(option, basePath, value) { - if (option.isFilePath) { - value = getNormalizedAbsolutePath(value, basePath); - if (value === "") { - value = "."; - } - } - return value; -} -function validateJsonOptionValue(opt, value, errors, valueExpression, sourceFile) { - var _a; - if (isNullOrUndefined(value)) - return void 0; - var d = (_a = opt.extraValidation) == null ? void 0 : _a.call(opt, value); - if (!d) - return value; - errors.push(createDiagnosticForNodeInSourceFileOrCompilerDiagnostic.apply(void 0, __spreadArray([sourceFile, valueExpression], __read(d), false))); - return void 0; -} -function convertJsonOptionOfCustomType(opt, value, errors, valueExpression, sourceFile) { - if (isNullOrUndefined(value)) - return void 0; - var key = value.toLowerCase(); - var val = opt.type.get(key); - if (val !== void 0) { - return validateJsonOptionValue(opt, val, errors, valueExpression, sourceFile); - } - else { - errors.push(createDiagnosticForInvalidCustomType(opt, function (message) { - var args = []; - for (var _t = 1; _t < arguments.length; _t++) { - args[_t - 1] = arguments[_t]; - } - return createDiagnosticForNodeInSourceFileOrCompilerDiagnostic.apply(void 0, __spreadArray([sourceFile, valueExpression, message], __read(args), false)); - })); - } -} -function convertJsonOptionOfListType(option, values, basePath, errors, propertyAssignment, valueExpression, sourceFile) { - return filter(map(values, function (v, index) { return convertJsonOption(option.element, v, basePath, errors, propertyAssignment, valueExpression == null ? void 0 : valueExpression.elements[index], sourceFile); }), function (v) { return option.listPreserveFalsyValues ? true : !!v; }); -} -var invalidTrailingRecursionPattern = /(^|\/)\*\*\/?$/; -var wildcardDirectoryPattern = /^[^*?]*(?=\/[^/]*[*?])/; -function getFileNamesFromConfigSpecs(configFileSpecs, basePath, options, host, extraFileExtensions) { - var e_115, _t, e_116, _u; - if (extraFileExtensions === void 0) { extraFileExtensions = emptyArray; } - basePath = normalizePath(basePath); - var keyMapper = createGetCanonicalFileName(host.useCaseSensitiveFileNames); - var literalFileMap = /* @__PURE__ */ new Map(); - var wildcardFileMap = /* @__PURE__ */ new Map(); - var wildCardJsonFileMap = /* @__PURE__ */ new Map(); - var validatedFilesSpec = configFileSpecs.validatedFilesSpec, validatedIncludeSpecs = configFileSpecs.validatedIncludeSpecs, validatedExcludeSpecs = configFileSpecs.validatedExcludeSpecs; - var supportedExtensions = getSupportedExtensions(options, extraFileExtensions); - var supportedExtensionsWithJsonIfResolveJsonModule = getSupportedExtensionsWithJsonIfResolveJsonModule(options, supportedExtensions); - if (validatedFilesSpec) { - try { - for (var validatedFilesSpec_1 = __values(validatedFilesSpec), validatedFilesSpec_1_1 = validatedFilesSpec_1.next(); !validatedFilesSpec_1_1.done; validatedFilesSpec_1_1 = validatedFilesSpec_1.next()) { - var fileName = validatedFilesSpec_1_1.value; - var file = getNormalizedAbsolutePath(fileName, basePath); - literalFileMap.set(keyMapper(file), file); - } - } - catch (e_115_1) { e_115 = { error: e_115_1 }; } - finally { - try { - if (validatedFilesSpec_1_1 && !validatedFilesSpec_1_1.done && (_t = validatedFilesSpec_1.return)) _t.call(validatedFilesSpec_1); - } - finally { if (e_115) throw e_115.error; } - } - } - var jsonOnlyIncludeRegexes; - if (validatedIncludeSpecs && validatedIncludeSpecs.length > 0) { - var _loop_6 = function (file) { - if (fileExtensionIs(file, ".json" /* Json */)) { - if (!jsonOnlyIncludeRegexes) { - var includes = validatedIncludeSpecs.filter(function (s) { return endsWith(s, ".json" /* Json */); }); - var includeFilePatterns = map(getRegularExpressionsForWildcards(includes, basePath, "files"), function (pattern) { return "^".concat(pattern, "$"); }); - jsonOnlyIncludeRegexes = includeFilePatterns ? includeFilePatterns.map(function (pattern) { return getRegexFromPattern(pattern, host.useCaseSensitiveFileNames); }) : emptyArray; - } - var includeIndex = findIndex(jsonOnlyIncludeRegexes, function (re) { return re.test(file); }); - if (includeIndex !== -1) { - var key2 = keyMapper(file); - if (!literalFileMap.has(key2) && !wildCardJsonFileMap.has(key2)) { - wildCardJsonFileMap.set(key2, file); - } - } - return "continue"; - } - if (hasFileWithHigherPriorityExtension(file, literalFileMap, wildcardFileMap, supportedExtensions, keyMapper)) { - return "continue"; - } - removeWildcardFilesWithLowerPriorityExtension(file, wildcardFileMap, supportedExtensions, keyMapper); - var key = keyMapper(file); - if (!literalFileMap.has(key) && !wildcardFileMap.has(key)) { - wildcardFileMap.set(key, file); - } - }; - try { - for (var _v = __values(host.readDirectory(basePath, flatten(supportedExtensionsWithJsonIfResolveJsonModule), validatedExcludeSpecs, validatedIncludeSpecs, - /*depth*/ - void 0)), _w = _v.next(); !_w.done; _w = _v.next()) { - var file = _w.value; - _loop_6(file); - } - } - catch (e_116_1) { e_116 = { error: e_116_1 }; } - finally { - try { - if (_w && !_w.done && (_u = _v.return)) _u.call(_v); - } - finally { if (e_116) throw e_116.error; } - } - } - var literalFiles = arrayFrom(literalFileMap.values()); - var wildcardFiles = arrayFrom(wildcardFileMap.values()); - return literalFiles.concat(wildcardFiles, arrayFrom(wildCardJsonFileMap.values())); -} -function isExcludedFile(pathToCheck, spec, basePath, useCaseSensitiveFileNames2, currentDirectory) { - var e_117, _t; - var validatedFilesSpec = spec.validatedFilesSpec, validatedIncludeSpecs = spec.validatedIncludeSpecs, validatedExcludeSpecs = spec.validatedExcludeSpecs; - if (!length(validatedIncludeSpecs) || !length(validatedExcludeSpecs)) - return false; - basePath = normalizePath(basePath); - var keyMapper = createGetCanonicalFileName(useCaseSensitiveFileNames2); - if (validatedFilesSpec) { - try { - for (var validatedFilesSpec_2 = __values(validatedFilesSpec), validatedFilesSpec_2_1 = validatedFilesSpec_2.next(); !validatedFilesSpec_2_1.done; validatedFilesSpec_2_1 = validatedFilesSpec_2.next()) { - var fileName = validatedFilesSpec_2_1.value; - if (keyMapper(getNormalizedAbsolutePath(fileName, basePath)) === pathToCheck) - return false; - } - } - catch (e_117_1) { e_117 = { error: e_117_1 }; } - finally { - try { - if (validatedFilesSpec_2_1 && !validatedFilesSpec_2_1.done && (_t = validatedFilesSpec_2.return)) _t.call(validatedFilesSpec_2); - } - finally { if (e_117) throw e_117.error; } - } - } - return matchesExcludeWorker(pathToCheck, validatedExcludeSpecs, useCaseSensitiveFileNames2, currentDirectory, basePath); -} -function invalidDotDotAfterRecursiveWildcard(s) { - var wildcardIndex = startsWith(s, "**/") ? 0 : s.indexOf("/**/"); - if (wildcardIndex === -1) { - return false; - } - var lastDotIndex = endsWith(s, "/..") ? s.length : s.lastIndexOf("/../"); - return lastDotIndex > wildcardIndex; -} -function matchesExclude(pathToCheck, excludeSpecs, useCaseSensitiveFileNames2, currentDirectory) { - return matchesExcludeWorker(pathToCheck, filter(excludeSpecs, function (spec) { return !invalidDotDotAfterRecursiveWildcard(spec); }), useCaseSensitiveFileNames2, currentDirectory); -} -function matchesExcludeWorker(pathToCheck, excludeSpecs, useCaseSensitiveFileNames2, currentDirectory, basePath) { - var excludePattern = getRegularExpressionForWildcard(excludeSpecs, combinePaths(normalizePath(currentDirectory), basePath), "exclude"); - var excludeRegex = excludePattern && getRegexFromPattern(excludePattern, useCaseSensitiveFileNames2); - if (!excludeRegex) - return false; - if (excludeRegex.test(pathToCheck)) - return true; - return !hasExtension(pathToCheck) && excludeRegex.test(ensureTrailingDirectorySeparator(pathToCheck)); -} -function validateSpecs(specs, errors, disallowTrailingRecursion, jsonSourceFile, specKey) { - return specs.filter(function (spec) { - if (!isString(spec)) - return false; - var diag2 = specToDiagnostic(spec, disallowTrailingRecursion); - if (diag2 !== void 0) { - errors.push(createDiagnostic.apply(void 0, __spreadArray([], __read(diag2), false))); - } - return diag2 === void 0; - }); - function createDiagnostic(message, spec) { - var element = getTsConfigPropArrayElementValue(jsonSourceFile, specKey, spec); - return createDiagnosticForNodeInSourceFileOrCompilerDiagnostic(jsonSourceFile, element, message, spec); - } -} -function specToDiagnostic(spec, disallowTrailingRecursion) { - Debug.assert(typeof spec === "string"); - if (disallowTrailingRecursion && invalidTrailingRecursionPattern.test(spec)) { - return [Diagnostics.File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0, spec]; - } - else if (invalidDotDotAfterRecursiveWildcard(spec)) { - return [Diagnostics.File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0, spec]; - } -} -function getWildcardDirectories(_t, path, useCaseSensitiveFileNames2) { - var e_118, _u, e_119, _v; - var include = _t.validatedIncludeSpecs, exclude = _t.validatedExcludeSpecs; - var rawExcludeRegex = getRegularExpressionForWildcard(exclude, path, "exclude"); - var excludeRegex = rawExcludeRegex && new RegExp(rawExcludeRegex, useCaseSensitiveFileNames2 ? "" : "i"); - var wildcardDirectories = {}; - if (include !== void 0) { - var recursiveKeys = []; - try { - for (var include_1 = __values(include), include_1_1 = include_1.next(); !include_1_1.done; include_1_1 = include_1.next()) { - var file = include_1_1.value; - var spec = normalizePath(combinePaths(path, file)); - if (excludeRegex && excludeRegex.test(spec)) { - continue; - } - var match = getWildcardDirectoryFromSpec(spec, useCaseSensitiveFileNames2); - if (match) { - var key = match.key, flags = match.flags; - var existingFlags = wildcardDirectories[key]; - if (existingFlags === void 0 || existingFlags < flags) { - wildcardDirectories[key] = flags; - if (flags === 1 /* Recursive */) { - recursiveKeys.push(key); - } - } - } - } - } - catch (e_118_1) { e_118 = { error: e_118_1 }; } - finally { - try { - if (include_1_1 && !include_1_1.done && (_u = include_1.return)) _u.call(include_1); - } - finally { if (e_118) throw e_118.error; } - } - for (var key in wildcardDirectories) { - if (hasProperty(wildcardDirectories, key)) { - try { - for (var recursiveKeys_1 = (e_119 = void 0, __values(recursiveKeys)), recursiveKeys_1_1 = recursiveKeys_1.next(); !recursiveKeys_1_1.done; recursiveKeys_1_1 = recursiveKeys_1.next()) { - var recursiveKey = recursiveKeys_1_1.value; - if (key !== recursiveKey && containsPath(recursiveKey, key, path, !useCaseSensitiveFileNames2)) { - delete wildcardDirectories[key]; - } - } - } - catch (e_119_1) { e_119 = { error: e_119_1 }; } - finally { - try { - if (recursiveKeys_1_1 && !recursiveKeys_1_1.done && (_v = recursiveKeys_1.return)) _v.call(recursiveKeys_1); - } - finally { if (e_119) throw e_119.error; } - } - } - } - } - return wildcardDirectories; -} -function getWildcardDirectoryFromSpec(spec, useCaseSensitiveFileNames2) { - var match = wildcardDirectoryPattern.exec(spec); - if (match) { - var questionWildcardIndex = spec.indexOf("?"); - var starWildcardIndex = spec.indexOf("*"); - var lastDirectorySeperatorIndex = spec.lastIndexOf(directorySeparator); - return { - key: useCaseSensitiveFileNames2 ? match[0] : toFileNameLowerCase(match[0]), - flags: questionWildcardIndex !== -1 && questionWildcardIndex < lastDirectorySeperatorIndex || starWildcardIndex !== -1 && starWildcardIndex < lastDirectorySeperatorIndex ? 1 /* Recursive */ : 0 /* None */ - }; - } - if (isImplicitGlob(spec.substring(spec.lastIndexOf(directorySeparator) + 1))) { - return { - key: removeTrailingDirectorySeparator(useCaseSensitiveFileNames2 ? spec : toFileNameLowerCase(spec)), - flags: 1 /* Recursive */ - }; - } - return void 0; -} -function hasFileWithHigherPriorityExtension(file, literalFiles, wildcardFiles, extensions, keyMapper) { - var e_120, _t; - var extensionGroup = forEach(extensions, function (group2) { return fileExtensionIsOneOf(file, group2) ? group2 : void 0; }); - if (!extensionGroup) { - return false; - } - try { - for (var extensionGroup_1 = __values(extensionGroup), extensionGroup_1_1 = extensionGroup_1.next(); !extensionGroup_1_1.done; extensionGroup_1_1 = extensionGroup_1.next()) { - var ext = extensionGroup_1_1.value; - if (fileExtensionIs(file, ext)) { - return false; - } - var higherPriorityPath = keyMapper(changeExtension(file, ext)); - if (literalFiles.has(higherPriorityPath) || wildcardFiles.has(higherPriorityPath)) { - if (ext === ".d.ts" /* Dts */ && (fileExtensionIs(file, ".js" /* Js */) || fileExtensionIs(file, ".jsx" /* Jsx */))) { - continue; - } - return true; - } - } - } - catch (e_120_1) { e_120 = { error: e_120_1 }; } - finally { - try { - if (extensionGroup_1_1 && !extensionGroup_1_1.done && (_t = extensionGroup_1.return)) _t.call(extensionGroup_1); - } - finally { if (e_120) throw e_120.error; } - } - return false; -} -function removeWildcardFilesWithLowerPriorityExtension(file, wildcardFiles, extensions, keyMapper) { - var extensionGroup = forEach(extensions, function (group2) { return fileExtensionIsOneOf(file, group2) ? group2 : void 0; }); - if (!extensionGroup) { - return; - } - for (var i = extensionGroup.length - 1; i >= 0; i--) { - var ext = extensionGroup[i]; - if (fileExtensionIs(file, ext)) { - return; - } - var lowerPriorityPath = keyMapper(changeExtension(file, ext)); - wildcardFiles.delete(lowerPriorityPath); - } -} -function convertCompilerOptionsForTelemetry(opts) { - var out = {}; - for (var key in opts) { - if (hasProperty(opts, key)) { - var type = getOptionFromName(key); - if (type !== void 0) { - out[key] = getOptionValueWithEmptyStrings(opts[key], type); - } - } - } - return out; -} -function getOptionValueWithEmptyStrings(value, option) { - if (value === void 0) - return value; - switch (option.type) { - case "object": - return ""; - case "string": - return ""; - case "number": - return typeof value === "number" ? value : ""; - case "boolean": - return typeof value === "boolean" ? value : ""; - case "listOrElement": - if (!isArray(value)) - return getOptionValueWithEmptyStrings(value, option.element); - case "list": - var elementType_1 = option.element; - return isArray(value) ? mapDefined(value, function (v) { return getOptionValueWithEmptyStrings(v, elementType_1); }) : ""; - default: - return forEachEntry(option.type, function (optionEnumValue, optionStringValue) { - if (optionEnumValue === value) { - return optionStringValue; - } - }); - } -} -function getDefaultValueForOption(option) { - switch (option.type) { - case "number": - return 1; - case "boolean": - return true; - case "string": - var defaultValue = option.defaultValueDescription; - return option.isFilePath ? "./".concat(defaultValue && typeof defaultValue === "string" ? defaultValue : "") : ""; - case "list": - return []; - case "listOrElement": - return getDefaultValueForOption(option.element); - case "object": - return {}; - default: - var value = firstOrUndefinedIterator(option.type.keys()); - if (value !== void 0) - return value; - return Debug.fail("Expected 'option.type' to have entries."); - } -} -// src/compiler/moduleNameResolver.ts -function trace(host) { - host.trace(formatMessage.apply(void 0, arguments)); -} -function isTraceEnabled(compilerOptions, host) { - return !!compilerOptions.traceResolution && host.trace !== void 0; -} -function withPackageId(packageInfo, r) { - var packageId; - if (r && packageInfo) { - var packageJsonContent = packageInfo.contents.packageJsonContent; - if (typeof packageJsonContent.name === "string" && typeof packageJsonContent.version === "string") { - packageId = { - name: packageJsonContent.name, - subModuleName: r.path.slice(packageInfo.packageDirectory.length + directorySeparator.length), - version: packageJsonContent.version - }; - } - } - return r && { path: r.path, extension: r.ext, packageId: packageId, resolvedUsingTsExtension: r.resolvedUsingTsExtension }; -} -function noPackageId(r) { - return withPackageId( - /*packageInfo*/ - void 0, r); -} -function removeIgnoredPackageId(r) { - if (r) { - Debug.assert(r.packageId === void 0); - return { path: r.path, ext: r.extension, resolvedUsingTsExtension: r.resolvedUsingTsExtension }; - } -} -function formatExtensions(extensions) { - var result = []; - if (extensions & 1 /* TypeScript */) - result.push("TypeScript"); - if (extensions & 2 /* JavaScript */) - result.push("JavaScript"); - if (extensions & 4 /* Declaration */) - result.push("Declaration"); - if (extensions & 8 /* Json */) - result.push("JSON"); - return result.join(", "); -} -function extensionsToExtensionsArray(extensions) { - var result = []; - if (extensions & 1 /* TypeScript */) - result.push.apply(result, __spreadArray([], __read(supportedTSImplementationExtensions), false)); - if (extensions & 2 /* JavaScript */) - result.push.apply(result, __spreadArray([], __read(supportedJSExtensionsFlat), false)); - if (extensions & 4 /* Declaration */) - result.push.apply(result, __spreadArray([], __read(supportedDeclarationExtensions), false)); - if (extensions & 8 /* Json */) - result.push(".json" /* Json */); - return result; -} -function resolvedTypeScriptOnly(resolved) { - if (!resolved) { - return void 0; - } - Debug.assert(extensionIsTS(resolved.extension)); - return { fileName: resolved.path, packageId: resolved.packageId }; -} -function createResolvedModuleWithFailedLookupLocationsHandlingSymlink(moduleName, resolved, isExternalLibraryImport, failedLookupLocations, affectingLocations, diagnostics, state, legacyResult) { - if (!state.resultFromCache && !state.compilerOptions.preserveSymlinks && resolved && isExternalLibraryImport && !resolved.originalPath && !isExternalModuleNameRelative(moduleName)) { - var _t = getOriginalAndResolvedFileName(resolved.path, state.host, state.traceEnabled), resolvedFileName = _t.resolvedFileName, originalPath = _t.originalPath; - if (originalPath) - resolved = __assign(__assign({}, resolved), { path: resolvedFileName, originalPath: originalPath }); - } - return createResolvedModuleWithFailedLookupLocations(resolved, isExternalLibraryImport, failedLookupLocations, affectingLocations, diagnostics, state.resultFromCache, legacyResult); -} -function createResolvedModuleWithFailedLookupLocations(resolved, isExternalLibraryImport, failedLookupLocations, affectingLocations, diagnostics, resultFromCache, legacyResult) { - if (resultFromCache) { - resultFromCache.failedLookupLocations = updateResolutionField(resultFromCache.failedLookupLocations, failedLookupLocations); - resultFromCache.affectingLocations = updateResolutionField(resultFromCache.affectingLocations, affectingLocations); - resultFromCache.resolutionDiagnostics = updateResolutionField(resultFromCache.resolutionDiagnostics, diagnostics); - return resultFromCache; - } - return { - resolvedModule: resolved && { - resolvedFileName: resolved.path, - originalPath: resolved.originalPath === true ? void 0 : resolved.originalPath, - extension: resolved.extension, - isExternalLibraryImport: isExternalLibraryImport, - packageId: resolved.packageId, - resolvedUsingTsExtension: !!resolved.resolvedUsingTsExtension - }, - failedLookupLocations: initializeResolutionField(failedLookupLocations), - affectingLocations: initializeResolutionField(affectingLocations), - resolutionDiagnostics: initializeResolutionField(diagnostics), - node10Result: legacyResult - }; -} -function initializeResolutionField(value) { - return value.length ? value : void 0; -} -function updateResolutionField(to, value) { - if (!(value == null ? void 0 : value.length)) - return to; - if (!(to == null ? void 0 : to.length)) - return value; - to.push.apply(to, __spreadArray([], __read(value), false)); - return to; -} -function readPackageJsonField(jsonContent, fieldName, typeOfTag, state) { - if (!hasProperty(jsonContent, fieldName)) { - if (state.traceEnabled) { - trace(state.host, Diagnostics.package_json_does_not_have_a_0_field, fieldName); - } - return; - } - var value = jsonContent[fieldName]; - if (typeof value !== typeOfTag || value === null) { - if (state.traceEnabled) { - trace(state.host, Diagnostics.Expected_type_of_0_field_in_package_json_to_be_1_got_2, fieldName, typeOfTag, value === null ? "null" : typeof value); - } - return; - } - return value; -} -function readPackageJsonPathField(jsonContent, fieldName, baseDirectory, state) { - var fileName = readPackageJsonField(jsonContent, fieldName, "string", state); - if (fileName === void 0) { - return; - } - if (!fileName) { - if (state.traceEnabled) { - trace(state.host, Diagnostics.package_json_had_a_falsy_0_field, fieldName); - } - return; - } - var path = normalizePath(combinePaths(baseDirectory, fileName)); - if (state.traceEnabled) { - trace(state.host, Diagnostics.package_json_has_0_field_1_that_references_2, fieldName, fileName, path); - } - return path; -} -function readPackageJsonTypesFields(jsonContent, baseDirectory, state) { - return readPackageJsonPathField(jsonContent, "typings", baseDirectory, state) || readPackageJsonPathField(jsonContent, "types", baseDirectory, state); -} -function readPackageJsonTSConfigField(jsonContent, baseDirectory, state) { - return readPackageJsonPathField(jsonContent, "tsconfig", baseDirectory, state); -} -function readPackageJsonMainField(jsonContent, baseDirectory, state) { - return readPackageJsonPathField(jsonContent, "main", baseDirectory, state); -} -function readPackageJsonTypesVersionsField(jsonContent, state) { - var typesVersions = readPackageJsonField(jsonContent, "typesVersions", "object", state); - if (typesVersions === void 0) - return; - if (state.traceEnabled) { - trace(state.host, Diagnostics.package_json_has_a_typesVersions_field_with_version_specific_path_mappings); - } - return typesVersions; -} -function readPackageJsonTypesVersionPaths(jsonContent, state) { - var typesVersions = readPackageJsonTypesVersionsField(jsonContent, state); - if (typesVersions === void 0) - return; - if (state.traceEnabled) { - for (var key in typesVersions) { - if (hasProperty(typesVersions, key) && !VersionRange.tryParse(key)) { - trace(state.host, Diagnostics.package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range, key); - } - } - } - var result = getPackageJsonTypesVersionsPaths(typesVersions); - if (!result) { - if (state.traceEnabled) { - trace(state.host, Diagnostics.package_json_does_not_have_a_typesVersions_entry_that_matches_version_0, versionMajorMinor); - } - return; - } - var bestVersionKey = result.version, bestVersionPaths = result.paths; - if (typeof bestVersionPaths !== "object") { - if (state.traceEnabled) { - trace(state.host, Diagnostics.Expected_type_of_0_field_in_package_json_to_be_1_got_2, "typesVersions['".concat(bestVersionKey, "']"), "object", typeof bestVersionPaths); - } - return; - } - return result; -} -var typeScriptVersion; -function getPackageJsonTypesVersionsPaths(typesVersions) { - if (!typeScriptVersion) - typeScriptVersion = new Version(version); - for (var key in typesVersions) { - if (!hasProperty(typesVersions, key)) - continue; - var keyRange = VersionRange.tryParse(key); - if (keyRange === void 0) { - continue; - } - if (keyRange.test(typeScriptVersion)) { - return { version: key, paths: typesVersions[key] }; - } - } -} -function getEffectiveTypeRoots(options, host) { - if (options.typeRoots) { - return options.typeRoots; - } - var currentDirectory; - if (options.configFilePath) { - currentDirectory = getDirectoryPath(options.configFilePath); - } - else if (host.getCurrentDirectory) { - currentDirectory = host.getCurrentDirectory(); - } - if (currentDirectory !== void 0) { - return getDefaultTypeRoots(currentDirectory); - } -} -function getDefaultTypeRoots(currentDirectory) { - var typeRoots; - forEachAncestorDirectory(normalizePath(currentDirectory), function (directory) { - var atTypes = combinePaths(directory, nodeModulesAtTypes); - (typeRoots !== null && typeRoots !== void 0 ? typeRoots : (typeRoots = [])).push(atTypes); - }); - return typeRoots; -} -var nodeModulesAtTypes = combinePaths("node_modules", "@types"); -function arePathsEqual(path1, path2, host) { - var useCaseSensitiveFileNames2 = typeof host.useCaseSensitiveFileNames === "function" ? host.useCaseSensitiveFileNames() : host.useCaseSensitiveFileNames; - return comparePaths(path1, path2, !useCaseSensitiveFileNames2) === 0 /* EqualTo */; -} -function getOriginalAndResolvedFileName(fileName, host, traceEnabled) { - var resolvedFileName = realPath(fileName, host, traceEnabled); - var pathsAreEqual = arePathsEqual(fileName, resolvedFileName, host); - return { - // If the fileName and realpath are differing only in casing prefer fileName so that we can issue correct errors for casing under forceConsistentCasingInFileNames - resolvedFileName: pathsAreEqual ? fileName : resolvedFileName, - originalPath: pathsAreEqual ? void 0 : fileName - }; -} -function getCandidateFromTypeRoot(typeRoot, typeReferenceDirectiveName, moduleResolutionState) { - var nameForLookup = endsWith(typeRoot, "/node_modules/@types") || endsWith(typeRoot, "/node_modules/@types/") ? mangleScopedPackageNameWithTrace(typeReferenceDirectiveName, moduleResolutionState) : typeReferenceDirectiveName; - return combinePaths(typeRoot, nameForLookup); -} -function resolveTypeReferenceDirective(typeReferenceDirectiveName, containingFile, options, host, redirectedReference, cache, resolutionMode) { - var _t; - Debug.assert(typeof typeReferenceDirectiveName === "string", "Non-string value passed to `ts.resolveTypeReferenceDirective`, likely by a wrapping package working with an outdated `resolveTypeReferenceDirectives` signature. This is probably not a problem in TS itself."); - var traceEnabled = isTraceEnabled(options, host); - if (redirectedReference) { - options = redirectedReference.commandLine.options; - } - var containingDirectory = containingFile ? getDirectoryPath(containingFile) : void 0; - var result = containingDirectory ? cache == null ? void 0 : cache.getFromDirectoryCache(typeReferenceDirectiveName, resolutionMode, containingDirectory, redirectedReference) : void 0; - if (!result && containingDirectory && !isExternalModuleNameRelative(typeReferenceDirectiveName)) { - result = cache == null ? void 0 : cache.getFromNonRelativeNameCache(typeReferenceDirectiveName, resolutionMode, containingDirectory, redirectedReference); - } - if (result) { - if (traceEnabled) { - trace(host, Diagnostics.Resolving_type_reference_directive_0_containing_file_1, typeReferenceDirectiveName, containingFile); - if (redirectedReference) - trace(host, Diagnostics.Using_compiler_options_of_project_reference_redirect_0, redirectedReference.sourceFile.fileName); - trace(host, Diagnostics.Resolution_for_type_reference_directive_0_was_found_in_cache_from_location_1, typeReferenceDirectiveName, containingDirectory); - traceResult(result); - } - return result; - } - var typeRoots = getEffectiveTypeRoots(options, host); - if (traceEnabled) { - if (containingFile === void 0) { - if (typeRoots === void 0) { - trace(host, Diagnostics.Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set, typeReferenceDirectiveName); - } - else { - trace(host, Diagnostics.Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1, typeReferenceDirectiveName, typeRoots); - } - } - else { - if (typeRoots === void 0) { - trace(host, Diagnostics.Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set, typeReferenceDirectiveName, containingFile); - } - else { - trace(host, Diagnostics.Resolving_type_reference_directive_0_containing_file_1_root_directory_2, typeReferenceDirectiveName, containingFile, typeRoots); - } - } - if (redirectedReference) { - trace(host, Diagnostics.Using_compiler_options_of_project_reference_redirect_0, redirectedReference.sourceFile.fileName); - } - } - var failedLookupLocations = []; - var affectingLocations = []; - var features = getNodeResolutionFeatures(options); - if (resolutionMode === 99 /* ESNext */ && (getEmitModuleResolutionKind(options) === 3 /* Node16 */ || getEmitModuleResolutionKind(options) === 99 /* NodeNext */)) { - features |= 32 /* EsmMode */; - } - var conditions = features & 8 /* Exports */ ? getConditions(options, !!(features & 32 /* EsmMode */)) : []; - var diagnostics = []; - var moduleResolutionState = { - compilerOptions: options, - host: host, - traceEnabled: traceEnabled, - failedLookupLocations: failedLookupLocations, - affectingLocations: affectingLocations, - packageJsonInfoCache: cache, - features: features, - conditions: conditions, - requestContainingDirectory: containingDirectory, - reportDiagnostic: function (diag2) { return void diagnostics.push(diag2); }, - isConfigLookup: false, - candidateIsFromPackageJsonField: false - }; - var resolved = primaryLookup(); - var primary = true; - if (!resolved) { - resolved = secondaryLookup(); - primary = false; - } - var resolvedTypeReferenceDirective; - if (resolved) { - var fileName = resolved.fileName, packageId = resolved.packageId; - var resolvedFileName = fileName, originalPath = void 0; - if (!options.preserveSymlinks) - (_t = getOriginalAndResolvedFileName(fileName, host, traceEnabled), resolvedFileName = _t.resolvedFileName, originalPath = _t.originalPath); - resolvedTypeReferenceDirective = { - primary: primary, - resolvedFileName: resolvedFileName, - originalPath: originalPath, - packageId: packageId, - isExternalLibraryImport: pathContainsNodeModules(fileName) - }; - } - result = { - resolvedTypeReferenceDirective: resolvedTypeReferenceDirective, - failedLookupLocations: initializeResolutionField(failedLookupLocations), - affectingLocations: initializeResolutionField(affectingLocations), - resolutionDiagnostics: initializeResolutionField(diagnostics) - }; - if (containingDirectory) { - cache == null ? void 0 : cache.getOrCreateCacheForDirectory(containingDirectory, redirectedReference).set(typeReferenceDirectiveName, - /*mode*/ - resolutionMode, result); - if (!isExternalModuleNameRelative(typeReferenceDirectiveName)) { - cache == null ? void 0 : cache.getOrCreateCacheForNonRelativeName(typeReferenceDirectiveName, resolutionMode, redirectedReference).set(containingDirectory, result); - } - } - if (traceEnabled) - traceResult(result); - return result; - function traceResult(result2) { - var _a; - if (!((_a = result2.resolvedTypeReferenceDirective) == null ? void 0 : _a.resolvedFileName)) { - trace(host, Diagnostics.Type_reference_directive_0_was_not_resolved, typeReferenceDirectiveName); - } - else if (result2.resolvedTypeReferenceDirective.packageId) { - trace(host, Diagnostics.Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3, typeReferenceDirectiveName, result2.resolvedTypeReferenceDirective.resolvedFileName, packageIdToString(result2.resolvedTypeReferenceDirective.packageId), result2.resolvedTypeReferenceDirective.primary); - } - else { - trace(host, Diagnostics.Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2, typeReferenceDirectiveName, result2.resolvedTypeReferenceDirective.resolvedFileName, result2.resolvedTypeReferenceDirective.primary); - } - } - function primaryLookup() { - if (typeRoots && typeRoots.length) { - if (traceEnabled) { - trace(host, Diagnostics.Resolving_with_primary_search_path_0, typeRoots.join(", ")); - } - return firstDefined(typeRoots, function (typeRoot) { - var candidate = getCandidateFromTypeRoot(typeRoot, typeReferenceDirectiveName, moduleResolutionState); - var directoryExists = directoryProbablyExists(typeRoot, host); - if (!directoryExists && traceEnabled) { - trace(host, Diagnostics.Directory_0_does_not_exist_skipping_all_lookups_in_it, typeRoot); - } - if (options.typeRoots) { - var resolvedFromFile = loadModuleFromFile(4 /* Declaration */, candidate, !directoryExists, moduleResolutionState); - if (resolvedFromFile) { - var packageDirectory = parseNodeModuleFromPath(resolvedFromFile.path); - var packageInfo = packageDirectory ? getPackageJsonInfo(packageDirectory, - /*onlyRecordFailures*/ - false, moduleResolutionState) : void 0; - return resolvedTypeScriptOnly(withPackageId(packageInfo, resolvedFromFile)); - } - } - return resolvedTypeScriptOnly(loadNodeModuleFromDirectory(4 /* Declaration */, candidate, !directoryExists, moduleResolutionState)); - }); - } - else { - if (traceEnabled) { - trace(host, Diagnostics.Root_directory_cannot_be_determined_skipping_primary_search_paths); - } - } - } - function secondaryLookup() { - var initialLocationForSecondaryLookup = containingFile && getDirectoryPath(containingFile); - if (initialLocationForSecondaryLookup !== void 0) { - var result2 = void 0; - if (!options.typeRoots || !endsWith(containingFile, inferredTypesContainingFile)) { - if (traceEnabled) { - trace(host, Diagnostics.Looking_up_in_node_modules_folder_initial_location_0, initialLocationForSecondaryLookup); - } - if (!isExternalModuleNameRelative(typeReferenceDirectiveName)) { - var searchResult = loadModuleFromNearestNodeModulesDirectory(4 /* Declaration */, typeReferenceDirectiveName, initialLocationForSecondaryLookup, moduleResolutionState, - /*cache*/ - void 0, - /*redirectedReference*/ - void 0); - result2 = searchResult && searchResult.value; - } - else { - var candidate = normalizePathForCJSResolution(initialLocationForSecondaryLookup, typeReferenceDirectiveName).path; - result2 = nodeLoadModuleByRelativeName(4 /* Declaration */, candidate, - /*onlyRecordFailures*/ - false, moduleResolutionState, - /*considerPackageJson*/ - true); - } - } - else if (traceEnabled) { - trace(host, Diagnostics.Resolving_type_reference_directive_for_program_that_specifies_custom_typeRoots_skipping_lookup_in_node_modules_folder); - } - return resolvedTypeScriptOnly(result2); - } - else { - if (traceEnabled) { - trace(host, Diagnostics.Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_modules_folder); - } - } - } -} -function getNodeResolutionFeatures(options) { - var features = 0 /* None */; - switch (getEmitModuleResolutionKind(options)) { - case 3 /* Node16 */: - features = 30 /* Node16Default */; - break; - case 99 /* NodeNext */: - features = 30 /* NodeNextDefault */; - break; - case 100 /* Bundler */: - features = 30 /* BundlerDefault */; - break; - } - if (options.resolvePackageJsonExports) { - features |= 8 /* Exports */; - } - else if (options.resolvePackageJsonExports === false) { - features &= ~8 /* Exports */; - } - if (options.resolvePackageJsonImports) { - features |= 2 /* Imports */; - } - else if (options.resolvePackageJsonImports === false) { - features &= ~2 /* Imports */; - } - return features; -} -function getConditions(options, esmMode) { - var conditions = esmMode || getEmitModuleResolutionKind(options) === 100 /* Bundler */ ? ["import"] : ["require"]; - if (!options.noDtsResolution) { - conditions.push("types"); - } - if (getEmitModuleResolutionKind(options) !== 100 /* Bundler */) { - conditions.push("node"); - } - return concatenate(conditions, options.customConditions); -} -function resolvePackageNameToPackageJson(packageName, containingDirectory, options, host, cache) { - var moduleResolutionState = getTemporaryModuleResolutionState(cache == null ? void 0 : cache.getPackageJsonInfoCache(), host, options); - return forEachAncestorDirectory(containingDirectory, function (ancestorDirectory) { - if (getBaseFileName(ancestorDirectory) !== "node_modules") { - var nodeModulesFolder = combinePaths(ancestorDirectory, "node_modules"); - var candidate = combinePaths(nodeModulesFolder, packageName); - return getPackageJsonInfo(candidate, - /*onlyRecordFailures*/ - false, moduleResolutionState); - } - }); -} -function getAutomaticTypeDirectiveNames(options, host) { - var e_121, _t, e_122, _u; - if (options.types) { - return options.types; - } - var result = []; - if (host.directoryExists && host.getDirectories) { - var typeRoots = getEffectiveTypeRoots(options, host); - if (typeRoots) { - try { - for (var typeRoots_1 = __values(typeRoots), typeRoots_1_1 = typeRoots_1.next(); !typeRoots_1_1.done; typeRoots_1_1 = typeRoots_1.next()) { - var root = typeRoots_1_1.value; - if (host.directoryExists(root)) { - try { - for (var _v = (e_122 = void 0, __values(host.getDirectories(root))), _w = _v.next(); !_w.done; _w = _v.next()) { - var typeDirectivePath = _w.value; - var normalized = normalizePath(typeDirectivePath); - var packageJsonPath = combinePaths(root, normalized, "package.json"); - var isNotNeededPackage = host.fileExists(packageJsonPath) && readJson(packageJsonPath, host).typings === null; - if (!isNotNeededPackage) { - var baseFileName = getBaseFileName(normalized); - if (baseFileName.charCodeAt(0) !== 46 /* dot */) { - result.push(baseFileName); - } - } - } - } - catch (e_122_1) { e_122 = { error: e_122_1 }; } - finally { - try { - if (_w && !_w.done && (_u = _v.return)) _u.call(_v); - } - finally { if (e_122) throw e_122.error; } - } - } - } - } - catch (e_121_1) { e_121 = { error: e_121_1 }; } - finally { - try { - if (typeRoots_1_1 && !typeRoots_1_1.done && (_t = typeRoots_1.return)) _t.call(typeRoots_1); - } - finally { if (e_121) throw e_121.error; } - } - } - } - return result; -} -function compilerOptionValueToString(value) { - var _a; - if (value === null || typeof value !== "object") { - return "" + value; - } - if (isArray(value)) { - return "[".concat((_a = value.map(function (e) { return compilerOptionValueToString(e); })) == null ? void 0 : _a.join(","), "]"); - } - var str = "{"; - for (var key in value) { - if (hasProperty(value, key)) { - str += "".concat(key, ": ").concat(compilerOptionValueToString(value[key])); - } - } - return str + "}"; -} -function getKeyForCompilerOptions(options, affectingOptionDeclarations) { - return affectingOptionDeclarations.map(function (option) { return compilerOptionValueToString(getCompilerOptionValue(options, option)); }).join("|") + "|".concat(options.pathsBasePath); -} -function createCacheWithRedirects(ownOptions) { - var redirectsMap = /* @__PURE__ */ new Map(); - var optionsToRedirectsKey = /* @__PURE__ */ new Map(); - var redirectsKeyToMap = /* @__PURE__ */ new Map(); - var ownMap = /* @__PURE__ */ new Map(); - if (ownOptions) - redirectsMap.set(ownOptions, ownMap); - return { - getMapOfCacheRedirects: getMapOfCacheRedirects, - getOrCreateMapOfCacheRedirects: getOrCreateMapOfCacheRedirects, - update: update, - clear: clear2 - }; - function getMapOfCacheRedirects(redirectedReference) { - return redirectedReference ? getOrCreateMap(redirectedReference.commandLine.options, - /*create*/ - false) : ownMap; - } - function getOrCreateMapOfCacheRedirects(redirectedReference) { - return redirectedReference ? getOrCreateMap(redirectedReference.commandLine.options, - /*create*/ - true) : ownMap; - } - function update(newOptions) { - if (ownOptions !== newOptions) { - if (ownOptions) - ownMap = getOrCreateMap(newOptions, - /*create*/ - true); - else - redirectsMap.set(newOptions, ownMap); - ownOptions = newOptions; - } - } - function getOrCreateMap(redirectOptions, create) { - var result = redirectsMap.get(redirectOptions); - if (result) - return result; - var key = getRedirectsCacheKey(redirectOptions); - result = redirectsKeyToMap.get(key); - if (!result) { - if (ownOptions) { - var ownKey = getRedirectsCacheKey(ownOptions); - if (ownKey === key) - result = ownMap; - else if (!redirectsKeyToMap.has(ownKey)) - redirectsKeyToMap.set(ownKey, ownMap); - } - if (create) - result !== null && result !== void 0 ? result : (result = /* @__PURE__ */ new Map()); - if (result) - redirectsKeyToMap.set(key, result); - } - if (result) - redirectsMap.set(redirectOptions, result); - return result; - } - function clear2() { - var ownKey = ownOptions && optionsToRedirectsKey.get(ownOptions); - ownMap.clear(); - redirectsMap.clear(); - optionsToRedirectsKey.clear(); - redirectsKeyToMap.clear(); - if (ownOptions) { - if (ownKey) - optionsToRedirectsKey.set(ownOptions, ownKey); - redirectsMap.set(ownOptions, ownMap); - } - } - function getRedirectsCacheKey(options) { - var result = optionsToRedirectsKey.get(options); - if (!result) { - optionsToRedirectsKey.set(options, result = getKeyForCompilerOptions(options, moduleResolutionOptionDeclarations)); - } - return result; - } -} -function createPackageJsonInfoCache(currentDirectory, getCanonicalFileName) { - var cache; - return { getPackageJsonInfo: getPackageJsonInfo2, setPackageJsonInfo: setPackageJsonInfo, clear: clear2, entries: entries, getInternalMap: getInternalMap }; - function getPackageJsonInfo2(packageJsonPath) { - return cache == null ? void 0 : cache.get(toPath(packageJsonPath, currentDirectory, getCanonicalFileName)); - } - function setPackageJsonInfo(packageJsonPath, info) { - (cache || (cache = /* @__PURE__ */ new Map())).set(toPath(packageJsonPath, currentDirectory, getCanonicalFileName), info); - } - function clear2() { - cache = void 0; - } - function entries() { - var iter = cache == null ? void 0 : cache.entries(); - return iter ? arrayFrom(iter) : []; - } - function getInternalMap() { - return cache; - } -} -function getOrCreateCache(cacheWithRedirects, redirectedReference, key, create) { - var cache = cacheWithRedirects.getOrCreateMapOfCacheRedirects(redirectedReference); - var result = cache.get(key); - if (!result) { - result = create(); - cache.set(key, result); - } - return result; -} -function createPerDirectoryResolutionCache(currentDirectory, getCanonicalFileName, options) { - var directoryToModuleNameMap = createCacheWithRedirects(options); - return { - getFromDirectoryCache: getFromDirectoryCache, - getOrCreateCacheForDirectory: getOrCreateCacheForDirectory, - clear: clear2, - update: update - }; - function clear2() { - directoryToModuleNameMap.clear(); - } - function update(options2) { - directoryToModuleNameMap.update(options2); - } - function getOrCreateCacheForDirectory(directoryName, redirectedReference) { - var path = toPath(directoryName, currentDirectory, getCanonicalFileName); - return getOrCreateCache(directoryToModuleNameMap, redirectedReference, path, function () { return createModeAwareCache(); }); - } - function getFromDirectoryCache(name, mode, directoryName, redirectedReference) { - var _a, _b; - var path = toPath(directoryName, currentDirectory, getCanonicalFileName); - return (_b = (_a = directoryToModuleNameMap.getMapOfCacheRedirects(redirectedReference)) == null ? void 0 : _a.get(path)) == null ? void 0 : _b.get(name, mode); - } -} -function createModeAwareCacheKey(specifier, mode) { - return mode === void 0 ? specifier : "".concat(mode, "|").concat(specifier); -} -function createModeAwareCache() { - var underlying = /* @__PURE__ */ new Map(); - var memoizedReverseKeys = /* @__PURE__ */ new Map(); - var cache = { - get: function (specifier, mode) { - return underlying.get(getUnderlyingCacheKey(specifier, mode)); - }, - set: function (specifier, mode, value) { - underlying.set(getUnderlyingCacheKey(specifier, mode), value); - return cache; - }, - delete: function (specifier, mode) { - underlying.delete(getUnderlyingCacheKey(specifier, mode)); - return cache; - }, - has: function (specifier, mode) { - return underlying.has(getUnderlyingCacheKey(specifier, mode)); - }, - forEach: function (cb) { - return underlying.forEach(function (elem, key) { - var _t = __read(memoizedReverseKeys.get(key), 2), specifier = _t[0], mode = _t[1]; - return cb(elem, specifier, mode); - }); - }, - size: function () { - return underlying.size; - } - }; - return cache; - function getUnderlyingCacheKey(specifier, mode) { - var result = createModeAwareCacheKey(specifier, mode); - memoizedReverseKeys.set(result, [specifier, mode]); - return result; - } -} -function zipToModeAwareCache(file, keys, values, nameAndModeGetter) { - Debug.assert(keys.length === values.length); - var map2 = createModeAwareCache(); - for (var i = 0; i < keys.length; ++i) { - var entry = keys[i]; - map2.set(nameAndModeGetter.getName(entry), nameAndModeGetter.getMode(entry, file), values[i]); - } - return map2; -} -function getOriginalOrResolvedModuleFileName(result) { - return result.resolvedModule && (result.resolvedModule.originalPath || result.resolvedModule.resolvedFileName); -} -function getOriginalOrResolvedTypeReferenceFileName(result) { - return result.resolvedTypeReferenceDirective && (result.resolvedTypeReferenceDirective.originalPath || result.resolvedTypeReferenceDirective.resolvedFileName); -} -function createNonRelativeNameResolutionCache(currentDirectory, getCanonicalFileName, options, getResolvedFileName) { - var moduleNameToDirectoryMap = createCacheWithRedirects(options); - return { - getFromNonRelativeNameCache: getFromNonRelativeNameCache, - getOrCreateCacheForNonRelativeName: getOrCreateCacheForNonRelativeName, - clear: clear2, - update: update - }; - function clear2() { - moduleNameToDirectoryMap.clear(); - } - function update(options2) { - moduleNameToDirectoryMap.update(options2); - } - function getFromNonRelativeNameCache(nonRelativeModuleName, mode, directoryName, redirectedReference) { - var _a, _b; - Debug.assert(!isExternalModuleNameRelative(nonRelativeModuleName)); - return (_b = (_a = moduleNameToDirectoryMap.getMapOfCacheRedirects(redirectedReference)) == null ? void 0 : _a.get(createModeAwareCacheKey(nonRelativeModuleName, mode))) == null ? void 0 : _b.get(directoryName); - } - function getOrCreateCacheForNonRelativeName(nonRelativeModuleName, mode, redirectedReference) { - Debug.assert(!isExternalModuleNameRelative(nonRelativeModuleName)); - return getOrCreateCache(moduleNameToDirectoryMap, redirectedReference, createModeAwareCacheKey(nonRelativeModuleName, mode), createPerModuleNameCache); - } - function createPerModuleNameCache() { - var directoryPathMap = /* @__PURE__ */ new Map(); - return { get: get, set: set }; - function get(directory) { - return directoryPathMap.get(toPath(directory, currentDirectory, getCanonicalFileName)); - } - function set(directory, result) { - var path = toPath(directory, currentDirectory, getCanonicalFileName); - if (directoryPathMap.has(path)) { - return; - } - directoryPathMap.set(path, result); - var resolvedFileName = getResolvedFileName(result); - var commonPrefix = resolvedFileName && getCommonPrefix(path, resolvedFileName); - var current = path; - while (current !== commonPrefix) { - var parent2 = getDirectoryPath(current); - if (parent2 === current || directoryPathMap.has(parent2)) { - break; - } - directoryPathMap.set(parent2, result); - current = parent2; - } - } - function getCommonPrefix(directory, resolution) { - var resolutionDirectory = toPath(getDirectoryPath(resolution), currentDirectory, getCanonicalFileName); - var i = 0; - var limit = Math.min(directory.length, resolutionDirectory.length); - while (i < limit && directory.charCodeAt(i) === resolutionDirectory.charCodeAt(i)) { - i++; - } - if (i === directory.length && (resolutionDirectory.length === i || resolutionDirectory[i] === directorySeparator)) { - return directory; - } - var rootLength = getRootLength(directory); - if (i < rootLength) { - return void 0; - } - var sep = directory.lastIndexOf(directorySeparator, i - 1); - if (sep === -1) { - return void 0; - } - return directory.substr(0, Math.max(sep, rootLength)); - } - } -} -function createModuleOrTypeReferenceResolutionCache(currentDirectory, getCanonicalFileName, options, packageJsonInfoCache, getResolvedFileName) { - var perDirectoryResolutionCache = createPerDirectoryResolutionCache(currentDirectory, getCanonicalFileName, options); - var nonRelativeNameResolutionCache = createNonRelativeNameResolutionCache(currentDirectory, getCanonicalFileName, options, getResolvedFileName); - packageJsonInfoCache !== null && packageJsonInfoCache !== void 0 ? packageJsonInfoCache : (packageJsonInfoCache = createPackageJsonInfoCache(currentDirectory, getCanonicalFileName)); - return __assign(__assign(__assign(__assign({}, packageJsonInfoCache), perDirectoryResolutionCache), nonRelativeNameResolutionCache), { clear: clear2, update: update, getPackageJsonInfoCache: function () { return packageJsonInfoCache; }, clearAllExceptPackageJsonInfoCache: clearAllExceptPackageJsonInfoCache }); - function clear2() { - clearAllExceptPackageJsonInfoCache(); - packageJsonInfoCache.clear(); - } - function clearAllExceptPackageJsonInfoCache() { - perDirectoryResolutionCache.clear(); - nonRelativeNameResolutionCache.clear(); - } - function update(options2) { - perDirectoryResolutionCache.update(options2); - nonRelativeNameResolutionCache.update(options2); - } -} -function createModuleResolutionCache(currentDirectory, getCanonicalFileName, options, packageJsonInfoCache) { - var result = createModuleOrTypeReferenceResolutionCache(currentDirectory, getCanonicalFileName, options, packageJsonInfoCache, getOriginalOrResolvedModuleFileName); - result.getOrCreateCacheForModuleName = function (nonRelativeName, mode, redirectedReference) { return result.getOrCreateCacheForNonRelativeName(nonRelativeName, mode, redirectedReference); }; - return result; -} -function createTypeReferenceDirectiveResolutionCache(currentDirectory, getCanonicalFileName, options, packageJsonInfoCache) { - return createModuleOrTypeReferenceResolutionCache(currentDirectory, getCanonicalFileName, options, packageJsonInfoCache, getOriginalOrResolvedTypeReferenceFileName); -} -function getOptionsForLibraryResolution(options) { - return { moduleResolution: 2 /* Node10 */, traceResolution: options.traceResolution }; -} -function resolveLibrary(libraryName, resolveFrom, compilerOptions, host, cache) { - return resolveModuleName(libraryName, resolveFrom, getOptionsForLibraryResolution(compilerOptions), host, cache); -} -function resolveModuleNameFromCache(moduleName, containingFile, cache, mode) { - var containingDirectory = getDirectoryPath(containingFile); - return cache.getFromDirectoryCache(moduleName, mode, containingDirectory, - /*redirectedReference*/ - void 0); -} -function resolveModuleName(moduleName, containingFile, compilerOptions, host, cache, redirectedReference, resolutionMode) { - var _a, _b, _c; - var traceEnabled = isTraceEnabled(compilerOptions, host); - if (redirectedReference) { - compilerOptions = redirectedReference.commandLine.options; - } - if (traceEnabled) { - trace(host, Diagnostics.Resolving_module_0_from_1, moduleName, containingFile); - if (redirectedReference) { - trace(host, Diagnostics.Using_compiler_options_of_project_reference_redirect_0, redirectedReference.sourceFile.fileName); - } - } - var containingDirectory = getDirectoryPath(containingFile); - var result = cache == null ? void 0 : cache.getFromDirectoryCache(moduleName, resolutionMode, containingDirectory, redirectedReference); - if (result) { - if (traceEnabled) { - trace(host, Diagnostics.Resolution_for_module_0_was_found_in_cache_from_location_1, moduleName, containingDirectory); - } - } - else { - var moduleResolution = compilerOptions.moduleResolution; - if (moduleResolution === void 0) { - switch (getEmitModuleKind(compilerOptions)) { - case 1 /* CommonJS */: - moduleResolution = 2 /* Node10 */; - break; - case 100 /* Node16 */: - moduleResolution = 3 /* Node16 */; - break; - case 199 /* NodeNext */: - moduleResolution = 99 /* NodeNext */; - break; - default: - moduleResolution = 1 /* Classic */; - break; - } - if (traceEnabled) { - trace(host, Diagnostics.Module_resolution_kind_is_not_specified_using_0, ModuleResolutionKind[moduleResolution]); - } - } - else { - if (traceEnabled) { - trace(host, Diagnostics.Explicitly_specified_module_resolution_kind_Colon_0, ModuleResolutionKind[moduleResolution]); - } - } - (_a = perfLogger) == null ? void 0 : _a.logStartResolveModule(moduleName); - switch (moduleResolution) { - case 3 /* Node16 */: - result = node16ModuleNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference, resolutionMode); - break; - case 99 /* NodeNext */: - result = nodeNextModuleNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference, resolutionMode); - break; - case 2 /* Node10 */: - result = nodeModuleNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference); - break; - case 1 /* Classic */: - result = classicNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference); - break; - case 100 /* Bundler */: - result = bundlerModuleNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference); - break; - default: - return Debug.fail("Unexpected moduleResolution: ".concat(moduleResolution)); - } - if (result && result.resolvedModule) - (_b = perfLogger) == null ? void 0 : _b.logInfoEvent("Module \"".concat(moduleName, "\" resolved to \"").concat(result.resolvedModule.resolvedFileName, "\"")); - (_c = perfLogger) == null ? void 0 : _c.logStopResolveModule(result && result.resolvedModule ? "" + result.resolvedModule.resolvedFileName : "null"); - cache == null ? void 0 : cache.getOrCreateCacheForDirectory(containingDirectory, redirectedReference).set(moduleName, resolutionMode, result); - if (!isExternalModuleNameRelative(moduleName)) { - cache == null ? void 0 : cache.getOrCreateCacheForNonRelativeName(moduleName, resolutionMode, redirectedReference).set(containingDirectory, result); - } - } - if (traceEnabled) { - if (result.resolvedModule) { - if (result.resolvedModule.packageId) { - trace(host, Diagnostics.Module_name_0_was_successfully_resolved_to_1_with_Package_ID_2, moduleName, result.resolvedModule.resolvedFileName, packageIdToString(result.resolvedModule.packageId)); - } - else { - trace(host, Diagnostics.Module_name_0_was_successfully_resolved_to_1, moduleName, result.resolvedModule.resolvedFileName); - } - } - else { - trace(host, Diagnostics.Module_name_0_was_not_resolved, moduleName); - } - } - return result; -} -function tryLoadModuleUsingOptionalResolutionSettings(extensions, moduleName, containingDirectory, loader, state) { - var resolved = tryLoadModuleUsingPathsIfEligible(extensions, moduleName, loader, state); - if (resolved) - return resolved.value; - if (!isExternalModuleNameRelative(moduleName)) { - return tryLoadModuleUsingBaseUrl(extensions, moduleName, loader, state); - } - else { - return tryLoadModuleUsingRootDirs(extensions, moduleName, containingDirectory, loader, state); - } -} -function tryLoadModuleUsingPathsIfEligible(extensions, moduleName, loader, state) { - var _a; - var _t = state.compilerOptions, baseUrl = _t.baseUrl, paths = _t.paths, configFile = _t.configFile; - if (paths && !pathIsRelative(moduleName)) { - if (state.traceEnabled) { - if (baseUrl) { - trace(state.host, Diagnostics.baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1, baseUrl, moduleName); - } - trace(state.host, Diagnostics.paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0, moduleName); - } - var baseDirectory = getPathsBasePath(state.compilerOptions, state.host); - var pathPatterns = (configFile == null ? void 0 : configFile.configFileSpecs) ? (_a = configFile.configFileSpecs).pathPatterns || (_a.pathPatterns = tryParsePatterns(paths)) : void 0; - return tryLoadModuleUsingPaths(extensions, moduleName, baseDirectory, paths, pathPatterns, loader, - /*onlyRecordFailures*/ - false, state); - } -} -function tryLoadModuleUsingRootDirs(extensions, moduleName, containingDirectory, loader, state) { - var e_123, _t, e_124, _u; - if (!state.compilerOptions.rootDirs) { - return void 0; - } - if (state.traceEnabled) { - trace(state.host, Diagnostics.rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0, moduleName); - } - var candidate = normalizePath(combinePaths(containingDirectory, moduleName)); - var matchedRootDir; - var matchedNormalizedPrefix; - try { - for (var _v = __values(state.compilerOptions.rootDirs), _w = _v.next(); !_w.done; _w = _v.next()) { - var rootDir = _w.value; - var normalizedRoot = normalizePath(rootDir); - if (!endsWith(normalizedRoot, directorySeparator)) { - normalizedRoot += directorySeparator; - } - var isLongestMatchingPrefix = startsWith(candidate, normalizedRoot) && (matchedNormalizedPrefix === void 0 || matchedNormalizedPrefix.length < normalizedRoot.length); - if (state.traceEnabled) { - trace(state.host, Diagnostics.Checking_if_0_is_the_longest_matching_prefix_for_1_2, normalizedRoot, candidate, isLongestMatchingPrefix); - } - if (isLongestMatchingPrefix) { - matchedNormalizedPrefix = normalizedRoot; - matchedRootDir = rootDir; - } - } - } - catch (e_123_1) { e_123 = { error: e_123_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_123) throw e_123.error; } - } - if (matchedNormalizedPrefix) { - if (state.traceEnabled) { - trace(state.host, Diagnostics.Longest_matching_prefix_for_0_is_1, candidate, matchedNormalizedPrefix); - } - var suffix = candidate.substr(matchedNormalizedPrefix.length); - if (state.traceEnabled) { - trace(state.host, Diagnostics.Loading_0_from_the_root_dir_1_candidate_location_2, suffix, matchedNormalizedPrefix, candidate); - } - var resolvedFileName = loader(extensions, candidate, !directoryProbablyExists(containingDirectory, state.host), state); - if (resolvedFileName) { - return resolvedFileName; - } - if (state.traceEnabled) { - trace(state.host, Diagnostics.Trying_other_entries_in_rootDirs); - } - try { - for (var _x = __values(state.compilerOptions.rootDirs), _y = _x.next(); !_y.done; _y = _x.next()) { - var rootDir = _y.value; - if (rootDir === matchedRootDir) { - continue; - } - var candidate2 = combinePaths(normalizePath(rootDir), suffix); - if (state.traceEnabled) { - trace(state.host, Diagnostics.Loading_0_from_the_root_dir_1_candidate_location_2, suffix, rootDir, candidate2); - } - var baseDirectory = getDirectoryPath(candidate2); - var resolvedFileName2 = loader(extensions, candidate2, !directoryProbablyExists(baseDirectory, state.host), state); - if (resolvedFileName2) { - return resolvedFileName2; - } - } - } - catch (e_124_1) { e_124 = { error: e_124_1 }; } - finally { - try { - if (_y && !_y.done && (_u = _x.return)) _u.call(_x); - } - finally { if (e_124) throw e_124.error; } - } - if (state.traceEnabled) { - trace(state.host, Diagnostics.Module_resolution_using_rootDirs_has_failed); - } - } - return void 0; -} -function tryLoadModuleUsingBaseUrl(extensions, moduleName, loader, state) { - var baseUrl = state.compilerOptions.baseUrl; - if (!baseUrl) { - return void 0; - } - if (state.traceEnabled) { - trace(state.host, Diagnostics.baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1, baseUrl, moduleName); - } - var candidate = normalizePath(combinePaths(baseUrl, moduleName)); - if (state.traceEnabled) { - trace(state.host, Diagnostics.Resolving_module_name_0_relative_to_base_url_1_2, moduleName, baseUrl, candidate); - } - return loader(extensions, candidate, !directoryProbablyExists(getDirectoryPath(candidate), state.host), state); -} -function resolveJSModule(moduleName, initialDir, host) { - var _t = tryResolveJSModuleWorker(moduleName, initialDir, host), resolvedModule = _t.resolvedModule, failedLookupLocations = _t.failedLookupLocations; - if (!resolvedModule) { - throw new Error("Could not resolve JS module '".concat(moduleName, "' starting at '").concat(initialDir, "'. Looked in: ").concat(failedLookupLocations == null ? void 0 : failedLookupLocations.join(", "))); - } - return resolvedModule.resolvedFileName; -} -var NodeResolutionFeatures = /* @__PURE__ */ (function (NodeResolutionFeatures2) { - NodeResolutionFeatures2[NodeResolutionFeatures2["None"] = 0] = "None"; - NodeResolutionFeatures2[NodeResolutionFeatures2["Imports"] = 2] = "Imports"; - NodeResolutionFeatures2[NodeResolutionFeatures2["SelfName"] = 4] = "SelfName"; - NodeResolutionFeatures2[NodeResolutionFeatures2["Exports"] = 8] = "Exports"; - NodeResolutionFeatures2[NodeResolutionFeatures2["ExportsPatternTrailers"] = 16] = "ExportsPatternTrailers"; - NodeResolutionFeatures2[NodeResolutionFeatures2["AllFeatures"] = 30] = "AllFeatures"; - NodeResolutionFeatures2[NodeResolutionFeatures2["Node16Default"] = 30] = "Node16Default"; - NodeResolutionFeatures2[NodeResolutionFeatures2["NodeNextDefault"] = 30 /* AllFeatures */] = "NodeNextDefault"; - NodeResolutionFeatures2[NodeResolutionFeatures2["BundlerDefault"] = 30] = "BundlerDefault"; - NodeResolutionFeatures2[NodeResolutionFeatures2["EsmMode"] = 32] = "EsmMode"; - return NodeResolutionFeatures2; -})(NodeResolutionFeatures || {}); -function node16ModuleNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference, resolutionMode) { - return nodeNextModuleNameResolverWorker(30 /* Node16Default */, moduleName, containingFile, compilerOptions, host, cache, redirectedReference, resolutionMode); -} -function nodeNextModuleNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference, resolutionMode) { - return nodeNextModuleNameResolverWorker(30 /* NodeNextDefault */, moduleName, containingFile, compilerOptions, host, cache, redirectedReference, resolutionMode); -} -function nodeNextModuleNameResolverWorker(features, moduleName, containingFile, compilerOptions, host, cache, redirectedReference, resolutionMode) { - var containingDirectory = getDirectoryPath(containingFile); - var esmMode = resolutionMode === 99 /* ESNext */ ? 32 /* EsmMode */ : 0; - var extensions = compilerOptions.noDtsResolution ? 3 /* ImplementationFiles */ : 1 /* TypeScript */ | 2 /* JavaScript */ | 4 /* Declaration */; - if (getResolveJsonModule(compilerOptions)) { - extensions |= 8 /* Json */; - } - return nodeModuleNameResolverWorker(features | esmMode, moduleName, containingDirectory, compilerOptions, host, cache, extensions, - /*isConfigLookup*/ - false, redirectedReference); -} -function tryResolveJSModuleWorker(moduleName, initialDir, host) { - return nodeModuleNameResolverWorker(0 /* None */, moduleName, initialDir, { moduleResolution: 2 /* Node10 */, allowJs: true }, host, - /*cache*/ - void 0, 2 /* JavaScript */, - /*isConfigLookup*/ - false, - /*redirectedReference*/ - void 0); -} -function bundlerModuleNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference) { - var containingDirectory = getDirectoryPath(containingFile); - var extensions = compilerOptions.noDtsResolution ? 3 /* ImplementationFiles */ : 1 /* TypeScript */ | 2 /* JavaScript */ | 4 /* Declaration */; - if (getResolveJsonModule(compilerOptions)) { - extensions |= 8 /* Json */; - } - return nodeModuleNameResolverWorker(getNodeResolutionFeatures(compilerOptions), moduleName, containingDirectory, compilerOptions, host, cache, extensions, - /*isConfigLookup*/ - false, redirectedReference); -} -function nodeModuleNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference, isConfigLookup) { - var extensions; - if (isConfigLookup) { - extensions = 8 /* Json */; - } - else if (compilerOptions.noDtsResolution) { - extensions = 3 /* ImplementationFiles */; - if (getResolveJsonModule(compilerOptions)) - extensions |= 8 /* Json */; - } - else { - extensions = getResolveJsonModule(compilerOptions) ? 1 /* TypeScript */ | 2 /* JavaScript */ | 4 /* Declaration */ | 8 /* Json */ : 1 /* TypeScript */ | 2 /* JavaScript */ | 4 /* Declaration */; - } - return nodeModuleNameResolverWorker(0 /* None */, moduleName, getDirectoryPath(containingFile), compilerOptions, host, cache, extensions, !!isConfigLookup, redirectedReference); -} -function nodeNextJsonConfigResolver(moduleName, containingFile, host) { - return nodeModuleNameResolverWorker(30 /* NodeNextDefault */, moduleName, getDirectoryPath(containingFile), { moduleResolution: 99 /* NodeNext */ }, host, - /*cache*/ - void 0, 8 /* Json */, - /*isConfigLookup*/ - true, - /*redirectedReference*/ - void 0); -} -function nodeModuleNameResolverWorker(features, moduleName, containingDirectory, compilerOptions, host, cache, extensions, isConfigLookup, redirectedReference) { - var _a, _b, _c, _d; - var traceEnabled = isTraceEnabled(compilerOptions, host); - var failedLookupLocations = []; - var affectingLocations = []; - var conditions = getConditions(compilerOptions, !!(features & 32 /* EsmMode */)); - var diagnostics = []; - var state = { - compilerOptions: compilerOptions, - host: host, - traceEnabled: traceEnabled, - failedLookupLocations: failedLookupLocations, - affectingLocations: affectingLocations, - packageJsonInfoCache: cache, - features: features, - conditions: conditions, - requestContainingDirectory: containingDirectory, - reportDiagnostic: function (diag2) { return void diagnostics.push(diag2); }, - isConfigLookup: isConfigLookup, - candidateIsFromPackageJsonField: false - }; - if (traceEnabled && moduleResolutionSupportsPackageJsonExportsAndImports(getEmitModuleResolutionKind(compilerOptions))) { - trace(host, Diagnostics.Resolving_in_0_mode_with_conditions_1, features & 32 /* EsmMode */ ? "ESM" : "CJS", conditions.map(function (c) { return "'".concat(c, "'"); }).join(", ")); - } - var result; - if (getEmitModuleResolutionKind(compilerOptions) === 2 /* Node10 */) { - var priorityExtensions = extensions & (1 /* TypeScript */ | 4 /* Declaration */); - var secondaryExtensions = extensions & ~(1 /* TypeScript */ | 4 /* Declaration */); - result = priorityExtensions && tryResolve(priorityExtensions, state) || secondaryExtensions && tryResolve(secondaryExtensions, state) || void 0; - } - else { - result = tryResolve(extensions, state); - } - var legacyResult; - if (((_a = result == null ? void 0 : result.value) == null ? void 0 : _a.isExternalLibraryImport) && !isConfigLookup && extensions & (1 /* TypeScript */ | 4 /* Declaration */) && features & 8 /* Exports */ && !isExternalModuleNameRelative(moduleName) && !extensionIsOk(1 /* TypeScript */ | 4 /* Declaration */, result.value.resolved.extension) && conditions.indexOf("import") > -1) { - traceIfEnabled(state, Diagnostics.Resolution_of_non_relative_name_failed_trying_with_modern_Node_resolution_features_disabled_to_see_if_npm_library_needs_configuration_update); - var diagnosticState = __assign(__assign({}, state), { features: state.features & ~8 /* Exports */, reportDiagnostic: noop }); - var diagnosticResult = tryResolve(extensions & (1 /* TypeScript */ | 4 /* Declaration */), diagnosticState); - if ((_b = diagnosticResult == null ? void 0 : diagnosticResult.value) == null ? void 0 : _b.isExternalLibraryImport) { - legacyResult = diagnosticResult.value.resolved.path; - } - } - return createResolvedModuleWithFailedLookupLocationsHandlingSymlink(moduleName, (_c = result == null ? void 0 : result.value) == null ? void 0 : _c.resolved, (_d = result == null ? void 0 : result.value) == null ? void 0 : _d.isExternalLibraryImport, failedLookupLocations, affectingLocations, diagnostics, state, legacyResult); - function tryResolve(extensions2, state2) { - var loader = function (extensions3, candidate, onlyRecordFailures, state3) { return nodeLoadModuleByRelativeName(extensions3, candidate, onlyRecordFailures, state3, - /*considerPackageJson*/ - true); }; - var resolved = tryLoadModuleUsingOptionalResolutionSettings(extensions2, moduleName, containingDirectory, loader, state2); - if (resolved) { - return toSearchResult({ resolved: resolved, isExternalLibraryImport: pathContainsNodeModules(resolved.path) }); - } - if (!isExternalModuleNameRelative(moduleName)) { - var resolved2 = void 0; - if (features & 2 /* Imports */ && startsWith(moduleName, "#")) { - resolved2 = loadModuleFromImports(extensions2, moduleName, containingDirectory, state2, cache, redirectedReference); - } - if (!resolved2 && features & 4 /* SelfName */) { - resolved2 = loadModuleFromSelfNameReference(extensions2, moduleName, containingDirectory, state2, cache, redirectedReference); - } - if (!resolved2) { - if (moduleName.indexOf(":") > -1) { - if (traceEnabled) { - trace(host, Diagnostics.Skipping_module_0_that_looks_like_an_absolute_URI_target_file_types_Colon_1, moduleName, formatExtensions(extensions2)); - } - return void 0; - } - if (traceEnabled) { - trace(host, Diagnostics.Loading_module_0_from_node_modules_folder_target_file_types_Colon_1, moduleName, formatExtensions(extensions2)); - } - resolved2 = loadModuleFromNearestNodeModulesDirectory(extensions2, moduleName, containingDirectory, state2, cache, redirectedReference); - } - if (extensions2 & 4 /* Declaration */) { - resolved2 !== null && resolved2 !== void 0 ? resolved2 : (resolved2 = resolveFromTypeRoot(moduleName, state2)); - } - return resolved2 && { value: resolved2.value && { resolved: resolved2.value, isExternalLibraryImport: true } }; - } - else { - var _t = normalizePathForCJSResolution(containingDirectory, moduleName), candidate = _t.path, parts = _t.parts; - var resolved2 = nodeLoadModuleByRelativeName(extensions2, candidate, - /*onlyRecordFailures*/ - false, state2, - /*considerPackageJson*/ - true); - return resolved2 && toSearchResult({ resolved: resolved2, isExternalLibraryImport: contains(parts, "node_modules") }); - } - } -} -function normalizePathForCJSResolution(containingDirectory, moduleName) { - var combined = combinePaths(containingDirectory, moduleName); - var parts = getPathComponents(combined); - var lastPart = lastOrUndefined(parts); - var path = lastPart === "." || lastPart === ".." ? ensureTrailingDirectorySeparator(normalizePath(combined)) : normalizePath(combined); - return { path: path, parts: parts }; -} -function realPath(path, host, traceEnabled) { - if (!host.realpath) { - return path; - } - var real = normalizePath(host.realpath(path)); - if (traceEnabled) { - trace(host, Diagnostics.Resolving_real_path_for_0_result_1, path, real); - } - Debug.assert(host.fileExists(real), "".concat(path, " linked to nonexistent file ").concat(real)); - return real; -} -function nodeLoadModuleByRelativeName(extensions, candidate, onlyRecordFailures, state, considerPackageJson) { - if (state.traceEnabled) { - trace(state.host, Diagnostics.Loading_module_as_file_Slash_folder_candidate_module_location_0_target_file_types_Colon_1, candidate, formatExtensions(extensions)); - } - if (!hasTrailingDirectorySeparator(candidate)) { - if (!onlyRecordFailures) { - var parentOfCandidate = getDirectoryPath(candidate); - if (!directoryProbablyExists(parentOfCandidate, state.host)) { - if (state.traceEnabled) { - trace(state.host, Diagnostics.Directory_0_does_not_exist_skipping_all_lookups_in_it, parentOfCandidate); - } - onlyRecordFailures = true; - } - } - var resolvedFromFile = loadModuleFromFile(extensions, candidate, onlyRecordFailures, state); - if (resolvedFromFile) { - var packageDirectory = considerPackageJson ? parseNodeModuleFromPath(resolvedFromFile.path) : void 0; - var packageInfo = packageDirectory ? getPackageJsonInfo(packageDirectory, - /*onlyRecordFailures*/ - false, state) : void 0; - return withPackageId(packageInfo, resolvedFromFile); - } - } - if (!onlyRecordFailures) { - var candidateExists = directoryProbablyExists(candidate, state.host); - if (!candidateExists) { - if (state.traceEnabled) { - trace(state.host, Diagnostics.Directory_0_does_not_exist_skipping_all_lookups_in_it, candidate); - } - onlyRecordFailures = true; - } - } - if (!(state.features & 32 /* EsmMode */)) { - return loadNodeModuleFromDirectory(extensions, candidate, onlyRecordFailures, state, considerPackageJson); - } - return void 0; -} -var nodeModulesPathPart = "/node_modules/"; -function pathContainsNodeModules(path) { - return stringContains(path, nodeModulesPathPart); -} -function parseNodeModuleFromPath(resolved, isFolder) { - var path = normalizePath(resolved); - var idx = path.lastIndexOf(nodeModulesPathPart); - if (idx === -1) { - return void 0; - } - var indexAfterNodeModules = idx + nodeModulesPathPart.length; - var indexAfterPackageName = moveToNextDirectorySeparatorIfAvailable(path, indexAfterNodeModules, isFolder); - if (path.charCodeAt(indexAfterNodeModules) === 64 /* at */) { - indexAfterPackageName = moveToNextDirectorySeparatorIfAvailable(path, indexAfterPackageName, isFolder); - } - return path.slice(0, indexAfterPackageName); -} -function moveToNextDirectorySeparatorIfAvailable(path, prevSeparatorIndex, isFolder) { - var nextSeparatorIndex = path.indexOf(directorySeparator, prevSeparatorIndex + 1); - return nextSeparatorIndex === -1 ? isFolder ? path.length : prevSeparatorIndex : nextSeparatorIndex; -} -function loadModuleFromFileNoPackageId(extensions, candidate, onlyRecordFailures, state) { - return noPackageId(loadModuleFromFile(extensions, candidate, onlyRecordFailures, state)); -} -function loadModuleFromFile(extensions, candidate, onlyRecordFailures, state) { - var resolvedByReplacingExtension = loadModuleFromFileNoImplicitExtensions(extensions, candidate, onlyRecordFailures, state); - if (resolvedByReplacingExtension) { - return resolvedByReplacingExtension; - } - if (!(state.features & 32 /* EsmMode */)) { - var resolvedByAddingExtension = tryAddingExtensions(candidate, extensions, "", onlyRecordFailures, state); - if (resolvedByAddingExtension) { - return resolvedByAddingExtension; - } - } -} -function loadModuleFromFileNoImplicitExtensions(extensions, candidate, onlyRecordFailures, state) { - var filename = getBaseFileName(candidate); - if (filename.indexOf(".") === -1) { - return void 0; - } - var extensionless = removeFileExtension(candidate); - if (extensionless === candidate) { - extensionless = candidate.substring(0, candidate.lastIndexOf(".")); - } - var extension = candidate.substring(extensionless.length); - if (state.traceEnabled) { - trace(state.host, Diagnostics.File_name_0_has_a_1_extension_stripping_it, candidate, extension); - } - return tryAddingExtensions(extensionless, extensions, extension, onlyRecordFailures, state); -} -function loadFileNameFromPackageJsonField(extensions, candidate, onlyRecordFailures, state) { - if (extensions & 1 /* TypeScript */ && fileExtensionIsOneOf(candidate, supportedTSImplementationExtensions) || extensions & 4 /* Declaration */ && fileExtensionIsOneOf(candidate, supportedDeclarationExtensions)) { - var result = tryFile(candidate, onlyRecordFailures, state); - return result !== void 0 ? { path: candidate, ext: tryExtractTSExtension(candidate), resolvedUsingTsExtension: void 0 } : void 0; - } - if (state.isConfigLookup && extensions === 8 /* Json */ && fileExtensionIs(candidate, ".json" /* Json */)) { - var result = tryFile(candidate, onlyRecordFailures, state); - return result !== void 0 ? { path: candidate, ext: ".json" /* Json */, resolvedUsingTsExtension: void 0 } : void 0; - } - return loadModuleFromFileNoImplicitExtensions(extensions, candidate, onlyRecordFailures, state); -} -function tryAddingExtensions(candidate, extensions, originalExtension, onlyRecordFailures, state) { - if (!onlyRecordFailures) { - var directory = getDirectoryPath(candidate); - if (directory) { - onlyRecordFailures = !directoryProbablyExists(directory, state.host); - } - } - switch (originalExtension) { - case ".mjs" /* Mjs */: - case ".mts" /* Mts */: - case ".d.mts" /* Dmts */: - return extensions & 1 /* TypeScript */ && tryExtension(".mts" /* Mts */, originalExtension === ".mts" /* Mts */ || originalExtension === ".d.mts" /* Dmts */) || extensions & 4 /* Declaration */ && tryExtension(".d.mts" /* Dmts */, originalExtension === ".mts" /* Mts */ || originalExtension === ".d.mts" /* Dmts */) || extensions & 2 /* JavaScript */ && tryExtension(".mjs" /* Mjs */) || void 0; - case ".cjs" /* Cjs */: - case ".cts" /* Cts */: - case ".d.cts" /* Dcts */: - return extensions & 1 /* TypeScript */ && tryExtension(".cts" /* Cts */, originalExtension === ".cts" /* Cts */ || originalExtension === ".d.cts" /* Dcts */) || extensions & 4 /* Declaration */ && tryExtension(".d.cts" /* Dcts */, originalExtension === ".cts" /* Cts */ || originalExtension === ".d.cts" /* Dcts */) || extensions & 2 /* JavaScript */ && tryExtension(".cjs" /* Cjs */) || void 0; - case ".json" /* Json */: - return extensions & 4 /* Declaration */ && tryExtension(".d.json.ts") || extensions & 8 /* Json */ && tryExtension(".json" /* Json */) || void 0; - case ".tsx" /* Tsx */: - case ".jsx" /* Jsx */: - return extensions & 1 /* TypeScript */ && (tryExtension(".tsx" /* Tsx */, originalExtension === ".tsx" /* Tsx */) || tryExtension(".ts" /* Ts */, originalExtension === ".tsx" /* Tsx */)) || extensions & 4 /* Declaration */ && tryExtension(".d.ts" /* Dts */, originalExtension === ".tsx" /* Tsx */) || extensions & 2 /* JavaScript */ && (tryExtension(".jsx" /* Jsx */) || tryExtension(".js" /* Js */)) || void 0; - case ".ts" /* Ts */: - case ".d.ts" /* Dts */: - case ".js" /* Js */: - case "": - return extensions & 1 /* TypeScript */ && (tryExtension(".ts" /* Ts */, originalExtension === ".ts" /* Ts */ || originalExtension === ".d.ts" /* Dts */) || tryExtension(".tsx" /* Tsx */, originalExtension === ".ts" /* Ts */ || originalExtension === ".d.ts" /* Dts */)) || extensions & 4 /* Declaration */ && tryExtension(".d.ts" /* Dts */, originalExtension === ".ts" /* Ts */ || originalExtension === ".d.ts" /* Dts */) || extensions & 2 /* JavaScript */ && (tryExtension(".js" /* Js */) || tryExtension(".jsx" /* Jsx */)) || state.isConfigLookup && tryExtension(".json" /* Json */) || void 0; - default: - return extensions & 4 /* Declaration */ && !isDeclarationFileName(candidate + originalExtension) && tryExtension(".d".concat(originalExtension, ".ts")) || void 0; - } - function tryExtension(ext, resolvedUsingTsExtension) { - var path = tryFile(candidate + ext, onlyRecordFailures, state); - return path === void 0 ? void 0 : { path: path, ext: ext, resolvedUsingTsExtension: !state.candidateIsFromPackageJsonField && resolvedUsingTsExtension }; - } -} -function tryFile(fileName, onlyRecordFailures, state) { - var _t; - var _a; - if (!((_a = state.compilerOptions.moduleSuffixes) == null ? void 0 : _a.length)) { - return tryFileLookup(fileName, onlyRecordFailures, state); - } - var ext = (_t = tryGetExtensionFromPath2(fileName)) !== null && _t !== void 0 ? _t : ""; - var fileNameNoExtension = ext ? removeExtension(fileName, ext) : fileName; - return forEach(state.compilerOptions.moduleSuffixes, function (suffix) { return tryFileLookup(fileNameNoExtension + suffix + ext, onlyRecordFailures, state); }); -} -function tryFileLookup(fileName, onlyRecordFailures, state) { - var _a; - if (!onlyRecordFailures) { - if (state.host.fileExists(fileName)) { - if (state.traceEnabled) { - trace(state.host, Diagnostics.File_0_exists_use_it_as_a_name_resolution_result, fileName); - } - return fileName; - } - else { - if (state.traceEnabled) { - trace(state.host, Diagnostics.File_0_does_not_exist, fileName); - } - } - } - (_a = state.failedLookupLocations) == null ? void 0 : _a.push(fileName); - return void 0; -} -function loadNodeModuleFromDirectory(extensions, candidate, onlyRecordFailures, state, considerPackageJson) { - if (considerPackageJson === void 0) { considerPackageJson = true; } - var packageInfo = considerPackageJson ? getPackageJsonInfo(candidate, onlyRecordFailures, state) : void 0; - var packageJsonContent = packageInfo && packageInfo.contents.packageJsonContent; - var versionPaths = packageInfo && getVersionPathsOfPackageJsonInfo(packageInfo, state); - return withPackageId(packageInfo, loadNodeModuleFromDirectoryWorker(extensions, candidate, onlyRecordFailures, state, packageJsonContent, versionPaths)); -} -function getEntrypointsFromPackageJsonInfo(packageJsonInfo, options, host, cache, resolveJs) { - var e_125, _t, e_126, _u; - if (!resolveJs && packageJsonInfo.contents.resolvedEntrypoints !== void 0) { - return packageJsonInfo.contents.resolvedEntrypoints; - } - var entrypoints; - var extensions = 1 /* TypeScript */ | 4 /* Declaration */ | (resolveJs ? 2 /* JavaScript */ : 0); - var features = getNodeResolutionFeatures(options); - var loadPackageJsonMainState = getTemporaryModuleResolutionState(cache == null ? void 0 : cache.getPackageJsonInfoCache(), host, options); - loadPackageJsonMainState.conditions = getConditions(options); - loadPackageJsonMainState.requestContainingDirectory = packageJsonInfo.packageDirectory; - var mainResolution = loadNodeModuleFromDirectoryWorker(extensions, packageJsonInfo.packageDirectory, - /*onlyRecordFailures*/ - false, loadPackageJsonMainState, packageJsonInfo.contents.packageJsonContent, getVersionPathsOfPackageJsonInfo(packageJsonInfo, loadPackageJsonMainState)); - entrypoints = append(entrypoints, mainResolution == null ? void 0 : mainResolution.path); - if (features & 8 /* Exports */ && packageJsonInfo.contents.packageJsonContent.exports) { - var conditionSets = deduplicate([getConditions(options, - /*esmMode*/ - true), getConditions(options, - /*esmMode*/ - false)], arrayIsEqualTo); - try { - for (var conditionSets_1 = __values(conditionSets), conditionSets_1_1 = conditionSets_1.next(); !conditionSets_1_1.done; conditionSets_1_1 = conditionSets_1.next()) { - var conditions = conditionSets_1_1.value; - var loadPackageJsonExportsState = __assign(__assign({}, loadPackageJsonMainState), { failedLookupLocations: [], conditions: conditions, host: host }); - var exportResolutions = loadEntrypointsFromExportMap(packageJsonInfo, packageJsonInfo.contents.packageJsonContent.exports, loadPackageJsonExportsState, extensions); - if (exportResolutions) { - try { - for (var exportResolutions_1 = (e_126 = void 0, __values(exportResolutions)), exportResolutions_1_1 = exportResolutions_1.next(); !exportResolutions_1_1.done; exportResolutions_1_1 = exportResolutions_1.next()) { - var resolution = exportResolutions_1_1.value; - entrypoints = appendIfUnique(entrypoints, resolution.path); - } - } - catch (e_126_1) { e_126 = { error: e_126_1 }; } - finally { - try { - if (exportResolutions_1_1 && !exportResolutions_1_1.done && (_u = exportResolutions_1.return)) _u.call(exportResolutions_1); - } - finally { if (e_126) throw e_126.error; } - } - } - } - } - catch (e_125_1) { e_125 = { error: e_125_1 }; } - finally { - try { - if (conditionSets_1_1 && !conditionSets_1_1.done && (_t = conditionSets_1.return)) _t.call(conditionSets_1); - } - finally { if (e_125) throw e_125.error; } - } - } - return packageJsonInfo.contents.resolvedEntrypoints = entrypoints || false; -} -function loadEntrypointsFromExportMap(scope, exports, state, extensions) { - var e_127, _t; - var entrypoints; - if (isArray(exports)) { - try { - for (var exports_1 = __values(exports), exports_1_1 = exports_1.next(); !exports_1_1.done; exports_1_1 = exports_1.next()) { - var target = exports_1_1.value; - loadEntrypointsFromTargetExports(target); - } - } - catch (e_127_1) { e_127 = { error: e_127_1 }; } - finally { - try { - if (exports_1_1 && !exports_1_1.done && (_t = exports_1.return)) _t.call(exports_1); - } - finally { if (e_127) throw e_127.error; } - } - } - else if (typeof exports === "object" && exports !== null && allKeysStartWithDot(exports)) { - for (var key in exports) { - loadEntrypointsFromTargetExports(exports[key]); - } - } - else { - loadEntrypointsFromTargetExports(exports); - } - return entrypoints; - function loadEntrypointsFromTargetExports(target) { - var e_128, _t; - var _a, _b; - if (typeof target === "string" && startsWith(target, "./")) { - if (target.indexOf("*") >= 0 && state.host.readDirectory) { - if (target.indexOf("*") !== target.lastIndexOf("*")) { - return false; - } - state.host.readDirectory(scope.packageDirectory, extensionsToExtensionsArray(extensions), - /*excludes*/ - void 0, [changeAnyExtension(target.replace("*", "**/*"), getDeclarationEmitExtensionForPath(target))]).forEach(function (entry) { - entrypoints = appendIfUnique(entrypoints, { - path: entry, - ext: getAnyExtensionFromPath(entry), - resolvedUsingTsExtension: void 0 - }); - }); - } - else { - var partsAfterFirst = getPathComponents(target).slice(2); - if (partsAfterFirst.indexOf("..") >= 0 || partsAfterFirst.indexOf(".") >= 0 || partsAfterFirst.indexOf("node_modules") >= 0) { - return false; - } - var resolvedTarget = combinePaths(scope.packageDirectory, target); - var finalPath = getNormalizedAbsolutePath(resolvedTarget, (_b = (_a = state.host).getCurrentDirectory) == null ? void 0 : _b.call(_a)); - var result = loadFileNameFromPackageJsonField(extensions, finalPath, - /*onlyRecordFailures*/ - false, state); - if (result) { - entrypoints = appendIfUnique(entrypoints, result, function (a, b) { return a.path === b.path; }); - return true; - } - } - } - else if (Array.isArray(target)) { - try { - for (var target_1 = __values(target), target_1_1 = target_1.next(); !target_1_1.done; target_1_1 = target_1.next()) { - var t = target_1_1.value; - var success = loadEntrypointsFromTargetExports(t); - if (success) { - return true; - } - } - } - catch (e_128_1) { e_128 = { error: e_128_1 }; } - finally { - try { - if (target_1_1 && !target_1_1.done && (_t = target_1.return)) _t.call(target_1); - } - finally { if (e_128) throw e_128.error; } - } - } - else if (typeof target === "object" && target !== null) { - return forEach(getOwnKeys(target), function (key) { - if (key === "default" || contains(state.conditions, key) || isApplicableVersionedTypesKey(state.conditions, key)) { - loadEntrypointsFromTargetExports(target[key]); - return true; - } - }); - } - } -} -function getTemporaryModuleResolutionState(packageJsonInfoCache, host, options) { - return { - host: host, - compilerOptions: options, - traceEnabled: isTraceEnabled(options, host), - failedLookupLocations: void 0, - affectingLocations: void 0, - packageJsonInfoCache: packageJsonInfoCache, - features: 0 /* None */, - conditions: emptyArray, - requestContainingDirectory: void 0, - reportDiagnostic: noop, - isConfigLookup: false, - candidateIsFromPackageJsonField: false - }; -} -function getPackageScopeForPath(fileName, state) { - var parts = getPathComponents(fileName); - parts.pop(); - while (parts.length > 0) { - var pkg = getPackageJsonInfo(getPathFromPathComponents(parts), - /*onlyRecordFailures*/ - false, state); - if (pkg) { - return pkg; - } - parts.pop(); - } - return void 0; -} -function getVersionPathsOfPackageJsonInfo(packageJsonInfo, state) { - if (packageJsonInfo.contents.versionPaths === void 0) { - packageJsonInfo.contents.versionPaths = readPackageJsonTypesVersionPaths(packageJsonInfo.contents.packageJsonContent, state) || false; - } - return packageJsonInfo.contents.versionPaths || void 0; -} -function getPackageJsonInfo(packageDirectory, onlyRecordFailures, state) { - var _a, _b, _c, _d, _e, _f, _g, _h; - var host = state.host, traceEnabled = state.traceEnabled; - var packageJsonPath = combinePaths(packageDirectory, "package.json"); - if (onlyRecordFailures) { - (_a = state.failedLookupLocations) == null ? void 0 : _a.push(packageJsonPath); - return void 0; - } - var existing = (_b = state.packageJsonInfoCache) == null ? void 0 : _b.getPackageJsonInfo(packageJsonPath); - if (existing !== void 0) { - if (typeof existing !== "boolean") { - if (traceEnabled) - trace(host, Diagnostics.File_0_exists_according_to_earlier_cached_lookups, packageJsonPath); - (_c = state.affectingLocations) == null ? void 0 : _c.push(packageJsonPath); - return existing.packageDirectory === packageDirectory ? existing : { packageDirectory: packageDirectory, contents: existing.contents }; - } - else { - if (existing && traceEnabled) - trace(host, Diagnostics.File_0_does_not_exist_according_to_earlier_cached_lookups, packageJsonPath); - (_d = state.failedLookupLocations) == null ? void 0 : _d.push(packageJsonPath); - return void 0; - } - } - var directoryExists = directoryProbablyExists(packageDirectory, host); - if (directoryExists && host.fileExists(packageJsonPath)) { - var packageJsonContent = readJson(packageJsonPath, host); - if (traceEnabled) { - trace(host, Diagnostics.Found_package_json_at_0, packageJsonPath); - } - var result = { packageDirectory: packageDirectory, contents: { packageJsonContent: packageJsonContent, versionPaths: void 0, resolvedEntrypoints: void 0 } }; - (_e = state.packageJsonInfoCache) == null ? void 0 : _e.setPackageJsonInfo(packageJsonPath, result); - (_f = state.affectingLocations) == null ? void 0 : _f.push(packageJsonPath); - return result; - } - else { - if (directoryExists && traceEnabled) { - trace(host, Diagnostics.File_0_does_not_exist, packageJsonPath); - } - (_g = state.packageJsonInfoCache) == null ? void 0 : _g.setPackageJsonInfo(packageJsonPath, directoryExists); - (_h = state.failedLookupLocations) == null ? void 0 : _h.push(packageJsonPath); - } -} -function loadNodeModuleFromDirectoryWorker(extensions, candidate, onlyRecordFailures, state, jsonContent, versionPaths) { - var packageFile; - if (jsonContent) { - if (state.isConfigLookup) { - packageFile = readPackageJsonTSConfigField(jsonContent, candidate, state); - } - else { - packageFile = extensions & 4 /* Declaration */ && readPackageJsonTypesFields(jsonContent, candidate, state) || extensions & (3 /* ImplementationFiles */ | 4 /* Declaration */) && readPackageJsonMainField(jsonContent, candidate, state) || void 0; - } - } - var loader = function (extensions2, candidate2, onlyRecordFailures2, state2) { - var fromFile = tryFile(candidate2, onlyRecordFailures2, state2); - if (fromFile) { - var resolved = resolvedIfExtensionMatches(extensions2, fromFile); - if (resolved) { - return noPackageId(resolved); - } - if (state2.traceEnabled) { - trace(state2.host, Diagnostics.File_0_has_an_unsupported_extension_so_skipping_it, fromFile); - } - } - var expandedExtensions = extensions2 === 4 /* Declaration */ ? 1 /* TypeScript */ | 4 /* Declaration */ : extensions2; - var features = state2.features; - var candidateIsFromPackageJsonField = state2.candidateIsFromPackageJsonField; - state2.candidateIsFromPackageJsonField = true; - if ((jsonContent == null ? void 0 : jsonContent.type) !== "module") { - state2.features &= ~32 /* EsmMode */; - } - var result = nodeLoadModuleByRelativeName(expandedExtensions, candidate2, onlyRecordFailures2, state2, - /*considerPackageJson*/ - false); - state2.features = features; - state2.candidateIsFromPackageJsonField = candidateIsFromPackageJsonField; - return result; - }; - var onlyRecordFailuresForPackageFile = packageFile ? !directoryProbablyExists(getDirectoryPath(packageFile), state.host) : void 0; - var onlyRecordFailuresForIndex = onlyRecordFailures || !directoryProbablyExists(candidate, state.host); - var indexPath = combinePaths(candidate, state.isConfigLookup ? "tsconfig" : "index"); - if (versionPaths && (!packageFile || containsPath(candidate, packageFile))) { - var moduleName = getRelativePathFromDirectory(candidate, packageFile || indexPath, - /*ignoreCase*/ - false); - if (state.traceEnabled) { - trace(state.host, Diagnostics.package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_match_module_name_2, versionPaths.version, version, moduleName); - } - var result = tryLoadModuleUsingPaths(extensions, moduleName, candidate, versionPaths.paths, - /*pathPatterns*/ - void 0, loader, onlyRecordFailuresForPackageFile || onlyRecordFailuresForIndex, state); - if (result) { - return removeIgnoredPackageId(result.value); - } - } - var packageFileResult = packageFile && removeIgnoredPackageId(loader(extensions, packageFile, onlyRecordFailuresForPackageFile, state)); - if (packageFileResult) - return packageFileResult; - if (!(state.features & 32 /* EsmMode */)) { - return loadModuleFromFile(extensions, indexPath, onlyRecordFailuresForIndex, state); - } -} -function resolvedIfExtensionMatches(extensions, path, resolvedUsingTsExtension) { - var ext = tryGetExtensionFromPath2(path); - return ext !== void 0 && extensionIsOk(extensions, ext) ? { path: path, ext: ext, resolvedUsingTsExtension: resolvedUsingTsExtension } : void 0; -} -function extensionIsOk(extensions, extension) { - return extensions & 2 /* JavaScript */ && (extension === ".js" /* Js */ || extension === ".jsx" /* Jsx */ || extension === ".mjs" /* Mjs */ || extension === ".cjs" /* Cjs */) || extensions & 1 /* TypeScript */ && (extension === ".ts" /* Ts */ || extension === ".tsx" /* Tsx */ || extension === ".mts" /* Mts */ || extension === ".cts" /* Cts */) || extensions & 4 /* Declaration */ && (extension === ".d.ts" /* Dts */ || extension === ".d.mts" /* Dmts */ || extension === ".d.cts" /* Dcts */) || extensions & 8 /* Json */ && extension === ".json" /* Json */ || false; -} -function parsePackageName(moduleName) { - var idx = moduleName.indexOf(directorySeparator); - if (moduleName[0] === "@") { - idx = moduleName.indexOf(directorySeparator, idx + 1); - } - return idx === -1 ? { packageName: moduleName, rest: "" } : { packageName: moduleName.slice(0, idx), rest: moduleName.slice(idx + 1) }; -} -function allKeysStartWithDot(obj) { - return every(getOwnKeys(obj), function (k) { return startsWith(k, "."); }); -} -function noKeyStartsWithDot(obj) { - return !some(getOwnKeys(obj), function (k) { return startsWith(k, "."); }); -} -function loadModuleFromSelfNameReference(extensions, moduleName, directory, state, cache, redirectedReference) { - var _a, _b; - var directoryPath = getNormalizedAbsolutePath(combinePaths(directory, "dummy"), (_b = (_a = state.host).getCurrentDirectory) == null ? void 0 : _b.call(_a)); - var scope = getPackageScopeForPath(directoryPath, state); - if (!scope || !scope.contents.packageJsonContent.exports) { - return void 0; - } - if (typeof scope.contents.packageJsonContent.name !== "string") { - return void 0; - } - var parts = getPathComponents(moduleName); - var nameParts = getPathComponents(scope.contents.packageJsonContent.name); - if (!every(nameParts, function (p, i) { return parts[i] === p; })) { - return void 0; - } - var trailingParts = parts.slice(nameParts.length); - var subpath = !length(trailingParts) ? "." : ".".concat(directorySeparator).concat(trailingParts.join(directorySeparator)); - if (getAllowJSCompilerOption(state.compilerOptions) && !pathContainsNodeModules(directory)) { - return loadModuleFromExports(scope, extensions, subpath, state, cache, redirectedReference); - } - var priorityExtensions = extensions & (1 /* TypeScript */ | 4 /* Declaration */); - var secondaryExtensions = extensions & ~(1 /* TypeScript */ | 4 /* Declaration */); - return loadModuleFromExports(scope, priorityExtensions, subpath, state, cache, redirectedReference) || loadModuleFromExports(scope, secondaryExtensions, subpath, state, cache, redirectedReference); -} -function loadModuleFromExports(scope, extensions, subpath, state, cache, redirectedReference) { - if (!scope.contents.packageJsonContent.exports) { - return void 0; - } - if (subpath === ".") { - var mainExport = void 0; - if (typeof scope.contents.packageJsonContent.exports === "string" || Array.isArray(scope.contents.packageJsonContent.exports) || typeof scope.contents.packageJsonContent.exports === "object" && noKeyStartsWithDot(scope.contents.packageJsonContent.exports)) { - mainExport = scope.contents.packageJsonContent.exports; - } - else if (hasProperty(scope.contents.packageJsonContent.exports, ".")) { - mainExport = scope.contents.packageJsonContent.exports["."]; - } - if (mainExport) { - var loadModuleFromTargetImportOrExport = getLoadModuleFromTargetImportOrExport(extensions, state, cache, redirectedReference, subpath, scope, - /*isImports*/ - false); - return loadModuleFromTargetImportOrExport(mainExport, "", - /*pattern*/ - false, "."); - } - } - else if (allKeysStartWithDot(scope.contents.packageJsonContent.exports)) { - if (typeof scope.contents.packageJsonContent.exports !== "object") { - if (state.traceEnabled) { - trace(state.host, Diagnostics.Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1, subpath, scope.packageDirectory); - } - return toSearchResult( - /*value*/ - void 0); - } - var result = loadModuleFromImportsOrExports(extensions, state, cache, redirectedReference, subpath, scope.contents.packageJsonContent.exports, scope, - /*isImports*/ - false); - if (result) { - return result; - } - } - if (state.traceEnabled) { - trace(state.host, Diagnostics.Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1, subpath, scope.packageDirectory); - } - return toSearchResult( - /*value*/ - void 0); -} -function loadModuleFromImports(extensions, moduleName, directory, state, cache, redirectedReference) { - var _a, _b; - if (moduleName === "#" || startsWith(moduleName, "#/")) { - if (state.traceEnabled) { - trace(state.host, Diagnostics.Invalid_import_specifier_0_has_no_possible_resolutions, moduleName); - } - return toSearchResult( - /*value*/ - void 0); - } - var directoryPath = getNormalizedAbsolutePath(combinePaths(directory, "dummy"), (_b = (_a = state.host).getCurrentDirectory) == null ? void 0 : _b.call(_a)); - var scope = getPackageScopeForPath(directoryPath, state); - if (!scope) { - if (state.traceEnabled) { - trace(state.host, Diagnostics.Directory_0_has_no_containing_package_json_scope_Imports_will_not_resolve, directoryPath); - } - return toSearchResult( - /*value*/ - void 0); - } - if (!scope.contents.packageJsonContent.imports) { - if (state.traceEnabled) { - trace(state.host, Diagnostics.package_json_scope_0_has_no_imports_defined, scope.packageDirectory); - } - return toSearchResult( - /*value*/ - void 0); - } - var result = loadModuleFromImportsOrExports(extensions, state, cache, redirectedReference, moduleName, scope.contents.packageJsonContent.imports, scope, - /*isImports*/ - true); - if (result) { - return result; - } - if (state.traceEnabled) { - trace(state.host, Diagnostics.Import_specifier_0_does_not_exist_in_package_json_scope_at_path_1, moduleName, scope.packageDirectory); - } - return toSearchResult( - /*value*/ - void 0); -} -function comparePatternKeys(a, b) { - var aPatternIndex = a.indexOf("*"); - var bPatternIndex = b.indexOf("*"); - var baseLenA = aPatternIndex === -1 ? a.length : aPatternIndex + 1; - var baseLenB = bPatternIndex === -1 ? b.length : bPatternIndex + 1; - if (baseLenA > baseLenB) - return -1; - if (baseLenB > baseLenA) - return 1; - if (aPatternIndex === -1) - return 1; - if (bPatternIndex === -1) - return -1; - if (a.length > b.length) - return -1; - if (b.length > a.length) - return 1; - return 0; -} -function loadModuleFromImportsOrExports(extensions, state, cache, redirectedReference, moduleName, lookupTable, scope, isImports) { - var e_129, _t; - var loadModuleFromTargetImportOrExport = getLoadModuleFromTargetImportOrExport(extensions, state, cache, redirectedReference, moduleName, scope, isImports); - if (!endsWith(moduleName, directorySeparator) && moduleName.indexOf("*") === -1 && hasProperty(lookupTable, moduleName)) { - var target = lookupTable[moduleName]; - return loadModuleFromTargetImportOrExport(target, - /*subpath*/ - "", - /*pattern*/ - false, moduleName); - } - var expandingKeys = sort(filter(getOwnKeys(lookupTable), function (k) { return k.indexOf("*") !== -1 || endsWith(k, "/"); }), comparePatternKeys); - try { - for (var expandingKeys_1 = __values(expandingKeys), expandingKeys_1_1 = expandingKeys_1.next(); !expandingKeys_1_1.done; expandingKeys_1_1 = expandingKeys_1.next()) { - var potentialTarget = expandingKeys_1_1.value; - if (state.features & 16 /* ExportsPatternTrailers */ && matchesPatternWithTrailer(potentialTarget, moduleName)) { - var target = lookupTable[potentialTarget]; - var starPos = potentialTarget.indexOf("*"); - var subpath = moduleName.substring(potentialTarget.substring(0, starPos).length, moduleName.length - (potentialTarget.length - 1 - starPos)); - return loadModuleFromTargetImportOrExport(target, subpath, - /*pattern*/ - true, potentialTarget); - } - else if (endsWith(potentialTarget, "*") && startsWith(moduleName, potentialTarget.substring(0, potentialTarget.length - 1))) { - var target = lookupTable[potentialTarget]; - var subpath = moduleName.substring(potentialTarget.length - 1); - return loadModuleFromTargetImportOrExport(target, subpath, - /*pattern*/ - true, potentialTarget); - } - else if (startsWith(moduleName, potentialTarget)) { - var target = lookupTable[potentialTarget]; - var subpath = moduleName.substring(potentialTarget.length); - return loadModuleFromTargetImportOrExport(target, subpath, - /*pattern*/ - false, potentialTarget); - } - } - } - catch (e_129_1) { e_129 = { error: e_129_1 }; } - finally { - try { - if (expandingKeys_1_1 && !expandingKeys_1_1.done && (_t = expandingKeys_1.return)) _t.call(expandingKeys_1); - } - finally { if (e_129) throw e_129.error; } - } - function matchesPatternWithTrailer(target, name) { - if (endsWith(target, "*")) - return false; - var starPos = target.indexOf("*"); - if (starPos === -1) - return false; - return startsWith(name, target.substring(0, starPos)) && endsWith(name, target.substring(starPos + 1)); - } -} -function getLoadModuleFromTargetImportOrExport(extensions, state, cache, redirectedReference, moduleName, scope, isImports) { - return loadModuleFromTargetImportOrExport; - function loadModuleFromTargetImportOrExport(target, subpath, pattern, key) { - var e_130, _t, e_131, _u; - if (typeof target === "string") { - if (!pattern && subpath.length > 0 && !endsWith(target, "/")) { - if (state.traceEnabled) { - trace(state.host, Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1, scope.packageDirectory, moduleName); - } - return toSearchResult( - /*value*/ - void 0); - } - if (!startsWith(target, "./")) { - if (isImports && !startsWith(target, "../") && !startsWith(target, "/") && !isRootedDiskPath(target)) { - var combinedLookup = pattern ? target.replace(/\*/g, subpath) : target + subpath; - traceIfEnabled(state, Diagnostics.Using_0_subpath_1_with_target_2, "imports", key, combinedLookup); - traceIfEnabled(state, Diagnostics.Resolving_module_0_from_1, combinedLookup, scope.packageDirectory + "/"); - var result = nodeModuleNameResolverWorker(state.features, combinedLookup, scope.packageDirectory + "/", state.compilerOptions, state.host, cache, extensions, - /*isConfigLookup*/ - false, redirectedReference); - return toSearchResult(result.resolvedModule ? { - path: result.resolvedModule.resolvedFileName, - extension: result.resolvedModule.extension, - packageId: result.resolvedModule.packageId, - originalPath: result.resolvedModule.originalPath, - resolvedUsingTsExtension: result.resolvedModule.resolvedUsingTsExtension - } : void 0); - } - if (state.traceEnabled) { - trace(state.host, Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1, scope.packageDirectory, moduleName); - } - return toSearchResult( - /*value*/ - void 0); - } - var parts = pathIsRelative(target) ? getPathComponents(target).slice(1) : getPathComponents(target); - var partsAfterFirst = parts.slice(1); - if (partsAfterFirst.indexOf("..") >= 0 || partsAfterFirst.indexOf(".") >= 0 || partsAfterFirst.indexOf("node_modules") >= 0) { - if (state.traceEnabled) { - trace(state.host, Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1, scope.packageDirectory, moduleName); - } - return toSearchResult( - /*value*/ - void 0); - } - var resolvedTarget = combinePaths(scope.packageDirectory, target); - var subpathParts = getPathComponents(subpath); - if (subpathParts.indexOf("..") >= 0 || subpathParts.indexOf(".") >= 0 || subpathParts.indexOf("node_modules") >= 0) { - if (state.traceEnabled) { - trace(state.host, Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1, scope.packageDirectory, moduleName); - } - return toSearchResult( - /*value*/ - void 0); - } - if (state.traceEnabled) { - trace(state.host, Diagnostics.Using_0_subpath_1_with_target_2, isImports ? "imports" : "exports", key, pattern ? target.replace(/\*/g, subpath) : target + subpath); - } - var finalPath = toAbsolutePath(pattern ? resolvedTarget.replace(/\*/g, subpath) : resolvedTarget + subpath); - var inputLink = tryLoadInputFileForPath(finalPath, subpath, combinePaths(scope.packageDirectory, "package.json"), isImports); - if (inputLink) - return inputLink; - return toSearchResult(withPackageId(scope, loadFileNameFromPackageJsonField(extensions, finalPath, - /*onlyRecordFailures*/ - false, state))); - } - else if (typeof target === "object" && target !== null) { - if (!Array.isArray(target)) { - traceIfEnabled(state, Diagnostics.Entering_conditional_exports); - try { - for (var _v = __values(getOwnKeys(target)), _w = _v.next(); !_w.done; _w = _v.next()) { - var condition = _w.value; - if (condition === "default" || state.conditions.indexOf(condition) >= 0 || isApplicableVersionedTypesKey(state.conditions, condition)) { - traceIfEnabled(state, Diagnostics.Matched_0_condition_1, isImports ? "imports" : "exports", condition); - var subTarget = target[condition]; - var result = loadModuleFromTargetImportOrExport(subTarget, subpath, pattern, key); - if (result) { - traceIfEnabled(state, Diagnostics.Resolved_under_condition_0, condition); - traceIfEnabled(state, Diagnostics.Exiting_conditional_exports); - return result; - } - else { - traceIfEnabled(state, Diagnostics.Failed_to_resolve_under_condition_0, condition); - } - } - else { - traceIfEnabled(state, Diagnostics.Saw_non_matching_condition_0, condition); - } - } - } - catch (e_130_1) { e_130 = { error: e_130_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_130) throw e_130.error; } - } - traceIfEnabled(state, Diagnostics.Exiting_conditional_exports); - return void 0; - } - else { - if (!length(target)) { - if (state.traceEnabled) { - trace(state.host, Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1, scope.packageDirectory, moduleName); - } - return toSearchResult( - /*value*/ - void 0); - } - try { - for (var target_2 = __values(target), target_2_1 = target_2.next(); !target_2_1.done; target_2_1 = target_2.next()) { - var elem = target_2_1.value; - var result = loadModuleFromTargetImportOrExport(elem, subpath, pattern, key); - if (result) { - return result; - } - } - } - catch (e_131_1) { e_131 = { error: e_131_1 }; } - finally { - try { - if (target_2_1 && !target_2_1.done && (_u = target_2.return)) _u.call(target_2); - } - finally { if (e_131) throw e_131.error; } - } - } - } - else if (target === null) { - if (state.traceEnabled) { - trace(state.host, Diagnostics.package_json_scope_0_explicitly_maps_specifier_1_to_null, scope.packageDirectory, moduleName); - } - return toSearchResult( - /*value*/ - void 0); - } - if (state.traceEnabled) { - trace(state.host, Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1, scope.packageDirectory, moduleName); - } - return toSearchResult( - /*value*/ - void 0); - function toAbsolutePath(path) { - var _a, _b; - if (path === void 0) - return path; - return getNormalizedAbsolutePath(path, (_b = (_a = state.host).getCurrentDirectory) == null ? void 0 : _b.call(_a)); - } - function combineDirectoryPath(root, dir) { - return ensureTrailingDirectorySeparator(combinePaths(root, dir)); - } - function tryLoadInputFileForPath(finalPath, entry, packagePath, isImports2) { - var e_132, _t, e_133, _u, e_134, _v, e_135, _w; - var _a, _b, _c, _d; - if (!state.isConfigLookup && (state.compilerOptions.declarationDir || state.compilerOptions.outDir) && finalPath.indexOf("/node_modules/") === -1 && (state.compilerOptions.configFile ? containsPath(scope.packageDirectory, toAbsolutePath(state.compilerOptions.configFile.fileName), !useCaseSensitiveFileNames(state)) : true)) { - var getCanonicalFileName = hostGetCanonicalFileName({ useCaseSensitiveFileNames: function () { return useCaseSensitiveFileNames(state); } }); - var commonSourceDirGuesses = []; - if (state.compilerOptions.rootDir || state.compilerOptions.composite && state.compilerOptions.configFilePath) { - var commonDir = toAbsolutePath(getCommonSourceDirectory(state.compilerOptions, function () { return []; }, ((_b = (_a = state.host).getCurrentDirectory) == null ? void 0 : _b.call(_a)) || "", getCanonicalFileName)); - commonSourceDirGuesses.push(commonDir); - } - else if (state.requestContainingDirectory) { - var requestingFile_1 = toAbsolutePath(combinePaths(state.requestContainingDirectory, "index.ts")); - var commonDir = toAbsolutePath(getCommonSourceDirectory(state.compilerOptions, function () { return [requestingFile_1, toAbsolutePath(packagePath)]; }, ((_d = (_c = state.host).getCurrentDirectory) == null ? void 0 : _d.call(_c)) || "", getCanonicalFileName)); - commonSourceDirGuesses.push(commonDir); - var fragment = ensureTrailingDirectorySeparator(commonDir); - while (fragment && fragment.length > 1) { - var parts = getPathComponents(fragment); - parts.pop(); - var commonDir2 = getPathFromPathComponents(parts); - commonSourceDirGuesses.unshift(commonDir2); - fragment = ensureTrailingDirectorySeparator(commonDir2); - } - } - if (commonSourceDirGuesses.length > 1) { - state.reportDiagnostic(createCompilerDiagnostic(isImports2 ? Diagnostics.The_project_root_is_ambiguous_but_is_required_to_resolve_import_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate : Diagnostics.The_project_root_is_ambiguous_but_is_required_to_resolve_export_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate, entry === "" ? "." : entry, - // replace empty string with `.` - the reverse of the operation done when entries are built - so main entrypoint errors don't look weird - packagePath)); - } - try { - for (var commonSourceDirGuesses_1 = __values(commonSourceDirGuesses), commonSourceDirGuesses_1_1 = commonSourceDirGuesses_1.next(); !commonSourceDirGuesses_1_1.done; commonSourceDirGuesses_1_1 = commonSourceDirGuesses_1.next()) { - var commonSourceDirGuess = commonSourceDirGuesses_1_1.value; - var candidateDirectories = getOutputDirectoriesForBaseDirectory(commonSourceDirGuess); - try { - for (var candidateDirectories_1 = (e_133 = void 0, __values(candidateDirectories)), candidateDirectories_1_1 = candidateDirectories_1.next(); !candidateDirectories_1_1.done; candidateDirectories_1_1 = candidateDirectories_1.next()) { - var candidateDir = candidateDirectories_1_1.value; - if (containsPath(candidateDir, finalPath, !useCaseSensitiveFileNames(state))) { - var pathFragment = finalPath.slice(candidateDir.length + 1); - var possibleInputBase = combinePaths(commonSourceDirGuess, pathFragment); - var jsAndDtsExtensions = [".mjs" /* Mjs */, ".cjs" /* Cjs */, ".js" /* Js */, ".json" /* Json */, ".d.mts" /* Dmts */, ".d.cts" /* Dcts */, ".d.ts" /* Dts */]; - try { - for (var jsAndDtsExtensions_1 = (e_134 = void 0, __values(jsAndDtsExtensions)), jsAndDtsExtensions_1_1 = jsAndDtsExtensions_1.next(); !jsAndDtsExtensions_1_1.done; jsAndDtsExtensions_1_1 = jsAndDtsExtensions_1.next()) { - var ext = jsAndDtsExtensions_1_1.value; - if (fileExtensionIs(possibleInputBase, ext)) { - var inputExts = getPossibleOriginalInputExtensionForExtension(possibleInputBase); - try { - for (var inputExts_1 = (e_135 = void 0, __values(inputExts)), inputExts_1_1 = inputExts_1.next(); !inputExts_1_1.done; inputExts_1_1 = inputExts_1.next()) { - var possibleExt = inputExts_1_1.value; - if (!extensionIsOk(extensions, possibleExt)) - continue; - var possibleInputWithInputExtension = changeAnyExtension(possibleInputBase, possibleExt, ext, !useCaseSensitiveFileNames(state)); - if (state.host.fileExists(possibleInputWithInputExtension)) { - return toSearchResult(withPackageId(scope, loadFileNameFromPackageJsonField(extensions, possibleInputWithInputExtension, - /*onlyRecordFailures*/ - false, state))); - } - } - } - catch (e_135_1) { e_135 = { error: e_135_1 }; } - finally { - try { - if (inputExts_1_1 && !inputExts_1_1.done && (_w = inputExts_1.return)) _w.call(inputExts_1); - } - finally { if (e_135) throw e_135.error; } - } - } - } - } - catch (e_134_1) { e_134 = { error: e_134_1 }; } - finally { - try { - if (jsAndDtsExtensions_1_1 && !jsAndDtsExtensions_1_1.done && (_v = jsAndDtsExtensions_1.return)) _v.call(jsAndDtsExtensions_1); - } - finally { if (e_134) throw e_134.error; } - } - } - } - } - catch (e_133_1) { e_133 = { error: e_133_1 }; } - finally { - try { - if (candidateDirectories_1_1 && !candidateDirectories_1_1.done && (_u = candidateDirectories_1.return)) _u.call(candidateDirectories_1); - } - finally { if (e_133) throw e_133.error; } - } - } - } - catch (e_132_1) { e_132 = { error: e_132_1 }; } - finally { - try { - if (commonSourceDirGuesses_1_1 && !commonSourceDirGuesses_1_1.done && (_t = commonSourceDirGuesses_1.return)) _t.call(commonSourceDirGuesses_1); - } - finally { if (e_132) throw e_132.error; } - } - } - return void 0; - function getOutputDirectoriesForBaseDirectory(commonSourceDirGuess) { - var _a2, _b2; - var currentDir = state.compilerOptions.configFile ? ((_b2 = (_a2 = state.host).getCurrentDirectory) == null ? void 0 : _b2.call(_a2)) || "" : commonSourceDirGuess; - var candidateDirectories = []; - if (state.compilerOptions.declarationDir) { - candidateDirectories.push(toAbsolutePath(combineDirectoryPath(currentDir, state.compilerOptions.declarationDir))); - } - if (state.compilerOptions.outDir && state.compilerOptions.outDir !== state.compilerOptions.declarationDir) { - candidateDirectories.push(toAbsolutePath(combineDirectoryPath(currentDir, state.compilerOptions.outDir))); - } - return candidateDirectories; - } - } - } -} -function isApplicableVersionedTypesKey(conditions, key) { - if (conditions.indexOf("types") === -1) - return false; - if (!startsWith(key, "types@")) - return false; - var range = VersionRange.tryParse(key.substring("types@".length)); - if (!range) - return false; - return range.test(version); -} -function loadModuleFromNearestNodeModulesDirectory(extensions, moduleName, directory, state, cache, redirectedReference) { - return loadModuleFromNearestNodeModulesDirectoryWorker(extensions, moduleName, directory, state, - /*typesScopeOnly*/ - false, cache, redirectedReference); -} -function loadModuleFromNearestNodeModulesDirectoryTypesScope(moduleName, directory, state) { - return loadModuleFromNearestNodeModulesDirectoryWorker(4 /* Declaration */, moduleName, directory, state, - /*typesScopeOnly*/ - true, - /*cache*/ - void 0, - /*redirectedReference*/ - void 0); -} -function loadModuleFromNearestNodeModulesDirectoryWorker(extensions, moduleName, directory, state, typesScopeOnly, cache, redirectedReference) { - var mode = state.features === 0 ? void 0 : state.features & 32 /* EsmMode */ ? 99 /* ESNext */ : 1 /* CommonJS */; - var priorityExtensions = extensions & (1 /* TypeScript */ | 4 /* Declaration */); - var secondaryExtensions = extensions & ~(1 /* TypeScript */ | 4 /* Declaration */); - if (priorityExtensions) { - traceIfEnabled(state, Diagnostics.Searching_all_ancestor_node_modules_directories_for_preferred_extensions_Colon_0, formatExtensions(priorityExtensions)); - var result = lookup(priorityExtensions); - if (result) - return result; - } - if (secondaryExtensions && !typesScopeOnly) { - traceIfEnabled(state, Diagnostics.Searching_all_ancestor_node_modules_directories_for_fallback_extensions_Colon_0, formatExtensions(secondaryExtensions)); - return lookup(secondaryExtensions); - } - function lookup(extensions2) { - return forEachAncestorDirectory(normalizeSlashes(directory), function (ancestorDirectory) { - if (getBaseFileName(ancestorDirectory) !== "node_modules") { - var resolutionFromCache = tryFindNonRelativeModuleNameInCache(cache, moduleName, mode, ancestorDirectory, redirectedReference, state); - if (resolutionFromCache) { - return resolutionFromCache; - } - return toSearchResult(loadModuleFromImmediateNodeModulesDirectory(extensions2, moduleName, ancestorDirectory, state, typesScopeOnly, cache, redirectedReference)); - } - }); - } -} -function loadModuleFromImmediateNodeModulesDirectory(extensions, moduleName, directory, state, typesScopeOnly, cache, redirectedReference) { - var nodeModulesFolder = combinePaths(directory, "node_modules"); - var nodeModulesFolderExists = directoryProbablyExists(nodeModulesFolder, state.host); - if (!nodeModulesFolderExists && state.traceEnabled) { - trace(state.host, Diagnostics.Directory_0_does_not_exist_skipping_all_lookups_in_it, nodeModulesFolder); - } - if (!typesScopeOnly) { - var packageResult = loadModuleFromSpecificNodeModulesDirectory(extensions, moduleName, nodeModulesFolder, nodeModulesFolderExists, state, cache, redirectedReference); - if (packageResult) { - return packageResult; - } - } - if (extensions & 4 /* Declaration */) { - var nodeModulesAtTypes2 = combinePaths(nodeModulesFolder, "@types"); - var nodeModulesAtTypesExists = nodeModulesFolderExists; - if (nodeModulesFolderExists && !directoryProbablyExists(nodeModulesAtTypes2, state.host)) { - if (state.traceEnabled) { - trace(state.host, Diagnostics.Directory_0_does_not_exist_skipping_all_lookups_in_it, nodeModulesAtTypes2); - } - nodeModulesAtTypesExists = false; - } - return loadModuleFromSpecificNodeModulesDirectory(4 /* Declaration */, mangleScopedPackageNameWithTrace(moduleName, state), nodeModulesAtTypes2, nodeModulesAtTypesExists, state, cache, redirectedReference); - } -} -function loadModuleFromSpecificNodeModulesDirectory(extensions, moduleName, nodeModulesDirectory, nodeModulesDirectoryExists, state, cache, redirectedReference) { - var _t; - var _a, _b; - var candidate = normalizePath(combinePaths(nodeModulesDirectory, moduleName)); - var _u = parsePackageName(moduleName), packageName = _u.packageName, rest = _u.rest; - var packageDirectory = combinePaths(nodeModulesDirectory, packageName); - var rootPackageInfo; - var packageInfo = getPackageJsonInfo(candidate, !nodeModulesDirectoryExists, state); - if (rest !== "" && packageInfo && (!(state.features & 8 /* Exports */) || !hasProperty((_t = ((_a = rootPackageInfo = getPackageJsonInfo(packageDirectory, !nodeModulesDirectoryExists, state)) == null ? void 0 : _a.contents.packageJsonContent)) !== null && _t !== void 0 ? _t : emptyArray, "exports"))) { - var fromFile = loadModuleFromFile(extensions, candidate, !nodeModulesDirectoryExists, state); - if (fromFile) { - return noPackageId(fromFile); - } - var fromDirectory = loadNodeModuleFromDirectoryWorker(extensions, candidate, !nodeModulesDirectoryExists, state, packageInfo.contents.packageJsonContent, getVersionPathsOfPackageJsonInfo(packageInfo, state)); - return withPackageId(packageInfo, fromDirectory); - } - var loader = function (extensions2, candidate2, onlyRecordFailures, state2) { - var pathAndExtension = (rest || !(state2.features & 32 /* EsmMode */)) && loadModuleFromFile(extensions2, candidate2, onlyRecordFailures, state2) || loadNodeModuleFromDirectoryWorker(extensions2, candidate2, onlyRecordFailures, state2, packageInfo && packageInfo.contents.packageJsonContent, packageInfo && getVersionPathsOfPackageJsonInfo(packageInfo, state2)); - if (!pathAndExtension && packageInfo && (packageInfo.contents.packageJsonContent.exports === void 0 || packageInfo.contents.packageJsonContent.exports === null) && state2.features & 32 /* EsmMode */) { - pathAndExtension = loadModuleFromFile(extensions2, combinePaths(candidate2, "index.js"), onlyRecordFailures, state2); - } - return withPackageId(packageInfo, pathAndExtension); - }; - if (rest !== "") { - packageInfo = rootPackageInfo !== null && rootPackageInfo !== void 0 ? rootPackageInfo : getPackageJsonInfo(packageDirectory, !nodeModulesDirectoryExists, state); - } - if (packageInfo && packageInfo.contents.packageJsonContent.exports && state.features & 8 /* Exports */) { - return (_b = loadModuleFromExports(packageInfo, extensions, combinePaths(".", rest), state, cache, redirectedReference)) == null ? void 0 : _b.value; - } - var versionPaths = rest !== "" && packageInfo ? getVersionPathsOfPackageJsonInfo(packageInfo, state) : void 0; - if (versionPaths) { - if (state.traceEnabled) { - trace(state.host, Diagnostics.package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_match_module_name_2, versionPaths.version, version, rest); - } - var packageDirectoryExists = nodeModulesDirectoryExists && directoryProbablyExists(packageDirectory, state.host); - var fromPaths = tryLoadModuleUsingPaths(extensions, rest, packageDirectory, versionPaths.paths, - /*pathPatterns*/ - void 0, loader, !packageDirectoryExists, state); - if (fromPaths) { - return fromPaths.value; - } - } - return loader(extensions, candidate, !nodeModulesDirectoryExists, state); -} -function tryLoadModuleUsingPaths(extensions, moduleName, baseDirectory, paths, pathPatterns, loader, onlyRecordFailures, state) { - pathPatterns || (pathPatterns = tryParsePatterns(paths)); - var matchedPattern = matchPatternOrExact(pathPatterns, moduleName); - if (matchedPattern) { - var matchedStar_1 = isString(matchedPattern) ? void 0 : matchedText(matchedPattern, moduleName); - var matchedPatternText = isString(matchedPattern) ? matchedPattern : patternText(matchedPattern); - if (state.traceEnabled) { - trace(state.host, Diagnostics.Module_name_0_matched_pattern_1, moduleName, matchedPatternText); - } - var resolved = forEach(paths[matchedPatternText], function (subst) { - var path = matchedStar_1 ? subst.replace("*", matchedStar_1) : subst; - var candidate = normalizePath(combinePaths(baseDirectory, path)); - if (state.traceEnabled) { - trace(state.host, Diagnostics.Trying_substitution_0_candidate_module_location_Colon_1, subst, path); - } - var extension = tryGetExtensionFromPath2(subst); - if (extension !== void 0) { - var path2 = tryFile(candidate, onlyRecordFailures, state); - if (path2 !== void 0) { - return noPackageId({ path: path2, ext: extension, resolvedUsingTsExtension: void 0 }); - } - } - return loader(extensions, candidate, onlyRecordFailures || !directoryProbablyExists(getDirectoryPath(candidate), state.host), state); - }); - return { value: resolved }; - } -} -var mangledScopedPackageSeparator = "__"; -function mangleScopedPackageNameWithTrace(packageName, state) { - var mangled = mangleScopedPackageName(packageName); - if (state.traceEnabled && mangled !== packageName) { - trace(state.host, Diagnostics.Scoped_package_detected_looking_in_0, mangled); - } - return mangled; -} -function getTypesPackageName(packageName) { - return "@types/".concat(mangleScopedPackageName(packageName)); -} -function mangleScopedPackageName(packageName) { - if (startsWith(packageName, "@")) { - var replaceSlash = packageName.replace(directorySeparator, mangledScopedPackageSeparator); - if (replaceSlash !== packageName) { - return replaceSlash.slice(1); - } - } - return packageName; -} -function getPackageNameFromTypesPackageName(mangledName) { - var withoutAtTypePrefix = removePrefix(mangledName, "@types/"); - if (withoutAtTypePrefix !== mangledName) { - return unmangleScopedPackageName(withoutAtTypePrefix); - } - return mangledName; -} -function unmangleScopedPackageName(typesPackageName) { - return stringContains(typesPackageName, mangledScopedPackageSeparator) ? "@" + typesPackageName.replace(mangledScopedPackageSeparator, directorySeparator) : typesPackageName; -} -function tryFindNonRelativeModuleNameInCache(cache, moduleName, mode, containingDirectory, redirectedReference, state) { - var result = cache && cache.getFromNonRelativeNameCache(moduleName, mode, containingDirectory, redirectedReference); - if (result) { - if (state.traceEnabled) { - trace(state.host, Diagnostics.Resolution_for_module_0_was_found_in_cache_from_location_1, moduleName, containingDirectory); - } - state.resultFromCache = result; - return { - value: result.resolvedModule && { - path: result.resolvedModule.resolvedFileName, - originalPath: result.resolvedModule.originalPath || true, - extension: result.resolvedModule.extension, - packageId: result.resolvedModule.packageId, - resolvedUsingTsExtension: result.resolvedModule.resolvedUsingTsExtension - } - }; - } -} -function classicNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference) { - var traceEnabled = isTraceEnabled(compilerOptions, host); - var failedLookupLocations = []; - var affectingLocations = []; - var containingDirectory = getDirectoryPath(containingFile); - var diagnostics = []; - var state = { - compilerOptions: compilerOptions, - host: host, - traceEnabled: traceEnabled, - failedLookupLocations: failedLookupLocations, - affectingLocations: affectingLocations, - packageJsonInfoCache: cache, - features: 0 /* None */, - conditions: [], - requestContainingDirectory: containingDirectory, - reportDiagnostic: function (diag2) { return void diagnostics.push(diag2); }, - isConfigLookup: false, - candidateIsFromPackageJsonField: false - }; - var resolved = tryResolve(1 /* TypeScript */ | 4 /* Declaration */) || tryResolve(2 /* JavaScript */ | (compilerOptions.resolveJsonModule ? 8 /* Json */ : 0)); - return createResolvedModuleWithFailedLookupLocationsHandlingSymlink(moduleName, resolved && resolved.value, (resolved == null ? void 0 : resolved.value) && pathContainsNodeModules(resolved.value.path), failedLookupLocations, affectingLocations, diagnostics, state); - function tryResolve(extensions) { - var resolvedUsingSettings = tryLoadModuleUsingOptionalResolutionSettings(extensions, moduleName, containingDirectory, loadModuleFromFileNoPackageId, state); - if (resolvedUsingSettings) { - return { value: resolvedUsingSettings }; - } - if (!isExternalModuleNameRelative(moduleName)) { - var resolved2 = forEachAncestorDirectory(containingDirectory, function (directory) { - var resolutionFromCache = tryFindNonRelativeModuleNameInCache(cache, moduleName, - /*mode*/ - void 0, directory, redirectedReference, state); - if (resolutionFromCache) { - return resolutionFromCache; - } - var searchName = normalizePath(combinePaths(directory, moduleName)); - return toSearchResult(loadModuleFromFileNoPackageId(extensions, searchName, - /*onlyRecordFailures*/ - false, state)); - }); - if (resolved2) - return resolved2; - if (extensions & (1 /* TypeScript */ | 4 /* Declaration */)) { - var resolved3 = loadModuleFromNearestNodeModulesDirectoryTypesScope(moduleName, containingDirectory, state); - if (extensions & 4 /* Declaration */) - resolved3 !== null && resolved3 !== void 0 ? resolved3 : (resolved3 = resolveFromTypeRoot(moduleName, state)); - return resolved3; - } - } - else { - var candidate = normalizePath(combinePaths(containingDirectory, moduleName)); - return toSearchResult(loadModuleFromFileNoPackageId(extensions, candidate, - /*onlyRecordFailures*/ - false, state)); - } - } -} -function resolveFromTypeRoot(moduleName, state) { - var e_136, _t; - if (!state.compilerOptions.typeRoots) - return; - try { - for (var _u = __values(state.compilerOptions.typeRoots), _v = _u.next(); !_v.done; _v = _u.next()) { - var typeRoot = _v.value; - var candidate = getCandidateFromTypeRoot(typeRoot, moduleName, state); - var directoryExists = directoryProbablyExists(typeRoot, state.host); - if (!directoryExists && state.traceEnabled) { - trace(state.host, Diagnostics.Directory_0_does_not_exist_skipping_all_lookups_in_it, typeRoot); - } - var resolvedFromFile = loadModuleFromFile(4 /* Declaration */, candidate, !directoryExists, state); - if (resolvedFromFile) { - var packageDirectory = parseNodeModuleFromPath(resolvedFromFile.path); - var packageInfo = packageDirectory ? getPackageJsonInfo(packageDirectory, - /*onlyRecordFailures*/ - false, state) : void 0; - return toSearchResult(withPackageId(packageInfo, resolvedFromFile)); - } - var resolved = loadNodeModuleFromDirectory(4 /* Declaration */, candidate, !directoryExists, state); - if (resolved) - return toSearchResult(resolved); - } - } - catch (e_136_1) { e_136 = { error: e_136_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_136) throw e_136.error; } - } -} -function shouldAllowImportingTsExtension(compilerOptions, fromFileName) { - return !!compilerOptions.allowImportingTsExtensions || fromFileName && isDeclarationFileName(fromFileName); -} -function loadModuleFromGlobalCache(moduleName, projectName, compilerOptions, host, globalCache, packageJsonInfoCache) { - var traceEnabled = isTraceEnabled(compilerOptions, host); - if (traceEnabled) { - trace(host, Diagnostics.Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using_cache_location_2, projectName, moduleName, globalCache); - } - var failedLookupLocations = []; - var affectingLocations = []; - var diagnostics = []; - var state = { - compilerOptions: compilerOptions, - host: host, - traceEnabled: traceEnabled, - failedLookupLocations: failedLookupLocations, - affectingLocations: affectingLocations, - packageJsonInfoCache: packageJsonInfoCache, - features: 0 /* None */, - conditions: [], - requestContainingDirectory: void 0, - reportDiagnostic: function (diag2) { return void diagnostics.push(diag2); }, - isConfigLookup: false, - candidateIsFromPackageJsonField: false - }; - var resolved = loadModuleFromImmediateNodeModulesDirectory(4 /* Declaration */, moduleName, globalCache, state, - /*typesScopeOnly*/ - false, - /*cache*/ - void 0, - /*redirectedReference*/ - void 0); - return createResolvedModuleWithFailedLookupLocations(resolved, - /*isExternalLibraryImport*/ - true, failedLookupLocations, affectingLocations, diagnostics, state.resultFromCache); -} -function toSearchResult(value) { - return value !== void 0 ? { value: value } : void 0; -} -function traceIfEnabled(state, diagnostic) { - var args = []; - for (var _t = 2; _t < arguments.length; _t++) { - args[_t - 2] = arguments[_t]; - } - if (state.traceEnabled) { - trace.apply(void 0, __spreadArray([state.host, diagnostic], __read(args), false)); - } -} -function useCaseSensitiveFileNames(state) { - return !state.host.useCaseSensitiveFileNames ? true : typeof state.host.useCaseSensitiveFileNames === "boolean" ? state.host.useCaseSensitiveFileNames : state.host.useCaseSensitiveFileNames(); -} -// src/compiler/binder.ts -var ModuleInstanceState = /* @__PURE__ */ (function (ModuleInstanceState2) { - ModuleInstanceState2[ModuleInstanceState2["NonInstantiated"] = 0] = "NonInstantiated"; - ModuleInstanceState2[ModuleInstanceState2["Instantiated"] = 1] = "Instantiated"; - ModuleInstanceState2[ModuleInstanceState2["ConstEnumOnly"] = 2] = "ConstEnumOnly"; - return ModuleInstanceState2; -})(ModuleInstanceState || {}); -function getModuleInstanceState(node, visited) { - if (node.body && !node.body.parent) { - setParent(node.body, node); - setParentRecursive(node.body, - /*incremental*/ - false); - } - return node.body ? getModuleInstanceStateCached(node.body, visited) : 1 /* Instantiated */; -} -function getModuleInstanceStateCached(node, visited) { - if (visited === void 0) { visited = new Map(); } - var nodeId = getNodeId(node); - if (visited.has(nodeId)) { - return visited.get(nodeId) || 0 /* NonInstantiated */; - } - visited.set(nodeId, void 0); - var result = getModuleInstanceStateWorker(node, visited); - visited.set(nodeId, result); - return result; -} -function getModuleInstanceStateWorker(node, visited) { - var e_137, _t; - switch (node.kind) { - case 264 /* InterfaceDeclaration */: - case 265 /* TypeAliasDeclaration */: - return 0 /* NonInstantiated */; - case 266 /* EnumDeclaration */: - if (isEnumConst(node)) { - return 2 /* ConstEnumOnly */; - } - break; - case 272 /* ImportDeclaration */: - case 271 /* ImportEqualsDeclaration */: - if (!hasSyntacticModifier(node, 1 /* Export */)) { - return 0 /* NonInstantiated */; - } - break; - case 278 /* ExportDeclaration */: - var exportDeclaration = node; - if (!exportDeclaration.moduleSpecifier && exportDeclaration.exportClause && exportDeclaration.exportClause.kind === 279 /* NamedExports */) { - var state = 0 /* NonInstantiated */; - try { - for (var _u = __values(exportDeclaration.exportClause.elements), _v = _u.next(); !_v.done; _v = _u.next()) { - var specifier = _v.value; - var specifierState = getModuleInstanceStateForAliasTarget(specifier, visited); - if (specifierState > state) { - state = specifierState; - } - if (state === 1 /* Instantiated */) { - return state; - } - } - } - catch (e_137_1) { e_137 = { error: e_137_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_137) throw e_137.error; } - } - return state; - } - break; - case 268 /* ModuleBlock */: { - var state_1 = 0 /* NonInstantiated */; - forEachChild(node, function (n) { - var childState = getModuleInstanceStateCached(n, visited); - switch (childState) { - case 0 /* NonInstantiated */: - return; - case 2 /* ConstEnumOnly */: - state_1 = 2 /* ConstEnumOnly */; - return; - case 1 /* Instantiated */: - state_1 = 1 /* Instantiated */; - return true; - default: - Debug.assertNever(childState); - } - }); - return state_1; - } - case 267 /* ModuleDeclaration */: - return getModuleInstanceState(node, visited); - case 80 /* Identifier */: - if (node.flags & 4096 /* IdentifierIsInJSDocNamespace */) { - return 0 /* NonInstantiated */; - } - } - return 1 /* Instantiated */; -} -function getModuleInstanceStateForAliasTarget(specifier, visited) { - var e_138, _t; - var name = specifier.propertyName || specifier.name; - var p = specifier.parent; - while (p) { - if (isBlock(p) || isModuleBlock(p) || isSourceFile(p)) { - var statements = p.statements; - var found = void 0; - try { - for (var statements_2 = (e_138 = void 0, __values(statements)), statements_2_1 = statements_2.next(); !statements_2_1.done; statements_2_1 = statements_2.next()) { - var statement = statements_2_1.value; - if (nodeHasName(statement, name)) { - if (!statement.parent) { - setParent(statement, p); - setParentRecursive(statement, - /*incremental*/ - false); - } - var state = getModuleInstanceStateCached(statement, visited); - if (found === void 0 || state > found) { - found = state; - } - if (found === 1 /* Instantiated */) { - return found; - } - if (statement.kind === 271 /* ImportEqualsDeclaration */) { - found = 1 /* Instantiated */; - } - } - } - } - catch (e_138_1) { e_138 = { error: e_138_1 }; } - finally { - try { - if (statements_2_1 && !statements_2_1.done && (_t = statements_2.return)) _t.call(statements_2); - } - finally { if (e_138) throw e_138.error; } - } - if (found !== void 0) { - return found; - } - } - p = p.parent; - } - return 1 /* Instantiated */; -} -var ContainerFlags = /* @__PURE__ */ (function (ContainerFlags2) { - ContainerFlags2[ContainerFlags2["None"] = 0] = "None"; - ContainerFlags2[ContainerFlags2["IsContainer"] = 1] = "IsContainer"; - ContainerFlags2[ContainerFlags2["IsBlockScopedContainer"] = 2] = "IsBlockScopedContainer"; - ContainerFlags2[ContainerFlags2["IsControlFlowContainer"] = 4] = "IsControlFlowContainer"; - ContainerFlags2[ContainerFlags2["IsFunctionLike"] = 8] = "IsFunctionLike"; - ContainerFlags2[ContainerFlags2["IsFunctionExpression"] = 16] = "IsFunctionExpression"; - ContainerFlags2[ContainerFlags2["HasLocals"] = 32] = "HasLocals"; - ContainerFlags2[ContainerFlags2["IsInterface"] = 64] = "IsInterface"; - ContainerFlags2[ContainerFlags2["IsObjectLiteralOrClassExpressionMethodOrAccessor"] = 128] = "IsObjectLiteralOrClassExpressionMethodOrAccessor"; - return ContainerFlags2; -})(ContainerFlags || {}); -function initFlowNode(node) { - Debug.attachFlowNodeDebugInfo(node); - return node; -} -var binder = /* @__PURE__ */ createBinder(); -function bindSourceFile(file, options) { - var _a, _b; - mark("beforeBind"); - (_a = perfLogger) == null ? void 0 : _a.logStartBindFile("" + file.fileName); - binder(file, options); - (_b = perfLogger) == null ? void 0 : _b.logStopBindFile(); - mark("afterBind"); - measure("Bind", "beforeBind", "afterBind"); -} -function createBinder() { - var file; - var options; - var languageVersion; - var parent2; - var container; - var thisParentContainer; - var blockScopeContainer; - var lastContainer; - var delayedTypeAliases; - var seenThisKeyword; - var currentFlow; - var currentBreakTarget; - var currentContinueTarget; - var currentReturnTarget; - var currentTrueTarget; - var currentFalseTarget; - var currentExceptionTarget; - var preSwitchCaseFlow; - var activeLabelList; - var hasExplicitReturn; - var emitFlags; - var inStrictMode; - var inAssignmentPattern = false; - var symbolCount = 0; - var Symbol47; - var classifiableNames; - var unreachableFlow = { flags: 1 /* Unreachable */ }; - var reportedUnreachableFlow = { flags: 1 /* Unreachable */ }; - var bindBinaryExpressionFlow = createBindBinaryExpressionFlow(); - return bindSourceFile2; - function createDiagnosticForNode2(node, message) { - var args = []; - for (var _t = 2; _t < arguments.length; _t++) { - args[_t - 2] = arguments[_t]; - } - return createDiagnosticForNodeInSourceFile.apply(void 0, __spreadArray([getSourceFileOfNode(node) || file, node, message], __read(args), false)); - } - function bindSourceFile2(f, opts) { - var _a, _b; - file = f; - options = opts; - languageVersion = getEmitScriptTarget(options); - inStrictMode = bindInStrictMode(file, opts); - classifiableNames = /* @__PURE__ */ new Set(); - symbolCount = 0; - Symbol47 = objectAllocator.getSymbolConstructor(); - Debug.attachFlowNodeDebugInfo(unreachableFlow); - Debug.attachFlowNodeDebugInfo(reportedUnreachableFlow); - if (!file.locals) { - (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Bind, "bindSourceFile", { path: file.path }, - /*separateBeginAndEnd*/ - true); - bind(file); - (_b = tracing) == null ? void 0 : _b.pop(); - file.symbolCount = symbolCount; - file.classifiableNames = classifiableNames; - delayedBindJSDocTypedefTag(); - } - file = void 0; - options = void 0; - languageVersion = void 0; - parent2 = void 0; - container = void 0; - thisParentContainer = void 0; - blockScopeContainer = void 0; - lastContainer = void 0; - delayedTypeAliases = void 0; - seenThisKeyword = false; - currentFlow = void 0; - currentBreakTarget = void 0; - currentContinueTarget = void 0; - currentReturnTarget = void 0; - currentTrueTarget = void 0; - currentFalseTarget = void 0; - currentExceptionTarget = void 0; - activeLabelList = void 0; - hasExplicitReturn = false; - inAssignmentPattern = false; - emitFlags = 0 /* None */; - } - function bindInStrictMode(file2, opts) { - if (getStrictOptionValue(opts, "alwaysStrict") && !file2.isDeclarationFile) { - return true; - } - else { - return !!file2.externalModuleIndicator; - } - } - function createSymbol(flags, name) { - symbolCount++; - return new Symbol47(flags, name); - } - function addDeclarationToSymbol(symbol, node, symbolFlags) { - symbol.flags |= symbolFlags; - node.symbol = symbol; - symbol.declarations = appendIfUnique(symbol.declarations, node); - if (symbolFlags & (32 /* Class */ | 384 /* Enum */ | 1536 /* Module */ | 3 /* Variable */) && !symbol.exports) { - symbol.exports = createSymbolTable(); - } - if (symbolFlags & (32 /* Class */ | 64 /* Interface */ | 2048 /* TypeLiteral */ | 4096 /* ObjectLiteral */) && !symbol.members) { - symbol.members = createSymbolTable(); - } - if (symbol.constEnumOnlyModule && symbol.flags & (16 /* Function */ | 32 /* Class */ | 256 /* RegularEnum */)) { - symbol.constEnumOnlyModule = false; - } - if (symbolFlags & 111551 /* Value */) { - setValueDeclaration(symbol, node); - } - } - function getDeclarationName(node) { - if (node.kind === 277 /* ExportAssignment */) { - return node.isExportEquals ? "export=" /* ExportEquals */ : "default" /* Default */; - } - var name = getNameOfDeclaration(node); - if (name) { - if (isAmbientModule(node)) { - var moduleName = getTextOfIdentifierOrLiteral(name); - return isGlobalScopeAugmentation(node) ? "__global" : "\"".concat(moduleName, "\""); - } - if (name.kind === 167 /* ComputedPropertyName */) { - var nameExpression = name.expression; - if (isStringOrNumericLiteralLike(nameExpression)) { - return escapeLeadingUnderscores(nameExpression.text); - } - if (isSignedNumericLiteral(nameExpression)) { - return tokenToString(nameExpression.operator) + nameExpression.operand.text; - } - else { - Debug.fail("Only computed properties with literal names have declaration names"); - } - } - if (isPrivateIdentifier(name)) { - var containingClass = getContainingClass(node); - if (!containingClass) { - return void 0; - } - var containingClassSymbol = containingClass.symbol; - return getSymbolNameForPrivateIdentifier(containingClassSymbol, name.escapedText); - } - if (isJsxNamespacedName(name)) { - return getEscapedTextOfJsxNamespacedName(name); - } - return isPropertyNameLiteral(name) ? getEscapedTextOfIdentifierOrLiteral(name) : void 0; - } - switch (node.kind) { - case 176 /* Constructor */: - return "__constructor" /* Constructor */; - case 184 /* FunctionType */: - case 179 /* CallSignature */: - case 330 /* JSDocSignature */: - return "__call" /* Call */; - case 185 /* ConstructorType */: - case 180 /* ConstructSignature */: - return "__new" /* New */; - case 181 /* IndexSignature */: - return "__index" /* Index */; - case 278 /* ExportDeclaration */: - return "__export" /* ExportStar */; - case 312 /* SourceFile */: - return "export=" /* ExportEquals */; - case 226 /* BinaryExpression */: - if (getAssignmentDeclarationKind(node) === 2 /* ModuleExports */) { - return "export=" /* ExportEquals */; - } - Debug.fail("Unknown binary declaration kind"); - break; - case 324 /* JSDocFunctionType */: - return isJSDocConstructSignature(node) ? "__new" /* New */ : "__call" /* Call */; - case 169 /* Parameter */: - Debug.assert(node.parent.kind === 324 /* JSDocFunctionType */, "Impossible parameter parent kind", function () { return "parent is: ".concat(Debug.formatSyntaxKind(node.parent.kind), ", expected JSDocFunctionType"); }); - var functionType = node.parent; - var index = functionType.parameters.indexOf(node); - return "arg" + index; - } - } - function getDisplayName(node) { - return isNamedDeclaration(node) ? declarationNameToString(node.name) : unescapeLeadingUnderscores(Debug.checkDefined(getDeclarationName(node))); - } - function declareSymbol(symbolTable, parent3, node, includes, excludes, isReplaceableByMethod, isComputedName) { - Debug.assert(isComputedName || !hasDynamicName(node)); - var isDefaultExport = hasSyntacticModifier(node, 1024 /* Default */) || isExportSpecifier(node) && node.name.escapedText === "default"; - var name = isComputedName ? "__computed" /* Computed */ : isDefaultExport && parent3 ? "default" /* Default */ : getDeclarationName(node); - var symbol; - if (name === void 0) { - symbol = createSymbol(0 /* None */, "__missing" /* Missing */); - } - else { - symbol = symbolTable.get(name); - if (includes & 2885600 /* Classifiable */) { - classifiableNames.add(name); - } - if (!symbol) { - symbolTable.set(name, symbol = createSymbol(0 /* None */, name)); - if (isReplaceableByMethod) - symbol.isReplaceableByMethod = true; - } - else if (isReplaceableByMethod && !symbol.isReplaceableByMethod) { - return symbol; - } - else if (symbol.flags & excludes) { - if (symbol.isReplaceableByMethod) { - symbolTable.set(name, symbol = createSymbol(0 /* None */, name)); - } - else if (!(includes & 3 /* Variable */ && symbol.flags & 67108864 /* Assignment */)) { - if (isNamedDeclaration(node)) { - setParent(node.name, node); - } - var message_1 = symbol.flags & 2 /* BlockScopedVariable */ ? Diagnostics.Cannot_redeclare_block_scoped_variable_0 : Diagnostics.Duplicate_identifier_0; - var messageNeedsName_1 = true; - if (symbol.flags & 384 /* Enum */ || includes & 384 /* Enum */) { - message_1 = Diagnostics.Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations; - messageNeedsName_1 = false; - } - var multipleDefaultExports_1 = false; - if (length(symbol.declarations)) { - if (isDefaultExport) { - message_1 = Diagnostics.A_module_cannot_have_multiple_default_exports; - messageNeedsName_1 = false; - multipleDefaultExports_1 = true; - } - else { - if (symbol.declarations && symbol.declarations.length && (node.kind === 277 /* ExportAssignment */ && !node.isExportEquals)) { - message_1 = Diagnostics.A_module_cannot_have_multiple_default_exports; - messageNeedsName_1 = false; - multipleDefaultExports_1 = true; - } - } - } - var relatedInformation_1 = []; - if (isTypeAliasDeclaration(node) && nodeIsMissing(node.type) && hasSyntacticModifier(node, 1 /* Export */) && symbol.flags & (2097152 /* Alias */ | 788968 /* Type */ | 1920 /* Namespace */)) { - relatedInformation_1.push(createDiagnosticForNode2(node, Diagnostics.Did_you_mean_0, "export type { ".concat(unescapeLeadingUnderscores(node.name.escapedText), " }"))); - } - var declarationName_1 = getNameOfDeclaration(node) || node; - forEach(symbol.declarations, function (declaration, index) { - var decl = getNameOfDeclaration(declaration) || declaration; - var diag3 = messageNeedsName_1 ? createDiagnosticForNode2(decl, message_1, getDisplayName(declaration)) : createDiagnosticForNode2(decl, message_1); - file.bindDiagnostics.push(multipleDefaultExports_1 ? addRelatedInfo(diag3, createDiagnosticForNode2(declarationName_1, index === 0 ? Diagnostics.Another_export_default_is_here : Diagnostics.and_here)) : diag3); - if (multipleDefaultExports_1) { - relatedInformation_1.push(createDiagnosticForNode2(decl, Diagnostics.The_first_export_default_is_here)); - } - }); - var diag2 = messageNeedsName_1 ? createDiagnosticForNode2(declarationName_1, message_1, getDisplayName(node)) : createDiagnosticForNode2(declarationName_1, message_1); - file.bindDiagnostics.push(addRelatedInfo.apply(void 0, __spreadArray([diag2], __read(relatedInformation_1), false))); - symbol = createSymbol(0 /* None */, name); - } - } - } - addDeclarationToSymbol(symbol, node, includes); - if (symbol.parent) { - Debug.assert(symbol.parent === parent3, "Existing symbol parent should match new one"); - } - else { - symbol.parent = parent3; - } - return symbol; - } - function declareModuleMember(node, symbolFlags, symbolExcludes) { - var hasExportModifier = !!(getCombinedModifierFlags(node) & 1 /* Export */) || jsdocTreatAsExported(node); - if (symbolFlags & 2097152 /* Alias */) { - if (node.kind === 281 /* ExportSpecifier */ || node.kind === 271 /* ImportEqualsDeclaration */ && hasExportModifier) { - return declareSymbol(container.symbol.exports, container.symbol, node, symbolFlags, symbolExcludes); - } - else { - Debug.assertNode(container, canHaveLocals); - return declareSymbol(container.locals, - /*parent*/ - void 0, node, symbolFlags, symbolExcludes); - } - } - else { - if (isJSDocTypeAlias(node)) - Debug.assert(isInJSFile(node)); - if (!isAmbientModule(node) && (hasExportModifier || container.flags & 128 /* ExportContext */)) { - if (!canHaveLocals(container) || !container.locals || hasSyntacticModifier(node, 1024 /* Default */) && !getDeclarationName(node)) { - return declareSymbol(container.symbol.exports, container.symbol, node, symbolFlags, symbolExcludes); - } - var exportKind = symbolFlags & 111551 /* Value */ ? 1048576 /* ExportValue */ : 0; - var local = declareSymbol(container.locals, - /*parent*/ - void 0, node, exportKind, symbolExcludes); - local.exportSymbol = declareSymbol(container.symbol.exports, container.symbol, node, symbolFlags, symbolExcludes); - node.localSymbol = local; - return local; - } - else { - Debug.assertNode(container, canHaveLocals); - return declareSymbol(container.locals, - /*parent*/ - void 0, node, symbolFlags, symbolExcludes); - } - } - } - function jsdocTreatAsExported(node) { - if (node.parent && isModuleDeclaration(node)) { - node = node.parent; - } - if (!isJSDocTypeAlias(node)) - return false; - if (!isJSDocEnumTag(node) && !!node.fullName) - return true; - var declName = getNameOfDeclaration(node); - if (!declName) - return false; - if (isPropertyAccessEntityNameExpression(declName.parent) && isTopLevelNamespaceAssignment(declName.parent)) - return true; - if (isDeclaration(declName.parent) && getCombinedModifierFlags(declName.parent) & 1 /* Export */) - return true; - return false; - } - function bindContainer(node, containerFlags) { - var saveContainer = container; - var saveThisParentContainer = thisParentContainer; - var savedBlockScopeContainer = blockScopeContainer; - if (containerFlags & 1 /* IsContainer */) { - if (node.kind !== 219 /* ArrowFunction */) { - thisParentContainer = container; - } - container = blockScopeContainer = node; - if (containerFlags & 32 /* HasLocals */) { - container.locals = createSymbolTable(); - addToContainerChain(container); - } - } - else if (containerFlags & 2 /* IsBlockScopedContainer */) { - blockScopeContainer = node; - if (containerFlags & 32 /* HasLocals */) { - blockScopeContainer.locals = void 0; - } - } - if (containerFlags & 4 /* IsControlFlowContainer */) { - var saveCurrentFlow = currentFlow; - var saveBreakTarget = currentBreakTarget; - var saveContinueTarget = currentContinueTarget; - var saveReturnTarget = currentReturnTarget; - var saveExceptionTarget = currentExceptionTarget; - var saveActiveLabelList = activeLabelList; - var saveHasExplicitReturn = hasExplicitReturn; - var isImmediatelyInvoked = containerFlags & 16 /* IsFunctionExpression */ && !hasSyntacticModifier(node, 512 /* Async */) && !node.asteriskToken && !!getImmediatelyInvokedFunctionExpression(node) || node.kind === 175 /* ClassStaticBlockDeclaration */; - if (!isImmediatelyInvoked) { - currentFlow = initFlowNode({ flags: 2 /* Start */ }); - if (containerFlags & (16 /* IsFunctionExpression */ | 128 /* IsObjectLiteralOrClassExpressionMethodOrAccessor */)) { - currentFlow.node = node; - } - } - currentReturnTarget = isImmediatelyInvoked || node.kind === 176 /* Constructor */ || isInJSFile(node) && (node.kind === 262 /* FunctionDeclaration */ || node.kind === 218 /* FunctionExpression */) ? createBranchLabel() : void 0; - currentExceptionTarget = void 0; - currentBreakTarget = void 0; - currentContinueTarget = void 0; - activeLabelList = void 0; - hasExplicitReturn = false; - bindChildren(node); - node.flags &= ~5632 /* ReachabilityAndEmitFlags */; - if (!(currentFlow.flags & 1 /* Unreachable */) && containerFlags & 8 /* IsFunctionLike */ && nodeIsPresent(node.body)) { - node.flags |= 512 /* HasImplicitReturn */; - if (hasExplicitReturn) - node.flags |= 1024 /* HasExplicitReturn */; - node.endFlowNode = currentFlow; - } - if (node.kind === 312 /* SourceFile */) { - node.flags |= emitFlags; - node.endFlowNode = currentFlow; - } - if (currentReturnTarget) { - addAntecedent(currentReturnTarget, currentFlow); - currentFlow = finishFlowLabel(currentReturnTarget); - if (node.kind === 176 /* Constructor */ || node.kind === 175 /* ClassStaticBlockDeclaration */ || isInJSFile(node) && (node.kind === 262 /* FunctionDeclaration */ || node.kind === 218 /* FunctionExpression */)) { - node.returnFlowNode = currentFlow; - } - } - if (!isImmediatelyInvoked) { - currentFlow = saveCurrentFlow; - } - currentBreakTarget = saveBreakTarget; - currentContinueTarget = saveContinueTarget; - currentReturnTarget = saveReturnTarget; - currentExceptionTarget = saveExceptionTarget; - activeLabelList = saveActiveLabelList; - hasExplicitReturn = saveHasExplicitReturn; - } - else if (containerFlags & 64 /* IsInterface */) { - seenThisKeyword = false; - bindChildren(node); - Debug.assertNotNode(node, isIdentifier); - node.flags = seenThisKeyword ? node.flags | 256 /* ContainsThis */ : node.flags & ~256 /* ContainsThis */; - } - else { - bindChildren(node); - } - container = saveContainer; - thisParentContainer = saveThisParentContainer; - blockScopeContainer = savedBlockScopeContainer; - } - function bindEachFunctionsFirst(nodes) { - bindEach(nodes, function (n) { return n.kind === 262 /* FunctionDeclaration */ ? bind(n) : void 0; }); - bindEach(nodes, function (n) { return n.kind !== 262 /* FunctionDeclaration */ ? bind(n) : void 0; }); - } - function bindEach(nodes, bindFunction) { - if (bindFunction === void 0) { bindFunction = bind; } - if (nodes === void 0) { - return; - } - forEach(nodes, bindFunction); - } - function bindEachChild(node) { - forEachChild(node, bind, bindEach); - } - function bindChildren(node) { - var saveInAssignmentPattern = inAssignmentPattern; - inAssignmentPattern = false; - if (checkUnreachable(node)) { - bindEachChild(node); - bindJSDoc(node); - inAssignmentPattern = saveInAssignmentPattern; - return; - } - if (node.kind >= 243 /* FirstStatement */ && node.kind <= 259 /* LastStatement */ && !options.allowUnreachableCode) { - node.flowNode = currentFlow; - } - switch (node.kind) { - case 247 /* WhileStatement */: - bindWhileStatement(node); - break; - case 246 /* DoStatement */: - bindDoStatement(node); - break; - case 248 /* ForStatement */: - bindForStatement(node); - break; - case 249 /* ForInStatement */: - case 250 /* ForOfStatement */: - bindForInOrForOfStatement(node); - break; - case 245 /* IfStatement */: - bindIfStatement(node); - break; - case 253 /* ReturnStatement */: - case 257 /* ThrowStatement */: - bindReturnOrThrow(node); - break; - case 252 /* BreakStatement */: - case 251 /* ContinueStatement */: - bindBreakOrContinueStatement(node); - break; - case 258 /* TryStatement */: - bindTryStatement(node); - break; - case 255 /* SwitchStatement */: - bindSwitchStatement(node); - break; - case 269 /* CaseBlock */: - bindCaseBlock(node); - break; - case 296 /* CaseClause */: - bindCaseClause(node); - break; - case 244 /* ExpressionStatement */: - bindExpressionStatement(node); - break; - case 256 /* LabeledStatement */: - bindLabeledStatement(node); - break; - case 224 /* PrefixUnaryExpression */: - bindPrefixUnaryExpressionFlow(node); - break; - case 225 /* PostfixUnaryExpression */: - bindPostfixUnaryExpressionFlow(node); - break; - case 226 /* BinaryExpression */: - if (isDestructuringAssignment(node)) { - inAssignmentPattern = saveInAssignmentPattern; - bindDestructuringAssignmentFlow(node); - return; - } - bindBinaryExpressionFlow(node); - break; - case 220 /* DeleteExpression */: - bindDeleteExpressionFlow(node); - break; - case 227 /* ConditionalExpression */: - bindConditionalExpressionFlow(node); - break; - case 260 /* VariableDeclaration */: - bindVariableDeclarationFlow(node); - break; - case 211 /* PropertyAccessExpression */: - case 212 /* ElementAccessExpression */: - bindAccessExpressionFlow(node); - break; - case 213 /* CallExpression */: - bindCallExpressionFlow(node); - break; - case 235 /* NonNullExpression */: - bindNonNullExpressionFlow(node); - break; - case 353 /* JSDocTypedefTag */: - case 345 /* JSDocCallbackTag */: - case 347 /* JSDocEnumTag */: - bindJSDocTypeAlias(node); - break; - case 312 /* SourceFile */: { - bindEachFunctionsFirst(node.statements); - bind(node.endOfFileToken); - break; - } - case 241 /* Block */: - case 268 /* ModuleBlock */: - bindEachFunctionsFirst(node.statements); - break; - case 208 /* BindingElement */: - bindBindingElementFlow(node); - break; - case 169 /* Parameter */: - bindParameterFlow(node); - break; - case 210 /* ObjectLiteralExpression */: - case 209 /* ArrayLiteralExpression */: - case 303 /* PropertyAssignment */: - case 230 /* SpreadElement */: - inAssignmentPattern = saveInAssignmentPattern; - default: - bindEachChild(node); - break; - } - bindJSDoc(node); - inAssignmentPattern = saveInAssignmentPattern; - } - function isNarrowingExpression(expr) { - switch (expr.kind) { - case 80 /* Identifier */: - case 81 /* PrivateIdentifier */: - case 110 /* ThisKeyword */: - case 211 /* PropertyAccessExpression */: - case 212 /* ElementAccessExpression */: - return containsNarrowableReference(expr); - case 213 /* CallExpression */: - return hasNarrowableArgument(expr); - case 217 /* ParenthesizedExpression */: - case 235 /* NonNullExpression */: - return isNarrowingExpression(expr.expression); - case 226 /* BinaryExpression */: - return isNarrowingBinaryExpression(expr); - case 224 /* PrefixUnaryExpression */: - return expr.operator === 54 /* ExclamationToken */ && isNarrowingExpression(expr.operand); - case 221 /* TypeOfExpression */: - return isNarrowingExpression(expr.expression); - } - return false; - } - function isNarrowableReference(expr) { - return isDottedName(expr) || (isPropertyAccessExpression(expr) || isNonNullExpression(expr) || isParenthesizedExpression(expr)) && isNarrowableReference(expr.expression) || isBinaryExpression(expr) && expr.operatorToken.kind === 28 /* CommaToken */ && isNarrowableReference(expr.right) || isElementAccessExpression(expr) && (isStringOrNumericLiteralLike(expr.argumentExpression) || isEntityNameExpression(expr.argumentExpression)) && isNarrowableReference(expr.expression) || isAssignmentExpression(expr) && isNarrowableReference(expr.left); - } - function containsNarrowableReference(expr) { - return isNarrowableReference(expr) || isOptionalChain(expr) && containsNarrowableReference(expr.expression); - } - function hasNarrowableArgument(expr) { - var e_139, _t; - if (expr.arguments) { - try { - for (var _u = __values(expr.arguments), _v = _u.next(); !_v.done; _v = _u.next()) { - var argument = _v.value; - if (containsNarrowableReference(argument)) { - return true; - } - } - } - catch (e_139_1) { e_139 = { error: e_139_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_139) throw e_139.error; } - } - } - if (expr.expression.kind === 211 /* PropertyAccessExpression */ && containsNarrowableReference(expr.expression.expression)) { - return true; - } - return false; - } - function isNarrowingTypeofOperands(expr1, expr2) { - return isTypeOfExpression(expr1) && isNarrowableOperand(expr1.expression) && isStringLiteralLike(expr2); - } - function isNarrowingBinaryExpression(expr) { - switch (expr.operatorToken.kind) { - case 64 /* EqualsToken */: - case 76 /* BarBarEqualsToken */: - case 77 /* AmpersandAmpersandEqualsToken */: - case 78 /* QuestionQuestionEqualsToken */: - return containsNarrowableReference(expr.left); - case 35 /* EqualsEqualsToken */: - case 36 /* ExclamationEqualsToken */: - case 37 /* EqualsEqualsEqualsToken */: - case 38 /* ExclamationEqualsEqualsToken */: - return isNarrowableOperand(expr.left) || isNarrowableOperand(expr.right) || isNarrowingTypeofOperands(expr.right, expr.left) || isNarrowingTypeofOperands(expr.left, expr.right); - case 104 /* InstanceOfKeyword */: - return isNarrowableOperand(expr.left); - case 103 /* InKeyword */: - return isNarrowingExpression(expr.right); - case 28 /* CommaToken */: - return isNarrowingExpression(expr.right); - } - return false; - } - function isNarrowableOperand(expr) { - switch (expr.kind) { - case 217 /* ParenthesizedExpression */: - return isNarrowableOperand(expr.expression); - case 226 /* BinaryExpression */: - switch (expr.operatorToken.kind) { - case 64 /* EqualsToken */: - return isNarrowableOperand(expr.left); - case 28 /* CommaToken */: - return isNarrowableOperand(expr.right); - } - } - return containsNarrowableReference(expr); - } - function createBranchLabel() { - return initFlowNode({ flags: 4 /* BranchLabel */, antecedents: void 0 }); - } - function createLoopLabel() { - return initFlowNode({ flags: 8 /* LoopLabel */, antecedents: void 0 }); - } - function createReduceLabel(target, antecedents, antecedent) { - return initFlowNode({ flags: 1024 /* ReduceLabel */, target: target, antecedents: antecedents, antecedent: antecedent }); - } - function setFlowNodeReferenced(flow) { - flow.flags |= flow.flags & 2048 /* Referenced */ ? 4096 /* Shared */ : 2048 /* Referenced */; - } - function addAntecedent(label, antecedent) { - if (!(antecedent.flags & 1 /* Unreachable */) && !contains(label.antecedents, antecedent)) { - (label.antecedents || (label.antecedents = [])).push(antecedent); - setFlowNodeReferenced(antecedent); - } - } - function createFlowCondition(flags, antecedent, expression) { - if (antecedent.flags & 1 /* Unreachable */) { - return antecedent; - } - if (!expression) { - return flags & 32 /* TrueCondition */ ? antecedent : unreachableFlow; - } - if ((expression.kind === 112 /* TrueKeyword */ && flags & 64 /* FalseCondition */ || expression.kind === 97 /* FalseKeyword */ && flags & 32 /* TrueCondition */) && !isExpressionOfOptionalChainRoot(expression) && !isNullishCoalesce(expression.parent)) { - return unreachableFlow; - } - if (!isNarrowingExpression(expression)) { - return antecedent; - } - setFlowNodeReferenced(antecedent); - return initFlowNode({ flags: flags, antecedent: antecedent, node: expression }); - } - function createFlowSwitchClause(antecedent, switchStatement, clauseStart, clauseEnd) { - setFlowNodeReferenced(antecedent); - return initFlowNode({ flags: 128 /* SwitchClause */, antecedent: antecedent, switchStatement: switchStatement, clauseStart: clauseStart, clauseEnd: clauseEnd }); - } - function createFlowMutation(flags, antecedent, node) { - setFlowNodeReferenced(antecedent); - var result = initFlowNode({ flags: flags, antecedent: antecedent, node: node }); - if (currentExceptionTarget) { - addAntecedent(currentExceptionTarget, result); - } - return result; - } - function createFlowCall(antecedent, node) { - setFlowNodeReferenced(antecedent); - return initFlowNode({ flags: 512 /* Call */, antecedent: antecedent, node: node }); - } - function finishFlowLabel(flow) { - var antecedents = flow.antecedents; - if (!antecedents) { - return unreachableFlow; - } - if (antecedents.length === 1) { - return antecedents[0]; - } - return flow; - } - function isStatementCondition(node) { - var parent3 = node.parent; - switch (parent3.kind) { - case 245 /* IfStatement */: - case 247 /* WhileStatement */: - case 246 /* DoStatement */: - return parent3.expression === node; - case 248 /* ForStatement */: - case 227 /* ConditionalExpression */: - return parent3.condition === node; - } - return false; - } - function isLogicalExpression(node) { - while (true) { - if (node.kind === 217 /* ParenthesizedExpression */) { - node = node.expression; - } - else if (node.kind === 224 /* PrefixUnaryExpression */ && node.operator === 54 /* ExclamationToken */) { - node = node.operand; - } - else { - return isLogicalOrCoalescingBinaryExpression(node); - } - } - } - function isLogicalAssignmentExpression(node) { - return isLogicalOrCoalescingAssignmentExpression(skipParentheses(node)); - } - function isTopLevelLogicalExpression(node) { - while (isParenthesizedExpression(node.parent) || isPrefixUnaryExpression(node.parent) && node.parent.operator === 54 /* ExclamationToken */) { - node = node.parent; - } - return !isStatementCondition(node) && !isLogicalExpression(node.parent) && !(isOptionalChain(node.parent) && node.parent.expression === node); - } - function doWithConditionalBranches(action, value, trueTarget, falseTarget) { - var savedTrueTarget = currentTrueTarget; - var savedFalseTarget = currentFalseTarget; - currentTrueTarget = trueTarget; - currentFalseTarget = falseTarget; - action(value); - currentTrueTarget = savedTrueTarget; - currentFalseTarget = savedFalseTarget; - } - function bindCondition(node, trueTarget, falseTarget) { - doWithConditionalBranches(bind, node, trueTarget, falseTarget); - if (!node || !isLogicalAssignmentExpression(node) && !isLogicalExpression(node) && !(isOptionalChain(node) && isOutermostOptionalChain(node))) { - addAntecedent(trueTarget, createFlowCondition(32 /* TrueCondition */, currentFlow, node)); - addAntecedent(falseTarget, createFlowCondition(64 /* FalseCondition */, currentFlow, node)); - } - } - function bindIterativeStatement(node, breakTarget, continueTarget) { - var saveBreakTarget = currentBreakTarget; - var saveContinueTarget = currentContinueTarget; - currentBreakTarget = breakTarget; - currentContinueTarget = continueTarget; - bind(node); - currentBreakTarget = saveBreakTarget; - currentContinueTarget = saveContinueTarget; - } - function setContinueTarget(node, target) { - var label = activeLabelList; - while (label && node.parent.kind === 256 /* LabeledStatement */) { - label.continueTarget = target; - label = label.next; - node = node.parent; - } - return target; - } - function bindWhileStatement(node) { - var preWhileLabel = setContinueTarget(node, createLoopLabel()); - var preBodyLabel = createBranchLabel(); - var postWhileLabel = createBranchLabel(); - addAntecedent(preWhileLabel, currentFlow); - currentFlow = preWhileLabel; - bindCondition(node.expression, preBodyLabel, postWhileLabel); - currentFlow = finishFlowLabel(preBodyLabel); - bindIterativeStatement(node.statement, postWhileLabel, preWhileLabel); - addAntecedent(preWhileLabel, currentFlow); - currentFlow = finishFlowLabel(postWhileLabel); - } - function bindDoStatement(node) { - var preDoLabel = createLoopLabel(); - var preConditionLabel = setContinueTarget(node, createBranchLabel()); - var postDoLabel = createBranchLabel(); - addAntecedent(preDoLabel, currentFlow); - currentFlow = preDoLabel; - bindIterativeStatement(node.statement, postDoLabel, preConditionLabel); - addAntecedent(preConditionLabel, currentFlow); - currentFlow = finishFlowLabel(preConditionLabel); - bindCondition(node.expression, preDoLabel, postDoLabel); - currentFlow = finishFlowLabel(postDoLabel); - } - function bindForStatement(node) { - var preLoopLabel = setContinueTarget(node, createLoopLabel()); - var preBodyLabel = createBranchLabel(); - var postLoopLabel = createBranchLabel(); - bind(node.initializer); - addAntecedent(preLoopLabel, currentFlow); - currentFlow = preLoopLabel; - bindCondition(node.condition, preBodyLabel, postLoopLabel); - currentFlow = finishFlowLabel(preBodyLabel); - bindIterativeStatement(node.statement, postLoopLabel, preLoopLabel); - bind(node.incrementor); - addAntecedent(preLoopLabel, currentFlow); - currentFlow = finishFlowLabel(postLoopLabel); - } - function bindForInOrForOfStatement(node) { - var preLoopLabel = setContinueTarget(node, createLoopLabel()); - var postLoopLabel = createBranchLabel(); - bind(node.expression); - addAntecedent(preLoopLabel, currentFlow); - currentFlow = preLoopLabel; - if (node.kind === 250 /* ForOfStatement */) { - bind(node.awaitModifier); - } - addAntecedent(postLoopLabel, currentFlow); - bind(node.initializer); - if (node.initializer.kind !== 261 /* VariableDeclarationList */) { - bindAssignmentTargetFlow(node.initializer); - } - bindIterativeStatement(node.statement, postLoopLabel, preLoopLabel); - addAntecedent(preLoopLabel, currentFlow); - currentFlow = finishFlowLabel(postLoopLabel); - } - function bindIfStatement(node) { - var thenLabel = createBranchLabel(); - var elseLabel = createBranchLabel(); - var postIfLabel = createBranchLabel(); - bindCondition(node.expression, thenLabel, elseLabel); - currentFlow = finishFlowLabel(thenLabel); - bind(node.thenStatement); - addAntecedent(postIfLabel, currentFlow); - currentFlow = finishFlowLabel(elseLabel); - bind(node.elseStatement); - addAntecedent(postIfLabel, currentFlow); - currentFlow = finishFlowLabel(postIfLabel); - } - function bindReturnOrThrow(node) { - bind(node.expression); - if (node.kind === 253 /* ReturnStatement */) { - hasExplicitReturn = true; - if (currentReturnTarget) { - addAntecedent(currentReturnTarget, currentFlow); - } - } - currentFlow = unreachableFlow; - } - function findActiveLabel(name) { - for (var label = activeLabelList; label; label = label.next) { - if (label.name === name) { - return label; - } - } - return void 0; - } - function bindBreakOrContinueFlow(node, breakTarget, continueTarget) { - var flowLabel = node.kind === 252 /* BreakStatement */ ? breakTarget : continueTarget; - if (flowLabel) { - addAntecedent(flowLabel, currentFlow); - currentFlow = unreachableFlow; - } - } - function bindBreakOrContinueStatement(node) { - bind(node.label); - if (node.label) { - var activeLabel = findActiveLabel(node.label.escapedText); - if (activeLabel) { - activeLabel.referenced = true; - bindBreakOrContinueFlow(node, activeLabel.breakTarget, activeLabel.continueTarget); - } - } - else { - bindBreakOrContinueFlow(node, currentBreakTarget, currentContinueTarget); - } - } - function bindTryStatement(node) { - var saveReturnTarget = currentReturnTarget; - var saveExceptionTarget = currentExceptionTarget; - var normalExitLabel = createBranchLabel(); - var returnLabel = createBranchLabel(); - var exceptionLabel = createBranchLabel(); - if (node.finallyBlock) { - currentReturnTarget = returnLabel; - } - addAntecedent(exceptionLabel, currentFlow); - currentExceptionTarget = exceptionLabel; - bind(node.tryBlock); - addAntecedent(normalExitLabel, currentFlow); - if (node.catchClause) { - currentFlow = finishFlowLabel(exceptionLabel); - exceptionLabel = createBranchLabel(); - addAntecedent(exceptionLabel, currentFlow); - currentExceptionTarget = exceptionLabel; - bind(node.catchClause); - addAntecedent(normalExitLabel, currentFlow); - } - currentReturnTarget = saveReturnTarget; - currentExceptionTarget = saveExceptionTarget; - if (node.finallyBlock) { - var finallyLabel = createBranchLabel(); - finallyLabel.antecedents = concatenate(concatenate(normalExitLabel.antecedents, exceptionLabel.antecedents), returnLabel.antecedents); - currentFlow = finallyLabel; - bind(node.finallyBlock); - if (currentFlow.flags & 1 /* Unreachable */) { - currentFlow = unreachableFlow; - } - else { - if (currentReturnTarget && returnLabel.antecedents) { - addAntecedent(currentReturnTarget, createReduceLabel(finallyLabel, returnLabel.antecedents, currentFlow)); - } - if (currentExceptionTarget && exceptionLabel.antecedents) { - addAntecedent(currentExceptionTarget, createReduceLabel(finallyLabel, exceptionLabel.antecedents, currentFlow)); - } - currentFlow = normalExitLabel.antecedents ? createReduceLabel(finallyLabel, normalExitLabel.antecedents, currentFlow) : unreachableFlow; - } - } - else { - currentFlow = finishFlowLabel(normalExitLabel); - } - } - function bindSwitchStatement(node) { - var postSwitchLabel = createBranchLabel(); - bind(node.expression); - var saveBreakTarget = currentBreakTarget; - var savePreSwitchCaseFlow = preSwitchCaseFlow; - currentBreakTarget = postSwitchLabel; - preSwitchCaseFlow = currentFlow; - bind(node.caseBlock); - addAntecedent(postSwitchLabel, currentFlow); - var hasDefault = forEach(node.caseBlock.clauses, function (c) { return c.kind === 297; } /* DefaultClause */); - node.possiblyExhaustive = !hasDefault && !postSwitchLabel.antecedents; - if (!hasDefault) { - addAntecedent(postSwitchLabel, createFlowSwitchClause(preSwitchCaseFlow, node, 0, 0)); - } - currentBreakTarget = saveBreakTarget; - preSwitchCaseFlow = savePreSwitchCaseFlow; - currentFlow = finishFlowLabel(postSwitchLabel); - } - function bindCaseBlock(node) { - var clauses = node.clauses; - var isNarrowingSwitch = isNarrowingExpression(node.parent.expression); - var fallthroughFlow = unreachableFlow; - for (var i = 0; i < clauses.length; i++) { - var clauseStart = i; - while (!clauses[i].statements.length && i + 1 < clauses.length) { - bind(clauses[i]); - i++; - } - var preCaseLabel = createBranchLabel(); - addAntecedent(preCaseLabel, isNarrowingSwitch ? createFlowSwitchClause(preSwitchCaseFlow, node.parent, clauseStart, i + 1) : preSwitchCaseFlow); - addAntecedent(preCaseLabel, fallthroughFlow); - currentFlow = finishFlowLabel(preCaseLabel); - var clause = clauses[i]; - bind(clause); - fallthroughFlow = currentFlow; - if (!(currentFlow.flags & 1 /* Unreachable */) && i !== clauses.length - 1 && options.noFallthroughCasesInSwitch) { - clause.fallthroughFlowNode = currentFlow; - } - } - } - function bindCaseClause(node) { - var saveCurrentFlow = currentFlow; - currentFlow = preSwitchCaseFlow; - bind(node.expression); - currentFlow = saveCurrentFlow; - bindEach(node.statements); - } - function bindExpressionStatement(node) { - bind(node.expression); - maybeBindExpressionFlowIfCall(node.expression); - } - function maybeBindExpressionFlowIfCall(node) { - if (node.kind === 213 /* CallExpression */) { - var call = node; - if (call.expression.kind !== 108 /* SuperKeyword */ && isDottedName(call.expression)) { - currentFlow = createFlowCall(currentFlow, call); - } - } - } - function bindLabeledStatement(node) { - var postStatementLabel = createBranchLabel(); - activeLabelList = { - next: activeLabelList, - name: node.label.escapedText, - breakTarget: postStatementLabel, - continueTarget: void 0, - referenced: false - }; - bind(node.label); - bind(node.statement); - if (!activeLabelList.referenced && !options.allowUnusedLabels) { - errorOrSuggestionOnNode(unusedLabelIsError(options), node.label, Diagnostics.Unused_label); - } - activeLabelList = activeLabelList.next; - addAntecedent(postStatementLabel, currentFlow); - currentFlow = finishFlowLabel(postStatementLabel); - } - function bindDestructuringTargetFlow(node) { - if (node.kind === 226 /* BinaryExpression */ && node.operatorToken.kind === 64 /* EqualsToken */) { - bindAssignmentTargetFlow(node.left); - } - else { - bindAssignmentTargetFlow(node); - } - } - function bindAssignmentTargetFlow(node) { - var e_140, _t, e_141, _u; - if (isNarrowableReference(node)) { - currentFlow = createFlowMutation(16 /* Assignment */, currentFlow, node); - } - else if (node.kind === 209 /* ArrayLiteralExpression */) { - try { - for (var _v = __values(node.elements), _w = _v.next(); !_w.done; _w = _v.next()) { - var e = _w.value; - if (e.kind === 230 /* SpreadElement */) { - bindAssignmentTargetFlow(e.expression); - } - else { - bindDestructuringTargetFlow(e); - } - } - } - catch (e_140_1) { e_140 = { error: e_140_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_140) throw e_140.error; } - } - } - else if (node.kind === 210 /* ObjectLiteralExpression */) { - try { - for (var _x = __values(node.properties), _y = _x.next(); !_y.done; _y = _x.next()) { - var p = _y.value; - if (p.kind === 303 /* PropertyAssignment */) { - bindDestructuringTargetFlow(p.initializer); - } - else if (p.kind === 304 /* ShorthandPropertyAssignment */) { - bindAssignmentTargetFlow(p.name); - } - else if (p.kind === 305 /* SpreadAssignment */) { - bindAssignmentTargetFlow(p.expression); - } - } - } - catch (e_141_1) { e_141 = { error: e_141_1 }; } - finally { - try { - if (_y && !_y.done && (_u = _x.return)) _u.call(_x); - } - finally { if (e_141) throw e_141.error; } - } - } - } - function bindLogicalLikeExpression(node, trueTarget, falseTarget) { - var preRightLabel = createBranchLabel(); - if (node.operatorToken.kind === 56 /* AmpersandAmpersandToken */ || node.operatorToken.kind === 77 /* AmpersandAmpersandEqualsToken */) { - bindCondition(node.left, preRightLabel, falseTarget); - } - else { - bindCondition(node.left, trueTarget, preRightLabel); - } - currentFlow = finishFlowLabel(preRightLabel); - bind(node.operatorToken); - if (isLogicalOrCoalescingAssignmentOperator(node.operatorToken.kind)) { - doWithConditionalBranches(bind, node.right, trueTarget, falseTarget); - bindAssignmentTargetFlow(node.left); - addAntecedent(trueTarget, createFlowCondition(32 /* TrueCondition */, currentFlow, node)); - addAntecedent(falseTarget, createFlowCondition(64 /* FalseCondition */, currentFlow, node)); - } - else { - bindCondition(node.right, trueTarget, falseTarget); - } - } - function bindPrefixUnaryExpressionFlow(node) { - if (node.operator === 54 /* ExclamationToken */) { - var saveTrueTarget = currentTrueTarget; - currentTrueTarget = currentFalseTarget; - currentFalseTarget = saveTrueTarget; - bindEachChild(node); - currentFalseTarget = currentTrueTarget; - currentTrueTarget = saveTrueTarget; - } - else { - bindEachChild(node); - if (node.operator === 46 /* PlusPlusToken */ || node.operator === 47 /* MinusMinusToken */) { - bindAssignmentTargetFlow(node.operand); - } - } - } - function bindPostfixUnaryExpressionFlow(node) { - bindEachChild(node); - if (node.operator === 46 /* PlusPlusToken */ || node.operator === 47 /* MinusMinusToken */) { - bindAssignmentTargetFlow(node.operand); - } - } - function bindDestructuringAssignmentFlow(node) { - if (inAssignmentPattern) { - inAssignmentPattern = false; - bind(node.operatorToken); - bind(node.right); - inAssignmentPattern = true; - bind(node.left); - } - else { - inAssignmentPattern = true; - bind(node.left); - inAssignmentPattern = false; - bind(node.operatorToken); - bind(node.right); - } - bindAssignmentTargetFlow(node.left); - } - function createBindBinaryExpressionFlow() { - return createBinaryExpressionTrampoline(onEnter, onLeft, onOperator, onRight, onExit, - /*foldState*/ - void 0); - function onEnter(node, state) { - if (state) { - state.stackIndex++; - setParent(node, parent2); - var saveInStrictMode = inStrictMode; - bindWorker(node); - var saveParent = parent2; - parent2 = node; - state.skip = false; - state.inStrictModeStack[state.stackIndex] = saveInStrictMode; - state.parentStack[state.stackIndex] = saveParent; - } - else { - state = { - stackIndex: 0, - skip: false, - inStrictModeStack: [void 0], - parentStack: [void 0] - }; - } - var operator = node.operatorToken.kind; - if (isLogicalOrCoalescingBinaryOperator(operator) || isLogicalOrCoalescingAssignmentOperator(operator)) { - if (isTopLevelLogicalExpression(node)) { - var postExpressionLabel = createBranchLabel(); - bindLogicalLikeExpression(node, postExpressionLabel, postExpressionLabel); - currentFlow = finishFlowLabel(postExpressionLabel); - } - else { - bindLogicalLikeExpression(node, currentTrueTarget, currentFalseTarget); - } - state.skip = true; - } - return state; - } - function onLeft(left, state, node) { - if (!state.skip) { - var maybeBound = maybeBind2(left); - if (node.operatorToken.kind === 28 /* CommaToken */) { - maybeBindExpressionFlowIfCall(left); - } - return maybeBound; - } - } - function onOperator(operatorToken, state, _node) { - if (!state.skip) { - bind(operatorToken); - } - } - function onRight(right, state, node) { - if (!state.skip) { - var maybeBound = maybeBind2(right); - if (node.operatorToken.kind === 28 /* CommaToken */) { - maybeBindExpressionFlowIfCall(right); - } - return maybeBound; - } - } - function onExit(node, state) { - if (!state.skip) { - var operator = node.operatorToken.kind; - if (isAssignmentOperator(operator) && !isAssignmentTarget(node)) { - bindAssignmentTargetFlow(node.left); - if (operator === 64 /* EqualsToken */ && node.left.kind === 212 /* ElementAccessExpression */) { - var elementAccess = node.left; - if (isNarrowableOperand(elementAccess.expression)) { - currentFlow = createFlowMutation(256 /* ArrayMutation */, currentFlow, node); - } - } - } - } - var savedInStrictMode = state.inStrictModeStack[state.stackIndex]; - var savedParent = state.parentStack[state.stackIndex]; - if (savedInStrictMode !== void 0) { - inStrictMode = savedInStrictMode; - } - if (savedParent !== void 0) { - parent2 = savedParent; - } - state.skip = false; - state.stackIndex--; - } - function maybeBind2(node) { - if (node && isBinaryExpression(node) && !isDestructuringAssignment(node)) { - return node; - } - bind(node); - } - } - function bindDeleteExpressionFlow(node) { - bindEachChild(node); - if (node.expression.kind === 211 /* PropertyAccessExpression */) { - bindAssignmentTargetFlow(node.expression); - } - } - function bindConditionalExpressionFlow(node) { - var trueLabel = createBranchLabel(); - var falseLabel = createBranchLabel(); - var postExpressionLabel = createBranchLabel(); - bindCondition(node.condition, trueLabel, falseLabel); - currentFlow = finishFlowLabel(trueLabel); - bind(node.questionToken); - bind(node.whenTrue); - addAntecedent(postExpressionLabel, currentFlow); - currentFlow = finishFlowLabel(falseLabel); - bind(node.colonToken); - bind(node.whenFalse); - addAntecedent(postExpressionLabel, currentFlow); - currentFlow = finishFlowLabel(postExpressionLabel); - } - function bindInitializedVariableFlow(node) { - var e_142, _t; - var name = !isOmittedExpression(node) ? node.name : void 0; - if (isBindingPattern(name)) { - try { - for (var _u = __values(name.elements), _v = _u.next(); !_v.done; _v = _u.next()) { - var child = _v.value; - bindInitializedVariableFlow(child); - } - } - catch (e_142_1) { e_142 = { error: e_142_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_142) throw e_142.error; } - } - } - else { - currentFlow = createFlowMutation(16 /* Assignment */, currentFlow, node); - } - } - function bindVariableDeclarationFlow(node) { - bindEachChild(node); - if (node.initializer || isForInOrOfStatement(node.parent.parent)) { - bindInitializedVariableFlow(node); - } - } - function bindBindingElementFlow(node) { - bind(node.dotDotDotToken); - bind(node.propertyName); - bindInitializer(node.initializer); - bind(node.name); - } - function bindParameterFlow(node) { - bindEach(node.modifiers); - bind(node.dotDotDotToken); - bind(node.questionToken); - bind(node.type); - bindInitializer(node.initializer); - bind(node.name); - } - function bindInitializer(node) { - if (!node) { - return; - } - var entryFlow = currentFlow; - bind(node); - if (entryFlow === unreachableFlow || entryFlow === currentFlow) { - return; - } - var exitFlow = createBranchLabel(); - addAntecedent(exitFlow, entryFlow); - addAntecedent(exitFlow, currentFlow); - currentFlow = finishFlowLabel(exitFlow); - } - function bindJSDocTypeAlias(node) { - bind(node.tagName); - if (node.kind !== 347 /* JSDocEnumTag */ && node.fullName) { - setParent(node.fullName, node); - setParentRecursive(node.fullName, - /*incremental*/ - false); - } - if (typeof node.comment !== "string") { - bindEach(node.comment); - } - } - function bindJSDocClassTag(node) { - bindEachChild(node); - var host = getHostSignatureFromJSDoc(node); - if (host && host.kind !== 174 /* MethodDeclaration */) { - addDeclarationToSymbol(host.symbol, host, 32 /* Class */); - } - } - function bindOptionalExpression(node, trueTarget, falseTarget) { - doWithConditionalBranches(bind, node, trueTarget, falseTarget); - if (!isOptionalChain(node) || isOutermostOptionalChain(node)) { - addAntecedent(trueTarget, createFlowCondition(32 /* TrueCondition */, currentFlow, node)); - addAntecedent(falseTarget, createFlowCondition(64 /* FalseCondition */, currentFlow, node)); - } - } - function bindOptionalChainRest(node) { - switch (node.kind) { - case 211 /* PropertyAccessExpression */: - bind(node.questionDotToken); - bind(node.name); - break; - case 212 /* ElementAccessExpression */: - bind(node.questionDotToken); - bind(node.argumentExpression); - break; - case 213 /* CallExpression */: - bind(node.questionDotToken); - bindEach(node.typeArguments); - bindEach(node.arguments); - break; - } - } - function bindOptionalChain(node, trueTarget, falseTarget) { - var preChainLabel = isOptionalChainRoot(node) ? createBranchLabel() : void 0; - bindOptionalExpression(node.expression, preChainLabel || trueTarget, falseTarget); - if (preChainLabel) { - currentFlow = finishFlowLabel(preChainLabel); - } - doWithConditionalBranches(bindOptionalChainRest, node, trueTarget, falseTarget); - if (isOutermostOptionalChain(node)) { - addAntecedent(trueTarget, createFlowCondition(32 /* TrueCondition */, currentFlow, node)); - addAntecedent(falseTarget, createFlowCondition(64 /* FalseCondition */, currentFlow, node)); - } - } - function bindOptionalChainFlow(node) { - if (isTopLevelLogicalExpression(node)) { - var postExpressionLabel = createBranchLabel(); - bindOptionalChain(node, postExpressionLabel, postExpressionLabel); - currentFlow = finishFlowLabel(postExpressionLabel); - } - else { - bindOptionalChain(node, currentTrueTarget, currentFalseTarget); - } - } - function bindNonNullExpressionFlow(node) { - if (isOptionalChain(node)) { - bindOptionalChainFlow(node); - } - else { - bindEachChild(node); - } - } - function bindAccessExpressionFlow(node) { - if (isOptionalChain(node)) { - bindOptionalChainFlow(node); - } - else { - bindEachChild(node); - } - } - function bindCallExpressionFlow(node) { - if (isOptionalChain(node)) { - bindOptionalChainFlow(node); - } - else { - var expr = skipParentheses(node.expression); - if (expr.kind === 218 /* FunctionExpression */ || expr.kind === 219 /* ArrowFunction */) { - bindEach(node.typeArguments); - bindEach(node.arguments); - bind(node.expression); - } - else { - bindEachChild(node); - if (node.expression.kind === 108 /* SuperKeyword */) { - currentFlow = createFlowCall(currentFlow, node); - } - } - } - if (node.expression.kind === 211 /* PropertyAccessExpression */) { - var propertyAccess = node.expression; - if (isIdentifier(propertyAccess.name) && isNarrowableOperand(propertyAccess.expression) && isPushOrUnshiftIdentifier(propertyAccess.name)) { - currentFlow = createFlowMutation(256 /* ArrayMutation */, currentFlow, node); - } - } - } - function addToContainerChain(next) { - if (lastContainer) { - lastContainer.nextContainer = next; - } - lastContainer = next; - } - function declareSymbolAndAddToSymbolTable(node, symbolFlags, symbolExcludes) { - switch (container.kind) { - case 267 /* ModuleDeclaration */: - return declareModuleMember(node, symbolFlags, symbolExcludes); - case 312 /* SourceFile */: - return declareSourceFileMember(node, symbolFlags, symbolExcludes); - case 231 /* ClassExpression */: - case 263 /* ClassDeclaration */: - return declareClassMember(node, symbolFlags, symbolExcludes); - case 266 /* EnumDeclaration */: - return declareSymbol(container.symbol.exports, container.symbol, node, symbolFlags, symbolExcludes); - case 187 /* TypeLiteral */: - case 329 /* JSDocTypeLiteral */: - case 210 /* ObjectLiteralExpression */: - case 264 /* InterfaceDeclaration */: - case 292 /* JsxAttributes */: - return declareSymbol(container.symbol.members, container.symbol, node, symbolFlags, symbolExcludes); - case 184 /* FunctionType */: - case 185 /* ConstructorType */: - case 179 /* CallSignature */: - case 180 /* ConstructSignature */: - case 330 /* JSDocSignature */: - case 181 /* IndexSignature */: - case 174 /* MethodDeclaration */: - case 173 /* MethodSignature */: - case 176 /* Constructor */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - case 262 /* FunctionDeclaration */: - case 218 /* FunctionExpression */: - case 219 /* ArrowFunction */: - case 324 /* JSDocFunctionType */: - case 175 /* ClassStaticBlockDeclaration */: - case 265 /* TypeAliasDeclaration */: - case 200 /* MappedType */: - if (container.locals) - Debug.assertNode(container, canHaveLocals); - return declareSymbol(container.locals, - /*parent*/ - void 0, node, symbolFlags, symbolExcludes); - } - } - function declareClassMember(node, symbolFlags, symbolExcludes) { - return isStatic(node) ? declareSymbol(container.symbol.exports, container.symbol, node, symbolFlags, symbolExcludes) : declareSymbol(container.symbol.members, container.symbol, node, symbolFlags, symbolExcludes); - } - function declareSourceFileMember(node, symbolFlags, symbolExcludes) { - return isExternalModule(file) ? declareModuleMember(node, symbolFlags, symbolExcludes) : declareSymbol(file.locals, - /*parent*/ - void 0, node, symbolFlags, symbolExcludes); - } - function hasExportDeclarations(node) { - var body = isSourceFile(node) ? node : tryCast(node.body, isModuleBlock); - return !!body && body.statements.some(function (s) { return isExportDeclaration(s) || isExportAssignment(s); }); - } - function setExportContextFlag(node) { - if (node.flags & 33554432 /* Ambient */ && !hasExportDeclarations(node)) { - node.flags |= 128 /* ExportContext */; - } - else { - node.flags &= ~128 /* ExportContext */; - } - } - function bindModuleDeclaration(node) { - setExportContextFlag(node); - if (isAmbientModule(node)) { - if (hasSyntacticModifier(node, 1 /* Export */)) { - errorOnFirstToken(node, Diagnostics.export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always_visible); - } - if (isModuleAugmentationExternal(node)) { - declareModuleSymbol(node); - } - else { - var pattern = void 0; - if (node.name.kind === 11 /* StringLiteral */) { - var text = node.name.text; - pattern = tryParsePattern(text); - if (pattern === void 0) { - errorOnFirstToken(node.name, Diagnostics.Pattern_0_can_have_at_most_one_Asterisk_character, text); - } - } - var symbol = declareSymbolAndAddToSymbolTable(node, 512 /* ValueModule */, 110735 /* ValueModuleExcludes */); - file.patternAmbientModules = append(file.patternAmbientModules, pattern && !isString(pattern) ? { pattern: pattern, symbol: symbol } : void 0); - } - } - else { - var state = declareModuleSymbol(node); - if (state !== 0 /* NonInstantiated */) { - var symbol = node.symbol; - symbol.constEnumOnlyModule = !(symbol.flags & (16 /* Function */ | 32 /* Class */ | 256 /* RegularEnum */)) && state === 2 /* ConstEnumOnly */ && symbol.constEnumOnlyModule !== false; - } - } - } - function declareModuleSymbol(node) { - var state = getModuleInstanceState(node); - var instantiated = state !== 0 /* NonInstantiated */; - declareSymbolAndAddToSymbolTable(node, instantiated ? 512 /* ValueModule */ : 1024 /* NamespaceModule */, instantiated ? 110735 /* ValueModuleExcludes */ : 0 /* NamespaceModuleExcludes */); - return state; - } - function bindFunctionOrConstructorType(node) { - var symbol = createSymbol(131072 /* Signature */, getDeclarationName(node)); - addDeclarationToSymbol(symbol, node, 131072 /* Signature */); - var typeLiteralSymbol = createSymbol(2048 /* TypeLiteral */, "__type" /* Type */); - addDeclarationToSymbol(typeLiteralSymbol, node, 2048 /* TypeLiteral */); - typeLiteralSymbol.members = createSymbolTable(); - typeLiteralSymbol.members.set(symbol.escapedName, symbol); - } - function bindObjectLiteralExpression(node) { - return bindAnonymousDeclaration(node, 4096 /* ObjectLiteral */, "__object" /* Object */); - } - function bindJsxAttributes(node) { - return bindAnonymousDeclaration(node, 4096 /* ObjectLiteral */, "__jsxAttributes" /* JSXAttributes */); - } - function bindJsxAttribute(node, symbolFlags, symbolExcludes) { - return declareSymbolAndAddToSymbolTable(node, symbolFlags, symbolExcludes); - } - function bindAnonymousDeclaration(node, symbolFlags, name) { - var symbol = createSymbol(symbolFlags, name); - if (symbolFlags & (8 /* EnumMember */ | 106500 /* ClassMember */)) { - symbol.parent = container.symbol; - } - addDeclarationToSymbol(symbol, node, symbolFlags); - return symbol; - } - function bindBlockScopedDeclaration(node, symbolFlags, symbolExcludes) { - switch (blockScopeContainer.kind) { - case 267 /* ModuleDeclaration */: - declareModuleMember(node, symbolFlags, symbolExcludes); - break; - case 312 /* SourceFile */: - if (isExternalOrCommonJsModule(container)) { - declareModuleMember(node, symbolFlags, symbolExcludes); - break; - } - default: - Debug.assertNode(blockScopeContainer, canHaveLocals); - if (!blockScopeContainer.locals) { - blockScopeContainer.locals = createSymbolTable(); - addToContainerChain(blockScopeContainer); - } - declareSymbol(blockScopeContainer.locals, - /*parent*/ - void 0, node, symbolFlags, symbolExcludes); - } - } - function delayedBindJSDocTypedefTag() { - var e_143, _t; - if (!delayedTypeAliases) { - return; - } - var saveContainer = container; - var saveLastContainer = lastContainer; - var saveBlockScopeContainer = blockScopeContainer; - var saveParent = parent2; - var saveCurrentFlow = currentFlow; - try { - for (var delayedTypeAliases_1 = __values(delayedTypeAliases), delayedTypeAliases_1_1 = delayedTypeAliases_1.next(); !delayedTypeAliases_1_1.done; delayedTypeAliases_1_1 = delayedTypeAliases_1.next()) { - var typeAlias = delayedTypeAliases_1_1.value; - var host = typeAlias.parent.parent; - container = getEnclosingContainer(host) || file; - blockScopeContainer = getEnclosingBlockScopeContainer(host) || file; - currentFlow = initFlowNode({ flags: 2 /* Start */ }); - parent2 = typeAlias; - bind(typeAlias.typeExpression); - var declName = getNameOfDeclaration(typeAlias); - if ((isJSDocEnumTag(typeAlias) || !typeAlias.fullName) && declName && isPropertyAccessEntityNameExpression(declName.parent)) { - var isTopLevel = isTopLevelNamespaceAssignment(declName.parent); - if (isTopLevel) { - bindPotentiallyMissingNamespaces(file.symbol, declName.parent, isTopLevel, !!findAncestor(declName, function (d) { return isPropertyAccessExpression(d) && d.name.escapedText === "prototype"; }), - /*containerIsClass*/ - false); - var oldContainer = container; - switch (getAssignmentDeclarationPropertyAccessKind(declName.parent)) { - case 1 /* ExportsProperty */: - case 2 /* ModuleExports */: - if (!isExternalOrCommonJsModule(file)) { - container = void 0; - } - else { - container = file; - } - break; - case 4 /* ThisProperty */: - container = declName.parent.expression; - break; - case 3 /* PrototypeProperty */: - container = declName.parent.expression.name; - break; - case 5 /* Property */: - container = isExportsOrModuleExportsOrAlias(file, declName.parent.expression) ? file : isPropertyAccessExpression(declName.parent.expression) ? declName.parent.expression.name : declName.parent.expression; - break; - case 0 /* None */: - return Debug.fail("Shouldn't have detected typedef or enum on non-assignment declaration"); - } - if (container) { - declareModuleMember(typeAlias, 524288 /* TypeAlias */, 788968 /* TypeAliasExcludes */); - } - container = oldContainer; - } - } - else if (isJSDocEnumTag(typeAlias) || !typeAlias.fullName || typeAlias.fullName.kind === 80 /* Identifier */) { - parent2 = typeAlias.parent; - bindBlockScopedDeclaration(typeAlias, 524288 /* TypeAlias */, 788968 /* TypeAliasExcludes */); - } - else { - bind(typeAlias.fullName); - } - } - } - catch (e_143_1) { e_143 = { error: e_143_1 }; } - finally { - try { - if (delayedTypeAliases_1_1 && !delayedTypeAliases_1_1.done && (_t = delayedTypeAliases_1.return)) _t.call(delayedTypeAliases_1); - } - finally { if (e_143) throw e_143.error; } - } - container = saveContainer; - lastContainer = saveLastContainer; - blockScopeContainer = saveBlockScopeContainer; - parent2 = saveParent; - currentFlow = saveCurrentFlow; - } - function checkContextualIdentifier(node) { - if (!file.parseDiagnostics.length && !(node.flags & 33554432 /* Ambient */) && !(node.flags & 16777216 /* JSDoc */) && !isIdentifierName(node)) { - var originalKeywordKind = identifierToKeywordKind(node); - if (originalKeywordKind === void 0) { - return; - } - if (inStrictMode && originalKeywordKind >= 119 /* FirstFutureReservedWord */ && originalKeywordKind <= 127 /* LastFutureReservedWord */) { - file.bindDiagnostics.push(createDiagnosticForNode2(node, getStrictModeIdentifierMessage(node), declarationNameToString(node))); - } - else if (originalKeywordKind === 135 /* AwaitKeyword */) { - if (isExternalModule(file) && isInTopLevelContext(node)) { - file.bindDiagnostics.push(createDiagnosticForNode2(node, Diagnostics.Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module, declarationNameToString(node))); - } - else if (node.flags & 65536 /* AwaitContext */) { - file.bindDiagnostics.push(createDiagnosticForNode2(node, Diagnostics.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here, declarationNameToString(node))); - } - } - else if (originalKeywordKind === 127 /* YieldKeyword */ && node.flags & 16384 /* YieldContext */) { - file.bindDiagnostics.push(createDiagnosticForNode2(node, Diagnostics.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here, declarationNameToString(node))); - } - } - } - function getStrictModeIdentifierMessage(node) { - if (getContainingClass(node)) { - return Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_strict_mode; - } - if (file.externalModuleIndicator) { - return Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode; - } - return Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode; - } - function checkPrivateIdentifier(node) { - if (node.escapedText === "#constructor") { - if (!file.parseDiagnostics.length) { - file.bindDiagnostics.push(createDiagnosticForNode2(node, Diagnostics.constructor_is_a_reserved_word, declarationNameToString(node))); - } - } - } - function checkStrictModeBinaryExpression(node) { - if (inStrictMode && isLeftHandSideExpression(node.left) && isAssignmentOperator(node.operatorToken.kind)) { - checkStrictModeEvalOrArguments(node, node.left); - } - } - function checkStrictModeCatchClause(node) { - if (inStrictMode && node.variableDeclaration) { - checkStrictModeEvalOrArguments(node, node.variableDeclaration.name); - } - } - function checkStrictModeDeleteExpression(node) { - if (inStrictMode && node.expression.kind === 80 /* Identifier */) { - var span = getErrorSpanForNode(file, node.expression); - file.bindDiagnostics.push(createFileDiagnostic(file, span.start, span.length, Diagnostics.delete_cannot_be_called_on_an_identifier_in_strict_mode)); - } - } - function isEvalOrArgumentsIdentifier(node) { - return isIdentifier(node) && (node.escapedText === "eval" || node.escapedText === "arguments"); - } - function checkStrictModeEvalOrArguments(contextNode, name) { - if (name && name.kind === 80 /* Identifier */) { - var identifier = name; - if (isEvalOrArgumentsIdentifier(identifier)) { - var span = getErrorSpanForNode(file, name); - file.bindDiagnostics.push(createFileDiagnostic(file, span.start, span.length, getStrictModeEvalOrArgumentsMessage(contextNode), idText(identifier))); - } - } - } - function getStrictModeEvalOrArgumentsMessage(node) { - if (getContainingClass(node)) { - return Diagnostics.Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of_0_For_more_information_see_https_Colon_Slash_Slashdeveloper_mozilla_org_Slashen_US_Slashdocs_SlashWeb_SlashJavaScript_SlashReference_SlashStrict_mode; - } - if (file.externalModuleIndicator) { - return Diagnostics.Invalid_use_of_0_Modules_are_automatically_in_strict_mode; - } - return Diagnostics.Invalid_use_of_0_in_strict_mode; - } - function checkStrictModeFunctionName(node) { - if (inStrictMode) { - checkStrictModeEvalOrArguments(node, node.name); - } - } - function getStrictModeBlockScopeFunctionDeclarationMessage(node) { - if (getContainingClass(node)) { - return Diagnostics.Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Class_definitions_are_automatically_in_strict_mode; - } - if (file.externalModuleIndicator) { - return Diagnostics.Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Modules_are_automatically_in_strict_mode; - } - return Diagnostics.Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5; - } - function checkStrictModeFunctionDeclaration(node) { - if (languageVersion < 2 /* ES2015 */) { - if (blockScopeContainer.kind !== 312 /* SourceFile */ && blockScopeContainer.kind !== 267 /* ModuleDeclaration */ && !isFunctionLikeOrClassStaticBlockDeclaration(blockScopeContainer)) { - var errorSpan = getErrorSpanForNode(file, node); - file.bindDiagnostics.push(createFileDiagnostic(file, errorSpan.start, errorSpan.length, getStrictModeBlockScopeFunctionDeclarationMessage(node))); - } - } - } - function checkStrictModePostfixUnaryExpression(node) { - if (inStrictMode) { - checkStrictModeEvalOrArguments(node, node.operand); - } - } - function checkStrictModePrefixUnaryExpression(node) { - if (inStrictMode) { - if (node.operator === 46 /* PlusPlusToken */ || node.operator === 47 /* MinusMinusToken */) { - checkStrictModeEvalOrArguments(node, node.operand); - } - } - } - function checkStrictModeWithStatement(node) { - if (inStrictMode) { - errorOnFirstToken(node, Diagnostics.with_statements_are_not_allowed_in_strict_mode); - } - } - function checkStrictModeLabeledStatement(node) { - if (inStrictMode && getEmitScriptTarget(options) >= 2 /* ES2015 */) { - if (isDeclarationStatement(node.statement) || isVariableStatement(node.statement)) { - errorOnFirstToken(node.label, Diagnostics.A_label_is_not_allowed_here); - } - } - } - function errorOnFirstToken(node, message) { - var args = []; - for (var _t = 2; _t < arguments.length; _t++) { - args[_t - 2] = arguments[_t]; - } - var span = getSpanOfTokenAtPosition(file, node.pos); - file.bindDiagnostics.push(createFileDiagnostic.apply(void 0, __spreadArray([file, span.start, span.length, message], __read(args), false))); - } - function errorOrSuggestionOnNode(isError, node, message) { - errorOrSuggestionOnRange(isError, node, node, message); - } - function errorOrSuggestionOnRange(isError, startNode2, endNode2, message) { - addErrorOrSuggestionDiagnostic(isError, { pos: getTokenPosOfNode(startNode2, file), end: endNode2.end }, message); - } - function addErrorOrSuggestionDiagnostic(isError, range, message) { - var diag2 = createFileDiagnostic(file, range.pos, range.end - range.pos, message); - if (isError) { - file.bindDiagnostics.push(diag2); - } - else { - file.bindSuggestionDiagnostics = append(file.bindSuggestionDiagnostics, __assign(__assign({}, diag2), { category: 2 /* Suggestion */ })); - } - } - function bind(node) { - if (!node) { - return; - } - setParent(node, parent2); - if (tracing) - node.tracingPath = file.path; - var saveInStrictMode = inStrictMode; - bindWorker(node); - if (node.kind > 165 /* LastToken */) { - var saveParent = parent2; - parent2 = node; - var containerFlags = getContainerFlags(node); - if (containerFlags === 0 /* None */) { - bindChildren(node); - } - else { - bindContainer(node, containerFlags); - } - parent2 = saveParent; - } - else { - var saveParent = parent2; - if (node.kind === 1 /* EndOfFileToken */) - parent2 = node; - bindJSDoc(node); - parent2 = saveParent; - } - inStrictMode = saveInStrictMode; - } - function bindJSDoc(node) { - var e_144, _t, e_145, _u; - if (hasJSDocNodes(node)) { - if (isInJSFile(node)) { - try { - for (var _v = __values(node.jsDoc), _w = _v.next(); !_w.done; _w = _v.next()) { - var j = _w.value; - bind(j); - } - } - catch (e_144_1) { e_144 = { error: e_144_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_144) throw e_144.error; } - } - } - else { - try { - for (var _x = __values(node.jsDoc), _y = _x.next(); !_y.done; _y = _x.next()) { - var j = _y.value; - setParent(j, node); - setParentRecursive(j, - /*incremental*/ - false); - } - } - catch (e_145_1) { e_145 = { error: e_145_1 }; } - finally { - try { - if (_y && !_y.done && (_u = _x.return)) _u.call(_x); - } - finally { if (e_145) throw e_145.error; } - } - } - } - } - function updateStrictModeStatementList(statements) { - var e_146, _t; - if (!inStrictMode) { - try { - for (var statements_3 = __values(statements), statements_3_1 = statements_3.next(); !statements_3_1.done; statements_3_1 = statements_3.next()) { - var statement = statements_3_1.value; - if (!isPrologueDirective(statement)) { - return; - } - if (isUseStrictPrologueDirective(statement)) { - inStrictMode = true; - return; - } - } - } - catch (e_146_1) { e_146 = { error: e_146_1 }; } - finally { - try { - if (statements_3_1 && !statements_3_1.done && (_t = statements_3.return)) _t.call(statements_3); - } - finally { if (e_146) throw e_146.error; } - } - } - } - function isUseStrictPrologueDirective(node) { - var nodeText2 = getSourceTextOfNodeFromSourceFile(file, node.expression); - return nodeText2 === '"use strict"' || nodeText2 === "'use strict'"; - } - function bindWorker(node) { - switch (node.kind) { - case 80 /* Identifier */: - if (node.flags & 4096 /* IdentifierIsInJSDocNamespace */) { - var parentNode = node.parent; - while (parentNode && !isJSDocTypeAlias(parentNode)) { - parentNode = parentNode.parent; - } - bindBlockScopedDeclaration(parentNode, 524288 /* TypeAlias */, 788968 /* TypeAliasExcludes */); - break; - } - case 110 /* ThisKeyword */: - if (currentFlow && (isExpression(node) || parent2.kind === 304 /* ShorthandPropertyAssignment */)) { - node.flowNode = currentFlow; - } - return checkContextualIdentifier(node); - case 166 /* QualifiedName */: - if (currentFlow && isPartOfTypeQuery(node)) { - node.flowNode = currentFlow; - } - break; - case 236 /* MetaProperty */: - case 108 /* SuperKeyword */: - node.flowNode = currentFlow; - break; - case 81 /* PrivateIdentifier */: - return checkPrivateIdentifier(node); - case 211 /* PropertyAccessExpression */: - case 212 /* ElementAccessExpression */: - var expr = node; - if (currentFlow && isNarrowableReference(expr)) { - expr.flowNode = currentFlow; - } - if (isSpecialPropertyDeclaration(expr)) { - bindSpecialPropertyDeclaration(expr); - } - if (isInJSFile(expr) && file.commonJsModuleIndicator && isModuleExportsAccessExpression(expr) && !lookupSymbolForName(blockScopeContainer, "module")) { - declareSymbol(file.locals, - /*parent*/ - void 0, expr.expression, 1 /* FunctionScopedVariable */ | 134217728 /* ModuleExports */, 111550 /* FunctionScopedVariableExcludes */); - } - break; - case 226 /* BinaryExpression */: - var specialKind = getAssignmentDeclarationKind(node); - switch (specialKind) { - case 1 /* ExportsProperty */: - bindExportsPropertyAssignment(node); - break; - case 2 /* ModuleExports */: - bindModuleExportsAssignment(node); - break; - case 3 /* PrototypeProperty */: - bindPrototypePropertyAssignment(node.left, node); - break; - case 6 /* Prototype */: - bindPrototypeAssignment(node); - break; - case 4 /* ThisProperty */: - bindThisPropertyAssignment(node); - break; - case 5 /* Property */: - var expression = node.left.expression; - if (isInJSFile(node) && isIdentifier(expression)) { - var symbol = lookupSymbolForName(blockScopeContainer, expression.escapedText); - if (isThisInitializedDeclaration(symbol == null ? void 0 : symbol.valueDeclaration)) { - bindThisPropertyAssignment(node); - break; - } - } - bindSpecialPropertyAssignment(node); - break; - case 0 /* None */: - break; - default: - Debug.fail("Unknown binary expression special property assignment kind"); - } - return checkStrictModeBinaryExpression(node); - case 299 /* CatchClause */: - return checkStrictModeCatchClause(node); - case 220 /* DeleteExpression */: - return checkStrictModeDeleteExpression(node); - case 225 /* PostfixUnaryExpression */: - return checkStrictModePostfixUnaryExpression(node); - case 224 /* PrefixUnaryExpression */: - return checkStrictModePrefixUnaryExpression(node); - case 254 /* WithStatement */: - return checkStrictModeWithStatement(node); - case 256 /* LabeledStatement */: - return checkStrictModeLabeledStatement(node); - case 197 /* ThisType */: - seenThisKeyword = true; - return; - case 182 /* TypePredicate */: - break; - case 168 /* TypeParameter */: - return bindTypeParameter(node); - case 169 /* Parameter */: - return bindParameter(node); - case 260 /* VariableDeclaration */: - return bindVariableDeclarationOrBindingElement(node); - case 208 /* BindingElement */: - node.flowNode = currentFlow; - return bindVariableDeclarationOrBindingElement(node); - case 172 /* PropertyDeclaration */: - case 171 /* PropertySignature */: - return bindPropertyWorker(node); - case 303 /* PropertyAssignment */: - case 304 /* ShorthandPropertyAssignment */: - return bindPropertyOrMethodOrAccessor(node, 4 /* Property */, 0 /* PropertyExcludes */); - case 306 /* EnumMember */: - return bindPropertyOrMethodOrAccessor(node, 8 /* EnumMember */, 900095 /* EnumMemberExcludes */); - case 179 /* CallSignature */: - case 180 /* ConstructSignature */: - case 181 /* IndexSignature */: - return declareSymbolAndAddToSymbolTable(node, 131072 /* Signature */, 0 /* None */); - case 174 /* MethodDeclaration */: - case 173 /* MethodSignature */: - return bindPropertyOrMethodOrAccessor(node, 8192 /* Method */ | (node.questionToken ? 16777216 /* Optional */ : 0 /* None */), isObjectLiteralMethod(node) ? 0 /* PropertyExcludes */ : 103359 /* MethodExcludes */); - case 262 /* FunctionDeclaration */: - return bindFunctionDeclaration(node); - case 176 /* Constructor */: - return declareSymbolAndAddToSymbolTable(node, 16384 /* Constructor */, - /*symbolExcludes:*/ - 0 /* None */); - case 177 /* GetAccessor */: - return bindPropertyOrMethodOrAccessor(node, 32768 /* GetAccessor */, 46015 /* GetAccessorExcludes */); - case 178 /* SetAccessor */: - return bindPropertyOrMethodOrAccessor(node, 65536 /* SetAccessor */, 78783 /* SetAccessorExcludes */); - case 184 /* FunctionType */: - case 324 /* JSDocFunctionType */: - case 330 /* JSDocSignature */: - case 185 /* ConstructorType */: - return bindFunctionOrConstructorType(node); - case 187 /* TypeLiteral */: - case 329 /* JSDocTypeLiteral */: - case 200 /* MappedType */: - return bindAnonymousTypeWorker(node); - case 339 /* JSDocClassTag */: - return bindJSDocClassTag(node); - case 210 /* ObjectLiteralExpression */: - return bindObjectLiteralExpression(node); - case 218 /* FunctionExpression */: - case 219 /* ArrowFunction */: - return bindFunctionExpression(node); - case 213 /* CallExpression */: - var assignmentKind = getAssignmentDeclarationKind(node); - switch (assignmentKind) { - case 7 /* ObjectDefinePropertyValue */: - return bindObjectDefinePropertyAssignment(node); - case 8 /* ObjectDefinePropertyExports */: - return bindObjectDefinePropertyExport(node); - case 9 /* ObjectDefinePrototypeProperty */: - return bindObjectDefinePrototypeProperty(node); - case 0 /* None */: - break; - default: - return Debug.fail("Unknown call expression assignment declaration kind"); - } - if (isInJSFile(node)) { - bindCallExpression(node); - } - break; - case 231 /* ClassExpression */: - case 263 /* ClassDeclaration */: - inStrictMode = true; - return bindClassLikeDeclaration(node); - case 264 /* InterfaceDeclaration */: - return bindBlockScopedDeclaration(node, 64 /* Interface */, 788872 /* InterfaceExcludes */); - case 265 /* TypeAliasDeclaration */: - return bindBlockScopedDeclaration(node, 524288 /* TypeAlias */, 788968 /* TypeAliasExcludes */); - case 266 /* EnumDeclaration */: - return bindEnumDeclaration(node); - case 267 /* ModuleDeclaration */: - return bindModuleDeclaration(node); - case 292 /* JsxAttributes */: - return bindJsxAttributes(node); - case 291 /* JsxAttribute */: - return bindJsxAttribute(node, 4 /* Property */, 0 /* PropertyExcludes */); - case 271 /* ImportEqualsDeclaration */: - case 274 /* NamespaceImport */: - case 276 /* ImportSpecifier */: - case 281 /* ExportSpecifier */: - return declareSymbolAndAddToSymbolTable(node, 2097152 /* Alias */, 2097152 /* AliasExcludes */); - case 270 /* NamespaceExportDeclaration */: - return bindNamespaceExportDeclaration(node); - case 273 /* ImportClause */: - return bindImportClause(node); - case 278 /* ExportDeclaration */: - return bindExportDeclaration(node); - case 277 /* ExportAssignment */: - return bindExportAssignment(node); - case 312 /* SourceFile */: - updateStrictModeStatementList(node.statements); - return bindSourceFileIfExternalModule(); - case 241 /* Block */: - if (!isFunctionLikeOrClassStaticBlockDeclaration(node.parent)) { - return; - } - case 268 /* ModuleBlock */: - return updateStrictModeStatementList(node.statements); - case 348 /* JSDocParameterTag */: - if (node.parent.kind === 330 /* JSDocSignature */) { - return bindParameter(node); - } - if (node.parent.kind !== 329 /* JSDocTypeLiteral */) { - break; - } - case 355 /* JSDocPropertyTag */: - var propTag = node; - var flags = propTag.isBracketed || propTag.typeExpression && propTag.typeExpression.type.kind === 323 /* JSDocOptionalType */ ? 4 /* Property */ | 16777216 /* Optional */ : 4 /* Property */; - return declareSymbolAndAddToSymbolTable(propTag, flags, 0 /* PropertyExcludes */); - case 353 /* JSDocTypedefTag */: - case 345 /* JSDocCallbackTag */: - case 347 /* JSDocEnumTag */: - return (delayedTypeAliases || (delayedTypeAliases = [])).push(node); - case 346 /* JSDocOverloadTag */: - return bind(node.typeExpression); - } - } - function bindPropertyWorker(node) { - var isAutoAccessor = isAutoAccessorPropertyDeclaration(node); - var includes = isAutoAccessor ? 98304 /* Accessor */ : 4 /* Property */; - var excludes = isAutoAccessor ? 13247 /* AccessorExcludes */ : 0 /* PropertyExcludes */; - return bindPropertyOrMethodOrAccessor(node, includes | (node.questionToken ? 16777216 /* Optional */ : 0 /* None */), excludes); - } - function bindAnonymousTypeWorker(node) { - return bindAnonymousDeclaration(node, 2048 /* TypeLiteral */, "__type" /* Type */); - } - function bindSourceFileIfExternalModule() { - setExportContextFlag(file); - if (isExternalModule(file)) { - bindSourceFileAsExternalModule(); - } - else if (isJsonSourceFile(file)) { - bindSourceFileAsExternalModule(); - var originalSymbol = file.symbol; - declareSymbol(file.symbol.exports, file.symbol, file, 4 /* Property */, 67108863 /* All */); - file.symbol = originalSymbol; - } - } - function bindSourceFileAsExternalModule() { - bindAnonymousDeclaration(file, 512 /* ValueModule */, "\"".concat(removeFileExtension(file.fileName), "\"")); - } - function bindExportAssignment(node) { - if (!container.symbol || !container.symbol.exports) { - bindAnonymousDeclaration(node, 111551 /* Value */, getDeclarationName(node)); - } - else { - var flags = exportAssignmentIsAlias(node) ? 2097152 /* Alias */ : 4 /* Property */; - var symbol = declareSymbol(container.symbol.exports, container.symbol, node, flags, 67108863 /* All */); - if (node.isExportEquals) { - setValueDeclaration(symbol, node); - } - } - } - function bindNamespaceExportDeclaration(node) { - if (some(node.modifiers)) { - file.bindDiagnostics.push(createDiagnosticForNode2(node, Diagnostics.Modifiers_cannot_appear_here)); - } - var diag2 = !isSourceFile(node.parent) ? Diagnostics.Global_module_exports_may_only_appear_at_top_level : !isExternalModule(node.parent) ? Diagnostics.Global_module_exports_may_only_appear_in_module_files : !node.parent.isDeclarationFile ? Diagnostics.Global_module_exports_may_only_appear_in_declaration_files : void 0; - if (diag2) { - file.bindDiagnostics.push(createDiagnosticForNode2(node, diag2)); - } - else { - file.symbol.globalExports = file.symbol.globalExports || createSymbolTable(); - declareSymbol(file.symbol.globalExports, file.symbol, node, 2097152 /* Alias */, 2097152 /* AliasExcludes */); - } - } - function bindExportDeclaration(node) { - if (!container.symbol || !container.symbol.exports) { - bindAnonymousDeclaration(node, 8388608 /* ExportStar */, getDeclarationName(node)); - } - else if (!node.exportClause) { - declareSymbol(container.symbol.exports, container.symbol, node, 8388608 /* ExportStar */, 0 /* None */); - } - else if (isNamespaceExport(node.exportClause)) { - setParent(node.exportClause, node); - declareSymbol(container.symbol.exports, container.symbol, node.exportClause, 2097152 /* Alias */, 2097152 /* AliasExcludes */); - } - } - function bindImportClause(node) { - if (node.name) { - declareSymbolAndAddToSymbolTable(node, 2097152 /* Alias */, 2097152 /* AliasExcludes */); - } - } - function setCommonJsModuleIndicator(node) { - if (file.externalModuleIndicator && file.externalModuleIndicator !== true) { - return false; - } - if (!file.commonJsModuleIndicator) { - file.commonJsModuleIndicator = node; - if (!file.externalModuleIndicator) { - bindSourceFileAsExternalModule(); - } - } - return true; - } - function bindObjectDefinePropertyExport(node) { - if (!setCommonJsModuleIndicator(node)) { - return; - } - var symbol = forEachIdentifierInEntityName(node.arguments[0], - /*parent*/ - void 0, function (id, symbol2) { - if (symbol2) { - addDeclarationToSymbol(symbol2, id, 1536 /* Module */ | 67108864 /* Assignment */); - } - return symbol2; - }); - if (symbol) { - var flags = 4 /* Property */ | 1048576 /* ExportValue */; - declareSymbol(symbol.exports, symbol, node, flags, 0 /* None */); - } - } - function bindExportsPropertyAssignment(node) { - if (!setCommonJsModuleIndicator(node)) { - return; - } - var symbol = forEachIdentifierInEntityName(node.left.expression, - /*parent*/ - void 0, function (id, symbol2) { - if (symbol2) { - addDeclarationToSymbol(symbol2, id, 1536 /* Module */ | 67108864 /* Assignment */); - } - return symbol2; - }); - if (symbol) { - var isAlias = isAliasableExpression(node.right) && (isExportsIdentifier(node.left.expression) || isModuleExportsAccessExpression(node.left.expression)); - var flags = isAlias ? 2097152 /* Alias */ : 4 /* Property */ | 1048576 /* ExportValue */; - setParent(node.left, node); - declareSymbol(symbol.exports, symbol, node.left, flags, 0 /* None */); - } - } - function bindModuleExportsAssignment(node) { - if (!setCommonJsModuleIndicator(node)) { - return; - } - var assignedExpression = getRightMostAssignedExpression(node.right); - if (isEmptyObjectLiteral(assignedExpression) || container === file && isExportsOrModuleExportsOrAlias(file, assignedExpression)) { - return; - } - if (isObjectLiteralExpression(assignedExpression) && every(assignedExpression.properties, isShorthandPropertyAssignment)) { - forEach(assignedExpression.properties, bindExportAssignedObjectMemberAlias); - return; - } - var flags = exportAssignmentIsAlias(node) ? 2097152 /* Alias */ : 4 /* Property */ | 1048576 /* ExportValue */ | 512 /* ValueModule */; - var symbol = declareSymbol(file.symbol.exports, file.symbol, node, flags | 67108864 /* Assignment */, 0 /* None */); - setValueDeclaration(symbol, node); - } - function bindExportAssignedObjectMemberAlias(node) { - declareSymbol(file.symbol.exports, file.symbol, node, 2097152 /* Alias */ | 67108864 /* Assignment */, 0 /* None */); - } - function bindThisPropertyAssignment(node) { - Debug.assert(isInJSFile(node)); - var hasPrivateIdentifier = isBinaryExpression(node) && isPropertyAccessExpression(node.left) && isPrivateIdentifier(node.left.name) || isPropertyAccessExpression(node) && isPrivateIdentifier(node.name); - if (hasPrivateIdentifier) { - return; - } - var thisContainer = getThisContainer(node, - /*includeArrowFunctions*/ - false, - /*includeClassComputedPropertyName*/ - false); - switch (thisContainer.kind) { - case 262 /* FunctionDeclaration */: - case 218 /* FunctionExpression */: - var constructorSymbol = thisContainer.symbol; - if (isBinaryExpression(thisContainer.parent) && thisContainer.parent.operatorToken.kind === 64 /* EqualsToken */) { - var l = thisContainer.parent.left; - if (isBindableStaticAccessExpression(l) && isPrototypeAccess(l.expression)) { - constructorSymbol = lookupSymbolForPropertyAccess(l.expression.expression, thisParentContainer); - } - } - if (constructorSymbol && constructorSymbol.valueDeclaration) { - constructorSymbol.members = constructorSymbol.members || createSymbolTable(); - if (hasDynamicName(node)) { - bindDynamicallyNamedThisPropertyAssignment(node, constructorSymbol, constructorSymbol.members); - } - else { - declareSymbol(constructorSymbol.members, constructorSymbol, node, 4 /* Property */ | 67108864 /* Assignment */, 0 /* PropertyExcludes */ & ~4 /* Property */); - } - addDeclarationToSymbol(constructorSymbol, constructorSymbol.valueDeclaration, 32 /* Class */); - } - break; - case 176 /* Constructor */: - case 172 /* PropertyDeclaration */: - case 174 /* MethodDeclaration */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - case 175 /* ClassStaticBlockDeclaration */: - var containingClass = thisContainer.parent; - var symbolTable = isStatic(thisContainer) ? containingClass.symbol.exports : containingClass.symbol.members; - if (hasDynamicName(node)) { - bindDynamicallyNamedThisPropertyAssignment(node, containingClass.symbol, symbolTable); - } - else { - declareSymbol(symbolTable, containingClass.symbol, node, 4 /* Property */ | 67108864 /* Assignment */, 0 /* None */, - /*isReplaceableByMethod*/ - true); - } - break; - case 312 /* SourceFile */: - if (hasDynamicName(node)) { - break; - } - else if (thisContainer.commonJsModuleIndicator) { - declareSymbol(thisContainer.symbol.exports, thisContainer.symbol, node, 4 /* Property */ | 1048576 /* ExportValue */, 0 /* None */); - } - else { - declareSymbolAndAddToSymbolTable(node, 1 /* FunctionScopedVariable */, 111550 /* FunctionScopedVariableExcludes */); - } - break; - case 267 /* ModuleDeclaration */: - break; - default: - Debug.failBadSyntaxKind(thisContainer); - } - } - function bindDynamicallyNamedThisPropertyAssignment(node, symbol, symbolTable) { - declareSymbol(symbolTable, symbol, node, 4 /* Property */, 0 /* None */, - /*isReplaceableByMethod*/ - true, - /*isComputedName*/ - true); - addLateBoundAssignmentDeclarationToSymbol(node, symbol); - } - function addLateBoundAssignmentDeclarationToSymbol(node, symbol) { - if (symbol) { - (symbol.assignmentDeclarationMembers || (symbol.assignmentDeclarationMembers = /* @__PURE__ */ new Map())).set(getNodeId(node), node); - } - } - function bindSpecialPropertyDeclaration(node) { - if (node.expression.kind === 110 /* ThisKeyword */) { - bindThisPropertyAssignment(node); - } - else if (isBindableStaticAccessExpression(node) && node.parent.parent.kind === 312 /* SourceFile */) { - if (isPrototypeAccess(node.expression)) { - bindPrototypePropertyAssignment(node, node.parent); - } - else { - bindStaticPropertyAssignment(node); - } - } - } - function bindPrototypeAssignment(node) { - setParent(node.left, node); - setParent(node.right, node); - bindPropertyAssignment(node.left.expression, node.left, - /*isPrototypeProperty*/ - false, - /*containerIsClass*/ - true); - } - function bindObjectDefinePrototypeProperty(node) { - var namespaceSymbol = lookupSymbolForPropertyAccess(node.arguments[0].expression); - if (namespaceSymbol && namespaceSymbol.valueDeclaration) { - addDeclarationToSymbol(namespaceSymbol, namespaceSymbol.valueDeclaration, 32 /* Class */); - } - bindPotentiallyNewExpandoMemberToNamespace(node, namespaceSymbol, - /*isPrototypeProperty*/ - true); - } - function bindPrototypePropertyAssignment(lhs, parent3) { - var classPrototype = lhs.expression; - var constructorFunction = classPrototype.expression; - setParent(constructorFunction, classPrototype); - setParent(classPrototype, lhs); - setParent(lhs, parent3); - bindPropertyAssignment(constructorFunction, lhs, - /*isPrototypeProperty*/ - true, - /*containerIsClass*/ - true); - } - function bindObjectDefinePropertyAssignment(node) { - var namespaceSymbol = lookupSymbolForPropertyAccess(node.arguments[0]); - var isToplevel = node.parent.parent.kind === 312 /* SourceFile */; - namespaceSymbol = bindPotentiallyMissingNamespaces(namespaceSymbol, node.arguments[0], isToplevel, - /*isPrototypeProperty*/ - false, - /*containerIsClass*/ - false); - bindPotentiallyNewExpandoMemberToNamespace(node, namespaceSymbol, - /*isPrototypeProperty*/ - false); - } - function bindSpecialPropertyAssignment(node) { - var _a; - var parentSymbol = lookupSymbolForPropertyAccess(node.left.expression, container) || lookupSymbolForPropertyAccess(node.left.expression, blockScopeContainer); - if (!isInJSFile(node) && !isFunctionSymbol(parentSymbol)) { - return; - } - var rootExpr = getLeftmostAccessExpression(node.left); - if (isIdentifier(rootExpr) && ((_a = lookupSymbolForName(container, rootExpr.escapedText)) == null ? void 0 : _a.flags) & 2097152 /* Alias */) { - return; - } - setParent(node.left, node); - setParent(node.right, node); - if (isIdentifier(node.left.expression) && container === file && isExportsOrModuleExportsOrAlias(file, node.left.expression)) { - bindExportsPropertyAssignment(node); - } - else if (hasDynamicName(node)) { - bindAnonymousDeclaration(node, 4 /* Property */ | 67108864 /* Assignment */, "__computed" /* Computed */); - var sym = bindPotentiallyMissingNamespaces(parentSymbol, node.left.expression, isTopLevelNamespaceAssignment(node.left), - /*isPrototypeProperty*/ - false, - /*containerIsClass*/ - false); - addLateBoundAssignmentDeclarationToSymbol(node, sym); - } - else { - bindStaticPropertyAssignment(cast(node.left, isBindableStaticNameExpression)); - } - } - function bindStaticPropertyAssignment(node) { - Debug.assert(!isIdentifier(node)); - setParent(node.expression, node); - bindPropertyAssignment(node.expression, node, - /*isPrototypeProperty*/ - false, - /*containerIsClass*/ - false); - } - function bindPotentiallyMissingNamespaces(namespaceSymbol, entityName, isToplevel, isPrototypeProperty, containerIsClass) { - if ((namespaceSymbol == null ? void 0 : namespaceSymbol.flags) & 2097152 /* Alias */) { - return namespaceSymbol; - } - if (isToplevel && !isPrototypeProperty) { - var flags_1 = 1536 /* Module */ | 67108864 /* Assignment */; - var excludeFlags_1 = 110735 /* ValueModuleExcludes */ & ~67108864 /* Assignment */; - namespaceSymbol = forEachIdentifierInEntityName(entityName, namespaceSymbol, function (id, symbol, parent3) { - if (symbol) { - addDeclarationToSymbol(symbol, id, flags_1); - return symbol; - } - else { - var table = parent3 ? parent3.exports : file.jsGlobalAugmentations || (file.jsGlobalAugmentations = createSymbolTable()); - return declareSymbol(table, parent3, id, flags_1, excludeFlags_1); - } - }); - } - if (containerIsClass && namespaceSymbol && namespaceSymbol.valueDeclaration) { - addDeclarationToSymbol(namespaceSymbol, namespaceSymbol.valueDeclaration, 32 /* Class */); - } - return namespaceSymbol; - } - function bindPotentiallyNewExpandoMemberToNamespace(declaration, namespaceSymbol, isPrototypeProperty) { - if (!namespaceSymbol || !isExpandoSymbol(namespaceSymbol)) { - return; - } - var symbolTable = isPrototypeProperty ? namespaceSymbol.members || (namespaceSymbol.members = createSymbolTable()) : namespaceSymbol.exports || (namespaceSymbol.exports = createSymbolTable()); - var includes = 0 /* None */; - var excludes = 0 /* None */; - if (isFunctionLikeDeclaration(getAssignedExpandoInitializer(declaration))) { - includes = 8192 /* Method */; - excludes = 103359 /* MethodExcludes */; - } - else if (isCallExpression(declaration) && isBindableObjectDefinePropertyCall(declaration)) { - if (some(declaration.arguments[2].properties, function (p) { - var id = getNameOfDeclaration(p); - return !!id && isIdentifier(id) && idText(id) === "set"; - })) { - includes |= 65536 /* SetAccessor */ | 4 /* Property */; - excludes |= 78783 /* SetAccessorExcludes */; - } - if (some(declaration.arguments[2].properties, function (p) { - var id = getNameOfDeclaration(p); - return !!id && isIdentifier(id) && idText(id) === "get"; - })) { - includes |= 32768 /* GetAccessor */ | 4 /* Property */; - excludes |= 46015 /* GetAccessorExcludes */; - } - } - if (includes === 0 /* None */) { - includes = 4 /* Property */; - excludes = 0 /* PropertyExcludes */; - } - declareSymbol(symbolTable, namespaceSymbol, declaration, includes | 67108864 /* Assignment */, excludes & ~67108864 /* Assignment */); - } - function isTopLevelNamespaceAssignment(propertyAccess) { - return isBinaryExpression(propertyAccess.parent) ? getParentOfBinaryExpression(propertyAccess.parent).parent.kind === 312 /* SourceFile */ : propertyAccess.parent.parent.kind === 312 /* SourceFile */; - } - function bindPropertyAssignment(name, propertyAccess, isPrototypeProperty, containerIsClass) { - var namespaceSymbol = lookupSymbolForPropertyAccess(name, container) || lookupSymbolForPropertyAccess(name, blockScopeContainer); - var isToplevel = isTopLevelNamespaceAssignment(propertyAccess); - namespaceSymbol = bindPotentiallyMissingNamespaces(namespaceSymbol, propertyAccess.expression, isToplevel, isPrototypeProperty, containerIsClass); - bindPotentiallyNewExpandoMemberToNamespace(propertyAccess, namespaceSymbol, isPrototypeProperty); - } - function isExpandoSymbol(symbol) { - if (symbol.flags & (16 /* Function */ | 32 /* Class */ | 1024 /* NamespaceModule */)) { - return true; - } - var node = symbol.valueDeclaration; - if (node && isCallExpression(node)) { - return !!getAssignedExpandoInitializer(node); - } - var init = !node ? void 0 : isVariableDeclaration(node) ? node.initializer : isBinaryExpression(node) ? node.right : isPropertyAccessExpression(node) && isBinaryExpression(node.parent) ? node.parent.right : void 0; - init = init && getRightMostAssignedExpression(init); - if (init) { - var isPrototypeAssignment = isPrototypeAccess(isVariableDeclaration(node) ? node.name : isBinaryExpression(node) ? node.left : node); - return !!getExpandoInitializer(isBinaryExpression(init) && (init.operatorToken.kind === 57 /* BarBarToken */ || init.operatorToken.kind === 61 /* QuestionQuestionToken */) ? init.right : init, isPrototypeAssignment); - } - return false; - } - function getParentOfBinaryExpression(expr) { - while (isBinaryExpression(expr.parent)) { - expr = expr.parent; - } - return expr.parent; - } - function lookupSymbolForPropertyAccess(node, lookupContainer) { - if (lookupContainer === void 0) { lookupContainer = container; } - if (isIdentifier(node)) { - return lookupSymbolForName(lookupContainer, node.escapedText); - } - else { - var symbol = lookupSymbolForPropertyAccess(node.expression); - return symbol && symbol.exports && symbol.exports.get(getElementOrPropertyAccessName(node)); - } - } - function forEachIdentifierInEntityName(e, parent3, action) { - if (isExportsOrModuleExportsOrAlias(file, e)) { - return file.symbol; - } - else if (isIdentifier(e)) { - return action(e, lookupSymbolForPropertyAccess(e), parent3); - } - else { - var s = forEachIdentifierInEntityName(e.expression, parent3, action); - var name_20 = getNameOrArgument(e); - if (isPrivateIdentifier(name_20)) { - Debug.fail("unexpected PrivateIdentifier"); - } - return action(name_20, s && s.exports && s.exports.get(getElementOrPropertyAccessName(e)), s); - } - } - function bindCallExpression(node) { - if (!file.commonJsModuleIndicator && isRequireCall(node, - /*requireStringLiteralLikeArgument*/ - false)) { - setCommonJsModuleIndicator(node); - } - } - function bindClassLikeDeclaration(node) { - if (node.kind === 263 /* ClassDeclaration */) { - bindBlockScopedDeclaration(node, 32 /* Class */, 899503 /* ClassExcludes */); - } - else { - var bindingName = node.name ? node.name.escapedText : "__class" /* Class */; - bindAnonymousDeclaration(node, 32 /* Class */, bindingName); - if (node.name) { - classifiableNames.add(node.name.escapedText); - } - } - var symbol = node.symbol; - var prototypeSymbol = createSymbol(4 /* Property */ | 4194304 /* Prototype */, "prototype"); - var symbolExport = symbol.exports.get(prototypeSymbol.escapedName); - if (symbolExport) { - if (node.name) { - setParent(node.name, node); - } - file.bindDiagnostics.push(createDiagnosticForNode2(symbolExport.declarations[0], Diagnostics.Duplicate_identifier_0, symbolName(prototypeSymbol))); - } - symbol.exports.set(prototypeSymbol.escapedName, prototypeSymbol); - prototypeSymbol.parent = symbol; - } - function bindEnumDeclaration(node) { - return isEnumConst(node) ? bindBlockScopedDeclaration(node, 128 /* ConstEnum */, 899967 /* ConstEnumExcludes */) : bindBlockScopedDeclaration(node, 256 /* RegularEnum */, 899327 /* RegularEnumExcludes */); - } - function bindVariableDeclarationOrBindingElement(node) { - if (inStrictMode) { - checkStrictModeEvalOrArguments(node, node.name); - } - if (!isBindingPattern(node.name)) { - var possibleVariableDecl = node.kind === 260 /* VariableDeclaration */ ? node : node.parent.parent; - if (isInJSFile(node) && shouldResolveJsRequire(options) && isVariableDeclarationInitializedToBareOrAccessedRequire(possibleVariableDecl) && !getJSDocTypeTag(node) && !(getCombinedModifierFlags(node) & 1 /* Export */)) { - declareSymbolAndAddToSymbolTable(node, 2097152 /* Alias */, 2097152 /* AliasExcludes */); - } - else if (isBlockOrCatchScoped(node)) { - bindBlockScopedDeclaration(node, 2 /* BlockScopedVariable */, 111551 /* BlockScopedVariableExcludes */); - } - else if (isParameterDeclaration(node)) { - declareSymbolAndAddToSymbolTable(node, 1 /* FunctionScopedVariable */, 111551 /* ParameterExcludes */); - } - else { - declareSymbolAndAddToSymbolTable(node, 1 /* FunctionScopedVariable */, 111550 /* FunctionScopedVariableExcludes */); - } - } - } - function bindParameter(node) { - if (node.kind === 348 /* JSDocParameterTag */ && container.kind !== 330 /* JSDocSignature */) { - return; - } - if (inStrictMode && !(node.flags & 33554432 /* Ambient */)) { - checkStrictModeEvalOrArguments(node, node.name); - } - if (isBindingPattern(node.name)) { - bindAnonymousDeclaration(node, 1 /* FunctionScopedVariable */, "__" + node.parent.parameters.indexOf(node)); - } - else { - declareSymbolAndAddToSymbolTable(node, 1 /* FunctionScopedVariable */, 111551 /* ParameterExcludes */); - } - if (isParameterPropertyDeclaration(node, node.parent)) { - var classDeclaration = node.parent.parent; - declareSymbol(classDeclaration.symbol.members, classDeclaration.symbol, node, 4 /* Property */ | (node.questionToken ? 16777216 /* Optional */ : 0 /* None */), 0 /* PropertyExcludes */); - } - } - function bindFunctionDeclaration(node) { - if (!file.isDeclarationFile && !(node.flags & 33554432 /* Ambient */)) { - if (isAsyncFunction(node)) { - emitFlags |= 4096 /* HasAsyncFunctions */; - } - } - checkStrictModeFunctionName(node); - if (inStrictMode) { - checkStrictModeFunctionDeclaration(node); - bindBlockScopedDeclaration(node, 16 /* Function */, 110991 /* FunctionExcludes */); - } - else { - declareSymbolAndAddToSymbolTable(node, 16 /* Function */, 110991 /* FunctionExcludes */); - } - } - function bindFunctionExpression(node) { - if (!file.isDeclarationFile && !(node.flags & 33554432 /* Ambient */)) { - if (isAsyncFunction(node)) { - emitFlags |= 4096 /* HasAsyncFunctions */; - } - } - if (currentFlow) { - node.flowNode = currentFlow; - } - checkStrictModeFunctionName(node); - var bindingName = node.name ? node.name.escapedText : "__function" /* Function */; - return bindAnonymousDeclaration(node, 16 /* Function */, bindingName); - } - function bindPropertyOrMethodOrAccessor(node, symbolFlags, symbolExcludes) { - if (!file.isDeclarationFile && !(node.flags & 33554432 /* Ambient */) && isAsyncFunction(node)) { - emitFlags |= 4096 /* HasAsyncFunctions */; - } - if (currentFlow && isObjectLiteralOrClassExpressionMethodOrAccessor(node)) { - node.flowNode = currentFlow; - } - return hasDynamicName(node) ? bindAnonymousDeclaration(node, symbolFlags, "__computed" /* Computed */) : declareSymbolAndAddToSymbolTable(node, symbolFlags, symbolExcludes); - } - function getInferTypeContainer(node) { - var extendsType = findAncestor(node, function (n) { return n.parent && isConditionalTypeNode(n.parent) && n.parent.extendsType === n; }); - return extendsType && extendsType.parent; - } - function bindTypeParameter(node) { - var _t, _u; - if (isJSDocTemplateTag(node.parent)) { - var container2 = getEffectiveContainerForJSDocTemplateTag(node.parent); - if (container2) { - Debug.assertNode(container2, canHaveLocals); - (_t = container2.locals) !== null && _t !== void 0 ? _t : (container2.locals = createSymbolTable()); - declareSymbol(container2.locals, - /*parent*/ - void 0, node, 262144 /* TypeParameter */, 526824 /* TypeParameterExcludes */); - } - else { - declareSymbolAndAddToSymbolTable(node, 262144 /* TypeParameter */, 526824 /* TypeParameterExcludes */); - } - } - else if (node.parent.kind === 195 /* InferType */) { - var container2 = getInferTypeContainer(node.parent); - if (container2) { - Debug.assertNode(container2, canHaveLocals); - (_u = container2.locals) !== null && _u !== void 0 ? _u : (container2.locals = createSymbolTable()); - declareSymbol(container2.locals, - /*parent*/ - void 0, node, 262144 /* TypeParameter */, 526824 /* TypeParameterExcludes */); - } - else { - bindAnonymousDeclaration(node, 262144 /* TypeParameter */, getDeclarationName(node)); - } - } - else { - declareSymbolAndAddToSymbolTable(node, 262144 /* TypeParameter */, 526824 /* TypeParameterExcludes */); - } - } - function shouldReportErrorOnModuleDeclaration(node) { - var instanceState = getModuleInstanceState(node); - return instanceState === 1 /* Instantiated */ || instanceState === 2 /* ConstEnumOnly */ && shouldPreserveConstEnums(options); - } - function checkUnreachable(node) { - if (!(currentFlow.flags & 1 /* Unreachable */)) { - return false; - } - if (currentFlow === unreachableFlow) { - var reportError_1 = ( - // report error on all statements except empty ones - isStatementButNotDeclaration(node) && node.kind !== 242 /* EmptyStatement */ || // report error on class declarations - node.kind === 263 /* ClassDeclaration */ || // report error on instantiated modules or const-enums only modules if preserveConstEnums is set - node.kind === 267 /* ModuleDeclaration */ && shouldReportErrorOnModuleDeclaration(node)); - if (reportError_1) { - currentFlow = reportedUnreachableFlow; - if (!options.allowUnreachableCode) { - var isError_1 = unreachableCodeIsError(options) && !(node.flags & 33554432 /* Ambient */) && (!isVariableStatement(node) || !!(getCombinedNodeFlags(node.declarationList) & 7 /* BlockScoped */) || node.declarationList.declarations.some(function (d) { return !!d.initializer; })); - eachUnreachableRange(node, function (start2, end) { return errorOrSuggestionOnRange(isError_1, start2, end, Diagnostics.Unreachable_code_detected); }); - } - } - } - return true; - } -} -function eachUnreachableRange(node, cb) { - if (isStatement(node) && isExecutableStatement(node) && isBlock(node.parent)) { - var statements = node.parent.statements; - var slice_1 = sliceAfter(statements, node); - getRangesWhere(slice_1, isExecutableStatement, function (start2, afterEnd) { return cb(slice_1[start2], slice_1[afterEnd - 1]); }); - } - else { - cb(node, node); - } -} -function isExecutableStatement(s) { - return !isFunctionDeclaration(s) && !isPurelyTypeDeclaration(s) && !isEnumDeclaration(s) && // `var x;` may declare a variable used above - !(isVariableStatement(s) && !(getCombinedNodeFlags(s) & 7 /* BlockScoped */) && s.declarationList.declarations.some(function (d) { return !d.initializer; })); -} -function isPurelyTypeDeclaration(s) { - switch (s.kind) { - case 264 /* InterfaceDeclaration */: - case 265 /* TypeAliasDeclaration */: - return true; - case 267 /* ModuleDeclaration */: - return getModuleInstanceState(s) !== 1 /* Instantiated */; - case 266 /* EnumDeclaration */: - return hasSyntacticModifier(s, 2048 /* Const */); - default: - return false; - } -} -function isExportsOrModuleExportsOrAlias(sourceFile, node) { - var i = 0; - var q = createQueue(); - q.enqueue(node); - while (!q.isEmpty() && i < 100) { - i++; - node = q.dequeue(); - if (isExportsIdentifier(node) || isModuleExportsAccessExpression(node)) { - return true; - } - else if (isIdentifier(node)) { - var symbol = lookupSymbolForName(sourceFile, node.escapedText); - if (!!symbol && !!symbol.valueDeclaration && isVariableDeclaration(symbol.valueDeclaration) && !!symbol.valueDeclaration.initializer) { - var init = symbol.valueDeclaration.initializer; - q.enqueue(init); - if (isAssignmentExpression(init, - /*excludeCompoundAssignment*/ - true)) { - q.enqueue(init.left); - q.enqueue(init.right); - } - } - } - } - return false; -} -function getContainerFlags(node) { - switch (node.kind) { - case 231 /* ClassExpression */: - case 263 /* ClassDeclaration */: - case 266 /* EnumDeclaration */: - case 210 /* ObjectLiteralExpression */: - case 187 /* TypeLiteral */: - case 329 /* JSDocTypeLiteral */: - case 292 /* JsxAttributes */: - return 1 /* IsContainer */; - case 264 /* InterfaceDeclaration */: - return 1 /* IsContainer */ | 64 /* IsInterface */; - case 267 /* ModuleDeclaration */: - case 265 /* TypeAliasDeclaration */: - case 200 /* MappedType */: - case 181 /* IndexSignature */: - return 1 /* IsContainer */ | 32 /* HasLocals */; - case 312 /* SourceFile */: - return 1 /* IsContainer */ | 4 /* IsControlFlowContainer */ | 32 /* HasLocals */; - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - case 174 /* MethodDeclaration */: - if (isObjectLiteralOrClassExpressionMethodOrAccessor(node)) { - return 1 /* IsContainer */ | 4 /* IsControlFlowContainer */ | 32 /* HasLocals */ | 8 /* IsFunctionLike */ | 128 /* IsObjectLiteralOrClassExpressionMethodOrAccessor */; - } - case 176 /* Constructor */: - case 262 /* FunctionDeclaration */: - case 173 /* MethodSignature */: - case 179 /* CallSignature */: - case 330 /* JSDocSignature */: - case 324 /* JSDocFunctionType */: - case 184 /* FunctionType */: - case 180 /* ConstructSignature */: - case 185 /* ConstructorType */: - case 175 /* ClassStaticBlockDeclaration */: - return 1 /* IsContainer */ | 4 /* IsControlFlowContainer */ | 32 /* HasLocals */ | 8 /* IsFunctionLike */; - case 218 /* FunctionExpression */: - case 219 /* ArrowFunction */: - return 1 /* IsContainer */ | 4 /* IsControlFlowContainer */ | 32 /* HasLocals */ | 8 /* IsFunctionLike */ | 16 /* IsFunctionExpression */; - case 268 /* ModuleBlock */: - return 4 /* IsControlFlowContainer */; - case 172 /* PropertyDeclaration */: - return node.initializer ? 4 /* IsControlFlowContainer */ : 0; - case 299 /* CatchClause */: - case 248 /* ForStatement */: - case 249 /* ForInStatement */: - case 250 /* ForOfStatement */: - case 269 /* CaseBlock */: - return 2 /* IsBlockScopedContainer */ | 32 /* HasLocals */; - case 241 /* Block */: - return isFunctionLike(node.parent) || isClassStaticBlockDeclaration(node.parent) ? 0 /* None */ : 2 /* IsBlockScopedContainer */ | 32 /* HasLocals */; - } - return 0 /* None */; -} -function lookupSymbolForName(container, name) { - var _t; - var _a, _b, _c, _d; - var local = (_b = (_a = tryCast(container, canHaveLocals)) == null ? void 0 : _a.locals) == null ? void 0 : _b.get(name); - if (local) { - return (_t = local.exportSymbol) !== null && _t !== void 0 ? _t : local; - } - if (isSourceFile(container) && container.jsGlobalAugmentations && container.jsGlobalAugmentations.has(name)) { - return container.jsGlobalAugmentations.get(name); - } - if (canHaveSymbol(container)) { - return (_d = (_c = container.symbol) == null ? void 0 : _c.exports) == null ? void 0 : _d.get(name); - } -} -// src/compiler/symbolWalker.ts -function createGetSymbolWalker(getRestTypeOfSignature, getTypePredicateOfSignature, getReturnTypeOfSignature, getBaseTypes, resolveStructuredTypeMembers, getTypeOfSymbol, getResolvedSymbol, getConstraintOfTypeParameter, getFirstIdentifier2, getTypeArguments) { - return getSymbolWalker; - function getSymbolWalker(accept) { - if (accept === void 0) { accept = function () { return true; }; } - var visitedTypes = []; - var visitedSymbols = []; - return { - walkType: function (type) { - try { - visitType(type); - return { visitedTypes: getOwnValues(visitedTypes), visitedSymbols: getOwnValues(visitedSymbols) }; - } - finally { - clear(visitedTypes); - clear(visitedSymbols); - } - }, - walkSymbol: function (symbol) { - try { - visitSymbol(symbol); - return { visitedTypes: getOwnValues(visitedTypes), visitedSymbols: getOwnValues(visitedSymbols) }; - } - finally { - clear(visitedTypes); - clear(visitedSymbols); - } - } - }; - function visitType(type) { - if (!type) { - return; - } - if (visitedTypes[type.id]) { - return; - } - visitedTypes[type.id] = type; - var shouldBail = visitSymbol(type.symbol); - if (shouldBail) - return; - if (type.flags & 524288 /* Object */) { - var objectType = type; - var objectFlags = objectType.objectFlags; - if (objectFlags & 4 /* Reference */) { - visitTypeReference(type); - } - if (objectFlags & 32 /* Mapped */) { - visitMappedType(type); - } - if (objectFlags & (1 /* Class */ | 2 /* Interface */)) { - visitInterfaceType(type); - } - if (objectFlags & (8 /* Tuple */ | 16 /* Anonymous */)) { - visitObjectType(objectType); - } - } - if (type.flags & 262144 /* TypeParameter */) { - visitTypeParameter(type); - } - if (type.flags & 3145728 /* UnionOrIntersection */) { - visitUnionOrIntersectionType(type); - } - if (type.flags & 4194304 /* Index */) { - visitIndexType(type); - } - if (type.flags & 8388608 /* IndexedAccess */) { - visitIndexedAccessType(type); - } - } - function visitTypeReference(type) { - visitType(type.target); - forEach(getTypeArguments(type), visitType); - } - function visitTypeParameter(type) { - visitType(getConstraintOfTypeParameter(type)); - } - function visitUnionOrIntersectionType(type) { - forEach(type.types, visitType); - } - function visitIndexType(type) { - visitType(type.type); - } - function visitIndexedAccessType(type) { - visitType(type.objectType); - visitType(type.indexType); - visitType(type.constraint); - } - function visitMappedType(type) { - visitType(type.typeParameter); - visitType(type.constraintType); - visitType(type.templateType); - visitType(type.modifiersType); - } - function visitSignature(signature) { - var e_147, _t; - var typePredicate = getTypePredicateOfSignature(signature); - if (typePredicate) { - visitType(typePredicate.type); - } - forEach(signature.typeParameters, visitType); - try { - for (var _u = __values(signature.parameters), _v = _u.next(); !_v.done; _v = _u.next()) { - var parameter = _v.value; - visitSymbol(parameter); - } - } - catch (e_147_1) { e_147 = { error: e_147_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_147) throw e_147.error; } - } - visitType(getRestTypeOfSignature(signature)); - visitType(getReturnTypeOfSignature(signature)); - } - function visitInterfaceType(interfaceT) { - visitObjectType(interfaceT); - forEach(interfaceT.typeParameters, visitType); - forEach(getBaseTypes(interfaceT), visitType); - visitType(interfaceT.thisType); - } - function visitObjectType(type) { - var e_148, _t, e_149, _u, e_150, _v, e_151, _w; - var resolved = resolveStructuredTypeMembers(type); - try { - for (var _x = __values(resolved.indexInfos), _y = _x.next(); !_y.done; _y = _x.next()) { - var info = _y.value; - visitType(info.keyType); - visitType(info.type); - } - } - catch (e_148_1) { e_148 = { error: e_148_1 }; } - finally { - try { - if (_y && !_y.done && (_t = _x.return)) _t.call(_x); - } - finally { if (e_148) throw e_148.error; } - } - try { - for (var _z = __values(resolved.callSignatures), _10 = _z.next(); !_10.done; _10 = _z.next()) { - var signature = _10.value; - visitSignature(signature); - } - } - catch (e_149_1) { e_149 = { error: e_149_1 }; } - finally { - try { - if (_10 && !_10.done && (_u = _z.return)) _u.call(_z); - } - finally { if (e_149) throw e_149.error; } - } - try { - for (var _11 = __values(resolved.constructSignatures), _12 = _11.next(); !_12.done; _12 = _11.next()) { - var signature = _12.value; - visitSignature(signature); - } - } - catch (e_150_1) { e_150 = { error: e_150_1 }; } - finally { - try { - if (_12 && !_12.done && (_v = _11.return)) _v.call(_11); - } - finally { if (e_150) throw e_150.error; } - } - try { - for (var _13 = __values(resolved.properties), _14 = _13.next(); !_14.done; _14 = _13.next()) { - var p = _14.value; - visitSymbol(p); - } - } - catch (e_151_1) { e_151 = { error: e_151_1 }; } - finally { - try { - if (_14 && !_14.done && (_w = _13.return)) _w.call(_13); - } - finally { if (e_151) throw e_151.error; } - } - } - function visitSymbol(symbol) { - if (!symbol) { - return false; - } - var symbolId = getSymbolId(symbol); - if (visitedSymbols[symbolId]) { - return false; - } - visitedSymbols[symbolId] = symbol; - if (!accept(symbol)) { - return true; - } - var t = getTypeOfSymbol(symbol); - visitType(t); - if (symbol.exports) { - symbol.exports.forEach(visitSymbol); - } - forEach(symbol.declarations, function (d) { - if (d.type && d.type.kind === 186 /* TypeQuery */) { - var query = d.type; - var entity = getResolvedSymbol(getFirstIdentifier2(query.exprName)); - visitSymbol(entity); - } - }); - return false; - } - } -} -// src/compiler/_namespaces/ts.moduleSpecifiers.ts -var ts_moduleSpecifiers_exports = {}; -__export(ts_moduleSpecifiers_exports, { - countPathComponents: function () { return countPathComponents; }, - forEachFileNameOfModule: function () { return forEachFileNameOfModule; }, - getModuleSpecifier: function () { return getModuleSpecifier; }, - getModuleSpecifiers: function () { return getModuleSpecifiers; }, - getModuleSpecifiersWithCacheInfo: function () { return getModuleSpecifiersWithCacheInfo; }, - getNodeModulesPackageName: function () { return getNodeModulesPackageName; }, - tryGetJSExtensionForFile: function () { return tryGetJSExtensionForFile; }, - tryGetModuleSpecifiersFromCache: function () { return tryGetModuleSpecifiersFromCache; }, - tryGetRealFileNameForNonJsDeclarationFileName: function () { return tryGetRealFileNameForNonJsDeclarationFileName; }, - updateModuleSpecifier: function () { return updateModuleSpecifier; } -}); -// src/compiler/moduleSpecifiers.ts -function getPreferences(_t, compilerOptions, importingSourceFile, oldImportSpecifier) { - var importModuleSpecifierPreference = _t.importModuleSpecifierPreference, importModuleSpecifierEnding = _t.importModuleSpecifierEnding; - var preferredEnding = getPreferredEnding(); - return { - relativePreference: oldImportSpecifier !== void 0 ? isExternalModuleNameRelative(oldImportSpecifier) ? 0 /* Relative */ : 1 /* NonRelative */ : importModuleSpecifierPreference === "relative" ? 0 /* Relative */ : importModuleSpecifierPreference === "non-relative" ? 1 /* NonRelative */ : importModuleSpecifierPreference === "project-relative" ? 3 /* ExternalNonRelative */ : 2 /* Shortest */, - getAllowedEndingsInPreferredOrder: function (syntaxImpliedNodeFormat) { - if ((syntaxImpliedNodeFormat !== null && syntaxImpliedNodeFormat !== void 0 ? syntaxImpliedNodeFormat : importingSourceFile.impliedNodeFormat) === 99 /* ESNext */) { - if (shouldAllowImportingTsExtension(compilerOptions, importingSourceFile.fileName)) { - return [3 /* TsExtension */, 2 /* JsExtension */]; - } - return [2 /* JsExtension */]; - } - if (getEmitModuleResolutionKind(compilerOptions) === 1 /* Classic */) { - return preferredEnding === 2 /* JsExtension */ ? [2 /* JsExtension */, 1 /* Index */] : [1 /* Index */, 2 /* JsExtension */]; - } - var allowImportingTsExtension = shouldAllowImportingTsExtension(compilerOptions, importingSourceFile.fileName); - switch (preferredEnding) { - case 2 /* JsExtension */: - return allowImportingTsExtension ? [2 /* JsExtension */, 3 /* TsExtension */, 0 /* Minimal */, 1 /* Index */] : [2 /* JsExtension */, 0 /* Minimal */, 1 /* Index */]; - case 3 /* TsExtension */: - return [3 /* TsExtension */, 0 /* Minimal */, 2 /* JsExtension */, 1 /* Index */]; - case 1 /* Index */: - return allowImportingTsExtension ? [1 /* Index */, 0 /* Minimal */, 3 /* TsExtension */, 2 /* JsExtension */] : [1 /* Index */, 0 /* Minimal */, 2 /* JsExtension */]; - case 0 /* Minimal */: - return allowImportingTsExtension ? [0 /* Minimal */, 1 /* Index */, 3 /* TsExtension */, 2 /* JsExtension */] : [0 /* Minimal */, 1 /* Index */, 2 /* JsExtension */]; - default: - Debug.assertNever(preferredEnding); - } - } - }; - function getPreferredEnding() { - if (oldImportSpecifier !== void 0) { - if (hasJSFileExtension(oldImportSpecifier)) - return 2 /* JsExtension */; - if (endsWith(oldImportSpecifier, "/index")) - return 1 /* Index */; - } - return getModuleSpecifierEndingPreference(importModuleSpecifierEnding, importingSourceFile.impliedNodeFormat, compilerOptions, importingSourceFile); - } -} -function updateModuleSpecifier(compilerOptions, importingSourceFile, importingSourceFileName, toFileName2, host, oldImportSpecifier, options) { - if (options === void 0) { options = {}; } - var res = getModuleSpecifierWorker(compilerOptions, importingSourceFile, importingSourceFileName, toFileName2, host, getPreferences({}, compilerOptions, importingSourceFile, oldImportSpecifier), {}, options); - if (res === oldImportSpecifier) - return void 0; - return res; -} -function getModuleSpecifier(compilerOptions, importingSourceFile, importingSourceFileName, toFileName2, host, options) { - if (options === void 0) { options = {}; } - return getModuleSpecifierWorker(compilerOptions, importingSourceFile, importingSourceFileName, toFileName2, host, getPreferences({}, compilerOptions, importingSourceFile), {}, options); -} -function getNodeModulesPackageName(compilerOptions, importingSourceFile, nodeModulesFileName, host, preferences, options) { - if (options === void 0) { options = {}; } - var info = getInfo(importingSourceFile.path, host); - var modulePaths = getAllModulePaths(importingSourceFile.path, nodeModulesFileName, host, preferences, options); - return firstDefined(modulePaths, function (modulePath) { return tryGetModuleNameAsNodeModule(modulePath, info, importingSourceFile, host, compilerOptions, preferences, - /*packageNameOnly*/ - true, options.overrideImportMode); }); -} -function getModuleSpecifierWorker(compilerOptions, importingSourceFile, importingSourceFileName, toFileName2, host, preferences, userPreferences, options) { - if (options === void 0) { options = {}; } - var info = getInfo(importingSourceFileName, host); - var modulePaths = getAllModulePaths(importingSourceFileName, toFileName2, host, userPreferences, options); - return firstDefined(modulePaths, function (modulePath) { return tryGetModuleNameAsNodeModule(modulePath, info, importingSourceFile, host, compilerOptions, userPreferences, - /*packageNameOnly*/ - void 0, options.overrideImportMode); }) || getLocalModuleSpecifier(toFileName2, info, compilerOptions, host, options.overrideImportMode || importingSourceFile.impliedNodeFormat, preferences); -} -function tryGetModuleSpecifiersFromCache(moduleSymbol, importingSourceFile, host, userPreferences, options) { - if (options === void 0) { options = {}; } - return tryGetModuleSpecifiersFromCacheWorker(moduleSymbol, importingSourceFile, host, userPreferences, options)[0]; -} -function tryGetModuleSpecifiersFromCacheWorker(moduleSymbol, importingSourceFile, host, userPreferences, options) { - if (options === void 0) { options = {}; } - var _a; - var moduleSourceFile = getSourceFileOfModule(moduleSymbol); - if (!moduleSourceFile) { - return emptyArray; - } - var cache = (_a = host.getModuleSpecifierCache) == null ? void 0 : _a.call(host); - var cached = cache == null ? void 0 : cache.get(importingSourceFile.path, moduleSourceFile.path, userPreferences, options); - return [cached == null ? void 0 : cached.moduleSpecifiers, moduleSourceFile, cached == null ? void 0 : cached.modulePaths, cache]; -} -function getModuleSpecifiers(moduleSymbol, checker, compilerOptions, importingSourceFile, host, userPreferences, options) { - if (options === void 0) { options = {}; } - return getModuleSpecifiersWithCacheInfo(moduleSymbol, checker, compilerOptions, importingSourceFile, host, userPreferences, options).moduleSpecifiers; -} -function getModuleSpecifiersWithCacheInfo(moduleSymbol, checker, compilerOptions, importingSourceFile, host, userPreferences, options) { - if (options === void 0) { options = {}; } - var computedWithoutCache = false; - var ambient = tryGetModuleNameFromAmbientModule(moduleSymbol, checker); - if (ambient) - return { moduleSpecifiers: [ambient], computedWithoutCache: computedWithoutCache }; - var _t = __read(tryGetModuleSpecifiersFromCacheWorker(moduleSymbol, importingSourceFile, host, userPreferences, options), 4), specifiers = _t[0], moduleSourceFile = _t[1], modulePaths = _t[2], cache = _t[3]; - if (specifiers) - return { moduleSpecifiers: specifiers, computedWithoutCache: computedWithoutCache }; - if (!moduleSourceFile) - return { moduleSpecifiers: emptyArray, computedWithoutCache: computedWithoutCache }; - computedWithoutCache = true; - modulePaths || (modulePaths = getAllModulePathsWorker(importingSourceFile.path, moduleSourceFile.originalFileName, host)); - var result = computeModuleSpecifiers(modulePaths, compilerOptions, importingSourceFile, host, userPreferences, options); - cache == null ? void 0 : cache.set(importingSourceFile.path, moduleSourceFile.path, userPreferences, options, modulePaths, result); - return { moduleSpecifiers: result, computedWithoutCache: computedWithoutCache }; -} -function computeModuleSpecifiers(modulePaths, compilerOptions, importingSourceFile, host, userPreferences, options) { - var e_152, _t; - if (options === void 0) { options = {}; } - var info = getInfo(importingSourceFile.path, host); - var preferences = getPreferences(userPreferences, compilerOptions, importingSourceFile); - var existingSpecifier = forEach(modulePaths, function (modulePath) { return forEach(host.getFileIncludeReasons().get(toPath(modulePath.path, host.getCurrentDirectory(), info.getCanonicalFileName)), function (reason) { - if (reason.kind !== 3 /* Import */ || reason.file !== importingSourceFile.path) - return void 0; - if (importingSourceFile.impliedNodeFormat && importingSourceFile.impliedNodeFormat !== getModeForResolutionAtIndex(importingSourceFile, reason.index)) - return void 0; - var specifier = getModuleNameStringLiteralAt(importingSourceFile, reason.index).text; - return preferences.relativePreference !== 1 /* NonRelative */ || !pathIsRelative(specifier) ? specifier : void 0; - }); }); - if (existingSpecifier) { - var moduleSpecifiers = [existingSpecifier]; - return moduleSpecifiers; - } - var importedFileIsInNodeModules = some(modulePaths, function (p) { return p.isInNodeModules; }); - var nodeModulesSpecifiers; - var pathsSpecifiers; - var redirectPathsSpecifiers; - var relativeSpecifiers; - try { - for (var modulePaths_1 = __values(modulePaths), modulePaths_1_1 = modulePaths_1.next(); !modulePaths_1_1.done; modulePaths_1_1 = modulePaths_1.next()) { - var modulePath = modulePaths_1_1.value; - var specifier = modulePath.isInNodeModules ? tryGetModuleNameAsNodeModule(modulePath, info, importingSourceFile, host, compilerOptions, userPreferences, - /*packageNameOnly*/ - void 0, options.overrideImportMode) : void 0; - nodeModulesSpecifiers = append(nodeModulesSpecifiers, specifier); - if (specifier && modulePath.isRedirect) { - return nodeModulesSpecifiers; - } - if (!specifier) { - var local = getLocalModuleSpecifier(modulePath.path, info, compilerOptions, host, options.overrideImportMode || importingSourceFile.impliedNodeFormat, preferences, - /*pathsOnly*/ - modulePath.isRedirect); - if (!local) { - continue; - } - if (modulePath.isRedirect) { - redirectPathsSpecifiers = append(redirectPathsSpecifiers, local); - } - else if (pathIsBareSpecifier(local)) { - pathsSpecifiers = append(pathsSpecifiers, local); - } - else if (!importedFileIsInNodeModules || modulePath.isInNodeModules) { - relativeSpecifiers = append(relativeSpecifiers, local); - } - } - } - } - catch (e_152_1) { e_152 = { error: e_152_1 }; } - finally { - try { - if (modulePaths_1_1 && !modulePaths_1_1.done && (_t = modulePaths_1.return)) _t.call(modulePaths_1); - } - finally { if (e_152) throw e_152.error; } - } - return (pathsSpecifiers == null ? void 0 : pathsSpecifiers.length) ? pathsSpecifiers : (redirectPathsSpecifiers == null ? void 0 : redirectPathsSpecifiers.length) ? redirectPathsSpecifiers : (nodeModulesSpecifiers == null ? void 0 : nodeModulesSpecifiers.length) ? nodeModulesSpecifiers : Debug.checkDefined(relativeSpecifiers); -} -function getInfo(importingSourceFileName, host) { - var getCanonicalFileName = createGetCanonicalFileName(host.useCaseSensitiveFileNames ? host.useCaseSensitiveFileNames() : true); - var sourceDirectory = getDirectoryPath(importingSourceFileName); - return { getCanonicalFileName: getCanonicalFileName, importingSourceFileName: importingSourceFileName, sourceDirectory: sourceDirectory }; -} -function getLocalModuleSpecifier(moduleFileName, info, compilerOptions, host, importMode, _t, pathsOnly) { - var getAllowedEndingsInPrefererredOrder = _t.getAllowedEndingsInPreferredOrder, relativePreference = _t.relativePreference; - var baseUrl = compilerOptions.baseUrl, paths = compilerOptions.paths, rootDirs = compilerOptions.rootDirs; - if (pathsOnly && !paths) { - return void 0; - } - var sourceDirectory = info.sourceDirectory, getCanonicalFileName = info.getCanonicalFileName; - var allowedEndings = getAllowedEndingsInPrefererredOrder(importMode); - var relativePath = rootDirs && tryGetModuleNameFromRootDirs(rootDirs, moduleFileName, sourceDirectory, getCanonicalFileName, allowedEndings, compilerOptions) || processEnding(ensurePathIsNonModuleName(getRelativePathFromDirectory(sourceDirectory, moduleFileName, getCanonicalFileName)), allowedEndings, compilerOptions); - if (!baseUrl && !paths || relativePreference === 0 /* Relative */) { - return pathsOnly ? void 0 : relativePath; - } - var baseDirectory = getNormalizedAbsolutePath(getPathsBasePath(compilerOptions, host) || baseUrl, host.getCurrentDirectory()); - var relativeToBaseUrl = getRelativePathIfInSameVolume(moduleFileName, baseDirectory, getCanonicalFileName); - if (!relativeToBaseUrl) { - return pathsOnly ? void 0 : relativePath; - } - var fromPaths = paths && tryGetModuleNameFromPaths(relativeToBaseUrl, paths, allowedEndings, host, compilerOptions); - if (pathsOnly) { - return fromPaths; - } - var maybeNonRelative = fromPaths === void 0 && baseUrl !== void 0 ? processEnding(relativeToBaseUrl, allowedEndings, compilerOptions) : fromPaths; - if (!maybeNonRelative) { - return relativePath; - } - if (relativePreference === 1 /* NonRelative */ && !pathIsRelative(maybeNonRelative)) { - return maybeNonRelative; - } - if (relativePreference === 3 /* ExternalNonRelative */ && !pathIsRelative(maybeNonRelative)) { - var projectDirectory = compilerOptions.configFilePath ? toPath(getDirectoryPath(compilerOptions.configFilePath), host.getCurrentDirectory(), info.getCanonicalFileName) : info.getCanonicalFileName(host.getCurrentDirectory()); - var modulePath = toPath(moduleFileName, projectDirectory, getCanonicalFileName); - var sourceIsInternal = startsWith(sourceDirectory, projectDirectory); - var targetIsInternal = startsWith(modulePath, projectDirectory); - if (sourceIsInternal && !targetIsInternal || !sourceIsInternal && targetIsInternal) { - return maybeNonRelative; - } - var nearestTargetPackageJson = getNearestAncestorDirectoryWithPackageJson(host, getDirectoryPath(modulePath)); - var nearestSourcePackageJson = getNearestAncestorDirectoryWithPackageJson(host, sourceDirectory); - if (nearestSourcePackageJson !== nearestTargetPackageJson) { - return maybeNonRelative; - } - return relativePath; - } - return isPathRelativeToParent(maybeNonRelative) || countPathComponents(relativePath) < countPathComponents(maybeNonRelative) ? relativePath : maybeNonRelative; -} -function countPathComponents(path) { - var count = 0; - for (var i = startsWith(path, "./") ? 2 : 0; i < path.length; i++) { - if (path.charCodeAt(i) === 47 /* slash */) - count++; - } - return count; -} -function comparePathsByRedirectAndNumberOfDirectorySeparators(a, b) { - return compareBooleans(b.isRedirect, a.isRedirect) || compareNumberOfDirectorySeparators(a.path, b.path); -} -function getNearestAncestorDirectoryWithPackageJson(host, fileName) { - if (host.getNearestAncestorDirectoryWithPackageJson) { - return host.getNearestAncestorDirectoryWithPackageJson(fileName); - } - return !!forEachAncestorDirectory(fileName, function (directory) { - return host.fileExists(combinePaths(directory, "package.json")) ? true : void 0; - }); -} -function forEachFileNameOfModule(importingFileName, importedFileName, host, preferSymlinks, cb) { - var _a; - var getCanonicalFileName = hostGetCanonicalFileName(host); - var cwd = host.getCurrentDirectory(); - var referenceRedirect = host.isSourceOfProjectReferenceRedirect(importedFileName) ? host.getProjectReferenceRedirect(importedFileName) : void 0; - var importedPath = toPath(importedFileName, cwd, getCanonicalFileName); - var redirects = host.redirectTargetsMap.get(importedPath) || emptyArray; - var importedFileNames = __spreadArray(__spreadArray(__spreadArray([], __read(referenceRedirect ? [referenceRedirect] : emptyArray), false), [importedFileName], false), __read(redirects), false); - var targets = importedFileNames.map(function (f) { return getNormalizedAbsolutePath(f, cwd); }); - var shouldFilterIgnoredPaths = !every(targets, containsIgnoredPath); - if (!preferSymlinks) { - var result2 = forEach(targets, function (p) { return !(shouldFilterIgnoredPaths && containsIgnoredPath(p)) && cb(p, referenceRedirect === p); }); - if (result2) - return result2; - } - var symlinkedDirectories = (_a = host.getSymlinkCache) == null ? void 0 : _a.call(host).getSymlinkedDirectoriesByRealpath(); - var fullImportedFileName = getNormalizedAbsolutePath(importedFileName, cwd); - var result = symlinkedDirectories && forEachAncestorDirectory(getDirectoryPath(fullImportedFileName), function (realPathDirectory) { - var symlinkDirectories = symlinkedDirectories.get(ensureTrailingDirectorySeparator(toPath(realPathDirectory, cwd, getCanonicalFileName))); - if (!symlinkDirectories) - return void 0; - if (startsWithDirectory(importingFileName, realPathDirectory, getCanonicalFileName)) { - return false; - } - return forEach(targets, function (target) { - var e_153, _t; - if (!startsWithDirectory(target, realPathDirectory, getCanonicalFileName)) { - return; - } - var relative = getRelativePathFromDirectory(realPathDirectory, target, getCanonicalFileName); - try { - for (var symlinkDirectories_1 = __values(symlinkDirectories), symlinkDirectories_1_1 = symlinkDirectories_1.next(); !symlinkDirectories_1_1.done; symlinkDirectories_1_1 = symlinkDirectories_1.next()) { - var symlinkDirectory = symlinkDirectories_1_1.value; - var option = resolvePath(symlinkDirectory, relative); - var result2 = cb(option, target === referenceRedirect); - shouldFilterIgnoredPaths = true; - if (result2) - return result2; - } - } - catch (e_153_1) { e_153 = { error: e_153_1 }; } - finally { - try { - if (symlinkDirectories_1_1 && !symlinkDirectories_1_1.done && (_t = symlinkDirectories_1.return)) _t.call(symlinkDirectories_1); - } - finally { if (e_153) throw e_153.error; } - } - }); - }); - return result || (preferSymlinks ? forEach(targets, function (p) { return shouldFilterIgnoredPaths && containsIgnoredPath(p) ? void 0 : cb(p, p === referenceRedirect); }) : void 0); -} -function getAllModulePaths(importingFilePath, importedFileName, host, preferences, options) { - if (options === void 0) { options = {}; } - var _a; - var importedFilePath = toPath(importedFileName, host.getCurrentDirectory(), hostGetCanonicalFileName(host)); - var cache = (_a = host.getModuleSpecifierCache) == null ? void 0 : _a.call(host); - if (cache) { - var cached = cache.get(importingFilePath, importedFilePath, preferences, options); - if (cached == null ? void 0 : cached.modulePaths) - return cached.modulePaths; - } - var modulePaths = getAllModulePathsWorker(importingFilePath, importedFileName, host); - if (cache) { - cache.setModulePaths(importingFilePath, importedFilePath, preferences, options, modulePaths); - } - return modulePaths; -} -function getAllModulePathsWorker(importingFileName, importedFileName, host) { - var getCanonicalFileName = hostGetCanonicalFileName(host); - var allFileNames = /* @__PURE__ */ new Map(); - var importedFileFromNodeModules = false; - forEachFileNameOfModule(importingFileName, importedFileName, host, - /*preferSymlinks*/ - true, function (path, isRedirect) { - var isInNodeModules = pathContainsNodeModules(path); - allFileNames.set(path, { path: getCanonicalFileName(path), isRedirect: isRedirect, isInNodeModules: isInNodeModules }); - importedFileFromNodeModules = importedFileFromNodeModules || isInNodeModules; - }); - var sortedPaths = []; - var _loop_7 = function (directory) { - var directoryStart = ensureTrailingDirectorySeparator(directory); - var pathsInDirectory; - allFileNames.forEach(function (_t, fileName) { - var path = _t.path, isRedirect = _t.isRedirect, isInNodeModules = _t.isInNodeModules; - if (startsWith(path, directoryStart)) { - (pathsInDirectory || (pathsInDirectory = [])).push({ path: fileName, isRedirect: isRedirect, isInNodeModules: isInNodeModules }); - allFileNames.delete(fileName); - } - }); - if (pathsInDirectory) { - if (pathsInDirectory.length > 1) { - pathsInDirectory.sort(comparePathsByRedirectAndNumberOfDirectorySeparators); - } - sortedPaths.push.apply(sortedPaths, __spreadArray([], __read(pathsInDirectory), false)); - } - var newDirectory = getDirectoryPath(directory); - if (newDirectory === directory) - return out_directory_1 = directory, "break"; - directory = newDirectory; - out_directory_1 = directory; - }; - var out_directory_1; - for (var directory = getDirectoryPath(importingFileName); allFileNames.size !== 0;) { - var state_2 = _loop_7(directory); - directory = out_directory_1; - if (state_2 === "break") - break; - } - if (allFileNames.size) { - var remainingPaths = arrayFrom(allFileNames.values()); - if (remainingPaths.length > 1) - remainingPaths.sort(comparePathsByRedirectAndNumberOfDirectorySeparators); - sortedPaths.push.apply(sortedPaths, __spreadArray([], __read(remainingPaths), false)); - } - return sortedPaths; -} -function tryGetModuleNameFromAmbientModule(moduleSymbol, checker) { - var _a; - var decl = (_a = moduleSymbol.declarations) == null ? void 0 : _a.find(function (d) { return isNonGlobalAmbientModule(d) && (!isExternalModuleAugmentation(d) || !isExternalModuleNameRelative(getTextOfIdentifierOrLiteral(d.name))); }); - if (decl) { - return decl.name.text; - } - var ambientModuleDeclareCandidates = mapDefined(moduleSymbol.declarations, function (d) { - var _a2, _b, _c, _d; - if (!isModuleDeclaration(d)) - return; - var topNamespace = getTopNamespace(d); - if (!(((_a2 = topNamespace == null ? void 0 : topNamespace.parent) == null ? void 0 : _a2.parent) && isModuleBlock(topNamespace.parent) && isAmbientModule(topNamespace.parent.parent) && isSourceFile(topNamespace.parent.parent.parent))) - return; - var exportAssignment = (_d = (_c = (_b = topNamespace.parent.parent.symbol.exports) == null ? void 0 : _b.get("export=")) == null ? void 0 : _c.valueDeclaration) == null ? void 0 : _d.expression; - if (!exportAssignment) - return; - var exportSymbol = checker.getSymbolAtLocation(exportAssignment); - if (!exportSymbol) - return; - var originalExportSymbol = (exportSymbol == null ? void 0 : exportSymbol.flags) & 2097152 /* Alias */ ? checker.getAliasedSymbol(exportSymbol) : exportSymbol; - if (originalExportSymbol === d.symbol) - return topNamespace.parent.parent; - function getTopNamespace(namespaceDeclaration) { - while (namespaceDeclaration.flags & 8 /* NestedNamespace */) { - namespaceDeclaration = namespaceDeclaration.parent; - } - return namespaceDeclaration; - } - }); - var ambientModuleDeclare = ambientModuleDeclareCandidates[0]; - if (ambientModuleDeclare) { - return ambientModuleDeclare.name.text; - } -} -function tryGetModuleNameFromPaths(relativeToBaseUrl, paths, allowedEndings, host, compilerOptions) { - var e_154, _t; - for (var key in paths) { - var _loop_8 = function (patternText2) { - var e_155, _w; - var pattern = normalizePath(patternText2); - var indexOfStar = pattern.indexOf("*"); - var candidates = allowedEndings.map(function (ending) { return ({ - ending: ending, - value: processEnding(relativeToBaseUrl, [ending], compilerOptions) - }); }); - if (tryGetExtensionFromPath2(pattern)) { - candidates.push({ ending: void 0, value: relativeToBaseUrl }); - } - if (indexOfStar !== -1) { - var prefix = pattern.substring(0, indexOfStar); - var suffix = pattern.substring(indexOfStar + 1); - try { - for (var candidates_3 = (e_155 = void 0, __values(candidates)), candidates_3_1 = candidates_3.next(); !candidates_3_1.done; candidates_3_1 = candidates_3.next()) { - var _x = candidates_3_1.value, ending = _x.ending, value = _x.value; - if (value.length >= prefix.length + suffix.length && startsWith(value, prefix) && endsWith(value, suffix) && validateEnding({ ending: ending, value: value })) { - var matchedStar = value.substring(prefix.length, value.length - suffix.length); - if (!pathIsRelative(matchedStar)) { - return { value: key.replace("*", matchedStar) }; - } - } - } - } - catch (e_155_1) { e_155 = { error: e_155_1 }; } - finally { - try { - if (candidates_3_1 && !candidates_3_1.done && (_w = candidates_3.return)) _w.call(candidates_3); - } - finally { if (e_155) throw e_155.error; } - } - } - else if (some(candidates, function (c) { return c.ending !== 0 /* Minimal */ && pattern === c.value; }) || some(candidates, function (c) { return c.ending === 0 /* Minimal */ && pattern === c.value && validateEnding(c); })) { - return { value: key }; - } - }; - try { - for (var _u = (e_154 = void 0, __values(paths[key])), _v = _u.next(); !_v.done; _v = _u.next()) { - var patternText2 = _v.value; - var state_3 = _loop_8(patternText2); - if (typeof state_3 === "object") - return state_3.value; - } - } - catch (e_154_1) { e_154 = { error: e_154_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_154) throw e_154.error; } - } - } - function validateEnding(_t) { - var ending = _t.ending, value = _t.value; - return ending !== 0 /* Minimal */ || value === processEnding(relativeToBaseUrl, [ending], compilerOptions, host); - } -} -function tryGetModuleNameFromExports(options, targetFilePath, packageDirectory, packageName, exports, conditions, mode /* Exact */) { - var e_156, _t; - if (mode === void 0) { mode = 0; } - if (typeof exports === "string") { - var pathOrPattern = getNormalizedAbsolutePath(combinePaths(packageDirectory, exports), - /*currentDirectory*/ - void 0); - var extensionSwappedTarget = hasTSFileExtension(targetFilePath) ? removeFileExtension(targetFilePath) + tryGetJSExtensionForFile(targetFilePath, options) : void 0; - switch (mode) { - case 0 /* Exact */: - if (comparePaths(targetFilePath, pathOrPattern) === 0 /* EqualTo */ || extensionSwappedTarget && comparePaths(extensionSwappedTarget, pathOrPattern) === 0 /* EqualTo */) { - return { moduleFileToTry: packageName }; - } - break; - case 1 /* Directory */: - if (containsPath(pathOrPattern, targetFilePath)) { - var fragment = getRelativePathFromDirectory(pathOrPattern, targetFilePath, - /*ignoreCase*/ - false); - return { moduleFileToTry: getNormalizedAbsolutePath(combinePaths(combinePaths(packageName, exports), fragment), - /*currentDirectory*/ - void 0) }; - } - break; - case 2 /* Pattern */: - var starPos = pathOrPattern.indexOf("*"); - var leadingSlice = pathOrPattern.slice(0, starPos); - var trailingSlice = pathOrPattern.slice(starPos + 1); - if (startsWith(targetFilePath, leadingSlice) && endsWith(targetFilePath, trailingSlice)) { - var starReplacement = targetFilePath.slice(leadingSlice.length, targetFilePath.length - trailingSlice.length); - return { moduleFileToTry: packageName.replace("*", starReplacement) }; - } - if (extensionSwappedTarget && startsWith(extensionSwappedTarget, leadingSlice) && endsWith(extensionSwappedTarget, trailingSlice)) { - var starReplacement = extensionSwappedTarget.slice(leadingSlice.length, extensionSwappedTarget.length - trailingSlice.length); - return { moduleFileToTry: packageName.replace("*", starReplacement) }; - } - break; - } - } - else if (Array.isArray(exports)) { - return forEach(exports, function (e) { return tryGetModuleNameFromExports(options, targetFilePath, packageDirectory, packageName, e, conditions); }); - } - else if (typeof exports === "object" && exports !== null) { - if (allKeysStartWithDot(exports)) { - return forEach(getOwnKeys(exports), function (k) { - var subPackageName = getNormalizedAbsolutePath(combinePaths(packageName, k), - /*currentDirectory*/ - void 0); - var mode2 = endsWith(k, "/") ? 1 /* Directory */ : stringContains(k, "*") ? 2 /* Pattern */ : 0 /* Exact */; - return tryGetModuleNameFromExports(options, targetFilePath, packageDirectory, subPackageName, exports[k], conditions, mode2); - }); - } - else { - try { - for (var _u = __values(getOwnKeys(exports)), _v = _u.next(); !_v.done; _v = _u.next()) { - var key = _v.value; - if (key === "default" || conditions.indexOf(key) >= 0 || isApplicableVersionedTypesKey(conditions, key)) { - var subTarget = exports[key]; - var result = tryGetModuleNameFromExports(options, targetFilePath, packageDirectory, packageName, subTarget, conditions, mode); - if (result) { - return result; - } - } - } - } - catch (e_156_1) { e_156 = { error: e_156_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_156) throw e_156.error; } - } - } - } - return void 0; -} -function tryGetModuleNameFromRootDirs(rootDirs, moduleFileName, sourceDirectory, getCanonicalFileName, allowedEndings, compilerOptions) { - var normalizedTargetPaths = getPathsRelativeToRootDirs(moduleFileName, rootDirs, getCanonicalFileName); - if (normalizedTargetPaths === void 0) { - return void 0; - } - var normalizedSourcePaths = getPathsRelativeToRootDirs(sourceDirectory, rootDirs, getCanonicalFileName); - var relativePaths = flatMap(normalizedSourcePaths, function (sourcePath) { - return map(normalizedTargetPaths, function (targetPath) { return ensurePathIsNonModuleName(getRelativePathFromDirectory(sourcePath, targetPath, getCanonicalFileName)); }); - }); - var shortest = min(relativePaths, compareNumberOfDirectorySeparators); - if (!shortest) { - return void 0; - } - return processEnding(shortest, allowedEndings, compilerOptions); -} -function tryGetModuleNameAsNodeModule(_t, _u, importingSourceFile, host, options, userPreferences, packageNameOnly, overrideMode) { - var path = _t.path, isRedirect = _t.isRedirect; - var getCanonicalFileName = _u.getCanonicalFileName, sourceDirectory = _u.sourceDirectory; - if (!host.fileExists || !host.readFile) { - return void 0; - } - var parts = getNodeModulePathParts(path); - if (!parts) { - return void 0; - } - var preferences = getPreferences(userPreferences, options, importingSourceFile); - var allowedEndings = preferences.getAllowedEndingsInPreferredOrder(); - var moduleSpecifier = path; - var isPackageRootPath = false; - if (!packageNameOnly) { - var packageRootIndex = parts.packageRootIndex; - var moduleFileName = void 0; - while (true) { - var _v = tryDirectoryWithPackageJson(packageRootIndex), moduleFileToTry = _v.moduleFileToTry, packageRootPath = _v.packageRootPath, blockedByExports = _v.blockedByExports, verbatimFromExports = _v.verbatimFromExports; - if (getEmitModuleResolutionKind(options) !== 1 /* Classic */) { - if (blockedByExports) { - return void 0; - } - if (verbatimFromExports) { - return moduleFileToTry; - } - } - if (packageRootPath) { - moduleSpecifier = packageRootPath; - isPackageRootPath = true; - break; - } - if (!moduleFileName) - moduleFileName = moduleFileToTry; - packageRootIndex = path.indexOf(directorySeparator, packageRootIndex + 1); - if (packageRootIndex === -1) { - moduleSpecifier = processEnding(moduleFileName, allowedEndings, options, host); - break; - } - } - } - if (isRedirect && !isPackageRootPath) { - return void 0; - } - var globalTypingsCacheLocation = host.getGlobalTypingsCacheLocation && host.getGlobalTypingsCacheLocation(); - var pathToTopLevelNodeModules = getCanonicalFileName(moduleSpecifier.substring(0, parts.topLevelNodeModulesIndex)); - if (!(startsWith(sourceDirectory, pathToTopLevelNodeModules) || globalTypingsCacheLocation && startsWith(getCanonicalFileName(globalTypingsCacheLocation), pathToTopLevelNodeModules))) { - return void 0; - } - var nodeModulesDirectoryName = moduleSpecifier.substring(parts.topLevelPackageNameIndex + 1); - var packageName = getPackageNameFromTypesPackageName(nodeModulesDirectoryName); - return getEmitModuleResolutionKind(options) === 1 /* Classic */ && packageName === nodeModulesDirectoryName ? void 0 : packageName; - function tryDirectoryWithPackageJson(packageRootIndex) { - var _a, _b; - var packageRootPath = path.substring(0, packageRootIndex); - var packageJsonPath = combinePaths(packageRootPath, "package.json"); - var moduleFileToTry = path; - var maybeBlockedByTypesVersions = false; - var cachedPackageJson = (_b = (_a = host.getPackageJsonInfoCache) == null ? void 0 : _a.call(host)) == null ? void 0 : _b.getPackageJsonInfo(packageJsonPath); - if (typeof cachedPackageJson === "object" || cachedPackageJson === void 0 && host.fileExists(packageJsonPath)) { - var packageJsonContent = (cachedPackageJson == null ? void 0 : cachedPackageJson.contents.packageJsonContent) || JSON.parse(host.readFile(packageJsonPath)); - var importMode = overrideMode || importingSourceFile.impliedNodeFormat; - if (getResolvePackageJsonExports(options)) { - var nodeModulesDirectoryName2 = packageRootPath.substring(parts.topLevelPackageNameIndex + 1); - var packageName2 = getPackageNameFromTypesPackageName(nodeModulesDirectoryName2); - var conditions = getConditions(options, importMode === 99 /* ESNext */); - var fromExports = packageJsonContent.exports ? tryGetModuleNameFromExports(options, path, packageRootPath, packageName2, packageJsonContent.exports, conditions) : void 0; - if (fromExports) { - var withJsExtension = !hasTSFileExtension(fromExports.moduleFileToTry) ? fromExports : { moduleFileToTry: removeFileExtension(fromExports.moduleFileToTry) + tryGetJSExtensionForFile(fromExports.moduleFileToTry, options) }; - return __assign(__assign({}, withJsExtension), { verbatimFromExports: true }); - } - if (packageJsonContent.exports) { - return { moduleFileToTry: path, blockedByExports: true }; - } - } - var versionPaths = packageJsonContent.typesVersions ? getPackageJsonTypesVersionsPaths(packageJsonContent.typesVersions) : void 0; - if (versionPaths) { - var subModuleName = path.slice(packageRootPath.length + 1); - var fromPaths = tryGetModuleNameFromPaths(subModuleName, versionPaths.paths, allowedEndings, host, options); - if (fromPaths === void 0) { - maybeBlockedByTypesVersions = true; - } - else { - moduleFileToTry = combinePaths(packageRootPath, fromPaths); - } - } - var mainFileRelative = packageJsonContent.typings || packageJsonContent.types || packageJsonContent.main || "index.js"; - if (isString(mainFileRelative) && !(maybeBlockedByTypesVersions && matchPatternOrExact(tryParsePatterns(versionPaths.paths), mainFileRelative))) { - var mainExportFile = toPath(mainFileRelative, packageRootPath, getCanonicalFileName); - var canonicalModuleFileToTry = getCanonicalFileName(moduleFileToTry); - if (removeFileExtension(mainExportFile) === removeFileExtension(canonicalModuleFileToTry)) { - return { packageRootPath: packageRootPath, moduleFileToTry: moduleFileToTry }; - } - else if (packageJsonContent.type !== "module" && !fileExtensionIsOneOf(canonicalModuleFileToTry, extensionsNotSupportingExtensionlessResolution) && startsWith(canonicalModuleFileToTry, mainExportFile) && getDirectoryPath(canonicalModuleFileToTry) === removeTrailingDirectorySeparator(mainExportFile) && removeFileExtension(getBaseFileName(canonicalModuleFileToTry)) === "index") { - return { packageRootPath: packageRootPath, moduleFileToTry: moduleFileToTry }; - } - } - } - else { - var fileName = getCanonicalFileName(moduleFileToTry.substring(parts.packageRootIndex + 1)); - if (fileName === "index.d.ts" || fileName === "index.js" || fileName === "index.ts" || fileName === "index.tsx") { - return { moduleFileToTry: moduleFileToTry, packageRootPath: packageRootPath }; - } - } - return { moduleFileToTry: moduleFileToTry }; - } -} -function tryGetAnyFileFromPath(host, path) { - var e_157, _t; - if (!host.fileExists) - return; - var extensions = flatten(getSupportedExtensions({ allowJs: true }, [{ extension: "node", isMixedContent: false }, { extension: "json", isMixedContent: false, scriptKind: 6 /* JSON */ }])); - try { - for (var extensions_3 = __values(extensions), extensions_3_1 = extensions_3.next(); !extensions_3_1.done; extensions_3_1 = extensions_3.next()) { - var e = extensions_3_1.value; - var fullPath = path + e; - if (host.fileExists(fullPath)) { - return fullPath; - } - } - } - catch (e_157_1) { e_157 = { error: e_157_1 }; } - finally { - try { - if (extensions_3_1 && !extensions_3_1.done && (_t = extensions_3.return)) _t.call(extensions_3); - } - finally { if (e_157) throw e_157.error; } - } -} -function getPathsRelativeToRootDirs(path, rootDirs, getCanonicalFileName) { - return mapDefined(rootDirs, function (rootDir) { - var relativePath = getRelativePathIfInSameVolume(path, rootDir, getCanonicalFileName); - return relativePath !== void 0 && isPathRelativeToParent(relativePath) ? void 0 : relativePath; - }); -} -function processEnding(fileName, allowedEndings, options, host) { - if (fileExtensionIsOneOf(fileName, [".json" /* Json */, ".mjs" /* Mjs */, ".cjs" /* Cjs */])) { - return fileName; - } - var noExtension = removeFileExtension(fileName); - if (fileName === noExtension) { - return fileName; - } - var jsPriority = allowedEndings.indexOf(2 /* JsExtension */); - var tsPriority = allowedEndings.indexOf(3 /* TsExtension */); - if (fileExtensionIsOneOf(fileName, [".mts" /* Mts */, ".cts" /* Cts */]) && tsPriority !== -1 && tsPriority < jsPriority) { - return fileName; - } - else if (fileExtensionIsOneOf(fileName, [".d.mts" /* Dmts */, ".mts" /* Mts */, ".d.cts" /* Dcts */, ".cts" /* Cts */])) { - return noExtension + getJSExtensionForFile(fileName, options); - } - else if (!fileExtensionIsOneOf(fileName, [".d.ts" /* Dts */]) && fileExtensionIsOneOf(fileName, [".ts" /* Ts */]) && stringContains(fileName, ".d.")) { - return tryGetRealFileNameForNonJsDeclarationFileName(fileName); - } - switch (allowedEndings[0]) { - case 0 /* Minimal */: - var withoutIndex = removeSuffix(noExtension, "/index"); - if (host && withoutIndex !== noExtension && tryGetAnyFileFromPath(host, withoutIndex)) { - return noExtension; - } - return withoutIndex; - case 1 /* Index */: - return noExtension; - case 2 /* JsExtension */: - return noExtension + getJSExtensionForFile(fileName, options); - case 3 /* TsExtension */: - if (isDeclarationFileName(fileName)) { - var extensionlessPriority = allowedEndings.findIndex(function (e) { return e === 0 /* Minimal */ || e === 1; } /* Index */); - return extensionlessPriority !== -1 && extensionlessPriority < jsPriority ? noExtension : noExtension + getJSExtensionForFile(fileName, options); - } - return fileName; - default: - return Debug.assertNever(allowedEndings[0]); - } -} -function tryGetRealFileNameForNonJsDeclarationFileName(fileName) { - var baseName = getBaseFileName(fileName); - if (!endsWith(fileName, ".ts" /* Ts */) || !stringContains(baseName, ".d.") || fileExtensionIsOneOf(baseName, [".d.ts" /* Dts */])) - return void 0; - var noExtension = removeExtension(fileName, ".ts" /* Ts */); - var ext = noExtension.substring(noExtension.lastIndexOf(".")); - return noExtension.substring(0, noExtension.indexOf(".d.")) + ext; -} -function getJSExtensionForFile(fileName, options) { - var _t; - return (_t = tryGetJSExtensionForFile(fileName, options)) !== null && _t !== void 0 ? _t : Debug.fail("Extension ".concat(extensionFromPath(fileName), " is unsupported:: FileName:: ").concat(fileName)); -} -function tryGetJSExtensionForFile(fileName, options) { - var ext = tryGetExtensionFromPath2(fileName); - switch (ext) { - case ".ts" /* Ts */: - case ".d.ts" /* Dts */: - return ".js" /* Js */; - case ".tsx" /* Tsx */: - return options.jsx === 1 /* Preserve */ ? ".jsx" /* Jsx */ : ".js" /* Js */; - case ".js" /* Js */: - case ".jsx" /* Jsx */: - case ".json" /* Json */: - return ext; - case ".d.mts" /* Dmts */: - case ".mts" /* Mts */: - case ".mjs" /* Mjs */: - return ".mjs" /* Mjs */; - case ".d.cts" /* Dcts */: - case ".cts" /* Cts */: - case ".cjs" /* Cjs */: - return ".cjs" /* Cjs */; - default: - return void 0; - } -} -function getRelativePathIfInSameVolume(path, directoryPath, getCanonicalFileName) { - var relativePath = getRelativePathToDirectoryOrUrl(directoryPath, path, directoryPath, getCanonicalFileName, - /*isAbsolutePathAnUrl*/ - false); - return isRootedDiskPath(relativePath) ? void 0 : relativePath; -} -function isPathRelativeToParent(path) { - return startsWith(path, ".."); -} -// src/compiler/checker.ts -var ambientModuleSymbolRegex = /^".+"$/; -var anon = "(anonymous)"; -var nextSymbolId = 1; -var nextNodeId = 1; -var nextMergeId = 1; -var nextFlowId = 1; -var TypeFacts = /* @__PURE__ */ (function (TypeFacts3) { - TypeFacts3[TypeFacts3["None"] = 0] = "None"; - TypeFacts3[TypeFacts3["TypeofEQString"] = 1] = "TypeofEQString"; - TypeFacts3[TypeFacts3["TypeofEQNumber"] = 2] = "TypeofEQNumber"; - TypeFacts3[TypeFacts3["TypeofEQBigInt"] = 4] = "TypeofEQBigInt"; - TypeFacts3[TypeFacts3["TypeofEQBoolean"] = 8] = "TypeofEQBoolean"; - TypeFacts3[TypeFacts3["TypeofEQSymbol"] = 16] = "TypeofEQSymbol"; - TypeFacts3[TypeFacts3["TypeofEQObject"] = 32] = "TypeofEQObject"; - TypeFacts3[TypeFacts3["TypeofEQFunction"] = 64] = "TypeofEQFunction"; - TypeFacts3[TypeFacts3["TypeofEQHostObject"] = 128] = "TypeofEQHostObject"; - TypeFacts3[TypeFacts3["TypeofNEString"] = 256] = "TypeofNEString"; - TypeFacts3[TypeFacts3["TypeofNENumber"] = 512] = "TypeofNENumber"; - TypeFacts3[TypeFacts3["TypeofNEBigInt"] = 1024] = "TypeofNEBigInt"; - TypeFacts3[TypeFacts3["TypeofNEBoolean"] = 2048] = "TypeofNEBoolean"; - TypeFacts3[TypeFacts3["TypeofNESymbol"] = 4096] = "TypeofNESymbol"; - TypeFacts3[TypeFacts3["TypeofNEObject"] = 8192] = "TypeofNEObject"; - TypeFacts3[TypeFacts3["TypeofNEFunction"] = 16384] = "TypeofNEFunction"; - TypeFacts3[TypeFacts3["TypeofNEHostObject"] = 32768] = "TypeofNEHostObject"; - TypeFacts3[TypeFacts3["EQUndefined"] = 65536] = "EQUndefined"; - TypeFacts3[TypeFacts3["EQNull"] = 131072] = "EQNull"; - TypeFacts3[TypeFacts3["EQUndefinedOrNull"] = 262144] = "EQUndefinedOrNull"; - TypeFacts3[TypeFacts3["NEUndefined"] = 524288] = "NEUndefined"; - TypeFacts3[TypeFacts3["NENull"] = 1048576] = "NENull"; - TypeFacts3[TypeFacts3["NEUndefinedOrNull"] = 2097152] = "NEUndefinedOrNull"; - TypeFacts3[TypeFacts3["Truthy"] = 4194304] = "Truthy"; - TypeFacts3[TypeFacts3["Falsy"] = 8388608] = "Falsy"; - TypeFacts3[TypeFacts3["IsUndefined"] = 16777216] = "IsUndefined"; - TypeFacts3[TypeFacts3["IsNull"] = 33554432] = "IsNull"; - TypeFacts3[TypeFacts3["IsUndefinedOrNull"] = 50331648] = "IsUndefinedOrNull"; - TypeFacts3[TypeFacts3["All"] = 134217727] = "All"; - TypeFacts3[TypeFacts3["BaseStringStrictFacts"] = 3735041] = "BaseStringStrictFacts"; - TypeFacts3[TypeFacts3["BaseStringFacts"] = 12582401] = "BaseStringFacts"; - TypeFacts3[TypeFacts3["StringStrictFacts"] = 16317953] = "StringStrictFacts"; - TypeFacts3[TypeFacts3["StringFacts"] = 16776705] = "StringFacts"; - TypeFacts3[TypeFacts3["EmptyStringStrictFacts"] = 12123649] = "EmptyStringStrictFacts"; - TypeFacts3[TypeFacts3["EmptyStringFacts"] = 12582401 /* BaseStringFacts */] = "EmptyStringFacts"; - TypeFacts3[TypeFacts3["NonEmptyStringStrictFacts"] = 7929345] = "NonEmptyStringStrictFacts"; - TypeFacts3[TypeFacts3["NonEmptyStringFacts"] = 16776705] = "NonEmptyStringFacts"; - TypeFacts3[TypeFacts3["BaseNumberStrictFacts"] = 3734786] = "BaseNumberStrictFacts"; - TypeFacts3[TypeFacts3["BaseNumberFacts"] = 12582146] = "BaseNumberFacts"; - TypeFacts3[TypeFacts3["NumberStrictFacts"] = 16317698] = "NumberStrictFacts"; - TypeFacts3[TypeFacts3["NumberFacts"] = 16776450] = "NumberFacts"; - TypeFacts3[TypeFacts3["ZeroNumberStrictFacts"] = 12123394] = "ZeroNumberStrictFacts"; - TypeFacts3[TypeFacts3["ZeroNumberFacts"] = 12582146 /* BaseNumberFacts */] = "ZeroNumberFacts"; - TypeFacts3[TypeFacts3["NonZeroNumberStrictFacts"] = 7929090] = "NonZeroNumberStrictFacts"; - TypeFacts3[TypeFacts3["NonZeroNumberFacts"] = 16776450] = "NonZeroNumberFacts"; - TypeFacts3[TypeFacts3["BaseBigIntStrictFacts"] = 3734276] = "BaseBigIntStrictFacts"; - TypeFacts3[TypeFacts3["BaseBigIntFacts"] = 12581636] = "BaseBigIntFacts"; - TypeFacts3[TypeFacts3["BigIntStrictFacts"] = 16317188] = "BigIntStrictFacts"; - TypeFacts3[TypeFacts3["BigIntFacts"] = 16775940] = "BigIntFacts"; - TypeFacts3[TypeFacts3["ZeroBigIntStrictFacts"] = 12122884] = "ZeroBigIntStrictFacts"; - TypeFacts3[TypeFacts3["ZeroBigIntFacts"] = 12581636 /* BaseBigIntFacts */] = "ZeroBigIntFacts"; - TypeFacts3[TypeFacts3["NonZeroBigIntStrictFacts"] = 7928580] = "NonZeroBigIntStrictFacts"; - TypeFacts3[TypeFacts3["NonZeroBigIntFacts"] = 16775940] = "NonZeroBigIntFacts"; - TypeFacts3[TypeFacts3["BaseBooleanStrictFacts"] = 3733256] = "BaseBooleanStrictFacts"; - TypeFacts3[TypeFacts3["BaseBooleanFacts"] = 12580616] = "BaseBooleanFacts"; - TypeFacts3[TypeFacts3["BooleanStrictFacts"] = 16316168] = "BooleanStrictFacts"; - TypeFacts3[TypeFacts3["BooleanFacts"] = 16774920] = "BooleanFacts"; - TypeFacts3[TypeFacts3["FalseStrictFacts"] = 12121864] = "FalseStrictFacts"; - TypeFacts3[TypeFacts3["FalseFacts"] = 12580616 /* BaseBooleanFacts */] = "FalseFacts"; - TypeFacts3[TypeFacts3["TrueStrictFacts"] = 7927560] = "TrueStrictFacts"; - TypeFacts3[TypeFacts3["TrueFacts"] = 16774920] = "TrueFacts"; - TypeFacts3[TypeFacts3["SymbolStrictFacts"] = 7925520] = "SymbolStrictFacts"; - TypeFacts3[TypeFacts3["SymbolFacts"] = 16772880] = "SymbolFacts"; - TypeFacts3[TypeFacts3["ObjectStrictFacts"] = 7888800] = "ObjectStrictFacts"; - TypeFacts3[TypeFacts3["ObjectFacts"] = 16736160] = "ObjectFacts"; - TypeFacts3[TypeFacts3["FunctionStrictFacts"] = 7880640] = "FunctionStrictFacts"; - TypeFacts3[TypeFacts3["FunctionFacts"] = 16728e3] = "FunctionFacts"; - TypeFacts3[TypeFacts3["VoidFacts"] = 9830144] = "VoidFacts"; - TypeFacts3[TypeFacts3["UndefinedFacts"] = 26607360] = "UndefinedFacts"; - TypeFacts3[TypeFacts3["NullFacts"] = 42917664] = "NullFacts"; - TypeFacts3[TypeFacts3["EmptyObjectStrictFacts"] = 83427327] = "EmptyObjectStrictFacts"; - TypeFacts3[TypeFacts3["EmptyObjectFacts"] = 83886079] = "EmptyObjectFacts"; - TypeFacts3[TypeFacts3["UnknownFacts"] = 83886079] = "UnknownFacts"; - TypeFacts3[TypeFacts3["AllTypeofNE"] = 556800] = "AllTypeofNE"; - TypeFacts3[TypeFacts3["OrFactsMask"] = 8256] = "OrFactsMask"; - TypeFacts3[TypeFacts3["AndFactsMask"] = 134209471] = "AndFactsMask"; - return TypeFacts3; -})(TypeFacts || {}); -var typeofNEFacts = new Map(Object.entries({ - string: 256 /* TypeofNEString */, - number: 512 /* TypeofNENumber */, - bigint: 1024 /* TypeofNEBigInt */, - boolean: 2048 /* TypeofNEBoolean */, - symbol: 4096 /* TypeofNESymbol */, - undefined: 524288 /* NEUndefined */, - object: 8192 /* TypeofNEObject */, - function: 16384 /* TypeofNEFunction */ -})); -var CheckMode = /* @__PURE__ */ (function (CheckMode3) { - CheckMode3[CheckMode3["Normal"] = 0] = "Normal"; - CheckMode3[CheckMode3["Contextual"] = 1] = "Contextual"; - CheckMode3[CheckMode3["Inferential"] = 2] = "Inferential"; - CheckMode3[CheckMode3["SkipContextSensitive"] = 4] = "SkipContextSensitive"; - CheckMode3[CheckMode3["SkipGenericFunctions"] = 8] = "SkipGenericFunctions"; - CheckMode3[CheckMode3["IsForSignatureHelp"] = 16] = "IsForSignatureHelp"; - CheckMode3[CheckMode3["IsForStringLiteralArgumentCompletions"] = 32] = "IsForStringLiteralArgumentCompletions"; - CheckMode3[CheckMode3["RestBindingElement"] = 64] = "RestBindingElement"; - CheckMode3[CheckMode3["TypeOnly"] = 128] = "TypeOnly"; - return CheckMode3; -})(CheckMode || {}); -var SignatureCheckMode = /* @__PURE__ */ (function (SignatureCheckMode3) { - SignatureCheckMode3[SignatureCheckMode3["None"] = 0] = "None"; - SignatureCheckMode3[SignatureCheckMode3["BivariantCallback"] = 1] = "BivariantCallback"; - SignatureCheckMode3[SignatureCheckMode3["StrictCallback"] = 2] = "StrictCallback"; - SignatureCheckMode3[SignatureCheckMode3["IgnoreReturnTypes"] = 4] = "IgnoreReturnTypes"; - SignatureCheckMode3[SignatureCheckMode3["StrictArity"] = 8] = "StrictArity"; - SignatureCheckMode3[SignatureCheckMode3["StrictTopSignature"] = 16] = "StrictTopSignature"; - SignatureCheckMode3[SignatureCheckMode3["Callback"] = 3] = "Callback"; - return SignatureCheckMode3; -})(SignatureCheckMode || {}); -var isNotOverloadAndNotAccessor = and(isNotOverload, isNotAccessor); -var intrinsicTypeKinds = new Map(Object.entries({ - Uppercase: 0 /* Uppercase */, - Lowercase: 1 /* Lowercase */, - Capitalize: 2 /* Capitalize */, - Uncapitalize: 3 /* Uncapitalize */ -})); -var SymbolLinks = /** @class */ (function () { - function SymbolLinks() { - } - return SymbolLinks; -}()); -function NodeLinks() { - this.flags = 0 /* None */; -} -function getNodeId(node) { - if (!node.id) { - node.id = nextNodeId; - nextNodeId++; - } - return node.id; -} -function getSymbolId(symbol) { - if (!symbol.id) { - symbol.id = nextSymbolId; - nextSymbolId++; - } - return symbol.id; -} -function isInstantiatedModule(node, preserveConstEnums) { - var moduleState = getModuleInstanceState(node); - return moduleState === 1 /* Instantiated */ || preserveConstEnums && moduleState === 2 /* ConstEnumOnly */; -} -function createTypeChecker(host) { - var deferredDiagnosticsCallbacks = []; - var addLazyDiagnostic = function (arg) { - deferredDiagnosticsCallbacks.push(arg); - }; - var cancellationToken; - var requestedExternalEmitHelperNames = /* @__PURE__ */ new Set(); - var requestedExternalEmitHelpers; - var externalHelpersModule; - var Symbol47 = objectAllocator.getSymbolConstructor(); - var Type27 = objectAllocator.getTypeConstructor(); - var Signature15 = objectAllocator.getSignatureConstructor(); - var typeCount = 0; - var symbolCount = 0; - var totalInstantiationCount = 0; - var instantiationCount = 0; - var instantiationDepth = 0; - var inlineLevel = 0; - var currentNode; - var varianceTypeParameter; - var isInferencePartiallyBlocked = false; - var emptySymbols = createSymbolTable(); - var arrayVariances = [1 /* Covariant */]; - var compilerOptions = host.getCompilerOptions(); - var languageVersion = getEmitScriptTarget(compilerOptions); - var moduleKind = getEmitModuleKind(compilerOptions); - var legacyDecorators = !!compilerOptions.experimentalDecorators; - var useDefineForClassFields = getUseDefineForClassFields(compilerOptions); - var emitStandardClassFields = getEmitStandardClassFields(compilerOptions); - var allowSyntheticDefaultImports = getAllowSyntheticDefaultImports(compilerOptions); - var strictNullChecks = getStrictOptionValue(compilerOptions, "strictNullChecks"); - var strictFunctionTypes = getStrictOptionValue(compilerOptions, "strictFunctionTypes"); - var strictBindCallApply = getStrictOptionValue(compilerOptions, "strictBindCallApply"); - var strictPropertyInitialization = getStrictOptionValue(compilerOptions, "strictPropertyInitialization"); - var noImplicitAny = getStrictOptionValue(compilerOptions, "noImplicitAny"); - var noImplicitThis = getStrictOptionValue(compilerOptions, "noImplicitThis"); - var useUnknownInCatchVariables = getStrictOptionValue(compilerOptions, "useUnknownInCatchVariables"); - var keyofStringsOnly = !!compilerOptions.keyofStringsOnly; - var defaultIndexFlags = keyofStringsOnly ? 1 /* StringsOnly */ : 0 /* None */; - var freshObjectLiteralFlag = compilerOptions.suppressExcessPropertyErrors ? 0 : 8192 /* FreshLiteral */; - var exactOptionalPropertyTypes = compilerOptions.exactOptionalPropertyTypes; - var checkBinaryExpression = createCheckBinaryExpression(); - var emitResolver = createResolver(); - var nodeBuilder = createNodeBuilder(); - var globals = createSymbolTable(); - var undefinedSymbol = createSymbol(4 /* Property */, "undefined"); - undefinedSymbol.declarations = []; - var globalThisSymbol = createSymbol(1536 /* Module */, "globalThis", 8 /* Readonly */); - globalThisSymbol.exports = globals; - globalThisSymbol.declarations = []; - globals.set(globalThisSymbol.escapedName, globalThisSymbol); - var argumentsSymbol = createSymbol(4 /* Property */, "arguments"); - var requireSymbol = createSymbol(4 /* Property */, "require"); - var isolatedModulesLikeFlagName = compilerOptions.verbatimModuleSyntax ? "verbatimModuleSyntax" : "isolatedModules"; - var canCollectSymbolAliasAccessabilityData = !compilerOptions.verbatimModuleSyntax || !!compilerOptions.importsNotUsedAsValues; - var apparentArgumentCount; - var lastGetCombinedNodeFlagsNode; - var lastGetCombinedNodeFlagsResult = 0 /* None */; - var lastGetCombinedModifierFlagsNode; - var lastGetCombinedModifierFlagsResult = 0 /* None */; - var checker = { - getNodeCount: function () { return reduceLeft(host.getSourceFiles(), function (n, s) { return n + s.nodeCount; }, 0); }, - getIdentifierCount: function () { return reduceLeft(host.getSourceFiles(), function (n, s) { return n + s.identifierCount; }, 0); }, - getSymbolCount: function () { return reduceLeft(host.getSourceFiles(), function (n, s) { return n + s.symbolCount; }, symbolCount); }, - getTypeCount: function () { return typeCount; }, - getInstantiationCount: function () { return totalInstantiationCount; }, - getRelationCacheSizes: function () { return ({ - assignable: assignableRelation.size, - identity: identityRelation.size, - subtype: subtypeRelation.size, - strictSubtype: strictSubtypeRelation.size - }); }, - isUndefinedSymbol: function (symbol) { return symbol === undefinedSymbol; }, - isArgumentsSymbol: function (symbol) { return symbol === argumentsSymbol; }, - isUnknownSymbol: function (symbol) { return symbol === unknownSymbol; }, - getMergedSymbol: getMergedSymbol, - getDiagnostics: getDiagnostics2, - getGlobalDiagnostics: getGlobalDiagnostics, - getRecursionIdentity: getRecursionIdentity, - getUnmatchedProperties: getUnmatchedProperties, - getTypeOfSymbolAtLocation: function (symbol, locationIn) { - var location = getParseTreeNode(locationIn); - return location ? getTypeOfSymbolAtLocation(symbol, location) : errorType; - }, - getTypeOfSymbol: getTypeOfSymbol, - getSymbolsOfParameterPropertyDeclaration: function (parameterIn, parameterName) { - var parameter = getParseTreeNode(parameterIn, isParameter); - if (parameter === void 0) - return Debug.fail("Cannot get symbols of a synthetic parameter that cannot be resolved to a parse-tree node."); - Debug.assert(isParameterPropertyDeclaration(parameter, parameter.parent)); - return getSymbolsOfParameterPropertyDeclaration(parameter, escapeLeadingUnderscores(parameterName)); - }, - getDeclaredTypeOfSymbol: getDeclaredTypeOfSymbol, - getPropertiesOfType: getPropertiesOfType, - getPropertyOfType: function (type, name) { return getPropertyOfType(type, escapeLeadingUnderscores(name)); }, - getPrivateIdentifierPropertyOfType: function (leftType, name, location) { - var node = getParseTreeNode(location); - if (!node) { - return void 0; - } - var propName = escapeLeadingUnderscores(name); - var lexicallyScopedIdentifier = lookupSymbolForPrivateIdentifierDeclaration(propName, node); - return lexicallyScopedIdentifier ? getPrivateIdentifierPropertyOfType(leftType, lexicallyScopedIdentifier) : void 0; - }, - getTypeOfPropertyOfType: function (type, name) { return getTypeOfPropertyOfType(type, escapeLeadingUnderscores(name)); }, - getIndexInfoOfType: function (type, kind) { return getIndexInfoOfType(type, kind === 0 /* String */ ? stringType : numberType); }, - getIndexInfosOfType: getIndexInfosOfType, - getIndexInfosOfIndexSymbol: getIndexInfosOfIndexSymbol, - getSignaturesOfType: getSignaturesOfType, - getIndexTypeOfType: function (type, kind) { return getIndexTypeOfType(type, kind === 0 /* String */ ? stringType : numberType); }, - getIndexType: function (type) { return getIndexType(type); }, - getBaseTypes: getBaseTypes, - getBaseTypeOfLiteralType: getBaseTypeOfLiteralType, - getWidenedType: getWidenedType, - getTypeFromTypeNode: function (nodeIn) { - var node = getParseTreeNode(nodeIn, isTypeNode); - return node ? getTypeFromTypeNode(node) : errorType; - }, - getParameterType: getTypeAtPosition, - getParameterIdentifierInfoAtPosition: getParameterIdentifierInfoAtPosition, - getPromisedTypeOfPromise: getPromisedTypeOfPromise, - getAwaitedType: function (type) { return getAwaitedType(type); }, - getReturnTypeOfSignature: getReturnTypeOfSignature, - isNullableType: isNullableType, - getNullableType: getNullableType, - getNonNullableType: getNonNullableType, - getNonOptionalType: removeOptionalTypeMarker, - getTypeArguments: getTypeArguments, - typeToTypeNode: nodeBuilder.typeToTypeNode, - indexInfoToIndexSignatureDeclaration: nodeBuilder.indexInfoToIndexSignatureDeclaration, - signatureToSignatureDeclaration: nodeBuilder.signatureToSignatureDeclaration, - symbolToEntityName: nodeBuilder.symbolToEntityName, - symbolToExpression: nodeBuilder.symbolToExpression, - symbolToNode: nodeBuilder.symbolToNode, - symbolToTypeParameterDeclarations: nodeBuilder.symbolToTypeParameterDeclarations, - symbolToParameterDeclaration: nodeBuilder.symbolToParameterDeclaration, - typeParameterToDeclaration: nodeBuilder.typeParameterToDeclaration, - getSymbolsInScope: function (locationIn, meaning) { - var location = getParseTreeNode(locationIn); - return location ? getSymbolsInScope(location, meaning) : []; - }, - getSymbolAtLocation: function (nodeIn) { - var node = getParseTreeNode(nodeIn); - return node ? getSymbolAtLocation(node, - /*ignoreErrors*/ - true) : void 0; - }, - getIndexInfosAtLocation: function (nodeIn) { - var node = getParseTreeNode(nodeIn); - return node ? getIndexInfosAtLocation(node) : void 0; - }, - getShorthandAssignmentValueSymbol: function (nodeIn) { - var node = getParseTreeNode(nodeIn); - return node ? getShorthandAssignmentValueSymbol(node) : void 0; - }, - getExportSpecifierLocalTargetSymbol: function (nodeIn) { - var node = getParseTreeNode(nodeIn, isExportSpecifier); - return node ? getExportSpecifierLocalTargetSymbol(node) : void 0; - }, - getExportSymbolOfSymbol: function (symbol) { - return getMergedSymbol(symbol.exportSymbol || symbol); - }, - getTypeAtLocation: function (nodeIn) { - var node = getParseTreeNode(nodeIn); - return node ? getTypeOfNode(node) : errorType; - }, - getTypeOfAssignmentPattern: function (nodeIn) { - var node = getParseTreeNode(nodeIn, isAssignmentPattern); - return node && getTypeOfAssignmentPattern(node) || errorType; - }, - getPropertySymbolOfDestructuringAssignment: function (locationIn) { - var location = getParseTreeNode(locationIn, isIdentifier); - return location ? getPropertySymbolOfDestructuringAssignment(location) : void 0; - }, - signatureToString: function (signature, enclosingDeclaration, flags, kind) { - return signatureToString(signature, getParseTreeNode(enclosingDeclaration), flags, kind); - }, - typeToString: function (type, enclosingDeclaration, flags) { - return typeToString(type, getParseTreeNode(enclosingDeclaration), flags); - }, - symbolToString: function (symbol, enclosingDeclaration, meaning, flags) { - return symbolToString(symbol, getParseTreeNode(enclosingDeclaration), meaning, flags); - }, - typePredicateToString: function (predicate, enclosingDeclaration, flags) { - return typePredicateToString(predicate, getParseTreeNode(enclosingDeclaration), flags); - }, - writeSignature: function (signature, enclosingDeclaration, flags, kind, writer) { - return signatureToString(signature, getParseTreeNode(enclosingDeclaration), flags, kind, writer); - }, - writeType: function (type, enclosingDeclaration, flags, writer) { - return typeToString(type, getParseTreeNode(enclosingDeclaration), flags, writer); - }, - writeSymbol: function (symbol, enclosingDeclaration, meaning, flags, writer) { - return symbolToString(symbol, getParseTreeNode(enclosingDeclaration), meaning, flags, writer); - }, - writeTypePredicate: function (predicate, enclosingDeclaration, flags, writer) { - return typePredicateToString(predicate, getParseTreeNode(enclosingDeclaration), flags, writer); - }, - getAugmentedPropertiesOfType: getAugmentedPropertiesOfType, - getRootSymbols: getRootSymbols, - getSymbolOfExpando: getSymbolOfExpando, - getContextualType: function (nodeIn, contextFlags) { - var node = getParseTreeNode(nodeIn, isExpression); - if (!node) { - return void 0; - } - if (contextFlags & 4 /* Completions */) { - return runWithInferenceBlockedFromSourceNode(node, function () { return getContextualType2(node, contextFlags); }); - } - return getContextualType2(node, contextFlags); - }, - getContextualTypeForObjectLiteralElement: function (nodeIn) { - var node = getParseTreeNode(nodeIn, isObjectLiteralElementLike); - return node ? getContextualTypeForObjectLiteralElement(node, - /*contextFlags*/ - void 0) : void 0; - }, - getContextualTypeForArgumentAtIndex: function (nodeIn, argIndex) { - var node = getParseTreeNode(nodeIn, isCallLikeExpression); - return node && getContextualTypeForArgumentAtIndex(node, argIndex); - }, - getContextualTypeForJsxAttribute: function (nodeIn) { - var node = getParseTreeNode(nodeIn, isJsxAttributeLike); - return node && getContextualTypeForJsxAttribute(node, - /*contextFlags*/ - void 0); - }, - isContextSensitive: isContextSensitive, - getTypeOfPropertyOfContextualType: getTypeOfPropertyOfContextualType, - getFullyQualifiedName: getFullyQualifiedName, - getResolvedSignature: function (node, candidatesOutArray, argumentCount) { return getResolvedSignatureWorker(node, candidatesOutArray, argumentCount, 0 /* Normal */); }, - getResolvedSignatureForStringLiteralCompletions: function (call, editingArgument, candidatesOutArray, checkMode /* IsForStringLiteralArgumentCompletions */) { - if (checkMode === void 0) { checkMode = 32; } - if (checkMode & 32 /* IsForStringLiteralArgumentCompletions */) { - return runWithInferenceBlockedFromSourceNode(editingArgument, function () { return getResolvedSignatureWorker(call, candidatesOutArray, - /*argumentCount*/ - void 0, checkMode & ~32 /* IsForStringLiteralArgumentCompletions */); }); - } - return runWithoutResolvedSignatureCaching(editingArgument, function () { return getResolvedSignatureWorker(call, candidatesOutArray, - /*argumentCount*/ - void 0, checkMode & ~32 /* IsForStringLiteralArgumentCompletions */); }); - }, - getResolvedSignatureForSignatureHelp: function (node, candidatesOutArray, argumentCount) { return runWithoutResolvedSignatureCaching(node, function () { return getResolvedSignatureWorker(node, candidatesOutArray, argumentCount, 16 /* IsForSignatureHelp */); }); }, - getExpandedParameters: getExpandedParameters, - hasEffectiveRestParameter: hasEffectiveRestParameter, - containsArgumentsReference: containsArgumentsReference, - getConstantValue: function (nodeIn) { - var node = getParseTreeNode(nodeIn, canHaveConstantValue); - return node ? getConstantValue2(node) : void 0; - }, - isValidPropertyAccess: function (nodeIn, propertyName) { - var node = getParseTreeNode(nodeIn, isPropertyAccessOrQualifiedNameOrImportTypeNode); - return !!node && isValidPropertyAccess(node, escapeLeadingUnderscores(propertyName)); - }, - isValidPropertyAccessForCompletions: function (nodeIn, type, property) { - var node = getParseTreeNode(nodeIn, isPropertyAccessExpression); - return !!node && isValidPropertyAccessForCompletions(node, type, property); - }, - getSignatureFromDeclaration: function (declarationIn) { - var declaration = getParseTreeNode(declarationIn, isFunctionLike); - return declaration ? getSignatureFromDeclaration(declaration) : void 0; - }, - isImplementationOfOverload: function (nodeIn) { - var node = getParseTreeNode(nodeIn, isFunctionLike); - return node ? isImplementationOfOverload(node) : void 0; - }, - getImmediateAliasedSymbol: getImmediateAliasedSymbol, - getAliasedSymbol: resolveAlias, - getEmitResolver: getEmitResolver, - getExportsOfModule: getExportsOfModuleAsArray, - getExportsAndPropertiesOfModule: getExportsAndPropertiesOfModule, - forEachExportAndPropertyOfModule: forEachExportAndPropertyOfModule, - getSymbolWalker: createGetSymbolWalker(getRestTypeOfSignature, getTypePredicateOfSignature, getReturnTypeOfSignature, getBaseTypes, resolveStructuredTypeMembers, getTypeOfSymbol, getResolvedSymbol, getConstraintOfTypeParameter, getFirstIdentifier, getTypeArguments), - getAmbientModules: getAmbientModules, - getJsxIntrinsicTagNamesAt: getJsxIntrinsicTagNamesAt, - isOptionalParameter: function (nodeIn) { - var node = getParseTreeNode(nodeIn, isParameter); - return node ? isOptionalParameter(node) : false; - }, - tryGetMemberInModuleExports: function (name, symbol) { return tryGetMemberInModuleExports(escapeLeadingUnderscores(name), symbol); }, - tryGetMemberInModuleExportsAndProperties: function (name, symbol) { return tryGetMemberInModuleExportsAndProperties(escapeLeadingUnderscores(name), symbol); }, - tryFindAmbientModule: function (moduleName) { return tryFindAmbientModule(moduleName, - /*withAugmentations*/ - true); }, - tryFindAmbientModuleWithoutAugmentations: function (moduleName) { - return tryFindAmbientModule(moduleName, - /*withAugmentations*/ - false); - }, - getApparentType: getApparentType, - getUnionType: getUnionType, - isTypeAssignableTo: isTypeAssignableTo, - createAnonymousType: createAnonymousType, - createSignature: createSignature, - createSymbol: createSymbol, - createIndexInfo: createIndexInfo, - getAnyType: function () { return anyType; }, - getStringType: function () { return stringType; }, - getStringLiteralType: getStringLiteralType, - getNumberType: function () { return numberType; }, - getNumberLiteralType: getNumberLiteralType, - getBigIntType: function () { return bigintType; }, - createPromiseType: createPromiseType, - createArrayType: createArrayType, - getElementTypeOfArrayType: getElementTypeOfArrayType, - getBooleanType: function () { return booleanType; }, - getFalseType: function (fresh) { return fresh ? falseType : regularFalseType; }, - getTrueType: function (fresh) { return fresh ? trueType : regularTrueType; }, - getVoidType: function () { return voidType; }, - getUndefinedType: function () { return undefinedType; }, - getNullType: function () { return nullType; }, - getESSymbolType: function () { return esSymbolType; }, - getNeverType: function () { return neverType; }, - getOptionalType: function () { return optionalType; }, - getPromiseType: function () { return getGlobalPromiseType( - /*reportErrors*/ - false); }, - getPromiseLikeType: function () { return getGlobalPromiseLikeType( - /*reportErrors*/ - false); }, - getAsyncIterableType: function () { - var type = getGlobalAsyncIterableType( - /*reportErrors*/ - false); - if (type === emptyGenericType) - return void 0; - return type; - }, - isSymbolAccessible: isSymbolAccessible, - isArrayType: isArrayType, - isTupleType: isTupleType, - isArrayLikeType: isArrayLikeType, - isEmptyAnonymousObjectType: isEmptyAnonymousObjectType, - isTypeInvalidDueToUnionDiscriminant: isTypeInvalidDueToUnionDiscriminant, - getExactOptionalProperties: getExactOptionalProperties, - getAllPossiblePropertiesOfTypes: getAllPossiblePropertiesOfTypes, - getSuggestedSymbolForNonexistentProperty: getSuggestedSymbolForNonexistentProperty, - getSuggestionForNonexistentProperty: getSuggestionForNonexistentProperty, - getSuggestedSymbolForNonexistentJSXAttribute: getSuggestedSymbolForNonexistentJSXAttribute, - getSuggestedSymbolForNonexistentSymbol: function (location, name, meaning) { return getSuggestedSymbolForNonexistentSymbol(location, escapeLeadingUnderscores(name), meaning); }, - getSuggestionForNonexistentSymbol: function (location, name, meaning) { return getSuggestionForNonexistentSymbol(location, escapeLeadingUnderscores(name), meaning); }, - getSuggestedSymbolForNonexistentModule: getSuggestedSymbolForNonexistentModule, - getSuggestionForNonexistentExport: getSuggestionForNonexistentExport, - getSuggestedSymbolForNonexistentClassMember: getSuggestedSymbolForNonexistentClassMember, - getBaseConstraintOfType: getBaseConstraintOfType, - getDefaultFromTypeParameter: function (type) { return type && type.flags & 262144 /* TypeParameter */ ? getDefaultFromTypeParameter(type) : void 0; }, - resolveName: function (name, location, meaning, excludeGlobals) { - return resolveName(location, escapeLeadingUnderscores(name), meaning, - /*nameNotFoundMessage*/ - void 0, - /*nameArg*/ - void 0, - /*isUse*/ - false, excludeGlobals); - }, - getJsxNamespace: function (n) { return unescapeLeadingUnderscores(getJsxNamespace(n)); }, - getJsxFragmentFactory: function (n) { - var jsxFragmentFactory = getJsxFragmentFactoryEntity(n); - return jsxFragmentFactory && unescapeLeadingUnderscores(getFirstIdentifier(jsxFragmentFactory).escapedText); - }, - getAccessibleSymbolChain: getAccessibleSymbolChain, - getTypePredicateOfSignature: getTypePredicateOfSignature, - resolveExternalModuleName: function (moduleSpecifierIn) { - var moduleSpecifier = getParseTreeNode(moduleSpecifierIn, isExpression); - return moduleSpecifier && resolveExternalModuleName(moduleSpecifier, moduleSpecifier, - /*ignoreErrors*/ - true); - }, - resolveExternalModuleSymbol: resolveExternalModuleSymbol, - tryGetThisTypeAt: function (nodeIn, includeGlobalThis, container) { - var node = getParseTreeNode(nodeIn); - return node && tryGetThisTypeAt(node, includeGlobalThis, container); - }, - getTypeArgumentConstraint: function (nodeIn) { - var node = getParseTreeNode(nodeIn, isTypeNode); - return node && getTypeArgumentConstraint(node); - }, - getSuggestionDiagnostics: function (fileIn, ct) { - var file = getParseTreeNode(fileIn, isSourceFile) || Debug.fail("Could not determine parsed source file."); - if (skipTypeChecking(file, compilerOptions, host)) { - return emptyArray; - } - var diagnostics2; - try { - cancellationToken = ct; - checkSourceFileWithEagerDiagnostics(file); - Debug.assert(!!(getNodeLinks(file).flags & 1 /* TypeChecked */)); - diagnostics2 = addRange(diagnostics2, suggestionDiagnostics.getDiagnostics(file.fileName)); - checkUnusedIdentifiers(getPotentiallyUnusedIdentifiers(file), function (containingNode, kind, diag2) { - if (!containsParseError(containingNode) && !unusedIsError(kind, !!(containingNode.flags & 33554432 /* Ambient */))) { - (diagnostics2 || (diagnostics2 = [])).push(__assign(__assign({}, diag2), { category: 2 /* Suggestion */ })); - } - }); - return diagnostics2 || emptyArray; - } - finally { - cancellationToken = void 0; - } - }, - runWithCancellationToken: function (token, callback) { - try { - cancellationToken = token; - return callback(checker); - } - finally { - cancellationToken = void 0; - } - }, - getLocalTypeParametersOfClassOrInterfaceOrTypeAlias: getLocalTypeParametersOfClassOrInterfaceOrTypeAlias, - isDeclarationVisible: isDeclarationVisible, - isPropertyAccessible: isPropertyAccessible, - getTypeOnlyAliasDeclaration: getTypeOnlyAliasDeclaration, - getMemberOverrideModifierStatus: getMemberOverrideModifierStatus, - isTypeParameterPossiblyReferenced: isTypeParameterPossiblyReferenced, - typeHasCallOrConstructSignatures: typeHasCallOrConstructSignatures - }; - function runWithoutResolvedSignatureCaching(node, fn) { - var e_158, _t; - var cachedSignatures = []; - while (node) { - if (isCallLikeExpression(node)) { - var nodeLinks2 = getNodeLinks(node); - var resolvedSignature = nodeLinks2.resolvedSignature; - cachedSignatures.push([nodeLinks2, resolvedSignature]); - nodeLinks2.resolvedSignature = void 0; - } - node = node.parent; - } - var result = fn(); - try { - for (var cachedSignatures_1 = __values(cachedSignatures), cachedSignatures_1_1 = cachedSignatures_1.next(); !cachedSignatures_1_1.done; cachedSignatures_1_1 = cachedSignatures_1.next()) { - var _u = __read(cachedSignatures_1_1.value, 2), nodeLinks2 = _u[0], resolvedSignature = _u[1]; - nodeLinks2.resolvedSignature = resolvedSignature; - } - } - catch (e_158_1) { e_158 = { error: e_158_1 }; } - finally { - try { - if (cachedSignatures_1_1 && !cachedSignatures_1_1.done && (_t = cachedSignatures_1.return)) _t.call(cachedSignatures_1); - } - finally { if (e_158) throw e_158.error; } - } - return result; - } - function runWithInferenceBlockedFromSourceNode(node, fn) { - var containingCall = findAncestor(node, isCallLikeExpression); - if (containingCall) { - var toMarkSkip = node; - do { - getNodeLinks(toMarkSkip).skipDirectInference = true; - toMarkSkip = toMarkSkip.parent; - } while (toMarkSkip && toMarkSkip !== containingCall); - } - isInferencePartiallyBlocked = true; - var result = runWithoutResolvedSignatureCaching(node, fn); - isInferencePartiallyBlocked = false; - if (containingCall) { - var toMarkSkip = node; - do { - getNodeLinks(toMarkSkip).skipDirectInference = void 0; - toMarkSkip = toMarkSkip.parent; - } while (toMarkSkip && toMarkSkip !== containingCall); - } - return result; - } - function getResolvedSignatureWorker(nodeIn, candidatesOutArray, argumentCount, checkMode) { - var node = getParseTreeNode(nodeIn, isCallLikeExpression); - apparentArgumentCount = argumentCount; - var res = !node ? void 0 : getResolvedSignature(node, candidatesOutArray, checkMode); - apparentArgumentCount = void 0; - return res; - } - var tupleTypes = /* @__PURE__ */ new Map(); - var unionTypes = /* @__PURE__ */ new Map(); - var unionOfUnionTypes = /* @__PURE__ */ new Map(); - var intersectionTypes = /* @__PURE__ */ new Map(); - var stringLiteralTypes = /* @__PURE__ */ new Map(); - var numberLiteralTypes = /* @__PURE__ */ new Map(); - var bigIntLiteralTypes = /* @__PURE__ */ new Map(); - var enumLiteralTypes = /* @__PURE__ */ new Map(); - var indexedAccessTypes = /* @__PURE__ */ new Map(); - var templateLiteralTypes = /* @__PURE__ */ new Map(); - var stringMappingTypes = /* @__PURE__ */ new Map(); - var substitutionTypes = /* @__PURE__ */ new Map(); - var subtypeReductionCache = /* @__PURE__ */ new Map(); - var decoratorContextOverrideTypeCache = /* @__PURE__ */ new Map(); - var cachedTypes = /* @__PURE__ */ new Map(); - var evolvingArrayTypes = []; - var undefinedProperties = /* @__PURE__ */ new Map(); - var markerTypes = /* @__PURE__ */ new Set(); - var unknownSymbol = createSymbol(4 /* Property */, "unknown"); - var resolvingSymbol = createSymbol(0, "__resolving__" /* Resolving */); - var unresolvedSymbols = /* @__PURE__ */ new Map(); - var errorTypes = /* @__PURE__ */ new Map(); - var anyType = createIntrinsicType(1 /* Any */, "any"); - var autoType = createIntrinsicType(1 /* Any */, "any", 262144 /* NonInferrableType */); - var wildcardType = createIntrinsicType(1 /* Any */, "any"); - var errorType = createIntrinsicType(1 /* Any */, "error"); - var unresolvedType = createIntrinsicType(1 /* Any */, "unresolved"); - var nonInferrableAnyType = createIntrinsicType(1 /* Any */, "any", 65536 /* ContainsWideningType */); - var intrinsicMarkerType = createIntrinsicType(1 /* Any */, "intrinsic"); - var unknownType = createIntrinsicType(2 /* Unknown */, "unknown"); - var nonNullUnknownType = createIntrinsicType(2 /* Unknown */, "unknown"); - var undefinedType = createIntrinsicType(32768 /* Undefined */, "undefined"); - var undefinedWideningType = strictNullChecks ? undefinedType : createIntrinsicType(32768 /* Undefined */, "undefined", 65536 /* ContainsWideningType */); - var missingType = createIntrinsicType(32768 /* Undefined */, "undefined"); - var undefinedOrMissingType = exactOptionalPropertyTypes ? missingType : undefinedType; - var optionalType = createIntrinsicType(32768 /* Undefined */, "undefined"); - var nullType = createIntrinsicType(65536 /* Null */, "null"); - var nullWideningType = strictNullChecks ? nullType : createIntrinsicType(65536 /* Null */, "null", 65536 /* ContainsWideningType */); - var stringType = createIntrinsicType(4 /* String */, "string"); - var numberType = createIntrinsicType(8 /* Number */, "number"); - var bigintType = createIntrinsicType(64 /* BigInt */, "bigint"); - var falseType = createIntrinsicType(512 /* BooleanLiteral */, "false"); - var regularFalseType = createIntrinsicType(512 /* BooleanLiteral */, "false"); - var trueType = createIntrinsicType(512 /* BooleanLiteral */, "true"); - var regularTrueType = createIntrinsicType(512 /* BooleanLiteral */, "true"); - trueType.regularType = regularTrueType; - trueType.freshType = trueType; - regularTrueType.regularType = regularTrueType; - regularTrueType.freshType = trueType; - falseType.regularType = regularFalseType; - falseType.freshType = falseType; - regularFalseType.regularType = regularFalseType; - regularFalseType.freshType = falseType; - var booleanType = getUnionType([regularFalseType, regularTrueType]); - var esSymbolType = createIntrinsicType(4096 /* ESSymbol */, "symbol"); - var voidType = createIntrinsicType(16384 /* Void */, "void"); - var neverType = createIntrinsicType(131072 /* Never */, "never"); - var silentNeverType = createIntrinsicType(131072 /* Never */, "never", 262144 /* NonInferrableType */); - var implicitNeverType = createIntrinsicType(131072 /* Never */, "never"); - var unreachableNeverType = createIntrinsicType(131072 /* Never */, "never"); - var nonPrimitiveType = createIntrinsicType(67108864 /* NonPrimitive */, "object"); - var stringOrNumberType = getUnionType([stringType, numberType]); - var stringNumberSymbolType = getUnionType([stringType, numberType, esSymbolType]); - var keyofConstraintType = keyofStringsOnly ? stringType : stringNumberSymbolType; - var numberOrBigIntType = getUnionType([numberType, bigintType]); - var templateConstraintType = getUnionType([stringType, numberType, booleanType, bigintType, nullType, undefinedType]); - var numericStringType = getTemplateLiteralType(["", ""], [numberType]); - var restrictiveMapper = makeFunctionTypeMapper(function (t) { return t.flags & 262144 /* TypeParameter */ ? getRestrictiveTypeParameter(t) : t; }, function () { return "(restrictive mapper)"; }); - var permissiveMapper = makeFunctionTypeMapper(function (t) { return t.flags & 262144 /* TypeParameter */ ? wildcardType : t; }, function () { return "(permissive mapper)"; }); - var uniqueLiteralType = createIntrinsicType(131072 /* Never */, "never"); - var uniqueLiteralMapper = makeFunctionTypeMapper(function (t) { return t.flags & 262144 /* TypeParameter */ ? uniqueLiteralType : t; }, function () { return "(unique literal mapper)"; }); - var outofbandVarianceMarkerHandler; - var reportUnreliableMapper = makeFunctionTypeMapper(function (t) { - if (outofbandVarianceMarkerHandler && (t === markerSuperType || t === markerSubType || t === markerOtherType)) { - outofbandVarianceMarkerHandler( - /*onlyUnreliable*/ - true); - } - return t; - }, function () { return "(unmeasurable reporter)"; }); - var reportUnmeasurableMapper = makeFunctionTypeMapper(function (t) { - if (outofbandVarianceMarkerHandler && (t === markerSuperType || t === markerSubType || t === markerOtherType)) { - outofbandVarianceMarkerHandler( - /*onlyUnreliable*/ - false); - } - return t; - }, function () { return "(unreliable reporter)"; }); - var emptyObjectType = createAnonymousType( - /*symbol*/ - void 0, emptySymbols, emptyArray, emptyArray, emptyArray); - var emptyJsxObjectType = createAnonymousType( - /*symbol*/ - void 0, emptySymbols, emptyArray, emptyArray, emptyArray); - emptyJsxObjectType.objectFlags |= 2048 /* JsxAttributes */; - var emptyTypeLiteralSymbol = createSymbol(2048 /* TypeLiteral */, "__type" /* Type */); - emptyTypeLiteralSymbol.members = createSymbolTable(); - var emptyTypeLiteralType = createAnonymousType(emptyTypeLiteralSymbol, emptySymbols, emptyArray, emptyArray, emptyArray); - var unknownEmptyObjectType = createAnonymousType( - /*symbol*/ - void 0, emptySymbols, emptyArray, emptyArray, emptyArray); - var unknownUnionType = strictNullChecks ? getUnionType([undefinedType, nullType, unknownEmptyObjectType]) : unknownType; - var emptyGenericType = createAnonymousType( - /*symbol*/ - void 0, emptySymbols, emptyArray, emptyArray, emptyArray); - emptyGenericType.instantiations = /* @__PURE__ */ new Map(); - var anyFunctionType = createAnonymousType( - /*symbol*/ - void 0, emptySymbols, emptyArray, emptyArray, emptyArray); - anyFunctionType.objectFlags |= 262144 /* NonInferrableType */; - var noConstraintType = createAnonymousType( - /*symbol*/ - void 0, emptySymbols, emptyArray, emptyArray, emptyArray); - var circularConstraintType = createAnonymousType( - /*symbol*/ - void 0, emptySymbols, emptyArray, emptyArray, emptyArray); - var resolvingDefaultType = createAnonymousType( - /*symbol*/ - void 0, emptySymbols, emptyArray, emptyArray, emptyArray); - var markerSuperType = createTypeParameter(); - var markerSubType = createTypeParameter(); - markerSubType.constraint = markerSuperType; - var markerOtherType = createTypeParameter(); - var markerSuperTypeForCheck = createTypeParameter(); - var markerSubTypeForCheck = createTypeParameter(); - markerSubTypeForCheck.constraint = markerSuperTypeForCheck; - var noTypePredicate = createTypePredicate(1 /* Identifier */, "<>", 0, anyType); - var anySignature = createSignature( - /*declaration*/ - void 0, - /*typeParameters*/ - void 0, - /*thisParameter*/ - void 0, emptyArray, anyType, - /*resolvedTypePredicate*/ - void 0, 0, 0 /* None */); - var unknownSignature = createSignature( - /*declaration*/ - void 0, - /*typeParameters*/ - void 0, - /*thisParameter*/ - void 0, emptyArray, errorType, - /*resolvedTypePredicate*/ - void 0, 0, 0 /* None */); - var resolvingSignature = createSignature( - /*declaration*/ - void 0, - /*typeParameters*/ - void 0, - /*thisParameter*/ - void 0, emptyArray, anyType, - /*resolvedTypePredicate*/ - void 0, 0, 0 /* None */); - var silentNeverSignature = createSignature( - /*declaration*/ - void 0, - /*typeParameters*/ - void 0, - /*thisParameter*/ - void 0, emptyArray, silentNeverType, - /*resolvedTypePredicate*/ - void 0, 0, 0 /* None */); - var enumNumberIndexInfo = createIndexInfo(numberType, stringType, - /*isReadonly*/ - true); - var iterationTypesCache = /* @__PURE__ */ new Map(); - var noIterationTypes = { - get yieldType() { - return Debug.fail("Not supported"); - }, - get returnType() { - return Debug.fail("Not supported"); - }, - get nextType() { - return Debug.fail("Not supported"); - } - }; - var anyIterationTypes = createIterationTypes(anyType, anyType, anyType); - var anyIterationTypesExceptNext = createIterationTypes(anyType, anyType, unknownType); - var defaultIterationTypes = createIterationTypes(neverType, anyType, undefinedType); - var asyncIterationTypesResolver = { - iterableCacheKey: "iterationTypesOfAsyncIterable", - iteratorCacheKey: "iterationTypesOfAsyncIterator", - iteratorSymbolName: "asyncIterator", - getGlobalIteratorType: getGlobalAsyncIteratorType, - getGlobalIterableType: getGlobalAsyncIterableType, - getGlobalIterableIteratorType: getGlobalAsyncIterableIteratorType, - getGlobalGeneratorType: getGlobalAsyncGeneratorType, - resolveIterationType: function (type, errorNode) { return getAwaitedType(type, errorNode, Diagnostics.Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member); }, - mustHaveANextMethodDiagnostic: Diagnostics.An_async_iterator_must_have_a_next_method, - mustBeAMethodDiagnostic: Diagnostics.The_0_property_of_an_async_iterator_must_be_a_method, - mustHaveAValueDiagnostic: Diagnostics.The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_property - }; - var syncIterationTypesResolver = { - iterableCacheKey: "iterationTypesOfIterable", - iteratorCacheKey: "iterationTypesOfIterator", - iteratorSymbolName: "iterator", - getGlobalIteratorType: getGlobalIteratorType, - getGlobalIterableType: getGlobalIterableType, - getGlobalIterableIteratorType: getGlobalIterableIteratorType, - getGlobalGeneratorType: getGlobalGeneratorType, - resolveIterationType: function (type, _errorNode) { return type; }, - mustHaveANextMethodDiagnostic: Diagnostics.An_iterator_must_have_a_next_method, - mustBeAMethodDiagnostic: Diagnostics.The_0_property_of_an_iterator_must_be_a_method, - mustHaveAValueDiagnostic: Diagnostics.The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property - }; - var amalgamatedDuplicates; - var reverseMappedCache = /* @__PURE__ */ new Map(); - var homomorphicMappedTypeInferenceStack = []; - var ambientModulesCache; - var patternAmbientModules; - var patternAmbientModuleAugmentations; - var globalObjectType; - var globalFunctionType; - var globalCallableFunctionType; - var globalNewableFunctionType; - var globalArrayType; - var globalReadonlyArrayType; - var globalStringType; - var globalNumberType; - var globalBooleanType; - var globalRegExpType; - var globalThisType; - var anyArrayType; - var autoArrayType; - var anyReadonlyArrayType; - var deferredGlobalNonNullableTypeAlias; - var deferredGlobalESSymbolConstructorSymbol; - var deferredGlobalESSymbolConstructorTypeSymbol; - var deferredGlobalESSymbolType; - var deferredGlobalTypedPropertyDescriptorType; - var deferredGlobalPromiseType; - var deferredGlobalPromiseLikeType; - var deferredGlobalPromiseConstructorSymbol; - var deferredGlobalPromiseConstructorLikeType; - var deferredGlobalIterableType; - var deferredGlobalIteratorType; - var deferredGlobalIterableIteratorType; - var deferredGlobalGeneratorType; - var deferredGlobalIteratorYieldResultType; - var deferredGlobalIteratorReturnResultType; - var deferredGlobalAsyncIterableType; - var deferredGlobalAsyncIteratorType; - var deferredGlobalAsyncIterableIteratorType; - var deferredGlobalAsyncGeneratorType; - var deferredGlobalTemplateStringsArrayType; - var deferredGlobalImportMetaType; - var deferredGlobalImportMetaExpressionType; - var deferredGlobalImportCallOptionsType; - var deferredGlobalDisposableType; - var deferredGlobalAsyncDisposableType; - var deferredGlobalExtractSymbol; - var deferredGlobalOmitSymbol; - var deferredGlobalAwaitedSymbol; - var deferredGlobalBigIntType; - var deferredGlobalNaNSymbol; - var deferredGlobalRecordSymbol; - var deferredGlobalClassDecoratorContextType; - var deferredGlobalClassMethodDecoratorContextType; - var deferredGlobalClassGetterDecoratorContextType; - var deferredGlobalClassSetterDecoratorContextType; - var deferredGlobalClassAccessorDecoratorContextType; - var deferredGlobalClassAccessorDecoratorTargetType; - var deferredGlobalClassAccessorDecoratorResultType; - var deferredGlobalClassFieldDecoratorContextType; - var allPotentiallyUnusedIdentifiers = /* @__PURE__ */ new Map(); - var flowLoopStart = 0; - var flowLoopCount = 0; - var sharedFlowCount = 0; - var flowAnalysisDisabled = false; - var flowInvocationCount = 0; - var lastFlowNode; - var lastFlowNodeReachable; - var flowTypeCache; - var contextualTypeNodes = []; - var contextualTypes = []; - var contextualIsCache = []; - var contextualTypeCount = 0; - var inferenceContextNodes = []; - var inferenceContexts = []; - var inferenceContextCount = 0; - var emptyStringType = getStringLiteralType(""); - var zeroType = getNumberLiteralType(0); - var zeroBigIntType = getBigIntLiteralType({ negative: false, base10Value: "0" }); - var resolutionTargets = []; - var resolutionResults = []; - var resolutionPropertyNames = []; - var resolutionStart = 0; - var inVarianceComputation = false; - var suggestionCount = 0; - var maximumSuggestionCount = 10; - var mergedSymbols = []; - var symbolLinks = []; - var nodeLinks = []; - var flowLoopCaches = []; - var flowLoopNodes = []; - var flowLoopKeys = []; - var flowLoopTypes = []; - var sharedFlowNodes = []; - var sharedFlowTypes = []; - var flowNodeReachable = []; - var flowNodePostSuper = []; - var potentialThisCollisions = []; - var potentialNewTargetCollisions = []; - var potentialWeakMapSetCollisions = []; - var potentialReflectCollisions = []; - var potentialUnusedRenamedBindingElementsInTypes = []; - var awaitedTypeStack = []; - var diagnostics = createDiagnosticCollection(); - var suggestionDiagnostics = createDiagnosticCollection(); - var typeofType = createTypeofType(); - var _jsxNamespace; - var _jsxFactoryEntity; - var subtypeRelation = /* @__PURE__ */ new Map(); - var strictSubtypeRelation = /* @__PURE__ */ new Map(); - var assignableRelation = /* @__PURE__ */ new Map(); - var comparableRelation = /* @__PURE__ */ new Map(); - var identityRelation = /* @__PURE__ */ new Map(); - var enumRelation = /* @__PURE__ */ new Map(); - var builtinGlobals = createSymbolTable(); - builtinGlobals.set(undefinedSymbol.escapedName, undefinedSymbol); - var suggestedExtensions = [ - [".mts", ".mjs"], - [".ts", ".js"], - [".cts", ".cjs"], - [".mjs", ".mjs"], - [".js", ".js"], - [".cjs", ".cjs"], - [".tsx", compilerOptions.jsx === 1 /* Preserve */ ? ".jsx" : ".js"], - [".jsx", ".jsx"], - [".json", ".json"] - ]; - initializeTypeChecker(); - return checker; - function getCachedType(key) { - return key ? cachedTypes.get(key) : void 0; - } - function setCachedType(key, type) { - if (key) - cachedTypes.set(key, type); - return type; - } - function getJsxNamespace(location) { - if (location) { - var file = getSourceFileOfNode(location); - if (file) { - if (isJsxOpeningFragment(location)) { - if (file.localJsxFragmentNamespace) { - return file.localJsxFragmentNamespace; - } - var jsxFragmentPragma = file.pragmas.get("jsxfrag"); - if (jsxFragmentPragma) { - var chosenPragma = isArray(jsxFragmentPragma) ? jsxFragmentPragma[0] : jsxFragmentPragma; - file.localJsxFragmentFactory = parseIsolatedEntityName(chosenPragma.arguments.factory, languageVersion); - visitNode(file.localJsxFragmentFactory, markAsSynthetic, isEntityName); - if (file.localJsxFragmentFactory) { - return file.localJsxFragmentNamespace = getFirstIdentifier(file.localJsxFragmentFactory).escapedText; - } - } - var entity = getJsxFragmentFactoryEntity(location); - if (entity) { - file.localJsxFragmentFactory = entity; - return file.localJsxFragmentNamespace = getFirstIdentifier(entity).escapedText; - } - } - else { - var localJsxNamespace = getLocalJsxNamespace(file); - if (localJsxNamespace) { - return file.localJsxNamespace = localJsxNamespace; - } - } - } - } - if (!_jsxNamespace) { - _jsxNamespace = "React"; - if (compilerOptions.jsxFactory) { - _jsxFactoryEntity = parseIsolatedEntityName(compilerOptions.jsxFactory, languageVersion); - visitNode(_jsxFactoryEntity, markAsSynthetic); - if (_jsxFactoryEntity) { - _jsxNamespace = getFirstIdentifier(_jsxFactoryEntity).escapedText; - } - } - else if (compilerOptions.reactNamespace) { - _jsxNamespace = escapeLeadingUnderscores(compilerOptions.reactNamespace); - } - } - if (!_jsxFactoryEntity) { - _jsxFactoryEntity = factory.createQualifiedName(factory.createIdentifier(unescapeLeadingUnderscores(_jsxNamespace)), "createElement"); - } - return _jsxNamespace; - } - function getLocalJsxNamespace(file) { - if (file.localJsxNamespace) { - return file.localJsxNamespace; - } - var jsxPragma = file.pragmas.get("jsx"); - if (jsxPragma) { - var chosenPragma = isArray(jsxPragma) ? jsxPragma[0] : jsxPragma; - file.localJsxFactory = parseIsolatedEntityName(chosenPragma.arguments.factory, languageVersion); - visitNode(file.localJsxFactory, markAsSynthetic, isEntityName); - if (file.localJsxFactory) { - return file.localJsxNamespace = getFirstIdentifier(file.localJsxFactory).escapedText; - } - } - } - function markAsSynthetic(node) { - setTextRangePosEnd(node, -1, -1); - return visitEachChild(node, markAsSynthetic, nullTransformationContext); - } - function getEmitResolver(sourceFile, cancellationToken2) { - getDiagnostics2(sourceFile, cancellationToken2); - return emitResolver; - } - function lookupOrIssueError(location, message) { - var args = []; - for (var _t = 2; _t < arguments.length; _t++) { - args[_t - 2] = arguments[_t]; - } - var diagnostic = location ? createDiagnosticForNode.apply(void 0, __spreadArray([location, message], __read(args), false)) : createCompilerDiagnostic.apply(void 0, __spreadArray([message], __read(args), false)); - var existing = diagnostics.lookup(diagnostic); - if (existing) { - return existing; - } - else { - diagnostics.add(diagnostic); - return diagnostic; - } - } - function errorSkippedOn(key, location, message) { - var args = []; - for (var _t = 3; _t < arguments.length; _t++) { - args[_t - 3] = arguments[_t]; - } - var diagnostic = error2.apply(void 0, __spreadArray([location, message], __read(args), false)); - diagnostic.skippedOn = key; - return diagnostic; - } - function createError(location, message) { - var args = []; - for (var _t = 2; _t < arguments.length; _t++) { - args[_t - 2] = arguments[_t]; - } - return location ? createDiagnosticForNode.apply(void 0, __spreadArray([location, message], __read(args), false)) : createCompilerDiagnostic.apply(void 0, __spreadArray([message], __read(args), false)); - } - function error2(location, message) { - var args = []; - for (var _t = 2; _t < arguments.length; _t++) { - args[_t - 2] = arguments[_t]; - } - var diagnostic = createError.apply(void 0, __spreadArray([location, message], __read(args), false)); - diagnostics.add(diagnostic); - return diagnostic; - } - function addErrorOrSuggestion(isError, diagnostic) { - if (isError) { - diagnostics.add(diagnostic); - } - else { - suggestionDiagnostics.add(__assign(__assign({}, diagnostic), { category: 2 /* Suggestion */ })); - } - } - function errorOrSuggestion(isError, location, message) { - var args = []; - for (var _t = 3; _t < arguments.length; _t++) { - args[_t - 3] = arguments[_t]; - } - if (location.pos < 0 || location.end < 0) { - if (!isError) { - return; - } - var file = getSourceFileOfNode(location); - addErrorOrSuggestion(isError, "message" in message ? createFileDiagnostic.apply(void 0, __spreadArray([file, 0, 0, message], __read(args), false)) : createDiagnosticForFileFromMessageChain(file, message)); - return; - } - addErrorOrSuggestion(isError, "message" in message ? createDiagnosticForNode.apply(void 0, __spreadArray([location, message], __read(args), false)) : createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(location), location, message)); - } - function errorAndMaybeSuggestAwait(location, maybeMissingAwait, message) { - var args = []; - for (var _t = 3; _t < arguments.length; _t++) { - args[_t - 3] = arguments[_t]; - } - var diagnostic = error2.apply(void 0, __spreadArray([location, message], __read(args), false)); - if (maybeMissingAwait) { - var related = createDiagnosticForNode(location, Diagnostics.Did_you_forget_to_use_await); - addRelatedInfo(diagnostic, related); - } - return diagnostic; - } - function addDeprecatedSuggestionWorker(declarations, diagnostic) { - var deprecatedTag = Array.isArray(declarations) ? forEach(declarations, getJSDocDeprecatedTag) : getJSDocDeprecatedTag(declarations); - if (deprecatedTag) { - addRelatedInfo(diagnostic, createDiagnosticForNode(deprecatedTag, Diagnostics.The_declaration_was_marked_as_deprecated_here)); - } - suggestionDiagnostics.add(diagnostic); - return diagnostic; - } - function isDeprecatedSymbol(symbol) { - var parentSymbol = getParentOfSymbol(symbol); - if (parentSymbol && length(symbol.declarations) > 1) { - return parentSymbol.flags & 64 /* Interface */ ? some(symbol.declarations, isDeprecatedDeclaration2) : every(symbol.declarations, isDeprecatedDeclaration2); - } - return !!symbol.valueDeclaration && isDeprecatedDeclaration2(symbol.valueDeclaration) || length(symbol.declarations) && every(symbol.declarations, isDeprecatedDeclaration2); - } - function isDeprecatedDeclaration2(declaration) { - return !!(getCombinedNodeFlagsCached(declaration) & 536870912 /* Deprecated */); - } - function addDeprecatedSuggestion(location, declarations, deprecatedEntity) { - var diagnostic = createDiagnosticForNode(location, Diagnostics._0_is_deprecated, deprecatedEntity); - return addDeprecatedSuggestionWorker(declarations, diagnostic); - } - function addDeprecatedSuggestionWithSignature(location, declaration, deprecatedEntity, signatureString) { - var diagnostic = deprecatedEntity ? createDiagnosticForNode(location, Diagnostics.The_signature_0_of_1_is_deprecated, signatureString, deprecatedEntity) : createDiagnosticForNode(location, Diagnostics._0_is_deprecated, signatureString); - return addDeprecatedSuggestionWorker(declaration, diagnostic); - } - function createSymbol(flags, name, checkFlags) { - symbolCount++; - var symbol = new Symbol47(flags | 33554432 /* Transient */, name); - symbol.links = new SymbolLinks(); - symbol.links.checkFlags = checkFlags || 0 /* None */; - return symbol; - } - function createParameter(name, type) { - var symbol = createSymbol(1 /* FunctionScopedVariable */, name); - symbol.links.type = type; - return symbol; - } - function createProperty(name, type) { - var symbol = createSymbol(4 /* Property */, name); - symbol.links.type = type; - return symbol; - } - function getExcludedSymbolFlags(flags) { - var result = 0; - if (flags & 2 /* BlockScopedVariable */) - result |= 111551 /* BlockScopedVariableExcludes */; - if (flags & 1 /* FunctionScopedVariable */) - result |= 111550 /* FunctionScopedVariableExcludes */; - if (flags & 4 /* Property */) - result |= 0 /* PropertyExcludes */; - if (flags & 8 /* EnumMember */) - result |= 900095 /* EnumMemberExcludes */; - if (flags & 16 /* Function */) - result |= 110991 /* FunctionExcludes */; - if (flags & 32 /* Class */) - result |= 899503 /* ClassExcludes */; - if (flags & 64 /* Interface */) - result |= 788872 /* InterfaceExcludes */; - if (flags & 256 /* RegularEnum */) - result |= 899327 /* RegularEnumExcludes */; - if (flags & 128 /* ConstEnum */) - result |= 899967 /* ConstEnumExcludes */; - if (flags & 512 /* ValueModule */) - result |= 110735 /* ValueModuleExcludes */; - if (flags & 8192 /* Method */) - result |= 103359 /* MethodExcludes */; - if (flags & 32768 /* GetAccessor */) - result |= 46015 /* GetAccessorExcludes */; - if (flags & 65536 /* SetAccessor */) - result |= 78783 /* SetAccessorExcludes */; - if (flags & 262144 /* TypeParameter */) - result |= 526824 /* TypeParameterExcludes */; - if (flags & 524288 /* TypeAlias */) - result |= 788968 /* TypeAliasExcludes */; - if (flags & 2097152 /* Alias */) - result |= 2097152 /* AliasExcludes */; - return result; - } - function recordMergedSymbol(target, source) { - if (!source.mergeId) { - source.mergeId = nextMergeId; - nextMergeId++; - } - mergedSymbols[source.mergeId] = target; - } - function cloneSymbol(symbol) { - var result = createSymbol(symbol.flags, symbol.escapedName); - result.declarations = symbol.declarations ? symbol.declarations.slice() : []; - result.parent = symbol.parent; - if (symbol.valueDeclaration) - result.valueDeclaration = symbol.valueDeclaration; - if (symbol.constEnumOnlyModule) - result.constEnumOnlyModule = true; - if (symbol.members) - result.members = new Map(symbol.members); - if (symbol.exports) - result.exports = new Map(symbol.exports); - recordMergedSymbol(result, symbol); - return result; - } - function mergeSymbol(target, source, unidirectional) { - if (unidirectional === void 0) { unidirectional = false; } - if (!(target.flags & getExcludedSymbolFlags(source.flags)) || (source.flags | target.flags) & 67108864 /* Assignment */) { - if (source === target) { - return target; - } - if (!(target.flags & 33554432 /* Transient */)) { - var resolvedTarget = resolveSymbol(target); - if (resolvedTarget === unknownSymbol) { - return source; - } - target = cloneSymbol(resolvedTarget); - } - if (source.flags & 512 /* ValueModule */ && target.flags & 512 /* ValueModule */ && target.constEnumOnlyModule && !source.constEnumOnlyModule) { - target.constEnumOnlyModule = false; - } - target.flags |= source.flags; - if (source.valueDeclaration) { - setValueDeclaration(target, source.valueDeclaration); - } - addRange(target.declarations, source.declarations); - if (source.members) { - if (!target.members) - target.members = createSymbolTable(); - mergeSymbolTable(target.members, source.members, unidirectional); - } - if (source.exports) { - if (!target.exports) - target.exports = createSymbolTable(); - mergeSymbolTable(target.exports, source.exports, unidirectional); - } - if (!unidirectional) { - recordMergedSymbol(target, source); - } - } - else if (target.flags & 1024 /* NamespaceModule */) { - if (target !== globalThisSymbol) { - error2(source.declarations && getNameOfDeclaration(source.declarations[0]), Diagnostics.Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity, symbolToString(target)); - } - } - else { - var isEitherEnum = !!(target.flags & 384 /* Enum */ || source.flags & 384 /* Enum */); - var isEitherBlockScoped_1 = !!(target.flags & 2 /* BlockScopedVariable */ || source.flags & 2 /* BlockScopedVariable */); - var message = isEitherEnum ? Diagnostics.Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations : isEitherBlockScoped_1 ? Diagnostics.Cannot_redeclare_block_scoped_variable_0 : Diagnostics.Duplicate_identifier_0; - var sourceSymbolFile = source.declarations && getSourceFileOfNode(source.declarations[0]); - var targetSymbolFile = target.declarations && getSourceFileOfNode(target.declarations[0]); - var isSourcePlainJs = isPlainJsFile(sourceSymbolFile, compilerOptions.checkJs); - var isTargetPlainJs = isPlainJsFile(targetSymbolFile, compilerOptions.checkJs); - var symbolName2 = symbolToString(source); - if (sourceSymbolFile && targetSymbolFile && amalgamatedDuplicates && !isEitherEnum && sourceSymbolFile !== targetSymbolFile) { - var firstFile_1 = comparePaths(sourceSymbolFile.path, targetSymbolFile.path) === -1 /* LessThan */ ? sourceSymbolFile : targetSymbolFile; - var secondFile_1 = firstFile_1 === sourceSymbolFile ? targetSymbolFile : sourceSymbolFile; - var filesDuplicates = getOrUpdate(amalgamatedDuplicates, "".concat(firstFile_1.path, "|").concat(secondFile_1.path), function () { return ({ firstFile: firstFile_1, secondFile: secondFile_1, conflictingSymbols: /* @__PURE__ */ new Map() }); }); - var conflictingSymbolInfo = getOrUpdate(filesDuplicates.conflictingSymbols, symbolName2, function () { return ({ isBlockScoped: isEitherBlockScoped_1, firstFileLocations: [], secondFileLocations: [] }); }); - if (!isSourcePlainJs) - addDuplicateLocations(conflictingSymbolInfo.firstFileLocations, source); - if (!isTargetPlainJs) - addDuplicateLocations(conflictingSymbolInfo.secondFileLocations, target); - } - else { - if (!isSourcePlainJs) - addDuplicateDeclarationErrorsForSymbols(source, message, symbolName2, target); - if (!isTargetPlainJs) - addDuplicateDeclarationErrorsForSymbols(target, message, symbolName2, source); - } - } - return target; - function addDuplicateLocations(locs, symbol) { - var e_159, _t; - if (symbol.declarations) { - try { - for (var _u = __values(symbol.declarations), _v = _u.next(); !_v.done; _v = _u.next()) { - var decl = _v.value; - pushIfUnique(locs, decl); - } - } - catch (e_159_1) { e_159 = { error: e_159_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_159) throw e_159.error; } - } - } - } - } - function addDuplicateDeclarationErrorsForSymbols(target, message, symbolName2, source) { - forEach(target.declarations, function (node) { - addDuplicateDeclarationError(node, message, symbolName2, source.declarations); - }); - } - function addDuplicateDeclarationError(node, message, symbolName2, relatedNodes) { - var e_160, _t; - var errorNode = (getExpandoInitializer(node, - /*isPrototypeAssignment*/ - false) ? getNameOfExpando(node) : getNameOfDeclaration(node)) || node; - var err = lookupOrIssueError(errorNode, message, symbolName2); - var _loop_9 = function (relatedNode) { - var adjustedNode = (getExpandoInitializer(relatedNode, - /*isPrototypeAssignment*/ - false) ? getNameOfExpando(relatedNode) : getNameOfDeclaration(relatedNode)) || relatedNode; - if (adjustedNode === errorNode) - return "continue"; - err.relatedInformation = err.relatedInformation || []; - var leadingMessage = createDiagnosticForNode(adjustedNode, Diagnostics._0_was_also_declared_here, symbolName2); - var followOnMessage = createDiagnosticForNode(adjustedNode, Diagnostics.and_here); - if (length(err.relatedInformation) >= 5 || some(err.relatedInformation, function (r) { return compareDiagnostics(r, followOnMessage) === 0 /* EqualTo */ || compareDiagnostics(r, leadingMessage) === 0; } /* EqualTo */)) - return "continue"; - addRelatedInfo(err, !length(err.relatedInformation) ? leadingMessage : followOnMessage); - }; - try { - for (var _u = __values(relatedNodes || emptyArray), _v = _u.next(); !_v.done; _v = _u.next()) { - var relatedNode = _v.value; - _loop_9(relatedNode); - } - } - catch (e_160_1) { e_160 = { error: e_160_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_160) throw e_160.error; } - } - } - function combineSymbolTables(first2, second) { - if (!(first2 == null ? void 0 : first2.size)) - return second; - if (!(second == null ? void 0 : second.size)) - return first2; - var combined = createSymbolTable(); - mergeSymbolTable(combined, first2); - mergeSymbolTable(combined, second); - return combined; - } - function mergeSymbolTable(target, source, unidirectional) { - if (unidirectional === void 0) { unidirectional = false; } - source.forEach(function (sourceSymbol, id) { - var targetSymbol = target.get(id); - target.set(id, targetSymbol ? mergeSymbol(targetSymbol, sourceSymbol, unidirectional) : getMergedSymbol(sourceSymbol)); - }); - } - function mergeModuleAugmentation(moduleName) { - var e_161, _t; - var _a, _b, _c; - var moduleAugmentation = moduleName.parent; - if (((_a = moduleAugmentation.symbol.declarations) == null ? void 0 : _a[0]) !== moduleAugmentation) { - Debug.assert(moduleAugmentation.symbol.declarations.length > 1); - return; - } - if (isGlobalScopeAugmentation(moduleAugmentation)) { - mergeSymbolTable(globals, moduleAugmentation.symbol.exports); - } - else { - var moduleNotFoundError = !(moduleName.parent.parent.flags & 33554432 /* Ambient */) ? Diagnostics.Invalid_module_name_in_augmentation_module_0_cannot_be_found : void 0; - var mainModule_1 = resolveExternalModuleNameWorker(moduleName, moduleName, moduleNotFoundError, - /*isForAugmentation*/ - true); - if (!mainModule_1) { - return; - } - mainModule_1 = resolveExternalModuleSymbol(mainModule_1); - if (mainModule_1.flags & 1920 /* Namespace */) { - if (some(patternAmbientModules, function (module2) { return mainModule_1 === module2.symbol; })) { - var merged = mergeSymbol(moduleAugmentation.symbol, mainModule_1, - /*unidirectional*/ - true); - if (!patternAmbientModuleAugmentations) { - patternAmbientModuleAugmentations = /* @__PURE__ */ new Map(); - } - patternAmbientModuleAugmentations.set(moduleName.text, merged); - } - else { - if (((_b = mainModule_1.exports) == null ? void 0 : _b.get("__export" /* ExportStar */)) && ((_c = moduleAugmentation.symbol.exports) == null ? void 0 : _c.size)) { - var resolvedExports = getResolvedMembersOrExportsOfSymbol(mainModule_1, "resolvedExports" /* resolvedExports */); - try { - for (var _u = __values(arrayFrom(moduleAugmentation.symbol.exports.entries())), _v = _u.next(); !_v.done; _v = _u.next()) { - var _w = __read(_v.value, 2), key = _w[0], value = _w[1]; - if (resolvedExports.has(key) && !mainModule_1.exports.has(key)) { - mergeSymbol(resolvedExports.get(key), value); - } - } - } - catch (e_161_1) { e_161 = { error: e_161_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_161) throw e_161.error; } - } - } - mergeSymbol(mainModule_1, moduleAugmentation.symbol); - } - } - else { - error2(moduleName, Diagnostics.Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity, moduleName.text); - } - } - } - function addToSymbolTable(target, source, message) { - source.forEach(function (sourceSymbol, id) { - var targetSymbol = target.get(id); - if (targetSymbol) { - forEach(targetSymbol.declarations, addDeclarationDiagnostic(unescapeLeadingUnderscores(id), message)); - } - else { - target.set(id, sourceSymbol); - } - }); - function addDeclarationDiagnostic(id, message2) { - return function (declaration) { return diagnostics.add(createDiagnosticForNode(declaration, message2, id)); }; - } - } - function getSymbolLinks(symbol) { - var _t; - if (symbol.flags & 33554432 /* Transient */) - return symbol.links; - var id = getSymbolId(symbol); - return (_t = symbolLinks[id]) !== null && _t !== void 0 ? _t : (symbolLinks[id] = new SymbolLinks()); - } - function getNodeLinks(node) { - var nodeId = getNodeId(node); - return nodeLinks[nodeId] || (nodeLinks[nodeId] = new NodeLinks()); - } - function isGlobalSourceFile(node) { - return node.kind === 312 /* SourceFile */ && !isExternalOrCommonJsModule(node); - } - function getSymbol2(symbols, name, meaning) { - if (meaning) { - var symbol = getMergedSymbol(symbols.get(name)); - if (symbol) { - Debug.assert((getCheckFlags(symbol) & 1 /* Instantiated */) === 0, "Should never get an instantiated symbol here."); - if (symbol.flags & meaning) { - return symbol; - } - if (symbol.flags & 2097152 /* Alias */) { - var targetFlags = getSymbolFlags(symbol); - if (targetFlags & meaning) { - return symbol; - } - } - } - } - } - function getSymbolsOfParameterPropertyDeclaration(parameter, parameterName) { - var constructorDeclaration = parameter.parent; - var classDeclaration = parameter.parent.parent; - var parameterSymbol = getSymbol2(constructorDeclaration.locals, parameterName, 111551 /* Value */); - var propertySymbol = getSymbol2(getMembersOfSymbol(classDeclaration.symbol), parameterName, 111551 /* Value */); - if (parameterSymbol && propertySymbol) { - return [parameterSymbol, propertySymbol]; - } - return Debug.fail("There should exist two symbols, one as property declaration and one as parameter declaration"); - } - function isBlockScopedNameDeclaredBeforeUse(declaration, usage) { - var declarationFile = getSourceFileOfNode(declaration); - var useFile = getSourceFileOfNode(usage); - var declContainer = getEnclosingBlockScopeContainer(declaration); - if (declarationFile !== useFile) { - if (moduleKind && (declarationFile.externalModuleIndicator || useFile.externalModuleIndicator) || !outFile(compilerOptions) || isInTypeQuery(usage) || declaration.flags & 33554432 /* Ambient */) { - return true; - } - if (isUsedInFunctionOrInstanceProperty(usage, declaration)) { - return true; - } - var sourceFiles = host.getSourceFiles(); - return sourceFiles.indexOf(declarationFile) <= sourceFiles.indexOf(useFile); - } - if (declaration.pos <= usage.pos && !(isPropertyDeclaration(declaration) && isThisProperty(usage.parent) && !declaration.initializer && !declaration.exclamationToken)) { - if (declaration.kind === 208 /* BindingElement */) { - var errorBindingElement = getAncestor(usage, 208 /* BindingElement */); - if (errorBindingElement) { - return findAncestor(errorBindingElement, isBindingElement) !== findAncestor(declaration, isBindingElement) || declaration.pos < errorBindingElement.pos; - } - return isBlockScopedNameDeclaredBeforeUse(getAncestor(declaration, 260 /* VariableDeclaration */), usage); - } - else if (declaration.kind === 260 /* VariableDeclaration */) { - return !isImmediatelyUsedInInitializerOfBlockScopedVariable(declaration, usage); - } - else if (isClassDeclaration(declaration)) { - return !findAncestor(usage, function (n) { return isComputedPropertyName(n) && n.parent.parent === declaration; }); - } - else if (isPropertyDeclaration(declaration)) { - return !isPropertyImmediatelyReferencedWithinDeclaration(declaration, usage, - /*stopAtAnyPropertyDeclaration*/ - false); - } - else if (isParameterPropertyDeclaration(declaration, declaration.parent)) { - return !(emitStandardClassFields && getContainingClass(declaration) === getContainingClass(usage) && isUsedInFunctionOrInstanceProperty(usage, declaration)); - } - return true; - } - if (usage.parent.kind === 281 /* ExportSpecifier */ || usage.parent.kind === 277 /* ExportAssignment */ && usage.parent.isExportEquals) { - return true; - } - if (usage.kind === 277 /* ExportAssignment */ && usage.isExportEquals) { - return true; - } - if (!!(usage.flags & 16777216 /* JSDoc */) || isInTypeQuery(usage) || isInAmbientOrTypeNode(usage)) { - return true; - } - if (isUsedInFunctionOrInstanceProperty(usage, declaration)) { - if (emitStandardClassFields && getContainingClass(declaration) && (isPropertyDeclaration(declaration) || isParameterPropertyDeclaration(declaration, declaration.parent))) { - return !isPropertyImmediatelyReferencedWithinDeclaration(declaration, usage, - /*stopAtAnyPropertyDeclaration*/ - true); - } - else { - return true; - } - } - return false; - function isImmediatelyUsedInInitializerOfBlockScopedVariable(declaration2, usage2) { - switch (declaration2.parent.parent.kind) { - case 243 /* VariableStatement */: - case 248 /* ForStatement */: - case 250 /* ForOfStatement */: - if (isSameScopeDescendentOf(usage2, declaration2, declContainer)) { - return true; - } - break; - } - var grandparent = declaration2.parent.parent; - return isForInOrOfStatement(grandparent) && isSameScopeDescendentOf(usage2, grandparent.expression, declContainer); - } - function isUsedInFunctionOrInstanceProperty(usage2, declaration2) { - return !!findAncestor(usage2, function (current) { - if (current === declContainer) { - return "quit"; - } - if (isFunctionLike(current)) { - return true; - } - if (isClassStaticBlockDeclaration(current)) { - return declaration2.pos < usage2.pos; - } - var propertyDeclaration = tryCast(current.parent, isPropertyDeclaration); - if (propertyDeclaration) { - var initializerOfProperty = propertyDeclaration.initializer === current; - if (initializerOfProperty) { - if (isStatic(current.parent)) { - if (declaration2.kind === 174 /* MethodDeclaration */) { - return true; - } - if (isPropertyDeclaration(declaration2) && getContainingClass(usage2) === getContainingClass(declaration2)) { - var propName = declaration2.name; - if (isIdentifier(propName) || isPrivateIdentifier(propName)) { - var type = getTypeOfSymbol(getSymbolOfDeclaration(declaration2)); - var staticBlocks = filter(declaration2.parent.members, isClassStaticBlockDeclaration); - if (isPropertyInitializedInStaticBlocks(propName, type, staticBlocks, declaration2.parent.pos, current.pos)) { - return true; - } - } - } - } - else { - var isDeclarationInstanceProperty = declaration2.kind === 172 /* PropertyDeclaration */ && !isStatic(declaration2); - if (!isDeclarationInstanceProperty || getContainingClass(usage2) !== getContainingClass(declaration2)) { - return true; - } - } - } - } - return false; - }); - } - function isPropertyImmediatelyReferencedWithinDeclaration(declaration2, usage2, stopAtAnyPropertyDeclaration) { - if (usage2.end > declaration2.end) { - return false; - } - var ancestorChangingReferenceScope = findAncestor(usage2, function (node) { - if (node === declaration2) { - return "quit"; - } - switch (node.kind) { - case 219 /* ArrowFunction */: - return true; - case 172 /* PropertyDeclaration */: - return stopAtAnyPropertyDeclaration && (isPropertyDeclaration(declaration2) && node.parent === declaration2.parent || isParameterPropertyDeclaration(declaration2, declaration2.parent) && node.parent === declaration2.parent.parent) ? "quit" : true; - case 241 /* Block */: - switch (node.parent.kind) { - case 177 /* GetAccessor */: - case 174 /* MethodDeclaration */: - case 178 /* SetAccessor */: - return true; - default: - return false; - } - default: - return false; - } - }); - return ancestorChangingReferenceScope === void 0; - } - } - function useOuterVariableScopeInParameter(result, location, lastLocation) { - var target = getEmitScriptTarget(compilerOptions); - var functionLocation = location; - if (isParameter(lastLocation) && functionLocation.body && result.valueDeclaration && result.valueDeclaration.pos >= functionLocation.body.pos && result.valueDeclaration.end <= functionLocation.body.end) { - if (target >= 2 /* ES2015 */) { - var links = getNodeLinks(functionLocation); - if (links.declarationRequiresScopeChange === void 0) { - links.declarationRequiresScopeChange = forEach(functionLocation.parameters, requiresScopeChange) || false; - } - return !links.declarationRequiresScopeChange; - } - } - return false; - function requiresScopeChange(node) { - return requiresScopeChangeWorker(node.name) || !!node.initializer && requiresScopeChangeWorker(node.initializer); - } - function requiresScopeChangeWorker(node) { - switch (node.kind) { - case 219 /* ArrowFunction */: - case 218 /* FunctionExpression */: - case 262 /* FunctionDeclaration */: - case 176 /* Constructor */: - return false; - case 174 /* MethodDeclaration */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - case 303 /* PropertyAssignment */: - return requiresScopeChangeWorker(node.name); - case 172 /* PropertyDeclaration */: - if (hasStaticModifier(node)) { - return !emitStandardClassFields; - } - return requiresScopeChangeWorker(node.name); - default: - if (isNullishCoalesce(node) || isOptionalChain(node)) { - return target < 7 /* ES2020 */; - } - if (isBindingElement(node) && node.dotDotDotToken && isObjectBindingPattern(node.parent)) { - return target < 4 /* ES2017 */; - } - if (isTypeNode(node)) - return false; - return forEachChild(node, requiresScopeChangeWorker) || false; - } - } - } - function isConstAssertion(location) { - return isAssertionExpression(location) && isConstTypeReference(location.type) || isJSDocTypeTag(location) && isConstTypeReference(location.typeExpression); - } - function resolveName(location, name, meaning, nameNotFoundMessage, nameArg, isUse, excludeGlobals, getSpellingSuggestions) { - if (excludeGlobals === void 0) { excludeGlobals = false; } - if (getSpellingSuggestions === void 0) { getSpellingSuggestions = true; } - return resolveNameHelper(location, name, meaning, nameNotFoundMessage, nameArg, isUse, excludeGlobals, getSpellingSuggestions, getSymbol2); - } - function resolveNameHelper(location, name, meaning, nameNotFoundMessage, nameArg, isUse, excludeGlobals, getSpellingSuggestions, lookup) { - var _a, _b, _c; - var originalLocation = location; - var result; - var lastLocation; - var lastSelfReferenceLocation; - var propertyWithInvalidInitializer; - var associatedDeclarationForContainingInitializerOrBindingName; - var withinDeferredContext = false; - var errorLocation = location; - var grandparent; - var isInExternalModule = false; - loop: while (location) { - if (name === "const" && isConstAssertion(location)) { - return void 0; - } - if (isModuleOrEnumDeclaration(location) && lastLocation && location.name === lastLocation) { - lastLocation = location; - location = location.parent; - } - if (canHaveLocals(location) && location.locals && !isGlobalSourceFile(location)) { - if (result = lookup(location.locals, name, meaning)) { - var useResult = true; - if (isFunctionLike(location) && lastLocation && lastLocation !== location.body) { - if (meaning & result.flags & 788968 /* Type */ && lastLocation.kind !== 327 /* JSDoc */) { - useResult = result.flags & 262144 /* TypeParameter */ ? lastLocation === location.type || lastLocation.kind === 169 /* Parameter */ || lastLocation.kind === 348 /* JSDocParameterTag */ || lastLocation.kind === 349 /* JSDocReturnTag */ || lastLocation.kind === 168 /* TypeParameter */ : false; - } - if (meaning & result.flags & 3 /* Variable */) { - if (useOuterVariableScopeInParameter(result, location, lastLocation)) { - useResult = false; - } - else if (result.flags & 1 /* FunctionScopedVariable */) { - useResult = lastLocation.kind === 169 /* Parameter */ || lastLocation === location.type && !!findAncestor(result.valueDeclaration, isParameter); - } - } - } - else if (location.kind === 194 /* ConditionalType */) { - useResult = lastLocation === location.trueType; - } - if (useResult) { - break loop; - } - else { - result = void 0; - } - } - } - withinDeferredContext = withinDeferredContext || getIsDeferredContext(location, lastLocation); - switch (location.kind) { - case 312 /* SourceFile */: - if (!isExternalOrCommonJsModule(location)) - break; - isInExternalModule = true; - case 267 /* ModuleDeclaration */: - var moduleExports = ((_a = getSymbolOfDeclaration(location)) == null ? void 0 : _a.exports) || emptySymbols; - if (location.kind === 312 /* SourceFile */ || isModuleDeclaration(location) && location.flags & 33554432 /* Ambient */ && !isGlobalScopeAugmentation(location)) { - if (result = moduleExports.get("default" /* Default */)) { - var localSymbol = getLocalSymbolForExportDefault(result); - if (localSymbol && result.flags & meaning && localSymbol.escapedName === name) { - break loop; - } - result = void 0; - } - var moduleExport = moduleExports.get(name); - if (moduleExport && moduleExport.flags === 2097152 /* Alias */ && (getDeclarationOfKind(moduleExport, 281 /* ExportSpecifier */) || getDeclarationOfKind(moduleExport, 280 /* NamespaceExport */))) { - break; - } - } - if (name !== "default" /* Default */ && (result = lookup(moduleExports, name, meaning & 2623475 /* ModuleMember */))) { - if (isSourceFile(location) && location.commonJsModuleIndicator && !((_b = result.declarations) == null ? void 0 : _b.some(isJSDocTypeAlias))) { - result = void 0; - } - else { - break loop; - } - } - break; - case 266 /* EnumDeclaration */: - if (result = lookup(((_c = getSymbolOfDeclaration(location)) == null ? void 0 : _c.exports) || emptySymbols, name, meaning & 8 /* EnumMember */)) { - if (nameNotFoundMessage && getIsolatedModules(compilerOptions) && !(location.flags & 33554432 /* Ambient */) && getSourceFileOfNode(location) !== getSourceFileOfNode(result.valueDeclaration)) { - error2(errorLocation, Diagnostics.Cannot_access_0_from_another_file_without_qualification_when_1_is_enabled_Use_2_instead, unescapeLeadingUnderscores(name), isolatedModulesLikeFlagName, "".concat(unescapeLeadingUnderscores(getSymbolOfNode(location).escapedName), ".").concat(unescapeLeadingUnderscores(name))); - } - break loop; - } - break; - case 172 /* PropertyDeclaration */: - if (!isStatic(location)) { - var ctor = findConstructorDeclaration(location.parent); - if (ctor && ctor.locals) { - if (lookup(ctor.locals, name, meaning & 111551 /* Value */)) { - Debug.assertNode(location, isPropertyDeclaration); - propertyWithInvalidInitializer = location; - } - } - } - break; - case 263 /* ClassDeclaration */: - case 231 /* ClassExpression */: - case 264 /* InterfaceDeclaration */: - if (result = lookup(getSymbolOfDeclaration(location).members || emptySymbols, name, meaning & 788968 /* Type */)) { - if (!isTypeParameterSymbolDeclaredInContainer(result, location)) { - result = void 0; - break; - } - if (lastLocation && isStatic(lastLocation)) { - if (nameNotFoundMessage) { - error2(errorLocation, Diagnostics.Static_members_cannot_reference_class_type_parameters); - } - return void 0; - } - break loop; - } - if (isClassExpression(location) && meaning & 32 /* Class */) { - var className = location.name; - if (className && name === className.escapedText) { - result = location.symbol; - break loop; - } - } - break; - case 233 /* ExpressionWithTypeArguments */: - if (lastLocation === location.expression && location.parent.token === 96 /* ExtendsKeyword */) { - var container = location.parent.parent; - if (isClassLike(container) && (result = lookup(getSymbolOfDeclaration(container).members, name, meaning & 788968 /* Type */))) { - if (nameNotFoundMessage) { - error2(errorLocation, Diagnostics.Base_class_expressions_cannot_reference_class_type_parameters); - } - return void 0; - } - } - break; - case 167 /* ComputedPropertyName */: - grandparent = location.parent.parent; - if (isClassLike(grandparent) || grandparent.kind === 264 /* InterfaceDeclaration */) { - if (result = lookup(getSymbolOfDeclaration(grandparent).members, name, meaning & 788968 /* Type */)) { - if (nameNotFoundMessage) { - error2(errorLocation, Diagnostics.A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type); - } - return void 0; - } - } - break; - case 219 /* ArrowFunction */: - if (getEmitScriptTarget(compilerOptions) >= 2 /* ES2015 */) { - break; - } - case 174 /* MethodDeclaration */: - case 176 /* Constructor */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - case 262 /* FunctionDeclaration */: - if (meaning & 3 /* Variable */ && name === "arguments") { - result = argumentsSymbol; - break loop; - } - break; - case 218 /* FunctionExpression */: - if (meaning & 3 /* Variable */ && name === "arguments") { - result = argumentsSymbol; - break loop; - } - if (meaning & 16 /* Function */) { - var functionName = location.name; - if (functionName && name === functionName.escapedText) { - result = location.symbol; - break loop; - } - } - break; - case 170 /* Decorator */: - if (location.parent && location.parent.kind === 169 /* Parameter */) { - location = location.parent; - } - if (location.parent && (isClassElement(location.parent) || location.parent.kind === 263 /* ClassDeclaration */)) { - location = location.parent; - } - break; - case 353 /* JSDocTypedefTag */: - case 345 /* JSDocCallbackTag */: - case 347 /* JSDocEnumTag */: - var root = getJSDocRoot(location); - if (root) { - location = root.parent; - } - break; - case 169 /* Parameter */: - if (lastLocation && (lastLocation === location.initializer || lastLocation === location.name && isBindingPattern(lastLocation))) { - if (!associatedDeclarationForContainingInitializerOrBindingName) { - associatedDeclarationForContainingInitializerOrBindingName = location; - } - } - break; - case 208 /* BindingElement */: - if (lastLocation && (lastLocation === location.initializer || lastLocation === location.name && isBindingPattern(lastLocation))) { - if (isParameterDeclaration(location) && !associatedDeclarationForContainingInitializerOrBindingName) { - associatedDeclarationForContainingInitializerOrBindingName = location; - } - } - break; - case 195 /* InferType */: - if (meaning & 262144 /* TypeParameter */) { - var parameterName = location.typeParameter.name; - if (parameterName && name === parameterName.escapedText) { - result = location.typeParameter.symbol; - break loop; - } - } - break; - case 281 /* ExportSpecifier */: - if (lastLocation && lastLocation === location.propertyName && location.parent.parent.moduleSpecifier) { - location = location.parent.parent.parent; - } - break; - } - if (isSelfReferenceLocation(location)) { - lastSelfReferenceLocation = location; - } - lastLocation = location; - location = isJSDocTemplateTag(location) ? getEffectiveContainerForJSDocTemplateTag(location) || location.parent : isJSDocParameterTag(location) || isJSDocReturnTag(location) ? getHostSignatureFromJSDoc(location) || location.parent : location.parent; - } - if (isUse && result && (!lastSelfReferenceLocation || result !== lastSelfReferenceLocation.symbol)) { - result.isReferenced |= meaning; - } - if (!result) { - if (lastLocation) { - Debug.assertNode(lastLocation, isSourceFile); - if (lastLocation.commonJsModuleIndicator && name === "exports" && meaning & lastLocation.symbol.flags) { - return lastLocation.symbol; - } - } - if (!excludeGlobals) { - result = lookup(globals, name, meaning); - } - } - if (!result) { - if (originalLocation && isInJSFile(originalLocation) && originalLocation.parent) { - if (isRequireCall(originalLocation.parent, - /*requireStringLiteralLikeArgument*/ - false)) { - return requireSymbol; - } - } - } - function checkAndReportErrorForInvalidInitializer() { - if (propertyWithInvalidInitializer && !emitStandardClassFields) { - error2(errorLocation, errorLocation && propertyWithInvalidInitializer.type && textRangeContainsPositionInclusive(propertyWithInvalidInitializer.type, errorLocation.pos) ? Diagnostics.Type_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor : Diagnostics.Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor, declarationNameToString(propertyWithInvalidInitializer.name), diagnosticName(nameArg)); - return true; - } - return false; - } - if (!result) { - if (nameNotFoundMessage) { - addLazyDiagnostic(function () { - if (!errorLocation || errorLocation.parent.kind !== 331 /* JSDocLink */ && !checkAndReportErrorForMissingPrefix(errorLocation, name, nameArg) && // TODO: GH#18217 - !checkAndReportErrorForInvalidInitializer() && !checkAndReportErrorForExtendingInterface(errorLocation) && !checkAndReportErrorForUsingTypeAsNamespace(errorLocation, name, meaning) && !checkAndReportErrorForExportingPrimitiveType(errorLocation, name) && !checkAndReportErrorForUsingNamespaceAsTypeOrValue(errorLocation, name, meaning) && !checkAndReportErrorForUsingTypeAsValue(errorLocation, name, meaning) && !checkAndReportErrorForUsingValueAsType(errorLocation, name, meaning)) { - var suggestion = void 0; - var suggestedLib = void 0; - if (nameArg) { - suggestedLib = getSuggestedLibForNonExistentName(nameArg); - if (suggestedLib) { - error2(errorLocation, nameNotFoundMessage, diagnosticName(nameArg), suggestedLib); - } - } - if (!suggestedLib && getSpellingSuggestions && suggestionCount < maximumSuggestionCount) { - suggestion = getSuggestedSymbolForNonexistentSymbol(originalLocation, name, meaning); - var isGlobalScopeAugmentationDeclaration = (suggestion == null ? void 0 : suggestion.valueDeclaration) && isAmbientModule(suggestion.valueDeclaration) && isGlobalScopeAugmentation(suggestion.valueDeclaration); - if (isGlobalScopeAugmentationDeclaration) { - suggestion = void 0; - } - if (suggestion) { - var suggestionName = symbolToString(suggestion); - var isUncheckedJS = isUncheckedJSSuggestion(originalLocation, suggestion, - /*excludeClasses*/ - false); - var message = meaning === 1920 /* Namespace */ || nameArg && typeof nameArg !== "string" && nodeIsSynthesized(nameArg) ? Diagnostics.Cannot_find_namespace_0_Did_you_mean_1 : isUncheckedJS ? Diagnostics.Could_not_find_name_0_Did_you_mean_1 : Diagnostics.Cannot_find_name_0_Did_you_mean_1; - var diagnostic = createError(errorLocation, message, diagnosticName(nameArg), suggestionName); - addErrorOrSuggestion(!isUncheckedJS, diagnostic); - if (suggestion.valueDeclaration) { - addRelatedInfo(diagnostic, createDiagnosticForNode(suggestion.valueDeclaration, Diagnostics._0_is_declared_here, suggestionName)); - } - } - } - if (!suggestion && !suggestedLib && nameArg) { - error2(errorLocation, nameNotFoundMessage, diagnosticName(nameArg)); - } - suggestionCount++; - } - }); - } - return void 0; - } - else if (nameNotFoundMessage && checkAndReportErrorForInvalidInitializer()) { - return void 0; - } - if (nameNotFoundMessage) { - addLazyDiagnostic(function () { - if (errorLocation && (meaning & 2 /* BlockScopedVariable */ || (meaning & 32 /* Class */ || meaning & 384 /* Enum */) && (meaning & 111551 /* Value */) === 111551 /* Value */)) { - var exportOrLocalSymbol = getExportSymbolOfValueSymbolIfExported(result); - if (exportOrLocalSymbol.flags & 2 /* BlockScopedVariable */ || exportOrLocalSymbol.flags & 32 /* Class */ || exportOrLocalSymbol.flags & 384 /* Enum */) { - checkResolvedBlockScopedVariable(exportOrLocalSymbol, errorLocation); - } - } - if (result && isInExternalModule && (meaning & 111551 /* Value */) === 111551 /* Value */ && !(originalLocation.flags & 16777216 /* JSDoc */)) { - var merged = getMergedSymbol(result); - if (length(merged.declarations) && every(merged.declarations, function (d) { return isNamespaceExportDeclaration(d) || isSourceFile(d) && !!d.symbol.globalExports; })) { - errorOrSuggestion(!compilerOptions.allowUmdGlobalAccess, errorLocation, Diagnostics._0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead, unescapeLeadingUnderscores(name)); - } - } - if (result && associatedDeclarationForContainingInitializerOrBindingName && !withinDeferredContext && (meaning & 111551 /* Value */) === 111551 /* Value */) { - var candidate = getMergedSymbol(getLateBoundSymbol(result)); - var root = getRootDeclaration(associatedDeclarationForContainingInitializerOrBindingName); - if (candidate === getSymbolOfDeclaration(associatedDeclarationForContainingInitializerOrBindingName)) { - error2(errorLocation, Diagnostics.Parameter_0_cannot_reference_itself, declarationNameToString(associatedDeclarationForContainingInitializerOrBindingName.name)); - } - else if (candidate.valueDeclaration && candidate.valueDeclaration.pos > associatedDeclarationForContainingInitializerOrBindingName.pos && root.parent.locals && lookup(root.parent.locals, candidate.escapedName, meaning) === candidate) { - error2(errorLocation, Diagnostics.Parameter_0_cannot_reference_identifier_1_declared_after_it, declarationNameToString(associatedDeclarationForContainingInitializerOrBindingName.name), declarationNameToString(errorLocation)); - } - } - if (result && errorLocation && meaning & 111551 /* Value */ && result.flags & 2097152 /* Alias */ && !(result.flags & 111551 /* Value */) && !isValidTypeOnlyAliasUseSite(errorLocation)) { - var typeOnlyDeclaration = getTypeOnlyAliasDeclaration(result, 111551 /* Value */); - if (typeOnlyDeclaration) { - var message = typeOnlyDeclaration.kind === 281 /* ExportSpecifier */ || typeOnlyDeclaration.kind === 278 /* ExportDeclaration */ || typeOnlyDeclaration.kind === 280 /* NamespaceExport */ ? Diagnostics._0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type : Diagnostics._0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type; - var unescapedName = unescapeLeadingUnderscores(name); - addTypeOnlyDeclarationRelatedInfo(error2(errorLocation, message, unescapedName), typeOnlyDeclaration, unescapedName); - } - } - }); - } - return result; - } - function addTypeOnlyDeclarationRelatedInfo(diagnostic, typeOnlyDeclaration, unescapedName) { - if (!typeOnlyDeclaration) - return diagnostic; - return addRelatedInfo(diagnostic, createDiagnosticForNode(typeOnlyDeclaration, typeOnlyDeclaration.kind === 281 /* ExportSpecifier */ || typeOnlyDeclaration.kind === 278 /* ExportDeclaration */ || typeOnlyDeclaration.kind === 280 /* NamespaceExport */ ? Diagnostics._0_was_exported_here : Diagnostics._0_was_imported_here, unescapedName)); - } - function getIsDeferredContext(location, lastLocation) { - if (location.kind !== 219 /* ArrowFunction */ && location.kind !== 218 /* FunctionExpression */) { - return isTypeQueryNode(location) || (isFunctionLikeDeclaration(location) || location.kind === 172 /* PropertyDeclaration */ && !isStatic(location)) && (!lastLocation || lastLocation !== location.name); - } - if (lastLocation && lastLocation === location.name) { - return false; - } - if (location.asteriskToken || hasSyntacticModifier(location, 512 /* Async */)) { - return true; - } - return !getImmediatelyInvokedFunctionExpression(location); - } - function isSelfReferenceLocation(node) { - switch (node.kind) { - case 262 /* FunctionDeclaration */: - case 263 /* ClassDeclaration */: - case 264 /* InterfaceDeclaration */: - case 266 /* EnumDeclaration */: - case 265 /* TypeAliasDeclaration */: - case 267 /* ModuleDeclaration */: - return true; - default: - return false; - } - } - function diagnosticName(nameArg) { - return isString(nameArg) ? unescapeLeadingUnderscores(nameArg) : declarationNameToString(nameArg); - } - function isTypeParameterSymbolDeclaredInContainer(symbol, container) { - var e_162, _t; - if (symbol.declarations) { - try { - for (var _u = __values(symbol.declarations), _v = _u.next(); !_v.done; _v = _u.next()) { - var decl = _v.value; - if (decl.kind === 168 /* TypeParameter */) { - var parent2 = isJSDocTemplateTag(decl.parent) ? getJSDocHost(decl.parent) : decl.parent; - if (parent2 === container) { - return !(isJSDocTemplateTag(decl.parent) && find(decl.parent.parent.tags, isJSDocTypeAlias)); - } - } - } - } - catch (e_162_1) { e_162 = { error: e_162_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_162) throw e_162.error; } - } - } - return false; - } - function checkAndReportErrorForMissingPrefix(errorLocation, name, nameArg) { - if (!isIdentifier(errorLocation) || errorLocation.escapedText !== name || isTypeReferenceIdentifier(errorLocation) || isInTypeQuery(errorLocation)) { - return false; - } - var container = getThisContainer(errorLocation, - /*includeArrowFunctions*/ - false, - /*includeClassComputedPropertyName*/ - false); - var location = container; - while (location) { - if (isClassLike(location.parent)) { - var classSymbol = getSymbolOfDeclaration(location.parent); - if (!classSymbol) { - break; - } - var constructorType = getTypeOfSymbol(classSymbol); - if (getPropertyOfType(constructorType, name)) { - error2(errorLocation, Diagnostics.Cannot_find_name_0_Did_you_mean_the_static_member_1_0, diagnosticName(nameArg), symbolToString(classSymbol)); - return true; - } - if (location === container && !isStatic(location)) { - var instanceType = getDeclaredTypeOfSymbol(classSymbol).thisType; - if (getPropertyOfType(instanceType, name)) { - error2(errorLocation, Diagnostics.Cannot_find_name_0_Did_you_mean_the_instance_member_this_0, diagnosticName(nameArg)); - return true; - } - } - } - location = location.parent; - } - return false; - } - function checkAndReportErrorForExtendingInterface(errorLocation) { - var expression = getEntityNameForExtendingInterface(errorLocation); - if (expression && resolveEntityName(expression, 64 /* Interface */, - /*ignoreErrors*/ - true)) { - error2(errorLocation, Diagnostics.Cannot_extend_an_interface_0_Did_you_mean_implements, getTextOfNode(expression)); - return true; - } - return false; - } - function getEntityNameForExtendingInterface(node) { - switch (node.kind) { - case 80 /* Identifier */: - case 211 /* PropertyAccessExpression */: - return node.parent ? getEntityNameForExtendingInterface(node.parent) : void 0; - case 233 /* ExpressionWithTypeArguments */: - if (isEntityNameExpression(node.expression)) { - return node.expression; - } - default: - return void 0; - } - } - function checkAndReportErrorForUsingTypeAsNamespace(errorLocation, name, meaning) { - var namespaceMeaning = 1920 /* Namespace */ | (isInJSFile(errorLocation) ? 111551 /* Value */ : 0); - if (meaning === namespaceMeaning) { - var symbol = resolveSymbol(resolveName(errorLocation, name, 788968 /* Type */ & ~namespaceMeaning, - /*nameNotFoundMessage*/ - void 0, - /*nameArg*/ - void 0, - /*isUse*/ - false)); - var parent2 = errorLocation.parent; - if (symbol) { - if (isQualifiedName(parent2)) { - Debug.assert(parent2.left === errorLocation, "Should only be resolving left side of qualified name as a namespace"); - var propName = parent2.right.escapedText; - var propType = getPropertyOfType(getDeclaredTypeOfSymbol(symbol), propName); - if (propType) { - error2(parent2, Diagnostics.Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_property_1_in_0_with_0_1, unescapeLeadingUnderscores(name), unescapeLeadingUnderscores(propName)); - return true; - } - } - error2(errorLocation, Diagnostics._0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here, unescapeLeadingUnderscores(name)); - return true; - } - } - return false; - } - function checkAndReportErrorForUsingValueAsType(errorLocation, name, meaning) { - if (meaning & (788968 /* Type */ & ~1920 /* Namespace */)) { - var symbol = resolveSymbol(resolveName(errorLocation, name, ~788968 /* Type */ & 111551 /* Value */, - /*nameNotFoundMessage*/ - void 0, - /*nameArg*/ - void 0, - /*isUse*/ - false)); - if (symbol && !(symbol.flags & 1920 /* Namespace */)) { - error2(errorLocation, Diagnostics._0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0, unescapeLeadingUnderscores(name)); - return true; - } - } - return false; - } - function isPrimitiveTypeName(name) { - return name === "any" || name === "string" || name === "number" || name === "boolean" || name === "never" || name === "unknown"; - } - function checkAndReportErrorForExportingPrimitiveType(errorLocation, name) { - if (isPrimitiveTypeName(name) && errorLocation.parent.kind === 281 /* ExportSpecifier */) { - error2(errorLocation, Diagnostics.Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module, name); - return true; - } - return false; - } - function checkAndReportErrorForUsingTypeAsValue(errorLocation, name, meaning) { - if (meaning & 111551 /* Value */) { - if (isPrimitiveTypeName(name)) { - if (isExtendedByInterface(errorLocation)) { - error2(errorLocation, Diagnostics.An_interface_cannot_extend_a_primitive_type_like_0_an_interface_can_only_extend_named_types_and_classes, unescapeLeadingUnderscores(name)); - } - else { - error2(errorLocation, Diagnostics._0_only_refers_to_a_type_but_is_being_used_as_a_value_here, unescapeLeadingUnderscores(name)); - } - return true; - } - var symbol = resolveSymbol(resolveName(errorLocation, name, 788968 /* Type */ & ~111551 /* Value */, - /*nameNotFoundMessage*/ - void 0, - /*nameArg*/ - void 0, - /*isUse*/ - false)); - var allFlags = symbol && getSymbolFlags(symbol); - if (symbol && allFlags !== void 0 && !(allFlags & 111551 /* Value */)) { - var rawName = unescapeLeadingUnderscores(name); - if (isES2015OrLaterConstructorName(name)) { - error2(errorLocation, Diagnostics._0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_es2015_or_later, rawName); - } - else if (maybeMappedType(errorLocation, symbol)) { - error2(errorLocation, Diagnostics._0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Did_you_mean_to_use_1_in_0, rawName, rawName === "K" ? "P" : "K"); - } - else { - error2(errorLocation, Diagnostics._0_only_refers_to_a_type_but_is_being_used_as_a_value_here, rawName); - } - return true; - } - } - return false; - } - function isExtendedByInterface(node) { - var grandparent = node.parent.parent; - var parentOfGrandparent = grandparent.parent; - if (grandparent && parentOfGrandparent) { - var isExtending = isHeritageClause(grandparent) && grandparent.token === 96 /* ExtendsKeyword */; - var isInterface = isInterfaceDeclaration(parentOfGrandparent); - return isExtending && isInterface; - } - return false; - } - function maybeMappedType(node, symbol) { - var container = findAncestor(node.parent, function (n) { return isComputedPropertyName(n) || isPropertySignature(n) ? false : isTypeLiteralNode(n) || "quit"; }); - if (container && container.members.length === 1) { - var type = getDeclaredTypeOfSymbol(symbol); - return !!(type.flags & 1048576 /* Union */) && allTypesAssignableToKind(type, 384 /* StringOrNumberLiteral */, - /*strict*/ - true); - } - return false; - } - function isES2015OrLaterConstructorName(n) { - switch (n) { - case "Promise": - case "Symbol": - case "Map": - case "WeakMap": - case "Set": - case "WeakSet": - return true; - } - return false; - } - function checkAndReportErrorForUsingNamespaceAsTypeOrValue(errorLocation, name, meaning) { - if (meaning & (111551 /* Value */ & ~788968 /* Type */)) { - var symbol = resolveSymbol(resolveName(errorLocation, name, 1024 /* NamespaceModule */, - /*nameNotFoundMessage*/ - void 0, - /*nameArg*/ - void 0, - /*isUse*/ - false)); - if (symbol) { - error2(errorLocation, Diagnostics.Cannot_use_namespace_0_as_a_value, unescapeLeadingUnderscores(name)); - return true; - } - } - else if (meaning & (788968 /* Type */ & ~111551 /* Value */)) { - var symbol = resolveSymbol(resolveName(errorLocation, name, 1536 /* Module */, - /*nameNotFoundMessage*/ - void 0, - /*nameArg*/ - void 0, - /*isUse*/ - false)); - if (symbol) { - error2(errorLocation, Diagnostics.Cannot_use_namespace_0_as_a_type, unescapeLeadingUnderscores(name)); - return true; - } - } - return false; - } - function checkResolvedBlockScopedVariable(result, errorLocation) { - var _a; - Debug.assert(!!(result.flags & 2 /* BlockScopedVariable */ || result.flags & 32 /* Class */ || result.flags & 384 /* Enum */)); - if (result.flags & (16 /* Function */ | 1 /* FunctionScopedVariable */ | 67108864 /* Assignment */) && result.flags & 32 /* Class */) { - return; - } - var declaration = (_a = result.declarations) == null ? void 0 : _a.find(function (d) { return isBlockOrCatchScoped(d) || isClassLike(d) || d.kind === 266; } /* EnumDeclaration */); - if (declaration === void 0) - return Debug.fail("checkResolvedBlockScopedVariable could not find block-scoped declaration"); - if (!(declaration.flags & 33554432 /* Ambient */) && !isBlockScopedNameDeclaredBeforeUse(declaration, errorLocation)) { - var diagnosticMessage = void 0; - var declarationName = declarationNameToString(getNameOfDeclaration(declaration)); - if (result.flags & 2 /* BlockScopedVariable */) { - diagnosticMessage = error2(errorLocation, Diagnostics.Block_scoped_variable_0_used_before_its_declaration, declarationName); - } - else if (result.flags & 32 /* Class */) { - diagnosticMessage = error2(errorLocation, Diagnostics.Class_0_used_before_its_declaration, declarationName); - } - else if (result.flags & 256 /* RegularEnum */) { - diagnosticMessage = error2(errorLocation, Diagnostics.Enum_0_used_before_its_declaration, declarationName); - } - if (diagnosticMessage) { - addRelatedInfo(diagnosticMessage, createDiagnosticForNode(declaration, Diagnostics._0_is_declared_here, declarationName)); - } - } - } - function isSameScopeDescendentOf(initial, parent2, stopAt) { - return !!parent2 && !!findAncestor(initial, function (n) { return n === parent2 || (n === stopAt || isFunctionLike(n) && (!getImmediatelyInvokedFunctionExpression(n) || isAsyncFunction(n)) ? "quit" : false); }); - } - function getAnyImportSyntax(node) { - switch (node.kind) { - case 271 /* ImportEqualsDeclaration */: - return node; - case 273 /* ImportClause */: - return node.parent; - case 274 /* NamespaceImport */: - return node.parent.parent; - case 276 /* ImportSpecifier */: - return node.parent.parent.parent; - default: - return void 0; - } - } - function getDeclarationOfAliasSymbol(symbol) { - return symbol.declarations && findLast(symbol.declarations, isAliasSymbolDeclaration2); - } - function isAliasSymbolDeclaration2(node) { - return node.kind === 271 /* ImportEqualsDeclaration */ || node.kind === 270 /* NamespaceExportDeclaration */ || node.kind === 273 /* ImportClause */ && !!node.name || node.kind === 274 /* NamespaceImport */ || node.kind === 280 /* NamespaceExport */ || node.kind === 276 /* ImportSpecifier */ || node.kind === 281 /* ExportSpecifier */ || node.kind === 277 /* ExportAssignment */ && exportAssignmentIsAlias(node) || isBinaryExpression(node) && getAssignmentDeclarationKind(node) === 2 /* ModuleExports */ && exportAssignmentIsAlias(node) || isAccessExpression(node) && isBinaryExpression(node.parent) && node.parent.left === node && node.parent.operatorToken.kind === 64 /* EqualsToken */ && isAliasableOrJsExpression(node.parent.right) || node.kind === 304 /* ShorthandPropertyAssignment */ || node.kind === 303 /* PropertyAssignment */ && isAliasableOrJsExpression(node.initializer) || node.kind === 260 /* VariableDeclaration */ && isVariableDeclarationInitializedToBareOrAccessedRequire(node) || node.kind === 208 /* BindingElement */ && isVariableDeclarationInitializedToBareOrAccessedRequire(node.parent.parent); - } - function isAliasableOrJsExpression(e) { - return isAliasableExpression(e) || isFunctionExpression(e) && isJSConstructor(e); - } - function getTargetOfImportEqualsDeclaration(node, dontResolveAlias) { - var commonJSPropertyAccess = getCommonJSPropertyAccess(node); - if (commonJSPropertyAccess) { - var name_21 = getLeftmostAccessExpression(commonJSPropertyAccess.expression).arguments[0]; - return isIdentifier(commonJSPropertyAccess.name) ? resolveSymbol(getPropertyOfType(resolveExternalModuleTypeByLiteral(name_21), commonJSPropertyAccess.name.escapedText)) : void 0; - } - if (isVariableDeclaration(node) || node.moduleReference.kind === 283 /* ExternalModuleReference */) { - var immediate = resolveExternalModuleName(node, getExternalModuleRequireArgument(node) || getExternalModuleImportEqualsDeclarationExpression(node)); - var resolved2 = resolveExternalModuleSymbol(immediate); - markSymbolOfAliasDeclarationIfTypeOnly(node, immediate, resolved2, - /*overwriteEmpty*/ - false); - return resolved2; - } - var resolved = getSymbolOfPartOfRightHandSideOfImportEquals(node.moduleReference, dontResolveAlias); - checkAndReportErrorForResolvingImportAliasToTypeOnlySymbol(node, resolved); - return resolved; - } - function checkAndReportErrorForResolvingImportAliasToTypeOnlySymbol(node, resolved) { - if (markSymbolOfAliasDeclarationIfTypeOnly(node, - /*immediateTarget*/ - void 0, resolved, - /*overwriteEmpty*/ - false) && !node.isTypeOnly) { - var typeOnlyDeclaration = getTypeOnlyAliasDeclaration(getSymbolOfDeclaration(node)); - var isExport = typeOnlyDeclaration.kind === 281 /* ExportSpecifier */ || typeOnlyDeclaration.kind === 278 /* ExportDeclaration */; - var message = isExport ? Diagnostics.An_import_alias_cannot_reference_a_declaration_that_was_exported_using_export_type : Diagnostics.An_import_alias_cannot_reference_a_declaration_that_was_imported_using_import_type; - var relatedMessage = isExport ? Diagnostics._0_was_exported_here : Diagnostics._0_was_imported_here; - var name_22 = typeOnlyDeclaration.kind === 278 /* ExportDeclaration */ ? "*" : unescapeLeadingUnderscores(typeOnlyDeclaration.name.escapedText); - addRelatedInfo(error2(node.moduleReference, message), createDiagnosticForNode(typeOnlyDeclaration, relatedMessage, name_22)); - } - } - function resolveExportByName(moduleSymbol, name, sourceNode, dontResolveAlias) { - var exportValue = moduleSymbol.exports.get("export=" /* ExportEquals */); - var exportSymbol = exportValue ? getPropertyOfType(getTypeOfSymbol(exportValue), name, - /*skipObjectFunctionPropertyAugment*/ - true) : moduleSymbol.exports.get(name); - var resolved = resolveSymbol(exportSymbol, dontResolveAlias); - markSymbolOfAliasDeclarationIfTypeOnly(sourceNode, exportSymbol, resolved, - /*overwriteEmpty*/ - false); - return resolved; - } - function isSyntacticDefault(node) { - return isExportAssignment(node) && !node.isExportEquals || hasSyntacticModifier(node, 1024 /* Default */) || isExportSpecifier(node); - } - function getUsageModeForExpression(usage) { - return isStringLiteralLike(usage) ? getModeForUsageLocation(getSourceFileOfNode(usage), usage) : void 0; - } - function isESMFormatImportImportingCommonjsFormatFile(usageMode, targetMode) { - return usageMode === 99 /* ESNext */ && targetMode === 1 /* CommonJS */; - } - function isOnlyImportedAsDefault(usage) { - var usageMode = getUsageModeForExpression(usage); - return usageMode === 99 /* ESNext */ && endsWith(usage.text, ".json" /* Json */); - } - function canHaveSyntheticDefault(file, moduleSymbol, dontResolveAlias, usage) { - var usageMode = file && getUsageModeForExpression(usage); - if (file && usageMode !== void 0) { - var result = isESMFormatImportImportingCommonjsFormatFile(usageMode, file.impliedNodeFormat); - if (usageMode === 99 /* ESNext */ || result) { - return result; - } - } - if (!allowSyntheticDefaultImports) { - return false; - } - if (!file || file.isDeclarationFile) { - var defaultExportSymbol = resolveExportByName(moduleSymbol, "default" /* Default */, - /*sourceNode*/ - void 0, - /*dontResolveAlias*/ - true); - if (defaultExportSymbol && some(defaultExportSymbol.declarations, isSyntacticDefault)) { - return false; - } - if (resolveExportByName(moduleSymbol, escapeLeadingUnderscores("__esModule"), - /*sourceNode*/ - void 0, dontResolveAlias)) { - return false; - } - return true; - } - if (!isSourceFileJS(file)) { - return hasExportAssignmentSymbol(moduleSymbol); - } - return typeof file.externalModuleIndicator !== "object" && !resolveExportByName(moduleSymbol, escapeLeadingUnderscores("__esModule"), - /*sourceNode*/ - void 0, dontResolveAlias); - } - function getTargetOfImportClause(node, dontResolveAlias) { - var moduleSymbol = resolveExternalModuleName(node, node.parent.moduleSpecifier); - if (moduleSymbol) { - return getTargetofModuleDefault(moduleSymbol, node, dontResolveAlias); - } - } - function getTargetofModuleDefault(moduleSymbol, node, dontResolveAlias) { - var _a; - var exportDefaultSymbol; - if (isShorthandAmbientModuleSymbol(moduleSymbol)) { - exportDefaultSymbol = moduleSymbol; - } - else { - exportDefaultSymbol = resolveExportByName(moduleSymbol, "default" /* Default */, node, dontResolveAlias); - } - var file = (_a = moduleSymbol.declarations) == null ? void 0 : _a.find(isSourceFile); - var specifier = getModuleSpecifierForImportOrExport(node); - if (!specifier) { - return exportDefaultSymbol; - } - var hasDefaultOnly = isOnlyImportedAsDefault(specifier); - var hasSyntheticDefault = canHaveSyntheticDefault(file, moduleSymbol, dontResolveAlias, specifier); - if (!exportDefaultSymbol && !hasSyntheticDefault && !hasDefaultOnly) { - if (hasExportAssignmentSymbol(moduleSymbol) && !allowSyntheticDefaultImports) { - var compilerOptionName = moduleKind >= 5 /* ES2015 */ ? "allowSyntheticDefaultImports" : "esModuleInterop"; - var exportEqualsSymbol = moduleSymbol.exports.get("export=" /* ExportEquals */); - var exportAssignment = exportEqualsSymbol.valueDeclaration; - var err = error2(node.name, Diagnostics.Module_0_can_only_be_default_imported_using_the_1_flag, symbolToString(moduleSymbol), compilerOptionName); - if (exportAssignment) { - addRelatedInfo(err, createDiagnosticForNode(exportAssignment, Diagnostics.This_module_is_declared_with_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag, compilerOptionName)); - } - } - else if (isImportClause(node)) { - reportNonDefaultExport(moduleSymbol, node); - } - else { - errorNoModuleMemberSymbol(moduleSymbol, moduleSymbol, node, isImportOrExportSpecifier(node) && node.propertyName || node.name); - } - } - else if (hasSyntheticDefault || hasDefaultOnly) { - var resolved = resolveExternalModuleSymbol(moduleSymbol, dontResolveAlias) || resolveSymbol(moduleSymbol, dontResolveAlias); - markSymbolOfAliasDeclarationIfTypeOnly(node, moduleSymbol, resolved, - /*overwriteEmpty*/ - false); - return resolved; - } - markSymbolOfAliasDeclarationIfTypeOnly(node, exportDefaultSymbol, - /*finalTarget*/ - void 0, - /*overwriteEmpty*/ - false); - return exportDefaultSymbol; - } - function getModuleSpecifierForImportOrExport(node) { - switch (node.kind) { - case 273 /* ImportClause */: - return node.parent.moduleSpecifier; - case 271 /* ImportEqualsDeclaration */: - return isExternalModuleReference(node.moduleReference) ? node.moduleReference.expression : void 0; - case 274 /* NamespaceImport */: - return node.parent.parent.moduleSpecifier; - case 276 /* ImportSpecifier */: - return node.parent.parent.parent.moduleSpecifier; - case 281 /* ExportSpecifier */: - return node.parent.parent.moduleSpecifier; - default: - return Debug.assertNever(node); - } - } - function reportNonDefaultExport(moduleSymbol, node) { - var _a, _b, _c; - if ((_a = moduleSymbol.exports) == null ? void 0 : _a.has(node.symbol.escapedName)) { - error2(node.name, Diagnostics.Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead, symbolToString(moduleSymbol), symbolToString(node.symbol)); - } - else { - var diagnostic = error2(node.name, Diagnostics.Module_0_has_no_default_export, symbolToString(moduleSymbol)); - var exportStar = (_b = moduleSymbol.exports) == null ? void 0 : _b.get("__export" /* ExportStar */); - if (exportStar) { - var defaultExport = (_c = exportStar.declarations) == null ? void 0 : _c.find(function (decl) { - var _a2, _b2; - return !!(isExportDeclaration(decl) && decl.moduleSpecifier && ((_b2 = (_a2 = resolveExternalModuleName(decl, decl.moduleSpecifier)) == null ? void 0 : _a2.exports) == null ? void 0 : _b2.has("default" /* Default */))); - }); - if (defaultExport) { - addRelatedInfo(diagnostic, createDiagnosticForNode(defaultExport, Diagnostics.export_Asterisk_does_not_re_export_a_default)); - } - } - } - } - function getTargetOfNamespaceImport(node, dontResolveAlias) { - var moduleSpecifier = node.parent.parent.moduleSpecifier; - var immediate = resolveExternalModuleName(node, moduleSpecifier); - var resolved = resolveESModuleSymbol(immediate, moduleSpecifier, dontResolveAlias, - /*suppressInteropError*/ - false); - markSymbolOfAliasDeclarationIfTypeOnly(node, immediate, resolved, - /*overwriteEmpty*/ - false); - return resolved; - } - function getTargetOfNamespaceExport(node, dontResolveAlias) { - var moduleSpecifier = node.parent.moduleSpecifier; - var immediate = moduleSpecifier && resolveExternalModuleName(node, moduleSpecifier); - var resolved = moduleSpecifier && resolveESModuleSymbol(immediate, moduleSpecifier, dontResolveAlias, - /*suppressInteropError*/ - false); - markSymbolOfAliasDeclarationIfTypeOnly(node, immediate, resolved, - /*overwriteEmpty*/ - false); - return resolved; - } - function combineValueAndTypeSymbols(valueSymbol, typeSymbol) { - if (valueSymbol === unknownSymbol && typeSymbol === unknownSymbol) { - return unknownSymbol; - } - if (valueSymbol.flags & (788968 /* Type */ | 1920 /* Namespace */)) { - return valueSymbol; - } - var result = createSymbol(valueSymbol.flags | typeSymbol.flags, valueSymbol.escapedName); - Debug.assert(valueSymbol.declarations || typeSymbol.declarations); - result.declarations = deduplicate(concatenate(valueSymbol.declarations, typeSymbol.declarations), equateValues); - result.parent = valueSymbol.parent || typeSymbol.parent; - if (valueSymbol.valueDeclaration) - result.valueDeclaration = valueSymbol.valueDeclaration; - if (typeSymbol.members) - result.members = new Map(typeSymbol.members); - if (valueSymbol.exports) - result.exports = new Map(valueSymbol.exports); - return result; - } - function getExportOfModule(symbol, name, specifier, dontResolveAlias) { - var _a; - if (symbol.flags & 1536 /* Module */) { - var exportSymbol = getExportsOfSymbol(symbol).get(name.escapedText); - var resolved = resolveSymbol(exportSymbol, dontResolveAlias); - var exportStarDeclaration = (_a = getSymbolLinks(symbol).typeOnlyExportStarMap) == null ? void 0 : _a.get(name.escapedText); - markSymbolOfAliasDeclarationIfTypeOnly(specifier, exportSymbol, resolved, - /*overwriteEmpty*/ - false, exportStarDeclaration, name.escapedText); - return resolved; - } - } - function getPropertyOfVariable(symbol, name) { - if (symbol.flags & 3 /* Variable */) { - var typeAnnotation = symbol.valueDeclaration.type; - if (typeAnnotation) { - return resolveSymbol(getPropertyOfType(getTypeFromTypeNode(typeAnnotation), name)); - } - } - } - function getExternalModuleMember(node, specifier, dontResolveAlias) { - if (dontResolveAlias === void 0) { dontResolveAlias = false; } - var _a; - var moduleSpecifier = getExternalModuleRequireArgument(node) || node.moduleSpecifier; - var moduleSymbol = resolveExternalModuleName(node, moduleSpecifier); - var name = !isPropertyAccessExpression(specifier) && specifier.propertyName || specifier.name; - if (!isIdentifier(name)) { - return void 0; - } - var suppressInteropError = name.escapedText === "default" /* Default */ && allowSyntheticDefaultImports; - var targetSymbol = resolveESModuleSymbol(moduleSymbol, moduleSpecifier, - /*dontResolveAlias*/ - false, suppressInteropError); - if (targetSymbol) { - if (name.escapedText) { - if (isShorthandAmbientModuleSymbol(moduleSymbol)) { - return moduleSymbol; - } - var symbolFromVariable = void 0; - if (moduleSymbol && moduleSymbol.exports && moduleSymbol.exports.get("export=" /* ExportEquals */)) { - symbolFromVariable = getPropertyOfType(getTypeOfSymbol(targetSymbol), name.escapedText, - /*skipObjectFunctionPropertyAugment*/ - true); - } - else { - symbolFromVariable = getPropertyOfVariable(targetSymbol, name.escapedText); - } - symbolFromVariable = resolveSymbol(symbolFromVariable, dontResolveAlias); - var symbolFromModule = getExportOfModule(targetSymbol, name, specifier, dontResolveAlias); - if (symbolFromModule === void 0 && name.escapedText === "default" /* Default */) { - var file = (_a = moduleSymbol.declarations) == null ? void 0 : _a.find(isSourceFile); - if (isOnlyImportedAsDefault(moduleSpecifier) || canHaveSyntheticDefault(file, moduleSymbol, dontResolveAlias, moduleSpecifier)) { - symbolFromModule = resolveExternalModuleSymbol(moduleSymbol, dontResolveAlias) || resolveSymbol(moduleSymbol, dontResolveAlias); - } - } - var symbol = symbolFromModule && symbolFromVariable && symbolFromModule !== symbolFromVariable ? combineValueAndTypeSymbols(symbolFromVariable, symbolFromModule) : symbolFromModule || symbolFromVariable; - if (!symbol) { - errorNoModuleMemberSymbol(moduleSymbol, targetSymbol, node, name); - } - return symbol; - } - } - } - function errorNoModuleMemberSymbol(moduleSymbol, targetSymbol, node, name) { - var _a; - var moduleName = getFullyQualifiedName(moduleSymbol, node); - var declarationName = declarationNameToString(name); - var suggestion = getSuggestedSymbolForNonexistentModule(name, targetSymbol); - if (suggestion !== void 0) { - var suggestionName = symbolToString(suggestion); - var diagnostic = error2(name, Diagnostics._0_has_no_exported_member_named_1_Did_you_mean_2, moduleName, declarationName, suggestionName); - if (suggestion.valueDeclaration) { - addRelatedInfo(diagnostic, createDiagnosticForNode(suggestion.valueDeclaration, Diagnostics._0_is_declared_here, suggestionName)); - } - } - else { - if ((_a = moduleSymbol.exports) == null ? void 0 : _a.has("default" /* Default */)) { - error2(name, Diagnostics.Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead, moduleName, declarationName); - } - else { - reportNonExportedMember(node, name, declarationName, moduleSymbol, moduleName); - } - } - } - function reportNonExportedMember(node, name, declarationName, moduleSymbol, moduleName) { - var _a, _b; - var localSymbol = (_b = (_a = tryCast(moduleSymbol.valueDeclaration, canHaveLocals)) == null ? void 0 : _a.locals) == null ? void 0 : _b.get(name.escapedText); - var exports = moduleSymbol.exports; - if (localSymbol) { - var exportedEqualsSymbol = exports == null ? void 0 : exports.get("export=" /* ExportEquals */); - if (exportedEqualsSymbol) { - getSymbolIfSameReference(exportedEqualsSymbol, localSymbol) ? reportInvalidImportEqualsExportMember(node, name, declarationName, moduleName) : error2(name, Diagnostics.Module_0_has_no_exported_member_1, moduleName, declarationName); - } - else { - var exportedSymbol = exports ? find(symbolsToArray(exports), function (symbol) { return !!getSymbolIfSameReference(symbol, localSymbol); }) : void 0; - var diagnostic = exportedSymbol ? error2(name, Diagnostics.Module_0_declares_1_locally_but_it_is_exported_as_2, moduleName, declarationName, symbolToString(exportedSymbol)) : error2(name, Diagnostics.Module_0_declares_1_locally_but_it_is_not_exported, moduleName, declarationName); - if (localSymbol.declarations) { - addRelatedInfo.apply(void 0, __spreadArray([diagnostic], __read(map(localSymbol.declarations, function (decl, index) { return createDiagnosticForNode(decl, index === 0 ? Diagnostics._0_is_declared_here : Diagnostics.and_here, declarationName); })), false)); - } - } - } - else { - error2(name, Diagnostics.Module_0_has_no_exported_member_1, moduleName, declarationName); - } - } - function reportInvalidImportEqualsExportMember(node, name, declarationName, moduleName) { - if (moduleKind >= 5 /* ES2015 */) { - var message = getESModuleInterop(compilerOptions) ? Diagnostics._0_can_only_be_imported_by_using_a_default_import : Diagnostics._0_can_only_be_imported_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import; - error2(name, message, declarationName); - } - else { - if (isInJSFile(node)) { - var message = getESModuleInterop(compilerOptions) ? Diagnostics._0_can_only_be_imported_by_using_a_require_call_or_by_using_a_default_import : Diagnostics._0_can_only_be_imported_by_using_a_require_call_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import; - error2(name, message, declarationName); - } - else { - var message = getESModuleInterop(compilerOptions) ? Diagnostics._0_can_only_be_imported_by_using_import_1_require_2_or_a_default_import : Diagnostics._0_can_only_be_imported_by_using_import_1_require_2_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import; - error2(name, message, declarationName, declarationName, moduleName); - } - } - } - function getTargetOfImportSpecifier(node, dontResolveAlias) { - if (isImportSpecifier(node) && idText(node.propertyName || node.name) === "default" /* Default */) { - var specifier = getModuleSpecifierForImportOrExport(node); - var moduleSymbol = specifier && resolveExternalModuleName(node, specifier); - if (moduleSymbol) { - return getTargetofModuleDefault(moduleSymbol, node, dontResolveAlias); - } - } - var root = isBindingElement(node) ? getRootDeclaration(node) : node.parent.parent.parent; - var commonJSPropertyAccess = getCommonJSPropertyAccess(root); - var resolved = getExternalModuleMember(root, commonJSPropertyAccess || node, dontResolveAlias); - var name = node.propertyName || node.name; - if (commonJSPropertyAccess && resolved && isIdentifier(name)) { - return resolveSymbol(getPropertyOfType(getTypeOfSymbol(resolved), name.escapedText), dontResolveAlias); - } - markSymbolOfAliasDeclarationIfTypeOnly(node, - /*immediateTarget*/ - void 0, resolved, - /*overwriteEmpty*/ - false); - return resolved; - } - function getCommonJSPropertyAccess(node) { - if (isVariableDeclaration(node) && node.initializer && isPropertyAccessExpression(node.initializer)) { - return node.initializer; - } - } - function getTargetOfNamespaceExportDeclaration(node, dontResolveAlias) { - if (canHaveSymbol(node.parent)) { - var resolved = resolveExternalModuleSymbol(node.parent.symbol, dontResolveAlias); - markSymbolOfAliasDeclarationIfTypeOnly(node, - /*immediateTarget*/ - void 0, resolved, - /*overwriteEmpty*/ - false); - return resolved; - } - } - function getTargetOfExportSpecifier(node, meaning, dontResolveAlias) { - if (idText(node.propertyName || node.name) === "default" /* Default */) { - var specifier = getModuleSpecifierForImportOrExport(node); - var moduleSymbol = specifier && resolveExternalModuleName(node, specifier); - if (moduleSymbol) { - return getTargetofModuleDefault(moduleSymbol, node, !!dontResolveAlias); - } - } - var resolved = node.parent.parent.moduleSpecifier ? getExternalModuleMember(node.parent.parent, node, dontResolveAlias) : resolveEntityName(node.propertyName || node.name, meaning, - /*ignoreErrors*/ - false, dontResolveAlias); - markSymbolOfAliasDeclarationIfTypeOnly(node, - /*immediateTarget*/ - void 0, resolved, - /*overwriteEmpty*/ - false); - return resolved; - } - function getTargetOfExportAssignment(node, dontResolveAlias) { - var expression = isExportAssignment(node) ? node.expression : node.right; - var resolved = getTargetOfAliasLikeExpression(expression, dontResolveAlias); - markSymbolOfAliasDeclarationIfTypeOnly(node, - /*immediateTarget*/ - void 0, resolved, - /*overwriteEmpty*/ - false); - return resolved; - } - function getTargetOfAliasLikeExpression(expression, dontResolveAlias) { - if (isClassExpression(expression)) { - return checkExpressionCached(expression).symbol; - } - if (!isEntityName(expression) && !isEntityNameExpression(expression)) { - return void 0; - } - var aliasLike = resolveEntityName(expression, 111551 /* Value */ | 788968 /* Type */ | 1920 /* Namespace */, - /*ignoreErrors*/ - true, dontResolveAlias); - if (aliasLike) { - return aliasLike; - } - checkExpressionCached(expression); - return getNodeLinks(expression).resolvedSymbol; - } - function getTargetOfAccessExpression(node, dontRecursivelyResolve) { - if (!(isBinaryExpression(node.parent) && node.parent.left === node && node.parent.operatorToken.kind === 64 /* EqualsToken */)) { - return void 0; - } - return getTargetOfAliasLikeExpression(node.parent.right, dontRecursivelyResolve); - } - function getTargetOfAliasDeclaration(node, dontRecursivelyResolve) { - if (dontRecursivelyResolve === void 0) { dontRecursivelyResolve = false; } - switch (node.kind) { - case 271 /* ImportEqualsDeclaration */: - case 260 /* VariableDeclaration */: - return getTargetOfImportEqualsDeclaration(node, dontRecursivelyResolve); - case 273 /* ImportClause */: - return getTargetOfImportClause(node, dontRecursivelyResolve); - case 274 /* NamespaceImport */: - return getTargetOfNamespaceImport(node, dontRecursivelyResolve); - case 280 /* NamespaceExport */: - return getTargetOfNamespaceExport(node, dontRecursivelyResolve); - case 276 /* ImportSpecifier */: - case 208 /* BindingElement */: - return getTargetOfImportSpecifier(node, dontRecursivelyResolve); - case 281 /* ExportSpecifier */: - return getTargetOfExportSpecifier(node, 111551 /* Value */ | 788968 /* Type */ | 1920 /* Namespace */, dontRecursivelyResolve); - case 277 /* ExportAssignment */: - case 226 /* BinaryExpression */: - return getTargetOfExportAssignment(node, dontRecursivelyResolve); - case 270 /* NamespaceExportDeclaration */: - return getTargetOfNamespaceExportDeclaration(node, dontRecursivelyResolve); - case 304 /* ShorthandPropertyAssignment */: - return resolveEntityName(node.name, 111551 /* Value */ | 788968 /* Type */ | 1920 /* Namespace */, - /*ignoreErrors*/ - true, dontRecursivelyResolve); - case 303 /* PropertyAssignment */: - return getTargetOfAliasLikeExpression(node.initializer, dontRecursivelyResolve); - case 212 /* ElementAccessExpression */: - case 211 /* PropertyAccessExpression */: - return getTargetOfAccessExpression(node, dontRecursivelyResolve); - default: - return Debug.fail(); - } - } - function isNonLocalAlias(symbol, excludes /* Namespace */) { - if (excludes === void 0) { excludes = 111551 /* Value */ | 788968 /* Type */ | 1920; } - if (!symbol) - return false; - return (symbol.flags & (2097152 /* Alias */ | excludes)) === 2097152 /* Alias */ || !!(symbol.flags & 2097152 /* Alias */ && symbol.flags & 67108864 /* Assignment */); - } - function resolveSymbol(symbol, dontResolveAlias) { - return !dontResolveAlias && isNonLocalAlias(symbol) ? resolveAlias(symbol) : symbol; - } - function resolveAlias(symbol) { - Debug.assert((symbol.flags & 2097152 /* Alias */) !== 0, "Should only get Alias here."); - var links = getSymbolLinks(symbol); - if (!links.aliasTarget) { - links.aliasTarget = resolvingSymbol; - var node = getDeclarationOfAliasSymbol(symbol); - if (!node) - return Debug.fail(); - var target = getTargetOfAliasDeclaration(node); - if (links.aliasTarget === resolvingSymbol) { - links.aliasTarget = target || unknownSymbol; - } - else { - error2(node, Diagnostics.Circular_definition_of_import_alias_0, symbolToString(symbol)); - } - } - else if (links.aliasTarget === resolvingSymbol) { - links.aliasTarget = unknownSymbol; - } - return links.aliasTarget; - } - function tryResolveAlias(symbol) { - var links = getSymbolLinks(symbol); - if (links.aliasTarget !== resolvingSymbol) { - return resolveAlias(symbol); - } - return void 0; - } - function getSymbolFlags(symbol, excludeTypeOnlyMeanings, excludeLocalMeanings) { - var typeOnlyDeclaration = excludeTypeOnlyMeanings && getTypeOnlyAliasDeclaration(symbol); - var typeOnlyDeclarationIsExportStar = typeOnlyDeclaration && isExportDeclaration(typeOnlyDeclaration); - var typeOnlyResolution = typeOnlyDeclaration && (typeOnlyDeclarationIsExportStar ? resolveExternalModuleName(typeOnlyDeclaration.moduleSpecifier, typeOnlyDeclaration.moduleSpecifier, - /*ignoreErrors*/ - true) : resolveAlias(typeOnlyDeclaration.symbol)); - var typeOnlyExportStarTargets = typeOnlyDeclarationIsExportStar && typeOnlyResolution ? getExportsOfModule(typeOnlyResolution) : void 0; - var flags = excludeLocalMeanings ? 0 /* None */ : symbol.flags; - var seenSymbols; - while (symbol.flags & 2097152 /* Alias */) { - var target = getExportSymbolOfValueSymbolIfExported(resolveAlias(symbol)); - if (!typeOnlyDeclarationIsExportStar && target === typeOnlyResolution || (typeOnlyExportStarTargets == null ? void 0 : typeOnlyExportStarTargets.get(target.escapedName)) === target) { - break; - } - if (target === unknownSymbol) { - return 67108863 /* All */; - } - if (target === symbol || (seenSymbols == null ? void 0 : seenSymbols.has(target))) { - break; - } - if (target.flags & 2097152 /* Alias */) { - if (seenSymbols) { - seenSymbols.add(target); - } - else { - seenSymbols = /* @__PURE__ */ new Set([symbol, target]); - } - } - flags |= target.flags; - symbol = target; - } - return flags; - } - function markSymbolOfAliasDeclarationIfTypeOnly(aliasDeclaration, immediateTarget, finalTarget, overwriteEmpty, exportStarDeclaration, exportStarName) { - if (!aliasDeclaration || isPropertyAccessExpression(aliasDeclaration)) - return false; - var sourceSymbol = getSymbolOfDeclaration(aliasDeclaration); - if (isTypeOnlyImportOrExportDeclaration(aliasDeclaration)) { - var links2 = getSymbolLinks(sourceSymbol); - links2.typeOnlyDeclaration = aliasDeclaration; - return true; - } - if (exportStarDeclaration) { - var links2 = getSymbolLinks(sourceSymbol); - links2.typeOnlyDeclaration = exportStarDeclaration; - if (sourceSymbol.escapedName !== exportStarName) { - links2.typeOnlyExportStarName = exportStarName; - } - return true; - } - var links = getSymbolLinks(sourceSymbol); - return markSymbolOfAliasDeclarationIfTypeOnlyWorker(links, immediateTarget, overwriteEmpty) || markSymbolOfAliasDeclarationIfTypeOnlyWorker(links, finalTarget, overwriteEmpty); - } - function markSymbolOfAliasDeclarationIfTypeOnlyWorker(aliasDeclarationLinks, target, overwriteEmpty) { - var _t, _u; - var _a; - if (target && (aliasDeclarationLinks.typeOnlyDeclaration === void 0 || overwriteEmpty && aliasDeclarationLinks.typeOnlyDeclaration === false)) { - var exportSymbol = (_t = ((_a = target.exports) == null ? void 0 : _a.get("export=" /* ExportEquals */))) !== null && _t !== void 0 ? _t : target; - var typeOnly = exportSymbol.declarations && find(exportSymbol.declarations, isTypeOnlyImportOrExportDeclaration); - aliasDeclarationLinks.typeOnlyDeclaration = (_u = typeOnly !== null && typeOnly !== void 0 ? typeOnly : getSymbolLinks(exportSymbol).typeOnlyDeclaration) !== null && _u !== void 0 ? _u : false; - } - return !!aliasDeclarationLinks.typeOnlyDeclaration; - } - function getTypeOnlyAliasDeclaration(symbol, include) { - if (!(symbol.flags & 2097152 /* Alias */)) { - return void 0; - } - var links = getSymbolLinks(symbol); - if (include === void 0) { - return links.typeOnlyDeclaration || void 0; - } - if (links.typeOnlyDeclaration) { - var resolved = links.typeOnlyDeclaration.kind === 278 /* ExportDeclaration */ ? resolveSymbol(getExportsOfModule(links.typeOnlyDeclaration.symbol.parent).get(links.typeOnlyExportStarName || symbol.escapedName)) : resolveAlias(links.typeOnlyDeclaration.symbol); - return getSymbolFlags(resolved) & include ? links.typeOnlyDeclaration : void 0; - } - return void 0; - } - function markExportAsReferenced(node) { - if (!canCollectSymbolAliasAccessabilityData) { - return; - } - var symbol = getSymbolOfDeclaration(node); - var target = resolveAlias(symbol); - if (target) { - var markAlias = target === unknownSymbol || getSymbolFlags(symbol, - /*excludeTypeOnlyMeanings*/ - true) & 111551 /* Value */ && !isConstEnumOrConstEnumOnlyModule(target); - if (markAlias) { - markAliasSymbolAsReferenced(symbol); - } - } - } - function markAliasSymbolAsReferenced(symbol) { - Debug.assert(canCollectSymbolAliasAccessabilityData); - var links = getSymbolLinks(symbol); - if (!links.referenced) { - links.referenced = true; - var node = getDeclarationOfAliasSymbol(symbol); - if (!node) - return Debug.fail(); - if (isInternalModuleImportEqualsDeclaration(node)) { - if (getSymbolFlags(resolveSymbol(symbol)) & 111551 /* Value */) { - checkExpressionCached(node.moduleReference); - } - } - } - } - function markConstEnumAliasAsReferenced(symbol) { - var links = getSymbolLinks(symbol); - if (!links.constEnumReferenced) { - links.constEnumReferenced = true; - } - } - function getSymbolOfPartOfRightHandSideOfImportEquals(entityName, dontResolveAlias) { - if (entityName.kind === 80 /* Identifier */ && isRightSideOfQualifiedNameOrPropertyAccess(entityName)) { - entityName = entityName.parent; - } - if (entityName.kind === 80 /* Identifier */ || entityName.parent.kind === 166 /* QualifiedName */) { - return resolveEntityName(entityName, 1920 /* Namespace */, - /*ignoreErrors*/ - false, dontResolveAlias); - } - else { - Debug.assert(entityName.parent.kind === 271 /* ImportEqualsDeclaration */); - return resolveEntityName(entityName, 111551 /* Value */ | 788968 /* Type */ | 1920 /* Namespace */, - /*ignoreErrors*/ - false, dontResolveAlias); - } - } - function getFullyQualifiedName(symbol, containingLocation) { - return symbol.parent ? getFullyQualifiedName(symbol.parent, containingLocation) + "." + symbolToString(symbol) : symbolToString(symbol, containingLocation, - /*meaning*/ - void 0, 32 /* DoNotIncludeSymbolChain */ | 4 /* AllowAnyNodeKind */); - } - function getContainingQualifiedNameNode(node) { - while (isQualifiedName(node.parent)) { - node = node.parent; - } - return node; - } - function tryGetQualifiedNameAsValue(node) { - var left = getFirstIdentifier(node); - var symbol = resolveName(left, left.escapedText, 111551 /* Value */, - /*nameNotFoundMessage*/ - void 0, left, - /*isUse*/ - true); - if (!symbol) { - return void 0; - } - while (isQualifiedName(left.parent)) { - var type = getTypeOfSymbol(symbol); - symbol = getPropertyOfType(type, left.parent.right.escapedText); - if (!symbol) { - return void 0; - } - left = left.parent; - } - return symbol; - } - function resolveEntityName(name, meaning, ignoreErrors, dontResolveAlias, location) { - if (nodeIsMissing(name)) { - return void 0; - } - var namespaceMeaning = 1920 /* Namespace */ | (isInJSFile(name) ? meaning & 111551 /* Value */ : 0); - var symbol; - if (name.kind === 80 /* Identifier */) { - var message = meaning === namespaceMeaning || nodeIsSynthesized(name) ? Diagnostics.Cannot_find_namespace_0 : getCannotFindNameDiagnosticForName(getFirstIdentifier(name)); - var symbolFromJSPrototype = isInJSFile(name) && !nodeIsSynthesized(name) ? resolveEntityNameFromAssignmentDeclaration(name, meaning) : void 0; - symbol = getMergedSymbol(resolveName(location || name, name.escapedText, meaning, ignoreErrors || symbolFromJSPrototype ? void 0 : message, name, - /*isUse*/ - true, - /*excludeGlobals*/ - false)); - if (!symbol) { - return getMergedSymbol(symbolFromJSPrototype); - } - } - else if (name.kind === 166 /* QualifiedName */ || name.kind === 211 /* PropertyAccessExpression */) { - var left = name.kind === 166 /* QualifiedName */ ? name.left : name.expression; - var right = name.kind === 166 /* QualifiedName */ ? name.right : name.name; - var namespace = resolveEntityName(left, namespaceMeaning, ignoreErrors, - /*dontResolveAlias*/ - false, location); - if (!namespace || nodeIsMissing(right)) { - return void 0; - } - else if (namespace === unknownSymbol) { - return namespace; - } - if (namespace.valueDeclaration && isInJSFile(namespace.valueDeclaration) && getEmitModuleResolutionKind(compilerOptions) !== 100 /* Bundler */ && isVariableDeclaration(namespace.valueDeclaration) && namespace.valueDeclaration.initializer && isCommonJsRequire(namespace.valueDeclaration.initializer)) { - var moduleName = namespace.valueDeclaration.initializer.arguments[0]; - var moduleSym = resolveExternalModuleName(moduleName, moduleName); - if (moduleSym) { - var resolvedModuleSymbol = resolveExternalModuleSymbol(moduleSym); - if (resolvedModuleSymbol) { - namespace = resolvedModuleSymbol; - } - } - } - symbol = getMergedSymbol(getSymbol2(getExportsOfSymbol(namespace), right.escapedText, meaning)); - if (!symbol && namespace.flags & 2097152 /* Alias */) { - symbol = getMergedSymbol(getSymbol2(getExportsOfSymbol(resolveAlias(namespace)), right.escapedText, meaning)); - } - if (!symbol) { - if (!ignoreErrors) { - var namespaceName = getFullyQualifiedName(namespace); - var declarationName = declarationNameToString(right); - var suggestionForNonexistentModule = getSuggestedSymbolForNonexistentModule(right, namespace); - if (suggestionForNonexistentModule) { - error2(right, Diagnostics._0_has_no_exported_member_named_1_Did_you_mean_2, namespaceName, declarationName, symbolToString(suggestionForNonexistentModule)); - return void 0; - } - var containingQualifiedName = isQualifiedName(name) && getContainingQualifiedNameNode(name); - var canSuggestTypeof = globalObjectType && meaning & 788968 /* Type */ && containingQualifiedName && !isTypeOfExpression(containingQualifiedName.parent) && tryGetQualifiedNameAsValue(containingQualifiedName); - if (canSuggestTypeof) { - error2(containingQualifiedName, Diagnostics._0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0, entityNameToString(containingQualifiedName)); - return void 0; - } - if (meaning & 1920 /* Namespace */ && isQualifiedName(name.parent)) { - var exportedTypeSymbol = getMergedSymbol(getSymbol2(getExportsOfSymbol(namespace), right.escapedText, 788968 /* Type */)); - if (exportedTypeSymbol) { - error2(name.parent.right, Diagnostics.Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_property_1_in_0_with_0_1, symbolToString(exportedTypeSymbol), unescapeLeadingUnderscores(name.parent.right.escapedText)); - return void 0; - } - } - error2(right, Diagnostics.Namespace_0_has_no_exported_member_1, namespaceName, declarationName); - } - return void 0; - } - } - else { - Debug.assertNever(name, "Unknown entity name kind."); - } - Debug.assert((getCheckFlags(symbol) & 1 /* Instantiated */) === 0, "Should never get an instantiated symbol here."); - if (!nodeIsSynthesized(name) && isEntityName(name) && (symbol.flags & 2097152 /* Alias */ || name.parent.kind === 277 /* ExportAssignment */)) { - markSymbolOfAliasDeclarationIfTypeOnly(getAliasDeclarationFromName(name), symbol, - /*finalTarget*/ - void 0, - /*overwriteEmpty*/ - true); - } - return symbol.flags & meaning || dontResolveAlias ? symbol : resolveAlias(symbol); - } - function resolveEntityNameFromAssignmentDeclaration(name, meaning) { - if (isJSDocTypeReference(name.parent)) { - var secondaryLocation = getAssignmentDeclarationLocation(name.parent); - if (secondaryLocation) { - return resolveName(secondaryLocation, name.escapedText, meaning, - /*nameNotFoundMessage*/ - void 0, name, - /*isUse*/ - true); - } - } - } - function getAssignmentDeclarationLocation(node) { - var typeAlias = findAncestor(node, function (node2) { return !(isJSDocNode(node2) || node2.flags & 16777216 /* JSDoc */) ? "quit" : isJSDocTypeAlias(node2); }); - if (typeAlias) { - return; - } - var host2 = getJSDocHost(node); - if (host2 && isExpressionStatement(host2) && isPrototypePropertyAssignment(host2.expression)) { - var symbol = getSymbolOfDeclaration(host2.expression.left); - if (symbol) { - return getDeclarationOfJSPrototypeContainer(symbol); - } - } - if (host2 && isFunctionExpression(host2) && isPrototypePropertyAssignment(host2.parent) && isExpressionStatement(host2.parent.parent)) { - var symbol = getSymbolOfDeclaration(host2.parent.left); - if (symbol) { - return getDeclarationOfJSPrototypeContainer(symbol); - } - } - if (host2 && (isObjectLiteralMethod(host2) || isPropertyAssignment(host2)) && isBinaryExpression(host2.parent.parent) && getAssignmentDeclarationKind(host2.parent.parent) === 6 /* Prototype */) { - var symbol = getSymbolOfDeclaration(host2.parent.parent.left); - if (symbol) { - return getDeclarationOfJSPrototypeContainer(symbol); - } - } - var sig = getEffectiveJSDocHost(node); - if (sig && isFunctionLike(sig)) { - var symbol = getSymbolOfDeclaration(sig); - return symbol && symbol.valueDeclaration; - } - } - function getDeclarationOfJSPrototypeContainer(symbol) { - var decl = symbol.parent.valueDeclaration; - if (!decl) { - return void 0; - } - var initializer = isAssignmentDeclaration(decl) ? getAssignedExpandoInitializer(decl) : hasOnlyExpressionInitializer(decl) ? getDeclaredExpandoInitializer(decl) : void 0; - return initializer || decl; - } - function getExpandoSymbol(symbol) { - var decl = symbol.valueDeclaration; - if (!decl || !isInJSFile(decl) || symbol.flags & 524288 /* TypeAlias */ || getExpandoInitializer(decl, - /*isPrototypeAssignment*/ - false)) { - return void 0; - } - var init = isVariableDeclaration(decl) ? getDeclaredExpandoInitializer(decl) : getAssignedExpandoInitializer(decl); - if (init) { - var initSymbol = getSymbolOfNode(init); - if (initSymbol) { - return mergeJSSymbols(initSymbol, symbol); - } - } - } - function resolveExternalModuleName(location, moduleReferenceExpression, ignoreErrors) { - var isClassic = getEmitModuleResolutionKind(compilerOptions) === 1 /* Classic */; - var errorMessage = isClassic ? Diagnostics.Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_nodenext_or_to_add_aliases_to_the_paths_option : Diagnostics.Cannot_find_module_0_or_its_corresponding_type_declarations; - return resolveExternalModuleNameWorker(location, moduleReferenceExpression, ignoreErrors ? void 0 : errorMessage); - } - function resolveExternalModuleNameWorker(location, moduleReferenceExpression, moduleNotFoundError, isForAugmentation) { - if (isForAugmentation === void 0) { isForAugmentation = false; } - return isStringLiteralLike(moduleReferenceExpression) ? resolveExternalModule(location, moduleReferenceExpression.text, moduleNotFoundError, moduleReferenceExpression, isForAugmentation) : void 0; - } - function resolveExternalModule(location, moduleReference, moduleNotFoundError, errorNode, isForAugmentation) { - if (isForAugmentation === void 0) { isForAugmentation = false; } - var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j; - if (startsWith(moduleReference, "@types/")) { - var diag2 = Diagnostics.Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1; - var withoutAtTypePrefix = removePrefix(moduleReference, "@types/"); - error2(errorNode, diag2, withoutAtTypePrefix, moduleReference); - } - var ambientModule = tryFindAmbientModule(moduleReference, - /*withAugmentations*/ - true); - if (ambientModule) { - return ambientModule; - } - var currentSourceFile = getSourceFileOfNode(location); - var contextSpecifier = isStringLiteralLike(location) ? location : ((_a = findAncestor(location, isImportCall)) == null ? void 0 : _a.arguments[0]) || ((_b = findAncestor(location, isImportDeclaration)) == null ? void 0 : _b.moduleSpecifier) || ((_c = findAncestor(location, isExternalModuleImportEqualsDeclaration)) == null ? void 0 : _c.moduleReference.expression) || ((_d = findAncestor(location, isExportDeclaration)) == null ? void 0 : _d.moduleSpecifier) || ((_e = isModuleDeclaration(location) ? location : location.parent && isModuleDeclaration(location.parent) && location.parent.name === location ? location.parent : void 0) == null ? void 0 : _e.name) || ((_f = isLiteralImportTypeNode(location) ? location : void 0) == null ? void 0 : _f.argument.literal); - var mode = contextSpecifier && isStringLiteralLike(contextSpecifier) ? getModeForUsageLocation(currentSourceFile, contextSpecifier) : currentSourceFile.impliedNodeFormat; - var moduleResolutionKind = getEmitModuleResolutionKind(compilerOptions); - var resolvedModule = getResolvedModule(currentSourceFile, moduleReference, mode); - var resolutionDiagnostic = resolvedModule && getResolutionDiagnostic(compilerOptions, resolvedModule, currentSourceFile); - var sourceFile = resolvedModule && (!resolutionDiagnostic || resolutionDiagnostic === Diagnostics.Module_0_was_resolved_to_1_but_jsx_is_not_set) && host.getSourceFile(resolvedModule.resolvedFileName); - if (sourceFile) { - if (resolutionDiagnostic) { - error2(errorNode, resolutionDiagnostic, moduleReference, resolvedModule.resolvedFileName); - } - if (resolvedModule.resolvedUsingTsExtension && isDeclarationFileName(moduleReference)) { - var importOrExport = ((_g = findAncestor(location, isImportDeclaration)) == null ? void 0 : _g.importClause) || findAncestor(location, or(isImportEqualsDeclaration, isExportDeclaration)); - if (importOrExport && !importOrExport.isTypeOnly || findAncestor(location, isImportCall)) { - error2(errorNode, Diagnostics.A_declaration_file_cannot_be_imported_without_import_type_Did_you_mean_to_import_an_implementation_file_0_instead, getSuggestedImportSource(Debug.checkDefined(tryExtractTSExtension(moduleReference)))); - } - } - else if (resolvedModule.resolvedUsingTsExtension && !shouldAllowImportingTsExtension(compilerOptions, currentSourceFile.fileName)) { - var importOrExport = ((_h = findAncestor(location, isImportDeclaration)) == null ? void 0 : _h.importClause) || findAncestor(location, or(isImportEqualsDeclaration, isExportDeclaration)); - if (!((importOrExport == null ? void 0 : importOrExport.isTypeOnly) || findAncestor(location, isImportTypeNode))) { - var tsExtension = Debug.checkDefined(tryExtractTSExtension(moduleReference)); - error2(errorNode, Diagnostics.An_import_path_can_only_end_with_a_0_extension_when_allowImportingTsExtensions_is_enabled, tsExtension); - } - } - if (sourceFile.symbol) { - if (resolvedModule.isExternalLibraryImport && !resolutionExtensionIsTSOrJson(resolvedModule.extension)) { - errorOnImplicitAnyModule( - /*isError*/ - false, errorNode, currentSourceFile, mode, resolvedModule, moduleReference); - } - if (moduleResolutionKind === 3 /* Node16 */ || moduleResolutionKind === 99 /* NodeNext */) { - var isSyncImport = currentSourceFile.impliedNodeFormat === 1 /* CommonJS */ && !findAncestor(location, isImportCall) || !!findAncestor(location, isImportEqualsDeclaration); - var overrideClauseHost = findAncestor(location, function (l) { return isImportTypeNode(l) || isExportDeclaration(l) || isImportDeclaration(l); }); - var overrideClause = overrideClauseHost && isImportTypeNode(overrideClauseHost) ? (_i = overrideClauseHost.assertions) == null ? void 0 : _i.assertClause : overrideClauseHost == null ? void 0 : overrideClauseHost.assertClause; - if (isSyncImport && sourceFile.impliedNodeFormat === 99 /* ESNext */ && !getResolutionModeOverrideForClause(overrideClause)) { - if (findAncestor(location, isImportEqualsDeclaration)) { - error2(errorNode, Diagnostics.Module_0_cannot_be_imported_using_this_construct_The_specifier_only_resolves_to_an_ES_module_which_cannot_be_imported_with_require_Use_an_ECMAScript_import_instead, moduleReference); - } - else { - var diagnosticDetails = void 0; - var ext = tryGetExtensionFromPath2(currentSourceFile.fileName); - if (ext === ".ts" /* Ts */ || ext === ".js" /* Js */ || ext === ".tsx" /* Tsx */ || ext === ".jsx" /* Jsx */) { - var scope = currentSourceFile.packageJsonScope; - var targetExt = ext === ".ts" /* Ts */ ? ".mts" /* Mts */ : ext === ".js" /* Js */ ? ".mjs" /* Mjs */ : void 0; - if (scope && !scope.contents.packageJsonContent.type) { - if (targetExt) { - diagnosticDetails = chainDiagnosticMessages( - /*details*/ - void 0, Diagnostics.To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_add_the_field_type_Colon_module_to_1, targetExt, combinePaths(scope.packageDirectory, "package.json")); - } - else { - diagnosticDetails = chainDiagnosticMessages( - /*details*/ - void 0, Diagnostics.To_convert_this_file_to_an_ECMAScript_module_add_the_field_type_Colon_module_to_0, combinePaths(scope.packageDirectory, "package.json")); - } - } - else { - if (targetExt) { - diagnosticDetails = chainDiagnosticMessages( - /*details*/ - void 0, Diagnostics.To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_create_a_local_package_json_file_with_type_Colon_module, targetExt); - } - else { - diagnosticDetails = chainDiagnosticMessages( - /*details*/ - void 0, Diagnostics.To_convert_this_file_to_an_ECMAScript_module_create_a_local_package_json_file_with_type_Colon_module); - } - } - } - diagnostics.add(createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(errorNode), errorNode, chainDiagnosticMessages(diagnosticDetails, Diagnostics.The_current_file_is_a_CommonJS_module_whose_imports_will_produce_require_calls_however_the_referenced_file_is_an_ECMAScript_module_and_cannot_be_imported_with_require_Consider_writing_a_dynamic_import_0_call_instead, moduleReference))); - } - } - } - return getMergedSymbol(sourceFile.symbol); - } - if (moduleNotFoundError) { - error2(errorNode, Diagnostics.File_0_is_not_a_module, sourceFile.fileName); - } - return void 0; - } - if (patternAmbientModules) { - var pattern = findBestPatternMatch(patternAmbientModules, function (_) { return _.pattern; }, moduleReference); - if (pattern) { - var augmentation = patternAmbientModuleAugmentations && patternAmbientModuleAugmentations.get(moduleReference); - if (augmentation) { - return getMergedSymbol(augmentation); - } - return getMergedSymbol(pattern.symbol); - } - } - if (resolvedModule && !resolutionExtensionIsTSOrJson(resolvedModule.extension) && resolutionDiagnostic === void 0 || resolutionDiagnostic === Diagnostics.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type) { - if (isForAugmentation) { - var diag2 = Diagnostics.Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augmented; - error2(errorNode, diag2, moduleReference, resolvedModule.resolvedFileName); - } - else { - errorOnImplicitAnyModule( - /*isError*/ - noImplicitAny && !!moduleNotFoundError, errorNode, currentSourceFile, mode, resolvedModule, moduleReference); - } - return void 0; - } - if (moduleNotFoundError) { - if (resolvedModule) { - var redirect = host.getProjectReferenceRedirect(resolvedModule.resolvedFileName); - if (redirect) { - error2(errorNode, Diagnostics.Output_file_0_has_not_been_built_from_source_file_1, redirect, resolvedModule.resolvedFileName); - return void 0; - } - } - if (resolutionDiagnostic) { - error2(errorNode, resolutionDiagnostic, moduleReference, resolvedModule.resolvedFileName); - } - else { - var isExtensionlessRelativePathImport = pathIsRelative(moduleReference) && !hasExtension(moduleReference); - var resolutionIsNode16OrNext = moduleResolutionKind === 3 /* Node16 */ || moduleResolutionKind === 99 /* NodeNext */; - if (!getResolveJsonModule(compilerOptions) && fileExtensionIs(moduleReference, ".json" /* Json */) && moduleResolutionKind !== 1 /* Classic */ && hasJsonModuleEmitEnabled(compilerOptions)) { - error2(errorNode, Diagnostics.Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension, moduleReference); - } - else if (mode === 99 /* ESNext */ && resolutionIsNode16OrNext && isExtensionlessRelativePathImport) { - var absoluteRef_1 = getNormalizedAbsolutePath(moduleReference, getDirectoryPath(currentSourceFile.path)); - var suggestedExt = (_j = suggestedExtensions.find(function (_t) { - var _u = __read(_t, 2), actualExt = _u[0], _importExt = _u[1]; - return host.fileExists(absoluteRef_1 + actualExt); - })) == null ? void 0 : _j[1]; - if (suggestedExt) { - error2(errorNode, Diagnostics.Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_node16_or_nodenext_Did_you_mean_0, moduleReference + suggestedExt); - } - else { - error2(errorNode, Diagnostics.Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_node16_or_nodenext_Consider_adding_an_extension_to_the_import_path); - } - } - else { - error2(errorNode, moduleNotFoundError, moduleReference); - } - } - } - return void 0; - function getSuggestedImportSource(tsExtension) { - var importSourceWithoutExtension = removeExtension(moduleReference, tsExtension); - if (emitModuleKindIsNonNodeESM(moduleKind) || mode === 99 /* ESNext */) { - var preferTs = isDeclarationFileName(moduleReference) && shouldAllowImportingTsExtension(compilerOptions); - var ext = tsExtension === ".mts" /* Mts */ || tsExtension === ".d.mts" /* Dmts */ ? preferTs ? ".mts" : ".mjs" : tsExtension === ".cts" /* Cts */ || tsExtension === ".d.mts" /* Dmts */ ? preferTs ? ".cts" : ".cjs" : preferTs ? ".ts" : ".js"; - return importSourceWithoutExtension + ext; - } - return importSourceWithoutExtension; - } - } - function errorOnImplicitAnyModule(isError, errorNode, sourceFile, mode, _t, moduleReference) { - var packageId = _t.packageId, resolvedFileName = _t.resolvedFileName; - var errorInfo; - if (!isExternalModuleNameRelative(moduleReference) && packageId) { - errorInfo = createModuleNotFoundChain(sourceFile, host, moduleReference, mode, packageId.name); - } - errorOrSuggestion(isError, errorNode, chainDiagnosticMessages(errorInfo, Diagnostics.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type, moduleReference, resolvedFileName)); - } - function resolveExternalModuleSymbol(moduleSymbol, dontResolveAlias) { - if (moduleSymbol == null ? void 0 : moduleSymbol.exports) { - var exportEquals = resolveSymbol(moduleSymbol.exports.get("export=" /* ExportEquals */), dontResolveAlias); - var exported = getCommonJsExportEquals(getMergedSymbol(exportEquals), getMergedSymbol(moduleSymbol)); - return getMergedSymbol(exported) || moduleSymbol; - } - return void 0; - } - function getCommonJsExportEquals(exported, moduleSymbol) { - if (!exported || exported === unknownSymbol || exported === moduleSymbol || moduleSymbol.exports.size === 1 || exported.flags & 2097152 /* Alias */) { - return exported; - } - var links = getSymbolLinks(exported); - if (links.cjsExportMerged) { - return links.cjsExportMerged; - } - var merged = exported.flags & 33554432 /* Transient */ ? exported : cloneSymbol(exported); - merged.flags = merged.flags | 512 /* ValueModule */; - if (merged.exports === void 0) { - merged.exports = createSymbolTable(); - } - moduleSymbol.exports.forEach(function (s, name) { - if (name === "export=" /* ExportEquals */) - return; - merged.exports.set(name, merged.exports.has(name) ? mergeSymbol(merged.exports.get(name), s) : s); - }); - if (merged === exported) { - getSymbolLinks(merged).resolvedExports = void 0; - getSymbolLinks(merged).resolvedMembers = void 0; - } - getSymbolLinks(merged).cjsExportMerged = merged; - return links.cjsExportMerged = merged; - } - function resolveESModuleSymbol(moduleSymbol, referencingLocation, dontResolveAlias, suppressInteropError) { - var _a; - var symbol = resolveExternalModuleSymbol(moduleSymbol, dontResolveAlias); - if (!dontResolveAlias && symbol) { - if (!suppressInteropError && !(symbol.flags & (1536 /* Module */ | 3 /* Variable */)) && !getDeclarationOfKind(symbol, 312 /* SourceFile */)) { - var compilerOptionName = moduleKind >= 5 /* ES2015 */ ? "allowSyntheticDefaultImports" : "esModuleInterop"; - error2(referencingLocation, Diagnostics.This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_referencing_its_default_export, compilerOptionName); - return symbol; - } - var referenceParent = referencingLocation.parent; - if (isImportDeclaration(referenceParent) && getNamespaceDeclarationNode(referenceParent) || isImportCall(referenceParent)) { - var reference = isImportCall(referenceParent) ? referenceParent.arguments[0] : referenceParent.moduleSpecifier; - var type = getTypeOfSymbol(symbol); - var defaultOnlyType = getTypeWithSyntheticDefaultOnly(type, symbol, moduleSymbol, reference); - if (defaultOnlyType) { - return cloneTypeAsModuleType(symbol, defaultOnlyType, referenceParent); - } - var targetFile = (_a = moduleSymbol == null ? void 0 : moduleSymbol.declarations) == null ? void 0 : _a.find(isSourceFile); - var isEsmCjsRef = targetFile && isESMFormatImportImportingCommonjsFormatFile(getUsageModeForExpression(reference), targetFile.impliedNodeFormat); - if (getESModuleInterop(compilerOptions) || isEsmCjsRef) { - var sigs = getSignaturesOfStructuredType(type, 0 /* Call */); - if (!sigs || !sigs.length) { - sigs = getSignaturesOfStructuredType(type, 1 /* Construct */); - } - if (sigs && sigs.length || getPropertyOfType(type, "default" /* Default */, - /*skipObjectFunctionPropertyAugment*/ - true) || isEsmCjsRef) { - var moduleType = type.flags & 3670016 /* StructuredType */ ? getTypeWithSyntheticDefaultImportType(type, symbol, moduleSymbol, reference) : createDefaultPropertyWrapperForModule(symbol, symbol.parent); - return cloneTypeAsModuleType(symbol, moduleType, referenceParent); - } - } - } - } - return symbol; - } - function cloneTypeAsModuleType(symbol, moduleType, referenceParent) { - var result = createSymbol(symbol.flags, symbol.escapedName); - result.declarations = symbol.declarations ? symbol.declarations.slice() : []; - result.parent = symbol.parent; - result.links.target = symbol; - result.links.originatingImport = referenceParent; - if (symbol.valueDeclaration) - result.valueDeclaration = symbol.valueDeclaration; - if (symbol.constEnumOnlyModule) - result.constEnumOnlyModule = true; - if (symbol.members) - result.members = new Map(symbol.members); - if (symbol.exports) - result.exports = new Map(symbol.exports); - var resolvedModuleType = resolveStructuredTypeMembers(moduleType); - result.links.type = createAnonymousType(result, resolvedModuleType.members, emptyArray, emptyArray, resolvedModuleType.indexInfos); - return result; - } - function hasExportAssignmentSymbol(moduleSymbol) { - return moduleSymbol.exports.get("export=" /* ExportEquals */) !== void 0; - } - function getExportsOfModuleAsArray(moduleSymbol) { - return symbolsToArray(getExportsOfModule(moduleSymbol)); - } - function getExportsAndPropertiesOfModule(moduleSymbol) { - var exports = getExportsOfModuleAsArray(moduleSymbol); - var exportEquals = resolveExternalModuleSymbol(moduleSymbol); - if (exportEquals !== moduleSymbol) { - var type = getTypeOfSymbol(exportEquals); - if (shouldTreatPropertiesOfExternalModuleAsExports(type)) { - addRange(exports, getPropertiesOfType(type)); - } - } - return exports; - } - function forEachExportAndPropertyOfModule(moduleSymbol, cb) { - var exports = getExportsOfModule(moduleSymbol); - exports.forEach(function (symbol, key) { - if (!isReservedMemberName(key)) { - cb(symbol, key); - } - }); - var exportEquals = resolveExternalModuleSymbol(moduleSymbol); - if (exportEquals !== moduleSymbol) { - var type = getTypeOfSymbol(exportEquals); - if (shouldTreatPropertiesOfExternalModuleAsExports(type)) { - forEachPropertyOfType(type, function (symbol, escapedName) { - cb(symbol, escapedName); - }); - } - } - } - function tryGetMemberInModuleExports(memberName, moduleSymbol) { - var symbolTable = getExportsOfModule(moduleSymbol); - if (symbolTable) { - return symbolTable.get(memberName); - } - } - function tryGetMemberInModuleExportsAndProperties(memberName, moduleSymbol) { - var symbol = tryGetMemberInModuleExports(memberName, moduleSymbol); - if (symbol) { - return symbol; - } - var exportEquals = resolveExternalModuleSymbol(moduleSymbol); - if (exportEquals === moduleSymbol) { - return void 0; - } - var type = getTypeOfSymbol(exportEquals); - return shouldTreatPropertiesOfExternalModuleAsExports(type) ? getPropertyOfType(type, memberName) : void 0; - } - function shouldTreatPropertiesOfExternalModuleAsExports(resolvedExternalModuleType) { - return !(resolvedExternalModuleType.flags & 402784252 /* Primitive */ || getObjectFlags(resolvedExternalModuleType) & 1 /* Class */ || // `isArrayOrTupleLikeType` is too expensive to use in this auto-imports hot path - isArrayType(resolvedExternalModuleType) || isTupleType(resolvedExternalModuleType)); - } - function getExportsOfSymbol(symbol) { - return symbol.flags & 6256 /* LateBindingContainer */ ? getResolvedMembersOrExportsOfSymbol(symbol, "resolvedExports" /* resolvedExports */) : symbol.flags & 1536 /* Module */ ? getExportsOfModule(symbol) : symbol.exports || emptySymbols; - } - function getExportsOfModule(moduleSymbol) { - var links = getSymbolLinks(moduleSymbol); - if (!links.resolvedExports) { - var _t = getExportsOfModuleWorker(moduleSymbol), exports_2 = _t.exports, typeOnlyExportStarMap = _t.typeOnlyExportStarMap; - links.resolvedExports = exports_2; - links.typeOnlyExportStarMap = typeOnlyExportStarMap; - } - return links.resolvedExports; - } - function extendExportSymbols(target, source, lookupTable, exportNode) { - if (!source) - return; - source.forEach(function (sourceSymbol, id) { - if (id === "default" /* Default */) - return; - var targetSymbol = target.get(id); - if (!targetSymbol) { - target.set(id, sourceSymbol); - if (lookupTable && exportNode) { - lookupTable.set(id, { - specifierText: getTextOfNode(exportNode.moduleSpecifier) - }); - } - } - else if (lookupTable && exportNode && targetSymbol && resolveSymbol(targetSymbol) !== resolveSymbol(sourceSymbol)) { - var collisionTracker = lookupTable.get(id); - if (!collisionTracker.exportsWithDuplicate) { - collisionTracker.exportsWithDuplicate = [exportNode]; - } - else { - collisionTracker.exportsWithDuplicate.push(exportNode); - } - } - }); - } - function getExportsOfModuleWorker(moduleSymbol) { - var visitedSymbols = []; - var typeOnlyExportStarMap; - var nonTypeOnlyNames = /* @__PURE__ */ new Set(); - moduleSymbol = resolveExternalModuleSymbol(moduleSymbol); - var exports = visit(moduleSymbol) || emptySymbols; - if (typeOnlyExportStarMap) { - nonTypeOnlyNames.forEach(function (name) { return typeOnlyExportStarMap.delete(name); }); - } - return { - exports: exports, - typeOnlyExportStarMap: typeOnlyExportStarMap - }; - function visit(symbol, exportStar, isTypeOnly) { - var e_163, _t; - if (!isTypeOnly && (symbol == null ? void 0 : symbol.exports)) { - symbol.exports.forEach(function (_, name) { return nonTypeOnlyNames.add(name); }); - } - if (!(symbol && symbol.exports && pushIfUnique(visitedSymbols, symbol))) { - return; - } - var symbols = new Map(symbol.exports); - var exportStars = symbol.exports.get("__export" /* ExportStar */); - if (exportStars) { - var nestedSymbols = createSymbolTable(); - var lookupTable_1 = /* @__PURE__ */ new Map(); - if (exportStars.declarations) { - try { - for (var _u = __values(exportStars.declarations), _v = _u.next(); !_v.done; _v = _u.next()) { - var node = _v.value; - var resolvedModule = resolveExternalModuleName(node, node.moduleSpecifier); - var exportedSymbols = visit(resolvedModule, node, isTypeOnly || node.isTypeOnly); - extendExportSymbols(nestedSymbols, exportedSymbols, lookupTable_1, node); - } - } - catch (e_163_1) { e_163 = { error: e_163_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_163) throw e_163.error; } - } - } - lookupTable_1.forEach(function (_t, id) { - var e_164, _u; - var exportsWithDuplicate = _t.exportsWithDuplicate; - if (id === "export=" || !(exportsWithDuplicate && exportsWithDuplicate.length) || symbols.has(id)) { - return; - } - try { - for (var exportsWithDuplicate_1 = __values(exportsWithDuplicate), exportsWithDuplicate_1_1 = exportsWithDuplicate_1.next(); !exportsWithDuplicate_1_1.done; exportsWithDuplicate_1_1 = exportsWithDuplicate_1.next()) { - var node = exportsWithDuplicate_1_1.value; - diagnostics.add(createDiagnosticForNode(node, Diagnostics.Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambiguity, lookupTable_1.get(id).specifierText, unescapeLeadingUnderscores(id))); - } - } - catch (e_164_1) { e_164 = { error: e_164_1 }; } - finally { - try { - if (exportsWithDuplicate_1_1 && !exportsWithDuplicate_1_1.done && (_u = exportsWithDuplicate_1.return)) _u.call(exportsWithDuplicate_1); - } - finally { if (e_164) throw e_164.error; } - } - }); - extendExportSymbols(symbols, nestedSymbols); - } - if (exportStar == null ? void 0 : exportStar.isTypeOnly) { - typeOnlyExportStarMap !== null && typeOnlyExportStarMap !== void 0 ? typeOnlyExportStarMap : (typeOnlyExportStarMap = /* @__PURE__ */ new Map()); - symbols.forEach(function (_, escapedName) { return typeOnlyExportStarMap.set(escapedName, exportStar); }); - } - return symbols; - } - } - function getMergedSymbol(symbol) { - var merged; - return symbol && symbol.mergeId && (merged = mergedSymbols[symbol.mergeId]) ? merged : symbol; - } - function getSymbolOfDeclaration(node) { - return getMergedSymbol(node.symbol && getLateBoundSymbol(node.symbol)); - } - function getSymbolOfNode(node) { - return canHaveSymbol(node) ? getSymbolOfDeclaration(node) : void 0; - } - function getParentOfSymbol(symbol) { - return getMergedSymbol(symbol.parent && getLateBoundSymbol(symbol.parent)); - } - function getAlternativeContainingModules(symbol, enclosingDeclaration) { - var e_165, _t, e_166, _u; - var containingFile = getSourceFileOfNode(enclosingDeclaration); - var id = getNodeId(containingFile); - var links = getSymbolLinks(symbol); - var results; - if (links.extendedContainersByFile && (results = links.extendedContainersByFile.get(id))) { - return results; - } - if (containingFile && containingFile.imports) { - try { - for (var _v = __values(containingFile.imports), _w = _v.next(); !_w.done; _w = _v.next()) { - var importRef = _w.value; - if (nodeIsSynthesized(importRef)) - continue; - var resolvedModule = resolveExternalModuleName(enclosingDeclaration, importRef, - /*ignoreErrors*/ - true); - if (!resolvedModule) - continue; - var ref = getAliasForSymbolInContainer(resolvedModule, symbol); - if (!ref) - continue; - results = append(results, resolvedModule); - } - } - catch (e_165_1) { e_165 = { error: e_165_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_165) throw e_165.error; } - } - if (length(results)) { - (links.extendedContainersByFile || (links.extendedContainersByFile = /* @__PURE__ */ new Map())).set(id, results); - return results; - } - } - if (links.extendedContainers) { - return links.extendedContainers; - } - var otherFiles = host.getSourceFiles(); - try { - for (var otherFiles_1 = __values(otherFiles), otherFiles_1_1 = otherFiles_1.next(); !otherFiles_1_1.done; otherFiles_1_1 = otherFiles_1.next()) { - var file = otherFiles_1_1.value; - if (!isExternalModule(file)) - continue; - var sym = getSymbolOfDeclaration(file); - var ref = getAliasForSymbolInContainer(sym, symbol); - if (!ref) - continue; - results = append(results, sym); - } - } - catch (e_166_1) { e_166 = { error: e_166_1 }; } - finally { - try { - if (otherFiles_1_1 && !otherFiles_1_1.done && (_u = otherFiles_1.return)) _u.call(otherFiles_1); - } - finally { if (e_166) throw e_166.error; } - } - return links.extendedContainers = results || emptyArray; - } - function getContainersOfSymbol(symbol, enclosingDeclaration, meaning) { - var container = getParentOfSymbol(symbol); - if (container && !(symbol.flags & 262144 /* TypeParameter */)) { - var additionalContainers = mapDefined(container.declarations, fileSymbolIfFileSymbolExportEqualsContainer); - var reexportContainers = enclosingDeclaration && getAlternativeContainingModules(symbol, enclosingDeclaration); - var objectLiteralContainer = getVariableDeclarationOfObjectLiteral(container, meaning); - if (enclosingDeclaration && container.flags & getQualifiedLeftMeaning(meaning) && getAccessibleSymbolChain(container, enclosingDeclaration, 1920 /* Namespace */, - /*useOnlyExternalAliasing*/ - false)) { - return append(concatenate(concatenate([container], additionalContainers), reexportContainers), objectLiteralContainer); - } - var firstVariableMatch = !(container.flags & getQualifiedLeftMeaning(meaning)) && container.flags & 788968 /* Type */ && getDeclaredTypeOfSymbol(container).flags & 524288 /* Object */ && meaning === 111551 /* Value */ ? forEachSymbolTableInScope(enclosingDeclaration, function (t) { - return forEachEntry(t, function (s) { - if (s.flags & getQualifiedLeftMeaning(meaning) && getTypeOfSymbol(s) === getDeclaredTypeOfSymbol(container)) { - return s; - } - }); - }) : void 0; - var res = firstVariableMatch ? __spreadArray(__spreadArray([firstVariableMatch], __read(additionalContainers), false), [container], false) : __spreadArray(__spreadArray([], __read(additionalContainers), false), [container], false); - res = append(res, objectLiteralContainer); - res = addRange(res, reexportContainers); - return res; - } - var candidates = mapDefined(symbol.declarations, function (d) { - if (!isAmbientModule(d) && d.parent) { - if (hasNonGlobalAugmentationExternalModuleSymbol(d.parent)) { - return getSymbolOfDeclaration(d.parent); - } - if (isModuleBlock(d.parent) && d.parent.parent && resolveExternalModuleSymbol(getSymbolOfDeclaration(d.parent.parent)) === symbol) { - return getSymbolOfDeclaration(d.parent.parent); - } - } - if (isClassExpression(d) && isBinaryExpression(d.parent) && d.parent.operatorToken.kind === 64 /* EqualsToken */ && isAccessExpression(d.parent.left) && isEntityNameExpression(d.parent.left.expression)) { - if (isModuleExportsAccessExpression(d.parent.left) || isExportsIdentifier(d.parent.left.expression)) { - return getSymbolOfDeclaration(getSourceFileOfNode(d)); - } - checkExpressionCached(d.parent.left.expression); - return getNodeLinks(d.parent.left.expression).resolvedSymbol; - } - }); - if (!length(candidates)) { - return void 0; - } - return mapDefined(candidates, function (candidate) { return getAliasForSymbolInContainer(candidate, symbol) ? candidate : void 0; }); - function fileSymbolIfFileSymbolExportEqualsContainer(d) { - return container && getFileSymbolIfFileSymbolExportEqualsContainer(d, container); - } - } - function getVariableDeclarationOfObjectLiteral(symbol, meaning) { - var firstDecl = !!length(symbol.declarations) && first(symbol.declarations); - if (meaning & 111551 /* Value */ && firstDecl && firstDecl.parent && isVariableDeclaration(firstDecl.parent)) { - if (isObjectLiteralExpression(firstDecl) && firstDecl === firstDecl.parent.initializer || isTypeLiteralNode(firstDecl) && firstDecl === firstDecl.parent.type) { - return getSymbolOfDeclaration(firstDecl.parent); - } - } - } - function getFileSymbolIfFileSymbolExportEqualsContainer(d, container) { - var fileSymbol = getExternalModuleContainer(d); - var exported = fileSymbol && fileSymbol.exports && fileSymbol.exports.get("export=" /* ExportEquals */); - return exported && getSymbolIfSameReference(exported, container) ? fileSymbol : void 0; - } - function getAliasForSymbolInContainer(container, symbol) { - if (container === getParentOfSymbol(symbol)) { - return symbol; - } - var exportEquals = container.exports && container.exports.get("export=" /* ExportEquals */); - if (exportEquals && getSymbolIfSameReference(exportEquals, symbol)) { - return container; - } - var exports = getExportsOfSymbol(container); - var quick = exports.get(symbol.escapedName); - if (quick && getSymbolIfSameReference(quick, symbol)) { - return quick; - } - return forEachEntry(exports, function (exported) { - if (getSymbolIfSameReference(exported, symbol)) { - return exported; - } - }); - } - function getSymbolIfSameReference(s1, s2) { - if (getMergedSymbol(resolveSymbol(getMergedSymbol(s1))) === getMergedSymbol(resolveSymbol(getMergedSymbol(s2)))) { - return s1; - } - } - function getExportSymbolOfValueSymbolIfExported(symbol) { - return getMergedSymbol(symbol && (symbol.flags & 1048576 /* ExportValue */) !== 0 && symbol.exportSymbol || symbol); - } - function symbolIsValue(symbol, includeTypeOnlyMembers) { - return !!(symbol.flags & 111551 /* Value */ || symbol.flags & 2097152 /* Alias */ && getSymbolFlags(symbol, !includeTypeOnlyMembers) & 111551 /* Value */); - } - function findConstructorDeclaration(node) { - var e_167, _t; - var members = node.members; - try { - for (var members_3 = __values(members), members_3_1 = members_3.next(); !members_3_1.done; members_3_1 = members_3.next()) { - var member = members_3_1.value; - if (member.kind === 176 /* Constructor */ && nodeIsPresent(member.body)) { - return member; - } - } - } - catch (e_167_1) { e_167 = { error: e_167_1 }; } - finally { - try { - if (members_3_1 && !members_3_1.done && (_t = members_3.return)) _t.call(members_3); - } - finally { if (e_167) throw e_167.error; } - } - } - function createType(flags) { - var _a; - var result = new Type27(checker, flags); - typeCount++; - result.id = typeCount; - (_a = tracing) == null ? void 0 : _a.recordType(result); - return result; - } - function createTypeWithSymbol(flags, symbol) { - var result = createType(flags); - result.symbol = symbol; - return result; - } - function createOriginType(flags) { - return new Type27(checker, flags); - } - function createIntrinsicType(kind, intrinsicName, objectFlags /* None */) { - if (objectFlags === void 0) { objectFlags = 0; } - var type = createType(kind); - type.intrinsicName = intrinsicName; - type.objectFlags = objectFlags | 524288 /* CouldContainTypeVariablesComputed */ | 2097152 /* IsGenericTypeComputed */ | 33554432 /* IsUnknownLikeUnionComputed */ | 16777216 /* IsNeverIntersectionComputed */; - return type; - } - function createObjectType(objectFlags, symbol) { - var type = createTypeWithSymbol(524288 /* Object */, symbol); - type.objectFlags = objectFlags; - type.members = void 0; - type.properties = void 0; - type.callSignatures = void 0; - type.constructSignatures = void 0; - type.indexInfos = void 0; - return type; - } - function createTypeofType() { - return getUnionType(arrayFrom(typeofNEFacts.keys(), getStringLiteralType)); - } - function createTypeParameter(symbol) { - return createTypeWithSymbol(262144 /* TypeParameter */, symbol); - } - function isReservedMemberName(name) { - return name.charCodeAt(0) === 95 /* _ */ && name.charCodeAt(1) === 95 /* _ */ && name.charCodeAt(2) !== 95 /* _ */ && name.charCodeAt(2) !== 64 /* at */ && name.charCodeAt(2) !== 35 /* hash */; - } - function getNamedMembers(members) { - var result; - members.forEach(function (symbol, id) { - if (isNamedMember(symbol, id)) { - (result || (result = [])).push(symbol); - } - }); - return result || emptyArray; - } - function isNamedMember(member, escapedName) { - return !isReservedMemberName(escapedName) && symbolIsValue(member); - } - function getNamedOrIndexSignatureMembers(members) { - var result = getNamedMembers(members); - var index = getIndexSymbolFromSymbolTable(members); - return index ? concatenate(result, [index]) : result; - } - function setStructuredTypeMembers(type, members, callSignatures, constructSignatures, indexInfos) { - var resolved = type; - resolved.members = members; - resolved.properties = emptyArray; - resolved.callSignatures = callSignatures; - resolved.constructSignatures = constructSignatures; - resolved.indexInfos = indexInfos; - if (members !== emptySymbols) - resolved.properties = getNamedMembers(members); - return resolved; - } - function createAnonymousType(symbol, members, callSignatures, constructSignatures, indexInfos) { - return setStructuredTypeMembers(createObjectType(16 /* Anonymous */, symbol), members, callSignatures, constructSignatures, indexInfos); - } - function getResolvedTypeWithoutAbstractConstructSignatures(type) { - if (type.constructSignatures.length === 0) - return type; - if (type.objectTypeWithoutAbstractConstructSignatures) - return type.objectTypeWithoutAbstractConstructSignatures; - var constructSignatures = filter(type.constructSignatures, function (signature) { return !(signature.flags & 4 /* Abstract */); }); - if (type.constructSignatures === constructSignatures) - return type; - var typeCopy = createAnonymousType(type.symbol, type.members, type.callSignatures, some(constructSignatures) ? constructSignatures : emptyArray, type.indexInfos); - type.objectTypeWithoutAbstractConstructSignatures = typeCopy; - typeCopy.objectTypeWithoutAbstractConstructSignatures = typeCopy; - return typeCopy; - } - function forEachSymbolTableInScope(enclosingDeclaration, callback) { - var result; - var _loop_10 = function (location_1) { - if (canHaveLocals(location_1) && location_1.locals && !isGlobalSourceFile(location_1)) { - if (result = callback(location_1.locals, - /*ignoreQualification*/ - void 0, - /*isLocalNameLookup*/ - true, location_1)) { - return { value: result }; - } - } - switch (location_1.kind) { - case 312 /* SourceFile */: - if (!isExternalOrCommonJsModule(location_1)) { - break; - } - case 267 /* ModuleDeclaration */: - var sym = getSymbolOfDeclaration(location_1); - if (result = callback((sym == null ? void 0 : sym.exports) || emptySymbols, - /*ignoreQualification*/ - void 0, - /*isLocalNameLookup*/ - true, location_1)) { - return { value: result }; - } - break; - case 263 /* ClassDeclaration */: - case 231 /* ClassExpression */: - case 264 /* InterfaceDeclaration */: - var table_1; - (getSymbolOfDeclaration(location_1).members || emptySymbols).forEach(function (memberSymbol, key) { - if (memberSymbol.flags & (788968 /* Type */ & ~67108864 /* Assignment */)) { - (table_1 || (table_1 = createSymbolTable())).set(key, memberSymbol); - } - }); - if (table_1 && (result = callback(table_1, - /*ignoreQualification*/ - void 0, - /*isLocalNameLookup*/ - false, location_1))) { - return { value: result }; - } - break; - } - }; - for (var location_1 = enclosingDeclaration; location_1; location_1 = location_1.parent) { - var state_4 = _loop_10(location_1); - if (typeof state_4 === "object") - return state_4.value; - } - return callback(globals, - /*ignoreQualification*/ - void 0, - /*isLocalNameLookup*/ - true); - } - function getQualifiedLeftMeaning(rightMeaning) { - return rightMeaning === 111551 /* Value */ ? 111551 /* Value */ : 1920 /* Namespace */; - } - function getAccessibleSymbolChain(symbol, enclosingDeclaration, meaning, useOnlyExternalAliasing, visitedSymbolTablesMap) { - if (visitedSymbolTablesMap === void 0) { visitedSymbolTablesMap = new Map(); } - if (!(symbol && !isPropertyOrMethodDeclarationSymbol(symbol))) { - return void 0; - } - var links = getSymbolLinks(symbol); - var cache = links.accessibleChainCache || (links.accessibleChainCache = /* @__PURE__ */ new Map()); - var firstRelevantLocation = forEachSymbolTableInScope(enclosingDeclaration, function (_, __, ___, node) { return node; }); - var key = "".concat(useOnlyExternalAliasing ? 0 : 1, "|").concat(firstRelevantLocation && getNodeId(firstRelevantLocation), "|").concat(meaning); - if (cache.has(key)) { - return cache.get(key); - } - var id = getSymbolId(symbol); - var visitedSymbolTables = visitedSymbolTablesMap.get(id); - if (!visitedSymbolTables) { - visitedSymbolTablesMap.set(id, visitedSymbolTables = []); - } - var result = forEachSymbolTableInScope(enclosingDeclaration, getAccessibleSymbolChainFromSymbolTable); - cache.set(key, result); - return result; - function getAccessibleSymbolChainFromSymbolTable(symbols, ignoreQualification, isLocalNameLookup) { - if (!pushIfUnique(visitedSymbolTables, symbols)) { - return void 0; - } - var result2 = trySymbolTable(symbols, ignoreQualification, isLocalNameLookup); - visitedSymbolTables.pop(); - return result2; - } - function canQualifySymbol(symbolFromSymbolTable, meaning2) { - return !needsQualification(symbolFromSymbolTable, enclosingDeclaration, meaning2) || // If symbol needs qualification, make sure that parent is accessible, if it is then this symbol is accessible too - !!getAccessibleSymbolChain(symbolFromSymbolTable.parent, enclosingDeclaration, getQualifiedLeftMeaning(meaning2), useOnlyExternalAliasing, visitedSymbolTablesMap); - } - function isAccessible(symbolFromSymbolTable, resolvedAliasSymbol, ignoreQualification) { - return (symbol === (resolvedAliasSymbol || symbolFromSymbolTable) || getMergedSymbol(symbol) === getMergedSymbol(resolvedAliasSymbol || symbolFromSymbolTable)) && // if the symbolFromSymbolTable is not external module (it could be if it was determined as ambient external module and would be in globals table) - // and if symbolFromSymbolTable or alias resolution matches the symbol, - // check the symbol can be qualified, it is only then this symbol is accessible - !some(symbolFromSymbolTable.declarations, hasNonGlobalAugmentationExternalModuleSymbol) && (ignoreQualification || canQualifySymbol(getMergedSymbol(symbolFromSymbolTable), meaning)); - } - function trySymbolTable(symbols, ignoreQualification, isLocalNameLookup) { - if (isAccessible(symbols.get(symbol.escapedName), - /*resolvedAliasSymbol*/ - void 0, ignoreQualification)) { - return [symbol]; - } - var result2 = forEachEntry(symbols, function (symbolFromSymbolTable) { - if (symbolFromSymbolTable.flags & 2097152 /* Alias */ && symbolFromSymbolTable.escapedName !== "export=" /* ExportEquals */ && symbolFromSymbolTable.escapedName !== "default" /* Default */ && !(isUMDExportSymbol(symbolFromSymbolTable) && enclosingDeclaration && isExternalModule(getSourceFileOfNode(enclosingDeclaration))) && (!useOnlyExternalAliasing || some(symbolFromSymbolTable.declarations, isExternalModuleImportEqualsDeclaration)) && (isLocalNameLookup ? !some(symbolFromSymbolTable.declarations, isNamespaceReexportDeclaration) : true) && (ignoreQualification || !getDeclarationOfKind(symbolFromSymbolTable, 281 /* ExportSpecifier */))) { - var resolvedImportedSymbol = resolveAlias(symbolFromSymbolTable); - var candidate = getCandidateListForSymbol(symbolFromSymbolTable, resolvedImportedSymbol, ignoreQualification); - if (candidate) { - return candidate; - } - } - if (symbolFromSymbolTable.escapedName === symbol.escapedName && symbolFromSymbolTable.exportSymbol) { - if (isAccessible(getMergedSymbol(symbolFromSymbolTable.exportSymbol), - /*resolvedAliasSymbol*/ - void 0, ignoreQualification)) { - return [symbol]; - } - } - }); - return result2 || (symbols === globals ? getCandidateListForSymbol(globalThisSymbol, globalThisSymbol, ignoreQualification) : void 0); - } - function getCandidateListForSymbol(symbolFromSymbolTable, resolvedImportedSymbol, ignoreQualification) { - if (isAccessible(symbolFromSymbolTable, resolvedImportedSymbol, ignoreQualification)) { - return [symbolFromSymbolTable]; - } - var candidateTable = getExportsOfSymbol(resolvedImportedSymbol); - var accessibleSymbolsFromExports = candidateTable && getAccessibleSymbolChainFromSymbolTable(candidateTable, - /*ignoreQualification*/ - true); - if (accessibleSymbolsFromExports && canQualifySymbol(symbolFromSymbolTable, getQualifiedLeftMeaning(meaning))) { - return [symbolFromSymbolTable].concat(accessibleSymbolsFromExports); - } - } - } - function needsQualification(symbol, enclosingDeclaration, meaning) { - var qualify = false; - forEachSymbolTableInScope(enclosingDeclaration, function (symbolTable) { - var symbolFromSymbolTable = getMergedSymbol(symbolTable.get(symbol.escapedName)); - if (!symbolFromSymbolTable) { - return false; - } - if (symbolFromSymbolTable === symbol) { - return true; - } - var shouldResolveAlias = symbolFromSymbolTable.flags & 2097152 /* Alias */ && !getDeclarationOfKind(symbolFromSymbolTable, 281 /* ExportSpecifier */); - symbolFromSymbolTable = shouldResolveAlias ? resolveAlias(symbolFromSymbolTable) : symbolFromSymbolTable; - var flags = shouldResolveAlias ? getSymbolFlags(symbolFromSymbolTable) : symbolFromSymbolTable.flags; - if (flags & meaning) { - qualify = true; - return true; - } - return false; - }); - return qualify; - } - function isPropertyOrMethodDeclarationSymbol(symbol) { - var e_168, _t; - if (symbol.declarations && symbol.declarations.length) { - try { - for (var _u = __values(symbol.declarations), _v = _u.next(); !_v.done; _v = _u.next()) { - var declaration = _v.value; - switch (declaration.kind) { - case 172 /* PropertyDeclaration */: - case 174 /* MethodDeclaration */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - continue; - default: - return false; - } - } - } - catch (e_168_1) { e_168 = { error: e_168_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_168) throw e_168.error; } - } - return true; - } - return false; - } - function isTypeSymbolAccessible(typeSymbol, enclosingDeclaration) { - var access = isSymbolAccessibleWorker(typeSymbol, enclosingDeclaration, 788968 /* Type */, - /*shouldComputeAliasesToMakeVisible*/ - false, - /*allowModules*/ - true); - return access.accessibility === 0 /* Accessible */; - } - function isValueSymbolAccessible(typeSymbol, enclosingDeclaration) { - var access = isSymbolAccessibleWorker(typeSymbol, enclosingDeclaration, 111551 /* Value */, - /*shouldComputeAliasesToMakeVisible*/ - false, - /*allowModules*/ - true); - return access.accessibility === 0 /* Accessible */; - } - function isSymbolAccessibleByFlags(typeSymbol, enclosingDeclaration, flags) { - var access = isSymbolAccessibleWorker(typeSymbol, enclosingDeclaration, flags, - /*shouldComputeAliasesToMakeVisible*/ - false, - /*allowModules*/ - false); - return access.accessibility === 0 /* Accessible */; - } - function isAnySymbolAccessible(symbols, enclosingDeclaration, initialSymbol, meaning, shouldComputeAliasesToMakeVisible, allowModules) { - var e_169, _t; - if (!length(symbols)) - return; - var hadAccessibleChain; - var earlyModuleBail = false; - try { - for (var symbols_2 = __values(symbols), symbols_2_1 = symbols_2.next(); !symbols_2_1.done; symbols_2_1 = symbols_2.next()) { - var symbol = symbols_2_1.value; - var accessibleSymbolChain = getAccessibleSymbolChain(symbol, enclosingDeclaration, meaning, - /*useOnlyExternalAliasing*/ - false); - if (accessibleSymbolChain) { - hadAccessibleChain = symbol; - var hasAccessibleDeclarations = hasVisibleDeclarations(accessibleSymbolChain[0], shouldComputeAliasesToMakeVisible); - if (hasAccessibleDeclarations) { - return hasAccessibleDeclarations; - } - } - if (allowModules) { - if (some(symbol.declarations, hasNonGlobalAugmentationExternalModuleSymbol)) { - if (shouldComputeAliasesToMakeVisible) { - earlyModuleBail = true; - continue; - } - return { - accessibility: 0 /* Accessible */ - }; - } - } - var containers = getContainersOfSymbol(symbol, enclosingDeclaration, meaning); - var parentResult = isAnySymbolAccessible(containers, enclosingDeclaration, initialSymbol, initialSymbol === symbol ? getQualifiedLeftMeaning(meaning) : meaning, shouldComputeAliasesToMakeVisible, allowModules); - if (parentResult) { - return parentResult; - } - } - } - catch (e_169_1) { e_169 = { error: e_169_1 }; } - finally { - try { - if (symbols_2_1 && !symbols_2_1.done && (_t = symbols_2.return)) _t.call(symbols_2); - } - finally { if (e_169) throw e_169.error; } - } - if (earlyModuleBail) { - return { - accessibility: 0 /* Accessible */ - }; - } - if (hadAccessibleChain) { - return { - accessibility: 1 /* NotAccessible */, - errorSymbolName: symbolToString(initialSymbol, enclosingDeclaration, meaning), - errorModuleName: hadAccessibleChain !== initialSymbol ? symbolToString(hadAccessibleChain, enclosingDeclaration, 1920 /* Namespace */) : void 0 - }; - } - } - function isSymbolAccessible(symbol, enclosingDeclaration, meaning, shouldComputeAliasesToMakeVisible) { - return isSymbolAccessibleWorker(symbol, enclosingDeclaration, meaning, shouldComputeAliasesToMakeVisible, - /*allowModules*/ - true); - } - function isSymbolAccessibleWorker(symbol, enclosingDeclaration, meaning, shouldComputeAliasesToMakeVisible, allowModules) { - if (symbol && enclosingDeclaration) { - var result = isAnySymbolAccessible([symbol], enclosingDeclaration, symbol, meaning, shouldComputeAliasesToMakeVisible, allowModules); - if (result) { - return result; - } - var symbolExternalModule = forEach(symbol.declarations, getExternalModuleContainer); - if (symbolExternalModule) { - var enclosingExternalModule = getExternalModuleContainer(enclosingDeclaration); - if (symbolExternalModule !== enclosingExternalModule) { - return { - accessibility: 2 /* CannotBeNamed */, - errorSymbolName: symbolToString(symbol, enclosingDeclaration, meaning), - errorModuleName: symbolToString(symbolExternalModule), - errorNode: isInJSFile(enclosingDeclaration) ? enclosingDeclaration : void 0 - }; - } - } - return { - accessibility: 1 /* NotAccessible */, - errorSymbolName: symbolToString(symbol, enclosingDeclaration, meaning) - }; - } - return { accessibility: 0 /* Accessible */ }; - } - function getExternalModuleContainer(declaration) { - var node = findAncestor(declaration, hasExternalModuleSymbol); - return node && getSymbolOfDeclaration(node); - } - function hasExternalModuleSymbol(declaration) { - return isAmbientModule(declaration) || declaration.kind === 312 /* SourceFile */ && isExternalOrCommonJsModule(declaration); - } - function hasNonGlobalAugmentationExternalModuleSymbol(declaration) { - return isModuleWithStringLiteralName(declaration) || declaration.kind === 312 /* SourceFile */ && isExternalOrCommonJsModule(declaration); - } - function hasVisibleDeclarations(symbol, shouldComputeAliasToMakeVisible) { - var aliasesToMakeVisible; - if (!every(filter(symbol.declarations, function (d) { return d.kind !== 80; } /* Identifier */), getIsDeclarationVisible)) { - return void 0; - } - return { accessibility: 0 /* Accessible */, aliasesToMakeVisible: aliasesToMakeVisible }; - function getIsDeclarationVisible(declaration) { - var _a, _b; - if (!isDeclarationVisible(declaration)) { - var anyImportSyntax = getAnyImportSyntax(declaration); - if (anyImportSyntax && !hasSyntacticModifier(anyImportSyntax, 1 /* Export */) && // import clause without export - isDeclarationVisible(anyImportSyntax.parent)) { - return addVisibleAlias(declaration, anyImportSyntax); - } - else if (isVariableDeclaration(declaration) && isVariableStatement(declaration.parent.parent) && !hasSyntacticModifier(declaration.parent.parent, 1 /* Export */) && // unexported variable statement - isDeclarationVisible(declaration.parent.parent.parent)) { - return addVisibleAlias(declaration, declaration.parent.parent); - } - else if (isLateVisibilityPaintedStatement(declaration) && !hasSyntacticModifier(declaration, 1 /* Export */) && isDeclarationVisible(declaration.parent)) { - return addVisibleAlias(declaration, declaration); - } - else if (isBindingElement(declaration)) { - if (symbol.flags & 2097152 /* Alias */ && isInJSFile(declaration) && ((_a = declaration.parent) == null ? void 0 : _a.parent) && isVariableDeclaration(declaration.parent.parent) && ((_b = declaration.parent.parent.parent) == null ? void 0 : _b.parent) && isVariableStatement(declaration.parent.parent.parent.parent) && !hasSyntacticModifier(declaration.parent.parent.parent.parent, 1 /* Export */) && declaration.parent.parent.parent.parent.parent && isDeclarationVisible(declaration.parent.parent.parent.parent.parent)) { - return addVisibleAlias(declaration, declaration.parent.parent.parent.parent); - } - else if (symbol.flags & 2 /* BlockScopedVariable */) { - var variableStatement = findAncestor(declaration, isVariableStatement); - if (hasSyntacticModifier(variableStatement, 1 /* Export */)) { - return true; - } - if (!isDeclarationVisible(variableStatement.parent)) { - return false; - } - return addVisibleAlias(declaration, variableStatement); - } - } - return false; - } - return true; - } - function addVisibleAlias(declaration, aliasingStatement) { - if (shouldComputeAliasToMakeVisible) { - getNodeLinks(declaration).isVisible = true; - aliasesToMakeVisible = appendIfUnique(aliasesToMakeVisible, aliasingStatement); - } - return true; - } - } - function isEntityNameVisible(entityName, enclosingDeclaration) { - var meaning; - if (entityName.parent.kind === 186 /* TypeQuery */ || entityName.parent.kind === 233 /* ExpressionWithTypeArguments */ && !isPartOfTypeNode(entityName.parent) || entityName.parent.kind === 167 /* ComputedPropertyName */) { - meaning = 111551 /* Value */ | 1048576 /* ExportValue */; - } - else if (entityName.kind === 166 /* QualifiedName */ || entityName.kind === 211 /* PropertyAccessExpression */ || entityName.parent.kind === 271 /* ImportEqualsDeclaration */) { - meaning = 1920 /* Namespace */; - } - else { - meaning = 788968 /* Type */; - } - var firstIdentifier = getFirstIdentifier(entityName); - var symbol = resolveName(enclosingDeclaration, firstIdentifier.escapedText, meaning, - /*nameNotFoundMessage*/ - void 0, - /*nameArg*/ - void 0, - /*isUse*/ - false); - if (symbol && symbol.flags & 262144 /* TypeParameter */ && meaning & 788968 /* Type */) { - return { accessibility: 0 /* Accessible */ }; - } - if (!symbol && isThisIdentifier(firstIdentifier) && isSymbolAccessible(getSymbolOfDeclaration(getThisContainer(firstIdentifier, - /*includeArrowFunctions*/ - false, - /*includeClassComputedPropertyName*/ - false)), firstIdentifier, meaning, - /*shouldComputeAliasesToMakeVisible*/ - false).accessibility === 0 /* Accessible */) { - return { accessibility: 0 /* Accessible */ }; - } - return symbol && hasVisibleDeclarations(symbol, - /*shouldComputeAliasToMakeVisible*/ - true) || { - accessibility: 1 /* NotAccessible */, - errorSymbolName: getTextOfNode(firstIdentifier), - errorNode: firstIdentifier - }; - } - function symbolToString(symbol, enclosingDeclaration, meaning, flags /* AllowAnyNodeKind */, writer) { - if (flags === void 0) { flags = 4; } - var nodeFlags = 70221824 /* IgnoreErrors */; - if (flags & 2 /* UseOnlyExternalAliasing */) { - nodeFlags |= 128 /* UseOnlyExternalAliasing */; - } - if (flags & 1 /* WriteTypeParametersOrArguments */) { - nodeFlags |= 512 /* WriteTypeParametersInQualifiedName */; - } - if (flags & 8 /* UseAliasDefinedOutsideCurrentScope */) { - nodeFlags |= 16384 /* UseAliasDefinedOutsideCurrentScope */; - } - if (flags & 32 /* DoNotIncludeSymbolChain */) { - nodeFlags |= 134217728 /* DoNotIncludeSymbolChain */; - } - if (flags & 16 /* WriteComputedProps */) { - nodeFlags |= 1073741824 /* WriteComputedProps */; - } - var builder = flags & 4 /* AllowAnyNodeKind */ ? nodeBuilder.symbolToNode : nodeBuilder.symbolToEntityName; - return writer ? symbolToStringWorker(writer).getText() : usingSingleLineStringWriter(symbolToStringWorker); - function symbolToStringWorker(writer2) { - var entity = builder(symbol, meaning, enclosingDeclaration, nodeFlags); - var printer = (enclosingDeclaration == null ? void 0 : enclosingDeclaration.kind) === 312 /* SourceFile */ ? createPrinterWithRemoveCommentsNeverAsciiEscape() : createPrinterWithRemoveComments(); - var sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration); - printer.writeNode(4 /* Unspecified */, entity, - /*sourceFile*/ - sourceFile, writer2); - return writer2; - } - } - function signatureToString(signature, enclosingDeclaration, flags /* None */, kind, writer) { - if (flags === void 0) { flags = 0; } - return writer ? signatureToStringWorker(writer).getText() : usingSingleLineStringWriter(signatureToStringWorker); - function signatureToStringWorker(writer2) { - var sigOutput; - if (flags & 262144 /* WriteArrowStyleSignature */) { - sigOutput = kind === 1 /* Construct */ ? 185 /* ConstructorType */ : 184 /* FunctionType */; - } - else { - sigOutput = kind === 1 /* Construct */ ? 180 /* ConstructSignature */ : 179 /* CallSignature */; - } - var sig = nodeBuilder.signatureToSignatureDeclaration(signature, sigOutput, enclosingDeclaration, toNodeBuilderFlags(flags) | 70221824 /* IgnoreErrors */ | 512 /* WriteTypeParametersInQualifiedName */); - var printer = createPrinterWithRemoveCommentsOmitTrailingSemicolon(); - var sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration); - printer.writeNode(4 /* Unspecified */, sig, - /*sourceFile*/ - sourceFile, getTrailingSemicolonDeferringWriter(writer2)); - return writer2; - } - } - function typeToString(type, enclosingDeclaration, flags /* UseAliasDefinedOutsideCurrentScope */, writer) { - if (flags === void 0) { flags = 1048576 /* AllowUniqueESSymbolType */ | 16384; } - if (writer === void 0) { writer = createTextWriter(""); } - var noTruncation = compilerOptions.noErrorTruncation || flags & 1 /* NoTruncation */; - var typeNode = nodeBuilder.typeToTypeNode(type, enclosingDeclaration, toNodeBuilderFlags(flags) | 70221824 /* IgnoreErrors */ | (noTruncation ? 1 /* NoTruncation */ : 0)); - if (typeNode === void 0) - return Debug.fail("should always get typenode"); - var printer = type !== unresolvedType ? createPrinterWithRemoveComments() : createPrinterWithDefaults(); - var sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration); - printer.writeNode(4 /* Unspecified */, typeNode, - /*sourceFile*/ - sourceFile, writer); - var result = writer.getText(); - var maxLength2 = noTruncation ? noTruncationMaximumTruncationLength * 2 : defaultMaximumTruncationLength * 2; - if (maxLength2 && result && result.length >= maxLength2) { - return result.substr(0, maxLength2 - "...".length) + "..."; - } - return result; - } - function getTypeNamesForErrorDisplay(left, right) { - var leftStr = symbolValueDeclarationIsContextSensitive(left.symbol) ? typeToString(left, left.symbol.valueDeclaration) : typeToString(left); - var rightStr = symbolValueDeclarationIsContextSensitive(right.symbol) ? typeToString(right, right.symbol.valueDeclaration) : typeToString(right); - if (leftStr === rightStr) { - leftStr = getTypeNameForErrorDisplay(left); - rightStr = getTypeNameForErrorDisplay(right); - } - return [leftStr, rightStr]; - } - function getTypeNameForErrorDisplay(type) { - return typeToString(type, - /*enclosingDeclaration*/ - void 0, 64 /* UseFullyQualifiedType */); - } - function symbolValueDeclarationIsContextSensitive(symbol) { - return symbol && !!symbol.valueDeclaration && isExpression(symbol.valueDeclaration) && !isContextSensitive(symbol.valueDeclaration); - } - function toNodeBuilderFlags(flags /* None */) { - if (flags === void 0) { flags = 0; } - return flags & 848330091 /* NodeBuilderFlagsMask */; - } - function isClassInstanceSide(type) { - return !!type.symbol && !!(type.symbol.flags & 32 /* Class */) && (type === getDeclaredTypeOfClassOrInterface(type.symbol) || !!(type.flags & 524288 /* Object */) && !!(getObjectFlags(type) & 16777216 /* IsClassInstanceClone */)); - } - function createNodeBuilder() { - return { - typeToTypeNode: function (type, enclosingDeclaration, flags, tracker) { return withContext(enclosingDeclaration, flags, tracker, function (context) { return typeToTypeNodeHelper(type, context); }); }, - indexInfoToIndexSignatureDeclaration: function (indexInfo, enclosingDeclaration, flags, tracker) { return withContext(enclosingDeclaration, flags, tracker, function (context) { return indexInfoToIndexSignatureDeclarationHelper(indexInfo, context, - /*typeNode*/ - void 0); }); }, - signatureToSignatureDeclaration: function (signature, kind, enclosingDeclaration, flags, tracker) { return withContext(enclosingDeclaration, flags, tracker, function (context) { return signatureToSignatureDeclarationHelper(signature, kind, context); }); }, - symbolToEntityName: function (symbol, meaning, enclosingDeclaration, flags, tracker) { return withContext(enclosingDeclaration, flags, tracker, function (context) { return symbolToName(symbol, context, meaning, - /*expectsIdentifier*/ - false); }); }, - symbolToExpression: function (symbol, meaning, enclosingDeclaration, flags, tracker) { return withContext(enclosingDeclaration, flags, tracker, function (context) { return symbolToExpression(symbol, context, meaning); }); }, - symbolToTypeParameterDeclarations: function (symbol, enclosingDeclaration, flags, tracker) { return withContext(enclosingDeclaration, flags, tracker, function (context) { return typeParametersToTypeParameterDeclarations(symbol, context); }); }, - symbolToParameterDeclaration: function (symbol, enclosingDeclaration, flags, tracker) { return withContext(enclosingDeclaration, flags, tracker, function (context) { return symbolToParameterDeclaration(symbol, context); }); }, - typeParameterToDeclaration: function (parameter, enclosingDeclaration, flags, tracker) { return withContext(enclosingDeclaration, flags, tracker, function (context) { return typeParameterToDeclaration(parameter, context); }); }, - symbolTableToDeclarationStatements: function (symbolTable, enclosingDeclaration, flags, tracker, bundled) { return withContext(enclosingDeclaration, flags, tracker, function (context) { return symbolTableToDeclarationStatements(symbolTable, context, bundled); }); }, - symbolToNode: function (symbol, meaning, enclosingDeclaration, flags, tracker) { return withContext(enclosingDeclaration, flags, tracker, function (context) { return symbolToNode(symbol, context, meaning); }); } - }; - function symbolToNode(symbol, context, meaning) { - if (context.flags & 1073741824 /* WriteComputedProps */) { - if (symbol.valueDeclaration) { - var name_23 = getNameOfDeclaration(symbol.valueDeclaration); - if (name_23 && isComputedPropertyName(name_23)) - return name_23; - } - var nameType = getSymbolLinks(symbol).nameType; - if (nameType && nameType.flags & (1024 /* EnumLiteral */ | 8192 /* UniqueESSymbol */)) { - context.enclosingDeclaration = nameType.symbol.valueDeclaration; - return factory.createComputedPropertyName(symbolToExpression(nameType.symbol, context, meaning)); - } - } - return symbolToExpression(symbol, context, meaning); - } - function withContext(enclosingDeclaration, flags, tracker, cb) { - Debug.assert(enclosingDeclaration === void 0 || (enclosingDeclaration.flags & 16 /* Synthesized */) === 0); - var moduleResolverHost = (tracker == null ? void 0 : tracker.trackSymbol) ? tracker.moduleResolverHost : flags & 134217728 /* DoNotIncludeSymbolChain */ ? createBasicNodeBuilderModuleSpecifierResolutionHost(host) : void 0; - var context = { - enclosingDeclaration: enclosingDeclaration, - flags: flags || 0 /* None */, - tracker: void 0, - encounteredError: false, - reportedDiagnostic: false, - visitedTypes: void 0, - symbolDepth: void 0, - inferTypeParameters: void 0, - approximateLength: 0 - }; - context.tracker = new SymbolTrackerImpl(context, tracker, moduleResolverHost); - var resultingNode = cb(context); - if (context.truncating && context.flags & 1 /* NoTruncation */) { - context.tracker.reportTruncationError(); - } - return context.encounteredError ? void 0 : resultingNode; - } - function checkTruncationLength(context) { - if (context.truncating) - return context.truncating; - return context.truncating = context.approximateLength > (context.flags & 1 /* NoTruncation */ ? noTruncationMaximumTruncationLength : defaultMaximumTruncationLength); - } - function typeToTypeNodeHelper(type, context) { - var savedFlags = context.flags; - var typeNode = typeToTypeNodeWorker(type, context); - context.flags = savedFlags; - return typeNode; - } - function typeToTypeNodeWorker(type, context) { - var _a, _b; - if (cancellationToken && cancellationToken.throwIfCancellationRequested) { - cancellationToken.throwIfCancellationRequested(); - } - var inTypeAlias = context.flags & 8388608 /* InTypeAlias */; - context.flags &= ~8388608 /* InTypeAlias */; - if (!type) { - if (!(context.flags & 262144 /* AllowEmptyUnionOrIntersection */)) { - context.encounteredError = true; - return void 0; - } - context.approximateLength += 3; - return factory.createKeywordTypeNode(133 /* AnyKeyword */); - } - if (!(context.flags & 536870912 /* NoTypeReduction */)) { - type = getReducedType(type); - } - if (type.flags & 1 /* Any */) { - if (type.aliasSymbol) { - return factory.createTypeReferenceNode(symbolToEntityNameNode(type.aliasSymbol), mapToTypeNodes(type.aliasTypeArguments, context)); - } - if (type === unresolvedType) { - return addSyntheticLeadingComment(factory.createKeywordTypeNode(133 /* AnyKeyword */), 3 /* MultiLineCommentTrivia */, "unresolved"); - } - context.approximateLength += 3; - return factory.createKeywordTypeNode(type === intrinsicMarkerType ? 141 /* IntrinsicKeyword */ : 133 /* AnyKeyword */); - } - if (type.flags & 2 /* Unknown */) { - return factory.createKeywordTypeNode(159 /* UnknownKeyword */); - } - if (type.flags & 4 /* String */) { - context.approximateLength += 6; - return factory.createKeywordTypeNode(154 /* StringKeyword */); - } - if (type.flags & 8 /* Number */) { - context.approximateLength += 6; - return factory.createKeywordTypeNode(150 /* NumberKeyword */); - } - if (type.flags & 64 /* BigInt */) { - context.approximateLength += 6; - return factory.createKeywordTypeNode(163 /* BigIntKeyword */); - } - if (type.flags & 16 /* Boolean */ && !type.aliasSymbol) { - context.approximateLength += 7; - return factory.createKeywordTypeNode(136 /* BooleanKeyword */); - } - if (type.flags & 1056 /* EnumLike */) { - if (type.symbol.flags & 8 /* EnumMember */) { - var parentSymbol = getParentOfSymbol(type.symbol); - var parentName = symbolToTypeNode(parentSymbol, context, 788968 /* Type */); - if (getDeclaredTypeOfSymbol(parentSymbol) === type) { - return parentName; - } - var memberName = symbolName(type.symbol); - if (isIdentifierText(memberName, 0 /* ES3 */)) { - return appendReferenceToType(parentName, factory.createTypeReferenceNode(memberName, - /*typeArguments*/ - void 0)); - } - if (isImportTypeNode(parentName)) { - parentName.isTypeOf = true; - return factory.createIndexedAccessTypeNode(parentName, factory.createLiteralTypeNode(factory.createStringLiteral(memberName))); - } - else if (isTypeReferenceNode(parentName)) { - return factory.createIndexedAccessTypeNode(factory.createTypeQueryNode(parentName.typeName), factory.createLiteralTypeNode(factory.createStringLiteral(memberName))); - } - else { - return Debug.fail("Unhandled type node kind returned from `symbolToTypeNode`."); - } - } - return symbolToTypeNode(type.symbol, context, 788968 /* Type */); - } - if (type.flags & 128 /* StringLiteral */) { - context.approximateLength += type.value.length + 2; - return factory.createLiteralTypeNode(setEmitFlags(factory.createStringLiteral(type.value, !!(context.flags & 268435456 /* UseSingleQuotesForStringLiteralType */)), 16777216 /* NoAsciiEscaping */)); - } - if (type.flags & 256 /* NumberLiteral */) { - var value = type.value; - context.approximateLength += ("" + value).length; - return factory.createLiteralTypeNode(value < 0 ? factory.createPrefixUnaryExpression(41 /* MinusToken */, factory.createNumericLiteral(-value)) : factory.createNumericLiteral(value)); - } - if (type.flags & 2048 /* BigIntLiteral */) { - context.approximateLength += pseudoBigIntToString(type.value).length + 1; - return factory.createLiteralTypeNode(factory.createBigIntLiteral(type.value)); - } - if (type.flags & 512 /* BooleanLiteral */) { - context.approximateLength += type.intrinsicName.length; - return factory.createLiteralTypeNode(type.intrinsicName === "true" ? factory.createTrue() : factory.createFalse()); - } - if (type.flags & 8192 /* UniqueESSymbol */) { - if (!(context.flags & 1048576 /* AllowUniqueESSymbolType */)) { - if (isValueSymbolAccessible(type.symbol, context.enclosingDeclaration)) { - context.approximateLength += 6; - return symbolToTypeNode(type.symbol, context, 111551 /* Value */); - } - if (context.tracker.reportInaccessibleUniqueSymbolError) { - context.tracker.reportInaccessibleUniqueSymbolError(); - } - } - context.approximateLength += 13; - return factory.createTypeOperatorNode(158 /* UniqueKeyword */, factory.createKeywordTypeNode(155 /* SymbolKeyword */)); - } - if (type.flags & 16384 /* Void */) { - context.approximateLength += 4; - return factory.createKeywordTypeNode(116 /* VoidKeyword */); - } - if (type.flags & 32768 /* Undefined */) { - context.approximateLength += 9; - return factory.createKeywordTypeNode(157 /* UndefinedKeyword */); - } - if (type.flags & 65536 /* Null */) { - context.approximateLength += 4; - return factory.createLiteralTypeNode(factory.createNull()); - } - if (type.flags & 131072 /* Never */) { - context.approximateLength += 5; - return factory.createKeywordTypeNode(146 /* NeverKeyword */); - } - if (type.flags & 4096 /* ESSymbol */) { - context.approximateLength += 6; - return factory.createKeywordTypeNode(155 /* SymbolKeyword */); - } - if (type.flags & 67108864 /* NonPrimitive */) { - context.approximateLength += 6; - return factory.createKeywordTypeNode(151 /* ObjectKeyword */); - } - if (isThisTypeParameter(type)) { - if (context.flags & 4194304 /* InObjectTypeLiteral */) { - if (!context.encounteredError && !(context.flags & 32768 /* AllowThisInObjectLiteral */)) { - context.encounteredError = true; - } - (_b = (_a = context.tracker).reportInaccessibleThisError) == null ? void 0 : _b.call(_a); - } - context.approximateLength += 4; - return factory.createThisTypeNode(); - } - if (!inTypeAlias && type.aliasSymbol && (context.flags & 16384 /* UseAliasDefinedOutsideCurrentScope */ || isTypeSymbolAccessible(type.aliasSymbol, context.enclosingDeclaration))) { - var typeArgumentNodes = mapToTypeNodes(type.aliasTypeArguments, context); - if (isReservedMemberName(type.aliasSymbol.escapedName) && !(type.aliasSymbol.flags & 32 /* Class */)) - return factory.createTypeReferenceNode(factory.createIdentifier(""), typeArgumentNodes); - if (length(typeArgumentNodes) === 1 && type.aliasSymbol === globalArrayType.symbol) { - return factory.createArrayTypeNode(typeArgumentNodes[0]); - } - return symbolToTypeNode(type.aliasSymbol, context, 788968 /* Type */, typeArgumentNodes); - } - var objectFlags = getObjectFlags(type); - if (objectFlags & 4 /* Reference */) { - Debug.assert(!!(type.flags & 524288 /* Object */)); - return type.node ? visitAndTransformType(type, typeReferenceToTypeNode) : typeReferenceToTypeNode(type); - } - if (type.flags & 262144 /* TypeParameter */ || objectFlags & 3 /* ClassOrInterface */) { - if (type.flags & 262144 /* TypeParameter */ && contains(context.inferTypeParameters, type)) { - context.approximateLength += symbolName(type.symbol).length + 6; - var constraintNode = void 0; - var constraint = getConstraintOfTypeParameter(type); - if (constraint) { - var inferredConstraint = getInferredTypeParameterConstraint(type, - /*omitTypeReferences*/ - true); - if (!(inferredConstraint && isTypeIdenticalTo(constraint, inferredConstraint))) { - context.approximateLength += 9; - constraintNode = constraint && typeToTypeNodeHelper(constraint, context); - } - } - return factory.createInferTypeNode(typeParameterToDeclarationWithConstraint(type, context, constraintNode)); - } - if (context.flags & 4 /* GenerateNamesForShadowedTypeParams */ && type.flags & 262144 /* TypeParameter */ && !isTypeSymbolAccessible(type.symbol, context.enclosingDeclaration)) { - var name2 = typeParameterToName(type, context); - context.approximateLength += idText(name2).length; - return factory.createTypeReferenceNode(factory.createIdentifier(idText(name2)), - /*typeArguments*/ - void 0); - } - if (type.symbol) { - return symbolToTypeNode(type.symbol, context, 788968 /* Type */); - } - var name_24 = (type === markerSuperTypeForCheck || type === markerSubTypeForCheck) && varianceTypeParameter && varianceTypeParameter.symbol ? (type === markerSubTypeForCheck ? "sub-" : "super-") + symbolName(varianceTypeParameter.symbol) : "?"; - return factory.createTypeReferenceNode(factory.createIdentifier(name_24), - /*typeArguments*/ - void 0); - } - if (type.flags & 1048576 /* Union */ && type.origin) { - type = type.origin; - } - if (type.flags & (1048576 /* Union */ | 2097152 /* Intersection */)) { - var types = type.flags & 1048576 /* Union */ ? formatUnionTypes(type.types) : type.types; - if (length(types) === 1) { - return typeToTypeNodeHelper(types[0], context); - } - var typeNodes = mapToTypeNodes(types, context, - /*isBareList*/ - true); - if (typeNodes && typeNodes.length > 0) { - return type.flags & 1048576 /* Union */ ? factory.createUnionTypeNode(typeNodes) : factory.createIntersectionTypeNode(typeNodes); - } - else { - if (!context.encounteredError && !(context.flags & 262144 /* AllowEmptyUnionOrIntersection */)) { - context.encounteredError = true; - } - return void 0; - } - } - if (objectFlags & (16 /* Anonymous */ | 32 /* Mapped */)) { - Debug.assert(!!(type.flags & 524288 /* Object */)); - return createAnonymousTypeNode(type); - } - if (type.flags & 4194304 /* Index */) { - var indexedType = type.type; - context.approximateLength += 6; - var indexTypeNode = typeToTypeNodeHelper(indexedType, context); - return factory.createTypeOperatorNode(143 /* KeyOfKeyword */, indexTypeNode); - } - if (type.flags & 134217728 /* TemplateLiteral */) { - var texts_1 = type.texts; - var types_1 = type.types; - var templateHead = factory.createTemplateHead(texts_1[0]); - var templateSpans = factory.createNodeArray(map(types_1, function (t, i) { return factory.createTemplateLiteralTypeSpan(typeToTypeNodeHelper(t, context), (i < types_1.length - 1 ? factory.createTemplateMiddle : factory.createTemplateTail)(texts_1[i + 1])); })); - context.approximateLength += 2; - return factory.createTemplateLiteralType(templateHead, templateSpans); - } - if (type.flags & 268435456 /* StringMapping */) { - var typeNode = typeToTypeNodeHelper(type.type, context); - return symbolToTypeNode(type.symbol, context, 788968 /* Type */, [typeNode]); - } - if (type.flags & 8388608 /* IndexedAccess */) { - var objectTypeNode = typeToTypeNodeHelper(type.objectType, context); - var indexTypeNode = typeToTypeNodeHelper(type.indexType, context); - context.approximateLength += 2; - return factory.createIndexedAccessTypeNode(objectTypeNode, indexTypeNode); - } - if (type.flags & 16777216 /* Conditional */) { - return visitAndTransformType(type, function (type2) { return conditionalTypeToTypeNode(type2); }); - } - if (type.flags & 33554432 /* Substitution */) { - return typeToTypeNodeHelper(type.baseType, context); - } - return Debug.fail("Should be unreachable."); - function conditionalTypeToTypeNode(type2) { - var checkTypeNode = typeToTypeNodeHelper(type2.checkType, context); - context.approximateLength += 15; - if (context.flags & 4 /* GenerateNamesForShadowedTypeParams */ && type2.root.isDistributive && !(type2.checkType.flags & 262144 /* TypeParameter */)) { - var newParam = createTypeParameter(createSymbol(262144 /* TypeParameter */, "T")); - var name_25 = typeParameterToName(newParam, context); - var newTypeVariable = factory.createTypeReferenceNode(name_25); - context.approximateLength += 37; - var newMapper = prependTypeMapping(type2.root.checkType, newParam, type2.mapper); - var saveInferTypeParameters2 = context.inferTypeParameters; - context.inferTypeParameters = type2.root.inferTypeParameters; - var extendsTypeNode2 = typeToTypeNodeHelper(instantiateType(type2.root.extendsType, newMapper), context); - context.inferTypeParameters = saveInferTypeParameters2; - var trueTypeNode2 = typeToTypeNodeOrCircularityElision(instantiateType(getTypeFromTypeNode(type2.root.node.trueType), newMapper)); - var falseTypeNode2 = typeToTypeNodeOrCircularityElision(instantiateType(getTypeFromTypeNode(type2.root.node.falseType), newMapper)); - return factory.createConditionalTypeNode(checkTypeNode, factory.createInferTypeNode(factory.createTypeParameterDeclaration( - /*modifiers*/ - void 0, factory.cloneNode(newTypeVariable.typeName))), factory.createConditionalTypeNode(factory.createTypeReferenceNode(factory.cloneNode(name_25)), typeToTypeNodeHelper(type2.checkType, context), factory.createConditionalTypeNode(newTypeVariable, extendsTypeNode2, trueTypeNode2, falseTypeNode2), factory.createKeywordTypeNode(146 /* NeverKeyword */)), factory.createKeywordTypeNode(146 /* NeverKeyword */)); - } - var saveInferTypeParameters = context.inferTypeParameters; - context.inferTypeParameters = type2.root.inferTypeParameters; - var extendsTypeNode = typeToTypeNodeHelper(type2.extendsType, context); - context.inferTypeParameters = saveInferTypeParameters; - var trueTypeNode = typeToTypeNodeOrCircularityElision(getTrueTypeFromConditionalType(type2)); - var falseTypeNode = typeToTypeNodeOrCircularityElision(getFalseTypeFromConditionalType(type2)); - return factory.createConditionalTypeNode(checkTypeNode, extendsTypeNode, trueTypeNode, falseTypeNode); - } - function typeToTypeNodeOrCircularityElision(type2) { - var _a2, _b2, _c; - if (type2.flags & 1048576 /* Union */) { - if ((_a2 = context.visitedTypes) == null ? void 0 : _a2.has(getTypeId(type2))) { - if (!(context.flags & 131072 /* AllowAnonymousIdentifier */)) { - context.encounteredError = true; - (_c = (_b2 = context.tracker) == null ? void 0 : _b2.reportCyclicStructureError) == null ? void 0 : _c.call(_b2); - } - return createElidedInformationPlaceholder(context); - } - return visitAndTransformType(type2, function (type3) { return typeToTypeNodeHelper(type3, context); }); - } - return typeToTypeNodeHelper(type2, context); - } - function isMappedTypeHomomorphic(type2) { - return !!getHomomorphicTypeVariable(type2); - } - function isHomomorphicMappedTypeWithNonHomomorphicInstantiation(type2) { - return !!type2.target && isMappedTypeHomomorphic(type2.target) && !isMappedTypeHomomorphic(type2); - } - function createMappedTypeNodeFromType(type2) { - var _a2; - Debug.assert(!!(type2.flags & 524288 /* Object */)); - var readonlyToken = type2.declaration.readonlyToken ? factory.createToken(type2.declaration.readonlyToken.kind) : void 0; - var questionToken = type2.declaration.questionToken ? factory.createToken(type2.declaration.questionToken.kind) : void 0; - var appropriateConstraintTypeNode; - var newTypeVariable; - var needsModifierPreservingWrapper = !isMappedTypeWithKeyofConstraintDeclaration(type2) && !(getModifiersTypeFromMappedType(type2).flags & 2 /* Unknown */) && context.flags & 4 /* GenerateNamesForShadowedTypeParams */ && !(getConstraintTypeFromMappedType(type2).flags & 262144 /* TypeParameter */ && ((_a2 = getConstraintOfTypeParameter(getConstraintTypeFromMappedType(type2))) == null ? void 0 : _a2.flags) & 4194304 /* Index */); - if (isMappedTypeWithKeyofConstraintDeclaration(type2)) { - if (isHomomorphicMappedTypeWithNonHomomorphicInstantiation(type2) && context.flags & 4 /* GenerateNamesForShadowedTypeParams */) { - var newParam = createTypeParameter(createSymbol(262144 /* TypeParameter */, "T")); - var name_26 = typeParameterToName(newParam, context); - newTypeVariable = factory.createTypeReferenceNode(name_26); - } - appropriateConstraintTypeNode = factory.createTypeOperatorNode(143 /* KeyOfKeyword */, newTypeVariable || typeToTypeNodeHelper(getModifiersTypeFromMappedType(type2), context)); - } - else if (needsModifierPreservingWrapper) { - var newParam = createTypeParameter(createSymbol(262144 /* TypeParameter */, "T")); - var name_27 = typeParameterToName(newParam, context); - newTypeVariable = factory.createTypeReferenceNode(name_27); - appropriateConstraintTypeNode = newTypeVariable; - } - else { - appropriateConstraintTypeNode = typeToTypeNodeHelper(getConstraintTypeFromMappedType(type2), context); - } - var typeParameterNode = typeParameterToDeclarationWithConstraint(getTypeParameterFromMappedType(type2), context, appropriateConstraintTypeNode); - var nameTypeNode = type2.declaration.nameType ? typeToTypeNodeHelper(getNameTypeFromMappedType(type2), context) : void 0; - var templateTypeNode = typeToTypeNodeHelper(removeMissingType(getTemplateTypeFromMappedType(type2), !!(getMappedTypeModifiers(type2) & 4 /* IncludeOptional */)), context); - var mappedTypeNode = factory.createMappedTypeNode(readonlyToken, typeParameterNode, nameTypeNode, questionToken, templateTypeNode, - /*members*/ - void 0); - context.approximateLength += 10; - var result = setEmitFlags(mappedTypeNode, 1 /* SingleLine */); - if (isHomomorphicMappedTypeWithNonHomomorphicInstantiation(type2) && context.flags & 4 /* GenerateNamesForShadowedTypeParams */) { - var originalConstraint = instantiateType(getConstraintOfTypeParameter(getTypeFromTypeNode(type2.declaration.typeParameter.constraint.type)) || unknownType, type2.mapper); - return factory.createConditionalTypeNode(typeToTypeNodeHelper(getModifiersTypeFromMappedType(type2), context), factory.createInferTypeNode(factory.createTypeParameterDeclaration( - /*modifiers*/ - void 0, factory.cloneNode(newTypeVariable.typeName), originalConstraint.flags & 2 /* Unknown */ ? void 0 : typeToTypeNodeHelper(originalConstraint, context))), result, factory.createKeywordTypeNode(146 /* NeverKeyword */)); - } - else if (needsModifierPreservingWrapper) { - return factory.createConditionalTypeNode(typeToTypeNodeHelper(getConstraintTypeFromMappedType(type2), context), factory.createInferTypeNode(factory.createTypeParameterDeclaration( - /*modifiers*/ - void 0, factory.cloneNode(newTypeVariable.typeName), factory.createTypeOperatorNode(143 /* KeyOfKeyword */, typeToTypeNodeHelper(getModifiersTypeFromMappedType(type2), context)))), result, factory.createKeywordTypeNode(146 /* NeverKeyword */)); - } - return result; - } - function createAnonymousTypeNode(type2) { - var _a2, _b2; - var typeId = type2.id; - var symbol = type2.symbol; - if (symbol) { - var isInstanceType = isClassInstanceSide(type2) ? 788968 /* Type */ : 111551 /* Value */; - if (isJSConstructor(symbol.valueDeclaration)) { - return symbolToTypeNode(symbol, context, isInstanceType); - } - else if (symbol.flags & 32 /* Class */ && !getBaseTypeVariableOfClass(symbol) && !(symbol.valueDeclaration && isClassLike(symbol.valueDeclaration) && context.flags & 2048 /* WriteClassExpressionAsTypeLiteral */ && (!isClassDeclaration(symbol.valueDeclaration) || isSymbolAccessible(symbol, context.enclosingDeclaration, isInstanceType, - /*shouldComputeAliasesToMakeVisible*/ - false).accessibility !== 0 /* Accessible */)) || symbol.flags & (384 /* Enum */ | 512 /* ValueModule */) || shouldWriteTypeOfFunctionSymbol()) { - return symbolToTypeNode(symbol, context, isInstanceType); - } - else if ((_a2 = context.visitedTypes) == null ? void 0 : _a2.has(typeId)) { - var typeAlias = getTypeAliasForTypeLiteral(type2); - if (typeAlias) { - return symbolToTypeNode(typeAlias, context, 788968 /* Type */); - } - else { - return createElidedInformationPlaceholder(context); - } - } - else { - return visitAndTransformType(type2, createTypeNodeFromObjectType); - } - } - else { - var isInstantiationExpressionType = !!(getObjectFlags(type2) & 8388608 /* InstantiationExpressionType */); - if (isInstantiationExpressionType) { - var instantiationExpressionType = type2; - if (isTypeQueryNode(instantiationExpressionType.node)) { - var typeNode = serializeExistingTypeNode(context, instantiationExpressionType.node); - if (typeNode) { - return typeNode; - } - } - if ((_b2 = context.visitedTypes) == null ? void 0 : _b2.has(typeId)) { - return createElidedInformationPlaceholder(context); - } - return visitAndTransformType(type2, createTypeNodeFromObjectType); - } - return createTypeNodeFromObjectType(type2); - } - function shouldWriteTypeOfFunctionSymbol() { - var _a3; - var isStaticMethodSymbol = !!(symbol.flags & 8192 /* Method */) && // typeof static method - some(symbol.declarations, function (declaration) { return isStatic(declaration); }); - var isNonLocalFunctionSymbol = !!(symbol.flags & 16 /* Function */) && (symbol.parent || // is exported function symbol - forEach(symbol.declarations, function (declaration) { return declaration.parent.kind === 312 /* SourceFile */ || declaration.parent.kind === 268; } /* ModuleBlock */)); - if (isStaticMethodSymbol || isNonLocalFunctionSymbol) { - return (!!(context.flags & 4096 /* UseTypeOfFunction */) || ((_a3 = context.visitedTypes) == null ? void 0 : _a3.has(typeId))) && // it is type of the symbol uses itself recursively - (!(context.flags & 8 /* UseStructuralFallback */) || isValueSymbolAccessible(symbol, context.enclosingDeclaration)); - } - } - } - function visitAndTransformType(type2, transform2) { - var _a2, _b2; - var typeId = type2.id; - var isConstructorObject = getObjectFlags(type2) & 16 /* Anonymous */ && type2.symbol && type2.symbol.flags & 32 /* Class */; - var id = getObjectFlags(type2) & 4 /* Reference */ && type2.node ? "N" + getNodeId(type2.node) : type2.flags & 16777216 /* Conditional */ ? "N" + getNodeId(type2.root.node) : type2.symbol ? (isConstructorObject ? "+" : "") + getSymbolId(type2.symbol) : void 0; - if (!context.visitedTypes) { - context.visitedTypes = /* @__PURE__ */ new Set(); - } - if (id && !context.symbolDepth) { - context.symbolDepth = /* @__PURE__ */ new Map(); - } - var links = context.enclosingDeclaration && getNodeLinks(context.enclosingDeclaration); - var key = "".concat(getTypeId(type2), "|").concat(context.flags); - if (links) { - links.serializedTypes || (links.serializedTypes = /* @__PURE__ */ new Map()); - } - var cachedResult = (_a2 = links == null ? void 0 : links.serializedTypes) == null ? void 0 : _a2.get(key); - if (cachedResult) { - if (cachedResult.truncating) { - context.truncating = true; - } - context.approximateLength += cachedResult.addedLength; - return deepCloneOrReuseNode(cachedResult.node); - } - var depth; - if (id) { - depth = context.symbolDepth.get(id) || 0; - if (depth > 10) { - return createElidedInformationPlaceholder(context); - } - context.symbolDepth.set(id, depth + 1); - } - context.visitedTypes.add(typeId); - var startLength = context.approximateLength; - var result = transform2(type2); - var addedLength = context.approximateLength - startLength; - if (!context.reportedDiagnostic && !context.encounteredError) { - (_b2 = links == null ? void 0 : links.serializedTypes) == null ? void 0 : _b2.set(key, { node: result, truncating: context.truncating, addedLength: addedLength }); - } - context.visitedTypes.delete(typeId); - if (id) { - context.symbolDepth.set(id, depth); - } - return result; - function deepCloneOrReuseNode(node) { - if (!nodeIsSynthesized(node) && getParseTreeNode(node) === node) { - return node; - } - return setTextRange(factory.cloneNode(visitEachChild(node, deepCloneOrReuseNode, nullTransformationContext, deepCloneOrReuseNodes)), node); - } - function deepCloneOrReuseNodes(nodes, visitor, test, start2, count) { - if (nodes && nodes.length === 0) { - return setTextRange(factory.createNodeArray( - /*elements*/ - void 0, nodes.hasTrailingComma), nodes); - } - return visitNodes2(nodes, visitor, test, start2, count); - } - } - function createTypeNodeFromObjectType(type2) { - if (isGenericMappedType(type2) || type2.containsError) { - return createMappedTypeNodeFromType(type2); - } - var resolved = resolveStructuredTypeMembers(type2); - if (!resolved.properties.length && !resolved.indexInfos.length) { - if (!resolved.callSignatures.length && !resolved.constructSignatures.length) { - context.approximateLength += 2; - return setEmitFlags(factory.createTypeLiteralNode( - /*members*/ - void 0), 1 /* SingleLine */); - } - if (resolved.callSignatures.length === 1 && !resolved.constructSignatures.length) { - var signature = resolved.callSignatures[0]; - var signatureNode = signatureToSignatureDeclarationHelper(signature, 184 /* FunctionType */, context); - return signatureNode; - } - if (resolved.constructSignatures.length === 1 && !resolved.callSignatures.length) { - var signature = resolved.constructSignatures[0]; - var signatureNode = signatureToSignatureDeclarationHelper(signature, 185 /* ConstructorType */, context); - return signatureNode; - } - } - var abstractSignatures = filter(resolved.constructSignatures, function (signature) { return !!(signature.flags & 4 /* Abstract */); }); - if (some(abstractSignatures)) { - var types = map(abstractSignatures, getOrCreateTypeFromSignature); - var typeElementCount = resolved.callSignatures.length + (resolved.constructSignatures.length - abstractSignatures.length) + resolved.indexInfos.length + // exclude `prototype` when writing a class expression as a type literal, as per - // the logic in `createTypeNodesFromResolvedType`. - (context.flags & 2048 /* WriteClassExpressionAsTypeLiteral */ ? countWhere(resolved.properties, function (p) { return !(p.flags & 4194304 /* Prototype */); }) : length(resolved.properties)); - if (typeElementCount) { - types.push(getResolvedTypeWithoutAbstractConstructSignatures(resolved)); - } - return typeToTypeNodeHelper(getIntersectionType(types), context); - } - var savedFlags = context.flags; - context.flags |= 4194304 /* InObjectTypeLiteral */; - var members = createTypeNodesFromResolvedType(resolved); - context.flags = savedFlags; - var typeLiteralNode = factory.createTypeLiteralNode(members); - context.approximateLength += 2; - setEmitFlags(typeLiteralNode, context.flags & 1024 /* MultilineObjectLiterals */ ? 0 : 1 /* SingleLine */); - return typeLiteralNode; - } - function typeReferenceToTypeNode(type2) { - var typeArguments = getTypeArguments(type2); - if (type2.target === globalArrayType || type2.target === globalReadonlyArrayType) { - if (context.flags & 2 /* WriteArrayAsGenericType */) { - var typeArgumentNode = typeToTypeNodeHelper(typeArguments[0], context); - return factory.createTypeReferenceNode(type2.target === globalArrayType ? "Array" : "ReadonlyArray", [typeArgumentNode]); - } - var elementType = typeToTypeNodeHelper(typeArguments[0], context); - var arrayType = factory.createArrayTypeNode(elementType); - return type2.target === globalArrayType ? arrayType : factory.createTypeOperatorNode(148 /* ReadonlyKeyword */, arrayType); - } - else if (type2.target.objectFlags & 8 /* Tuple */) { - typeArguments = sameMap(typeArguments, function (t, i) { return removeMissingType(t, !!(type2.target.elementFlags[i] & 2 /* Optional */)); }); - if (typeArguments.length > 0) { - var arity = getTypeReferenceArity(type2); - var tupleConstituentNodes = mapToTypeNodes(typeArguments.slice(0, arity), context); - if (tupleConstituentNodes) { - var labeledElementDeclarations = type2.target.labeledElementDeclarations; - for (var i = 0; i < tupleConstituentNodes.length; i++) { - var flags = type2.target.elementFlags[i]; - var labeledElementDeclaration = labeledElementDeclarations == null ? void 0 : labeledElementDeclarations[i]; - if (labeledElementDeclaration) { - tupleConstituentNodes[i] = factory.createNamedTupleMember(flags & 12 /* Variable */ ? factory.createToken(26 /* DotDotDotToken */) : void 0, factory.createIdentifier(unescapeLeadingUnderscores(getTupleElementLabel(labeledElementDeclaration))), flags & 2 /* Optional */ ? factory.createToken(58 /* QuestionToken */) : void 0, flags & 4 /* Rest */ ? factory.createArrayTypeNode(tupleConstituentNodes[i]) : tupleConstituentNodes[i]); - } - else { - tupleConstituentNodes[i] = flags & 12 /* Variable */ ? factory.createRestTypeNode(flags & 4 /* Rest */ ? factory.createArrayTypeNode(tupleConstituentNodes[i]) : tupleConstituentNodes[i]) : flags & 2 /* Optional */ ? factory.createOptionalTypeNode(tupleConstituentNodes[i]) : tupleConstituentNodes[i]; - } - } - var tupleTypeNode = setEmitFlags(factory.createTupleTypeNode(tupleConstituentNodes), 1 /* SingleLine */); - return type2.target.readonly ? factory.createTypeOperatorNode(148 /* ReadonlyKeyword */, tupleTypeNode) : tupleTypeNode; - } - } - if (context.encounteredError || context.flags & 524288 /* AllowEmptyTuple */) { - var tupleTypeNode = setEmitFlags(factory.createTupleTypeNode([]), 1 /* SingleLine */); - return type2.target.readonly ? factory.createTypeOperatorNode(148 /* ReadonlyKeyword */, tupleTypeNode) : tupleTypeNode; - } - context.encounteredError = true; - return void 0; - } - else if (context.flags & 2048 /* WriteClassExpressionAsTypeLiteral */ && type2.symbol.valueDeclaration && isClassLike(type2.symbol.valueDeclaration) && !isValueSymbolAccessible(type2.symbol, context.enclosingDeclaration)) { - return createAnonymousTypeNode(type2); - } - else { - var outerTypeParameters = type2.target.outerTypeParameters; - var i = 0; - var resultType = void 0; - if (outerTypeParameters) { - var length2 = outerTypeParameters.length; - while (i < length2) { - var start2 = i; - var parent2 = getParentSymbolOfTypeParameter(outerTypeParameters[i]); - do { - i++; - } while (i < length2 && getParentSymbolOfTypeParameter(outerTypeParameters[i]) === parent2); - if (!rangeEquals(outerTypeParameters, typeArguments, start2, i)) { - var typeArgumentSlice = mapToTypeNodes(typeArguments.slice(start2, i), context); - var flags2 = context.flags; - context.flags |= 16 /* ForbidIndexedAccessSymbolReferences */; - var ref = symbolToTypeNode(parent2, context, 788968 /* Type */, typeArgumentSlice); - context.flags = flags2; - resultType = !resultType ? ref : appendReferenceToType(resultType, ref); - } - } - } - var typeArgumentNodes = void 0; - if (typeArguments.length > 0) { - var typeParameterCount = (type2.target.typeParameters || emptyArray).length; - typeArgumentNodes = mapToTypeNodes(typeArguments.slice(i, typeParameterCount), context); - } - var flags = context.flags; - context.flags |= 16 /* ForbidIndexedAccessSymbolReferences */; - var finalRef = symbolToTypeNode(type2.symbol, context, 788968 /* Type */, typeArgumentNodes); - context.flags = flags; - return !resultType ? finalRef : appendReferenceToType(resultType, finalRef); - } - } - function appendReferenceToType(root, ref) { - var e_170, _t, e_171, _u; - if (isImportTypeNode(root)) { - var typeArguments = root.typeArguments; - var qualifier = root.qualifier; - if (qualifier) { - if (isIdentifier(qualifier)) { - if (typeArguments !== getIdentifierTypeArguments(qualifier)) { - qualifier = setIdentifierTypeArguments(factory.cloneNode(qualifier), typeArguments); - } - } - else { - if (typeArguments !== getIdentifierTypeArguments(qualifier.right)) { - qualifier = factory.updateQualifiedName(qualifier, qualifier.left, setIdentifierTypeArguments(factory.cloneNode(qualifier.right), typeArguments)); - } - } - } - typeArguments = ref.typeArguments; - var ids = getAccessStack(ref); - try { - for (var ids_1 = __values(ids), ids_1_1 = ids_1.next(); !ids_1_1.done; ids_1_1 = ids_1.next()) { - var id = ids_1_1.value; - qualifier = qualifier ? factory.createQualifiedName(qualifier, id) : id; - } - } - catch (e_170_1) { e_170 = { error: e_170_1 }; } - finally { - try { - if (ids_1_1 && !ids_1_1.done && (_t = ids_1.return)) _t.call(ids_1); - } - finally { if (e_170) throw e_170.error; } - } - return factory.updateImportTypeNode(root, root.argument, root.assertions, qualifier, typeArguments, root.isTypeOf); - } - else { - var typeArguments = root.typeArguments; - var typeName = root.typeName; - if (isIdentifier(typeName)) { - if (typeArguments !== getIdentifierTypeArguments(typeName)) { - typeName = setIdentifierTypeArguments(factory.cloneNode(typeName), typeArguments); - } - } - else { - if (typeArguments !== getIdentifierTypeArguments(typeName.right)) { - typeName = factory.updateQualifiedName(typeName, typeName.left, setIdentifierTypeArguments(factory.cloneNode(typeName.right), typeArguments)); - } - } - typeArguments = ref.typeArguments; - var ids = getAccessStack(ref); - try { - for (var ids_2 = __values(ids), ids_2_1 = ids_2.next(); !ids_2_1.done; ids_2_1 = ids_2.next()) { - var id = ids_2_1.value; - typeName = factory.createQualifiedName(typeName, id); - } - } - catch (e_171_1) { e_171 = { error: e_171_1 }; } - finally { - try { - if (ids_2_1 && !ids_2_1.done && (_u = ids_2.return)) _u.call(ids_2); - } - finally { if (e_171) throw e_171.error; } - } - return factory.updateTypeReferenceNode(root, typeName, typeArguments); - } - } - function getAccessStack(ref) { - var state = ref.typeName; - var ids = []; - while (!isIdentifier(state)) { - ids.unshift(state.right); - state = state.left; - } - ids.unshift(state); - return ids; - } - function createTypeNodesFromResolvedType(resolvedType) { - var e_172, _t, e_173, _u, e_174, _v, e_175, _w; - if (checkTruncationLength(context)) { - return [factory.createPropertySignature( - /*modifiers*/ - void 0, "...", - /*questionToken*/ - void 0, - /*type*/ - void 0)]; - } - var typeElements = []; - try { - for (var _x = __values(resolvedType.callSignatures), _y = _x.next(); !_y.done; _y = _x.next()) { - var signature = _y.value; - typeElements.push(signatureToSignatureDeclarationHelper(signature, 179 /* CallSignature */, context)); - } - } - catch (e_172_1) { e_172 = { error: e_172_1 }; } - finally { - try { - if (_y && !_y.done && (_t = _x.return)) _t.call(_x); - } - finally { if (e_172) throw e_172.error; } - } - try { - for (var _z = __values(resolvedType.constructSignatures), _10 = _z.next(); !_10.done; _10 = _z.next()) { - var signature = _10.value; - if (signature.flags & 4 /* Abstract */) - continue; - typeElements.push(signatureToSignatureDeclarationHelper(signature, 180 /* ConstructSignature */, context)); - } - } - catch (e_173_1) { e_173 = { error: e_173_1 }; } - finally { - try { - if (_10 && !_10.done && (_u = _z.return)) _u.call(_z); - } - finally { if (e_173) throw e_173.error; } - } - try { - for (var _11 = __values(resolvedType.indexInfos), _12 = _11.next(); !_12.done; _12 = _11.next()) { - var info = _12.value; - typeElements.push(indexInfoToIndexSignatureDeclarationHelper(info, context, resolvedType.objectFlags & 1024 /* ReverseMapped */ ? createElidedInformationPlaceholder(context) : void 0)); - } - } - catch (e_174_1) { e_174 = { error: e_174_1 }; } - finally { - try { - if (_12 && !_12.done && (_v = _11.return)) _v.call(_11); - } - finally { if (e_174) throw e_174.error; } - } - var properties = resolvedType.properties; - if (!properties) { - return typeElements; - } - var i = 0; - try { - for (var properties_1 = __values(properties), properties_1_1 = properties_1.next(); !properties_1_1.done; properties_1_1 = properties_1.next()) { - var propertySymbol = properties_1_1.value; - i++; - if (context.flags & 2048 /* WriteClassExpressionAsTypeLiteral */) { - if (propertySymbol.flags & 4194304 /* Prototype */) { - continue; - } - if (getDeclarationModifierFlagsFromSymbol(propertySymbol) & (8 /* Private */ | 16 /* Protected */) && context.tracker.reportPrivateInBaseOfClassExpression) { - context.tracker.reportPrivateInBaseOfClassExpression(unescapeLeadingUnderscores(propertySymbol.escapedName)); - } - } - if (checkTruncationLength(context) && i + 2 < properties.length - 1) { - typeElements.push(factory.createPropertySignature( - /*modifiers*/ - void 0, "... ".concat(properties.length - i, " more ..."), - /*questionToken*/ - void 0, - /*type*/ - void 0)); - addPropertyToElementList(properties[properties.length - 1], context, typeElements); - break; - } - addPropertyToElementList(propertySymbol, context, typeElements); - } - } - catch (e_175_1) { e_175 = { error: e_175_1 }; } - finally { - try { - if (properties_1_1 && !properties_1_1.done && (_w = properties_1.return)) _w.call(properties_1); - } - finally { if (e_175) throw e_175.error; } - } - return typeElements.length ? typeElements : void 0; - } - } - function createElidedInformationPlaceholder(context) { - context.approximateLength += 3; - if (!(context.flags & 1 /* NoTruncation */)) { - return factory.createTypeReferenceNode(factory.createIdentifier("..."), - /*typeArguments*/ - void 0); - } - return factory.createKeywordTypeNode(133 /* AnyKeyword */); - } - function shouldUsePlaceholderForProperty(propertySymbol, context) { - var _a; - return !!(getCheckFlags(propertySymbol) & 8192 /* ReverseMapped */) && (contains(context.reverseMappedStack, propertySymbol) || ((_a = context.reverseMappedStack) == null ? void 0 : _a[0]) && !(getObjectFlags(last(context.reverseMappedStack).links.propertyType) & 16 /* Anonymous */)); - } - function addPropertyToElementList(propertySymbol, context, typeElements) { - var e_176, _t; - var _a; - var propertyIsReverseMapped = !!(getCheckFlags(propertySymbol) & 8192 /* ReverseMapped */); - var propertyType = shouldUsePlaceholderForProperty(propertySymbol, context) ? anyType : getNonMissingTypeOfSymbol(propertySymbol); - var saveEnclosingDeclaration = context.enclosingDeclaration; - context.enclosingDeclaration = void 0; - if (context.tracker.canTrackSymbol && isLateBoundName(propertySymbol.escapedName)) { - if (propertySymbol.declarations) { - var decl = first(propertySymbol.declarations); - if (hasLateBindableName(decl)) { - if (isBinaryExpression(decl)) { - var name_28 = getNameOfDeclaration(decl); - if (name_28 && isElementAccessExpression(name_28) && isPropertyAccessEntityNameExpression(name_28.argumentExpression)) { - trackComputedName(name_28.argumentExpression, saveEnclosingDeclaration, context); - } - } - else { - trackComputedName(decl.name.expression, saveEnclosingDeclaration, context); - } - } - } - else { - context.tracker.reportNonSerializableProperty(symbolToString(propertySymbol)); - } - } - context.enclosingDeclaration = propertySymbol.valueDeclaration || ((_a = propertySymbol.declarations) == null ? void 0 : _a[0]) || saveEnclosingDeclaration; - var propertyName = getPropertyNameNodeForSymbol(propertySymbol, context); - context.enclosingDeclaration = saveEnclosingDeclaration; - context.approximateLength += symbolName(propertySymbol).length + 1; - var optionalToken = propertySymbol.flags & 16777216 /* Optional */ ? factory.createToken(58 /* QuestionToken */) : void 0; - if (propertySymbol.flags & (16 /* Function */ | 8192 /* Method */) && !getPropertiesOfObjectType(propertyType).length && !isReadonlySymbol(propertySymbol)) { - var signatures = getSignaturesOfType(filterType(propertyType, function (t) { return !(t.flags & 32768 /* Undefined */); }), 0 /* Call */); - try { - for (var signatures_1 = __values(signatures), signatures_1_1 = signatures_1.next(); !signatures_1_1.done; signatures_1_1 = signatures_1.next()) { - var signature = signatures_1_1.value; - var methodDeclaration = signatureToSignatureDeclarationHelper(signature, 173 /* MethodSignature */, context, { name: propertyName, questionToken: optionalToken }); - typeElements.push(preserveCommentsOn(methodDeclaration)); - } - } - catch (e_176_1) { e_176 = { error: e_176_1 }; } - finally { - try { - if (signatures_1_1 && !signatures_1_1.done && (_t = signatures_1.return)) _t.call(signatures_1); - } - finally { if (e_176) throw e_176.error; } - } - if (signatures.length || !optionalToken) { - return; - } - } - var propertyTypeNode; - if (shouldUsePlaceholderForProperty(propertySymbol, context)) { - propertyTypeNode = createElidedInformationPlaceholder(context); - } - else { - if (propertyIsReverseMapped) { - context.reverseMappedStack || (context.reverseMappedStack = []); - context.reverseMappedStack.push(propertySymbol); - } - propertyTypeNode = propertyType ? serializeTypeForDeclaration(context, propertyType, propertySymbol, saveEnclosingDeclaration) : factory.createKeywordTypeNode(133 /* AnyKeyword */); - if (propertyIsReverseMapped) { - context.reverseMappedStack.pop(); - } - } - var modifiers = isReadonlySymbol(propertySymbol) ? [factory.createToken(148 /* ReadonlyKeyword */)] : void 0; - if (modifiers) { - context.approximateLength += 9; - } - var propertySignature = factory.createPropertySignature(modifiers, propertyName, optionalToken, propertyTypeNode); - typeElements.push(preserveCommentsOn(propertySignature)); - function preserveCommentsOn(node) { - var _a2; - if (some(propertySymbol.declarations, function (d) { return d.kind === 355; } /* JSDocPropertyTag */)) { - var d = (_a2 = propertySymbol.declarations) == null ? void 0 : _a2.find(function (d2) { return d2.kind === 355; } /* JSDocPropertyTag */); - var commentText = getTextOfJSDocComment(d.comment); - if (commentText) { - setSyntheticLeadingComments(node, [{ kind: 3 /* MultiLineCommentTrivia */, text: "*\n * " + commentText.replace(/\n/g, "\n * ") + "\n ", pos: -1, end: -1, hasTrailingNewLine: true }]); - } - } - else if (propertySymbol.valueDeclaration) { - setCommentRange(node, propertySymbol.valueDeclaration); - } - return node; - } - } - function mapToTypeNodes(types, context, isBareList) { - var e_177, _t; - if (some(types)) { - if (checkTruncationLength(context)) { - if (!isBareList) { - return [factory.createTypeReferenceNode("...", - /*typeArguments*/ - void 0)]; - } - else if (types.length > 2) { - return [ - typeToTypeNodeHelper(types[0], context), - factory.createTypeReferenceNode("... ".concat(types.length - 2, " more ..."), - /*typeArguments*/ - void 0), - typeToTypeNodeHelper(types[types.length - 1], context) - ]; - } - } - var mayHaveNameCollisions = !(context.flags & 64 /* UseFullyQualifiedType */); - var seenNames = mayHaveNameCollisions ? createMultiMap() : void 0; - var result_2 = []; - var i = 0; - try { - for (var types_2 = __values(types), types_2_1 = types_2.next(); !types_2_1.done; types_2_1 = types_2.next()) { - var type = types_2_1.value; - i++; - if (checkTruncationLength(context) && i + 2 < types.length - 1) { - result_2.push(factory.createTypeReferenceNode("... ".concat(types.length - i, " more ..."), - /*typeArguments*/ - void 0)); - var typeNode2 = typeToTypeNodeHelper(types[types.length - 1], context); - if (typeNode2) { - result_2.push(typeNode2); - } - break; - } - context.approximateLength += 2; - var typeNode = typeToTypeNodeHelper(type, context); - if (typeNode) { - result_2.push(typeNode); - if (seenNames && isIdentifierTypeReference(typeNode)) { - seenNames.add(typeNode.typeName.escapedText, [type, result_2.length - 1]); - } - } - } - } - catch (e_177_1) { e_177 = { error: e_177_1 }; } - finally { - try { - if (types_2_1 && !types_2_1.done && (_t = types_2.return)) _t.call(types_2); - } - finally { if (e_177) throw e_177.error; } - } - if (seenNames) { - var saveContextFlags = context.flags; - context.flags |= 64 /* UseFullyQualifiedType */; - seenNames.forEach(function (types2) { - var e_178, _t; - if (!arrayIsHomogeneous(types2, function (_t, _u) { - var _v = __read(_t, 1), a = _v[0]; - var _w = __read(_u, 1), b = _w[0]; - return typesAreSameReference(a, b); - })) { - try { - for (var types2_1 = __values(types2), types2_1_1 = types2_1.next(); !types2_1_1.done; types2_1_1 = types2_1.next()) { - var _u = __read(types2_1_1.value, 2), type = _u[0], resultIndex = _u[1]; - result_2[resultIndex] = typeToTypeNodeHelper(type, context); - } - } - catch (e_178_1) { e_178 = { error: e_178_1 }; } - finally { - try { - if (types2_1_1 && !types2_1_1.done && (_t = types2_1.return)) _t.call(types2_1); - } - finally { if (e_178) throw e_178.error; } - } - } - }); - context.flags = saveContextFlags; - } - return result_2; - } - } - function typesAreSameReference(a, b) { - return a === b || !!a.symbol && a.symbol === b.symbol || !!a.aliasSymbol && a.aliasSymbol === b.aliasSymbol; - } - function indexInfoToIndexSignatureDeclarationHelper(indexInfo, context, typeNode) { - var name = getNameFromIndexInfo(indexInfo) || "x"; - var indexerTypeNode = typeToTypeNodeHelper(indexInfo.keyType, context); - var indexingParameter = factory.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, name, - /*questionToken*/ - void 0, indexerTypeNode, - /*initializer*/ - void 0); - if (!typeNode) { - typeNode = typeToTypeNodeHelper(indexInfo.type || anyType, context); - } - if (!indexInfo.type && !(context.flags & 2097152 /* AllowEmptyIndexInfoType */)) { - context.encounteredError = true; - } - context.approximateLength += name.length + 4; - return factory.createIndexSignature(indexInfo.isReadonly ? [factory.createToken(148 /* ReadonlyKeyword */)] : void 0, [indexingParameter], typeNode); - } - function signatureToSignatureDeclarationHelper(signature, kind, context, options) { - var e_179, _t; - var _u, _v, _w, _x, _y; - var _a; - var suppressAny = context.flags & 256 /* SuppressAnyReturnType */; - if (suppressAny) - context.flags &= ~256 /* SuppressAnyReturnType */; - context.approximateLength += 3; - var typeParameters; - var typeArguments; - if (context.flags & 32 /* WriteTypeArgumentsOfSignature */ && signature.target && signature.mapper && signature.target.typeParameters) { - typeArguments = signature.target.typeParameters.map(function (parameter) { return typeToTypeNodeHelper(instantiateType(parameter, signature.mapper), context); }); - } - else { - typeParameters = signature.typeParameters && signature.typeParameters.map(function (parameter) { return typeParameterToDeclaration(parameter, context); }); - } - var expandedParams = getExpandedParameters(signature, - /*skipUnionExpanding*/ - true)[0]; - var cleanup; - if (context.enclosingDeclaration && signature.declaration && signature.declaration !== context.enclosingDeclaration && !isInJSFile(signature.declaration) && some(expandedParams)) { - var existingFakeScope = getNodeLinks(context.enclosingDeclaration).fakeScopeForSignatureDeclaration ? context.enclosingDeclaration : void 0; - Debug.assertOptionalNode(existingFakeScope, isBlock); - var locals_1 = (_u = (existingFakeScope == null ? void 0 : existingFakeScope.locals)) !== null && _u !== void 0 ? _u : createSymbolTable(); - var newLocals_1; - try { - for (var expandedParams_1 = __values(expandedParams), expandedParams_1_1 = expandedParams_1.next(); !expandedParams_1_1.done; expandedParams_1_1 = expandedParams_1.next()) { - var param = expandedParams_1_1.value; - if (!locals_1.has(param.escapedName)) { - newLocals_1 = append(newLocals_1, param.escapedName); - locals_1.set(param.escapedName, param); - } - } - } - catch (e_179_1) { e_179 = { error: e_179_1 }; } - finally { - try { - if (expandedParams_1_1 && !expandedParams_1_1.done && (_t = expandedParams_1.return)) _t.call(expandedParams_1); - } - finally { if (e_179) throw e_179.error; } - } - if (newLocals_1) { - var removeNewLocals2_1 = function () { - forEach(newLocals_1, function (s) { return locals_1.delete(s); }); - }; - var removeNewLocals = removeNewLocals2_1; - if (existingFakeScope) { - cleanup = removeNewLocals2_1; - } - else { - var fakeScope = parseNodeFactory.createBlock(emptyArray); - getNodeLinks(fakeScope).fakeScopeForSignatureDeclaration = true; - fakeScope.locals = locals_1; - var saveEnclosingDeclaration_1 = context.enclosingDeclaration; - setParent(fakeScope, saveEnclosingDeclaration_1); - context.enclosingDeclaration = fakeScope; - cleanup = function () { - context.enclosingDeclaration = saveEnclosingDeclaration_1; - removeNewLocals2_1(); - }; - } - } - } - var parameters = (some(expandedParams, function (p) { return p !== expandedParams[expandedParams.length - 1] && !!(getCheckFlags(p) & 32768 /* RestParameter */); }) ? signature.parameters : expandedParams).map(function (parameter) { return symbolToParameterDeclaration(parameter, context, kind === 176 /* Constructor */, options == null ? void 0 : options.privateSymbolVisitor, options == null ? void 0 : options.bundledImports); }); - var thisParameter = context.flags & 33554432 /* OmitThisParameter */ ? void 0 : tryGetThisParameterDeclaration(signature, context); - if (thisParameter) { - parameters.unshift(thisParameter); - } - var returnTypeNode; - var typePredicate = getTypePredicateOfSignature(signature); - if (typePredicate) { - var assertsModifier = typePredicate.kind === 2 /* AssertsThis */ || typePredicate.kind === 3 /* AssertsIdentifier */ ? factory.createToken(131 /* AssertsKeyword */) : void 0; - var parameterName = typePredicate.kind === 1 /* Identifier */ || typePredicate.kind === 3 /* AssertsIdentifier */ ? setEmitFlags(factory.createIdentifier(typePredicate.parameterName), 16777216 /* NoAsciiEscaping */) : factory.createThisTypeNode(); - var typeNode = typePredicate.type && typeToTypeNodeHelper(typePredicate.type, context); - returnTypeNode = factory.createTypePredicateNode(assertsModifier, parameterName, typeNode); - } - else { - var returnType = getReturnTypeOfSignature(signature); - if (returnType && !(suppressAny && isTypeAny(returnType))) { - returnTypeNode = serializeReturnTypeForSignature(context, returnType, signature, options == null ? void 0 : options.privateSymbolVisitor, options == null ? void 0 : options.bundledImports); - } - else if (!suppressAny) { - returnTypeNode = factory.createKeywordTypeNode(133 /* AnyKeyword */); - } - } - var modifiers = options == null ? void 0 : options.modifiers; - if (kind === 185 /* ConstructorType */ && signature.flags & 4 /* Abstract */) { - var flags = modifiersToFlags(modifiers); - modifiers = factory.createModifiersFromModifierFlags(flags | 256 /* Abstract */); - } - var node = kind === 179 /* CallSignature */ ? factory.createCallSignature(typeParameters, parameters, returnTypeNode) : kind === 180 /* ConstructSignature */ ? factory.createConstructSignature(typeParameters, parameters, returnTypeNode) : kind === 173 /* MethodSignature */ ? factory.createMethodSignature(modifiers, (_v = (options == null ? void 0 : options.name)) !== null && _v !== void 0 ? _v : factory.createIdentifier(""), options == null ? void 0 : options.questionToken, typeParameters, parameters, returnTypeNode) : kind === 174 /* MethodDeclaration */ ? factory.createMethodDeclaration(modifiers, - /*asteriskToken*/ - void 0, (_w = (options == null ? void 0 : options.name)) !== null && _w !== void 0 ? _w : factory.createIdentifier(""), - /*questionToken*/ - void 0, typeParameters, parameters, returnTypeNode, - /*body*/ - void 0) : kind === 176 /* Constructor */ ? factory.createConstructorDeclaration(modifiers, parameters, - /*body*/ - void 0) : kind === 177 /* GetAccessor */ ? factory.createGetAccessorDeclaration(modifiers, (_x = (options == null ? void 0 : options.name)) !== null && _x !== void 0 ? _x : factory.createIdentifier(""), parameters, returnTypeNode, - /*body*/ - void 0) : kind === 178 /* SetAccessor */ ? factory.createSetAccessorDeclaration(modifiers, (_y = (options == null ? void 0 : options.name)) !== null && _y !== void 0 ? _y : factory.createIdentifier(""), parameters, - /*body*/ - void 0) : kind === 181 /* IndexSignature */ ? factory.createIndexSignature(modifiers, parameters, returnTypeNode) : kind === 324 /* JSDocFunctionType */ ? factory.createJSDocFunctionType(parameters, returnTypeNode) : kind === 184 /* FunctionType */ ? factory.createFunctionTypeNode(typeParameters, parameters, returnTypeNode !== null && returnTypeNode !== void 0 ? returnTypeNode : factory.createTypeReferenceNode(factory.createIdentifier(""))) : kind === 185 /* ConstructorType */ ? factory.createConstructorTypeNode(modifiers, typeParameters, parameters, returnTypeNode !== null && returnTypeNode !== void 0 ? returnTypeNode : factory.createTypeReferenceNode(factory.createIdentifier(""))) : kind === 262 /* FunctionDeclaration */ ? factory.createFunctionDeclaration(modifiers, - /*asteriskToken*/ - void 0, (options == null ? void 0 : options.name) ? cast(options.name, isIdentifier) : factory.createIdentifier(""), typeParameters, parameters, returnTypeNode, - /*body*/ - void 0) : kind === 218 /* FunctionExpression */ ? factory.createFunctionExpression(modifiers, - /*asteriskToken*/ - void 0, (options == null ? void 0 : options.name) ? cast(options.name, isIdentifier) : factory.createIdentifier(""), typeParameters, parameters, returnTypeNode, factory.createBlock([])) : kind === 219 /* ArrowFunction */ ? factory.createArrowFunction(modifiers, typeParameters, parameters, returnTypeNode, - /*equalsGreaterThanToken*/ - void 0, factory.createBlock([])) : Debug.assertNever(kind); - if (typeArguments) { - node.typeArguments = factory.createNodeArray(typeArguments); - } - if (((_a = signature.declaration) == null ? void 0 : _a.kind) === 330 /* JSDocSignature */ && signature.declaration.parent.kind === 346 /* JSDocOverloadTag */) { - var comment = getTextOfNode(signature.declaration.parent.parent, - /*includeTrivia*/ - true).slice(2, -2).split(/\r\n|\n|\r/).map(function (line) { return line.replace(/^\s+/, " "); }).join("\n"); - addSyntheticLeadingComment(node, 3 /* MultiLineCommentTrivia */, comment, - /*hasTrailingNewLine*/ - true); - } - cleanup == null ? void 0 : cleanup(); - return node; - } - function tryGetThisParameterDeclaration(signature, context) { - if (signature.thisParameter) { - return symbolToParameterDeclaration(signature.thisParameter, context); - } - if (signature.declaration && isInJSFile(signature.declaration)) { - var thisTag = getJSDocThisTag(signature.declaration); - if (thisTag && thisTag.typeExpression) { - return factory.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, "this", - /*questionToken*/ - void 0, typeToTypeNodeHelper(getTypeFromTypeNode(thisTag.typeExpression), context)); - } - } - } - function typeParameterToDeclarationWithConstraint(type, context, constraintNode) { - var savedContextFlags = context.flags; - context.flags &= ~512 /* WriteTypeParametersInQualifiedName */; - var modifiers = factory.createModifiersFromModifierFlags(getTypeParameterModifiers(type)); - var name = typeParameterToName(type, context); - var defaultParameter = getDefaultFromTypeParameter(type); - var defaultParameterNode = defaultParameter && typeToTypeNodeHelper(defaultParameter, context); - context.flags = savedContextFlags; - return factory.createTypeParameterDeclaration(modifiers, name, constraintNode, defaultParameterNode); - } - function typeParameterToDeclaration(type, context, constraint) { - if (constraint === void 0) { constraint = getConstraintOfTypeParameter(type); } - var constraintNode = constraint && typeToTypeNodeHelper(constraint, context); - return typeParameterToDeclarationWithConstraint(type, context, constraintNode); - } - function symbolToParameterDeclaration(parameterSymbol, context, preserveModifierFlags, privateSymbolVisitor, bundledImports) { - var parameterDeclaration = getDeclarationOfKind(parameterSymbol, 169 /* Parameter */); - if (!parameterDeclaration && !isTransientSymbol(parameterSymbol)) { - parameterDeclaration = getDeclarationOfKind(parameterSymbol, 348 /* JSDocParameterTag */); - } - var parameterType = getTypeOfSymbol(parameterSymbol); - if (parameterDeclaration && isRequiredInitializedParameter(parameterDeclaration)) { - parameterType = getOptionalType(parameterType); - } - var parameterTypeNode = serializeTypeForDeclaration(context, parameterType, parameterSymbol, context.enclosingDeclaration, privateSymbolVisitor, bundledImports); - var modifiers = !(context.flags & 8192 /* OmitParameterModifiers */) && preserveModifierFlags && parameterDeclaration && canHaveModifiers(parameterDeclaration) ? map(getModifiers(parameterDeclaration), factory.cloneNode) : void 0; - var isRest = parameterDeclaration && isRestParameter(parameterDeclaration) || getCheckFlags(parameterSymbol) & 32768 /* RestParameter */; - var dotDotDotToken = isRest ? factory.createToken(26 /* DotDotDotToken */) : void 0; - var name = parameterDeclaration ? parameterDeclaration.name ? parameterDeclaration.name.kind === 80 /* Identifier */ ? setEmitFlags(factory.cloneNode(parameterDeclaration.name), 16777216 /* NoAsciiEscaping */) : parameterDeclaration.name.kind === 166 /* QualifiedName */ ? setEmitFlags(factory.cloneNode(parameterDeclaration.name.right), 16777216 /* NoAsciiEscaping */) : cloneBindingName(parameterDeclaration.name) : symbolName(parameterSymbol) : symbolName(parameterSymbol); - var isOptional = parameterDeclaration && isOptionalParameter(parameterDeclaration) || getCheckFlags(parameterSymbol) & 16384 /* OptionalParameter */; - var questionToken = isOptional ? factory.createToken(58 /* QuestionToken */) : void 0; - var parameterNode = factory.createParameterDeclaration(modifiers, dotDotDotToken, name, questionToken, parameterTypeNode, - /*initializer*/ - void 0); - context.approximateLength += symbolName(parameterSymbol).length + 3; - return parameterNode; - function cloneBindingName(node) { - return elideInitializerAndSetEmitFlags(node); - function elideInitializerAndSetEmitFlags(node2) { - if (context.tracker.canTrackSymbol && isComputedPropertyName(node2) && isLateBindableName(node2)) { - trackComputedName(node2.expression, context.enclosingDeclaration, context); - } - var visited = visitEachChild(node2, elideInitializerAndSetEmitFlags, nullTransformationContext, - /*nodesVisitor*/ - void 0, elideInitializerAndSetEmitFlags); - if (isBindingElement(visited)) { - visited = factory.updateBindingElement(visited, visited.dotDotDotToken, visited.propertyName, visited.name, - /*initializer*/ - void 0); - } - if (!nodeIsSynthesized(visited)) { - visited = factory.cloneNode(visited); - } - return setEmitFlags(visited, 1 /* SingleLine */ | 16777216 /* NoAsciiEscaping */); - } - } - } - function trackComputedName(accessExpression, enclosingDeclaration, context) { - if (!context.tracker.canTrackSymbol) - return; - var firstIdentifier = getFirstIdentifier(accessExpression); - var name = resolveName(firstIdentifier, firstIdentifier.escapedText, 111551 /* Value */ | 1048576 /* ExportValue */, - /*nameNotFoundMessage*/ - void 0, - /*nameArg*/ - void 0, - /*isUse*/ - true); - if (name) { - context.tracker.trackSymbol(name, enclosingDeclaration, 111551 /* Value */); - } - } - function lookupSymbolChain(symbol, context, meaning, yieldModuleSymbol) { - context.tracker.trackSymbol(symbol, context.enclosingDeclaration, meaning); - return lookupSymbolChainWorker(symbol, context, meaning, yieldModuleSymbol); - } - function lookupSymbolChainWorker(symbol, context, meaning, yieldModuleSymbol) { - var chain; - var isTypeParameter = symbol.flags & 262144 /* TypeParameter */; - if (!isTypeParameter && (context.enclosingDeclaration || context.flags & 64 /* UseFullyQualifiedType */) && !(context.flags & 134217728 /* DoNotIncludeSymbolChain */)) { - chain = Debug.checkDefined(getSymbolChain(symbol, meaning, - /*endOfChain*/ - true)); - Debug.assert(chain && chain.length > 0); - } - else { - chain = [symbol]; - } - return chain; - function getSymbolChain(symbol2, meaning2, endOfChain) { - var e_180, _t; - var accessibleSymbolChain = getAccessibleSymbolChain(symbol2, context.enclosingDeclaration, meaning2, !!(context.flags & 128 /* UseOnlyExternalAliasing */)); - var parentSpecifiers; - if (!accessibleSymbolChain || needsQualification(accessibleSymbolChain[0], context.enclosingDeclaration, accessibleSymbolChain.length === 1 ? meaning2 : getQualifiedLeftMeaning(meaning2))) { - var parents_1 = getContainersOfSymbol(accessibleSymbolChain ? accessibleSymbolChain[0] : symbol2, context.enclosingDeclaration, meaning2); - if (length(parents_1)) { - parentSpecifiers = parents_1.map(function (symbol3) { return some(symbol3.declarations, hasNonGlobalAugmentationExternalModuleSymbol) ? getSpecifierForModuleSymbol(symbol3, context) : void 0; }); - var indices = parents_1.map(function (_, i) { return i; }); - indices.sort(sortByBestName); - var sortedParents = indices.map(function (i) { return parents_1[i]; }); - try { - for (var sortedParents_1 = __values(sortedParents), sortedParents_1_1 = sortedParents_1.next(); !sortedParents_1_1.done; sortedParents_1_1 = sortedParents_1.next()) { - var parent2 = sortedParents_1_1.value; - var parentChain = getSymbolChain(parent2, getQualifiedLeftMeaning(meaning2), - /*endOfChain*/ - false); - if (parentChain) { - if (parent2.exports && parent2.exports.get("export=" /* ExportEquals */) && getSymbolIfSameReference(parent2.exports.get("export=" /* ExportEquals */), symbol2)) { - accessibleSymbolChain = parentChain; - break; - } - accessibleSymbolChain = parentChain.concat(accessibleSymbolChain || [getAliasForSymbolInContainer(parent2, symbol2) || symbol2]); - break; - } - } - } - catch (e_180_1) { e_180 = { error: e_180_1 }; } - finally { - try { - if (sortedParents_1_1 && !sortedParents_1_1.done && (_t = sortedParents_1.return)) _t.call(sortedParents_1); - } - finally { if (e_180) throw e_180.error; } - } - } - } - if (accessibleSymbolChain) { - return accessibleSymbolChain; - } - if ( - // If this is the last part of outputting the symbol, always output. The cases apply only to parent symbols. - endOfChain || // If a parent symbol is an anonymous type, don't write it. - !(symbol2.flags & (2048 /* TypeLiteral */ | 4096 /* ObjectLiteral */))) { - if (!endOfChain && !yieldModuleSymbol && !!forEach(symbol2.declarations, hasNonGlobalAugmentationExternalModuleSymbol)) { - return; - } - return [symbol2]; - } - function sortByBestName(a, b) { - var specifierA = parentSpecifiers[a]; - var specifierB = parentSpecifiers[b]; - if (specifierA && specifierB) { - var isBRelative = pathIsRelative(specifierB); - if (pathIsRelative(specifierA) === isBRelative) { - return countPathComponents(specifierA) - countPathComponents(specifierB); - } - if (isBRelative) { - return -1; - } - return 1; - } - return 0; - } - } - } - function typeParametersToTypeParameterDeclarations(symbol, context) { - var typeParameterNodes; - var targetSymbol = getTargetSymbol(symbol); - if (targetSymbol.flags & (32 /* Class */ | 64 /* Interface */ | 524288 /* TypeAlias */)) { - typeParameterNodes = factory.createNodeArray(map(getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(symbol), function (tp) { return typeParameterToDeclaration(tp, context); })); - } - return typeParameterNodes; - } - function lookupTypeParameterNodes(chain, index, context) { - var _a; - Debug.assert(chain && 0 <= index && index < chain.length); - var symbol = chain[index]; - var symbolId = getSymbolId(symbol); - if ((_a = context.typeParameterSymbolList) == null ? void 0 : _a.has(symbolId)) { - return void 0; - } - (context.typeParameterSymbolList || (context.typeParameterSymbolList = /* @__PURE__ */ new Set())).add(symbolId); - var typeParameterNodes; - if (context.flags & 512 /* WriteTypeParametersInQualifiedName */ && index < chain.length - 1) { - var parentSymbol = symbol; - var nextSymbol_1 = chain[index + 1]; - if (getCheckFlags(nextSymbol_1) & 1 /* Instantiated */) { - var params = getTypeParametersOfClassOrInterface(parentSymbol.flags & 2097152 /* Alias */ ? resolveAlias(parentSymbol) : parentSymbol); - typeParameterNodes = mapToTypeNodes(map(params, function (t) { return getMappedType(t, nextSymbol_1.links.mapper); }), context); - } - else { - typeParameterNodes = typeParametersToTypeParameterDeclarations(symbol, context); - } - } - return typeParameterNodes; - } - function getTopmostIndexedAccessType(top) { - if (isIndexedAccessTypeNode(top.objectType)) { - return getTopmostIndexedAccessType(top.objectType); - } - return top; - } - function getSpecifierForModuleSymbol(symbol, context, overrideImportMode) { - var e_181, _t; - var _u; - var file = getDeclarationOfKind(symbol, 312 /* SourceFile */); - if (!file) { - var equivalentFileSymbol = firstDefined(symbol.declarations, function (d) { return getFileSymbolIfFileSymbolExportEqualsContainer(d, symbol); }); - if (equivalentFileSymbol) { - file = getDeclarationOfKind(equivalentFileSymbol, 312 /* SourceFile */); - } - } - if (file && file.moduleName !== void 0) { - return file.moduleName; - } - if (!file) { - if (context.tracker.trackReferencedAmbientModule) { - var ambientDecls = filter(symbol.declarations, isAmbientModule); - if (length(ambientDecls)) { - try { - for (var ambientDecls_1 = __values(ambientDecls), ambientDecls_1_1 = ambientDecls_1.next(); !ambientDecls_1_1.done; ambientDecls_1_1 = ambientDecls_1.next()) { - var decl = ambientDecls_1_1.value; - context.tracker.trackReferencedAmbientModule(decl, symbol); - } - } - catch (e_181_1) { e_181 = { error: e_181_1 }; } - finally { - try { - if (ambientDecls_1_1 && !ambientDecls_1_1.done && (_t = ambientDecls_1.return)) _t.call(ambientDecls_1); - } - finally { if (e_181) throw e_181.error; } - } - } - } - if (ambientModuleSymbolRegex.test(symbol.escapedName)) { - return symbol.escapedName.substring(1, symbol.escapedName.length - 1); - } - } - if (!context.enclosingDeclaration || !context.tracker.moduleResolverHost) { - if (ambientModuleSymbolRegex.test(symbol.escapedName)) { - return symbol.escapedName.substring(1, symbol.escapedName.length - 1); - } - return getSourceFileOfNode(getNonAugmentationDeclaration(symbol)).fileName; - } - var contextFile = getSourceFileOfNode(getOriginalNode(context.enclosingDeclaration)); - var resolutionMode = overrideImportMode || (contextFile == null ? void 0 : contextFile.impliedNodeFormat); - var cacheKey = createModeAwareCacheKey(contextFile.path, resolutionMode); - var links = getSymbolLinks(symbol); - var specifier = links.specifierCache && links.specifierCache.get(cacheKey); - if (!specifier) { - var isBundle2 = !!outFile(compilerOptions); - var moduleResolverHost = context.tracker.moduleResolverHost; - var specifierCompilerOptions = isBundle2 ? __assign(__assign({}, compilerOptions), { baseUrl: moduleResolverHost.getCommonSourceDirectory() }) : compilerOptions; - specifier = first(getModuleSpecifiers(symbol, checker, specifierCompilerOptions, contextFile, moduleResolverHost, { - importModuleSpecifierPreference: isBundle2 ? "non-relative" : "project-relative", - importModuleSpecifierEnding: isBundle2 ? "minimal" : resolutionMode === 99 /* ESNext */ ? "js" : void 0 - }, { overrideImportMode: overrideImportMode })); - (_u = links.specifierCache) !== null && _u !== void 0 ? _u : (links.specifierCache = /* @__PURE__ */ new Map()); - links.specifierCache.set(cacheKey, specifier); - } - return specifier; - } - function symbolToEntityNameNode(symbol) { - var identifier = factory.createIdentifier(unescapeLeadingUnderscores(symbol.escapedName)); - return symbol.parent ? factory.createQualifiedName(symbolToEntityNameNode(symbol.parent), identifier) : identifier; - } - function symbolToTypeNode(symbol, context, meaning, overrideTypeArguments) { - var _a, _b, _c, _d; - var chain = lookupSymbolChain(symbol, context, meaning, !(context.flags & 16384 /* UseAliasDefinedOutsideCurrentScope */)); - var isTypeOf = meaning === 111551 /* Value */; - if (some(chain[0].declarations, hasNonGlobalAugmentationExternalModuleSymbol)) { - var nonRootParts = chain.length > 1 ? createAccessFromSymbolChain(chain, chain.length - 1, 1) : void 0; - var typeParameterNodes = overrideTypeArguments || lookupTypeParameterNodes(chain, 0, context); - var contextFile = getSourceFileOfNode(getOriginalNode(context.enclosingDeclaration)); - var targetFile = getSourceFileOfModule(chain[0]); - var specifier = void 0; - var assertion = void 0; - if (getEmitModuleResolutionKind(compilerOptions) === 3 /* Node16 */ || getEmitModuleResolutionKind(compilerOptions) === 99 /* NodeNext */) { - if ((targetFile == null ? void 0 : targetFile.impliedNodeFormat) === 99 /* ESNext */ && targetFile.impliedNodeFormat !== (contextFile == null ? void 0 : contextFile.impliedNodeFormat)) { - specifier = getSpecifierForModuleSymbol(chain[0], context, 99 /* ESNext */); - assertion = factory.createImportTypeAssertionContainer(factory.createAssertClause(factory.createNodeArray([ - factory.createAssertEntry(factory.createStringLiteral("resolution-mode"), factory.createStringLiteral("import")) - ]))); - (_b = (_a = context.tracker).reportImportTypeNodeResolutionModeOverride) == null ? void 0 : _b.call(_a); - } - } - if (!specifier) { - specifier = getSpecifierForModuleSymbol(chain[0], context); - } - if (!(context.flags & 67108864 /* AllowNodeModulesRelativePaths */) && getEmitModuleResolutionKind(compilerOptions) !== 1 /* Classic */ && specifier.indexOf("/node_modules/") >= 0) { - var oldSpecifier = specifier; - if (getEmitModuleResolutionKind(compilerOptions) === 3 /* Node16 */ || getEmitModuleResolutionKind(compilerOptions) === 99 /* NodeNext */) { - var swappedMode = (contextFile == null ? void 0 : contextFile.impliedNodeFormat) === 99 /* ESNext */ ? 1 /* CommonJS */ : 99 /* ESNext */; - specifier = getSpecifierForModuleSymbol(chain[0], context, swappedMode); - if (specifier.indexOf("/node_modules/") >= 0) { - specifier = oldSpecifier; - } - else { - assertion = factory.createImportTypeAssertionContainer(factory.createAssertClause(factory.createNodeArray([ - factory.createAssertEntry(factory.createStringLiteral("resolution-mode"), factory.createStringLiteral(swappedMode === 99 /* ESNext */ ? "import" : "require")) - ]))); - (_d = (_c = context.tracker).reportImportTypeNodeResolutionModeOverride) == null ? void 0 : _d.call(_c); - } - } - if (!assertion) { - context.encounteredError = true; - if (context.tracker.reportLikelyUnsafeImportRequiredError) { - context.tracker.reportLikelyUnsafeImportRequiredError(oldSpecifier); - } - } - } - var lit = factory.createLiteralTypeNode(factory.createStringLiteral(specifier)); - if (context.tracker.trackExternalModuleSymbolOfImportTypeNode) - context.tracker.trackExternalModuleSymbolOfImportTypeNode(chain[0]); - context.approximateLength += specifier.length + 10; - if (!nonRootParts || isEntityName(nonRootParts)) { - if (nonRootParts) { - var lastId = isIdentifier(nonRootParts) ? nonRootParts : nonRootParts.right; - setIdentifierTypeArguments(lastId, - /*typeArguments*/ - void 0); - } - return factory.createImportTypeNode(lit, assertion, nonRootParts, typeParameterNodes, isTypeOf); - } - else { - var splitNode = getTopmostIndexedAccessType(nonRootParts); - var qualifier = splitNode.objectType.typeName; - return factory.createIndexedAccessTypeNode(factory.createImportTypeNode(lit, assertion, qualifier, typeParameterNodes, isTypeOf), splitNode.indexType); - } - } - var entityName = createAccessFromSymbolChain(chain, chain.length - 1, 0); - if (isIndexedAccessTypeNode(entityName)) { - return entityName; - } - if (isTypeOf) { - return factory.createTypeQueryNode(entityName); - } - else { - var lastId = isIdentifier(entityName) ? entityName : entityName.right; - var lastTypeArgs = getIdentifierTypeArguments(lastId); - setIdentifierTypeArguments(lastId, - /*typeArguments*/ - void 0); - return factory.createTypeReferenceNode(entityName, lastTypeArgs); - } - function createAccessFromSymbolChain(chain2, index, stopper) { - var typeParameterNodes = index === chain2.length - 1 ? overrideTypeArguments : lookupTypeParameterNodes(chain2, index, context); - var symbol2 = chain2[index]; - var parent2 = chain2[index - 1]; - var symbolName2; - if (index === 0) { - context.flags |= 16777216 /* InInitialEntityName */; - symbolName2 = getNameOfSymbolAsWritten(symbol2, context); - context.approximateLength += (symbolName2 ? symbolName2.length : 0) + 1; - context.flags ^= 16777216 /* InInitialEntityName */; - } - else { - if (parent2 && getExportsOfSymbol(parent2)) { - var exports_3 = getExportsOfSymbol(parent2); - forEachEntry(exports_3, function (ex, name) { - if (getSymbolIfSameReference(ex, symbol2) && !isLateBoundName(name) && name !== "export=" /* ExportEquals */) { - symbolName2 = unescapeLeadingUnderscores(name); - return true; - } - }); - } - } - if (symbolName2 === void 0) { - var name_29 = firstDefined(symbol2.declarations, getNameOfDeclaration); - if (name_29 && isComputedPropertyName(name_29) && isEntityName(name_29.expression)) { - var LHS = createAccessFromSymbolChain(chain2, index - 1, stopper); - if (isEntityName(LHS)) { - return factory.createIndexedAccessTypeNode(factory.createParenthesizedType(factory.createTypeQueryNode(LHS)), factory.createTypeQueryNode(name_29.expression)); - } - return LHS; - } - symbolName2 = getNameOfSymbolAsWritten(symbol2, context); - } - context.approximateLength += symbolName2.length + 1; - if (!(context.flags & 16 /* ForbidIndexedAccessSymbolReferences */) && parent2 && getMembersOfSymbol(parent2) && getMembersOfSymbol(parent2).get(symbol2.escapedName) && getSymbolIfSameReference(getMembersOfSymbol(parent2).get(symbol2.escapedName), symbol2)) { - var LHS = createAccessFromSymbolChain(chain2, index - 1, stopper); - if (isIndexedAccessTypeNode(LHS)) { - return factory.createIndexedAccessTypeNode(LHS, factory.createLiteralTypeNode(factory.createStringLiteral(symbolName2))); - } - else { - return factory.createIndexedAccessTypeNode(factory.createTypeReferenceNode(LHS, typeParameterNodes), factory.createLiteralTypeNode(factory.createStringLiteral(symbolName2))); - } - } - var identifier = setEmitFlags(factory.createIdentifier(symbolName2), 16777216 /* NoAsciiEscaping */); - if (typeParameterNodes) - setIdentifierTypeArguments(identifier, factory.createNodeArray(typeParameterNodes)); - identifier.symbol = symbol2; - if (index > stopper) { - var LHS = createAccessFromSymbolChain(chain2, index - 1, stopper); - if (!isEntityName(LHS)) { - return Debug.fail("Impossible construct - an export of an indexed access cannot be reachable"); - } - return factory.createQualifiedName(LHS, identifier); - } - return identifier; - } - } - function typeParameterShadowsNameInScope(escapedName, context, type) { - var result = resolveName(context.enclosingDeclaration, escapedName, 788968 /* Type */, - /*nameNotFoundMessage*/ - void 0, escapedName, - /*isUse*/ - false); - if (result) { - if (result.flags & 262144 /* TypeParameter */ && result === type.symbol) { - return false; - } - return true; - } - return false; - } - function typeParameterToName(type, context) { - var _a, _b; - if (context.flags & 4 /* GenerateNamesForShadowedTypeParams */ && context.typeParameterNames) { - var cached = context.typeParameterNames.get(getTypeId(type)); - if (cached) { - return cached; - } - } - var result = symbolToName(type.symbol, context, 788968 /* Type */, - /*expectsIdentifier*/ - true); - if (!(result.kind & 80 /* Identifier */)) { - return factory.createIdentifier("(Missing type parameter)"); - } - if (context.flags & 4 /* GenerateNamesForShadowedTypeParams */) { - var rawtext = result.escapedText; - var i = ((_a = context.typeParameterNamesByTextNextNameCount) == null ? void 0 : _a.get(rawtext)) || 0; - var text = rawtext; - while (((_b = context.typeParameterNamesByText) == null ? void 0 : _b.has(text)) || typeParameterShadowsNameInScope(text, context, type)) { - i++; - text = "".concat(rawtext, "_").concat(i); - } - if (text !== rawtext) { - var typeArguments = getIdentifierTypeArguments(result); - result = factory.createIdentifier(text); - setIdentifierTypeArguments(result, typeArguments); - } - (context.typeParameterNamesByTextNextNameCount || (context.typeParameterNamesByTextNextNameCount = /* @__PURE__ */ new Map())).set(rawtext, i); - (context.typeParameterNames || (context.typeParameterNames = /* @__PURE__ */ new Map())).set(getTypeId(type), result); - (context.typeParameterNamesByText || (context.typeParameterNamesByText = /* @__PURE__ */ new Set())).add(rawtext); - } - return result; - } - function symbolToName(symbol, context, meaning, expectsIdentifier) { - var chain = lookupSymbolChain(symbol, context, meaning); - if (expectsIdentifier && chain.length !== 1 && !context.encounteredError && !(context.flags & 65536 /* AllowQualifiedNameInPlaceOfIdentifier */)) { - context.encounteredError = true; - } - return createEntityNameFromSymbolChain(chain, chain.length - 1); - function createEntityNameFromSymbolChain(chain2, index) { - var typeParameterNodes = lookupTypeParameterNodes(chain2, index, context); - var symbol2 = chain2[index]; - if (index === 0) { - context.flags |= 16777216 /* InInitialEntityName */; - } - var symbolName2 = getNameOfSymbolAsWritten(symbol2, context); - if (index === 0) { - context.flags ^= 16777216 /* InInitialEntityName */; - } - var identifier = setEmitFlags(factory.createIdentifier(symbolName2), 16777216 /* NoAsciiEscaping */); - if (typeParameterNodes) - setIdentifierTypeArguments(identifier, factory.createNodeArray(typeParameterNodes)); - identifier.symbol = symbol2; - return index > 0 ? factory.createQualifiedName(createEntityNameFromSymbolChain(chain2, index - 1), identifier) : identifier; - } - } - function symbolToExpression(symbol, context, meaning) { - var chain = lookupSymbolChain(symbol, context, meaning); - return createExpressionFromSymbolChain(chain, chain.length - 1); - function createExpressionFromSymbolChain(chain2, index) { - var typeParameterNodes = lookupTypeParameterNodes(chain2, index, context); - var symbol2 = chain2[index]; - if (index === 0) { - context.flags |= 16777216 /* InInitialEntityName */; - } - var symbolName2 = getNameOfSymbolAsWritten(symbol2, context); - if (index === 0) { - context.flags ^= 16777216 /* InInitialEntityName */; - } - var firstChar = symbolName2.charCodeAt(0); - if (isSingleOrDoubleQuote(firstChar) && some(symbol2.declarations, hasNonGlobalAugmentationExternalModuleSymbol)) { - return factory.createStringLiteral(getSpecifierForModuleSymbol(symbol2, context)); - } - if (index === 0 || canUsePropertyAccess(symbolName2, languageVersion)) { - var identifier = setEmitFlags(factory.createIdentifier(symbolName2), 16777216 /* NoAsciiEscaping */); - if (typeParameterNodes) - setIdentifierTypeArguments(identifier, factory.createNodeArray(typeParameterNodes)); - identifier.symbol = symbol2; - return index > 0 ? factory.createPropertyAccessExpression(createExpressionFromSymbolChain(chain2, index - 1), identifier) : identifier; - } - else { - if (firstChar === 91 /* openBracket */) { - symbolName2 = symbolName2.substring(1, symbolName2.length - 1); - firstChar = symbolName2.charCodeAt(0); - } - var expression = void 0; - if (isSingleOrDoubleQuote(firstChar) && !(symbol2.flags & 8 /* EnumMember */)) { - expression = factory.createStringLiteral(stripQuotes(symbolName2).replace(/\\./g, function (s) { return s.substring(1); }), firstChar === 39 /* singleQuote */); - } - else if ("" + +symbolName2 === symbolName2) { - expression = factory.createNumericLiteral(+symbolName2); - } - if (!expression) { - var identifier = setEmitFlags(factory.createIdentifier(symbolName2), 16777216 /* NoAsciiEscaping */); - if (typeParameterNodes) - setIdentifierTypeArguments(identifier, factory.createNodeArray(typeParameterNodes)); - identifier.symbol = symbol2; - expression = identifier; - } - return factory.createElementAccessExpression(createExpressionFromSymbolChain(chain2, index - 1), expression); - } - } - } - function isStringNamed(d) { - var name = getNameOfDeclaration(d); - return !!name && isStringLiteral(name); - } - function isSingleQuotedStringNamed(d) { - var name = getNameOfDeclaration(d); - return !!(name && isStringLiteral(name) && (name.singleQuote || !nodeIsSynthesized(name) && startsWith(getTextOfNode(name, - /*includeTrivia*/ - false), "'"))); - } - function getPropertyNameNodeForSymbol(symbol, context) { - var stringNamed = !!length(symbol.declarations) && every(symbol.declarations, isStringNamed); - var singleQuote = !!length(symbol.declarations) && every(symbol.declarations, isSingleQuotedStringNamed); - var fromNameType = getPropertyNameNodeForSymbolFromNameType(symbol, context, singleQuote, stringNamed); - if (fromNameType) { - return fromNameType; - } - var rawName = unescapeLeadingUnderscores(symbol.escapedName); - return createPropertyNameNodeForIdentifierOrLiteral(rawName, getEmitScriptTarget(compilerOptions), singleQuote, stringNamed); - } - function getPropertyNameNodeForSymbolFromNameType(symbol, context, singleQuote, stringNamed) { - var nameType = getSymbolLinks(symbol).nameType; - if (nameType) { - if (nameType.flags & 384 /* StringOrNumberLiteral */) { - var name_30 = "" + nameType.value; - if (!isIdentifierText(name_30, getEmitScriptTarget(compilerOptions)) && (stringNamed || !isNumericLiteralName(name_30))) { - return factory.createStringLiteral(name_30, !!singleQuote); - } - if (isNumericLiteralName(name_30) && startsWith(name_30, "-")) { - return factory.createComputedPropertyName(factory.createNumericLiteral(+name_30)); - } - return createPropertyNameNodeForIdentifierOrLiteral(name_30, getEmitScriptTarget(compilerOptions)); - } - if (nameType.flags & 8192 /* UniqueESSymbol */) { - return factory.createComputedPropertyName(symbolToExpression(nameType.symbol, context, 111551 /* Value */)); - } - } - } - function cloneNodeBuilderContext(context) { - var initial = __assign({}, context); - if (initial.typeParameterNames) { - initial.typeParameterNames = new Map(initial.typeParameterNames); - } - if (initial.typeParameterNamesByText) { - initial.typeParameterNamesByText = new Set(initial.typeParameterNamesByText); - } - if (initial.typeParameterSymbolList) { - initial.typeParameterSymbolList = new Set(initial.typeParameterSymbolList); - } - initial.tracker = new SymbolTrackerImpl(initial, initial.tracker.inner, initial.tracker.moduleResolverHost); - return initial; - } - function getDeclarationWithTypeAnnotation(symbol, enclosingDeclaration) { - return symbol.declarations && find(symbol.declarations, function (s) { return !!getEffectiveTypeAnnotationNode(s) && (!enclosingDeclaration || !!findAncestor(s, function (n) { return n === enclosingDeclaration; })); }); - } - function existingTypeNodeIsNotReferenceOrIsReferenceWithCompatibleTypeArgumentCount(existing, type) { - return !(getObjectFlags(type) & 4 /* Reference */) || !isTypeReferenceNode(existing) || length(existing.typeArguments) >= getMinTypeArgumentCount(type.target.typeParameters); - } - function getEnclosingDeclarationIgnoringFakeScope(enclosingDeclaration) { - return getNodeLinks(enclosingDeclaration).fakeScopeForSignatureDeclaration ? enclosingDeclaration.parent : enclosingDeclaration; - } - function serializeTypeForDeclaration(context, type, symbol, enclosingDeclaration, includePrivateSymbol, bundled) { - if (!isErrorType(type) && enclosingDeclaration) { - var declWithExistingAnnotation = getDeclarationWithTypeAnnotation(symbol, getEnclosingDeclarationIgnoringFakeScope(enclosingDeclaration)); - if (declWithExistingAnnotation && !isFunctionLikeDeclaration(declWithExistingAnnotation) && !isGetAccessorDeclaration(declWithExistingAnnotation)) { - var existing = getEffectiveTypeAnnotationNode(declWithExistingAnnotation); - if (typeNodeIsEquivalentToType(existing, declWithExistingAnnotation, type) && existingTypeNodeIsNotReferenceOrIsReferenceWithCompatibleTypeArgumentCount(existing, type)) { - var result2 = serializeExistingTypeNode(context, existing, includePrivateSymbol, bundled); - if (result2) { - return result2; - } - } - } - } - var oldFlags = context.flags; - if (type.flags & 8192 /* UniqueESSymbol */ && type.symbol === symbol && (!context.enclosingDeclaration || some(symbol.declarations, function (d) { return getSourceFileOfNode(d) === getSourceFileOfNode(context.enclosingDeclaration); }))) { - context.flags |= 1048576 /* AllowUniqueESSymbolType */; - } - var result = typeToTypeNodeHelper(type, context); - context.flags = oldFlags; - return result; - } - function typeNodeIsEquivalentToType(typeNode, annotatedDeclaration, type) { - var typeFromTypeNode = getTypeFromTypeNode(typeNode); - if (typeFromTypeNode === type) { - return true; - } - if (isParameter(annotatedDeclaration) && annotatedDeclaration.questionToken) { - return getTypeWithFacts(type, 524288 /* NEUndefined */) === typeFromTypeNode; - } - return false; - } - function serializeReturnTypeForSignature(context, type, signature, includePrivateSymbol, bundled) { - if (!isErrorType(type) && context.enclosingDeclaration) { - var annotation = signature.declaration && getEffectiveReturnTypeNode(signature.declaration); - var enclosingDeclarationIgnoringFakeScope_1 = getEnclosingDeclarationIgnoringFakeScope(context.enclosingDeclaration); - if (!!findAncestor(annotation, function (n) { return n === enclosingDeclarationIgnoringFakeScope_1; }) && annotation) { - var annotated = getTypeFromTypeNode(annotation); - var thisInstantiated = annotated.flags & 262144 /* TypeParameter */ && annotated.isThisType ? instantiateType(annotated, signature.mapper) : annotated; - if (thisInstantiated === type && existingTypeNodeIsNotReferenceOrIsReferenceWithCompatibleTypeArgumentCount(annotation, type)) { - var result = serializeExistingTypeNode(context, annotation, includePrivateSymbol, bundled); - if (result) { - return result; - } - } - } - } - return typeToTypeNodeHelper(type, context); - } - function trackExistingEntityName(node, context, includePrivateSymbol) { - var introducesError = false; - var leftmost = getFirstIdentifier(node); - if (isInJSFile(node) && (isExportsIdentifier(leftmost) || isModuleExportsAccessExpression(leftmost.parent) || isQualifiedName(leftmost.parent) && isModuleIdentifier(leftmost.parent.left) && isExportsIdentifier(leftmost.parent.right))) { - introducesError = true; - return { introducesError: introducesError, node: node }; - } - var sym = resolveEntityName(leftmost, 67108863 /* All */, - /*ignoreErrors*/ - true, - /*dontResolveAlias*/ - true); - if (sym) { - if (isSymbolAccessible(sym, context.enclosingDeclaration, 67108863 /* All */, - /*shouldComputeAliasesToMakeVisible*/ - false).accessibility !== 0 /* Accessible */) { - introducesError = true; - } - else { - context.tracker.trackSymbol(sym, context.enclosingDeclaration, 67108863 /* All */); - includePrivateSymbol == null ? void 0 : includePrivateSymbol(sym); - } - if (isIdentifier(node)) { - var type = getDeclaredTypeOfSymbol(sym); - var name_31 = sym.flags & 262144 /* TypeParameter */ && !isTypeSymbolAccessible(type.symbol, context.enclosingDeclaration) ? typeParameterToName(type, context) : factory.cloneNode(node); - name_31.symbol = sym; - return { introducesError: introducesError, node: setEmitFlags(setOriginalNode(name_31, node), 16777216 /* NoAsciiEscaping */) }; - } - } - return { introducesError: introducesError, node: node }; - } - function serializeExistingTypeNode(context, existing, includePrivateSymbol, bundled) { - if (cancellationToken && cancellationToken.throwIfCancellationRequested) { - cancellationToken.throwIfCancellationRequested(); - } - var hadError = false; - var file = getSourceFileOfNode(existing); - var transformed = visitNode(existing, visitExistingNodeTreeSymbols, isTypeNode); - if (hadError) { - return void 0; - } - return transformed === existing ? setTextRange(factory.cloneNode(existing), existing) : transformed; - function visitExistingNodeTreeSymbols(node) { - if (isJSDocAllType(node) || node.kind === 326 /* JSDocNamepathType */) { - return factory.createKeywordTypeNode(133 /* AnyKeyword */); - } - if (isJSDocUnknownType(node)) { - return factory.createKeywordTypeNode(159 /* UnknownKeyword */); - } - if (isJSDocNullableType(node)) { - return factory.createUnionTypeNode([visitNode(node.type, visitExistingNodeTreeSymbols, isTypeNode), factory.createLiteralTypeNode(factory.createNull())]); - } - if (isJSDocOptionalType(node)) { - return factory.createUnionTypeNode([visitNode(node.type, visitExistingNodeTreeSymbols, isTypeNode), factory.createKeywordTypeNode(157 /* UndefinedKeyword */)]); - } - if (isJSDocNonNullableType(node)) { - return visitNode(node.type, visitExistingNodeTreeSymbols); - } - if (isJSDocVariadicType(node)) { - return factory.createArrayTypeNode(visitNode(node.type, visitExistingNodeTreeSymbols, isTypeNode)); - } - if (isJSDocTypeLiteral(node)) { - return factory.createTypeLiteralNode(map(node.jsDocPropertyTags, function (t) { - var name = isIdentifier(t.name) ? t.name : t.name.right; - var typeViaParent = getTypeOfPropertyOfType(getTypeFromTypeNode(node), name.escapedText); - var overrideTypeNode = typeViaParent && t.typeExpression && getTypeFromTypeNode(t.typeExpression.type) !== typeViaParent ? typeToTypeNodeHelper(typeViaParent, context) : void 0; - return factory.createPropertySignature( - /*modifiers*/ - void 0, name, t.isBracketed || t.typeExpression && isJSDocOptionalType(t.typeExpression.type) ? factory.createToken(58 /* QuestionToken */) : void 0, overrideTypeNode || t.typeExpression && visitNode(t.typeExpression.type, visitExistingNodeTreeSymbols, isTypeNode) || factory.createKeywordTypeNode(133 /* AnyKeyword */)); - })); - } - if (isTypeReferenceNode(node) && isIdentifier(node.typeName) && node.typeName.escapedText === "") { - return setOriginalNode(factory.createKeywordTypeNode(133 /* AnyKeyword */), node); - } - if ((isExpressionWithTypeArguments(node) || isTypeReferenceNode(node)) && isJSDocIndexSignature(node)) { - return factory.createTypeLiteralNode([factory.createIndexSignature( - /*modifiers*/ - void 0, [factory.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, "x", - /*questionToken*/ - void 0, visitNode(node.typeArguments[0], visitExistingNodeTreeSymbols, isTypeNode))], visitNode(node.typeArguments[1], visitExistingNodeTreeSymbols, isTypeNode))]); - } - if (isJSDocFunctionType(node)) { - if (isJSDocConstructSignature(node)) { - var newTypeNode_1; - return factory.createConstructorTypeNode( - /*modifiers*/ - void 0, visitNodes2(node.typeParameters, visitExistingNodeTreeSymbols, isTypeParameterDeclaration), mapDefined(node.parameters, function (p, i) { return p.name && isIdentifier(p.name) && p.name.escapedText === "new" ? (newTypeNode_1 = p.type, void 0) : factory.createParameterDeclaration( - /*modifiers*/ - void 0, getEffectiveDotDotDotForParameter(p), getNameForJSDocFunctionParameter(p, i), p.questionToken, visitNode(p.type, visitExistingNodeTreeSymbols, isTypeNode), - /*initializer*/ - void 0); }), visitNode(newTypeNode_1 || node.type, visitExistingNodeTreeSymbols, isTypeNode) || factory.createKeywordTypeNode(133 /* AnyKeyword */)); - } - else { - return factory.createFunctionTypeNode(visitNodes2(node.typeParameters, visitExistingNodeTreeSymbols, isTypeParameterDeclaration), map(node.parameters, function (p, i) { return factory.createParameterDeclaration( - /*modifiers*/ - void 0, getEffectiveDotDotDotForParameter(p), getNameForJSDocFunctionParameter(p, i), p.questionToken, visitNode(p.type, visitExistingNodeTreeSymbols, isTypeNode), - /*initializer*/ - void 0); }), visitNode(node.type, visitExistingNodeTreeSymbols, isTypeNode) || factory.createKeywordTypeNode(133 /* AnyKeyword */)); - } - } - if (isTypeReferenceNode(node) && isInJSDoc(node) && (!existingTypeNodeIsNotReferenceOrIsReferenceWithCompatibleTypeArgumentCount(node, getTypeFromTypeNode(node)) || getIntendedTypeFromJSDocTypeReference(node) || unknownSymbol === resolveTypeReferenceName(node, 788968 /* Type */, - /*ignoreErrors*/ - true))) { - return setOriginalNode(typeToTypeNodeHelper(getTypeFromTypeNode(node), context), node); - } - if (isLiteralImportTypeNode(node)) { - var nodeSymbol = getNodeLinks(node).resolvedSymbol; - if (isInJSDoc(node) && nodeSymbol && // The import type resolved using jsdoc fallback logic - (!node.isTypeOf && !(nodeSymbol.flags & 788968 /* Type */) || // The import type had type arguments autofilled by js fallback logic - !(length(node.typeArguments) >= getMinTypeArgumentCount(getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(nodeSymbol))))) { - return setOriginalNode(typeToTypeNodeHelper(getTypeFromTypeNode(node), context), node); - } - return factory.updateImportTypeNode(node, factory.updateLiteralTypeNode(node.argument, rewriteModuleSpecifier(node, node.argument.literal)), node.assertions, node.qualifier, visitNodes2(node.typeArguments, visitExistingNodeTreeSymbols, isTypeNode), node.isTypeOf); - } - if (isEntityName(node) || isEntityNameExpression(node)) { - var _t = trackExistingEntityName(node, context, includePrivateSymbol), introducesError = _t.introducesError, result = _t.node; - hadError = hadError || introducesError; - if (result !== node) { - return result; - } - } - if (file && isTupleTypeNode(node) && getLineAndCharacterOfPosition(file, node.pos).line === getLineAndCharacterOfPosition(file, node.end).line) { - setEmitFlags(node, 1 /* SingleLine */); - } - return visitEachChild(node, visitExistingNodeTreeSymbols, nullTransformationContext); - function getEffectiveDotDotDotForParameter(p) { - return p.dotDotDotToken || (p.type && isJSDocVariadicType(p.type) ? factory.createToken(26 /* DotDotDotToken */) : void 0); - } - function getNameForJSDocFunctionParameter(p, index) { - return p.name && isIdentifier(p.name) && p.name.escapedText === "this" ? "this" : getEffectiveDotDotDotForParameter(p) ? "args" : "arg".concat(index); - } - function rewriteModuleSpecifier(parent2, lit) { - if (bundled) { - if (context.tracker && context.tracker.moduleResolverHost) { - var targetFile = getExternalModuleFileFromDeclaration(parent2); - if (targetFile) { - var getCanonicalFileName = createGetCanonicalFileName(!!host.useCaseSensitiveFileNames); - var resolverHost = { - getCanonicalFileName: getCanonicalFileName, - getCurrentDirectory: function () { return context.tracker.moduleResolverHost.getCurrentDirectory(); }, - getCommonSourceDirectory: function () { return context.tracker.moduleResolverHost.getCommonSourceDirectory(); } - }; - var newName = getResolvedExternalModuleName(resolverHost, targetFile); - return factory.createStringLiteral(newName); - } - } - } - else { - if (context.tracker && context.tracker.trackExternalModuleSymbolOfImportTypeNode) { - var moduleSym = resolveExternalModuleNameWorker(lit, lit, - /*moduleNotFoundError*/ - void 0); - if (moduleSym) { - context.tracker.trackExternalModuleSymbolOfImportTypeNode(moduleSym); - } - } - } - return lit; - } - } - } - function symbolTableToDeclarationStatements(symbolTable, context, bundled) { - var serializePropertySymbolForClass = makeSerializePropertySymbol(factory.createPropertyDeclaration, 174 /* MethodDeclaration */, - /*useAccessors*/ - true); - var serializePropertySymbolForInterfaceWorker = makeSerializePropertySymbol(function (mods, name, question, type) { return factory.createPropertySignature(mods, name, question, type); }, 173 /* MethodSignature */, - /*useAccessors*/ - false); - var enclosingDeclaration = context.enclosingDeclaration; - var results = []; - var visitedSymbols = /* @__PURE__ */ new Set(); - var deferredPrivatesStack = []; - var oldcontext = context; - context = __assign(__assign({}, oldcontext), { usedSymbolNames: new Set(oldcontext.usedSymbolNames), remappedSymbolNames: /* @__PURE__ */ new Map(), tracker: void 0 }); - var tracker = __assign(__assign({}, oldcontext.tracker.inner), { trackSymbol: function (sym, decl, meaning) { - var _a; - var accessibleResult = isSymbolAccessible(sym, decl, meaning, - /*shouldComputeAliasesToMakeVisible*/ - false); - if (accessibleResult.accessibility === 0 /* Accessible */) { - var chain = lookupSymbolChainWorker(sym, context, meaning); - if (!(sym.flags & 4 /* Property */)) { - includePrivateSymbol(chain[0]); - } - } - else if ((_a = oldcontext.tracker.inner) == null ? void 0 : _a.trackSymbol) { - return oldcontext.tracker.inner.trackSymbol(sym, decl, meaning); - } - return false; - } }); - context.tracker = new SymbolTrackerImpl(context, tracker, oldcontext.tracker.moduleResolverHost); - forEachEntry(symbolTable, function (symbol, name) { - var baseName = unescapeLeadingUnderscores(name); - void getInternalSymbolName(symbol, baseName); - }); - var addingDeclare = !bundled; - var exportEquals = symbolTable.get("export=" /* ExportEquals */); - if (exportEquals && symbolTable.size > 1 && exportEquals.flags & 2097152 /* Alias */) { - symbolTable = createSymbolTable(); - symbolTable.set("export=" /* ExportEquals */, exportEquals); - } - visitSymbolTable(symbolTable); - return mergeRedundantStatements(results); - function isIdentifierAndNotUndefined(node) { - return !!node && node.kind === 80 /* Identifier */; - } - function getNamesOfDeclaration(statement) { - if (isVariableStatement(statement)) { - return filter(map(statement.declarationList.declarations, getNameOfDeclaration), isIdentifierAndNotUndefined); - } - return filter([getNameOfDeclaration(statement)], isIdentifierAndNotUndefined); - } - function flattenExportAssignedNamespace(statements) { - var exportAssignment = find(statements, isExportAssignment); - var nsIndex = findIndex(statements, isModuleDeclaration); - var ns = nsIndex !== -1 ? statements[nsIndex] : void 0; - if (ns && exportAssignment && exportAssignment.isExportEquals && isIdentifier(exportAssignment.expression) && isIdentifier(ns.name) && idText(ns.name) === idText(exportAssignment.expression) && ns.body && isModuleBlock(ns.body)) { - var excessExports = filter(statements, function (s) { return !!(getEffectiveModifierFlags(s) & 1 /* Export */); }); - var name_32 = ns.name; - var body = ns.body; - if (length(excessExports)) { - ns = factory.updateModuleDeclaration(ns, ns.modifiers, ns.name, body = factory.updateModuleBlock(body, factory.createNodeArray(__spreadArray(__spreadArray([], __read(ns.body.statements), false), [factory.createExportDeclaration( - /*modifiers*/ - void 0, - /*isTypeOnly*/ - false, factory.createNamedExports(map(flatMap(excessExports, function (e) { return getNamesOfDeclaration(e); }), function (id) { return factory.createExportSpecifier( - /*isTypeOnly*/ - false, - /*propertyName*/ - void 0, id); })), - /*moduleSpecifier*/ - void 0)], false)))); - statements = __spreadArray(__spreadArray(__spreadArray([], __read(statements.slice(0, nsIndex)), false), [ns], false), __read(statements.slice(nsIndex + 1)), false); - } - if (!find(statements, function (s) { return s !== ns && nodeHasName(s, name_32); })) { - results = []; - var mixinExportFlag_1 = !some(body.statements, function (s) { return hasSyntacticModifier(s, 1 /* Export */) || isExportAssignment(s) || isExportDeclaration(s); }); - forEach(body.statements, function (s) { - addResult(s, mixinExportFlag_1 ? 1 /* Export */ : 0 /* None */); - }); - statements = __spreadArray(__spreadArray([], __read(filter(statements, function (s) { return s !== ns && s !== exportAssignment; })), false), __read(results), false); - } - } - return statements; - } - function mergeExportDeclarations(statements) { - var e_182, _t; - var exports = filter(statements, function (d) { return isExportDeclaration(d) && !d.moduleSpecifier && !!d.exportClause && isNamedExports(d.exportClause); }); - if (length(exports) > 1) { - var nonExports = filter(statements, function (d) { return !isExportDeclaration(d) || !!d.moduleSpecifier || !d.exportClause; }); - statements = __spreadArray(__spreadArray([], __read(nonExports), false), [factory.createExportDeclaration( - /*modifiers*/ - void 0, - /*isTypeOnly*/ - false, factory.createNamedExports(flatMap(exports, function (e) { return cast(e.exportClause, isNamedExports).elements; })), - /*moduleSpecifier*/ - void 0)], false); - } - var reexports = filter(statements, function (d) { return isExportDeclaration(d) && !!d.moduleSpecifier && !!d.exportClause && isNamedExports(d.exportClause); }); - if (length(reexports) > 1) { - var groups = group(reexports, function (decl) { return isStringLiteral(decl.moduleSpecifier) ? ">" + decl.moduleSpecifier.text : ">"; }); - if (groups.length !== reexports.length) { - var _loop_11 = function (group2) { - if (group2.length > 1) { - statements = __spreadArray(__spreadArray([], __read(filter(statements, function (s) { return group2.indexOf(s) === -1; })), false), [ - factory.createExportDeclaration( - /*modifiers*/ - void 0, - /*isTypeOnly*/ - false, factory.createNamedExports(flatMap(group2, function (e) { return cast(e.exportClause, isNamedExports).elements; })), group2[0].moduleSpecifier) - ], false); - } - }; - try { - for (var groups_1 = __values(groups), groups_1_1 = groups_1.next(); !groups_1_1.done; groups_1_1 = groups_1.next()) { - var group2 = groups_1_1.value; - _loop_11(group2); - } - } - catch (e_182_1) { e_182 = { error: e_182_1 }; } - finally { - try { - if (groups_1_1 && !groups_1_1.done && (_t = groups_1.return)) _t.call(groups_1); - } - finally { if (e_182) throw e_182.error; } - } - } - } - return statements; - } - function inlineExportModifiers(statements) { - var index = findIndex(statements, function (d) { return isExportDeclaration(d) && !d.moduleSpecifier && !d.assertClause && !!d.exportClause && isNamedExports(d.exportClause); }); - if (index >= 0) { - var exportDecl = statements[index]; - var replacements = mapDefined(exportDecl.exportClause.elements, function (e) { - var e_183, _t; - if (!e.propertyName) { - var indices = indicesOf(statements); - var associatedIndices = filter(indices, function (i) { return nodeHasName(statements[i], e.name); }); - if (length(associatedIndices) && every(associatedIndices, function (i) { return canHaveExportModifier(statements[i]); })) { - try { - for (var associatedIndices_1 = __values(associatedIndices), associatedIndices_1_1 = associatedIndices_1.next(); !associatedIndices_1_1.done; associatedIndices_1_1 = associatedIndices_1.next()) { - var index2 = associatedIndices_1_1.value; - statements[index2] = addExportModifier(statements[index2]); - } - } - catch (e_183_1) { e_183 = { error: e_183_1 }; } - finally { - try { - if (associatedIndices_1_1 && !associatedIndices_1_1.done && (_t = associatedIndices_1.return)) _t.call(associatedIndices_1); - } - finally { if (e_183) throw e_183.error; } - } - return void 0; - } - } - return e; - }); - if (!length(replacements)) { - orderedRemoveItemAt(statements, index); - } - else { - statements[index] = factory.updateExportDeclaration(exportDecl, exportDecl.modifiers, exportDecl.isTypeOnly, factory.updateNamedExports(exportDecl.exportClause, replacements), exportDecl.moduleSpecifier, exportDecl.assertClause); - } - } - return statements; - } - function mergeRedundantStatements(statements) { - statements = flattenExportAssignedNamespace(statements); - statements = mergeExportDeclarations(statements); - statements = inlineExportModifiers(statements); - if (enclosingDeclaration && (isSourceFile(enclosingDeclaration) && isExternalOrCommonJsModule(enclosingDeclaration) || isModuleDeclaration(enclosingDeclaration)) && (!some(statements, isExternalModuleIndicator) || !hasScopeMarker(statements) && some(statements, needsScopeMarker))) { - statements.push(createEmptyExports(factory)); - } - return statements; - } - function addExportModifier(node) { - var flags = (getEffectiveModifierFlags(node) | 1 /* Export */) & ~2 /* Ambient */; - return factory.updateModifiers(node, flags); - } - function removeExportModifier(node) { - var flags = getEffectiveModifierFlags(node) & ~1 /* Export */; - return factory.updateModifiers(node, flags); - } - function visitSymbolTable(symbolTable2, suppressNewPrivateContext, propertyAsAlias) { - if (!suppressNewPrivateContext) { - deferredPrivatesStack.push(/* @__PURE__ */ new Map()); - } - symbolTable2.forEach(function (symbol) { - serializeSymbol(symbol, - /*isPrivate*/ - false, !!propertyAsAlias); - }); - if (!suppressNewPrivateContext) { - deferredPrivatesStack[deferredPrivatesStack.length - 1].forEach(function (symbol) { - serializeSymbol(symbol, - /*isPrivate*/ - true, !!propertyAsAlias); - }); - deferredPrivatesStack.pop(); - } - } - function serializeSymbol(symbol, isPrivate, propertyAsAlias) { - var visitedSym = getMergedSymbol(symbol); - if (visitedSymbols.has(getSymbolId(visitedSym))) { - return; - } - visitedSymbols.add(getSymbolId(visitedSym)); - var skipMembershipCheck = !isPrivate; - if (skipMembershipCheck || !!length(symbol.declarations) && some(symbol.declarations, function (d) { return !!findAncestor(d, function (n) { return n === enclosingDeclaration; }); })) { - var oldContext = context; - context = cloneNodeBuilderContext(context); - serializeSymbolWorker(symbol, isPrivate, propertyAsAlias); - if (context.reportedDiagnostic) { - oldcontext.reportedDiagnostic = context.reportedDiagnostic; - } - context = oldContext; - } - } - function serializeSymbolWorker(symbol, isPrivate, propertyAsAlias) { - var e_184, _t; - var _a, _b, _c, _d; - var symbolName2 = unescapeLeadingUnderscores(symbol.escapedName); - var isDefault = symbol.escapedName === "default" /* Default */; - if (isPrivate && !(context.flags & 131072 /* AllowAnonymousIdentifier */) && isStringANonContextualKeyword(symbolName2) && !isDefault) { - context.encounteredError = true; - return; - } - var needsPostExportDefault = isDefault && !!(symbol.flags & -113 /* ExportDoesNotSupportDefaultModifier */ || symbol.flags & 16 /* Function */ && length(getPropertiesOfType(getTypeOfSymbol(symbol)))) && !(symbol.flags & 2097152 /* Alias */); - var needsExportDeclaration = !needsPostExportDefault && !isPrivate && isStringANonContextualKeyword(symbolName2) && !isDefault; - if (needsPostExportDefault || needsExportDeclaration) { - isPrivate = true; - } - var modifierFlags = (!isPrivate ? 1 /* Export */ : 0) | (isDefault && !needsPostExportDefault ? 1024 /* Default */ : 0); - var isConstMergedWithNS = symbol.flags & 1536 /* Module */ && symbol.flags & (2 /* BlockScopedVariable */ | 1 /* FunctionScopedVariable */ | 4 /* Property */) && symbol.escapedName !== "export=" /* ExportEquals */; - var isConstMergedWithNSPrintableAsSignatureMerge = isConstMergedWithNS && isTypeRepresentableAsFunctionNamespaceMerge(getTypeOfSymbol(symbol), symbol); - if (symbol.flags & (16 /* Function */ | 8192 /* Method */) || isConstMergedWithNSPrintableAsSignatureMerge) { - serializeAsFunctionNamespaceMerge(getTypeOfSymbol(symbol), symbol, getInternalSymbolName(symbol, symbolName2), modifierFlags); - } - if (symbol.flags & 524288 /* TypeAlias */) { - serializeTypeAlias(symbol, symbolName2, modifierFlags); - } - if (symbol.flags & (2 /* BlockScopedVariable */ | 1 /* FunctionScopedVariable */ | 4 /* Property */ | 98304 /* Accessor */) && symbol.escapedName !== "export=" /* ExportEquals */ && !(symbol.flags & 4194304 /* Prototype */) && !(symbol.flags & 32 /* Class */) && !(symbol.flags & 8192 /* Method */) && !isConstMergedWithNSPrintableAsSignatureMerge) { - if (propertyAsAlias) { - var createdExport = serializeMaybeAliasAssignment(symbol); - if (createdExport) { - needsExportDeclaration = false; - needsPostExportDefault = false; - } - } - else { - var type = getTypeOfSymbol(symbol); - var localName = getInternalSymbolName(symbol, symbolName2); - if (!(symbol.flags & 16 /* Function */) && isTypeRepresentableAsFunctionNamespaceMerge(type, symbol)) { - serializeAsFunctionNamespaceMerge(type, symbol, localName, modifierFlags); - } - else { - var flags = !(symbol.flags & 2 /* BlockScopedVariable */) ? ((_a = symbol.parent) == null ? void 0 : _a.valueDeclaration) && isSourceFile((_b = symbol.parent) == null ? void 0 : _b.valueDeclaration) ? 2 /* Const */ : void 0 : isConstantVariable(symbol) ? 2 /* Const */ : 1 /* Let */; - var name_33 = needsPostExportDefault || !(symbol.flags & 4 /* Property */) ? localName : getUnusedName(localName, symbol); - var textRange = symbol.declarations && find(symbol.declarations, function (d) { return isVariableDeclaration(d); }); - if (textRange && isVariableDeclarationList(textRange.parent) && textRange.parent.declarations.length === 1) { - textRange = textRange.parent.parent; - } - var propertyAccessRequire = (_c = symbol.declarations) == null ? void 0 : _c.find(isPropertyAccessExpression); - if (propertyAccessRequire && isBinaryExpression(propertyAccessRequire.parent) && isIdentifier(propertyAccessRequire.parent.right) && ((_d = type.symbol) == null ? void 0 : _d.valueDeclaration) && isSourceFile(type.symbol.valueDeclaration)) { - var alias = localName === propertyAccessRequire.parent.right.escapedText ? void 0 : propertyAccessRequire.parent.right; - addResult(factory.createExportDeclaration( - /*modifiers*/ - void 0, - /*isTypeOnly*/ - false, factory.createNamedExports([factory.createExportSpecifier( - /*isTypeOnly*/ - false, alias, localName)])), 0 /* None */); - context.tracker.trackSymbol(type.symbol, context.enclosingDeclaration, 111551 /* Value */); - } - else { - var statement = setTextRange(factory.createVariableStatement( - /*modifiers*/ - void 0, factory.createVariableDeclarationList([ - factory.createVariableDeclaration(name_33, - /*exclamationToken*/ - void 0, serializeTypeForDeclaration(context, type, symbol, enclosingDeclaration, includePrivateSymbol, bundled)) - ], flags)), textRange); - addResult(statement, name_33 !== localName ? modifierFlags & ~1 /* Export */ : modifierFlags); - if (name_33 !== localName && !isPrivate) { - addResult(factory.createExportDeclaration( - /*modifiers*/ - void 0, - /*isTypeOnly*/ - false, factory.createNamedExports([factory.createExportSpecifier( - /*isTypeOnly*/ - false, name_33, localName)])), 0 /* None */); - needsExportDeclaration = false; - needsPostExportDefault = false; - } - } - } - } - } - if (symbol.flags & 384 /* Enum */) { - serializeEnum(symbol, symbolName2, modifierFlags); - } - if (symbol.flags & 32 /* Class */) { - if (symbol.flags & 4 /* Property */ && symbol.valueDeclaration && isBinaryExpression(symbol.valueDeclaration.parent) && isClassExpression(symbol.valueDeclaration.parent.right)) { - serializeAsAlias(symbol, getInternalSymbolName(symbol, symbolName2), modifierFlags); - } - else { - serializeAsClass(symbol, getInternalSymbolName(symbol, symbolName2), modifierFlags); - } - } - if (symbol.flags & (512 /* ValueModule */ | 1024 /* NamespaceModule */) && (!isConstMergedWithNS || isTypeOnlyNamespace(symbol)) || isConstMergedWithNSPrintableAsSignatureMerge) { - serializeModule(symbol, symbolName2, modifierFlags); - } - if (symbol.flags & 64 /* Interface */ && !(symbol.flags & 32 /* Class */)) { - serializeInterface(symbol, symbolName2, modifierFlags); - } - if (symbol.flags & 2097152 /* Alias */) { - serializeAsAlias(symbol, getInternalSymbolName(symbol, symbolName2), modifierFlags); - } - if (symbol.flags & 4 /* Property */ && symbol.escapedName === "export=" /* ExportEquals */) { - serializeMaybeAliasAssignment(symbol); - } - if (symbol.flags & 8388608 /* ExportStar */) { - if (symbol.declarations) { - try { - for (var _u = __values(symbol.declarations), _v = _u.next(); !_v.done; _v = _u.next()) { - var node = _v.value; - var resolvedModule = resolveExternalModuleName(node, node.moduleSpecifier); - if (!resolvedModule) - continue; - addResult(factory.createExportDeclaration( - /*modifiers*/ - void 0, - /*isTypeOnly*/ - node.isTypeOnly, - /*exportClause*/ - void 0, factory.createStringLiteral(getSpecifierForModuleSymbol(resolvedModule, context))), 0 /* None */); - } - } - catch (e_184_1) { e_184 = { error: e_184_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_184) throw e_184.error; } - } - } - } - if (needsPostExportDefault) { - addResult(factory.createExportAssignment( - /*modifiers*/ - void 0, - /*isExportEquals*/ - false, factory.createIdentifier(getInternalSymbolName(symbol, symbolName2))), 0 /* None */); - } - else if (needsExportDeclaration) { - addResult(factory.createExportDeclaration( - /*modifiers*/ - void 0, - /*isTypeOnly*/ - false, factory.createNamedExports([factory.createExportSpecifier( - /*isTypeOnly*/ - false, getInternalSymbolName(symbol, symbolName2), symbolName2)])), 0 /* None */); - } - } - function includePrivateSymbol(symbol) { - if (some(symbol.declarations, isParameterDeclaration)) - return; - Debug.assertIsDefined(deferredPrivatesStack[deferredPrivatesStack.length - 1]); - getUnusedName(unescapeLeadingUnderscores(symbol.escapedName), symbol); - var isExternalImportAlias = !!(symbol.flags & 2097152 /* Alias */) && !some(symbol.declarations, function (d) { return !!findAncestor(d, isExportDeclaration) || isNamespaceExport(d) || isImportEqualsDeclaration(d) && !isExternalModuleReference(d.moduleReference); }); - deferredPrivatesStack[isExternalImportAlias ? 0 : deferredPrivatesStack.length - 1].set(getSymbolId(symbol), symbol); - } - function isExportingScope(enclosingDeclaration2) { - return isSourceFile(enclosingDeclaration2) && (isExternalOrCommonJsModule(enclosingDeclaration2) || isJsonSourceFile(enclosingDeclaration2)) || isAmbientModule(enclosingDeclaration2) && !isGlobalScopeAugmentation(enclosingDeclaration2); - } - function addResult(node, additionalModifierFlags) { - if (canHaveModifiers(node)) { - var newModifierFlags = 0 /* None */; - var enclosingDeclaration2 = context.enclosingDeclaration && (isJSDocTypeAlias(context.enclosingDeclaration) ? getSourceFileOfNode(context.enclosingDeclaration) : context.enclosingDeclaration); - if (additionalModifierFlags & 1 /* Export */ && enclosingDeclaration2 && (isExportingScope(enclosingDeclaration2) || isModuleDeclaration(enclosingDeclaration2)) && canHaveExportModifier(node)) { - newModifierFlags |= 1 /* Export */; - } - if (addingDeclare && !(newModifierFlags & 1 /* Export */) && (!enclosingDeclaration2 || !(enclosingDeclaration2.flags & 33554432 /* Ambient */)) && (isEnumDeclaration(node) || isVariableStatement(node) || isFunctionDeclaration(node) || isClassDeclaration(node) || isModuleDeclaration(node))) { - newModifierFlags |= 2 /* Ambient */; - } - if (additionalModifierFlags & 1024 /* Default */ && (isClassDeclaration(node) || isInterfaceDeclaration(node) || isFunctionDeclaration(node))) { - newModifierFlags |= 1024 /* Default */; - } - if (newModifierFlags) { - node = factory.updateModifiers(node, newModifierFlags | getEffectiveModifierFlags(node)); - } - } - results.push(node); - } - function serializeTypeAlias(symbol, symbolName2, modifierFlags) { - var _a; - var aliasType = getDeclaredTypeOfTypeAlias(symbol); - var typeParams = getSymbolLinks(symbol).typeParameters; - var typeParamDecls = map(typeParams, function (p) { return typeParameterToDeclaration(p, context); }); - var jsdocAliasDecl = (_a = symbol.declarations) == null ? void 0 : _a.find(isJSDocTypeAlias); - var commentText = getTextOfJSDocComment(jsdocAliasDecl ? jsdocAliasDecl.comment || jsdocAliasDecl.parent.comment : void 0); - var oldFlags = context.flags; - context.flags |= 8388608 /* InTypeAlias */; - var oldEnclosingDecl = context.enclosingDeclaration; - context.enclosingDeclaration = jsdocAliasDecl; - var typeNode = jsdocAliasDecl && jsdocAliasDecl.typeExpression && isJSDocTypeExpression(jsdocAliasDecl.typeExpression) && serializeExistingTypeNode(context, jsdocAliasDecl.typeExpression.type, includePrivateSymbol, bundled) || typeToTypeNodeHelper(aliasType, context); - addResult(setSyntheticLeadingComments(factory.createTypeAliasDeclaration( - /*modifiers*/ - void 0, getInternalSymbolName(symbol, symbolName2), typeParamDecls, typeNode), !commentText ? [] : [{ kind: 3 /* MultiLineCommentTrivia */, text: "*\n * " + commentText.replace(/\n/g, "\n * ") + "\n ", pos: -1, end: -1, hasTrailingNewLine: true }]), modifierFlags); - context.flags = oldFlags; - context.enclosingDeclaration = oldEnclosingDecl; - } - function serializeInterface(symbol, symbolName2, modifierFlags) { - var interfaceType = getDeclaredTypeOfClassOrInterface(symbol); - var localParams = getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(symbol); - var typeParamDecls = map(localParams, function (p) { return typeParameterToDeclaration(p, context); }); - var baseTypes = getBaseTypes(interfaceType); - var baseType = length(baseTypes) ? getIntersectionType(baseTypes) : void 0; - var members = flatMap(getPropertiesOfType(interfaceType), function (p) { return serializePropertySymbolForInterface(p, baseType); }); - var callSignatures = serializeSignatures(0 /* Call */, interfaceType, baseType, 179 /* CallSignature */); - var constructSignatures = serializeSignatures(1 /* Construct */, interfaceType, baseType, 180 /* ConstructSignature */); - var indexSignatures = serializeIndexSignatures(interfaceType, baseType); - var heritageClauses = !length(baseTypes) ? void 0 : [factory.createHeritageClause(96 /* ExtendsKeyword */, mapDefined(baseTypes, function (b) { return trySerializeAsTypeReference(b, 111551 /* Value */); }))]; - addResult(factory.createInterfaceDeclaration( - /*modifiers*/ - void 0, getInternalSymbolName(symbol, symbolName2), typeParamDecls, heritageClauses, __spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read(indexSignatures), false), __read(constructSignatures), false), __read(callSignatures), false), __read(members), false)), modifierFlags); - } - function getNamespaceMembersForSerialization(symbol) { - var exports = getExportsOfSymbol(symbol); - return !exports ? [] : filter(arrayFrom(exports.values()), function (m) { return isNamespaceMember(m) && isIdentifierText(m.escapedName, 99 /* ESNext */); }); - } - function isTypeOnlyNamespace(symbol) { - return every(getNamespaceMembersForSerialization(symbol), function (m) { return !(getSymbolFlags(resolveSymbol(m)) & 111551 /* Value */); }); - } - function serializeModule(symbol, symbolName2, modifierFlags) { - var members = getNamespaceMembersForSerialization(symbol); - var locationMap = arrayToMultiMap(members, function (m) { return m.parent && m.parent === symbol ? "real" : "merged"; }); - var realMembers = locationMap.get("real") || emptyArray; - var mergedMembers = locationMap.get("merged") || emptyArray; - if (length(realMembers)) { - var localName = getInternalSymbolName(symbol, symbolName2); - serializeAsNamespaceDeclaration(realMembers, localName, modifierFlags, !!(symbol.flags & (16 /* Function */ | 67108864 /* Assignment */))); - } - if (length(mergedMembers)) { - var containingFile_1 = getSourceFileOfNode(context.enclosingDeclaration); - var localName = getInternalSymbolName(symbol, symbolName2); - var nsBody = factory.createModuleBlock([factory.createExportDeclaration( - /*modifiers*/ - void 0, - /*isTypeOnly*/ - false, factory.createNamedExports(mapDefined(filter(mergedMembers, function (n) { return n.escapedName !== "export="; } /* ExportEquals */), function (s) { - var _a, _b; - var name = unescapeLeadingUnderscores(s.escapedName); - var localName2 = getInternalSymbolName(s, name); - var aliasDecl = s.declarations && getDeclarationOfAliasSymbol(s); - if (containingFile_1 && (aliasDecl ? containingFile_1 !== getSourceFileOfNode(aliasDecl) : !some(s.declarations, function (d) { return getSourceFileOfNode(d) === containingFile_1; }))) { - (_b = (_a = context.tracker) == null ? void 0 : _a.reportNonlocalAugmentation) == null ? void 0 : _b.call(_a, containingFile_1, symbol, s); - return void 0; - } - var target = aliasDecl && getTargetOfAliasDeclaration(aliasDecl, - /*dontRecursivelyResolve*/ - true); - includePrivateSymbol(target || s); - var targetName = target ? getInternalSymbolName(target, unescapeLeadingUnderscores(target.escapedName)) : localName2; - return factory.createExportSpecifier( - /*isTypeOnly*/ - false, name === targetName ? void 0 : targetName, name); - })))]); - addResult(factory.createModuleDeclaration( - /*modifiers*/ - void 0, factory.createIdentifier(localName), nsBody, 32 /* Namespace */), 0 /* None */); - } - } - function serializeEnum(symbol, symbolName2, modifierFlags) { - addResult(factory.createEnumDeclaration(factory.createModifiersFromModifierFlags(isConstEnumSymbol(symbol) ? 2048 /* Const */ : 0), getInternalSymbolName(symbol, symbolName2), map(filter(getPropertiesOfType(getTypeOfSymbol(symbol)), function (p) { return !!(p.flags & 8 /* EnumMember */); }), function (p) { - var initializedValue = p.declarations && p.declarations[0] && isEnumMember(p.declarations[0]) ? getConstantValue2(p.declarations[0]) : void 0; - return factory.createEnumMember(unescapeLeadingUnderscores(p.escapedName), initializedValue === void 0 ? void 0 : typeof initializedValue === "string" ? factory.createStringLiteral(initializedValue) : factory.createNumericLiteral(initializedValue)); - })), modifierFlags); - } - function serializeAsFunctionNamespaceMerge(type, symbol, localName, modifierFlags) { - var e_185, _t; - var signatures = getSignaturesOfType(type, 0 /* Call */); - try { - for (var signatures_2 = __values(signatures), signatures_2_1 = signatures_2.next(); !signatures_2_1.done; signatures_2_1 = signatures_2.next()) { - var sig = signatures_2_1.value; - var decl = signatureToSignatureDeclarationHelper(sig, 262 /* FunctionDeclaration */, context, { name: factory.createIdentifier(localName), privateSymbolVisitor: includePrivateSymbol, bundledImports: bundled }); - addResult(setTextRange(decl, getSignatureTextRangeLocation(sig)), modifierFlags); - } - } - catch (e_185_1) { e_185 = { error: e_185_1 }; } - finally { - try { - if (signatures_2_1 && !signatures_2_1.done && (_t = signatures_2.return)) _t.call(signatures_2); - } - finally { if (e_185) throw e_185.error; } - } - if (!(symbol.flags & (512 /* ValueModule */ | 1024 /* NamespaceModule */) && !!symbol.exports && !!symbol.exports.size)) { - var props = filter(getPropertiesOfType(type), isNamespaceMember); - serializeAsNamespaceDeclaration(props, localName, modifierFlags, - /*suppressNewPrivateContext*/ - true); - } - } - function getSignatureTextRangeLocation(signature) { - if (signature.declaration && signature.declaration.parent) { - if (isBinaryExpression(signature.declaration.parent) && getAssignmentDeclarationKind(signature.declaration.parent) === 5 /* Property */) { - return signature.declaration.parent; - } - if (isVariableDeclaration(signature.declaration.parent) && signature.declaration.parent.parent) { - return signature.declaration.parent.parent; - } - } - return signature.declaration; - } - function serializeAsNamespaceDeclaration(props, localName, modifierFlags, suppressNewPrivateContext) { - if (length(props)) { - var localVsRemoteMap = arrayToMultiMap(props, function (p) { return !length(p.declarations) || some(p.declarations, function (d) { return getSourceFileOfNode(d) === getSourceFileOfNode(context.enclosingDeclaration); }) ? "local" : "remote"; }); - var localProps = localVsRemoteMap.get("local") || emptyArray; - var fakespace = parseNodeFactory.createModuleDeclaration( - /*modifiers*/ - void 0, factory.createIdentifier(localName), factory.createModuleBlock([]), 32 /* Namespace */); - setParent(fakespace, enclosingDeclaration); - fakespace.locals = createSymbolTable(props); - fakespace.symbol = props[0].parent; - var oldResults = results; - results = []; - var oldAddingDeclare = addingDeclare; - addingDeclare = false; - var subcontext = __assign(__assign({}, context), { enclosingDeclaration: fakespace }); - var oldContext = context; - context = subcontext; - visitSymbolTable(createSymbolTable(localProps), suppressNewPrivateContext, - /*propertyAsAlias*/ - true); - context = oldContext; - addingDeclare = oldAddingDeclare; - var declarations = results; - results = oldResults; - var defaultReplaced = map(declarations, function (d) { return isExportAssignment(d) && !d.isExportEquals && isIdentifier(d.expression) ? factory.createExportDeclaration( - /*modifiers*/ - void 0, - /*isTypeOnly*/ - false, factory.createNamedExports([factory.createExportSpecifier( - /*isTypeOnly*/ - false, d.expression, factory.createIdentifier("default" /* Default */))])) : d; }); - var exportModifierStripped = every(defaultReplaced, function (d) { return hasSyntacticModifier(d, 1 /* Export */); }) ? map(defaultReplaced, removeExportModifier) : defaultReplaced; - fakespace = factory.updateModuleDeclaration(fakespace, fakespace.modifiers, fakespace.name, factory.createModuleBlock(exportModifierStripped)); - addResult(fakespace, modifierFlags); - } - } - function isNamespaceMember(p) { - return !!(p.flags & (788968 /* Type */ | 1920 /* Namespace */ | 2097152 /* Alias */)) || !(p.flags & 4194304 /* Prototype */ || p.escapedName === "prototype" || p.valueDeclaration && isStatic(p.valueDeclaration) && isClassLike(p.valueDeclaration.parent)); - } - function sanitizeJSDocImplements(clauses) { - var result = mapDefined(clauses, function (e) { - var _t; - var oldEnclosing = context.enclosingDeclaration; - context.enclosingDeclaration = e; - var expr = e.expression; - if (isEntityNameExpression(expr)) { - if (isIdentifier(expr) && idText(expr) === "") { - return cleanup( - /*result*/ - void 0); - } - var introducesError = void 0; - (_t = trackExistingEntityName(expr, context, includePrivateSymbol), introducesError = _t.introducesError, expr = _t.node); - if (introducesError) { - return cleanup( - /*result*/ - void 0); - } - } - return cleanup(factory.createExpressionWithTypeArguments(expr, map(e.typeArguments, function (a) { return serializeExistingTypeNode(context, a, includePrivateSymbol, bundled) || typeToTypeNodeHelper(getTypeFromTypeNode(a), context); }))); - function cleanup(result2) { - context.enclosingDeclaration = oldEnclosing; - return result2; - } - }); - if (result.length === clauses.length) { - return result; - } - return void 0; - } - function serializeAsClass(symbol, localName, modifierFlags) { - var _a, _b; - var originalDecl = (_a = symbol.declarations) == null ? void 0 : _a.find(isClassLike); - var oldEnclosing = context.enclosingDeclaration; - context.enclosingDeclaration = originalDecl || oldEnclosing; - var localParams = getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(symbol); - var typeParamDecls = map(localParams, function (p) { return typeParameterToDeclaration(p, context); }); - var classType = getTypeWithThisArgument(getDeclaredTypeOfClassOrInterface(symbol)); - var baseTypes = getBaseTypes(classType); - var originalImplements = originalDecl && getEffectiveImplementsTypeNodes(originalDecl); - var implementsExpressions = originalImplements && sanitizeJSDocImplements(originalImplements) || mapDefined(getImplementsTypes(classType), serializeImplementedType); - var staticType = getTypeOfSymbol(symbol); - var isClass = !!((_b = staticType.symbol) == null ? void 0 : _b.valueDeclaration) && isClassLike(staticType.symbol.valueDeclaration); - var staticBaseType = isClass ? getBaseConstructorTypeOfClass(staticType) : anyType; - var heritageClauses = __spreadArray(__spreadArray([], __read(!length(baseTypes) ? [] : [factory.createHeritageClause(96 /* ExtendsKeyword */, map(baseTypes, function (b) { return serializeBaseType(b, staticBaseType, localName); }))]), false), __read(!length(implementsExpressions) ? [] : [factory.createHeritageClause(119 /* ImplementsKeyword */, implementsExpressions)]), false); - var symbolProps = getNonInheritedProperties(classType, baseTypes, getPropertiesOfType(classType)); - var publicSymbolProps = filter(symbolProps, function (s) { - var valueDecl = s.valueDeclaration; - return !!valueDecl && !(isNamedDeclaration(valueDecl) && isPrivateIdentifier(valueDecl.name)); - }); - var hasPrivateIdentifier = some(symbolProps, function (s) { - var valueDecl = s.valueDeclaration; - return !!valueDecl && isNamedDeclaration(valueDecl) && isPrivateIdentifier(valueDecl.name); - }); - var privateProperties = hasPrivateIdentifier ? [factory.createPropertyDeclaration( - /*modifiers*/ - void 0, factory.createPrivateIdentifier("#private"), - /*questionOrExclamationToken*/ - void 0, - /*type*/ - void 0, - /*initializer*/ - void 0)] : emptyArray; - var publicProperties = flatMap(publicSymbolProps, function (p) { return serializePropertySymbolForClass(p, - /*isStatic*/ - false, baseTypes[0]); }); - var staticMembers = flatMap(filter(getPropertiesOfType(staticType), function (p) { return !(p.flags & 4194304 /* Prototype */) && p.escapedName !== "prototype" && !isNamespaceMember(p); }), function (p) { return serializePropertySymbolForClass(p, - /*isStatic*/ - true, staticBaseType); }); - var isNonConstructableClassLikeInJsFile = !isClass && !!symbol.valueDeclaration && isInJSFile(symbol.valueDeclaration) && !some(getSignaturesOfType(staticType, 1 /* Construct */)); - var constructors = isNonConstructableClassLikeInJsFile ? [factory.createConstructorDeclaration(factory.createModifiersFromModifierFlags(8 /* Private */), [], - /*body*/ - void 0)] : serializeSignatures(1 /* Construct */, staticType, staticBaseType, 176 /* Constructor */); - var indexSignatures = serializeIndexSignatures(classType, baseTypes[0]); - context.enclosingDeclaration = oldEnclosing; - addResult(setTextRange(factory.createClassDeclaration( - /*modifiers*/ - void 0, localName, typeParamDecls, heritageClauses, __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read(indexSignatures), false), __read(staticMembers), false), __read(constructors), false), __read(publicProperties), false), __read(privateProperties), false)), symbol.declarations && filter(symbol.declarations, function (d) { return isClassDeclaration(d) || isClassExpression(d); })[0]), modifierFlags); - } - function getSomeTargetNameFromDeclarations(declarations) { - return firstDefined(declarations, function (d) { - if (isImportSpecifier(d) || isExportSpecifier(d)) { - return idText(d.propertyName || d.name); - } - if (isBinaryExpression(d) || isExportAssignment(d)) { - var expression = isExportAssignment(d) ? d.expression : d.right; - if (isPropertyAccessExpression(expression)) { - return idText(expression.name); - } - } - if (isAliasSymbolDeclaration2(d)) { - var name_34 = getNameOfDeclaration(d); - if (name_34 && isIdentifier(name_34)) { - return idText(name_34); - } - } - return void 0; - }); - } - function serializeAsAlias(symbol, localName, modifierFlags) { - var _a, _b, _c, _d, _e; - var node = getDeclarationOfAliasSymbol(symbol); - if (!node) - return Debug.fail(); - var target = getMergedSymbol(getTargetOfAliasDeclaration(node, - /*dontRecursivelyResolve*/ - true)); - if (!target) { - return; - } - var verbatimTargetName = isShorthandAmbientModuleSymbol(target) && getSomeTargetNameFromDeclarations(symbol.declarations) || unescapeLeadingUnderscores(target.escapedName); - if (verbatimTargetName === "export=" /* ExportEquals */ && allowSyntheticDefaultImports) { - verbatimTargetName = "default" /* Default */; - } - var targetName = getInternalSymbolName(target, verbatimTargetName); - includePrivateSymbol(target); - switch (node.kind) { - case 208 /* BindingElement */: - if (((_b = (_a = node.parent) == null ? void 0 : _a.parent) == null ? void 0 : _b.kind) === 260 /* VariableDeclaration */) { - var specifier2 = getSpecifierForModuleSymbol(target.parent || target, context); - var propertyName = node.propertyName; - addResult(factory.createImportDeclaration( - /*modifiers*/ - void 0, factory.createImportClause( - /*isTypeOnly*/ - false, - /*name*/ - void 0, factory.createNamedImports([factory.createImportSpecifier( - /*isTypeOnly*/ - false, propertyName && isIdentifier(propertyName) ? factory.createIdentifier(idText(propertyName)) : void 0, factory.createIdentifier(localName))])), factory.createStringLiteral(specifier2), - /*assertClause*/ - void 0), 0 /* None */); - break; - } - Debug.failBadSyntaxKind(((_c = node.parent) == null ? void 0 : _c.parent) || node, "Unhandled binding element grandparent kind in declaration serialization"); - break; - case 304 /* ShorthandPropertyAssignment */: - if (((_e = (_d = node.parent) == null ? void 0 : _d.parent) == null ? void 0 : _e.kind) === 226 /* BinaryExpression */) { - serializeExportSpecifier(unescapeLeadingUnderscores(symbol.escapedName), targetName); - } - break; - case 260 /* VariableDeclaration */: - if (isPropertyAccessExpression(node.initializer)) { - var initializer = node.initializer; - var uniqueName = factory.createUniqueName(localName); - var specifier2 = getSpecifierForModuleSymbol(target.parent || target, context); - addResult(factory.createImportEqualsDeclaration( - /*modifiers*/ - void 0, - /*isTypeOnly*/ - false, uniqueName, factory.createExternalModuleReference(factory.createStringLiteral(specifier2))), 0 /* None */); - addResult(factory.createImportEqualsDeclaration( - /*modifiers*/ - void 0, - /*isTypeOnly*/ - false, factory.createIdentifier(localName), factory.createQualifiedName(uniqueName, initializer.name)), modifierFlags); - break; - } - case 271 /* ImportEqualsDeclaration */: - if (target.escapedName === "export=" /* ExportEquals */ && some(target.declarations, function (d) { return isSourceFile(d) && isJsonSourceFile(d); })) { - serializeMaybeAliasAssignment(symbol); - break; - } - var isLocalImport = !(target.flags & 512 /* ValueModule */) && !isVariableDeclaration(node); - addResult(factory.createImportEqualsDeclaration( - /*modifiers*/ - void 0, - /*isTypeOnly*/ - false, factory.createIdentifier(localName), isLocalImport ? symbolToName(target, context, 67108863 /* All */, - /*expectsIdentifier*/ - false) : factory.createExternalModuleReference(factory.createStringLiteral(getSpecifierForModuleSymbol(target, context)))), isLocalImport ? modifierFlags : 0 /* None */); - break; - case 270 /* NamespaceExportDeclaration */: - addResult(factory.createNamespaceExportDeclaration(idText(node.name)), 0 /* None */); - break; - case 273 /* ImportClause */: { - var generatedSpecifier = getSpecifierForModuleSymbol(target.parent || target, context); - var specifier2 = bundled ? factory.createStringLiteral(generatedSpecifier) : node.parent.moduleSpecifier; - addResult(factory.createImportDeclaration( - /*modifiers*/ - void 0, factory.createImportClause( - /*isTypeOnly*/ - false, factory.createIdentifier(localName), - /*namedBindings*/ - void 0), specifier2, node.parent.assertClause), 0 /* None */); - break; - } - case 274 /* NamespaceImport */: { - var generatedSpecifier = getSpecifierForModuleSymbol(target.parent || target, context); - var specifier2 = bundled ? factory.createStringLiteral(generatedSpecifier) : node.parent.parent.moduleSpecifier; - addResult(factory.createImportDeclaration( - /*modifiers*/ - void 0, factory.createImportClause( - /*isTypeOnly*/ - false, - /*name*/ - void 0, factory.createNamespaceImport(factory.createIdentifier(localName))), specifier2, node.parent.parent.assertClause), 0 /* None */); - break; - } - case 280 /* NamespaceExport */: - addResult(factory.createExportDeclaration( - /*modifiers*/ - void 0, - /*isTypeOnly*/ - false, factory.createNamespaceExport(factory.createIdentifier(localName)), factory.createStringLiteral(getSpecifierForModuleSymbol(target, context))), 0 /* None */); - break; - case 276 /* ImportSpecifier */: { - var generatedSpecifier = getSpecifierForModuleSymbol(target.parent || target, context); - var specifier2 = bundled ? factory.createStringLiteral(generatedSpecifier) : node.parent.parent.parent.moduleSpecifier; - addResult(factory.createImportDeclaration( - /*modifiers*/ - void 0, factory.createImportClause( - /*isTypeOnly*/ - false, - /*name*/ - void 0, factory.createNamedImports([ - factory.createImportSpecifier( - /*isTypeOnly*/ - false, localName !== verbatimTargetName ? factory.createIdentifier(verbatimTargetName) : void 0, factory.createIdentifier(localName)) - ])), specifier2, node.parent.parent.parent.assertClause), 0 /* None */); - break; - } - case 281 /* ExportSpecifier */: - var specifier = node.parent.parent.moduleSpecifier; - serializeExportSpecifier(unescapeLeadingUnderscores(symbol.escapedName), specifier ? verbatimTargetName : targetName, specifier && isStringLiteralLike(specifier) ? factory.createStringLiteral(specifier.text) : void 0); - break; - case 277 /* ExportAssignment */: - serializeMaybeAliasAssignment(symbol); - break; - case 226 /* BinaryExpression */: - case 211 /* PropertyAccessExpression */: - case 212 /* ElementAccessExpression */: - if (symbol.escapedName === "default" /* Default */ || symbol.escapedName === "export=" /* ExportEquals */) { - serializeMaybeAliasAssignment(symbol); - } - else { - serializeExportSpecifier(localName, targetName); - } - break; - default: - return Debug.failBadSyntaxKind(node, "Unhandled alias declaration kind in symbol serializer!"); - } - } - function serializeExportSpecifier(localName, targetName, specifier) { - addResult(factory.createExportDeclaration( - /*modifiers*/ - void 0, - /*isTypeOnly*/ - false, factory.createNamedExports([factory.createExportSpecifier( - /*isTypeOnly*/ - false, localName !== targetName ? targetName : void 0, localName)]), specifier), 0 /* None */); - } - function serializeMaybeAliasAssignment(symbol) { - var _a; - if (symbol.flags & 4194304 /* Prototype */) { - return false; - } - var name = unescapeLeadingUnderscores(symbol.escapedName); - var isExportEquals = name === "export=" /* ExportEquals */; - var isDefault = name === "default" /* Default */; - var isExportAssignmentCompatibleSymbolName = isExportEquals || isDefault; - var aliasDecl = symbol.declarations && getDeclarationOfAliasSymbol(symbol); - var target = aliasDecl && getTargetOfAliasDeclaration(aliasDecl, - /*dontRecursivelyResolve*/ - true); - if (target && length(target.declarations) && some(target.declarations, function (d) { return getSourceFileOfNode(d) === getSourceFileOfNode(enclosingDeclaration); })) { - var expr = aliasDecl && (isExportAssignment(aliasDecl) || isBinaryExpression(aliasDecl) ? getExportAssignmentExpression(aliasDecl) : getPropertyAssignmentAliasLikeExpression(aliasDecl)); - var first2 = expr && isEntityNameExpression(expr) ? getFirstNonModuleExportsIdentifier(expr) : void 0; - var referenced = first2 && resolveEntityName(first2, 67108863 /* All */, - /*ignoreErrors*/ - true, - /*dontResolveAlias*/ - true, enclosingDeclaration); - if (referenced || target) { - includePrivateSymbol(referenced || target); - } - var prevDisableTrackSymbol = context.tracker.disableTrackSymbol; - context.tracker.disableTrackSymbol = true; - if (isExportAssignmentCompatibleSymbolName) { - results.push(factory.createExportAssignment( - /*modifiers*/ - void 0, isExportEquals, symbolToExpression(target, context, 67108863 /* All */))); - } - else { - if (first2 === expr && first2) { - serializeExportSpecifier(name, idText(first2)); - } - else if (expr && isClassExpression(expr)) { - serializeExportSpecifier(name, getInternalSymbolName(target, symbolName(target))); - } - else { - var varName = getUnusedName(name, symbol); - addResult(factory.createImportEqualsDeclaration( - /*modifiers*/ - void 0, - /*isTypeOnly*/ - false, factory.createIdentifier(varName), symbolToName(target, context, 67108863 /* All */, - /*expectsIdentifier*/ - false)), 0 /* None */); - serializeExportSpecifier(name, varName); - } - } - context.tracker.disableTrackSymbol = prevDisableTrackSymbol; - return true; - } - else { - var varName = getUnusedName(name, symbol); - var typeToSerialize = getWidenedType(getTypeOfSymbol(getMergedSymbol(symbol))); - if (isTypeRepresentableAsFunctionNamespaceMerge(typeToSerialize, symbol)) { - serializeAsFunctionNamespaceMerge(typeToSerialize, symbol, varName, isExportAssignmentCompatibleSymbolName ? 0 /* None */ : 1 /* Export */); - } - else { - var statement = factory.createVariableStatement( - /*modifiers*/ - void 0, factory.createVariableDeclarationList([ - factory.createVariableDeclaration(varName, - /*exclamationToken*/ - void 0, serializeTypeForDeclaration(context, typeToSerialize, symbol, enclosingDeclaration, includePrivateSymbol, bundled)) - ], ((_a = context.enclosingDeclaration) == null ? void 0 : _a.kind) === 267 /* ModuleDeclaration */ ? 1 /* Let */ : 2 /* Const */)); - addResult(statement, target && target.flags & 4 /* Property */ && target.escapedName === "export=" /* ExportEquals */ ? 2 /* Ambient */ : name === varName ? 1 /* Export */ : 0 /* None */); - } - if (isExportAssignmentCompatibleSymbolName) { - results.push(factory.createExportAssignment( - /*modifiers*/ - void 0, isExportEquals, factory.createIdentifier(varName))); - return true; - } - else if (name !== varName) { - serializeExportSpecifier(name, varName); - return true; - } - return false; - } - } - function isTypeRepresentableAsFunctionNamespaceMerge(typeToSerialize, hostSymbol) { - var ctxSrc = getSourceFileOfNode(context.enclosingDeclaration); - return getObjectFlags(typeToSerialize) & (16 /* Anonymous */ | 32 /* Mapped */) && !length(getIndexInfosOfType(typeToSerialize)) && !isClassInstanceSide(typeToSerialize) && // While a class instance is potentially representable as a NS, prefer printing a reference to the instance type and serializing the class - !!(length(filter(getPropertiesOfType(typeToSerialize), isNamespaceMember)) || length(getSignaturesOfType(typeToSerialize, 0 /* Call */))) && !length(getSignaturesOfType(typeToSerialize, 1 /* Construct */)) && // TODO: could probably serialize as function + ns + class, now that that's OK - !getDeclarationWithTypeAnnotation(hostSymbol, enclosingDeclaration) && !(typeToSerialize.symbol && some(typeToSerialize.symbol.declarations, function (d) { return getSourceFileOfNode(d) !== ctxSrc; })) && !some(getPropertiesOfType(typeToSerialize), function (p) { return isLateBoundName(p.escapedName); }) && !some(getPropertiesOfType(typeToSerialize), function (p) { return some(p.declarations, function (d) { return getSourceFileOfNode(d) !== ctxSrc; }); }) && every(getPropertiesOfType(typeToSerialize), function (p) { return isIdentifierText(symbolName(p), languageVersion); }); - } - function makeSerializePropertySymbol(createProperty2, methodKind, useAccessors) { - return function serializePropertySymbol(p, isStatic2, baseType) { - var e_186, _t; - var _a, _b, _c, _d, _e; - var modifierFlags = getDeclarationModifierFlagsFromSymbol(p); - var isPrivate = !!(modifierFlags & 8 /* Private */); - if (isStatic2 && p.flags & (788968 /* Type */ | 1920 /* Namespace */ | 2097152 /* Alias */)) { - return []; - } - if (p.flags & 4194304 /* Prototype */ || p.escapedName === "constructor" || baseType && getPropertyOfType(baseType, p.escapedName) && isReadonlySymbol(getPropertyOfType(baseType, p.escapedName)) === isReadonlySymbol(p) && (p.flags & 16777216 /* Optional */) === (getPropertyOfType(baseType, p.escapedName).flags & 16777216 /* Optional */) && isTypeIdenticalTo(getTypeOfSymbol(p), getTypeOfPropertyOfType(baseType, p.escapedName))) { - return []; - } - var flag = modifierFlags & ~512 /* Async */ | (isStatic2 ? 32 /* Static */ : 0); - var name = getPropertyNameNodeForSymbol(p, context); - var firstPropertyLikeDecl = (_a = p.declarations) == null ? void 0 : _a.find(or(isPropertyDeclaration, isAccessor, isVariableDeclaration, isPropertySignature, isBinaryExpression, isPropertyAccessExpression)); - if (p.flags & 98304 /* Accessor */ && useAccessors) { - var result = []; - if (p.flags & 65536 /* SetAccessor */) { - result.push(setTextRange(factory.createSetAccessorDeclaration(factory.createModifiersFromModifierFlags(flag), name, [factory.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, "arg", - /*questionToken*/ - void 0, isPrivate ? void 0 : serializeTypeForDeclaration(context, getTypeOfSymbol(p), p, enclosingDeclaration, includePrivateSymbol, bundled))], - /*body*/ - void 0), ((_b = p.declarations) == null ? void 0 : _b.find(isSetAccessor)) || firstPropertyLikeDecl)); - } - if (p.flags & 32768 /* GetAccessor */) { - var isPrivate2 = modifierFlags & 8 /* Private */; - result.push(setTextRange(factory.createGetAccessorDeclaration(factory.createModifiersFromModifierFlags(flag), name, [], isPrivate2 ? void 0 : serializeTypeForDeclaration(context, getTypeOfSymbol(p), p, enclosingDeclaration, includePrivateSymbol, bundled), - /*body*/ - void 0), ((_c = p.declarations) == null ? void 0 : _c.find(isGetAccessor)) || firstPropertyLikeDecl)); - } - return result; - } - else if (p.flags & (4 /* Property */ | 3 /* Variable */ | 98304 /* Accessor */)) { - return setTextRange(createProperty2(factory.createModifiersFromModifierFlags((isReadonlySymbol(p) ? 64 /* Readonly */ : 0) | flag), name, p.flags & 16777216 /* Optional */ ? factory.createToken(58 /* QuestionToken */) : void 0, isPrivate ? void 0 : serializeTypeForDeclaration(context, getWriteTypeOfSymbol(p), p, enclosingDeclaration, includePrivateSymbol, bundled), - // TODO: https://github.com/microsoft/TypeScript/pull/32372#discussion_r328386357 - // interface members can't have initializers, however class members _can_ - /*initializer*/ - void 0), ((_d = p.declarations) == null ? void 0 : _d.find(or(isPropertyDeclaration, isVariableDeclaration))) || firstPropertyLikeDecl); - } - if (p.flags & (8192 /* Method */ | 16 /* Function */)) { - var type = getTypeOfSymbol(p); - var signatures = getSignaturesOfType(type, 0 /* Call */); - if (flag & 8 /* Private */) { - return setTextRange(createProperty2(factory.createModifiersFromModifierFlags((isReadonlySymbol(p) ? 64 /* Readonly */ : 0) | flag), name, p.flags & 16777216 /* Optional */ ? factory.createToken(58 /* QuestionToken */) : void 0, - /*type*/ - void 0, - /*initializer*/ - void 0), ((_e = p.declarations) == null ? void 0 : _e.find(isFunctionLikeDeclaration)) || signatures[0] && signatures[0].declaration || p.declarations && p.declarations[0]); - } - var results2 = []; - try { - for (var signatures_3 = __values(signatures), signatures_3_1 = signatures_3.next(); !signatures_3_1.done; signatures_3_1 = signatures_3.next()) { - var sig = signatures_3_1.value; - var decl = signatureToSignatureDeclarationHelper(sig, methodKind, context, { - name: name, - questionToken: p.flags & 16777216 /* Optional */ ? factory.createToken(58 /* QuestionToken */) : void 0, - modifiers: flag ? factory.createModifiersFromModifierFlags(flag) : void 0 - }); - var location_2 = sig.declaration && isPrototypePropertyAssignment(sig.declaration.parent) ? sig.declaration.parent : sig.declaration; - results2.push(setTextRange(decl, location_2)); - } - } - catch (e_186_1) { e_186 = { error: e_186_1 }; } - finally { - try { - if (signatures_3_1 && !signatures_3_1.done && (_t = signatures_3.return)) _t.call(signatures_3); - } - finally { if (e_186) throw e_186.error; } - } - return results2; - } - return Debug.fail("Unhandled class member kind! ".concat(p.__debugFlags || p.flags)); - }; - } - function serializePropertySymbolForInterface(p, baseType) { - return serializePropertySymbolForInterfaceWorker(p, - /*isStatic*/ - false, baseType); - } - function serializeSignatures(kind, input, baseType, outputKind) { - var e_187, _t, e_188, _u; - var signatures = getSignaturesOfType(input, kind); - if (kind === 1 /* Construct */) { - if (!baseType && every(signatures, function (s) { return length(s.parameters) === 0; })) { - return []; - } - if (baseType) { - var baseSigs = getSignaturesOfType(baseType, 1 /* Construct */); - if (!length(baseSigs) && every(signatures, function (s) { return length(s.parameters) === 0; })) { - return []; - } - if (baseSigs.length === signatures.length) { - var failed = false; - for (var i = 0; i < baseSigs.length; i++) { - if (!compareSignaturesIdentical(signatures[i], baseSigs[i], - /*partialMatch*/ - false, - /*ignoreThisTypes*/ - false, - /*ignoreReturnTypes*/ - true, compareTypesIdentical)) { - failed = true; - break; - } - } - if (!failed) { - return []; - } - } - } - var privateProtected = 0; - try { - for (var signatures_4 = __values(signatures), signatures_4_1 = signatures_4.next(); !signatures_4_1.done; signatures_4_1 = signatures_4.next()) { - var s = signatures_4_1.value; - if (s.declaration) { - privateProtected |= getSelectedEffectiveModifierFlags(s.declaration, 8 /* Private */ | 16 /* Protected */); - } - } - } - catch (e_187_1) { e_187 = { error: e_187_1 }; } - finally { - try { - if (signatures_4_1 && !signatures_4_1.done && (_t = signatures_4.return)) _t.call(signatures_4); - } - finally { if (e_187) throw e_187.error; } - } - if (privateProtected) { - return [setTextRange(factory.createConstructorDeclaration(factory.createModifiersFromModifierFlags(privateProtected), - /*parameters*/ - [], - /*body*/ - void 0), signatures[0].declaration)]; - } - } - var results2 = []; - try { - for (var signatures_5 = __values(signatures), signatures_5_1 = signatures_5.next(); !signatures_5_1.done; signatures_5_1 = signatures_5.next()) { - var sig = signatures_5_1.value; - var decl = signatureToSignatureDeclarationHelper(sig, outputKind, context); - results2.push(setTextRange(decl, sig.declaration)); - } - } - catch (e_188_1) { e_188 = { error: e_188_1 }; } - finally { - try { - if (signatures_5_1 && !signatures_5_1.done && (_u = signatures_5.return)) _u.call(signatures_5); - } - finally { if (e_188) throw e_188.error; } - } - return results2; - } - function serializeIndexSignatures(input, baseType) { - var e_189, _t; - var results2 = []; - try { - for (var _u = __values(getIndexInfosOfType(input)), _v = _u.next(); !_v.done; _v = _u.next()) { - var info = _v.value; - if (baseType) { - var baseInfo = getIndexInfoOfType(baseType, info.keyType); - if (baseInfo) { - if (isTypeIdenticalTo(info.type, baseInfo.type)) { - continue; - } - } - } - results2.push(indexInfoToIndexSignatureDeclarationHelper(info, context, - /*typeNode*/ - void 0)); - } - } - catch (e_189_1) { e_189 = { error: e_189_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_189) throw e_189.error; } - } - return results2; - } - function serializeBaseType(t, staticType, rootName) { - var ref = trySerializeAsTypeReference(t, 111551 /* Value */); - if (ref) { - return ref; - } - var tempName = getUnusedName("".concat(rootName, "_base")); - var statement = factory.createVariableStatement( - /*modifiers*/ - void 0, factory.createVariableDeclarationList([ - factory.createVariableDeclaration(tempName, - /*exclamationToken*/ - void 0, typeToTypeNodeHelper(staticType, context)) - ], 2 /* Const */)); - addResult(statement, 0 /* None */); - return factory.createExpressionWithTypeArguments(factory.createIdentifier(tempName), - /*typeArguments*/ - void 0); - } - function trySerializeAsTypeReference(t, flags) { - var typeArgs; - var reference; - if (t.target && isSymbolAccessibleByFlags(t.target.symbol, enclosingDeclaration, flags)) { - typeArgs = map(getTypeArguments(t), function (t2) { return typeToTypeNodeHelper(t2, context); }); - reference = symbolToExpression(t.target.symbol, context, 788968 /* Type */); - } - else if (t.symbol && isSymbolAccessibleByFlags(t.symbol, enclosingDeclaration, flags)) { - reference = symbolToExpression(t.symbol, context, 788968 /* Type */); - } - if (reference) { - return factory.createExpressionWithTypeArguments(reference, typeArgs); - } - } - function serializeImplementedType(t) { - var ref = trySerializeAsTypeReference(t, 788968 /* Type */); - if (ref) { - return ref; - } - if (t.symbol) { - return factory.createExpressionWithTypeArguments(symbolToExpression(t.symbol, context, 788968 /* Type */), - /*typeArguments*/ - void 0); - } - } - function getUnusedName(input, symbol) { - var _a, _b; - var id = symbol ? getSymbolId(symbol) : void 0; - if (id) { - if (context.remappedSymbolNames.has(id)) { - return context.remappedSymbolNames.get(id); - } - } - if (symbol) { - input = getNameCandidateWorker(symbol, input); - } - var i = 0; - var original = input; - while ((_a = context.usedSymbolNames) == null ? void 0 : _a.has(input)) { - i++; - input = "".concat(original, "_").concat(i); - } - (_b = context.usedSymbolNames) == null ? void 0 : _b.add(input); - if (id) { - context.remappedSymbolNames.set(id, input); - } - return input; - } - function getNameCandidateWorker(symbol, localName) { - if (localName === "default" /* Default */ || localName === "__class" /* Class */ || localName === "__function" /* Function */) { - var flags = context.flags; - context.flags |= 16777216 /* InInitialEntityName */; - var nameCandidate = getNameOfSymbolAsWritten(symbol, context); - context.flags = flags; - localName = nameCandidate.length > 0 && isSingleOrDoubleQuote(nameCandidate.charCodeAt(0)) ? stripQuotes(nameCandidate) : nameCandidate; - } - if (localName === "default" /* Default */) { - localName = "_default"; - } - else if (localName === "export=" /* ExportEquals */) { - localName = "_exports"; - } - localName = isIdentifierText(localName, languageVersion) && !isStringANonContextualKeyword(localName) ? localName : "_" + localName.replace(/[^a-zA-Z0-9]/g, "_"); - return localName; - } - function getInternalSymbolName(symbol, localName) { - var id = getSymbolId(symbol); - if (context.remappedSymbolNames.has(id)) { - return context.remappedSymbolNames.get(id); - } - localName = getNameCandidateWorker(symbol, localName); - context.remappedSymbolNames.set(id, localName); - return localName; - } - } - } - function typePredicateToString(typePredicate, enclosingDeclaration, flags /* UseAliasDefinedOutsideCurrentScope */, writer) { - if (flags === void 0) { flags = 16384; } - return writer ? typePredicateToStringWorker(writer).getText() : usingSingleLineStringWriter(typePredicateToStringWorker); - function typePredicateToStringWorker(writer2) { - var predicate = factory.createTypePredicateNode(typePredicate.kind === 2 /* AssertsThis */ || typePredicate.kind === 3 /* AssertsIdentifier */ ? factory.createToken(131 /* AssertsKeyword */) : void 0, typePredicate.kind === 1 /* Identifier */ || typePredicate.kind === 3 /* AssertsIdentifier */ ? factory.createIdentifier(typePredicate.parameterName) : factory.createThisTypeNode(), typePredicate.type && nodeBuilder.typeToTypeNode(typePredicate.type, enclosingDeclaration, toNodeBuilderFlags(flags) | 70221824 /* IgnoreErrors */ | 512 /* WriteTypeParametersInQualifiedName */) - // TODO: GH#18217 - ); - var printer = createPrinterWithRemoveComments(); - var sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration); - printer.writeNode(4 /* Unspecified */, predicate, - /*sourceFile*/ - sourceFile, writer2); - return writer2; - } - } - function formatUnionTypes(types) { - var result = []; - var flags = 0; - for (var i = 0; i < types.length; i++) { - var t = types[i]; - flags |= t.flags; - if (!(t.flags & 98304 /* Nullable */)) { - if (t.flags & (512 /* BooleanLiteral */ | 1056 /* EnumLike */)) { - var baseType = t.flags & 512 /* BooleanLiteral */ ? booleanType : getBaseTypeOfEnumLikeType(t); - if (baseType.flags & 1048576 /* Union */) { - var count = baseType.types.length; - if (i + count <= types.length && getRegularTypeOfLiteralType(types[i + count - 1]) === getRegularTypeOfLiteralType(baseType.types[count - 1])) { - result.push(baseType); - i += count - 1; - continue; - } - } - } - result.push(t); - } - } - if (flags & 65536 /* Null */) - result.push(nullType); - if (flags & 32768 /* Undefined */) - result.push(undefinedType); - return result || types; - } - function visibilityToString(flags) { - if (flags === 8 /* Private */) { - return "private"; - } - if (flags === 16 /* Protected */) { - return "protected"; - } - return "public"; - } - function getTypeAliasForTypeLiteral(type) { - if (type.symbol && type.symbol.flags & 2048 /* TypeLiteral */ && type.symbol.declarations) { - var node = walkUpParenthesizedTypes(type.symbol.declarations[0].parent); - if (isTypeAliasDeclaration(node)) { - return getSymbolOfDeclaration(node); - } - } - return void 0; - } - function isTopLevelInExternalModuleAugmentation(node) { - return node && node.parent && node.parent.kind === 268 /* ModuleBlock */ && isExternalModuleAugmentation(node.parent.parent); - } - function isDefaultBindingContext(location) { - return location.kind === 312 /* SourceFile */ || isAmbientModule(location); - } - function getNameOfSymbolFromNameType(symbol, context) { - var nameType = getSymbolLinks(symbol).nameType; - if (nameType) { - if (nameType.flags & 384 /* StringOrNumberLiteral */) { - var name_35 = "" + nameType.value; - if (!isIdentifierText(name_35, getEmitScriptTarget(compilerOptions)) && !isNumericLiteralName(name_35)) { - return "\"".concat(escapeString(name_35, 34 /* doubleQuote */), "\""); - } - if (isNumericLiteralName(name_35) && startsWith(name_35, "-")) { - return "[".concat(name_35, "]"); - } - return name_35; - } - if (nameType.flags & 8192 /* UniqueESSymbol */) { - return "[".concat(getNameOfSymbolAsWritten(nameType.symbol, context), "]"); - } - } - } - function getNameOfSymbolAsWritten(symbol, context) { - if (context && symbol.escapedName === "default" /* Default */ && !(context.flags & 16384 /* UseAliasDefinedOutsideCurrentScope */) && // If it's not the first part of an entity name, it must print as `default` - (!(context.flags & 16777216 /* InInitialEntityName */) || // if the symbol is synthesized, it will only be referenced externally it must print as `default` - !symbol.declarations || // if not in the same binding context (source file, module declaration), it must print as `default` - context.enclosingDeclaration && findAncestor(symbol.declarations[0], isDefaultBindingContext) !== findAncestor(context.enclosingDeclaration, isDefaultBindingContext))) { - return "default"; - } - if (symbol.declarations && symbol.declarations.length) { - var declaration = firstDefined(symbol.declarations, function (d) { return getNameOfDeclaration(d) ? d : void 0; }); - var name2 = declaration && getNameOfDeclaration(declaration); - if (declaration && name2) { - if (isCallExpression(declaration) && isBindableObjectDefinePropertyCall(declaration)) { - return symbolName(symbol); - } - if (isComputedPropertyName(name2) && !(getCheckFlags(symbol) & 4096 /* Late */)) { - var nameType = getSymbolLinks(symbol).nameType; - if (nameType && nameType.flags & 384 /* StringOrNumberLiteral */) { - var result = getNameOfSymbolFromNameType(symbol, context); - if (result !== void 0) { - return result; - } - } - } - return declarationNameToString(name2); - } - if (!declaration) { - declaration = symbol.declarations[0]; - } - if (declaration.parent && declaration.parent.kind === 260 /* VariableDeclaration */) { - return declarationNameToString(declaration.parent.name); - } - switch (declaration.kind) { - case 231 /* ClassExpression */: - case 218 /* FunctionExpression */: - case 219 /* ArrowFunction */: - if (context && !context.encounteredError && !(context.flags & 131072 /* AllowAnonymousIdentifier */)) { - context.encounteredError = true; - } - return declaration.kind === 231 /* ClassExpression */ ? "(Anonymous class)" : "(Anonymous function)"; - } - } - var name = getNameOfSymbolFromNameType(symbol, context); - return name !== void 0 ? name : symbolName(symbol); - } - function isDeclarationVisible(node) { - if (node) { - var links = getNodeLinks(node); - if (links.isVisible === void 0) { - links.isVisible = !!determineIfDeclarationIsVisible(); - } - return links.isVisible; - } - return false; - function determineIfDeclarationIsVisible() { - switch (node.kind) { - case 345 /* JSDocCallbackTag */: - case 353 /* JSDocTypedefTag */: - case 347 /* JSDocEnumTag */: - return !!(node.parent && node.parent.parent && node.parent.parent.parent && isSourceFile(node.parent.parent.parent)); - case 208 /* BindingElement */: - return isDeclarationVisible(node.parent.parent); - case 260 /* VariableDeclaration */: - if (isBindingPattern(node.name) && !node.name.elements.length) { - return false; - } - case 267 /* ModuleDeclaration */: - case 263 /* ClassDeclaration */: - case 264 /* InterfaceDeclaration */: - case 265 /* TypeAliasDeclaration */: - case 262 /* FunctionDeclaration */: - case 266 /* EnumDeclaration */: - case 271 /* ImportEqualsDeclaration */: - if (isExternalModuleAugmentation(node)) { - return true; - } - var parent2 = getDeclarationContainer(node); - if (!(getCombinedModifierFlagsCached(node) & 1 /* Export */) && !(node.kind !== 271 /* ImportEqualsDeclaration */ && parent2.kind !== 312 /* SourceFile */ && parent2.flags & 33554432 /* Ambient */)) { - return isGlobalSourceFile(parent2); - } - return isDeclarationVisible(parent2); - case 172 /* PropertyDeclaration */: - case 171 /* PropertySignature */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - case 174 /* MethodDeclaration */: - case 173 /* MethodSignature */: - if (hasEffectiveModifier(node, 8 /* Private */ | 16 /* Protected */)) { - return false; - } - case 176 /* Constructor */: - case 180 /* ConstructSignature */: - case 179 /* CallSignature */: - case 181 /* IndexSignature */: - case 169 /* Parameter */: - case 268 /* ModuleBlock */: - case 184 /* FunctionType */: - case 185 /* ConstructorType */: - case 187 /* TypeLiteral */: - case 183 /* TypeReference */: - case 188 /* ArrayType */: - case 189 /* TupleType */: - case 192 /* UnionType */: - case 193 /* IntersectionType */: - case 196 /* ParenthesizedType */: - case 202 /* NamedTupleMember */: - return isDeclarationVisible(node.parent); - case 273 /* ImportClause */: - case 274 /* NamespaceImport */: - case 276 /* ImportSpecifier */: - return false; - case 168 /* TypeParameter */: - case 312 /* SourceFile */: - case 270 /* NamespaceExportDeclaration */: - return true; - case 277 /* ExportAssignment */: - return false; - default: - return false; - } - } - } - function collectLinkedAliases(node, setVisibility) { - var exportSymbol; - if (node.parent && node.parent.kind === 277 /* ExportAssignment */) { - exportSymbol = resolveName(node, node.escapedText, 111551 /* Value */ | 788968 /* Type */ | 1920 /* Namespace */ | 2097152 /* Alias */, - /*nameNotFoundMessage*/ - void 0, node, - /*isUse*/ - false); - } - else if (node.parent.kind === 281 /* ExportSpecifier */) { - exportSymbol = getTargetOfExportSpecifier(node.parent, 111551 /* Value */ | 788968 /* Type */ | 1920 /* Namespace */ | 2097152 /* Alias */); - } - var result; - var visited; - if (exportSymbol) { - visited = /* @__PURE__ */ new Set(); - visited.add(getSymbolId(exportSymbol)); - buildVisibleNodeList(exportSymbol.declarations); - } - return result; - function buildVisibleNodeList(declarations) { - forEach(declarations, function (declaration) { - var resultNode = getAnyImportSyntax(declaration) || declaration; - if (setVisibility) { - getNodeLinks(declaration).isVisible = true; - } - else { - result = result || []; - pushIfUnique(result, resultNode); - } - if (isInternalModuleImportEqualsDeclaration(declaration)) { - var internalModuleReference = declaration.moduleReference; - var firstIdentifier = getFirstIdentifier(internalModuleReference); - var importSymbol = resolveName(declaration, firstIdentifier.escapedText, 111551 /* Value */ | 788968 /* Type */ | 1920 /* Namespace */, - /*nameNotFoundMessage*/ - void 0, - /*nameArg*/ - void 0, - /*isUse*/ - false); - if (importSymbol && visited) { - if (tryAddToSet(visited, getSymbolId(importSymbol))) { - buildVisibleNodeList(importSymbol.declarations); - } - } - } - }); - } - } - function pushTypeResolution(target, propertyName) { - var resolutionCycleStartIndex = findResolutionCycleStartIndex(target, propertyName); - if (resolutionCycleStartIndex >= 0) { - var length2 = resolutionTargets.length; - for (var i = resolutionCycleStartIndex; i < length2; i++) { - resolutionResults[i] = false; - } - return false; - } - resolutionTargets.push(target); - resolutionResults.push( - /*items*/ - true); - resolutionPropertyNames.push(propertyName); - return true; - } - function findResolutionCycleStartIndex(target, propertyName) { - for (var i = resolutionTargets.length - 1; i >= resolutionStart; i--) { - if (resolutionTargetHasProperty(resolutionTargets[i], resolutionPropertyNames[i])) { - return -1; - } - if (resolutionTargets[i] === target && resolutionPropertyNames[i] === propertyName) { - return i; - } - } - return -1; - } - function resolutionTargetHasProperty(target, propertyName) { - switch (propertyName) { - case 0 /* Type */: - return !!getSymbolLinks(target).type; - case 5 /* EnumTagType */: - return !!getNodeLinks(target).resolvedEnumType; - case 2 /* DeclaredType */: - return !!getSymbolLinks(target).declaredType; - case 1 /* ResolvedBaseConstructorType */: - return !!target.resolvedBaseConstructorType; - case 3 /* ResolvedReturnType */: - return !!target.resolvedReturnType; - case 4 /* ImmediateBaseConstraint */: - return !!target.immediateBaseConstraint; - case 6 /* ResolvedTypeArguments */: - return !!target.resolvedTypeArguments; - case 7 /* ResolvedBaseTypes */: - return !!target.baseTypesResolved; - case 8 /* WriteType */: - return !!getSymbolLinks(target).writeType; - case 9 /* ParameterInitializerContainsUndefined */: - return getNodeLinks(target).parameterInitializerContainsUndefined !== void 0; - } - return Debug.assertNever(propertyName); - } - function popTypeResolution() { - resolutionTargets.pop(); - resolutionPropertyNames.pop(); - return resolutionResults.pop(); - } - function getDeclarationContainer(node) { - return findAncestor(getRootDeclaration(node), function (node2) { - switch (node2.kind) { - case 260 /* VariableDeclaration */: - case 261 /* VariableDeclarationList */: - case 276 /* ImportSpecifier */: - case 275 /* NamedImports */: - case 274 /* NamespaceImport */: - case 273 /* ImportClause */: - return false; - default: - return true; - } - }).parent; - } - function getTypeOfPrototypeProperty(prototype) { - var classType = getDeclaredTypeOfSymbol(getParentOfSymbol(prototype)); - return classType.typeParameters ? createTypeReference(classType, map(classType.typeParameters, function (_) { return anyType; })) : classType; - } - function getTypeOfPropertyOfType(type, name) { - var prop = getPropertyOfType(type, name); - return prop ? getTypeOfSymbol(prop) : void 0; - } - function getTypeOfPropertyOrIndexSignature(type, name) { - var _a; - return getTypeOfPropertyOfType(type, name) || ((_a = getApplicableIndexInfoForName(type, name)) == null ? void 0 : _a.type) || unknownType; - } - function getTypeOfPropertyOrIndexSignatureOfType(type, name) { - var _a; - var propType; - return getTypeOfPropertyOfType(type, name) || (propType = (_a = getApplicableIndexInfoForName(type, name)) == null ? void 0 : _a.type) && addOptionality(propType, - /*isProperty*/ - true, - /*isOptional*/ - true); - } - function isTypeAny(type) { - return type && (type.flags & 1 /* Any */) !== 0; - } - function isErrorType(type) { - return type === errorType || !!(type.flags & 1 /* Any */ && type.aliasSymbol); - } - function getTypeForBindingElementParent(node, checkMode) { - if (checkMode !== 0 /* Normal */) { - return getTypeForVariableLikeDeclaration(node, - /*includeOptionality*/ - false, checkMode); - } - var symbol = getSymbolOfDeclaration(node); - return symbol && getSymbolLinks(symbol).type || getTypeForVariableLikeDeclaration(node, - /*includeOptionality*/ - false, checkMode); - } - function getRestType(source, properties, symbol) { - var e_190, _t, e_191, _u; - source = filterType(source, function (t) { return !(t.flags & 98304 /* Nullable */); }); - if (source.flags & 131072 /* Never */) { - return emptyObjectType; - } - if (source.flags & 1048576 /* Union */) { - return mapType(source, function (t) { return getRestType(t, properties, symbol); }); - } - var omitKeyType = getUnionType(map(properties, getLiteralTypeFromPropertyName)); - var spreadableProperties = []; - var unspreadableToRestKeys = []; - try { - for (var _v = __values(getPropertiesOfType(source)), _w = _v.next(); !_w.done; _w = _v.next()) { - var prop = _w.value; - var literalTypeFromProperty = getLiteralTypeFromProperty(prop, 8576 /* StringOrNumberLiteralOrUnique */); - if (!isTypeAssignableTo(literalTypeFromProperty, omitKeyType) && !(getDeclarationModifierFlagsFromSymbol(prop) & (8 /* Private */ | 16 /* Protected */)) && isSpreadableProperty(prop)) { - spreadableProperties.push(prop); - } - else { - unspreadableToRestKeys.push(literalTypeFromProperty); - } - } - } - catch (e_190_1) { e_190 = { error: e_190_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_190) throw e_190.error; } - } - if (isGenericObjectType(source) || isGenericIndexType(omitKeyType)) { - if (unspreadableToRestKeys.length) { - omitKeyType = getUnionType(__spreadArray([omitKeyType], __read(unspreadableToRestKeys), false)); - } - if (omitKeyType.flags & 131072 /* Never */) { - return source; - } - var omitTypeAlias = getGlobalOmitSymbol(); - if (!omitTypeAlias) { - return errorType; - } - return getTypeAliasInstantiation(omitTypeAlias, [source, omitKeyType]); - } - var members = createSymbolTable(); - try { - for (var spreadableProperties_1 = __values(spreadableProperties), spreadableProperties_1_1 = spreadableProperties_1.next(); !spreadableProperties_1_1.done; spreadableProperties_1_1 = spreadableProperties_1.next()) { - var prop = spreadableProperties_1_1.value; - members.set(prop.escapedName, getSpreadSymbol(prop, - /*readonly*/ - false)); - } - } - catch (e_191_1) { e_191 = { error: e_191_1 }; } - finally { - try { - if (spreadableProperties_1_1 && !spreadableProperties_1_1.done && (_u = spreadableProperties_1.return)) _u.call(spreadableProperties_1); - } - finally { if (e_191) throw e_191.error; } - } - var result = createAnonymousType(symbol, members, emptyArray, emptyArray, getIndexInfosOfType(source)); - result.objectFlags |= 4194304 /* ObjectRestType */; - return result; - } - function isGenericTypeWithUndefinedConstraint(type) { - return !!(type.flags & 465829888 /* Instantiable */) && maybeTypeOfKind(getBaseConstraintOfType(type) || unknownType, 32768 /* Undefined */); - } - function getNonUndefinedType(type) { - var typeOrConstraint = someType(type, isGenericTypeWithUndefinedConstraint) ? mapType(type, function (t) { return t.flags & 465829888 /* Instantiable */ ? getBaseConstraintOrType(t) : t; }) : type; - return getTypeWithFacts(typeOrConstraint, 524288 /* NEUndefined */); - } - function getFlowTypeOfDestructuring(node, declaredType) { - var reference = getSyntheticElementAccess(node); - return reference ? getFlowTypeOfReference(reference, declaredType) : declaredType; - } - function getSyntheticElementAccess(node) { - var parentAccess = getParentElementAccess(node); - if (parentAccess && canHaveFlowNode(parentAccess) && parentAccess.flowNode) { - var propName = getDestructuringPropertyName(node); - if (propName) { - var literal = setTextRange(parseNodeFactory.createStringLiteral(propName), node); - var lhsExpr = isLeftHandSideExpression(parentAccess) ? parentAccess : parseNodeFactory.createParenthesizedExpression(parentAccess); - var result = setTextRange(parseNodeFactory.createElementAccessExpression(lhsExpr, literal), node); - setParent(literal, result); - setParent(result, node); - if (lhsExpr !== parentAccess) { - setParent(lhsExpr, result); - } - result.flowNode = parentAccess.flowNode; - return result; - } - } - } - function getParentElementAccess(node) { - var ancestor = node.parent.parent; - switch (ancestor.kind) { - case 208 /* BindingElement */: - case 303 /* PropertyAssignment */: - return getSyntheticElementAccess(ancestor); - case 209 /* ArrayLiteralExpression */: - return getSyntheticElementAccess(node.parent); - case 260 /* VariableDeclaration */: - return ancestor.initializer; - case 226 /* BinaryExpression */: - return ancestor.right; - } - } - function getDestructuringPropertyName(node) { - var parent2 = node.parent; - if (node.kind === 208 /* BindingElement */ && parent2.kind === 206 /* ObjectBindingPattern */) { - return getLiteralPropertyNameText(node.propertyName || node.name); - } - if (node.kind === 303 /* PropertyAssignment */ || node.kind === 304 /* ShorthandPropertyAssignment */) { - return getLiteralPropertyNameText(node.name); - } - return "" + parent2.elements.indexOf(node); - } - function getLiteralPropertyNameText(name) { - var type = getLiteralTypeFromPropertyName(name); - return type.flags & (128 /* StringLiteral */ | 256 /* NumberLiteral */) ? "" + type.value : void 0; - } - function getTypeForBindingElement(declaration) { - var checkMode = declaration.dotDotDotToken ? 64 /* RestBindingElement */ : 0 /* Normal */; - var parentType = getTypeForBindingElementParent(declaration.parent.parent, checkMode); - return parentType && getBindingElementTypeFromParentType(declaration, parentType); - } - function getBindingElementTypeFromParentType(declaration, parentType) { - var e_192, _t; - if (isTypeAny(parentType)) { - return parentType; - } - var pattern = declaration.parent; - if (strictNullChecks && declaration.flags & 33554432 /* Ambient */ && isParameterDeclaration(declaration)) { - parentType = getNonNullableType(parentType); - } - else if (strictNullChecks && pattern.parent.initializer && !(getTypeFacts(getTypeOfInitializer(pattern.parent.initializer)) & 65536 /* EQUndefined */)) { - parentType = getTypeWithFacts(parentType, 524288 /* NEUndefined */); - } - var type; - if (pattern.kind === 206 /* ObjectBindingPattern */) { - if (declaration.dotDotDotToken) { - parentType = getReducedType(parentType); - if (parentType.flags & 2 /* Unknown */ || !isValidSpreadType(parentType)) { - error2(declaration, Diagnostics.Rest_types_may_only_be_created_from_object_types); - return errorType; - } - var literalMembers = []; - try { - for (var _u = __values(pattern.elements), _v = _u.next(); !_v.done; _v = _u.next()) { - var element = _v.value; - if (!element.dotDotDotToken) { - literalMembers.push(element.propertyName || element.name); - } - } - } - catch (e_192_1) { e_192 = { error: e_192_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_192) throw e_192.error; } - } - type = getRestType(parentType, literalMembers, declaration.symbol); - } - else { - var name_36 = declaration.propertyName || declaration.name; - var indexType = getLiteralTypeFromPropertyName(name_36); - var declaredType = getIndexedAccessType(parentType, indexType, 32 /* ExpressionPosition */, name_36); - type = getFlowTypeOfDestructuring(declaration, declaredType); - } - } - else { - var elementType = checkIteratedTypeOrElementType(65 /* Destructuring */ | (declaration.dotDotDotToken ? 0 : 128 /* PossiblyOutOfBounds */), parentType, undefinedType, pattern); - var index_1 = pattern.elements.indexOf(declaration); - if (declaration.dotDotDotToken) { - var baseConstraint = mapType(parentType, function (t) { return t.flags & 58982400 /* InstantiableNonPrimitive */ ? getBaseConstraintOrType(t) : t; }); - type = everyType(baseConstraint, isTupleType) ? mapType(baseConstraint, function (t) { return sliceTupleType(t, index_1); }) : createArrayType(elementType); - } - else if (isArrayLikeType(parentType)) { - var indexType = getNumberLiteralType(index_1); - var accessFlags = 32 /* ExpressionPosition */ | (hasDefaultValue(declaration) ? 16 /* NoTupleBoundsCheck */ : 0); - var declaredType = getIndexedAccessTypeOrUndefined(parentType, indexType, accessFlags, declaration.name) || errorType; - type = getFlowTypeOfDestructuring(declaration, declaredType); - } - else { - type = elementType; - } - } - if (!declaration.initializer) { - return type; - } - if (getEffectiveTypeAnnotationNode(walkUpBindingElementsAndPatterns(declaration))) { - return strictNullChecks && !(getTypeFacts(checkDeclarationInitializer(declaration, 0 /* Normal */)) & 16777216 /* IsUndefined */) ? getNonUndefinedType(type) : type; - } - return widenTypeInferredFromInitializer(declaration, getUnionType([getNonUndefinedType(type), checkDeclarationInitializer(declaration, 0 /* Normal */)], 2 /* Subtype */)); - } - function getTypeForDeclarationFromJSDocComment(declaration) { - var jsdocType = getJSDocType(declaration); - if (jsdocType) { - return getTypeFromTypeNode(jsdocType); - } - return void 0; - } - function isNullOrUndefined3(node) { - var expr = skipParentheses(node, - /*excludeJSDocTypeAssertions*/ - true); - return expr.kind === 106 /* NullKeyword */ || expr.kind === 80 /* Identifier */ && getResolvedSymbol(expr) === undefinedSymbol; - } - function isEmptyArrayLiteral2(node) { - var expr = skipParentheses(node, - /*excludeJSDocTypeAssertions*/ - true); - return expr.kind === 209 /* ArrayLiteralExpression */ && expr.elements.length === 0; - } - function addOptionality(type, isProperty, isOptional) { - if (isProperty === void 0) { isProperty = false; } - if (isOptional === void 0) { isOptional = true; } - return strictNullChecks && isOptional ? getOptionalType(type, isProperty) : type; - } - function getTypeForVariableLikeDeclaration(declaration, includeOptionality, checkMode) { - if (isVariableDeclaration(declaration) && declaration.parent.parent.kind === 249 /* ForInStatement */) { - var indexType = getIndexType(getNonNullableTypeIfNeeded(checkExpression(declaration.parent.parent.expression, - /*checkMode*/ - checkMode))); - return indexType.flags & (262144 /* TypeParameter */ | 4194304 /* Index */) ? getExtractStringType(indexType) : stringType; - } - if (isVariableDeclaration(declaration) && declaration.parent.parent.kind === 250 /* ForOfStatement */) { - var forOfStatement = declaration.parent.parent; - return checkRightHandSideOfForOf(forOfStatement) || anyType; - } - if (isBindingPattern(declaration.parent)) { - return getTypeForBindingElement(declaration); - } - var isProperty = isPropertyDeclaration(declaration) && !hasAccessorModifier(declaration) || isPropertySignature(declaration) || isJSDocPropertyTag(declaration); - var isOptional = includeOptionality && isOptionalDeclaration(declaration); - var declaredType = tryGetTypeFromEffectiveTypeNode(declaration); - if (isCatchClauseVariableDeclarationOrBindingElement(declaration)) { - if (declaredType) { - return isTypeAny(declaredType) || declaredType === unknownType ? declaredType : errorType; - } - return useUnknownInCatchVariables ? unknownType : anyType; - } - if (declaredType) { - return addOptionality(declaredType, isProperty, isOptional); - } - if ((noImplicitAny || isInJSFile(declaration)) && isVariableDeclaration(declaration) && !isBindingPattern(declaration.name) && !(getCombinedModifierFlagsCached(declaration) & 1 /* Export */) && !(declaration.flags & 33554432 /* Ambient */)) { - if (!(getCombinedNodeFlagsCached(declaration) & 6 /* Constant */) && (!declaration.initializer || isNullOrUndefined3(declaration.initializer))) { - return autoType; - } - if (declaration.initializer && isEmptyArrayLiteral2(declaration.initializer)) { - return autoArrayType; - } - } - if (isParameter(declaration)) { - var func = declaration.parent; - if (func.kind === 178 /* SetAccessor */ && hasBindableName(func)) { - var getter = getDeclarationOfKind(getSymbolOfDeclaration(declaration.parent), 177 /* GetAccessor */); - if (getter) { - var getterSignature = getSignatureFromDeclaration(getter); - var thisParameter = getAccessorThisParameter(func); - if (thisParameter && declaration === thisParameter) { - Debug.assert(!thisParameter.type); - return getTypeOfSymbol(getterSignature.thisParameter); - } - return getReturnTypeOfSignature(getterSignature); - } - } - var parameterTypeOfTypeTag = getParameterTypeOfTypeTag(func, declaration); - if (parameterTypeOfTypeTag) - return parameterTypeOfTypeTag; - var type = declaration.symbol.escapedName === "this" /* This */ ? getContextualThisParameterType(func) : getContextuallyTypedParameterType(declaration); - if (type) { - return addOptionality(type, - /*isProperty*/ - false, isOptional); - } - } - if (hasOnlyExpressionInitializer(declaration) && !!declaration.initializer) { - if (isInJSFile(declaration) && !isParameter(declaration)) { - var containerObjectType = getJSContainerObjectType(declaration, getSymbolOfDeclaration(declaration), getDeclaredExpandoInitializer(declaration)); - if (containerObjectType) { - return containerObjectType; - } - } - var type = widenTypeInferredFromInitializer(declaration, checkDeclarationInitializer(declaration, checkMode)); - return addOptionality(type, isProperty, isOptional); - } - if (isPropertyDeclaration(declaration) && (noImplicitAny || isInJSFile(declaration))) { - if (!hasStaticModifier(declaration)) { - var constructor = findConstructorDeclaration(declaration.parent); - var type = constructor ? getFlowTypeInConstructor(declaration.symbol, constructor) : getEffectiveModifierFlags(declaration) & 2 /* Ambient */ ? getTypeOfPropertyInBaseClass(declaration.symbol) : void 0; - return type && addOptionality(type, - /*isProperty*/ - true, isOptional); - } - else { - var staticBlocks = filter(declaration.parent.members, isClassStaticBlockDeclaration); - var type = staticBlocks.length ? getFlowTypeInStaticBlocks(declaration.symbol, staticBlocks) : getEffectiveModifierFlags(declaration) & 2 /* Ambient */ ? getTypeOfPropertyInBaseClass(declaration.symbol) : void 0; - return type && addOptionality(type, - /*isProperty*/ - true, isOptional); - } - } - if (isJsxAttribute(declaration)) { - return trueType; - } - if (isBindingPattern(declaration.name)) { - return getTypeFromBindingPattern(declaration.name, - /*includePatternInType*/ - false, - /*reportErrors*/ - true); - } - return void 0; - } - function isConstructorDeclaredProperty(symbol) { - if (symbol.valueDeclaration && isBinaryExpression(symbol.valueDeclaration)) { - var links = getSymbolLinks(symbol); - if (links.isConstructorDeclaredProperty === void 0) { - links.isConstructorDeclaredProperty = false; - links.isConstructorDeclaredProperty = !!getDeclaringConstructor(symbol) && every(symbol.declarations, function (declaration) { return isBinaryExpression(declaration) && isPossiblyAliasedThisProperty(declaration) && (declaration.left.kind !== 212 /* ElementAccessExpression */ || isStringOrNumericLiteralLike(declaration.left.argumentExpression)) && !getAnnotatedTypeForAssignmentDeclaration( - /*declaredType*/ - void 0, declaration, symbol, declaration); }); - } - return links.isConstructorDeclaredProperty; - } - return false; - } - function isAutoTypedProperty(symbol) { - var declaration = symbol.valueDeclaration; - return declaration && isPropertyDeclaration(declaration) && !getEffectiveTypeAnnotationNode(declaration) && !declaration.initializer && (noImplicitAny || isInJSFile(declaration)); - } - function getDeclaringConstructor(symbol) { - var e_193, _t; - if (!symbol.declarations) { - return; - } - try { - for (var _u = __values(symbol.declarations), _v = _u.next(); !_v.done; _v = _u.next()) { - var declaration = _v.value; - var container = getThisContainer(declaration, - /*includeArrowFunctions*/ - false, - /*includeClassComputedPropertyName*/ - false); - if (container && (container.kind === 176 /* Constructor */ || isJSConstructor(container))) { - return container; - } - } - } - catch (e_193_1) { e_193 = { error: e_193_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_193) throw e_193.error; } - } - } - function getFlowTypeFromCommonJSExport(symbol) { - var file = getSourceFileOfNode(symbol.declarations[0]); - var accessName = unescapeLeadingUnderscores(symbol.escapedName); - var areAllModuleExports = symbol.declarations.every(function (d) { return isInJSFile(d) && isAccessExpression(d) && isModuleExportsAccessExpression(d.expression); }); - var reference = areAllModuleExports ? factory.createPropertyAccessExpression(factory.createPropertyAccessExpression(factory.createIdentifier("module"), factory.createIdentifier("exports")), accessName) : factory.createPropertyAccessExpression(factory.createIdentifier("exports"), accessName); - if (areAllModuleExports) { - setParent(reference.expression.expression, reference.expression); - } - setParent(reference.expression, reference); - setParent(reference, file); - reference.flowNode = file.endFlowNode; - return getFlowTypeOfReference(reference, autoType, undefinedType); - } - function getFlowTypeInStaticBlocks(symbol, staticBlocks) { - var e_194, _t; - var accessName = startsWith(symbol.escapedName, "__#") ? factory.createPrivateIdentifier(symbol.escapedName.split("@")[1]) : unescapeLeadingUnderscores(symbol.escapedName); - try { - for (var staticBlocks_1 = __values(staticBlocks), staticBlocks_1_1 = staticBlocks_1.next(); !staticBlocks_1_1.done; staticBlocks_1_1 = staticBlocks_1.next()) { - var staticBlock = staticBlocks_1_1.value; - var reference = factory.createPropertyAccessExpression(factory.createThis(), accessName); - setParent(reference.expression, reference); - setParent(reference, staticBlock); - reference.flowNode = staticBlock.returnFlowNode; - var flowType = getFlowTypeOfProperty(reference, symbol); - if (noImplicitAny && (flowType === autoType || flowType === autoArrayType)) { - error2(symbol.valueDeclaration, Diagnostics.Member_0_implicitly_has_an_1_type, symbolToString(symbol), typeToString(flowType)); - } - if (everyType(flowType, isNullableType)) { - continue; - } - return convertAutoToAny(flowType); - } - } - catch (e_194_1) { e_194 = { error: e_194_1 }; } - finally { - try { - if (staticBlocks_1_1 && !staticBlocks_1_1.done && (_t = staticBlocks_1.return)) _t.call(staticBlocks_1); - } - finally { if (e_194) throw e_194.error; } - } - } - function getFlowTypeInConstructor(symbol, constructor) { - var accessName = startsWith(symbol.escapedName, "__#") ? factory.createPrivateIdentifier(symbol.escapedName.split("@")[1]) : unescapeLeadingUnderscores(symbol.escapedName); - var reference = factory.createPropertyAccessExpression(factory.createThis(), accessName); - setParent(reference.expression, reference); - setParent(reference, constructor); - reference.flowNode = constructor.returnFlowNode; - var flowType = getFlowTypeOfProperty(reference, symbol); - if (noImplicitAny && (flowType === autoType || flowType === autoArrayType)) { - error2(symbol.valueDeclaration, Diagnostics.Member_0_implicitly_has_an_1_type, symbolToString(symbol), typeToString(flowType)); - } - return everyType(flowType, isNullableType) ? void 0 : convertAutoToAny(flowType); - } - function getFlowTypeOfProperty(reference, prop) { - var initialType = (prop == null ? void 0 : prop.valueDeclaration) && (!isAutoTypedProperty(prop) || getEffectiveModifierFlags(prop.valueDeclaration) & 2 /* Ambient */) && getTypeOfPropertyInBaseClass(prop) || undefinedType; - return getFlowTypeOfReference(reference, autoType, initialType); - } - function getWidenedTypeForAssignmentDeclaration(symbol, resolvedSymbol) { - var e_195, _t; - var container = getAssignedExpandoInitializer(symbol.valueDeclaration); - if (container) { - var tag = isInJSFile(container) ? getJSDocTypeTag(container) : void 0; - if (tag && tag.typeExpression) { - return getTypeFromTypeNode(tag.typeExpression); - } - var containerObjectType = symbol.valueDeclaration && getJSContainerObjectType(symbol.valueDeclaration, symbol, container); - return containerObjectType || getWidenedLiteralType(checkExpressionCached(container)); - } - var type; - var definedInConstructor = false; - var definedInMethod = false; - if (isConstructorDeclaredProperty(symbol)) { - type = getFlowTypeInConstructor(symbol, getDeclaringConstructor(symbol)); - } - if (!type) { - var types = void 0; - if (symbol.declarations) { - var jsdocType = void 0; - try { - for (var _u = __values(symbol.declarations), _v = _u.next(); !_v.done; _v = _u.next()) { - var declaration = _v.value; - var expression = isBinaryExpression(declaration) || isCallExpression(declaration) ? declaration : isAccessExpression(declaration) ? isBinaryExpression(declaration.parent) ? declaration.parent : declaration : void 0; - if (!expression) { - continue; - } - var kind = isAccessExpression(expression) ? getAssignmentDeclarationPropertyAccessKind(expression) : getAssignmentDeclarationKind(expression); - if (kind === 4 /* ThisProperty */ || isBinaryExpression(expression) && isPossiblyAliasedThisProperty(expression, kind)) { - if (isDeclarationInConstructor(expression)) { - definedInConstructor = true; - } - else { - definedInMethod = true; - } - } - if (!isCallExpression(expression)) { - jsdocType = getAnnotatedTypeForAssignmentDeclaration(jsdocType, expression, symbol, declaration); - } - if (!jsdocType) { - (types || (types = [])).push(isBinaryExpression(expression) || isCallExpression(expression) ? getInitializerTypeFromAssignmentDeclaration(symbol, resolvedSymbol, expression, kind) : neverType); - } - } - } - catch (e_195_1) { e_195 = { error: e_195_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_195) throw e_195.error; } - } - type = jsdocType; - } - if (!type) { - if (!length(types)) { - return errorType; - } - var constructorTypes = definedInConstructor && symbol.declarations ? getConstructorDefinedThisAssignmentTypes(types, symbol.declarations) : void 0; - if (definedInMethod) { - var propType = getTypeOfPropertyInBaseClass(symbol); - if (propType) { - (constructorTypes || (constructorTypes = [])).push(propType); - definedInConstructor = true; - } - } - var sourceTypes = some(constructorTypes, function (t) { return !!(t.flags & ~98304 /* Nullable */); }) ? constructorTypes : types; - type = getUnionType(sourceTypes); - } - } - var widened = getWidenedType(addOptionality(type, - /*isProperty*/ - false, definedInMethod && !definedInConstructor)); - if (symbol.valueDeclaration && isInJSFile(symbol.valueDeclaration) && filterType(widened, function (t) { return !!(t.flags & ~98304 /* Nullable */); }) === neverType) { - reportImplicitAny(symbol.valueDeclaration, anyType); - return anyType; - } - return widened; - } - function getJSContainerObjectType(decl, symbol, init) { - var _a, _b; - if (!isInJSFile(decl) || !init || !isObjectLiteralExpression(init) || init.properties.length) { - return void 0; - } - var exports = createSymbolTable(); - while (isBinaryExpression(decl) || isPropertyAccessExpression(decl)) { - var s2 = getSymbolOfNode(decl); - if ((_a = s2 == null ? void 0 : s2.exports) == null ? void 0 : _a.size) { - mergeSymbolTable(exports, s2.exports); - } - decl = isBinaryExpression(decl) ? decl.parent : decl.parent.parent; - } - var s = getSymbolOfNode(decl); - if ((_b = s == null ? void 0 : s.exports) == null ? void 0 : _b.size) { - mergeSymbolTable(exports, s.exports); - } - var type = createAnonymousType(symbol, exports, emptyArray, emptyArray, emptyArray); - type.objectFlags |= 4096 /* JSLiteral */; - return type; - } - function getAnnotatedTypeForAssignmentDeclaration(declaredType, expression, symbol, declaration) { - var _a; - var typeNode = getEffectiveTypeAnnotationNode(expression.parent); - if (typeNode) { - var type = getWidenedType(getTypeFromTypeNode(typeNode)); - if (!declaredType) { - return type; - } - else if (!isErrorType(declaredType) && !isErrorType(type) && !isTypeIdenticalTo(declaredType, type)) { - errorNextVariableOrPropertyDeclarationMustHaveSameType( - /*firstDeclaration*/ - void 0, declaredType, declaration, type); - } - } - if ((_a = symbol.parent) == null ? void 0 : _a.valueDeclaration) { - var typeNode2 = getEffectiveTypeAnnotationNode(symbol.parent.valueDeclaration); - if (typeNode2) { - var annotationSymbol = getPropertyOfType(getTypeFromTypeNode(typeNode2), symbol.escapedName); - if (annotationSymbol) { - return getNonMissingTypeOfSymbol(annotationSymbol); - } - } - } - return declaredType; - } - function getInitializerTypeFromAssignmentDeclaration(symbol, resolvedSymbol, expression, kind) { - if (isCallExpression(expression)) { - if (resolvedSymbol) { - return getTypeOfSymbol(resolvedSymbol); - } - var objectLitType = checkExpressionCached(expression.arguments[2]); - var valueType = getTypeOfPropertyOfType(objectLitType, "value"); - if (valueType) { - return valueType; - } - var getFunc = getTypeOfPropertyOfType(objectLitType, "get"); - if (getFunc) { - var getSig = getSingleCallSignature(getFunc); - if (getSig) { - return getReturnTypeOfSignature(getSig); - } - } - var setFunc = getTypeOfPropertyOfType(objectLitType, "set"); - if (setFunc) { - var setSig = getSingleCallSignature(setFunc); - if (setSig) { - return getTypeOfFirstParameterOfSignature(setSig); - } - } - return anyType; - } - if (containsSameNamedThisProperty(expression.left, expression.right)) { - return anyType; - } - var isDirectExport = kind === 1 /* ExportsProperty */ && (isPropertyAccessExpression(expression.left) || isElementAccessExpression(expression.left)) && (isModuleExportsAccessExpression(expression.left.expression) || isIdentifier(expression.left.expression) && isExportsIdentifier(expression.left.expression)); - var type = resolvedSymbol ? getTypeOfSymbol(resolvedSymbol) : isDirectExport ? getRegularTypeOfLiteralType(checkExpressionCached(expression.right)) : getWidenedLiteralType(checkExpressionCached(expression.right)); - if (type.flags & 524288 /* Object */ && kind === 2 /* ModuleExports */ && symbol.escapedName === "export=" /* ExportEquals */) { - var exportedType = resolveStructuredTypeMembers(type); - var members_4 = createSymbolTable(); - copyEntries(exportedType.members, members_4); - var initialSize = members_4.size; - if (resolvedSymbol && !resolvedSymbol.exports) { - resolvedSymbol.exports = createSymbolTable(); - } - (resolvedSymbol || symbol).exports.forEach(function (s, name) { - var _a; - var exportedMember = members_4.get(name); - if (exportedMember && exportedMember !== s && !(s.flags & 2097152 /* Alias */)) { - if (s.flags & 111551 /* Value */ && exportedMember.flags & 111551 /* Value */) { - if (s.valueDeclaration && exportedMember.valueDeclaration && getSourceFileOfNode(s.valueDeclaration) !== getSourceFileOfNode(exportedMember.valueDeclaration)) { - var unescapedName = unescapeLeadingUnderscores(s.escapedName); - var exportedMemberName = ((_a = tryCast(exportedMember.valueDeclaration, isNamedDeclaration)) == null ? void 0 : _a.name) || exportedMember.valueDeclaration; - addRelatedInfo(error2(s.valueDeclaration, Diagnostics.Duplicate_identifier_0, unescapedName), createDiagnosticForNode(exportedMemberName, Diagnostics._0_was_also_declared_here, unescapedName)); - addRelatedInfo(error2(exportedMemberName, Diagnostics.Duplicate_identifier_0, unescapedName), createDiagnosticForNode(s.valueDeclaration, Diagnostics._0_was_also_declared_here, unescapedName)); - } - var union = createSymbol(s.flags | exportedMember.flags, name); - union.links.type = getUnionType([getTypeOfSymbol(s), getTypeOfSymbol(exportedMember)]); - union.valueDeclaration = exportedMember.valueDeclaration; - union.declarations = concatenate(exportedMember.declarations, s.declarations); - members_4.set(name, union); - } - else { - members_4.set(name, mergeSymbol(s, exportedMember)); - } - } - else { - members_4.set(name, s); - } - }); - var result = createAnonymousType(initialSize !== members_4.size ? void 0 : exportedType.symbol, - // Only set the type's symbol if it looks to be the same as the original type - members_4, exportedType.callSignatures, exportedType.constructSignatures, exportedType.indexInfos); - if (initialSize === members_4.size) { - if (type.aliasSymbol) { - result.aliasSymbol = type.aliasSymbol; - result.aliasTypeArguments = type.aliasTypeArguments; - } - if (getObjectFlags(type) & 4 /* Reference */) { - result.aliasSymbol = type.symbol; - var args = getTypeArguments(type); - result.aliasTypeArguments = length(args) ? args : void 0; - } - } - result.objectFlags |= getObjectFlags(type) & 4096 /* JSLiteral */; - if (result.symbol && result.symbol.flags & 32 /* Class */ && type === getDeclaredTypeOfClassOrInterface(result.symbol)) { - result.objectFlags |= 16777216 /* IsClassInstanceClone */; - } - return result; - } - if (isEmptyArrayLiteralType(type)) { - reportImplicitAny(expression, anyArrayType); - return anyArrayType; - } - return type; - } - function containsSameNamedThisProperty(thisProperty, expression) { - return isPropertyAccessExpression(thisProperty) && thisProperty.expression.kind === 110 /* ThisKeyword */ && forEachChildRecursively(expression, function (n) { return isMatchingReference(thisProperty, n); }); - } - function isDeclarationInConstructor(expression) { - var thisContainer = getThisContainer(expression, - /*includeArrowFunctions*/ - false, - /*includeClassComputedPropertyName*/ - false); - return thisContainer.kind === 176 /* Constructor */ || thisContainer.kind === 262 /* FunctionDeclaration */ || thisContainer.kind === 218 /* FunctionExpression */ && !isPrototypePropertyAssignment(thisContainer.parent); - } - function getConstructorDefinedThisAssignmentTypes(types, declarations) { - Debug.assert(types.length === declarations.length); - return types.filter(function (_, i) { - var declaration = declarations[i]; - var expression = isBinaryExpression(declaration) ? declaration : isBinaryExpression(declaration.parent) ? declaration.parent : void 0; - return expression && isDeclarationInConstructor(expression); - }); - } - function getTypeFromBindingElement(element, includePatternInType, reportErrors2) { - if (element.initializer) { - var contextualType = isBindingPattern(element.name) ? getTypeFromBindingPattern(element.name, - /*includePatternInType*/ - true, - /*reportErrors*/ - false) : unknownType; - return addOptionality(widenTypeInferredFromInitializer(element, checkDeclarationInitializer(element, 0 /* Normal */, contextualType))); - } - if (isBindingPattern(element.name)) { - return getTypeFromBindingPattern(element.name, includePatternInType, reportErrors2); - } - if (reportErrors2 && !declarationBelongsToPrivateAmbientMember(element)) { - reportImplicitAny(element, anyType); - } - return includePatternInType ? nonInferrableAnyType : anyType; - } - function getTypeFromObjectBindingPattern(pattern, includePatternInType, reportErrors2) { - var members = createSymbolTable(); - var stringIndexInfo; - var objectFlags = 128 /* ObjectLiteral */ | 131072 /* ContainsObjectOrArrayLiteral */; - forEach(pattern.elements, function (e) { - var name = e.propertyName || e.name; - if (e.dotDotDotToken) { - stringIndexInfo = createIndexInfo(stringType, anyType, - /*isReadonly*/ - false); - return; - } - var exprType = getLiteralTypeFromPropertyName(name); - if (!isTypeUsableAsPropertyName(exprType)) { - objectFlags |= 512 /* ObjectLiteralPatternWithComputedProperties */; - return; - } - var text = getPropertyNameFromType(exprType); - var flags = 4 /* Property */ | (e.initializer ? 16777216 /* Optional */ : 0); - var symbol = createSymbol(flags, text); - symbol.links.type = getTypeFromBindingElement(e, includePatternInType, reportErrors2); - symbol.links.bindingElement = e; - members.set(symbol.escapedName, symbol); - }); - var result = createAnonymousType( - /*symbol*/ - void 0, members, emptyArray, emptyArray, stringIndexInfo ? [stringIndexInfo] : emptyArray); - result.objectFlags |= objectFlags; - if (includePatternInType) { - result.pattern = pattern; - result.objectFlags |= 131072 /* ContainsObjectOrArrayLiteral */; - } - return result; - } - function getTypeFromArrayBindingPattern(pattern, includePatternInType, reportErrors2) { - var elements = pattern.elements; - var lastElement = lastOrUndefined(elements); - var restElement = lastElement && lastElement.kind === 208 /* BindingElement */ && lastElement.dotDotDotToken ? lastElement : void 0; - if (elements.length === 0 || elements.length === 1 && restElement) { - return languageVersion >= 2 /* ES2015 */ ? createIterableType(anyType) : anyArrayType; - } - var elementTypes = map(elements, function (e) { return isOmittedExpression(e) ? anyType : getTypeFromBindingElement(e, includePatternInType, reportErrors2); }); - var minLength = findLastIndex(elements, function (e) { return !(e === restElement || isOmittedExpression(e) || hasDefaultValue(e)); }, elements.length - 1) + 1; - var elementFlags = map(elements, function (e, i) { return e === restElement ? 4 /* Rest */ : i >= minLength ? 2 /* Optional */ : 1; } /* Required */); - var result = createTupleType(elementTypes, elementFlags); - if (includePatternInType) { - result = cloneTypeReference(result); - result.pattern = pattern; - result.objectFlags |= 131072 /* ContainsObjectOrArrayLiteral */; - } - return result; - } - function getTypeFromBindingPattern(pattern, includePatternInType, reportErrors2) { - if (includePatternInType === void 0) { includePatternInType = false; } - if (reportErrors2 === void 0) { reportErrors2 = false; } - return pattern.kind === 206 /* ObjectBindingPattern */ ? getTypeFromObjectBindingPattern(pattern, includePatternInType, reportErrors2) : getTypeFromArrayBindingPattern(pattern, includePatternInType, reportErrors2); - } - function getWidenedTypeForVariableLikeDeclaration(declaration, reportErrors2) { - return widenTypeForVariableLikeDeclaration(getTypeForVariableLikeDeclaration(declaration, - /*includeOptionality*/ - true, 0 /* Normal */), declaration, reportErrors2); - } - function isGlobalSymbolConstructor(node) { - var symbol = getSymbolOfNode(node); - var globalSymbol = getGlobalESSymbolConstructorTypeSymbol( - /*reportErrors*/ - false); - return globalSymbol && symbol && symbol === globalSymbol; - } - function widenTypeForVariableLikeDeclaration(type, declaration, reportErrors2) { - if (type) { - if (type.flags & 4096 /* ESSymbol */ && isGlobalSymbolConstructor(declaration.parent)) { - type = getESSymbolLikeTypeForNode(declaration); - } - if (reportErrors2) { - reportErrorsFromWidening(declaration, type); - } - if (type.flags & 8192 /* UniqueESSymbol */ && (isBindingElement(declaration) || !declaration.type) && type.symbol !== getSymbolOfDeclaration(declaration)) { - type = esSymbolType; - } - return getWidenedType(type); - } - type = isParameter(declaration) && declaration.dotDotDotToken ? anyArrayType : anyType; - if (reportErrors2) { - if (!declarationBelongsToPrivateAmbientMember(declaration)) { - reportImplicitAny(declaration, type); - } - } - return type; - } - function declarationBelongsToPrivateAmbientMember(declaration) { - var root = getRootDeclaration(declaration); - var memberDeclaration = root.kind === 169 /* Parameter */ ? root.parent : root; - return isPrivateWithinAmbient(memberDeclaration); - } - function tryGetTypeFromEffectiveTypeNode(node) { - var typeNode = getEffectiveTypeAnnotationNode(node); - if (typeNode) { - return getTypeFromTypeNode(typeNode); - } - } - function isParameterOfContextSensitiveSignature(symbol) { - var decl = symbol.valueDeclaration; - if (!decl) { - return false; - } - if (isBindingElement(decl)) { - decl = walkUpBindingElementsAndPatterns(decl); - } - if (isParameter(decl)) { - return isContextSensitiveFunctionOrObjectLiteralMethod(decl.parent); - } - return false; - } - function getTypeOfVariableOrParameterOrProperty(symbol) { - var links = getSymbolLinks(symbol); - if (!links.type) { - var type = getTypeOfVariableOrParameterOrPropertyWorker(symbol); - if (!links.type && !isParameterOfContextSensitiveSignature(symbol)) { - links.type = type; - } - return type; - } - return links.type; - } - function getTypeOfVariableOrParameterOrPropertyWorker(symbol) { - if (symbol.flags & 4194304 /* Prototype */) { - return getTypeOfPrototypeProperty(symbol); - } - if (symbol === requireSymbol) { - return anyType; - } - if (symbol.flags & 134217728 /* ModuleExports */ && symbol.valueDeclaration) { - var fileSymbol = getSymbolOfDeclaration(getSourceFileOfNode(symbol.valueDeclaration)); - var result = createSymbol(fileSymbol.flags, "exports"); - result.declarations = fileSymbol.declarations ? fileSymbol.declarations.slice() : []; - result.parent = symbol; - result.links.target = fileSymbol; - if (fileSymbol.valueDeclaration) - result.valueDeclaration = fileSymbol.valueDeclaration; - if (fileSymbol.members) - result.members = new Map(fileSymbol.members); - if (fileSymbol.exports) - result.exports = new Map(fileSymbol.exports); - var members = createSymbolTable(); - members.set("exports", result); - return createAnonymousType(symbol, members, emptyArray, emptyArray, emptyArray); - } - Debug.assertIsDefined(symbol.valueDeclaration); - var declaration = symbol.valueDeclaration; - if (isSourceFile(declaration) && isJsonSourceFile(declaration)) { - if (!declaration.statements.length) { - return emptyObjectType; - } - return getWidenedType(getWidenedLiteralType(checkExpression(declaration.statements[0].expression))); - } - if (isAccessor(declaration)) { - return getTypeOfAccessors(symbol); - } - if (!pushTypeResolution(symbol, 0 /* Type */)) { - if (symbol.flags & 512 /* ValueModule */ && !(symbol.flags & 67108864 /* Assignment */)) { - return getTypeOfFuncClassEnumModule(symbol); - } - return reportCircularityError(symbol); - } - var type; - if (declaration.kind === 277 /* ExportAssignment */) { - type = widenTypeForVariableLikeDeclaration(tryGetTypeFromEffectiveTypeNode(declaration) || checkExpressionCached(declaration.expression), declaration); - } - else if (isBinaryExpression(declaration) || isInJSFile(declaration) && (isCallExpression(declaration) || (isPropertyAccessExpression(declaration) || isBindableStaticElementAccessExpression(declaration)) && isBinaryExpression(declaration.parent))) { - type = getWidenedTypeForAssignmentDeclaration(symbol); - } - else if (isPropertyAccessExpression(declaration) || isElementAccessExpression(declaration) || isIdentifier(declaration) || isStringLiteralLike(declaration) || isNumericLiteral(declaration) || isClassDeclaration(declaration) || isFunctionDeclaration(declaration) || isMethodDeclaration(declaration) && !isObjectLiteralMethod(declaration) || isMethodSignature(declaration) || isSourceFile(declaration)) { - if (symbol.flags & (16 /* Function */ | 8192 /* Method */ | 32 /* Class */ | 384 /* Enum */ | 512 /* ValueModule */)) { - return getTypeOfFuncClassEnumModule(symbol); - } - type = isBinaryExpression(declaration.parent) ? getWidenedTypeForAssignmentDeclaration(symbol) : tryGetTypeFromEffectiveTypeNode(declaration) || anyType; - } - else if (isPropertyAssignment(declaration)) { - type = tryGetTypeFromEffectiveTypeNode(declaration) || checkPropertyAssignment(declaration); - } - else if (isJsxAttribute(declaration)) { - type = tryGetTypeFromEffectiveTypeNode(declaration) || checkJsxAttribute(declaration); - } - else if (isShorthandPropertyAssignment(declaration)) { - type = tryGetTypeFromEffectiveTypeNode(declaration) || checkExpressionForMutableLocation(declaration.name, 0 /* Normal */); - } - else if (isObjectLiteralMethod(declaration)) { - type = tryGetTypeFromEffectiveTypeNode(declaration) || checkObjectLiteralMethod(declaration, 0 /* Normal */); - } - else if (isParameter(declaration) || isPropertyDeclaration(declaration) || isPropertySignature(declaration) || isVariableDeclaration(declaration) || isBindingElement(declaration) || isJSDocPropertyLikeTag(declaration)) { - type = getWidenedTypeForVariableLikeDeclaration(declaration, - /*reportErrors*/ - true); - } - else if (isEnumDeclaration(declaration)) { - type = getTypeOfFuncClassEnumModule(symbol); - } - else if (isEnumMember(declaration)) { - type = getTypeOfEnumMember(symbol); - } - else { - return Debug.fail("Unhandled declaration kind! " + Debug.formatSyntaxKind(declaration.kind) + " for " + Debug.formatSymbol(symbol)); - } - if (!popTypeResolution()) { - if (symbol.flags & 512 /* ValueModule */ && !(symbol.flags & 67108864 /* Assignment */)) { - return getTypeOfFuncClassEnumModule(symbol); - } - return reportCircularityError(symbol); - } - return type; - } - function getAnnotatedAccessorTypeNode(accessor) { - if (accessor) { - switch (accessor.kind) { - case 177 /* GetAccessor */: - var getterTypeAnnotation = getEffectiveReturnTypeNode(accessor); - return getterTypeAnnotation; - case 178 /* SetAccessor */: - var setterTypeAnnotation = getEffectiveSetAccessorTypeAnnotationNode(accessor); - return setterTypeAnnotation; - case 172 /* PropertyDeclaration */: - Debug.assert(hasAccessorModifier(accessor)); - var accessorTypeAnnotation = getEffectiveTypeAnnotationNode(accessor); - return accessorTypeAnnotation; - } - } - return void 0; - } - function getAnnotatedAccessorType(accessor) { - var node = getAnnotatedAccessorTypeNode(accessor); - return node && getTypeFromTypeNode(node); - } - function getAnnotatedAccessorThisParameter(accessor) { - var parameter = getAccessorThisParameter(accessor); - return parameter && parameter.symbol; - } - function getThisTypeOfDeclaration(declaration) { - return getThisTypeOfSignature(getSignatureFromDeclaration(declaration)); - } - function getTypeOfAccessors(symbol) { - var links = getSymbolLinks(symbol); - if (!links.type) { - if (!pushTypeResolution(symbol, 0 /* Type */)) { - return errorType; - } - var getter = getDeclarationOfKind(symbol, 177 /* GetAccessor */); - var setter = getDeclarationOfKind(symbol, 178 /* SetAccessor */); - var accessor = tryCast(getDeclarationOfKind(symbol, 172 /* PropertyDeclaration */), isAutoAccessorPropertyDeclaration); - var type = getter && isInJSFile(getter) && getTypeForDeclarationFromJSDocComment(getter) || getAnnotatedAccessorType(getter) || getAnnotatedAccessorType(setter) || getAnnotatedAccessorType(accessor) || getter && getter.body && getReturnTypeFromBody(getter) || accessor && accessor.initializer && getWidenedTypeForVariableLikeDeclaration(accessor, - /*reportErrors*/ - true); - if (!type) { - if (setter && !isPrivateWithinAmbient(setter)) { - errorOrSuggestion(noImplicitAny, setter, Diagnostics.Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation, symbolToString(symbol)); - } - else if (getter && !isPrivateWithinAmbient(getter)) { - errorOrSuggestion(noImplicitAny, getter, Diagnostics.Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation, symbolToString(symbol)); - } - else if (accessor && !isPrivateWithinAmbient(accessor)) { - errorOrSuggestion(noImplicitAny, accessor, Diagnostics.Member_0_implicitly_has_an_1_type, symbolToString(symbol), "any"); - } - type = anyType; - } - if (!popTypeResolution()) { - if (getAnnotatedAccessorTypeNode(getter)) { - error2(getter, Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation, symbolToString(symbol)); - } - else if (getAnnotatedAccessorTypeNode(setter)) { - error2(setter, Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation, symbolToString(symbol)); - } - else if (getAnnotatedAccessorTypeNode(accessor)) { - error2(setter, Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation, symbolToString(symbol)); - } - else if (getter && noImplicitAny) { - error2(getter, Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions, symbolToString(symbol)); - } - type = anyType; - } - links.type = type; - } - return links.type; - } - function getWriteTypeOfAccessors(symbol) { - var _t; - var links = getSymbolLinks(symbol); - if (!links.writeType) { - if (!pushTypeResolution(symbol, 8 /* WriteType */)) { - return errorType; - } - var setter = (_t = getDeclarationOfKind(symbol, 178 /* SetAccessor */)) !== null && _t !== void 0 ? _t : tryCast(getDeclarationOfKind(symbol, 172 /* PropertyDeclaration */), isAutoAccessorPropertyDeclaration); - var writeType = getAnnotatedAccessorType(setter); - if (!popTypeResolution()) { - if (getAnnotatedAccessorTypeNode(setter)) { - error2(setter, Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation, symbolToString(symbol)); - } - writeType = anyType; - } - links.writeType = writeType || getTypeOfAccessors(symbol); - } - return links.writeType; - } - function getBaseTypeVariableOfClass(symbol) { - var baseConstructorType = getBaseConstructorTypeOfClass(getDeclaredTypeOfClassOrInterface(symbol)); - return baseConstructorType.flags & 8650752 /* TypeVariable */ ? baseConstructorType : baseConstructorType.flags & 2097152 /* Intersection */ ? find(baseConstructorType.types, function (t) { return !!(t.flags & 8650752 /* TypeVariable */); }) : void 0; - } - function getTypeOfFuncClassEnumModule(symbol) { - var links = getSymbolLinks(symbol); - var originalLinks = links; - if (!links.type) { - var expando = symbol.valueDeclaration && getSymbolOfExpando(symbol.valueDeclaration, - /*allowDeclaration*/ - false); - if (expando) { - var merged = mergeJSSymbols(symbol, expando); - if (merged) { - symbol = merged; - links = merged.links; - } - } - originalLinks.type = links.type = getTypeOfFuncClassEnumModuleWorker(symbol); - } - return links.type; - } - function getTypeOfFuncClassEnumModuleWorker(symbol) { - var declaration = symbol.valueDeclaration; - if (symbol.flags & 1536 /* Module */ && isShorthandAmbientModuleSymbol(symbol)) { - return anyType; - } - else if (declaration && (declaration.kind === 226 /* BinaryExpression */ || isAccessExpression(declaration) && declaration.parent.kind === 226 /* BinaryExpression */)) { - return getWidenedTypeForAssignmentDeclaration(symbol); - } - else if (symbol.flags & 512 /* ValueModule */ && declaration && isSourceFile(declaration) && declaration.commonJsModuleIndicator) { - var resolvedModule = resolveExternalModuleSymbol(symbol); - if (resolvedModule !== symbol) { - if (!pushTypeResolution(symbol, 0 /* Type */)) { - return errorType; - } - var exportEquals = getMergedSymbol(symbol.exports.get("export=" /* ExportEquals */)); - var type2 = getWidenedTypeForAssignmentDeclaration(exportEquals, exportEquals === resolvedModule ? void 0 : resolvedModule); - if (!popTypeResolution()) { - return reportCircularityError(symbol); - } - return type2; - } - } - var type = createObjectType(16 /* Anonymous */, symbol); - if (symbol.flags & 32 /* Class */) { - var baseTypeVariable = getBaseTypeVariableOfClass(symbol); - return baseTypeVariable ? getIntersectionType([type, baseTypeVariable]) : type; - } - else { - return strictNullChecks && symbol.flags & 16777216 /* Optional */ ? getOptionalType(type, - /*isProperty*/ - true) : type; - } - } - function getTypeOfEnumMember(symbol) { - var links = getSymbolLinks(symbol); - return links.type || (links.type = getDeclaredTypeOfEnumMember(symbol)); - } - function getTypeOfAlias(symbol) { - var links = getSymbolLinks(symbol); - if (!links.type) { - var targetSymbol = resolveAlias(symbol); - var exportSymbol = symbol.declarations && getTargetOfAliasDeclaration(getDeclarationOfAliasSymbol(symbol), - /*dontRecursivelyResolve*/ - true); - var declaredType = firstDefined(exportSymbol == null ? void 0 : exportSymbol.declarations, function (d) { return isExportAssignment(d) ? tryGetTypeFromEffectiveTypeNode(d) : void 0; }); - links.type = (exportSymbol == null ? void 0 : exportSymbol.declarations) && isDuplicatedCommonJSExport(exportSymbol.declarations) && symbol.declarations.length ? getFlowTypeFromCommonJSExport(exportSymbol) : isDuplicatedCommonJSExport(symbol.declarations) ? autoType : declaredType ? declaredType : getSymbolFlags(targetSymbol) & 111551 /* Value */ ? getTypeOfSymbol(targetSymbol) : errorType; - } - return links.type; - } - function getTypeOfInstantiatedSymbol(symbol) { - var links = getSymbolLinks(symbol); - return links.type || (links.type = instantiateType(getTypeOfSymbol(links.target), links.mapper)); - } - function getWriteTypeOfInstantiatedSymbol(symbol) { - var links = getSymbolLinks(symbol); - return links.writeType || (links.writeType = instantiateType(getWriteTypeOfSymbol(links.target), links.mapper)); - } - function reportCircularityError(symbol) { - var declaration = symbol.valueDeclaration; - if (getEffectiveTypeAnnotationNode(declaration)) { - error2(symbol.valueDeclaration, Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation, symbolToString(symbol)); - return errorType; - } - if (noImplicitAny && (declaration.kind !== 169 /* Parameter */ || declaration.initializer)) { - error2(symbol.valueDeclaration, Diagnostics._0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer, symbolToString(symbol)); - } - return anyType; - } - function getTypeOfSymbolWithDeferredType(symbol) { - var links = getSymbolLinks(symbol); - if (!links.type) { - Debug.assertIsDefined(links.deferralParent); - Debug.assertIsDefined(links.deferralConstituents); - links.type = links.deferralParent.flags & 1048576 /* Union */ ? getUnionType(links.deferralConstituents) : getIntersectionType(links.deferralConstituents); - } - return links.type; - } - function getWriteTypeOfSymbolWithDeferredType(symbol) { - var links = getSymbolLinks(symbol); - if (!links.writeType && links.deferralWriteConstituents) { - Debug.assertIsDefined(links.deferralParent); - Debug.assertIsDefined(links.deferralConstituents); - links.writeType = links.deferralParent.flags & 1048576 /* Union */ ? getUnionType(links.deferralWriteConstituents) : getIntersectionType(links.deferralWriteConstituents); - } - return links.writeType; - } - function getWriteTypeOfSymbol(symbol) { - var checkFlags = getCheckFlags(symbol); - if (symbol.flags & 4 /* Property */) { - return checkFlags & 2 /* SyntheticProperty */ ? checkFlags & 65536 /* DeferredType */ ? getWriteTypeOfSymbolWithDeferredType(symbol) || getTypeOfSymbolWithDeferredType(symbol) : ( - // NOTE: cast to TransientSymbol should be safe because only TransientSymbols can have CheckFlags.SyntheticProperty - symbol.links.writeType || symbol.links.type) : getTypeOfSymbol(symbol); - } - if (symbol.flags & 98304 /* Accessor */) { - return checkFlags & 1 /* Instantiated */ ? getWriteTypeOfInstantiatedSymbol(symbol) : getWriteTypeOfAccessors(symbol); - } - return getTypeOfSymbol(symbol); - } - function getTypeOfSymbol(symbol) { - var checkFlags = getCheckFlags(symbol); - if (checkFlags & 65536 /* DeferredType */) { - return getTypeOfSymbolWithDeferredType(symbol); - } - if (checkFlags & 1 /* Instantiated */) { - return getTypeOfInstantiatedSymbol(symbol); - } - if (checkFlags & 262144 /* Mapped */) { - return getTypeOfMappedSymbol(symbol); - } - if (checkFlags & 8192 /* ReverseMapped */) { - return getTypeOfReverseMappedSymbol(symbol); - } - if (symbol.flags & (3 /* Variable */ | 4 /* Property */)) { - return getTypeOfVariableOrParameterOrProperty(symbol); - } - if (symbol.flags & (16 /* Function */ | 8192 /* Method */ | 32 /* Class */ | 384 /* Enum */ | 512 /* ValueModule */)) { - return getTypeOfFuncClassEnumModule(symbol); - } - if (symbol.flags & 8 /* EnumMember */) { - return getTypeOfEnumMember(symbol); - } - if (symbol.flags & 98304 /* Accessor */) { - return getTypeOfAccessors(symbol); - } - if (symbol.flags & 2097152 /* Alias */) { - return getTypeOfAlias(symbol); - } - return errorType; - } - function getNonMissingTypeOfSymbol(symbol) { - return removeMissingType(getTypeOfSymbol(symbol), !!(symbol.flags & 16777216 /* Optional */)); - } - function isReferenceToType2(type, target) { - return type !== void 0 && target !== void 0 && (getObjectFlags(type) & 4 /* Reference */) !== 0 && type.target === target; - } - function getTargetType(type) { - return getObjectFlags(type) & 4 /* Reference */ ? type.target : type; - } - function hasBaseType(type, checkBase) { - return check(type); - function check(type2) { - if (getObjectFlags(type2) & (3 /* ClassOrInterface */ | 4 /* Reference */)) { - var target = getTargetType(type2); - return target === checkBase || some(getBaseTypes(target), check); - } - else if (type2.flags & 2097152 /* Intersection */) { - return some(type2.types, check); - } - return false; - } - } - function appendTypeParameters(typeParameters, declarations) { - var e_196, _t; - try { - for (var declarations_2 = __values(declarations), declarations_2_1 = declarations_2.next(); !declarations_2_1.done; declarations_2_1 = declarations_2.next()) { - var declaration = declarations_2_1.value; - typeParameters = appendIfUnique(typeParameters, getDeclaredTypeOfTypeParameter(getSymbolOfDeclaration(declaration))); - } - } - catch (e_196_1) { e_196 = { error: e_196_1 }; } - finally { - try { - if (declarations_2_1 && !declarations_2_1.done && (_t = declarations_2.return)) _t.call(declarations_2); - } - finally { if (e_196) throw e_196.error; } - } - return typeParameters; - } - function getOuterTypeParameters(node, includeThisTypes) { - while (true) { - node = node.parent; - if (node && isBinaryExpression(node)) { - var assignmentKind = getAssignmentDeclarationKind(node); - if (assignmentKind === 6 /* Prototype */ || assignmentKind === 3 /* PrototypeProperty */) { - var symbol = getSymbolOfDeclaration(node.left); - if (symbol && symbol.parent && !findAncestor(symbol.parent.valueDeclaration, function (d) { return node === d; })) { - node = symbol.parent.valueDeclaration; - } - } - } - if (!node) { - return void 0; - } - switch (node.kind) { - case 263 /* ClassDeclaration */: - case 231 /* ClassExpression */: - case 264 /* InterfaceDeclaration */: - case 179 /* CallSignature */: - case 180 /* ConstructSignature */: - case 173 /* MethodSignature */: - case 184 /* FunctionType */: - case 185 /* ConstructorType */: - case 324 /* JSDocFunctionType */: - case 262 /* FunctionDeclaration */: - case 174 /* MethodDeclaration */: - case 218 /* FunctionExpression */: - case 219 /* ArrowFunction */: - case 265 /* TypeAliasDeclaration */: - case 352 /* JSDocTemplateTag */: - case 353 /* JSDocTypedefTag */: - case 347 /* JSDocEnumTag */: - case 345 /* JSDocCallbackTag */: - case 200 /* MappedType */: - case 194 /* ConditionalType */: { - var outerTypeParameters = getOuterTypeParameters(node, includeThisTypes); - if (node.kind === 200 /* MappedType */) { - return append(outerTypeParameters, getDeclaredTypeOfTypeParameter(getSymbolOfDeclaration(node.typeParameter))); - } - else if (node.kind === 194 /* ConditionalType */) { - return concatenate(outerTypeParameters, getInferTypeParameters(node)); - } - var outerAndOwnTypeParameters = appendTypeParameters(outerTypeParameters, getEffectiveTypeParameterDeclarations(node)); - var thisType = includeThisTypes && (node.kind === 263 /* ClassDeclaration */ || node.kind === 231 /* ClassExpression */ || node.kind === 264 /* InterfaceDeclaration */ || isJSConstructor(node)) && getDeclaredTypeOfClassOrInterface(getSymbolOfDeclaration(node)).thisType; - return thisType ? append(outerAndOwnTypeParameters, thisType) : outerAndOwnTypeParameters; - } - case 348 /* JSDocParameterTag */: - var paramSymbol = getParameterSymbolFromJSDoc(node); - if (paramSymbol) { - node = paramSymbol.valueDeclaration; - } - break; - case 327 /* JSDoc */: { - var outerTypeParameters = getOuterTypeParameters(node, includeThisTypes); - return node.tags ? appendTypeParameters(outerTypeParameters, flatMap(node.tags, function (t) { return isJSDocTemplateTag(t) ? t.typeParameters : void 0; })) : outerTypeParameters; - } - } - } - } - function getOuterTypeParametersOfClassOrInterface(symbol) { - var _a; - var declaration = symbol.flags & 32 /* Class */ || symbol.flags & 16 /* Function */ ? symbol.valueDeclaration : (_a = symbol.declarations) == null ? void 0 : _a.find(function (decl) { - if (decl.kind === 264 /* InterfaceDeclaration */) { - return true; - } - if (decl.kind !== 260 /* VariableDeclaration */) { - return false; - } - var initializer = decl.initializer; - return !!initializer && (initializer.kind === 218 /* FunctionExpression */ || initializer.kind === 219 /* ArrowFunction */); - }); - Debug.assert(!!declaration, "Class was missing valueDeclaration -OR- non-class had no interface declarations"); - return getOuterTypeParameters(declaration); - } - function getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(symbol) { - var e_197, _t; - if (!symbol.declarations) { - return; - } - var result; - try { - for (var _u = __values(symbol.declarations), _v = _u.next(); !_v.done; _v = _u.next()) { - var node = _v.value; - if (node.kind === 264 /* InterfaceDeclaration */ || node.kind === 263 /* ClassDeclaration */ || node.kind === 231 /* ClassExpression */ || isJSConstructor(node) || isTypeAlias(node)) { - var declaration = node; - result = appendTypeParameters(result, getEffectiveTypeParameterDeclarations(declaration)); - } - } - } - catch (e_197_1) { e_197 = { error: e_197_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_197) throw e_197.error; } - } - return result; - } - function getTypeParametersOfClassOrInterface(symbol) { - return concatenate(getOuterTypeParametersOfClassOrInterface(symbol), getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(symbol)); - } - function isMixinConstructorType(type) { - var signatures = getSignaturesOfType(type, 1 /* Construct */); - if (signatures.length === 1) { - var s = signatures[0]; - if (!s.typeParameters && s.parameters.length === 1 && signatureHasRestParameter(s)) { - var paramType = getTypeOfParameter(s.parameters[0]); - return isTypeAny(paramType) || getElementTypeOfArrayType(paramType) === anyType; - } - } - return false; - } - function isConstructorType(type) { - if (getSignaturesOfType(type, 1 /* Construct */).length > 0) { - return true; - } - if (type.flags & 8650752 /* TypeVariable */) { - var constraint = getBaseConstraintOfType(type); - return !!constraint && isMixinConstructorType(constraint); - } - return false; - } - function getBaseTypeNodeOfClass(type) { - var decl = getClassLikeDeclarationOfSymbol(type.symbol); - return decl && getEffectiveBaseTypeNode(decl); - } - function getConstructorsForTypeArguments(type, typeArgumentNodes, location) { - var typeArgCount = length(typeArgumentNodes); - var isJavascript = isInJSFile(location); - return filter(getSignaturesOfType(type, 1 /* Construct */), function (sig) { return (isJavascript || typeArgCount >= getMinTypeArgumentCount(sig.typeParameters)) && typeArgCount <= length(sig.typeParameters); }); - } - function getInstantiatedConstructorsForTypeArguments(type, typeArgumentNodes, location) { - var signatures = getConstructorsForTypeArguments(type, typeArgumentNodes, location); - var typeArguments = map(typeArgumentNodes, getTypeFromTypeNode); - return sameMap(signatures, function (sig) { return some(sig.typeParameters) ? getSignatureInstantiation(sig, typeArguments, isInJSFile(location)) : sig; }); - } - function getBaseConstructorTypeOfClass(type) { - if (!type.resolvedBaseConstructorType) { - var decl = getClassLikeDeclarationOfSymbol(type.symbol); - var extended = decl && getEffectiveBaseTypeNode(decl); - var baseTypeNode = getBaseTypeNodeOfClass(type); - if (!baseTypeNode) { - return type.resolvedBaseConstructorType = undefinedType; - } - if (!pushTypeResolution(type, 1 /* ResolvedBaseConstructorType */)) { - return errorType; - } - var baseConstructorType = checkExpression(baseTypeNode.expression); - if (extended && baseTypeNode !== extended) { - Debug.assert(!extended.typeArguments); - checkExpression(extended.expression); - } - if (baseConstructorType.flags & (524288 /* Object */ | 2097152 /* Intersection */)) { - resolveStructuredTypeMembers(baseConstructorType); - } - if (!popTypeResolution()) { - error2(type.symbol.valueDeclaration, Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_base_expression, symbolToString(type.symbol)); - return type.resolvedBaseConstructorType = errorType; - } - if (!(baseConstructorType.flags & 1 /* Any */) && baseConstructorType !== nullWideningType && !isConstructorType(baseConstructorType)) { - var err = error2(baseTypeNode.expression, Diagnostics.Type_0_is_not_a_constructor_function_type, typeToString(baseConstructorType)); - if (baseConstructorType.flags & 262144 /* TypeParameter */) { - var constraint = getConstraintFromTypeParameter(baseConstructorType); - var ctorReturn = unknownType; - if (constraint) { - var ctorSig = getSignaturesOfType(constraint, 1 /* Construct */); - if (ctorSig[0]) { - ctorReturn = getReturnTypeOfSignature(ctorSig[0]); - } - } - if (baseConstructorType.symbol.declarations) { - addRelatedInfo(err, createDiagnosticForNode(baseConstructorType.symbol.declarations[0], Diagnostics.Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1, symbolToString(baseConstructorType.symbol), typeToString(ctorReturn))); - } - } - return type.resolvedBaseConstructorType = errorType; - } - type.resolvedBaseConstructorType = baseConstructorType; - } - return type.resolvedBaseConstructorType; - } - function getImplementsTypes(type) { - var e_198, _t, e_199, _u; - var resolvedImplementsTypes = emptyArray; - if (type.symbol.declarations) { - try { - for (var _v = __values(type.symbol.declarations), _w = _v.next(); !_w.done; _w = _v.next()) { - var declaration = _w.value; - var implementsTypeNodes = getEffectiveImplementsTypeNodes(declaration); - if (!implementsTypeNodes) - continue; - try { - for (var implementsTypeNodes_1 = (e_199 = void 0, __values(implementsTypeNodes)), implementsTypeNodes_1_1 = implementsTypeNodes_1.next(); !implementsTypeNodes_1_1.done; implementsTypeNodes_1_1 = implementsTypeNodes_1.next()) { - var node = implementsTypeNodes_1_1.value; - var implementsType = getTypeFromTypeNode(node); - if (!isErrorType(implementsType)) { - if (resolvedImplementsTypes === emptyArray) { - resolvedImplementsTypes = [implementsType]; - } - else { - resolvedImplementsTypes.push(implementsType); - } - } - } - } - catch (e_199_1) { e_199 = { error: e_199_1 }; } - finally { - try { - if (implementsTypeNodes_1_1 && !implementsTypeNodes_1_1.done && (_u = implementsTypeNodes_1.return)) _u.call(implementsTypeNodes_1); - } - finally { if (e_199) throw e_199.error; } - } - } - } - catch (e_198_1) { e_198 = { error: e_198_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_198) throw e_198.error; } - } - } - return resolvedImplementsTypes; - } - function reportCircularBaseType(node, type) { - error2(node, Diagnostics.Type_0_recursively_references_itself_as_a_base_type, typeToString(type, - /*enclosingDeclaration*/ - void 0, 2 /* WriteArrayAsGenericType */)); - } - function getBaseTypes(type) { - var e_200, _t; - if (!type.baseTypesResolved) { - if (pushTypeResolution(type, 7 /* ResolvedBaseTypes */)) { - if (type.objectFlags & 8 /* Tuple */) { - type.resolvedBaseTypes = [getTupleBaseType(type)]; - } - else if (type.symbol.flags & (32 /* Class */ | 64 /* Interface */)) { - if (type.symbol.flags & 32 /* Class */) { - resolveBaseTypesOfClass(type); - } - if (type.symbol.flags & 64 /* Interface */) { - resolveBaseTypesOfInterface(type); - } - } - else { - Debug.fail("type must be class or interface"); - } - if (!popTypeResolution() && type.symbol.declarations) { - try { - for (var _u = __values(type.symbol.declarations), _v = _u.next(); !_v.done; _v = _u.next()) { - var declaration = _v.value; - if (declaration.kind === 263 /* ClassDeclaration */ || declaration.kind === 264 /* InterfaceDeclaration */) { - reportCircularBaseType(declaration, type); - } - } - } - catch (e_200_1) { e_200 = { error: e_200_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_200) throw e_200.error; } - } - } - } - type.baseTypesResolved = true; - } - return type.resolvedBaseTypes; - } - function getTupleBaseType(type) { - var elementTypes = sameMap(type.typeParameters, function (t, i) { return type.elementFlags[i] & 8 /* Variadic */ ? getIndexedAccessType(t, numberType) : t; }); - return createArrayType(getUnionType(elementTypes || emptyArray), type.readonly); - } - function resolveBaseTypesOfClass(type) { - type.resolvedBaseTypes = resolvingEmptyArray; - var baseConstructorType = getApparentType(getBaseConstructorTypeOfClass(type)); - if (!(baseConstructorType.flags & (524288 /* Object */ | 2097152 /* Intersection */ | 1 /* Any */))) { - return type.resolvedBaseTypes = emptyArray; - } - var baseTypeNode = getBaseTypeNodeOfClass(type); - var baseType; - var originalBaseType = baseConstructorType.symbol ? getDeclaredTypeOfSymbol(baseConstructorType.symbol) : void 0; - if (baseConstructorType.symbol && baseConstructorType.symbol.flags & 32 /* Class */ && areAllOuterTypeParametersApplied(originalBaseType)) { - baseType = getTypeFromClassOrInterfaceReference(baseTypeNode, baseConstructorType.symbol); - } - else if (baseConstructorType.flags & 1 /* Any */) { - baseType = baseConstructorType; - } - else { - var constructors = getInstantiatedConstructorsForTypeArguments(baseConstructorType, baseTypeNode.typeArguments, baseTypeNode); - if (!constructors.length) { - error2(baseTypeNode.expression, Diagnostics.No_base_constructor_has_the_specified_number_of_type_arguments); - return type.resolvedBaseTypes = emptyArray; - } - baseType = getReturnTypeOfSignature(constructors[0]); - } - if (isErrorType(baseType)) { - return type.resolvedBaseTypes = emptyArray; - } - var reducedBaseType = getReducedType(baseType); - if (!isValidBaseType(reducedBaseType)) { - var elaboration = elaborateNeverIntersection( - /*errorInfo*/ - void 0, baseType); - var diagnostic = chainDiagnosticMessages(elaboration, Diagnostics.Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_known_members, typeToString(reducedBaseType)); - diagnostics.add(createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(baseTypeNode.expression), baseTypeNode.expression, diagnostic)); - return type.resolvedBaseTypes = emptyArray; - } - if (type === reducedBaseType || hasBaseType(reducedBaseType, type)) { - error2(type.symbol.valueDeclaration, Diagnostics.Type_0_recursively_references_itself_as_a_base_type, typeToString(type, - /*enclosingDeclaration*/ - void 0, 2 /* WriteArrayAsGenericType */)); - return type.resolvedBaseTypes = emptyArray; - } - if (type.resolvedBaseTypes === resolvingEmptyArray) { - type.members = void 0; - } - return type.resolvedBaseTypes = [reducedBaseType]; - } - function areAllOuterTypeParametersApplied(type) { - var outerTypeParameters = type.outerTypeParameters; - if (outerTypeParameters) { - var last2 = outerTypeParameters.length - 1; - var typeArguments = getTypeArguments(type); - return outerTypeParameters[last2].symbol !== typeArguments[last2].symbol; - } - return true; - } - function isValidBaseType(type) { - if (type.flags & 262144 /* TypeParameter */) { - var constraint = getBaseConstraintOfType(type); - if (constraint) { - return isValidBaseType(constraint); - } - } - return !!(type.flags & (524288 /* Object */ | 67108864 /* NonPrimitive */ | 1 /* Any */) && !isGenericMappedType(type) || type.flags & 2097152 /* Intersection */ && every(type.types, isValidBaseType)); - } - function resolveBaseTypesOfInterface(type) { - var e_201, _t, e_202, _u; - type.resolvedBaseTypes = type.resolvedBaseTypes || emptyArray; - if (type.symbol.declarations) { - try { - for (var _v = __values(type.symbol.declarations), _w = _v.next(); !_w.done; _w = _v.next()) { - var declaration = _w.value; - if (declaration.kind === 264 /* InterfaceDeclaration */ && getInterfaceBaseTypeNodes(declaration)) { - try { - for (var _x = (e_202 = void 0, __values(getInterfaceBaseTypeNodes(declaration))), _y = _x.next(); !_y.done; _y = _x.next()) { - var node = _y.value; - var baseType = getReducedType(getTypeFromTypeNode(node)); - if (!isErrorType(baseType)) { - if (isValidBaseType(baseType)) { - if (type !== baseType && !hasBaseType(baseType, type)) { - if (type.resolvedBaseTypes === emptyArray) { - type.resolvedBaseTypes = [baseType]; - } - else { - type.resolvedBaseTypes.push(baseType); - } - } - else { - reportCircularBaseType(declaration, type); - } - } - else { - error2(node, Diagnostics.An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_members); - } - } - } - } - catch (e_202_1) { e_202 = { error: e_202_1 }; } - finally { - try { - if (_y && !_y.done && (_u = _x.return)) _u.call(_x); - } - finally { if (e_202) throw e_202.error; } - } - } - } - } - catch (e_201_1) { e_201 = { error: e_201_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_201) throw e_201.error; } - } - } - } - function isThislessInterface(symbol) { - var e_203, _t, e_204, _u; - if (!symbol.declarations) { - return true; - } - try { - for (var _v = __values(symbol.declarations), _w = _v.next(); !_w.done; _w = _v.next()) { - var declaration = _w.value; - if (declaration.kind === 264 /* InterfaceDeclaration */) { - if (declaration.flags & 256 /* ContainsThis */) { - return false; - } - var baseTypeNodes = getInterfaceBaseTypeNodes(declaration); - if (baseTypeNodes) { - try { - for (var baseTypeNodes_1 = (e_204 = void 0, __values(baseTypeNodes)), baseTypeNodes_1_1 = baseTypeNodes_1.next(); !baseTypeNodes_1_1.done; baseTypeNodes_1_1 = baseTypeNodes_1.next()) { - var node = baseTypeNodes_1_1.value; - if (isEntityNameExpression(node.expression)) { - var baseSymbol = resolveEntityName(node.expression, 788968 /* Type */, - /*ignoreErrors*/ - true); - if (!baseSymbol || !(baseSymbol.flags & 64 /* Interface */) || getDeclaredTypeOfClassOrInterface(baseSymbol).thisType) { - return false; - } - } - } - } - catch (e_204_1) { e_204 = { error: e_204_1 }; } - finally { - try { - if (baseTypeNodes_1_1 && !baseTypeNodes_1_1.done && (_u = baseTypeNodes_1.return)) _u.call(baseTypeNodes_1); - } - finally { if (e_204) throw e_204.error; } - } - } - } - } - } - catch (e_203_1) { e_203 = { error: e_203_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_203) throw e_203.error; } - } - return true; - } - function getDeclaredTypeOfClassOrInterface(symbol) { - var links = getSymbolLinks(symbol); - var originalLinks = links; - if (!links.declaredType) { - var kind = symbol.flags & 32 /* Class */ ? 1 /* Class */ : 2 /* Interface */; - var merged = mergeJSSymbols(symbol, symbol.valueDeclaration && getAssignedClassSymbol(symbol.valueDeclaration)); - if (merged) { - symbol = merged; - links = merged.links; - } - var type = originalLinks.declaredType = links.declaredType = createObjectType(kind, symbol); - var outerTypeParameters = getOuterTypeParametersOfClassOrInterface(symbol); - var localTypeParameters = getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(symbol); - if (outerTypeParameters || localTypeParameters || kind === 1 /* Class */ || !isThislessInterface(symbol)) { - type.objectFlags |= 4 /* Reference */; - type.typeParameters = concatenate(outerTypeParameters, localTypeParameters); - type.outerTypeParameters = outerTypeParameters; - type.localTypeParameters = localTypeParameters; - type.instantiations = /* @__PURE__ */ new Map(); - type.instantiations.set(getTypeListId(type.typeParameters), type); - type.target = type; - type.resolvedTypeArguments = type.typeParameters; - type.thisType = createTypeParameter(symbol); - type.thisType.isThisType = true; - type.thisType.constraint = type; - } - } - return links.declaredType; - } - function getDeclaredTypeOfTypeAlias(symbol) { - var _a; - var links = getSymbolLinks(symbol); - if (!links.declaredType) { - if (!pushTypeResolution(symbol, 2 /* DeclaredType */)) { - return errorType; - } - var declaration = Debug.checkDefined((_a = symbol.declarations) == null ? void 0 : _a.find(isTypeAlias), "Type alias symbol with no valid declaration found"); - var typeNode = isJSDocTypeAlias(declaration) ? declaration.typeExpression : declaration.type; - var type = typeNode ? getTypeFromTypeNode(typeNode) : errorType; - if (popTypeResolution()) { - var typeParameters = getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(symbol); - if (typeParameters) { - links.typeParameters = typeParameters; - links.instantiations = /* @__PURE__ */ new Map(); - links.instantiations.set(getTypeListId(typeParameters), type); - } - } - else { - type = errorType; - if (declaration.kind === 347 /* JSDocEnumTag */) { - error2(declaration.typeExpression.type, Diagnostics.Type_alias_0_circularly_references_itself, symbolToString(symbol)); - } - else { - error2(isNamedDeclaration(declaration) ? declaration.name || declaration : declaration, Diagnostics.Type_alias_0_circularly_references_itself, symbolToString(symbol)); - } - } - links.declaredType = type; - } - return links.declaredType; - } - function getBaseTypeOfEnumLikeType(type) { - return type.flags & 1056 /* EnumLike */ && type.symbol.flags & 8 /* EnumMember */ ? getDeclaredTypeOfSymbol(getParentOfSymbol(type.symbol)) : type; - } - function getDeclaredTypeOfEnum(symbol) { - var e_205, _t, e_206, _u; - var links = getSymbolLinks(symbol); - if (!links.declaredType) { - var memberTypeList = []; - if (symbol.declarations) { - try { - for (var _v = __values(symbol.declarations), _w = _v.next(); !_w.done; _w = _v.next()) { - var declaration = _w.value; - if (declaration.kind === 266 /* EnumDeclaration */) { - try { - for (var _x = (e_206 = void 0, __values(declaration.members)), _y = _x.next(); !_y.done; _y = _x.next()) { - var member = _y.value; - if (hasBindableName(member)) { - var memberSymbol = getSymbolOfDeclaration(member); - var value = getEnumMemberValue(member); - var memberType = getFreshTypeOfLiteralType(value !== void 0 ? getEnumLiteralType(value, getSymbolId(symbol), memberSymbol) : createComputedEnumType(memberSymbol)); - getSymbolLinks(memberSymbol).declaredType = memberType; - memberTypeList.push(getRegularTypeOfLiteralType(memberType)); - } - } - } - catch (e_206_1) { e_206 = { error: e_206_1 }; } - finally { - try { - if (_y && !_y.done && (_u = _x.return)) _u.call(_x); - } - finally { if (e_206) throw e_206.error; } - } - } - } - } - catch (e_205_1) { e_205 = { error: e_205_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_205) throw e_205.error; } - } - } - var enumType = memberTypeList.length ? getUnionType(memberTypeList, 1 /* Literal */, symbol, - /*aliasTypeArguments*/ - void 0) : createComputedEnumType(symbol); - if (enumType.flags & 1048576 /* Union */) { - enumType.flags |= 1024 /* EnumLiteral */; - enumType.symbol = symbol; - } - links.declaredType = enumType; - } - return links.declaredType; - } - function createComputedEnumType(symbol) { - var regularType = createTypeWithSymbol(32 /* Enum */, symbol); - var freshType = createTypeWithSymbol(32 /* Enum */, symbol); - regularType.regularType = regularType; - regularType.freshType = freshType; - freshType.regularType = regularType; - freshType.freshType = freshType; - return regularType; - } - function getDeclaredTypeOfEnumMember(symbol) { - var links = getSymbolLinks(symbol); - if (!links.declaredType) { - var enumType = getDeclaredTypeOfEnum(getParentOfSymbol(symbol)); - if (!links.declaredType) { - links.declaredType = enumType; - } - } - return links.declaredType; - } - function getDeclaredTypeOfTypeParameter(symbol) { - var links = getSymbolLinks(symbol); - return links.declaredType || (links.declaredType = createTypeParameter(symbol)); - } - function getDeclaredTypeOfAlias(symbol) { - var links = getSymbolLinks(symbol); - return links.declaredType || (links.declaredType = getDeclaredTypeOfSymbol(resolveAlias(symbol))); - } - function getDeclaredTypeOfSymbol(symbol) { - return tryGetDeclaredTypeOfSymbol(symbol) || errorType; - } - function tryGetDeclaredTypeOfSymbol(symbol) { - if (symbol.flags & (32 /* Class */ | 64 /* Interface */)) { - return getDeclaredTypeOfClassOrInterface(symbol); - } - if (symbol.flags & 524288 /* TypeAlias */) { - return getDeclaredTypeOfTypeAlias(symbol); - } - if (symbol.flags & 262144 /* TypeParameter */) { - return getDeclaredTypeOfTypeParameter(symbol); - } - if (symbol.flags & 384 /* Enum */) { - return getDeclaredTypeOfEnum(symbol); - } - if (symbol.flags & 8 /* EnumMember */) { - return getDeclaredTypeOfEnumMember(symbol); - } - if (symbol.flags & 2097152 /* Alias */) { - return getDeclaredTypeOfAlias(symbol); - } - return void 0; - } - function isThislessType(node) { - switch (node.kind) { - case 133 /* AnyKeyword */: - case 159 /* UnknownKeyword */: - case 154 /* StringKeyword */: - case 150 /* NumberKeyword */: - case 163 /* BigIntKeyword */: - case 136 /* BooleanKeyword */: - case 155 /* SymbolKeyword */: - case 151 /* ObjectKeyword */: - case 116 /* VoidKeyword */: - case 157 /* UndefinedKeyword */: - case 146 /* NeverKeyword */: - case 201 /* LiteralType */: - return true; - case 188 /* ArrayType */: - return isThislessType(node.elementType); - case 183 /* TypeReference */: - return !node.typeArguments || node.typeArguments.every(isThislessType); - } - return false; - } - function isThislessTypeParameter(node) { - var constraint = getEffectiveConstraintOfTypeParameter(node); - return !constraint || isThislessType(constraint); - } - function isThislessVariableLikeDeclaration(node) { - var typeNode = getEffectiveTypeAnnotationNode(node); - return typeNode ? isThislessType(typeNode) : !hasInitializer(node); - } - function isThislessFunctionLikeDeclaration(node) { - var returnType = getEffectiveReturnTypeNode(node); - var typeParameters = getEffectiveTypeParameterDeclarations(node); - return (node.kind === 176 /* Constructor */ || !!returnType && isThislessType(returnType)) && node.parameters.every(isThislessVariableLikeDeclaration) && typeParameters.every(isThislessTypeParameter); - } - function isThisless(symbol) { - if (symbol.declarations && symbol.declarations.length === 1) { - var declaration = symbol.declarations[0]; - if (declaration) { - switch (declaration.kind) { - case 172 /* PropertyDeclaration */: - case 171 /* PropertySignature */: - return isThislessVariableLikeDeclaration(declaration); - case 174 /* MethodDeclaration */: - case 173 /* MethodSignature */: - case 176 /* Constructor */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - return isThislessFunctionLikeDeclaration(declaration); - } - } - } - return false; - } - function createInstantiatedSymbolTable(symbols, mapper, mappingThisOnly) { - var e_207, _t; - var result = createSymbolTable(); - try { - for (var symbols_3 = __values(symbols), symbols_3_1 = symbols_3.next(); !symbols_3_1.done; symbols_3_1 = symbols_3.next()) { - var symbol = symbols_3_1.value; - result.set(symbol.escapedName, mappingThisOnly && isThisless(symbol) ? symbol : instantiateSymbol(symbol, mapper)); - } - } - catch (e_207_1) { e_207 = { error: e_207_1 }; } - finally { - try { - if (symbols_3_1 && !symbols_3_1.done && (_t = symbols_3.return)) _t.call(symbols_3); - } - finally { if (e_207) throw e_207.error; } - } - return result; - } - function addInheritedMembers(symbols, baseSymbols) { - var e_208, _t; - try { - for (var baseSymbols_1 = __values(baseSymbols), baseSymbols_1_1 = baseSymbols_1.next(); !baseSymbols_1_1.done; baseSymbols_1_1 = baseSymbols_1.next()) { - var base = baseSymbols_1_1.value; - if (isStaticPrivateIdentifierProperty(base)) { - continue; - } - var derived = symbols.get(base.escapedName); - if (!derived || derived.valueDeclaration && isBinaryExpression(derived.valueDeclaration) && !isConstructorDeclaredProperty(derived) && !getContainingClassStaticBlock(derived.valueDeclaration)) { - symbols.set(base.escapedName, base); - symbols.set(base.escapedName, base); - } - } - } - catch (e_208_1) { e_208 = { error: e_208_1 }; } - finally { - try { - if (baseSymbols_1_1 && !baseSymbols_1_1.done && (_t = baseSymbols_1.return)) _t.call(baseSymbols_1); - } - finally { if (e_208) throw e_208.error; } - } - } - function isStaticPrivateIdentifierProperty(s) { - return !!s.valueDeclaration && isPrivateIdentifierClassElementDeclaration(s.valueDeclaration) && isStatic(s.valueDeclaration); - } - function resolveDeclaredMembers(type) { - if (!type.declaredProperties) { - var symbol = type.symbol; - var members = getMembersOfSymbol(symbol); - type.declaredProperties = getNamedMembers(members); - type.declaredCallSignatures = emptyArray; - type.declaredConstructSignatures = emptyArray; - type.declaredIndexInfos = emptyArray; - type.declaredCallSignatures = getSignaturesOfSymbol(members.get("__call" /* Call */)); - type.declaredConstructSignatures = getSignaturesOfSymbol(members.get("__new" /* New */)); - type.declaredIndexInfos = getIndexInfosOfSymbol(symbol); - } - return type; - } - function isLateBindableName(node) { - if (!isComputedPropertyName(node) && !isElementAccessExpression(node)) { - return false; - } - var expr = isComputedPropertyName(node) ? node.expression : node.argumentExpression; - return isEntityNameExpression(expr) && isTypeUsableAsPropertyName(isComputedPropertyName(node) ? checkComputedPropertyName(node) : checkExpressionCached(expr)); - } - function isLateBoundName(name) { - return name.charCodeAt(0) === 95 /* _ */ && name.charCodeAt(1) === 95 /* _ */ && name.charCodeAt(2) === 64 /* at */; - } - function hasLateBindableName(node) { - var name = getNameOfDeclaration(node); - return !!name && isLateBindableName(name); - } - function hasBindableName(node) { - return !hasDynamicName(node) || hasLateBindableName(node); - } - function isNonBindableDynamicName(node) { - return isDynamicName(node) && !isLateBindableName(node); - } - function addDeclarationToLateBoundSymbol(symbol, member, symbolFlags) { - Debug.assert(!!(getCheckFlags(symbol) & 4096 /* Late */), "Expected a late-bound symbol."); - symbol.flags |= symbolFlags; - getSymbolLinks(member.symbol).lateSymbol = symbol; - if (!symbol.declarations) { - symbol.declarations = [member]; - } - else if (!member.symbol.isReplaceableByMethod) { - symbol.declarations.push(member); - } - if (symbolFlags & 111551 /* Value */) { - if (!symbol.valueDeclaration || symbol.valueDeclaration.kind !== member.kind) { - symbol.valueDeclaration = member; - } - } - } - function lateBindMember(parent2, earlySymbols, lateSymbols, decl) { - Debug.assert(!!decl.symbol, "The member is expected to have a symbol."); - var links = getNodeLinks(decl); - if (!links.resolvedSymbol) { - links.resolvedSymbol = decl.symbol; - var declName = isBinaryExpression(decl) ? decl.left : decl.name; - var type = isElementAccessExpression(declName) ? checkExpressionCached(declName.argumentExpression) : checkComputedPropertyName(declName); - if (isTypeUsableAsPropertyName(type)) { - var memberName = getPropertyNameFromType(type); - var symbolFlags = decl.symbol.flags; - var lateSymbol = lateSymbols.get(memberName); - if (!lateSymbol) - lateSymbols.set(memberName, lateSymbol = createSymbol(0 /* None */, memberName, 4096 /* Late */)); - var earlySymbol = earlySymbols && earlySymbols.get(memberName); - if (lateSymbol.flags & getExcludedSymbolFlags(symbolFlags) || earlySymbol) { - var declarations = earlySymbol ? concatenate(earlySymbol.declarations, lateSymbol.declarations) : lateSymbol.declarations; - var name_37 = !(type.flags & 8192 /* UniqueESSymbol */) && unescapeLeadingUnderscores(memberName) || declarationNameToString(declName); - forEach(declarations, function (declaration) { return error2(getNameOfDeclaration(declaration) || declaration, Diagnostics.Property_0_was_also_declared_here, name_37); }); - error2(declName || decl, Diagnostics.Duplicate_property_0, name_37); - lateSymbol = createSymbol(0 /* None */, memberName, 4096 /* Late */); - } - lateSymbol.links.nameType = type; - addDeclarationToLateBoundSymbol(lateSymbol, decl, symbolFlags); - if (lateSymbol.parent) { - Debug.assert(lateSymbol.parent === parent2, "Existing symbol parent should match new one"); - } - else { - lateSymbol.parent = parent2; - } - return links.resolvedSymbol = lateSymbol; - } - } - return links.resolvedSymbol; - } - function getResolvedMembersOrExportsOfSymbol(symbol, resolutionKind) { - var e_209, _t, e_210, _u, e_211, _v; - var _a, _b, _c; - var links = getSymbolLinks(symbol); - if (!links[resolutionKind]) { - var isStatic2 = resolutionKind === "resolvedExports" /* resolvedExports */; - var earlySymbols = !isStatic2 ? symbol.members : symbol.flags & 1536 /* Module */ ? getExportsOfModuleWorker(symbol).exports : symbol.exports; - links[resolutionKind] = earlySymbols || emptySymbols; - var lateSymbols = createSymbolTable(); - try { - for (var _w = __values(symbol.declarations || emptyArray), _x = _w.next(); !_x.done; _x = _w.next()) { - var decl = _x.value; - var members = getMembersOfDeclaration(decl); - if (members) { - try { - for (var members_5 = (e_210 = void 0, __values(members)), members_5_1 = members_5.next(); !members_5_1.done; members_5_1 = members_5.next()) { - var member = members_5_1.value; - if (isStatic2 === hasStaticModifier(member)) { - if (hasLateBindableName(member)) { - lateBindMember(symbol, earlySymbols, lateSymbols, member); - } - } - } - } - catch (e_210_1) { e_210 = { error: e_210_1 }; } - finally { - try { - if (members_5_1 && !members_5_1.done && (_u = members_5.return)) _u.call(members_5); - } - finally { if (e_210) throw e_210.error; } - } - } - } - } - catch (e_209_1) { e_209 = { error: e_209_1 }; } - finally { - try { - if (_x && !_x.done && (_t = _w.return)) _t.call(_w); - } - finally { if (e_209) throw e_209.error; } - } - var assignments = (((_a = symbol.valueDeclaration) == null ? void 0 : _a.kind) === 219 /* ArrowFunction */ || ((_b = symbol.valueDeclaration) == null ? void 0 : _b.kind) === 218 /* FunctionExpression */) && ((_c = getSymbolOfNode(symbol.valueDeclaration.parent)) == null ? void 0 : _c.assignmentDeclarationMembers) || symbol.assignmentDeclarationMembers; - if (assignments) { - var decls = arrayFrom(assignments.values()); - try { - for (var decls_1 = __values(decls), decls_1_1 = decls_1.next(); !decls_1_1.done; decls_1_1 = decls_1.next()) { - var member = decls_1_1.value; - var assignmentKind = getAssignmentDeclarationKind(member); - var isInstanceMember = assignmentKind === 3 /* PrototypeProperty */ || isBinaryExpression(member) && isPossiblyAliasedThisProperty(member, assignmentKind) || assignmentKind === 9 /* ObjectDefinePrototypeProperty */ || assignmentKind === 6 /* Prototype */; - if (isStatic2 === !isInstanceMember) { - if (hasLateBindableName(member)) { - lateBindMember(symbol, earlySymbols, lateSymbols, member); - } - } - } - } - catch (e_211_1) { e_211 = { error: e_211_1 }; } - finally { - try { - if (decls_1_1 && !decls_1_1.done && (_v = decls_1.return)) _v.call(decls_1); - } - finally { if (e_211) throw e_211.error; } - } - } - links[resolutionKind] = combineSymbolTables(earlySymbols, lateSymbols) || emptySymbols; - } - return links[resolutionKind]; - } - function getMembersOfSymbol(symbol) { - return symbol.flags & 6256 /* LateBindingContainer */ ? getResolvedMembersOrExportsOfSymbol(symbol, "resolvedMembers" /* resolvedMembers */) : symbol.members || emptySymbols; - } - function getLateBoundSymbol(symbol) { - if (symbol.flags & 106500 /* ClassMember */ && symbol.escapedName === "__computed" /* Computed */) { - var links = getSymbolLinks(symbol); - if (!links.lateSymbol && some(symbol.declarations, hasLateBindableName)) { - var parent2 = getMergedSymbol(symbol.parent); - if (some(symbol.declarations, hasStaticModifier)) { - getExportsOfSymbol(parent2); - } - else { - getMembersOfSymbol(parent2); - } - } - return links.lateSymbol || (links.lateSymbol = symbol); - } - return symbol; - } - function getTypeWithThisArgument(type, thisArgument, needApparentType) { - if (getObjectFlags(type) & 4 /* Reference */) { - var target = type.target; - var typeArguments = getTypeArguments(type); - return length(target.typeParameters) === length(typeArguments) ? createTypeReference(target, concatenate(typeArguments, [thisArgument || target.thisType])) : type; - } - else if (type.flags & 2097152 /* Intersection */) { - var types = sameMap(type.types, function (t) { return getTypeWithThisArgument(t, thisArgument, needApparentType); }); - return types !== type.types ? getIntersectionType(types) : type; - } - return needApparentType ? getApparentType(type) : type; - } - function resolveObjectTypeMembers(type, source, typeParameters, typeArguments) { - var e_212, _t; - var mapper; - var members; - var callSignatures; - var constructSignatures; - var indexInfos; - if (rangeEquals(typeParameters, typeArguments, 0, typeParameters.length)) { - members = source.symbol ? getMembersOfSymbol(source.symbol) : createSymbolTable(source.declaredProperties); - callSignatures = source.declaredCallSignatures; - constructSignatures = source.declaredConstructSignatures; - indexInfos = source.declaredIndexInfos; - } - else { - mapper = createTypeMapper(typeParameters, typeArguments); - members = createInstantiatedSymbolTable(source.declaredProperties, mapper, - /*mappingThisOnly*/ - typeParameters.length === 1); - callSignatures = instantiateSignatures(source.declaredCallSignatures, mapper); - constructSignatures = instantiateSignatures(source.declaredConstructSignatures, mapper); - indexInfos = instantiateIndexInfos(source.declaredIndexInfos, mapper); - } - var baseTypes = getBaseTypes(source); - if (baseTypes.length) { - if (source.symbol && members === getMembersOfSymbol(source.symbol)) { - members = createSymbolTable(source.declaredProperties); - } - setStructuredTypeMembers(type, members, callSignatures, constructSignatures, indexInfos); - var thisArgument = lastOrUndefined(typeArguments); - try { - for (var baseTypes_1 = __values(baseTypes), baseTypes_1_1 = baseTypes_1.next(); !baseTypes_1_1.done; baseTypes_1_1 = baseTypes_1.next()) { - var baseType = baseTypes_1_1.value; - var instantiatedBaseType = thisArgument ? getTypeWithThisArgument(instantiateType(baseType, mapper), thisArgument) : baseType; - addInheritedMembers(members, getPropertiesOfType(instantiatedBaseType)); - callSignatures = concatenate(callSignatures, getSignaturesOfType(instantiatedBaseType, 0 /* Call */)); - constructSignatures = concatenate(constructSignatures, getSignaturesOfType(instantiatedBaseType, 1 /* Construct */)); - var inheritedIndexInfos = instantiatedBaseType !== anyType ? getIndexInfosOfType(instantiatedBaseType) : [createIndexInfo(stringType, anyType, - /*isReadonly*/ - false)]; - indexInfos = concatenate(indexInfos, filter(inheritedIndexInfos, function (info) { return !findIndexInfo(indexInfos, info.keyType); })); - } - } - catch (e_212_1) { e_212 = { error: e_212_1 }; } - finally { - try { - if (baseTypes_1_1 && !baseTypes_1_1.done && (_t = baseTypes_1.return)) _t.call(baseTypes_1); - } - finally { if (e_212) throw e_212.error; } - } - } - setStructuredTypeMembers(type, members, callSignatures, constructSignatures, indexInfos); - } - function resolveClassOrInterfaceMembers(type) { - resolveObjectTypeMembers(type, resolveDeclaredMembers(type), emptyArray, emptyArray); - } - function resolveTypeReferenceMembers(type) { - var source = resolveDeclaredMembers(type.target); - var typeParameters = concatenate(source.typeParameters, [source.thisType]); - var typeArguments = getTypeArguments(type); - var paddedTypeArguments = typeArguments.length === typeParameters.length ? typeArguments : concatenate(typeArguments, [type]); - resolveObjectTypeMembers(type, source, typeParameters, paddedTypeArguments); - } - function createSignature(declaration, typeParameters, thisParameter, parameters, resolvedReturnType, resolvedTypePredicate, minArgumentCount, flags) { - var sig = new Signature15(checker, flags); - sig.declaration = declaration; - sig.typeParameters = typeParameters; - sig.parameters = parameters; - sig.thisParameter = thisParameter; - sig.resolvedReturnType = resolvedReturnType; - sig.resolvedTypePredicate = resolvedTypePredicate; - sig.minArgumentCount = minArgumentCount; - sig.resolvedMinArgumentCount = void 0; - sig.target = void 0; - sig.mapper = void 0; - sig.compositeSignatures = void 0; - sig.compositeKind = void 0; - return sig; - } - function cloneSignature(sig) { - var result = createSignature(sig.declaration, sig.typeParameters, sig.thisParameter, sig.parameters, - /*resolvedReturnType*/ - void 0, - /*resolvedTypePredicate*/ - void 0, sig.minArgumentCount, sig.flags & 167 /* PropagatingFlags */); - result.target = sig.target; - result.mapper = sig.mapper; - result.compositeSignatures = sig.compositeSignatures; - result.compositeKind = sig.compositeKind; - return result; - } - function createUnionSignature(signature, unionSignatures) { - var result = cloneSignature(signature); - result.compositeSignatures = unionSignatures; - result.compositeKind = 1048576 /* Union */; - result.target = void 0; - result.mapper = void 0; - return result; - } - function getOptionalCallSignature(signature, callChainFlags) { - if ((signature.flags & 24 /* CallChainFlags */) === callChainFlags) { - return signature; - } - if (!signature.optionalCallSignatureCache) { - signature.optionalCallSignatureCache = {}; - } - var key = callChainFlags === 8 /* IsInnerCallChain */ ? "inner" : "outer"; - return signature.optionalCallSignatureCache[key] || (signature.optionalCallSignatureCache[key] = createOptionalCallSignature(signature, callChainFlags)); - } - function createOptionalCallSignature(signature, callChainFlags) { - Debug.assert(callChainFlags === 8 /* IsInnerCallChain */ || callChainFlags === 16 /* IsOuterCallChain */, "An optional call signature can either be for an inner call chain or an outer call chain, but not both."); - var result = cloneSignature(signature); - result.flags |= callChainFlags; - return result; - } - function getExpandedParameters(sig, skipUnionExpanding) { - if (signatureHasRestParameter(sig)) { - var restIndex_1 = sig.parameters.length - 1; - var restName_1 = sig.parameters[restIndex_1].escapedName; - var restType = getTypeOfSymbol(sig.parameters[restIndex_1]); - if (isTupleType(restType)) { - return [expandSignatureParametersWithTupleMembers(restType, restIndex_1, restName_1)]; - } - else if (!skipUnionExpanding && restType.flags & 1048576 /* Union */ && every(restType.types, isTupleType)) { - return map(restType.types, function (t) { return expandSignatureParametersWithTupleMembers(t, restIndex_1, restName_1); }); - } - } - return [sig.parameters]; - function expandSignatureParametersWithTupleMembers(restType, restIndex, restName) { - var elementTypes = getTypeArguments(restType); - var associatedNames = getUniqAssociatedNamesFromTupleType(restType, restName); - var restParams = map(elementTypes, function (t, i) { - var name = associatedNames && associatedNames[i] ? associatedNames[i] : getParameterNameAtPosition(sig, restIndex + i, restType); - var flags = restType.target.elementFlags[i]; - var checkFlags = flags & 12 /* Variable */ ? 32768 /* RestParameter */ : flags & 2 /* Optional */ ? 16384 /* OptionalParameter */ : 0; - var symbol = createSymbol(1 /* FunctionScopedVariable */, name, checkFlags); - symbol.links.type = flags & 4 /* Rest */ ? createArrayType(t) : t; - return symbol; - }); - return concatenate(sig.parameters.slice(0, restIndex), restParams); - } - function getUniqAssociatedNamesFromTupleType(type, restName) { - var associatedNamesMap = /* @__PURE__ */ new Map(); - return map(type.target.labeledElementDeclarations, function (labeledElement, i) { - var name = getTupleElementLabel(labeledElement, i, restName); - var prevCounter = associatedNamesMap.get(name); - if (prevCounter === void 0) { - associatedNamesMap.set(name, 1); - return name; - } - else { - associatedNamesMap.set(name, prevCounter + 1); - return "".concat(name, "_").concat(prevCounter); - } - }); - } - } - function getDefaultConstructSignatures(classType) { - var e_213, _t; - var baseConstructorType = getBaseConstructorTypeOfClass(classType); - var baseSignatures = getSignaturesOfType(baseConstructorType, 1 /* Construct */); - var declaration = getClassLikeDeclarationOfSymbol(classType.symbol); - var isAbstract = !!declaration && hasSyntacticModifier(declaration, 256 /* Abstract */); - if (baseSignatures.length === 0) { - return [createSignature( - /*declaration*/ - void 0, classType.localTypeParameters, - /*thisParameter*/ - void 0, emptyArray, classType, - /*resolvedTypePredicate*/ - void 0, 0, isAbstract ? 4 /* Abstract */ : 0 /* None */)]; - } - var baseTypeNode = getBaseTypeNodeOfClass(classType); - var isJavaScript = isInJSFile(baseTypeNode); - var typeArguments = typeArgumentsFromTypeReferenceNode(baseTypeNode); - var typeArgCount = length(typeArguments); - var result = []; - try { - for (var baseSignatures_1 = __values(baseSignatures), baseSignatures_1_1 = baseSignatures_1.next(); !baseSignatures_1_1.done; baseSignatures_1_1 = baseSignatures_1.next()) { - var baseSig = baseSignatures_1_1.value; - var minTypeArgumentCount = getMinTypeArgumentCount(baseSig.typeParameters); - var typeParamCount = length(baseSig.typeParameters); - if (isJavaScript || typeArgCount >= minTypeArgumentCount && typeArgCount <= typeParamCount) { - var sig = typeParamCount ? createSignatureInstantiation(baseSig, fillMissingTypeArguments(typeArguments, baseSig.typeParameters, minTypeArgumentCount, isJavaScript)) : cloneSignature(baseSig); - sig.typeParameters = classType.localTypeParameters; - sig.resolvedReturnType = classType; - sig.flags = isAbstract ? sig.flags | 4 /* Abstract */ : sig.flags & ~4 /* Abstract */; - result.push(sig); - } - } - } - catch (e_213_1) { e_213 = { error: e_213_1 }; } - finally { - try { - if (baseSignatures_1_1 && !baseSignatures_1_1.done && (_t = baseSignatures_1.return)) _t.call(baseSignatures_1); - } - finally { if (e_213) throw e_213.error; } - } - return result; - } - function findMatchingSignature(signatureList, signature, partialMatch, ignoreThisTypes, ignoreReturnTypes) { - var e_214, _t; - try { - for (var signatureList_1 = __values(signatureList), signatureList_1_1 = signatureList_1.next(); !signatureList_1_1.done; signatureList_1_1 = signatureList_1.next()) { - var s = signatureList_1_1.value; - if (compareSignaturesIdentical(s, signature, partialMatch, ignoreThisTypes, ignoreReturnTypes, partialMatch ? compareTypesSubtypeOf : compareTypesIdentical)) { - return s; - } - } - } - catch (e_214_1) { e_214 = { error: e_214_1 }; } - finally { - try { - if (signatureList_1_1 && !signatureList_1_1.done && (_t = signatureList_1.return)) _t.call(signatureList_1); - } - finally { if (e_214) throw e_214.error; } - } - } - function findMatchingSignatures(signatureLists, signature, listIndex) { - if (signature.typeParameters) { - if (listIndex > 0) { - return void 0; - } - for (var i = 1; i < signatureLists.length; i++) { - if (!findMatchingSignature(signatureLists[i], signature, - /*partialMatch*/ - false, - /*ignoreThisTypes*/ - false, - /*ignoreReturnTypes*/ - false)) { - return void 0; - } - } - return [signature]; - } - var result; - for (var i = 0; i < signatureLists.length; i++) { - var match = i === listIndex ? signature : findMatchingSignature(signatureLists[i], signature, - /*partialMatch*/ - true, - /*ignoreThisTypes*/ - false, - /*ignoreReturnTypes*/ - true); - if (!match) { - return void 0; - } - result = appendIfUnique(result, match); - } - return result; - } - function getUnionSignatures(signatureLists) { - var e_215, _t, e_216, _u; - var result; - var indexWithLengthOverOne; - for (var i = 0; i < signatureLists.length; i++) { - if (signatureLists[i].length === 0) - return emptyArray; - if (signatureLists[i].length > 1) { - indexWithLengthOverOne = indexWithLengthOverOne === void 0 ? i : -1; - } - try { - for (var _v = (e_215 = void 0, __values(signatureLists[i])), _w = _v.next(); !_w.done; _w = _v.next()) { - var signature = _w.value; - if (!result || !findMatchingSignature(result, signature, - /*partialMatch*/ - false, - /*ignoreThisTypes*/ - false, - /*ignoreReturnTypes*/ - true)) { - var unionSignatures = findMatchingSignatures(signatureLists, signature, i); - if (unionSignatures) { - var s = signature; - if (unionSignatures.length > 1) { - var thisParameter = signature.thisParameter; - var firstThisParameterOfUnionSignatures = forEach(unionSignatures, function (sig) { return sig.thisParameter; }); - if (firstThisParameterOfUnionSignatures) { - var thisType = getIntersectionType(mapDefined(unionSignatures, function (sig) { return sig.thisParameter && getTypeOfSymbol(sig.thisParameter); })); - thisParameter = createSymbolWithType(firstThisParameterOfUnionSignatures, thisType); - } - s = createUnionSignature(signature, unionSignatures); - s.thisParameter = thisParameter; - } - (result || (result = [])).push(s); - } - } - } - } - catch (e_215_1) { e_215 = { error: e_215_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_215) throw e_215.error; } - } - } - if (!length(result) && indexWithLengthOverOne !== -1) { - var masterList = signatureLists[indexWithLengthOverOne !== void 0 ? indexWithLengthOverOne : 0]; - var results = masterList.slice(); - var _loop_12 = function (signatures) { - if (signatures !== masterList) { - var signature_1 = signatures[0]; - Debug.assert(!!signature_1, "getUnionSignatures bails early on empty signature lists and should not have empty lists on second pass"); - results = !!signature_1.typeParameters && some(results, function (s) { return !!s.typeParameters && !compareTypeParametersIdentical(signature_1.typeParameters, s.typeParameters); }) ? void 0 : map(results, function (sig) { return combineSignaturesOfUnionMembers(sig, signature_1); }); - if (!results) { - return "break"; - } - } - }; - try { - for (var signatureLists_1 = __values(signatureLists), signatureLists_1_1 = signatureLists_1.next(); !signatureLists_1_1.done; signatureLists_1_1 = signatureLists_1.next()) { - var signatures = signatureLists_1_1.value; - var state_5 = _loop_12(signatures); - if (state_5 === "break") - break; - } - } - catch (e_216_1) { e_216 = { error: e_216_1 }; } - finally { - try { - if (signatureLists_1_1 && !signatureLists_1_1.done && (_u = signatureLists_1.return)) _u.call(signatureLists_1); - } - finally { if (e_216) throw e_216.error; } - } - result = results; - } - return result || emptyArray; - } - function compareTypeParametersIdentical(sourceParams, targetParams) { - if (length(sourceParams) !== length(targetParams)) { - return false; - } - if (!sourceParams || !targetParams) { - return true; - } - var mapper = createTypeMapper(targetParams, sourceParams); - for (var i = 0; i < sourceParams.length; i++) { - var source = sourceParams[i]; - var target = targetParams[i]; - if (source === target) - continue; - if (!isTypeIdenticalTo(getConstraintFromTypeParameter(source) || unknownType, instantiateType(getConstraintFromTypeParameter(target) || unknownType, mapper))) - return false; - } - return true; - } - function combineUnionThisParam(left, right, mapper) { - if (!left || !right) { - return left || right; - } - var thisType = getIntersectionType([getTypeOfSymbol(left), instantiateType(getTypeOfSymbol(right), mapper)]); - return createSymbolWithType(left, thisType); - } - function combineUnionParameters(left, right, mapper) { - var leftCount = getParameterCount(left); - var rightCount = getParameterCount(right); - var longest = leftCount >= rightCount ? left : right; - var shorter = longest === left ? right : left; - var longestCount = longest === left ? leftCount : rightCount; - var eitherHasEffectiveRest = hasEffectiveRestParameter(left) || hasEffectiveRestParameter(right); - var needsExtraRestElement = eitherHasEffectiveRest && !hasEffectiveRestParameter(longest); - var params = new Array(longestCount + (needsExtraRestElement ? 1 : 0)); - for (var i = 0; i < longestCount; i++) { - var longestParamType = tryGetTypeAtPosition(longest, i); - if (longest === right) { - longestParamType = instantiateType(longestParamType, mapper); - } - var shorterParamType = tryGetTypeAtPosition(shorter, i) || unknownType; - if (shorter === right) { - shorterParamType = instantiateType(shorterParamType, mapper); - } - var unionParamType = getIntersectionType([longestParamType, shorterParamType]); - var isRestParam = eitherHasEffectiveRest && !needsExtraRestElement && i === longestCount - 1; - var isOptional = i >= getMinArgumentCount(longest) && i >= getMinArgumentCount(shorter); - var leftName = i >= leftCount ? void 0 : getParameterNameAtPosition(left, i); - var rightName = i >= rightCount ? void 0 : getParameterNameAtPosition(right, i); - var paramName = leftName === rightName ? leftName : !leftName ? rightName : !rightName ? leftName : void 0; - var paramSymbol = createSymbol(1 /* FunctionScopedVariable */ | (isOptional && !isRestParam ? 16777216 /* Optional */ : 0), paramName || "arg".concat(i)); - paramSymbol.links.type = isRestParam ? createArrayType(unionParamType) : unionParamType; - params[i] = paramSymbol; - } - if (needsExtraRestElement) { - var restParamSymbol = createSymbol(1 /* FunctionScopedVariable */, "args"); - restParamSymbol.links.type = createArrayType(getTypeAtPosition(shorter, longestCount)); - if (shorter === right) { - restParamSymbol.links.type = instantiateType(restParamSymbol.links.type, mapper); - } - params[longestCount] = restParamSymbol; - } - return params; - } - function combineSignaturesOfUnionMembers(left, right) { - var typeParams = left.typeParameters || right.typeParameters; - var paramMapper; - if (left.typeParameters && right.typeParameters) { - paramMapper = createTypeMapper(right.typeParameters, left.typeParameters); - } - var declaration = left.declaration; - var params = combineUnionParameters(left, right, paramMapper); - var thisParam = combineUnionThisParam(left.thisParameter, right.thisParameter, paramMapper); - var minArgCount = Math.max(left.minArgumentCount, right.minArgumentCount); - var result = createSignature(declaration, typeParams, thisParam, params, - /*resolvedReturnType*/ - void 0, - /*resolvedTypePredicate*/ - void 0, minArgCount, (left.flags | right.flags) & 167 /* PropagatingFlags */); - result.compositeKind = 1048576 /* Union */; - result.compositeSignatures = concatenate(left.compositeKind !== 2097152 /* Intersection */ && left.compositeSignatures || [left], [right]); - if (paramMapper) { - result.mapper = left.compositeKind !== 2097152 /* Intersection */ && left.mapper && left.compositeSignatures ? combineTypeMappers(left.mapper, paramMapper) : paramMapper; - } - return result; - } - function getUnionIndexInfos(types) { - var e_217, _t; - var sourceInfos = getIndexInfosOfType(types[0]); - if (sourceInfos) { - var result = []; - var _loop_13 = function (info) { - var indexType = info.keyType; - if (every(types, function (t) { return !!getIndexInfoOfType(t, indexType); })) { - result.push(createIndexInfo(indexType, getUnionType(map(types, function (t) { return getIndexTypeOfType(t, indexType); })), some(types, function (t) { return getIndexInfoOfType(t, indexType).isReadonly; }))); - } - }; - try { - for (var sourceInfos_1 = __values(sourceInfos), sourceInfos_1_1 = sourceInfos_1.next(); !sourceInfos_1_1.done; sourceInfos_1_1 = sourceInfos_1.next()) { - var info = sourceInfos_1_1.value; - _loop_13(info); - } - } - catch (e_217_1) { e_217 = { error: e_217_1 }; } - finally { - try { - if (sourceInfos_1_1 && !sourceInfos_1_1.done && (_t = sourceInfos_1.return)) _t.call(sourceInfos_1); - } - finally { if (e_217) throw e_217.error; } - } - return result; - } - return emptyArray; - } - function resolveUnionTypeMembers(type) { - var callSignatures = getUnionSignatures(map(type.types, function (t) { return t === globalFunctionType ? [unknownSignature] : getSignaturesOfType(t, 0 /* Call */); })); - var constructSignatures = getUnionSignatures(map(type.types, function (t) { return getSignaturesOfType(t, 1 /* Construct */); })); - var indexInfos = getUnionIndexInfos(type.types); - setStructuredTypeMembers(type, emptySymbols, callSignatures, constructSignatures, indexInfos); - } - function intersectTypes(type1, type2) { - return !type1 ? type2 : !type2 ? type1 : getIntersectionType([type1, type2]); - } - function findMixins(types) { - var constructorTypeCount = countWhere(types, function (t) { return getSignaturesOfType(t, 1 /* Construct */).length > 0; }); - var mixinFlags = map(types, isMixinConstructorType); - if (constructorTypeCount > 0 && constructorTypeCount === countWhere(mixinFlags, function (b) { return b; })) { - var firstMixinIndex = mixinFlags.indexOf( - /*searchElement*/ - true); - mixinFlags[firstMixinIndex] = false; - } - return mixinFlags; - } - function includeMixinType(type, types, mixinFlags, index) { - var mixedTypes = []; - for (var i = 0; i < types.length; i++) { - if (i === index) { - mixedTypes.push(type); - } - else if (mixinFlags[i]) { - mixedTypes.push(getReturnTypeOfSignature(getSignaturesOfType(types[i], 1 /* Construct */)[0])); - } - } - return getIntersectionType(mixedTypes); - } - function resolveIntersectionTypeMembers(type) { - var callSignatures; - var constructSignatures; - var indexInfos; - var types = type.types; - var mixinFlags = findMixins(types); - var mixinCount = countWhere(mixinFlags, function (b) { return b; }); - var _loop_14 = function (i) { - var t = type.types[i]; - if (!mixinFlags[i]) { - var signatures = getSignaturesOfType(t, 1 /* Construct */); - if (signatures.length && mixinCount > 0) { - signatures = map(signatures, function (s) { - var clone2 = cloneSignature(s); - clone2.resolvedReturnType = includeMixinType(getReturnTypeOfSignature(s), types, mixinFlags, i); - return clone2; - }); - } - constructSignatures = appendSignatures(constructSignatures, signatures); - } - callSignatures = appendSignatures(callSignatures, getSignaturesOfType(t, 0 /* Call */)); - indexInfos = reduceLeft(getIndexInfosOfType(t), function (infos, newInfo) { return appendIndexInfo(infos, newInfo, - /*union*/ - false); }, indexInfos); - }; - for (var i = 0; i < types.length; i++) { - _loop_14(i); - } - setStructuredTypeMembers(type, emptySymbols, callSignatures || emptyArray, constructSignatures || emptyArray, indexInfos || emptyArray); - } - function appendSignatures(signatures, newSignatures) { - var e_218, _t; - var _loop_15 = function (sig) { - if (!signatures || every(signatures, function (s) { return !compareSignaturesIdentical(s, sig, - /*partialMatch*/ - false, - /*ignoreThisTypes*/ - false, - /*ignoreReturnTypes*/ - false, compareTypesIdentical); })) { - signatures = append(signatures, sig); - } - }; - try { - for (var newSignatures_1 = __values(newSignatures), newSignatures_1_1 = newSignatures_1.next(); !newSignatures_1_1.done; newSignatures_1_1 = newSignatures_1.next()) { - var sig = newSignatures_1_1.value; - _loop_15(sig); - } - } - catch (e_218_1) { e_218 = { error: e_218_1 }; } - finally { - try { - if (newSignatures_1_1 && !newSignatures_1_1.done && (_t = newSignatures_1.return)) _t.call(newSignatures_1); - } - finally { if (e_218) throw e_218.error; } - } - return signatures; - } - function appendIndexInfo(indexInfos, newInfo, union) { - if (indexInfos) { - for (var i = 0; i < indexInfos.length; i++) { - var info = indexInfos[i]; - if (info.keyType === newInfo.keyType) { - indexInfos[i] = createIndexInfo(info.keyType, union ? getUnionType([info.type, newInfo.type]) : getIntersectionType([info.type, newInfo.type]), union ? info.isReadonly || newInfo.isReadonly : info.isReadonly && newInfo.isReadonly); - return indexInfos; - } - } - } - return append(indexInfos, newInfo); - } - function resolveAnonymousTypeMembers(type) { - if (type.target) { - setStructuredTypeMembers(type, emptySymbols, emptyArray, emptyArray, emptyArray); - var members2 = createInstantiatedSymbolTable(getPropertiesOfObjectType(type.target), type.mapper, - /*mappingThisOnly*/ - false); - var callSignatures = instantiateSignatures(getSignaturesOfType(type.target, 0 /* Call */), type.mapper); - var constructSignatures = instantiateSignatures(getSignaturesOfType(type.target, 1 /* Construct */), type.mapper); - var indexInfos2 = instantiateIndexInfos(getIndexInfosOfType(type.target), type.mapper); - setStructuredTypeMembers(type, members2, callSignatures, constructSignatures, indexInfos2); - return; - } - var symbol = getMergedSymbol(type.symbol); - if (symbol.flags & 2048 /* TypeLiteral */) { - setStructuredTypeMembers(type, emptySymbols, emptyArray, emptyArray, emptyArray); - var members2 = getMembersOfSymbol(symbol); - var callSignatures = getSignaturesOfSymbol(members2.get("__call" /* Call */)); - var constructSignatures = getSignaturesOfSymbol(members2.get("__new" /* New */)); - var indexInfos2 = getIndexInfosOfSymbol(symbol); - setStructuredTypeMembers(type, members2, callSignatures, constructSignatures, indexInfos2); - return; - } - var members = getExportsOfSymbol(symbol); - var indexInfos; - if (symbol === globalThisSymbol) { - var varsOnly_1 = /* @__PURE__ */ new Map(); - members.forEach(function (p) { - var _a; - if (!(p.flags & 418 /* BlockScoped */) && !(p.flags & 512 /* ValueModule */ && ((_a = p.declarations) == null ? void 0 : _a.length) && every(p.declarations, isAmbientModule))) { - varsOnly_1.set(p.escapedName, p); - } - }); - members = varsOnly_1; - } - var baseConstructorIndexInfo; - setStructuredTypeMembers(type, members, emptyArray, emptyArray, emptyArray); - if (symbol.flags & 32 /* Class */) { - var classType = getDeclaredTypeOfClassOrInterface(symbol); - var baseConstructorType = getBaseConstructorTypeOfClass(classType); - if (baseConstructorType.flags & (524288 /* Object */ | 2097152 /* Intersection */ | 8650752 /* TypeVariable */)) { - members = createSymbolTable(getNamedOrIndexSignatureMembers(members)); - addInheritedMembers(members, getPropertiesOfType(baseConstructorType)); - } - else if (baseConstructorType === anyType) { - baseConstructorIndexInfo = createIndexInfo(stringType, anyType, - /*isReadonly*/ - false); - } - } - var indexSymbol = getIndexSymbolFromSymbolTable(members); - if (indexSymbol) { - indexInfos = getIndexInfosOfIndexSymbol(indexSymbol); - } - else { - if (baseConstructorIndexInfo) { - indexInfos = append(indexInfos, baseConstructorIndexInfo); - } - if (symbol.flags & 384 /* Enum */ && (getDeclaredTypeOfSymbol(symbol).flags & 32 /* Enum */ || some(type.properties, function (prop) { return !!(getTypeOfSymbol(prop).flags & 296 /* NumberLike */); }))) { - indexInfos = append(indexInfos, enumNumberIndexInfo); - } - } - setStructuredTypeMembers(type, members, emptyArray, emptyArray, indexInfos || emptyArray); - if (symbol.flags & (16 /* Function */ | 8192 /* Method */)) { - type.callSignatures = getSignaturesOfSymbol(symbol); - } - if (symbol.flags & 32 /* Class */) { - var classType_1 = getDeclaredTypeOfClassOrInterface(symbol); - var constructSignatures = symbol.members ? getSignaturesOfSymbol(symbol.members.get("__constructor" /* Constructor */)) : emptyArray; - if (symbol.flags & 16 /* Function */) { - constructSignatures = addRange(constructSignatures.slice(), mapDefined(type.callSignatures, function (sig) { return isJSConstructor(sig.declaration) ? createSignature(sig.declaration, sig.typeParameters, sig.thisParameter, sig.parameters, classType_1, - /*resolvedTypePredicate*/ - void 0, sig.minArgumentCount, sig.flags & 167 /* PropagatingFlags */) : void 0; })); - } - if (!constructSignatures.length) { - constructSignatures = getDefaultConstructSignatures(classType_1); - } - type.constructSignatures = constructSignatures; - } - } - function replaceIndexedAccess(instantiable, type, replacement) { - return instantiateType(instantiable, createTypeMapper([type.indexType, type.objectType], [getNumberLiteralType(0), createTupleType([replacement])])); - } - function resolveReverseMappedTypeMembers(type) { - var e_219, _t; - var indexInfo = getIndexInfoOfType(type.source, stringType); - var modifiers = getMappedTypeModifiers(type.mappedType); - var readonlyMask = modifiers & 1 /* IncludeReadonly */ ? false : true; - var optionalMask = modifiers & 4 /* IncludeOptional */ ? 0 : 16777216 /* Optional */; - var indexInfos = indexInfo ? [createIndexInfo(stringType, inferReverseMappedType(indexInfo.type, type.mappedType, type.constraintType), readonlyMask && indexInfo.isReadonly)] : emptyArray; - var members = createSymbolTable(); - try { - for (var _u = __values(getPropertiesOfType(type.source)), _v = _u.next(); !_v.done; _v = _u.next()) { - var prop = _v.value; - var checkFlags = 8192 /* ReverseMapped */ | (readonlyMask && isReadonlySymbol(prop) ? 8 /* Readonly */ : 0); - var inferredProp = createSymbol(4 /* Property */ | prop.flags & optionalMask, prop.escapedName, checkFlags); - inferredProp.declarations = prop.declarations; - inferredProp.links.nameType = getSymbolLinks(prop).nameType; - inferredProp.links.propertyType = getTypeOfSymbol(prop); - if (type.constraintType.type.flags & 8388608 /* IndexedAccess */ && type.constraintType.type.objectType.flags & 262144 /* TypeParameter */ && type.constraintType.type.indexType.flags & 262144 /* TypeParameter */) { - var newTypeParam = type.constraintType.type.objectType; - var newMappedType = replaceIndexedAccess(type.mappedType, type.constraintType.type, newTypeParam); - inferredProp.links.mappedType = newMappedType; - inferredProp.links.constraintType = getIndexType(newTypeParam); - } - else { - inferredProp.links.mappedType = type.mappedType; - inferredProp.links.constraintType = type.constraintType; - } - members.set(prop.escapedName, inferredProp); - } - } - catch (e_219_1) { e_219 = { error: e_219_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_219) throw e_219.error; } - } - setStructuredTypeMembers(type, members, emptyArray, emptyArray, indexInfos); - } - function getLowerBoundOfKeyType(type) { - if (type.flags & 4194304 /* Index */) { - var t = getApparentType(type.type); - return isGenericTupleType(t) ? getKnownKeysOfTupleType(t) : getIndexType(t); - } - if (type.flags & 16777216 /* Conditional */) { - if (type.root.isDistributive) { - var checkType = type.checkType; - var constraint = getLowerBoundOfKeyType(checkType); - if (constraint !== checkType) { - return getConditionalTypeInstantiation(type, prependTypeMapping(type.root.checkType, constraint, type.mapper)); - } - } - return type; - } - if (type.flags & 1048576 /* Union */) { - return mapType(type, getLowerBoundOfKeyType, - /*noReductions*/ - true); - } - if (type.flags & 2097152 /* Intersection */) { - var types = type.types; - if (types.length === 2 && !!(types[0].flags & (4 /* String */ | 8 /* Number */ | 64 /* BigInt */)) && types[1] === emptyTypeLiteralType) { - return type; - } - return getIntersectionType(sameMap(type.types, getLowerBoundOfKeyType)); - } - return type; - } - function getIsLateCheckFlag(s) { - return getCheckFlags(s) & 4096 /* Late */; - } - function forEachMappedTypePropertyKeyTypeAndIndexSignatureKeyType(type, include, stringsOnly, cb) { - var e_220, _t, e_221, _u; - try { - for (var _v = __values(getPropertiesOfType(type)), _w = _v.next(); !_w.done; _w = _v.next()) { - var prop = _w.value; - cb(getLiteralTypeFromProperty(prop, include)); - } - } - catch (e_220_1) { e_220 = { error: e_220_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_220) throw e_220.error; } - } - if (type.flags & 1 /* Any */) { - cb(stringType); - } - else { - try { - for (var _x = __values(getIndexInfosOfType(type)), _y = _x.next(); !_y.done; _y = _x.next()) { - var info = _y.value; - if (!stringsOnly || info.keyType.flags & (4 /* String */ | 134217728 /* TemplateLiteral */)) { - cb(info.keyType); - } - } - } - catch (e_221_1) { e_221 = { error: e_221_1 }; } - finally { - try { - if (_y && !_y.done && (_u = _x.return)) _u.call(_x); - } - finally { if (e_221) throw e_221.error; } - } - } - } - function resolveMappedTypeMembers(type) { - var members = createSymbolTable(); - var indexInfos; - setStructuredTypeMembers(type, emptySymbols, emptyArray, emptyArray, emptyArray); - var typeParameter = getTypeParameterFromMappedType(type); - var constraintType = getConstraintTypeFromMappedType(type); - var mappedType = type.target || type; - var nameType = getNameTypeFromMappedType(mappedType); - var shouldLinkPropDeclarations = !nameType || isFilteringMappedType(mappedType); - var templateType = getTemplateTypeFromMappedType(mappedType); - var modifiersType = getApparentType(getModifiersTypeFromMappedType(type)); - var templateModifiers = getMappedTypeModifiers(type); - var include = keyofStringsOnly ? 128 /* StringLiteral */ : 8576 /* StringOrNumberLiteralOrUnique */; - if (isMappedTypeWithKeyofConstraintDeclaration(type)) { - forEachMappedTypePropertyKeyTypeAndIndexSignatureKeyType(modifiersType, include, keyofStringsOnly, addMemberForKeyType); - } - else { - forEachType(getLowerBoundOfKeyType(constraintType), addMemberForKeyType); - } - setStructuredTypeMembers(type, members, emptyArray, emptyArray, indexInfos || emptyArray); - function addMemberForKeyType(keyType) { - var propNameType = nameType ? instantiateType(nameType, appendTypeMapping(type.mapper, typeParameter, keyType)) : keyType; - forEachType(propNameType, function (t) { return addMemberForKeyTypeWorker(keyType, t); }); - } - function addMemberForKeyTypeWorker(keyType, propNameType) { - if (isTypeUsableAsPropertyName(propNameType)) { - var propName = getPropertyNameFromType(propNameType); - var existingProp = members.get(propName); - if (existingProp) { - existingProp.links.nameType = getUnionType([existingProp.links.nameType, propNameType]); - existingProp.links.keyType = getUnionType([existingProp.links.keyType, keyType]); - } - else { - var modifiersProp = isTypeUsableAsPropertyName(keyType) ? getPropertyOfType(modifiersType, getPropertyNameFromType(keyType)) : void 0; - var isOptional = !!(templateModifiers & 4 /* IncludeOptional */ || !(templateModifiers & 8 /* ExcludeOptional */) && modifiersProp && modifiersProp.flags & 16777216 /* Optional */); - var isReadonly = !!(templateModifiers & 1 /* IncludeReadonly */ || !(templateModifiers & 2 /* ExcludeReadonly */) && modifiersProp && isReadonlySymbol(modifiersProp)); - var stripOptional = strictNullChecks && !isOptional && modifiersProp && modifiersProp.flags & 16777216 /* Optional */; - var lateFlag = modifiersProp ? getIsLateCheckFlag(modifiersProp) : 0; - var prop = createSymbol(4 /* Property */ | (isOptional ? 16777216 /* Optional */ : 0), propName, lateFlag | 262144 /* Mapped */ | (isReadonly ? 8 /* Readonly */ : 0) | (stripOptional ? 524288 /* StripOptional */ : 0)); - prop.links.mappedType = type; - prop.links.nameType = propNameType; - prop.links.keyType = keyType; - if (modifiersProp) { - prop.links.syntheticOrigin = modifiersProp; - prop.declarations = shouldLinkPropDeclarations ? modifiersProp.declarations : void 0; - } - members.set(propName, prop); - } - } - else if (isValidIndexKeyType(propNameType) || propNameType.flags & (1 /* Any */ | 32 /* Enum */)) { - var indexKeyType = propNameType.flags & (1 /* Any */ | 4 /* String */) ? stringType : propNameType.flags & (8 /* Number */ | 32 /* Enum */) ? numberType : propNameType; - var propType = instantiateType(templateType, appendTypeMapping(type.mapper, typeParameter, keyType)); - var indexInfo = createIndexInfo(indexKeyType, propType, !!(templateModifiers & 1 /* IncludeReadonly */)); - indexInfos = appendIndexInfo(indexInfos, indexInfo, - /*union*/ - true); - } - } - } - function getTypeOfMappedSymbol(symbol) { - if (!symbol.links.type) { - var mappedType = symbol.links.mappedType; - if (!pushTypeResolution(symbol, 0 /* Type */)) { - mappedType.containsError = true; - return errorType; - } - var templateType = getTemplateTypeFromMappedType(mappedType.target || mappedType); - var mapper = appendTypeMapping(mappedType.mapper, getTypeParameterFromMappedType(mappedType), symbol.links.keyType); - var propType = instantiateType(templateType, mapper); - var type = strictNullChecks && symbol.flags & 16777216 /* Optional */ && !maybeTypeOfKind(propType, 32768 /* Undefined */ | 16384 /* Void */) ? getOptionalType(propType, - /*isProperty*/ - true) : symbol.links.checkFlags & 524288 /* StripOptional */ ? removeMissingOrUndefinedType(propType) : propType; - if (!popTypeResolution()) { - error2(currentNode, Diagnostics.Type_of_property_0_circularly_references_itself_in_mapped_type_1, symbolToString(symbol), typeToString(mappedType)); - type = errorType; - } - symbol.links.type = type; - } - return symbol.links.type; - } - function getTypeParameterFromMappedType(type) { - return type.typeParameter || (type.typeParameter = getDeclaredTypeOfTypeParameter(getSymbolOfDeclaration(type.declaration.typeParameter))); - } - function getConstraintTypeFromMappedType(type) { - return type.constraintType || (type.constraintType = getConstraintOfTypeParameter(getTypeParameterFromMappedType(type)) || errorType); - } - function getNameTypeFromMappedType(type) { - return type.declaration.nameType ? type.nameType || (type.nameType = instantiateType(getTypeFromTypeNode(type.declaration.nameType), type.mapper)) : void 0; - } - function getTemplateTypeFromMappedType(type) { - return type.templateType || (type.templateType = type.declaration.type ? instantiateType(addOptionality(getTypeFromTypeNode(type.declaration.type), - /*isProperty*/ - true, !!(getMappedTypeModifiers(type) & 4 /* IncludeOptional */)), type.mapper) : errorType); - } - function getConstraintDeclarationForMappedType(type) { - return getEffectiveConstraintOfTypeParameter(type.declaration.typeParameter); - } - function isMappedTypeWithKeyofConstraintDeclaration(type) { - var constraintDeclaration = getConstraintDeclarationForMappedType(type); - return constraintDeclaration.kind === 198 /* TypeOperator */ && constraintDeclaration.operator === 143 /* KeyOfKeyword */; - } - function getModifiersTypeFromMappedType(type) { - if (!type.modifiersType) { - if (isMappedTypeWithKeyofConstraintDeclaration(type)) { - type.modifiersType = instantiateType(getTypeFromTypeNode(getConstraintDeclarationForMappedType(type).type), type.mapper); - } - else { - var declaredType = getTypeFromMappedTypeNode(type.declaration); - var constraint = getConstraintTypeFromMappedType(declaredType); - var extendedConstraint = constraint && constraint.flags & 262144 /* TypeParameter */ ? getConstraintOfTypeParameter(constraint) : constraint; - type.modifiersType = extendedConstraint && extendedConstraint.flags & 4194304 /* Index */ ? instantiateType(extendedConstraint.type, type.mapper) : unknownType; - } - } - return type.modifiersType; - } - function getMappedTypeModifiers(type) { - var declaration = type.declaration; - return (declaration.readonlyToken ? declaration.readonlyToken.kind === 41 /* MinusToken */ ? 2 /* ExcludeReadonly */ : 1 /* IncludeReadonly */ : 0) | (declaration.questionToken ? declaration.questionToken.kind === 41 /* MinusToken */ ? 8 /* ExcludeOptional */ : 4 /* IncludeOptional */ : 0); - } - function getMappedTypeOptionality(type) { - var modifiers = getMappedTypeModifiers(type); - return modifiers & 8 /* ExcludeOptional */ ? -1 : modifiers & 4 /* IncludeOptional */ ? 1 : 0; - } - function getCombinedMappedTypeOptionality(type) { - var optionality = getMappedTypeOptionality(type); - var modifiersType = getModifiersTypeFromMappedType(type); - return optionality || (isGenericMappedType(modifiersType) ? getMappedTypeOptionality(modifiersType) : 0); - } - function isPartialMappedType(type) { - return !!(getObjectFlags(type) & 32 /* Mapped */ && getMappedTypeModifiers(type) & 4 /* IncludeOptional */); - } - function isGenericMappedType(type) { - if (getObjectFlags(type) & 32 /* Mapped */) { - var constraint = getConstraintTypeFromMappedType(type); - if (isGenericIndexType(constraint)) { - return true; - } - var nameType = getNameTypeFromMappedType(type); - if (nameType && isGenericIndexType(instantiateType(nameType, makeUnaryTypeMapper(getTypeParameterFromMappedType(type), constraint)))) { - return true; - } - } - return false; - } - function isFilteringMappedType(type) { - var nameType = getNameTypeFromMappedType(type); - return !!nameType && isTypeAssignableTo(nameType, getTypeParameterFromMappedType(type)); - } - function resolveStructuredTypeMembers(type) { - if (!type.members) { - if (type.flags & 524288 /* Object */) { - if (type.objectFlags & 4 /* Reference */) { - resolveTypeReferenceMembers(type); - } - else if (type.objectFlags & 3 /* ClassOrInterface */) { - resolveClassOrInterfaceMembers(type); - } - else if (type.objectFlags & 1024 /* ReverseMapped */) { - resolveReverseMappedTypeMembers(type); - } - else if (type.objectFlags & 16 /* Anonymous */) { - resolveAnonymousTypeMembers(type); - } - else if (type.objectFlags & 32 /* Mapped */) { - resolveMappedTypeMembers(type); - } - else { - Debug.fail("Unhandled object type " + Debug.formatObjectFlags(type.objectFlags)); - } - } - else if (type.flags & 1048576 /* Union */) { - resolveUnionTypeMembers(type); - } - else if (type.flags & 2097152 /* Intersection */) { - resolveIntersectionTypeMembers(type); - } - else { - Debug.fail("Unhandled type " + Debug.formatTypeFlags(type.flags)); - } - } - return type; - } - function getPropertiesOfObjectType(type) { - if (type.flags & 524288 /* Object */) { - return resolveStructuredTypeMembers(type).properties; - } - return emptyArray; - } - function getPropertyOfObjectType(type, name) { - if (type.flags & 524288 /* Object */) { - var resolved = resolveStructuredTypeMembers(type); - var symbol = resolved.members.get(name); - if (symbol && symbolIsValue(symbol)) { - return symbol; - } - } - } - function getPropertiesOfUnionOrIntersectionType(type) { - var e_222, _t, e_223, _u; - if (!type.resolvedProperties) { - var members = createSymbolTable(); - try { - for (var _v = __values(type.types), _w = _v.next(); !_w.done; _w = _v.next()) { - var current = _w.value; - try { - for (var _x = (e_223 = void 0, __values(getPropertiesOfType(current))), _y = _x.next(); !_y.done; _y = _x.next()) { - var prop = _y.value; - if (!members.has(prop.escapedName)) { - var combinedProp = getPropertyOfUnionOrIntersectionType(type, prop.escapedName); - if (combinedProp) { - members.set(prop.escapedName, combinedProp); - } - } - } - } - catch (e_223_1) { e_223 = { error: e_223_1 }; } - finally { - try { - if (_y && !_y.done && (_u = _x.return)) _u.call(_x); - } - finally { if (e_223) throw e_223.error; } - } - if (type.flags & 1048576 /* Union */ && getIndexInfosOfType(current).length === 0) { - break; - } - } - } - catch (e_222_1) { e_222 = { error: e_222_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_222) throw e_222.error; } - } - type.resolvedProperties = getNamedMembers(members); - } - return type.resolvedProperties; - } - function getPropertiesOfType(type) { - type = getReducedApparentType(type); - return type.flags & 3145728 /* UnionOrIntersection */ ? getPropertiesOfUnionOrIntersectionType(type) : getPropertiesOfObjectType(type); - } - function forEachPropertyOfType(type, action) { - type = getReducedApparentType(type); - if (type.flags & 3670016 /* StructuredType */) { - resolveStructuredTypeMembers(type).members.forEach(function (symbol, escapedName) { - if (isNamedMember(symbol, escapedName)) { - action(symbol, escapedName); - } - }); - } - } - function isTypeInvalidDueToUnionDiscriminant(contextualType, obj) { - var list = obj.properties; - return list.some(function (property) { - var nameType = property.name && (isJsxNamespacedName(property.name) ? getStringLiteralType(getTextOfJsxAttributeName(property.name)) : getLiteralTypeFromPropertyName(property.name)); - var name = nameType && isTypeUsableAsPropertyName(nameType) ? getPropertyNameFromType(nameType) : void 0; - var expected = name === void 0 ? void 0 : getTypeOfPropertyOfType(contextualType, name); - return !!expected && isLiteralType(expected) && !isTypeAssignableTo(getTypeOfNode(property), expected); - }); - } - function getAllPossiblePropertiesOfTypes(types) { - var e_224, _t, e_225, _u; - var unionType = getUnionType(types); - if (!(unionType.flags & 1048576 /* Union */)) { - return getAugmentedPropertiesOfType(unionType); - } - var props = createSymbolTable(); - try { - for (var types_3 = __values(types), types_3_1 = types_3.next(); !types_3_1.done; types_3_1 = types_3.next()) { - var memberType = types_3_1.value; - try { - for (var _v = (e_225 = void 0, __values(getAugmentedPropertiesOfType(memberType))), _w = _v.next(); !_w.done; _w = _v.next()) { - var escapedName = _w.value.escapedName; - if (!props.has(escapedName)) { - var prop = createUnionOrIntersectionProperty(unionType, escapedName); - if (prop) - props.set(escapedName, prop); - } - } - } - catch (e_225_1) { e_225 = { error: e_225_1 }; } - finally { - try { - if (_w && !_w.done && (_u = _v.return)) _u.call(_v); - } - finally { if (e_225) throw e_225.error; } - } - } - } - catch (e_224_1) { e_224 = { error: e_224_1 }; } - finally { - try { - if (types_3_1 && !types_3_1.done && (_t = types_3.return)) _t.call(types_3); - } - finally { if (e_224) throw e_224.error; } - } - return arrayFrom(props.values()); - } - function getConstraintOfType(type) { - return type.flags & 262144 /* TypeParameter */ ? getConstraintOfTypeParameter(type) : type.flags & 8388608 /* IndexedAccess */ ? getConstraintOfIndexedAccess(type) : type.flags & 16777216 /* Conditional */ ? getConstraintOfConditionalType(type) : getBaseConstraintOfType(type); - } - function getConstraintOfTypeParameter(typeParameter) { - return hasNonCircularBaseConstraint(typeParameter) ? getConstraintFromTypeParameter(typeParameter) : void 0; - } - function isConstTypeVariable(type, depth) { - if (depth === void 0) { depth = 0; } - var _a; - return depth < 5 && !!(type && (type.flags & 262144 /* TypeParameter */ && some((_a = type.symbol) == null ? void 0 : _a.declarations, function (d) { return hasSyntacticModifier(d, 2048 /* Const */); }) || type.flags & 1048576 /* Union */ && some(type.types, function (t) { return isConstTypeVariable(t, depth); }) || type.flags & 8388608 /* IndexedAccess */ && isConstTypeVariable(type.objectType, depth + 1) || type.flags & 16777216 /* Conditional */ && isConstTypeVariable(getConstraintOfConditionalType(type), depth + 1) || type.flags & 33554432 /* Substitution */ && isConstTypeVariable(type.baseType, depth) || isGenericTupleType(type) && findIndex(getElementTypes(type), function (t, i) { return !!(type.target.elementFlags[i] & 8 /* Variadic */) && isConstTypeVariable(t, depth); }) >= 0)); - } - function getConstraintOfIndexedAccess(type) { - return hasNonCircularBaseConstraint(type) ? getConstraintFromIndexedAccess(type) : void 0; - } - function getSimplifiedTypeOrConstraint(type) { - var simplified = getSimplifiedType(type, - /*writing*/ - false); - return simplified !== type ? simplified : getConstraintOfType(type); - } - function getConstraintFromIndexedAccess(type) { - if (isMappedTypeGenericIndexedAccess(type) || isGenericMappedType(type.objectType)) { - return substituteIndexedMappedType(type.objectType, type.indexType); - } - var indexConstraint = getSimplifiedTypeOrConstraint(type.indexType); - if (indexConstraint && indexConstraint !== type.indexType) { - var indexedAccess = getIndexedAccessTypeOrUndefined(type.objectType, indexConstraint, type.accessFlags); - if (indexedAccess) { - return indexedAccess; - } - } - var objectConstraint = getSimplifiedTypeOrConstraint(type.objectType); - if (objectConstraint && objectConstraint !== type.objectType) { - return getIndexedAccessTypeOrUndefined(objectConstraint, type.indexType, type.accessFlags); - } - return void 0; - } - function getDefaultConstraintOfConditionalType(type) { - if (!type.resolvedDefaultConstraint) { - var trueConstraint = getInferredTrueTypeFromConditionalType(type); - var falseConstraint = getFalseTypeFromConditionalType(type); - type.resolvedDefaultConstraint = isTypeAny(trueConstraint) ? falseConstraint : isTypeAny(falseConstraint) ? trueConstraint : getUnionType([trueConstraint, falseConstraint]); - } - return type.resolvedDefaultConstraint; - } - function getConstraintOfDistributiveConditionalType(type) { - if (type.resolvedConstraintOfDistributive !== void 0) { - return type.resolvedConstraintOfDistributive || void 0; - } - if (type.root.isDistributive && type.restrictiveInstantiation !== type) { - var simplified = getSimplifiedType(type.checkType, - /*writing*/ - false); - var constraint = simplified === type.checkType ? getConstraintOfType(simplified) : simplified; - if (constraint && constraint !== type.checkType) { - var instantiated = getConditionalTypeInstantiation(type, prependTypeMapping(type.root.checkType, constraint, type.mapper)); - if (!(instantiated.flags & 131072 /* Never */)) { - type.resolvedConstraintOfDistributive = instantiated; - return instantiated; - } - } - } - type.resolvedConstraintOfDistributive = false; - return void 0; - } - function getConstraintFromConditionalType(type) { - return getConstraintOfDistributiveConditionalType(type) || getDefaultConstraintOfConditionalType(type); - } - function getConstraintOfConditionalType(type) { - return hasNonCircularBaseConstraint(type) ? getConstraintFromConditionalType(type) : void 0; - } - function getEffectiveConstraintOfIntersection(types, targetIsUnion) { - var e_226, _t, e_227, _u; - var constraints; - var hasDisjointDomainType = false; - try { - for (var types_4 = __values(types), types_4_1 = types_4.next(); !types_4_1.done; types_4_1 = types_4.next()) { - var t = types_4_1.value; - if (t.flags & 465829888 /* Instantiable */) { - var constraint = getConstraintOfType(t); - while (constraint && constraint.flags & (262144 /* TypeParameter */ | 4194304 /* Index */ | 16777216 /* Conditional */)) { - constraint = getConstraintOfType(constraint); - } - if (constraint) { - constraints = append(constraints, constraint); - if (targetIsUnion) { - constraints = append(constraints, t); - } - } - } - else if (t.flags & 469892092 /* DisjointDomains */ || isEmptyAnonymousObjectType(t)) { - hasDisjointDomainType = true; - } - } - } - catch (e_226_1) { e_226 = { error: e_226_1 }; } - finally { - try { - if (types_4_1 && !types_4_1.done && (_t = types_4.return)) _t.call(types_4); - } - finally { if (e_226) throw e_226.error; } - } - if (constraints && (targetIsUnion || hasDisjointDomainType)) { - if (hasDisjointDomainType) { - try { - for (var types_5 = __values(types), types_5_1 = types_5.next(); !types_5_1.done; types_5_1 = types_5.next()) { - var t = types_5_1.value; - if (t.flags & 469892092 /* DisjointDomains */ || isEmptyAnonymousObjectType(t)) { - constraints = append(constraints, t); - } - } - } - catch (e_227_1) { e_227 = { error: e_227_1 }; } - finally { - try { - if (types_5_1 && !types_5_1.done && (_u = types_5.return)) _u.call(types_5); - } - finally { if (e_227) throw e_227.error; } - } - } - return getNormalizedType(getIntersectionType(constraints), - /*writing*/ - false); - } - return void 0; - } - function getBaseConstraintOfType(type) { - if (type.flags & (58982400 /* InstantiableNonPrimitive */ | 3145728 /* UnionOrIntersection */ | 134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */) || isGenericTupleType(type)) { - var constraint = getResolvedBaseConstraint(type); - return constraint !== noConstraintType && constraint !== circularConstraintType ? constraint : void 0; - } - return type.flags & 4194304 /* Index */ ? keyofConstraintType : void 0; - } - function getBaseConstraintOrType(type) { - return getBaseConstraintOfType(type) || type; - } - function hasNonCircularBaseConstraint(type) { - return getResolvedBaseConstraint(type) !== circularConstraintType; - } - function getResolvedBaseConstraint(type) { - if (type.resolvedBaseConstraint) { - return type.resolvedBaseConstraint; - } - var stack = []; - return type.resolvedBaseConstraint = getImmediateBaseConstraint(type); - function getImmediateBaseConstraint(t) { - if (!t.immediateBaseConstraint) { - if (!pushTypeResolution(t, 4 /* ImmediateBaseConstraint */)) { - return circularConstraintType; - } - var result = void 0; - var identity2 = getRecursionIdentity(t); - if (stack.length < 10 || stack.length < 50 && !contains(stack, identity2)) { - stack.push(identity2); - result = computeBaseConstraint(getSimplifiedType(t, - /*writing*/ - false)); - stack.pop(); - } - if (!popTypeResolution()) { - if (t.flags & 262144 /* TypeParameter */) { - var errorNode = getConstraintDeclaration(t); - if (errorNode) { - var diagnostic = error2(errorNode, Diagnostics.Type_parameter_0_has_a_circular_constraint, typeToString(t)); - if (currentNode && !isNodeDescendantOf(errorNode, currentNode) && !isNodeDescendantOf(currentNode, errorNode)) { - addRelatedInfo(diagnostic, createDiagnosticForNode(currentNode, Diagnostics.Circularity_originates_in_type_at_this_location)); - } - } - } - result = circularConstraintType; - } - t.immediateBaseConstraint = result || noConstraintType; - } - return t.immediateBaseConstraint; - } - function getBaseConstraint(t) { - var c = getImmediateBaseConstraint(t); - return c !== noConstraintType && c !== circularConstraintType ? c : void 0; - } - function computeBaseConstraint(t) { - var e_228, _t; - if (t.flags & 262144 /* TypeParameter */) { - var constraint = getConstraintFromTypeParameter(t); - return t.isThisType || !constraint ? constraint : getBaseConstraint(constraint); - } - if (t.flags & 3145728 /* UnionOrIntersection */) { - var types = t.types; - var baseTypes = []; - var different = false; - try { - for (var types_6 = __values(types), types_6_1 = types_6.next(); !types_6_1.done; types_6_1 = types_6.next()) { - var type2 = types_6_1.value; - var baseType = getBaseConstraint(type2); - if (baseType) { - if (baseType !== type2) { - different = true; - } - baseTypes.push(baseType); - } - else { - different = true; - } - } - } - catch (e_228_1) { e_228 = { error: e_228_1 }; } - finally { - try { - if (types_6_1 && !types_6_1.done && (_t = types_6.return)) _t.call(types_6); - } - finally { if (e_228) throw e_228.error; } - } - if (!different) { - return t; - } - return t.flags & 1048576 /* Union */ && baseTypes.length === types.length ? getUnionType(baseTypes) : t.flags & 2097152 /* Intersection */ && baseTypes.length ? getIntersectionType(baseTypes) : void 0; - } - if (t.flags & 4194304 /* Index */) { - return keyofConstraintType; - } - if (t.flags & 134217728 /* TemplateLiteral */) { - var types = t.types; - var constraints = mapDefined(types, getBaseConstraint); - return constraints.length === types.length ? getTemplateLiteralType(t.texts, constraints) : stringType; - } - if (t.flags & 268435456 /* StringMapping */) { - var constraint = getBaseConstraint(t.type); - return constraint && constraint !== t.type ? getStringMappingType(t.symbol, constraint) : stringType; - } - if (t.flags & 8388608 /* IndexedAccess */) { - if (isMappedTypeGenericIndexedAccess(t)) { - return getBaseConstraint(substituteIndexedMappedType(t.objectType, t.indexType)); - } - var baseObjectType = getBaseConstraint(t.objectType); - var baseIndexType = getBaseConstraint(t.indexType); - var baseIndexedAccess = baseObjectType && baseIndexType && getIndexedAccessTypeOrUndefined(baseObjectType, baseIndexType, t.accessFlags); - return baseIndexedAccess && getBaseConstraint(baseIndexedAccess); - } - if (t.flags & 16777216 /* Conditional */) { - var constraint = getConstraintFromConditionalType(t); - return constraint && getBaseConstraint(constraint); - } - if (t.flags & 33554432 /* Substitution */) { - return getBaseConstraint(getSubstitutionIntersection(t)); - } - if (isGenericTupleType(t)) { - var newElements = map(getElementTypes(t), function (v, i) { - var constraint = v.flags & 262144 /* TypeParameter */ && t.target.elementFlags[i] & 8 /* Variadic */ && getBaseConstraint(v) || v; - return constraint !== v && everyType(constraint, function (c) { return isArrayOrTupleType(c) && !isGenericTupleType(c); }) ? constraint : v; - }); - return createTupleType(newElements, t.target.elementFlags, t.target.readonly, t.target.labeledElementDeclarations); - } - return t; - } - } - function getApparentTypeOfIntersectionType(type, thisArgument) { - return type.resolvedApparentType || (type.resolvedApparentType = getTypeWithThisArgument(type, thisArgument, - /*needApparentType*/ - true)); - } - function getResolvedTypeParameterDefault(typeParameter) { - if (!typeParameter.default) { - if (typeParameter.target) { - var targetDefault = getResolvedTypeParameterDefault(typeParameter.target); - typeParameter.default = targetDefault ? instantiateType(targetDefault, typeParameter.mapper) : noConstraintType; - } - else { - typeParameter.default = resolvingDefaultType; - var defaultDeclaration = typeParameter.symbol && forEach(typeParameter.symbol.declarations, function (decl) { return isTypeParameterDeclaration(decl) && decl.default; }); - var defaultType = defaultDeclaration ? getTypeFromTypeNode(defaultDeclaration) : noConstraintType; - if (typeParameter.default === resolvingDefaultType) { - typeParameter.default = defaultType; - } - } - } - else if (typeParameter.default === resolvingDefaultType) { - typeParameter.default = circularConstraintType; - } - return typeParameter.default; - } - function getDefaultFromTypeParameter(typeParameter) { - var defaultType = getResolvedTypeParameterDefault(typeParameter); - return defaultType !== noConstraintType && defaultType !== circularConstraintType ? defaultType : void 0; - } - function hasNonCircularTypeParameterDefault(typeParameter) { - return getResolvedTypeParameterDefault(typeParameter) !== circularConstraintType; - } - function hasTypeParameterDefault(typeParameter) { - return !!(typeParameter.symbol && forEach(typeParameter.symbol.declarations, function (decl) { return isTypeParameterDeclaration(decl) && decl.default; })); - } - function getApparentTypeOfMappedType(type) { - return type.resolvedApparentType || (type.resolvedApparentType = getResolvedApparentTypeOfMappedType(type)); - } - function getResolvedApparentTypeOfMappedType(type) { - var typeVariable = getHomomorphicTypeVariable(type); - if (typeVariable && !type.declaration.nameType) { - var constraint = getConstraintOfTypeParameter(typeVariable); - if (constraint && everyType(constraint, isArrayOrTupleType)) { - return instantiateType(type, prependTypeMapping(typeVariable, constraint, type.mapper)); - } - } - return type; - } - function isMappedTypeGenericIndexedAccess(type) { - var objectType; - return !!(type.flags & 8388608 /* IndexedAccess */ && getObjectFlags(objectType = type.objectType) & 32 /* Mapped */ && !isGenericMappedType(objectType) && isGenericIndexType(type.indexType) && !(getMappedTypeModifiers(objectType) & 8 /* ExcludeOptional */) && !objectType.declaration.nameType); - } - function getApparentType(type) { - var t = type.flags & 465829888 /* Instantiable */ ? getBaseConstraintOfType(type) || unknownType : type; - var objectFlags = getObjectFlags(t); - return objectFlags & 32 /* Mapped */ ? getApparentTypeOfMappedType(t) : objectFlags & 4 /* Reference */ && t !== type ? getTypeWithThisArgument(t, type) : t.flags & 2097152 /* Intersection */ ? getApparentTypeOfIntersectionType(t, type) : t.flags & 402653316 /* StringLike */ ? globalStringType : t.flags & 296 /* NumberLike */ ? globalNumberType : t.flags & 2112 /* BigIntLike */ ? getGlobalBigIntType() : t.flags & 528 /* BooleanLike */ ? globalBooleanType : t.flags & 12288 /* ESSymbolLike */ ? getGlobalESSymbolType() : t.flags & 67108864 /* NonPrimitive */ ? emptyObjectType : t.flags & 4194304 /* Index */ ? keyofConstraintType : t.flags & 2 /* Unknown */ && !strictNullChecks ? emptyObjectType : t; - } - function getReducedApparentType(type) { - return getReducedType(getApparentType(getReducedType(type))); - } - function createUnionOrIntersectionProperty(containingType, name, skipObjectFunctionPropertyAugment) { - var e_229, _t, e_230, _u; - var _a, _b, _c; - var singleProp; - var propSet; - var indexTypes; - var isUnion = containingType.flags & 1048576 /* Union */; - var optionalFlag; - var syntheticFlag = 4 /* SyntheticMethod */; - var checkFlags = isUnion ? 0 : 8 /* Readonly */; - var mergedInstantiations = false; - try { - for (var _v = __values(containingType.types), _w = _v.next(); !_w.done; _w = _v.next()) { - var current = _w.value; - var type = getApparentType(current); - if (!(isErrorType(type) || type.flags & 131072 /* Never */)) { - var prop = getPropertyOfType(type, name, skipObjectFunctionPropertyAugment); - var modifiers = prop ? getDeclarationModifierFlagsFromSymbol(prop) : 0; - if (prop) { - if (prop.flags & 106500 /* ClassMember */) { - optionalFlag !== null && optionalFlag !== void 0 ? optionalFlag : (optionalFlag = isUnion ? 0 /* None */ : 16777216 /* Optional */); - if (isUnion) { - optionalFlag |= prop.flags & 16777216 /* Optional */; - } - else { - optionalFlag &= prop.flags; - } - } - if (!singleProp) { - singleProp = prop; - } - else if (prop !== singleProp) { - var isInstantiation = (getTargetSymbol(prop) || prop) === (getTargetSymbol(singleProp) || singleProp); - if (isInstantiation && compareProperties2(singleProp, prop, function (a, b) { return a === b ? -1 /* True */ : 0; } /* False */) === -1 /* True */) { - mergedInstantiations = !!singleProp.parent && !!length(getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(singleProp.parent)); - } - else { - if (!propSet) { - propSet = /* @__PURE__ */ new Map(); - propSet.set(getSymbolId(singleProp), singleProp); - } - var id = getSymbolId(prop); - if (!propSet.has(id)) { - propSet.set(id, prop); - } - } - } - if (isUnion && isReadonlySymbol(prop)) { - checkFlags |= 8 /* Readonly */; - } - else if (!isUnion && !isReadonlySymbol(prop)) { - checkFlags &= ~8 /* Readonly */; - } - checkFlags |= (!(modifiers & 24 /* NonPublicAccessibilityModifier */) ? 256 /* ContainsPublic */ : 0) | (modifiers & 16 /* Protected */ ? 512 /* ContainsProtected */ : 0) | (modifiers & 8 /* Private */ ? 1024 /* ContainsPrivate */ : 0) | (modifiers & 32 /* Static */ ? 2048 /* ContainsStatic */ : 0); - if (!isPrototypeProperty(prop)) { - syntheticFlag = 2 /* SyntheticProperty */; - } - } - else if (isUnion) { - var indexInfo = !isLateBoundName(name) && getApplicableIndexInfoForName(type, name); - if (indexInfo) { - checkFlags |= 32 /* WritePartial */ | (indexInfo.isReadonly ? 8 /* Readonly */ : 0); - indexTypes = append(indexTypes, isTupleType(type) ? getRestTypeOfTupleType(type) || undefinedType : indexInfo.type); - } - else if (isObjectLiteralType2(type) && !(getObjectFlags(type) & 2097152 /* ContainsSpread */)) { - checkFlags |= 32 /* WritePartial */; - indexTypes = append(indexTypes, undefinedType); - } - else { - checkFlags |= 16 /* ReadPartial */; - } - } - } - } - } - catch (e_229_1) { e_229 = { error: e_229_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_229) throw e_229.error; } - } - if (!singleProp || isUnion && (propSet || checkFlags & 48 /* Partial */) && checkFlags & (1024 /* ContainsPrivate */ | 512 /* ContainsProtected */) && !(propSet && getCommonDeclarationsOfSymbols(propSet.values()))) { - return void 0; - } - if (!propSet && !(checkFlags & 16 /* ReadPartial */) && !indexTypes) { - if (mergedInstantiations) { - var links = (_a = tryCast(singleProp, isTransientSymbol)) == null ? void 0 : _a.links; - var clone2 = createSymbolWithType(singleProp, links == null ? void 0 : links.type); - clone2.parent = (_c = (_b = singleProp.valueDeclaration) == null ? void 0 : _b.symbol) == null ? void 0 : _c.parent; - clone2.links.containingType = containingType; - clone2.links.mapper = links == null ? void 0 : links.mapper; - return clone2; - } - else { - return singleProp; - } - } - var props = propSet ? arrayFrom(propSet.values()) : [singleProp]; - var declarations; - var firstType; - var nameType; - var propTypes = []; - var writeTypes; - var firstValueDeclaration; - var hasNonUniformValueDeclaration = false; - try { - for (var props_1 = __values(props), props_1_1 = props_1.next(); !props_1_1.done; props_1_1 = props_1.next()) { - var prop = props_1_1.value; - if (!firstValueDeclaration) { - firstValueDeclaration = prop.valueDeclaration; - } - else if (prop.valueDeclaration && prop.valueDeclaration !== firstValueDeclaration) { - hasNonUniformValueDeclaration = true; - } - declarations = addRange(declarations, prop.declarations); - var type = getTypeOfSymbol(prop); - if (!firstType) { - firstType = type; - nameType = getSymbolLinks(prop).nameType; - } - var writeType = getWriteTypeOfSymbol(prop); - if (writeTypes || writeType !== type) { - writeTypes = append(!writeTypes ? propTypes.slice() : writeTypes, writeType); - } - else if (type !== firstType) { - checkFlags |= 64 /* HasNonUniformType */; - } - if (isLiteralType(type) || isPatternLiteralType(type)) { - checkFlags |= 128 /* HasLiteralType */; - } - if (type.flags & 131072 /* Never */ && type !== uniqueLiteralType) { - checkFlags |= 131072 /* HasNeverType */; - } - propTypes.push(type); - } - } - catch (e_230_1) { e_230 = { error: e_230_1 }; } - finally { - try { - if (props_1_1 && !props_1_1.done && (_u = props_1.return)) _u.call(props_1); - } - finally { if (e_230) throw e_230.error; } - } - addRange(propTypes, indexTypes); - var result = createSymbol(4 /* Property */ | (optionalFlag !== null && optionalFlag !== void 0 ? optionalFlag : 0), name, syntheticFlag | checkFlags); - result.links.containingType = containingType; - if (!hasNonUniformValueDeclaration && firstValueDeclaration) { - result.valueDeclaration = firstValueDeclaration; - if (firstValueDeclaration.symbol.parent) { - result.parent = firstValueDeclaration.symbol.parent; - } - } - result.declarations = declarations; - result.links.nameType = nameType; - if (propTypes.length > 2) { - result.links.checkFlags |= 65536 /* DeferredType */; - result.links.deferralParent = containingType; - result.links.deferralConstituents = propTypes; - result.links.deferralWriteConstituents = writeTypes; - } - else { - result.links.type = isUnion ? getUnionType(propTypes) : getIntersectionType(propTypes); - if (writeTypes) { - result.links.writeType = isUnion ? getUnionType(writeTypes) : getIntersectionType(writeTypes); - } - } - return result; - } - function getUnionOrIntersectionProperty(type, name, skipObjectFunctionPropertyAugment) { - var _a, _b; - var property = ((_a = type.propertyCacheWithoutObjectFunctionPropertyAugment) == null ? void 0 : _a.get(name)) || !skipObjectFunctionPropertyAugment ? (_b = type.propertyCache) == null ? void 0 : _b.get(name) : void 0; - if (!property) { - property = createUnionOrIntersectionProperty(type, name, skipObjectFunctionPropertyAugment); - if (property) { - var properties = skipObjectFunctionPropertyAugment ? type.propertyCacheWithoutObjectFunctionPropertyAugment || (type.propertyCacheWithoutObjectFunctionPropertyAugment = createSymbolTable()) : type.propertyCache || (type.propertyCache = createSymbolTable()); - properties.set(name, property); - } - } - return property; - } - function getCommonDeclarationsOfSymbols(symbols) { - var e_231, _t; - var commonDeclarations; - var _loop_16 = function (symbol) { - if (!symbol.declarations) { - return { value: void 0 }; - } - if (!commonDeclarations) { - commonDeclarations = new Set(symbol.declarations); - return "continue"; - } - commonDeclarations.forEach(function (declaration) { - if (!contains(symbol.declarations, declaration)) { - commonDeclarations.delete(declaration); - } - }); - if (commonDeclarations.size === 0) { - return { value: void 0 }; - } - }; - try { - for (var symbols_4 = __values(symbols), symbols_4_1 = symbols_4.next(); !symbols_4_1.done; symbols_4_1 = symbols_4.next()) { - var symbol = symbols_4_1.value; - var state_6 = _loop_16(symbol); - if (typeof state_6 === "object") - return state_6.value; - } - } - catch (e_231_1) { e_231 = { error: e_231_1 }; } - finally { - try { - if (symbols_4_1 && !symbols_4_1.done && (_t = symbols_4.return)) _t.call(symbols_4); - } - finally { if (e_231) throw e_231.error; } - } - return commonDeclarations; - } - function getPropertyOfUnionOrIntersectionType(type, name, skipObjectFunctionPropertyAugment) { - var property = getUnionOrIntersectionProperty(type, name, skipObjectFunctionPropertyAugment); - return property && !(getCheckFlags(property) & 16 /* ReadPartial */) ? property : void 0; - } - function getReducedType(type) { - if (type.flags & 1048576 /* Union */ && type.objectFlags & 16777216 /* ContainsIntersections */) { - return type.resolvedReducedType || (type.resolvedReducedType = getReducedUnionType(type)); - } - else if (type.flags & 2097152 /* Intersection */) { - if (!(type.objectFlags & 16777216 /* IsNeverIntersectionComputed */)) { - type.objectFlags |= 16777216 /* IsNeverIntersectionComputed */ | (some(getPropertiesOfUnionOrIntersectionType(type), isNeverReducedProperty) ? 33554432 /* IsNeverIntersection */ : 0); - } - return type.objectFlags & 33554432 /* IsNeverIntersection */ ? neverType : type; - } - return type; - } - function getReducedUnionType(unionType) { - var reducedTypes = sameMap(unionType.types, getReducedType); - if (reducedTypes === unionType.types) { - return unionType; - } - var reduced = getUnionType(reducedTypes); - if (reduced.flags & 1048576 /* Union */) { - reduced.resolvedReducedType = reduced; - } - return reduced; - } - function isNeverReducedProperty(prop) { - return isDiscriminantWithNeverType(prop) || isConflictingPrivateProperty(prop); - } - function isDiscriminantWithNeverType(prop) { - return !(prop.flags & 16777216 /* Optional */) && (getCheckFlags(prop) & (192 /* Discriminant */ | 131072 /* HasNeverType */)) === 192 /* Discriminant */ && !!(getTypeOfSymbol(prop).flags & 131072 /* Never */); - } - function isConflictingPrivateProperty(prop) { - return !prop.valueDeclaration && !!(getCheckFlags(prop) & 1024 /* ContainsPrivate */); - } - function isGenericReducibleType(type) { - return !!(type.flags & 1048576 /* Union */ && type.objectFlags & 16777216 /* ContainsIntersections */ && some(type.types, isGenericReducibleType) || type.flags & 2097152 /* Intersection */ && isReducibleIntersection(type)); - } - function isReducibleIntersection(type) { - var uniqueFilled = type.uniqueLiteralFilledInstantiation || (type.uniqueLiteralFilledInstantiation = instantiateType(type, uniqueLiteralMapper)); - return getReducedType(uniqueFilled) !== uniqueFilled; - } - function elaborateNeverIntersection(errorInfo, type) { - if (type.flags & 2097152 /* Intersection */ && getObjectFlags(type) & 33554432 /* IsNeverIntersection */) { - var neverProp = find(getPropertiesOfUnionOrIntersectionType(type), isDiscriminantWithNeverType); - if (neverProp) { - return chainDiagnosticMessages(errorInfo, Diagnostics.The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituents, typeToString(type, - /*enclosingDeclaration*/ - void 0, 536870912 /* NoTypeReduction */), symbolToString(neverProp)); - } - var privateProp = find(getPropertiesOfUnionOrIntersectionType(type), isConflictingPrivateProperty); - if (privateProp) { - return chainDiagnosticMessages(errorInfo, Diagnostics.The_intersection_0_was_reduced_to_never_because_property_1_exists_in_multiple_constituents_and_is_private_in_some, typeToString(type, - /*enclosingDeclaration*/ - void 0, 536870912 /* NoTypeReduction */), symbolToString(privateProp)); - } - } - return errorInfo; - } - function getPropertyOfType(type, name, skipObjectFunctionPropertyAugment, includeTypeOnlyMembers) { - type = getReducedApparentType(type); - if (type.flags & 524288 /* Object */) { - var resolved = resolveStructuredTypeMembers(type); - var symbol = resolved.members.get(name); - if (symbol && symbolIsValue(symbol, includeTypeOnlyMembers)) { - return symbol; - } - if (skipObjectFunctionPropertyAugment) - return void 0; - var functionType = resolved === anyFunctionType ? globalFunctionType : resolved.callSignatures.length ? globalCallableFunctionType : resolved.constructSignatures.length ? globalNewableFunctionType : void 0; - if (functionType) { - var symbol2 = getPropertyOfObjectType(functionType, name); - if (symbol2) { - return symbol2; - } - } - return getPropertyOfObjectType(globalObjectType, name); - } - if (type.flags & 3145728 /* UnionOrIntersection */) { - return getPropertyOfUnionOrIntersectionType(type, name, skipObjectFunctionPropertyAugment); - } - return void 0; - } - function getSignaturesOfStructuredType(type, kind) { - if (type.flags & 3670016 /* StructuredType */) { - var resolved = resolveStructuredTypeMembers(type); - return kind === 0 /* Call */ ? resolved.callSignatures : resolved.constructSignatures; - } - return emptyArray; - } - function getSignaturesOfType(type, kind) { - var result = getSignaturesOfStructuredType(getReducedApparentType(type), kind); - if (kind === 0 /* Call */ && !length(result) && type.flags & 1048576 /* Union */) { - if (type.arrayFallbackSignatures) { - return type.arrayFallbackSignatures; - } - var memberName_1; - if (everyType(type, function (t) { - var _a; - return !!((_a = t.symbol) == null ? void 0 : _a.parent) && isArrayOrTupleSymbol(t.symbol.parent) && (!memberName_1 ? (memberName_1 = t.symbol.escapedName, true) : memberName_1 === t.symbol.escapedName); - })) { - var arrayArg = mapType(type, function (t) { return getMappedType((isReadonlyArraySymbol(t.symbol.parent) ? globalReadonlyArrayType : globalArrayType).typeParameters[0], t.mapper); }); - var arrayType = createArrayType(arrayArg, someType(type, function (t) { return isReadonlyArraySymbol(t.symbol.parent); })); - return type.arrayFallbackSignatures = getSignaturesOfType(getTypeOfPropertyOfType(arrayType, memberName_1), kind); - } - type.arrayFallbackSignatures = result; - } - return result; - } - function isArrayOrTupleSymbol(symbol) { - if (!symbol || !globalArrayType.symbol || !globalReadonlyArrayType.symbol) { - return false; - } - return !!getSymbolIfSameReference(symbol, globalArrayType.symbol) || !!getSymbolIfSameReference(symbol, globalReadonlyArrayType.symbol); - } - function isReadonlyArraySymbol(symbol) { - if (!symbol || !globalReadonlyArrayType.symbol) { - return false; - } - return !!getSymbolIfSameReference(symbol, globalReadonlyArrayType.symbol); - } - function findIndexInfo(indexInfos, keyType) { - return find(indexInfos, function (info) { return info.keyType === keyType; }); - } - function findApplicableIndexInfo(indexInfos, keyType) { - var e_232, _t; - var stringIndexInfo; - var applicableInfo; - var applicableInfos; - try { - for (var indexInfos_1 = __values(indexInfos), indexInfos_1_1 = indexInfos_1.next(); !indexInfos_1_1.done; indexInfos_1_1 = indexInfos_1.next()) { - var info = indexInfos_1_1.value; - if (info.keyType === stringType) { - stringIndexInfo = info; - } - else if (isApplicableIndexType(keyType, info.keyType)) { - if (!applicableInfo) { - applicableInfo = info; - } - else { - (applicableInfos || (applicableInfos = [applicableInfo])).push(info); - } - } - } - } - catch (e_232_1) { e_232 = { error: e_232_1 }; } - finally { - try { - if (indexInfos_1_1 && !indexInfos_1_1.done && (_t = indexInfos_1.return)) _t.call(indexInfos_1); - } - finally { if (e_232) throw e_232.error; } - } - return applicableInfos ? createIndexInfo(unknownType, getIntersectionType(map(applicableInfos, function (info) { return info.type; })), reduceLeft(applicableInfos, function (isReadonly, info) { return isReadonly && info.isReadonly; }, - /*initial*/ - true)) : applicableInfo ? applicableInfo : stringIndexInfo && isApplicableIndexType(keyType, stringType) ? stringIndexInfo : void 0; - } - function isApplicableIndexType(source, target) { - return isTypeAssignableTo(source, target) || target === stringType && isTypeAssignableTo(source, numberType) || target === numberType && (source === numericStringType || !!(source.flags & 128 /* StringLiteral */) && isNumericLiteralName(source.value)); - } - function getIndexInfosOfStructuredType(type) { - if (type.flags & 3670016 /* StructuredType */) { - var resolved = resolveStructuredTypeMembers(type); - return resolved.indexInfos; - } - return emptyArray; - } - function getIndexInfosOfType(type) { - return getIndexInfosOfStructuredType(getReducedApparentType(type)); - } - function getIndexInfoOfType(type, keyType) { - return findIndexInfo(getIndexInfosOfType(type), keyType); - } - function getIndexTypeOfType(type, keyType) { - var _a; - return (_a = getIndexInfoOfType(type, keyType)) == null ? void 0 : _a.type; - } - function getApplicableIndexInfos(type, keyType) { - return getIndexInfosOfType(type).filter(function (info) { return isApplicableIndexType(keyType, info.keyType); }); - } - function getApplicableIndexInfo(type, keyType) { - return findApplicableIndexInfo(getIndexInfosOfType(type), keyType); - } - function getApplicableIndexInfoForName(type, name) { - return getApplicableIndexInfo(type, isLateBoundName(name) ? esSymbolType : getStringLiteralType(unescapeLeadingUnderscores(name))); - } - function getTypeParametersFromDeclaration(declaration) { - var e_233, _t; - var _a; - var result; - try { - for (var _u = __values(getEffectiveTypeParameterDeclarations(declaration)), _v = _u.next(); !_v.done; _v = _u.next()) { - var node = _v.value; - result = appendIfUnique(result, getDeclaredTypeOfTypeParameter(node.symbol)); - } - } - catch (e_233_1) { e_233 = { error: e_233_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_233) throw e_233.error; } - } - return (result == null ? void 0 : result.length) ? result : isFunctionDeclaration(declaration) ? (_a = getSignatureOfTypeTag(declaration)) == null ? void 0 : _a.typeParameters : void 0; - } - function symbolsToArray(symbols) { - var result = []; - symbols.forEach(function (symbol, id) { - if (!isReservedMemberName(id)) { - result.push(symbol); - } - }); - return result; - } - function tryFindAmbientModule(moduleName, withAugmentations) { - if (isExternalModuleNameRelative(moduleName)) { - return void 0; - } - var symbol = getSymbol2(globals, '"' + moduleName + '"', 512 /* ValueModule */); - return symbol && withAugmentations ? getMergedSymbol(symbol) : symbol; - } - function isOptionalParameter(node) { - if (hasQuestionToken(node) || isOptionalJSDocPropertyLikeTag(node) || isJSDocOptionalParameter(node)) { - return true; - } - if (node.initializer) { - var signature = getSignatureFromDeclaration(node.parent); - var parameterIndex = node.parent.parameters.indexOf(node); - Debug.assert(parameterIndex >= 0); - return parameterIndex >= getMinArgumentCount(signature, 1 /* StrongArityForUntypedJS */ | 2 /* VoidIsNonOptional */); - } - var iife = getImmediatelyInvokedFunctionExpression(node.parent); - if (iife) { - return !node.type && !node.dotDotDotToken && node.parent.parameters.indexOf(node) >= iife.arguments.length; - } - return false; - } - function isOptionalPropertyDeclaration(node) { - return isPropertyDeclaration(node) && !hasAccessorModifier(node) && node.questionToken; - } - function createTypePredicate(kind, parameterName, parameterIndex, type) { - return { kind: kind, parameterName: parameterName, parameterIndex: parameterIndex, type: type }; - } - function getMinTypeArgumentCount(typeParameters) { - var minTypeArgumentCount = 0; - if (typeParameters) { - for (var i = 0; i < typeParameters.length; i++) { - if (!hasTypeParameterDefault(typeParameters[i])) { - minTypeArgumentCount = i + 1; - } - } - } - return minTypeArgumentCount; - } - function fillMissingTypeArguments(typeArguments, typeParameters, minTypeArgumentCount, isJavaScriptImplicitAny) { - var numTypeParameters = length(typeParameters); - if (!numTypeParameters) { - return []; - } - var numTypeArguments = length(typeArguments); - if (isJavaScriptImplicitAny || numTypeArguments >= minTypeArgumentCount && numTypeArguments <= numTypeParameters) { - var result = typeArguments ? typeArguments.slice() : []; - for (var i = numTypeArguments; i < numTypeParameters; i++) { - result[i] = errorType; - } - var baseDefaultType = getDefaultTypeArgumentType(isJavaScriptImplicitAny); - for (var i = numTypeArguments; i < numTypeParameters; i++) { - var defaultType = getDefaultFromTypeParameter(typeParameters[i]); - if (isJavaScriptImplicitAny && defaultType && (isTypeIdenticalTo(defaultType, unknownType) || isTypeIdenticalTo(defaultType, emptyObjectType))) { - defaultType = anyType; - } - result[i] = defaultType ? instantiateType(defaultType, createTypeMapper(typeParameters, result)) : baseDefaultType; - } - result.length = typeParameters.length; - return result; - } - return typeArguments && typeArguments.slice(); - } - function getSignatureFromDeclaration(declaration) { - var links = getNodeLinks(declaration); - if (!links.resolvedSignature) { - var parameters = []; - var flags = 0 /* None */; - var minArgumentCount = 0; - var thisParameter = void 0; - var hasThisParameter2 = false; - var iife = getImmediatelyInvokedFunctionExpression(declaration); - var isJSConstructSignature = isJSDocConstructSignature(declaration); - var isUntypedSignatureInJSFile = !iife && isInJSFile(declaration) && isValueSignatureDeclaration(declaration) && !hasJSDocParameterTags(declaration) && !getJSDocType(declaration); - if (isUntypedSignatureInJSFile) { - flags |= 32 /* IsUntypedSignatureInJSFile */; - } - for (var i = isJSConstructSignature ? 1 : 0; i < declaration.parameters.length; i++) { - var param = declaration.parameters[i]; - var paramSymbol = param.symbol; - var type = isJSDocParameterTag(param) ? param.typeExpression && param.typeExpression.type : param.type; - if (paramSymbol && !!(paramSymbol.flags & 4 /* Property */) && !isBindingPattern(param.name)) { - var resolvedSymbol = resolveName(param, paramSymbol.escapedName, 111551 /* Value */, - /*nameNotFoundMessage*/ - void 0, - /*nameArg*/ - void 0, - /*isUse*/ - false); - paramSymbol = resolvedSymbol; - } - if (i === 0 && paramSymbol.escapedName === "this" /* This */) { - hasThisParameter2 = true; - thisParameter = param.symbol; - } - else { - parameters.push(paramSymbol); - } - if (type && type.kind === 201 /* LiteralType */) { - flags |= 2 /* HasLiteralTypes */; - } - var isOptionalParameter2 = isOptionalJSDocPropertyLikeTag(param) || param.initializer || param.questionToken || isRestParameter(param) || iife && parameters.length > iife.arguments.length && !type || isJSDocOptionalParameter(param); - if (!isOptionalParameter2) { - minArgumentCount = parameters.length; - } - } - if ((declaration.kind === 177 /* GetAccessor */ || declaration.kind === 178 /* SetAccessor */) && hasBindableName(declaration) && (!hasThisParameter2 || !thisParameter)) { - var otherKind = declaration.kind === 177 /* GetAccessor */ ? 178 /* SetAccessor */ : 177 /* GetAccessor */; - var other = getDeclarationOfKind(getSymbolOfDeclaration(declaration), otherKind); - if (other) { - thisParameter = getAnnotatedAccessorThisParameter(other); - } - } - if (isInJSFile(declaration)) { - var thisTag = getJSDocThisTag(declaration); - if (thisTag && thisTag.typeExpression) { - thisParameter = createSymbolWithType(createSymbol(1 /* FunctionScopedVariable */, "this" /* This */), getTypeFromTypeNode(thisTag.typeExpression)); - } - } - var hostDeclaration = isJSDocSignature(declaration) ? getEffectiveJSDocHost(declaration) : declaration; - var classType = hostDeclaration && isConstructorDeclaration(hostDeclaration) ? getDeclaredTypeOfClassOrInterface(getMergedSymbol(hostDeclaration.parent.symbol)) : void 0; - var typeParameters = classType ? classType.localTypeParameters : getTypeParametersFromDeclaration(declaration); - if (hasRestParameter(declaration) || isInJSFile(declaration) && maybeAddJsSyntheticRestParameter(declaration, parameters)) { - flags |= 1 /* HasRestParameter */; - } - if (isConstructorTypeNode(declaration) && hasSyntacticModifier(declaration, 256 /* Abstract */) || isConstructorDeclaration(declaration) && hasSyntacticModifier(declaration.parent, 256 /* Abstract */)) { - flags |= 4 /* Abstract */; - } - links.resolvedSignature = createSignature(declaration, typeParameters, thisParameter, parameters, - /*resolvedReturnType*/ - void 0, - /*resolvedTypePredicate*/ - void 0, minArgumentCount, flags); - } - return links.resolvedSignature; - } - function maybeAddJsSyntheticRestParameter(declaration, parameters) { - if (isJSDocSignature(declaration) || !containsArgumentsReference(declaration)) { - return false; - } - var lastParam = lastOrUndefined(declaration.parameters); - var lastParamTags = lastParam ? getJSDocParameterTags(lastParam) : getJSDocTags(declaration).filter(isJSDocParameterTag); - var lastParamVariadicType = firstDefined(lastParamTags, function (p) { return p.typeExpression && isJSDocVariadicType(p.typeExpression.type) ? p.typeExpression.type : void 0; }); - var syntheticArgsSymbol = createSymbol(3 /* Variable */, "args", 32768 /* RestParameter */); - if (lastParamVariadicType) { - syntheticArgsSymbol.links.type = createArrayType(getTypeFromTypeNode(lastParamVariadicType.type)); - } - else { - syntheticArgsSymbol.links.checkFlags |= 65536 /* DeferredType */; - syntheticArgsSymbol.links.deferralParent = neverType; - syntheticArgsSymbol.links.deferralConstituents = [anyArrayType]; - syntheticArgsSymbol.links.deferralWriteConstituents = [anyArrayType]; - } - if (lastParamVariadicType) { - parameters.pop(); - } - parameters.push(syntheticArgsSymbol); - return true; - } - function getSignatureOfTypeTag(node) { - if (!(isInJSFile(node) && isFunctionLikeDeclaration(node))) - return void 0; - var typeTag = getJSDocTypeTag(node); - return (typeTag == null ? void 0 : typeTag.typeExpression) && getSingleCallSignature(getTypeFromTypeNode(typeTag.typeExpression)); - } - function getParameterTypeOfTypeTag(func, parameter) { - var signature = getSignatureOfTypeTag(func); - if (!signature) - return void 0; - var pos = func.parameters.indexOf(parameter); - return parameter.dotDotDotToken ? getRestTypeAtPosition(signature, pos) : getTypeAtPosition(signature, pos); - } - function getReturnTypeOfTypeTag(node) { - var signature = getSignatureOfTypeTag(node); - return signature && getReturnTypeOfSignature(signature); - } - function containsArgumentsReference(declaration) { - var links = getNodeLinks(declaration); - if (links.containsArgumentsReference === void 0) { - if (links.flags & 512 /* CaptureArguments */) { - links.containsArgumentsReference = true; - } - else { - links.containsArgumentsReference = traverse(declaration.body); - } - } - return links.containsArgumentsReference; - function traverse(node) { - if (!node) - return false; - switch (node.kind) { - case 80 /* Identifier */: - return node.escapedText === argumentsSymbol.escapedName && getReferencedValueSymbol(node) === argumentsSymbol; - case 172 /* PropertyDeclaration */: - case 174 /* MethodDeclaration */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - return node.name.kind === 167 /* ComputedPropertyName */ && traverse(node.name); - case 211 /* PropertyAccessExpression */: - case 212 /* ElementAccessExpression */: - return traverse(node.expression); - case 303 /* PropertyAssignment */: - return traverse(node.initializer); - default: - return !nodeStartsNewLexicalEnvironment(node) && !isPartOfTypeNode(node) && !!forEachChild(node, traverse); - } - } - } - function getSignaturesOfSymbol(symbol) { - var e_234, _t, e_235, _u; - if (!symbol || !symbol.declarations) - return emptyArray; - var result = []; - for (var i = 0; i < symbol.declarations.length; i++) { - var decl = symbol.declarations[i]; - if (!isFunctionLike(decl)) - continue; - if (i > 0 && decl.body) { - var previous = symbol.declarations[i - 1]; - if (decl.parent === previous.parent && decl.kind === previous.kind && decl.pos === previous.end) { - continue; - } - } - if (isInJSFile(decl) && decl.jsDoc) { - var hasJSDocOverloads = false; - try { - for (var _v = (e_234 = void 0, __values(decl.jsDoc)), _w = _v.next(); !_w.done; _w = _v.next()) { - var node = _w.value; - if (node.tags) { - try { - for (var _x = (e_235 = void 0, __values(node.tags)), _y = _x.next(); !_y.done; _y = _x.next()) { - var tag = _y.value; - if (isJSDocOverloadTag(tag)) { - var jsDocSignature = tag.typeExpression; - if (jsDocSignature.type === void 0 && !isConstructorDeclaration(decl)) { - reportImplicitAny(jsDocSignature, anyType); - } - result.push(getSignatureFromDeclaration(jsDocSignature)); - hasJSDocOverloads = true; - } - } - } - catch (e_235_1) { e_235 = { error: e_235_1 }; } - finally { - try { - if (_y && !_y.done && (_u = _x.return)) _u.call(_x); - } - finally { if (e_235) throw e_235.error; } - } - } - } - } - catch (e_234_1) { e_234 = { error: e_234_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_234) throw e_234.error; } - } - if (hasJSDocOverloads) { - continue; - } - } - result.push(!isFunctionExpressionOrArrowFunction(decl) && !isObjectLiteralMethod(decl) && getSignatureOfTypeTag(decl) || getSignatureFromDeclaration(decl)); - } - return result; - } - function resolveExternalModuleTypeByLiteral(name) { - var moduleSym = resolveExternalModuleName(name, name); - if (moduleSym) { - var resolvedModuleSymbol = resolveExternalModuleSymbol(moduleSym); - if (resolvedModuleSymbol) { - return getTypeOfSymbol(resolvedModuleSymbol); - } - } - return anyType; - } - function getThisTypeOfSignature(signature) { - if (signature.thisParameter) { - return getTypeOfSymbol(signature.thisParameter); - } - } - function getTypePredicateOfSignature(signature) { - if (!signature.resolvedTypePredicate) { - if (signature.target) { - var targetTypePredicate = getTypePredicateOfSignature(signature.target); - signature.resolvedTypePredicate = targetTypePredicate ? instantiateTypePredicate(targetTypePredicate, signature.mapper) : noTypePredicate; - } - else if (signature.compositeSignatures) { - signature.resolvedTypePredicate = getUnionOrIntersectionTypePredicate(signature.compositeSignatures, signature.compositeKind) || noTypePredicate; - } - else { - var type = signature.declaration && getEffectiveReturnTypeNode(signature.declaration); - var jsdocPredicate = void 0; - if (!type) { - var jsdocSignature = getSignatureOfTypeTag(signature.declaration); - if (jsdocSignature && signature !== jsdocSignature) { - jsdocPredicate = getTypePredicateOfSignature(jsdocSignature); - } - } - signature.resolvedTypePredicate = type && isTypePredicateNode(type) ? createTypePredicateFromTypePredicateNode(type, signature) : jsdocPredicate || noTypePredicate; - } - Debug.assert(!!signature.resolvedTypePredicate); - } - return signature.resolvedTypePredicate === noTypePredicate ? void 0 : signature.resolvedTypePredicate; - } - function createTypePredicateFromTypePredicateNode(node, signature) { - var parameterName = node.parameterName; - var type = node.type && getTypeFromTypeNode(node.type); - return parameterName.kind === 197 /* ThisType */ ? createTypePredicate(node.assertsModifier ? 2 /* AssertsThis */ : 0 /* This */, - /*parameterName*/ - void 0, - /*parameterIndex*/ - void 0, type) : createTypePredicate(node.assertsModifier ? 3 /* AssertsIdentifier */ : 1 /* Identifier */, parameterName.escapedText, findIndex(signature.parameters, function (p) { return p.escapedName === parameterName.escapedText; }), type); - } - function getUnionOrIntersectionType(types, kind, unionReduction) { - return kind !== 2097152 /* Intersection */ ? getUnionType(types, unionReduction) : getIntersectionType(types); - } - function getReturnTypeOfSignature(signature) { - if (!signature.resolvedReturnType) { - if (!pushTypeResolution(signature, 3 /* ResolvedReturnType */)) { - return errorType; - } - var type = signature.target ? instantiateType(getReturnTypeOfSignature(signature.target), signature.mapper) : signature.compositeSignatures ? instantiateType(getUnionOrIntersectionType(map(signature.compositeSignatures, getReturnTypeOfSignature), signature.compositeKind, 2 /* Subtype */), signature.mapper) : getReturnTypeFromAnnotation(signature.declaration) || (nodeIsMissing(signature.declaration.body) ? anyType : getReturnTypeFromBody(signature.declaration)); - if (signature.flags & 8 /* IsInnerCallChain */) { - type = addOptionalTypeMarker(type); - } - else if (signature.flags & 16 /* IsOuterCallChain */) { - type = getOptionalType(type); - } - if (!popTypeResolution()) { - if (signature.declaration) { - var typeNode = getEffectiveReturnTypeNode(signature.declaration); - if (typeNode) { - error2(typeNode, Diagnostics.Return_type_annotation_circularly_references_itself); - } - else if (noImplicitAny) { - var declaration = signature.declaration; - var name_38 = getNameOfDeclaration(declaration); - if (name_38) { - error2(name_38, Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions, declarationNameToString(name_38)); - } - else { - error2(declaration, Diagnostics.Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions); - } - } - } - type = anyType; - } - signature.resolvedReturnType = type; - } - return signature.resolvedReturnType; - } - function getReturnTypeFromAnnotation(declaration) { - if (declaration.kind === 176 /* Constructor */) { - return getDeclaredTypeOfClassOrInterface(getMergedSymbol(declaration.parent.symbol)); - } - var typeNode = getEffectiveReturnTypeNode(declaration); - if (isJSDocSignature(declaration)) { - var root = getJSDocRoot(declaration); - if (root && isConstructorDeclaration(root.parent) && !typeNode) { - return getDeclaredTypeOfClassOrInterface(getMergedSymbol(root.parent.parent.symbol)); - } - } - if (isJSDocConstructSignature(declaration)) { - return getTypeFromTypeNode(declaration.parameters[0].type); - } - if (typeNode) { - return getTypeFromTypeNode(typeNode); - } - if (declaration.kind === 177 /* GetAccessor */ && hasBindableName(declaration)) { - var jsDocType = isInJSFile(declaration) && getTypeForDeclarationFromJSDocComment(declaration); - if (jsDocType) { - return jsDocType; - } - var setter = getDeclarationOfKind(getSymbolOfDeclaration(declaration), 178 /* SetAccessor */); - var setterType = getAnnotatedAccessorType(setter); - if (setterType) { - return setterType; - } - } - return getReturnTypeOfTypeTag(declaration); - } - function isResolvingReturnTypeOfSignature(signature) { - return signature.compositeSignatures && some(signature.compositeSignatures, isResolvingReturnTypeOfSignature) || !signature.resolvedReturnType && findResolutionCycleStartIndex(signature, 3 /* ResolvedReturnType */) >= 0; - } - function getRestTypeOfSignature(signature) { - return tryGetRestTypeOfSignature(signature) || anyType; - } - function tryGetRestTypeOfSignature(signature) { - if (signatureHasRestParameter(signature)) { - var sigRestType = getTypeOfSymbol(signature.parameters[signature.parameters.length - 1]); - var restType = isTupleType(sigRestType) ? getRestTypeOfTupleType(sigRestType) : sigRestType; - return restType && getIndexTypeOfType(restType, numberType); - } - return void 0; - } - function getSignatureInstantiation(signature, typeArguments, isJavascript, inferredTypeParameters) { - var instantiatedSignature = getSignatureInstantiationWithoutFillingInTypeArguments(signature, fillMissingTypeArguments(typeArguments, signature.typeParameters, getMinTypeArgumentCount(signature.typeParameters), isJavascript)); - if (inferredTypeParameters) { - var returnSignature = getSingleCallOrConstructSignature(getReturnTypeOfSignature(instantiatedSignature)); - if (returnSignature) { - var newReturnSignature = cloneSignature(returnSignature); - newReturnSignature.typeParameters = inferredTypeParameters; - var newInstantiatedSignature = cloneSignature(instantiatedSignature); - newInstantiatedSignature.resolvedReturnType = getOrCreateTypeFromSignature(newReturnSignature); - return newInstantiatedSignature; - } - } - return instantiatedSignature; - } - function getSignatureInstantiationWithoutFillingInTypeArguments(signature, typeArguments) { - var instantiations = signature.instantiations || (signature.instantiations = /* @__PURE__ */ new Map()); - var id = getTypeListId(typeArguments); - var instantiation = instantiations.get(id); - if (!instantiation) { - instantiations.set(id, instantiation = createSignatureInstantiation(signature, typeArguments)); - } - return instantiation; - } - function createSignatureInstantiation(signature, typeArguments) { - return instantiateSignature(signature, createSignatureTypeMapper(signature, typeArguments), - /*eraseTypeParameters*/ - true); - } - function createSignatureTypeMapper(signature, typeArguments) { - return createTypeMapper(signature.typeParameters, typeArguments); - } - function getErasedSignature(signature) { - return signature.typeParameters ? signature.erasedSignatureCache || (signature.erasedSignatureCache = createErasedSignature(signature)) : signature; - } - function createErasedSignature(signature) { - return instantiateSignature(signature, createTypeEraser(signature.typeParameters), - /*eraseTypeParameters*/ - true); - } - function getCanonicalSignature(signature) { - return signature.typeParameters ? signature.canonicalSignatureCache || (signature.canonicalSignatureCache = createCanonicalSignature(signature)) : signature; - } - function createCanonicalSignature(signature) { - return getSignatureInstantiation(signature, map(signature.typeParameters, function (tp) { return tp.target && !getConstraintOfTypeParameter(tp.target) ? tp.target : tp; }), isInJSFile(signature.declaration)); - } - function getBaseSignature(signature) { - var typeParameters = signature.typeParameters; - if (typeParameters) { - if (signature.baseSignatureCache) { - return signature.baseSignatureCache; - } - var typeEraser = createTypeEraser(typeParameters); - var baseConstraintMapper_1 = createTypeMapper(typeParameters, map(typeParameters, function (tp) { return getConstraintOfTypeParameter(tp) || unknownType; })); - var baseConstraints = map(typeParameters, function (tp) { return instantiateType(tp, baseConstraintMapper_1) || unknownType; }); - for (var i = 0; i < typeParameters.length - 1; i++) { - baseConstraints = instantiateTypes(baseConstraints, baseConstraintMapper_1); - } - baseConstraints = instantiateTypes(baseConstraints, typeEraser); - return signature.baseSignatureCache = instantiateSignature(signature, createTypeMapper(typeParameters, baseConstraints), - /*eraseTypeParameters*/ - true); - } - return signature; - } - function getOrCreateTypeFromSignature(signature) { - var _a; - if (!signature.isolatedSignatureType) { - var kind = (_a = signature.declaration) == null ? void 0 : _a.kind; - var isConstructor = kind === void 0 || kind === 176 /* Constructor */ || kind === 180 /* ConstructSignature */ || kind === 185 /* ConstructorType */; - var type = createObjectType(16 /* Anonymous */); - type.members = emptySymbols; - type.properties = emptyArray; - type.callSignatures = !isConstructor ? [signature] : emptyArray; - type.constructSignatures = isConstructor ? [signature] : emptyArray; - type.indexInfos = emptyArray; - signature.isolatedSignatureType = type; - } - return signature.isolatedSignatureType; - } - function getIndexSymbol(symbol) { - return symbol.members ? getIndexSymbolFromSymbolTable(symbol.members) : void 0; - } - function getIndexSymbolFromSymbolTable(symbolTable) { - return symbolTable.get("__index" /* Index */); - } - function createIndexInfo(keyType, type, isReadonly, declaration) { - return { keyType: keyType, type: type, isReadonly: isReadonly, declaration: declaration }; - } - function getIndexInfosOfSymbol(symbol) { - var indexSymbol = getIndexSymbol(symbol); - return indexSymbol ? getIndexInfosOfIndexSymbol(indexSymbol) : emptyArray; - } - function getIndexInfosOfIndexSymbol(indexSymbol) { - var e_236, _t; - if (indexSymbol.declarations) { - var indexInfos_2 = []; - var _loop_17 = function (declaration) { - if (declaration.parameters.length === 1) { - var parameter = declaration.parameters[0]; - if (parameter.type) { - forEachType(getTypeFromTypeNode(parameter.type), function (keyType) { - if (isValidIndexKeyType(keyType) && !findIndexInfo(indexInfos_2, keyType)) { - indexInfos_2.push(createIndexInfo(keyType, declaration.type ? getTypeFromTypeNode(declaration.type) : anyType, hasEffectiveModifier(declaration, 64 /* Readonly */), declaration)); - } - }); - } - } - }; - try { - for (var _u = __values(indexSymbol.declarations), _v = _u.next(); !_v.done; _v = _u.next()) { - var declaration = _v.value; - _loop_17(declaration); - } - } - catch (e_236_1) { e_236 = { error: e_236_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_236) throw e_236.error; } - } - return indexInfos_2; - } - return emptyArray; - } - function isValidIndexKeyType(type) { - return !!(type.flags & (4 /* String */ | 8 /* Number */ | 4096 /* ESSymbol */)) || isPatternLiteralType(type) || !!(type.flags & 2097152 /* Intersection */) && !isGenericType(type) && some(type.types, isValidIndexKeyType); - } - function getConstraintDeclaration(type) { - return mapDefined(filter(type.symbol && type.symbol.declarations, isTypeParameterDeclaration), getEffectiveConstraintOfTypeParameter)[0]; - } - function getInferredTypeParameterConstraint(typeParameter, omitTypeReferences) { - var e_237, _t; - var _a; - var inferences; - if ((_a = typeParameter.symbol) == null ? void 0 : _a.declarations) { - var _loop_18 = function (declaration) { - if (declaration.parent.kind === 195 /* InferType */) { - var _w = __read(walkUpParenthesizedTypesAndGetParentAndChild(declaration.parent.parent), 2), _x = _w[0], childTypeParameter = _x === void 0 ? declaration.parent : _x, grandParent = _w[1]; - if (grandParent.kind === 183 /* TypeReference */ && !omitTypeReferences) { - var typeReference_1 = grandParent; - var typeParameters_1 = getTypeParametersForTypeReferenceOrImport(typeReference_1); - if (typeParameters_1) { - var index = typeReference_1.typeArguments.indexOf(childTypeParameter); - if (index < typeParameters_1.length) { - var declaredConstraint = getConstraintOfTypeParameter(typeParameters_1[index]); - if (declaredConstraint) { - var mapper = makeDeferredTypeMapper(typeParameters_1, typeParameters_1.map(function (_, index2) { return function () { - return getEffectiveTypeArgumentAtIndex(typeReference_1, typeParameters_1, index2); - }; })); - var constraint = instantiateType(declaredConstraint, mapper); - if (constraint !== typeParameter) { - inferences = append(inferences, constraint); - } - } - } - } - } - else if (grandParent.kind === 169 /* Parameter */ && grandParent.dotDotDotToken || grandParent.kind === 191 /* RestType */ || grandParent.kind === 202 /* NamedTupleMember */ && grandParent.dotDotDotToken) { - inferences = append(inferences, createArrayType(unknownType)); - } - else if (grandParent.kind === 204 /* TemplateLiteralTypeSpan */) { - inferences = append(inferences, stringType); - } - else if (grandParent.kind === 168 /* TypeParameter */ && grandParent.parent.kind === 200 /* MappedType */) { - inferences = append(inferences, keyofConstraintType); - } - else if (grandParent.kind === 200 /* MappedType */ && grandParent.type && skipParentheses(grandParent.type) === declaration.parent && grandParent.parent.kind === 194 /* ConditionalType */ && grandParent.parent.extendsType === grandParent && grandParent.parent.checkType.kind === 200 /* MappedType */ && grandParent.parent.checkType.type) { - var checkMappedType2 = grandParent.parent.checkType; - var nodeType = getTypeFromTypeNode(checkMappedType2.type); - inferences = append(inferences, instantiateType(nodeType, makeUnaryTypeMapper(getDeclaredTypeOfTypeParameter(getSymbolOfDeclaration(checkMappedType2.typeParameter)), checkMappedType2.typeParameter.constraint ? getTypeFromTypeNode(checkMappedType2.typeParameter.constraint) : keyofConstraintType))); - } - } - }; - try { - for (var _u = __values(typeParameter.symbol.declarations), _v = _u.next(); !_v.done; _v = _u.next()) { - var declaration = _v.value; - _loop_18(declaration); - } - } - catch (e_237_1) { e_237 = { error: e_237_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_237) throw e_237.error; } - } - } - return inferences && getIntersectionType(inferences); - } - function getConstraintFromTypeParameter(typeParameter) { - if (!typeParameter.constraint) { - if (typeParameter.target) { - var targetConstraint = getConstraintOfTypeParameter(typeParameter.target); - typeParameter.constraint = targetConstraint ? instantiateType(targetConstraint, typeParameter.mapper) : noConstraintType; - } - else { - var constraintDeclaration = getConstraintDeclaration(typeParameter); - if (!constraintDeclaration) { - typeParameter.constraint = getInferredTypeParameterConstraint(typeParameter) || noConstraintType; - } - else { - var type = getTypeFromTypeNode(constraintDeclaration); - if (type.flags & 1 /* Any */ && !isErrorType(type)) { - type = constraintDeclaration.parent.parent.kind === 200 /* MappedType */ ? keyofConstraintType : unknownType; - } - typeParameter.constraint = type; - } - } - } - return typeParameter.constraint === noConstraintType ? void 0 : typeParameter.constraint; - } - function getParentSymbolOfTypeParameter(typeParameter) { - var tp = getDeclarationOfKind(typeParameter.symbol, 168 /* TypeParameter */); - var host2 = isJSDocTemplateTag(tp.parent) ? getEffectiveContainerForJSDocTemplateTag(tp.parent) : tp.parent; - return host2 && getSymbolOfNode(host2); - } - function getTypeListId(types) { - var result = ""; - if (types) { - var length2 = types.length; - var i = 0; - while (i < length2) { - var startId = types[i].id; - var count = 1; - while (i + count < length2 && types[i + count].id === startId + count) { - count++; - } - if (result.length) { - result += ","; - } - result += startId; - if (count > 1) { - result += ":" + count; - } - i += count; - } - } - return result; - } - function getAliasId(aliasSymbol, aliasTypeArguments) { - return aliasSymbol ? "@".concat(getSymbolId(aliasSymbol)) + (aliasTypeArguments ? ":".concat(getTypeListId(aliasTypeArguments)) : "") : ""; - } - function getPropagatingFlagsOfTypes(types, excludeKinds) { - var e_238, _t; - var result = 0; - try { - for (var types_7 = __values(types), types_7_1 = types_7.next(); !types_7_1.done; types_7_1 = types_7.next()) { - var type = types_7_1.value; - if (excludeKinds === void 0 || !(type.flags & excludeKinds)) { - result |= getObjectFlags(type); - } - } - } - catch (e_238_1) { e_238 = { error: e_238_1 }; } - finally { - try { - if (types_7_1 && !types_7_1.done && (_t = types_7.return)) _t.call(types_7); - } - finally { if (e_238) throw e_238.error; } - } - return result & 458752 /* PropagatingFlags */; - } - function tryCreateTypeReference(target, typeArguments) { - if (some(typeArguments) && target === emptyGenericType) { - return unknownType; - } - return createTypeReference(target, typeArguments); - } - function createTypeReference(target, typeArguments) { - var id = getTypeListId(typeArguments); - var type = target.instantiations.get(id); - if (!type) { - type = createObjectType(4 /* Reference */, target.symbol); - target.instantiations.set(id, type); - type.objectFlags |= typeArguments ? getPropagatingFlagsOfTypes(typeArguments) : 0; - type.target = target; - type.resolvedTypeArguments = typeArguments; - } - return type; - } - function cloneTypeReference(source) { - var type = createTypeWithSymbol(source.flags, source.symbol); - type.objectFlags = source.objectFlags; - type.target = source.target; - type.resolvedTypeArguments = source.resolvedTypeArguments; - return type; - } - function createDeferredTypeReference(target, node, mapper, aliasSymbol, aliasTypeArguments) { - if (!aliasSymbol) { - aliasSymbol = getAliasSymbolForTypeNode(node); - var localAliasTypeArguments = getTypeArgumentsForAliasSymbol(aliasSymbol); - aliasTypeArguments = mapper ? instantiateTypes(localAliasTypeArguments, mapper) : localAliasTypeArguments; - } - var type = createObjectType(4 /* Reference */, target.symbol); - type.target = target; - type.node = node; - type.mapper = mapper; - type.aliasSymbol = aliasSymbol; - type.aliasTypeArguments = aliasTypeArguments; - return type; - } - function getTypeArguments(type) { - var _a, _b; - if (!type.resolvedTypeArguments) { - if (!pushTypeResolution(type, 6 /* ResolvedTypeArguments */)) { - return ((_a = type.target.localTypeParameters) == null ? void 0 : _a.map(function () { return errorType; })) || emptyArray; - } - var node = type.node; - var typeArguments = !node ? emptyArray : node.kind === 183 /* TypeReference */ ? concatenate(type.target.outerTypeParameters, getEffectiveTypeArguments2(node, type.target.localTypeParameters)) : node.kind === 188 /* ArrayType */ ? [getTypeFromTypeNode(node.elementType)] : map(node.elements, getTypeFromTypeNode); - if (popTypeResolution()) { - type.resolvedTypeArguments = type.mapper ? instantiateTypes(typeArguments, type.mapper) : typeArguments; - } - else { - type.resolvedTypeArguments = ((_b = type.target.localTypeParameters) == null ? void 0 : _b.map(function () { return errorType; })) || emptyArray; - error2(type.node || currentNode, type.target.symbol ? Diagnostics.Type_arguments_for_0_circularly_reference_themselves : Diagnostics.Tuple_type_arguments_circularly_reference_themselves, type.target.symbol && symbolToString(type.target.symbol)); - } - } - return type.resolvedTypeArguments; - } - function getTypeReferenceArity(type) { - return length(type.target.typeParameters); - } - function getTypeFromClassOrInterfaceReference(node, symbol) { - var type = getDeclaredTypeOfSymbol(getMergedSymbol(symbol)); - var typeParameters = type.localTypeParameters; - if (typeParameters) { - var numTypeArguments = length(node.typeArguments); - var minTypeArgumentCount = getMinTypeArgumentCount(typeParameters); - var isJs = isInJSFile(node); - var isJsImplicitAny = !noImplicitAny && isJs; - if (!isJsImplicitAny && (numTypeArguments < minTypeArgumentCount || numTypeArguments > typeParameters.length)) { - var missingAugmentsTag = isJs && isExpressionWithTypeArguments(node) && !isJSDocAugmentsTag(node.parent); - var diag2 = minTypeArgumentCount === typeParameters.length ? missingAugmentsTag ? Diagnostics.Expected_0_type_arguments_provide_these_with_an_extends_tag : Diagnostics.Generic_type_0_requires_1_type_argument_s : missingAugmentsTag ? Diagnostics.Expected_0_1_type_arguments_provide_these_with_an_extends_tag : Diagnostics.Generic_type_0_requires_between_1_and_2_type_arguments; - var typeStr = typeToString(type, - /*enclosingDeclaration*/ - void 0, 2 /* WriteArrayAsGenericType */); - error2(node, diag2, typeStr, minTypeArgumentCount, typeParameters.length); - if (!isJs) { - return errorType; - } - } - if (node.kind === 183 /* TypeReference */ && isDeferredTypeReferenceNode(node, length(node.typeArguments) !== typeParameters.length)) { - return createDeferredTypeReference(type, node, - /*mapper*/ - void 0); - } - var typeArguments = concatenate(type.outerTypeParameters, fillMissingTypeArguments(typeArgumentsFromTypeReferenceNode(node), typeParameters, minTypeArgumentCount, isJs)); - return createTypeReference(type, typeArguments); - } - return checkNoTypeArguments(node, symbol) ? type : errorType; - } - function getTypeAliasInstantiation(symbol, typeArguments, aliasSymbol, aliasTypeArguments) { - var type = getDeclaredTypeOfSymbol(symbol); - if (type === intrinsicMarkerType && intrinsicTypeKinds.has(symbol.escapedName) && typeArguments && typeArguments.length === 1) { - return getStringMappingType(symbol, typeArguments[0]); - } - var links = getSymbolLinks(symbol); - var typeParameters = links.typeParameters; - var id = getTypeListId(typeArguments) + getAliasId(aliasSymbol, aliasTypeArguments); - var instantiation = links.instantiations.get(id); - if (!instantiation) { - links.instantiations.set(id, instantiation = instantiateTypeWithAlias(type, createTypeMapper(typeParameters, fillMissingTypeArguments(typeArguments, typeParameters, getMinTypeArgumentCount(typeParameters), isInJSFile(symbol.valueDeclaration))), aliasSymbol, aliasTypeArguments)); - } - return instantiation; - } - function getTypeFromTypeAliasReference(node, symbol) { - if (getCheckFlags(symbol) & 1048576 /* Unresolved */) { - var typeArguments = typeArgumentsFromTypeReferenceNode(node); - var id = getAliasId(symbol, typeArguments); - var errorType2 = errorTypes.get(id); - if (!errorType2) { - errorType2 = createIntrinsicType(1 /* Any */, "error"); - errorType2.aliasSymbol = symbol; - errorType2.aliasTypeArguments = typeArguments; - errorTypes.set(id, errorType2); - } - return errorType2; - } - var type = getDeclaredTypeOfSymbol(symbol); - var typeParameters = getSymbolLinks(symbol).typeParameters; - if (typeParameters) { - var numTypeArguments = length(node.typeArguments); - var minTypeArgumentCount = getMinTypeArgumentCount(typeParameters); - if (numTypeArguments < minTypeArgumentCount || numTypeArguments > typeParameters.length) { - error2(node, minTypeArgumentCount === typeParameters.length ? Diagnostics.Generic_type_0_requires_1_type_argument_s : Diagnostics.Generic_type_0_requires_between_1_and_2_type_arguments, symbolToString(symbol), minTypeArgumentCount, typeParameters.length); - return errorType; - } - var aliasSymbol = getAliasSymbolForTypeNode(node); - var newAliasSymbol = aliasSymbol && (isLocalTypeAlias(symbol) || !isLocalTypeAlias(aliasSymbol)) ? aliasSymbol : void 0; - var aliasTypeArguments = void 0; - if (newAliasSymbol) { - aliasTypeArguments = getTypeArgumentsForAliasSymbol(newAliasSymbol); - } - else if (isTypeReferenceType(node)) { - var aliasSymbol2 = resolveTypeReferenceName(node, 2097152 /* Alias */, - /*ignoreErrors*/ - true); - if (aliasSymbol2 && aliasSymbol2 !== unknownSymbol) { - var resolved = resolveAlias(aliasSymbol2); - if (resolved && resolved.flags & 524288 /* TypeAlias */) { - newAliasSymbol = resolved; - aliasTypeArguments = typeArgumentsFromTypeReferenceNode(node) || (typeParameters ? [] : void 0); - } - } - } - return getTypeAliasInstantiation(symbol, typeArgumentsFromTypeReferenceNode(node), newAliasSymbol, aliasTypeArguments); - } - return checkNoTypeArguments(node, symbol) ? type : errorType; - } - function isLocalTypeAlias(symbol) { - var _a; - var declaration = (_a = symbol.declarations) == null ? void 0 : _a.find(isTypeAlias); - return !!(declaration && getContainingFunction(declaration)); - } - function getTypeReferenceName(node) { - switch (node.kind) { - case 183 /* TypeReference */: - return node.typeName; - case 233 /* ExpressionWithTypeArguments */: - var expr = node.expression; - if (isEntityNameExpression(expr)) { - return expr; - } - } - return void 0; - } - function getSymbolPath(symbol) { - return symbol.parent ? "".concat(getSymbolPath(symbol.parent), ".").concat(symbol.escapedName) : symbol.escapedName; - } - function getUnresolvedSymbolForEntityName(name) { - var identifier = name.kind === 166 /* QualifiedName */ ? name.right : name.kind === 211 /* PropertyAccessExpression */ ? name.name : name; - var text = identifier.escapedText; - if (text) { - var parentSymbol = name.kind === 166 /* QualifiedName */ ? getUnresolvedSymbolForEntityName(name.left) : name.kind === 211 /* PropertyAccessExpression */ ? getUnresolvedSymbolForEntityName(name.expression) : void 0; - var path = parentSymbol ? "".concat(getSymbolPath(parentSymbol), ".").concat(text) : text; - var result = unresolvedSymbols.get(path); - if (!result) { - unresolvedSymbols.set(path, result = createSymbol(524288 /* TypeAlias */, text, 1048576 /* Unresolved */)); - result.parent = parentSymbol; - result.links.declaredType = unresolvedType; - } - return result; - } - return unknownSymbol; - } - function resolveTypeReferenceName(typeReference, meaning, ignoreErrors) { - var name = getTypeReferenceName(typeReference); - if (!name) { - return unknownSymbol; - } - var symbol = resolveEntityName(name, meaning, ignoreErrors); - return symbol && symbol !== unknownSymbol ? symbol : ignoreErrors ? unknownSymbol : getUnresolvedSymbolForEntityName(name); - } - function getTypeReferenceType(node, symbol) { - if (symbol === unknownSymbol) { - return errorType; - } - symbol = getExpandoSymbol(symbol) || symbol; - if (symbol.flags & (32 /* Class */ | 64 /* Interface */)) { - return getTypeFromClassOrInterfaceReference(node, symbol); - } - if (symbol.flags & 524288 /* TypeAlias */) { - return getTypeFromTypeAliasReference(node, symbol); - } - var res = tryGetDeclaredTypeOfSymbol(symbol); - if (res) { - return checkNoTypeArguments(node, symbol) ? getRegularTypeOfLiteralType(res) : errorType; - } - if (symbol.flags & 111551 /* Value */ && isJSDocTypeReference(node)) { - var jsdocType = getTypeFromJSDocValueReference(node, symbol); - if (jsdocType) { - return jsdocType; - } - else { - resolveTypeReferenceName(node, 788968 /* Type */); - return getTypeOfSymbol(symbol); - } - } - return errorType; - } - function getTypeFromJSDocValueReference(node, symbol) { - var links = getNodeLinks(node); - if (!links.resolvedJSDocType) { - var valueType = getTypeOfSymbol(symbol); - var typeType = valueType; - if (symbol.valueDeclaration) { - var isImportTypeWithQualifier = node.kind === 205 /* ImportType */ && node.qualifier; - if (valueType.symbol && valueType.symbol !== symbol && isImportTypeWithQualifier) { - typeType = getTypeReferenceType(node, valueType.symbol); - } - } - links.resolvedJSDocType = typeType; - } - return links.resolvedJSDocType; - } - function getSubstitutionType(baseType, constraint) { - if (constraint.flags & 3 /* AnyOrUnknown */ || constraint === baseType || baseType.flags & 1 /* Any */) { - return baseType; - } - var id = "".concat(getTypeId(baseType), ">").concat(getTypeId(constraint)); - var cached = substitutionTypes.get(id); - if (cached) { - return cached; - } - var result = createType(33554432 /* Substitution */); - result.baseType = baseType; - result.constraint = constraint; - substitutionTypes.set(id, result); - return result; - } - function getSubstitutionIntersection(substitutionType) { - return getIntersectionType([substitutionType.constraint, substitutionType.baseType]); - } - function isUnaryTupleTypeNode(node) { - return node.kind === 189 /* TupleType */ && node.elements.length === 1; - } - function getImpliedConstraint(type, checkNode, extendsNode) { - return isUnaryTupleTypeNode(checkNode) && isUnaryTupleTypeNode(extendsNode) ? getImpliedConstraint(type, checkNode.elements[0], extendsNode.elements[0]) : getActualTypeVariable(getTypeFromTypeNode(checkNode)) === getActualTypeVariable(type) ? getTypeFromTypeNode(extendsNode) : void 0; - } - function getConditionalFlowTypeOfType(type, node) { - var constraints; - var covariant = true; - while (node && !isStatement(node) && node.kind !== 327 /* JSDoc */) { - var parent2 = node.parent; - if (parent2.kind === 169 /* Parameter */) { - covariant = !covariant; - } - if ((covariant || type.flags & 8650752 /* TypeVariable */) && parent2.kind === 194 /* ConditionalType */ && node === parent2.trueType) { - var constraint = getImpliedConstraint(type, parent2.checkType, parent2.extendsType); - if (constraint) { - constraints = append(constraints, constraint); - } - } - else if (type.flags & 262144 /* TypeParameter */ && parent2.kind === 200 /* MappedType */ && node === parent2.type) { - var mappedType = getTypeFromTypeNode(parent2); - if (getTypeParameterFromMappedType(mappedType) === getActualTypeVariable(type)) { - var typeParameter = getHomomorphicTypeVariable(mappedType); - if (typeParameter) { - var constraint = getConstraintOfTypeParameter(typeParameter); - if (constraint && everyType(constraint, isArrayOrTupleType)) { - constraints = append(constraints, getUnionType([numberType, numericStringType])); - } - } - } - } - node = parent2; - } - return constraints ? getSubstitutionType(type, getIntersectionType(constraints)) : type; - } - function isJSDocTypeReference(node) { - return !!(node.flags & 16777216 /* JSDoc */) && (node.kind === 183 /* TypeReference */ || node.kind === 205 /* ImportType */); - } - function checkNoTypeArguments(node, symbol) { - if (node.typeArguments) { - error2(node, Diagnostics.Type_0_is_not_generic, symbol ? symbolToString(symbol) : node.typeName ? declarationNameToString(node.typeName) : anon); - return false; - } - return true; - } - function getIntendedTypeFromJSDocTypeReference(node) { - if (isIdentifier(node.typeName)) { - var typeArgs = node.typeArguments; - switch (node.typeName.escapedText) { - case "String": - checkNoTypeArguments(node); - return stringType; - case "Number": - checkNoTypeArguments(node); - return numberType; - case "Boolean": - checkNoTypeArguments(node); - return booleanType; - case "Void": - checkNoTypeArguments(node); - return voidType; - case "Undefined": - checkNoTypeArguments(node); - return undefinedType; - case "Null": - checkNoTypeArguments(node); - return nullType; - case "Function": - case "function": - checkNoTypeArguments(node); - return globalFunctionType; - case "array": - return (!typeArgs || !typeArgs.length) && !noImplicitAny ? anyArrayType : void 0; - case "promise": - return (!typeArgs || !typeArgs.length) && !noImplicitAny ? createPromiseType(anyType) : void 0; - case "Object": - if (typeArgs && typeArgs.length === 2) { - if (isJSDocIndexSignature(node)) { - var indexed = getTypeFromTypeNode(typeArgs[0]); - var target = getTypeFromTypeNode(typeArgs[1]); - var indexInfo = indexed === stringType || indexed === numberType ? [createIndexInfo(indexed, target, - /*isReadonly*/ - false)] : emptyArray; - return createAnonymousType( - /*symbol*/ - void 0, emptySymbols, emptyArray, emptyArray, indexInfo); - } - return anyType; - } - checkNoTypeArguments(node); - return !noImplicitAny ? anyType : void 0; - } - } - } - function getTypeFromJSDocNullableTypeNode(node) { - var type = getTypeFromTypeNode(node.type); - return strictNullChecks ? getNullableType(type, 65536 /* Null */) : type; - } - function getTypeFromTypeReference(node) { - var links = getNodeLinks(node); - if (!links.resolvedType) { - if (isConstTypeReference(node) && isAssertionExpression(node.parent)) { - links.resolvedSymbol = unknownSymbol; - return links.resolvedType = checkExpressionCached(node.parent.expression); - } - var symbol = void 0; - var type = void 0; - var meaning = 788968 /* Type */; - if (isJSDocTypeReference(node)) { - type = getIntendedTypeFromJSDocTypeReference(node); - if (!type) { - symbol = resolveTypeReferenceName(node, meaning, - /*ignoreErrors*/ - true); - if (symbol === unknownSymbol) { - symbol = resolveTypeReferenceName(node, meaning | 111551 /* Value */); - } - else { - resolveTypeReferenceName(node, meaning); - } - type = getTypeReferenceType(node, symbol); - } - } - if (!type) { - symbol = resolveTypeReferenceName(node, meaning); - type = getTypeReferenceType(node, symbol); - } - links.resolvedSymbol = symbol; - links.resolvedType = type; - } - return links.resolvedType; - } - function typeArgumentsFromTypeReferenceNode(node) { - return map(node.typeArguments, getTypeFromTypeNode); - } - function getTypeFromTypeQueryNode(node) { - var links = getNodeLinks(node); - if (!links.resolvedType) { - var type = checkExpressionWithTypeArguments(node); - links.resolvedType = getRegularTypeOfLiteralType(getWidenedType(type)); - } - return links.resolvedType; - } - function getTypeOfGlobalSymbol(symbol, arity) { - function getTypeDeclaration(symbol2) { - var e_239, _t; - var declarations = symbol2.declarations; - if (declarations) { - try { - for (var declarations_3 = __values(declarations), declarations_3_1 = declarations_3.next(); !declarations_3_1.done; declarations_3_1 = declarations_3.next()) { - var declaration = declarations_3_1.value; - switch (declaration.kind) { - case 263 /* ClassDeclaration */: - case 264 /* InterfaceDeclaration */: - case 266 /* EnumDeclaration */: - return declaration; - } - } - } - catch (e_239_1) { e_239 = { error: e_239_1 }; } - finally { - try { - if (declarations_3_1 && !declarations_3_1.done && (_t = declarations_3.return)) _t.call(declarations_3); - } - finally { if (e_239) throw e_239.error; } - } - } - } - if (!symbol) { - return arity ? emptyGenericType : emptyObjectType; - } - var type = getDeclaredTypeOfSymbol(symbol); - if (!(type.flags & 524288 /* Object */)) { - error2(getTypeDeclaration(symbol), Diagnostics.Global_type_0_must_be_a_class_or_interface_type, symbolName(symbol)); - return arity ? emptyGenericType : emptyObjectType; - } - if (length(type.typeParameters) !== arity) { - error2(getTypeDeclaration(symbol), Diagnostics.Global_type_0_must_have_1_type_parameter_s, symbolName(symbol), arity); - return arity ? emptyGenericType : emptyObjectType; - } - return type; - } - function getGlobalValueSymbol(name, reportErrors2) { - return getGlobalSymbol(name, 111551 /* Value */, reportErrors2 ? Diagnostics.Cannot_find_global_value_0 : void 0); - } - function getGlobalTypeSymbol(name, reportErrors2) { - return getGlobalSymbol(name, 788968 /* Type */, reportErrors2 ? Diagnostics.Cannot_find_global_type_0 : void 0); - } - function getGlobalTypeAliasSymbol(name, arity, reportErrors2) { - var symbol = getGlobalSymbol(name, 788968 /* Type */, reportErrors2 ? Diagnostics.Cannot_find_global_type_0 : void 0); - if (symbol) { - getDeclaredTypeOfSymbol(symbol); - if (length(getSymbolLinks(symbol).typeParameters) !== arity) { - var decl = symbol.declarations && find(symbol.declarations, isTypeAliasDeclaration); - error2(decl, Diagnostics.Global_type_0_must_have_1_type_parameter_s, symbolName(symbol), arity); - return void 0; - } - } - return symbol; - } - function getGlobalSymbol(name, meaning, diagnostic) { - return resolveName( - /*location*/ - void 0, name, meaning, diagnostic, name, - /*isUse*/ - false, - /*excludeGlobals*/ - false, - /*getSpellingSuggestions*/ - false); - } - function getGlobalType(name, arity, reportErrors2) { - var symbol = getGlobalTypeSymbol(name, reportErrors2); - return symbol || reportErrors2 ? getTypeOfGlobalSymbol(symbol, arity) : void 0; - } - function getGlobalTypedPropertyDescriptorType() { - return deferredGlobalTypedPropertyDescriptorType || (deferredGlobalTypedPropertyDescriptorType = getGlobalType("TypedPropertyDescriptor", - /*arity*/ - 1, - /*reportErrors*/ - true) || emptyGenericType); - } - function getGlobalTemplateStringsArrayType() { - return deferredGlobalTemplateStringsArrayType || (deferredGlobalTemplateStringsArrayType = getGlobalType("TemplateStringsArray", - /*arity*/ - 0, - /*reportErrors*/ - true) || emptyObjectType); - } - function getGlobalImportMetaType() { - return deferredGlobalImportMetaType || (deferredGlobalImportMetaType = getGlobalType("ImportMeta", - /*arity*/ - 0, - /*reportErrors*/ - true) || emptyObjectType); - } - function getGlobalImportMetaExpressionType() { - if (!deferredGlobalImportMetaExpressionType) { - var symbol = createSymbol(0 /* None */, "ImportMetaExpression"); - var importMetaType = getGlobalImportMetaType(); - var metaPropertySymbol = createSymbol(4 /* Property */, "meta", 8 /* Readonly */); - metaPropertySymbol.parent = symbol; - metaPropertySymbol.links.type = importMetaType; - var members = createSymbolTable([metaPropertySymbol]); - symbol.members = members; - deferredGlobalImportMetaExpressionType = createAnonymousType(symbol, members, emptyArray, emptyArray, emptyArray); - } - return deferredGlobalImportMetaExpressionType; - } - function getGlobalImportCallOptionsType(reportErrors2) { - return deferredGlobalImportCallOptionsType || (deferredGlobalImportCallOptionsType = getGlobalType("ImportCallOptions", - /*arity*/ - 0, reportErrors2)) || emptyObjectType; - } - function getGlobalESSymbolConstructorSymbol(reportErrors2) { - return deferredGlobalESSymbolConstructorSymbol || (deferredGlobalESSymbolConstructorSymbol = getGlobalValueSymbol("Symbol", reportErrors2)); - } - function getGlobalESSymbolConstructorTypeSymbol(reportErrors2) { - return deferredGlobalESSymbolConstructorTypeSymbol || (deferredGlobalESSymbolConstructorTypeSymbol = getGlobalTypeSymbol("SymbolConstructor", reportErrors2)); - } - function getGlobalESSymbolType() { - return deferredGlobalESSymbolType || (deferredGlobalESSymbolType = getGlobalType("Symbol", - /*arity*/ - 0, - /*reportErrors*/ - false)) || emptyObjectType; - } - function getGlobalPromiseType(reportErrors2) { - return deferredGlobalPromiseType || (deferredGlobalPromiseType = getGlobalType("Promise", - /*arity*/ - 1, reportErrors2)) || emptyGenericType; - } - function getGlobalPromiseLikeType(reportErrors2) { - return deferredGlobalPromiseLikeType || (deferredGlobalPromiseLikeType = getGlobalType("PromiseLike", - /*arity*/ - 1, reportErrors2)) || emptyGenericType; - } - function getGlobalPromiseConstructorSymbol(reportErrors2) { - return deferredGlobalPromiseConstructorSymbol || (deferredGlobalPromiseConstructorSymbol = getGlobalValueSymbol("Promise", reportErrors2)); - } - function getGlobalPromiseConstructorLikeType(reportErrors2) { - return deferredGlobalPromiseConstructorLikeType || (deferredGlobalPromiseConstructorLikeType = getGlobalType("PromiseConstructorLike", - /*arity*/ - 0, reportErrors2)) || emptyObjectType; - } - function getGlobalAsyncIterableType(reportErrors2) { - return deferredGlobalAsyncIterableType || (deferredGlobalAsyncIterableType = getGlobalType("AsyncIterable", - /*arity*/ - 1, reportErrors2)) || emptyGenericType; - } - function getGlobalAsyncIteratorType(reportErrors2) { - return deferredGlobalAsyncIteratorType || (deferredGlobalAsyncIteratorType = getGlobalType("AsyncIterator", - /*arity*/ - 3, reportErrors2)) || emptyGenericType; - } - function getGlobalAsyncIterableIteratorType(reportErrors2) { - return deferredGlobalAsyncIterableIteratorType || (deferredGlobalAsyncIterableIteratorType = getGlobalType("AsyncIterableIterator", - /*arity*/ - 1, reportErrors2)) || emptyGenericType; - } - function getGlobalAsyncGeneratorType(reportErrors2) { - return deferredGlobalAsyncGeneratorType || (deferredGlobalAsyncGeneratorType = getGlobalType("AsyncGenerator", - /*arity*/ - 3, reportErrors2)) || emptyGenericType; - } - function getGlobalIterableType(reportErrors2) { - return deferredGlobalIterableType || (deferredGlobalIterableType = getGlobalType("Iterable", - /*arity*/ - 1, reportErrors2)) || emptyGenericType; - } - function getGlobalIteratorType(reportErrors2) { - return deferredGlobalIteratorType || (deferredGlobalIteratorType = getGlobalType("Iterator", - /*arity*/ - 3, reportErrors2)) || emptyGenericType; - } - function getGlobalIterableIteratorType(reportErrors2) { - return deferredGlobalIterableIteratorType || (deferredGlobalIterableIteratorType = getGlobalType("IterableIterator", - /*arity*/ - 1, reportErrors2)) || emptyGenericType; - } - function getGlobalGeneratorType(reportErrors2) { - return deferredGlobalGeneratorType || (deferredGlobalGeneratorType = getGlobalType("Generator", - /*arity*/ - 3, reportErrors2)) || emptyGenericType; - } - function getGlobalIteratorYieldResultType(reportErrors2) { - return deferredGlobalIteratorYieldResultType || (deferredGlobalIteratorYieldResultType = getGlobalType("IteratorYieldResult", - /*arity*/ - 1, reportErrors2)) || emptyGenericType; - } - function getGlobalIteratorReturnResultType(reportErrors2) { - return deferredGlobalIteratorReturnResultType || (deferredGlobalIteratorReturnResultType = getGlobalType("IteratorReturnResult", - /*arity*/ - 1, reportErrors2)) || emptyGenericType; - } - function getGlobalDisposableType(reportErrors2) { - return deferredGlobalDisposableType || (deferredGlobalDisposableType = getGlobalType("Disposable", - /*arity*/ - 0, reportErrors2)) || emptyObjectType; - } - function getGlobalAsyncDisposableType(reportErrors2) { - return deferredGlobalAsyncDisposableType || (deferredGlobalAsyncDisposableType = getGlobalType("AsyncDisposable", - /*arity*/ - 0, reportErrors2)) || emptyObjectType; - } - function getGlobalTypeOrUndefined(name, arity) { - if (arity === void 0) { arity = 0; } - var symbol = getGlobalSymbol(name, 788968 /* Type */, - /*diagnostic*/ - void 0); - return symbol && getTypeOfGlobalSymbol(symbol, arity); - } - function getGlobalExtractSymbol() { - deferredGlobalExtractSymbol || (deferredGlobalExtractSymbol = getGlobalTypeAliasSymbol("Extract", - /*arity*/ - 2, - /*reportErrors*/ - true) || unknownSymbol); - return deferredGlobalExtractSymbol === unknownSymbol ? void 0 : deferredGlobalExtractSymbol; - } - function getGlobalOmitSymbol() { - deferredGlobalOmitSymbol || (deferredGlobalOmitSymbol = getGlobalTypeAliasSymbol("Omit", - /*arity*/ - 2, - /*reportErrors*/ - true) || unknownSymbol); - return deferredGlobalOmitSymbol === unknownSymbol ? void 0 : deferredGlobalOmitSymbol; - } - function getGlobalAwaitedSymbol(reportErrors2) { - deferredGlobalAwaitedSymbol || (deferredGlobalAwaitedSymbol = getGlobalTypeAliasSymbol("Awaited", - /*arity*/ - 1, reportErrors2) || (reportErrors2 ? unknownSymbol : void 0)); - return deferredGlobalAwaitedSymbol === unknownSymbol ? void 0 : deferredGlobalAwaitedSymbol; - } - function getGlobalBigIntType() { - return deferredGlobalBigIntType || (deferredGlobalBigIntType = getGlobalType("BigInt", - /*arity*/ - 0, - /*reportErrors*/ - false)) || emptyObjectType; - } - function getGlobalClassDecoratorContextType(reportErrors2) { - var _t; - return (_t = deferredGlobalClassDecoratorContextType !== null && deferredGlobalClassDecoratorContextType !== void 0 ? deferredGlobalClassDecoratorContextType : (deferredGlobalClassDecoratorContextType = getGlobalType("ClassDecoratorContext", - /*arity*/ - 1, reportErrors2))) !== null && _t !== void 0 ? _t : emptyGenericType; - } - function getGlobalClassMethodDecoratorContextType(reportErrors2) { - var _t; - return (_t = deferredGlobalClassMethodDecoratorContextType !== null && deferredGlobalClassMethodDecoratorContextType !== void 0 ? deferredGlobalClassMethodDecoratorContextType : (deferredGlobalClassMethodDecoratorContextType = getGlobalType("ClassMethodDecoratorContext", - /*arity*/ - 2, reportErrors2))) !== null && _t !== void 0 ? _t : emptyGenericType; - } - function getGlobalClassGetterDecoratorContextType(reportErrors2) { - var _t; - return (_t = deferredGlobalClassGetterDecoratorContextType !== null && deferredGlobalClassGetterDecoratorContextType !== void 0 ? deferredGlobalClassGetterDecoratorContextType : (deferredGlobalClassGetterDecoratorContextType = getGlobalType("ClassGetterDecoratorContext", - /*arity*/ - 2, reportErrors2))) !== null && _t !== void 0 ? _t : emptyGenericType; - } - function getGlobalClassSetterDecoratorContextType(reportErrors2) { - var _t; - return (_t = deferredGlobalClassSetterDecoratorContextType !== null && deferredGlobalClassSetterDecoratorContextType !== void 0 ? deferredGlobalClassSetterDecoratorContextType : (deferredGlobalClassSetterDecoratorContextType = getGlobalType("ClassSetterDecoratorContext", - /*arity*/ - 2, reportErrors2))) !== null && _t !== void 0 ? _t : emptyGenericType; - } - function getGlobalClassAccessorDecoratorContextType(reportErrors2) { - var _t; - return (_t = deferredGlobalClassAccessorDecoratorContextType !== null && deferredGlobalClassAccessorDecoratorContextType !== void 0 ? deferredGlobalClassAccessorDecoratorContextType : (deferredGlobalClassAccessorDecoratorContextType = getGlobalType("ClassAccessorDecoratorContext", - /*arity*/ - 2, reportErrors2))) !== null && _t !== void 0 ? _t : emptyGenericType; - } - function getGlobalClassAccessorDecoratorTargetType(reportErrors2) { - var _t; - return (_t = deferredGlobalClassAccessorDecoratorTargetType !== null && deferredGlobalClassAccessorDecoratorTargetType !== void 0 ? deferredGlobalClassAccessorDecoratorTargetType : (deferredGlobalClassAccessorDecoratorTargetType = getGlobalType("ClassAccessorDecoratorTarget", - /*arity*/ - 2, reportErrors2))) !== null && _t !== void 0 ? _t : emptyGenericType; - } - function getGlobalClassAccessorDecoratorResultType(reportErrors2) { - var _t; - return (_t = deferredGlobalClassAccessorDecoratorResultType !== null && deferredGlobalClassAccessorDecoratorResultType !== void 0 ? deferredGlobalClassAccessorDecoratorResultType : (deferredGlobalClassAccessorDecoratorResultType = getGlobalType("ClassAccessorDecoratorResult", - /*arity*/ - 2, reportErrors2))) !== null && _t !== void 0 ? _t : emptyGenericType; - } - function getGlobalClassFieldDecoratorContextType(reportErrors2) { - var _t; - return (_t = deferredGlobalClassFieldDecoratorContextType !== null && deferredGlobalClassFieldDecoratorContextType !== void 0 ? deferredGlobalClassFieldDecoratorContextType : (deferredGlobalClassFieldDecoratorContextType = getGlobalType("ClassFieldDecoratorContext", - /*arity*/ - 2, reportErrors2))) !== null && _t !== void 0 ? _t : emptyGenericType; - } - function getGlobalNaNSymbol() { - return deferredGlobalNaNSymbol || (deferredGlobalNaNSymbol = getGlobalValueSymbol("NaN", - /*reportErrors*/ - false)); - } - function getGlobalRecordSymbol() { - deferredGlobalRecordSymbol || (deferredGlobalRecordSymbol = getGlobalTypeAliasSymbol("Record", - /*arity*/ - 2, - /*reportErrors*/ - true) || unknownSymbol); - return deferredGlobalRecordSymbol === unknownSymbol ? void 0 : deferredGlobalRecordSymbol; - } - function createTypeFromGenericGlobalType(genericGlobalType, typeArguments) { - return genericGlobalType !== emptyGenericType ? createTypeReference(genericGlobalType, typeArguments) : emptyObjectType; - } - function createTypedPropertyDescriptorType(propertyType) { - return createTypeFromGenericGlobalType(getGlobalTypedPropertyDescriptorType(), [propertyType]); - } - function createIterableType(iteratedType) { - return createTypeFromGenericGlobalType(getGlobalIterableType( - /*reportErrors*/ - true), [iteratedType]); - } - function createArrayType(elementType, readonly) { - return createTypeFromGenericGlobalType(readonly ? globalReadonlyArrayType : globalArrayType, [elementType]); - } - function getTupleElementFlags(node) { - switch (node.kind) { - case 190 /* OptionalType */: - return 2 /* Optional */; - case 191 /* RestType */: - return getRestTypeElementFlags(node); - case 202 /* NamedTupleMember */: - return node.questionToken ? 2 /* Optional */ : node.dotDotDotToken ? getRestTypeElementFlags(node) : 1 /* Required */; - default: - return 1 /* Required */; - } - } - function getRestTypeElementFlags(node) { - return getArrayElementTypeNode(node.type) ? 4 /* Rest */ : 8 /* Variadic */; - } - function getArrayOrTupleTargetType(node) { - var readonly = isReadonlyTypeOperator(node.parent); - var elementType = getArrayElementTypeNode(node); - if (elementType) { - return readonly ? globalReadonlyArrayType : globalArrayType; - } - var elementFlags = map(node.elements, getTupleElementFlags); - return getTupleTargetType(elementFlags, readonly, map(node.elements, memberIfLabeledElementDeclaration)); - } - function memberIfLabeledElementDeclaration(member) { - return isNamedTupleMember(member) || isParameter(member) ? member : void 0; - } - function isDeferredTypeReferenceNode(node, hasDefaultTypeArguments) { - return !!getAliasSymbolForTypeNode(node) || isResolvedByTypeAlias(node) && (node.kind === 188 /* ArrayType */ ? mayResolveTypeAlias(node.elementType) : node.kind === 189 /* TupleType */ ? some(node.elements, mayResolveTypeAlias) : hasDefaultTypeArguments || some(node.typeArguments, mayResolveTypeAlias)); - } - function isResolvedByTypeAlias(node) { - var parent2 = node.parent; - switch (parent2.kind) { - case 196 /* ParenthesizedType */: - case 202 /* NamedTupleMember */: - case 183 /* TypeReference */: - case 192 /* UnionType */: - case 193 /* IntersectionType */: - case 199 /* IndexedAccessType */: - case 194 /* ConditionalType */: - case 198 /* TypeOperator */: - case 188 /* ArrayType */: - case 189 /* TupleType */: - return isResolvedByTypeAlias(parent2); - case 265 /* TypeAliasDeclaration */: - return true; - } - return false; - } - function mayResolveTypeAlias(node) { - switch (node.kind) { - case 183 /* TypeReference */: - return isJSDocTypeReference(node) || !!(resolveTypeReferenceName(node, 788968 /* Type */).flags & 524288 /* TypeAlias */); - case 186 /* TypeQuery */: - return true; - case 198 /* TypeOperator */: - return node.operator !== 158 /* UniqueKeyword */ && mayResolveTypeAlias(node.type); - case 196 /* ParenthesizedType */: - case 190 /* OptionalType */: - case 202 /* NamedTupleMember */: - case 323 /* JSDocOptionalType */: - case 321 /* JSDocNullableType */: - case 322 /* JSDocNonNullableType */: - case 316 /* JSDocTypeExpression */: - return mayResolveTypeAlias(node.type); - case 191 /* RestType */: - return node.type.kind !== 188 /* ArrayType */ || mayResolveTypeAlias(node.type.elementType); - case 192 /* UnionType */: - case 193 /* IntersectionType */: - return some(node.types, mayResolveTypeAlias); - case 199 /* IndexedAccessType */: - return mayResolveTypeAlias(node.objectType) || mayResolveTypeAlias(node.indexType); - case 194 /* ConditionalType */: - return mayResolveTypeAlias(node.checkType) || mayResolveTypeAlias(node.extendsType) || mayResolveTypeAlias(node.trueType) || mayResolveTypeAlias(node.falseType); - } - return false; - } - function getTypeFromArrayOrTupleTypeNode(node) { - var links = getNodeLinks(node); - if (!links.resolvedType) { - var target = getArrayOrTupleTargetType(node); - if (target === emptyGenericType) { - links.resolvedType = emptyObjectType; - } - else if (!(node.kind === 189 /* TupleType */ && some(node.elements, function (e) { return !!(getTupleElementFlags(e) & 8 /* Variadic */); })) && isDeferredTypeReferenceNode(node)) { - links.resolvedType = node.kind === 189 /* TupleType */ && node.elements.length === 0 ? target : createDeferredTypeReference(target, node, - /*mapper*/ - void 0); - } - else { - var elementTypes = node.kind === 188 /* ArrayType */ ? [getTypeFromTypeNode(node.elementType)] : map(node.elements, getTypeFromTypeNode); - links.resolvedType = createNormalizedTypeReference(target, elementTypes); - } - } - return links.resolvedType; - } - function isReadonlyTypeOperator(node) { - return isTypeOperatorNode(node) && node.operator === 148 /* ReadonlyKeyword */; - } - function createTupleType(elementTypes, elementFlags, readonly, namedMemberDeclarations) { - if (readonly === void 0) { readonly = false; } - if (namedMemberDeclarations === void 0) { namedMemberDeclarations = []; } - var tupleTarget = getTupleTargetType(elementFlags || map(elementTypes, function (_) { return 1; } /* Required */), readonly, namedMemberDeclarations); - return tupleTarget === emptyGenericType ? emptyObjectType : elementTypes.length ? createNormalizedTypeReference(tupleTarget, elementTypes) : tupleTarget; - } - function getTupleTargetType(elementFlags, readonly, namedMemberDeclarations) { - if (elementFlags.length === 1 && elementFlags[0] & 4 /* Rest */) { - return readonly ? globalReadonlyArrayType : globalArrayType; - } - var memberIds = mapDefined(namedMemberDeclarations, function (node) { return node ? getNodeId(node) : void 0; }); - var key = map(elementFlags, function (f) { return f & 1 /* Required */ ? "#" : f & 2 /* Optional */ ? "?" : f & 4 /* Rest */ ? "." : "*"; }).join() + (readonly ? "R" : "") + (memberIds.length ? "," + memberIds.join(",") : ""); - var type = tupleTypes.get(key); - if (!type) { - tupleTypes.set(key, type = createTupleTargetType(elementFlags, readonly, namedMemberDeclarations)); - } - return type; - } - function createTupleTargetType(elementFlags, readonly, namedMemberDeclarations) { - var arity = elementFlags.length; - var minLength = countWhere(elementFlags, function (f) { return !!(f & (1 /* Required */ | 8 /* Variadic */)); }); - var typeParameters; - var properties = []; - var combinedFlags = 0; - if (arity) { - typeParameters = new Array(arity); - for (var i = 0; i < arity; i++) { - var typeParameter = typeParameters[i] = createTypeParameter(); - var flags = elementFlags[i]; - combinedFlags |= flags; - if (!(combinedFlags & 12 /* Variable */)) { - var property = createSymbol(4 /* Property */ | (flags & 2 /* Optional */ ? 16777216 /* Optional */ : 0), "" + i, readonly ? 8 /* Readonly */ : 0); - property.links.tupleLabelDeclaration = namedMemberDeclarations == null ? void 0 : namedMemberDeclarations[i]; - property.links.type = typeParameter; - properties.push(property); - } - } - } - var fixedLength = properties.length; - var lengthSymbol = createSymbol(4 /* Property */, "length", readonly ? 8 /* Readonly */ : 0); - if (combinedFlags & 12 /* Variable */) { - lengthSymbol.links.type = numberType; - } - else { - var literalTypes = []; - for (var i = minLength; i <= arity; i++) - literalTypes.push(getNumberLiteralType(i)); - lengthSymbol.links.type = getUnionType(literalTypes); - } - properties.push(lengthSymbol); - var type = createObjectType(8 /* Tuple */ | 4 /* Reference */); - type.typeParameters = typeParameters; - type.outerTypeParameters = void 0; - type.localTypeParameters = typeParameters; - type.instantiations = /* @__PURE__ */ new Map(); - type.instantiations.set(getTypeListId(type.typeParameters), type); - type.target = type; - type.resolvedTypeArguments = type.typeParameters; - type.thisType = createTypeParameter(); - type.thisType.isThisType = true; - type.thisType.constraint = type; - type.declaredProperties = properties; - type.declaredCallSignatures = emptyArray; - type.declaredConstructSignatures = emptyArray; - type.declaredIndexInfos = emptyArray; - type.elementFlags = elementFlags; - type.minLength = minLength; - type.fixedLength = fixedLength; - type.hasRestElement = !!(combinedFlags & 12 /* Variable */); - type.combinedFlags = combinedFlags; - type.readonly = readonly; - type.labeledElementDeclarations = namedMemberDeclarations; - return type; - } - function createNormalizedTypeReference(target, typeArguments) { - return target.objectFlags & 8 /* Tuple */ ? createNormalizedTupleType(target, typeArguments) : createTypeReference(target, typeArguments); - } - function createNormalizedTupleType(target, elementTypes) { - var _a, _b, _c; - if (!(target.combinedFlags & 14 /* NonRequired */)) { - return createTypeReference(target, elementTypes); - } - if (target.combinedFlags & 8 /* Variadic */) { - var unionIndex_1 = findIndex(elementTypes, function (t, i) { return !!(target.elementFlags[i] & 8 /* Variadic */ && t.flags & (131072 /* Never */ | 1048576 /* Union */)); }); - if (unionIndex_1 >= 0) { - return checkCrossProductUnion(map(elementTypes, function (t, i) { return target.elementFlags[i] & 8 /* Variadic */ ? t : unknownType; })) ? mapType(elementTypes[unionIndex_1], function (t) { return createNormalizedTupleType(target, replaceElement(elementTypes, unionIndex_1, t)); }) : errorType; - } - } - var expandedTypes = []; - var expandedFlags = []; - var expandedDeclarations = []; - var lastRequiredIndex = -1; - var firstRestIndex = -1; - var lastOptionalOrRestIndex = -1; - var _loop_19 = function (i) { - var type = elementTypes[i]; - var flags = target.elementFlags[i]; - if (flags & 8 /* Variadic */) { - if (type.flags & 58982400 /* InstantiableNonPrimitive */ || isGenericMappedType(type)) { - addElement(type, 8 /* Variadic */, (_a = target.labeledElementDeclarations) == null ? void 0 : _a[i]); - } - else if (isTupleType(type)) { - var elements = getElementTypes(type); - if (elements.length + expandedTypes.length >= 1e4) { - error2(currentNode, isPartOfTypeNode(currentNode) ? Diagnostics.Type_produces_a_tuple_type_that_is_too_large_to_represent : Diagnostics.Expression_produces_a_tuple_type_that_is_too_large_to_represent); - return { value: errorType }; - } - forEach(elements, function (t, n) { - var _a2; - return addElement(t, type.target.elementFlags[n], (_a2 = type.target.labeledElementDeclarations) == null ? void 0 : _a2[n]); - }); - } - else { - addElement(isArrayLikeType(type) && getIndexTypeOfType(type, numberType) || errorType, 4 /* Rest */, (_b = target.labeledElementDeclarations) == null ? void 0 : _b[i]); - } - } - else { - addElement(type, flags, (_c = target.labeledElementDeclarations) == null ? void 0 : _c[i]); - } - }; - for (var i = 0; i < elementTypes.length; i++) { - var state_7 = _loop_19(i); - if (typeof state_7 === "object") - return state_7.value; - } - for (var i = 0; i < lastRequiredIndex; i++) { - if (expandedFlags[i] & 2 /* Optional */) - expandedFlags[i] = 1 /* Required */; - } - if (firstRestIndex >= 0 && firstRestIndex < lastOptionalOrRestIndex) { - expandedTypes[firstRestIndex] = getUnionType(sameMap(expandedTypes.slice(firstRestIndex, lastOptionalOrRestIndex + 1), function (t, i) { return expandedFlags[firstRestIndex + i] & 8 /* Variadic */ ? getIndexedAccessType(t, numberType) : t; })); - expandedTypes.splice(firstRestIndex + 1, lastOptionalOrRestIndex - firstRestIndex); - expandedFlags.splice(firstRestIndex + 1, lastOptionalOrRestIndex - firstRestIndex); - expandedDeclarations.splice(firstRestIndex + 1, lastOptionalOrRestIndex - firstRestIndex); - } - var tupleTarget = getTupleTargetType(expandedFlags, target.readonly, expandedDeclarations); - return tupleTarget === emptyGenericType ? emptyObjectType : expandedFlags.length ? createTypeReference(tupleTarget, expandedTypes) : tupleTarget; - function addElement(type, flags, declaration) { - if (flags & 1 /* Required */) { - lastRequiredIndex = expandedFlags.length; - } - if (flags & 4 /* Rest */ && firstRestIndex < 0) { - firstRestIndex = expandedFlags.length; - } - if (flags & (2 /* Optional */ | 4 /* Rest */)) { - lastOptionalOrRestIndex = expandedFlags.length; - } - expandedTypes.push(flags & 2 /* Optional */ ? addOptionality(type, - /*isProperty*/ - true) : type); - expandedFlags.push(flags); - expandedDeclarations.push(declaration); - } - } - function sliceTupleType(type, index, endSkipCount) { - if (endSkipCount === void 0) { endSkipCount = 0; } - var target = type.target; - var endIndex = getTypeReferenceArity(type) - endSkipCount; - return index > target.fixedLength ? getRestArrayTypeOfTupleType(type) || createTupleType(emptyArray) : createTupleType(getTypeArguments(type).slice(index, endIndex), target.elementFlags.slice(index, endIndex), - /*readonly*/ - false, target.labeledElementDeclarations && target.labeledElementDeclarations.slice(index, endIndex)); - } - function getKnownKeysOfTupleType(type) { - return getUnionType(append(arrayOf(type.target.fixedLength, function (i) { return getStringLiteralType("" + i); }), getIndexType(type.target.readonly ? globalReadonlyArrayType : globalArrayType))); - } - function getStartElementCount(type, flags) { - var index = findIndex(type.elementFlags, function (f) { return !(f & flags); }); - return index >= 0 ? index : type.elementFlags.length; - } - function getEndElementCount(type, flags) { - return type.elementFlags.length - findLastIndex(type.elementFlags, function (f) { return !(f & flags); }) - 1; - } - function getTotalFixedElementCount(type) { - return type.fixedLength + getEndElementCount(type, 3 /* Fixed */); - } - function getElementTypes(type) { - var typeArguments = getTypeArguments(type); - var arity = getTypeReferenceArity(type); - return typeArguments.length === arity ? typeArguments : typeArguments.slice(0, arity); - } - function getTypeFromOptionalTypeNode(node) { - return addOptionality(getTypeFromTypeNode(node.type), - /*isProperty*/ - true); - } - function getTypeId(type) { - return type.id; - } - function containsType(types, type) { - return binarySearch(types, type, getTypeId, compareValues) >= 0; - } - function insertType(types, type) { - var index = binarySearch(types, type, getTypeId, compareValues); - if (index < 0) { - types.splice(~index, 0, type); - return true; - } - return false; - } - function addTypeToUnion(typeSet, includes, type) { - var flags = type.flags; - if (!(flags & 131072 /* Never */)) { - includes |= flags & 473694207 /* IncludesMask */; - if (flags & 465829888 /* Instantiable */) - includes |= 33554432 /* IncludesInstantiable */; - if (type === wildcardType) - includes |= 8388608 /* IncludesWildcard */; - if (!strictNullChecks && flags & 98304 /* Nullable */) { - if (!(getObjectFlags(type) & 65536 /* ContainsWideningType */)) - includes |= 4194304 /* IncludesNonWideningType */; - } - else { - var len = typeSet.length; - var index = len && type.id > typeSet[len - 1].id ? ~len : binarySearch(typeSet, type, getTypeId, compareValues); - if (index < 0) { - typeSet.splice(~index, 0, type); - } - } - } - return includes; - } - function addTypesToUnion(typeSet, includes, types) { - var e_240, _t; - var lastType; - try { - for (var types_8 = __values(types), types_8_1 = types_8.next(); !types_8_1.done; types_8_1 = types_8.next()) { - var type = types_8_1.value; - if (type !== lastType) { - includes = type.flags & 1048576 /* Union */ ? addTypesToUnion(typeSet, includes | (isNamedUnionType(type) ? 1048576 /* Union */ : 0), type.types) : addTypeToUnion(typeSet, includes, type); - lastType = type; - } - } - } - catch (e_240_1) { e_240 = { error: e_240_1 }; } - finally { - try { - if (types_8_1 && !types_8_1.done && (_t = types_8.return)) _t.call(types_8); - } - finally { if (e_240) throw e_240.error; } - } - return includes; - } - function removeSubtypes(types, hasObjectTypes) { - var _a; - if (types.length < 2) { - return types; - } - var id = getTypeListId(types); - var match = subtypeReductionCache.get(id); - if (match) { - return match; - } - var hasEmptyObject = hasObjectTypes && some(types, function (t) { return !!(t.flags & 524288 /* Object */) && !isGenericMappedType(t) && isEmptyResolvedType(resolveStructuredTypeMembers(t)); }); - var len = types.length; - var i = len; - var count = 0; - var _loop_20 = function () { - var e_241, _t; - i--; - var source = types[i]; - if (hasEmptyObject || source.flags & 469499904 /* StructuredOrInstantiable */) { - if (source.flags & 262144 /* TypeParameter */ && getBaseConstraintOrType(source).flags & 1048576 /* Union */) { - if (isTypeRelatedTo(source, getUnionType(map(types, function (t) { return t === source ? neverType : t; })), strictSubtypeRelation)) { - orderedRemoveItemAt(types, i); - } - return "continue"; - } - var keyProperty = source.flags & (524288 /* Object */ | 2097152 /* Intersection */ | 58982400 /* InstantiableNonPrimitive */) ? find(getPropertiesOfType(source), function (p) { return isUnitType(getTypeOfSymbol(p)); }) : void 0; - var keyPropertyType = keyProperty && getRegularTypeOfLiteralType(getTypeOfSymbol(keyProperty)); - try { - for (var types_9 = (e_241 = void 0, __values(types)), types_9_1 = types_9.next(); !types_9_1.done; types_9_1 = types_9.next()) { - var target = types_9_1.value; - if (source !== target) { - if (count === 1e5) { - var estimatedCount = count / (len - i) * len; - if (estimatedCount > 1e6) { - (_a = tracing) == null ? void 0 : _a.instant(tracing.Phase.CheckTypes, "removeSubtypes_DepthLimit", { typeIds: types.map(function (t) { return t.id; }) }); - error2(currentNode, Diagnostics.Expression_produces_a_union_type_that_is_too_complex_to_represent); - return { value: void 0 }; - } - } - count++; - if (keyProperty && target.flags & (524288 /* Object */ | 2097152 /* Intersection */ | 58982400 /* InstantiableNonPrimitive */)) { - var t = getTypeOfPropertyOfType(target, keyProperty.escapedName); - if (t && isUnitType(t) && getRegularTypeOfLiteralType(t) !== keyPropertyType) { - continue; - } - } - if (isTypeRelatedTo(source, target, strictSubtypeRelation) && (!(getObjectFlags(getTargetType(source)) & 1 /* Class */) || !(getObjectFlags(getTargetType(target)) & 1 /* Class */) || isTypeDerivedFrom(source, target))) { - orderedRemoveItemAt(types, i); - break; - } - } - } - } - catch (e_241_1) { e_241 = { error: e_241_1 }; } - finally { - try { - if (types_9_1 && !types_9_1.done && (_t = types_9.return)) _t.call(types_9); - } - finally { if (e_241) throw e_241.error; } - } - } - }; - while (i > 0) { - var state_8 = _loop_20(); - if (typeof state_8 === "object") - return state_8.value; - } - subtypeReductionCache.set(id, types); - return types; - } - function removeRedundantLiteralTypes(types, includes, reduceVoidUndefined) { - var i = types.length; - while (i > 0) { - i--; - var t = types[i]; - var flags = t.flags; - var remove = flags & (128 /* StringLiteral */ | 134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */) && includes & 4 /* String */ || flags & 256 /* NumberLiteral */ && includes & 8 /* Number */ || flags & 2048 /* BigIntLiteral */ && includes & 64 /* BigInt */ || flags & 8192 /* UniqueESSymbol */ && includes & 4096 /* ESSymbol */ || reduceVoidUndefined && flags & 32768 /* Undefined */ && includes & 16384 /* Void */ || isFreshLiteralType(t) && containsType(types, t.regularType); - if (remove) { - orderedRemoveItemAt(types, i); - } - } - } - function removeStringLiteralsMatchedByTemplateLiterals(types) { - var templates = filter(types, function (t) { return !!(t.flags & 134217728 /* TemplateLiteral */) && isPatternLiteralType(t); }); - if (templates.length) { - var i = types.length; - var _loop_21 = function () { - i--; - var t = types[i]; - if (t.flags & 128 /* StringLiteral */ && some(templates, function (template) { return isTypeMatchedByTemplateLiteralType(t, template); })) { - orderedRemoveItemAt(types, i); - } - }; - while (i > 0) { - _loop_21(); - } - } - } - function isNamedUnionType(type) { - return !!(type.flags & 1048576 /* Union */ && (type.aliasSymbol || type.origin)); - } - function addNamedUnions(namedUnions, types) { - var e_242, _t; - try { - for (var types_10 = __values(types), types_10_1 = types_10.next(); !types_10_1.done; types_10_1 = types_10.next()) { - var t = types_10_1.value; - if (t.flags & 1048576 /* Union */) { - var origin_1 = t.origin; - if (t.aliasSymbol || origin_1 && !(origin_1.flags & 1048576 /* Union */)) { - pushIfUnique(namedUnions, t); - } - else if (origin_1 && origin_1.flags & 1048576 /* Union */) { - addNamedUnions(namedUnions, origin_1.types); - } - } - } - } - catch (e_242_1) { e_242 = { error: e_242_1 }; } - finally { - try { - if (types_10_1 && !types_10_1.done && (_t = types_10.return)) _t.call(types_10); - } - finally { if (e_242) throw e_242.error; } - } - } - function createOriginUnionOrIntersectionType(flags, types) { - var result = createOriginType(flags); - result.types = types; - return result; - } - function getUnionType(types, unionReduction /* Literal */, aliasSymbol, aliasTypeArguments, origin) { - if (unionReduction === void 0) { unionReduction = 1; } - if (types.length === 0) { - return neverType; - } - if (types.length === 1) { - return types[0]; - } - if (types.length === 2 && !origin && (types[0].flags & 1048576 /* Union */ || types[1].flags & 1048576 /* Union */)) { - var infix = unionReduction === 0 /* None */ ? "N" : unionReduction === 2 /* Subtype */ ? "S" : "L"; - var index = types[0].id < types[1].id ? 0 : 1; - var id = types[index].id + infix + types[1 - index].id + getAliasId(aliasSymbol, aliasTypeArguments); - var type = unionOfUnionTypes.get(id); - if (!type) { - type = getUnionTypeWorker(types, unionReduction, aliasSymbol, aliasTypeArguments, - /*origin*/ - void 0); - unionOfUnionTypes.set(id, type); - } - return type; - } - return getUnionTypeWorker(types, unionReduction, aliasSymbol, aliasTypeArguments, origin); - } - function getUnionTypeWorker(types, unionReduction, aliasSymbol, aliasTypeArguments, origin) { - var e_243, _t, e_244, _u; - var typeSet = []; - var includes = addTypesToUnion(typeSet, 0, types); - if (unionReduction !== 0 /* None */) { - if (includes & 3 /* AnyOrUnknown */) { - return includes & 1 /* Any */ ? includes & 8388608 /* IncludesWildcard */ ? wildcardType : anyType : includes & 65536 /* Null */ || containsType(typeSet, unknownType) ? unknownType : nonNullUnknownType; - } - if (includes & 32768 /* Undefined */) { - if (typeSet.length >= 2 && typeSet[0] === undefinedType && typeSet[1] === missingType) { - orderedRemoveItemAt(typeSet, 1); - } - } - if (includes & (32 /* Enum */ | 2944 /* Literal */ | 8192 /* UniqueESSymbol */ | 134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */) || includes & 16384 /* Void */ && includes & 32768 /* Undefined */) { - removeRedundantLiteralTypes(typeSet, includes, !!(unionReduction & 2 /* Subtype */)); - } - if (includes & 128 /* StringLiteral */ && includes & 134217728 /* TemplateLiteral */) { - removeStringLiteralsMatchedByTemplateLiterals(typeSet); - } - if (unionReduction === 2 /* Subtype */) { - typeSet = removeSubtypes(typeSet, !!(includes & 524288 /* Object */)); - if (!typeSet) { - return errorType; - } - } - if (typeSet.length === 0) { - return includes & 65536 /* Null */ ? includes & 4194304 /* IncludesNonWideningType */ ? nullType : nullWideningType : includes & 32768 /* Undefined */ ? includes & 4194304 /* IncludesNonWideningType */ ? undefinedType : undefinedWideningType : neverType; - } - } - if (!origin && includes & 1048576 /* Union */) { - var namedUnions = []; - addNamedUnions(namedUnions, types); - var reducedTypes = []; - var _loop_22 = function (t) { - if (!some(namedUnions, function (union) { return containsType(union.types, t); })) { - reducedTypes.push(t); - } - }; - try { - for (var typeSet_1 = __values(typeSet), typeSet_1_1 = typeSet_1.next(); !typeSet_1_1.done; typeSet_1_1 = typeSet_1.next()) { - var t = typeSet_1_1.value; - _loop_22(t); - } - } - catch (e_243_1) { e_243 = { error: e_243_1 }; } - finally { - try { - if (typeSet_1_1 && !typeSet_1_1.done && (_t = typeSet_1.return)) _t.call(typeSet_1); - } - finally { if (e_243) throw e_243.error; } - } - if (!aliasSymbol && namedUnions.length === 1 && reducedTypes.length === 0) { - return namedUnions[0]; - } - var namedTypesCount = reduceLeft(namedUnions, function (sum, union) { return sum + union.types.length; }, 0); - if (namedTypesCount + reducedTypes.length === typeSet.length) { - try { - for (var namedUnions_1 = __values(namedUnions), namedUnions_1_1 = namedUnions_1.next(); !namedUnions_1_1.done; namedUnions_1_1 = namedUnions_1.next()) { - var t = namedUnions_1_1.value; - insertType(reducedTypes, t); - } - } - catch (e_244_1) { e_244 = { error: e_244_1 }; } - finally { - try { - if (namedUnions_1_1 && !namedUnions_1_1.done && (_u = namedUnions_1.return)) _u.call(namedUnions_1); - } - finally { if (e_244) throw e_244.error; } - } - origin = createOriginUnionOrIntersectionType(1048576 /* Union */, reducedTypes); - } - } - var objectFlags = (includes & 36323331 /* NotPrimitiveUnion */ ? 0 : 32768 /* PrimitiveUnion */) | (includes & 2097152 /* Intersection */ ? 16777216 /* ContainsIntersections */ : 0); - return getUnionTypeFromSortedList(typeSet, objectFlags, aliasSymbol, aliasTypeArguments, origin); - } - function getUnionOrIntersectionTypePredicate(signatures, kind) { - var e_245, _t; - var last2; - var types = []; - try { - for (var signatures_6 = __values(signatures), signatures_6_1 = signatures_6.next(); !signatures_6_1.done; signatures_6_1 = signatures_6.next()) { - var sig = signatures_6_1.value; - var pred = getTypePredicateOfSignature(sig); - if (pred) { - if (pred.kind !== 0 /* This */ && pred.kind !== 1 /* Identifier */ || last2 && !typePredicateKindsMatch(last2, pred)) { - return void 0; - } - last2 = pred; - types.push(pred.type); - } - else { - var returnType = kind !== 2097152 /* Intersection */ ? getReturnTypeOfSignature(sig) : void 0; - if (returnType !== falseType && returnType !== regularFalseType) { - return void 0; - } - } - } - } - catch (e_245_1) { e_245 = { error: e_245_1 }; } - finally { - try { - if (signatures_6_1 && !signatures_6_1.done && (_t = signatures_6.return)) _t.call(signatures_6); - } - finally { if (e_245) throw e_245.error; } - } - if (!last2) { - return void 0; - } - var compositeType = getUnionOrIntersectionType(types, kind); - return createTypePredicate(last2.kind, last2.parameterName, last2.parameterIndex, compositeType); - } - function typePredicateKindsMatch(a, b) { - return a.kind === b.kind && a.parameterIndex === b.parameterIndex; - } - function getUnionTypeFromSortedList(types, precomputedObjectFlags, aliasSymbol, aliasTypeArguments, origin) { - if (types.length === 0) { - return neverType; - } - if (types.length === 1) { - return types[0]; - } - var typeKey = !origin ? getTypeListId(types) : origin.flags & 1048576 /* Union */ ? "|".concat(getTypeListId(origin.types)) : origin.flags & 2097152 /* Intersection */ ? "&".concat(getTypeListId(origin.types)) : "#".concat(origin.type.id, "|").concat(getTypeListId(types)); - var id = typeKey + getAliasId(aliasSymbol, aliasTypeArguments); - var type = unionTypes.get(id); - if (!type) { - type = createType(1048576 /* Union */); - type.objectFlags = precomputedObjectFlags | getPropagatingFlagsOfTypes(types, - /*excludeKinds*/ - 98304 /* Nullable */); - type.types = types; - type.origin = origin; - type.aliasSymbol = aliasSymbol; - type.aliasTypeArguments = aliasTypeArguments; - if (types.length === 2 && types[0].flags & 512 /* BooleanLiteral */ && types[1].flags & 512 /* BooleanLiteral */) { - type.flags |= 16 /* Boolean */; - type.intrinsicName = "boolean"; - } - unionTypes.set(id, type); - } - return type; - } - function getTypeFromUnionTypeNode(node) { - var links = getNodeLinks(node); - if (!links.resolvedType) { - var aliasSymbol = getAliasSymbolForTypeNode(node); - links.resolvedType = getUnionType(map(node.types, getTypeFromTypeNode), 1 /* Literal */, aliasSymbol, getTypeArgumentsForAliasSymbol(aliasSymbol)); - } - return links.resolvedType; - } - function addTypeToIntersection(typeSet, includes, type) { - var flags = type.flags; - if (flags & 2097152 /* Intersection */) { - return addTypesToIntersection(typeSet, includes, type.types); - } - if (isEmptyAnonymousObjectType(type)) { - if (!(includes & 16777216 /* IncludesEmptyObject */)) { - includes |= 16777216 /* IncludesEmptyObject */; - typeSet.set(type.id.toString(), type); - } - } - else { - if (flags & 3 /* AnyOrUnknown */) { - if (type === wildcardType) - includes |= 8388608 /* IncludesWildcard */; - } - else if (strictNullChecks || !(flags & 98304 /* Nullable */)) { - if (type === missingType) { - includes |= 262144 /* IncludesMissingType */; - type = undefinedType; - } - if (!typeSet.has(type.id.toString())) { - if (type.flags & 109472 /* Unit */ && includes & 109472 /* Unit */) { - includes |= 67108864 /* NonPrimitive */; - } - typeSet.set(type.id.toString(), type); - } - } - includes |= flags & 473694207 /* IncludesMask */; - } - return includes; - } - function addTypesToIntersection(typeSet, includes, types) { - var e_246, _t; - try { - for (var types_11 = __values(types), types_11_1 = types_11.next(); !types_11_1.done; types_11_1 = types_11.next()) { - var type = types_11_1.value; - includes = addTypeToIntersection(typeSet, includes, getRegularTypeOfLiteralType(type)); - } - } - catch (e_246_1) { e_246 = { error: e_246_1 }; } - finally { - try { - if (types_11_1 && !types_11_1.done && (_t = types_11.return)) _t.call(types_11); - } - finally { if (e_246) throw e_246.error; } - } - return includes; - } - function removeRedundantSupertypes(types, includes) { - var i = types.length; - while (i > 0) { - i--; - var t = types[i]; - var remove = t.flags & 4 /* String */ && includes & (128 /* StringLiteral */ | 134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */) || t.flags & 8 /* Number */ && includes & 256 /* NumberLiteral */ || t.flags & 64 /* BigInt */ && includes & 2048 /* BigIntLiteral */ || t.flags & 4096 /* ESSymbol */ && includes & 8192 /* UniqueESSymbol */ || t.flags & 16384 /* Void */ && includes & 32768 /* Undefined */ || isEmptyAnonymousObjectType(t) && includes & 470302716 /* DefinitelyNonNullable */; - if (remove) { - orderedRemoveItemAt(types, i); - } - } - } - function eachUnionContains(unionTypes2, type) { - var e_247, _t; - try { - for (var unionTypes2_1 = __values(unionTypes2), unionTypes2_1_1 = unionTypes2_1.next(); !unionTypes2_1_1.done; unionTypes2_1_1 = unionTypes2_1.next()) { - var u = unionTypes2_1_1.value; - if (!containsType(u.types, type)) { - var primitive = type.flags & 128 /* StringLiteral */ ? stringType : type.flags & (32 /* Enum */ | 256 /* NumberLiteral */) ? numberType : type.flags & 2048 /* BigIntLiteral */ ? bigintType : type.flags & 8192 /* UniqueESSymbol */ ? esSymbolType : void 0; - if (!primitive || !containsType(u.types, primitive)) { - return false; - } - } - } - } - catch (e_247_1) { e_247 = { error: e_247_1 }; } - finally { - try { - if (unionTypes2_1_1 && !unionTypes2_1_1.done && (_t = unionTypes2_1.return)) _t.call(unionTypes2_1); - } - finally { if (e_247) throw e_247.error; } - } - return true; - } - function extractRedundantTemplateLiterals(types) { - var e_248, _t; - var i = types.length; - var literals = filter(types, function (t) { return !!(t.flags & 128 /* StringLiteral */); }); - while (i > 0) { - i--; - var t = types[i]; - if (!(t.flags & 134217728 /* TemplateLiteral */)) - continue; - try { - for (var literals_1 = (e_248 = void 0, __values(literals)), literals_1_1 = literals_1.next(); !literals_1_1.done; literals_1_1 = literals_1.next()) { - var t2 = literals_1_1.value; - if (isTypeSubtypeOf(t2, t)) { - orderedRemoveItemAt(types, i); - break; - } - else if (isPatternLiteralType(t)) { - return true; - } - } - } - catch (e_248_1) { e_248 = { error: e_248_1 }; } - finally { - try { - if (literals_1_1 && !literals_1_1.done && (_t = literals_1.return)) _t.call(literals_1); - } - finally { if (e_248) throw e_248.error; } - } - } - return false; - } - function removeFromEach(types, flag) { - for (var i = 0; i < types.length; i++) { - types[i] = filterType(types[i], function (t) { return !(t.flags & flag); }); - } - } - function intersectUnionsOfPrimitiveTypes(types) { - var e_249, _t, e_250, _u; - var unionTypes2; - var index = findIndex(types, function (t) { return !!(getObjectFlags(t) & 32768 /* PrimitiveUnion */); }); - if (index < 0) { - return false; - } - var i = index + 1; - while (i < types.length) { - var t = types[i]; - if (getObjectFlags(t) & 32768 /* PrimitiveUnion */) { - (unionTypes2 || (unionTypes2 = [types[index]])).push(t); - orderedRemoveItemAt(types, i); - } - else { - i++; - } - } - if (!unionTypes2) { - return false; - } - var checked = []; - var result = []; - try { - for (var unionTypes2_2 = __values(unionTypes2), unionTypes2_2_1 = unionTypes2_2.next(); !unionTypes2_2_1.done; unionTypes2_2_1 = unionTypes2_2.next()) { - var u = unionTypes2_2_1.value; - try { - for (var _v = (e_250 = void 0, __values(u.types)), _w = _v.next(); !_w.done; _w = _v.next()) { - var t = _w.value; - if (insertType(checked, t)) { - if (eachUnionContains(unionTypes2, t)) { - insertType(result, t); - } - } - } - } - catch (e_250_1) { e_250 = { error: e_250_1 }; } - finally { - try { - if (_w && !_w.done && (_u = _v.return)) _u.call(_v); - } - finally { if (e_250) throw e_250.error; } - } - } - } - catch (e_249_1) { e_249 = { error: e_249_1 }; } - finally { - try { - if (unionTypes2_2_1 && !unionTypes2_2_1.done && (_t = unionTypes2_2.return)) _t.call(unionTypes2_2); - } - finally { if (e_249) throw e_249.error; } - } - types[index] = getUnionTypeFromSortedList(result, 32768 /* PrimitiveUnion */); - return true; - } - function createIntersectionType(types, aliasSymbol, aliasTypeArguments) { - var result = createType(2097152 /* Intersection */); - result.objectFlags = getPropagatingFlagsOfTypes(types, - /*excludeKinds*/ - 98304 /* Nullable */); - result.types = types; - result.aliasSymbol = aliasSymbol; - result.aliasTypeArguments = aliasTypeArguments; - return result; - } - function getIntersectionType(types, aliasSymbol, aliasTypeArguments, noSupertypeReduction) { - var typeMembershipMap = /* @__PURE__ */ new Map(); - var includes = addTypesToIntersection(typeMembershipMap, 0, types); - var typeSet = arrayFrom(typeMembershipMap.values()); - if (includes & 131072 /* Never */) { - return contains(typeSet, silentNeverType) ? silentNeverType : neverType; - } - if (strictNullChecks && includes & 98304 /* Nullable */ && includes & (524288 /* Object */ | 67108864 /* NonPrimitive */ | 16777216 /* IncludesEmptyObject */) || includes & 67108864 /* NonPrimitive */ && includes & (469892092 /* DisjointDomains */ & ~67108864 /* NonPrimitive */) || includes & 402653316 /* StringLike */ && includes & (469892092 /* DisjointDomains */ & ~402653316 /* StringLike */) || includes & 296 /* NumberLike */ && includes & (469892092 /* DisjointDomains */ & ~296 /* NumberLike */) || includes & 2112 /* BigIntLike */ && includes & (469892092 /* DisjointDomains */ & ~2112 /* BigIntLike */) || includes & 12288 /* ESSymbolLike */ && includes & (469892092 /* DisjointDomains */ & ~12288 /* ESSymbolLike */) || includes & 49152 /* VoidLike */ && includes & (469892092 /* DisjointDomains */ & ~49152 /* VoidLike */)) { - return neverType; - } - if (includes & 134217728 /* TemplateLiteral */ && includes & 128 /* StringLiteral */ && extractRedundantTemplateLiterals(typeSet)) { - return neverType; - } - if (includes & 1 /* Any */) { - return includes & 8388608 /* IncludesWildcard */ ? wildcardType : anyType; - } - if (!strictNullChecks && includes & 98304 /* Nullable */) { - return includes & 16777216 /* IncludesEmptyObject */ ? neverType : includes & 32768 /* Undefined */ ? undefinedType : nullType; - } - if (includes & 4 /* String */ && includes & (128 /* StringLiteral */ | 134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */) || includes & 8 /* Number */ && includes & 256 /* NumberLiteral */ || includes & 64 /* BigInt */ && includes & 2048 /* BigIntLiteral */ || includes & 4096 /* ESSymbol */ && includes & 8192 /* UniqueESSymbol */ || includes & 16384 /* Void */ && includes & 32768 /* Undefined */ || includes & 16777216 /* IncludesEmptyObject */ && includes & 470302716 /* DefinitelyNonNullable */) { - if (!noSupertypeReduction) - removeRedundantSupertypes(typeSet, includes); - } - if (includes & 262144 /* IncludesMissingType */) { - typeSet[typeSet.indexOf(undefinedType)] = missingType; - } - if (typeSet.length === 0) { - return unknownType; - } - if (typeSet.length === 1) { - return typeSet[0]; - } - var id = getTypeListId(typeSet) + getAliasId(aliasSymbol, aliasTypeArguments); - var result = intersectionTypes.get(id); - if (!result) { - if (includes & 1048576 /* Union */) { - if (intersectUnionsOfPrimitiveTypes(typeSet)) { - result = getIntersectionType(typeSet, aliasSymbol, aliasTypeArguments); - } - else if (every(typeSet, function (t) { return !!(t.flags & 1048576 /* Union */ && t.types[0].flags & 32768 /* Undefined */); })) { - var containedUndefinedType = some(typeSet, containsMissingType) ? missingType : undefinedType; - removeFromEach(typeSet, 32768 /* Undefined */); - result = getUnionType([getIntersectionType(typeSet), containedUndefinedType], 1 /* Literal */, aliasSymbol, aliasTypeArguments); - } - else if (every(typeSet, function (t) { return !!(t.flags & 1048576 /* Union */ && (t.types[0].flags & 65536 /* Null */ || t.types[1].flags & 65536 /* Null */)); })) { - removeFromEach(typeSet, 65536 /* Null */); - result = getUnionType([getIntersectionType(typeSet), nullType], 1 /* Literal */, aliasSymbol, aliasTypeArguments); - } - else { - if (!checkCrossProductUnion(typeSet)) { - return errorType; - } - var constituents = getCrossProductIntersections(typeSet); - var origin_2 = some(constituents, function (t) { return !!(t.flags & 2097152 /* Intersection */); }) && getConstituentCountOfTypes(constituents) > getConstituentCountOfTypes(typeSet) ? createOriginUnionOrIntersectionType(2097152 /* Intersection */, typeSet) : void 0; - result = getUnionType(constituents, 1 /* Literal */, aliasSymbol, aliasTypeArguments, origin_2); - } - } - else { - result = createIntersectionType(typeSet, aliasSymbol, aliasTypeArguments); - } - intersectionTypes.set(id, result); - } - return result; - } - function getCrossProductUnionSize(types) { - return reduceLeft(types, function (n, t) { return t.flags & 1048576 /* Union */ ? n * t.types.length : t.flags & 131072 /* Never */ ? 0 : n; }, 1); - } - function checkCrossProductUnion(types) { - var _a; - var size = getCrossProductUnionSize(types); - if (size >= 1e5) { - (_a = tracing) == null ? void 0 : _a.instant(tracing.Phase.CheckTypes, "checkCrossProductUnion_DepthLimit", { typeIds: types.map(function (t) { return t.id; }), size: size }); - error2(currentNode, Diagnostics.Expression_produces_a_union_type_that_is_too_complex_to_represent); - return false; - } - return true; - } - function getCrossProductIntersections(types) { - var count = getCrossProductUnionSize(types); - var intersections = []; - for (var i = 0; i < count; i++) { - var constituents = types.slice(); - var n = i; - for (var j = types.length - 1; j >= 0; j--) { - if (types[j].flags & 1048576 /* Union */) { - var sourceTypes = types[j].types; - var length2 = sourceTypes.length; - constituents[j] = sourceTypes[n % length2]; - n = Math.floor(n / length2); - } - } - var t = getIntersectionType(constituents); - if (!(t.flags & 131072 /* Never */)) - intersections.push(t); - } - return intersections; - } - function getConstituentCount(type) { - return !(type.flags & 3145728 /* UnionOrIntersection */) || type.aliasSymbol ? 1 : type.flags & 1048576 /* Union */ && type.origin ? getConstituentCount(type.origin) : getConstituentCountOfTypes(type.types); - } - function getConstituentCountOfTypes(types) { - return reduceLeft(types, function (n, t) { return n + getConstituentCount(t); }, 0); - } - function areIntersectedTypesAvoidingPrimitiveReduction(t1, t2) { - return !!(t1.flags & (4 /* String */ | 8 /* Number */ | 64 /* BigInt */)) && t2 === emptyTypeLiteralType; - } - function getTypeFromIntersectionTypeNode(node) { - var links = getNodeLinks(node); - if (!links.resolvedType) { - var aliasSymbol = getAliasSymbolForTypeNode(node); - var types = map(node.types, getTypeFromTypeNode); - var noSupertypeReduction = types.length === 2 && (areIntersectedTypesAvoidingPrimitiveReduction(types[0], types[1]) || areIntersectedTypesAvoidingPrimitiveReduction(types[1], types[0])); - links.resolvedType = getIntersectionType(types, aliasSymbol, getTypeArgumentsForAliasSymbol(aliasSymbol), noSupertypeReduction); - } - return links.resolvedType; - } - function createIndexType(type, indexFlags) { - var result = createType(4194304 /* Index */); - result.type = type; - result.indexFlags = indexFlags; - return result; - } - function createOriginIndexType(type) { - var result = createOriginType(4194304 /* Index */); - result.type = type; - return result; - } - function getIndexTypeForGenericType(type, indexFlags) { - return indexFlags & 1 /* StringsOnly */ ? type.resolvedStringIndexType || (type.resolvedStringIndexType = createIndexType(type, 1 /* StringsOnly */)) : type.resolvedIndexType || (type.resolvedIndexType = createIndexType(type, 0 /* None */)); - } - function getIndexTypeForMappedType(type, indexFlags) { - var typeParameter = getTypeParameterFromMappedType(type); - var constraintType = getConstraintTypeFromMappedType(type); - var nameType = getNameTypeFromMappedType(type.target || type); - if (!nameType && !(indexFlags & 2 /* NoIndexSignatures */)) { - return constraintType; - } - var keyTypes = []; - if (isMappedTypeWithKeyofConstraintDeclaration(type)) { - if (!isGenericIndexType(constraintType)) { - var modifiersType = getApparentType(getModifiersTypeFromMappedType(type)); - forEachMappedTypePropertyKeyTypeAndIndexSignatureKeyType(modifiersType, 8576 /* StringOrNumberLiteralOrUnique */, !!(indexFlags & 1 /* StringsOnly */), addMemberForKeyType); - } - else { - return getIndexTypeForGenericType(type, indexFlags); - } - } - else { - forEachType(getLowerBoundOfKeyType(constraintType), addMemberForKeyType); - } - if (isGenericIndexType(constraintType)) { - forEachType(constraintType, addMemberForKeyType); - } - var result = indexFlags & 2 /* NoIndexSignatures */ ? filterType(getUnionType(keyTypes), function (t) { return !(t.flags & (1 /* Any */ | 4 /* String */)); }) : getUnionType(keyTypes); - if (result.flags & 1048576 /* Union */ && constraintType.flags & 1048576 /* Union */ && getTypeListId(result.types) === getTypeListId(constraintType.types)) { - return constraintType; - } - return result; - function addMemberForKeyType(keyType) { - var propNameType = nameType ? instantiateType(nameType, appendTypeMapping(type.mapper, typeParameter, keyType)) : keyType; - keyTypes.push(propNameType === stringType ? stringOrNumberType : propNameType); - } - } - function hasDistributiveNameType(mappedType) { - var typeVariable = getTypeParameterFromMappedType(mappedType); - return isDistributive(getNameTypeFromMappedType(mappedType) || typeVariable); - function isDistributive(type) { - return type.flags & (3 /* AnyOrUnknown */ | 402784252 /* Primitive */ | 131072 /* Never */ | 262144 /* TypeParameter */ | 524288 /* Object */ | 67108864 /* NonPrimitive */) ? true : type.flags & 16777216 /* Conditional */ ? type.root.isDistributive && type.checkType === typeVariable : type.flags & (3145728 /* UnionOrIntersection */ | 134217728 /* TemplateLiteral */) ? every(type.types, isDistributive) : type.flags & 8388608 /* IndexedAccess */ ? isDistributive(type.objectType) && isDistributive(type.indexType) : type.flags & 33554432 /* Substitution */ ? isDistributive(type.baseType) && isDistributive(type.constraint) : type.flags & 268435456 /* StringMapping */ ? isDistributive(type.type) : false; - } - } - function getLiteralTypeFromPropertyName(name) { - if (isPrivateIdentifier(name)) { - return neverType; - } - if (isNumericLiteral(name)) { - return getRegularTypeOfLiteralType(checkExpression(name)); - } - if (isComputedPropertyName(name)) { - return getRegularTypeOfLiteralType(checkComputedPropertyName(name)); - } - var propertyName = getPropertyNameForPropertyNameNode(name); - if (propertyName !== void 0) { - return getStringLiteralType(unescapeLeadingUnderscores(propertyName)); - } - if (isExpression(name)) { - return getRegularTypeOfLiteralType(checkExpression(name)); - } - return neverType; - } - function getLiteralTypeFromProperty(prop, include, includeNonPublic) { - if (includeNonPublic || !(getDeclarationModifierFlagsFromSymbol(prop) & 24 /* NonPublicAccessibilityModifier */)) { - var type = getSymbolLinks(getLateBoundSymbol(prop)).nameType; - if (!type) { - var name_39 = getNameOfDeclaration(prop.valueDeclaration); - type = prop.escapedName === "default" /* Default */ ? getStringLiteralType("default") : name_39 && getLiteralTypeFromPropertyName(name_39) || (!isKnownSymbol(prop) ? getStringLiteralType(symbolName(prop)) : void 0); - } - if (type && type.flags & include) { - return type; - } - } - return neverType; - } - function isKeyTypeIncluded(keyType, include) { - return !!(keyType.flags & include || keyType.flags & 2097152 /* Intersection */ && some(keyType.types, function (t) { return isKeyTypeIncluded(t, include); })); - } - function getLiteralTypeFromProperties(type, include, includeOrigin) { - var origin = includeOrigin && (getObjectFlags(type) & (3 /* ClassOrInterface */ | 4 /* Reference */) || type.aliasSymbol) ? createOriginIndexType(type) : void 0; - var propertyTypes = map(getPropertiesOfType(type), function (prop) { return getLiteralTypeFromProperty(prop, include); }); - var indexKeyTypes = map(getIndexInfosOfType(type), function (info) { return info !== enumNumberIndexInfo && isKeyTypeIncluded(info.keyType, include) ? info.keyType === stringType && include & 8 /* Number */ ? stringOrNumberType : info.keyType : neverType; }); - return getUnionType(concatenate(propertyTypes, indexKeyTypes), 1 /* Literal */, - /*aliasSymbol*/ - void 0, - /*aliasTypeArguments*/ - void 0, origin); - } - function shouldDeferIndexType(type, indexFlags /* None */) { - if (indexFlags === void 0) { indexFlags = 0; } - return !!(type.flags & 58982400 /* InstantiableNonPrimitive */ || isGenericTupleType(type) || isGenericMappedType(type) && !hasDistributiveNameType(type) || type.flags & 1048576 /* Union */ && !(indexFlags & 4 /* NoReducibleCheck */) && isGenericReducibleType(type) || type.flags & 2097152 /* Intersection */ && maybeTypeOfKind(type, 465829888 /* Instantiable */) && some(type.types, isEmptyAnonymousObjectType)); - } - function getIndexType(type, indexFlags) { - if (indexFlags === void 0) { indexFlags = defaultIndexFlags; } - type = getReducedType(type); - return shouldDeferIndexType(type, indexFlags) ? getIndexTypeForGenericType(type, indexFlags) : type.flags & 1048576 /* Union */ ? getIntersectionType(map(type.types, function (t) { return getIndexType(t, indexFlags); })) : type.flags & 2097152 /* Intersection */ ? getUnionType(map(type.types, function (t) { return getIndexType(t, indexFlags); })) : getObjectFlags(type) & 32 /* Mapped */ ? getIndexTypeForMappedType(type, indexFlags) : type === wildcardType ? wildcardType : type.flags & 2 /* Unknown */ ? neverType : type.flags & (1 /* Any */ | 131072 /* Never */) ? keyofConstraintType : getLiteralTypeFromProperties(type, (indexFlags & 2 /* NoIndexSignatures */ ? 128 /* StringLiteral */ : 402653316 /* StringLike */) | (indexFlags & 1 /* StringsOnly */ ? 0 : 296 /* NumberLike */ | 12288 /* ESSymbolLike */), indexFlags === defaultIndexFlags); - } - function getExtractStringType(type) { - if (keyofStringsOnly) { - return type; - } - var extractTypeAlias = getGlobalExtractSymbol(); - return extractTypeAlias ? getTypeAliasInstantiation(extractTypeAlias, [type, stringType]) : stringType; - } - function getIndexTypeOrString(type) { - var indexType = getExtractStringType(getIndexType(type)); - return indexType.flags & 131072 /* Never */ ? stringType : indexType; - } - function getTypeFromTypeOperatorNode(node) { - var links = getNodeLinks(node); - if (!links.resolvedType) { - switch (node.operator) { - case 143 /* KeyOfKeyword */: - links.resolvedType = getIndexType(getTypeFromTypeNode(node.type)); - break; - case 158 /* UniqueKeyword */: - links.resolvedType = node.type.kind === 155 /* SymbolKeyword */ ? getESSymbolLikeTypeForNode(walkUpParenthesizedTypes(node.parent)) : errorType; - break; - case 148 /* ReadonlyKeyword */: - links.resolvedType = getTypeFromTypeNode(node.type); - break; - default: - Debug.assertNever(node.operator); - } - } - return links.resolvedType; - } - function getTypeFromTemplateTypeNode(node) { - var links = getNodeLinks(node); - if (!links.resolvedType) { - links.resolvedType = getTemplateLiteralType(__spreadArray([node.head.text], __read(map(node.templateSpans, function (span) { return span.literal.text; })), false), map(node.templateSpans, function (span) { return getTypeFromTypeNode(span.type); })); - } - return links.resolvedType; - } - function getTemplateLiteralType(texts, types) { - var unionIndex = findIndex(types, function (t) { return !!(t.flags & (131072 /* Never */ | 1048576 /* Union */)); }); - if (unionIndex >= 0) { - return checkCrossProductUnion(types) ? mapType(types[unionIndex], function (t) { return getTemplateLiteralType(texts, replaceElement(types, unionIndex, t)); }) : errorType; - } - if (contains(types, wildcardType)) { - return wildcardType; - } - var newTypes = []; - var newTexts = []; - var text = texts[0]; - if (!addSpans(texts, types)) { - return stringType; - } - if (newTypes.length === 0) { - return getStringLiteralType(text); - } - newTexts.push(text); - if (every(newTexts, function (t) { return t === ""; })) { - if (every(newTypes, function (t) { return !!(t.flags & 4 /* String */); })) { - return stringType; - } - if (newTypes.length === 1 && isPatternLiteralType(newTypes[0])) { - return newTypes[0]; - } - } - var id = "".concat(getTypeListId(newTypes), "|").concat(map(newTexts, function (t) { return t.length; }).join(","), "|").concat(newTexts.join("")); - var type = templateLiteralTypes.get(id); - if (!type) { - templateLiteralTypes.set(id, type = createTemplateLiteralType(newTexts, newTypes)); - } - return type; - function addSpans(texts2, types2) { - for (var i = 0; i < types2.length; i++) { - var t = types2[i]; - if (t.flags & (2944 /* Literal */ | 65536 /* Null */ | 32768 /* Undefined */)) { - text += getTemplateStringForType(t) || ""; - text += texts2[i + 1]; - } - else if (t.flags & 134217728 /* TemplateLiteral */) { - text += t.texts[0]; - if (!addSpans(t.texts, t.types)) - return false; - text += texts2[i + 1]; - } - else if (isGenericIndexType(t) || isPatternLiteralPlaceholderType(t)) { - newTypes.push(t); - newTexts.push(text); - text = texts2[i + 1]; - } - else { - return false; - } - } - return true; - } - } - function getTemplateStringForType(type) { - return type.flags & 128 /* StringLiteral */ ? type.value : type.flags & 256 /* NumberLiteral */ ? "" + type.value : type.flags & 2048 /* BigIntLiteral */ ? pseudoBigIntToString(type.value) : type.flags & (512 /* BooleanLiteral */ | 98304 /* Nullable */) ? type.intrinsicName : void 0; - } - function createTemplateLiteralType(texts, types) { - var type = createType(134217728 /* TemplateLiteral */); - type.objectFlags = getPropagatingFlagsOfTypes(types, - /*excludeKinds*/ - 98304 /* Nullable */); - type.texts = texts; - type.types = types; - return type; - } - function getStringMappingType(symbol, type) { - return type.flags & (1048576 /* Union */ | 131072 /* Never */) ? mapType(type, function (t) { return getStringMappingType(symbol, t); }) : type.flags & 128 /* StringLiteral */ ? getStringLiteralType(applyStringMapping(symbol, type.value)) : type.flags & 134217728 /* TemplateLiteral */ ? getTemplateLiteralType.apply(void 0, __spreadArray([], __read(applyTemplateStringMapping(symbol, type.texts, type.types)), false)) : ( - // Mapping> === Mapping - type.flags & 268435456 /* StringMapping */ && symbol === type.symbol ? type : type.flags & (1 /* Any */ | 4 /* String */ | 268435456 /* StringMapping */) || isGenericIndexType(type) ? getStringMappingTypeForGenericType(symbol, type) : ( - // This handles Mapping<`${number}`> and Mapping<`${bigint}`> - isPatternLiteralPlaceholderType(type) ? getStringMappingTypeForGenericType(symbol, getTemplateLiteralType(["", ""], [type])) : type)); - } - function applyStringMapping(symbol, str) { - switch (intrinsicTypeKinds.get(symbol.escapedName)) { - case 0 /* Uppercase */: - return str.toUpperCase(); - case 1 /* Lowercase */: - return str.toLowerCase(); - case 2 /* Capitalize */: - return str.charAt(0).toUpperCase() + str.slice(1); - case 3 /* Uncapitalize */: - return str.charAt(0).toLowerCase() + str.slice(1); - } - return str; - } - function applyTemplateStringMapping(symbol, texts, types) { - switch (intrinsicTypeKinds.get(symbol.escapedName)) { - case 0 /* Uppercase */: - return [texts.map(function (t) { return t.toUpperCase(); }), types.map(function (t) { return getStringMappingType(symbol, t); })]; - case 1 /* Lowercase */: - return [texts.map(function (t) { return t.toLowerCase(); }), types.map(function (t) { return getStringMappingType(symbol, t); })]; - case 2 /* Capitalize */: - return [texts[0] === "" ? texts : __spreadArray([texts[0].charAt(0).toUpperCase() + texts[0].slice(1)], __read(texts.slice(1)), false), texts[0] === "" ? __spreadArray([getStringMappingType(symbol, types[0])], __read(types.slice(1)), false) : types]; - case 3 /* Uncapitalize */: - return [texts[0] === "" ? texts : __spreadArray([texts[0].charAt(0).toLowerCase() + texts[0].slice(1)], __read(texts.slice(1)), false), texts[0] === "" ? __spreadArray([getStringMappingType(symbol, types[0])], __read(types.slice(1)), false) : types]; - } - return [texts, types]; - } - function getStringMappingTypeForGenericType(symbol, type) { - var id = "".concat(getSymbolId(symbol), ",").concat(getTypeId(type)); - var result = stringMappingTypes.get(id); - if (!result) { - stringMappingTypes.set(id, result = createStringMappingType(symbol, type)); - } - return result; - } - function createStringMappingType(symbol, type) { - var result = createTypeWithSymbol(268435456 /* StringMapping */, symbol); - result.type = type; - return result; - } - function createIndexedAccessType(objectType, indexType, accessFlags, aliasSymbol, aliasTypeArguments) { - var type = createType(8388608 /* IndexedAccess */); - type.objectType = objectType; - type.indexType = indexType; - type.accessFlags = accessFlags; - type.aliasSymbol = aliasSymbol; - type.aliasTypeArguments = aliasTypeArguments; - return type; - } - function isJSLiteralType(type) { - if (noImplicitAny) { - return false; - } - if (getObjectFlags(type) & 4096 /* JSLiteral */) { - return true; - } - if (type.flags & 1048576 /* Union */) { - return every(type.types, isJSLiteralType); - } - if (type.flags & 2097152 /* Intersection */) { - return some(type.types, isJSLiteralType); - } - if (type.flags & 465829888 /* Instantiable */) { - var constraint = getResolvedBaseConstraint(type); - return constraint !== type && isJSLiteralType(constraint); - } - return false; - } - function getPropertyNameFromIndex(indexType, accessNode) { - return isTypeUsableAsPropertyName(indexType) ? getPropertyNameFromType(indexType) : accessNode && isPropertyName(accessNode) ? ( - // late bound names are handled in the first branch, so here we only need to handle normal names - getPropertyNameForPropertyNameNode(accessNode)) : void 0; - } - function isUncalledFunctionReference(node, symbol) { - if (symbol.flags & (16 /* Function */ | 8192 /* Method */)) { - var parent2 = findAncestor(node.parent, function (n) { return !isAccessExpression(n); }) || node.parent; - if (isCallLikeExpression(parent2)) { - return isCallOrNewExpression(parent2) && isIdentifier(node) && hasMatchingArgument(parent2, node); - } - return every(symbol.declarations, function (d) { return !isFunctionLike(d) || isDeprecatedDeclaration2(d); }); - } - return true; - } - function getPropertyTypeForIndexType(originalObjectType, objectType, indexType, fullIndexType, accessNode, accessFlags) { - var _t; - var accessExpression = accessNode && accessNode.kind === 212 /* ElementAccessExpression */ ? accessNode : void 0; - var propName = accessNode && isPrivateIdentifier(accessNode) ? void 0 : getPropertyNameFromIndex(indexType, accessNode); - if (propName !== void 0) { - if (accessFlags & 256 /* Contextual */) { - return getTypeOfPropertyOfContextualType(objectType, propName) || anyType; - } - var prop = getPropertyOfType(objectType, propName); - if (prop) { - if (accessFlags & 64 /* ReportDeprecated */ && accessNode && prop.declarations && isDeprecatedSymbol(prop) && isUncalledFunctionReference(accessNode, prop)) { - var deprecatedNode = (_t = (accessExpression == null ? void 0 : accessExpression.argumentExpression)) !== null && _t !== void 0 ? _t : (isIndexedAccessTypeNode(accessNode) ? accessNode.indexType : accessNode); - addDeprecatedSuggestion(deprecatedNode, prop.declarations, propName); - } - if (accessExpression) { - markPropertyAsReferenced(prop, accessExpression, isSelfTypeAccess(accessExpression.expression, objectType.symbol)); - if (isAssignmentToReadonlyEntity(accessExpression, prop, getAssignmentTargetKind(accessExpression))) { - error2(accessExpression.argumentExpression, Diagnostics.Cannot_assign_to_0_because_it_is_a_read_only_property, symbolToString(prop)); - return void 0; - } - if (accessFlags & 8 /* CacheSymbol */) { - getNodeLinks(accessNode).resolvedSymbol = prop; - } - if (isThisPropertyAccessInConstructor(accessExpression, prop)) { - return autoType; - } - } - var propType = getTypeOfSymbol(prop); - return accessExpression && getAssignmentTargetKind(accessExpression) !== 1 /* Definite */ ? getFlowTypeOfReference(accessExpression, propType) : accessNode && isIndexedAccessTypeNode(accessNode) && containsMissingType(propType) ? getUnionType([propType, undefinedType]) : propType; - } - if (everyType(objectType, isTupleType) && isNumericLiteralName(propName)) { - var index = +propName; - if (accessNode && everyType(objectType, function (t) { return !t.target.hasRestElement; }) && !(accessFlags & 16 /* NoTupleBoundsCheck */)) { - var indexNode = getIndexNodeForAccessExpression(accessNode); - if (isTupleType(objectType)) { - if (index < 0) { - error2(indexNode, Diagnostics.A_tuple_type_cannot_be_indexed_with_a_negative_value); - return undefinedType; - } - error2(indexNode, Diagnostics.Tuple_type_0_of_length_1_has_no_element_at_index_2, typeToString(objectType), getTypeReferenceArity(objectType), unescapeLeadingUnderscores(propName)); - } - else { - error2(indexNode, Diagnostics.Property_0_does_not_exist_on_type_1, unescapeLeadingUnderscores(propName), typeToString(objectType)); - } - } - if (index >= 0) { - errorIfWritingToReadonlyIndex(getIndexInfoOfType(objectType, numberType)); - return getTupleElementTypeOutOfStartCount(objectType, index, accessFlags & 1 /* IncludeUndefined */ ? missingType : void 0); - } - } - } - if (!(indexType.flags & 98304 /* Nullable */) && isTypeAssignableToKind(indexType, 402653316 /* StringLike */ | 296 /* NumberLike */ | 12288 /* ESSymbolLike */)) { - if (objectType.flags & (1 /* Any */ | 131072 /* Never */)) { - return objectType; - } - var indexInfo = getApplicableIndexInfo(objectType, indexType) || getIndexInfoOfType(objectType, stringType); - if (indexInfo) { - if (accessFlags & 2 /* NoIndexSignatures */ && indexInfo.keyType !== numberType) { - if (accessExpression) { - error2(accessExpression, Diagnostics.Type_0_cannot_be_used_to_index_type_1, typeToString(indexType), typeToString(originalObjectType)); - } - return void 0; - } - if (accessNode && indexInfo.keyType === stringType && !isTypeAssignableToKind(indexType, 4 /* String */ | 8 /* Number */)) { - var indexNode = getIndexNodeForAccessExpression(accessNode); - error2(indexNode, Diagnostics.Type_0_cannot_be_used_as_an_index_type, typeToString(indexType)); - return accessFlags & 1 /* IncludeUndefined */ ? getUnionType([indexInfo.type, missingType]) : indexInfo.type; - } - errorIfWritingToReadonlyIndex(indexInfo); - if (accessFlags & 1 /* IncludeUndefined */ && !(objectType.symbol && objectType.symbol.flags & (256 /* RegularEnum */ | 128 /* ConstEnum */) && (indexType.symbol && indexType.flags & 1024 /* EnumLiteral */ && getParentOfSymbol(indexType.symbol) === objectType.symbol))) { - return getUnionType([indexInfo.type, missingType]); - } - return indexInfo.type; - } - if (indexType.flags & 131072 /* Never */) { - return neverType; - } - if (isJSLiteralType(objectType)) { - return anyType; - } - if (accessExpression && !isConstEnumObjectType(objectType)) { - if (isObjectLiteralType2(objectType)) { - if (noImplicitAny && indexType.flags & (128 /* StringLiteral */ | 256 /* NumberLiteral */)) { - diagnostics.add(createDiagnosticForNode(accessExpression, Diagnostics.Property_0_does_not_exist_on_type_1, indexType.value, typeToString(objectType))); - return undefinedType; - } - else if (indexType.flags & (8 /* Number */ | 4 /* String */)) { - var types = map(objectType.properties, function (property) { - return getTypeOfSymbol(property); - }); - return getUnionType(append(types, undefinedType)); - } - } - if (objectType.symbol === globalThisSymbol && propName !== void 0 && globalThisSymbol.exports.has(propName) && globalThisSymbol.exports.get(propName).flags & 418 /* BlockScoped */) { - error2(accessExpression, Diagnostics.Property_0_does_not_exist_on_type_1, unescapeLeadingUnderscores(propName), typeToString(objectType)); - } - else if (noImplicitAny && !compilerOptions.suppressImplicitAnyIndexErrors && !(accessFlags & 128 /* SuppressNoImplicitAnyError */)) { - if (propName !== void 0 && typeHasStaticProperty(propName, objectType)) { - var typeName = typeToString(objectType); - error2(accessExpression, Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead, propName, typeName, typeName + "[" + getTextOfNode(accessExpression.argumentExpression) + "]"); - } - else if (getIndexTypeOfType(objectType, numberType)) { - error2(accessExpression.argumentExpression, Diagnostics.Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number); - } - else { - var suggestion = void 0; - if (propName !== void 0 && (suggestion = getSuggestionForNonexistentProperty(propName, objectType))) { - if (suggestion !== void 0) { - error2(accessExpression.argumentExpression, Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_2, propName, typeToString(objectType), suggestion); - } - } - else { - var suggestion2 = getSuggestionForNonexistentIndexSignature(objectType, accessExpression, indexType); - if (suggestion2 !== void 0) { - error2(accessExpression, Diagnostics.Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1, typeToString(objectType), suggestion2); - } - else { - var errorInfo = void 0; - if (indexType.flags & 1024 /* EnumLiteral */) { - errorInfo = chainDiagnosticMessages( - /*details*/ - void 0, Diagnostics.Property_0_does_not_exist_on_type_1, "[" + typeToString(indexType) + "]", typeToString(objectType)); - } - else if (indexType.flags & 8192 /* UniqueESSymbol */) { - var symbolName2 = getFullyQualifiedName(indexType.symbol, accessExpression); - errorInfo = chainDiagnosticMessages( - /*details*/ - void 0, Diagnostics.Property_0_does_not_exist_on_type_1, "[" + symbolName2 + "]", typeToString(objectType)); - } - else if (indexType.flags & 128 /* StringLiteral */) { - errorInfo = chainDiagnosticMessages( - /*details*/ - void 0, Diagnostics.Property_0_does_not_exist_on_type_1, indexType.value, typeToString(objectType)); - } - else if (indexType.flags & 256 /* NumberLiteral */) { - errorInfo = chainDiagnosticMessages( - /*details*/ - void 0, Diagnostics.Property_0_does_not_exist_on_type_1, indexType.value, typeToString(objectType)); - } - else if (indexType.flags & (8 /* Number */ | 4 /* String */)) { - errorInfo = chainDiagnosticMessages( - /*details*/ - void 0, Diagnostics.No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1, typeToString(indexType), typeToString(objectType)); - } - errorInfo = chainDiagnosticMessages(errorInfo, Diagnostics.Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1, typeToString(fullIndexType), typeToString(objectType)); - diagnostics.add(createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(accessExpression), accessExpression, errorInfo)); - } - } - } - } - return void 0; - } - } - if (isJSLiteralType(objectType)) { - return anyType; - } - if (accessNode) { - var indexNode = getIndexNodeForAccessExpression(accessNode); - if (indexType.flags & (128 /* StringLiteral */ | 256 /* NumberLiteral */)) { - error2(indexNode, Diagnostics.Property_0_does_not_exist_on_type_1, "" + indexType.value, typeToString(objectType)); - } - else if (indexType.flags & (4 /* String */ | 8 /* Number */)) { - error2(indexNode, Diagnostics.Type_0_has_no_matching_index_signature_for_type_1, typeToString(objectType), typeToString(indexType)); - } - else { - error2(indexNode, Diagnostics.Type_0_cannot_be_used_as_an_index_type, typeToString(indexType)); - } - } - if (isTypeAny(indexType)) { - return indexType; - } - return void 0; - function errorIfWritingToReadonlyIndex(indexInfo) { - if (indexInfo && indexInfo.isReadonly && accessExpression && (isAssignmentTarget(accessExpression) || isDeleteTarget(accessExpression))) { - error2(accessExpression, Diagnostics.Index_signature_in_type_0_only_permits_reading, typeToString(objectType)); - } - } - } - function getIndexNodeForAccessExpression(accessNode) { - return accessNode.kind === 212 /* ElementAccessExpression */ ? accessNode.argumentExpression : accessNode.kind === 199 /* IndexedAccessType */ ? accessNode.indexType : accessNode.kind === 167 /* ComputedPropertyName */ ? accessNode.expression : accessNode; - } - function isPatternLiteralPlaceholderType(type) { - if (type.flags & 2097152 /* Intersection */) { - return some(type.types, function (t) { return !!(t.flags & (2944 /* Literal */ | 65536 /* Null */ | 32768 /* Undefined */)) || isPatternLiteralPlaceholderType(t); }); - } - return !!(type.flags & (1 /* Any */ | 4 /* String */ | 8 /* Number */ | 64 /* BigInt */)) || isPatternLiteralType(type); - } - function isPatternLiteralType(type) { - return !!(type.flags & 134217728 /* TemplateLiteral */) && every(type.types, isPatternLiteralPlaceholderType) || !!(type.flags & 268435456 /* StringMapping */) && isPatternLiteralPlaceholderType(type.type); - } - function isGenericType(type) { - return !!getGenericObjectFlags(type); - } - function isGenericObjectType(type) { - return !!(getGenericObjectFlags(type) & 4194304 /* IsGenericObjectType */); - } - function isGenericIndexType(type) { - return !!(getGenericObjectFlags(type) & 8388608 /* IsGenericIndexType */); - } - function getGenericObjectFlags(type) { - if (type.flags & (3145728 /* UnionOrIntersection */ | 134217728 /* TemplateLiteral */)) { - if (!(type.objectFlags & 2097152 /* IsGenericTypeComputed */)) { - type.objectFlags |= 2097152 /* IsGenericTypeComputed */ | reduceLeft(type.types, function (flags, t) { return flags | getGenericObjectFlags(t); }, 0); - } - return type.objectFlags & 12582912 /* IsGenericType */; - } - if (type.flags & 33554432 /* Substitution */) { - if (!(type.objectFlags & 2097152 /* IsGenericTypeComputed */)) { - type.objectFlags |= 2097152 /* IsGenericTypeComputed */ | getGenericObjectFlags(type.baseType) | getGenericObjectFlags(type.constraint); - } - return type.objectFlags & 12582912 /* IsGenericType */; - } - return (type.flags & 58982400 /* InstantiableNonPrimitive */ || isGenericMappedType(type) || isGenericTupleType(type) ? 4194304 /* IsGenericObjectType */ : 0) | (type.flags & (58982400 /* InstantiableNonPrimitive */ | 4194304 /* Index */ | 268435456 /* StringMapping */) && !isPatternLiteralType(type) ? 8388608 /* IsGenericIndexType */ : 0); - } - function getSimplifiedType(type, writing) { - return type.flags & 8388608 /* IndexedAccess */ ? getSimplifiedIndexedAccessType(type, writing) : type.flags & 16777216 /* Conditional */ ? getSimplifiedConditionalType(type, writing) : type; - } - function distributeIndexOverObjectType(objectType, indexType, writing) { - if (objectType.flags & 1048576 /* Union */ || objectType.flags & 2097152 /* Intersection */ && !shouldDeferIndexType(objectType)) { - var types = map(objectType.types, function (t) { return getSimplifiedType(getIndexedAccessType(t, indexType), writing); }); - return objectType.flags & 2097152 /* Intersection */ || writing ? getIntersectionType(types) : getUnionType(types); - } - } - function distributeObjectOverIndexType(objectType, indexType, writing) { - if (indexType.flags & 1048576 /* Union */) { - var types = map(indexType.types, function (t) { return getSimplifiedType(getIndexedAccessType(objectType, t), writing); }); - return writing ? getIntersectionType(types) : getUnionType(types); - } - } - function getSimplifiedIndexedAccessType(type, writing) { - var cache = writing ? "simplifiedForWriting" : "simplifiedForReading"; - if (type[cache]) { - return type[cache] === circularConstraintType ? type : type[cache]; - } - type[cache] = circularConstraintType; - var objectType = getSimplifiedType(type.objectType, writing); - var indexType = getSimplifiedType(type.indexType, writing); - var distributedOverIndex = distributeObjectOverIndexType(objectType, indexType, writing); - if (distributedOverIndex) { - return type[cache] = distributedOverIndex; - } - if (!(indexType.flags & 465829888 /* Instantiable */)) { - var distributedOverObject = distributeIndexOverObjectType(objectType, indexType, writing); - if (distributedOverObject) { - return type[cache] = distributedOverObject; - } - } - if (isGenericTupleType(objectType) && indexType.flags & 296 /* NumberLike */) { - var elementType = getElementTypeOfSliceOfTupleType(objectType, indexType.flags & 8 /* Number */ ? 0 : objectType.target.fixedLength, - /*endSkipCount*/ - 0, writing); - if (elementType) { - return type[cache] = elementType; - } - } - if (isGenericMappedType(objectType)) { - if (!getNameTypeFromMappedType(objectType) || isFilteringMappedType(objectType)) { - return type[cache] = mapType(substituteIndexedMappedType(objectType, type.indexType), function (t) { return getSimplifiedType(t, writing); }); - } - } - return type[cache] = type; - } - function getSimplifiedConditionalType(type, writing) { - var checkType = type.checkType; - var extendsType = type.extendsType; - var trueType2 = getTrueTypeFromConditionalType(type); - var falseType2 = getFalseTypeFromConditionalType(type); - if (falseType2.flags & 131072 /* Never */ && getActualTypeVariable(trueType2) === getActualTypeVariable(checkType)) { - if (checkType.flags & 1 /* Any */ || isTypeAssignableTo(getRestrictiveInstantiation(checkType), getRestrictiveInstantiation(extendsType))) { - return getSimplifiedType(trueType2, writing); - } - else if (isIntersectionEmpty(checkType, extendsType)) { - return neverType; - } - } - else if (trueType2.flags & 131072 /* Never */ && getActualTypeVariable(falseType2) === getActualTypeVariable(checkType)) { - if (!(checkType.flags & 1 /* Any */) && isTypeAssignableTo(getRestrictiveInstantiation(checkType), getRestrictiveInstantiation(extendsType))) { - return neverType; - } - else if (checkType.flags & 1 /* Any */ || isIntersectionEmpty(checkType, extendsType)) { - return getSimplifiedType(falseType2, writing); - } - } - return type; - } - function isIntersectionEmpty(type1, type2) { - return !!(getUnionType([intersectTypes(type1, type2), neverType]).flags & 131072 /* Never */); - } - function substituteIndexedMappedType(objectType, index) { - var mapper = createTypeMapper([getTypeParameterFromMappedType(objectType)], [index]); - var templateMapper = combineTypeMappers(objectType.mapper, mapper); - return instantiateType(getTemplateTypeFromMappedType(objectType.target || objectType), templateMapper); - } - function getIndexedAccessType(objectType, indexType, accessFlags /* None */, accessNode, aliasSymbol, aliasTypeArguments) { - if (accessFlags === void 0) { accessFlags = 0; } - return getIndexedAccessTypeOrUndefined(objectType, indexType, accessFlags, accessNode, aliasSymbol, aliasTypeArguments) || (accessNode ? errorType : unknownType); - } - function indexTypeLessThan(indexType, limit) { - return everyType(indexType, function (t) { - if (t.flags & 384 /* StringOrNumberLiteral */) { - var propName = getPropertyNameFromType(t); - if (isNumericLiteralName(propName)) { - var index = +propName; - return index >= 0 && index < limit; - } - } - return false; - }); - } - function getIndexedAccessTypeOrUndefined(objectType, indexType, accessFlags /* None */, accessNode, aliasSymbol, aliasTypeArguments) { - var e_251, _t; - if (accessFlags === void 0) { accessFlags = 0; } - if (objectType === wildcardType || indexType === wildcardType) { - return wildcardType; - } - objectType = getReducedType(objectType); - if (isStringIndexSignatureOnlyType(objectType) && !(indexType.flags & 98304 /* Nullable */) && isTypeAssignableToKind(indexType, 4 /* String */ | 8 /* Number */)) { - indexType = stringType; - } - if (compilerOptions.noUncheckedIndexedAccess && accessFlags & 32 /* ExpressionPosition */) - accessFlags |= 1 /* IncludeUndefined */; - if (isGenericIndexType(indexType) || (accessNode && accessNode.kind !== 199 /* IndexedAccessType */ ? isGenericTupleType(objectType) && !indexTypeLessThan(indexType, getTotalFixedElementCount(objectType.target)) : isGenericObjectType(objectType) && !(isTupleType(objectType) && indexTypeLessThan(indexType, getTotalFixedElementCount(objectType.target))) || isGenericReducibleType(objectType))) { - if (objectType.flags & 3 /* AnyOrUnknown */) { - return objectType; - } - var persistentAccessFlags = accessFlags & 1 /* Persistent */; - var id = objectType.id + "," + indexType.id + "," + persistentAccessFlags + getAliasId(aliasSymbol, aliasTypeArguments); - var type = indexedAccessTypes.get(id); - if (!type) { - indexedAccessTypes.set(id, type = createIndexedAccessType(objectType, indexType, persistentAccessFlags, aliasSymbol, aliasTypeArguments)); - } - return type; - } - var apparentObjectType = getReducedApparentType(objectType); - if (indexType.flags & 1048576 /* Union */ && !(indexType.flags & 16 /* Boolean */)) { - var propTypes = []; - var wasMissingProp = false; - try { - for (var _u = __values(indexType.types), _v = _u.next(); !_v.done; _v = _u.next()) { - var t = _v.value; - var propType = getPropertyTypeForIndexType(objectType, apparentObjectType, t, indexType, accessNode, accessFlags | (wasMissingProp ? 128 /* SuppressNoImplicitAnyError */ : 0)); - if (propType) { - propTypes.push(propType); - } - else if (!accessNode) { - return void 0; - } - else { - wasMissingProp = true; - } - } - } - catch (e_251_1) { e_251 = { error: e_251_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_251) throw e_251.error; } - } - if (wasMissingProp) { - return void 0; - } - return accessFlags & 4 /* Writing */ ? getIntersectionType(propTypes, aliasSymbol, aliasTypeArguments) : getUnionType(propTypes, 1 /* Literal */, aliasSymbol, aliasTypeArguments); - } - return getPropertyTypeForIndexType(objectType, apparentObjectType, indexType, indexType, accessNode, accessFlags | 8 /* CacheSymbol */ | 64 /* ReportDeprecated */); - } - function getTypeFromIndexedAccessTypeNode(node) { - var links = getNodeLinks(node); - if (!links.resolvedType) { - var objectType = getTypeFromTypeNode(node.objectType); - var indexType = getTypeFromTypeNode(node.indexType); - var potentialAlias = getAliasSymbolForTypeNode(node); - links.resolvedType = getIndexedAccessType(objectType, indexType, 0 /* None */, node, potentialAlias, getTypeArgumentsForAliasSymbol(potentialAlias)); - } - return links.resolvedType; - } - function getTypeFromMappedTypeNode(node) { - var links = getNodeLinks(node); - if (!links.resolvedType) { - var type = createObjectType(32 /* Mapped */, node.symbol); - type.declaration = node; - type.aliasSymbol = getAliasSymbolForTypeNode(node); - type.aliasTypeArguments = getTypeArgumentsForAliasSymbol(type.aliasSymbol); - links.resolvedType = type; - getConstraintTypeFromMappedType(type); - } - return links.resolvedType; - } - function getActualTypeVariable(type) { - if (type.flags & 33554432 /* Substitution */) { - return getActualTypeVariable(type.baseType); - } - if (type.flags & 8388608 /* IndexedAccess */ && (type.objectType.flags & 33554432 /* Substitution */ || type.indexType.flags & 33554432 /* Substitution */)) { - return getIndexedAccessType(getActualTypeVariable(type.objectType), getActualTypeVariable(type.indexType)); - } - return type; - } - function maybeCloneTypeParameter(p) { - var constraint = getConstraintOfTypeParameter(p); - return constraint && (isGenericObjectType(constraint) || isGenericIndexType(constraint)) ? cloneTypeParameter(p) : p; - } - function isSimpleTupleType(node) { - return isTupleTypeNode(node) && length(node.elements) > 0 && !some(node.elements, function (e) { return isOptionalTypeNode(e) || isRestTypeNode(e) || isNamedTupleMember(e) && !!(e.questionToken || e.dotDotDotToken); }); - } - function isDeferredType(type, checkTuples) { - return isGenericType(type) || checkTuples && isTupleType(type) && some(getElementTypes(type), isGenericType); - } - function getConditionalType(root, mapper, aliasSymbol, aliasTypeArguments) { - var result; - var extraTypes; - var tailCount = 0; - while (true) { - if (tailCount === 1e3) { - error2(currentNode, Diagnostics.Type_instantiation_is_excessively_deep_and_possibly_infinite); - return errorType; - } - var checkType = instantiateType(getActualTypeVariable(root.checkType), mapper); - var extendsType = instantiateType(root.extendsType, mapper); - if (checkType === errorType || extendsType === errorType) { - return errorType; - } - if (checkType === wildcardType || extendsType === wildcardType) { - return wildcardType; - } - var checkTuples = isSimpleTupleType(root.node.checkType) && isSimpleTupleType(root.node.extendsType) && length(root.node.checkType.elements) === length(root.node.extendsType.elements); - var checkTypeDeferred = isDeferredType(checkType, checkTuples); - var combinedMapper = void 0; - if (root.inferTypeParameters) { - var freshParams = sameMap(root.inferTypeParameters, maybeCloneTypeParameter); - var freshMapper = freshParams !== root.inferTypeParameters ? createTypeMapper(root.inferTypeParameters, freshParams) : void 0; - var context = createInferenceContext(freshParams, - /*signature*/ - void 0, 0 /* None */); - if (freshMapper) { - var freshCombinedMapper = combineTypeMappers(mapper, freshMapper); - for (var i = 0; i < freshParams.length; i++) { - if (freshParams[i] !== root.inferTypeParameters[i]) { - freshParams[i].mapper = freshCombinedMapper; - } - } - } - if (!checkTypeDeferred) { - inferTypes(context.inferences, checkType, instantiateType(extendsType, freshMapper), 512 /* NoConstraints */ | 1024 /* AlwaysStrict */); - } - var innerMapper = combineTypeMappers(freshMapper, context.mapper); - combinedMapper = mapper ? combineTypeMappers(innerMapper, mapper) : innerMapper; - } - var inferredExtendsType = combinedMapper ? instantiateType(root.extendsType, combinedMapper) : extendsType; - if (!checkTypeDeferred && !isDeferredType(inferredExtendsType, checkTuples)) { - if (!(inferredExtendsType.flags & 3 /* AnyOrUnknown */) && (checkType.flags & 1 /* Any */ || !isTypeAssignableTo(getPermissiveInstantiation(checkType), getPermissiveInstantiation(inferredExtendsType)))) { - if (checkType.flags & 1 /* Any */) { - (extraTypes || (extraTypes = [])).push(instantiateType(getTypeFromTypeNode(root.node.trueType), combinedMapper || mapper)); - } - var falseType2 = getTypeFromTypeNode(root.node.falseType); - if (falseType2.flags & 16777216 /* Conditional */) { - var newRoot = falseType2.root; - if (newRoot.node.parent === root.node && (!newRoot.isDistributive || newRoot.checkType === root.checkType)) { - root = newRoot; - continue; - } - if (canTailRecurse(falseType2, mapper)) { - continue; - } - } - result = instantiateType(falseType2, mapper); - break; - } - if (inferredExtendsType.flags & 3 /* AnyOrUnknown */ || isTypeAssignableTo(getRestrictiveInstantiation(checkType), getRestrictiveInstantiation(inferredExtendsType))) { - var trueType2 = getTypeFromTypeNode(root.node.trueType); - var trueMapper = combinedMapper || mapper; - if (canTailRecurse(trueType2, trueMapper)) { - continue; - } - result = instantiateType(trueType2, trueMapper); - break; - } - } - result = createType(16777216 /* Conditional */); - result.root = root; - result.checkType = instantiateType(root.checkType, mapper); - result.extendsType = instantiateType(root.extendsType, mapper); - result.mapper = mapper; - result.combinedMapper = combinedMapper; - result.aliasSymbol = aliasSymbol || root.aliasSymbol; - result.aliasTypeArguments = aliasSymbol ? aliasTypeArguments : instantiateTypes(root.aliasTypeArguments, mapper); - break; - } - return extraTypes ? getUnionType(append(extraTypes, result)) : result; - function canTailRecurse(newType, newMapper) { - if (newType.flags & 16777216 /* Conditional */ && newMapper) { - var newRoot = newType.root; - if (newRoot.outerTypeParameters) { - var typeParamMapper_1 = combineTypeMappers(newType.mapper, newMapper); - var typeArguments = map(newRoot.outerTypeParameters, function (t) { return getMappedType(t, typeParamMapper_1); }); - var newRootMapper = createTypeMapper(newRoot.outerTypeParameters, typeArguments); - var newCheckType = newRoot.isDistributive ? getMappedType(newRoot.checkType, newRootMapper) : void 0; - if (!newCheckType || newCheckType === newRoot.checkType || !(newCheckType.flags & (1048576 /* Union */ | 131072 /* Never */))) { - root = newRoot; - mapper = newRootMapper; - aliasSymbol = void 0; - aliasTypeArguments = void 0; - if (newRoot.aliasSymbol) { - tailCount++; - } - return true; - } - } - } - return false; - } - } - function getTrueTypeFromConditionalType(type) { - return type.resolvedTrueType || (type.resolvedTrueType = instantiateType(getTypeFromTypeNode(type.root.node.trueType), type.mapper)); - } - function getFalseTypeFromConditionalType(type) { - return type.resolvedFalseType || (type.resolvedFalseType = instantiateType(getTypeFromTypeNode(type.root.node.falseType), type.mapper)); - } - function getInferredTrueTypeFromConditionalType(type) { - return type.resolvedInferredTrueType || (type.resolvedInferredTrueType = type.combinedMapper ? instantiateType(getTypeFromTypeNode(type.root.node.trueType), type.combinedMapper) : getTrueTypeFromConditionalType(type)); - } - function getInferTypeParameters(node) { - var result; - if (node.locals) { - node.locals.forEach(function (symbol) { - if (symbol.flags & 262144 /* TypeParameter */) { - result = append(result, getDeclaredTypeOfSymbol(symbol)); - } - }); - } - return result; - } - function isDistributionDependent(root) { - return root.isDistributive && (isTypeParameterPossiblyReferenced(root.checkType, root.node.trueType) || isTypeParameterPossiblyReferenced(root.checkType, root.node.falseType)); - } - function getTypeFromConditionalTypeNode(node) { - var links = getNodeLinks(node); - if (!links.resolvedType) { - var checkType = getTypeFromTypeNode(node.checkType); - var aliasSymbol = getAliasSymbolForTypeNode(node); - var aliasTypeArguments = getTypeArgumentsForAliasSymbol(aliasSymbol); - var allOuterTypeParameters = getOuterTypeParameters(node, - /*includeThisTypes*/ - true); - var outerTypeParameters = aliasTypeArguments ? allOuterTypeParameters : filter(allOuterTypeParameters, function (tp) { return isTypeParameterPossiblyReferenced(tp, node); }); - var root = { - node: node, - checkType: checkType, - extendsType: getTypeFromTypeNode(node.extendsType), - isDistributive: !!(checkType.flags & 262144 /* TypeParameter */), - inferTypeParameters: getInferTypeParameters(node), - outerTypeParameters: outerTypeParameters, - instantiations: void 0, - aliasSymbol: aliasSymbol, - aliasTypeArguments: aliasTypeArguments - }; - links.resolvedType = getConditionalType(root, - /*mapper*/ - void 0); - if (outerTypeParameters) { - root.instantiations = /* @__PURE__ */ new Map(); - root.instantiations.set(getTypeListId(outerTypeParameters), links.resolvedType); - } - } - return links.resolvedType; - } - function getTypeFromInferTypeNode(node) { - var links = getNodeLinks(node); - if (!links.resolvedType) { - links.resolvedType = getDeclaredTypeOfTypeParameter(getSymbolOfDeclaration(node.typeParameter)); - } - return links.resolvedType; - } - function getIdentifierChain(node) { - if (isIdentifier(node)) { - return [node]; - } - else { - return append(getIdentifierChain(node.left), node.right); - } - } - function getTypeFromImportTypeNode(node) { - var _a; - var links = getNodeLinks(node); - if (!links.resolvedType) { - if (!isLiteralImportTypeNode(node)) { - error2(node.argument, Diagnostics.String_literal_expected); - links.resolvedSymbol = unknownSymbol; - return links.resolvedType = errorType; - } - var targetMeaning = node.isTypeOf ? 111551 /* Value */ : node.flags & 16777216 /* JSDoc */ ? 111551 /* Value */ | 788968 /* Type */ : 788968 /* Type */; - var innerModuleSymbol = resolveExternalModuleName(node, node.argument.literal); - if (!innerModuleSymbol) { - links.resolvedSymbol = unknownSymbol; - return links.resolvedType = errorType; - } - var isExportEquals = !!((_a = innerModuleSymbol.exports) == null ? void 0 : _a.get("export=" /* ExportEquals */)); - var moduleSymbol = resolveExternalModuleSymbol(innerModuleSymbol, - /*dontResolveAlias*/ - false); - if (!nodeIsMissing(node.qualifier)) { - var nameStack = getIdentifierChain(node.qualifier); - var currentNamespace = moduleSymbol; - var current = void 0; - while (current = nameStack.shift()) { - var meaning = nameStack.length ? 1920 /* Namespace */ : targetMeaning; - var mergedResolvedSymbol = getMergedSymbol(resolveSymbol(currentNamespace)); - var symbolFromVariable = node.isTypeOf || isInJSFile(node) && isExportEquals ? getPropertyOfType(getTypeOfSymbol(mergedResolvedSymbol), current.escapedText, - /*skipObjectFunctionPropertyAugment*/ - false, - /*includeTypeOnlyMembers*/ - true) : void 0; - var symbolFromModule = node.isTypeOf ? void 0 : getSymbol2(getExportsOfSymbol(mergedResolvedSymbol), current.escapedText, meaning); - var next = symbolFromModule !== null && symbolFromModule !== void 0 ? symbolFromModule : symbolFromVariable; - if (!next) { - error2(current, Diagnostics.Namespace_0_has_no_exported_member_1, getFullyQualifiedName(currentNamespace), declarationNameToString(current)); - return links.resolvedType = errorType; - } - getNodeLinks(current).resolvedSymbol = next; - getNodeLinks(current.parent).resolvedSymbol = next; - currentNamespace = next; - } - links.resolvedType = resolveImportSymbolType(node, links, currentNamespace, targetMeaning); - } - else { - if (moduleSymbol.flags & targetMeaning) { - links.resolvedType = resolveImportSymbolType(node, links, moduleSymbol, targetMeaning); - } - else { - var errorMessage = targetMeaning === 111551 /* Value */ ? Diagnostics.Module_0_does_not_refer_to_a_value_but_is_used_as_a_value_here : Diagnostics.Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0; - error2(node, errorMessage, node.argument.literal.text); - links.resolvedSymbol = unknownSymbol; - links.resolvedType = errorType; - } - } - } - return links.resolvedType; - } - function resolveImportSymbolType(node, links, symbol, meaning) { - var resolvedSymbol = resolveSymbol(symbol); - links.resolvedSymbol = resolvedSymbol; - if (meaning === 111551 /* Value */) { - return getInstantiationExpressionType(getTypeOfSymbol(symbol), node); - } - else { - return getTypeReferenceType(node, resolvedSymbol); - } - } - function getTypeFromTypeLiteralOrFunctionOrConstructorTypeNode(node) { - var links = getNodeLinks(node); - if (!links.resolvedType) { - var aliasSymbol = getAliasSymbolForTypeNode(node); - if (getMembersOfSymbol(node.symbol).size === 0 && !aliasSymbol) { - links.resolvedType = emptyTypeLiteralType; - } - else { - var type = createObjectType(16 /* Anonymous */, node.symbol); - type.aliasSymbol = aliasSymbol; - type.aliasTypeArguments = getTypeArgumentsForAliasSymbol(aliasSymbol); - if (isJSDocTypeLiteral(node) && node.isArrayType) { - type = createArrayType(type); - } - links.resolvedType = type; - } - } - return links.resolvedType; - } - function getAliasSymbolForTypeNode(node) { - var host2 = node.parent; - while (isParenthesizedTypeNode(host2) || isJSDocTypeExpression(host2) || isTypeOperatorNode(host2) && host2.operator === 148 /* ReadonlyKeyword */) { - host2 = host2.parent; - } - return isTypeAlias(host2) ? getSymbolOfDeclaration(host2) : void 0; - } - function getTypeArgumentsForAliasSymbol(symbol) { - return symbol ? getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(symbol) : void 0; - } - function isNonGenericObjectType(type) { - return !!(type.flags & 524288 /* Object */) && !isGenericMappedType(type); - } - function isEmptyObjectTypeOrSpreadsIntoEmptyObject(type) { - return isEmptyObjectType(type) || !!(type.flags & (65536 /* Null */ | 32768 /* Undefined */ | 528 /* BooleanLike */ | 296 /* NumberLike */ | 2112 /* BigIntLike */ | 402653316 /* StringLike */ | 1056 /* EnumLike */ | 67108864 /* NonPrimitive */ | 4194304 /* Index */)); - } - function tryMergeUnionOfObjectTypeAndEmptyObject(type, readonly) { - if (!(type.flags & 1048576 /* Union */)) { - return type; - } - if (every(type.types, isEmptyObjectTypeOrSpreadsIntoEmptyObject)) { - return find(type.types, isEmptyObjectType) || emptyObjectType; - } - var firstType = find(type.types, function (t) { return !isEmptyObjectTypeOrSpreadsIntoEmptyObject(t); }); - if (!firstType) { - return type; - } - var secondType = find(type.types, function (t) { return t !== firstType && !isEmptyObjectTypeOrSpreadsIntoEmptyObject(t); }); - if (secondType) { - return type; - } - return getAnonymousPartialType(firstType); - function getAnonymousPartialType(type2) { - var e_252, _t; - var members = createSymbolTable(); - try { - for (var _u = __values(getPropertiesOfType(type2)), _v = _u.next(); !_v.done; _v = _u.next()) { - var prop = _v.value; - if (getDeclarationModifierFlagsFromSymbol(prop) & (8 /* Private */ | 16 /* Protected */)) { - } - else if (isSpreadableProperty(prop)) { - var isSetonlyAccessor = prop.flags & 65536 /* SetAccessor */ && !(prop.flags & 32768 /* GetAccessor */); - var flags = 4 /* Property */ | 16777216 /* Optional */; - var result = createSymbol(flags, prop.escapedName, getIsLateCheckFlag(prop) | (readonly ? 8 /* Readonly */ : 0)); - result.links.type = isSetonlyAccessor ? undefinedType : addOptionality(getTypeOfSymbol(prop), - /*isProperty*/ - true); - result.declarations = prop.declarations; - result.links.nameType = getSymbolLinks(prop).nameType; - result.links.syntheticOrigin = prop; - members.set(prop.escapedName, result); - } - } - } - catch (e_252_1) { e_252 = { error: e_252_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_252) throw e_252.error; } - } - var spread = createAnonymousType(type2.symbol, members, emptyArray, emptyArray, getIndexInfosOfType(type2)); - spread.objectFlags |= 128 /* ObjectLiteral */ | 131072 /* ContainsObjectOrArrayLiteral */; - return spread; - } - } - function getSpreadType(left, right, symbol, objectFlags, readonly) { - var e_253, _t, e_254, _u; - if (left.flags & 1 /* Any */ || right.flags & 1 /* Any */) { - return anyType; - } - if (left.flags & 2 /* Unknown */ || right.flags & 2 /* Unknown */) { - return unknownType; - } - if (left.flags & 131072 /* Never */) { - return right; - } - if (right.flags & 131072 /* Never */) { - return left; - } - left = tryMergeUnionOfObjectTypeAndEmptyObject(left, readonly); - if (left.flags & 1048576 /* Union */) { - return checkCrossProductUnion([left, right]) ? mapType(left, function (t) { return getSpreadType(t, right, symbol, objectFlags, readonly); }) : errorType; - } - right = tryMergeUnionOfObjectTypeAndEmptyObject(right, readonly); - if (right.flags & 1048576 /* Union */) { - return checkCrossProductUnion([left, right]) ? mapType(right, function (t) { return getSpreadType(left, t, symbol, objectFlags, readonly); }) : errorType; - } - if (right.flags & (528 /* BooleanLike */ | 296 /* NumberLike */ | 2112 /* BigIntLike */ | 402653316 /* StringLike */ | 1056 /* EnumLike */ | 67108864 /* NonPrimitive */ | 4194304 /* Index */)) { - return left; - } - if (isGenericObjectType(left) || isGenericObjectType(right)) { - if (isEmptyObjectType(left)) { - return right; - } - if (left.flags & 2097152 /* Intersection */) { - var types = left.types; - var lastLeft = types[types.length - 1]; - if (isNonGenericObjectType(lastLeft) && isNonGenericObjectType(right)) { - return getIntersectionType(concatenate(types.slice(0, types.length - 1), [getSpreadType(lastLeft, right, symbol, objectFlags, readonly)])); - } - } - return getIntersectionType([left, right]); - } - var members = createSymbolTable(); - var skippedPrivateMembers = /* @__PURE__ */ new Set(); - var indexInfos = left === emptyObjectType ? getIndexInfosOfType(right) : getUnionIndexInfos([left, right]); - try { - for (var _v = __values(getPropertiesOfType(right)), _w = _v.next(); !_w.done; _w = _v.next()) { - var rightProp = _w.value; - if (getDeclarationModifierFlagsFromSymbol(rightProp) & (8 /* Private */ | 16 /* Protected */)) { - skippedPrivateMembers.add(rightProp.escapedName); - } - else if (isSpreadableProperty(rightProp)) { - members.set(rightProp.escapedName, getSpreadSymbol(rightProp, readonly)); - } - } - } - catch (e_253_1) { e_253 = { error: e_253_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_253) throw e_253.error; } - } - try { - for (var _x = __values(getPropertiesOfType(left)), _y = _x.next(); !_y.done; _y = _x.next()) { - var leftProp = _y.value; - if (skippedPrivateMembers.has(leftProp.escapedName) || !isSpreadableProperty(leftProp)) { - continue; - } - if (members.has(leftProp.escapedName)) { - var rightProp = members.get(leftProp.escapedName); - var rightType = getTypeOfSymbol(rightProp); - if (rightProp.flags & 16777216 /* Optional */) { - var declarations = concatenate(leftProp.declarations, rightProp.declarations); - var flags = 4 /* Property */ | leftProp.flags & 16777216 /* Optional */; - var result = createSymbol(flags, leftProp.escapedName); - var leftType = getTypeOfSymbol(leftProp); - var leftTypeWithoutUndefined = removeMissingOrUndefinedType(leftType); - var rightTypeWithoutUndefined = removeMissingOrUndefinedType(rightType); - result.links.type = leftTypeWithoutUndefined === rightTypeWithoutUndefined ? leftType : getUnionType([leftType, rightTypeWithoutUndefined], 2 /* Subtype */); - result.links.leftSpread = leftProp; - result.links.rightSpread = rightProp; - result.declarations = declarations; - result.links.nameType = getSymbolLinks(leftProp).nameType; - members.set(leftProp.escapedName, result); - } - } - else { - members.set(leftProp.escapedName, getSpreadSymbol(leftProp, readonly)); - } - } - } - catch (e_254_1) { e_254 = { error: e_254_1 }; } - finally { - try { - if (_y && !_y.done && (_u = _x.return)) _u.call(_x); - } - finally { if (e_254) throw e_254.error; } - } - var spread = createAnonymousType(symbol, members, emptyArray, emptyArray, sameMap(indexInfos, function (info) { return getIndexInfoWithReadonly(info, readonly); })); - spread.objectFlags |= 128 /* ObjectLiteral */ | 131072 /* ContainsObjectOrArrayLiteral */ | 2097152 /* ContainsSpread */ | objectFlags; - return spread; - } - function isSpreadableProperty(prop) { - var _a; - return !some(prop.declarations, isPrivateIdentifierClassElementDeclaration) && (!(prop.flags & (8192 /* Method */ | 32768 /* GetAccessor */ | 65536 /* SetAccessor */)) || !((_a = prop.declarations) == null ? void 0 : _a.some(function (decl) { return isClassLike(decl.parent); }))); - } - function getSpreadSymbol(prop, readonly) { - var isSetonlyAccessor = prop.flags & 65536 /* SetAccessor */ && !(prop.flags & 32768 /* GetAccessor */); - if (!isSetonlyAccessor && readonly === isReadonlySymbol(prop)) { - return prop; - } - var flags = 4 /* Property */ | prop.flags & 16777216 /* Optional */; - var result = createSymbol(flags, prop.escapedName, getIsLateCheckFlag(prop) | (readonly ? 8 /* Readonly */ : 0)); - result.links.type = isSetonlyAccessor ? undefinedType : getTypeOfSymbol(prop); - result.declarations = prop.declarations; - result.links.nameType = getSymbolLinks(prop).nameType; - result.links.syntheticOrigin = prop; - return result; - } - function getIndexInfoWithReadonly(info, readonly) { - return info.isReadonly !== readonly ? createIndexInfo(info.keyType, info.type, readonly, info.declaration) : info; - } - function createLiteralType(flags, value, symbol, regularType) { - var type = createTypeWithSymbol(flags, symbol); - type.value = value; - type.regularType = regularType || type; - return type; - } - function getFreshTypeOfLiteralType(type) { - if (type.flags & 2976 /* Freshable */) { - if (!type.freshType) { - var freshType = createLiteralType(type.flags, type.value, type.symbol, type); - freshType.freshType = freshType; - type.freshType = freshType; - } - return type.freshType; - } - return type; - } - function getRegularTypeOfLiteralType(type) { - return type.flags & 2976 /* Freshable */ ? type.regularType : type.flags & 1048576 /* Union */ ? type.regularType || (type.regularType = mapType(type, getRegularTypeOfLiteralType)) : type; - } - function isFreshLiteralType(type) { - return !!(type.flags & 2976 /* Freshable */) && type.freshType === type; - } - function getStringLiteralType(value) { - var type; - return stringLiteralTypes.get(value) || (stringLiteralTypes.set(value, type = createLiteralType(128 /* StringLiteral */, value)), type); - } - function getNumberLiteralType(value) { - var type; - return numberLiteralTypes.get(value) || (numberLiteralTypes.set(value, type = createLiteralType(256 /* NumberLiteral */, value)), type); - } - function getBigIntLiteralType(value) { - var type; - var key = pseudoBigIntToString(value); - return bigIntLiteralTypes.get(key) || (bigIntLiteralTypes.set(key, type = createLiteralType(2048 /* BigIntLiteral */, value)), type); - } - function getEnumLiteralType(value, enumId, symbol) { - var type; - var key = "".concat(enumId).concat(typeof value === "string" ? "@" : "#").concat(value); - var flags = 1024 /* EnumLiteral */ | (typeof value === "string" ? 128 /* StringLiteral */ : 256 /* NumberLiteral */); - return enumLiteralTypes.get(key) || (enumLiteralTypes.set(key, type = createLiteralType(flags, value, symbol)), type); - } - function getTypeFromLiteralTypeNode(node) { - if (node.literal.kind === 106 /* NullKeyword */) { - return nullType; - } - var links = getNodeLinks(node); - if (!links.resolvedType) { - links.resolvedType = getRegularTypeOfLiteralType(checkExpression(node.literal)); - } - return links.resolvedType; - } - function createUniqueESSymbolType(symbol) { - var type = createTypeWithSymbol(8192 /* UniqueESSymbol */, symbol); - type.escapedName = "__@".concat(type.symbol.escapedName, "@").concat(getSymbolId(type.symbol)); - return type; - } - function getESSymbolLikeTypeForNode(node) { - if (isValidESSymbolDeclaration(node)) { - var symbol = isCommonJsExportPropertyAssignment(node) ? getSymbolOfNode(node.left) : getSymbolOfNode(node); - if (symbol) { - var links = getSymbolLinks(symbol); - return links.uniqueESSymbolType || (links.uniqueESSymbolType = createUniqueESSymbolType(symbol)); - } - } - return esSymbolType; - } - function getThisType(node) { - var container = getThisContainer(node, - /*includeArrowFunctions*/ - false, - /*includeClassComputedPropertyName*/ - false); - var parent2 = container && container.parent; - if (parent2 && (isClassLike(parent2) || parent2.kind === 264 /* InterfaceDeclaration */)) { - if (!isStatic(container) && (!isConstructorDeclaration(container) || isNodeDescendantOf(node, container.body))) { - return getDeclaredTypeOfClassOrInterface(getSymbolOfDeclaration(parent2)).thisType; - } - } - if (parent2 && isObjectLiteralExpression(parent2) && isBinaryExpression(parent2.parent) && getAssignmentDeclarationKind(parent2.parent) === 6 /* Prototype */) { - return getDeclaredTypeOfClassOrInterface(getSymbolOfNode(parent2.parent.left).parent).thisType; - } - var host2 = node.flags & 16777216 /* JSDoc */ ? getHostSignatureFromJSDoc(node) : void 0; - if (host2 && isFunctionExpression(host2) && isBinaryExpression(host2.parent) && getAssignmentDeclarationKind(host2.parent) === 3 /* PrototypeProperty */) { - return getDeclaredTypeOfClassOrInterface(getSymbolOfNode(host2.parent.left).parent).thisType; - } - if (isJSConstructor(container) && isNodeDescendantOf(node, container.body)) { - return getDeclaredTypeOfClassOrInterface(getSymbolOfDeclaration(container)).thisType; - } - error2(node, Diagnostics.A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface); - return errorType; - } - function getTypeFromThisTypeNode(node) { - var links = getNodeLinks(node); - if (!links.resolvedType) { - links.resolvedType = getThisType(node); - } - return links.resolvedType; - } - function getTypeFromRestTypeNode(node) { - return getTypeFromTypeNode(getArrayElementTypeNode(node.type) || node.type); - } - function getArrayElementTypeNode(node) { - switch (node.kind) { - case 196 /* ParenthesizedType */: - return getArrayElementTypeNode(node.type); - case 189 /* TupleType */: - if (node.elements.length === 1) { - node = node.elements[0]; - if (node.kind === 191 /* RestType */ || node.kind === 202 /* NamedTupleMember */ && node.dotDotDotToken) { - return getArrayElementTypeNode(node.type); - } - } - break; - case 188 /* ArrayType */: - return node.elementType; - } - return void 0; - } - function getTypeFromNamedTupleTypeNode(node) { - var links = getNodeLinks(node); - return links.resolvedType || (links.resolvedType = node.dotDotDotToken ? getTypeFromRestTypeNode(node) : addOptionality(getTypeFromTypeNode(node.type), - /*isProperty*/ - true, !!node.questionToken)); - } - function getTypeFromTypeNode(node) { - return getConditionalFlowTypeOfType(getTypeFromTypeNodeWorker(node), node); - } - function getTypeFromTypeNodeWorker(node) { - switch (node.kind) { - case 133 /* AnyKeyword */: - case 319 /* JSDocAllType */: - case 320 /* JSDocUnknownType */: - return anyType; - case 159 /* UnknownKeyword */: - return unknownType; - case 154 /* StringKeyword */: - return stringType; - case 150 /* NumberKeyword */: - return numberType; - case 163 /* BigIntKeyword */: - return bigintType; - case 136 /* BooleanKeyword */: - return booleanType; - case 155 /* SymbolKeyword */: - return esSymbolType; - case 116 /* VoidKeyword */: - return voidType; - case 157 /* UndefinedKeyword */: - return undefinedType; - case 106 /* NullKeyword */: - return nullType; - case 146 /* NeverKeyword */: - return neverType; - case 151 /* ObjectKeyword */: - return node.flags & 524288 /* JavaScriptFile */ && !noImplicitAny ? anyType : nonPrimitiveType; - case 141 /* IntrinsicKeyword */: - return intrinsicMarkerType; - case 197 /* ThisType */: - case 110 /* ThisKeyword */: - return getTypeFromThisTypeNode(node); - case 201 /* LiteralType */: - return getTypeFromLiteralTypeNode(node); - case 183 /* TypeReference */: - return getTypeFromTypeReference(node); - case 182 /* TypePredicate */: - return node.assertsModifier ? voidType : booleanType; - case 233 /* ExpressionWithTypeArguments */: - return getTypeFromTypeReference(node); - case 186 /* TypeQuery */: - return getTypeFromTypeQueryNode(node); - case 188 /* ArrayType */: - case 189 /* TupleType */: - return getTypeFromArrayOrTupleTypeNode(node); - case 190 /* OptionalType */: - return getTypeFromOptionalTypeNode(node); - case 192 /* UnionType */: - return getTypeFromUnionTypeNode(node); - case 193 /* IntersectionType */: - return getTypeFromIntersectionTypeNode(node); - case 321 /* JSDocNullableType */: - return getTypeFromJSDocNullableTypeNode(node); - case 323 /* JSDocOptionalType */: - return addOptionality(getTypeFromTypeNode(node.type)); - case 202 /* NamedTupleMember */: - return getTypeFromNamedTupleTypeNode(node); - case 196 /* ParenthesizedType */: - case 322 /* JSDocNonNullableType */: - case 316 /* JSDocTypeExpression */: - return getTypeFromTypeNode(node.type); - case 191 /* RestType */: - return getTypeFromRestTypeNode(node); - case 325 /* JSDocVariadicType */: - return getTypeFromJSDocVariadicType(node); - case 184 /* FunctionType */: - case 185 /* ConstructorType */: - case 187 /* TypeLiteral */: - case 329 /* JSDocTypeLiteral */: - case 324 /* JSDocFunctionType */: - case 330 /* JSDocSignature */: - return getTypeFromTypeLiteralOrFunctionOrConstructorTypeNode(node); - case 198 /* TypeOperator */: - return getTypeFromTypeOperatorNode(node); - case 199 /* IndexedAccessType */: - return getTypeFromIndexedAccessTypeNode(node); - case 200 /* MappedType */: - return getTypeFromMappedTypeNode(node); - case 194 /* ConditionalType */: - return getTypeFromConditionalTypeNode(node); - case 195 /* InferType */: - return getTypeFromInferTypeNode(node); - case 203 /* TemplateLiteralType */: - return getTypeFromTemplateTypeNode(node); - case 205 /* ImportType */: - return getTypeFromImportTypeNode(node); - case 80 /* Identifier */: - case 166 /* QualifiedName */: - case 211 /* PropertyAccessExpression */: - var symbol = getSymbolAtLocation(node); - return symbol ? getDeclaredTypeOfSymbol(symbol) : errorType; - default: - return errorType; - } - } - function instantiateList(items, mapper, instantiator) { - if (items && items.length) { - for (var i = 0; i < items.length; i++) { - var item = items[i]; - var mapped = instantiator(item, mapper); - if (item !== mapped) { - var result = i === 0 ? [] : items.slice(0, i); - result.push(mapped); - for (i++; i < items.length; i++) { - result.push(instantiator(items[i], mapper)); - } - return result; - } - } - } - return items; - } - function instantiateTypes(types, mapper) { - return instantiateList(types, mapper, instantiateType); - } - function instantiateSignatures(signatures, mapper) { - return instantiateList(signatures, mapper, instantiateSignature); - } - function instantiateIndexInfos(indexInfos, mapper) { - return instantiateList(indexInfos, mapper, instantiateIndexInfo); - } - function createTypeMapper(sources, targets) { - return sources.length === 1 ? makeUnaryTypeMapper(sources[0], targets ? targets[0] : anyType) : makeArrayTypeMapper(sources, targets); - } - function getMappedType(type, mapper) { - switch (mapper.kind) { - case 0 /* Simple */: - return type === mapper.source ? mapper.target : type; - case 1 /* Array */: { - var sources = mapper.sources; - var targets = mapper.targets; - for (var i = 0; i < sources.length; i++) { - if (type === sources[i]) { - return targets ? targets[i] : anyType; - } - } - return type; - } - case 2 /* Deferred */: { - var sources = mapper.sources; - var targets = mapper.targets; - for (var i = 0; i < sources.length; i++) { - if (type === sources[i]) { - return targets[i](); - } - } - return type; - } - case 3 /* Function */: - return mapper.func(type); - case 4 /* Composite */: - case 5 /* Merged */: - var t1 = getMappedType(type, mapper.mapper1); - return t1 !== type && mapper.kind === 4 /* Composite */ ? instantiateType(t1, mapper.mapper2) : getMappedType(t1, mapper.mapper2); - } - } - function makeUnaryTypeMapper(source, target) { - return Debug.attachDebugPrototypeIfDebug({ kind: 0 /* Simple */, source: source, target: target }); - } - function makeArrayTypeMapper(sources, targets) { - return Debug.attachDebugPrototypeIfDebug({ kind: 1 /* Array */, sources: sources, targets: targets }); - } - function makeFunctionTypeMapper(func, debugInfo) { - return Debug.attachDebugPrototypeIfDebug({ kind: 3 /* Function */, func: func, debugInfo: Debug.isDebugging ? debugInfo : void 0 }); - } - function makeDeferredTypeMapper(sources, targets) { - return Debug.attachDebugPrototypeIfDebug({ kind: 2 /* Deferred */, sources: sources, targets: targets }); - } - function makeCompositeTypeMapper(kind, mapper1, mapper2) { - return Debug.attachDebugPrototypeIfDebug({ kind: kind, mapper1: mapper1, mapper2: mapper2 }); - } - function createTypeEraser(sources) { - return createTypeMapper(sources, - /*targets*/ - void 0); - } - function createBackreferenceMapper(context, index) { - var forwardInferences = context.inferences.slice(index); - return createTypeMapper(map(forwardInferences, function (i) { return i.typeParameter; }), map(forwardInferences, function () { return unknownType; })); - } - function combineTypeMappers(mapper1, mapper2) { - return mapper1 ? makeCompositeTypeMapper(4 /* Composite */, mapper1, mapper2) : mapper2; - } - function mergeTypeMappers(mapper1, mapper2) { - return mapper1 ? makeCompositeTypeMapper(5 /* Merged */, mapper1, mapper2) : mapper2; - } - function prependTypeMapping(source, target, mapper) { - return !mapper ? makeUnaryTypeMapper(source, target) : makeCompositeTypeMapper(5 /* Merged */, makeUnaryTypeMapper(source, target), mapper); - } - function appendTypeMapping(mapper, source, target) { - return !mapper ? makeUnaryTypeMapper(source, target) : makeCompositeTypeMapper(5 /* Merged */, mapper, makeUnaryTypeMapper(source, target)); - } - function getRestrictiveTypeParameter(tp) { - return !tp.constraint && !getConstraintDeclaration(tp) || tp.constraint === noConstraintType ? tp : tp.restrictiveInstantiation || (tp.restrictiveInstantiation = createTypeParameter(tp.symbol), tp.restrictiveInstantiation.constraint = noConstraintType, tp.restrictiveInstantiation); - } - function cloneTypeParameter(typeParameter) { - var result = createTypeParameter(typeParameter.symbol); - result.target = typeParameter; - return result; - } - function instantiateTypePredicate(predicate, mapper) { - return createTypePredicate(predicate.kind, predicate.parameterName, predicate.parameterIndex, instantiateType(predicate.type, mapper)); - } - function instantiateSignature(signature, mapper, eraseTypeParameters) { - var e_255, _t; - var freshTypeParameters; - if (signature.typeParameters && !eraseTypeParameters) { - freshTypeParameters = map(signature.typeParameters, cloneTypeParameter); - mapper = combineTypeMappers(createTypeMapper(signature.typeParameters, freshTypeParameters), mapper); - try { - for (var freshTypeParameters_1 = __values(freshTypeParameters), freshTypeParameters_1_1 = freshTypeParameters_1.next(); !freshTypeParameters_1_1.done; freshTypeParameters_1_1 = freshTypeParameters_1.next()) { - var tp = freshTypeParameters_1_1.value; - tp.mapper = mapper; - } - } - catch (e_255_1) { e_255 = { error: e_255_1 }; } - finally { - try { - if (freshTypeParameters_1_1 && !freshTypeParameters_1_1.done && (_t = freshTypeParameters_1.return)) _t.call(freshTypeParameters_1); - } - finally { if (e_255) throw e_255.error; } - } - } - var result = createSignature(signature.declaration, freshTypeParameters, signature.thisParameter && instantiateSymbol(signature.thisParameter, mapper), instantiateList(signature.parameters, mapper, instantiateSymbol), - /*resolvedReturnType*/ - void 0, - /*resolvedTypePredicate*/ - void 0, signature.minArgumentCount, signature.flags & 167 /* PropagatingFlags */); - result.target = signature; - result.mapper = mapper; - return result; - } - function instantiateSymbol(symbol, mapper) { - var links = getSymbolLinks(symbol); - if (links.type && !couldContainTypeVariables(links.type)) { - return symbol; - } - if (getCheckFlags(symbol) & 1 /* Instantiated */) { - symbol = links.target; - mapper = combineTypeMappers(links.mapper, mapper); - } - var result = createSymbol(symbol.flags, symbol.escapedName, 1 /* Instantiated */ | getCheckFlags(symbol) & (8 /* Readonly */ | 4096 /* Late */ | 16384 /* OptionalParameter */ | 32768 /* RestParameter */)); - result.declarations = symbol.declarations; - result.parent = symbol.parent; - result.links.target = symbol; - result.links.mapper = mapper; - if (symbol.valueDeclaration) { - result.valueDeclaration = symbol.valueDeclaration; - } - if (links.nameType) { - result.links.nameType = links.nameType; - } - return result; - } - function getObjectTypeInstantiation(type, mapper, aliasSymbol, aliasTypeArguments) { - var declaration = type.objectFlags & 4 /* Reference */ ? type.node : type.objectFlags & 8388608 /* InstantiationExpressionType */ ? type.node : type.symbol.declarations[0]; - var links = getNodeLinks(declaration); - var target = type.objectFlags & 4 /* Reference */ ? links.resolvedType : type.objectFlags & 64 /* Instantiated */ ? type.target : type; - var typeParameters = links.outerTypeParameters; - if (!typeParameters) { - var outerTypeParameters = getOuterTypeParameters(declaration, - /*includeThisTypes*/ - true); - if (isJSConstructor(declaration)) { - var templateTagParameters = getTypeParametersFromDeclaration(declaration); - outerTypeParameters = addRange(outerTypeParameters, templateTagParameters); - } - typeParameters = outerTypeParameters || emptyArray; - var allDeclarations_1 = type.objectFlags & (4 /* Reference */ | 8388608 /* InstantiationExpressionType */) ? [declaration] : type.symbol.declarations; - typeParameters = (target.objectFlags & (4 /* Reference */ | 8388608 /* InstantiationExpressionType */) || target.symbol.flags & 8192 /* Method */ || target.symbol.flags & 2048 /* TypeLiteral */) && !target.aliasTypeArguments ? filter(typeParameters, function (tp) { return some(allDeclarations_1, function (d) { return isTypeParameterPossiblyReferenced(tp, d); }); }) : typeParameters; - links.outerTypeParameters = typeParameters; - } - if (typeParameters.length) { - var combinedMapper_1 = combineTypeMappers(type.mapper, mapper); - var typeArguments = map(typeParameters, function (t) { return getMappedType(t, combinedMapper_1); }); - var newAliasSymbol = aliasSymbol || type.aliasSymbol; - var newAliasTypeArguments = aliasSymbol ? aliasTypeArguments : instantiateTypes(type.aliasTypeArguments, mapper); - var id = getTypeListId(typeArguments) + getAliasId(newAliasSymbol, newAliasTypeArguments); - if (!target.instantiations) { - target.instantiations = /* @__PURE__ */ new Map(); - target.instantiations.set(getTypeListId(typeParameters) + getAliasId(target.aliasSymbol, target.aliasTypeArguments), target); - } - var result = target.instantiations.get(id); - if (!result) { - var newMapper = createTypeMapper(typeParameters, typeArguments); - result = target.objectFlags & 4 /* Reference */ ? createDeferredTypeReference(type.target, type.node, newMapper, newAliasSymbol, newAliasTypeArguments) : target.objectFlags & 32 /* Mapped */ ? instantiateMappedType(target, newMapper, newAliasSymbol, newAliasTypeArguments) : instantiateAnonymousType(target, newMapper, newAliasSymbol, newAliasTypeArguments); - target.instantiations.set(id, result); - var resultObjectFlags = getObjectFlags(result); - if (result.flags & 138117121 /* ObjectFlagsType */ && !(resultObjectFlags & 524288 /* CouldContainTypeVariablesComputed */)) { - var resultCouldContainTypeVariables = some(typeArguments, couldContainTypeVariables); - if (!(getObjectFlags(result) & 524288 /* CouldContainTypeVariablesComputed */)) { - if (resultObjectFlags & (32 /* Mapped */ | 16 /* Anonymous */ | 4 /* Reference */)) { - result.objectFlags |= 524288 /* CouldContainTypeVariablesComputed */ | (resultCouldContainTypeVariables ? 1048576 /* CouldContainTypeVariables */ : 0); - } - else { - result.objectFlags |= !resultCouldContainTypeVariables ? 524288 /* CouldContainTypeVariablesComputed */ : 0; - } - } - } - } - return result; - } - return type; - } - function maybeTypeParameterReference(node) { - return !(node.parent.kind === 183 /* TypeReference */ && node.parent.typeArguments && node === node.parent.typeName || node.parent.kind === 205 /* ImportType */ && node.parent.typeArguments && node === node.parent.qualifier); - } - function isTypeParameterPossiblyReferenced(tp, node) { - if (tp.symbol && tp.symbol.declarations && tp.symbol.declarations.length === 1) { - var container = tp.symbol.declarations[0].parent; - for (var n = node; n !== container; n = n.parent) { - if (!n || n.kind === 241 /* Block */ || n.kind === 194 /* ConditionalType */ && forEachChild(n.extendsType, containsReference)) { - return true; - } - } - return containsReference(node); - } - return true; - function containsReference(node2) { - switch (node2.kind) { - case 197 /* ThisType */: - return !!tp.isThisType; - case 80 /* Identifier */: - return !tp.isThisType && isPartOfTypeNode(node2) && maybeTypeParameterReference(node2) && getTypeFromTypeNodeWorker(node2) === tp; - case 186 /* TypeQuery */: - var entityName = node2.exprName; - var firstIdentifier = getFirstIdentifier(entityName); - if (!isThisIdentifier(firstIdentifier)) { - var firstIdentifierSymbol = getResolvedSymbol(firstIdentifier); - var tpDeclaration = tp.symbol.declarations[0]; - var tpScope_1 = tpDeclaration.kind === 168 /* TypeParameter */ ? tpDeclaration.parent : ( - // Type parameter is a regular type parameter, e.g. foo - tp.isThisType ? tpDeclaration : ( - // Type parameter is the this type, and its declaration is the class declaration. - void 0)); - if (firstIdentifierSymbol.declarations && tpScope_1) { - return some(firstIdentifierSymbol.declarations, function (idDecl) { return isNodeDescendantOf(idDecl, tpScope_1); }) || some(node2.typeArguments, containsReference); - } - } - return true; - case 174 /* MethodDeclaration */: - case 173 /* MethodSignature */: - return !node2.type && !!node2.body || some(node2.typeParameters, containsReference) || some(node2.parameters, containsReference) || !!node2.type && containsReference(node2.type); - } - return !!forEachChild(node2, containsReference); - } - } - function getHomomorphicTypeVariable(type) { - var constraintType = getConstraintTypeFromMappedType(type); - if (constraintType.flags & 4194304 /* Index */) { - var typeVariable = getActualTypeVariable(constraintType.type); - if (typeVariable.flags & 262144 /* TypeParameter */) { - return typeVariable; - } - } - return void 0; - } - function instantiateMappedType(type, mapper, aliasSymbol, aliasTypeArguments) { - var typeVariable = getHomomorphicTypeVariable(type); - if (typeVariable) { - var mappedTypeVariable = instantiateType(typeVariable, mapper); - if (typeVariable !== mappedTypeVariable) { - return mapTypeWithAlias(getReducedType(mappedTypeVariable), function (t) { - if (t.flags & (3 /* AnyOrUnknown */ | 58982400 /* InstantiableNonPrimitive */ | 524288 /* Object */ | 2097152 /* Intersection */) && t !== wildcardType && !isErrorType(t)) { - if (!type.declaration.nameType) { - var constraint = void 0; - if (isArrayType(t) || t.flags & 1 /* Any */ && findResolutionCycleStartIndex(typeVariable, 4 /* ImmediateBaseConstraint */) < 0 && (constraint = getConstraintOfTypeParameter(typeVariable)) && everyType(constraint, isArrayOrTupleType)) { - return instantiateMappedArrayType(t, type, prependTypeMapping(typeVariable, t, mapper)); - } - if (isGenericTupleType(t)) { - return instantiateMappedGenericTupleType(t, type, typeVariable, mapper); - } - if (isTupleType(t)) { - return instantiateMappedTupleType(t, type, prependTypeMapping(typeVariable, t, mapper)); - } - } - return instantiateAnonymousType(type, prependTypeMapping(typeVariable, t, mapper)); - } - return t; - }, aliasSymbol, aliasTypeArguments); - } - } - return instantiateType(getConstraintTypeFromMappedType(type), mapper) === wildcardType ? wildcardType : instantiateAnonymousType(type, mapper, aliasSymbol, aliasTypeArguments); - } - function getModifiedReadonlyState(state, modifiers) { - return modifiers & 1 /* IncludeReadonly */ ? true : modifiers & 2 /* ExcludeReadonly */ ? false : state; - } - function instantiateMappedGenericTupleType(tupleType, mappedType, typeVariable, mapper) { - var elementFlags = tupleType.target.elementFlags; - var elementTypes = map(getElementTypes(tupleType), function (t, i) { - var singleton = elementFlags[i] & 8 /* Variadic */ ? t : elementFlags[i] & 4 /* Rest */ ? createArrayType(t) : createTupleType([t], [elementFlags[i]]); - if (singleton === typeVariable) { - return mappedType; - } - return instantiateMappedType(mappedType, prependTypeMapping(typeVariable, singleton, mapper)); - }); - var newReadonly = getModifiedReadonlyState(tupleType.target.readonly, getMappedTypeModifiers(mappedType)); - return createTupleType(elementTypes, map(elementTypes, function (_) { return 8; } /* Variadic */), newReadonly); - } - function instantiateMappedArrayType(arrayType, mappedType, mapper) { - var elementType = instantiateMappedTypeTemplate(mappedType, numberType, - /*isOptional*/ - true, mapper); - return isErrorType(elementType) ? errorType : createArrayType(elementType, getModifiedReadonlyState(isReadonlyArrayType(arrayType), getMappedTypeModifiers(mappedType))); - } - function instantiateMappedTupleType(tupleType, mappedType, mapper) { - var elementFlags = tupleType.target.elementFlags; - var elementTypes = map(getElementTypes(tupleType), function (_, i) { return instantiateMappedTypeTemplate(mappedType, getStringLiteralType("" + i), !!(elementFlags[i] & 2 /* Optional */), mapper); }); - var modifiers = getMappedTypeModifiers(mappedType); - var newTupleModifiers = modifiers & 4 /* IncludeOptional */ ? map(elementFlags, function (f) { return f & 1 /* Required */ ? 2 /* Optional */ : f; }) : modifiers & 8 /* ExcludeOptional */ ? map(elementFlags, function (f) { return f & 2 /* Optional */ ? 1 /* Required */ : f; }) : elementFlags; - var newReadonly = getModifiedReadonlyState(tupleType.target.readonly, modifiers); - return contains(elementTypes, errorType) ? errorType : createTupleType(elementTypes, newTupleModifiers, newReadonly, tupleType.target.labeledElementDeclarations); - } - function instantiateMappedTypeTemplate(type, key, isOptional, mapper) { - var templateMapper = appendTypeMapping(mapper, getTypeParameterFromMappedType(type), key); - var propType = instantiateType(getTemplateTypeFromMappedType(type.target || type), templateMapper); - var modifiers = getMappedTypeModifiers(type); - return strictNullChecks && modifiers & 4 /* IncludeOptional */ && !maybeTypeOfKind(propType, 32768 /* Undefined */ | 16384 /* Void */) ? getOptionalType(propType, - /*isProperty*/ - true) : strictNullChecks && modifiers & 8 /* ExcludeOptional */ && isOptional ? getTypeWithFacts(propType, 524288 /* NEUndefined */) : propType; - } - function instantiateAnonymousType(type, mapper, aliasSymbol, aliasTypeArguments) { - var result = createObjectType(type.objectFlags & ~(524288 /* CouldContainTypeVariablesComputed */ | 1048576 /* CouldContainTypeVariables */) | 64 /* Instantiated */, type.symbol); - if (type.objectFlags & 32 /* Mapped */) { - result.declaration = type.declaration; - var origTypeParameter = getTypeParameterFromMappedType(type); - var freshTypeParameter = cloneTypeParameter(origTypeParameter); - result.typeParameter = freshTypeParameter; - mapper = combineTypeMappers(makeUnaryTypeMapper(origTypeParameter, freshTypeParameter), mapper); - freshTypeParameter.mapper = mapper; - } - if (type.objectFlags & 8388608 /* InstantiationExpressionType */) { - result.node = type.node; - } - result.target = type; - result.mapper = mapper; - result.aliasSymbol = aliasSymbol || type.aliasSymbol; - result.aliasTypeArguments = aliasSymbol ? aliasTypeArguments : instantiateTypes(type.aliasTypeArguments, mapper); - result.objectFlags |= result.aliasTypeArguments ? getPropagatingFlagsOfTypes(result.aliasTypeArguments) : 0; - return result; - } - function getConditionalTypeInstantiation(type, mapper, aliasSymbol, aliasTypeArguments) { - var root = type.root; - if (root.outerTypeParameters) { - var typeArguments = map(root.outerTypeParameters, function (t) { return getMappedType(t, mapper); }); - var id = getTypeListId(typeArguments) + getAliasId(aliasSymbol, aliasTypeArguments); - var result = root.instantiations.get(id); - if (!result) { - var newMapper_1 = createTypeMapper(root.outerTypeParameters, typeArguments); - var checkType_1 = root.checkType; - var distributionType = root.isDistributive ? getMappedType(checkType_1, newMapper_1) : void 0; - result = distributionType && checkType_1 !== distributionType && distributionType.flags & (1048576 /* Union */ | 131072 /* Never */) ? mapTypeWithAlias(getReducedType(distributionType), function (t) { return getConditionalType(root, prependTypeMapping(checkType_1, t, newMapper_1)); }, aliasSymbol, aliasTypeArguments) : getConditionalType(root, newMapper_1, aliasSymbol, aliasTypeArguments); - root.instantiations.set(id, result); - } - return result; - } - return type; - } - function instantiateType(type, mapper) { - return type && mapper ? instantiateTypeWithAlias(type, mapper, - /*aliasSymbol*/ - void 0, - /*aliasTypeArguments*/ - void 0) : type; - } - function instantiateTypeWithAlias(type, mapper, aliasSymbol, aliasTypeArguments) { - var _a; - if (!couldContainTypeVariables(type)) { - return type; - } - if (instantiationDepth === 100 || instantiationCount >= 5e6) { - (_a = tracing) == null ? void 0 : _a.instant(tracing.Phase.CheckTypes, "instantiateType_DepthLimit", { typeId: type.id, instantiationDepth: instantiationDepth, instantiationCount: instantiationCount }); - error2(currentNode, Diagnostics.Type_instantiation_is_excessively_deep_and_possibly_infinite); - return errorType; - } - totalInstantiationCount++; - instantiationCount++; - instantiationDepth++; - var result = instantiateTypeWorker(type, mapper, aliasSymbol, aliasTypeArguments); - instantiationDepth--; - return result; - } - function instantiateTypeWorker(type, mapper, aliasSymbol, aliasTypeArguments) { - var flags = type.flags; - if (flags & 262144 /* TypeParameter */) { - return getMappedType(type, mapper); - } - if (flags & 524288 /* Object */) { - var objectFlags = type.objectFlags; - if (objectFlags & (4 /* Reference */ | 16 /* Anonymous */ | 32 /* Mapped */)) { - if (objectFlags & 4 /* Reference */ && !type.node) { - var resolvedTypeArguments = type.resolvedTypeArguments; - var newTypeArguments = instantiateTypes(resolvedTypeArguments, mapper); - return newTypeArguments !== resolvedTypeArguments ? createNormalizedTypeReference(type.target, newTypeArguments) : type; - } - if (objectFlags & 1024 /* ReverseMapped */) { - return instantiateReverseMappedType(type, mapper); - } - return getObjectTypeInstantiation(type, mapper, aliasSymbol, aliasTypeArguments); - } - return type; - } - if (flags & 3145728 /* UnionOrIntersection */) { - var origin_3 = type.flags & 1048576 /* Union */ ? type.origin : void 0; - var types = origin_3 && origin_3.flags & 3145728 /* UnionOrIntersection */ ? origin_3.types : type.types; - var newTypes = instantiateTypes(types, mapper); - if (newTypes === types && aliasSymbol === type.aliasSymbol) { - return type; - } - var newAliasSymbol = aliasSymbol || type.aliasSymbol; - var newAliasTypeArguments = aliasSymbol ? aliasTypeArguments : instantiateTypes(type.aliasTypeArguments, mapper); - return flags & 2097152 /* Intersection */ || origin_3 && origin_3.flags & 2097152 /* Intersection */ ? getIntersectionType(newTypes, newAliasSymbol, newAliasTypeArguments) : getUnionType(newTypes, 1 /* Literal */, newAliasSymbol, newAliasTypeArguments); - } - if (flags & 4194304 /* Index */) { - return getIndexType(instantiateType(type.type, mapper)); - } - if (flags & 134217728 /* TemplateLiteral */) { - return getTemplateLiteralType(type.texts, instantiateTypes(type.types, mapper)); - } - if (flags & 268435456 /* StringMapping */) { - return getStringMappingType(type.symbol, instantiateType(type.type, mapper)); - } - if (flags & 8388608 /* IndexedAccess */) { - var newAliasSymbol = aliasSymbol || type.aliasSymbol; - var newAliasTypeArguments = aliasSymbol ? aliasTypeArguments : instantiateTypes(type.aliasTypeArguments, mapper); - return getIndexedAccessType(instantiateType(type.objectType, mapper), instantiateType(type.indexType, mapper), type.accessFlags, - /*accessNode*/ - void 0, newAliasSymbol, newAliasTypeArguments); - } - if (flags & 16777216 /* Conditional */) { - return getConditionalTypeInstantiation(type, combineTypeMappers(type.mapper, mapper), aliasSymbol, aliasTypeArguments); - } - if (flags & 33554432 /* Substitution */) { - var newBaseType = instantiateType(type.baseType, mapper); - var newConstraint = instantiateType(type.constraint, mapper); - if (newBaseType.flags & 8650752 /* TypeVariable */ && isGenericType(newConstraint)) { - return getSubstitutionType(newBaseType, newConstraint); - } - if (newConstraint.flags & 3 /* AnyOrUnknown */ || isTypeAssignableTo(getRestrictiveInstantiation(newBaseType), getRestrictiveInstantiation(newConstraint))) { - return newBaseType; - } - return newBaseType.flags & 8650752 /* TypeVariable */ ? getSubstitutionType(newBaseType, newConstraint) : getIntersectionType([newConstraint, newBaseType]); - } - return type; - } - function instantiateReverseMappedType(type, mapper) { - var innerMappedType = instantiateType(type.mappedType, mapper); - if (!(getObjectFlags(innerMappedType) & 32 /* Mapped */)) { - return type; - } - var innerIndexType = instantiateType(type.constraintType, mapper); - if (!(innerIndexType.flags & 4194304 /* Index */)) { - return type; - } - var instantiated = inferTypeForHomomorphicMappedType(instantiateType(type.source, mapper), innerMappedType, innerIndexType); - if (instantiated) { - return instantiated; - } - return type; - } - function getPermissiveInstantiation(type) { - return type.flags & (402784252 /* Primitive */ | 3 /* AnyOrUnknown */ | 131072 /* Never */) ? type : type.permissiveInstantiation || (type.permissiveInstantiation = instantiateType(type, permissiveMapper)); - } - function getRestrictiveInstantiation(type) { - if (type.flags & (402784252 /* Primitive */ | 3 /* AnyOrUnknown */ | 131072 /* Never */)) { - return type; - } - if (type.restrictiveInstantiation) { - return type.restrictiveInstantiation; - } - type.restrictiveInstantiation = instantiateType(type, restrictiveMapper); - type.restrictiveInstantiation.restrictiveInstantiation = type.restrictiveInstantiation; - return type.restrictiveInstantiation; - } - function instantiateIndexInfo(info, mapper) { - return createIndexInfo(info.keyType, instantiateType(info.type, mapper), info.isReadonly, info.declaration); - } - function isContextSensitive(node) { - Debug.assert(node.kind !== 174 /* MethodDeclaration */ || isObjectLiteralMethod(node)); - switch (node.kind) { - case 218 /* FunctionExpression */: - case 219 /* ArrowFunction */: - case 174 /* MethodDeclaration */: - case 262 /* FunctionDeclaration */: - return isContextSensitiveFunctionLikeDeclaration(node); - case 210 /* ObjectLiteralExpression */: - return some(node.properties, isContextSensitive); - case 209 /* ArrayLiteralExpression */: - return some(node.elements, isContextSensitive); - case 227 /* ConditionalExpression */: - return isContextSensitive(node.whenTrue) || isContextSensitive(node.whenFalse); - case 226 /* BinaryExpression */: - return (node.operatorToken.kind === 57 /* BarBarToken */ || node.operatorToken.kind === 61 /* QuestionQuestionToken */) && (isContextSensitive(node.left) || isContextSensitive(node.right)); - case 303 /* PropertyAssignment */: - return isContextSensitive(node.initializer); - case 217 /* ParenthesizedExpression */: - return isContextSensitive(node.expression); - case 292 /* JsxAttributes */: - return some(node.properties, isContextSensitive) || isJsxOpeningElement(node.parent) && some(node.parent.parent.children, isContextSensitive); - case 291 /* JsxAttribute */: { - var initializer = node.initializer; - return !!initializer && isContextSensitive(initializer); - } - case 294 /* JsxExpression */: { - var expression = node.expression; - return !!expression && isContextSensitive(expression); - } - } - return false; - } - function isContextSensitiveFunctionLikeDeclaration(node) { - return hasContextSensitiveParameters(node) || hasContextSensitiveReturnExpression(node); - } - function hasContextSensitiveReturnExpression(node) { - if (node.typeParameters || getEffectiveReturnTypeNode(node) || !node.body) { - return false; - } - if (node.body.kind !== 241 /* Block */) { - return isContextSensitive(node.body); - } - return !!forEachReturnStatement(node.body, function (statement) { return !!statement.expression && isContextSensitive(statement.expression); }); - } - function isContextSensitiveFunctionOrObjectLiteralMethod(func) { - return (isFunctionExpressionOrArrowFunction(func) || isObjectLiteralMethod(func)) && isContextSensitiveFunctionLikeDeclaration(func); - } - function getTypeWithoutSignatures(type) { - if (type.flags & 524288 /* Object */) { - var resolved = resolveStructuredTypeMembers(type); - if (resolved.constructSignatures.length || resolved.callSignatures.length) { - var result = createObjectType(16 /* Anonymous */, type.symbol); - result.members = resolved.members; - result.properties = resolved.properties; - result.callSignatures = emptyArray; - result.constructSignatures = emptyArray; - result.indexInfos = emptyArray; - return result; - } - } - else if (type.flags & 2097152 /* Intersection */) { - return getIntersectionType(map(type.types, getTypeWithoutSignatures)); - } - return type; - } - function isTypeIdenticalTo(source, target) { - return isTypeRelatedTo(source, target, identityRelation); - } - function compareTypesIdentical(source, target) { - return isTypeRelatedTo(source, target, identityRelation) ? -1 /* True */ : 0 /* False */; - } - function compareTypesAssignable(source, target) { - return isTypeRelatedTo(source, target, assignableRelation) ? -1 /* True */ : 0 /* False */; - } - function compareTypesSubtypeOf(source, target) { - return isTypeRelatedTo(source, target, subtypeRelation) ? -1 /* True */ : 0 /* False */; - } - function isTypeSubtypeOf(source, target) { - return isTypeRelatedTo(source, target, subtypeRelation); - } - function isTypeStrictSubtypeOf(source, target) { - return isTypeRelatedTo(source, target, strictSubtypeRelation); - } - function isTypeAssignableTo(source, target) { - return isTypeRelatedTo(source, target, assignableRelation); - } - function isTypeDerivedFrom(source, target) { - return source.flags & 1048576 /* Union */ ? every(source.types, function (t) { return isTypeDerivedFrom(t, target); }) : target.flags & 1048576 /* Union */ ? some(target.types, function (t) { return isTypeDerivedFrom(source, t); }) : source.flags & 2097152 /* Intersection */ ? some(source.types, function (t) { return isTypeDerivedFrom(t, target); }) : source.flags & 58982400 /* InstantiableNonPrimitive */ ? isTypeDerivedFrom(getBaseConstraintOfType(source) || unknownType, target) : isEmptyAnonymousObjectType(target) ? !!(source.flags & (524288 /* Object */ | 67108864 /* NonPrimitive */)) : target === globalObjectType ? !!(source.flags & (524288 /* Object */ | 67108864 /* NonPrimitive */)) && !isEmptyAnonymousObjectType(source) : target === globalFunctionType ? !!(source.flags & 524288 /* Object */) && isFunctionObjectType(source) : hasBaseType(source, getTargetType(target)) || isArrayType(target) && !isReadonlyArrayType(target) && isTypeDerivedFrom(source, globalReadonlyArrayType); - } - function isTypeComparableTo(source, target) { - return isTypeRelatedTo(source, target, comparableRelation); - } - function areTypesComparable(type1, type2) { - return isTypeComparableTo(type1, type2) || isTypeComparableTo(type2, type1); - } - function checkTypeAssignableTo(source, target, errorNode, headMessage, containingMessageChain, errorOutputObject) { - return checkTypeRelatedTo(source, target, assignableRelation, errorNode, headMessage, containingMessageChain, errorOutputObject); - } - function checkTypeAssignableToAndOptionallyElaborate(source, target, errorNode, expr, headMessage, containingMessageChain) { - return checkTypeRelatedToAndOptionallyElaborate(source, target, assignableRelation, errorNode, expr, headMessage, containingMessageChain, - /*errorOutputContainer*/ - void 0); - } - function checkTypeRelatedToAndOptionallyElaborate(source, target, relation, errorNode, expr, headMessage, containingMessageChain, errorOutputContainer) { - if (isTypeRelatedTo(source, target, relation)) - return true; - if (!errorNode || !elaborateError(expr, source, target, relation, headMessage, containingMessageChain, errorOutputContainer)) { - return checkTypeRelatedTo(source, target, relation, errorNode, headMessage, containingMessageChain, errorOutputContainer); - } - return false; - } - function isOrHasGenericConditional(type) { - return !!(type.flags & 16777216 /* Conditional */ || type.flags & 2097152 /* Intersection */ && some(type.types, isOrHasGenericConditional)); - } - function elaborateError(node, source, target, relation, headMessage, containingMessageChain, errorOutputContainer) { - if (!node || isOrHasGenericConditional(target)) - return false; - if (!checkTypeRelatedTo(source, target, relation, - /*errorNode*/ - void 0) && elaborateDidYouMeanToCallOrConstruct(node, source, target, relation, headMessage, containingMessageChain, errorOutputContainer)) { - return true; - } - switch (node.kind) { - case 234 /* AsExpression */: - if (!isConstAssertion(node)) { - break; - } - case 294 /* JsxExpression */: - case 217 /* ParenthesizedExpression */: - return elaborateError(node.expression, source, target, relation, headMessage, containingMessageChain, errorOutputContainer); - case 226 /* BinaryExpression */: - switch (node.operatorToken.kind) { - case 64 /* EqualsToken */: - case 28 /* CommaToken */: - return elaborateError(node.right, source, target, relation, headMessage, containingMessageChain, errorOutputContainer); - } - break; - case 210 /* ObjectLiteralExpression */: - return elaborateObjectLiteral(node, source, target, relation, containingMessageChain, errorOutputContainer); - case 209 /* ArrayLiteralExpression */: - return elaborateArrayLiteral(node, source, target, relation, containingMessageChain, errorOutputContainer); - case 292 /* JsxAttributes */: - return elaborateJsxComponents(node, source, target, relation, containingMessageChain, errorOutputContainer); - case 219 /* ArrowFunction */: - return elaborateArrowFunction(node, source, target, relation, containingMessageChain, errorOutputContainer); - } - return false; - } - function elaborateDidYouMeanToCallOrConstruct(node, source, target, relation, headMessage, containingMessageChain, errorOutputContainer) { - var e_256, _t; - var callSignatures = getSignaturesOfType(source, 0 /* Call */); - var constructSignatures = getSignaturesOfType(source, 1 /* Construct */); - try { - for (var _u = __values([constructSignatures, callSignatures]), _v = _u.next(); !_v.done; _v = _u.next()) { - var signatures = _v.value; - if (some(signatures, function (s) { - var returnType = getReturnTypeOfSignature(s); - return !(returnType.flags & (1 /* Any */ | 131072 /* Never */)) && checkTypeRelatedTo(returnType, target, relation, - /*errorNode*/ - void 0); - })) { - var resultObj = errorOutputContainer || {}; - checkTypeAssignableTo(source, target, node, headMessage, containingMessageChain, resultObj); - var diagnostic = resultObj.errors[resultObj.errors.length - 1]; - addRelatedInfo(diagnostic, createDiagnosticForNode(node, signatures === constructSignatures ? Diagnostics.Did_you_mean_to_use_new_with_this_expression : Diagnostics.Did_you_mean_to_call_this_expression)); - return true; - } - } - } - catch (e_256_1) { e_256 = { error: e_256_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_256) throw e_256.error; } - } - return false; - } - function elaborateArrowFunction(node, source, target, relation, containingMessageChain, errorOutputContainer) { - if (isBlock(node.body)) { - return false; - } - if (some(node.parameters, hasType)) { - return false; - } - var sourceSig = getSingleCallSignature(source); - if (!sourceSig) { - return false; - } - var targetSignatures = getSignaturesOfType(target, 0 /* Call */); - if (!length(targetSignatures)) { - return false; - } - var returnExpression = node.body; - var sourceReturn = getReturnTypeOfSignature(sourceSig); - var targetReturn = getUnionType(map(targetSignatures, getReturnTypeOfSignature)); - if (!checkTypeRelatedTo(sourceReturn, targetReturn, relation, - /*errorNode*/ - void 0)) { - var elaborated = returnExpression && elaborateError(returnExpression, sourceReturn, targetReturn, relation, - /*headMessage*/ - void 0, containingMessageChain, errorOutputContainer); - if (elaborated) { - return elaborated; - } - var resultObj = errorOutputContainer || {}; - checkTypeRelatedTo(sourceReturn, targetReturn, relation, returnExpression, - /*headMessage*/ - void 0, containingMessageChain, resultObj); - if (resultObj.errors) { - if (target.symbol && length(target.symbol.declarations)) { - addRelatedInfo(resultObj.errors[resultObj.errors.length - 1], createDiagnosticForNode(target.symbol.declarations[0], Diagnostics.The_expected_type_comes_from_the_return_type_of_this_signature)); - } - if ((getFunctionFlags(node) & 2 /* Async */) === 0 && !getTypeOfPropertyOfType(sourceReturn, "then") && checkTypeRelatedTo(createPromiseType(sourceReturn), targetReturn, relation, - /*errorNode*/ - void 0)) { - addRelatedInfo(resultObj.errors[resultObj.errors.length - 1], createDiagnosticForNode(node, Diagnostics.Did_you_mean_to_mark_this_function_as_async)); - } - return true; - } - } - return false; - } - function getBestMatchIndexedAccessTypeOrUndefined(source, target, nameType) { - var idx = getIndexedAccessTypeOrUndefined(target, nameType); - if (idx) { - return idx; - } - if (target.flags & 1048576 /* Union */) { - var best = getBestMatchingType(source, target); - if (best) { - return getIndexedAccessTypeOrUndefined(best, nameType); - } - } - } - function checkExpressionForMutableLocationWithContextualType(next, sourcePropType) { - pushContextualType(next, sourcePropType, - /*isCache*/ - false); - var result = checkExpressionForMutableLocation(next, 1 /* Contextual */); - popContextualType(); - return result; - } - function elaborateElementwise(iterator, source, target, relation, containingMessageChain, errorOutputContainer) { - var e_257, _t; - var reportedError = false; - try { - for (var iterator_5 = __values(iterator), iterator_5_1 = iterator_5.next(); !iterator_5_1.done; iterator_5_1 = iterator_5.next()) { - var value = iterator_5_1.value; - var prop = value.errorNode, next = value.innerExpression, nameType = value.nameType, errorMessage = value.errorMessage; - var targetPropType = getBestMatchIndexedAccessTypeOrUndefined(source, target, nameType); - if (!targetPropType || targetPropType.flags & 8388608 /* IndexedAccess */) - continue; - var sourcePropType = getIndexedAccessTypeOrUndefined(source, nameType); - if (!sourcePropType) - continue; - var propName = getPropertyNameFromIndex(nameType, - /*accessNode*/ - void 0); - if (!checkTypeRelatedTo(sourcePropType, targetPropType, relation, - /*errorNode*/ - void 0)) { - var elaborated = next && elaborateError(next, sourcePropType, targetPropType, relation, - /*headMessage*/ - void 0, containingMessageChain, errorOutputContainer); - reportedError = true; - if (!elaborated) { - var resultObj = errorOutputContainer || {}; - var specificSource = next ? checkExpressionForMutableLocationWithContextualType(next, sourcePropType) : sourcePropType; - if (exactOptionalPropertyTypes && isExactOptionalPropertyMismatch(specificSource, targetPropType)) { - var diag2 = createDiagnosticForNode(prop, Diagnostics.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target, typeToString(specificSource), typeToString(targetPropType)); - diagnostics.add(diag2); - resultObj.errors = [diag2]; - } - else { - var targetIsOptional = !!(propName && (getPropertyOfType(target, propName) || unknownSymbol).flags & 16777216 /* Optional */); - var sourceIsOptional = !!(propName && (getPropertyOfType(source, propName) || unknownSymbol).flags & 16777216 /* Optional */); - targetPropType = removeMissingType(targetPropType, targetIsOptional); - sourcePropType = removeMissingType(sourcePropType, targetIsOptional && sourceIsOptional); - var result = checkTypeRelatedTo(specificSource, targetPropType, relation, prop, errorMessage, containingMessageChain, resultObj); - if (result && specificSource !== sourcePropType) { - checkTypeRelatedTo(sourcePropType, targetPropType, relation, prop, errorMessage, containingMessageChain, resultObj); - } - } - if (resultObj.errors) { - var reportedDiag = resultObj.errors[resultObj.errors.length - 1]; - var propertyName = isTypeUsableAsPropertyName(nameType) ? getPropertyNameFromType(nameType) : void 0; - var targetProp = propertyName !== void 0 ? getPropertyOfType(target, propertyName) : void 0; - var issuedElaboration = false; - if (!targetProp) { - var indexInfo = getApplicableIndexInfo(target, nameType); - if (indexInfo && indexInfo.declaration && !getSourceFileOfNode(indexInfo.declaration).hasNoDefaultLib) { - issuedElaboration = true; - addRelatedInfo(reportedDiag, createDiagnosticForNode(indexInfo.declaration, Diagnostics.The_expected_type_comes_from_this_index_signature)); - } - } - if (!issuedElaboration && (targetProp && length(targetProp.declarations) || target.symbol && length(target.symbol.declarations))) { - var targetNode = targetProp && length(targetProp.declarations) ? targetProp.declarations[0] : target.symbol.declarations[0]; - if (!getSourceFileOfNode(targetNode).hasNoDefaultLib) { - addRelatedInfo(reportedDiag, createDiagnosticForNode(targetNode, Diagnostics.The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1, propertyName && !(nameType.flags & 8192 /* UniqueESSymbol */) ? unescapeLeadingUnderscores(propertyName) : typeToString(nameType), typeToString(target))); - } - } - } - } - } - } - } - catch (e_257_1) { e_257 = { error: e_257_1 }; } - finally { - try { - if (iterator_5_1 && !iterator_5_1.done && (_t = iterator_5.return)) _t.call(iterator_5); - } - finally { if (e_257) throw e_257.error; } - } - return reportedError; - } - function elaborateIterableOrArrayLikeTargetElementwise(iterator, source, target, relation, containingMessageChain, errorOutputContainer) { - var tupleOrArrayLikeTargetParts = filterType(target, isArrayOrTupleLikeType); - var nonTupleOrArrayLikeTargetParts = filterType(target, function (t) { return !isArrayOrTupleLikeType(t); }); - var iterationType = nonTupleOrArrayLikeTargetParts !== neverType ? getIterationTypeOfIterable(13 /* ForOf */, 0 /* Yield */, nonTupleOrArrayLikeTargetParts, - /*errorNode*/ - void 0) : void 0; - var reportedError = false; - for (var status_1 = iterator.next(); !status_1.done; status_1 = iterator.next()) { - var _t = status_1.value, prop = _t.errorNode, next = _t.innerExpression, nameType = _t.nameType, errorMessage = _t.errorMessage; - var targetPropType = iterationType; - var targetIndexedPropType = tupleOrArrayLikeTargetParts !== neverType ? getBestMatchIndexedAccessTypeOrUndefined(source, tupleOrArrayLikeTargetParts, nameType) : void 0; - if (targetIndexedPropType && !(targetIndexedPropType.flags & 8388608 /* IndexedAccess */)) { - targetPropType = iterationType ? getUnionType([iterationType, targetIndexedPropType]) : targetIndexedPropType; - } - if (!targetPropType) - continue; - var sourcePropType = getIndexedAccessTypeOrUndefined(source, nameType); - if (!sourcePropType) - continue; - var propName = getPropertyNameFromIndex(nameType, - /*accessNode*/ - void 0); - if (!checkTypeRelatedTo(sourcePropType, targetPropType, relation, - /*errorNode*/ - void 0)) { - var elaborated = next && elaborateError(next, sourcePropType, targetPropType, relation, - /*headMessage*/ - void 0, containingMessageChain, errorOutputContainer); - reportedError = true; - if (!elaborated) { - var resultObj = errorOutputContainer || {}; - var specificSource = next ? checkExpressionForMutableLocationWithContextualType(next, sourcePropType) : sourcePropType; - if (exactOptionalPropertyTypes && isExactOptionalPropertyMismatch(specificSource, targetPropType)) { - var diag2 = createDiagnosticForNode(prop, Diagnostics.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target, typeToString(specificSource), typeToString(targetPropType)); - diagnostics.add(diag2); - resultObj.errors = [diag2]; - } - else { - var targetIsOptional = !!(propName && (getPropertyOfType(tupleOrArrayLikeTargetParts, propName) || unknownSymbol).flags & 16777216 /* Optional */); - var sourceIsOptional = !!(propName && (getPropertyOfType(source, propName) || unknownSymbol).flags & 16777216 /* Optional */); - targetPropType = removeMissingType(targetPropType, targetIsOptional); - sourcePropType = removeMissingType(sourcePropType, targetIsOptional && sourceIsOptional); - var result = checkTypeRelatedTo(specificSource, targetPropType, relation, prop, errorMessage, containingMessageChain, resultObj); - if (result && specificSource !== sourcePropType) { - checkTypeRelatedTo(sourcePropType, targetPropType, relation, prop, errorMessage, containingMessageChain, resultObj); - } - } - } - } - } - return reportedError; - } - function generateJsxAttributes(node) { - var _t, _u, prop, e_258_1; - var e_258, _v; - return __generator(this, function (_w) { - switch (_w.label) { - case 0: - if (!length(node.properties)) - return [2 /*return*/]; - _w.label = 1; - case 1: - _w.trys.push([1, 6, 7, 8]); - _t = __values(node.properties), _u = _t.next(); - _w.label = 2; - case 2: - if (!!_u.done) return [3 /*break*/, 5]; - prop = _u.value; - if (isJsxSpreadAttribute(prop) || isHyphenatedJsxName(getTextOfJsxAttributeName(prop.name))) - return [3 /*break*/, 4]; - return [4 /*yield*/, { errorNode: prop.name, innerExpression: prop.initializer, nameType: getStringLiteralType(getTextOfJsxAttributeName(prop.name)) }]; - case 3: - _w.sent(); - _w.label = 4; - case 4: - _u = _t.next(); - return [3 /*break*/, 2]; - case 5: return [3 /*break*/, 8]; - case 6: - e_258_1 = _w.sent(); - e_258 = { error: e_258_1 }; - return [3 /*break*/, 8]; - case 7: - try { - if (_u && !_u.done && (_v = _t.return)) _v.call(_t); - } - finally { if (e_258) throw e_258.error; } - return [7 /*endfinally*/]; - case 8: return [2 /*return*/]; - } - }); - } - function generateJsxChildren(node, getInvalidTextDiagnostic) { - var memberOffset, i, child, nameType, elem; - return __generator(this, function (_t) { - switch (_t.label) { - case 0: - if (!length(node.children)) - return [2 /*return*/]; - memberOffset = 0; - i = 0; - _t.label = 1; - case 1: - if (!(i < node.children.length)) return [3 /*break*/, 5]; - child = node.children[i]; - nameType = getNumberLiteralType(i - memberOffset); - elem = getElaborationElementForJsxChild(child, nameType, getInvalidTextDiagnostic); - if (!elem) return [3 /*break*/, 3]; - return [4 /*yield*/, elem]; - case 2: - _t.sent(); - return [3 /*break*/, 4]; - case 3: - memberOffset++; - _t.label = 4; - case 4: - i++; - return [3 /*break*/, 1]; - case 5: return [2 /*return*/]; - } - }); - } - function getElaborationElementForJsxChild(child, nameType, getInvalidTextDiagnostic) { - switch (child.kind) { - case 294 /* JsxExpression */: - return { errorNode: child, innerExpression: child.expression, nameType: nameType }; - case 12 /* JsxText */: - if (child.containsOnlyTriviaWhiteSpaces) { - break; - } - return { errorNode: child, innerExpression: void 0, nameType: nameType, errorMessage: getInvalidTextDiagnostic() }; - case 284 /* JsxElement */: - case 285 /* JsxSelfClosingElement */: - case 288 /* JsxFragment */: - return { errorNode: child, innerExpression: child, nameType: nameType }; - default: - return Debug.assertNever(child, "Found invalid jsx child"); - } - } - function elaborateJsxComponents(node, source, target, relation, containingMessageChain, errorOutputContainer) { - var result = elaborateElementwise(generateJsxAttributes(node), source, target, relation, containingMessageChain, errorOutputContainer); - var invalidTextDiagnostic; - if (isJsxOpeningElement(node.parent) && isJsxElement(node.parent.parent)) { - var containingElement = node.parent.parent; - var childPropName = getJsxElementChildrenPropertyName(getJsxNamespaceAt(node)); - var childrenPropName = childPropName === void 0 ? "children" : unescapeLeadingUnderscores(childPropName); - var childrenNameType = getStringLiteralType(childrenPropName); - var childrenTargetType = getIndexedAccessType(target, childrenNameType); - var validChildren = getSemanticJsxChildren(containingElement.children); - if (!length(validChildren)) { - return result; - } - var moreThanOneRealChildren = length(validChildren) > 1; - var arrayLikeTargetParts = void 0; - var nonArrayLikeTargetParts = void 0; - var iterableType = getGlobalIterableType( - /*reportErrors*/ - false); - if (iterableType !== emptyGenericType) { - var anyIterable_1 = createIterableType(anyType); - arrayLikeTargetParts = filterType(childrenTargetType, function (t) { return isTypeAssignableTo(t, anyIterable_1); }); - nonArrayLikeTargetParts = filterType(childrenTargetType, function (t) { return !isTypeAssignableTo(t, anyIterable_1); }); - } - else { - arrayLikeTargetParts = filterType(childrenTargetType, isArrayOrTupleLikeType); - nonArrayLikeTargetParts = filterType(childrenTargetType, function (t) { return !isArrayOrTupleLikeType(t); }); - } - if (moreThanOneRealChildren) { - if (arrayLikeTargetParts !== neverType) { - var realSource = createTupleType(checkJsxChildren(containingElement, 0 /* Normal */)); - var children = generateJsxChildren(containingElement, getInvalidTextualChildDiagnostic); - result = elaborateIterableOrArrayLikeTargetElementwise(children, realSource, arrayLikeTargetParts, relation, containingMessageChain, errorOutputContainer) || result; - } - else if (!isTypeRelatedTo(getIndexedAccessType(source, childrenNameType), childrenTargetType, relation)) { - result = true; - var diag2 = error2(containingElement.openingElement.tagName, Diagnostics.This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided, childrenPropName, typeToString(childrenTargetType)); - if (errorOutputContainer && errorOutputContainer.skipLogging) { - (errorOutputContainer.errors || (errorOutputContainer.errors = [])).push(diag2); - } - } - } - else { - if (nonArrayLikeTargetParts !== neverType) { - var child = validChildren[0]; - var elem_1 = getElaborationElementForJsxChild(child, childrenNameType, getInvalidTextualChildDiagnostic); - if (elem_1) { - result = elaborateElementwise(function () { - return __generator(this, function (_t) { - switch (_t.label) { - case 0: return [4 /*yield*/, elem_1]; - case 1: - _t.sent(); - return [2 /*return*/]; - } - }); - }(), source, target, relation, containingMessageChain, errorOutputContainer) || result; - } - } - else if (!isTypeRelatedTo(getIndexedAccessType(source, childrenNameType), childrenTargetType, relation)) { - result = true; - var diag2 = error2(containingElement.openingElement.tagName, Diagnostics.This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_provided, childrenPropName, typeToString(childrenTargetType)); - if (errorOutputContainer && errorOutputContainer.skipLogging) { - (errorOutputContainer.errors || (errorOutputContainer.errors = [])).push(diag2); - } - } - } - } - return result; - function getInvalidTextualChildDiagnostic() { - if (!invalidTextDiagnostic) { - var tagNameText = getTextOfNode(node.parent.tagName); - var childPropName = getJsxElementChildrenPropertyName(getJsxNamespaceAt(node)); - var childrenPropName = childPropName === void 0 ? "children" : unescapeLeadingUnderscores(childPropName); - var childrenTargetType = getIndexedAccessType(target, getStringLiteralType(childrenPropName)); - var diagnostic = Diagnostics._0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_type_of_1_is_2; - invalidTextDiagnostic = __assign(__assign({}, diagnostic), { key: "!!ALREADY FORMATTED!!", message: formatMessage( - /*dummy*/ - void 0, diagnostic, tagNameText, childrenPropName, typeToString(childrenTargetType)) }); - } - return invalidTextDiagnostic; - } - } - function generateLimitedTupleElements(node, target) { - var len, i, elem, nameType; - return __generator(this, function (_t) { - switch (_t.label) { - case 0: - len = length(node.elements); - if (!len) - return [2 /*return*/]; - i = 0; - _t.label = 1; - case 1: - if (!(i < len)) return [3 /*break*/, 4]; - if (isTupleLikeType(target) && !getPropertyOfType(target, "" + i)) - return [3 /*break*/, 3]; - elem = node.elements[i]; - if (isOmittedExpression(elem)) - return [3 /*break*/, 3]; - nameType = getNumberLiteralType(i); - return [4 /*yield*/, { errorNode: elem, innerExpression: elem, nameType: nameType }]; - case 2: - _t.sent(); - _t.label = 3; - case 3: - i++; - return [3 /*break*/, 1]; - case 4: return [2 /*return*/]; - } - }); - } - function elaborateArrayLiteral(node, source, target, relation, containingMessageChain, errorOutputContainer) { - if (target.flags & (402784252 /* Primitive */ | 131072 /* Never */)) - return false; - if (isTupleLikeType(source)) { - return elaborateElementwise(generateLimitedTupleElements(node, target), source, target, relation, containingMessageChain, errorOutputContainer); - } - pushContextualType(node, target, - /*isCache*/ - false); - var tupleizedType = checkArrayLiteral(node, 1 /* Contextual */, - /*forceTuple*/ - true); - popContextualType(); - if (isTupleLikeType(tupleizedType)) { - return elaborateElementwise(generateLimitedTupleElements(node, target), tupleizedType, target, relation, containingMessageChain, errorOutputContainer); - } - return false; - } - function generateObjectLiteralElements(node) { - var _t, _u, prop, type, _v, e_259_1; - var e_259, _w; - return __generator(this, function (_x) { - switch (_x.label) { - case 0: - if (!length(node.properties)) - return [2 /*return*/]; - _x.label = 1; - case 1: - _x.trys.push([1, 10, 11, 12]); - _t = __values(node.properties), _u = _t.next(); - _x.label = 2; - case 2: - if (!!_u.done) return [3 /*break*/, 9]; - prop = _u.value; - if (isSpreadAssignment(prop)) - return [3 /*break*/, 8]; - type = getLiteralTypeFromProperty(getSymbolOfDeclaration(prop), 8576 /* StringOrNumberLiteralOrUnique */); - if (!type || type.flags & 131072 /* Never */) { - return [3 /*break*/, 8]; - } - _v = prop.kind; - switch (_v) { - case 178 /* SetAccessor */: return [3 /*break*/, 3]; /* SetAccessor */ - case 177 /* GetAccessor */: return [3 /*break*/, 3]; /* GetAccessor */ - case 174 /* MethodDeclaration */: return [3 /*break*/, 3]; /* MethodDeclaration */ - case 304 /* ShorthandPropertyAssignment */: return [3 /*break*/, 3]; /* ShorthandPropertyAssignment */ - case 303 /* PropertyAssignment */: return [3 /*break*/, 5]; /* PropertyAssignment */ - } - return [3 /*break*/, 7]; - case 3: return [4 /*yield*/, { errorNode: prop.name, innerExpression: void 0, nameType: type }]; - case 4: - _x.sent(); - return [3 /*break*/, 8]; - case 5: return [4 /*yield*/, { errorNode: prop.name, innerExpression: prop.initializer, nameType: type, errorMessage: isComputedNonLiteralName(prop.name) ? Diagnostics.Type_of_computed_property_s_value_is_0_which_is_not_assignable_to_type_1 : void 0 }]; - case 6: - _x.sent(); - return [3 /*break*/, 8]; - case 7: - Debug.assertNever(prop); - _x.label = 8; - case 8: - _u = _t.next(); - return [3 /*break*/, 2]; - case 9: return [3 /*break*/, 12]; - case 10: - e_259_1 = _x.sent(); - e_259 = { error: e_259_1 }; - return [3 /*break*/, 12]; - case 11: - try { - if (_u && !_u.done && (_w = _t.return)) _w.call(_t); - } - finally { if (e_259) throw e_259.error; } - return [7 /*endfinally*/]; - case 12: return [2 /*return*/]; - } - }); - } - function elaborateObjectLiteral(node, source, target, relation, containingMessageChain, errorOutputContainer) { - if (target.flags & (402784252 /* Primitive */ | 131072 /* Never */)) - return false; - return elaborateElementwise(generateObjectLiteralElements(node), source, target, relation, containingMessageChain, errorOutputContainer); - } - function checkTypeComparableTo(source, target, errorNode, headMessage, containingMessageChain) { - return checkTypeRelatedTo(source, target, comparableRelation, errorNode, headMessage, containingMessageChain); - } - function isSignatureAssignableTo(source, target, ignoreReturnTypes) { - return compareSignaturesRelated(source, target, ignoreReturnTypes ? 4 /* IgnoreReturnTypes */ : 0 /* None */, - /*reportErrors*/ - false, - /*errorReporter*/ - void 0, - /*incompatibleErrorReporter*/ - void 0, compareTypesAssignable, - /*reportUnreliableMarkers*/ - void 0) !== 0 /* False */; - } - function isTopSignature(s) { - if (!s.typeParameters && (!s.thisParameter || isTypeAny(getTypeOfParameter(s.thisParameter))) && s.parameters.length === 1 && signatureHasRestParameter(s)) { - var paramType = getTypeOfParameter(s.parameters[0]); - var restType = isArrayType(paramType) ? getTypeArguments(paramType)[0] : paramType; - return !!(restType.flags & (1 /* Any */ | 131072 /* Never */) && getReturnTypeOfSignature(s).flags & 3 /* AnyOrUnknown */); - } - return false; - } - function compareSignaturesRelated(source, target, checkMode, reportErrors2, errorReporter, incompatibleErrorReporter, compareTypes, reportUnreliableMarkers) { - if (source === target) { - return -1 /* True */; - } - if (!(checkMode & 16 /* StrictTopSignature */ && isTopSignature(source)) && isTopSignature(target)) { - return -1 /* True */; - } - if (checkMode & 16 /* StrictTopSignature */ && isTopSignature(source) && !isTopSignature(target)) { - return 0 /* False */; - } - var targetCount = getParameterCount(target); - var sourceHasMoreParameters = !hasEffectiveRestParameter(target) && (checkMode & 8 /* StrictArity */ ? hasEffectiveRestParameter(source) || getParameterCount(source) > targetCount : getMinArgumentCount(source) > targetCount); - if (sourceHasMoreParameters) { - if (reportErrors2 && !(checkMode & 8 /* StrictArity */)) { - errorReporter(Diagnostics.Target_signature_provides_too_few_arguments_Expected_0_or_more_but_got_1, getMinArgumentCount(source), targetCount); - } - return 0 /* False */; - } - if (source.typeParameters && source.typeParameters !== target.typeParameters) { - target = getCanonicalSignature(target); - source = instantiateSignatureInContextOf(source, target, - /*inferenceContext*/ - void 0, compareTypes); - } - var sourceCount = getParameterCount(source); - var sourceRestType = getNonArrayRestType(source); - var targetRestType = getNonArrayRestType(target); - if (sourceRestType || targetRestType) { - void instantiateType(sourceRestType || targetRestType, reportUnreliableMarkers); - } - var kind = target.declaration ? target.declaration.kind : 0 /* Unknown */; - var strictVariance = !(checkMode & 3 /* Callback */) && strictFunctionTypes && kind !== 174 /* MethodDeclaration */ && kind !== 173 /* MethodSignature */ && kind !== 176 /* Constructor */; - var result = -1 /* True */; - var sourceThisType = getThisTypeOfSignature(source); - if (sourceThisType && sourceThisType !== voidType) { - var targetThisType = getThisTypeOfSignature(target); - if (targetThisType) { - var related = !strictVariance && compareTypes(sourceThisType, targetThisType, - /*reportErrors*/ - false) || compareTypes(targetThisType, sourceThisType, reportErrors2); - if (!related) { - if (reportErrors2) { - errorReporter(Diagnostics.The_this_types_of_each_signature_are_incompatible); - } - return 0 /* False */; - } - result &= related; - } - } - var paramCount = sourceRestType || targetRestType ? Math.min(sourceCount, targetCount) : Math.max(sourceCount, targetCount); - var restIndex = sourceRestType || targetRestType ? paramCount - 1 : -1; - for (var i = 0; i < paramCount; i++) { - var sourceType = i === restIndex ? getRestTypeAtPosition(source, i) : tryGetTypeAtPosition(source, i); - var targetType = i === restIndex ? getRestTypeAtPosition(target, i) : tryGetTypeAtPosition(target, i); - if (sourceType && targetType) { - var sourceSig = checkMode & 3 /* Callback */ ? void 0 : getSingleCallSignature(getNonNullableType(sourceType)); - var targetSig = checkMode & 3 /* Callback */ ? void 0 : getSingleCallSignature(getNonNullableType(targetType)); - var callbacks = sourceSig && targetSig && !getTypePredicateOfSignature(sourceSig) && !getTypePredicateOfSignature(targetSig) && (getTypeFacts(sourceType) & 50331648 /* IsUndefinedOrNull */) === (getTypeFacts(targetType) & 50331648 /* IsUndefinedOrNull */); - var related = callbacks ? compareSignaturesRelated(targetSig, sourceSig, checkMode & 8 /* StrictArity */ | (strictVariance ? 2 /* StrictCallback */ : 1 /* BivariantCallback */), reportErrors2, errorReporter, incompatibleErrorReporter, compareTypes, reportUnreliableMarkers) : !(checkMode & 3 /* Callback */) && !strictVariance && compareTypes(sourceType, targetType, - /*reportErrors*/ - false) || compareTypes(targetType, sourceType, reportErrors2); - if (related && checkMode & 8 /* StrictArity */ && i >= getMinArgumentCount(source) && i < getMinArgumentCount(target) && compareTypes(sourceType, targetType, - /*reportErrors*/ - false)) { - related = 0 /* False */; - } - if (!related) { - if (reportErrors2) { - errorReporter(Diagnostics.Types_of_parameters_0_and_1_are_incompatible, unescapeLeadingUnderscores(getParameterNameAtPosition(source, i)), unescapeLeadingUnderscores(getParameterNameAtPosition(target, i))); - } - return 0 /* False */; - } - result &= related; - } - } - if (!(checkMode & 4 /* IgnoreReturnTypes */)) { - var targetReturnType = isResolvingReturnTypeOfSignature(target) ? anyType : target.declaration && isJSConstructor(target.declaration) ? getDeclaredTypeOfClassOrInterface(getMergedSymbol(target.declaration.symbol)) : getReturnTypeOfSignature(target); - if (targetReturnType === voidType || targetReturnType === anyType) { - return result; - } - var sourceReturnType = isResolvingReturnTypeOfSignature(source) ? anyType : source.declaration && isJSConstructor(source.declaration) ? getDeclaredTypeOfClassOrInterface(getMergedSymbol(source.declaration.symbol)) : getReturnTypeOfSignature(source); - var targetTypePredicate = getTypePredicateOfSignature(target); - if (targetTypePredicate) { - var sourceTypePredicate = getTypePredicateOfSignature(source); - if (sourceTypePredicate) { - result &= compareTypePredicateRelatedTo(sourceTypePredicate, targetTypePredicate, reportErrors2, errorReporter, compareTypes); - } - else if (isIdentifierTypePredicate(targetTypePredicate)) { - if (reportErrors2) { - errorReporter(Diagnostics.Signature_0_must_be_a_type_predicate, signatureToString(source)); - } - return 0 /* False */; - } - } - else { - result &= checkMode & 1 /* BivariantCallback */ && compareTypes(targetReturnType, sourceReturnType, - /*reportErrors*/ - false) || compareTypes(sourceReturnType, targetReturnType, reportErrors2); - if (!result && reportErrors2 && incompatibleErrorReporter) { - incompatibleErrorReporter(sourceReturnType, targetReturnType); - } - } - } - return result; - } - function compareTypePredicateRelatedTo(source, target, reportErrors2, errorReporter, compareTypes) { - if (source.kind !== target.kind) { - if (reportErrors2) { - errorReporter(Diagnostics.A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard); - errorReporter(Diagnostics.Type_predicate_0_is_not_assignable_to_1, typePredicateToString(source), typePredicateToString(target)); - } - return 0 /* False */; - } - if (source.kind === 1 /* Identifier */ || source.kind === 3 /* AssertsIdentifier */) { - if (source.parameterIndex !== target.parameterIndex) { - if (reportErrors2) { - errorReporter(Diagnostics.Parameter_0_is_not_in_the_same_position_as_parameter_1, source.parameterName, target.parameterName); - errorReporter(Diagnostics.Type_predicate_0_is_not_assignable_to_1, typePredicateToString(source), typePredicateToString(target)); - } - return 0 /* False */; - } - } - var related = source.type === target.type ? -1 /* True */ : source.type && target.type ? compareTypes(source.type, target.type, reportErrors2) : 0 /* False */; - if (related === 0 /* False */ && reportErrors2) { - errorReporter(Diagnostics.Type_predicate_0_is_not_assignable_to_1, typePredicateToString(source), typePredicateToString(target)); - } - return related; - } - function isImplementationCompatibleWithOverload(implementation, overload) { - var erasedSource = getErasedSignature(implementation); - var erasedTarget = getErasedSignature(overload); - var sourceReturnType = getReturnTypeOfSignature(erasedSource); - var targetReturnType = getReturnTypeOfSignature(erasedTarget); - if (targetReturnType === voidType || isTypeRelatedTo(targetReturnType, sourceReturnType, assignableRelation) || isTypeRelatedTo(sourceReturnType, targetReturnType, assignableRelation)) { - return isSignatureAssignableTo(erasedSource, erasedTarget, - /*ignoreReturnTypes*/ - true); - } - return false; - } - function isEmptyResolvedType(t) { - return t !== anyFunctionType && t.properties.length === 0 && t.callSignatures.length === 0 && t.constructSignatures.length === 0 && t.indexInfos.length === 0; - } - function isEmptyObjectType(type) { - return type.flags & 524288 /* Object */ ? !isGenericMappedType(type) && isEmptyResolvedType(resolveStructuredTypeMembers(type)) : type.flags & 67108864 /* NonPrimitive */ ? true : type.flags & 1048576 /* Union */ ? some(type.types, isEmptyObjectType) : type.flags & 2097152 /* Intersection */ ? every(type.types, isEmptyObjectType) : false; - } - function isEmptyAnonymousObjectType(type) { - return !!(getObjectFlags(type) & 16 /* Anonymous */ && (type.members && isEmptyResolvedType(type) || type.symbol && type.symbol.flags & 2048 /* TypeLiteral */ && getMembersOfSymbol(type.symbol).size === 0)); - } - function isUnknownLikeUnionType(type) { - if (strictNullChecks && type.flags & 1048576 /* Union */) { - if (!(type.objectFlags & 33554432 /* IsUnknownLikeUnionComputed */)) { - var types = type.types; - type.objectFlags |= 33554432 /* IsUnknownLikeUnionComputed */ | (types.length >= 3 && types[0].flags & 32768 /* Undefined */ && types[1].flags & 65536 /* Null */ && some(types, isEmptyAnonymousObjectType) ? 67108864 /* IsUnknownLikeUnion */ : 0); - } - return !!(type.objectFlags & 67108864 /* IsUnknownLikeUnion */); - } - return false; - } - function containsUndefinedType(type) { - return !!((type.flags & 1048576 /* Union */ ? type.types[0] : type).flags & 32768 /* Undefined */); - } - function isStringIndexSignatureOnlyType(type) { - return type.flags & 524288 /* Object */ && !isGenericMappedType(type) && getPropertiesOfType(type).length === 0 && getIndexInfosOfType(type).length === 1 && !!getIndexInfoOfType(type, stringType) || type.flags & 3145728 /* UnionOrIntersection */ && every(type.types, isStringIndexSignatureOnlyType) || false; - } - function isEnumTypeRelatedTo(source, target, errorReporter) { - var e_260, _t; - var sourceSymbol = source.flags & 8 /* EnumMember */ ? getParentOfSymbol(source) : source; - var targetSymbol = target.flags & 8 /* EnumMember */ ? getParentOfSymbol(target) : target; - if (sourceSymbol === targetSymbol) { - return true; - } - if (sourceSymbol.escapedName !== targetSymbol.escapedName || !(sourceSymbol.flags & 256 /* RegularEnum */) || !(targetSymbol.flags & 256 /* RegularEnum */)) { - return false; - } - var id = getSymbolId(sourceSymbol) + "," + getSymbolId(targetSymbol); - var entry = enumRelation.get(id); - if (entry !== void 0 && !(!(entry & 4 /* Reported */) && entry & 2 /* Failed */ && errorReporter)) { - return !!(entry & 1 /* Succeeded */); - } - var targetEnumType = getTypeOfSymbol(targetSymbol); - try { - for (var _u = __values(getPropertiesOfType(getTypeOfSymbol(sourceSymbol))), _v = _u.next(); !_v.done; _v = _u.next()) { - var property = _v.value; - if (property.flags & 8 /* EnumMember */) { - var targetProperty = getPropertyOfType(targetEnumType, property.escapedName); - if (!targetProperty || !(targetProperty.flags & 8 /* EnumMember */)) { - if (errorReporter) { - errorReporter(Diagnostics.Property_0_is_missing_in_type_1, symbolName(property), typeToString(getDeclaredTypeOfSymbol(targetSymbol), - /*enclosingDeclaration*/ - void 0, 64 /* UseFullyQualifiedType */)); - enumRelation.set(id, 2 /* Failed */ | 4 /* Reported */); - } - else { - enumRelation.set(id, 2 /* Failed */); - } - return false; - } - } - } - } - catch (e_260_1) { e_260 = { error: e_260_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_260) throw e_260.error; } - } - enumRelation.set(id, 1 /* Succeeded */); - return true; - } - function isSimpleTypeRelatedTo(source, target, relation, errorReporter) { - var s = source.flags; - var t = target.flags; - if (t & 1 /* Any */ || s & 131072 /* Never */ || source === wildcardType) - return true; - if (t & 2 /* Unknown */ && !(relation === strictSubtypeRelation && s & 1 /* Any */)) - return true; - if (t & 131072 /* Never */) - return false; - if (s & 402653316 /* StringLike */ && t & 4 /* String */) - return true; - if (s & 128 /* StringLiteral */ && s & 1024 /* EnumLiteral */ && t & 128 /* StringLiteral */ && !(t & 1024 /* EnumLiteral */) && source.value === target.value) - return true; - if (s & 296 /* NumberLike */ && t & 8 /* Number */) - return true; - if (s & 256 /* NumberLiteral */ && s & 1024 /* EnumLiteral */ && t & 256 /* NumberLiteral */ && !(t & 1024 /* EnumLiteral */) && source.value === target.value) - return true; - if (s & 2112 /* BigIntLike */ && t & 64 /* BigInt */) - return true; - if (s & 528 /* BooleanLike */ && t & 16 /* Boolean */) - return true; - if (s & 12288 /* ESSymbolLike */ && t & 4096 /* ESSymbol */) - return true; - if (s & 32 /* Enum */ && t & 32 /* Enum */ && source.symbol.escapedName === target.symbol.escapedName && isEnumTypeRelatedTo(source.symbol, target.symbol, errorReporter)) - return true; - if (s & 1024 /* EnumLiteral */ && t & 1024 /* EnumLiteral */) { - if (s & 1048576 /* Union */ && t & 1048576 /* Union */ && isEnumTypeRelatedTo(source.symbol, target.symbol, errorReporter)) - return true; - if (s & 2944 /* Literal */ && t & 2944 /* Literal */ && source.value === target.value && isEnumTypeRelatedTo(source.symbol, target.symbol, errorReporter)) - return true; - } - if (s & 32768 /* Undefined */ && (!strictNullChecks && !(t & 3145728 /* UnionOrIntersection */) || t & (32768 /* Undefined */ | 16384 /* Void */))) - return true; - if (s & 65536 /* Null */ && (!strictNullChecks && !(t & 3145728 /* UnionOrIntersection */) || t & 65536 /* Null */)) - return true; - if (s & 524288 /* Object */ && t & 67108864 /* NonPrimitive */ && !(relation === strictSubtypeRelation && isEmptyAnonymousObjectType(source) && !(getObjectFlags(source) & 8192 /* FreshLiteral */))) - return true; - if (relation === assignableRelation || relation === comparableRelation) { - if (s & 1 /* Any */) - return true; - if (s & 8 /* Number */ && (t & 32 /* Enum */ || t & 256 /* NumberLiteral */ && t & 1024 /* EnumLiteral */)) - return true; - if (s & 256 /* NumberLiteral */ && !(s & 1024 /* EnumLiteral */) && (t & 32 /* Enum */ || t & 256 /* NumberLiteral */ && t & 1024 /* EnumLiteral */ && source.value === target.value)) - return true; - if (isUnknownLikeUnionType(target)) - return true; - } - return false; - } - function isTypeRelatedTo(source, target, relation) { - if (isFreshLiteralType(source)) { - source = source.regularType; - } - if (isFreshLiteralType(target)) { - target = target.regularType; - } - if (source === target) { - return true; - } - if (relation !== identityRelation) { - if (relation === comparableRelation && !(target.flags & 131072 /* Never */) && isSimpleTypeRelatedTo(target, source, relation) || isSimpleTypeRelatedTo(source, target, relation)) { - return true; - } - } - else if (!((source.flags | target.flags) & (3145728 /* UnionOrIntersection */ | 8388608 /* IndexedAccess */ | 16777216 /* Conditional */ | 33554432 /* Substitution */))) { - if (source.flags !== target.flags) - return false; - if (source.flags & 67358815 /* Singleton */) - return true; - } - if (source.flags & 524288 /* Object */ && target.flags & 524288 /* Object */) { - var related = relation.get(getRelationKey(source, target, 0 /* None */, relation, - /*ignoreConstraints*/ - false)); - if (related !== void 0) { - return !!(related & 1 /* Succeeded */); - } - } - if (source.flags & 469499904 /* StructuredOrInstantiable */ || target.flags & 469499904 /* StructuredOrInstantiable */) { - return checkTypeRelatedTo(source, target, relation, - /*errorNode*/ - void 0); - } - return false; - } - function isIgnoredJsxProperty(source, sourceProp) { - return getObjectFlags(source) & 2048 /* JsxAttributes */ && isHyphenatedJsxName(sourceProp.escapedName); - } - function getNormalizedType(type, writing) { - while (true) { - var t = isFreshLiteralType(type) ? type.regularType : isGenericTupleType(type) ? getNormalizedTupleType(type, writing) : getObjectFlags(type) & 4 /* Reference */ ? type.node ? createTypeReference(type.target, getTypeArguments(type)) : getSingleBaseForNonAugmentingSubtype(type) || type : type.flags & 3145728 /* UnionOrIntersection */ ? getNormalizedUnionOrIntersectionType(type, writing) : type.flags & 33554432 /* Substitution */ ? writing ? type.baseType : getSubstitutionIntersection(type) : type.flags & 25165824 /* Simplifiable */ ? getSimplifiedType(type, writing) : type; - if (t === type) - return t; - type = t; - } - } - function getNormalizedUnionOrIntersectionType(type, writing) { - var reduced = getReducedType(type); - if (reduced !== type) { - return reduced; - } - if (type.flags & 2097152 /* Intersection */ && some(type.types, isEmptyAnonymousObjectType)) { - var normalizedTypes = sameMap(type.types, function (t) { return getNormalizedType(t, writing); }); - if (normalizedTypes !== type.types) { - return getIntersectionType(normalizedTypes); - } - } - return type; - } - function getNormalizedTupleType(type, writing) { - var elements = getElementTypes(type); - var normalizedElements = sameMap(elements, function (t) { return t.flags & 25165824 /* Simplifiable */ ? getSimplifiedType(t, writing) : t; }); - return elements !== normalizedElements ? createNormalizedTupleType(type.target, normalizedElements) : type; - } - function checkTypeRelatedTo(source, target, relation, errorNode, headMessage, containingMessageChain, errorOutputContainer) { - var _a; - var errorInfo; - var relatedInfo; - var maybeKeys; - var maybeKeysSet; - var sourceStack; - var targetStack; - var maybeCount = 0; - var sourceDepth = 0; - var targetDepth = 0; - var expandingFlags = 0 /* None */; - var overflow = false; - var overrideNextErrorInfo = 0; - var lastSkippedInfo; - var incompatibleStack; - Debug.assert(relation !== identityRelation || !errorNode, "no error reporting in identity checking"); - var result = isRelatedTo(source, target, 3 /* Both */, - /*reportErrors*/ - !!errorNode, headMessage); - if (incompatibleStack) { - reportIncompatibleStack(); - } - if (overflow) { - (_a = tracing) == null ? void 0 : _a.instant(tracing.Phase.CheckTypes, "checkTypeRelatedTo_DepthLimit", { sourceId: source.id, targetId: target.id, depth: sourceDepth, targetDepth: targetDepth }); - var diag2 = error2(errorNode || currentNode, Diagnostics.Excessive_stack_depth_comparing_types_0_and_1, typeToString(source), typeToString(target)); - if (errorOutputContainer) { - (errorOutputContainer.errors || (errorOutputContainer.errors = [])).push(diag2); - } - } - else if (errorInfo) { - if (containingMessageChain) { - var chain = containingMessageChain(); - if (chain) { - concatenateDiagnosticMessageChains(chain, errorInfo); - errorInfo = chain; - } - } - var relatedInformation = void 0; - if (headMessage && errorNode && !result && source.symbol) { - var links = getSymbolLinks(source.symbol); - if (links.originatingImport && !isImportCall(links.originatingImport)) { - var helpfulRetry = checkTypeRelatedTo(getTypeOfSymbol(links.target), target, relation, - /*errorNode*/ - void 0); - if (helpfulRetry) { - var diag3 = createDiagnosticForNode(links.originatingImport, Diagnostics.Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cause_a_failure_at_runtime_Consider_using_a_default_import_or_import_require_here_instead); - relatedInformation = append(relatedInformation, diag3); - } - } - } - var diag2 = createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(errorNode), errorNode, errorInfo, relatedInformation); - if (relatedInfo) { - addRelatedInfo.apply(void 0, __spreadArray([diag2], __read(relatedInfo), false)); - } - if (errorOutputContainer) { - (errorOutputContainer.errors || (errorOutputContainer.errors = [])).push(diag2); - } - if (!errorOutputContainer || !errorOutputContainer.skipLogging) { - diagnostics.add(diag2); - } - } - if (errorNode && errorOutputContainer && errorOutputContainer.skipLogging && result === 0 /* False */) { - Debug.assert(!!errorOutputContainer.errors, "missed opportunity to interact with error."); - } - return result !== 0 /* False */; - function resetErrorInfo(saved) { - errorInfo = saved.errorInfo; - lastSkippedInfo = saved.lastSkippedInfo; - incompatibleStack = saved.incompatibleStack; - overrideNextErrorInfo = saved.overrideNextErrorInfo; - relatedInfo = saved.relatedInfo; - } - function captureErrorCalculationState() { - return { - errorInfo: errorInfo, - lastSkippedInfo: lastSkippedInfo, - incompatibleStack: incompatibleStack == null ? void 0 : incompatibleStack.slice(), - overrideNextErrorInfo: overrideNextErrorInfo, - relatedInfo: relatedInfo == null ? void 0 : relatedInfo.slice() - }; - } - function reportIncompatibleError(message) { - var args = []; - for (var _t = 1; _t < arguments.length; _t++) { - args[_t - 1] = arguments[_t]; - } - overrideNextErrorInfo++; - lastSkippedInfo = void 0; - (incompatibleStack || (incompatibleStack = [])).push(__spreadArray([message], __read(args), false)); - } - function reportIncompatibleStack() { - var e_261, _t; - var stack = incompatibleStack || []; - incompatibleStack = void 0; - var info = lastSkippedInfo; - lastSkippedInfo = void 0; - if (stack.length === 1) { - reportError.apply(void 0, __spreadArray([], __read(stack[0]), false)); - if (info) { - reportRelationError.apply(void 0, __spreadArray([ - /*message*/ - void 0], __read(info), false)); - } - return; - } - var path = ""; - var secondaryRootErrors = []; - while (stack.length) { - var _u = __read(stack.pop()), msg = _u[0], args = _u.slice(1); - switch (msg.code) { - case Diagnostics.Types_of_property_0_are_incompatible.code: { - if (path.indexOf("new ") === 0) { - path = "(".concat(path, ")"); - } - var str = "" + args[0]; - if (path.length === 0) { - path = "".concat(str); - } - else if (isIdentifierText(str, getEmitScriptTarget(compilerOptions))) { - path = "".concat(path, ".").concat(str); - } - else if (str[0] === "[" && str[str.length - 1] === "]") { - path = "".concat(path).concat(str); - } - else { - path = "".concat(path, "[").concat(str, "]"); - } - break; - } - case Diagnostics.Call_signature_return_types_0_and_1_are_incompatible.code: - case Diagnostics.Construct_signature_return_types_0_and_1_are_incompatible.code: - case Diagnostics.Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code: - case Diagnostics.Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code: { - if (path.length === 0) { - var mappedMsg = msg; - if (msg.code === Diagnostics.Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code) { - mappedMsg = Diagnostics.Call_signature_return_types_0_and_1_are_incompatible; - } - else if (msg.code === Diagnostics.Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code) { - mappedMsg = Diagnostics.Construct_signature_return_types_0_and_1_are_incompatible; - } - secondaryRootErrors.unshift([mappedMsg, args[0], args[1]]); - } - else { - var prefix = msg.code === Diagnostics.Construct_signature_return_types_0_and_1_are_incompatible.code || msg.code === Diagnostics.Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code ? "new " : ""; - var params = msg.code === Diagnostics.Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code || msg.code === Diagnostics.Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code ? "" : "..."; - path = "".concat(prefix).concat(path, "(").concat(params, ")"); - } - break; - } - case Diagnostics.Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target.code: { - secondaryRootErrors.unshift([Diagnostics.Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target, args[0], args[1]]); - break; - } - case Diagnostics.Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target.code: { - secondaryRootErrors.unshift([Diagnostics.Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target, args[0], args[1], args[2]]); - break; - } - default: - return Debug.fail("Unhandled Diagnostic: ".concat(msg.code)); - } - } - if (path) { - reportError(path[path.length - 1] === ")" ? Diagnostics.The_types_returned_by_0_are_incompatible_between_these_types : Diagnostics.The_types_of_0_are_incompatible_between_these_types, path); - } - else { - secondaryRootErrors.shift(); - } - try { - for (var secondaryRootErrors_1 = __values(secondaryRootErrors), secondaryRootErrors_1_1 = secondaryRootErrors_1.next(); !secondaryRootErrors_1_1.done; secondaryRootErrors_1_1 = secondaryRootErrors_1.next()) { - var _v = __read(secondaryRootErrors_1_1.value), msg = _v[0], args = _v.slice(1); - var originalValue = msg.elidedInCompatabilityPyramid; - msg.elidedInCompatabilityPyramid = false; - reportError.apply(void 0, __spreadArray([msg], __read(args), false)); - msg.elidedInCompatabilityPyramid = originalValue; - } - } - catch (e_261_1) { e_261 = { error: e_261_1 }; } - finally { - try { - if (secondaryRootErrors_1_1 && !secondaryRootErrors_1_1.done && (_t = secondaryRootErrors_1.return)) _t.call(secondaryRootErrors_1); - } - finally { if (e_261) throw e_261.error; } - } - if (info) { - reportRelationError.apply(void 0, __spreadArray([ - /*message*/ - void 0], __read(info), false)); - } - } - function reportError(message) { - var args = []; - for (var _t = 1; _t < arguments.length; _t++) { - args[_t - 1] = arguments[_t]; - } - Debug.assert(!!errorNode); - if (incompatibleStack) - reportIncompatibleStack(); - if (message.elidedInCompatabilityPyramid) - return; - errorInfo = chainDiagnosticMessages.apply(void 0, __spreadArray([errorInfo, message], __read(args), false)); - } - function associateRelatedInfo(info) { - Debug.assert(!!errorInfo); - if (!relatedInfo) { - relatedInfo = [info]; - } - else { - relatedInfo.push(info); - } - } - function reportRelationError(message, source2, target2) { - if (incompatibleStack) - reportIncompatibleStack(); - var _t = __read(getTypeNamesForErrorDisplay(source2, target2), 2), sourceType = _t[0], targetType = _t[1]; - var generalizedSource = source2; - var generalizedSourceType = sourceType; - if (isLiteralType(source2) && !typeCouldHaveTopLevelSingletonTypes(target2)) { - generalizedSource = getBaseTypeOfLiteralType(source2); - Debug.assert(!isTypeAssignableTo(generalizedSource, target2), "generalized source shouldn't be assignable"); - generalizedSourceType = getTypeNameForErrorDisplay(generalizedSource); - } - var targetFlags = target2.flags & 8388608 /* IndexedAccess */ && !(source2.flags & 8388608 /* IndexedAccess */) ? target2.objectType.flags : target2.flags; - if (targetFlags & 262144 /* TypeParameter */ && target2 !== markerSuperTypeForCheck && target2 !== markerSubTypeForCheck) { - var constraint = getBaseConstraintOfType(target2); - var needsOriginalSource = void 0; - if (constraint && (isTypeAssignableTo(generalizedSource, constraint) || (needsOriginalSource = isTypeAssignableTo(source2, constraint)))) { - reportError(Diagnostics._0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_constraint_2, needsOriginalSource ? sourceType : generalizedSourceType, targetType, typeToString(constraint)); - } - else { - errorInfo = void 0; - reportError(Diagnostics._0_could_be_instantiated_with_an_arbitrary_type_which_could_be_unrelated_to_1, targetType, generalizedSourceType); - } - } - if (!message) { - if (relation === comparableRelation) { - message = Diagnostics.Type_0_is_not_comparable_to_type_1; - } - else if (sourceType === targetType) { - message = Diagnostics.Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated; - } - else if (exactOptionalPropertyTypes && getExactOptionalUnassignableProperties(source2, target2).length) { - message = Diagnostics.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties; - } - else { - if (source2.flags & 128 /* StringLiteral */ && target2.flags & 1048576 /* Union */) { - var suggestedType = getSuggestedTypeForNonexistentStringLiteralType(source2, target2); - if (suggestedType) { - reportError(Diagnostics.Type_0_is_not_assignable_to_type_1_Did_you_mean_2, generalizedSourceType, targetType, typeToString(suggestedType)); - return; - } - } - message = Diagnostics.Type_0_is_not_assignable_to_type_1; - } - } - else if (message === Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1 && exactOptionalPropertyTypes && getExactOptionalUnassignableProperties(source2, target2).length) { - message = Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties; - } - reportError(message, generalizedSourceType, targetType); - } - function tryElaborateErrorsForPrimitivesAndObjects(source2, target2) { - var sourceType = symbolValueDeclarationIsContextSensitive(source2.symbol) ? typeToString(source2, source2.symbol.valueDeclaration) : typeToString(source2); - var targetType = symbolValueDeclarationIsContextSensitive(target2.symbol) ? typeToString(target2, target2.symbol.valueDeclaration) : typeToString(target2); - if (globalStringType === source2 && stringType === target2 || globalNumberType === source2 && numberType === target2 || globalBooleanType === source2 && booleanType === target2 || getGlobalESSymbolType() === source2 && esSymbolType === target2) { - reportError(Diagnostics._0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible, targetType, sourceType); - } - } - function tryElaborateArrayLikeErrors(source2, target2, reportErrors2) { - if (isTupleType(source2)) { - if (source2.target.readonly && isMutableArrayOrTuple(target2)) { - if (reportErrors2) { - reportError(Diagnostics.The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1, typeToString(source2), typeToString(target2)); - } - return false; - } - return isArrayOrTupleType(target2); - } - if (isReadonlyArrayType(source2) && isMutableArrayOrTuple(target2)) { - if (reportErrors2) { - reportError(Diagnostics.The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1, typeToString(source2), typeToString(target2)); - } - return false; - } - if (isTupleType(target2)) { - return isArrayType(source2); - } - return true; - } - function isRelatedToWorker(source2, target2, reportErrors2) { - return isRelatedTo(source2, target2, 3 /* Both */, reportErrors2); - } - function isRelatedTo(originalSource, originalTarget, recursionFlags /* Both */, reportErrors2, headMessage2, intersectionState /* None */) { - if (recursionFlags === void 0) { recursionFlags = 3; } - if (reportErrors2 === void 0) { reportErrors2 = false; } - if (intersectionState === void 0) { intersectionState = 0; } - if (originalSource === originalTarget) - return -1 /* True */; - if (originalSource.flags & 524288 /* Object */ && originalTarget.flags & 402784252 /* Primitive */) { - if (relation === comparableRelation && !(originalTarget.flags & 131072 /* Never */) && isSimpleTypeRelatedTo(originalTarget, originalSource, relation) || isSimpleTypeRelatedTo(originalSource, originalTarget, relation, reportErrors2 ? reportError : void 0)) { - return -1 /* True */; - } - if (reportErrors2) { - reportErrorResults(originalSource, originalTarget, originalSource, originalTarget, headMessage2); - } - return 0 /* False */; - } - var source2 = getNormalizedType(originalSource, - /*writing*/ - false); - var target2 = getNormalizedType(originalTarget, - /*writing*/ - true); - if (source2 === target2) - return -1 /* True */; - if (relation === identityRelation) { - if (source2.flags !== target2.flags) - return 0 /* False */; - if (source2.flags & 67358815 /* Singleton */) - return -1 /* True */; - traceUnionsOrIntersectionsTooLarge(source2, target2); - return recursiveTypeRelatedTo(source2, target2, - /*reportErrors*/ - false, 0 /* None */, recursionFlags); - } - if (source2.flags & 262144 /* TypeParameter */ && getConstraintOfType(source2) === target2) { - return -1 /* True */; - } - if (source2.flags & 470302716 /* DefinitelyNonNullable */ && target2.flags & 1048576 /* Union */) { - var types = target2.types; - var candidate = types.length === 2 && types[0].flags & 98304 /* Nullable */ ? types[1] : types.length === 3 && types[0].flags & 98304 /* Nullable */ && types[1].flags & 98304 /* Nullable */ ? types[2] : void 0; - if (candidate && !(candidate.flags & 98304 /* Nullable */)) { - target2 = getNormalizedType(candidate, - /*writing*/ - true); - if (source2 === target2) - return -1 /* True */; - } - } - if (relation === comparableRelation && !(target2.flags & 131072 /* Never */) && isSimpleTypeRelatedTo(target2, source2, relation) || isSimpleTypeRelatedTo(source2, target2, relation, reportErrors2 ? reportError : void 0)) - return -1 /* True */; - if (source2.flags & 469499904 /* StructuredOrInstantiable */ || target2.flags & 469499904 /* StructuredOrInstantiable */) { - var isPerformingExcessPropertyChecks = !(intersectionState & 2 /* Target */) && (isObjectLiteralType2(source2) && getObjectFlags(source2) & 8192 /* FreshLiteral */); - if (isPerformingExcessPropertyChecks) { - if (hasExcessProperties(source2, target2, reportErrors2)) { - if (reportErrors2) { - reportRelationError(headMessage2, source2, originalTarget.aliasSymbol ? originalTarget : target2); - } - return 0 /* False */; - } - } - var isPerformingCommonPropertyChecks = (relation !== comparableRelation || isUnitType(source2)) && !(intersectionState & 2 /* Target */) && source2.flags & (402784252 /* Primitive */ | 524288 /* Object */ | 2097152 /* Intersection */) && source2 !== globalObjectType && target2.flags & (524288 /* Object */ | 2097152 /* Intersection */) && isWeakType(target2) && (getPropertiesOfType(source2).length > 0 || typeHasCallOrConstructSignatures(source2)); - var isComparingJsxAttributes = !!(getObjectFlags(source2) & 2048 /* JsxAttributes */); - if (isPerformingCommonPropertyChecks && !hasCommonProperties(source2, target2, isComparingJsxAttributes)) { - if (reportErrors2) { - var sourceString = typeToString(originalSource.aliasSymbol ? originalSource : source2); - var targetString = typeToString(originalTarget.aliasSymbol ? originalTarget : target2); - var calls = getSignaturesOfType(source2, 0 /* Call */); - var constructs = getSignaturesOfType(source2, 1 /* Construct */); - if (calls.length > 0 && isRelatedTo(getReturnTypeOfSignature(calls[0]), target2, 1 /* Source */, - /*reportErrors*/ - false) || constructs.length > 0 && isRelatedTo(getReturnTypeOfSignature(constructs[0]), target2, 1 /* Source */, - /*reportErrors*/ - false)) { - reportError(Diagnostics.Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it, sourceString, targetString); - } - else { - reportError(Diagnostics.Type_0_has_no_properties_in_common_with_type_1, sourceString, targetString); - } - } - return 0 /* False */; - } - traceUnionsOrIntersectionsTooLarge(source2, target2); - var skipCaching = source2.flags & 1048576 /* Union */ && source2.types.length < 4 && !(target2.flags & 1048576 /* Union */) || target2.flags & 1048576 /* Union */ && target2.types.length < 4 && !(source2.flags & 469499904 /* StructuredOrInstantiable */); - var result2 = skipCaching ? unionOrIntersectionRelatedTo(source2, target2, reportErrors2, intersectionState) : recursiveTypeRelatedTo(source2, target2, reportErrors2, intersectionState, recursionFlags); - if (result2) { - return result2; - } - } - if (reportErrors2) { - reportErrorResults(originalSource, originalTarget, source2, target2, headMessage2); - } - return 0 /* False */; - } - function reportErrorResults(originalSource, originalTarget, source2, target2, headMessage2) { - var _a2, _b; - var sourceHasBase = !!getSingleBaseForNonAugmentingSubtype(originalSource); - var targetHasBase = !!getSingleBaseForNonAugmentingSubtype(originalTarget); - source2 = originalSource.aliasSymbol || sourceHasBase ? originalSource : source2; - target2 = originalTarget.aliasSymbol || targetHasBase ? originalTarget : target2; - var maybeSuppress = overrideNextErrorInfo > 0; - if (maybeSuppress) { - overrideNextErrorInfo--; - } - if (source2.flags & 524288 /* Object */ && target2.flags & 524288 /* Object */) { - var currentError = errorInfo; - tryElaborateArrayLikeErrors(source2, target2, - /*reportErrors*/ - true); - if (errorInfo !== currentError) { - maybeSuppress = !!errorInfo; - } - } - if (source2.flags & 524288 /* Object */ && target2.flags & 402784252 /* Primitive */) { - tryElaborateErrorsForPrimitivesAndObjects(source2, target2); - } - else if (source2.symbol && source2.flags & 524288 /* Object */ && globalObjectType === source2) { - reportError(Diagnostics.The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead); - } - else if (getObjectFlags(source2) & 2048 /* JsxAttributes */ && target2.flags & 2097152 /* Intersection */) { - var targetTypes = target2.types; - var intrinsicAttributes = getJsxType(JsxNames.IntrinsicAttributes, errorNode); - var intrinsicClassAttributes = getJsxType(JsxNames.IntrinsicClassAttributes, errorNode); - if (!isErrorType(intrinsicAttributes) && !isErrorType(intrinsicClassAttributes) && (contains(targetTypes, intrinsicAttributes) || contains(targetTypes, intrinsicClassAttributes))) { - return; - } - } - else { - errorInfo = elaborateNeverIntersection(errorInfo, originalTarget); - } - if (!headMessage2 && maybeSuppress) { - lastSkippedInfo = [source2, target2]; - return; - } - reportRelationError(headMessage2, source2, target2); - if (source2.flags & 262144 /* TypeParameter */ && ((_b = (_a2 = source2.symbol) == null ? void 0 : _a2.declarations) == null ? void 0 : _b[0]) && !getConstraintOfType(source2)) { - var syntheticParam = cloneTypeParameter(source2); - syntheticParam.constraint = instantiateType(target2, makeUnaryTypeMapper(source2, syntheticParam)); - if (hasNonCircularBaseConstraint(syntheticParam)) { - var targetConstraintString = typeToString(target2, source2.symbol.declarations[0]); - associateRelatedInfo(createDiagnosticForNode(source2.symbol.declarations[0], Diagnostics.This_type_parameter_might_need_an_extends_0_constraint, targetConstraintString)); - } - } - } - function traceUnionsOrIntersectionsTooLarge(source2, target2) { - if (!tracing) { - return; - } - if (source2.flags & 3145728 /* UnionOrIntersection */ && target2.flags & 3145728 /* UnionOrIntersection */) { - var sourceUnionOrIntersection = source2; - var targetUnionOrIntersection = target2; - if (sourceUnionOrIntersection.objectFlags & targetUnionOrIntersection.objectFlags & 32768 /* PrimitiveUnion */) { - return; - } - var sourceSize = sourceUnionOrIntersection.types.length; - var targetSize = targetUnionOrIntersection.types.length; - if (sourceSize * targetSize > 1e6) { - tracing.instant(tracing.Phase.CheckTypes, "traceUnionsOrIntersectionsTooLarge_DepthLimit", { - sourceId: source2.id, - sourceSize: sourceSize, - targetId: target2.id, - targetSize: targetSize, - pos: errorNode == null ? void 0 : errorNode.pos, - end: errorNode == null ? void 0 : errorNode.end - }); - } - } - } - function getTypeOfPropertyInTypes(types, name) { - var appendPropType = function (propTypes, type) { - var _a2; - type = getApparentType(type); - var prop = type.flags & 3145728 /* UnionOrIntersection */ ? getPropertyOfUnionOrIntersectionType(type, name) : getPropertyOfObjectType(type, name); - var propType = prop && getTypeOfSymbol(prop) || ((_a2 = getApplicableIndexInfoForName(type, name)) == null ? void 0 : _a2.type) || undefinedType; - return append(propTypes, propType); - }; - return getUnionType(reduceLeft(types, appendPropType, - /*initial*/ - void 0) || emptyArray); - } - function hasExcessProperties(source2, target2, reportErrors2) { - var e_262, _t; - var _a2; - if (!isExcessPropertyCheckTarget(target2) || !noImplicitAny && getObjectFlags(target2) & 4096 /* JSLiteral */) { - return false; - } - var isComparingJsxAttributes = !!(getObjectFlags(source2) & 2048 /* JsxAttributes */); - if ((relation === assignableRelation || relation === comparableRelation) && (isTypeSubsetOf(globalObjectType, target2) || !isComparingJsxAttributes && isEmptyObjectType(target2))) { - return false; - } - var reducedTarget = target2; - var checkTypes; - if (target2.flags & 1048576 /* Union */) { - reducedTarget = findMatchingDiscriminantType(source2, target2, isRelatedTo) || filterPrimitivesIfContainsNonPrimitive(target2); - checkTypes = reducedTarget.flags & 1048576 /* Union */ ? reducedTarget.types : [reducedTarget]; - } - var _loop_23 = function (prop) { - if (shouldCheckAsExcessProperty(prop, source2.symbol) && !isIgnoredJsxProperty(source2, prop)) { - if (!isKnownProperty(reducedTarget, prop.escapedName, isComparingJsxAttributes)) { - if (reportErrors2) { - var errorTarget = filterType(reducedTarget, isExcessPropertyCheckTarget); - if (!errorNode) - return { value: Debug.fail() }; - if (isJsxAttributes(errorNode) || isJsxOpeningLikeElement(errorNode) || isJsxOpeningLikeElement(errorNode.parent)) { - if (prop.valueDeclaration && isJsxAttribute(prop.valueDeclaration) && getSourceFileOfNode(errorNode) === getSourceFileOfNode(prop.valueDeclaration.name)) { - errorNode = prop.valueDeclaration.name; - } - var propName = symbolToString(prop); - var suggestionSymbol = getSuggestedSymbolForNonexistentJSXAttribute(propName, errorTarget); - var suggestion = suggestionSymbol ? symbolToString(suggestionSymbol) : void 0; - if (suggestion) { - reportError(Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_2, propName, typeToString(errorTarget), suggestion); - } - else { - reportError(Diagnostics.Property_0_does_not_exist_on_type_1, propName, typeToString(errorTarget)); - } - } - else { - var objectLiteralDeclaration_1 = ((_a2 = source2.symbol) == null ? void 0 : _a2.declarations) && firstOrUndefined(source2.symbol.declarations); - var suggestion = void 0; - if (prop.valueDeclaration && findAncestor(prop.valueDeclaration, function (d) { return d === objectLiteralDeclaration_1; }) && getSourceFileOfNode(objectLiteralDeclaration_1) === getSourceFileOfNode(errorNode)) { - var propDeclaration = prop.valueDeclaration; - Debug.assertNode(propDeclaration, isObjectLiteralElementLike); - var name_40 = propDeclaration.name; - errorNode = name_40; - if (isIdentifier(name_40)) { - suggestion = getSuggestionForNonexistentProperty(name_40, errorTarget); - } - } - if (suggestion !== void 0) { - reportError(Diagnostics.Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_write_2, symbolToString(prop), typeToString(errorTarget), suggestion); - } - else { - reportError(Diagnostics.Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1, symbolToString(prop), typeToString(errorTarget)); - } - } - } - return { value: true }; - } - if (checkTypes && !isRelatedTo(getTypeOfSymbol(prop), getTypeOfPropertyInTypes(checkTypes, prop.escapedName), 3 /* Both */, reportErrors2)) { - if (reportErrors2) { - reportIncompatibleError(Diagnostics.Types_of_property_0_are_incompatible, symbolToString(prop)); - } - return { value: true }; - } - } - }; - try { - for (var _u = __values(getPropertiesOfType(source2)), _v = _u.next(); !_v.done; _v = _u.next()) { - var prop = _v.value; - var state_9 = _loop_23(prop); - if (typeof state_9 === "object") - return state_9.value; - } - } - catch (e_262_1) { e_262 = { error: e_262_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_262) throw e_262.error; } - } - return false; - } - function shouldCheckAsExcessProperty(prop, container) { - return prop.valueDeclaration && container.valueDeclaration && prop.valueDeclaration.parent === container.valueDeclaration; - } - function unionOrIntersectionRelatedTo(source2, target2, reportErrors2, intersectionState) { - if (source2.flags & 1048576 /* Union */) { - return relation === comparableRelation ? someTypeRelatedToType(source2, target2, reportErrors2 && !(source2.flags & 402784252 /* Primitive */), intersectionState) : eachTypeRelatedToType(source2, target2, reportErrors2 && !(source2.flags & 402784252 /* Primitive */), intersectionState); - } - if (target2.flags & 1048576 /* Union */) { - return typeRelatedToSomeType(getRegularTypeOfObjectLiteral(source2), target2, reportErrors2 && !(source2.flags & 402784252 /* Primitive */) && !(target2.flags & 402784252 /* Primitive */)); - } - if (target2.flags & 2097152 /* Intersection */) { - return typeRelatedToEachType(source2, target2, reportErrors2, 2 /* Target */); - } - if (relation === comparableRelation && target2.flags & 402784252 /* Primitive */) { - var constraints = sameMap(source2.types, function (t) { return t.flags & 465829888 /* Instantiable */ ? getBaseConstraintOfType(t) || unknownType : t; }); - if (constraints !== source2.types) { - source2 = getIntersectionType(constraints); - if (source2.flags & 131072 /* Never */) { - return 0 /* False */; - } - if (!(source2.flags & 2097152 /* Intersection */)) { - return isRelatedTo(source2, target2, 1 /* Source */, - /*reportErrors*/ - false) || isRelatedTo(target2, source2, 1 /* Source */, - /*reportErrors*/ - false); - } - } - } - return someTypeRelatedToType(source2, target2, - /*reportErrors*/ - false, 1 /* Source */); - } - function eachTypeRelatedToSomeType(source2, target2) { - var e_263, _t; - var result2 = -1 /* True */; - var sourceTypes = source2.types; - try { - for (var sourceTypes_1 = __values(sourceTypes), sourceTypes_1_1 = sourceTypes_1.next(); !sourceTypes_1_1.done; sourceTypes_1_1 = sourceTypes_1.next()) { - var sourceType = sourceTypes_1_1.value; - var related = typeRelatedToSomeType(sourceType, target2, - /*reportErrors*/ - false); - if (!related) { - return 0 /* False */; - } - result2 &= related; - } - } - catch (e_263_1) { e_263 = { error: e_263_1 }; } - finally { - try { - if (sourceTypes_1_1 && !sourceTypes_1_1.done && (_t = sourceTypes_1.return)) _t.call(sourceTypes_1); - } - finally { if (e_263) throw e_263.error; } - } - return result2; - } - function typeRelatedToSomeType(source2, target2, reportErrors2) { - var e_264, _t; - var targetTypes = target2.types; - if (target2.flags & 1048576 /* Union */) { - if (containsType(targetTypes, source2)) { - return -1 /* True */; - } - if (relation !== comparableRelation && getObjectFlags(target2) & 32768 /* PrimitiveUnion */ && !(source2.flags & 1024 /* EnumLiteral */) && (source2.flags & (128 /* StringLiteral */ | 512 /* BooleanLiteral */ | 2048 /* BigIntLiteral */) || (relation === subtypeRelation || relation === strictSubtypeRelation) && source2.flags & 256 /* NumberLiteral */)) { - var alternateForm = source2 === source2.regularType ? source2.freshType : source2.regularType; - var primitive = source2.flags & 128 /* StringLiteral */ ? stringType : source2.flags & 256 /* NumberLiteral */ ? numberType : source2.flags & 2048 /* BigIntLiteral */ ? bigintType : void 0; - return primitive && containsType(targetTypes, primitive) || alternateForm && containsType(targetTypes, alternateForm) ? -1 /* True */ : 0 /* False */; - } - var match = getMatchingUnionConstituentForType(target2, source2); - if (match) { - var related = isRelatedTo(source2, match, 2 /* Target */, - /*reportErrors*/ - false); - if (related) { - return related; - } - } - } - try { - for (var targetTypes_1 = __values(targetTypes), targetTypes_1_1 = targetTypes_1.next(); !targetTypes_1_1.done; targetTypes_1_1 = targetTypes_1.next()) { - var type = targetTypes_1_1.value; - var related = isRelatedTo(source2, type, 2 /* Target */, - /*reportErrors*/ - false); - if (related) { - return related; - } - } - } - catch (e_264_1) { e_264 = { error: e_264_1 }; } - finally { - try { - if (targetTypes_1_1 && !targetTypes_1_1.done && (_t = targetTypes_1.return)) _t.call(targetTypes_1); - } - finally { if (e_264) throw e_264.error; } - } - if (reportErrors2) { - var bestMatchingType = getBestMatchingType(source2, target2, isRelatedTo); - if (bestMatchingType) { - isRelatedTo(source2, bestMatchingType, 2 /* Target */, - /*reportErrors*/ - true); - } - } - return 0 /* False */; - } - function typeRelatedToEachType(source2, target2, reportErrors2, intersectionState) { - var e_265, _t; - var result2 = -1 /* True */; - var targetTypes = target2.types; - try { - for (var targetTypes_2 = __values(targetTypes), targetTypes_2_1 = targetTypes_2.next(); !targetTypes_2_1.done; targetTypes_2_1 = targetTypes_2.next()) { - var targetType = targetTypes_2_1.value; - var related = isRelatedTo(source2, targetType, 2 /* Target */, reportErrors2, - /*headMessage*/ - void 0, intersectionState); - if (!related) { - return 0 /* False */; - } - result2 &= related; - } - } - catch (e_265_1) { e_265 = { error: e_265_1 }; } - finally { - try { - if (targetTypes_2_1 && !targetTypes_2_1.done && (_t = targetTypes_2.return)) _t.call(targetTypes_2); - } - finally { if (e_265) throw e_265.error; } - } - return result2; - } - function someTypeRelatedToType(source2, target2, reportErrors2, intersectionState) { - var sourceTypes = source2.types; - if (source2.flags & 1048576 /* Union */ && containsType(sourceTypes, target2)) { - return -1 /* True */; - } - var len = sourceTypes.length; - for (var i = 0; i < len; i++) { - var related = isRelatedTo(sourceTypes[i], target2, 1 /* Source */, reportErrors2 && i === len - 1, - /*headMessage*/ - void 0, intersectionState); - if (related) { - return related; - } - } - return 0 /* False */; - } - function getUndefinedStrippedTargetIfNeeded(source2, target2) { - if (source2.flags & 1048576 /* Union */ && target2.flags & 1048576 /* Union */ && !(source2.types[0].flags & 32768 /* Undefined */) && target2.types[0].flags & 32768 /* Undefined */) { - return extractTypesOfKind(target2, ~32768 /* Undefined */); - } - return target2; - } - function eachTypeRelatedToType(source2, target2, reportErrors2, intersectionState) { - var result2 = -1 /* True */; - var sourceTypes = source2.types; - var undefinedStrippedTarget = getUndefinedStrippedTargetIfNeeded(source2, target2); - for (var i = 0; i < sourceTypes.length; i++) { - var sourceType = sourceTypes[i]; - if (undefinedStrippedTarget.flags & 1048576 /* Union */ && sourceTypes.length >= undefinedStrippedTarget.types.length && sourceTypes.length % undefinedStrippedTarget.types.length === 0) { - var related2 = isRelatedTo(sourceType, undefinedStrippedTarget.types[i % undefinedStrippedTarget.types.length], 3 /* Both */, - /*reportErrors*/ - false, - /*headMessage*/ - void 0, intersectionState); - if (related2) { - result2 &= related2; - continue; - } - } - var related = isRelatedTo(sourceType, target2, 1 /* Source */, reportErrors2, - /*headMessage*/ - void 0, intersectionState); - if (!related) { - return 0 /* False */; - } - result2 &= related; - } - return result2; - } - function typeArgumentsRelatedTo(sources, targets, variances, reportErrors2, intersectionState) { - if (sources === void 0) { sources = emptyArray; } - if (targets === void 0) { targets = emptyArray; } - if (variances === void 0) { variances = emptyArray; } - if (sources.length !== targets.length && relation === identityRelation) { - return 0 /* False */; - } - var length2 = sources.length <= targets.length ? sources.length : targets.length; - var result2 = -1 /* True */; - for (var i = 0; i < length2; i++) { - var varianceFlags = i < variances.length ? variances[i] : 1 /* Covariant */; - var variance = varianceFlags & 7 /* VarianceMask */; - if (variance !== 4 /* Independent */) { - var s = sources[i]; - var t = targets[i]; - var related = -1 /* True */; - if (varianceFlags & 8 /* Unmeasurable */) { - related = relation === identityRelation ? isRelatedTo(s, t, 3 /* Both */, - /*reportErrors*/ - false) : compareTypesIdentical(s, t); - } - else if (variance === 1 /* Covariant */) { - related = isRelatedTo(s, t, 3 /* Both */, reportErrors2, - /*headMessage*/ - void 0, intersectionState); - } - else if (variance === 2 /* Contravariant */) { - related = isRelatedTo(t, s, 3 /* Both */, reportErrors2, - /*headMessage*/ - void 0, intersectionState); - } - else if (variance === 3 /* Bivariant */) { - related = isRelatedTo(t, s, 3 /* Both */, - /*reportErrors*/ - false); - if (!related) { - related = isRelatedTo(s, t, 3 /* Both */, reportErrors2, - /*headMessage*/ - void 0, intersectionState); - } - } - else { - related = isRelatedTo(s, t, 3 /* Both */, reportErrors2, - /*headMessage*/ - void 0, intersectionState); - if (related) { - related &= isRelatedTo(t, s, 3 /* Both */, reportErrors2, - /*headMessage*/ - void 0, intersectionState); - } - } - if (!related) { - return 0 /* False */; - } - result2 &= related; - } - } - return result2; - } - function recursiveTypeRelatedTo(source2, target2, reportErrors2, intersectionState, recursionFlags) { - var _a2, _b, _c; - if (overflow) { - return 0 /* False */; - } - var id = getRelationKey(source2, target2, intersectionState, relation, - /*ignoreConstraints*/ - false); - var entry = relation.get(id); - if (entry !== void 0) { - if (reportErrors2 && entry & 2 /* Failed */ && !(entry & 4 /* Reported */)) { - } - else { - if (outofbandVarianceMarkerHandler) { - var saved = entry & 24 /* ReportsMask */; - if (saved & 8 /* ReportsUnmeasurable */) { - instantiateType(source2, reportUnmeasurableMapper); - } - if (saved & 16 /* ReportsUnreliable */) { - instantiateType(source2, reportUnreliableMapper); - } - } - return entry & 1 /* Succeeded */ ? -1 /* True */ : 0 /* False */; - } - } - if (!maybeKeys) { - maybeKeys = []; - maybeKeysSet = /* @__PURE__ */ new Set(); - sourceStack = []; - targetStack = []; - } - else { - if (maybeKeysSet.has(id)) { - return 3 /* Maybe */; - } - var broadestEquivalentId = id.startsWith("*") ? getRelationKey(source2, target2, intersectionState, relation, - /*ignoreConstraints*/ - true) : void 0; - if (broadestEquivalentId && maybeKeysSet.has(broadestEquivalentId)) { - return 3 /* Maybe */; - } - if (sourceDepth === 100 || targetDepth === 100) { - overflow = true; - return 0 /* False */; - } - } - var maybeStart = maybeCount; - maybeKeys[maybeCount] = id; - maybeKeysSet.add(id); - maybeCount++; - var saveExpandingFlags = expandingFlags; - if (recursionFlags & 1 /* Source */) { - sourceStack[sourceDepth] = source2; - sourceDepth++; - if (!(expandingFlags & 1 /* Source */) && isDeeplyNestedType(source2, sourceStack, sourceDepth)) - expandingFlags |= 1 /* Source */; - } - if (recursionFlags & 2 /* Target */) { - targetStack[targetDepth] = target2; - targetDepth++; - if (!(expandingFlags & 2 /* Target */) && isDeeplyNestedType(target2, targetStack, targetDepth)) - expandingFlags |= 2 /* Target */; - } - var originalHandler; - var propagatingVarianceFlags = 0; - if (outofbandVarianceMarkerHandler) { - originalHandler = outofbandVarianceMarkerHandler; - outofbandVarianceMarkerHandler = function (onlyUnreliable) { - propagatingVarianceFlags |= onlyUnreliable ? 16 /* ReportsUnreliable */ : 8 /* ReportsUnmeasurable */; - return originalHandler(onlyUnreliable); - }; - } - var result2; - if (expandingFlags === 3 /* Both */) { - (_a2 = tracing) == null ? void 0 : _a2.instant(tracing.Phase.CheckTypes, "recursiveTypeRelatedTo_DepthLimit", { - sourceId: source2.id, - sourceIdStack: sourceStack.map(function (t) { return t.id; }), - targetId: target2.id, - targetIdStack: targetStack.map(function (t) { return t.id; }), - depth: sourceDepth, - targetDepth: targetDepth - }); - result2 = 3 /* Maybe */; - } - else { - (_b = tracing) == null ? void 0 : _b.push(tracing.Phase.CheckTypes, "structuredTypeRelatedTo", { sourceId: source2.id, targetId: target2.id }); - result2 = structuredTypeRelatedTo(source2, target2, reportErrors2, intersectionState); - (_c = tracing) == null ? void 0 : _c.pop(); - } - if (outofbandVarianceMarkerHandler) { - outofbandVarianceMarkerHandler = originalHandler; - } - if (recursionFlags & 1 /* Source */) { - sourceDepth--; - } - if (recursionFlags & 2 /* Target */) { - targetDepth--; - } - expandingFlags = saveExpandingFlags; - if (result2) { - if (result2 === -1 /* True */ || sourceDepth === 0 && targetDepth === 0) { - if (result2 === -1 /* True */ || result2 === 3 /* Maybe */) { - resetMaybeStack( - /*markAllAsSucceeded*/ - true); - } - else { - resetMaybeStack( - /*markAllAsSucceeded*/ - false); - } - } - } - else { - relation.set(id, (reportErrors2 ? 4 /* Reported */ : 0) | 2 /* Failed */ | propagatingVarianceFlags); - resetMaybeStack( - /*markAllAsSucceeded*/ - false); - } - return result2; - function resetMaybeStack(markAllAsSucceeded) { - for (var i = maybeStart; i < maybeCount; i++) { - maybeKeysSet.delete(maybeKeys[i]); - if (markAllAsSucceeded) { - relation.set(maybeKeys[i], 1 /* Succeeded */ | propagatingVarianceFlags); - } - } - maybeCount = maybeStart; - } - } - function structuredTypeRelatedTo(source2, target2, reportErrors2, intersectionState) { - var saveErrorInfo = captureErrorCalculationState(); - var result2 = structuredTypeRelatedToWorker(source2, target2, reportErrors2, intersectionState, saveErrorInfo); - if (relation !== identityRelation) { - if (!result2 && (source2.flags & 2097152 /* Intersection */ || source2.flags & 262144 /* TypeParameter */ && target2.flags & 1048576 /* Union */)) { - var constraint = getEffectiveConstraintOfIntersection(source2.flags & 2097152 /* Intersection */ ? source2.types : [source2], !!(target2.flags & 1048576 /* Union */)); - if (constraint && everyType(constraint, function (c) { return c !== source2; })) { - result2 = isRelatedTo(constraint, target2, 1 /* Source */, - /*reportErrors*/ - false, - /*headMessage*/ - void 0, intersectionState); - } - } - if (result2 && !(intersectionState & 2 /* Target */) && target2.flags & 2097152 /* Intersection */ && !isGenericObjectType(target2) && source2.flags & (524288 /* Object */ | 2097152 /* Intersection */)) { - result2 &= propertiesRelatedTo(source2, target2, reportErrors2, - /*excludedProperties*/ - void 0, - /*optionalsOnly*/ - false, 0 /* None */); - if (result2 && isObjectLiteralType2(source2) && getObjectFlags(source2) & 8192 /* FreshLiteral */) { - result2 &= indexSignaturesRelatedTo(source2, target2, - /*sourceIsPrimitive*/ - false, reportErrors2, 0 /* None */); - } - } - else if (result2 && isNonGenericObjectType(target2) && !isArrayOrTupleType(target2) && source2.flags & 2097152 /* Intersection */ && getApparentType(source2).flags & 3670016 /* StructuredType */ && !some(source2.types, function (t) { return t === target2 || !!(getObjectFlags(t) & 262144 /* NonInferrableType */); })) { - result2 &= propertiesRelatedTo(source2, target2, reportErrors2, - /*excludedProperties*/ - void 0, - /*optionalsOnly*/ - true, intersectionState); - } - } - if (result2) { - resetErrorInfo(saveErrorInfo); - } - return result2; - } - function structuredTypeRelatedToWorker(source2, target2, reportErrors2, intersectionState, saveErrorInfo) { - var result2; - var originalErrorInfo; - var varianceCheckFailed = false; - var sourceFlags = source2.flags; - var targetFlags = target2.flags; - if (relation === identityRelation) { - if (sourceFlags & 3145728 /* UnionOrIntersection */) { - var result3 = eachTypeRelatedToSomeType(source2, target2); - if (result3) { - result3 &= eachTypeRelatedToSomeType(target2, source2); - } - return result3; - } - if (sourceFlags & 4194304 /* Index */) { - return isRelatedTo(source2.type, target2.type, 3 /* Both */, - /*reportErrors*/ - false); - } - if (sourceFlags & 8388608 /* IndexedAccess */) { - if (result2 = isRelatedTo(source2.objectType, target2.objectType, 3 /* Both */, - /*reportErrors*/ - false)) { - if (result2 &= isRelatedTo(source2.indexType, target2.indexType, 3 /* Both */, - /*reportErrors*/ - false)) { - return result2; - } - } - } - if (sourceFlags & 16777216 /* Conditional */) { - if (source2.root.isDistributive === target2.root.isDistributive) { - if (result2 = isRelatedTo(source2.checkType, target2.checkType, 3 /* Both */, - /*reportErrors*/ - false)) { - if (result2 &= isRelatedTo(source2.extendsType, target2.extendsType, 3 /* Both */, - /*reportErrors*/ - false)) { - if (result2 &= isRelatedTo(getTrueTypeFromConditionalType(source2), getTrueTypeFromConditionalType(target2), 3 /* Both */, - /*reportErrors*/ - false)) { - if (result2 &= isRelatedTo(getFalseTypeFromConditionalType(source2), getFalseTypeFromConditionalType(target2), 3 /* Both */, - /*reportErrors*/ - false)) { - return result2; - } - } - } - } - } - } - if (sourceFlags & 33554432 /* Substitution */) { - if (result2 = isRelatedTo(source2.baseType, target2.baseType, 3 /* Both */, - /*reportErrors*/ - false)) { - if (result2 &= isRelatedTo(source2.constraint, target2.constraint, 3 /* Both */, - /*reportErrors*/ - false)) { - return result2; - } - } - } - if (!(sourceFlags & 524288 /* Object */)) { - return 0 /* False */; - } - } - else if (sourceFlags & 3145728 /* UnionOrIntersection */ || targetFlags & 3145728 /* UnionOrIntersection */) { - if (result2 = unionOrIntersectionRelatedTo(source2, target2, reportErrors2, intersectionState)) { - return result2; - } - if (!(sourceFlags & 465829888 /* Instantiable */ || sourceFlags & 524288 /* Object */ && targetFlags & 1048576 /* Union */ || sourceFlags & 2097152 /* Intersection */ && targetFlags & (524288 /* Object */ | 1048576 /* Union */ | 465829888 /* Instantiable */))) { - return 0 /* False */; - } - } - if (sourceFlags & (524288 /* Object */ | 16777216 /* Conditional */) && source2.aliasSymbol && source2.aliasTypeArguments && source2.aliasSymbol === target2.aliasSymbol && !(isMarkerType(source2) || isMarkerType(target2))) { - var variances = getAliasVariances(source2.aliasSymbol); - if (variances === emptyArray) { - return 1 /* Unknown */; - } - var params = getSymbolLinks(source2.aliasSymbol).typeParameters; - var minParams = getMinTypeArgumentCount(params); - var sourceTypes = fillMissingTypeArguments(source2.aliasTypeArguments, params, minParams, isInJSFile(source2.aliasSymbol.valueDeclaration)); - var targetTypes = fillMissingTypeArguments(target2.aliasTypeArguments, params, minParams, isInJSFile(source2.aliasSymbol.valueDeclaration)); - var varianceResult = relateVariances(sourceTypes, targetTypes, variances, intersectionState); - if (varianceResult !== void 0) { - return varianceResult; - } - } - if (isSingleElementGenericTupleType(source2) && !source2.target.readonly && (result2 = isRelatedTo(getTypeArguments(source2)[0], target2, 1 /* Source */)) || isSingleElementGenericTupleType(target2) && (target2.target.readonly || isMutableArrayOrTuple(getBaseConstraintOfType(source2) || source2)) && (result2 = isRelatedTo(source2, getTypeArguments(target2)[0], 2 /* Target */))) { - return result2; - } - if (targetFlags & 262144 /* TypeParameter */) { - if (getObjectFlags(source2) & 32 /* Mapped */ && !source2.declaration.nameType && isRelatedTo(getIndexType(target2), getConstraintTypeFromMappedType(source2), 3 /* Both */)) { - if (!(getMappedTypeModifiers(source2) & 4 /* IncludeOptional */)) { - var templateType = getTemplateTypeFromMappedType(source2); - var indexedAccessType = getIndexedAccessType(target2, getTypeParameterFromMappedType(source2)); - if (result2 = isRelatedTo(templateType, indexedAccessType, 3 /* Both */, reportErrors2)) { - return result2; - } - } - } - if (relation === comparableRelation && sourceFlags & 262144 /* TypeParameter */) { - var constraint = getConstraintOfTypeParameter(source2); - if (constraint && hasNonCircularBaseConstraint(source2)) { - while (constraint && someType(constraint, function (c) { return !!(c.flags & 262144 /* TypeParameter */); })) { - if (result2 = isRelatedTo(constraint, target2, 1 /* Source */, - /*reportErrors*/ - false)) { - return result2; - } - constraint = getConstraintOfTypeParameter(constraint); - } - } - return 0 /* False */; - } - } - else if (targetFlags & 4194304 /* Index */) { - var targetType_1 = target2.type; - if (sourceFlags & 4194304 /* Index */) { - if (result2 = isRelatedTo(targetType_1, source2.type, 3 /* Both */, - /*reportErrors*/ - false)) { - return result2; - } - } - if (isTupleType(targetType_1)) { - if (result2 = isRelatedTo(source2, getKnownKeysOfTupleType(targetType_1), 2 /* Target */, reportErrors2)) { - return result2; - } - } - else { - var constraint = getSimplifiedTypeOrConstraint(targetType_1); - if (constraint) { - if (isRelatedTo(source2, getIndexType(constraint, target2.indexFlags | 4 /* NoReducibleCheck */), 2 /* Target */, reportErrors2) === -1 /* True */) { - return -1 /* True */; - } - } - else if (isGenericMappedType(targetType_1)) { - var nameType_1 = getNameTypeFromMappedType(targetType_1); - var constraintType = getConstraintTypeFromMappedType(targetType_1); - var targetKeys = void 0; - if (nameType_1 && isMappedTypeWithKeyofConstraintDeclaration(targetType_1)) { - var modifiersType = getApparentType(getModifiersTypeFromMappedType(targetType_1)); - var mappedKeys_1 = []; - forEachMappedTypePropertyKeyTypeAndIndexSignatureKeyType(modifiersType, 8576 /* StringOrNumberLiteralOrUnique */, - /*stringsOnly*/ - false, function (t) { return void mappedKeys_1.push(instantiateType(nameType_1, appendTypeMapping(targetType_1.mapper, getTypeParameterFromMappedType(targetType_1), t))); }); - targetKeys = getUnionType(__spreadArray(__spreadArray([], __read(mappedKeys_1), false), [nameType_1], false)); - } - else { - targetKeys = nameType_1 || constraintType; - } - if (isRelatedTo(source2, targetKeys, 2 /* Target */, reportErrors2) === -1 /* True */) { - return -1 /* True */; - } - } - } - } - else if (targetFlags & 8388608 /* IndexedAccess */) { - if (sourceFlags & 8388608 /* IndexedAccess */) { - if (result2 = isRelatedTo(source2.objectType, target2.objectType, 3 /* Both */, reportErrors2)) { - result2 &= isRelatedTo(source2.indexType, target2.indexType, 3 /* Both */, reportErrors2); - } - if (result2) { - return result2; - } - if (reportErrors2) { - originalErrorInfo = errorInfo; - } - } - if (relation === assignableRelation || relation === comparableRelation) { - var objectType = target2.objectType; - var indexType = target2.indexType; - var baseObjectType = getBaseConstraintOfType(objectType) || objectType; - var baseIndexType = getBaseConstraintOfType(indexType) || indexType; - if (!isGenericObjectType(baseObjectType) && !isGenericIndexType(baseIndexType)) { - var accessFlags = 4 /* Writing */ | (baseObjectType !== objectType ? 2 /* NoIndexSignatures */ : 0); - var constraint = getIndexedAccessTypeOrUndefined(baseObjectType, baseIndexType, accessFlags); - if (constraint) { - if (reportErrors2 && originalErrorInfo) { - resetErrorInfo(saveErrorInfo); - } - if (result2 = isRelatedTo(source2, constraint, 2 /* Target */, reportErrors2, - /*headMessage*/ - void 0, intersectionState)) { - return result2; - } - if (reportErrors2 && originalErrorInfo && errorInfo) { - errorInfo = countMessageChainBreadth([originalErrorInfo]) <= countMessageChainBreadth([errorInfo]) ? originalErrorInfo : errorInfo; - } - } - } - } - if (reportErrors2) { - originalErrorInfo = void 0; - } - } - else if (isGenericMappedType(target2) && relation !== identityRelation) { - var keysRemapped = !!target2.declaration.nameType; - var templateType = getTemplateTypeFromMappedType(target2); - var modifiers = getMappedTypeModifiers(target2); - if (!(modifiers & 8 /* ExcludeOptional */)) { - if (!keysRemapped && templateType.flags & 8388608 /* IndexedAccess */ && templateType.objectType === source2 && templateType.indexType === getTypeParameterFromMappedType(target2)) { - return -1 /* True */; - } - if (!isGenericMappedType(source2)) { - var targetKeys = keysRemapped ? getNameTypeFromMappedType(target2) : getConstraintTypeFromMappedType(target2); - var sourceKeys = getIndexType(source2, 2 /* NoIndexSignatures */); - var includeOptional = modifiers & 4 /* IncludeOptional */; - var filteredByApplicability = includeOptional ? intersectTypes(targetKeys, sourceKeys) : void 0; - if (includeOptional ? !(filteredByApplicability.flags & 131072 /* Never */) : isRelatedTo(targetKeys, sourceKeys, 3 /* Both */)) { - var templateType2 = getTemplateTypeFromMappedType(target2); - var typeParameter = getTypeParameterFromMappedType(target2); - var nonNullComponent = extractTypesOfKind(templateType2, ~98304 /* Nullable */); - if (!keysRemapped && nonNullComponent.flags & 8388608 /* IndexedAccess */ && nonNullComponent.indexType === typeParameter) { - if (result2 = isRelatedTo(source2, nonNullComponent.objectType, 2 /* Target */, reportErrors2)) { - return result2; - } - } - else { - var indexingType = keysRemapped ? filteredByApplicability || targetKeys : filteredByApplicability ? getIntersectionType([filteredByApplicability, typeParameter]) : typeParameter; - var indexedAccessType = getIndexedAccessType(source2, indexingType); - if (result2 = isRelatedTo(indexedAccessType, templateType2, 3 /* Both */, reportErrors2)) { - return result2; - } - } - } - originalErrorInfo = errorInfo; - resetErrorInfo(saveErrorInfo); - } - } - } - else if (targetFlags & 16777216 /* Conditional */) { - if (isDeeplyNestedType(target2, targetStack, targetDepth, 10)) { - return 3 /* Maybe */; - } - var c = target2; - if (!c.root.inferTypeParameters && !isDistributionDependent(c.root) && !(source2.flags & 16777216 /* Conditional */ && source2.root === c.root)) { - var skipTrue = !isTypeAssignableTo(getPermissiveInstantiation(c.checkType), getPermissiveInstantiation(c.extendsType)); - var skipFalse = !skipTrue && isTypeAssignableTo(getRestrictiveInstantiation(c.checkType), getRestrictiveInstantiation(c.extendsType)); - if (result2 = skipTrue ? -1 /* True */ : isRelatedTo(source2, getTrueTypeFromConditionalType(c), 2 /* Target */, - /*reportErrors*/ - false, - /*headMessage*/ - void 0, intersectionState)) { - result2 &= skipFalse ? -1 /* True */ : isRelatedTo(source2, getFalseTypeFromConditionalType(c), 2 /* Target */, - /*reportErrors*/ - false, - /*headMessage*/ - void 0, intersectionState); - if (result2) { - return result2; - } - } - } - } - else if (targetFlags & 134217728 /* TemplateLiteral */) { - if (sourceFlags & 134217728 /* TemplateLiteral */) { - if (relation === comparableRelation) { - return templateLiteralTypesDefinitelyUnrelated(source2, target2) ? 0 /* False */ : -1 /* True */; - } - instantiateType(source2, reportUnreliableMapper); - } - if (isTypeMatchedByTemplateLiteralType(source2, target2)) { - return -1 /* True */; - } - } - else if (target2.flags & 268435456 /* StringMapping */) { - if (!(source2.flags & 268435456 /* StringMapping */)) { - if (isMemberOfStringMapping(source2, target2)) { - return -1 /* True */; - } - } - } - if (sourceFlags & 8650752 /* TypeVariable */) { - if (!(sourceFlags & 8388608 /* IndexedAccess */ && targetFlags & 8388608 /* IndexedAccess */)) { - var constraint = getConstraintOfType(source2) || unknownType; - if (result2 = isRelatedTo(constraint, target2, 1 /* Source */, - /*reportErrors*/ - false, - /*headMessage*/ - void 0, intersectionState)) { - return result2; - } - else if (result2 = isRelatedTo(getTypeWithThisArgument(constraint, source2), target2, 1 /* Source */, reportErrors2 && constraint !== unknownType && !(targetFlags & sourceFlags & 262144 /* TypeParameter */), - /*headMessage*/ - void 0, intersectionState)) { - return result2; - } - if (isMappedTypeGenericIndexedAccess(source2)) { - var indexConstraint = getConstraintOfType(source2.indexType); - if (indexConstraint) { - if (result2 = isRelatedTo(getIndexedAccessType(source2.objectType, indexConstraint), target2, 1 /* Source */, reportErrors2)) { - return result2; - } - } - } - } - } - else if (sourceFlags & 4194304 /* Index */) { - if (result2 = isRelatedTo(keyofConstraintType, target2, 1 /* Source */, reportErrors2)) { - return result2; - } - } - else if (sourceFlags & 134217728 /* TemplateLiteral */ && !(targetFlags & 524288 /* Object */)) { - if (!(targetFlags & 134217728 /* TemplateLiteral */)) { - var constraint = getBaseConstraintOfType(source2); - if (constraint && constraint !== source2 && (result2 = isRelatedTo(constraint, target2, 1 /* Source */, reportErrors2))) { - return result2; - } - } - } - else if (sourceFlags & 268435456 /* StringMapping */) { - if (targetFlags & 268435456 /* StringMapping */) { - if (source2.symbol !== target2.symbol) { - return 0 /* False */; - } - if (result2 = isRelatedTo(source2.type, target2.type, 3 /* Both */, reportErrors2)) { - return result2; - } - } - else { - var constraint = getBaseConstraintOfType(source2); - if (constraint && (result2 = isRelatedTo(constraint, target2, 1 /* Source */, reportErrors2))) { - return result2; - } - } - } - else if (sourceFlags & 16777216 /* Conditional */) { - if (isDeeplyNestedType(source2, sourceStack, sourceDepth, 10)) { - return 3 /* Maybe */; - } - if (targetFlags & 16777216 /* Conditional */) { - var sourceParams = source2.root.inferTypeParameters; - var sourceExtends = source2.extendsType; - var mapper = void 0; - if (sourceParams) { - var ctx = createInferenceContext(sourceParams, - /*signature*/ - void 0, 0 /* None */, isRelatedToWorker); - inferTypes(ctx.inferences, target2.extendsType, sourceExtends, 512 /* NoConstraints */ | 1024 /* AlwaysStrict */); - sourceExtends = instantiateType(sourceExtends, ctx.mapper); - mapper = ctx.mapper; - } - if (isTypeIdenticalTo(sourceExtends, target2.extendsType) && (isRelatedTo(source2.checkType, target2.checkType, 3 /* Both */) || isRelatedTo(target2.checkType, source2.checkType, 3 /* Both */))) { - if (result2 = isRelatedTo(instantiateType(getTrueTypeFromConditionalType(source2), mapper), getTrueTypeFromConditionalType(target2), 3 /* Both */, reportErrors2)) { - result2 &= isRelatedTo(getFalseTypeFromConditionalType(source2), getFalseTypeFromConditionalType(target2), 3 /* Both */, reportErrors2); - } - if (result2) { - return result2; - } - } - } - else { - var distributiveConstraint = hasNonCircularBaseConstraint(source2) ? getConstraintOfDistributiveConditionalType(source2) : void 0; - if (distributiveConstraint) { - if (result2 = isRelatedTo(distributiveConstraint, target2, 1 /* Source */, reportErrors2)) { - return result2; - } - } - } - var defaultConstraint = getDefaultConstraintOfConditionalType(source2); - if (defaultConstraint) { - if (result2 = isRelatedTo(defaultConstraint, target2, 1 /* Source */, reportErrors2)) { - return result2; - } - } - } - else { - if (relation !== subtypeRelation && relation !== strictSubtypeRelation && isPartialMappedType(target2) && isEmptyObjectType(source2)) { - return -1 /* True */; - } - if (isGenericMappedType(target2)) { - if (isGenericMappedType(source2)) { - if (result2 = mappedTypeRelatedTo(source2, target2, reportErrors2)) { - return result2; - } - } - return 0 /* False */; - } - var sourceIsPrimitive = !!(sourceFlags & 402784252 /* Primitive */); - if (relation !== identityRelation) { - source2 = getApparentType(source2); - sourceFlags = source2.flags; - } - else if (isGenericMappedType(source2)) { - return 0 /* False */; - } - if (getObjectFlags(source2) & 4 /* Reference */ && getObjectFlags(target2) & 4 /* Reference */ && source2.target === target2.target && !isTupleType(source2) && !(isMarkerType(source2) || isMarkerType(target2))) { - if (isEmptyArrayLiteralType(source2)) { - return -1 /* True */; - } - var variances = getVariances(source2.target); - if (variances === emptyArray) { - return 1 /* Unknown */; - } - var varianceResult = relateVariances(getTypeArguments(source2), getTypeArguments(target2), variances, intersectionState); - if (varianceResult !== void 0) { - return varianceResult; - } - } - else if (isReadonlyArrayType(target2) ? everyType(source2, isArrayOrTupleType) : isArrayType(target2) && everyType(source2, function (t) { return isTupleType(t) && !t.target.readonly; })) { - if (relation !== identityRelation) { - return isRelatedTo(getIndexTypeOfType(source2, numberType) || anyType, getIndexTypeOfType(target2, numberType) || anyType, 3 /* Both */, reportErrors2); - } - else { - return 0 /* False */; - } - } - else if (isGenericTupleType(source2) && isTupleType(target2) && !isGenericTupleType(target2)) { - var constraint = getBaseConstraintOrType(source2); - if (constraint !== source2) { - return isRelatedTo(constraint, target2, 1 /* Source */, reportErrors2); - } - } - else if ((relation === subtypeRelation || relation === strictSubtypeRelation) && isEmptyObjectType(target2) && getObjectFlags(target2) & 8192 /* FreshLiteral */ && !isEmptyObjectType(source2)) { - return 0 /* False */; - } - if (sourceFlags & (524288 /* Object */ | 2097152 /* Intersection */) && targetFlags & 524288 /* Object */) { - var reportStructuralErrors = reportErrors2 && errorInfo === saveErrorInfo.errorInfo && !sourceIsPrimitive; - result2 = propertiesRelatedTo(source2, target2, reportStructuralErrors, - /*excludedProperties*/ - void 0, - /*optionalsOnly*/ - false, intersectionState); - if (result2) { - result2 &= signaturesRelatedTo(source2, target2, 0 /* Call */, reportStructuralErrors, intersectionState); - if (result2) { - result2 &= signaturesRelatedTo(source2, target2, 1 /* Construct */, reportStructuralErrors, intersectionState); - if (result2) { - result2 &= indexSignaturesRelatedTo(source2, target2, sourceIsPrimitive, reportStructuralErrors, intersectionState); - } - } - } - if (varianceCheckFailed && result2) { - errorInfo = originalErrorInfo || errorInfo || saveErrorInfo.errorInfo; - } - else if (result2) { - return result2; - } - } - if (sourceFlags & (524288 /* Object */ | 2097152 /* Intersection */) && targetFlags & 1048576 /* Union */) { - var objectOnlyTarget = extractTypesOfKind(target2, 524288 /* Object */ | 2097152 /* Intersection */ | 33554432 /* Substitution */); - if (objectOnlyTarget.flags & 1048576 /* Union */) { - var result3 = typeRelatedToDiscriminatedType(source2, objectOnlyTarget); - if (result3) { - return result3; - } - } - } - } - return 0 /* False */; - function countMessageChainBreadth(info) { - if (!info) - return 0; - return reduceLeft(info, function (value, chain) { return value + 1 + countMessageChainBreadth(chain.next); }, 0); - } - function relateVariances(sourceTypeArguments, targetTypeArguments, variances, intersectionState2) { - if (result2 = typeArgumentsRelatedTo(sourceTypeArguments, targetTypeArguments, variances, reportErrors2, intersectionState2)) { - return result2; - } - if (some(variances, function (v) { return !!(v & 24 /* AllowsStructuralFallback */); })) { - originalErrorInfo = void 0; - resetErrorInfo(saveErrorInfo); - return void 0; - } - var allowStructuralFallback = targetTypeArguments && hasCovariantVoidArgument(targetTypeArguments, variances); - varianceCheckFailed = !allowStructuralFallback; - if (variances !== emptyArray && !allowStructuralFallback) { - if (varianceCheckFailed && !(reportErrors2 && some(variances, function (v) { return (v & 7 /* VarianceMask */) === 0; } /* Invariant */))) { - return 0 /* False */; - } - originalErrorInfo = errorInfo; - resetErrorInfo(saveErrorInfo); - } - } - } - function mappedTypeRelatedTo(source2, target2, reportErrors2) { - var modifiersRelated = relation === comparableRelation || (relation === identityRelation ? getMappedTypeModifiers(source2) === getMappedTypeModifiers(target2) : getCombinedMappedTypeOptionality(source2) <= getCombinedMappedTypeOptionality(target2)); - if (modifiersRelated) { - var result2 = void 0; - var targetConstraint = getConstraintTypeFromMappedType(target2); - var sourceConstraint = instantiateType(getConstraintTypeFromMappedType(source2), getCombinedMappedTypeOptionality(source2) < 0 ? reportUnmeasurableMapper : reportUnreliableMapper); - if (result2 = isRelatedTo(targetConstraint, sourceConstraint, 3 /* Both */, reportErrors2)) { - var mapper = createTypeMapper([getTypeParameterFromMappedType(source2)], [getTypeParameterFromMappedType(target2)]); - if (instantiateType(getNameTypeFromMappedType(source2), mapper) === instantiateType(getNameTypeFromMappedType(target2), mapper)) { - return result2 & isRelatedTo(instantiateType(getTemplateTypeFromMappedType(source2), mapper), getTemplateTypeFromMappedType(target2), 3 /* Both */, reportErrors2); - } - } - } - return 0 /* False */; - } - function typeRelatedToDiscriminatedType(source2, target2) { - var e_266, _t, e_267, _u, e_268, _v; - var _a2; - var sourceProperties = getPropertiesOfType(source2); - var sourcePropertiesFiltered = findDiscriminantProperties(sourceProperties, target2); - if (!sourcePropertiesFiltered) - return 0 /* False */; - var numCombinations = 1; - try { - for (var sourcePropertiesFiltered_1 = __values(sourcePropertiesFiltered), sourcePropertiesFiltered_1_1 = sourcePropertiesFiltered_1.next(); !sourcePropertiesFiltered_1_1.done; sourcePropertiesFiltered_1_1 = sourcePropertiesFiltered_1.next()) { - var sourceProperty = sourcePropertiesFiltered_1_1.value; - numCombinations *= countTypes(getNonMissingTypeOfSymbol(sourceProperty)); - if (numCombinations > 25) { - (_a2 = tracing) == null ? void 0 : _a2.instant(tracing.Phase.CheckTypes, "typeRelatedToDiscriminatedType_DepthLimit", { sourceId: source2.id, targetId: target2.id, numCombinations: numCombinations }); - return 0 /* False */; - } - } - } - catch (e_266_1) { e_266 = { error: e_266_1 }; } - finally { - try { - if (sourcePropertiesFiltered_1_1 && !sourcePropertiesFiltered_1_1.done && (_t = sourcePropertiesFiltered_1.return)) _t.call(sourcePropertiesFiltered_1); - } - finally { if (e_266) throw e_266.error; } - } - var sourceDiscriminantTypes = new Array(sourcePropertiesFiltered.length); - var excludedProperties = /* @__PURE__ */ new Set(); - for (var i = 0; i < sourcePropertiesFiltered.length; i++) { - var sourceProperty = sourcePropertiesFiltered[i]; - var sourcePropertyType = getNonMissingTypeOfSymbol(sourceProperty); - sourceDiscriminantTypes[i] = sourcePropertyType.flags & 1048576 /* Union */ ? sourcePropertyType.types : [sourcePropertyType]; - excludedProperties.add(sourceProperty.escapedName); - } - var discriminantCombinations = cartesianProduct(sourceDiscriminantTypes); - var matchingTypes = []; - var _loop_24 = function (combination) { - var e_269, _w; - var hasMatch = false; - try { - outer: for (var _x = (e_269 = void 0, __values(target2.types)), _y = _x.next(); !_y.done; _y = _x.next()) { - var type = _y.value; - var _loop_25 = function (i) { - var sourceProperty = sourcePropertiesFiltered[i]; - var targetProperty = getPropertyOfType(type, sourceProperty.escapedName); - if (!targetProperty) - return "continue-outer"; - if (sourceProperty === targetProperty) - return "continue"; - var related = propertyRelatedTo(source2, target2, sourceProperty, targetProperty, function (_) { return combination[i]; }, - /*reportErrors*/ - false, 0 /* None */, - /*skipOptional*/ - strictNullChecks || relation === comparableRelation); - if (!related) { - return "continue-outer"; - } - }; - for (var i = 0; i < sourcePropertiesFiltered.length; i++) { - var state_11 = _loop_25(i); - switch (state_11) { - case "continue-outer": continue outer; - } - } - pushIfUnique(matchingTypes, type, equateValues); - hasMatch = true; - } - } - catch (e_269_1) { e_269 = { error: e_269_1 }; } - finally { - try { - if (_y && !_y.done && (_w = _x.return)) _w.call(_x); - } - finally { if (e_269) throw e_269.error; } - } - if (!hasMatch) { - return { value: 0 /* False */ }; - } - }; - try { - for (var discriminantCombinations_1 = __values(discriminantCombinations), discriminantCombinations_1_1 = discriminantCombinations_1.next(); !discriminantCombinations_1_1.done; discriminantCombinations_1_1 = discriminantCombinations_1.next()) { - var combination = discriminantCombinations_1_1.value; - var state_10 = _loop_24(combination); - if (typeof state_10 === "object") - return state_10.value; - } - } - catch (e_267_1) { e_267 = { error: e_267_1 }; } - finally { - try { - if (discriminantCombinations_1_1 && !discriminantCombinations_1_1.done && (_u = discriminantCombinations_1.return)) _u.call(discriminantCombinations_1); - } - finally { if (e_267) throw e_267.error; } - } - var result2 = -1 /* True */; - try { - for (var matchingTypes_1 = __values(matchingTypes), matchingTypes_1_1 = matchingTypes_1.next(); !matchingTypes_1_1.done; matchingTypes_1_1 = matchingTypes_1.next()) { - var type = matchingTypes_1_1.value; - result2 &= propertiesRelatedTo(source2, type, - /*reportErrors*/ - false, excludedProperties, - /*optionalsOnly*/ - false, 0 /* None */); - if (result2) { - result2 &= signaturesRelatedTo(source2, type, 0 /* Call */, - /*reportErrors*/ - false, 0 /* None */); - if (result2) { - result2 &= signaturesRelatedTo(source2, type, 1 /* Construct */, - /*reportErrors*/ - false, 0 /* None */); - if (result2 && !(isTupleType(source2) && isTupleType(type))) { - result2 &= indexSignaturesRelatedTo(source2, type, - /*sourceIsPrimitive*/ - false, - /*reportErrors*/ - false, 0 /* None */); - } - } - } - if (!result2) { - return result2; - } - } - } - catch (e_268_1) { e_268 = { error: e_268_1 }; } - finally { - try { - if (matchingTypes_1_1 && !matchingTypes_1_1.done && (_v = matchingTypes_1.return)) _v.call(matchingTypes_1); - } - finally { if (e_268) throw e_268.error; } - } - return result2; - } - function excludeProperties(properties, excludedProperties) { - if (!excludedProperties || properties.length === 0) - return properties; - var result2; - for (var i = 0; i < properties.length; i++) { - if (!excludedProperties.has(properties[i].escapedName)) { - if (result2) { - result2.push(properties[i]); - } - } - else if (!result2) { - result2 = properties.slice(0, i); - } - } - return result2 || properties; - } - function isPropertySymbolTypeRelated(sourceProp, targetProp, getTypeOfSourceProperty, reportErrors2, intersectionState) { - var targetIsOptional = strictNullChecks && !!(getCheckFlags(targetProp) & 48 /* Partial */); - var effectiveTarget = addOptionality(getNonMissingTypeOfSymbol(targetProp), - /*isProperty*/ - false, targetIsOptional); - var effectiveSource = getTypeOfSourceProperty(sourceProp); - return isRelatedTo(effectiveSource, effectiveTarget, 3 /* Both */, reportErrors2, - /*headMessage*/ - void 0, intersectionState); - } - function propertyRelatedTo(source2, target2, sourceProp, targetProp, getTypeOfSourceProperty, reportErrors2, intersectionState, skipOptional) { - var sourcePropFlags = getDeclarationModifierFlagsFromSymbol(sourceProp); - var targetPropFlags = getDeclarationModifierFlagsFromSymbol(targetProp); - if (sourcePropFlags & 8 /* Private */ || targetPropFlags & 8 /* Private */) { - if (sourceProp.valueDeclaration !== targetProp.valueDeclaration) { - if (reportErrors2) { - if (sourcePropFlags & 8 /* Private */ && targetPropFlags & 8 /* Private */) { - reportError(Diagnostics.Types_have_separate_declarations_of_a_private_property_0, symbolToString(targetProp)); - } - else { - reportError(Diagnostics.Property_0_is_private_in_type_1_but_not_in_type_2, symbolToString(targetProp), typeToString(sourcePropFlags & 8 /* Private */ ? source2 : target2), typeToString(sourcePropFlags & 8 /* Private */ ? target2 : source2)); - } - } - return 0 /* False */; - } - } - else if (targetPropFlags & 16 /* Protected */) { - if (!isValidOverrideOf(sourceProp, targetProp)) { - if (reportErrors2) { - reportError(Diagnostics.Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2, symbolToString(targetProp), typeToString(getDeclaringClass(sourceProp) || source2), typeToString(getDeclaringClass(targetProp) || target2)); - } - return 0 /* False */; - } - } - else if (sourcePropFlags & 16 /* Protected */) { - if (reportErrors2) { - reportError(Diagnostics.Property_0_is_protected_in_type_1_but_public_in_type_2, symbolToString(targetProp), typeToString(source2), typeToString(target2)); - } - return 0 /* False */; - } - if (relation === strictSubtypeRelation && isReadonlySymbol(sourceProp) && !isReadonlySymbol(targetProp)) { - return 0 /* False */; - } - var related = isPropertySymbolTypeRelated(sourceProp, targetProp, getTypeOfSourceProperty, reportErrors2, intersectionState); - if (!related) { - if (reportErrors2) { - reportIncompatibleError(Diagnostics.Types_of_property_0_are_incompatible, symbolToString(targetProp)); - } - return 0 /* False */; - } - if (!skipOptional && sourceProp.flags & 16777216 /* Optional */ && targetProp.flags & 106500 /* ClassMember */ && !(targetProp.flags & 16777216 /* Optional */)) { - if (reportErrors2) { - reportError(Diagnostics.Property_0_is_optional_in_type_1_but_required_in_type_2, symbolToString(targetProp), typeToString(source2), typeToString(target2)); - } - return 0 /* False */; - } - return related; - } - function reportUnmatchedProperty(source2, target2, unmatchedProperty, requireOptionalProperties) { - var shouldSkipElaboration = false; - if (unmatchedProperty.valueDeclaration && isNamedDeclaration(unmatchedProperty.valueDeclaration) && isPrivateIdentifier(unmatchedProperty.valueDeclaration.name) && source2.symbol && source2.symbol.flags & 32 /* Class */) { - var privateIdentifierDescription = unmatchedProperty.valueDeclaration.name.escapedText; - var symbolTableKey = getSymbolNameForPrivateIdentifier(source2.symbol, privateIdentifierDescription); - if (symbolTableKey && getPropertyOfType(source2, symbolTableKey)) { - var sourceName = factory.getDeclarationName(source2.symbol.valueDeclaration); - var targetName = factory.getDeclarationName(target2.symbol.valueDeclaration); - reportError(Diagnostics.Property_0_in_type_1_refers_to_a_different_member_that_cannot_be_accessed_from_within_type_2, diagnosticName(privateIdentifierDescription), diagnosticName(sourceName.escapedText === "" ? anon : sourceName), diagnosticName(targetName.escapedText === "" ? anon : targetName)); - return; - } - } - var props = arrayFrom(getUnmatchedProperties(source2, target2, requireOptionalProperties, - /*matchDiscriminantProperties*/ - false)); - if (!headMessage || headMessage.code !== Diagnostics.Class_0_incorrectly_implements_interface_1.code && headMessage.code !== Diagnostics.Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclass.code) { - shouldSkipElaboration = true; - } - if (props.length === 1) { - var propName = symbolToString(unmatchedProperty, - /*enclosingDeclaration*/ - void 0, 0 /* None */, 4 /* AllowAnyNodeKind */ | 16 /* WriteComputedProps */); - reportError.apply(void 0, __spreadArray([Diagnostics.Property_0_is_missing_in_type_1_but_required_in_type_2, propName], __read(getTypeNamesForErrorDisplay(source2, target2)), false)); - if (length(unmatchedProperty.declarations)) { - associateRelatedInfo(createDiagnosticForNode(unmatchedProperty.declarations[0], Diagnostics._0_is_declared_here, propName)); - } - if (shouldSkipElaboration && errorInfo) { - overrideNextErrorInfo++; - } - } - else if (tryElaborateArrayLikeErrors(source2, target2, - /*reportErrors*/ - false)) { - if (props.length > 5) { - reportError(Diagnostics.Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more, typeToString(source2), typeToString(target2), map(props.slice(0, 4), function (p) { return symbolToString(p); }).join(", "), props.length - 4); - } - else { - reportError(Diagnostics.Type_0_is_missing_the_following_properties_from_type_1_Colon_2, typeToString(source2), typeToString(target2), map(props, function (p) { return symbolToString(p); }).join(", ")); - } - if (shouldSkipElaboration && errorInfo) { - overrideNextErrorInfo++; - } - } - } - function propertiesRelatedTo(source2, target2, reportErrors2, excludedProperties, optionalsOnly, intersectionState) { - var e_270, _t, e_271, _u; - if (relation === identityRelation) { - return propertiesIdenticalTo(source2, target2, excludedProperties); - } - var result2 = -1 /* True */; - if (isTupleType(target2)) { - if (isArrayOrTupleType(source2)) { - if (!target2.target.readonly && (isReadonlyArrayType(source2) || isTupleType(source2) && source2.target.readonly)) { - return 0 /* False */; - } - var sourceArity = getTypeReferenceArity(source2); - var targetArity = getTypeReferenceArity(target2); - var sourceRestFlag = isTupleType(source2) ? source2.target.combinedFlags & 4 /* Rest */ : 4 /* Rest */; - var targetRestFlag = target2.target.combinedFlags & 4 /* Rest */; - var sourceMinLength = isTupleType(source2) ? source2.target.minLength : 0; - var targetMinLength = target2.target.minLength; - if (!sourceRestFlag && sourceArity < targetMinLength) { - if (reportErrors2) { - reportError(Diagnostics.Source_has_0_element_s_but_target_requires_1, sourceArity, targetMinLength); - } - return 0 /* False */; - } - if (!targetRestFlag && targetArity < sourceMinLength) { - if (reportErrors2) { - reportError(Diagnostics.Source_has_0_element_s_but_target_allows_only_1, sourceMinLength, targetArity); - } - return 0 /* False */; - } - if (!targetRestFlag && (sourceRestFlag || targetArity < sourceArity)) { - if (reportErrors2) { - if (sourceMinLength < targetMinLength) { - reportError(Diagnostics.Target_requires_0_element_s_but_source_may_have_fewer, targetMinLength); - } - else { - reportError(Diagnostics.Target_allows_only_0_element_s_but_source_may_have_more, targetArity); - } - } - return 0 /* False */; - } - var sourceTypeArguments = getTypeArguments(source2); - var targetTypeArguments = getTypeArguments(target2); - var targetStartCount = getStartElementCount(target2.target, 11 /* NonRest */); - var targetEndCount = getEndElementCount(target2.target, 11 /* NonRest */); - var targetHasRestElement = target2.target.hasRestElement; - var canExcludeDiscriminants = !!excludedProperties; - for (var sourcePosition = 0; sourcePosition < sourceArity; sourcePosition++) { - var sourceFlags = isTupleType(source2) ? source2.target.elementFlags[sourcePosition] : 4 /* Rest */; - var sourcePositionFromEnd = sourceArity - 1 - sourcePosition; - var targetPosition = targetHasRestElement && sourcePosition >= targetStartCount ? targetArity - 1 - Math.min(sourcePositionFromEnd, targetEndCount) : sourcePosition; - var targetFlags = target2.target.elementFlags[targetPosition]; - if (targetFlags & 8 /* Variadic */ && !(sourceFlags & 8 /* Variadic */)) { - if (reportErrors2) { - reportError(Diagnostics.Source_provides_no_match_for_variadic_element_at_position_0_in_target, targetPosition); - } - return 0 /* False */; - } - if (sourceFlags & 8 /* Variadic */ && !(targetFlags & 12 /* Variable */)) { - if (reportErrors2) { - reportError(Diagnostics.Variadic_element_at_position_0_in_source_does_not_match_element_at_position_1_in_target, sourcePosition, targetPosition); - } - return 0 /* False */; - } - if (targetFlags & 1 /* Required */ && !(sourceFlags & 1 /* Required */)) { - if (reportErrors2) { - reportError(Diagnostics.Source_provides_no_match_for_required_element_at_position_0_in_target, targetPosition); - } - return 0 /* False */; - } - if (canExcludeDiscriminants) { - if (sourceFlags & 12 /* Variable */ || targetFlags & 12 /* Variable */) { - canExcludeDiscriminants = false; - } - if (canExcludeDiscriminants && (excludedProperties == null ? void 0 : excludedProperties.has("" + sourcePosition))) { - continue; - } - } - var sourceType = removeMissingType(sourceTypeArguments[sourcePosition], !!(sourceFlags & targetFlags & 2 /* Optional */)); - var targetType = targetTypeArguments[targetPosition]; - var targetCheckType = sourceFlags & 8 /* Variadic */ && targetFlags & 4 /* Rest */ ? createArrayType(targetType) : removeMissingType(targetType, !!(targetFlags & 2 /* Optional */)); - var related = isRelatedTo(sourceType, targetCheckType, 3 /* Both */, reportErrors2, - /*headMessage*/ - void 0, intersectionState); - if (!related) { - if (reportErrors2 && (targetArity > 1 || sourceArity > 1)) { - if (targetHasRestElement && sourcePosition >= targetStartCount && sourcePositionFromEnd >= targetEndCount && targetStartCount !== sourceArity - targetEndCount - 1) { - reportIncompatibleError(Diagnostics.Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target, targetStartCount, sourceArity - targetEndCount - 1, targetPosition); - } - else { - reportIncompatibleError(Diagnostics.Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target, sourcePosition, targetPosition); - } - } - return 0 /* False */; - } - result2 &= related; - } - return result2; - } - if (target2.target.combinedFlags & 12 /* Variable */) { - return 0 /* False */; - } - } - var requireOptionalProperties = (relation === subtypeRelation || relation === strictSubtypeRelation) && !isObjectLiteralType2(source2) && !isEmptyArrayLiteralType(source2) && !isTupleType(source2); - var unmatchedProperty = getUnmatchedProperty(source2, target2, requireOptionalProperties, - /*matchDiscriminantProperties*/ - false); - if (unmatchedProperty) { - if (reportErrors2 && shouldReportUnmatchedPropertyError(source2, target2)) { - reportUnmatchedProperty(source2, target2, unmatchedProperty, requireOptionalProperties); - } - return 0 /* False */; - } - if (isObjectLiteralType2(target2)) { - try { - for (var _v = __values(excludeProperties(getPropertiesOfType(source2), excludedProperties)), _w = _v.next(); !_w.done; _w = _v.next()) { - var sourceProp = _w.value; - if (!getPropertyOfObjectType(target2, sourceProp.escapedName)) { - var sourceType = getTypeOfSymbol(sourceProp); - if (!(sourceType.flags & 32768 /* Undefined */)) { - if (reportErrors2) { - reportError(Diagnostics.Property_0_does_not_exist_on_type_1, symbolToString(sourceProp), typeToString(target2)); - } - return 0 /* False */; - } - } - } - } - catch (e_270_1) { e_270 = { error: e_270_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_270) throw e_270.error; } - } - } - var properties = getPropertiesOfType(target2); - var numericNamesOnly = isTupleType(source2) && isTupleType(target2); - try { - for (var _x = __values(excludeProperties(properties, excludedProperties)), _y = _x.next(); !_y.done; _y = _x.next()) { - var targetProp = _y.value; - var name_41 = targetProp.escapedName; - if (!(targetProp.flags & 4194304 /* Prototype */) && (!numericNamesOnly || isNumericLiteralName(name_41) || name_41 === "length") && (!optionalsOnly || targetProp.flags & 16777216 /* Optional */)) { - var sourceProp = getPropertyOfType(source2, name_41); - if (sourceProp && sourceProp !== targetProp) { - var related = propertyRelatedTo(source2, target2, sourceProp, targetProp, getNonMissingTypeOfSymbol, reportErrors2, intersectionState, relation === comparableRelation); - if (!related) { - return 0 /* False */; - } - result2 &= related; - } - } - } - } - catch (e_271_1) { e_271 = { error: e_271_1 }; } - finally { - try { - if (_y && !_y.done && (_u = _x.return)) _u.call(_x); - } - finally { if (e_271) throw e_271.error; } - } - return result2; - } - function propertiesIdenticalTo(source2, target2, excludedProperties) { - var e_272, _t; - if (!(source2.flags & 524288 /* Object */ && target2.flags & 524288 /* Object */)) { - return 0 /* False */; - } - var sourceProperties = excludeProperties(getPropertiesOfObjectType(source2), excludedProperties); - var targetProperties = excludeProperties(getPropertiesOfObjectType(target2), excludedProperties); - if (sourceProperties.length !== targetProperties.length) { - return 0 /* False */; - } - var result2 = -1 /* True */; - try { - for (var sourceProperties_1 = __values(sourceProperties), sourceProperties_1_1 = sourceProperties_1.next(); !sourceProperties_1_1.done; sourceProperties_1_1 = sourceProperties_1.next()) { - var sourceProp = sourceProperties_1_1.value; - var targetProp = getPropertyOfObjectType(target2, sourceProp.escapedName); - if (!targetProp) { - return 0 /* False */; - } - var related = compareProperties2(sourceProp, targetProp, isRelatedTo); - if (!related) { - return 0 /* False */; - } - result2 &= related; - } - } - catch (e_272_1) { e_272 = { error: e_272_1 }; } - finally { - try { - if (sourceProperties_1_1 && !sourceProperties_1_1.done && (_t = sourceProperties_1.return)) _t.call(sourceProperties_1); - } - finally { if (e_272) throw e_272.error; } - } - return result2; - } - function signaturesRelatedTo(source2, target2, kind, reportErrors2, intersectionState) { - var e_273, _t, e_274, _u; - var _a2, _b; - if (relation === identityRelation) { - return signaturesIdenticalTo(source2, target2, kind); - } - if (target2 === anyFunctionType || source2 === anyFunctionType) { - return -1 /* True */; - } - var sourceIsJSConstructor = source2.symbol && isJSConstructor(source2.symbol.valueDeclaration); - var targetIsJSConstructor = target2.symbol && isJSConstructor(target2.symbol.valueDeclaration); - var sourceSignatures = getSignaturesOfType(source2, sourceIsJSConstructor && kind === 1 /* Construct */ ? 0 /* Call */ : kind); - var targetSignatures = getSignaturesOfType(target2, targetIsJSConstructor && kind === 1 /* Construct */ ? 0 /* Call */ : kind); - if (kind === 1 /* Construct */ && sourceSignatures.length && targetSignatures.length) { - var sourceIsAbstract = !!(sourceSignatures[0].flags & 4 /* Abstract */); - var targetIsAbstract = !!(targetSignatures[0].flags & 4 /* Abstract */); - if (sourceIsAbstract && !targetIsAbstract) { - if (reportErrors2) { - reportError(Diagnostics.Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type); - } - return 0 /* False */; - } - if (!constructorVisibilitiesAreCompatible(sourceSignatures[0], targetSignatures[0], reportErrors2)) { - return 0 /* False */; - } - } - var result2 = -1 /* True */; - var incompatibleReporter = kind === 1 /* Construct */ ? reportIncompatibleConstructSignatureReturn : reportIncompatibleCallSignatureReturn; - var sourceObjectFlags = getObjectFlags(source2); - var targetObjectFlags = getObjectFlags(target2); - if (sourceObjectFlags & 64 /* Instantiated */ && targetObjectFlags & 64 /* Instantiated */ && source2.symbol === target2.symbol || sourceObjectFlags & 4 /* Reference */ && targetObjectFlags & 4 /* Reference */ && source2.target === target2.target) { - for (var i = 0; i < targetSignatures.length; i++) { - var related = signatureRelatedTo(sourceSignatures[i], targetSignatures[i], - /*erase*/ - true, reportErrors2, intersectionState, incompatibleReporter(sourceSignatures[i], targetSignatures[i])); - if (!related) { - return 0 /* False */; - } - result2 &= related; - } - } - else if (sourceSignatures.length === 1 && targetSignatures.length === 1) { - var eraseGenerics = relation === comparableRelation || !!compilerOptions.noStrictGenericChecks; - var sourceSignature = first(sourceSignatures); - var targetSignature = first(targetSignatures); - result2 = signatureRelatedTo(sourceSignature, targetSignature, eraseGenerics, reportErrors2, intersectionState, incompatibleReporter(sourceSignature, targetSignature)); - if (!result2 && reportErrors2 && kind === 1 /* Construct */ && sourceObjectFlags & targetObjectFlags && (((_a2 = targetSignature.declaration) == null ? void 0 : _a2.kind) === 176 /* Constructor */ || ((_b = sourceSignature.declaration) == null ? void 0 : _b.kind) === 176 /* Constructor */)) { - var constructSignatureToString = function (signature) { return signatureToString(signature, - /*enclosingDeclaration*/ - void 0, 262144 /* WriteArrowStyleSignature */, kind); }; - reportError(Diagnostics.Type_0_is_not_assignable_to_type_1, constructSignatureToString(sourceSignature), constructSignatureToString(targetSignature)); - reportError(Diagnostics.Types_of_construct_signatures_are_incompatible); - return result2; - } - } - else { - try { - outer: for (var targetSignatures_1 = __values(targetSignatures), targetSignatures_1_1 = targetSignatures_1.next(); !targetSignatures_1_1.done; targetSignatures_1_1 = targetSignatures_1.next()) { - var t = targetSignatures_1_1.value; - var saveErrorInfo = captureErrorCalculationState(); - var shouldElaborateErrors = reportErrors2; - try { - for (var sourceSignatures_1 = (e_274 = void 0, __values(sourceSignatures)), sourceSignatures_1_1 = sourceSignatures_1.next(); !sourceSignatures_1_1.done; sourceSignatures_1_1 = sourceSignatures_1.next()) { - var s = sourceSignatures_1_1.value; - var related = signatureRelatedTo(s, t, - /*erase*/ - true, shouldElaborateErrors, intersectionState, incompatibleReporter(s, t)); - if (related) { - result2 &= related; - resetErrorInfo(saveErrorInfo); - continue outer; - } - shouldElaborateErrors = false; - } - } - catch (e_274_1) { e_274 = { error: e_274_1 }; } - finally { - try { - if (sourceSignatures_1_1 && !sourceSignatures_1_1.done && (_u = sourceSignatures_1.return)) _u.call(sourceSignatures_1); - } - finally { if (e_274) throw e_274.error; } - } - if (shouldElaborateErrors) { - reportError(Diagnostics.Type_0_provides_no_match_for_the_signature_1, typeToString(source2), signatureToString(t, - /*enclosingDeclaration*/ - void 0, - /*flags*/ - void 0, kind)); - } - return 0 /* False */; - } - } - catch (e_273_1) { e_273 = { error: e_273_1 }; } - finally { - try { - if (targetSignatures_1_1 && !targetSignatures_1_1.done && (_t = targetSignatures_1.return)) _t.call(targetSignatures_1); - } - finally { if (e_273) throw e_273.error; } - } - } - return result2; - } - function shouldReportUnmatchedPropertyError(source2, target2) { - var typeCallSignatures = getSignaturesOfStructuredType(source2, 0 /* Call */); - var typeConstructSignatures = getSignaturesOfStructuredType(source2, 1 /* Construct */); - var typeProperties = getPropertiesOfObjectType(source2); - if ((typeCallSignatures.length || typeConstructSignatures.length) && !typeProperties.length) { - if (getSignaturesOfType(target2, 0 /* Call */).length && typeCallSignatures.length || getSignaturesOfType(target2, 1 /* Construct */).length && typeConstructSignatures.length) { - return true; - } - return false; - } - return true; - } - function reportIncompatibleCallSignatureReturn(siga, sigb) { - if (siga.parameters.length === 0 && sigb.parameters.length === 0) { - return function (source2, target2) { return reportIncompatibleError(Diagnostics.Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1, typeToString(source2), typeToString(target2)); }; - } - return function (source2, target2) { return reportIncompatibleError(Diagnostics.Call_signature_return_types_0_and_1_are_incompatible, typeToString(source2), typeToString(target2)); }; - } - function reportIncompatibleConstructSignatureReturn(siga, sigb) { - if (siga.parameters.length === 0 && sigb.parameters.length === 0) { - return function (source2, target2) { return reportIncompatibleError(Diagnostics.Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1, typeToString(source2), typeToString(target2)); }; - } - return function (source2, target2) { return reportIncompatibleError(Diagnostics.Construct_signature_return_types_0_and_1_are_incompatible, typeToString(source2), typeToString(target2)); }; - } - function signatureRelatedTo(source2, target2, erase, reportErrors2, intersectionState, incompatibleReporter) { - var checkMode = relation === subtypeRelation ? 16 /* StrictTopSignature */ : relation === strictSubtypeRelation ? 16 /* StrictTopSignature */ | 8 /* StrictArity */ : 0 /* None */; - return compareSignaturesRelated(erase ? getErasedSignature(source2) : source2, erase ? getErasedSignature(target2) : target2, checkMode, reportErrors2, reportError, incompatibleReporter, isRelatedToWorker2, reportUnreliableMapper); - function isRelatedToWorker2(source3, target3, reportErrors3) { - return isRelatedTo(source3, target3, 3 /* Both */, reportErrors3, - /*headMessage*/ - void 0, intersectionState); - } - } - function signaturesIdenticalTo(source2, target2, kind) { - var sourceSignatures = getSignaturesOfType(source2, kind); - var targetSignatures = getSignaturesOfType(target2, kind); - if (sourceSignatures.length !== targetSignatures.length) { - return 0 /* False */; - } - var result2 = -1 /* True */; - for (var i = 0; i < sourceSignatures.length; i++) { - var related = compareSignaturesIdentical(sourceSignatures[i], targetSignatures[i], - /*partialMatch*/ - false, - /*ignoreThisTypes*/ - false, - /*ignoreReturnTypes*/ - false, isRelatedTo); - if (!related) { - return 0 /* False */; - } - result2 &= related; - } - return result2; - } - function membersRelatedToIndexInfo(source2, targetInfo, reportErrors2, intersectionState) { - var e_275, _t, e_276, _u; - var result2 = -1 /* True */; - var keyType = targetInfo.keyType; - var props = source2.flags & 2097152 /* Intersection */ ? getPropertiesOfUnionOrIntersectionType(source2) : getPropertiesOfObjectType(source2); - try { - for (var props_2 = __values(props), props_2_1 = props_2.next(); !props_2_1.done; props_2_1 = props_2.next()) { - var prop = props_2_1.value; - if (isIgnoredJsxProperty(source2, prop)) { - continue; - } - if (isApplicableIndexType(getLiteralTypeFromProperty(prop, 8576 /* StringOrNumberLiteralOrUnique */), keyType)) { - var propType = getNonMissingTypeOfSymbol(prop); - var type = exactOptionalPropertyTypes || propType.flags & 32768 /* Undefined */ || keyType === numberType || !(prop.flags & 16777216 /* Optional */) ? propType : getTypeWithFacts(propType, 524288 /* NEUndefined */); - var related = isRelatedTo(type, targetInfo.type, 3 /* Both */, reportErrors2, - /*headMessage*/ - void 0, intersectionState); - if (!related) { - if (reportErrors2) { - reportError(Diagnostics.Property_0_is_incompatible_with_index_signature, symbolToString(prop)); - } - return 0 /* False */; - } - result2 &= related; - } - } - } - catch (e_275_1) { e_275 = { error: e_275_1 }; } - finally { - try { - if (props_2_1 && !props_2_1.done && (_t = props_2.return)) _t.call(props_2); - } - finally { if (e_275) throw e_275.error; } - } - try { - for (var _v = __values(getIndexInfosOfType(source2)), _w = _v.next(); !_w.done; _w = _v.next()) { - var info = _w.value; - if (isApplicableIndexType(info.keyType, keyType)) { - var related = indexInfoRelatedTo(info, targetInfo, reportErrors2, intersectionState); - if (!related) { - return 0 /* False */; - } - result2 &= related; - } - } - } - catch (e_276_1) { e_276 = { error: e_276_1 }; } - finally { - try { - if (_w && !_w.done && (_u = _v.return)) _u.call(_v); - } - finally { if (e_276) throw e_276.error; } - } - return result2; - } - function indexInfoRelatedTo(sourceInfo, targetInfo, reportErrors2, intersectionState) { - var related = isRelatedTo(sourceInfo.type, targetInfo.type, 3 /* Both */, reportErrors2, - /*headMessage*/ - void 0, intersectionState); - if (!related && reportErrors2) { - if (sourceInfo.keyType === targetInfo.keyType) { - reportError(Diagnostics._0_index_signatures_are_incompatible, typeToString(sourceInfo.keyType)); - } - else { - reportError(Diagnostics._0_and_1_index_signatures_are_incompatible, typeToString(sourceInfo.keyType), typeToString(targetInfo.keyType)); - } - } - return related; - } - function indexSignaturesRelatedTo(source2, target2, sourceIsPrimitive, reportErrors2, intersectionState) { - var e_277, _t; - if (relation === identityRelation) { - return indexSignaturesIdenticalTo(source2, target2); - } - var indexInfos = getIndexInfosOfType(target2); - var targetHasStringIndex = some(indexInfos, function (info) { return info.keyType === stringType; }); - var result2 = -1 /* True */; - try { - for (var indexInfos_3 = __values(indexInfos), indexInfos_3_1 = indexInfos_3.next(); !indexInfos_3_1.done; indexInfos_3_1 = indexInfos_3.next()) { - var targetInfo = indexInfos_3_1.value; - var related = relation !== strictSubtypeRelation && !sourceIsPrimitive && targetHasStringIndex && targetInfo.type.flags & 1 /* Any */ ? -1 /* True */ : isGenericMappedType(source2) && targetHasStringIndex ? isRelatedTo(getTemplateTypeFromMappedType(source2), targetInfo.type, 3 /* Both */, reportErrors2) : typeRelatedToIndexInfo(source2, targetInfo, reportErrors2, intersectionState); - if (!related) { - return 0 /* False */; - } - result2 &= related; - } - } - catch (e_277_1) { e_277 = { error: e_277_1 }; } - finally { - try { - if (indexInfos_3_1 && !indexInfos_3_1.done && (_t = indexInfos_3.return)) _t.call(indexInfos_3); - } - finally { if (e_277) throw e_277.error; } - } - return result2; - } - function typeRelatedToIndexInfo(source2, targetInfo, reportErrors2, intersectionState) { - var sourceInfo = getApplicableIndexInfo(source2, targetInfo.keyType); - if (sourceInfo) { - return indexInfoRelatedTo(sourceInfo, targetInfo, reportErrors2, intersectionState); - } - if (!(intersectionState & 1 /* Source */) && (relation !== strictSubtypeRelation || getObjectFlags(source2) & 8192 /* FreshLiteral */) && isObjectTypeWithInferableIndex(source2)) { - return membersRelatedToIndexInfo(source2, targetInfo, reportErrors2, intersectionState); - } - if (reportErrors2) { - reportError(Diagnostics.Index_signature_for_type_0_is_missing_in_type_1, typeToString(targetInfo.keyType), typeToString(source2)); - } - return 0 /* False */; - } - function indexSignaturesIdenticalTo(source2, target2) { - var e_278, _t; - var sourceInfos = getIndexInfosOfType(source2); - var targetInfos = getIndexInfosOfType(target2); - if (sourceInfos.length !== targetInfos.length) { - return 0 /* False */; - } - try { - for (var targetInfos_1 = __values(targetInfos), targetInfos_1_1 = targetInfos_1.next(); !targetInfos_1_1.done; targetInfos_1_1 = targetInfos_1.next()) { - var targetInfo = targetInfos_1_1.value; - var sourceInfo = getIndexInfoOfType(source2, targetInfo.keyType); - if (!(sourceInfo && isRelatedTo(sourceInfo.type, targetInfo.type, 3 /* Both */) && sourceInfo.isReadonly === targetInfo.isReadonly)) { - return 0 /* False */; - } - } - } - catch (e_278_1) { e_278 = { error: e_278_1 }; } - finally { - try { - if (targetInfos_1_1 && !targetInfos_1_1.done && (_t = targetInfos_1.return)) _t.call(targetInfos_1); - } - finally { if (e_278) throw e_278.error; } - } - return -1 /* True */; - } - function constructorVisibilitiesAreCompatible(sourceSignature, targetSignature, reportErrors2) { - if (!sourceSignature.declaration || !targetSignature.declaration) { - return true; - } - var sourceAccessibility = getSelectedEffectiveModifierFlags(sourceSignature.declaration, 24 /* NonPublicAccessibilityModifier */); - var targetAccessibility = getSelectedEffectiveModifierFlags(targetSignature.declaration, 24 /* NonPublicAccessibilityModifier */); - if (targetAccessibility === 8 /* Private */) { - return true; - } - if (targetAccessibility === 16 /* Protected */ && sourceAccessibility !== 8 /* Private */) { - return true; - } - if (targetAccessibility !== 16 /* Protected */ && !sourceAccessibility) { - return true; - } - if (reportErrors2) { - reportError(Diagnostics.Cannot_assign_a_0_constructor_type_to_a_1_constructor_type, visibilityToString(sourceAccessibility), visibilityToString(targetAccessibility)); - } - return false; - } - } - function typeCouldHaveTopLevelSingletonTypes(type) { - if (type.flags & 16 /* Boolean */) { - return false; - } - if (type.flags & 3145728 /* UnionOrIntersection */) { - return !!forEach(type.types, typeCouldHaveTopLevelSingletonTypes); - } - if (type.flags & 465829888 /* Instantiable */) { - var constraint = getConstraintOfType(type); - if (constraint && constraint !== type) { - return typeCouldHaveTopLevelSingletonTypes(constraint); - } - } - return isUnitType(type) || !!(type.flags & 134217728 /* TemplateLiteral */) || !!(type.flags & 268435456 /* StringMapping */); - } - function getExactOptionalUnassignableProperties(source, target) { - if (isTupleType(source) && isTupleType(target)) - return emptyArray; - return getPropertiesOfType(target).filter(function (targetProp) { return isExactOptionalPropertyMismatch(getTypeOfPropertyOfType(source, targetProp.escapedName), getTypeOfSymbol(targetProp)); }); - } - function isExactOptionalPropertyMismatch(source, target) { - return !!source && !!target && maybeTypeOfKind(source, 32768 /* Undefined */) && !!containsMissingType(target); - } - function getExactOptionalProperties(type) { - return getPropertiesOfType(type).filter(function (targetProp) { return containsMissingType(getTypeOfSymbol(targetProp)); }); - } - function getBestMatchingType(source, target, isRelatedTo) { - if (isRelatedTo === void 0) { isRelatedTo = compareTypesAssignable; } - return findMatchingDiscriminantType(source, target, isRelatedTo) || findMatchingTypeReferenceOrTypeAliasReference(source, target) || findBestTypeForObjectLiteral(source, target) || findBestTypeForInvokable(source, target) || findMostOverlappyType(source, target); - } - function discriminateTypeByDiscriminableItems(target, discriminators, related) { - var e_279, _t; - var types = target.types; - var include = types.map(function (t) { return t.flags & 402784252 /* Primitive */ ? 0 /* False */ : -1; } /* True */); - try { - for (var discriminators_1 = __values(discriminators), discriminators_1_1 = discriminators_1.next(); !discriminators_1_1.done; discriminators_1_1 = discriminators_1.next()) { - var _u = __read(discriminators_1_1.value, 2), getDiscriminatingType = _u[0], propertyName = _u[1]; - var matched = false; - for (var i = 0; i < types.length; i++) { - if (include[i]) { - var targetType = getTypeOfPropertyOrIndexSignatureOfType(types[i], propertyName); - if (targetType && related(getDiscriminatingType(), targetType)) { - matched = true; - } - else { - include[i] = 3 /* Maybe */; - } - } - } - for (var i = 0; i < types.length; i++) { - if (include[i] === 3 /* Maybe */) { - include[i] = matched ? 0 /* False */ : -1 /* True */; - } - } - } - } - catch (e_279_1) { e_279 = { error: e_279_1 }; } - finally { - try { - if (discriminators_1_1 && !discriminators_1_1.done && (_t = discriminators_1.return)) _t.call(discriminators_1); - } - finally { if (e_279) throw e_279.error; } - } - var filtered = contains(include, 0 /* False */) ? getUnionType(types.filter(function (_, i) { return include[i]; }), 0 /* None */) : target; - return filtered.flags & 131072 /* Never */ ? target : filtered; - } - function isWeakType(type) { - if (type.flags & 524288 /* Object */) { - var resolved = resolveStructuredTypeMembers(type); - return resolved.callSignatures.length === 0 && resolved.constructSignatures.length === 0 && resolved.indexInfos.length === 0 && resolved.properties.length > 0 && every(resolved.properties, function (p) { return !!(p.flags & 16777216 /* Optional */); }); - } - if (type.flags & 2097152 /* Intersection */) { - return every(type.types, isWeakType); - } - return false; - } - function hasCommonProperties(source, target, isComparingJsxAttributes) { - var e_280, _t; - try { - for (var _u = __values(getPropertiesOfType(source)), _v = _u.next(); !_v.done; _v = _u.next()) { - var prop = _v.value; - if (isKnownProperty(target, prop.escapedName, isComparingJsxAttributes)) { - return true; - } - } - } - catch (e_280_1) { e_280 = { error: e_280_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_280) throw e_280.error; } - } - return false; - } - function getVariances(type) { - return type === globalArrayType || type === globalReadonlyArrayType || type.objectFlags & 8 /* Tuple */ ? arrayVariances : getVariancesWorker(type.symbol, type.typeParameters); - } - function getAliasVariances(symbol) { - return getVariancesWorker(symbol, getSymbolLinks(symbol).typeParameters); - } - function getVariancesWorker(symbol, typeParameters) { - var e_281, _t; - if (typeParameters === void 0) { typeParameters = emptyArray; } - var _a, _b; - var links = getSymbolLinks(symbol); - if (!links.variances) { - (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.CheckTypes, "getVariancesWorker", { arity: typeParameters.length, id: getTypeId(getDeclaredTypeOfSymbol(symbol)) }); - var oldVarianceComputation = inVarianceComputation; - if (!inVarianceComputation) { - inVarianceComputation = true; - resolutionStart = resolutionTargets.length; - } - links.variances = emptyArray; - var variances = []; - var _loop_26 = function (tp) { - var modifiers = getTypeParameterModifiers(tp); - var variance = modifiers & 65536 /* Out */ ? modifiers & 32768 /* In */ ? 0 /* Invariant */ : 1 /* Covariant */ : modifiers & 32768 /* In */ ? 2 /* Contravariant */ : void 0; - if (variance === void 0) { - var unmeasurable_1 = false; - var unreliable_1 = false; - var oldHandler = outofbandVarianceMarkerHandler; - outofbandVarianceMarkerHandler = function (onlyUnreliable) { return onlyUnreliable ? unreliable_1 = true : unmeasurable_1 = true; }; - var typeWithSuper = createMarkerType(symbol, tp, markerSuperType); - var typeWithSub = createMarkerType(symbol, tp, markerSubType); - variance = (isTypeAssignableTo(typeWithSub, typeWithSuper) ? 1 /* Covariant */ : 0) | (isTypeAssignableTo(typeWithSuper, typeWithSub) ? 2 /* Contravariant */ : 0); - if (variance === 3 /* Bivariant */ && isTypeAssignableTo(createMarkerType(symbol, tp, markerOtherType), typeWithSuper)) { - variance = 4 /* Independent */; - } - outofbandVarianceMarkerHandler = oldHandler; - if (unmeasurable_1 || unreliable_1) { - if (unmeasurable_1) { - variance |= 8 /* Unmeasurable */; - } - if (unreliable_1) { - variance |= 16 /* Unreliable */; - } - } - } - variances.push(variance); - }; - try { - for (var typeParameters_2 = __values(typeParameters), typeParameters_2_1 = typeParameters_2.next(); !typeParameters_2_1.done; typeParameters_2_1 = typeParameters_2.next()) { - var tp = typeParameters_2_1.value; - _loop_26(tp); - } - } - catch (e_281_1) { e_281 = { error: e_281_1 }; } - finally { - try { - if (typeParameters_2_1 && !typeParameters_2_1.done && (_t = typeParameters_2.return)) _t.call(typeParameters_2); - } - finally { if (e_281) throw e_281.error; } - } - if (!oldVarianceComputation) { - inVarianceComputation = false; - resolutionStart = 0; - } - links.variances = variances; - (_b = tracing) == null ? void 0 : _b.pop({ variances: variances.map(Debug.formatVariance) }); - } - return links.variances; - } - function createMarkerType(symbol, source, target) { - var mapper = makeUnaryTypeMapper(source, target); - var type = getDeclaredTypeOfSymbol(symbol); - if (isErrorType(type)) { - return type; - } - var result = symbol.flags & 524288 /* TypeAlias */ ? getTypeAliasInstantiation(symbol, instantiateTypes(getSymbolLinks(symbol).typeParameters, mapper)) : createTypeReference(type, instantiateTypes(type.typeParameters, mapper)); - markerTypes.add(getTypeId(result)); - return result; - } - function isMarkerType(type) { - return markerTypes.has(getTypeId(type)); - } - function getTypeParameterModifiers(tp) { - var _a; - return reduceLeft((_a = tp.symbol) == null ? void 0 : _a.declarations, function (modifiers, d) { return modifiers | getEffectiveModifierFlags(d); }, 0 /* None */) & (32768 /* In */ | 65536 /* Out */ | 2048 /* Const */); - } - function hasCovariantVoidArgument(typeArguments, variances) { - for (var i = 0; i < variances.length; i++) { - if ((variances[i] & 7 /* VarianceMask */) === 1 /* Covariant */ && typeArguments[i].flags & 16384 /* Void */) { - return true; - } - } - return false; - } - function isUnconstrainedTypeParameter(type) { - return type.flags & 262144 /* TypeParameter */ && !getConstraintOfTypeParameter(type); - } - function isNonDeferredTypeReference(type) { - return !!(getObjectFlags(type) & 4 /* Reference */) && !type.node; - } - function isTypeReferenceWithGenericArguments(type) { - return isNonDeferredTypeReference(type) && some(getTypeArguments(type), function (t) { return !!(t.flags & 262144 /* TypeParameter */) || isTypeReferenceWithGenericArguments(t); }); - } - function getGenericTypeReferenceRelationKey(source, target, postFix, ignoreConstraints) { - var typeParameters = []; - var constraintMarker = ""; - var sourceId = getTypeReferenceId(source, 0); - var targetId = getTypeReferenceId(target, 0); - return "".concat(constraintMarker).concat(sourceId, ",").concat(targetId).concat(postFix); - function getTypeReferenceId(type, depth) { - var e_282, _t; - if (depth === void 0) { depth = 0; } - var result = "" + type.target.id; - try { - for (var _u = __values(getTypeArguments(type)), _v = _u.next(); !_v.done; _v = _u.next()) { - var t = _v.value; - if (t.flags & 262144 /* TypeParameter */) { - if (ignoreConstraints || isUnconstrainedTypeParameter(t)) { - var index = typeParameters.indexOf(t); - if (index < 0) { - index = typeParameters.length; - typeParameters.push(t); - } - result += "=" + index; - continue; - } - constraintMarker = "*"; - } - else if (depth < 4 && isTypeReferenceWithGenericArguments(t)) { - result += "<" + getTypeReferenceId(t, depth + 1) + ">"; - continue; - } - result += "-" + t.id; - } - } - catch (e_282_1) { e_282 = { error: e_282_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_282) throw e_282.error; } - } - return result; - } - } - function getRelationKey(source, target, intersectionState, relation, ignoreConstraints) { - if (relation === identityRelation && source.id > target.id) { - var temp = source; - source = target; - target = temp; - } - var postFix = intersectionState ? ":" + intersectionState : ""; - return isTypeReferenceWithGenericArguments(source) && isTypeReferenceWithGenericArguments(target) ? getGenericTypeReferenceRelationKey(source, target, postFix, ignoreConstraints) : "".concat(source.id, ",").concat(target.id).concat(postFix); - } - function forEachProperty2(prop, callback) { - var e_283, _t; - if (getCheckFlags(prop) & 6 /* Synthetic */) { - try { - for (var _u = __values(prop.links.containingType.types), _v = _u.next(); !_v.done; _v = _u.next()) { - var t = _v.value; - var p = getPropertyOfType(t, prop.escapedName); - var result = p && forEachProperty2(p, callback); - if (result) { - return result; - } - } - } - catch (e_283_1) { e_283 = { error: e_283_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_283) throw e_283.error; } - } - return void 0; - } - return callback(prop); - } - function getDeclaringClass(prop) { - return prop.parent && prop.parent.flags & 32 /* Class */ ? getDeclaredTypeOfSymbol(getParentOfSymbol(prop)) : void 0; - } - function getTypeOfPropertyInBaseClass(property) { - var classType = getDeclaringClass(property); - var baseClassType = classType && getBaseTypes(classType)[0]; - return baseClassType && getTypeOfPropertyOfType(baseClassType, property.escapedName); - } - function isPropertyInClassDerivedFrom(prop, baseClass) { - return forEachProperty2(prop, function (sp) { - var sourceClass = getDeclaringClass(sp); - return sourceClass ? hasBaseType(sourceClass, baseClass) : false; - }); - } - function isValidOverrideOf(sourceProp, targetProp) { - return !forEachProperty2(targetProp, function (tp) { return getDeclarationModifierFlagsFromSymbol(tp) & 16 /* Protected */ ? !isPropertyInClassDerivedFrom(sourceProp, getDeclaringClass(tp)) : false; }); - } - function isClassDerivedFromDeclaringClasses(checkClass, prop, writing) { - return forEachProperty2(prop, function (p) { return getDeclarationModifierFlagsFromSymbol(p, writing) & 16 /* Protected */ ? !hasBaseType(checkClass, getDeclaringClass(p)) : false; }) ? void 0 : checkClass; - } - function isDeeplyNestedType(type, stack, depth, maxDepth) { - if (maxDepth === void 0) { maxDepth = 3; } - if (depth >= maxDepth) { - if (type.flags & 2097152 /* Intersection */) { - return some(type.types, function (t) { return isDeeplyNestedType(t, stack, depth, maxDepth); }); - } - var identity2_1 = getRecursionIdentity(type); - var count = 0; - var lastTypeId = 0; - for (var i = 0; i < depth; i++) { - var t = stack[i]; - if (t.flags & 2097152 /* Intersection */ ? some(t.types, function (u) { return getRecursionIdentity(u) === identity2_1; }) : getRecursionIdentity(t) === identity2_1) { - if (t.id >= lastTypeId) { - count++; - if (count >= maxDepth) { - return true; - } - } - lastTypeId = t.id; - } - } - } - return false; - } - function getRecursionIdentity(type) { - if (type.flags & 524288 /* Object */ && !isObjectOrArrayLiteralType(type)) { - if (getObjectFlags(type) & 4 /* Reference */ && type.node) { - return type.node; - } - if (type.symbol && !(getObjectFlags(type) & 16 /* Anonymous */ && type.symbol.flags & 32 /* Class */)) { - return type.symbol; - } - if (isTupleType(type)) { - return type.target; - } - } - if (type.flags & 262144 /* TypeParameter */) { - return type.symbol; - } - if (type.flags & 8388608 /* IndexedAccess */) { - do { - type = type.objectType; - } while (type.flags & 8388608 /* IndexedAccess */); - return type; - } - if (type.flags & 16777216 /* Conditional */) { - return type.root; - } - return type; - } - function isPropertyIdenticalTo(sourceProp, targetProp) { - return compareProperties2(sourceProp, targetProp, compareTypesIdentical) !== 0 /* False */; - } - function compareProperties2(sourceProp, targetProp, compareTypes) { - if (sourceProp === targetProp) { - return -1 /* True */; - } - var sourcePropAccessibility = getDeclarationModifierFlagsFromSymbol(sourceProp) & 24 /* NonPublicAccessibilityModifier */; - var targetPropAccessibility = getDeclarationModifierFlagsFromSymbol(targetProp) & 24 /* NonPublicAccessibilityModifier */; - if (sourcePropAccessibility !== targetPropAccessibility) { - return 0 /* False */; - } - if (sourcePropAccessibility) { - if (getTargetSymbol(sourceProp) !== getTargetSymbol(targetProp)) { - return 0 /* False */; - } - } - else { - if ((sourceProp.flags & 16777216 /* Optional */) !== (targetProp.flags & 16777216 /* Optional */)) { - return 0 /* False */; - } - } - if (isReadonlySymbol(sourceProp) !== isReadonlySymbol(targetProp)) { - return 0 /* False */; - } - return compareTypes(getTypeOfSymbol(sourceProp), getTypeOfSymbol(targetProp)); - } - function isMatchingSignature(source, target, partialMatch) { - var sourceParameterCount = getParameterCount(source); - var targetParameterCount = getParameterCount(target); - var sourceMinArgumentCount = getMinArgumentCount(source); - var targetMinArgumentCount = getMinArgumentCount(target); - var sourceHasRestParameter = hasEffectiveRestParameter(source); - var targetHasRestParameter = hasEffectiveRestParameter(target); - if (sourceParameterCount === targetParameterCount && sourceMinArgumentCount === targetMinArgumentCount && sourceHasRestParameter === targetHasRestParameter) { - return true; - } - if (partialMatch && sourceMinArgumentCount <= targetMinArgumentCount) { - return true; - } - return false; - } - function compareSignaturesIdentical(source, target, partialMatch, ignoreThisTypes, ignoreReturnTypes, compareTypes) { - if (source === target) { - return -1 /* True */; - } - if (!isMatchingSignature(source, target, partialMatch)) { - return 0 /* False */; - } - if (length(source.typeParameters) !== length(target.typeParameters)) { - return 0 /* False */; - } - if (target.typeParameters) { - var mapper = createTypeMapper(source.typeParameters, target.typeParameters); - for (var i = 0; i < target.typeParameters.length; i++) { - var s = source.typeParameters[i]; - var t = target.typeParameters[i]; - if (!(s === t || compareTypes(instantiateType(getConstraintFromTypeParameter(s), mapper) || unknownType, getConstraintFromTypeParameter(t) || unknownType) && compareTypes(instantiateType(getDefaultFromTypeParameter(s), mapper) || unknownType, getDefaultFromTypeParameter(t) || unknownType))) { - return 0 /* False */; - } - } - source = instantiateSignature(source, mapper, - /*eraseTypeParameters*/ - true); - } - var result = -1 /* True */; - if (!ignoreThisTypes) { - var sourceThisType = getThisTypeOfSignature(source); - if (sourceThisType) { - var targetThisType = getThisTypeOfSignature(target); - if (targetThisType) { - var related = compareTypes(sourceThisType, targetThisType); - if (!related) { - return 0 /* False */; - } - result &= related; - } - } - } - var targetLen = getParameterCount(target); - for (var i = 0; i < targetLen; i++) { - var s = getTypeAtPosition(source, i); - var t = getTypeAtPosition(target, i); - var related = compareTypes(t, s); - if (!related) { - return 0 /* False */; - } - result &= related; - } - if (!ignoreReturnTypes) { - var sourceTypePredicate = getTypePredicateOfSignature(source); - var targetTypePredicate = getTypePredicateOfSignature(target); - result &= sourceTypePredicate || targetTypePredicate ? compareTypePredicatesIdentical(sourceTypePredicate, targetTypePredicate, compareTypes) : compareTypes(getReturnTypeOfSignature(source), getReturnTypeOfSignature(target)); - } - return result; - } - function compareTypePredicatesIdentical(source, target, compareTypes) { - return !(source && target && typePredicateKindsMatch(source, target)) ? 0 /* False */ : source.type === target.type ? -1 /* True */ : source.type && target.type ? compareTypes(source.type, target.type) : 0 /* False */; - } - function literalTypesWithSameBaseType(types) { - var e_284, _t; - var commonBaseType; - try { - for (var types_12 = __values(types), types_12_1 = types_12.next(); !types_12_1.done; types_12_1 = types_12.next()) { - var t = types_12_1.value; - if (!(t.flags & 131072 /* Never */)) { - var baseType = getBaseTypeOfLiteralType(t); - commonBaseType !== null && commonBaseType !== void 0 ? commonBaseType : (commonBaseType = baseType); - if (baseType === t || baseType !== commonBaseType) { - return false; - } - } - } - } - catch (e_284_1) { e_284 = { error: e_284_1 }; } - finally { - try { - if (types_12_1 && !types_12_1.done && (_t = types_12.return)) _t.call(types_12); - } - finally { if (e_284) throw e_284.error; } - } - return true; - } - function getCombinedTypeFlags(types) { - return reduceLeft(types, function (flags, t) { return flags | (t.flags & 1048576 /* Union */ ? getCombinedTypeFlags(t.types) : t.flags); }, 0); - } - function getCommonSupertype(types) { - if (types.length === 1) { - return types[0]; - } - var primaryTypes = strictNullChecks ? sameMap(types, function (t) { return filterType(t, function (u) { return !(u.flags & 98304 /* Nullable */); }); }) : types; - var superTypeOrUnion = literalTypesWithSameBaseType(primaryTypes) ? getUnionType(primaryTypes) : reduceLeft(primaryTypes, function (s, t) { return isTypeSubtypeOf(s, t) ? t : s; }); - return primaryTypes === types ? superTypeOrUnion : getNullableType(superTypeOrUnion, getCombinedTypeFlags(types) & 98304 /* Nullable */); - } - function getCommonSubtype(types) { - return reduceLeft(types, function (s, t) { return isTypeSubtypeOf(t, s) ? t : s; }); - } - function isArrayType(type) { - return !!(getObjectFlags(type) & 4 /* Reference */) && (type.target === globalArrayType || type.target === globalReadonlyArrayType); - } - function isReadonlyArrayType(type) { - return !!(getObjectFlags(type) & 4 /* Reference */) && type.target === globalReadonlyArrayType; - } - function isArrayOrTupleType(type) { - return isArrayType(type) || isTupleType(type); - } - function isMutableArrayOrTuple(type) { - return isArrayType(type) && !isReadonlyArrayType(type) || isTupleType(type) && !type.target.readonly; - } - function getElementTypeOfArrayType(type) { - return isArrayType(type) ? getTypeArguments(type)[0] : void 0; - } - function isArrayLikeType(type) { - return isArrayType(type) || !(type.flags & 98304 /* Nullable */) && isTypeAssignableTo(type, anyReadonlyArrayType); - } - function getSingleBaseForNonAugmentingSubtype(type) { - if (!(getObjectFlags(type) & 4 /* Reference */) || !(getObjectFlags(type.target) & 3 /* ClassOrInterface */)) { - return void 0; - } - if (getObjectFlags(type) & 33554432 /* IdenticalBaseTypeCalculated */) { - return getObjectFlags(type) & 67108864 /* IdenticalBaseTypeExists */ ? type.cachedEquivalentBaseType : void 0; - } - type.objectFlags |= 33554432 /* IdenticalBaseTypeCalculated */; - var target = type.target; - if (getObjectFlags(target) & 1 /* Class */) { - var baseTypeNode = getBaseTypeNodeOfClass(target); - if (baseTypeNode && baseTypeNode.expression.kind !== 80 /* Identifier */ && baseTypeNode.expression.kind !== 211 /* PropertyAccessExpression */) { - return void 0; - } - } - var bases = getBaseTypes(target); - if (bases.length !== 1) { - return void 0; - } - if (getMembersOfSymbol(type.symbol).size) { - return void 0; - } - var instantiatedBase = !length(target.typeParameters) ? bases[0] : instantiateType(bases[0], createTypeMapper(target.typeParameters, getTypeArguments(type).slice(0, target.typeParameters.length))); - if (length(getTypeArguments(type)) > length(target.typeParameters)) { - instantiatedBase = getTypeWithThisArgument(instantiatedBase, last(getTypeArguments(type))); - } - type.objectFlags |= 67108864 /* IdenticalBaseTypeExists */; - return type.cachedEquivalentBaseType = instantiatedBase; - } - function isEmptyLiteralType(type) { - return strictNullChecks ? type === implicitNeverType : type === undefinedWideningType; - } - function isEmptyArrayLiteralType(type) { - var elementType = getElementTypeOfArrayType(type); - return !!elementType && isEmptyLiteralType(elementType); - } - function isTupleLikeType(type) { - var lengthType; - return isTupleType(type) || !!getPropertyOfType(type, "0") || isArrayLikeType(type) && !!(lengthType = getTypeOfPropertyOfType(type, "length")) && everyType(lengthType, function (t) { return !!(t.flags & 256 /* NumberLiteral */); }); - } - function isArrayOrTupleLikeType(type) { - return isArrayLikeType(type) || isTupleLikeType(type); - } - function getTupleElementType(type, index) { - var propType = getTypeOfPropertyOfType(type, "" + index); - if (propType) { - return propType; - } - if (everyType(type, isTupleType)) { - return getTupleElementTypeOutOfStartCount(type, index, compilerOptions.noUncheckedIndexedAccess ? undefinedType : void 0); - } - return void 0; - } - function isNeitherUnitTypeNorNever(type) { - return !(type.flags & (109472 /* Unit */ | 131072 /* Never */)); - } - function isUnitType(type) { - return !!(type.flags & 109472 /* Unit */); - } - function isUnitLikeType(type) { - var t = getBaseConstraintOrType(type); - return t.flags & 2097152 /* Intersection */ ? some(t.types, isUnitType) : isUnitType(t); - } - function extractUnitType(type) { - return type.flags & 2097152 /* Intersection */ ? find(type.types, isUnitType) || type : type; - } - function isLiteralType(type) { - return type.flags & 16 /* Boolean */ ? true : type.flags & 1048576 /* Union */ ? type.flags & 1024 /* EnumLiteral */ ? true : every(type.types, isUnitType) : isUnitType(type); - } - function getBaseTypeOfLiteralType(type) { - return type.flags & 1056 /* EnumLike */ ? getBaseTypeOfEnumLikeType(type) : type.flags & (128 /* StringLiteral */ | 134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */) ? stringType : type.flags & 256 /* NumberLiteral */ ? numberType : type.flags & 2048 /* BigIntLiteral */ ? bigintType : type.flags & 512 /* BooleanLiteral */ ? booleanType : type.flags & 1048576 /* Union */ ? getBaseTypeOfLiteralTypeUnion(type) : type; - } - function getBaseTypeOfLiteralTypeUnion(type) { - var _t; - var key = "B".concat(getTypeId(type)); - return (_t = getCachedType(key)) !== null && _t !== void 0 ? _t : setCachedType(key, mapType(type, getBaseTypeOfLiteralType)); - } - function getBaseTypeOfLiteralTypeForComparison(type) { - return type.flags & (128 /* StringLiteral */ | 134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */) ? stringType : type.flags & (256 /* NumberLiteral */ | 32 /* Enum */) ? numberType : type.flags & 2048 /* BigIntLiteral */ ? bigintType : type.flags & 512 /* BooleanLiteral */ ? booleanType : type.flags & 1048576 /* Union */ ? mapType(type, getBaseTypeOfLiteralTypeForComparison) : type; - } - function getWidenedLiteralType(type) { - return type.flags & 1056 /* EnumLike */ && isFreshLiteralType(type) ? getBaseTypeOfEnumLikeType(type) : type.flags & 128 /* StringLiteral */ && isFreshLiteralType(type) ? stringType : type.flags & 256 /* NumberLiteral */ && isFreshLiteralType(type) ? numberType : type.flags & 2048 /* BigIntLiteral */ && isFreshLiteralType(type) ? bigintType : type.flags & 512 /* BooleanLiteral */ && isFreshLiteralType(type) ? booleanType : type.flags & 1048576 /* Union */ ? mapType(type, getWidenedLiteralType) : type; - } - function getWidenedUniqueESSymbolType(type) { - return type.flags & 8192 /* UniqueESSymbol */ ? esSymbolType : type.flags & 1048576 /* Union */ ? mapType(type, getWidenedUniqueESSymbolType) : type; - } - function getWidenedLiteralLikeTypeForContextualType(type, contextualType) { - if (!isLiteralOfContextualType(type, contextualType)) { - type = getWidenedUniqueESSymbolType(getWidenedLiteralType(type)); - } - return getRegularTypeOfLiteralType(type); - } - function getWidenedLiteralLikeTypeForContextualReturnTypeIfNeeded(type, contextualSignatureReturnType, isAsync) { - if (type && isUnitType(type)) { - var contextualType = !contextualSignatureReturnType ? void 0 : isAsync ? getPromisedTypeOfPromise(contextualSignatureReturnType) : contextualSignatureReturnType; - type = getWidenedLiteralLikeTypeForContextualType(type, contextualType); - } - return type; - } - function getWidenedLiteralLikeTypeForContextualIterationTypeIfNeeded(type, contextualSignatureReturnType, kind, isAsyncGenerator) { - if (type && isUnitType(type)) { - var contextualType = !contextualSignatureReturnType ? void 0 : getIterationTypeOfGeneratorFunctionReturnType(kind, contextualSignatureReturnType, isAsyncGenerator); - type = getWidenedLiteralLikeTypeForContextualType(type, contextualType); - } - return type; - } - function isTupleType(type) { - return !!(getObjectFlags(type) & 4 /* Reference */ && type.target.objectFlags & 8 /* Tuple */); - } - function isGenericTupleType(type) { - return isTupleType(type) && !!(type.target.combinedFlags & 8 /* Variadic */); - } - function isSingleElementGenericTupleType(type) { - return isGenericTupleType(type) && type.target.elementFlags.length === 1; - } - function getRestTypeOfTupleType(type) { - return getElementTypeOfSliceOfTupleType(type, type.target.fixedLength); - } - function getTupleElementTypeOutOfStartCount(type, index, undefinedOrMissingType2) { - return mapType(type, function (t) { - var tupleType = t; - var restType = getRestTypeOfTupleType(tupleType); - if (!restType) { - return undefinedType; - } - if (undefinedOrMissingType2 && index >= getTotalFixedElementCount(tupleType.target)) { - return getUnionType([restType, undefinedOrMissingType2]); - } - return restType; - }); - } - function getRestArrayTypeOfTupleType(type) { - var restType = getRestTypeOfTupleType(type); - return restType && createArrayType(restType); - } - function getElementTypeOfSliceOfTupleType(type, index, endSkipCount, writing, noReductions) { - if (endSkipCount === void 0) { endSkipCount = 0; } - if (writing === void 0) { writing = false; } - if (noReductions === void 0) { noReductions = false; } - var length2 = getTypeReferenceArity(type) - endSkipCount; - if (index < length2) { - var typeArguments = getTypeArguments(type); - var elementTypes = []; - for (var i = index; i < length2; i++) { - var t = typeArguments[i]; - elementTypes.push(type.target.elementFlags[i] & 8 /* Variadic */ ? getIndexedAccessType(t, numberType) : t); - } - return writing ? getIntersectionType(elementTypes) : getUnionType(elementTypes, noReductions ? 0 /* None */ : 1 /* Literal */); - } - return void 0; - } - function isTupleTypeStructureMatching(t1, t2) { - return getTypeReferenceArity(t1) === getTypeReferenceArity(t2) && every(t1.target.elementFlags, function (f, i) { return (f & 12 /* Variable */) === (t2.target.elementFlags[i] & 12 /* Variable */); }); - } - function isZeroBigInt(_t) { - var value = _t.value; - return value.base10Value === "0"; - } - function removeDefinitelyFalsyTypes(type) { - return filterType(type, function (t) { return !!(getTypeFacts(t) & 4194304 /* Truthy */); }); - } - function extractDefinitelyFalsyTypes(type) { - return mapType(type, getDefinitelyFalsyPartOfType); - } - function getDefinitelyFalsyPartOfType(type) { - return type.flags & 4 /* String */ ? emptyStringType : type.flags & 8 /* Number */ ? zeroType : type.flags & 64 /* BigInt */ ? zeroBigIntType : type === regularFalseType || type === falseType || type.flags & (16384 /* Void */ | 32768 /* Undefined */ | 65536 /* Null */ | 3 /* AnyOrUnknown */) || type.flags & 128 /* StringLiteral */ && type.value === "" || type.flags & 256 /* NumberLiteral */ && type.value === 0 || type.flags & 2048 /* BigIntLiteral */ && isZeroBigInt(type) ? type : neverType; - } - function getNullableType(type, flags) { - var missing = flags & ~type.flags & (32768 /* Undefined */ | 65536 /* Null */); - return missing === 0 ? type : missing === 32768 /* Undefined */ ? getUnionType([type, undefinedType]) : missing === 65536 /* Null */ ? getUnionType([type, nullType]) : getUnionType([type, undefinedType, nullType]); - } - function getOptionalType(type, isProperty) { - if (isProperty === void 0) { isProperty = false; } - Debug.assert(strictNullChecks); - var missingOrUndefined = isProperty ? undefinedOrMissingType : undefinedType; - return type === missingOrUndefined || type.flags & 1048576 /* Union */ && type.types[0] === missingOrUndefined ? type : getUnionType([type, missingOrUndefined]); - } - function getGlobalNonNullableTypeInstantiation(type) { - if (!deferredGlobalNonNullableTypeAlias) { - deferredGlobalNonNullableTypeAlias = getGlobalSymbol("NonNullable", 524288 /* TypeAlias */, - /*diagnostic*/ - void 0) || unknownSymbol; - } - return deferredGlobalNonNullableTypeAlias !== unknownSymbol ? getTypeAliasInstantiation(deferredGlobalNonNullableTypeAlias, [type]) : getIntersectionType([type, emptyObjectType]); - } - function getNonNullableType(type) { - return strictNullChecks ? getAdjustedTypeWithFacts(type, 2097152 /* NEUndefinedOrNull */) : type; - } - function addOptionalTypeMarker(type) { - return strictNullChecks ? getUnionType([type, optionalType]) : type; - } - function removeOptionalTypeMarker(type) { - return strictNullChecks ? removeType(type, optionalType) : type; - } - function propagateOptionalTypeMarker(type, node, wasOptional) { - return wasOptional ? isOutermostOptionalChain(node) ? getOptionalType(type) : addOptionalTypeMarker(type) : type; - } - function getOptionalExpressionType(exprType, expression) { - return isExpressionOfOptionalChainRoot(expression) ? getNonNullableType(exprType) : isOptionalChain(expression) ? removeOptionalTypeMarker(exprType) : exprType; - } - function removeMissingType(type, isOptional) { - return exactOptionalPropertyTypes && isOptional ? removeType(type, missingType) : type; - } - function containsMissingType(type) { - return type === missingType || !!(type.flags & 1048576 /* Union */) && type.types[0] === missingType; - } - function removeMissingOrUndefinedType(type) { - return exactOptionalPropertyTypes ? removeType(type, missingType) : getTypeWithFacts(type, 524288 /* NEUndefined */); - } - function isCoercibleUnderDoubleEquals(source, target) { - return (source.flags & (8 /* Number */ | 4 /* String */ | 512 /* BooleanLiteral */)) !== 0 && (target.flags & (8 /* Number */ | 4 /* String */ | 16 /* Boolean */)) !== 0; - } - function isObjectTypeWithInferableIndex(type) { - var objectFlags = getObjectFlags(type); - return type.flags & 2097152 /* Intersection */ ? every(type.types, isObjectTypeWithInferableIndex) : !!(type.symbol && (type.symbol.flags & (4096 /* ObjectLiteral */ | 2048 /* TypeLiteral */ | 384 /* Enum */ | 512 /* ValueModule */)) !== 0 && !(type.symbol.flags & 32 /* Class */) && !typeHasCallOrConstructSignatures(type)) || !!(objectFlags & 4194304 /* ObjectRestType */) || !!(objectFlags & 1024 /* ReverseMapped */ && isObjectTypeWithInferableIndex(type.source)); - } - function createSymbolWithType(source, type) { - var symbol = createSymbol(source.flags, source.escapedName, getCheckFlags(source) & 8 /* Readonly */); - symbol.declarations = source.declarations; - symbol.parent = source.parent; - symbol.links.type = type; - symbol.links.target = source; - if (source.valueDeclaration) { - symbol.valueDeclaration = source.valueDeclaration; - } - var nameType = getSymbolLinks(source).nameType; - if (nameType) { - symbol.links.nameType = nameType; - } - return symbol; - } - function transformTypeOfMembers(type, f) { - var e_285, _t; - var members = createSymbolTable(); - try { - for (var _u = __values(getPropertiesOfObjectType(type)), _v = _u.next(); !_v.done; _v = _u.next()) { - var property = _v.value; - var original = getTypeOfSymbol(property); - var updated = f(original); - members.set(property.escapedName, updated === original ? property : createSymbolWithType(property, updated)); - } - } - catch (e_285_1) { e_285 = { error: e_285_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_285) throw e_285.error; } - } - return members; - } - function getRegularTypeOfObjectLiteral(type) { - if (!(isObjectLiteralType2(type) && getObjectFlags(type) & 8192 /* FreshLiteral */)) { - return type; - } - var regularType = type.regularType; - if (regularType) { - return regularType; - } - var resolved = type; - var members = transformTypeOfMembers(type, getRegularTypeOfObjectLiteral); - var regularNew = createAnonymousType(resolved.symbol, members, resolved.callSignatures, resolved.constructSignatures, resolved.indexInfos); - regularNew.flags = resolved.flags; - regularNew.objectFlags |= resolved.objectFlags & ~8192 /* FreshLiteral */; - type.regularType = regularNew; - return regularNew; - } - function createWideningContext(parent2, propertyName, siblings) { - return { parent: parent2, propertyName: propertyName, siblings: siblings, resolvedProperties: void 0 }; - } - function getSiblingsOfContext(context) { - var e_286, _t; - if (!context.siblings) { - var siblings_1 = []; - try { - for (var _u = __values(getSiblingsOfContext(context.parent)), _v = _u.next(); !_v.done; _v = _u.next()) { - var type = _v.value; - if (isObjectLiteralType2(type)) { - var prop = getPropertyOfObjectType(type, context.propertyName); - if (prop) { - forEachType(getTypeOfSymbol(prop), function (t) { - siblings_1.push(t); - }); - } - } - } - } - catch (e_286_1) { e_286 = { error: e_286_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_286) throw e_286.error; } - } - context.siblings = siblings_1; - } - return context.siblings; - } - function getPropertiesOfContext(context) { - var e_287, _t, e_288, _u; - if (!context.resolvedProperties) { - var names = /* @__PURE__ */ new Map(); - try { - for (var _v = __values(getSiblingsOfContext(context)), _w = _v.next(); !_w.done; _w = _v.next()) { - var t = _w.value; - if (isObjectLiteralType2(t) && !(getObjectFlags(t) & 2097152 /* ContainsSpread */)) { - try { - for (var _x = (e_288 = void 0, __values(getPropertiesOfType(t))), _y = _x.next(); !_y.done; _y = _x.next()) { - var prop = _y.value; - names.set(prop.escapedName, prop); - } - } - catch (e_288_1) { e_288 = { error: e_288_1 }; } - finally { - try { - if (_y && !_y.done && (_u = _x.return)) _u.call(_x); - } - finally { if (e_288) throw e_288.error; } - } - } - } - } - catch (e_287_1) { e_287 = { error: e_287_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_287) throw e_287.error; } - } - context.resolvedProperties = arrayFrom(names.values()); - } - return context.resolvedProperties; - } - function getWidenedProperty(prop, context) { - if (!(prop.flags & 4 /* Property */)) { - return prop; - } - var original = getTypeOfSymbol(prop); - var propContext = context && createWideningContext(context, prop.escapedName, - /*siblings*/ - void 0); - var widened = getWidenedTypeWithContext(original, propContext); - return widened === original ? prop : createSymbolWithType(prop, widened); - } - function getUndefinedProperty(prop) { - var cached = undefinedProperties.get(prop.escapedName); - if (cached) { - return cached; - } - var result = createSymbolWithType(prop, undefinedOrMissingType); - result.flags |= 16777216 /* Optional */; - undefinedProperties.set(prop.escapedName, result); - return result; - } - function getWidenedTypeOfObjectLiteral(type, context) { - var e_289, _t, e_290, _u; - var members = createSymbolTable(); - try { - for (var _v = __values(getPropertiesOfObjectType(type)), _w = _v.next(); !_w.done; _w = _v.next()) { - var prop = _w.value; - members.set(prop.escapedName, getWidenedProperty(prop, context)); - } - } - catch (e_289_1) { e_289 = { error: e_289_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_289) throw e_289.error; } - } - if (context) { - try { - for (var _x = __values(getPropertiesOfContext(context)), _y = _x.next(); !_y.done; _y = _x.next()) { - var prop = _y.value; - if (!members.has(prop.escapedName)) { - members.set(prop.escapedName, getUndefinedProperty(prop)); - } - } - } - catch (e_290_1) { e_290 = { error: e_290_1 }; } - finally { - try { - if (_y && !_y.done && (_u = _x.return)) _u.call(_x); - } - finally { if (e_290) throw e_290.error; } - } - } - var result = createAnonymousType(type.symbol, members, emptyArray, emptyArray, sameMap(getIndexInfosOfType(type), function (info) { return createIndexInfo(info.keyType, getWidenedType(info.type), info.isReadonly); })); - result.objectFlags |= getObjectFlags(type) & (4096 /* JSLiteral */ | 262144 /* NonInferrableType */); - return result; - } - function getWidenedType(type) { - return getWidenedTypeWithContext(type, - /*context*/ - void 0); - } - function getWidenedTypeWithContext(type, context) { - if (getObjectFlags(type) & 196608 /* RequiresWidening */) { - if (context === void 0 && type.widened) { - return type.widened; - } - var result = void 0; - if (type.flags & (1 /* Any */ | 98304 /* Nullable */)) { - result = anyType; - } - else if (isObjectLiteralType2(type)) { - result = getWidenedTypeOfObjectLiteral(type, context); - } - else if (type.flags & 1048576 /* Union */) { - var unionContext_1 = context || createWideningContext( - /*parent*/ - void 0, - /*propertyName*/ - void 0, type.types); - var widenedTypes = sameMap(type.types, function (t) { return t.flags & 98304 /* Nullable */ ? t : getWidenedTypeWithContext(t, unionContext_1); }); - result = getUnionType(widenedTypes, some(widenedTypes, isEmptyObjectType) ? 2 /* Subtype */ : 1 /* Literal */); - } - else if (type.flags & 2097152 /* Intersection */) { - result = getIntersectionType(sameMap(type.types, getWidenedType)); - } - else if (isArrayOrTupleType(type)) { - result = createTypeReference(type.target, sameMap(getTypeArguments(type), getWidenedType)); - } - if (result && context === void 0) { - type.widened = result; - } - return result || type; - } - return type; - } - function reportWideningErrorsInType(type) { - var e_291, _t, e_292, _u, e_293, _v; - var errorReported = false; - if (getObjectFlags(type) & 65536 /* ContainsWideningType */) { - if (type.flags & 1048576 /* Union */) { - if (some(type.types, isEmptyObjectType)) { - errorReported = true; - } - else { - try { - for (var _w = __values(type.types), _x = _w.next(); !_x.done; _x = _w.next()) { - var t = _x.value; - if (reportWideningErrorsInType(t)) { - errorReported = true; - } - } - } - catch (e_291_1) { e_291 = { error: e_291_1 }; } - finally { - try { - if (_x && !_x.done && (_t = _w.return)) _t.call(_w); - } - finally { if (e_291) throw e_291.error; } - } - } - } - if (isArrayOrTupleType(type)) { - try { - for (var _y = __values(getTypeArguments(type)), _z = _y.next(); !_z.done; _z = _y.next()) { - var t = _z.value; - if (reportWideningErrorsInType(t)) { - errorReported = true; - } - } - } - catch (e_292_1) { e_292 = { error: e_292_1 }; } - finally { - try { - if (_z && !_z.done && (_u = _y.return)) _u.call(_y); - } - finally { if (e_292) throw e_292.error; } - } - } - if (isObjectLiteralType2(type)) { - try { - for (var _10 = __values(getPropertiesOfObjectType(type)), _11 = _10.next(); !_11.done; _11 = _10.next()) { - var p = _11.value; - var t = getTypeOfSymbol(p); - if (getObjectFlags(t) & 65536 /* ContainsWideningType */) { - if (!reportWideningErrorsInType(t)) { - error2(p.valueDeclaration, Diagnostics.Object_literal_s_property_0_implicitly_has_an_1_type, symbolToString(p), typeToString(getWidenedType(t))); - } - errorReported = true; - } - } - } - catch (e_293_1) { e_293 = { error: e_293_1 }; } - finally { - try { - if (_11 && !_11.done && (_v = _10.return)) _v.call(_10); - } - finally { if (e_293) throw e_293.error; } - } - } - } - return errorReported; - } - function reportImplicitAny(declaration, type, wideningKind) { - var typeAsString = typeToString(getWidenedType(type)); - if (isInJSFile(declaration) && !isCheckJsEnabledForFile(getSourceFileOfNode(declaration), compilerOptions)) { - return; - } - var diagnostic; - switch (declaration.kind) { - case 226 /* BinaryExpression */: - case 172 /* PropertyDeclaration */: - case 171 /* PropertySignature */: - diagnostic = noImplicitAny ? Diagnostics.Member_0_implicitly_has_an_1_type : Diagnostics.Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage; - break; - case 169 /* Parameter */: - var param = declaration; - if (isIdentifier(param.name)) { - var originalKeywordKind = identifierToKeywordKind(param.name); - if ((isCallSignatureDeclaration(param.parent) || isMethodSignature(param.parent) || isFunctionTypeNode(param.parent)) && param.parent.parameters.indexOf(param) > -1 && (resolveName(param, param.name.escapedText, 788968 /* Type */, - /*nameNotFoundMessage*/ - void 0, param.name.escapedText, - /*isUse*/ - true) || originalKeywordKind && isTypeNodeKind(originalKeywordKind))) { - var newName = "arg" + param.parent.parameters.indexOf(param); - var typeName = declarationNameToString(param.name) + (param.dotDotDotToken ? "[]" : ""); - errorOrSuggestion(noImplicitAny, declaration, Diagnostics.Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1, newName, typeName); - return; - } - } - diagnostic = declaration.dotDotDotToken ? noImplicitAny ? Diagnostics.Rest_parameter_0_implicitly_has_an_any_type : Diagnostics.Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage : noImplicitAny ? Diagnostics.Parameter_0_implicitly_has_an_1_type : Diagnostics.Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage; - break; - case 208 /* BindingElement */: - diagnostic = Diagnostics.Binding_element_0_implicitly_has_an_1_type; - if (!noImplicitAny) { - return; - } - break; - case 324 /* JSDocFunctionType */: - error2(declaration, Diagnostics.Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type, typeAsString); - return; - case 330 /* JSDocSignature */: - if (noImplicitAny && isJSDocOverloadTag(declaration.parent)) { - error2(declaration.parent.tagName, Diagnostics.This_overload_implicitly_returns_the_type_0_because_it_lacks_a_return_type_annotation, typeAsString); - } - return; - case 262 /* FunctionDeclaration */: - case 174 /* MethodDeclaration */: - case 173 /* MethodSignature */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - case 218 /* FunctionExpression */: - case 219 /* ArrowFunction */: - if (noImplicitAny && !declaration.name) { - if (wideningKind === 3 /* GeneratorYield */) { - error2(declaration, Diagnostics.Generator_implicitly_has_yield_type_0_because_it_does_not_yield_any_values_Consider_supplying_a_return_type_annotation, typeAsString); - } - else { - error2(declaration, Diagnostics.Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type, typeAsString); - } - return; - } - diagnostic = !noImplicitAny ? Diagnostics._0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage : wideningKind === 3 /* GeneratorYield */ ? Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type : Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type; - break; - case 200 /* MappedType */: - if (noImplicitAny) { - error2(declaration, Diagnostics.Mapped_object_type_implicitly_has_an_any_template_type); - } - return; - default: - diagnostic = noImplicitAny ? Diagnostics.Variable_0_implicitly_has_an_1_type : Diagnostics.Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage; - } - errorOrSuggestion(noImplicitAny, declaration, diagnostic, declarationNameToString(getNameOfDeclaration(declaration)), typeAsString); - } - function reportErrorsFromWidening(declaration, type, wideningKind) { - addLazyDiagnostic(function () { - if (noImplicitAny && getObjectFlags(type) & 65536 /* ContainsWideningType */ && (!wideningKind || !getContextualSignatureForFunctionLikeDeclaration(declaration))) { - if (!reportWideningErrorsInType(type)) { - reportImplicitAny(declaration, type, wideningKind); - } - } - }); - } - function applyToParameterTypes(source, target, callback) { - var sourceCount = getParameterCount(source); - var targetCount = getParameterCount(target); - var sourceRestType = getEffectiveRestType(source); - var targetRestType = getEffectiveRestType(target); - var targetNonRestCount = targetRestType ? targetCount - 1 : targetCount; - var paramCount = sourceRestType ? targetNonRestCount : Math.min(sourceCount, targetNonRestCount); - var sourceThisType = getThisTypeOfSignature(source); - if (sourceThisType) { - var targetThisType = getThisTypeOfSignature(target); - if (targetThisType) { - callback(sourceThisType, targetThisType); - } - } - for (var i = 0; i < paramCount; i++) { - callback(getTypeAtPosition(source, i), getTypeAtPosition(target, i)); - } - if (targetRestType) { - callback(getRestTypeAtPosition(source, paramCount), targetRestType); - } - } - function applyToReturnTypes(source, target, callback) { - var sourceTypePredicate = getTypePredicateOfSignature(source); - var targetTypePredicate = getTypePredicateOfSignature(target); - if (sourceTypePredicate && targetTypePredicate && typePredicateKindsMatch(sourceTypePredicate, targetTypePredicate) && sourceTypePredicate.type && targetTypePredicate.type) { - callback(sourceTypePredicate.type, targetTypePredicate.type); - } - else { - callback(getReturnTypeOfSignature(source), getReturnTypeOfSignature(target)); - } - } - function createInferenceContext(typeParameters, signature, flags, compareTypes) { - return createInferenceContextWorker(typeParameters.map(createInferenceInfo), signature, flags, compareTypes || compareTypesAssignable); - } - function cloneInferenceContext(context, extraFlags) { - if (extraFlags === void 0) { extraFlags = 0; } - return context && createInferenceContextWorker(map(context.inferences, cloneInferenceInfo), context.signature, context.flags | extraFlags, context.compareTypes); - } - function createInferenceContextWorker(inferences, signature, flags, compareTypes) { - var context = { - inferences: inferences, - signature: signature, - flags: flags, - compareTypes: compareTypes, - mapper: reportUnmeasurableMapper, - // initialize to a noop mapper so the context object is available, but the underlying object shape is right upon construction - nonFixingMapper: reportUnmeasurableMapper - }; - context.mapper = makeFixingMapperForContext(context); - context.nonFixingMapper = makeNonFixingMapperForContext(context); - return context; - } - function makeFixingMapperForContext(context) { - return makeDeferredTypeMapper(map(context.inferences, function (i) { return i.typeParameter; }), map(context.inferences, function (inference, i) { return function () { - if (!inference.isFixed) { - inferFromIntraExpressionSites(context); - clearCachedInferences(context.inferences); - inference.isFixed = true; - } - return getInferredType(context, i); - }; })); - } - function makeNonFixingMapperForContext(context) { - return makeDeferredTypeMapper(map(context.inferences, function (i) { return i.typeParameter; }), map(context.inferences, function (_, i) { return function () { - return getInferredType(context, i); - }; })); - } - function clearCachedInferences(inferences) { - var e_294, _t; - try { - for (var inferences_1 = __values(inferences), inferences_1_1 = inferences_1.next(); !inferences_1_1.done; inferences_1_1 = inferences_1.next()) { - var inference = inferences_1_1.value; - if (!inference.isFixed) { - inference.inferredType = void 0; - } - } - } - catch (e_294_1) { e_294 = { error: e_294_1 }; } - finally { - try { - if (inferences_1_1 && !inferences_1_1.done && (_t = inferences_1.return)) _t.call(inferences_1); - } - finally { if (e_294) throw e_294.error; } - } - } - function addIntraExpressionInferenceSite(context, node, type) { - var _t; - ((_t = context.intraExpressionInferenceSites) !== null && _t !== void 0 ? _t : (context.intraExpressionInferenceSites = [])).push({ node: node, type: type }); - } - function inferFromIntraExpressionSites(context) { - var e_295, _t; - if (context.intraExpressionInferenceSites) { - try { - for (var _u = __values(context.intraExpressionInferenceSites), _v = _u.next(); !_v.done; _v = _u.next()) { - var _w = _v.value, node = _w.node, type = _w.type; - var contextualType = node.kind === 174 /* MethodDeclaration */ ? getContextualTypeForObjectLiteralMethod(node, 2 /* NoConstraints */) : getContextualType2(node, 2 /* NoConstraints */); - if (contextualType) { - inferTypes(context.inferences, type, contextualType); - } - } - } - catch (e_295_1) { e_295 = { error: e_295_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_295) throw e_295.error; } - } - context.intraExpressionInferenceSites = void 0; - } - } - function createInferenceInfo(typeParameter) { - return { - typeParameter: typeParameter, - candidates: void 0, - contraCandidates: void 0, - inferredType: void 0, - priority: void 0, - topLevel: true, - isFixed: false, - impliedArity: void 0 - }; - } - function cloneInferenceInfo(inference) { - return { - typeParameter: inference.typeParameter, - candidates: inference.candidates && inference.candidates.slice(), - contraCandidates: inference.contraCandidates && inference.contraCandidates.slice(), - inferredType: inference.inferredType, - priority: inference.priority, - topLevel: inference.topLevel, - isFixed: inference.isFixed, - impliedArity: inference.impliedArity - }; - } - function cloneInferredPartOfContext(context) { - var inferences = filter(context.inferences, hasInferenceCandidates); - return inferences.length ? createInferenceContextWorker(map(inferences, cloneInferenceInfo), context.signature, context.flags, context.compareTypes) : void 0; - } - function getMapperFromContext(context) { - return context && context.mapper; - } - function couldContainTypeVariables(type) { - var objectFlags = getObjectFlags(type); - if (objectFlags & 524288 /* CouldContainTypeVariablesComputed */) { - return !!(objectFlags & 1048576 /* CouldContainTypeVariables */); - } - var result = !!(type.flags & 465829888 /* Instantiable */ || type.flags & 524288 /* Object */ && !isNonGenericTopLevelType(type) && (objectFlags & 4 /* Reference */ && (type.node || some(getTypeArguments(type), couldContainTypeVariables)) || objectFlags & 16 /* Anonymous */ && type.symbol && type.symbol.flags & (16 /* Function */ | 8192 /* Method */ | 32 /* Class */ | 2048 /* TypeLiteral */ | 4096 /* ObjectLiteral */) && type.symbol.declarations || objectFlags & (32 /* Mapped */ | 1024 /* ReverseMapped */ | 4194304 /* ObjectRestType */ | 8388608 /* InstantiationExpressionType */)) || type.flags & (3145728 /* UnionOrIntersection */ | 134217728 /* TemplateLiteral */) && !(type.flags & 1024 /* EnumLiteral */) && !isNonGenericTopLevelType(type) && some(type.types, couldContainTypeVariables)); - if (type.flags & 138117121 /* ObjectFlagsType */) { - type.objectFlags |= 524288 /* CouldContainTypeVariablesComputed */ | (result ? 1048576 /* CouldContainTypeVariables */ : 0); - } - return result; - } - function isNonGenericTopLevelType(type) { - if (type.aliasSymbol && !type.aliasTypeArguments) { - var declaration = getDeclarationOfKind(type.aliasSymbol, 265 /* TypeAliasDeclaration */); - return !!(declaration && findAncestor(declaration.parent, function (n) { return n.kind === 312 /* SourceFile */ ? true : n.kind === 267 /* ModuleDeclaration */ ? false : "quit"; })); - } - return false; - } - function isTypeParameterAtTopLevel(type, tp, depth) { - if (depth === void 0) { depth = 0; } - return !!(type === tp || type.flags & 3145728 /* UnionOrIntersection */ && some(type.types, function (t) { return isTypeParameterAtTopLevel(t, tp, depth); }) || depth < 3 && type.flags & 16777216 /* Conditional */ && (isTypeParameterAtTopLevel(getTrueTypeFromConditionalType(type), tp, depth + 1) || isTypeParameterAtTopLevel(getFalseTypeFromConditionalType(type), tp, depth + 1))); - } - function isTypeParameterAtTopLevelInReturnType(signature, typeParameter) { - var typePredicate = getTypePredicateOfSignature(signature); - return typePredicate ? !!typePredicate.type && isTypeParameterAtTopLevel(typePredicate.type, typeParameter) : isTypeParameterAtTopLevel(getReturnTypeOfSignature(signature), typeParameter); - } - function createEmptyObjectTypeFromStringLiteral(type) { - var members = createSymbolTable(); - forEachType(type, function (t) { - if (!(t.flags & 128 /* StringLiteral */)) { - return; - } - var name = escapeLeadingUnderscores(t.value); - var literalProp = createSymbol(4 /* Property */, name); - literalProp.links.type = anyType; - if (t.symbol) { - literalProp.declarations = t.symbol.declarations; - literalProp.valueDeclaration = t.symbol.valueDeclaration; - } - members.set(name, literalProp); - }); - var indexInfos = type.flags & 4 /* String */ ? [createIndexInfo(stringType, emptyObjectType, - /*isReadonly*/ - false)] : emptyArray; - return createAnonymousType( - /*symbol*/ - void 0, members, emptyArray, emptyArray, indexInfos); - } - function inferTypeForHomomorphicMappedType(source, target, constraint) { - var cacheKey = source.id + "," + target.id + "," + constraint.id; - if (reverseMappedCache.has(cacheKey)) { - return reverseMappedCache.get(cacheKey); - } - var recursionKey = source.id + "," + (target.target || target).id; - if (contains(homomorphicMappedTypeInferenceStack, recursionKey)) { - return void 0; - } - homomorphicMappedTypeInferenceStack.push(recursionKey); - var type = createReverseMappedType(source, target, constraint); - homomorphicMappedTypeInferenceStack.pop(); - reverseMappedCache.set(cacheKey, type); - return type; - } - function isPartiallyInferableType(type) { - return !(getObjectFlags(type) & 262144 /* NonInferrableType */) || isObjectLiteralType2(type) && some(getPropertiesOfType(type), function (prop) { return isPartiallyInferableType(getTypeOfSymbol(prop)); }) || isTupleType(type) && some(getElementTypes(type), isPartiallyInferableType); - } - function createReverseMappedType(source, target, constraint) { - if (!(getIndexInfoOfType(source, stringType) || getPropertiesOfType(source).length !== 0 && isPartiallyInferableType(source))) { - return void 0; - } - if (isArrayType(source)) { - return createArrayType(inferReverseMappedType(getTypeArguments(source)[0], target, constraint), isReadonlyArrayType(source)); - } - if (isTupleType(source)) { - var elementTypes = map(getElementTypes(source), function (t) { return inferReverseMappedType(t, target, constraint); }); - var elementFlags = getMappedTypeModifiers(target) & 4 /* IncludeOptional */ ? sameMap(source.target.elementFlags, function (f) { return f & 2 /* Optional */ ? 1 /* Required */ : f; }) : source.target.elementFlags; - return createTupleType(elementTypes, elementFlags, source.target.readonly, source.target.labeledElementDeclarations); - } - var reversed = createObjectType(1024 /* ReverseMapped */ | 16 /* Anonymous */, - /*symbol*/ - void 0); - reversed.source = source; - reversed.mappedType = target; - reversed.constraintType = constraint; - return reversed; - } - function getTypeOfReverseMappedSymbol(symbol) { - var links = getSymbolLinks(symbol); - if (!links.type) { - links.type = inferReverseMappedType(symbol.links.propertyType, symbol.links.mappedType, symbol.links.constraintType); - } - return links.type; - } - function inferReverseMappedType(sourceType, target, constraint) { - var typeParameter = getIndexedAccessType(constraint.type, getTypeParameterFromMappedType(target)); - var templateType = getTemplateTypeFromMappedType(target); - var inference = createInferenceInfo(typeParameter); - inferTypes([inference], sourceType, templateType); - return getTypeFromInference(inference) || unknownType; - } - function getUnmatchedProperties(source, target, requireOptionalProperties, matchDiscriminantProperties) { - var properties, properties_2, properties_2_1, targetProp, sourceProp, targetType, sourceType, e_296_1; - var e_296, _t; - return __generator(this, function (_u) { - switch (_u.label) { - case 0: - properties = getPropertiesOfType(target); - _u.label = 1; - case 1: - _u.trys.push([1, 8, 9, 10]); - properties_2 = __values(properties), properties_2_1 = properties_2.next(); - _u.label = 2; - case 2: - if (!!properties_2_1.done) return [3 /*break*/, 7]; - targetProp = properties_2_1.value; - if (isStaticPrivateIdentifierProperty(targetProp)) { - return [3 /*break*/, 6]; - } - if (!(requireOptionalProperties || !(targetProp.flags & 16777216 /* Optional */ || getCheckFlags(targetProp) & 48 /* Partial */))) return [3 /*break*/, 6]; - sourceProp = getPropertyOfType(source, targetProp.escapedName); - if (!!sourceProp) return [3 /*break*/, 4]; - return [4 /*yield*/, targetProp]; - case 3: - _u.sent(); - return [3 /*break*/, 6]; - case 4: - if (!matchDiscriminantProperties) return [3 /*break*/, 6]; - targetType = getTypeOfSymbol(targetProp); - if (!(targetType.flags & 109472) /* Unit */) return [3 /*break*/, 6]; /* Unit */ - sourceType = getTypeOfSymbol(sourceProp); - if (!!(sourceType.flags & 1 /* Any */ || getRegularTypeOfLiteralType(sourceType) === getRegularTypeOfLiteralType(targetType))) return [3 /*break*/, 6]; - return [4 /*yield*/, targetProp]; - case 5: - _u.sent(); - _u.label = 6; - case 6: - properties_2_1 = properties_2.next(); - return [3 /*break*/, 2]; - case 7: return [3 /*break*/, 10]; - case 8: - e_296_1 = _u.sent(); - e_296 = { error: e_296_1 }; - return [3 /*break*/, 10]; - case 9: - try { - if (properties_2_1 && !properties_2_1.done && (_t = properties_2.return)) _t.call(properties_2); - } - finally { if (e_296) throw e_296.error; } - return [7 /*endfinally*/]; - case 10: return [2 /*return*/]; - } - }); - } - function getUnmatchedProperty(source, target, requireOptionalProperties, matchDiscriminantProperties) { - return firstOrUndefinedIterator(getUnmatchedProperties(source, target, requireOptionalProperties, matchDiscriminantProperties)); - } - function tupleTypesDefinitelyUnrelated(source, target) { - return !(target.target.combinedFlags & 8 /* Variadic */) && target.target.minLength > source.target.minLength || !target.target.hasRestElement && (source.target.hasRestElement || target.target.fixedLength < source.target.fixedLength); - } - function typesDefinitelyUnrelated(source, target) { - return isTupleType(source) && isTupleType(target) ? tupleTypesDefinitelyUnrelated(source, target) : !!getUnmatchedProperty(source, target, - /*requireOptionalProperties*/ - false, - /*matchDiscriminantProperties*/ - true) && !!getUnmatchedProperty(target, source, - /*requireOptionalProperties*/ - false, - /*matchDiscriminantProperties*/ - false); - } - function getTypeFromInference(inference) { - return inference.candidates ? getUnionType(inference.candidates, 2 /* Subtype */) : inference.contraCandidates ? getIntersectionType(inference.contraCandidates) : void 0; - } - function hasSkipDirectInferenceFlag(node) { - return !!getNodeLinks(node).skipDirectInference; - } - function isFromInferenceBlockedSource(type) { - return !!(type.symbol && some(type.symbol.declarations, hasSkipDirectInferenceFlag)); - } - function templateLiteralTypesDefinitelyUnrelated(source, target) { - var sourceStart = source.texts[0]; - var targetStart = target.texts[0]; - var sourceEnd = source.texts[source.texts.length - 1]; - var targetEnd = target.texts[target.texts.length - 1]; - var startLen = Math.min(sourceStart.length, targetStart.length); - var endLen = Math.min(sourceEnd.length, targetEnd.length); - return sourceStart.slice(0, startLen) !== targetStart.slice(0, startLen) || sourceEnd.slice(sourceEnd.length - endLen) !== targetEnd.slice(targetEnd.length - endLen); - } - function isValidNumberString(s, roundTripOnly) { - if (s === "") - return false; - var n = +s; - return isFinite(n) && (!roundTripOnly || "" + n === s); - } - function parseBigIntLiteralType(text) { - return getBigIntLiteralType(parseValidBigInt(text)); - } - function isMemberOfStringMapping(source, target) { - if (target.flags & 1 /* Any */) { - return true; - } - if (target.flags & (4 /* String */ | 134217728 /* TemplateLiteral */)) { - return isTypeAssignableTo(source, target); - } - if (target.flags & 268435456 /* StringMapping */) { - var mappingStack = []; - while (target.flags & 268435456 /* StringMapping */) { - mappingStack.unshift(target.symbol); - target = target.type; - } - var mappedSource = reduceLeft(mappingStack, function (memo, value) { return getStringMappingType(value, memo); }, source); - return mappedSource === source && isMemberOfStringMapping(source, target); - } - return false; - } - function isValidTypeForTemplateLiteralPlaceholder(source, target) { - if (source === target || target.flags & (1 /* Any */ | 4 /* String */)) { - return true; - } - if (source.flags & 128 /* StringLiteral */) { - var value = source.value; - return !!(target.flags & 8 /* Number */ && isValidNumberString(value, - /*roundTripOnly*/ - false) || target.flags & 64 /* BigInt */ && isValidBigIntString(value, - /*roundTripOnly*/ - false) || target.flags & (512 /* BooleanLiteral */ | 98304 /* Nullable */) && value === target.intrinsicName || target.flags & 268435456 /* StringMapping */ && isMemberOfStringMapping(getStringLiteralType(value), target)); - } - if (source.flags & 134217728 /* TemplateLiteral */) { - var texts = source.texts; - return texts.length === 2 && texts[0] === "" && texts[1] === "" && isTypeAssignableTo(source.types[0], target); - } - return isTypeAssignableTo(source, target); - } - function inferTypesFromTemplateLiteralType(source, target) { - return source.flags & 128 /* StringLiteral */ ? inferFromLiteralPartsToTemplateLiteral([source.value], emptyArray, target) : source.flags & 134217728 /* TemplateLiteral */ ? arraysEqual(source.texts, target.texts) ? map(source.types, getStringLikeTypeForType) : inferFromLiteralPartsToTemplateLiteral(source.texts, source.types, target) : void 0; - } - function isTypeMatchedByTemplateLiteralType(source, target) { - var inferences = inferTypesFromTemplateLiteralType(source, target); - return !!inferences && every(inferences, function (r, i) { return isValidTypeForTemplateLiteralPlaceholder(r, target.types[i]); }); - } - function getStringLikeTypeForType(type) { - return type.flags & (1 /* Any */ | 402653316 /* StringLike */) ? type : getTemplateLiteralType(["", ""], [type]); - } - function inferFromLiteralPartsToTemplateLiteral(sourceTexts, sourceTypes, target) { - var lastSourceIndex = sourceTexts.length - 1; - var sourceStartText = sourceTexts[0]; - var sourceEndText = sourceTexts[lastSourceIndex]; - var targetTexts = target.texts; - var lastTargetIndex = targetTexts.length - 1; - var targetStartText = targetTexts[0]; - var targetEndText = targetTexts[lastTargetIndex]; - if (lastSourceIndex === 0 && sourceStartText.length < targetStartText.length + targetEndText.length || !sourceStartText.startsWith(targetStartText) || !sourceEndText.endsWith(targetEndText)) - return void 0; - var remainingEndText = sourceEndText.slice(0, sourceEndText.length - targetEndText.length); - var matches = []; - var seg = 0; - var pos = targetStartText.length; - for (var i = 1; i < lastTargetIndex; i++) { - var delim = targetTexts[i]; - if (delim.length > 0) { - var s = seg; - var p = pos; - while (true) { - p = getSourceText(s).indexOf(delim, p); - if (p >= 0) - break; - s++; - if (s === sourceTexts.length) - return void 0; - p = 0; - } - addMatch(s, p); - pos += delim.length; - } - else if (pos < getSourceText(seg).length) { - addMatch(seg, pos + 1); - } - else if (seg < lastSourceIndex) { - addMatch(seg + 1, 0); - } - else { - return void 0; - } - } - addMatch(lastSourceIndex, getSourceText(lastSourceIndex).length); - return matches; - function getSourceText(index) { - return index < lastSourceIndex ? sourceTexts[index] : remainingEndText; - } - function addMatch(s, p) { - var matchType = s === seg ? getStringLiteralType(getSourceText(s).slice(pos, p)) : getTemplateLiteralType(__spreadArray(__spreadArray([sourceTexts[seg].slice(pos)], __read(sourceTexts.slice(seg + 1, s)), false), [getSourceText(s).slice(0, p)], false), sourceTypes.slice(seg, s)); - matches.push(matchType); - seg = s; - pos = p; - } - } - function inferTypes(inferences, originalSource, originalTarget, priority /* None */, contravariant) { - if (priority === void 0) { priority = 0; } - if (contravariant === void 0) { contravariant = false; } - var bivariant = false; - var propagationType; - var inferencePriority = 2048 /* MaxValue */; - var allowComplexConstraintInference = true; - var visited; - var sourceStack; - var targetStack; - var expandingFlags = 0 /* None */; - inferFromTypes(originalSource, originalTarget); - function inferFromTypes(source, target) { - var e_297, _t, e_298, _u; - if (!couldContainTypeVariables(target)) { - return; - } - if (source === wildcardType) { - var savePropagationType = propagationType; - propagationType = source; - inferFromTypes(target, target); - propagationType = savePropagationType; - return; - } - if (source.aliasSymbol && source.aliasSymbol === target.aliasSymbol) { - if (source.aliasTypeArguments) { - var params = getSymbolLinks(source.aliasSymbol).typeParameters; - var minParams = getMinTypeArgumentCount(params); - var sourceTypes = fillMissingTypeArguments(source.aliasTypeArguments, params, minParams, isInJSFile(source.aliasSymbol.valueDeclaration)); - var targetTypes = fillMissingTypeArguments(target.aliasTypeArguments, params, minParams, isInJSFile(source.aliasSymbol.valueDeclaration)); - inferFromTypeArguments(sourceTypes, targetTypes, getAliasVariances(source.aliasSymbol)); - } - return; - } - if (source === target && source.flags & 3145728 /* UnionOrIntersection */) { - try { - for (var _v = __values(source.types), _w = _v.next(); !_w.done; _w = _v.next()) { - var t = _w.value; - inferFromTypes(t, t); - } - } - catch (e_297_1) { e_297 = { error: e_297_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_297) throw e_297.error; } - } - return; - } - if (target.flags & 1048576 /* Union */) { - var _x = __read(inferFromMatchingTypes(source.flags & 1048576 /* Union */ ? source.types : [source], target.types, isTypeOrBaseIdenticalTo), 2), tempSources = _x[0], tempTargets = _x[1]; - var _y = __read(inferFromMatchingTypes(tempSources, tempTargets, isTypeCloselyMatchedBy), 2), sources = _y[0], targets = _y[1]; - if (targets.length === 0) { - return; - } - target = getUnionType(targets); - if (sources.length === 0) { - inferWithPriority(source, target, 1 /* NakedTypeVariable */); - return; - } - source = getUnionType(sources); - } - else if (target.flags & 2097152 /* Intersection */ && !every(target.types, isNonGenericObjectType)) { - if (!(source.flags & 1048576 /* Union */)) { - var _z = __read(inferFromMatchingTypes(source.flags & 2097152 /* Intersection */ ? source.types : [source], target.types, isTypeIdenticalTo), 2), sources = _z[0], targets = _z[1]; - if (sources.length === 0 || targets.length === 0) { - return; - } - source = getIntersectionType(sources); - target = getIntersectionType(targets); - } - } - else if (target.flags & (8388608 /* IndexedAccess */ | 33554432 /* Substitution */)) { - target = getActualTypeVariable(target); - } - if (target.flags & 8650752 /* TypeVariable */) { - if (isFromInferenceBlockedSource(source)) { - return; - } - var inference = getInferenceInfoForType(target); - if (inference) { - if (getObjectFlags(source) & 262144 /* NonInferrableType */ || source === nonInferrableAnyType) { - return; - } - if (!inference.isFixed) { - if (inference.priority === void 0 || priority < inference.priority) { - inference.candidates = void 0; - inference.contraCandidates = void 0; - inference.topLevel = true; - inference.priority = priority; - } - if (priority === inference.priority) { - var candidate = propagationType || source; - if (contravariant && !bivariant) { - if (!contains(inference.contraCandidates, candidate)) { - inference.contraCandidates = append(inference.contraCandidates, candidate); - clearCachedInferences(inferences); - } - } - else if (!contains(inference.candidates, candidate)) { - inference.candidates = append(inference.candidates, candidate); - clearCachedInferences(inferences); - } - } - if (!(priority & 128 /* ReturnType */) && target.flags & 262144 /* TypeParameter */ && inference.topLevel && !isTypeParameterAtTopLevel(originalTarget, target)) { - inference.topLevel = false; - clearCachedInferences(inferences); - } - } - inferencePriority = Math.min(inferencePriority, priority); - return; - } - var simplified = getSimplifiedType(target, - /*writing*/ - false); - if (simplified !== target) { - inferFromTypes(source, simplified); - } - else if (target.flags & 8388608 /* IndexedAccess */) { - var indexType = getSimplifiedType(target.indexType, - /*writing*/ - false); - if (indexType.flags & 465829888 /* Instantiable */) { - var simplified2 = distributeIndexOverObjectType(getSimplifiedType(target.objectType, - /*writing*/ - false), indexType, - /*writing*/ - false); - if (simplified2 && simplified2 !== target) { - inferFromTypes(source, simplified2); - } - } - } - } - if (getObjectFlags(source) & 4 /* Reference */ && getObjectFlags(target) & 4 /* Reference */ && (source.target === target.target || isArrayType(source) && isArrayType(target)) && !(source.node && target.node)) { - inferFromTypeArguments(getTypeArguments(source), getTypeArguments(target), getVariances(source.target)); - } - else if (source.flags & 4194304 /* Index */ && target.flags & 4194304 /* Index */) { - inferFromContravariantTypes(source.type, target.type); - } - else if ((isLiteralType(source) || source.flags & 4 /* String */) && target.flags & 4194304 /* Index */) { - var empty = createEmptyObjectTypeFromStringLiteral(source); - inferFromContravariantTypesWithPriority(empty, target.type, 256 /* LiteralKeyof */); - } - else if (source.flags & 8388608 /* IndexedAccess */ && target.flags & 8388608 /* IndexedAccess */) { - inferFromTypes(source.objectType, target.objectType); - inferFromTypes(source.indexType, target.indexType); - } - else if (source.flags & 268435456 /* StringMapping */ && target.flags & 268435456 /* StringMapping */) { - if (source.symbol === target.symbol) { - inferFromTypes(source.type, target.type); - } - } - else if (source.flags & 33554432 /* Substitution */) { - inferFromTypes(source.baseType, target); - inferWithPriority(getSubstitutionIntersection(source), target, 4 /* SubstituteSource */); - } - else if (target.flags & 16777216 /* Conditional */) { - invokeOnce(source, target, inferToConditionalType); - } - else if (target.flags & 3145728 /* UnionOrIntersection */) { - inferToMultipleTypes(source, target.types, target.flags); - } - else if (source.flags & 1048576 /* Union */) { - var sourceTypes = source.types; - try { - for (var sourceTypes_2 = __values(sourceTypes), sourceTypes_2_1 = sourceTypes_2.next(); !sourceTypes_2_1.done; sourceTypes_2_1 = sourceTypes_2.next()) { - var sourceType = sourceTypes_2_1.value; - inferFromTypes(sourceType, target); - } - } - catch (e_298_1) { e_298 = { error: e_298_1 }; } - finally { - try { - if (sourceTypes_2_1 && !sourceTypes_2_1.done && (_u = sourceTypes_2.return)) _u.call(sourceTypes_2); - } - finally { if (e_298) throw e_298.error; } - } - } - else if (target.flags & 134217728 /* TemplateLiteral */) { - inferToTemplateLiteralType(source, target); - } - else { - source = getReducedType(source); - if (!(priority & 512 /* NoConstraints */ && source.flags & (2097152 /* Intersection */ | 465829888 /* Instantiable */))) { - var apparentSource = getApparentType(source); - if (apparentSource !== source && allowComplexConstraintInference && !(apparentSource.flags & (524288 /* Object */ | 2097152 /* Intersection */))) { - allowComplexConstraintInference = false; - return inferFromTypes(apparentSource, target); - } - source = apparentSource; - } - if (source.flags & (524288 /* Object */ | 2097152 /* Intersection */)) { - invokeOnce(source, target, inferFromObjectTypes); - } - } - } - function inferWithPriority(source, target, newPriority) { - var savePriority = priority; - priority |= newPriority; - inferFromTypes(source, target); - priority = savePriority; - } - function inferFromContravariantTypesWithPriority(source, target, newPriority) { - var savePriority = priority; - priority |= newPriority; - inferFromContravariantTypes(source, target); - priority = savePriority; - } - function inferToMultipleTypesWithPriority(source, targets, targetFlags, newPriority) { - var savePriority = priority; - priority |= newPriority; - inferToMultipleTypes(source, targets, targetFlags); - priority = savePriority; - } - function invokeOnce(source, target, action) { - var key = source.id + "," + target.id; - var status = visited && visited.get(key); - if (status !== void 0) { - inferencePriority = Math.min(inferencePriority, status); - return; - } - (visited || (visited = /* @__PURE__ */ new Map())).set(key, -1 /* Circularity */); - var saveInferencePriority = inferencePriority; - inferencePriority = 2048 /* MaxValue */; - var saveExpandingFlags = expandingFlags; - (sourceStack !== null && sourceStack !== void 0 ? sourceStack : (sourceStack = [])).push(source); - (targetStack !== null && targetStack !== void 0 ? targetStack : (targetStack = [])).push(target); - if (isDeeplyNestedType(source, sourceStack, sourceStack.length, 2)) - expandingFlags |= 1 /* Source */; - if (isDeeplyNestedType(target, targetStack, targetStack.length, 2)) - expandingFlags |= 2 /* Target */; - if (expandingFlags !== 3 /* Both */) { - action(source, target); - } - else { - inferencePriority = -1 /* Circularity */; - } - targetStack.pop(); - sourceStack.pop(); - expandingFlags = saveExpandingFlags; - visited.set(key, inferencePriority); - inferencePriority = Math.min(inferencePriority, saveInferencePriority); - } - function inferFromMatchingTypes(sources, targets, matches) { - var e_299, _t, e_300, _u; - var matchedSources; - var matchedTargets; - try { - for (var targets_1 = __values(targets), targets_1_1 = targets_1.next(); !targets_1_1.done; targets_1_1 = targets_1.next()) { - var t = targets_1_1.value; - try { - for (var sources_1 = (e_300 = void 0, __values(sources)), sources_1_1 = sources_1.next(); !sources_1_1.done; sources_1_1 = sources_1.next()) { - var s = sources_1_1.value; - if (matches(s, t)) { - inferFromTypes(s, t); - matchedSources = appendIfUnique(matchedSources, s); - matchedTargets = appendIfUnique(matchedTargets, t); - } - } - } - catch (e_300_1) { e_300 = { error: e_300_1 }; } - finally { - try { - if (sources_1_1 && !sources_1_1.done && (_u = sources_1.return)) _u.call(sources_1); - } - finally { if (e_300) throw e_300.error; } - } - } - } - catch (e_299_1) { e_299 = { error: e_299_1 }; } - finally { - try { - if (targets_1_1 && !targets_1_1.done && (_t = targets_1.return)) _t.call(targets_1); - } - finally { if (e_299) throw e_299.error; } - } - return [ - matchedSources ? filter(sources, function (t) { return !contains(matchedSources, t); }) : sources, - matchedTargets ? filter(targets, function (t) { return !contains(matchedTargets, t); }) : targets - ]; - } - function inferFromTypeArguments(sourceTypes, targetTypes, variances) { - var count = sourceTypes.length < targetTypes.length ? sourceTypes.length : targetTypes.length; - for (var i = 0; i < count; i++) { - if (i < variances.length && (variances[i] & 7 /* VarianceMask */) === 2 /* Contravariant */) { - inferFromContravariantTypes(sourceTypes[i], targetTypes[i]); - } - else { - inferFromTypes(sourceTypes[i], targetTypes[i]); - } - } - } - function inferFromContravariantTypes(source, target) { - contravariant = !contravariant; - inferFromTypes(source, target); - contravariant = !contravariant; - } - function inferFromContravariantTypesIfStrictFunctionTypes(source, target) { - if (strictFunctionTypes || priority & 1024 /* AlwaysStrict */) { - inferFromContravariantTypes(source, target); - } - else { - inferFromTypes(source, target); - } - } - function getInferenceInfoForType(type) { - var e_301, _t; - if (type.flags & 8650752 /* TypeVariable */) { - try { - for (var inferences_2 = __values(inferences), inferences_2_1 = inferences_2.next(); !inferences_2_1.done; inferences_2_1 = inferences_2.next()) { - var inference = inferences_2_1.value; - if (type === inference.typeParameter) { - return inference; - } - } - } - catch (e_301_1) { e_301 = { error: e_301_1 }; } - finally { - try { - if (inferences_2_1 && !inferences_2_1.done && (_t = inferences_2.return)) _t.call(inferences_2); - } - finally { if (e_301) throw e_301.error; } - } - } - return void 0; - } - function getSingleTypeVariableFromIntersectionTypes(types) { - var e_302, _t; - var typeVariable; - try { - for (var types_13 = __values(types), types_13_1 = types_13.next(); !types_13_1.done; types_13_1 = types_13.next()) { - var type = types_13_1.value; - var t = type.flags & 2097152 /* Intersection */ && find(type.types, function (t2) { return !!getInferenceInfoForType(t2); }); - if (!t || typeVariable && t !== typeVariable) { - return void 0; - } - typeVariable = t; - } - } - catch (e_302_1) { e_302 = { error: e_302_1 }; } - finally { - try { - if (types_13_1 && !types_13_1.done && (_t = types_13.return)) _t.call(types_13); - } - finally { if (e_302) throw e_302.error; } - } - return typeVariable; - } - function inferToMultipleTypes(source, targets, targetFlags) { - var e_303, _t, e_304, _u, e_305, _v; - var typeVariableCount = 0; - if (targetFlags & 1048576 /* Union */) { - var nakedTypeVariable = void 0; - var sources = source.flags & 1048576 /* Union */ ? source.types : [source]; - var matched_1 = new Array(sources.length); - var inferenceCircularity = false; - try { - for (var targets_2 = __values(targets), targets_2_1 = targets_2.next(); !targets_2_1.done; targets_2_1 = targets_2.next()) { - var t = targets_2_1.value; - if (getInferenceInfoForType(t)) { - nakedTypeVariable = t; - typeVariableCount++; - } - else { - for (var i = 0; i < sources.length; i++) { - var saveInferencePriority = inferencePriority; - inferencePriority = 2048 /* MaxValue */; - inferFromTypes(sources[i], t); - if (inferencePriority === priority) - matched_1[i] = true; - inferenceCircularity = inferenceCircularity || inferencePriority === -1 /* Circularity */; - inferencePriority = Math.min(inferencePriority, saveInferencePriority); - } - } - } - } - catch (e_303_1) { e_303 = { error: e_303_1 }; } - finally { - try { - if (targets_2_1 && !targets_2_1.done && (_t = targets_2.return)) _t.call(targets_2); - } - finally { if (e_303) throw e_303.error; } - } - if (typeVariableCount === 0) { - var intersectionTypeVariable = getSingleTypeVariableFromIntersectionTypes(targets); - if (intersectionTypeVariable) { - inferWithPriority(source, intersectionTypeVariable, 1 /* NakedTypeVariable */); - } - return; - } - if (typeVariableCount === 1 && !inferenceCircularity) { - var unmatched = flatMap(sources, function (s, i) { return matched_1[i] ? void 0 : s; }); - if (unmatched.length) { - inferFromTypes(getUnionType(unmatched), nakedTypeVariable); - return; - } - } - } - else { - try { - for (var targets_3 = __values(targets), targets_3_1 = targets_3.next(); !targets_3_1.done; targets_3_1 = targets_3.next()) { - var t = targets_3_1.value; - if (getInferenceInfoForType(t)) { - typeVariableCount++; - } - else { - inferFromTypes(source, t); - } - } - } - catch (e_304_1) { e_304 = { error: e_304_1 }; } - finally { - try { - if (targets_3_1 && !targets_3_1.done && (_u = targets_3.return)) _u.call(targets_3); - } - finally { if (e_304) throw e_304.error; } - } - } - if (targetFlags & 2097152 /* Intersection */ ? typeVariableCount === 1 : typeVariableCount > 0) { - try { - for (var targets_4 = __values(targets), targets_4_1 = targets_4.next(); !targets_4_1.done; targets_4_1 = targets_4.next()) { - var t = targets_4_1.value; - if (getInferenceInfoForType(t)) { - inferWithPriority(source, t, 1 /* NakedTypeVariable */); - } - } - } - catch (e_305_1) { e_305 = { error: e_305_1 }; } - finally { - try { - if (targets_4_1 && !targets_4_1.done && (_v = targets_4.return)) _v.call(targets_4); - } - finally { if (e_305) throw e_305.error; } - } - } - } - function inferToMappedType(source, target, constraintType) { - var e_306, _t; - if (constraintType.flags & 1048576 /* Union */) { - var result = false; - try { - for (var _u = __values(constraintType.types), _v = _u.next(); !_v.done; _v = _u.next()) { - var type = _v.value; - result = inferToMappedType(source, target, type) || result; - } - } - catch (e_306_1) { e_306 = { error: e_306_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_306) throw e_306.error; } - } - return result; - } - if (constraintType.flags & 4194304 /* Index */) { - var inference = getInferenceInfoForType(constraintType.type); - if (inference && !inference.isFixed && !isFromInferenceBlockedSource(source)) { - var inferredType = inferTypeForHomomorphicMappedType(source, target, constraintType); - if (inferredType) { - inferWithPriority(inferredType, inference.typeParameter, getObjectFlags(source) & 262144 /* NonInferrableType */ ? 16 /* PartialHomomorphicMappedType */ : 8 /* HomomorphicMappedType */); - } - } - return true; - } - if (constraintType.flags & 262144 /* TypeParameter */) { - inferWithPriority(getIndexType(source, - /*indexFlags*/ - !!source.pattern ? 2 /* NoIndexSignatures */ : 0 /* None */), constraintType, 32 /* MappedTypeConstraint */); - var extendedConstraint = getConstraintOfType(constraintType); - if (extendedConstraint && inferToMappedType(source, target, extendedConstraint)) { - return true; - } - var propTypes = map(getPropertiesOfType(source), getTypeOfSymbol); - var indexTypes = map(getIndexInfosOfType(source), function (info) { return info !== enumNumberIndexInfo ? info.type : neverType; }); - inferFromTypes(getUnionType(concatenate(propTypes, indexTypes)), getTemplateTypeFromMappedType(target)); - return true; - } - return false; - } - function inferToConditionalType(source, target) { - if (source.flags & 16777216 /* Conditional */) { - inferFromTypes(source.checkType, target.checkType); - inferFromTypes(source.extendsType, target.extendsType); - inferFromTypes(getTrueTypeFromConditionalType(source), getTrueTypeFromConditionalType(target)); - inferFromTypes(getFalseTypeFromConditionalType(source), getFalseTypeFromConditionalType(target)); - } - else { - var targetTypes = [getTrueTypeFromConditionalType(target), getFalseTypeFromConditionalType(target)]; - inferToMultipleTypesWithPriority(source, targetTypes, target.flags, contravariant ? 64 /* ContravariantConditional */ : 0); - } - } - function inferToTemplateLiteralType(source, target) { - var matches = inferTypesFromTemplateLiteralType(source, target); - var types = target.types; - if (matches || every(target.texts, function (s) { return s.length === 0; })) { - var _loop_27 = function (i) { - var source2 = matches ? matches[i] : neverType; - var target2 = types[i]; - if (source2.flags & 128 /* StringLiteral */ && target2.flags & 8650752 /* TypeVariable */) { - var inferenceContext = getInferenceInfoForType(target2); - var constraint = inferenceContext ? getBaseConstraintOfType(inferenceContext.typeParameter) : void 0; - if (constraint && !isTypeAny(constraint)) { - var constraintTypes = constraint.flags & 1048576 /* Union */ ? constraint.types : [constraint]; - var allTypeFlags_1 = reduceLeft(constraintTypes, function (flags, t) { return flags | t.flags; }, 0); - if (!(allTypeFlags_1 & 4 /* String */)) { - var str_1 = source2.value; - if (allTypeFlags_1 & 296 /* NumberLike */ && !isValidNumberString(str_1, - /*roundTripOnly*/ - true)) { - allTypeFlags_1 &= ~296 /* NumberLike */; - } - if (allTypeFlags_1 & 2112 /* BigIntLike */ && !isValidBigIntString(str_1, - /*roundTripOnly*/ - true)) { - allTypeFlags_1 &= ~2112 /* BigIntLike */; - } - var matchingType = reduceLeft(constraintTypes, function (left, right) { return !(right.flags & allTypeFlags_1) ? left : left.flags & 4 /* String */ ? left : right.flags & 4 /* String */ ? source2 : left.flags & 134217728 /* TemplateLiteral */ ? left : right.flags & 134217728 /* TemplateLiteral */ && isTypeMatchedByTemplateLiteralType(source2, right) ? source2 : left.flags & 268435456 /* StringMapping */ ? left : right.flags & 268435456 /* StringMapping */ && str_1 === applyStringMapping(right.symbol, str_1) ? source2 : left.flags & 128 /* StringLiteral */ ? left : right.flags & 128 /* StringLiteral */ && right.value === str_1 ? right : left.flags & 8 /* Number */ ? left : right.flags & 8 /* Number */ ? getNumberLiteralType(+str_1) : left.flags & 32 /* Enum */ ? left : right.flags & 32 /* Enum */ ? getNumberLiteralType(+str_1) : left.flags & 256 /* NumberLiteral */ ? left : right.flags & 256 /* NumberLiteral */ && right.value === +str_1 ? right : left.flags & 64 /* BigInt */ ? left : right.flags & 64 /* BigInt */ ? parseBigIntLiteralType(str_1) : left.flags & 2048 /* BigIntLiteral */ ? left : right.flags & 2048 /* BigIntLiteral */ && pseudoBigIntToString(right.value) === str_1 ? right : left.flags & 16 /* Boolean */ ? left : right.flags & 16 /* Boolean */ ? str_1 === "true" ? trueType : str_1 === "false" ? falseType : booleanType : left.flags & 512 /* BooleanLiteral */ ? left : right.flags & 512 /* BooleanLiteral */ && right.intrinsicName === str_1 ? right : left.flags & 32768 /* Undefined */ ? left : right.flags & 32768 /* Undefined */ && right.intrinsicName === str_1 ? right : left.flags & 65536 /* Null */ ? left : right.flags & 65536 /* Null */ && right.intrinsicName === str_1 ? right : left; }, neverType); - if (!(matchingType.flags & 131072 /* Never */)) { - inferFromTypes(matchingType, target2); - return "continue"; - } - } - } - } - inferFromTypes(source2, target2); - }; - for (var i = 0; i < types.length; i++) { - _loop_27(i); - } - } - } - function inferFromObjectTypes(source, target) { - var _a, _b; - if (getObjectFlags(source) & 4 /* Reference */ && getObjectFlags(target) & 4 /* Reference */ && (source.target === target.target || isArrayType(source) && isArrayType(target))) { - inferFromTypeArguments(getTypeArguments(source), getTypeArguments(target), getVariances(source.target)); - return; - } - if (isGenericMappedType(source) && isGenericMappedType(target)) { - inferFromTypes(getConstraintTypeFromMappedType(source), getConstraintTypeFromMappedType(target)); - inferFromTypes(getTemplateTypeFromMappedType(source), getTemplateTypeFromMappedType(target)); - var sourceNameType = getNameTypeFromMappedType(source); - var targetNameType = getNameTypeFromMappedType(target); - if (sourceNameType && targetNameType) - inferFromTypes(sourceNameType, targetNameType); - } - if (getObjectFlags(target) & 32 /* Mapped */ && !target.declaration.nameType) { - var constraintType = getConstraintTypeFromMappedType(target); - if (inferToMappedType(source, target, constraintType)) { - return; - } - } - if (!typesDefinitelyUnrelated(source, target)) { - if (isArrayOrTupleType(source)) { - if (isTupleType(target)) { - var sourceArity = getTypeReferenceArity(source); - var targetArity = getTypeReferenceArity(target); - var elementTypes = getTypeArguments(target); - var elementFlags = target.target.elementFlags; - if (isTupleType(source) && isTupleTypeStructureMatching(source, target)) { - for (var i = 0; i < targetArity; i++) { - inferFromTypes(getTypeArguments(source)[i], elementTypes[i]); - } - return; - } - var startLength = isTupleType(source) ? Math.min(source.target.fixedLength, target.target.fixedLength) : 0; - var endLength = Math.min(isTupleType(source) ? getEndElementCount(source.target, 3 /* Fixed */) : 0, target.target.hasRestElement ? getEndElementCount(target.target, 3 /* Fixed */) : 0); - for (var i = 0; i < startLength; i++) { - inferFromTypes(getTypeArguments(source)[i], elementTypes[i]); - } - if (!isTupleType(source) || sourceArity - startLength - endLength === 1 && source.target.elementFlags[startLength] & 4 /* Rest */) { - var restType = getTypeArguments(source)[startLength]; - for (var i = startLength; i < targetArity - endLength; i++) { - inferFromTypes(elementFlags[i] & 8 /* Variadic */ ? createArrayType(restType) : restType, elementTypes[i]); - } - } - else { - var middleLength = targetArity - startLength - endLength; - if (middleLength === 2) { - if (elementFlags[startLength] & elementFlags[startLength + 1] & 8 /* Variadic */) { - var targetInfo = getInferenceInfoForType(elementTypes[startLength]); - if (targetInfo && targetInfo.impliedArity !== void 0) { - inferFromTypes(sliceTupleType(source, startLength, endLength + sourceArity - targetInfo.impliedArity), elementTypes[startLength]); - inferFromTypes(sliceTupleType(source, startLength + targetInfo.impliedArity, endLength), elementTypes[startLength + 1]); - } - } - else if (elementFlags[startLength] & 8 /* Variadic */ && elementFlags[startLength + 1] & 4 /* Rest */) { - var param = (_a = getInferenceInfoForType(elementTypes[startLength])) == null ? void 0 : _a.typeParameter; - var constraint = param && getBaseConstraintOfType(param); - if (constraint && isTupleType(constraint) && !constraint.target.hasRestElement) { - var impliedArity = constraint.target.fixedLength; - inferFromTypes(sliceTupleType(source, startLength, sourceArity - (startLength + impliedArity)), elementTypes[startLength]); - inferFromTypes(getElementTypeOfSliceOfTupleType(source, startLength + impliedArity, endLength), elementTypes[startLength + 1]); - } - } - else if (elementFlags[startLength] & 4 /* Rest */ && elementFlags[startLength + 1] & 8 /* Variadic */) { - var param = (_b = getInferenceInfoForType(elementTypes[startLength + 1])) == null ? void 0 : _b.typeParameter; - var constraint = param && getBaseConstraintOfType(param); - if (constraint && isTupleType(constraint) && !constraint.target.hasRestElement) { - var impliedArity = constraint.target.fixedLength; - var endIndex = sourceArity - getEndElementCount(target.target, 3 /* Fixed */); - var startIndex = endIndex - impliedArity; - var trailingSlice = createTupleType(getTypeArguments(source).slice(startIndex, endIndex), source.target.elementFlags.slice(startIndex, endIndex), - /*readonly*/ - false, source.target.labeledElementDeclarations && source.target.labeledElementDeclarations.slice(startIndex, endIndex)); - inferFromTypes(getElementTypeOfSliceOfTupleType(source, startLength, endLength + impliedArity), elementTypes[startLength]); - inferFromTypes(trailingSlice, elementTypes[startLength + 1]); - } - } - } - else if (middleLength === 1 && elementFlags[startLength] & 8 /* Variadic */) { - var endsInOptional = target.target.elementFlags[targetArity - 1] & 2 /* Optional */; - var sourceSlice = sliceTupleType(source, startLength, endLength); - inferWithPriority(sourceSlice, elementTypes[startLength], endsInOptional ? 2 /* SpeculativeTuple */ : 0); - } - else if (middleLength === 1 && elementFlags[startLength] & 4 /* Rest */) { - var restType = getElementTypeOfSliceOfTupleType(source, startLength, endLength); - if (restType) { - inferFromTypes(restType, elementTypes[startLength]); - } - } - } - for (var i = 0; i < endLength; i++) { - inferFromTypes(getTypeArguments(source)[sourceArity - i - 1], elementTypes[targetArity - i - 1]); - } - return; - } - if (isArrayType(target)) { - inferFromIndexTypes(source, target); - return; - } - } - inferFromProperties(source, target); - inferFromSignatures(source, target, 0 /* Call */); - inferFromSignatures(source, target, 1 /* Construct */); - inferFromIndexTypes(source, target); - } - } - function inferFromProperties(source, target) { - var e_307, _t; - var properties = getPropertiesOfObjectType(target); - try { - for (var properties_3 = __values(properties), properties_3_1 = properties_3.next(); !properties_3_1.done; properties_3_1 = properties_3.next()) { - var targetProp = properties_3_1.value; - var sourceProp = getPropertyOfType(source, targetProp.escapedName); - if (sourceProp && !some(sourceProp.declarations, hasSkipDirectInferenceFlag)) { - inferFromTypes(getTypeOfSymbol(sourceProp), getTypeOfSymbol(targetProp)); - } - } - } - catch (e_307_1) { e_307 = { error: e_307_1 }; } - finally { - try { - if (properties_3_1 && !properties_3_1.done && (_t = properties_3.return)) _t.call(properties_3); - } - finally { if (e_307) throw e_307.error; } - } - } - function inferFromSignatures(source, target, kind) { - var sourceSignatures = getSignaturesOfType(source, kind); - var targetSignatures = getSignaturesOfType(target, kind); - var sourceLen = sourceSignatures.length; - var targetLen = targetSignatures.length; - var len = sourceLen < targetLen ? sourceLen : targetLen; - for (var i = 0; i < len; i++) { - inferFromSignature(getBaseSignature(sourceSignatures[sourceLen - len + i]), getErasedSignature(targetSignatures[targetLen - len + i])); - } - } - function inferFromSignature(source, target) { - if (!(source.flags & 64 /* IsNonInferrable */)) { - var saveBivariant = bivariant; - var kind = target.declaration ? target.declaration.kind : 0 /* Unknown */; - bivariant = bivariant || kind === 174 /* MethodDeclaration */ || kind === 173 /* MethodSignature */ || kind === 176 /* Constructor */; - applyToParameterTypes(source, target, inferFromContravariantTypesIfStrictFunctionTypes); - bivariant = saveBivariant; - } - applyToReturnTypes(source, target, inferFromTypes); - } - function inferFromIndexTypes(source, target) { - var e_308, _t, e_309, _u, e_310, _v, e_311, _w; - var priority2 = getObjectFlags(source) & getObjectFlags(target) & 32 /* Mapped */ ? 8 /* HomomorphicMappedType */ : 0; - var indexInfos = getIndexInfosOfType(target); - if (isObjectTypeWithInferableIndex(source)) { - try { - for (var indexInfos_4 = __values(indexInfos), indexInfos_4_1 = indexInfos_4.next(); !indexInfos_4_1.done; indexInfos_4_1 = indexInfos_4.next()) { - var targetInfo = indexInfos_4_1.value; - var propTypes = []; - try { - for (var _x = (e_309 = void 0, __values(getPropertiesOfType(source))), _y = _x.next(); !_y.done; _y = _x.next()) { - var prop = _y.value; - if (isApplicableIndexType(getLiteralTypeFromProperty(prop, 8576 /* StringOrNumberLiteralOrUnique */), targetInfo.keyType)) { - var propType = getTypeOfSymbol(prop); - propTypes.push(prop.flags & 16777216 /* Optional */ ? removeMissingOrUndefinedType(propType) : propType); - } - } - } - catch (e_309_1) { e_309 = { error: e_309_1 }; } - finally { - try { - if (_y && !_y.done && (_u = _x.return)) _u.call(_x); - } - finally { if (e_309) throw e_309.error; } - } - try { - for (var _z = (e_310 = void 0, __values(getIndexInfosOfType(source))), _10 = _z.next(); !_10.done; _10 = _z.next()) { - var info = _10.value; - if (isApplicableIndexType(info.keyType, targetInfo.keyType)) { - propTypes.push(info.type); - } - } - } - catch (e_310_1) { e_310 = { error: e_310_1 }; } - finally { - try { - if (_10 && !_10.done && (_v = _z.return)) _v.call(_z); - } - finally { if (e_310) throw e_310.error; } - } - if (propTypes.length) { - inferWithPriority(getUnionType(propTypes), targetInfo.type, priority2); - } - } - } - catch (e_308_1) { e_308 = { error: e_308_1 }; } - finally { - try { - if (indexInfos_4_1 && !indexInfos_4_1.done && (_t = indexInfos_4.return)) _t.call(indexInfos_4); - } - finally { if (e_308) throw e_308.error; } - } - } - try { - for (var indexInfos_5 = __values(indexInfos), indexInfos_5_1 = indexInfos_5.next(); !indexInfos_5_1.done; indexInfos_5_1 = indexInfos_5.next()) { - var targetInfo = indexInfos_5_1.value; - var sourceInfo = getApplicableIndexInfo(source, targetInfo.keyType); - if (sourceInfo) { - inferWithPriority(sourceInfo.type, targetInfo.type, priority2); - } - } - } - catch (e_311_1) { e_311 = { error: e_311_1 }; } - finally { - try { - if (indexInfos_5_1 && !indexInfos_5_1.done && (_w = indexInfos_5.return)) _w.call(indexInfos_5); - } - finally { if (e_311) throw e_311.error; } - } - } - } - function isTypeOrBaseIdenticalTo(s, t) { - return t === missingType ? s === t : isTypeIdenticalTo(s, t) || !!(t.flags & 4 /* String */ && s.flags & 128 /* StringLiteral */ || t.flags & 8 /* Number */ && s.flags & 256 /* NumberLiteral */); - } - function isTypeCloselyMatchedBy(s, t) { - return !!(s.flags & 524288 /* Object */ && t.flags & 524288 /* Object */ && s.symbol && s.symbol === t.symbol || s.aliasSymbol && s.aliasTypeArguments && s.aliasSymbol === t.aliasSymbol); - } - function hasPrimitiveConstraint(type) { - var constraint = getConstraintOfTypeParameter(type); - return !!constraint && maybeTypeOfKind(constraint.flags & 16777216 /* Conditional */ ? getDefaultConstraintOfConditionalType(constraint) : constraint, 402784252 /* Primitive */ | 4194304 /* Index */ | 134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */); - } - function isObjectLiteralType2(type) { - return !!(getObjectFlags(type) & 128 /* ObjectLiteral */); - } - function isObjectOrArrayLiteralType(type) { - return !!(getObjectFlags(type) & (128 /* ObjectLiteral */ | 16384 /* ArrayLiteral */)); - } - function unionObjectAndArrayLiteralCandidates(candidates) { - if (candidates.length > 1) { - var objectLiterals = filter(candidates, isObjectOrArrayLiteralType); - if (objectLiterals.length) { - var literalsType = getUnionType(objectLiterals, 2 /* Subtype */); - return concatenate(filter(candidates, function (t) { return !isObjectOrArrayLiteralType(t); }), [literalsType]); - } - } - return candidates; - } - function getContravariantInference(inference) { - return inference.priority & 416 /* PriorityImpliesCombination */ ? getIntersectionType(inference.contraCandidates) : getCommonSubtype(inference.contraCandidates); - } - function getCovariantInference(inference, signature) { - var candidates = unionObjectAndArrayLiteralCandidates(inference.candidates); - var primitiveConstraint = hasPrimitiveConstraint(inference.typeParameter) || isConstTypeVariable(inference.typeParameter); - var widenLiteralTypes = !primitiveConstraint && inference.topLevel && (inference.isFixed || !isTypeParameterAtTopLevelInReturnType(signature, inference.typeParameter)); - var baseCandidates = primitiveConstraint ? sameMap(candidates, getRegularTypeOfLiteralType) : widenLiteralTypes ? sameMap(candidates, getWidenedLiteralType) : candidates; - var unwidenedType = inference.priority & 416 /* PriorityImpliesCombination */ ? getUnionType(baseCandidates, 2 /* Subtype */) : getCommonSupertype(baseCandidates); - return getWidenedType(unwidenedType); - } - function getInferredType(context, index) { - var inference = context.inferences[index]; - if (!inference.inferredType) { - var inferredType = void 0; - var fallbackType = void 0; - if (context.signature) { - var inferredCovariantType_1 = inference.candidates ? getCovariantInference(inference, context.signature) : void 0; - var inferredContravariantType = inference.contraCandidates ? getContravariantInference(inference) : void 0; - if (inferredCovariantType_1 || inferredContravariantType) { - var preferCovariantType = inferredCovariantType_1 && (!inferredContravariantType || !(inferredCovariantType_1.flags & 131072 /* Never */) && some(inference.contraCandidates, function (t) { return isTypeSubtypeOf(inferredCovariantType_1, t); }) && every(context.inferences, function (other) { return other !== inference && getConstraintOfTypeParameter(other.typeParameter) !== inference.typeParameter || every(other.candidates, function (t) { return isTypeSubtypeOf(t, inferredCovariantType_1); }); })); - inferredType = preferCovariantType ? inferredCovariantType_1 : inferredContravariantType; - fallbackType = preferCovariantType ? inferredContravariantType : inferredCovariantType_1; - } - else if (context.flags & 1 /* NoDefault */) { - inferredType = silentNeverType; - } - else { - var defaultType = getDefaultFromTypeParameter(inference.typeParameter); - if (defaultType) { - inferredType = instantiateType(defaultType, mergeTypeMappers(createBackreferenceMapper(context, index), context.nonFixingMapper)); - } - } - } - else { - inferredType = getTypeFromInference(inference); - } - inference.inferredType = inferredType || getDefaultTypeArgumentType(!!(context.flags & 2 /* AnyDefault */)); - var constraint = getConstraintOfTypeParameter(inference.typeParameter); - if (constraint) { - var instantiatedConstraint = instantiateType(constraint, context.nonFixingMapper); - if (!inferredType || inferredType === wildcardType || !context.compareTypes(inferredType, getTypeWithThisArgument(instantiatedConstraint, inferredType))) { - inference.inferredType = fallbackType && context.compareTypes(fallbackType, getTypeWithThisArgument(instantiatedConstraint, fallbackType)) ? fallbackType : instantiatedConstraint; - } - } - } - return inference.inferredType; - } - function getDefaultTypeArgumentType(isInJavaScriptFile) { - return isInJavaScriptFile ? anyType : unknownType; - } - function getInferredTypes(context) { - var result = []; - for (var i = 0; i < context.inferences.length; i++) { - result.push(getInferredType(context, i)); - } - return result; - } - function getCannotFindNameDiagnosticForName(node) { - switch (node.escapedText) { - case "document": - case "console": - return Diagnostics.Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_include_dom; - case "$": - return compilerOptions.types ? Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery_and_then_add_jquery_to_the_types_field_in_your_tsconfig : Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery; - case "describe": - case "suite": - case "it": - case "test": - return compilerOptions.types ? Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha_and_then_add_jest_or_mocha_to_the_types_field_in_your_tsconfig : Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha; - case "process": - case "require": - case "Buffer": - case "module": - return compilerOptions.types ? Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode_and_then_add_node_to_the_types_field_in_your_tsconfig : Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode; - case "Map": - case "Set": - case "Promise": - case "Symbol": - case "WeakMap": - case "WeakSet": - case "Iterator": - case "AsyncIterator": - case "SharedArrayBuffer": - case "Atomics": - case "AsyncIterable": - case "AsyncIterableIterator": - case "AsyncGenerator": - case "AsyncGeneratorFunction": - case "BigInt": - case "Reflect": - case "BigInt64Array": - case "BigUint64Array": - return Diagnostics.Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_1_or_later; - case "await": - if (isCallExpression(node.parent)) { - return Diagnostics.Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function; - } - default: - if (node.parent.kind === 304 /* ShorthandPropertyAssignment */) { - return Diagnostics.No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer; - } - else { - return Diagnostics.Cannot_find_name_0; - } - } - } - function getResolvedSymbol(node) { - var links = getNodeLinks(node); - if (!links.resolvedSymbol) { - links.resolvedSymbol = !nodeIsMissing(node) && resolveName(node, node.escapedText, 111551 /* Value */ | 1048576 /* ExportValue */, getCannotFindNameDiagnosticForName(node), node, !isWriteOnlyAccess(node), - /*excludeGlobals*/ - false) || unknownSymbol; - } - return links.resolvedSymbol; - } - function isInAmbientOrTypeNode(node) { - return !!(node.flags & 33554432 /* Ambient */ || findAncestor(node, function (n) { return isInterfaceDeclaration(n) || isTypeAliasDeclaration(n) || isTypeLiteralNode(n); })); - } - function getFlowCacheKey(node, declaredType, initialType, flowContainer) { - switch (node.kind) { - case 80 /* Identifier */: - if (!isThisInTypeQuery(node)) { - var symbol = getResolvedSymbol(node); - return symbol !== unknownSymbol ? "".concat(flowContainer ? getNodeId(flowContainer) : "-1", "|").concat(getTypeId(declaredType), "|").concat(getTypeId(initialType), "|").concat(getSymbolId(symbol)) : void 0; - } - case 110 /* ThisKeyword */: - return "0|".concat(flowContainer ? getNodeId(flowContainer) : "-1", "|").concat(getTypeId(declaredType), "|").concat(getTypeId(initialType)); - case 235 /* NonNullExpression */: - case 217 /* ParenthesizedExpression */: - return getFlowCacheKey(node.expression, declaredType, initialType, flowContainer); - case 166 /* QualifiedName */: - var left = getFlowCacheKey(node.left, declaredType, initialType, flowContainer); - return left && left + "." + node.right.escapedText; - case 211 /* PropertyAccessExpression */: - case 212 /* ElementAccessExpression */: - var propName = getAccessedPropertyName(node); - if (propName !== void 0) { - var key = getFlowCacheKey(node.expression, declaredType, initialType, flowContainer); - return key && key + "." + propName; - } - break; - case 206 /* ObjectBindingPattern */: - case 207 /* ArrayBindingPattern */: - case 262 /* FunctionDeclaration */: - case 218 /* FunctionExpression */: - case 219 /* ArrowFunction */: - case 174 /* MethodDeclaration */: - return "".concat(getNodeId(node), "#").concat(getTypeId(declaredType)); - } - return void 0; - } - function isMatchingReference(source, target) { - switch (target.kind) { - case 217 /* ParenthesizedExpression */: - case 235 /* NonNullExpression */: - return isMatchingReference(source, target.expression); - case 226 /* BinaryExpression */: - return isAssignmentExpression(target) && isMatchingReference(source, target.left) || isBinaryExpression(target) && target.operatorToken.kind === 28 /* CommaToken */ && isMatchingReference(source, target.right); - } - switch (source.kind) { - case 236 /* MetaProperty */: - return target.kind === 236 /* MetaProperty */ && source.keywordToken === target.keywordToken && source.name.escapedText === target.name.escapedText; - case 80 /* Identifier */: - case 81 /* PrivateIdentifier */: - return isThisInTypeQuery(source) ? target.kind === 110 /* ThisKeyword */ : target.kind === 80 /* Identifier */ && getResolvedSymbol(source) === getResolvedSymbol(target) || (isVariableDeclaration(target) || isBindingElement(target)) && getExportSymbolOfValueSymbolIfExported(getResolvedSymbol(source)) === getSymbolOfDeclaration(target); - case 110 /* ThisKeyword */: - return target.kind === 110 /* ThisKeyword */; - case 108 /* SuperKeyword */: - return target.kind === 108 /* SuperKeyword */; - case 235 /* NonNullExpression */: - case 217 /* ParenthesizedExpression */: - return isMatchingReference(source.expression, target); - case 211 /* PropertyAccessExpression */: - case 212 /* ElementAccessExpression */: - var sourcePropertyName = getAccessedPropertyName(source); - var targetPropertyName = isAccessExpression(target) ? getAccessedPropertyName(target) : void 0; - return sourcePropertyName !== void 0 && targetPropertyName !== void 0 && targetPropertyName === sourcePropertyName && isMatchingReference(source.expression, target.expression); - case 166 /* QualifiedName */: - return isAccessExpression(target) && source.right.escapedText === getAccessedPropertyName(target) && isMatchingReference(source.left, target.expression); - case 226 /* BinaryExpression */: - return isBinaryExpression(source) && source.operatorToken.kind === 28 /* CommaToken */ && isMatchingReference(source.right, target); - } - return false; - } - function getAccessedPropertyName(access) { - if (isPropertyAccessExpression(access)) { - return access.name.escapedText; - } - if (isElementAccessExpression(access)) { - return tryGetElementAccessExpressionName(access); - } - if (isBindingElement(access)) { - var name_42 = getDestructuringPropertyName(access); - return name_42 ? escapeLeadingUnderscores(name_42) : void 0; - } - if (isParameter(access)) { - return "" + access.parent.parameters.indexOf(access); - } - return void 0; - } - function tryGetNameFromType(type) { - return type.flags & 8192 /* UniqueESSymbol */ ? type.escapedName : type.flags & 384 /* StringOrNumberLiteral */ ? escapeLeadingUnderscores("" + type.value) : void 0; - } - function tryGetElementAccessExpressionName(node) { - return isStringOrNumericLiteralLike(node.argumentExpression) ? escapeLeadingUnderscores(node.argumentExpression.text) : isEntityNameExpression(node.argumentExpression) ? tryGetNameFromEntityNameExpression(node.argumentExpression) : void 0; - } - function tryGetNameFromEntityNameExpression(node) { - var symbol = resolveEntityName(node, 111551 /* Value */, - /*ignoreErrors*/ - true); - if (!symbol || !(isConstantVariable(symbol) || symbol.flags & 8 /* EnumMember */)) - return void 0; - var declaration = symbol.valueDeclaration; - if (declaration === void 0) - return void 0; - var type = tryGetTypeFromEffectiveTypeNode(declaration); - if (type) { - var name_43 = tryGetNameFromType(type); - if (name_43 !== void 0) { - return name_43; - } - } - if (hasOnlyExpressionInitializer(declaration) && isBlockScopedNameDeclaredBeforeUse(declaration, node)) { - var initializer = getEffectiveInitializer(declaration); - if (initializer) { - return tryGetNameFromType(getTypeOfExpression(initializer)); - } - if (isEnumMember(declaration)) { - return getTextOfPropertyName(declaration.name); - } - } - return void 0; - } - function containsMatchingReference(source, target) { - while (isAccessExpression(source)) { - source = source.expression; - if (isMatchingReference(source, target)) { - return true; - } - } - return false; - } - function optionalChainContainsReference(source, target) { - while (isOptionalChain(source)) { - source = source.expression; - if (isMatchingReference(source, target)) { - return true; - } - } - return false; - } - function isDiscriminantProperty(type, name) { - if (type && type.flags & 1048576 /* Union */) { - var prop = getUnionOrIntersectionProperty(type, name); - if (prop && getCheckFlags(prop) & 2 /* SyntheticProperty */) { - if (prop.links.isDiscriminantProperty === void 0) { - prop.links.isDiscriminantProperty = (prop.links.checkFlags & 192 /* Discriminant */) === 192 /* Discriminant */ && !isGenericType(getTypeOfSymbol(prop)); - } - return !!prop.links.isDiscriminantProperty; - } - } - return false; - } - function findDiscriminantProperties(sourceProperties, target) { - var e_312, _t; - var result; - try { - for (var sourceProperties_2 = __values(sourceProperties), sourceProperties_2_1 = sourceProperties_2.next(); !sourceProperties_2_1.done; sourceProperties_2_1 = sourceProperties_2.next()) { - var sourceProperty = sourceProperties_2_1.value; - if (isDiscriminantProperty(target, sourceProperty.escapedName)) { - if (result) { - result.push(sourceProperty); - continue; - } - result = [sourceProperty]; - } - } - } - catch (e_312_1) { e_312 = { error: e_312_1 }; } - finally { - try { - if (sourceProperties_2_1 && !sourceProperties_2_1.done && (_t = sourceProperties_2.return)) _t.call(sourceProperties_2); - } - finally { if (e_312) throw e_312.error; } - } - return result; - } - function mapTypesByKeyProperty(types, name) { - var e_313, _t; - var map2 = /* @__PURE__ */ new Map(); - var count = 0; - var _loop_28 = function (type) { - if (type.flags & (524288 /* Object */ | 2097152 /* Intersection */ | 58982400 /* InstantiableNonPrimitive */)) { - var discriminant = getTypeOfPropertyOfType(type, name); - if (discriminant) { - if (!isLiteralType(discriminant)) { - return { value: void 0 }; - } - var duplicate_1 = false; - forEachType(discriminant, function (t) { - var id = getTypeId(getRegularTypeOfLiteralType(t)); - var existing = map2.get(id); - if (!existing) { - map2.set(id, type); - } - else if (existing !== unknownType) { - map2.set(id, unknownType); - duplicate_1 = true; - } - }); - if (!duplicate_1) - count++; - } - } - }; - try { - for (var types_14 = __values(types), types_14_1 = types_14.next(); !types_14_1.done; types_14_1 = types_14.next()) { - var type = types_14_1.value; - var state_12 = _loop_28(type); - if (typeof state_12 === "object") - return state_12.value; - } - } - catch (e_313_1) { e_313 = { error: e_313_1 }; } - finally { - try { - if (types_14_1 && !types_14_1.done && (_t = types_14.return)) _t.call(types_14); - } - finally { if (e_313) throw e_313.error; } - } - return count >= 10 && count * 2 >= types.length ? map2 : void 0; - } - function getKeyPropertyName(unionType) { - var types = unionType.types; - if (types.length < 10 || getObjectFlags(unionType) & 32768 /* PrimitiveUnion */ || countWhere(types, function (t) { return !!(t.flags & (524288 /* Object */ | 58982400 /* InstantiableNonPrimitive */)); }) < 10) { - return void 0; - } - if (unionType.keyPropertyName === void 0) { - var keyPropertyName = forEach(types, function (t) { return t.flags & (524288 /* Object */ | 58982400 /* InstantiableNonPrimitive */) ? forEach(getPropertiesOfType(t), function (p) { return isUnitType(getTypeOfSymbol(p)) ? p.escapedName : void 0; }) : void 0; }); - var mapByKeyProperty = keyPropertyName && mapTypesByKeyProperty(types, keyPropertyName); - unionType.keyPropertyName = mapByKeyProperty ? keyPropertyName : ""; - unionType.constituentMap = mapByKeyProperty; - } - return unionType.keyPropertyName.length ? unionType.keyPropertyName : void 0; - } - function getConstituentTypeForKeyType(unionType, keyType) { - var _a; - var result = (_a = unionType.constituentMap) == null ? void 0 : _a.get(getTypeId(getRegularTypeOfLiteralType(keyType))); - return result !== unknownType ? result : void 0; - } - function getMatchingUnionConstituentForType(unionType, type) { - var keyPropertyName = getKeyPropertyName(unionType); - var propType = keyPropertyName && getTypeOfPropertyOfType(type, keyPropertyName); - return propType && getConstituentTypeForKeyType(unionType, propType); - } - function getMatchingUnionConstituentForObjectLiteral(unionType, node) { - var keyPropertyName = getKeyPropertyName(unionType); - var propNode = keyPropertyName && find(node.properties, function (p) { return p.symbol && p.kind === 303 /* PropertyAssignment */ && p.symbol.escapedName === keyPropertyName && isPossiblyDiscriminantValue(p.initializer); }); - var propType = propNode && getContextFreeTypeOfExpression(propNode.initializer); - return propType && getConstituentTypeForKeyType(unionType, propType); - } - function isOrContainsMatchingReference(source, target) { - return isMatchingReference(source, target) || containsMatchingReference(source, target); - } - function hasMatchingArgument(expression, reference) { - var e_314, _t; - if (expression.arguments) { - try { - for (var _u = __values(expression.arguments), _v = _u.next(); !_v.done; _v = _u.next()) { - var argument = _v.value; - if (isOrContainsMatchingReference(reference, argument)) { - return true; - } - } - } - catch (e_314_1) { e_314 = { error: e_314_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_314) throw e_314.error; } - } - } - if (expression.expression.kind === 211 /* PropertyAccessExpression */ && isOrContainsMatchingReference(reference, expression.expression.expression)) { - return true; - } - return false; - } - function getFlowNodeId(flow) { - if (!flow.id || flow.id < 0) { - flow.id = nextFlowId; - nextFlowId++; - } - return flow.id; - } - function typeMaybeAssignableTo(source, target) { - var e_315, _t; - if (!(source.flags & 1048576 /* Union */)) { - return isTypeAssignableTo(source, target); - } - try { - for (var _u = __values(source.types), _v = _u.next(); !_v.done; _v = _u.next()) { - var t = _v.value; - if (isTypeAssignableTo(t, target)) { - return true; - } - } - } - catch (e_315_1) { e_315 = { error: e_315_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_315) throw e_315.error; } - } - return false; - } - function getAssignmentReducedType(declaredType, assignedType) { - var _t; - if (declaredType === assignedType) { - return declaredType; - } - if (assignedType.flags & 131072 /* Never */) { - return assignedType; - } - var key = "A".concat(getTypeId(declaredType), ",").concat(getTypeId(assignedType)); - return (_t = getCachedType(key)) !== null && _t !== void 0 ? _t : setCachedType(key, getAssignmentReducedTypeWorker(declaredType, assignedType)); - } - function getAssignmentReducedTypeWorker(declaredType, assignedType) { - var filteredType = filterType(declaredType, function (t) { return typeMaybeAssignableTo(assignedType, t); }); - var reducedType = assignedType.flags & 512 /* BooleanLiteral */ && isFreshLiteralType(assignedType) ? mapType(filteredType, getFreshTypeOfLiteralType) : filteredType; - return isTypeAssignableTo(assignedType, reducedType) ? reducedType : declaredType; - } - function isFunctionObjectType(type) { - var resolved = resolveStructuredTypeMembers(type); - return !!(resolved.callSignatures.length || resolved.constructSignatures.length || resolved.members.get("bind") && isTypeSubtypeOf(type, globalFunctionType)); - } - function getTypeFacts(type) { - if (type.flags & (2097152 /* Intersection */ | 465829888 /* Instantiable */)) { - type = getBaseConstraintOfType(type) || unknownType; - } - var flags = type.flags; - if (flags & (4 /* String */ | 268435456 /* StringMapping */)) { - return strictNullChecks ? 16317953 /* StringStrictFacts */ : 16776705 /* StringFacts */; - } - if (flags & (128 /* StringLiteral */ | 134217728 /* TemplateLiteral */)) { - var isEmpty = flags & 128 /* StringLiteral */ && type.value === ""; - return strictNullChecks ? isEmpty ? 12123649 /* EmptyStringStrictFacts */ : 7929345 /* NonEmptyStringStrictFacts */ : isEmpty ? 12582401 /* EmptyStringFacts */ : 16776705 /* NonEmptyStringFacts */; - } - if (flags & (8 /* Number */ | 32 /* Enum */)) { - return strictNullChecks ? 16317698 /* NumberStrictFacts */ : 16776450 /* NumberFacts */; - } - if (flags & 256 /* NumberLiteral */) { - var isZero = type.value === 0; - return strictNullChecks ? isZero ? 12123394 /* ZeroNumberStrictFacts */ : 7929090 /* NonZeroNumberStrictFacts */ : isZero ? 12582146 /* ZeroNumberFacts */ : 16776450 /* NonZeroNumberFacts */; - } - if (flags & 64 /* BigInt */) { - return strictNullChecks ? 16317188 /* BigIntStrictFacts */ : 16775940 /* BigIntFacts */; - } - if (flags & 2048 /* BigIntLiteral */) { - var isZero = isZeroBigInt(type); - return strictNullChecks ? isZero ? 12122884 /* ZeroBigIntStrictFacts */ : 7928580 /* NonZeroBigIntStrictFacts */ : isZero ? 12581636 /* ZeroBigIntFacts */ : 16775940 /* NonZeroBigIntFacts */; - } - if (flags & 16 /* Boolean */) { - return strictNullChecks ? 16316168 /* BooleanStrictFacts */ : 16774920 /* BooleanFacts */; - } - if (flags & 528 /* BooleanLike */) { - return strictNullChecks ? type === falseType || type === regularFalseType ? 12121864 /* FalseStrictFacts */ : 7927560 /* TrueStrictFacts */ : type === falseType || type === regularFalseType ? 12580616 /* FalseFacts */ : 16774920 /* TrueFacts */; - } - if (flags & 524288 /* Object */) { - return getObjectFlags(type) & 16 /* Anonymous */ && isEmptyObjectType(type) ? strictNullChecks ? 83427327 /* EmptyObjectStrictFacts */ : 83886079 /* EmptyObjectFacts */ : isFunctionObjectType(type) ? strictNullChecks ? 7880640 /* FunctionStrictFacts */ : 16728e3 /* FunctionFacts */ : strictNullChecks ? 7888800 /* ObjectStrictFacts */ : 16736160 /* ObjectFacts */; - } - if (flags & 16384 /* Void */) { - return 9830144 /* VoidFacts */; - } - if (flags & 32768 /* Undefined */) { - return 26607360 /* UndefinedFacts */; - } - if (flags & 65536 /* Null */) { - return 42917664 /* NullFacts */; - } - if (flags & 12288 /* ESSymbolLike */) { - return strictNullChecks ? 7925520 /* SymbolStrictFacts */ : 16772880 /* SymbolFacts */; - } - if (flags & 67108864 /* NonPrimitive */) { - return strictNullChecks ? 7888800 /* ObjectStrictFacts */ : 16736160 /* ObjectFacts */; - } - if (flags & 131072 /* Never */) { - return 0 /* None */; - } - if (flags & 1048576 /* Union */) { - return reduceLeft(type.types, function (facts, t) { return facts | getTypeFacts(t); }, 0 /* None */); - } - if (flags & 2097152 /* Intersection */) { - return getIntersectionTypeFacts(type); - } - return 83886079 /* UnknownFacts */; - } - function getIntersectionTypeFacts(type) { - var e_316, _t; - var ignoreObjects = maybeTypeOfKind(type, 402784252 /* Primitive */); - var oredFacts = 0 /* None */; - var andedFacts = 134217727 /* All */; - try { - for (var _u = __values(type.types), _v = _u.next(); !_v.done; _v = _u.next()) { - var t = _v.value; - if (!(ignoreObjects && t.flags & 524288 /* Object */)) { - var f = getTypeFacts(t); - oredFacts |= f; - andedFacts &= f; - } - } - } - catch (e_316_1) { e_316 = { error: e_316_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_316) throw e_316.error; } - } - return oredFacts & 8256 /* OrFactsMask */ | andedFacts & 134209471 /* AndFactsMask */; - } - function getTypeWithFacts(type, include) { - return filterType(type, function (t) { return (getTypeFacts(t) & include) !== 0; }); - } - function getAdjustedTypeWithFacts(type, facts) { - var reduced = recombineUnknownType(getTypeWithFacts(strictNullChecks && type.flags & 2 /* Unknown */ ? unknownUnionType : type, facts)); - if (strictNullChecks) { - switch (facts) { - case 524288 /* NEUndefined */: - return mapType(reduced, function (t) { return getTypeFacts(t) & 65536 /* EQUndefined */ ? getIntersectionType([t, getTypeFacts(t) & 131072 /* EQNull */ && !maybeTypeOfKind(reduced, 65536 /* Null */) ? getUnionType([emptyObjectType, nullType]) : emptyObjectType]) : t; }); - case 1048576 /* NENull */: - return mapType(reduced, function (t) { return getTypeFacts(t) & 131072 /* EQNull */ ? getIntersectionType([t, getTypeFacts(t) & 65536 /* EQUndefined */ && !maybeTypeOfKind(reduced, 32768 /* Undefined */) ? getUnionType([emptyObjectType, undefinedType]) : emptyObjectType]) : t; }); - case 2097152 /* NEUndefinedOrNull */: - case 4194304 /* Truthy */: - return mapType(reduced, function (t) { return getTypeFacts(t) & 262144 /* EQUndefinedOrNull */ ? getGlobalNonNullableTypeInstantiation(t) : t; }); - } - } - return reduced; - } - function recombineUnknownType(type) { - return type === unknownUnionType ? unknownType : type; - } - function getTypeWithDefault(type, defaultExpression) { - return defaultExpression ? getUnionType([getNonUndefinedType(type), getTypeOfExpression(defaultExpression)]) : type; - } - function getTypeOfDestructuredProperty(type, name) { - var _a; - var nameType = getLiteralTypeFromPropertyName(name); - if (!isTypeUsableAsPropertyName(nameType)) - return errorType; - var text = getPropertyNameFromType(nameType); - return getTypeOfPropertyOfType(type, text) || includeUndefinedInIndexSignature((_a = getApplicableIndexInfoForName(type, text)) == null ? void 0 : _a.type) || errorType; - } - function getTypeOfDestructuredArrayElement(type, index) { - return everyType(type, isTupleLikeType) && getTupleElementType(type, index) || includeUndefinedInIndexSignature(checkIteratedTypeOrElementType(65 /* Destructuring */, type, undefinedType, - /*errorNode*/ - void 0)) || errorType; - } - function includeUndefinedInIndexSignature(type) { - if (!type) - return type; - return compilerOptions.noUncheckedIndexedAccess ? getUnionType([type, missingType]) : type; - } - function getTypeOfDestructuredSpreadExpression(type) { - return createArrayType(checkIteratedTypeOrElementType(65 /* Destructuring */, type, undefinedType, - /*errorNode*/ - void 0) || errorType); - } - function getAssignedTypeOfBinaryExpression(node) { - var isDestructuringDefaultAssignment = node.parent.kind === 209 /* ArrayLiteralExpression */ && isDestructuringAssignmentTarget(node.parent) || node.parent.kind === 303 /* PropertyAssignment */ && isDestructuringAssignmentTarget(node.parent.parent); - return isDestructuringDefaultAssignment ? getTypeWithDefault(getAssignedType(node), node.right) : getTypeOfExpression(node.right); - } - function isDestructuringAssignmentTarget(parent2) { - return parent2.parent.kind === 226 /* BinaryExpression */ && parent2.parent.left === parent2 || parent2.parent.kind === 250 /* ForOfStatement */ && parent2.parent.initializer === parent2; - } - function getAssignedTypeOfArrayLiteralElement(node, element) { - return getTypeOfDestructuredArrayElement(getAssignedType(node), node.elements.indexOf(element)); - } - function getAssignedTypeOfSpreadExpression(node) { - return getTypeOfDestructuredSpreadExpression(getAssignedType(node.parent)); - } - function getAssignedTypeOfPropertyAssignment(node) { - return getTypeOfDestructuredProperty(getAssignedType(node.parent), node.name); - } - function getAssignedTypeOfShorthandPropertyAssignment(node) { - return getTypeWithDefault(getAssignedTypeOfPropertyAssignment(node), node.objectAssignmentInitializer); - } - function getAssignedType(node) { - var parent2 = node.parent; - switch (parent2.kind) { - case 249 /* ForInStatement */: - return stringType; - case 250 /* ForOfStatement */: - return checkRightHandSideOfForOf(parent2) || errorType; - case 226 /* BinaryExpression */: - return getAssignedTypeOfBinaryExpression(parent2); - case 220 /* DeleteExpression */: - return undefinedType; - case 209 /* ArrayLiteralExpression */: - return getAssignedTypeOfArrayLiteralElement(parent2, node); - case 230 /* SpreadElement */: - return getAssignedTypeOfSpreadExpression(parent2); - case 303 /* PropertyAssignment */: - return getAssignedTypeOfPropertyAssignment(parent2); - case 304 /* ShorthandPropertyAssignment */: - return getAssignedTypeOfShorthandPropertyAssignment(parent2); - } - return errorType; - } - function getInitialTypeOfBindingElement(node) { - var pattern = node.parent; - var parentType = getInitialType(pattern.parent); - var type = pattern.kind === 206 /* ObjectBindingPattern */ ? getTypeOfDestructuredProperty(parentType, node.propertyName || node.name) : !node.dotDotDotToken ? getTypeOfDestructuredArrayElement(parentType, pattern.elements.indexOf(node)) : getTypeOfDestructuredSpreadExpression(parentType); - return getTypeWithDefault(type, node.initializer); - } - function getTypeOfInitializer(node) { - var links = getNodeLinks(node); - return links.resolvedType || getTypeOfExpression(node); - } - function getInitialTypeOfVariableDeclaration(node) { - if (node.initializer) { - return getTypeOfInitializer(node.initializer); - } - if (node.parent.parent.kind === 249 /* ForInStatement */) { - return stringType; - } - if (node.parent.parent.kind === 250 /* ForOfStatement */) { - return checkRightHandSideOfForOf(node.parent.parent) || errorType; - } - return errorType; - } - function getInitialType(node) { - return node.kind === 260 /* VariableDeclaration */ ? getInitialTypeOfVariableDeclaration(node) : getInitialTypeOfBindingElement(node); - } - function isEmptyArrayAssignment(node) { - return node.kind === 260 /* VariableDeclaration */ && node.initializer && isEmptyArrayLiteral2(node.initializer) || node.kind !== 208 /* BindingElement */ && node.parent.kind === 226 /* BinaryExpression */ && isEmptyArrayLiteral2(node.parent.right); - } - function getReferenceCandidate(node) { - switch (node.kind) { - case 217 /* ParenthesizedExpression */: - return getReferenceCandidate(node.expression); - case 226 /* BinaryExpression */: - switch (node.operatorToken.kind) { - case 64 /* EqualsToken */: - case 76 /* BarBarEqualsToken */: - case 77 /* AmpersandAmpersandEqualsToken */: - case 78 /* QuestionQuestionEqualsToken */: - return getReferenceCandidate(node.left); - case 28 /* CommaToken */: - return getReferenceCandidate(node.right); - } - } - return node; - } - function getReferenceRoot(node) { - var parent2 = node.parent; - return parent2.kind === 217 /* ParenthesizedExpression */ || parent2.kind === 226 /* BinaryExpression */ && parent2.operatorToken.kind === 64 /* EqualsToken */ && parent2.left === node || parent2.kind === 226 /* BinaryExpression */ && parent2.operatorToken.kind === 28 /* CommaToken */ && parent2.right === node ? getReferenceRoot(parent2) : node; - } - function getTypeOfSwitchClause(clause) { - if (clause.kind === 296 /* CaseClause */) { - return getRegularTypeOfLiteralType(getTypeOfExpression(clause.expression)); - } - return neverType; - } - function getSwitchClauseTypes(switchStatement) { - var e_317, _t; - var links = getNodeLinks(switchStatement); - if (!links.switchTypes) { - links.switchTypes = []; - try { - for (var _u = __values(switchStatement.caseBlock.clauses), _v = _u.next(); !_v.done; _v = _u.next()) { - var clause = _v.value; - links.switchTypes.push(getTypeOfSwitchClause(clause)); - } - } - catch (e_317_1) { e_317 = { error: e_317_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_317) throw e_317.error; } - } - } - return links.switchTypes; - } - function getSwitchClauseTypeOfWitnesses(switchStatement) { - var e_318, _t; - if (some(switchStatement.caseBlock.clauses, function (clause) { return clause.kind === 296 /* CaseClause */ && !isStringLiteralLike(clause.expression); })) { - return void 0; - } - var witnesses = []; - try { - for (var _u = __values(switchStatement.caseBlock.clauses), _v = _u.next(); !_v.done; _v = _u.next()) { - var clause = _v.value; - var text = clause.kind === 296 /* CaseClause */ ? clause.expression.text : void 0; - witnesses.push(text && !contains(witnesses, text) ? text : void 0); - } - } - catch (e_318_1) { e_318 = { error: e_318_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_318) throw e_318.error; } - } - return witnesses; - } - function eachTypeContainedIn(source, types) { - return source.flags & 1048576 /* Union */ ? !forEach(source.types, function (t) { return !contains(types, t); }) : contains(types, source); - } - function isTypeSubsetOf(source, target) { - return !!(source === target || source.flags & 131072 /* Never */ || target.flags & 1048576 /* Union */ && isTypeSubsetOfUnion(source, target)); - } - function isTypeSubsetOfUnion(source, target) { - var e_319, _t; - if (source.flags & 1048576 /* Union */) { - try { - for (var _u = __values(source.types), _v = _u.next(); !_v.done; _v = _u.next()) { - var t = _v.value; - if (!containsType(target.types, t)) { - return false; - } - } - } - catch (e_319_1) { e_319 = { error: e_319_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_319) throw e_319.error; } - } - return true; - } - if (source.flags & 1056 /* EnumLike */ && getBaseTypeOfEnumLikeType(source) === target) { - return true; - } - return containsType(target.types, source); - } - function forEachType(type, f) { - return type.flags & 1048576 /* Union */ ? forEach(type.types, f) : f(type); - } - function someType(type, f) { - return type.flags & 1048576 /* Union */ ? some(type.types, f) : f(type); - } - function everyType(type, f) { - return type.flags & 1048576 /* Union */ ? every(type.types, f) : f(type); - } - function everyContainedType(type, f) { - return type.flags & 3145728 /* UnionOrIntersection */ ? every(type.types, f) : f(type); - } - function filterType(type, f) { - if (type.flags & 1048576 /* Union */) { - var types = type.types; - var filtered = filter(types, f); - if (filtered === types) { - return type; - } - var origin_4 = type.origin; - var newOrigin = void 0; - if (origin_4 && origin_4.flags & 1048576 /* Union */) { - var originTypes = origin_4.types; - var originFiltered = filter(originTypes, function (t) { return !!(t.flags & 1048576 /* Union */) || f(t); }); - if (originTypes.length - originFiltered.length === types.length - filtered.length) { - if (originFiltered.length === 1) { - return originFiltered[0]; - } - newOrigin = createOriginUnionOrIntersectionType(1048576 /* Union */, originFiltered); - } - } - return getUnionTypeFromSortedList(filtered, type.objectFlags & (32768 /* PrimitiveUnion */ | 16777216 /* ContainsIntersections */), - /*aliasSymbol*/ - void 0, - /*aliasTypeArguments*/ - void 0, newOrigin); - } - return type.flags & 131072 /* Never */ || f(type) ? type : neverType; - } - function removeType(type, targetType) { - return filterType(type, function (t) { return t !== targetType; }); - } - function countTypes(type) { - return type.flags & 1048576 /* Union */ ? type.types.length : 1; - } - function mapType(type, mapper, noReductions) { - var e_320, _t; - if (type.flags & 131072 /* Never */) { - return type; - } - if (!(type.flags & 1048576 /* Union */)) { - return mapper(type); - } - var origin = type.origin; - var types = origin && origin.flags & 1048576 /* Union */ ? origin.types : type.types; - var mappedTypes; - var changed = false; - try { - for (var types_15 = __values(types), types_15_1 = types_15.next(); !types_15_1.done; types_15_1 = types_15.next()) { - var t = types_15_1.value; - var mapped = t.flags & 1048576 /* Union */ ? mapType(t, mapper, noReductions) : mapper(t); - changed || (changed = t !== mapped); - if (mapped) { - if (!mappedTypes) { - mappedTypes = [mapped]; - } - else { - mappedTypes.push(mapped); - } - } - } - } - catch (e_320_1) { e_320 = { error: e_320_1 }; } - finally { - try { - if (types_15_1 && !types_15_1.done && (_t = types_15.return)) _t.call(types_15); - } - finally { if (e_320) throw e_320.error; } - } - return changed ? mappedTypes && getUnionType(mappedTypes, noReductions ? 0 /* None */ : 1 /* Literal */) : type; - } - function mapTypeWithAlias(type, mapper, aliasSymbol, aliasTypeArguments) { - return type.flags & 1048576 /* Union */ && aliasSymbol ? getUnionType(map(type.types, mapper), 1 /* Literal */, aliasSymbol, aliasTypeArguments) : mapType(type, mapper); - } - function extractTypesOfKind(type, kind) { - return filterType(type, function (t) { return (t.flags & kind) !== 0; }); - } - function replacePrimitivesWithLiterals(typeWithPrimitives, typeWithLiterals) { - if (maybeTypeOfKind(typeWithPrimitives, 4 /* String */ | 134217728 /* TemplateLiteral */ | 8 /* Number */ | 64 /* BigInt */) && maybeTypeOfKind(typeWithLiterals, 128 /* StringLiteral */ | 134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */ | 256 /* NumberLiteral */ | 2048 /* BigIntLiteral */)) { - return mapType(typeWithPrimitives, function (t) { return t.flags & 4 /* String */ ? extractTypesOfKind(typeWithLiterals, 4 /* String */ | 128 /* StringLiteral */ | 134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */) : isPatternLiteralType(t) && !maybeTypeOfKind(typeWithLiterals, 4 /* String */ | 134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */) ? extractTypesOfKind(typeWithLiterals, 128 /* StringLiteral */) : t.flags & 8 /* Number */ ? extractTypesOfKind(typeWithLiterals, 8 /* Number */ | 256 /* NumberLiteral */) : t.flags & 64 /* BigInt */ ? extractTypesOfKind(typeWithLiterals, 64 /* BigInt */ | 2048 /* BigIntLiteral */) : t; }); - } - return typeWithPrimitives; - } - function isIncomplete(flowType) { - return flowType.flags === 0; - } - function getTypeFromFlowType(flowType) { - return flowType.flags === 0 ? flowType.type : flowType; - } - function createFlowType(type, incomplete) { - return incomplete ? { flags: 0, type: type.flags & 131072 /* Never */ ? silentNeverType : type } : type; - } - function createEvolvingArrayType(elementType) { - var result = createObjectType(256 /* EvolvingArray */); - result.elementType = elementType; - return result; - } - function getEvolvingArrayType(elementType) { - return evolvingArrayTypes[elementType.id] || (evolvingArrayTypes[elementType.id] = createEvolvingArrayType(elementType)); - } - function addEvolvingArrayElementType(evolvingArrayType, node) { - var elementType = getRegularTypeOfObjectLiteral(getBaseTypeOfLiteralType(getContextFreeTypeOfExpression(node))); - return isTypeSubsetOf(elementType, evolvingArrayType.elementType) ? evolvingArrayType : getEvolvingArrayType(getUnionType([evolvingArrayType.elementType, elementType])); - } - function createFinalArrayType(elementType) { - return elementType.flags & 131072 /* Never */ ? autoArrayType : createArrayType(elementType.flags & 1048576 /* Union */ ? getUnionType(elementType.types, 2 /* Subtype */) : elementType); - } - function getFinalArrayType(evolvingArrayType) { - return evolvingArrayType.finalArrayType || (evolvingArrayType.finalArrayType = createFinalArrayType(evolvingArrayType.elementType)); - } - function finalizeEvolvingArrayType(type) { - return getObjectFlags(type) & 256 /* EvolvingArray */ ? getFinalArrayType(type) : type; - } - function getElementTypeOfEvolvingArrayType(type) { - return getObjectFlags(type) & 256 /* EvolvingArray */ ? type.elementType : neverType; - } - function isEvolvingArrayTypeList(types) { - var e_321, _t; - var hasEvolvingArrayType = false; - try { - for (var types_16 = __values(types), types_16_1 = types_16.next(); !types_16_1.done; types_16_1 = types_16.next()) { - var t = types_16_1.value; - if (!(t.flags & 131072 /* Never */)) { - if (!(getObjectFlags(t) & 256 /* EvolvingArray */)) { - return false; - } - hasEvolvingArrayType = true; - } - } - } - catch (e_321_1) { e_321 = { error: e_321_1 }; } - finally { - try { - if (types_16_1 && !types_16_1.done && (_t = types_16.return)) _t.call(types_16); - } - finally { if (e_321) throw e_321.error; } - } - return hasEvolvingArrayType; - } - function isEvolvingArrayOperationTarget(node) { - var root = getReferenceRoot(node); - var parent2 = root.parent; - var isLengthPushOrUnshift = isPropertyAccessExpression(parent2) && (parent2.name.escapedText === "length" || parent2.parent.kind === 213 /* CallExpression */ && isIdentifier(parent2.name) && isPushOrUnshiftIdentifier(parent2.name)); - var isElementAssignment = parent2.kind === 212 /* ElementAccessExpression */ && parent2.expression === root && parent2.parent.kind === 226 /* BinaryExpression */ && parent2.parent.operatorToken.kind === 64 /* EqualsToken */ && parent2.parent.left === parent2 && !isAssignmentTarget(parent2.parent) && isTypeAssignableToKind(getTypeOfExpression(parent2.argumentExpression), 296 /* NumberLike */); - return isLengthPushOrUnshift || isElementAssignment; - } - function isDeclarationWithExplicitTypeAnnotation(node) { - return (isVariableDeclaration(node) || isPropertyDeclaration(node) || isPropertySignature(node) || isParameter(node)) && !!(getEffectiveTypeAnnotationNode(node) || isInJSFile(node) && hasInitializer(node) && node.initializer && isFunctionExpressionOrArrowFunction(node.initializer) && getEffectiveReturnTypeNode(node.initializer)); - } - function getExplicitTypeOfSymbol(symbol, diagnostic) { - symbol = resolveSymbol(symbol); - if (symbol.flags & (16 /* Function */ | 8192 /* Method */ | 32 /* Class */ | 512 /* ValueModule */)) { - return getTypeOfSymbol(symbol); - } - if (symbol.flags & (3 /* Variable */ | 4 /* Property */)) { - if (getCheckFlags(symbol) & 262144 /* Mapped */) { - var origin_5 = symbol.links.syntheticOrigin; - if (origin_5 && getExplicitTypeOfSymbol(origin_5)) { - return getTypeOfSymbol(symbol); - } - } - var declaration = symbol.valueDeclaration; - if (declaration) { - if (isDeclarationWithExplicitTypeAnnotation(declaration)) { - return getTypeOfSymbol(symbol); - } - if (isVariableDeclaration(declaration) && declaration.parent.parent.kind === 250 /* ForOfStatement */) { - var statement = declaration.parent.parent; - var expressionType = getTypeOfDottedName(statement.expression, - /*diagnostic*/ - void 0); - if (expressionType) { - var use = statement.awaitModifier ? 15 /* ForAwaitOf */ : 13 /* ForOf */; - return checkIteratedTypeOrElementType(use, expressionType, undefinedType, - /*errorNode*/ - void 0); - } - } - if (diagnostic) { - addRelatedInfo(diagnostic, createDiagnosticForNode(declaration, Diagnostics._0_needs_an_explicit_type_annotation, symbolToString(symbol))); - } - } - } - } - function getTypeOfDottedName(node, diagnostic) { - if (!(node.flags & 67108864 /* InWithStatement */)) { - switch (node.kind) { - case 80 /* Identifier */: - var symbol = getExportSymbolOfValueSymbolIfExported(getResolvedSymbol(node)); - return getExplicitTypeOfSymbol(symbol, diagnostic); - case 110 /* ThisKeyword */: - return getExplicitThisType(node); - case 108 /* SuperKeyword */: - return checkSuperExpression(node); - case 211 /* PropertyAccessExpression */: { - var type = getTypeOfDottedName(node.expression, diagnostic); - if (type) { - var name_44 = node.name; - var prop = void 0; - if (isPrivateIdentifier(name_44)) { - if (!type.symbol) { - return void 0; - } - prop = getPropertyOfType(type, getSymbolNameForPrivateIdentifier(type.symbol, name_44.escapedText)); - } - else { - prop = getPropertyOfType(type, name_44.escapedText); - } - return prop && getExplicitTypeOfSymbol(prop, diagnostic); - } - return void 0; - } - case 217 /* ParenthesizedExpression */: - return getTypeOfDottedName(node.expression, diagnostic); - } - } - } - function getEffectsSignature(node) { - var links = getNodeLinks(node); - var signature = links.effectsSignature; - if (signature === void 0) { - var funcType = void 0; - if (node.parent.kind === 244 /* ExpressionStatement */) { - funcType = getTypeOfDottedName(node.expression, - /*diagnostic*/ - void 0); - } - else if (node.expression.kind !== 108 /* SuperKeyword */) { - if (isOptionalChain(node)) { - funcType = checkNonNullType(getOptionalExpressionType(checkExpression(node.expression), node.expression), node.expression); - } - else { - funcType = checkNonNullExpression(node.expression); - } - } - var signatures = getSignaturesOfType(funcType && getApparentType(funcType) || unknownType, 0 /* Call */); - var candidate = signatures.length === 1 && !signatures[0].typeParameters ? signatures[0] : some(signatures, hasTypePredicateOrNeverReturnType) ? getResolvedSignature(node) : void 0; - signature = links.effectsSignature = candidate && hasTypePredicateOrNeverReturnType(candidate) ? candidate : unknownSignature; - } - return signature === unknownSignature ? void 0 : signature; - } - function hasTypePredicateOrNeverReturnType(signature) { - return !!(getTypePredicateOfSignature(signature) || signature.declaration && (getReturnTypeFromAnnotation(signature.declaration) || unknownType).flags & 131072 /* Never */); - } - function getTypePredicateArgument(predicate, callExpression) { - if (predicate.kind === 1 /* Identifier */ || predicate.kind === 3 /* AssertsIdentifier */) { - return callExpression.arguments[predicate.parameterIndex]; - } - var invokedExpression = skipParentheses(callExpression.expression); - return isAccessExpression(invokedExpression) ? skipParentheses(invokedExpression.expression) : void 0; - } - function reportFlowControlError(node) { - var block = findAncestor(node, isFunctionOrModuleBlock); - var sourceFile = getSourceFileOfNode(node); - var span = getSpanOfTokenAtPosition(sourceFile, block.statements.pos); - diagnostics.add(createFileDiagnostic(sourceFile, span.start, span.length, Diagnostics.The_containing_function_or_module_body_is_too_large_for_control_flow_analysis)); - } - function isReachableFlowNode(flow) { - var result = isReachableFlowNodeWorker(flow, - /*noCacheCheck*/ - false); - lastFlowNode = flow; - lastFlowNodeReachable = result; - return result; - } - function isFalseExpression(expr) { - var node = skipParentheses(expr, - /*excludeJSDocTypeAssertions*/ - true); - return node.kind === 97 /* FalseKeyword */ || node.kind === 226 /* BinaryExpression */ && (node.operatorToken.kind === 56 /* AmpersandAmpersandToken */ && (isFalseExpression(node.left) || isFalseExpression(node.right)) || node.operatorToken.kind === 57 /* BarBarToken */ && isFalseExpression(node.left) && isFalseExpression(node.right)); - } - function isReachableFlowNodeWorker(flow, noCacheCheck) { - while (true) { - if (flow === lastFlowNode) { - return lastFlowNodeReachable; - } - var flags = flow.flags; - if (flags & 4096 /* Shared */) { - if (!noCacheCheck) { - var id = getFlowNodeId(flow); - var reachable = flowNodeReachable[id]; - return reachable !== void 0 ? reachable : flowNodeReachable[id] = isReachableFlowNodeWorker(flow, - /*noCacheCheck*/ - true); - } - noCacheCheck = false; - } - if (flags & (16 /* Assignment */ | 96 /* Condition */ | 256 /* ArrayMutation */)) { - flow = flow.antecedent; - } - else if (flags & 512 /* Call */) { - var signature = getEffectsSignature(flow.node); - if (signature) { - var predicate = getTypePredicateOfSignature(signature); - if (predicate && predicate.kind === 3 /* AssertsIdentifier */ && !predicate.type) { - var predicateArgument = flow.node.arguments[predicate.parameterIndex]; - if (predicateArgument && isFalseExpression(predicateArgument)) { - return false; - } - } - if (getReturnTypeOfSignature(signature).flags & 131072 /* Never */) { - return false; - } - } - flow = flow.antecedent; - } - else if (flags & 4 /* BranchLabel */) { - return some(flow.antecedents, function (f) { return isReachableFlowNodeWorker(f, - /*noCacheCheck*/ - false); }); - } - else if (flags & 8 /* LoopLabel */) { - var antecedents = flow.antecedents; - if (antecedents === void 0 || antecedents.length === 0) { - return false; - } - flow = antecedents[0]; - } - else if (flags & 128 /* SwitchClause */) { - if (flow.clauseStart === flow.clauseEnd && isExhaustiveSwitchStatement(flow.switchStatement)) { - return false; - } - flow = flow.antecedent; - } - else if (flags & 1024 /* ReduceLabel */) { - lastFlowNode = void 0; - var target = flow.target; - var saveAntecedents = target.antecedents; - target.antecedents = flow.antecedents; - var result = isReachableFlowNodeWorker(flow.antecedent, - /*noCacheCheck*/ - false); - target.antecedents = saveAntecedents; - return result; - } - else { - return !(flags & 1 /* Unreachable */); - } - } - } - function isPostSuperFlowNode(flow, noCacheCheck) { - while (true) { - var flags = flow.flags; - if (flags & 4096 /* Shared */) { - if (!noCacheCheck) { - var id = getFlowNodeId(flow); - var postSuper = flowNodePostSuper[id]; - return postSuper !== void 0 ? postSuper : flowNodePostSuper[id] = isPostSuperFlowNode(flow, - /*noCacheCheck*/ - true); - } - noCacheCheck = false; - } - if (flags & (16 /* Assignment */ | 96 /* Condition */ | 256 /* ArrayMutation */ | 128 /* SwitchClause */)) { - flow = flow.antecedent; - } - else if (flags & 512 /* Call */) { - if (flow.node.expression.kind === 108 /* SuperKeyword */) { - return true; - } - flow = flow.antecedent; - } - else if (flags & 4 /* BranchLabel */) { - return every(flow.antecedents, function (f) { return isPostSuperFlowNode(f, - /*noCacheCheck*/ - false); }); - } - else if (flags & 8 /* LoopLabel */) { - flow = flow.antecedents[0]; - } - else if (flags & 1024 /* ReduceLabel */) { - var target = flow.target; - var saveAntecedents = target.antecedents; - target.antecedents = flow.antecedents; - var result = isPostSuperFlowNode(flow.antecedent, - /*noCacheCheck*/ - false); - target.antecedents = saveAntecedents; - return result; - } - else { - return !!(flags & 1 /* Unreachable */); - } - } - } - function isConstantReference(node) { - switch (node.kind) { - case 110 /* ThisKeyword */: - return true; - case 80 /* Identifier */: - if (!isThisInTypeQuery(node)) { - var symbol = getResolvedSymbol(node); - return isConstantVariable(symbol) || isParameterOrCatchClauseVariable(symbol) && !isSymbolAssigned(symbol); - } - break; - case 211 /* PropertyAccessExpression */: - case 212 /* ElementAccessExpression */: - return isConstantReference(node.expression) && isReadonlySymbol(getNodeLinks(node).resolvedSymbol || unknownSymbol); - } - return false; - } - function getFlowTypeOfReference(reference, declaredType, initialType, flowContainer, flowNode) { - if (initialType === void 0) { initialType = declaredType; } - if (flowNode === void 0) { flowNode = (function (_a) { return (_a = tryCast(reference, canHaveFlowNode)) == null ? void 0 : _a.flowNode; })(); } - var key; - var isKeySet = false; - var flowDepth = 0; - if (flowAnalysisDisabled) { - return errorType; - } - if (!flowNode) { - return declaredType; - } - flowInvocationCount++; - var sharedFlowStart = sharedFlowCount; - var evolvedType = getTypeFromFlowType(getTypeAtFlowNode(flowNode)); - sharedFlowCount = sharedFlowStart; - var resultType = getObjectFlags(evolvedType) & 256 /* EvolvingArray */ && isEvolvingArrayOperationTarget(reference) ? autoArrayType : finalizeEvolvingArrayType(evolvedType); - if (resultType === unreachableNeverType || reference.parent && reference.parent.kind === 235 /* NonNullExpression */ && !(resultType.flags & 131072 /* Never */) && getTypeWithFacts(resultType, 2097152 /* NEUndefinedOrNull */).flags & 131072 /* Never */) { - return declaredType; - } - return resultType === nonNullUnknownType ? unknownType : resultType; - function getOrSetCacheKey() { - if (isKeySet) { - return key; - } - isKeySet = true; - return key = getFlowCacheKey(reference, declaredType, initialType, flowContainer); - } - function getTypeAtFlowNode(flow) { - var _a2; - if (flowDepth === 2e3) { - (_a2 = tracing) == null ? void 0 : _a2.instant(tracing.Phase.CheckTypes, "getTypeAtFlowNode_DepthLimit", { flowId: flow.id }); - flowAnalysisDisabled = true; - reportFlowControlError(reference); - return errorType; - } - flowDepth++; - var sharedFlow; - while (true) { - var flags = flow.flags; - if (flags & 4096 /* Shared */) { - for (var i = sharedFlowStart; i < sharedFlowCount; i++) { - if (sharedFlowNodes[i] === flow) { - flowDepth--; - return sharedFlowTypes[i]; - } - } - sharedFlow = flow; - } - var type = void 0; - if (flags & 16 /* Assignment */) { - type = getTypeAtFlowAssignment(flow); - if (!type) { - flow = flow.antecedent; - continue; - } - } - else if (flags & 512 /* Call */) { - type = getTypeAtFlowCall(flow); - if (!type) { - flow = flow.antecedent; - continue; - } - } - else if (flags & 96 /* Condition */) { - type = getTypeAtFlowCondition(flow); - } - else if (flags & 128 /* SwitchClause */) { - type = getTypeAtSwitchClause(flow); - } - else if (flags & 12 /* Label */) { - if (flow.antecedents.length === 1) { - flow = flow.antecedents[0]; - continue; - } - type = flags & 4 /* BranchLabel */ ? getTypeAtFlowBranchLabel(flow) : getTypeAtFlowLoopLabel(flow); - } - else if (flags & 256 /* ArrayMutation */) { - type = getTypeAtFlowArrayMutation(flow); - if (!type) { - flow = flow.antecedent; - continue; - } - } - else if (flags & 1024 /* ReduceLabel */) { - var target = flow.target; - var saveAntecedents = target.antecedents; - target.antecedents = flow.antecedents; - type = getTypeAtFlowNode(flow.antecedent); - target.antecedents = saveAntecedents; - } - else if (flags & 2 /* Start */) { - var container = flow.node; - if (container && container !== flowContainer && reference.kind !== 211 /* PropertyAccessExpression */ && reference.kind !== 212 /* ElementAccessExpression */ && !(reference.kind === 110 /* ThisKeyword */ && container.kind !== 219 /* ArrowFunction */)) { - flow = container.flowNode; - continue; - } - type = initialType; - } - else { - type = convertAutoToAny(declaredType); - } - if (sharedFlow) { - sharedFlowNodes[sharedFlowCount] = sharedFlow; - sharedFlowTypes[sharedFlowCount] = type; - sharedFlowCount++; - } - flowDepth--; - return type; - } - } - function getInitialOrAssignedType(flow) { - var node = flow.node; - return getNarrowableTypeForReference(node.kind === 260 /* VariableDeclaration */ || node.kind === 208 /* BindingElement */ ? getInitialType(node) : getAssignedType(node), reference); - } - function getTypeAtFlowAssignment(flow) { - var node = flow.node; - if (isMatchingReference(reference, node)) { - if (!isReachableFlowNode(flow)) { - return unreachableNeverType; - } - if (getAssignmentTargetKind(node) === 2 /* Compound */) { - var flowType = getTypeAtFlowNode(flow.antecedent); - return createFlowType(getBaseTypeOfLiteralType(getTypeFromFlowType(flowType)), isIncomplete(flowType)); - } - if (declaredType === autoType || declaredType === autoArrayType) { - if (isEmptyArrayAssignment(node)) { - return getEvolvingArrayType(neverType); - } - var assignedType = getWidenedLiteralType(getInitialOrAssignedType(flow)); - return isTypeAssignableTo(assignedType, declaredType) ? assignedType : anyArrayType; - } - if (declaredType.flags & 1048576 /* Union */) { - return getAssignmentReducedType(declaredType, getInitialOrAssignedType(flow)); - } - return declaredType; - } - if (containsMatchingReference(reference, node)) { - if (!isReachableFlowNode(flow)) { - return unreachableNeverType; - } - if (isVariableDeclaration(node) && (isInJSFile(node) || isVarConstLike(node))) { - var init = getDeclaredExpandoInitializer(node); - if (init && (init.kind === 218 /* FunctionExpression */ || init.kind === 219 /* ArrowFunction */)) { - return getTypeAtFlowNode(flow.antecedent); - } - } - return declaredType; - } - if (isVariableDeclaration(node) && node.parent.parent.kind === 249 /* ForInStatement */ && (isMatchingReference(reference, node.parent.parent.expression) || optionalChainContainsReference(node.parent.parent.expression, reference))) { - return getNonNullableTypeIfNeeded(finalizeEvolvingArrayType(getTypeFromFlowType(getTypeAtFlowNode(flow.antecedent)))); - } - return void 0; - } - function narrowTypeByAssertion(type, expr) { - var node = skipParentheses(expr, - /*excludeJSDocTypeAssertions*/ - true); - if (node.kind === 97 /* FalseKeyword */) { - return unreachableNeverType; - } - if (node.kind === 226 /* BinaryExpression */) { - if (node.operatorToken.kind === 56 /* AmpersandAmpersandToken */) { - return narrowTypeByAssertion(narrowTypeByAssertion(type, node.left), node.right); - } - if (node.operatorToken.kind === 57 /* BarBarToken */) { - return getUnionType([narrowTypeByAssertion(type, node.left), narrowTypeByAssertion(type, node.right)]); - } - } - return narrowType(type, node, - /*assumeTrue*/ - true); - } - function getTypeAtFlowCall(flow) { - var signature = getEffectsSignature(flow.node); - if (signature) { - var predicate = getTypePredicateOfSignature(signature); - if (predicate && (predicate.kind === 2 /* AssertsThis */ || predicate.kind === 3 /* AssertsIdentifier */)) { - var flowType = getTypeAtFlowNode(flow.antecedent); - var type = finalizeEvolvingArrayType(getTypeFromFlowType(flowType)); - var narrowedType = predicate.type ? narrowTypeByTypePredicate(type, predicate, flow.node, - /*assumeTrue*/ - true) : predicate.kind === 3 /* AssertsIdentifier */ && predicate.parameterIndex >= 0 && predicate.parameterIndex < flow.node.arguments.length ? narrowTypeByAssertion(type, flow.node.arguments[predicate.parameterIndex]) : type; - return narrowedType === type ? flowType : createFlowType(narrowedType, isIncomplete(flowType)); - } - if (getReturnTypeOfSignature(signature).flags & 131072 /* Never */) { - return unreachableNeverType; - } - } - return void 0; - } - function getTypeAtFlowArrayMutation(flow) { - var e_322, _t; - if (declaredType === autoType || declaredType === autoArrayType) { - var node = flow.node; - var expr = node.kind === 213 /* CallExpression */ ? node.expression.expression : node.left.expression; - if (isMatchingReference(reference, getReferenceCandidate(expr))) { - var flowType = getTypeAtFlowNode(flow.antecedent); - var type = getTypeFromFlowType(flowType); - if (getObjectFlags(type) & 256 /* EvolvingArray */) { - var evolvedType2 = type; - if (node.kind === 213 /* CallExpression */) { - try { - for (var _u = __values(node.arguments), _v = _u.next(); !_v.done; _v = _u.next()) { - var arg = _v.value; - evolvedType2 = addEvolvingArrayElementType(evolvedType2, arg); - } - } - catch (e_322_1) { e_322 = { error: e_322_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_322) throw e_322.error; } - } - } - else { - var indexType = getContextFreeTypeOfExpression(node.left.argumentExpression); - if (isTypeAssignableToKind(indexType, 296 /* NumberLike */)) { - evolvedType2 = addEvolvingArrayElementType(evolvedType2, node.right); - } - } - return evolvedType2 === type ? flowType : createFlowType(evolvedType2, isIncomplete(flowType)); - } - return flowType; - } - } - return void 0; - } - function getTypeAtFlowCondition(flow) { - var flowType = getTypeAtFlowNode(flow.antecedent); - var type = getTypeFromFlowType(flowType); - if (type.flags & 131072 /* Never */) { - return flowType; - } - var assumeTrue = (flow.flags & 32 /* TrueCondition */) !== 0; - var nonEvolvingType = finalizeEvolvingArrayType(type); - var narrowedType = narrowType(nonEvolvingType, flow.node, assumeTrue); - if (narrowedType === nonEvolvingType) { - return flowType; - } - return createFlowType(narrowedType, isIncomplete(flowType)); - } - function getTypeAtSwitchClause(flow) { - var expr = flow.switchStatement.expression; - var flowType = getTypeAtFlowNode(flow.antecedent); - var type = getTypeFromFlowType(flowType); - if (isMatchingReference(reference, expr)) { - type = narrowTypeBySwitchOnDiscriminant(type, flow.switchStatement, flow.clauseStart, flow.clauseEnd); - } - else if (expr.kind === 221 /* TypeOfExpression */ && isMatchingReference(reference, expr.expression)) { - type = narrowTypeBySwitchOnTypeOf(type, flow.switchStatement, flow.clauseStart, flow.clauseEnd); - } - else { - if (strictNullChecks) { - if (optionalChainContainsReference(expr, reference)) { - type = narrowTypeBySwitchOptionalChainContainment(type, flow.switchStatement, flow.clauseStart, flow.clauseEnd, function (t) { return !(t.flags & (32768 /* Undefined */ | 131072 /* Never */)); }); - } - else if (expr.kind === 221 /* TypeOfExpression */ && optionalChainContainsReference(expr.expression, reference)) { - type = narrowTypeBySwitchOptionalChainContainment(type, flow.switchStatement, flow.clauseStart, flow.clauseEnd, function (t) { return !(t.flags & 131072 /* Never */ || t.flags & 128 /* StringLiteral */ && t.value === "undefined"); }); - } - } - var access = getDiscriminantPropertyAccess(expr, type); - if (access) { - type = narrowTypeBySwitchOnDiscriminantProperty(type, access, flow.switchStatement, flow.clauseStart, flow.clauseEnd); - } - } - return createFlowType(type, isIncomplete(flowType)); - } - function getTypeAtFlowBranchLabel(flow) { - var e_323, _t; - var antecedentTypes = []; - var subtypeReduction = false; - var seenIncomplete = false; - var bypassFlow; - try { - for (var _u = __values(flow.antecedents), _v = _u.next(); !_v.done; _v = _u.next()) { - var antecedent = _v.value; - if (!bypassFlow && antecedent.flags & 128 /* SwitchClause */ && antecedent.clauseStart === antecedent.clauseEnd) { - bypassFlow = antecedent; - continue; - } - var flowType = getTypeAtFlowNode(antecedent); - var type = getTypeFromFlowType(flowType); - if (type === declaredType && declaredType === initialType) { - return type; - } - pushIfUnique(antecedentTypes, type); - if (!isTypeSubsetOf(type, initialType)) { - subtypeReduction = true; - } - if (isIncomplete(flowType)) { - seenIncomplete = true; - } - } - } - catch (e_323_1) { e_323 = { error: e_323_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_323) throw e_323.error; } - } - if (bypassFlow) { - var flowType = getTypeAtFlowNode(bypassFlow); - var type = getTypeFromFlowType(flowType); - if (!(type.flags & 131072 /* Never */) && !contains(antecedentTypes, type) && !isExhaustiveSwitchStatement(bypassFlow.switchStatement)) { - if (type === declaredType && declaredType === initialType) { - return type; - } - antecedentTypes.push(type); - if (!isTypeSubsetOf(type, initialType)) { - subtypeReduction = true; - } - if (isIncomplete(flowType)) { - seenIncomplete = true; - } - } - } - return createFlowType(getUnionOrEvolvingArrayType(antecedentTypes, subtypeReduction ? 2 /* Subtype */ : 1 /* Literal */), seenIncomplete); - } - function getTypeAtFlowLoopLabel(flow) { - var e_324, _t; - var id = getFlowNodeId(flow); - var cache = flowLoopCaches[id] || (flowLoopCaches[id] = /* @__PURE__ */ new Map()); - var key2 = getOrSetCacheKey(); - if (!key2) { - return declaredType; - } - var cached = cache.get(key2); - if (cached) { - return cached; - } - for (var i = flowLoopStart; i < flowLoopCount; i++) { - if (flowLoopNodes[i] === flow && flowLoopKeys[i] === key2 && flowLoopTypes[i].length) { - return createFlowType(getUnionOrEvolvingArrayType(flowLoopTypes[i], 1 /* Literal */), - /*incomplete*/ - true); - } - } - var antecedentTypes = []; - var subtypeReduction = false; - var firstAntecedentType; - try { - for (var _u = __values(flow.antecedents), _v = _u.next(); !_v.done; _v = _u.next()) { - var antecedent = _v.value; - var flowType = void 0; - if (!firstAntecedentType) { - flowType = firstAntecedentType = getTypeAtFlowNode(antecedent); - } - else { - flowLoopNodes[flowLoopCount] = flow; - flowLoopKeys[flowLoopCount] = key2; - flowLoopTypes[flowLoopCount] = antecedentTypes; - flowLoopCount++; - var saveFlowTypeCache = flowTypeCache; - flowTypeCache = void 0; - flowType = getTypeAtFlowNode(antecedent); - flowTypeCache = saveFlowTypeCache; - flowLoopCount--; - var cached2 = cache.get(key2); - if (cached2) { - return cached2; - } - } - var type = getTypeFromFlowType(flowType); - pushIfUnique(antecedentTypes, type); - if (!isTypeSubsetOf(type, initialType)) { - subtypeReduction = true; - } - if (type === declaredType) { - break; - } - } - } - catch (e_324_1) { e_324 = { error: e_324_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_324) throw e_324.error; } - } - var result = getUnionOrEvolvingArrayType(antecedentTypes, subtypeReduction ? 2 /* Subtype */ : 1 /* Literal */); - if (isIncomplete(firstAntecedentType)) { - return createFlowType(result, - /*incomplete*/ - true); - } - cache.set(key2, result); - return result; - } - function getUnionOrEvolvingArrayType(types, subtypeReduction) { - if (isEvolvingArrayTypeList(types)) { - return getEvolvingArrayType(getUnionType(map(types, getElementTypeOfEvolvingArrayType))); - } - var result = recombineUnknownType(getUnionType(sameMap(types, finalizeEvolvingArrayType), subtypeReduction)); - if (result !== declaredType && result.flags & declaredType.flags & 1048576 /* Union */ && arraysEqual(result.types, declaredType.types)) { - return declaredType; - } - return result; - } - function getCandidateDiscriminantPropertyAccess(expr) { - if (isBindingPattern(reference) || isFunctionExpressionOrArrowFunction(reference) || isObjectLiteralMethod(reference)) { - if (isIdentifier(expr)) { - var symbol = getResolvedSymbol(expr); - var declaration = symbol.valueDeclaration; - if (declaration && (isBindingElement(declaration) || isParameter(declaration)) && reference === declaration.parent && !declaration.initializer && !declaration.dotDotDotToken) { - return declaration; - } - } - } - else if (isAccessExpression(expr)) { - if (isMatchingReference(reference, expr.expression)) { - return expr; - } - } - else if (isIdentifier(expr)) { - var symbol = getResolvedSymbol(expr); - if (isConstantVariable(symbol)) { - var declaration = symbol.valueDeclaration; - if (isVariableDeclaration(declaration) && !declaration.type && declaration.initializer && isAccessExpression(declaration.initializer) && isMatchingReference(reference, declaration.initializer.expression)) { - return declaration.initializer; - } - if (isBindingElement(declaration) && !declaration.initializer) { - var parent2 = declaration.parent.parent; - if (isVariableDeclaration(parent2) && !parent2.type && parent2.initializer && (isIdentifier(parent2.initializer) || isAccessExpression(parent2.initializer)) && isMatchingReference(reference, parent2.initializer)) { - return declaration; - } - } - } - } - return void 0; - } - function getDiscriminantPropertyAccess(expr, computedType) { - var type = declaredType.flags & 1048576 /* Union */ ? declaredType : computedType; - if (type.flags & 1048576 /* Union */) { - var access = getCandidateDiscriminantPropertyAccess(expr); - if (access) { - var name_45 = getAccessedPropertyName(access); - if (name_45 && isDiscriminantProperty(type, name_45)) { - return access; - } - } - } - return void 0; - } - function narrowTypeByDiscriminant(type, access, narrowType2) { - var propName = getAccessedPropertyName(access); - if (propName === void 0) { - return type; - } - var optionalChain = isOptionalChain(access); - var removeNullable = strictNullChecks && (optionalChain || isNonNullAccess(access)) && maybeTypeOfKind(type, 98304 /* Nullable */); - var propType = getTypeOfPropertyOfType(removeNullable ? getTypeWithFacts(type, 2097152 /* NEUndefinedOrNull */) : type, propName); - if (!propType) { - return type; - } - propType = removeNullable && optionalChain ? getOptionalType(propType) : propType; - var narrowedPropType = narrowType2(propType); - return filterType(type, function (t) { - var discriminantType = getTypeOfPropertyOrIndexSignature(t, propName); - return !(discriminantType.flags & 131072 /* Never */) && !(narrowedPropType.flags & 131072 /* Never */) && areTypesComparable(narrowedPropType, discriminantType); - }); - } - function narrowTypeByDiscriminantProperty(type, access, operator, value, assumeTrue) { - if ((operator === 37 /* EqualsEqualsEqualsToken */ || operator === 38 /* ExclamationEqualsEqualsToken */) && type.flags & 1048576 /* Union */) { - var keyPropertyName = getKeyPropertyName(type); - if (keyPropertyName && keyPropertyName === getAccessedPropertyName(access)) { - var candidate = getConstituentTypeForKeyType(type, getTypeOfExpression(value)); - if (candidate) { - return operator === (assumeTrue ? 37 /* EqualsEqualsEqualsToken */ : 38 /* ExclamationEqualsEqualsToken */) ? candidate : isUnitType(getTypeOfPropertyOfType(candidate, keyPropertyName) || unknownType) ? removeType(type, candidate) : type; - } - } - } - return narrowTypeByDiscriminant(type, access, function (t) { return narrowTypeByEquality(t, operator, value, assumeTrue); }); - } - function narrowTypeBySwitchOnDiscriminantProperty(type, access, switchStatement, clauseStart, clauseEnd) { - if (clauseStart < clauseEnd && type.flags & 1048576 /* Union */ && getKeyPropertyName(type) === getAccessedPropertyName(access)) { - var clauseTypes = getSwitchClauseTypes(switchStatement).slice(clauseStart, clauseEnd); - var candidate = getUnionType(map(clauseTypes, function (t) { return getConstituentTypeForKeyType(type, t) || unknownType; })); - if (candidate !== unknownType) { - return candidate; - } - } - return narrowTypeByDiscriminant(type, access, function (t) { return narrowTypeBySwitchOnDiscriminant(t, switchStatement, clauseStart, clauseEnd); }); - } - function narrowTypeByTruthiness(type, expr, assumeTrue) { - if (isMatchingReference(reference, expr)) { - return getAdjustedTypeWithFacts(type, assumeTrue ? 4194304 /* Truthy */ : 8388608 /* Falsy */); - } - if (strictNullChecks && assumeTrue && optionalChainContainsReference(expr, reference)) { - type = getAdjustedTypeWithFacts(type, 2097152 /* NEUndefinedOrNull */); - } - var access = getDiscriminantPropertyAccess(expr, type); - if (access) { - return narrowTypeByDiscriminant(type, access, function (t) { return getTypeWithFacts(t, assumeTrue ? 4194304 /* Truthy */ : 8388608 /* Falsy */); }); - } - return type; - } - function isTypePresencePossible(type, propName, assumeTrue) { - var prop = getPropertyOfType(type, propName); - return prop ? !!(prop.flags & 16777216 /* Optional */ || getCheckFlags(prop) & 48 /* Partial */) || assumeTrue : !!getApplicableIndexInfoForName(type, propName) || !assumeTrue; - } - function narrowTypeByInKeyword(type, nameType, assumeTrue) { - var name = getPropertyNameFromType(nameType); - var isKnownProperty2 = someType(type, function (t) { return isTypePresencePossible(t, name, - /*assumeTrue*/ - true); }); - if (isKnownProperty2) { - return filterType(type, function (t) { return isTypePresencePossible(t, name, assumeTrue); }); - } - if (assumeTrue) { - var recordSymbol = getGlobalRecordSymbol(); - if (recordSymbol) { - return getIntersectionType([type, getTypeAliasInstantiation(recordSymbol, [nameType, unknownType])]); - } - } - return type; - } - function narrowTypeByBinaryExpression(type, expr, assumeTrue) { - switch (expr.operatorToken.kind) { - case 64 /* EqualsToken */: - case 76 /* BarBarEqualsToken */: - case 77 /* AmpersandAmpersandEqualsToken */: - case 78 /* QuestionQuestionEqualsToken */: - return narrowTypeByTruthiness(narrowType(type, expr.right, assumeTrue), expr.left, assumeTrue); - case 35 /* EqualsEqualsToken */: - case 36 /* ExclamationEqualsToken */: - case 37 /* EqualsEqualsEqualsToken */: - case 38 /* ExclamationEqualsEqualsToken */: - var operator = expr.operatorToken.kind; - var left = getReferenceCandidate(expr.left); - var right = getReferenceCandidate(expr.right); - if (left.kind === 221 /* TypeOfExpression */ && isStringLiteralLike(right)) { - return narrowTypeByTypeof(type, left, operator, right, assumeTrue); - } - if (right.kind === 221 /* TypeOfExpression */ && isStringLiteralLike(left)) { - return narrowTypeByTypeof(type, right, operator, left, assumeTrue); - } - if (isMatchingReference(reference, left)) { - return narrowTypeByEquality(type, operator, right, assumeTrue); - } - if (isMatchingReference(reference, right)) { - return narrowTypeByEquality(type, operator, left, assumeTrue); - } - if (strictNullChecks) { - if (optionalChainContainsReference(left, reference)) { - type = narrowTypeByOptionalChainContainment(type, operator, right, assumeTrue); - } - else if (optionalChainContainsReference(right, reference)) { - type = narrowTypeByOptionalChainContainment(type, operator, left, assumeTrue); - } - } - var leftAccess = getDiscriminantPropertyAccess(left, type); - if (leftAccess) { - return narrowTypeByDiscriminantProperty(type, leftAccess, operator, right, assumeTrue); - } - var rightAccess = getDiscriminantPropertyAccess(right, type); - if (rightAccess) { - return narrowTypeByDiscriminantProperty(type, rightAccess, operator, left, assumeTrue); - } - if (isMatchingConstructorReference(left)) { - return narrowTypeByConstructor(type, operator, right, assumeTrue); - } - if (isMatchingConstructorReference(right)) { - return narrowTypeByConstructor(type, operator, left, assumeTrue); - } - break; - case 104 /* InstanceOfKeyword */: - return narrowTypeByInstanceof(type, expr, assumeTrue); - case 103 /* InKeyword */: - if (isPrivateIdentifier(expr.left)) { - return narrowTypeByPrivateIdentifierInInExpression(type, expr, assumeTrue); - } - var target = getReferenceCandidate(expr.right); - if (containsMissingType(type) && isAccessExpression(reference) && isMatchingReference(reference.expression, target)) { - var leftType = getTypeOfExpression(expr.left); - if (isTypeUsableAsPropertyName(leftType) && getAccessedPropertyName(reference) === getPropertyNameFromType(leftType)) { - return getTypeWithFacts(type, assumeTrue ? 524288 /* NEUndefined */ : 65536 /* EQUndefined */); - } - } - if (isMatchingReference(reference, target)) { - var leftType = getTypeOfExpression(expr.left); - if (isTypeUsableAsPropertyName(leftType)) { - return narrowTypeByInKeyword(type, leftType, assumeTrue); - } - } - break; - case 28 /* CommaToken */: - return narrowType(type, expr.right, assumeTrue); - case 56 /* AmpersandAmpersandToken */: - return assumeTrue ? narrowType(narrowType(type, expr.left, - /*assumeTrue*/ - true), expr.right, - /*assumeTrue*/ - true) : getUnionType([narrowType(type, expr.left, - /*assumeTrue*/ - false), narrowType(type, expr.right, - /*assumeTrue*/ - false)]); - case 57 /* BarBarToken */: - return assumeTrue ? getUnionType([narrowType(type, expr.left, - /*assumeTrue*/ - true), narrowType(type, expr.right, - /*assumeTrue*/ - true)]) : narrowType(narrowType(type, expr.left, - /*assumeTrue*/ - false), expr.right, - /*assumeTrue*/ - false); - } - return type; - } - function narrowTypeByPrivateIdentifierInInExpression(type, expr, assumeTrue) { - var target = getReferenceCandidate(expr.right); - if (!isMatchingReference(reference, target)) { - return type; - } - Debug.assertNode(expr.left, isPrivateIdentifier); - var symbol = getSymbolForPrivateIdentifierExpression(expr.left); - if (symbol === void 0) { - return type; - } - var classSymbol = symbol.parent; - var targetType = hasStaticModifier(Debug.checkDefined(symbol.valueDeclaration, "should always have a declaration")) ? getTypeOfSymbol(classSymbol) : getDeclaredTypeOfSymbol(classSymbol); - return getNarrowedType(type, targetType, assumeTrue, - /*checkDerived*/ - true); - } - function narrowTypeByOptionalChainContainment(type, operator, value, assumeTrue) { - var equalsOperator = operator === 35 /* EqualsEqualsToken */ || operator === 37 /* EqualsEqualsEqualsToken */; - var nullableFlags = operator === 35 /* EqualsEqualsToken */ || operator === 36 /* ExclamationEqualsToken */ ? 98304 /* Nullable */ : 32768 /* Undefined */; - var valueType = getTypeOfExpression(value); - var removeNullable = equalsOperator !== assumeTrue && everyType(valueType, function (t) { return !!(t.flags & nullableFlags); }) || equalsOperator === assumeTrue && everyType(valueType, function (t) { return !(t.flags & (3 /* AnyOrUnknown */ | nullableFlags)); }); - return removeNullable ? getAdjustedTypeWithFacts(type, 2097152 /* NEUndefinedOrNull */) : type; - } - function narrowTypeByEquality(type, operator, value, assumeTrue) { - if (type.flags & 1 /* Any */) { - return type; - } - if (operator === 36 /* ExclamationEqualsToken */ || operator === 38 /* ExclamationEqualsEqualsToken */) { - assumeTrue = !assumeTrue; - } - var valueType = getTypeOfExpression(value); - var doubleEquals = operator === 35 /* EqualsEqualsToken */ || operator === 36 /* ExclamationEqualsToken */; - if (valueType.flags & 98304 /* Nullable */) { - if (!strictNullChecks) { - return type; - } - var facts = doubleEquals ? assumeTrue ? 262144 /* EQUndefinedOrNull */ : 2097152 /* NEUndefinedOrNull */ : valueType.flags & 65536 /* Null */ ? assumeTrue ? 131072 /* EQNull */ : 1048576 /* NENull */ : assumeTrue ? 65536 /* EQUndefined */ : 524288 /* NEUndefined */; - return getAdjustedTypeWithFacts(type, facts); - } - if (assumeTrue) { - if (!doubleEquals && (type.flags & 2 /* Unknown */ || someType(type, isEmptyAnonymousObjectType))) { - if (valueType.flags & (402784252 /* Primitive */ | 67108864 /* NonPrimitive */) || isEmptyAnonymousObjectType(valueType)) { - return valueType; - } - if (valueType.flags & 524288 /* Object */) { - return nonPrimitiveType; - } - } - var filteredType = filterType(type, function (t) { return areTypesComparable(t, valueType) || doubleEquals && isCoercibleUnderDoubleEquals(t, valueType); }); - return replacePrimitivesWithLiterals(filteredType, valueType); - } - if (isUnitType(valueType)) { - return filterType(type, function (t) { return !(isUnitLikeType(t) && areTypesComparable(t, valueType)); }); - } - return type; - } - function narrowTypeByTypeof(type, typeOfExpr, operator, literal, assumeTrue) { - if (operator === 36 /* ExclamationEqualsToken */ || operator === 38 /* ExclamationEqualsEqualsToken */) { - assumeTrue = !assumeTrue; - } - var target = getReferenceCandidate(typeOfExpr.expression); - if (!isMatchingReference(reference, target)) { - if (strictNullChecks && optionalChainContainsReference(target, reference) && assumeTrue === (literal.text !== "undefined")) { - type = getAdjustedTypeWithFacts(type, 2097152 /* NEUndefinedOrNull */); - } - var propertyAccess = getDiscriminantPropertyAccess(target, type); - if (propertyAccess) { - return narrowTypeByDiscriminant(type, propertyAccess, function (t) { return narrowTypeByLiteralExpression(t, literal, assumeTrue); }); - } - return type; - } - return narrowTypeByLiteralExpression(type, literal, assumeTrue); - } - function narrowTypeByLiteralExpression(type, literal, assumeTrue) { - return assumeTrue ? narrowTypeByTypeName(type, literal.text) : getAdjustedTypeWithFacts(type, typeofNEFacts.get(literal.text) || 32768 /* TypeofNEHostObject */); - } - function narrowTypeBySwitchOptionalChainContainment(type, switchStatement, clauseStart, clauseEnd, clauseCheck) { - var everyClauseChecks = clauseStart !== clauseEnd && every(getSwitchClauseTypes(switchStatement).slice(clauseStart, clauseEnd), clauseCheck); - return everyClauseChecks ? getTypeWithFacts(type, 2097152 /* NEUndefinedOrNull */) : type; - } - function narrowTypeBySwitchOnDiscriminant(type, switchStatement, clauseStart, clauseEnd) { - var switchTypes = getSwitchClauseTypes(switchStatement); - if (!switchTypes.length) { - return type; - } - var clauseTypes = switchTypes.slice(clauseStart, clauseEnd); - var hasDefaultClause = clauseStart === clauseEnd || contains(clauseTypes, neverType); - if (type.flags & 2 /* Unknown */ && !hasDefaultClause) { - var groundClauseTypes = void 0; - for (var i = 0; i < clauseTypes.length; i += 1) { - var t = clauseTypes[i]; - if (t.flags & (402784252 /* Primitive */ | 67108864 /* NonPrimitive */)) { - if (groundClauseTypes !== void 0) { - groundClauseTypes.push(t); - } - } - else if (t.flags & 524288 /* Object */) { - if (groundClauseTypes === void 0) { - groundClauseTypes = clauseTypes.slice(0, i); - } - groundClauseTypes.push(nonPrimitiveType); - } - else { - return type; - } - } - return getUnionType(groundClauseTypes === void 0 ? clauseTypes : groundClauseTypes); - } - var discriminantType = getUnionType(clauseTypes); - var caseType = discriminantType.flags & 131072 /* Never */ ? neverType : replacePrimitivesWithLiterals(filterType(type, function (t) { return areTypesComparable(discriminantType, t); }), discriminantType); - if (!hasDefaultClause) { - return caseType; - } - var defaultType = filterType(type, function (t) { return !(isUnitLikeType(t) && contains(switchTypes, getRegularTypeOfLiteralType(extractUnitType(t)))); }); - return caseType.flags & 131072 /* Never */ ? defaultType : getUnionType([caseType, defaultType]); - } - function narrowTypeByTypeName(type, typeName) { - switch (typeName) { - case "string": - return narrowTypeByTypeFacts(type, stringType, 1 /* TypeofEQString */); - case "number": - return narrowTypeByTypeFacts(type, numberType, 2 /* TypeofEQNumber */); - case "bigint": - return narrowTypeByTypeFacts(type, bigintType, 4 /* TypeofEQBigInt */); - case "boolean": - return narrowTypeByTypeFacts(type, booleanType, 8 /* TypeofEQBoolean */); - case "symbol": - return narrowTypeByTypeFacts(type, esSymbolType, 16 /* TypeofEQSymbol */); - case "object": - return type.flags & 1 /* Any */ ? type : getUnionType([narrowTypeByTypeFacts(type, nonPrimitiveType, 32 /* TypeofEQObject */), narrowTypeByTypeFacts(type, nullType, 131072 /* EQNull */)]); - case "function": - return type.flags & 1 /* Any */ ? type : narrowTypeByTypeFacts(type, globalFunctionType, 64 /* TypeofEQFunction */); - case "undefined": - return narrowTypeByTypeFacts(type, undefinedType, 65536 /* EQUndefined */); - } - return narrowTypeByTypeFacts(type, nonPrimitiveType, 128 /* TypeofEQHostObject */); - } - function narrowTypeByTypeFacts(type, impliedType, facts) { - return mapType(type, function (t) { return ( - // We first check if a constituent is a subtype of the implied type. If so, we either keep or eliminate - // the constituent based on its type facts. We use the strict subtype relation because it treats `object` - // as a subtype of `{}`, and we need the type facts check because function types are subtypes of `object`, - // but are classified as "function" according to `typeof`. - isTypeRelatedTo(t, impliedType, strictSubtypeRelation) ? getTypeFacts(t) & facts ? t : neverType : ( - // We next check if the consituent is a supertype of the implied type. If so, we substitute the implied - // type. This handles top types like `unknown` and `{}`, and supertypes like `{ toString(): string }`. - isTypeSubtypeOf(impliedType, t) ? impliedType : ( - // Neither the constituent nor the implied type is a subtype of the other, however their domains may still - // overlap. For example, an unconstrained type parameter and type `string`. If the type facts indicate - // possible overlap, we form an intersection. Otherwise, we eliminate the constituent. - getTypeFacts(t) & facts ? getIntersectionType([t, impliedType]) : neverType))); }); - } - function narrowTypeBySwitchOnTypeOf(type, switchStatement, clauseStart, clauseEnd) { - var witnesses = getSwitchClauseTypeOfWitnesses(switchStatement); - if (!witnesses) { - return type; - } - var defaultIndex = findIndex(switchStatement.caseBlock.clauses, function (clause) { return clause.kind === 297; } /* DefaultClause */); - var hasDefaultClause = clauseStart === clauseEnd || defaultIndex >= clauseStart && defaultIndex < clauseEnd; - if (hasDefaultClause) { - var notEqualFacts_1 = getNotEqualFactsFromTypeofSwitch(clauseStart, clauseEnd, witnesses); - return filterType(type, function (t) { return (getTypeFacts(t) & notEqualFacts_1) === notEqualFacts_1; }); - } - var clauseWitnesses = witnesses.slice(clauseStart, clauseEnd); - return getUnionType(map(clauseWitnesses, function (text) { return text ? narrowTypeByTypeName(type, text) : neverType; })); - } - function isMatchingConstructorReference(expr) { - return (isPropertyAccessExpression(expr) && idText(expr.name) === "constructor" || isElementAccessExpression(expr) && isStringLiteralLike(expr.argumentExpression) && expr.argumentExpression.text === "constructor") && isMatchingReference(reference, expr.expression); - } - function narrowTypeByConstructor(type, operator, identifier, assumeTrue) { - if (assumeTrue ? operator !== 35 /* EqualsEqualsToken */ && operator !== 37 /* EqualsEqualsEqualsToken */ : operator !== 36 /* ExclamationEqualsToken */ && operator !== 38 /* ExclamationEqualsEqualsToken */) { - return type; - } - var identifierType = getTypeOfExpression(identifier); - if (!isFunctionType(identifierType) && !isConstructorType(identifierType)) { - return type; - } - var prototypeProperty = getPropertyOfType(identifierType, "prototype"); - if (!prototypeProperty) { - return type; - } - var prototypeType = getTypeOfSymbol(prototypeProperty); - var candidate = !isTypeAny(prototypeType) ? prototypeType : void 0; - if (!candidate || candidate === globalObjectType || candidate === globalFunctionType) { - return type; - } - if (isTypeAny(type)) { - return candidate; - } - return filterType(type, function (t) { return isConstructedBy(t, candidate); }); - function isConstructedBy(source, target) { - if (source.flags & 524288 /* Object */ && getObjectFlags(source) & 1 /* Class */ || target.flags & 524288 /* Object */ && getObjectFlags(target) & 1 /* Class */) { - return source.symbol === target.symbol; - } - return isTypeSubtypeOf(source, target); - } - } - function narrowTypeByInstanceof(type, expr, assumeTrue) { - var left = getReferenceCandidate(expr.left); - if (!isMatchingReference(reference, left)) { - if (assumeTrue && strictNullChecks && optionalChainContainsReference(left, reference)) { - return getAdjustedTypeWithFacts(type, 2097152 /* NEUndefinedOrNull */); - } - return type; - } - var rightType = getTypeOfExpression(expr.right); - if (!isTypeDerivedFrom(rightType, globalFunctionType)) { - return type; - } - var instanceType = mapType(rightType, getInstanceType); - if (isTypeAny(type) && (instanceType === globalObjectType || instanceType === globalFunctionType) || !assumeTrue && !(instanceType.flags & 524288 /* Object */ && !isEmptyAnonymousObjectType(instanceType))) { - return type; - } - return getNarrowedType(type, instanceType, assumeTrue, - /*checkDerived*/ - true); - } - function getInstanceType(constructorType) { - var prototypePropertyType = getTypeOfPropertyOfType(constructorType, "prototype"); - if (prototypePropertyType && !isTypeAny(prototypePropertyType)) { - return prototypePropertyType; - } - var constructSignatures = getSignaturesOfType(constructorType, 1 /* Construct */); - if (constructSignatures.length) { - return getUnionType(map(constructSignatures, function (signature) { return getReturnTypeOfSignature(getErasedSignature(signature)); })); - } - return emptyObjectType; - } - function getNarrowedType(type, candidate, assumeTrue, checkDerived) { - var _t; - var key2 = type.flags & 1048576 /* Union */ ? "N".concat(getTypeId(type), ",").concat(getTypeId(candidate), ",").concat((assumeTrue ? 1 : 0) | (checkDerived ? 2 : 0)) : void 0; - return (_t = getCachedType(key2)) !== null && _t !== void 0 ? _t : setCachedType(key2, getNarrowedTypeWorker(type, candidate, assumeTrue, checkDerived)); - } - function getNarrowedTypeWorker(type, candidate, assumeTrue, checkDerived) { - if (!assumeTrue) { - if (checkDerived) { - return filterType(type, function (t) { return !isTypeDerivedFrom(t, candidate); }); - } - var trueType2_1 = getNarrowedType(type, candidate, - /*assumeTrue*/ - true, - /*checkDerived*/ - false); - return filterType(type, function (t) { return !isTypeSubsetOf(t, trueType2_1); }); - } - if (type.flags & 3 /* AnyOrUnknown */) { - return candidate; - } - var isRelated = checkDerived ? isTypeDerivedFrom : isTypeSubtypeOf; - var keyPropertyName = type.flags & 1048576 /* Union */ ? getKeyPropertyName(type) : void 0; - var narrowedType = mapType(candidate, function (c) { - var discriminant = keyPropertyName && getTypeOfPropertyOfType(c, keyPropertyName); - var matching = discriminant && getConstituentTypeForKeyType(type, discriminant); - var directlyRelated = mapType(matching || type, checkDerived ? function (t) { return isTypeDerivedFrom(t, c) ? t : isTypeDerivedFrom(c, t) ? c : neverType; } : function (t) { return isTypeStrictSubtypeOf(t, c) ? t : isTypeStrictSubtypeOf(c, t) ? c : isTypeSubtypeOf(t, c) ? t : isTypeSubtypeOf(c, t) ? c : neverType; }); - return directlyRelated.flags & 131072 /* Never */ ? mapType(type, function (t) { return maybeTypeOfKind(t, 465829888 /* Instantiable */) && isRelated(c, getBaseConstraintOfType(t) || unknownType) ? getIntersectionType([t, c]) : neverType; }) : directlyRelated; - }); - return !(narrowedType.flags & 131072 /* Never */) ? narrowedType : isTypeSubtypeOf(candidate, type) ? candidate : isTypeAssignableTo(type, candidate) ? type : isTypeAssignableTo(candidate, type) ? candidate : getIntersectionType([type, candidate]); - } - function narrowTypeByCallExpression(type, callExpression, assumeTrue) { - if (hasMatchingArgument(callExpression, reference)) { - var signature = assumeTrue || !isCallChain(callExpression) ? getEffectsSignature(callExpression) : void 0; - var predicate = signature && getTypePredicateOfSignature(signature); - if (predicate && (predicate.kind === 0 /* This */ || predicate.kind === 1 /* Identifier */)) { - return narrowTypeByTypePredicate(type, predicate, callExpression, assumeTrue); - } - } - if (containsMissingType(type) && isAccessExpression(reference) && isPropertyAccessExpression(callExpression.expression)) { - var callAccess = callExpression.expression; - if (isMatchingReference(reference.expression, getReferenceCandidate(callAccess.expression)) && isIdentifier(callAccess.name) && callAccess.name.escapedText === "hasOwnProperty" && callExpression.arguments.length === 1) { - var argument = callExpression.arguments[0]; - if (isStringLiteralLike(argument) && getAccessedPropertyName(reference) === escapeLeadingUnderscores(argument.text)) { - return getTypeWithFacts(type, assumeTrue ? 524288 /* NEUndefined */ : 65536 /* EQUndefined */); - } - } - } - return type; - } - function narrowTypeByTypePredicate(type, predicate, callExpression, assumeTrue) { - if (predicate.type && !(isTypeAny(type) && (predicate.type === globalObjectType || predicate.type === globalFunctionType))) { - var predicateArgument = getTypePredicateArgument(predicate, callExpression); - if (predicateArgument) { - if (isMatchingReference(reference, predicateArgument)) { - return getNarrowedType(type, predicate.type, assumeTrue, - /*checkDerived*/ - false); - } - if (strictNullChecks && assumeTrue && optionalChainContainsReference(predicateArgument, reference) && !(getTypeFacts(predicate.type) & 65536 /* EQUndefined */)) { - type = getAdjustedTypeWithFacts(type, 2097152 /* NEUndefinedOrNull */); - } - var access = getDiscriminantPropertyAccess(predicateArgument, type); - if (access) { - return narrowTypeByDiscriminant(type, access, function (t) { return getNarrowedType(t, predicate.type, assumeTrue, - /*checkDerived*/ - false); }); - } - } - } - return type; - } - function narrowType(type, expr, assumeTrue) { - if (isExpressionOfOptionalChainRoot(expr) || isBinaryExpression(expr.parent) && (expr.parent.operatorToken.kind === 61 /* QuestionQuestionToken */ || expr.parent.operatorToken.kind === 78 /* QuestionQuestionEqualsToken */) && expr.parent.left === expr) { - return narrowTypeByOptionality(type, expr, assumeTrue); - } - switch (expr.kind) { - case 80 /* Identifier */: - if (!isMatchingReference(reference, expr) && inlineLevel < 5) { - var symbol = getResolvedSymbol(expr); - if (isConstantVariable(symbol)) { - var declaration = symbol.valueDeclaration; - if (declaration && isVariableDeclaration(declaration) && !declaration.type && declaration.initializer && isConstantReference(reference)) { - inlineLevel++; - var result = narrowType(type, declaration.initializer, assumeTrue); - inlineLevel--; - return result; - } - } - } - case 110 /* ThisKeyword */: - case 108 /* SuperKeyword */: - case 211 /* PropertyAccessExpression */: - case 212 /* ElementAccessExpression */: - return narrowTypeByTruthiness(type, expr, assumeTrue); - case 213 /* CallExpression */: - return narrowTypeByCallExpression(type, expr, assumeTrue); - case 217 /* ParenthesizedExpression */: - case 235 /* NonNullExpression */: - return narrowType(type, expr.expression, assumeTrue); - case 226 /* BinaryExpression */: - return narrowTypeByBinaryExpression(type, expr, assumeTrue); - case 224 /* PrefixUnaryExpression */: - if (expr.operator === 54 /* ExclamationToken */) { - return narrowType(type, expr.operand, !assumeTrue); - } - break; - } - return type; - } - function narrowTypeByOptionality(type, expr, assumePresent) { - if (isMatchingReference(reference, expr)) { - return getAdjustedTypeWithFacts(type, assumePresent ? 2097152 /* NEUndefinedOrNull */ : 262144 /* EQUndefinedOrNull */); - } - var access = getDiscriminantPropertyAccess(expr, type); - if (access) { - return narrowTypeByDiscriminant(type, access, function (t) { return getTypeWithFacts(t, assumePresent ? 2097152 /* NEUndefinedOrNull */ : 262144 /* EQUndefinedOrNull */); }); - } - return type; - } - } - function getTypeOfSymbolAtLocation(symbol, location) { - symbol = getExportSymbolOfValueSymbolIfExported(symbol); - if (location.kind === 80 /* Identifier */ || location.kind === 81 /* PrivateIdentifier */) { - if (isRightSideOfQualifiedNameOrPropertyAccess(location)) { - location = location.parent; - } - if (isExpressionNode(location) && (!isAssignmentTarget(location) || isWriteAccess(location))) { - var type = removeOptionalTypeMarker(getTypeOfExpression(location)); - if (getExportSymbolOfValueSymbolIfExported(getNodeLinks(location).resolvedSymbol) === symbol) { - return type; - } - } - } - if (isDeclarationName(location) && isSetAccessor(location.parent) && getAnnotatedAccessorTypeNode(location.parent)) { - return getWriteTypeOfAccessors(location.parent.symbol); - } - return getNonMissingTypeOfSymbol(symbol); - } - function getControlFlowContainer(node) { - return findAncestor(node.parent, function (node2) { return isFunctionLike(node2) && !getImmediatelyInvokedFunctionExpression(node2) || node2.kind === 268 /* ModuleBlock */ || node2.kind === 312 /* SourceFile */ || node2.kind === 172; } /* PropertyDeclaration */); - } - function isSymbolAssigned(symbol) { - if (!symbol.valueDeclaration) { - return false; - } - var parent2 = getRootDeclaration(symbol.valueDeclaration).parent; - var links = getNodeLinks(parent2); - if (!(links.flags & 131072 /* AssignmentsMarked */)) { - links.flags |= 131072 /* AssignmentsMarked */; - if (!hasParentWithAssignmentsMarked(parent2)) { - markNodeAssignments(parent2); - } - } - return symbol.isAssigned || false; - } - function hasParentWithAssignmentsMarked(node) { - return !!findAncestor(node.parent, function (node2) { return (isFunctionLike(node2) || isCatchClause(node2)) && !!(getNodeLinks(node2).flags & 131072 /* AssignmentsMarked */); }); - } - function markNodeAssignments(node) { - if (node.kind === 80 /* Identifier */) { - if (isAssignmentTarget(node)) { - var symbol = getResolvedSymbol(node); - if (isParameterOrCatchClauseVariable(symbol)) { - symbol.isAssigned = true; - } - } - } - else { - forEachChild(node, markNodeAssignments); - } - } - function isConstantVariable(symbol) { - return symbol.flags & 3 /* Variable */ && (getDeclarationNodeFlagsFromSymbol(symbol) & 6 /* Constant */) !== 0; - } - function parameterInitializerContainsUndefined(declaration) { - var links = getNodeLinks(declaration); - if (links.parameterInitializerContainsUndefined === void 0) { - if (!pushTypeResolution(declaration, 9 /* ParameterInitializerContainsUndefined */)) { - reportCircularityError(declaration.symbol); - return true; - } - var containsUndefined = !!(getTypeFacts(checkDeclarationInitializer(declaration, 0 /* Normal */)) & 16777216 /* IsUndefined */); - if (!popTypeResolution()) { - reportCircularityError(declaration.symbol); - return true; - } - links.parameterInitializerContainsUndefined = containsUndefined; - } - return links.parameterInitializerContainsUndefined; - } - function removeOptionalityFromDeclaredType(declaredType, declaration) { - var removeUndefined = strictNullChecks && declaration.kind === 169 /* Parameter */ && declaration.initializer && getTypeFacts(declaredType) & 16777216 /* IsUndefined */ && !parameterInitializerContainsUndefined(declaration); - return removeUndefined ? getTypeWithFacts(declaredType, 524288 /* NEUndefined */) : declaredType; - } - function isConstraintPosition(type, node) { - var parent2 = node.parent; - return parent2.kind === 211 /* PropertyAccessExpression */ || parent2.kind === 166 /* QualifiedName */ || parent2.kind === 213 /* CallExpression */ && parent2.expression === node || parent2.kind === 212 /* ElementAccessExpression */ && parent2.expression === node && !(someType(type, isGenericTypeWithoutNullableConstraint) && isGenericIndexType(getTypeOfExpression(parent2.argumentExpression))); - } - function isGenericTypeWithUnionConstraint(type) { - return type.flags & 2097152 /* Intersection */ ? some(type.types, isGenericTypeWithUnionConstraint) : !!(type.flags & 465829888 /* Instantiable */ && getBaseConstraintOrType(type).flags & (98304 /* Nullable */ | 1048576 /* Union */)); - } - function isGenericTypeWithoutNullableConstraint(type) { - return type.flags & 2097152 /* Intersection */ ? some(type.types, isGenericTypeWithoutNullableConstraint) : !!(type.flags & 465829888 /* Instantiable */ && !maybeTypeOfKind(getBaseConstraintOrType(type), 98304 /* Nullable */)); - } - function hasContextualTypeWithNoGenericTypes(node, checkMode) { - var contextualType = (isIdentifier(node) || isPropertyAccessExpression(node) || isElementAccessExpression(node)) && !((isJsxOpeningElement(node.parent) || isJsxSelfClosingElement(node.parent)) && node.parent.tagName === node) && (checkMode && checkMode & 64 /* RestBindingElement */ ? getContextualType2(node, 8 /* SkipBindingPatterns */) : getContextualType2(node, - /*contextFlags*/ - void 0)); - return contextualType && !isGenericType(contextualType); - } - function getNarrowableTypeForReference(type, reference, checkMode) { - var substituteConstraints = !(checkMode && checkMode & 2 /* Inferential */) && someType(type, isGenericTypeWithUnionConstraint) && (isConstraintPosition(type, reference) || hasContextualTypeWithNoGenericTypes(reference, checkMode)); - return substituteConstraints ? mapType(type, getBaseConstraintOrType) : type; - } - function isExportOrExportExpression(location) { - return !!findAncestor(location, function (n) { - var parent2 = n.parent; - if (parent2 === void 0) { - return "quit"; - } - if (isExportAssignment(parent2)) { - return parent2.expression === n && isEntityNameExpression(n); - } - if (isExportSpecifier(parent2)) { - return parent2.name === n || parent2.propertyName === n; - } - return false; - }); - } - function markAliasReferenced(symbol, location) { - if (!canCollectSymbolAliasAccessabilityData) { - return; - } - if (isNonLocalAlias(symbol, - /*excludes*/ - 111551 /* Value */) && !isInTypeQuery(location)) { - var target = resolveAlias(symbol); - if (getSymbolFlags(symbol, - /*excludeTypeOnlyMeanings*/ - true) & (111551 /* Value */ | 1048576 /* ExportValue */)) { - if (getIsolatedModules(compilerOptions) || shouldPreserveConstEnums(compilerOptions) && isExportOrExportExpression(location) || !isConstEnumOrConstEnumOnlyModule(getExportSymbolOfValueSymbolIfExported(target))) { - markAliasSymbolAsReferenced(symbol); - } - else { - markConstEnumAliasAsReferenced(symbol); - } - } - } - } - function getNarrowedTypeOfSymbol(symbol, location) { - var _a; - var type = getTypeOfSymbol(symbol); - var declaration = symbol.valueDeclaration; - if (declaration) { - if (isBindingElement(declaration) && !declaration.initializer && !declaration.dotDotDotToken && declaration.parent.elements.length >= 2) { - var parent2 = declaration.parent.parent; - if (parent2.kind === 260 /* VariableDeclaration */ && getCombinedNodeFlagsCached(declaration) & 6 /* Constant */ || parent2.kind === 169 /* Parameter */) { - var links = getNodeLinks(parent2); - if (!(links.flags & 4194304 /* InCheckIdentifier */)) { - links.flags |= 4194304 /* InCheckIdentifier */; - var parentType = getTypeForBindingElementParent(parent2, 0 /* Normal */); - var parentTypeConstraint = parentType && mapType(parentType, getBaseConstraintOrType); - links.flags &= ~4194304 /* InCheckIdentifier */; - if (parentTypeConstraint && parentTypeConstraint.flags & 1048576 /* Union */ && !(parent2.kind === 169 /* Parameter */ && isSymbolAssigned(symbol))) { - var pattern = declaration.parent; - var narrowedType = getFlowTypeOfReference(pattern, parentTypeConstraint, parentTypeConstraint, - /*flowContainer*/ - void 0, location.flowNode); - if (narrowedType.flags & 131072 /* Never */) { - return neverType; - } - return getBindingElementTypeFromParentType(declaration, narrowedType); - } - } - } - } - if (isParameter(declaration) && !declaration.type && !declaration.initializer && !declaration.dotDotDotToken) { - var func = declaration.parent; - if (func.parameters.length >= 2 && isContextSensitiveFunctionOrObjectLiteralMethod(func)) { - var contextualSignature = getContextualSignature(func); - if (contextualSignature && contextualSignature.parameters.length === 1 && signatureHasRestParameter(contextualSignature)) { - var restType = getReducedApparentType(instantiateType(getTypeOfSymbol(contextualSignature.parameters[0]), (_a = getInferenceContext(func)) == null ? void 0 : _a.nonFixingMapper)); - if (restType.flags & 1048576 /* Union */ && everyType(restType, isTupleType) && !isSymbolAssigned(symbol)) { - var narrowedType = getFlowTypeOfReference(func, restType, restType, - /*flowContainer*/ - void 0, location.flowNode); - var index = func.parameters.indexOf(declaration) - (getThisParameter(func) ? 1 : 0); - return getIndexedAccessType(narrowedType, getNumberLiteralType(index)); - } - } - } - } - } - return type; - } - function checkIdentifier(node, checkMode) { - if (isThisInTypeQuery(node)) { - return checkThisExpression(node); - } - var symbol = getResolvedSymbol(node); - if (symbol === unknownSymbol) { - return errorType; - } - if (symbol === argumentsSymbol) { - if (isInPropertyInitializerOrClassStaticBlock(node)) { - error2(node, Diagnostics.arguments_cannot_be_referenced_in_property_initializers); - return errorType; - } - var container = getContainingFunction(node); - if (languageVersion < 2 /* ES2015 */) { - if (container.kind === 219 /* ArrowFunction */) { - error2(node, Diagnostics.The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES3_and_ES5_Consider_using_a_standard_function_expression); - } - else if (hasSyntacticModifier(container, 512 /* Async */)) { - error2(node, Diagnostics.The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES3_and_ES5_Consider_using_a_standard_function_or_method); - } - } - getNodeLinks(container).flags |= 512 /* CaptureArguments */; - return getTypeOfSymbol(symbol); - } - if (shouldMarkIdentifierAliasReferenced(node)) { - markAliasReferenced(symbol, node); - } - var localOrExportSymbol = getExportSymbolOfValueSymbolIfExported(symbol); - var targetSymbol = resolveAliasWithDeprecationCheck(localOrExportSymbol, node); - if (isDeprecatedSymbol(targetSymbol) && isUncalledFunctionReference(node, targetSymbol) && targetSymbol.declarations) { - addDeprecatedSuggestion(node, targetSymbol.declarations, node.escapedText); - } - var declaration = localOrExportSymbol.valueDeclaration; - if (declaration && localOrExportSymbol.flags & 32 /* Class */) { - if (isClassLike(declaration) && declaration.name !== node) { - var container = getThisContainer(node, - /*includeArrowFunctions*/ - false, - /*includeClassComputedPropertyName*/ - false); - while (container.kind !== 312 /* SourceFile */ && container.parent !== declaration) { - container = getThisContainer(container, - /*includeArrowFunctions*/ - false, - /*includeClassComputedPropertyName*/ - false); - } - if (container.kind !== 312 /* SourceFile */) { - getNodeLinks(declaration).flags |= 262144 /* ContainsConstructorReference */; - getNodeLinks(container).flags |= 262144 /* ContainsConstructorReference */; - getNodeLinks(node).flags |= 536870912 /* ConstructorReference */; - } - } - } - checkNestedBlockScopedBinding(node, symbol); - var type = getNarrowedTypeOfSymbol(localOrExportSymbol, node); - var assignmentKind = getAssignmentTargetKind(node); - if (assignmentKind) { - if (!(localOrExportSymbol.flags & 3 /* Variable */) && !(isInJSFile(node) && localOrExportSymbol.flags & 512 /* ValueModule */)) { - var assignmentError = localOrExportSymbol.flags & 384 /* Enum */ ? Diagnostics.Cannot_assign_to_0_because_it_is_an_enum : localOrExportSymbol.flags & 32 /* Class */ ? Diagnostics.Cannot_assign_to_0_because_it_is_a_class : localOrExportSymbol.flags & 1536 /* Module */ ? Diagnostics.Cannot_assign_to_0_because_it_is_a_namespace : localOrExportSymbol.flags & 16 /* Function */ ? Diagnostics.Cannot_assign_to_0_because_it_is_a_function : localOrExportSymbol.flags & 2097152 /* Alias */ ? Diagnostics.Cannot_assign_to_0_because_it_is_an_import : Diagnostics.Cannot_assign_to_0_because_it_is_not_a_variable; - error2(node, assignmentError, symbolToString(symbol)); - return errorType; - } - if (isReadonlySymbol(localOrExportSymbol)) { - if (localOrExportSymbol.flags & 3 /* Variable */) { - error2(node, Diagnostics.Cannot_assign_to_0_because_it_is_a_constant, symbolToString(symbol)); - } - else { - error2(node, Diagnostics.Cannot_assign_to_0_because_it_is_a_read_only_property, symbolToString(symbol)); - } - return errorType; - } - } - var isAlias = localOrExportSymbol.flags & 2097152 /* Alias */; - if (localOrExportSymbol.flags & 3 /* Variable */) { - if (assignmentKind === 1 /* Definite */) { - return type; - } - } - else if (isAlias) { - declaration = getDeclarationOfAliasSymbol(symbol); - } - else { - return type; - } - if (!declaration) { - return type; - } - type = getNarrowableTypeForReference(type, node, checkMode); - var isParameter2 = getRootDeclaration(declaration).kind === 169 /* Parameter */; - var declarationContainer = getControlFlowContainer(declaration); - var flowContainer = getControlFlowContainer(node); - var isOuterVariable = flowContainer !== declarationContainer; - var isSpreadDestructuringAssignmentTarget = node.parent && node.parent.parent && isSpreadAssignment(node.parent) && isDestructuringAssignmentTarget(node.parent.parent); - var isModuleExports = symbol.flags & 134217728 /* ModuleExports */; - var typeIsAutomatic = type === autoType || type === autoArrayType; - var isAutomaticTypeInNonNull = typeIsAutomatic && node.parent.kind === 235 /* NonNullExpression */; - while (flowContainer !== declarationContainer && (flowContainer.kind === 218 /* FunctionExpression */ || flowContainer.kind === 219 /* ArrowFunction */ || isObjectLiteralOrClassExpressionMethodOrAccessor(flowContainer)) && (isConstantVariable(localOrExportSymbol) && type !== autoArrayType || isParameter2 && !isSymbolAssigned(localOrExportSymbol))) { - flowContainer = getControlFlowContainer(flowContainer); - } - var assumeInitialized = isParameter2 || isAlias || isOuterVariable || isSpreadDestructuringAssignmentTarget || isModuleExports || isSameScopedBindingElement(node, declaration) || type !== autoType && type !== autoArrayType && (!strictNullChecks || (type.flags & (3 /* AnyOrUnknown */ | 16384 /* Void */)) !== 0 || isInTypeQuery(node) || isInAmbientOrTypeNode(node) || node.parent.kind === 281 /* ExportSpecifier */) || node.parent.kind === 235 /* NonNullExpression */ || declaration.kind === 260 /* VariableDeclaration */ && declaration.exclamationToken || declaration.flags & 33554432 /* Ambient */; - var initialType = isAutomaticTypeInNonNull ? undefinedType : assumeInitialized ? isParameter2 ? removeOptionalityFromDeclaredType(type, declaration) : type : typeIsAutomatic ? undefinedType : getOptionalType(type); - var flowType = isAutomaticTypeInNonNull ? getNonNullableType(getFlowTypeOfReference(node, type, initialType, flowContainer)) : getFlowTypeOfReference(node, type, initialType, flowContainer); - if (!isEvolvingArrayOperationTarget(node) && (type === autoType || type === autoArrayType)) { - if (flowType === autoType || flowType === autoArrayType) { - if (noImplicitAny) { - error2(getNameOfDeclaration(declaration), Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined, symbolToString(symbol), typeToString(flowType)); - error2(node, Diagnostics.Variable_0_implicitly_has_an_1_type, symbolToString(symbol), typeToString(flowType)); - } - return convertAutoToAny(flowType); - } - } - else if (!assumeInitialized && !containsUndefinedType(type) && containsUndefinedType(flowType)) { - error2(node, Diagnostics.Variable_0_is_used_before_being_assigned, symbolToString(symbol)); - return type; - } - return assignmentKind ? getBaseTypeOfLiteralType(flowType) : flowType; - } - function isSameScopedBindingElement(node, declaration) { - if (isBindingElement(declaration)) { - var bindingElement = findAncestor(node, isBindingElement); - return bindingElement && getRootDeclaration(bindingElement) === getRootDeclaration(declaration); - } - } - function shouldMarkIdentifierAliasReferenced(node) { - var _a; - var parent2 = node.parent; - if (parent2) { - if (isPropertyAccessExpression(parent2) && parent2.expression === node) { - return false; - } - if (isExportSpecifier(parent2) && parent2.isTypeOnly) { - return false; - } - var greatGrandparent = (_a = parent2.parent) == null ? void 0 : _a.parent; - if (greatGrandparent && isExportDeclaration(greatGrandparent) && greatGrandparent.isTypeOnly) { - return false; - } - } - return true; - } - function isInsideFunctionOrInstancePropertyInitializer(node, threshold) { - return !!findAncestor(node, function (n) { return n === threshold ? "quit" : isFunctionLike(n) || n.parent && isPropertyDeclaration(n.parent) && !hasStaticModifier(n.parent) && n.parent.initializer === n; }); - } - function getPartOfForStatementContainingNode(node, container) { - return findAncestor(node, function (n) { return n === container ? "quit" : n === container.initializer || n === container.condition || n === container.incrementor || n === container.statement; }); - } - function getEnclosingIterationStatement(node) { - return findAncestor(node, function (n) { return !n || nodeStartsNewLexicalEnvironment(n) ? "quit" : isIterationStatement(n, - /*lookInLabeledStatements*/ - false); }); - } - function checkNestedBlockScopedBinding(node, symbol) { - if (languageVersion >= 2 /* ES2015 */ || (symbol.flags & (2 /* BlockScopedVariable */ | 32 /* Class */)) === 0 || !symbol.valueDeclaration || isSourceFile(symbol.valueDeclaration) || symbol.valueDeclaration.parent.kind === 299 /* CatchClause */) { - return; - } - var container = getEnclosingBlockScopeContainer(symbol.valueDeclaration); - var isCaptured = isInsideFunctionOrInstancePropertyInitializer(node, container); - var enclosingIterationStatement = getEnclosingIterationStatement(container); - if (enclosingIterationStatement) { - if (isCaptured) { - var capturesBlockScopeBindingInLoopBody = true; - if (isForStatement(container)) { - var varDeclList = getAncestor(symbol.valueDeclaration, 261 /* VariableDeclarationList */); - if (varDeclList && varDeclList.parent === container) { - var part = getPartOfForStatementContainingNode(node.parent, container); - if (part) { - var links = getNodeLinks(part); - links.flags |= 8192 /* ContainsCapturedBlockScopeBinding */; - var capturedBindings = links.capturedBlockScopeBindings || (links.capturedBlockScopeBindings = []); - pushIfUnique(capturedBindings, symbol); - if (part === container.initializer) { - capturesBlockScopeBindingInLoopBody = false; - } - } - } - } - if (capturesBlockScopeBindingInLoopBody) { - getNodeLinks(enclosingIterationStatement).flags |= 4096 /* LoopWithCapturedBlockScopedBinding */; - } - } - if (isForStatement(container)) { - var varDeclList = getAncestor(symbol.valueDeclaration, 261 /* VariableDeclarationList */); - if (varDeclList && varDeclList.parent === container && isAssignedInBodyOfForStatement(node, container)) { - getNodeLinks(symbol.valueDeclaration).flags |= 65536 /* NeedsLoopOutParameter */; - } - } - getNodeLinks(symbol.valueDeclaration).flags |= 32768 /* BlockScopedBindingInLoop */; - } - if (isCaptured) { - getNodeLinks(symbol.valueDeclaration).flags |= 16384 /* CapturedBlockScopedBinding */; - } - } - function isBindingCapturedByNode(node, decl) { - var links = getNodeLinks(node); - return !!links && contains(links.capturedBlockScopeBindings, getSymbolOfDeclaration(decl)); - } - function isAssignedInBodyOfForStatement(node, container) { - var current = node; - while (current.parent.kind === 217 /* ParenthesizedExpression */) { - current = current.parent; - } - var isAssigned = false; - if (isAssignmentTarget(current)) { - isAssigned = true; - } - else if (current.parent.kind === 224 /* PrefixUnaryExpression */ || current.parent.kind === 225 /* PostfixUnaryExpression */) { - var expr = current.parent; - isAssigned = expr.operator === 46 /* PlusPlusToken */ || expr.operator === 47 /* MinusMinusToken */; - } - if (!isAssigned) { - return false; - } - return !!findAncestor(current, function (n) { return n === container ? "quit" : n === container.statement; }); - } - function captureLexicalThis(node, container) { - getNodeLinks(node).flags |= 2 /* LexicalThis */; - if (container.kind === 172 /* PropertyDeclaration */ || container.kind === 176 /* Constructor */) { - var classNode = container.parent; - getNodeLinks(classNode).flags |= 4 /* CaptureThis */; - } - else { - getNodeLinks(container).flags |= 4 /* CaptureThis */; - } - } - function findFirstSuperCall(node) { - return isSuperCall(node) ? node : isFunctionLike(node) ? void 0 : forEachChild(node, findFirstSuperCall); - } - function classDeclarationExtendsNull(classDecl) { - var classSymbol = getSymbolOfDeclaration(classDecl); - var classInstanceType = getDeclaredTypeOfSymbol(classSymbol); - var baseConstructorType = getBaseConstructorTypeOfClass(classInstanceType); - return baseConstructorType === nullWideningType; - } - function checkThisBeforeSuper(node, container, diagnosticMessage) { - var containingClassDecl = container.parent; - var baseTypeNode = getClassExtendsHeritageElement(containingClassDecl); - if (baseTypeNode && !classDeclarationExtendsNull(containingClassDecl)) { - if (canHaveFlowNode(node) && node.flowNode && !isPostSuperFlowNode(node.flowNode, - /*noCacheCheck*/ - false)) { - error2(node, diagnosticMessage); - } - } - } - function checkThisInStaticClassFieldInitializerInDecoratedClass(thisExpression, container) { - if (isPropertyDeclaration(container) && hasStaticModifier(container) && legacyDecorators && container.initializer && textRangeContainsPositionInclusive(container.initializer, thisExpression.pos) && hasDecorators(container.parent)) { - error2(thisExpression, Diagnostics.Cannot_use_this_in_a_static_property_initializer_of_a_decorated_class); - } - } - function checkThisExpression(node) { - var isNodeInTypeQuery = isInTypeQuery(node); - var container = getThisContainer(node, - /*includeArrowFunctions*/ - true, - /*includeClassComputedPropertyName*/ - true); - var capturedByArrowFunction = false; - var thisInComputedPropertyName = false; - if (container.kind === 176 /* Constructor */) { - checkThisBeforeSuper(node, container, Diagnostics.super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class); - } - while (true) { - if (container.kind === 219 /* ArrowFunction */) { - container = getThisContainer(container, - /*includeArrowFunctions*/ - false, !thisInComputedPropertyName); - capturedByArrowFunction = true; - } - if (container.kind === 167 /* ComputedPropertyName */) { - container = getThisContainer(container, !capturedByArrowFunction, - /*includeClassComputedPropertyName*/ - false); - thisInComputedPropertyName = true; - continue; - } - break; - } - checkThisInStaticClassFieldInitializerInDecoratedClass(node, container); - if (thisInComputedPropertyName) { - error2(node, Diagnostics.this_cannot_be_referenced_in_a_computed_property_name); - } - else { - switch (container.kind) { - case 267 /* ModuleDeclaration */: - error2(node, Diagnostics.this_cannot_be_referenced_in_a_module_or_namespace_body); - break; - case 266 /* EnumDeclaration */: - error2(node, Diagnostics.this_cannot_be_referenced_in_current_location); - break; - case 176 /* Constructor */: - if (isInConstructorArgumentInitializer(node, container)) { - error2(node, Diagnostics.this_cannot_be_referenced_in_constructor_arguments); - } - break; - } - } - if (!isNodeInTypeQuery && capturedByArrowFunction && languageVersion < 2 /* ES2015 */) { - captureLexicalThis(node, container); - } - var type = tryGetThisTypeAt(node, - /*includeGlobalThis*/ - true, container); - if (noImplicitThis) { - var globalThisType2 = getTypeOfSymbol(globalThisSymbol); - if (type === globalThisType2 && capturedByArrowFunction) { - error2(node, Diagnostics.The_containing_arrow_function_captures_the_global_value_of_this); - } - else if (!type) { - var diag2 = error2(node, Diagnostics.this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation); - if (!isSourceFile(container)) { - var outsideThis = tryGetThisTypeAt(container); - if (outsideThis && outsideThis !== globalThisType2) { - addRelatedInfo(diag2, createDiagnosticForNode(container, Diagnostics.An_outer_value_of_this_is_shadowed_by_this_container)); - } - } - } - } - return type || anyType; - } - function tryGetThisTypeAt(node, includeGlobalThis, container) { - if (includeGlobalThis === void 0) { includeGlobalThis = true; } - if (container === void 0) { container = getThisContainer(node, - /*includeArrowFunctions*/ - false, - /*includeClassComputedPropertyName*/ - false); } - var isInJS = isInJSFile(node); - if (isFunctionLike(container) && (!isInParameterInitializerBeforeContainingFunction(node) || getThisParameter(container))) { - var thisType = getThisTypeOfDeclaration(container) || isInJS && getTypeForThisExpressionFromJSDoc(container); - if (!thisType) { - var className = getClassNameFromPrototypeMethod(container); - if (isInJS && className) { - var classSymbol = checkExpression(className).symbol; - if (classSymbol && classSymbol.members && classSymbol.flags & 16 /* Function */) { - thisType = getDeclaredTypeOfSymbol(classSymbol).thisType; - } - } - else if (isJSConstructor(container)) { - thisType = getDeclaredTypeOfSymbol(getMergedSymbol(container.symbol)).thisType; - } - thisType || (thisType = getContextualThisParameterType(container)); - } - if (thisType) { - return getFlowTypeOfReference(node, thisType); - } - } - if (isClassLike(container.parent)) { - var symbol = getSymbolOfDeclaration(container.parent); - var type = isStatic(container) ? getTypeOfSymbol(symbol) : getDeclaredTypeOfSymbol(symbol).thisType; - return getFlowTypeOfReference(node, type); - } - if (isSourceFile(container)) { - if (container.commonJsModuleIndicator) { - var fileSymbol = getSymbolOfDeclaration(container); - return fileSymbol && getTypeOfSymbol(fileSymbol); - } - else if (container.externalModuleIndicator) { - return undefinedType; - } - else if (includeGlobalThis) { - return getTypeOfSymbol(globalThisSymbol); - } - } - } - function getExplicitThisType(node) { - var container = getThisContainer(node, - /*includeArrowFunctions*/ - false, - /*includeClassComputedPropertyName*/ - false); - if (isFunctionLike(container)) { - var signature = getSignatureFromDeclaration(container); - if (signature.thisParameter) { - return getExplicitTypeOfSymbol(signature.thisParameter); - } - } - if (isClassLike(container.parent)) { - var symbol = getSymbolOfDeclaration(container.parent); - return isStatic(container) ? getTypeOfSymbol(symbol) : getDeclaredTypeOfSymbol(symbol).thisType; - } - } - function getClassNameFromPrototypeMethod(container) { - if (container.kind === 218 /* FunctionExpression */ && isBinaryExpression(container.parent) && getAssignmentDeclarationKind(container.parent) === 3 /* PrototypeProperty */) { - return container.parent.left.expression.expression; - } - else if (container.kind === 174 /* MethodDeclaration */ && container.parent.kind === 210 /* ObjectLiteralExpression */ && isBinaryExpression(container.parent.parent) && getAssignmentDeclarationKind(container.parent.parent) === 6 /* Prototype */) { - return container.parent.parent.left.expression; - } - else if (container.kind === 218 /* FunctionExpression */ && container.parent.kind === 303 /* PropertyAssignment */ && container.parent.parent.kind === 210 /* ObjectLiteralExpression */ && isBinaryExpression(container.parent.parent.parent) && getAssignmentDeclarationKind(container.parent.parent.parent) === 6 /* Prototype */) { - return container.parent.parent.parent.left.expression; - } - else if (container.kind === 218 /* FunctionExpression */ && isPropertyAssignment(container.parent) && isIdentifier(container.parent.name) && (container.parent.name.escapedText === "value" || container.parent.name.escapedText === "get" || container.parent.name.escapedText === "set") && isObjectLiteralExpression(container.parent.parent) && isCallExpression(container.parent.parent.parent) && container.parent.parent.parent.arguments[2] === container.parent.parent && getAssignmentDeclarationKind(container.parent.parent.parent) === 9 /* ObjectDefinePrototypeProperty */) { - return container.parent.parent.parent.arguments[0].expression; - } - else if (isMethodDeclaration(container) && isIdentifier(container.name) && (container.name.escapedText === "value" || container.name.escapedText === "get" || container.name.escapedText === "set") && isObjectLiteralExpression(container.parent) && isCallExpression(container.parent.parent) && container.parent.parent.arguments[2] === container.parent && getAssignmentDeclarationKind(container.parent.parent) === 9 /* ObjectDefinePrototypeProperty */) { - return container.parent.parent.arguments[0].expression; - } - } - function getTypeForThisExpressionFromJSDoc(node) { - var thisTag = getJSDocThisTag(node); - if (thisTag && thisTag.typeExpression) { - return getTypeFromTypeNode(thisTag.typeExpression); - } - var signature = getSignatureOfTypeTag(node); - if (signature) { - return getThisTypeOfSignature(signature); - } - } - function isInConstructorArgumentInitializer(node, constructorDecl) { - return !!findAncestor(node, function (n) { return isFunctionLikeDeclaration(n) ? "quit" : n.kind === 169 /* Parameter */ && n.parent === constructorDecl; }); - } - function checkSuperExpression(node) { - var isCallExpression2 = node.parent.kind === 213 /* CallExpression */ && node.parent.expression === node; - var immediateContainer = getSuperContainer(node, - /*stopOnFunctions*/ - true); - var container = immediateContainer; - var needToCaptureLexicalThis = false; - var inAsyncFunction = false; - if (!isCallExpression2) { - while (container && container.kind === 219 /* ArrowFunction */) { - if (hasSyntacticModifier(container, 512 /* Async */)) - inAsyncFunction = true; - container = getSuperContainer(container, - /*stopOnFunctions*/ - true); - needToCaptureLexicalThis = languageVersion < 2 /* ES2015 */; - } - if (container && hasSyntacticModifier(container, 512 /* Async */)) - inAsyncFunction = true; - } - var nodeCheckFlag = 0; - if (!container || !isLegalUsageOfSuperExpression(container)) { - var current = findAncestor(node, function (n) { return n === container ? "quit" : n.kind === 167; } /* ComputedPropertyName */); - if (current && current.kind === 167 /* ComputedPropertyName */) { - error2(node, Diagnostics.super_cannot_be_referenced_in_a_computed_property_name); - } - else if (isCallExpression2) { - error2(node, Diagnostics.Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors); - } - else if (!container || !container.parent || !(isClassLike(container.parent) || container.parent.kind === 210 /* ObjectLiteralExpression */)) { - error2(node, Diagnostics.super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions); - } - else { - error2(node, Diagnostics.super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class); - } - return errorType; - } - if (!isCallExpression2 && immediateContainer.kind === 176 /* Constructor */) { - checkThisBeforeSuper(node, container, Diagnostics.super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class); - } - if (isStatic(container) || isCallExpression2) { - nodeCheckFlag = 32 /* SuperStatic */; - if (!isCallExpression2 && languageVersion >= 2 /* ES2015 */ && languageVersion <= 8 /* ES2021 */ && (isPropertyDeclaration(container) || isClassStaticBlockDeclaration(container))) { - forEachEnclosingBlockScopeContainer(node.parent, function (current) { - if (!isSourceFile(current) || isExternalOrCommonJsModule(current)) { - getNodeLinks(current).flags |= 2097152 /* ContainsSuperPropertyInStaticInitializer */; - } - }); - } - } - else { - nodeCheckFlag = 16 /* SuperInstance */; - } - getNodeLinks(node).flags |= nodeCheckFlag; - if (container.kind === 174 /* MethodDeclaration */ && inAsyncFunction) { - if (isSuperProperty(node.parent) && isAssignmentTarget(node.parent)) { - getNodeLinks(container).flags |= 256 /* MethodWithSuperPropertyAssignmentInAsync */; - } - else { - getNodeLinks(container).flags |= 128 /* MethodWithSuperPropertyAccessInAsync */; - } - } - if (needToCaptureLexicalThis) { - captureLexicalThis(node.parent, container); - } - if (container.parent.kind === 210 /* ObjectLiteralExpression */) { - if (languageVersion < 2 /* ES2015 */) { - error2(node, Diagnostics.super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_higher); - return errorType; - } - else { - return anyType; - } - } - var classLikeDeclaration = container.parent; - if (!getClassExtendsHeritageElement(classLikeDeclaration)) { - error2(node, Diagnostics.super_can_only_be_referenced_in_a_derived_class); - return errorType; - } - var classType = getDeclaredTypeOfSymbol(getSymbolOfDeclaration(classLikeDeclaration)); - var baseClassType = classType && getBaseTypes(classType)[0]; - if (!baseClassType) { - return errorType; - } - if (container.kind === 176 /* Constructor */ && isInConstructorArgumentInitializer(node, container)) { - error2(node, Diagnostics.super_cannot_be_referenced_in_constructor_arguments); - return errorType; - } - return nodeCheckFlag === 32 /* SuperStatic */ ? getBaseConstructorTypeOfClass(classType) : getTypeWithThisArgument(baseClassType, classType.thisType); - function isLegalUsageOfSuperExpression(container2) { - if (isCallExpression2) { - return container2.kind === 176 /* Constructor */; - } - else { - if (isClassLike(container2.parent) || container2.parent.kind === 210 /* ObjectLiteralExpression */) { - if (isStatic(container2)) { - return container2.kind === 174 /* MethodDeclaration */ || container2.kind === 173 /* MethodSignature */ || container2.kind === 177 /* GetAccessor */ || container2.kind === 178 /* SetAccessor */ || container2.kind === 172 /* PropertyDeclaration */ || container2.kind === 175 /* ClassStaticBlockDeclaration */; - } - else { - return container2.kind === 174 /* MethodDeclaration */ || container2.kind === 173 /* MethodSignature */ || container2.kind === 177 /* GetAccessor */ || container2.kind === 178 /* SetAccessor */ || container2.kind === 172 /* PropertyDeclaration */ || container2.kind === 171 /* PropertySignature */ || container2.kind === 176 /* Constructor */; - } - } - } - return false; - } - } - function getContainingObjectLiteral(func) { - return (func.kind === 174 /* MethodDeclaration */ || func.kind === 177 /* GetAccessor */ || func.kind === 178 /* SetAccessor */) && func.parent.kind === 210 /* ObjectLiteralExpression */ ? func.parent : func.kind === 218 /* FunctionExpression */ && func.parent.kind === 303 /* PropertyAssignment */ ? func.parent.parent : void 0; - } - function getThisTypeArgument(type) { - return getObjectFlags(type) & 4 /* Reference */ && type.target === globalThisType ? getTypeArguments(type)[0] : void 0; - } - function getThisTypeFromContextualType(type) { - return mapType(type, function (t) { - return t.flags & 2097152 /* Intersection */ ? forEach(t.types, getThisTypeArgument) : getThisTypeArgument(t); - }); - } - function getThisTypeOfObjectLiteralFromContextualType(containingLiteral, contextualType) { - var literal = containingLiteral; - var type = contextualType; - while (type) { - var thisType = getThisTypeFromContextualType(type); - if (thisType) { - return thisType; - } - if (literal.parent.kind !== 303 /* PropertyAssignment */) { - break; - } - literal = literal.parent.parent; - type = getApparentTypeOfContextualType(literal, - /*contextFlags*/ - void 0); - } - } - function getContextualThisParameterType(func) { - if (func.kind === 219 /* ArrowFunction */) { - return void 0; - } - if (isContextSensitiveFunctionOrObjectLiteralMethod(func)) { - var contextualSignature = getContextualSignature(func); - if (contextualSignature) { - var thisParameter = contextualSignature.thisParameter; - if (thisParameter) { - return getTypeOfSymbol(thisParameter); - } - } - } - var inJs = isInJSFile(func); - if (noImplicitThis || inJs) { - var containingLiteral = getContainingObjectLiteral(func); - if (containingLiteral) { - var contextualType = getApparentTypeOfContextualType(containingLiteral, - /*contextFlags*/ - void 0); - var thisType = getThisTypeOfObjectLiteralFromContextualType(containingLiteral, contextualType); - if (thisType) { - return instantiateType(thisType, getMapperFromContext(getInferenceContext(containingLiteral))); - } - return getWidenedType(contextualType ? getNonNullableType(contextualType) : checkExpressionCached(containingLiteral)); - } - var parent2 = walkUpParenthesizedExpressions(func.parent); - if (parent2.kind === 226 /* BinaryExpression */ && parent2.operatorToken.kind === 64 /* EqualsToken */) { - var target = parent2.left; - if (isAccessExpression(target)) { - var expression = target.expression; - if (inJs && isIdentifier(expression)) { - var sourceFile = getSourceFileOfNode(parent2); - if (sourceFile.commonJsModuleIndicator && getResolvedSymbol(expression) === sourceFile.symbol) { - return void 0; - } - } - return getWidenedType(checkExpressionCached(expression)); - } - } - } - return void 0; - } - function getContextuallyTypedParameterType(parameter) { - var func = parameter.parent; - if (!isContextSensitiveFunctionOrObjectLiteralMethod(func)) { - return void 0; - } - var iife = getImmediatelyInvokedFunctionExpression(func); - if (iife && iife.arguments) { - var args = getEffectiveCallArguments(iife); - var indexOfParameter = func.parameters.indexOf(parameter); - if (parameter.dotDotDotToken) { - return getSpreadArgumentType(args, indexOfParameter, args.length, anyType, - /*context*/ - void 0, 0 /* Normal */); - } - var links = getNodeLinks(iife); - var cached = links.resolvedSignature; - links.resolvedSignature = anySignature; - var type = indexOfParameter < args.length ? getWidenedLiteralType(checkExpression(args[indexOfParameter])) : parameter.initializer ? void 0 : undefinedWideningType; - links.resolvedSignature = cached; - return type; - } - var contextualSignature = getContextualSignature(func); - if (contextualSignature) { - var index = func.parameters.indexOf(parameter) - (getThisParameter(func) ? 1 : 0); - return parameter.dotDotDotToken && lastOrUndefined(func.parameters) === parameter ? getRestTypeAtPosition(contextualSignature, index) : tryGetTypeAtPosition(contextualSignature, index); - } - } - function getContextualTypeForVariableLikeDeclaration(declaration, contextFlags) { - var typeNode = getEffectiveTypeAnnotationNode(declaration) || (isInJSFile(declaration) ? tryGetJSDocSatisfiesTypeNode(declaration) : void 0); - if (typeNode) { - return getTypeFromTypeNode(typeNode); - } - switch (declaration.kind) { - case 169 /* Parameter */: - return getContextuallyTypedParameterType(declaration); - case 208 /* BindingElement */: - return getContextualTypeForBindingElement(declaration, contextFlags); - case 172 /* PropertyDeclaration */: - if (isStatic(declaration)) { - return getContextualTypeForStaticPropertyDeclaration(declaration, contextFlags); - } - } - } - function getContextualTypeForBindingElement(declaration, contextFlags) { - var parent2 = declaration.parent.parent; - var name = declaration.propertyName || declaration.name; - var parentType = getContextualTypeForVariableLikeDeclaration(parent2, contextFlags) || parent2.kind !== 208 /* BindingElement */ && parent2.initializer && checkDeclarationInitializer(parent2, declaration.dotDotDotToken ? 64 /* RestBindingElement */ : 0 /* Normal */); - if (!parentType || isBindingPattern(name) || isComputedNonLiteralName(name)) - return void 0; - if (parent2.name.kind === 207 /* ArrayBindingPattern */) { - var index = indexOfNode(declaration.parent.elements, declaration); - if (index < 0) - return void 0; - return getContextualTypeForElementExpression(parentType, index); - } - var nameType = getLiteralTypeFromPropertyName(name); - if (isTypeUsableAsPropertyName(nameType)) { - var text = getPropertyNameFromType(nameType); - return getTypeOfPropertyOfType(parentType, text); - } - } - function getContextualTypeForStaticPropertyDeclaration(declaration, contextFlags) { - var parentType = isExpression(declaration.parent) && getContextualType2(declaration.parent, contextFlags); - if (!parentType) - return void 0; - return getTypeOfPropertyOfContextualType(parentType, getSymbolOfDeclaration(declaration).escapedName); - } - function getContextualTypeForInitializerExpression(node, contextFlags) { - var declaration = node.parent; - if (hasInitializer(declaration) && node === declaration.initializer) { - var result = getContextualTypeForVariableLikeDeclaration(declaration, contextFlags); - if (result) { - return result; - } - if (!(contextFlags & 8 /* SkipBindingPatterns */) && isBindingPattern(declaration.name) && declaration.name.elements.length > 0) { - return getTypeFromBindingPattern(declaration.name, - /*includePatternInType*/ - true, - /*reportErrors*/ - false); - } - } - return void 0; - } - function getContextualTypeForReturnExpression(node, contextFlags) { - var func = getContainingFunction(node); - if (func) { - var contextualReturnType = getContextualReturnType(func, contextFlags); - if (contextualReturnType) { - var functionFlags = getFunctionFlags(func); - if (functionFlags & 1 /* Generator */) { - var isAsyncGenerator_1 = (functionFlags & 2 /* Async */) !== 0; - if (contextualReturnType.flags & 1048576 /* Union */) { - contextualReturnType = filterType(contextualReturnType, function (type) { return !!getIterationTypeOfGeneratorFunctionReturnType(1 /* Return */, type, isAsyncGenerator_1); }); - } - var iterationReturnType = getIterationTypeOfGeneratorFunctionReturnType(1 /* Return */, contextualReturnType, (functionFlags & 2 /* Async */) !== 0); - if (!iterationReturnType) { - return void 0; - } - contextualReturnType = iterationReturnType; - } - if (functionFlags & 2 /* Async */) { - var contextualAwaitedType = mapType(contextualReturnType, getAwaitedTypeNoAlias); - return contextualAwaitedType && getUnionType([contextualAwaitedType, createPromiseLikeType(contextualAwaitedType)]); - } - return contextualReturnType; - } - } - return void 0; - } - function getContextualTypeForAwaitOperand(node, contextFlags) { - var contextualType = getContextualType2(node, contextFlags); - if (contextualType) { - var contextualAwaitedType = getAwaitedTypeNoAlias(contextualType); - return contextualAwaitedType && getUnionType([contextualAwaitedType, createPromiseLikeType(contextualAwaitedType)]); - } - return void 0; - } - function getContextualTypeForYieldOperand(node, contextFlags) { - var func = getContainingFunction(node); - if (func) { - var functionFlags = getFunctionFlags(func); - var contextualReturnType = getContextualReturnType(func, contextFlags); - if (contextualReturnType) { - var isAsyncGenerator_2 = (functionFlags & 2 /* Async */) !== 0; - if (!node.asteriskToken && contextualReturnType.flags & 1048576 /* Union */) { - contextualReturnType = filterType(contextualReturnType, function (type) { return !!getIterationTypeOfGeneratorFunctionReturnType(1 /* Return */, type, isAsyncGenerator_2); }); - } - return node.asteriskToken ? contextualReturnType : getIterationTypeOfGeneratorFunctionReturnType(0 /* Yield */, contextualReturnType, isAsyncGenerator_2); - } - } - return void 0; - } - function isInParameterInitializerBeforeContainingFunction(node) { - var inBindingInitializer = false; - while (node.parent && !isFunctionLike(node.parent)) { - if (isParameter(node.parent) && (inBindingInitializer || node.parent.initializer === node)) { - return true; - } - if (isBindingElement(node.parent) && node.parent.initializer === node) { - inBindingInitializer = true; - } - node = node.parent; - } - return false; - } - function getContextualIterationType(kind, functionDecl) { - var isAsync = !!(getFunctionFlags(functionDecl) & 2 /* Async */); - var contextualReturnType = getContextualReturnType(functionDecl, - /*contextFlags*/ - void 0); - if (contextualReturnType) { - return getIterationTypeOfGeneratorFunctionReturnType(kind, contextualReturnType, isAsync) || void 0; - } - return void 0; - } - function getContextualReturnType(functionDecl, contextFlags) { - var returnType = getReturnTypeFromAnnotation(functionDecl); - if (returnType) { - return returnType; - } - var signature = getContextualSignatureForFunctionLikeDeclaration(functionDecl); - if (signature && !isResolvingReturnTypeOfSignature(signature)) { - return getReturnTypeOfSignature(signature); - } - var iife = getImmediatelyInvokedFunctionExpression(functionDecl); - if (iife) { - return getContextualType2(iife, contextFlags); - } - return void 0; - } - function getContextualTypeForArgument(callTarget, arg) { - var args = getEffectiveCallArguments(callTarget); - var argIndex = args.indexOf(arg); - return argIndex === -1 ? void 0 : getContextualTypeForArgumentAtIndex(callTarget, argIndex); - } - function getContextualTypeForArgumentAtIndex(callTarget, argIndex) { - if (isImportCall(callTarget)) { - return argIndex === 0 ? stringType : argIndex === 1 ? getGlobalImportCallOptionsType( - /*reportErrors*/ - false) : anyType; - } - var signature = getNodeLinks(callTarget).resolvedSignature === resolvingSignature ? resolvingSignature : getResolvedSignature(callTarget); - if (isJsxOpeningLikeElement(callTarget) && argIndex === 0) { - return getEffectiveFirstArgumentForJsxSignature(signature, callTarget); - } - var restIndex = signature.parameters.length - 1; - return signatureHasRestParameter(signature) && argIndex >= restIndex ? getIndexedAccessType(getTypeOfSymbol(signature.parameters[restIndex]), getNumberLiteralType(argIndex - restIndex), 256 /* Contextual */) : getTypeAtPosition(signature, argIndex); - } - function getContextualTypeForDecorator(decorator) { - var signature = getDecoratorCallSignature(decorator); - return signature ? getOrCreateTypeFromSignature(signature) : void 0; - } - function getContextualTypeForSubstitutionExpression(template, substitutionExpression) { - if (template.parent.kind === 215 /* TaggedTemplateExpression */) { - return getContextualTypeForArgument(template.parent, substitutionExpression); - } - return void 0; - } - function getContextualTypeForBinaryOperand(node, contextFlags) { - var binaryExpression = node.parent; - var left = binaryExpression.left, operatorToken = binaryExpression.operatorToken, right = binaryExpression.right; - switch (operatorToken.kind) { - case 64 /* EqualsToken */: - case 77 /* AmpersandAmpersandEqualsToken */: - case 76 /* BarBarEqualsToken */: - case 78 /* QuestionQuestionEqualsToken */: - return node === right ? getContextualTypeForAssignmentDeclaration(binaryExpression) : void 0; - case 57 /* BarBarToken */: - case 61 /* QuestionQuestionToken */: - var type = getContextualType2(binaryExpression, contextFlags); - return node === right && (type && type.pattern || !type && !isDefaultedExpandoInitializer(binaryExpression)) ? getTypeOfExpression(left) : type; - case 56 /* AmpersandAmpersandToken */: - case 28 /* CommaToken */: - return node === right ? getContextualType2(binaryExpression, contextFlags) : void 0; - default: - return void 0; - } - } - function getSymbolForExpression(e) { - if (canHaveSymbol(e) && e.symbol) { - return e.symbol; - } - if (isIdentifier(e)) { - return getResolvedSymbol(e); - } - if (isPropertyAccessExpression(e)) { - var lhsType = getTypeOfExpression(e.expression); - return isPrivateIdentifier(e.name) ? tryGetPrivateIdentifierPropertyOfType(lhsType, e.name) : getPropertyOfType(lhsType, e.name.escapedText); - } - if (isElementAccessExpression(e)) { - var propType = checkExpressionCached(e.argumentExpression); - if (!isTypeUsableAsPropertyName(propType)) { - return void 0; - } - var lhsType = getTypeOfExpression(e.expression); - return getPropertyOfType(lhsType, getPropertyNameFromType(propType)); - } - return void 0; - function tryGetPrivateIdentifierPropertyOfType(type, id) { - var lexicallyScopedSymbol = lookupSymbolForPrivateIdentifierDeclaration(id.escapedText, id); - return lexicallyScopedSymbol && getPrivateIdentifierPropertyOfType(type, lexicallyScopedSymbol); - } - } - function getContextualTypeForAssignmentDeclaration(binaryExpression) { - var _a, _b; - var kind = getAssignmentDeclarationKind(binaryExpression); - switch (kind) { - case 0 /* None */: - case 4 /* ThisProperty */: - var lhsSymbol = getSymbolForExpression(binaryExpression.left); - var decl = lhsSymbol && lhsSymbol.valueDeclaration; - if (decl && (isPropertyDeclaration(decl) || isPropertySignature(decl))) { - var overallAnnotation = getEffectiveTypeAnnotationNode(decl); - return overallAnnotation && instantiateType(getTypeFromTypeNode(overallAnnotation), getSymbolLinks(lhsSymbol).mapper) || (isPropertyDeclaration(decl) ? decl.initializer && getTypeOfExpression(binaryExpression.left) : void 0); - } - if (kind === 0 /* None */) { - return getTypeOfExpression(binaryExpression.left); - } - return getContextualTypeForThisPropertyAssignment(binaryExpression); - case 5 /* Property */: - if (isPossiblyAliasedThisProperty(binaryExpression, kind)) { - return getContextualTypeForThisPropertyAssignment(binaryExpression); - } - else if (!canHaveSymbol(binaryExpression.left) || !binaryExpression.left.symbol) { - return getTypeOfExpression(binaryExpression.left); - } - else { - var decl2 = binaryExpression.left.symbol.valueDeclaration; - if (!decl2) { - return void 0; - } - var lhs = cast(binaryExpression.left, isAccessExpression); - var overallAnnotation = getEffectiveTypeAnnotationNode(decl2); - if (overallAnnotation) { - return getTypeFromTypeNode(overallAnnotation); - } - else if (isIdentifier(lhs.expression)) { - var id = lhs.expression; - var parentSymbol = resolveName(id, id.escapedText, 111551 /* Value */, - /*nameNotFoundMessage*/ - void 0, id.escapedText, - /*isUse*/ - true); - if (parentSymbol) { - var annotated2 = parentSymbol.valueDeclaration && getEffectiveTypeAnnotationNode(parentSymbol.valueDeclaration); - if (annotated2) { - var nameStr = getElementOrPropertyAccessName(lhs); - if (nameStr !== void 0) { - return getTypeOfPropertyOfContextualType(getTypeFromTypeNode(annotated2), nameStr); - } - } - return void 0; - } - } - return isInJSFile(decl2) || decl2 === binaryExpression.left ? void 0 : getTypeOfExpression(binaryExpression.left); - } - case 1 /* ExportsProperty */: - case 6 /* Prototype */: - case 3 /* PrototypeProperty */: - case 2 /* ModuleExports */: - var valueDeclaration = void 0; - if (kind !== 2 /* ModuleExports */) { - valueDeclaration = canHaveSymbol(binaryExpression.left) ? (_a = binaryExpression.left.symbol) == null ? void 0 : _a.valueDeclaration : void 0; - } - valueDeclaration || (valueDeclaration = (_b = binaryExpression.symbol) == null ? void 0 : _b.valueDeclaration); - var annotated = valueDeclaration && getEffectiveTypeAnnotationNode(valueDeclaration); - return annotated ? getTypeFromTypeNode(annotated) : void 0; - case 7 /* ObjectDefinePropertyValue */: - case 8 /* ObjectDefinePropertyExports */: - case 9 /* ObjectDefinePrototypeProperty */: - return Debug.fail("Does not apply"); - default: - return Debug.assertNever(kind); - } - } - function isPossiblyAliasedThisProperty(declaration, kind) { - if (kind === void 0) { kind = getAssignmentDeclarationKind(declaration); } - if (kind === 4 /* ThisProperty */) { - return true; - } - if (!isInJSFile(declaration) || kind !== 5 /* Property */ || !isIdentifier(declaration.left.expression)) { - return false; - } - var name = declaration.left.expression.escapedText; - var symbol = resolveName(declaration.left, name, 111551 /* Value */, - /*nameNotFoundMessage*/ - void 0, - /*nameArg*/ - void 0, - /*isUse*/ - true, - /*excludeGlobals*/ - true); - return isThisInitializedDeclaration(symbol == null ? void 0 : symbol.valueDeclaration); - } - function getContextualTypeForThisPropertyAssignment(binaryExpression) { - if (!binaryExpression.symbol) - return getTypeOfExpression(binaryExpression.left); - if (binaryExpression.symbol.valueDeclaration) { - var annotated = getEffectiveTypeAnnotationNode(binaryExpression.symbol.valueDeclaration); - if (annotated) { - var type = getTypeFromTypeNode(annotated); - if (type) { - return type; - } - } - } - var thisAccess = cast(binaryExpression.left, isAccessExpression); - if (!isObjectLiteralMethod(getThisContainer(thisAccess.expression, - /*includeArrowFunctions*/ - false, - /*includeClassComputedPropertyName*/ - false))) { - return void 0; - } - var thisType = checkThisExpression(thisAccess.expression); - var nameStr = getElementOrPropertyAccessName(thisAccess); - return nameStr !== void 0 && getTypeOfPropertyOfContextualType(thisType, nameStr) || void 0; - } - function isCircularMappedProperty(symbol) { - return !!(getCheckFlags(symbol) & 262144 /* Mapped */ && !symbol.links.type && findResolutionCycleStartIndex(symbol, 0 /* Type */) >= 0); - } - function getTypeOfPropertyOfContextualType(type, name, nameType) { - return mapType(type, function (t) { - var _a; - if (isGenericMappedType(t) && !t.declaration.nameType) { - var constraint = getConstraintTypeFromMappedType(t); - var constraintOfConstraint = getBaseConstraintOfType(constraint) || constraint; - var propertyNameType = nameType || getStringLiteralType(unescapeLeadingUnderscores(name)); - if (isTypeAssignableTo(propertyNameType, constraintOfConstraint)) { - return substituteIndexedMappedType(t, propertyNameType); - } - } - else if (t.flags & 3670016 /* StructuredType */) { - var prop = getPropertyOfType(t, name); - if (prop) { - return isCircularMappedProperty(prop) ? void 0 : getTypeOfSymbol(prop); - } - if (isTupleType(t) && isNumericLiteralName(name) && +name >= 0) { - var restType = getElementTypeOfSliceOfTupleType(t, t.target.fixedLength, - /*endSkipCount*/ - 0, - /*writing*/ - false, - /*noReductions*/ - true); - if (restType) { - return restType; - } - } - return (_a = findApplicableIndexInfo(getIndexInfosOfStructuredType(t), nameType || getStringLiteralType(unescapeLeadingUnderscores(name)))) == null ? void 0 : _a.type; - } - return void 0; - }, - /*noReductions*/ - true); - } - function getContextualTypeForObjectLiteralMethod(node, contextFlags) { - Debug.assert(isObjectLiteralMethod(node)); - if (node.flags & 67108864 /* InWithStatement */) { - return void 0; - } - return getContextualTypeForObjectLiteralElement(node, contextFlags); - } - function getContextualTypeForObjectLiteralElement(element, contextFlags) { - var objectLiteral = element.parent; - var propertyAssignmentType = isPropertyAssignment(element) && getContextualTypeForVariableLikeDeclaration(element, contextFlags); - if (propertyAssignmentType) { - return propertyAssignmentType; - } - var type = getApparentTypeOfContextualType(objectLiteral, contextFlags); - if (type) { - if (hasBindableName(element)) { - var symbol = getSymbolOfDeclaration(element); - return getTypeOfPropertyOfContextualType(type, symbol.escapedName, getSymbolLinks(symbol).nameType); - } - if (hasDynamicName(element)) { - var name_46 = getNameOfDeclaration(element); - if (name_46 && isComputedPropertyName(name_46)) { - var exprType = checkExpression(name_46.expression); - var propType = isTypeUsableAsPropertyName(exprType) && getTypeOfPropertyOfContextualType(type, getPropertyNameFromType(exprType)); - if (propType) { - return propType; - } - } - } - if (element.name) { - var nameType_2 = getLiteralTypeFromPropertyName(element.name); - return mapType(type, function (t) { - var _a; - return (_a = findApplicableIndexInfo(getIndexInfosOfStructuredType(t), nameType_2)) == null ? void 0 : _a.type; - }, - /*noReductions*/ - true); - } - } - return void 0; - } - function getSpreadIndices(elements) { - var first2, last2; - for (var i = 0; i < elements.length; i++) { - if (isSpreadElement(elements[i])) { - first2 !== null && first2 !== void 0 ? first2 : (first2 = i); - last2 = i; - } - } - return { first: first2, last: last2 }; - } - function getContextualTypeForElementExpression(type, index, length2, firstSpreadIndex, lastSpreadIndex) { - return type && mapType(type, function (t) { - if (isTupleType(t)) { - if ((firstSpreadIndex === void 0 || index < firstSpreadIndex) && index < t.target.fixedLength) { - return getTypeArguments(t)[index]; - } - var offset = length2 !== void 0 && (lastSpreadIndex === void 0 || index > lastSpreadIndex) ? length2 - index : 0; - var fixedEndLength = offset > 0 && t.target.hasRestElement ? getEndElementCount(t.target, 3 /* Fixed */) : 0; - if (offset > 0 && offset <= fixedEndLength) { - return getTypeArguments(t)[getTypeReferenceArity(t) - offset]; - } - return getElementTypeOfSliceOfTupleType(t, firstSpreadIndex === void 0 ? t.target.fixedLength : Math.min(t.target.fixedLength, firstSpreadIndex), length2 === void 0 || lastSpreadIndex === void 0 ? fixedEndLength : Math.min(fixedEndLength, length2 - lastSpreadIndex), - /*writing*/ - false, - /*noReductions*/ - true); - } - return (!firstSpreadIndex || index < firstSpreadIndex) && getTypeOfPropertyOfContextualType(t, "" + index) || getIteratedTypeOrElementType(1 /* Element */, t, undefinedType, - /*errorNode*/ - void 0, - /*checkAssignability*/ - false); - }, - /*noReductions*/ - true); - } - function getContextualTypeForConditionalOperand(node, contextFlags) { - var conditional = node.parent; - return node === conditional.whenTrue || node === conditional.whenFalse ? getContextualType2(conditional, contextFlags) : void 0; - } - function getContextualTypeForChildJsxExpression(node, child, contextFlags) { - var attributesType = getApparentTypeOfContextualType(node.openingElement.attributes, contextFlags); - var jsxChildrenPropertyName = getJsxElementChildrenPropertyName(getJsxNamespaceAt(node)); - if (!(attributesType && !isTypeAny(attributesType) && jsxChildrenPropertyName && jsxChildrenPropertyName !== "")) { - return void 0; - } - var realChildren = getSemanticJsxChildren(node.children); - var childIndex = realChildren.indexOf(child); - var childFieldType = getTypeOfPropertyOfContextualType(attributesType, jsxChildrenPropertyName); - return childFieldType && (realChildren.length === 1 ? childFieldType : mapType(childFieldType, function (t) { - if (isArrayLikeType(t)) { - return getIndexedAccessType(t, getNumberLiteralType(childIndex)); - } - else { - return t; - } - }, - /*noReductions*/ - true)); - } - function getContextualTypeForJsxExpression(node, contextFlags) { - var exprParent = node.parent; - return isJsxAttributeLike(exprParent) ? getContextualType2(node, contextFlags) : isJsxElement(exprParent) ? getContextualTypeForChildJsxExpression(exprParent, node, contextFlags) : void 0; - } - function getContextualTypeForJsxAttribute(attribute, contextFlags) { - if (isJsxAttribute(attribute)) { - var attributesType = getApparentTypeOfContextualType(attribute.parent, contextFlags); - if (!attributesType || isTypeAny(attributesType)) { - return void 0; - } - return getTypeOfPropertyOfContextualType(attributesType, getEscapedTextOfJsxAttributeName(attribute.name)); - } - else { - return getContextualType2(attribute.parent, contextFlags); - } - } - function isPossiblyDiscriminantValue(node) { - switch (node.kind) { - case 11 /* StringLiteral */: - case 9 /* NumericLiteral */: - case 10 /* BigIntLiteral */: - case 15 /* NoSubstitutionTemplateLiteral */: - case 228 /* TemplateExpression */: - case 112 /* TrueKeyword */: - case 97 /* FalseKeyword */: - case 106 /* NullKeyword */: - case 80 /* Identifier */: - case 157 /* UndefinedKeyword */: - return true; - case 211 /* PropertyAccessExpression */: - case 217 /* ParenthesizedExpression */: - return isPossiblyDiscriminantValue(node.expression); - case 294 /* JsxExpression */: - return !node.expression || isPossiblyDiscriminantValue(node.expression); - } - return false; - } - function discriminateContextualTypeByObjectMembers(node, contextualType) { - return getMatchingUnionConstituentForObjectLiteral(contextualType, node) || discriminateTypeByDiscriminableItems(contextualType, concatenate(map(filter(node.properties, function (p) { return !!p.symbol && p.kind === 303 /* PropertyAssignment */ && isPossiblyDiscriminantValue(p.initializer) && isDiscriminantProperty(contextualType, p.symbol.escapedName); }), function (prop) { return [function () { return getContextFreeTypeOfExpression(prop.initializer); }, prop.symbol.escapedName]; }), map(filter(getPropertiesOfType(contextualType), function (s) { - var _a; - return !!(s.flags & 16777216 /* Optional */) && !!((_a = node == null ? void 0 : node.symbol) == null ? void 0 : _a.members) && !node.symbol.members.has(s.escapedName) && isDiscriminantProperty(contextualType, s.escapedName); - }), function (s) { return [function () { return undefinedType; }, s.escapedName]; })), isTypeAssignableTo); - } - function discriminateContextualTypeByJSXAttributes(node, contextualType) { - var jsxChildrenPropertyName = getJsxElementChildrenPropertyName(getJsxNamespaceAt(node)); - return discriminateTypeByDiscriminableItems(contextualType, concatenate(map(filter(node.properties, function (p) { return !!p.symbol && p.kind === 291 /* JsxAttribute */ && isDiscriminantProperty(contextualType, p.symbol.escapedName) && (!p.initializer || isPossiblyDiscriminantValue(p.initializer)); }), function (prop) { return [!prop.initializer ? function () { return trueType; } : function () { return getContextFreeTypeOfExpression(prop.initializer); }, prop.symbol.escapedName]; }), map(filter(getPropertiesOfType(contextualType), function (s) { - var _a; - if (!(s.flags & 16777216 /* Optional */) || !((_a = node == null ? void 0 : node.symbol) == null ? void 0 : _a.members)) { - return false; - } - var element = node.parent.parent; - if (s.escapedName === jsxChildrenPropertyName && isJsxElement(element) && getSemanticJsxChildren(element.children).length) { - return false; - } - return !node.symbol.members.has(s.escapedName) && isDiscriminantProperty(contextualType, s.escapedName); - }), function (s) { return [function () { return undefinedType; }, s.escapedName]; })), isTypeAssignableTo); - } - function getApparentTypeOfContextualType(node, contextFlags) { - var contextualType = isObjectLiteralMethod(node) ? getContextualTypeForObjectLiteralMethod(node, contextFlags) : getContextualType2(node, contextFlags); - var instantiatedType = instantiateContextualType(contextualType, node, contextFlags); - if (instantiatedType && !(contextFlags && contextFlags & 2 /* NoConstraints */ && instantiatedType.flags & 8650752 /* TypeVariable */)) { - var apparentType = mapType(instantiatedType, - // When obtaining apparent type of *contextual* type we don't want to get apparent type of mapped types. - // That would evaluate mapped types with array or tuple type constraints too eagerly - // and thus it would prevent `getTypeOfPropertyOfContextualType` from obtaining per-position contextual type for elements of array literal expressions. - // Apparent type of other mapped types is already the mapped type itself so we can just avoid calling `getApparentType` here for all mapped types. - function (t) { return getObjectFlags(t) & 32 /* Mapped */ ? t : getApparentType(t); }, - /*noReductions*/ - true); - return apparentType.flags & 1048576 /* Union */ && isObjectLiteralExpression(node) ? discriminateContextualTypeByObjectMembers(node, apparentType) : apparentType.flags & 1048576 /* Union */ && isJsxAttributes(node) ? discriminateContextualTypeByJSXAttributes(node, apparentType) : apparentType; - } - } - function instantiateContextualType(contextualType, node, contextFlags) { - if (contextualType && maybeTypeOfKind(contextualType, 465829888 /* Instantiable */)) { - var inferenceContext = getInferenceContext(node); - if (inferenceContext && contextFlags & 1 /* Signature */ && some(inferenceContext.inferences, hasInferenceCandidatesOrDefault)) { - return instantiateInstantiableTypes(contextualType, inferenceContext.nonFixingMapper); - } - if (inferenceContext == null ? void 0 : inferenceContext.returnMapper) { - var type = instantiateInstantiableTypes(contextualType, inferenceContext.returnMapper); - return type.flags & 1048576 /* Union */ && containsType(type.types, regularFalseType) && containsType(type.types, regularTrueType) ? filterType(type, function (t) { return t !== regularFalseType && t !== regularTrueType; }) : type; - } - } - return contextualType; - } - function instantiateInstantiableTypes(type, mapper) { - if (type.flags & 465829888 /* Instantiable */) { - return instantiateType(type, mapper); - } - if (type.flags & 1048576 /* Union */) { - return getUnionType(map(type.types, function (t) { return instantiateInstantiableTypes(t, mapper); }), 0 /* None */); - } - if (type.flags & 2097152 /* Intersection */) { - return getIntersectionType(map(type.types, function (t) { return instantiateInstantiableTypes(t, mapper); })); - } - return type; - } - function getContextualType2(node, contextFlags) { - var _t; - var _a; - if (node.flags & 67108864 /* InWithStatement */) { - return void 0; - } - var index = findContextualNode(node, - /*includeCaches*/ - !contextFlags); - if (index >= 0) { - return contextualTypes[index]; - } - var parent2 = node.parent; - switch (parent2.kind) { - case 260 /* VariableDeclaration */: - case 169 /* Parameter */: - case 172 /* PropertyDeclaration */: - case 171 /* PropertySignature */: - case 208 /* BindingElement */: - return getContextualTypeForInitializerExpression(node, contextFlags); - case 219 /* ArrowFunction */: - case 253 /* ReturnStatement */: - return getContextualTypeForReturnExpression(node, contextFlags); - case 229 /* YieldExpression */: - return getContextualTypeForYieldOperand(parent2, contextFlags); - case 223 /* AwaitExpression */: - return getContextualTypeForAwaitOperand(parent2, contextFlags); - case 213 /* CallExpression */: - case 214 /* NewExpression */: - return getContextualTypeForArgument(parent2, node); - case 170 /* Decorator */: - return getContextualTypeForDecorator(parent2); - case 216 /* TypeAssertionExpression */: - case 234 /* AsExpression */: - return isConstTypeReference(parent2.type) ? getContextualType2(parent2, contextFlags) : getTypeFromTypeNode(parent2.type); - case 226 /* BinaryExpression */: - return getContextualTypeForBinaryOperand(node, contextFlags); - case 303 /* PropertyAssignment */: - case 304 /* ShorthandPropertyAssignment */: - return getContextualTypeForObjectLiteralElement(parent2, contextFlags); - case 305 /* SpreadAssignment */: - return getContextualType2(parent2.parent, contextFlags); - case 209 /* ArrayLiteralExpression */: { - var arrayLiteral = parent2; - var type = getApparentTypeOfContextualType(arrayLiteral, contextFlags); - var elementIndex = indexOfNode(arrayLiteral.elements, node); - var spreadIndices = (_t = (_a = getNodeLinks(arrayLiteral)).spreadIndices) !== null && _t !== void 0 ? _t : (_a.spreadIndices = getSpreadIndices(arrayLiteral.elements)); - return getContextualTypeForElementExpression(type, elementIndex, arrayLiteral.elements.length, spreadIndices.first, spreadIndices.last); - } - case 227 /* ConditionalExpression */: - return getContextualTypeForConditionalOperand(node, contextFlags); - case 239 /* TemplateSpan */: - Debug.assert(parent2.parent.kind === 228 /* TemplateExpression */); - return getContextualTypeForSubstitutionExpression(parent2.parent, node); - case 217 /* ParenthesizedExpression */: { - if (isInJSFile(parent2)) { - if (isJSDocSatisfiesExpression(parent2)) { - return getTypeFromTypeNode(getJSDocSatisfiesExpressionType(parent2)); - } - var typeTag = getJSDocTypeTag(parent2); - if (typeTag && !isConstTypeReference(typeTag.typeExpression.type)) { - return getTypeFromTypeNode(typeTag.typeExpression.type); - } - } - return getContextualType2(parent2, contextFlags); - } - case 235 /* NonNullExpression */: - return getContextualType2(parent2, contextFlags); - case 238 /* SatisfiesExpression */: - return getTypeFromTypeNode(parent2.type); - case 277 /* ExportAssignment */: - return tryGetTypeFromEffectiveTypeNode(parent2); - case 294 /* JsxExpression */: - return getContextualTypeForJsxExpression(parent2, contextFlags); - case 291 /* JsxAttribute */: - case 293 /* JsxSpreadAttribute */: - return getContextualTypeForJsxAttribute(parent2, contextFlags); - case 286 /* JsxOpeningElement */: - case 285 /* JsxSelfClosingElement */: - return getContextualJsxElementAttributesType(parent2, contextFlags); - } - return void 0; - } - function pushCachedContextualType(node) { - pushContextualType(node, getContextualType2(node, - /*contextFlags*/ - void 0), - /*isCache*/ - true); - } - function pushContextualType(node, type, isCache) { - contextualTypeNodes[contextualTypeCount] = node; - contextualTypes[contextualTypeCount] = type; - contextualIsCache[contextualTypeCount] = isCache; - contextualTypeCount++; - } - function popContextualType() { - contextualTypeCount--; - } - function findContextualNode(node, includeCaches) { - for (var i = contextualTypeCount - 1; i >= 0; i--) { - if (node === contextualTypeNodes[i] && (includeCaches || !contextualIsCache[i])) { - return i; - } - } - return -1; - } - function pushInferenceContext(node, inferenceContext) { - inferenceContextNodes[inferenceContextCount] = node; - inferenceContexts[inferenceContextCount] = inferenceContext; - inferenceContextCount++; - } - function popInferenceContext() { - inferenceContextCount--; - } - function getInferenceContext(node) { - for (var i = inferenceContextCount - 1; i >= 0; i--) { - if (isNodeDescendantOf(node, inferenceContextNodes[i])) { - return inferenceContexts[i]; - } - } - } - function getContextualJsxElementAttributesType(node, contextFlags) { - if (isJsxOpeningElement(node) && contextFlags !== 4 /* Completions */) { - var index = findContextualNode(node.parent, - /*includeCaches*/ - !contextFlags); - if (index >= 0) { - return contextualTypes[index]; - } - } - return getContextualTypeForArgumentAtIndex(node, 0); - } - function getEffectiveFirstArgumentForJsxSignature(signature, node) { - return getJsxReferenceKind(node) !== 0 /* Component */ ? getJsxPropsTypeFromCallSignature(signature, node) : getJsxPropsTypeFromClassType(signature, node); - } - function getJsxPropsTypeFromCallSignature(sig, context) { - var propsType = getTypeOfFirstParameterOfSignatureWithFallback(sig, unknownType); - propsType = getJsxManagedAttributesFromLocatedAttributes(context, getJsxNamespaceAt(context), propsType); - var intrinsicAttribs = getJsxType(JsxNames.IntrinsicAttributes, context); - if (!isErrorType(intrinsicAttribs)) { - propsType = intersectTypes(intrinsicAttribs, propsType); - } - return propsType; - } - function getJsxPropsTypeForSignatureFromMember(sig, forcedLookupLocation) { - var e_325, _t; - if (sig.compositeSignatures) { - var results = []; - try { - for (var _u = __values(sig.compositeSignatures), _v = _u.next(); !_v.done; _v = _u.next()) { - var signature = _v.value; - var instance = getReturnTypeOfSignature(signature); - if (isTypeAny(instance)) { - return instance; - } - var propType = getTypeOfPropertyOfType(instance, forcedLookupLocation); - if (!propType) { - return; - } - results.push(propType); - } - } - catch (e_325_1) { e_325 = { error: e_325_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_325) throw e_325.error; } - } - return getIntersectionType(results); - } - var instanceType = getReturnTypeOfSignature(sig); - return isTypeAny(instanceType) ? instanceType : getTypeOfPropertyOfType(instanceType, forcedLookupLocation); - } - function getStaticTypeOfReferencedJsxConstructor(context) { - if (isJsxIntrinsicTagName(context.tagName)) { - var result = getIntrinsicAttributesTypeFromJsxOpeningLikeElement(context); - var fakeSignature = createSignatureForJSXIntrinsic(context, result); - return getOrCreateTypeFromSignature(fakeSignature); - } - var tagType = checkExpressionCached(context.tagName); - if (tagType.flags & 128 /* StringLiteral */) { - var result = getIntrinsicAttributesTypeFromStringLiteralType(tagType, context); - if (!result) { - return errorType; - } - var fakeSignature = createSignatureForJSXIntrinsic(context, result); - return getOrCreateTypeFromSignature(fakeSignature); - } - return tagType; - } - function getJsxManagedAttributesFromLocatedAttributes(context, ns, attributesType) { - var managedSym = getJsxLibraryManagedAttributes(ns); - if (managedSym) { - var ctorType = getStaticTypeOfReferencedJsxConstructor(context); - var result = instantiateAliasOrInterfaceWithDefaults(managedSym, isInJSFile(context), ctorType, attributesType); - if (result) { - return result; - } - } - return attributesType; - } - function getJsxPropsTypeFromClassType(sig, context) { - var ns = getJsxNamespaceAt(context); - var forcedLookupLocation = getJsxElementPropertiesName(ns); - var attributesType = forcedLookupLocation === void 0 ? getTypeOfFirstParameterOfSignatureWithFallback(sig, unknownType) : forcedLookupLocation === "" ? getReturnTypeOfSignature(sig) : getJsxPropsTypeForSignatureFromMember(sig, forcedLookupLocation); - if (!attributesType) { - if (!!forcedLookupLocation && !!length(context.attributes.properties)) { - error2(context, Diagnostics.JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property, unescapeLeadingUnderscores(forcedLookupLocation)); - } - return unknownType; - } - attributesType = getJsxManagedAttributesFromLocatedAttributes(context, ns, attributesType); - if (isTypeAny(attributesType)) { - return attributesType; - } - else { - var apparentAttributesType = attributesType; - var intrinsicClassAttribs = getJsxType(JsxNames.IntrinsicClassAttributes, context); - if (!isErrorType(intrinsicClassAttribs)) { - var typeParams = getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(intrinsicClassAttribs.symbol); - var hostClassType = getReturnTypeOfSignature(sig); - var libraryManagedAttributeType = void 0; - if (typeParams) { - var inferredArgs = fillMissingTypeArguments([hostClassType], typeParams, getMinTypeArgumentCount(typeParams), isInJSFile(context)); - libraryManagedAttributeType = instantiateType(intrinsicClassAttribs, createTypeMapper(typeParams, inferredArgs)); - } - else - libraryManagedAttributeType = intrinsicClassAttribs; - apparentAttributesType = intersectTypes(libraryManagedAttributeType, apparentAttributesType); - } - var intrinsicAttribs = getJsxType(JsxNames.IntrinsicAttributes, context); - if (!isErrorType(intrinsicAttribs)) { - apparentAttributesType = intersectTypes(intrinsicAttribs, apparentAttributesType); - } - return apparentAttributesType; - } - } - function getIntersectedSignatures(signatures) { - return getStrictOptionValue(compilerOptions, "noImplicitAny") ? reduceLeft(signatures, function (left, right) { return left === right || !left ? left : compareTypeParametersIdentical(left.typeParameters, right.typeParameters) ? combineSignaturesOfIntersectionMembers(left, right) : void 0; }) : void 0; - } - function combineIntersectionThisParam(left, right, mapper) { - if (!left || !right) { - return left || right; - } - var thisType = getUnionType([getTypeOfSymbol(left), instantiateType(getTypeOfSymbol(right), mapper)]); - return createSymbolWithType(left, thisType); - } - function combineIntersectionParameters(left, right, mapper) { - var leftCount = getParameterCount(left); - var rightCount = getParameterCount(right); - var longest = leftCount >= rightCount ? left : right; - var shorter = longest === left ? right : left; - var longestCount = longest === left ? leftCount : rightCount; - var eitherHasEffectiveRest = hasEffectiveRestParameter(left) || hasEffectiveRestParameter(right); - var needsExtraRestElement = eitherHasEffectiveRest && !hasEffectiveRestParameter(longest); - var params = new Array(longestCount + (needsExtraRestElement ? 1 : 0)); - for (var i = 0; i < longestCount; i++) { - var longestParamType = tryGetTypeAtPosition(longest, i); - if (longest === right) { - longestParamType = instantiateType(longestParamType, mapper); - } - var shorterParamType = tryGetTypeAtPosition(shorter, i) || unknownType; - if (shorter === right) { - shorterParamType = instantiateType(shorterParamType, mapper); - } - var unionParamType = getUnionType([longestParamType, shorterParamType]); - var isRestParam = eitherHasEffectiveRest && !needsExtraRestElement && i === longestCount - 1; - var isOptional = i >= getMinArgumentCount(longest) && i >= getMinArgumentCount(shorter); - var leftName = i >= leftCount ? void 0 : getParameterNameAtPosition(left, i); - var rightName = i >= rightCount ? void 0 : getParameterNameAtPosition(right, i); - var paramName = leftName === rightName ? leftName : !leftName ? rightName : !rightName ? leftName : void 0; - var paramSymbol = createSymbol(1 /* FunctionScopedVariable */ | (isOptional && !isRestParam ? 16777216 /* Optional */ : 0), paramName || "arg".concat(i)); - paramSymbol.links.type = isRestParam ? createArrayType(unionParamType) : unionParamType; - params[i] = paramSymbol; - } - if (needsExtraRestElement) { - var restParamSymbol = createSymbol(1 /* FunctionScopedVariable */, "args"); - restParamSymbol.links.type = createArrayType(getTypeAtPosition(shorter, longestCount)); - if (shorter === right) { - restParamSymbol.links.type = instantiateType(restParamSymbol.links.type, mapper); - } - params[longestCount] = restParamSymbol; - } - return params; - } - function combineSignaturesOfIntersectionMembers(left, right) { - var typeParams = left.typeParameters || right.typeParameters; - var paramMapper; - if (left.typeParameters && right.typeParameters) { - paramMapper = createTypeMapper(right.typeParameters, left.typeParameters); - } - var declaration = left.declaration; - var params = combineIntersectionParameters(left, right, paramMapper); - var thisParam = combineIntersectionThisParam(left.thisParameter, right.thisParameter, paramMapper); - var minArgCount = Math.max(left.minArgumentCount, right.minArgumentCount); - var result = createSignature(declaration, typeParams, thisParam, params, - /*resolvedReturnType*/ - void 0, - /*resolvedTypePredicate*/ - void 0, minArgCount, (left.flags | right.flags) & 167 /* PropagatingFlags */); - result.compositeKind = 2097152 /* Intersection */; - result.compositeSignatures = concatenate(left.compositeKind === 2097152 /* Intersection */ && left.compositeSignatures || [left], [right]); - if (paramMapper) { - result.mapper = left.compositeKind === 2097152 /* Intersection */ && left.mapper && left.compositeSignatures ? combineTypeMappers(left.mapper, paramMapper) : paramMapper; - } - return result; - } - function getContextualCallSignature(type, node) { - var signatures = getSignaturesOfType(type, 0 /* Call */); - var applicableByArity = filter(signatures, function (s) { return !isAritySmaller(s, node); }); - return applicableByArity.length === 1 ? applicableByArity[0] : getIntersectedSignatures(applicableByArity); - } - function isAritySmaller(signature, target) { - var targetParameterCount = 0; - for (; targetParameterCount < target.parameters.length; targetParameterCount++) { - var param = target.parameters[targetParameterCount]; - if (param.initializer || param.questionToken || param.dotDotDotToken || isJSDocOptionalParameter(param)) { - break; - } - } - if (target.parameters.length && parameterIsThisKeyword(target.parameters[0])) { - targetParameterCount--; - } - return !hasEffectiveRestParameter(signature) && getParameterCount(signature) < targetParameterCount; - } - function getContextualSignatureForFunctionLikeDeclaration(node) { - return isFunctionExpressionOrArrowFunction(node) || isObjectLiteralMethod(node) ? getContextualSignature(node) : void 0; - } - function getContextualSignature(node) { - var e_326, _t; - Debug.assert(node.kind !== 174 /* MethodDeclaration */ || isObjectLiteralMethod(node)); - var typeTagSignature = getSignatureOfTypeTag(node); - if (typeTagSignature) { - return typeTagSignature; - } - var type = getApparentTypeOfContextualType(node, 1 /* Signature */); - if (!type) { - return void 0; - } - if (!(type.flags & 1048576 /* Union */)) { - return getContextualCallSignature(type, node); - } - var signatureList; - var types = type.types; - try { - for (var types_17 = __values(types), types_17_1 = types_17.next(); !types_17_1.done; types_17_1 = types_17.next()) { - var current = types_17_1.value; - var signature = getContextualCallSignature(current, node); - if (signature) { - if (!signatureList) { - signatureList = [signature]; - } - else if (!compareSignaturesIdentical(signatureList[0], signature, - /*partialMatch*/ - false, - /*ignoreThisTypes*/ - true, - /*ignoreReturnTypes*/ - true, compareTypesIdentical)) { - return void 0; - } - else { - signatureList.push(signature); - } - } - } - } - catch (e_326_1) { e_326 = { error: e_326_1 }; } - finally { - try { - if (types_17_1 && !types_17_1.done && (_t = types_17.return)) _t.call(types_17); - } - finally { if (e_326) throw e_326.error; } - } - if (signatureList) { - return signatureList.length === 1 ? signatureList[0] : createUnionSignature(signatureList[0], signatureList); - } - } - function checkSpreadExpression(node, checkMode) { - if (languageVersion < 2 /* ES2015 */) { - checkExternalEmitHelpers(node, compilerOptions.downlevelIteration ? 1536 /* SpreadIncludes */ : 1024 /* SpreadArray */); - } - var arrayOrIterableType = checkExpression(node.expression, checkMode); - return checkIteratedTypeOrElementType(33 /* Spread */, arrayOrIterableType, undefinedType, node.expression); - } - function checkSyntheticExpression(node) { - return node.isSpread ? getIndexedAccessType(node.type, numberType) : node.type; - } - function hasDefaultValue(node) { - return node.kind === 208 /* BindingElement */ && !!node.initializer || node.kind === 226 /* BinaryExpression */ && node.operatorToken.kind === 64 /* EqualsToken */; - } - function isSpreadIntoCallOrNew(node) { - var parent2 = walkUpParenthesizedExpressions(node.parent); - return isSpreadElement(parent2) && isCallOrNewExpression(parent2.parent); - } - function checkArrayLiteral(node, checkMode, forceTuple) { - var elements = node.elements; - var elementCount = elements.length; - var elementTypes = []; - var elementFlags = []; - pushCachedContextualType(node); - var inDestructuringPattern = isAssignmentTarget(node); - var inConstContext = isConstContext(node); - var contextualType = getApparentTypeOfContextualType(node, - /*contextFlags*/ - void 0); - var inTupleContext = isSpreadIntoCallOrNew(node) || !!contextualType && someType(contextualType, isTupleLikeType); - var hasOmittedExpression = false; - for (var i = 0; i < elementCount; i++) { - var e = elements[i]; - if (e.kind === 230 /* SpreadElement */) { - if (languageVersion < 2 /* ES2015 */) { - checkExternalEmitHelpers(e, compilerOptions.downlevelIteration ? 1536 /* SpreadIncludes */ : 1024 /* SpreadArray */); - } - var spreadType = checkExpression(e.expression, checkMode, forceTuple); - if (isArrayLikeType(spreadType)) { - elementTypes.push(spreadType); - elementFlags.push(8 /* Variadic */); - } - else if (inDestructuringPattern) { - var restElementType = getIndexTypeOfType(spreadType, numberType) || getIteratedTypeOrElementType(65 /* Destructuring */, spreadType, undefinedType, - /*errorNode*/ - void 0, - /*checkAssignability*/ - false) || unknownType; - elementTypes.push(restElementType); - elementFlags.push(4 /* Rest */); - } - else { - elementTypes.push(checkIteratedTypeOrElementType(33 /* Spread */, spreadType, undefinedType, e.expression)); - elementFlags.push(4 /* Rest */); - } - } - else if (exactOptionalPropertyTypes && e.kind === 232 /* OmittedExpression */) { - hasOmittedExpression = true; - elementTypes.push(undefinedOrMissingType); - elementFlags.push(2 /* Optional */); - } - else { - var type = checkExpressionForMutableLocation(e, checkMode, forceTuple); - elementTypes.push(addOptionality(type, - /*isProperty*/ - true, hasOmittedExpression)); - elementFlags.push(hasOmittedExpression ? 2 /* Optional */ : 1 /* Required */); - if (inTupleContext && checkMode && checkMode & 2 /* Inferential */ && !(checkMode & 4 /* SkipContextSensitive */) && isContextSensitive(e)) { - var inferenceContext = getInferenceContext(node); - Debug.assert(inferenceContext); - addIntraExpressionInferenceSite(inferenceContext, e, type); - } - } - } - popContextualType(); - if (inDestructuringPattern) { - return createTupleType(elementTypes, elementFlags); - } - if (forceTuple || inConstContext || inTupleContext) { - return createArrayLiteralType(createTupleType(elementTypes, elementFlags, - /*readonly*/ - inConstContext)); - } - return createArrayLiteralType(createArrayType(elementTypes.length ? getUnionType(sameMap(elementTypes, function (t, i) { return elementFlags[i] & 8 /* Variadic */ ? getIndexedAccessTypeOrUndefined(t, numberType) || anyType : t; }), 2 /* Subtype */) : strictNullChecks ? implicitNeverType : undefinedWideningType, inConstContext)); - } - function createArrayLiteralType(type) { - if (!(getObjectFlags(type) & 4 /* Reference */)) { - return type; - } - var literalType = type.literalType; - if (!literalType) { - literalType = type.literalType = cloneTypeReference(type); - literalType.objectFlags |= 16384 /* ArrayLiteral */ | 131072 /* ContainsObjectOrArrayLiteral */; - } - return literalType; - } - function isNumericName(name) { - switch (name.kind) { - case 167 /* ComputedPropertyName */: - return isNumericComputedName(name); - case 80 /* Identifier */: - return isNumericLiteralName(name.escapedText); - case 9 /* NumericLiteral */: - case 11 /* StringLiteral */: - return isNumericLiteralName(name.text); - default: - return false; - } - } - function isNumericComputedName(name) { - return isTypeAssignableToKind(checkComputedPropertyName(name), 296 /* NumberLike */); - } - function checkComputedPropertyName(node) { - var links = getNodeLinks(node.expression); - if (!links.resolvedType) { - if ((isTypeLiteralNode(node.parent.parent) || isClassLike(node.parent.parent) || isInterfaceDeclaration(node.parent.parent)) && isBinaryExpression(node.expression) && node.expression.operatorToken.kind === 103 /* InKeyword */ && node.parent.kind !== 177 /* GetAccessor */ && node.parent.kind !== 178 /* SetAccessor */) { - return links.resolvedType = errorType; - } - links.resolvedType = checkExpression(node.expression); - if (isPropertyDeclaration(node.parent) && !hasStaticModifier(node.parent) && isClassExpression(node.parent.parent)) { - var container = getEnclosingBlockScopeContainer(node.parent.parent); - var enclosingIterationStatement = getEnclosingIterationStatement(container); - if (enclosingIterationStatement) { - getNodeLinks(enclosingIterationStatement).flags |= 4096 /* LoopWithCapturedBlockScopedBinding */; - getNodeLinks(node).flags |= 32768 /* BlockScopedBindingInLoop */; - getNodeLinks(node.parent.parent).flags |= 32768 /* BlockScopedBindingInLoop */; - } - } - if (links.resolvedType.flags & 98304 /* Nullable */ || !isTypeAssignableToKind(links.resolvedType, 402653316 /* StringLike */ | 296 /* NumberLike */ | 12288 /* ESSymbolLike */) && !isTypeAssignableTo(links.resolvedType, stringNumberSymbolType)) { - error2(node, Diagnostics.A_computed_property_name_must_be_of_type_string_number_symbol_or_any); - } - } - return links.resolvedType; - } - function isSymbolWithNumericName(symbol) { - var _a; - var firstDecl = (_a = symbol.declarations) == null ? void 0 : _a[0]; - return isNumericLiteralName(symbol.escapedName) || firstDecl && isNamedDeclaration(firstDecl) && isNumericName(firstDecl.name); - } - function isSymbolWithSymbolName(symbol) { - var _a; - var firstDecl = (_a = symbol.declarations) == null ? void 0 : _a[0]; - return isKnownSymbol(symbol) || firstDecl && isNamedDeclaration(firstDecl) && isComputedPropertyName(firstDecl.name) && isTypeAssignableToKind(checkComputedPropertyName(firstDecl.name), 4096 /* ESSymbol */); - } - function getObjectLiteralIndexInfo(node, offset, properties, keyType) { - var propTypes = []; - for (var i = offset; i < properties.length; i++) { - var prop = properties[i]; - if (keyType === stringType && !isSymbolWithSymbolName(prop) || keyType === numberType && isSymbolWithNumericName(prop) || keyType === esSymbolType && isSymbolWithSymbolName(prop)) { - propTypes.push(getTypeOfSymbol(properties[i])); - } - } - var unionType = propTypes.length ? getUnionType(propTypes, 2 /* Subtype */) : undefinedType; - return createIndexInfo(keyType, unionType, isConstContext(node)); - } - function getImmediateAliasedSymbol(symbol) { - Debug.assert((symbol.flags & 2097152 /* Alias */) !== 0, "Should only get Alias here."); - var links = getSymbolLinks(symbol); - if (!links.immediateTarget) { - var node = getDeclarationOfAliasSymbol(symbol); - if (!node) - return Debug.fail(); - links.immediateTarget = getTargetOfAliasDeclaration(node, - /*dontRecursivelyResolve*/ - true); - } - return links.immediateTarget; - } - function checkObjectLiteral(node, checkMode /* Normal */) { - var e_327, _t, e_328, _u, e_329, _v; - if (checkMode === void 0) { checkMode = 0; } - var _a; - var inDestructuringPattern = isAssignmentTarget(node); - checkGrammarObjectLiteralExpression(node, inDestructuringPattern); - var allPropertiesTable = strictNullChecks ? createSymbolTable() : void 0; - var propertiesTable = createSymbolTable(); - var propertiesArray = []; - var spread = emptyObjectType; - pushCachedContextualType(node); - var contextualType = getApparentTypeOfContextualType(node, - /*contextFlags*/ - void 0); - var contextualTypeHasPattern = contextualType && contextualType.pattern && (contextualType.pattern.kind === 206 /* ObjectBindingPattern */ || contextualType.pattern.kind === 210 /* ObjectLiteralExpression */); - var inConstContext = isConstContext(node); - var checkFlags = inConstContext ? 8 /* Readonly */ : 0; - var isInJavascript = isInJSFile(node) && !isInJsonFile(node); - var enumTag = isInJavascript ? getJSDocEnumTag(node) : void 0; - var isJSObjectLiteral = !contextualType && isInJavascript && !enumTag; - var objectFlags = freshObjectLiteralFlag; - var patternWithComputedProperties = false; - var hasComputedStringProperty = false; - var hasComputedNumberProperty = false; - var hasComputedSymbolProperty = false; - try { - for (var _w = __values(node.properties), _x = _w.next(); !_x.done; _x = _w.next()) { - var elem = _x.value; - if (elem.name && isComputedPropertyName(elem.name)) { - checkComputedPropertyName(elem.name); - } - } - } - catch (e_327_1) { e_327 = { error: e_327_1 }; } - finally { - try { - if (_x && !_x.done && (_t = _w.return)) _t.call(_w); - } - finally { if (e_327) throw e_327.error; } - } - var offset = 0; - try { - for (var _y = __values(node.properties), _z = _y.next(); !_z.done; _z = _y.next()) { - var memberDecl = _z.value; - var member = getSymbolOfDeclaration(memberDecl); - var computedNameType = memberDecl.name && memberDecl.name.kind === 167 /* ComputedPropertyName */ ? checkComputedPropertyName(memberDecl.name) : void 0; - if (memberDecl.kind === 303 /* PropertyAssignment */ || memberDecl.kind === 304 /* ShorthandPropertyAssignment */ || isObjectLiteralMethod(memberDecl)) { - var type = memberDecl.kind === 303 /* PropertyAssignment */ ? checkPropertyAssignment(memberDecl, checkMode) : ( - // avoid resolving the left side of the ShorthandPropertyAssignment outside of the destructuring - // for error recovery purposes. For example, if a user wrote `{ a = 100 }` instead of `{ a: 100 }`. - // we don't want to say "could not find 'a'". - memberDecl.kind === 304 /* ShorthandPropertyAssignment */ ? checkExpressionForMutableLocation(!inDestructuringPattern && memberDecl.objectAssignmentInitializer ? memberDecl.objectAssignmentInitializer : memberDecl.name, checkMode) : checkObjectLiteralMethod(memberDecl, checkMode)); - if (isInJavascript) { - var jsDocType = getTypeForDeclarationFromJSDocComment(memberDecl); - if (jsDocType) { - checkTypeAssignableTo(type, jsDocType, memberDecl); - type = jsDocType; - } - else if (enumTag && enumTag.typeExpression) { - checkTypeAssignableTo(type, getTypeFromTypeNode(enumTag.typeExpression), memberDecl); - } - } - objectFlags |= getObjectFlags(type) & 458752 /* PropagatingFlags */; - var nameType = computedNameType && isTypeUsableAsPropertyName(computedNameType) ? computedNameType : void 0; - var prop = nameType ? createSymbol(4 /* Property */ | member.flags, getPropertyNameFromType(nameType), checkFlags | 4096 /* Late */) : createSymbol(4 /* Property */ | member.flags, member.escapedName, checkFlags); - if (nameType) { - prop.links.nameType = nameType; - } - if (inDestructuringPattern) { - var isOptional = memberDecl.kind === 303 /* PropertyAssignment */ && hasDefaultValue(memberDecl.initializer) || memberDecl.kind === 304 /* ShorthandPropertyAssignment */ && memberDecl.objectAssignmentInitializer; - if (isOptional) { - prop.flags |= 16777216 /* Optional */; - } - } - else if (contextualTypeHasPattern && !(getObjectFlags(contextualType) & 512 /* ObjectLiteralPatternWithComputedProperties */)) { - var impliedProp = getPropertyOfType(contextualType, member.escapedName); - if (impliedProp) { - prop.flags |= impliedProp.flags & 16777216 /* Optional */; - } - else if (!compilerOptions.suppressExcessPropertyErrors && !getIndexInfoOfType(contextualType, stringType)) { - error2(memberDecl.name, Diagnostics.Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1, symbolToString(member), typeToString(contextualType)); - } - } - prop.declarations = member.declarations; - prop.parent = member.parent; - if (member.valueDeclaration) { - prop.valueDeclaration = member.valueDeclaration; - } - prop.links.type = type; - prop.links.target = member; - member = prop; - allPropertiesTable == null ? void 0 : allPropertiesTable.set(prop.escapedName, prop); - if (contextualType && checkMode & 2 /* Inferential */ && !(checkMode & 4 /* SkipContextSensitive */) && (memberDecl.kind === 303 /* PropertyAssignment */ || memberDecl.kind === 174 /* MethodDeclaration */) && isContextSensitive(memberDecl)) { - var inferenceContext = getInferenceContext(node); - Debug.assert(inferenceContext); - var inferenceNode = memberDecl.kind === 303 /* PropertyAssignment */ ? memberDecl.initializer : memberDecl; - addIntraExpressionInferenceSite(inferenceContext, inferenceNode, type); - } - } - else if (memberDecl.kind === 305 /* SpreadAssignment */) { - if (languageVersion < 2 /* ES2015 */) { - checkExternalEmitHelpers(memberDecl, 2 /* Assign */); - } - if (propertiesArray.length > 0) { - spread = getSpreadType(spread, createObjectLiteralType(), node.symbol, objectFlags, inConstContext); - propertiesArray = []; - propertiesTable = createSymbolTable(); - hasComputedStringProperty = false; - hasComputedNumberProperty = false; - hasComputedSymbolProperty = false; - } - var type = getReducedType(checkExpression(memberDecl.expression, checkMode & 2 /* Inferential */)); - if (isValidSpreadType(type)) { - var mergedType = tryMergeUnionOfObjectTypeAndEmptyObject(type, inConstContext); - if (allPropertiesTable) { - checkSpreadPropOverrides(mergedType, allPropertiesTable, memberDecl); - } - offset = propertiesArray.length; - if (isErrorType(spread)) { - continue; - } - spread = getSpreadType(spread, mergedType, node.symbol, objectFlags, inConstContext); - } - else { - error2(memberDecl, Diagnostics.Spread_types_may_only_be_created_from_object_types); - spread = errorType; - } - continue; - } - else { - Debug.assert(memberDecl.kind === 177 /* GetAccessor */ || memberDecl.kind === 178 /* SetAccessor */); - checkNodeDeferred(memberDecl); - } - if (computedNameType && !(computedNameType.flags & 8576 /* StringOrNumberLiteralOrUnique */)) { - if (isTypeAssignableTo(computedNameType, stringNumberSymbolType)) { - if (isTypeAssignableTo(computedNameType, numberType)) { - hasComputedNumberProperty = true; - } - else if (isTypeAssignableTo(computedNameType, esSymbolType)) { - hasComputedSymbolProperty = true; - } - else { - hasComputedStringProperty = true; - } - if (inDestructuringPattern) { - patternWithComputedProperties = true; - } - } - } - else { - propertiesTable.set(member.escapedName, member); - } - propertiesArray.push(member); - } - } - catch (e_328_1) { e_328 = { error: e_328_1 }; } - finally { - try { - if (_z && !_z.done && (_u = _y.return)) _u.call(_y); - } - finally { if (e_328) throw e_328.error; } - } - popContextualType(); - if (contextualTypeHasPattern) { - var rootPatternParent_1 = findAncestor(contextualType.pattern.parent, function (n) { return n.kind === 260 /* VariableDeclaration */ || n.kind === 226 /* BinaryExpression */ || n.kind === 169; } /* Parameter */); - var spreadOrOutsideRootObject = findAncestor(node, function (n) { return n === rootPatternParent_1 || n.kind === 305; } /* SpreadAssignment */); - if (spreadOrOutsideRootObject.kind !== 305 /* SpreadAssignment */) { - try { - for (var _10 = __values(getPropertiesOfType(contextualType)), _11 = _10.next(); !_11.done; _11 = _10.next()) { - var prop = _11.value; - if (!propertiesTable.get(prop.escapedName) && !getPropertyOfType(spread, prop.escapedName)) { - if (!(prop.flags & 16777216 /* Optional */)) { - error2(prop.valueDeclaration || ((_a = tryCast(prop, isTransientSymbol)) == null ? void 0 : _a.links.bindingElement), Diagnostics.Initializer_provides_no_value_for_this_binding_element_and_the_binding_element_has_no_default_value); - } - propertiesTable.set(prop.escapedName, prop); - propertiesArray.push(prop); - } - } - } - catch (e_329_1) { e_329 = { error: e_329_1 }; } - finally { - try { - if (_11 && !_11.done && (_v = _10.return)) _v.call(_10); - } - finally { if (e_329) throw e_329.error; } - } - } - } - if (isErrorType(spread)) { - return errorType; - } - if (spread !== emptyObjectType) { - if (propertiesArray.length > 0) { - spread = getSpreadType(spread, createObjectLiteralType(), node.symbol, objectFlags, inConstContext); - propertiesArray = []; - propertiesTable = createSymbolTable(); - hasComputedStringProperty = false; - hasComputedNumberProperty = false; - } - return mapType(spread, function (t) { return t === emptyObjectType ? createObjectLiteralType() : t; }); - } - return createObjectLiteralType(); - function createObjectLiteralType() { - var indexInfos = []; - if (hasComputedStringProperty) - indexInfos.push(getObjectLiteralIndexInfo(node, offset, propertiesArray, stringType)); - if (hasComputedNumberProperty) - indexInfos.push(getObjectLiteralIndexInfo(node, offset, propertiesArray, numberType)); - if (hasComputedSymbolProperty) - indexInfos.push(getObjectLiteralIndexInfo(node, offset, propertiesArray, esSymbolType)); - var result = createAnonymousType(node.symbol, propertiesTable, emptyArray, emptyArray, indexInfos); - result.objectFlags |= objectFlags | 128 /* ObjectLiteral */ | 131072 /* ContainsObjectOrArrayLiteral */; - if (isJSObjectLiteral) { - result.objectFlags |= 4096 /* JSLiteral */; - } - if (patternWithComputedProperties) { - result.objectFlags |= 512 /* ObjectLiteralPatternWithComputedProperties */; - } - if (inDestructuringPattern) { - result.pattern = node; - } - return result; - } - } - function isValidSpreadType(type) { - var t = removeDefinitelyFalsyTypes(mapType(type, getBaseConstraintOrType)); - return !!(t.flags & (1 /* Any */ | 67108864 /* NonPrimitive */ | 524288 /* Object */ | 58982400 /* InstantiableNonPrimitive */) || t.flags & 3145728 /* UnionOrIntersection */ && every(t.types, isValidSpreadType)); - } - function checkJsxSelfClosingElementDeferred(node) { - checkJsxOpeningLikeElementOrOpeningFragment(node); - } - function checkJsxSelfClosingElement(node, _checkMode) { - checkNodeDeferred(node); - return getJsxElementTypeAt(node) || anyType; - } - function checkJsxElementDeferred(node) { - checkJsxOpeningLikeElementOrOpeningFragment(node.openingElement); - if (isJsxIntrinsicTagName(node.closingElement.tagName)) { - getIntrinsicTagSymbol(node.closingElement); - } - else { - checkExpression(node.closingElement.tagName); - } - checkJsxChildren(node); - } - function checkJsxElement(node, _checkMode) { - checkNodeDeferred(node); - return getJsxElementTypeAt(node) || anyType; - } - function checkJsxFragment(node) { - checkJsxOpeningLikeElementOrOpeningFragment(node.openingFragment); - var nodeSourceFile = getSourceFileOfNode(node); - if (getJSXTransformEnabled(compilerOptions) && (compilerOptions.jsxFactory || nodeSourceFile.pragmas.has("jsx")) && !compilerOptions.jsxFragmentFactory && !nodeSourceFile.pragmas.has("jsxfrag")) { - error2(node, compilerOptions.jsxFactory ? Diagnostics.The_jsxFragmentFactory_compiler_option_must_be_provided_to_use_JSX_fragments_with_the_jsxFactory_compiler_option : Diagnostics.An_jsxFrag_pragma_is_required_when_using_an_jsx_pragma_with_JSX_fragments); - } - checkJsxChildren(node); - return getJsxElementTypeAt(node) || anyType; - } - function isHyphenatedJsxName(name) { - return stringContains(name, "-"); - } - function isJsxIntrinsicTagName(tagName) { - return isIdentifier(tagName) && isIntrinsicJsxName(tagName.escapedText) || isJsxNamespacedName(tagName); - } - function checkJsxAttribute(node, checkMode) { - return node.initializer ? checkExpressionForMutableLocation(node.initializer, checkMode) : trueType; - } - function createJsxAttributesTypeFromAttributesProperty(openingLikeElement, checkMode /* Normal */) { - var e_330, _t; - if (checkMode === void 0) { checkMode = 0; } - var attributes = openingLikeElement.attributes; - var contextualType = getContextualType2(attributes, 0 /* None */); - var allAttributesTable = strictNullChecks ? createSymbolTable() : void 0; - var attributesTable = createSymbolTable(); - var spread = emptyJsxObjectType; - var hasSpreadAnyType = false; - var typeToIntersect; - var explicitlySpecifyChildrenAttribute = false; - var objectFlags = 2048 /* JsxAttributes */; - var jsxChildrenPropertyName = getJsxElementChildrenPropertyName(getJsxNamespaceAt(openingLikeElement)); - try { - for (var _u = __values(attributes.properties), _v = _u.next(); !_v.done; _v = _u.next()) { - var attributeDecl = _v.value; - var member = attributeDecl.symbol; - if (isJsxAttribute(attributeDecl)) { - var exprType = checkJsxAttribute(attributeDecl, checkMode); - objectFlags |= getObjectFlags(exprType) & 458752 /* PropagatingFlags */; - var attributeSymbol = createSymbol(4 /* Property */ | member.flags, member.escapedName); - attributeSymbol.declarations = member.declarations; - attributeSymbol.parent = member.parent; - if (member.valueDeclaration) { - attributeSymbol.valueDeclaration = member.valueDeclaration; - } - attributeSymbol.links.type = exprType; - attributeSymbol.links.target = member; - attributesTable.set(attributeSymbol.escapedName, attributeSymbol); - allAttributesTable == null ? void 0 : allAttributesTable.set(attributeSymbol.escapedName, attributeSymbol); - if (getEscapedTextOfJsxAttributeName(attributeDecl.name) === jsxChildrenPropertyName) { - explicitlySpecifyChildrenAttribute = true; - } - if (contextualType) { - var prop = getPropertyOfType(contextualType, member.escapedName); - if (prop && prop.declarations && isDeprecatedSymbol(prop) && isIdentifier(attributeDecl.name)) { - addDeprecatedSuggestion(attributeDecl.name, prop.declarations, attributeDecl.name.escapedText); - } - } - if (contextualType && checkMode & 2 /* Inferential */ && !(checkMode & 4 /* SkipContextSensitive */) && isContextSensitive(attributeDecl)) { - var inferenceContext = getInferenceContext(attributes); - Debug.assert(inferenceContext); - var inferenceNode = attributeDecl.initializer.expression; - addIntraExpressionInferenceSite(inferenceContext, inferenceNode, exprType); - } - } - else { - Debug.assert(attributeDecl.kind === 293 /* JsxSpreadAttribute */); - if (attributesTable.size > 0) { - spread = getSpreadType(spread, createJsxAttributesType(), attributes.symbol, objectFlags, - /*readonly*/ - false); - attributesTable = createSymbolTable(); - } - var exprType = getReducedType(checkExpression(attributeDecl.expression, checkMode & 2 /* Inferential */)); - if (isTypeAny(exprType)) { - hasSpreadAnyType = true; - } - if (isValidSpreadType(exprType)) { - spread = getSpreadType(spread, exprType, attributes.symbol, objectFlags, - /*readonly*/ - false); - if (allAttributesTable) { - checkSpreadPropOverrides(exprType, allAttributesTable, attributeDecl); - } - } - else { - error2(attributeDecl.expression, Diagnostics.Spread_types_may_only_be_created_from_object_types); - typeToIntersect = typeToIntersect ? getIntersectionType([typeToIntersect, exprType]) : exprType; - } - } - } - } - catch (e_330_1) { e_330 = { error: e_330_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_330) throw e_330.error; } - } - if (!hasSpreadAnyType) { - if (attributesTable.size > 0) { - spread = getSpreadType(spread, createJsxAttributesType(), attributes.symbol, objectFlags, - /*readonly*/ - false); - } - } - var parent2 = openingLikeElement.parent.kind === 284 /* JsxElement */ ? openingLikeElement.parent : void 0; - if (parent2 && parent2.openingElement === openingLikeElement && parent2.children.length > 0) { - var childrenTypes = checkJsxChildren(parent2, checkMode); - if (!hasSpreadAnyType && jsxChildrenPropertyName && jsxChildrenPropertyName !== "") { - if (explicitlySpecifyChildrenAttribute) { - error2(attributes, Diagnostics._0_are_specified_twice_The_attribute_named_0_will_be_overwritten, unescapeLeadingUnderscores(jsxChildrenPropertyName)); - } - var contextualType2 = getApparentTypeOfContextualType(openingLikeElement.attributes, - /*contextFlags*/ - void 0); - var childrenContextualType = contextualType2 && getTypeOfPropertyOfContextualType(contextualType2, jsxChildrenPropertyName); - var childrenPropSymbol = createSymbol(4 /* Property */, jsxChildrenPropertyName); - childrenPropSymbol.links.type = childrenTypes.length === 1 ? childrenTypes[0] : childrenContextualType && someType(childrenContextualType, isTupleLikeType) ? createTupleType(childrenTypes) : createArrayType(getUnionType(childrenTypes)); - childrenPropSymbol.valueDeclaration = factory.createPropertySignature( - /*modifiers*/ - void 0, unescapeLeadingUnderscores(jsxChildrenPropertyName), - /*questionToken*/ - void 0, - /*type*/ - void 0); - setParent(childrenPropSymbol.valueDeclaration, attributes); - childrenPropSymbol.valueDeclaration.symbol = childrenPropSymbol; - var childPropMap = createSymbolTable(); - childPropMap.set(jsxChildrenPropertyName, childrenPropSymbol); - spread = getSpreadType(spread, createAnonymousType(attributes.symbol, childPropMap, emptyArray, emptyArray, emptyArray), attributes.symbol, objectFlags, - /*readonly*/ - false); - } - } - if (hasSpreadAnyType) { - return anyType; - } - if (typeToIntersect && spread !== emptyJsxObjectType) { - return getIntersectionType([typeToIntersect, spread]); - } - return typeToIntersect || (spread === emptyJsxObjectType ? createJsxAttributesType() : spread); - function createJsxAttributesType() { - objectFlags |= freshObjectLiteralFlag; - var result = createAnonymousType(attributes.symbol, attributesTable, emptyArray, emptyArray, emptyArray); - result.objectFlags |= objectFlags | 128 /* ObjectLiteral */ | 131072 /* ContainsObjectOrArrayLiteral */; - return result; - } - } - function checkJsxChildren(node, checkMode) { - var e_331, _t; - var childrenTypes = []; - try { - for (var _u = __values(node.children), _v = _u.next(); !_v.done; _v = _u.next()) { - var child = _v.value; - if (child.kind === 12 /* JsxText */) { - if (!child.containsOnlyTriviaWhiteSpaces) { - childrenTypes.push(stringType); - } - } - else if (child.kind === 294 /* JsxExpression */ && !child.expression) { - continue; - } - else { - childrenTypes.push(checkExpressionForMutableLocation(child, checkMode)); - } - } - } - catch (e_331_1) { e_331 = { error: e_331_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_331) throw e_331.error; } - } - return childrenTypes; - } - function checkSpreadPropOverrides(type, props, spread) { - var e_332, _t; - try { - for (var _u = __values(getPropertiesOfType(type)), _v = _u.next(); !_v.done; _v = _u.next()) { - var right = _v.value; - if (!(right.flags & 16777216 /* Optional */)) { - var left = props.get(right.escapedName); - if (left) { - var diagnostic = error2(left.valueDeclaration, Diagnostics._0_is_specified_more_than_once_so_this_usage_will_be_overwritten, unescapeLeadingUnderscores(left.escapedName)); - addRelatedInfo(diagnostic, createDiagnosticForNode(spread, Diagnostics.This_spread_always_overwrites_this_property)); - } - } - } - } - catch (e_332_1) { e_332 = { error: e_332_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_332) throw e_332.error; } - } - } - function checkJsxAttributes(node, checkMode) { - return createJsxAttributesTypeFromAttributesProperty(node.parent, checkMode); - } - function getJsxType(name, location) { - var namespace = getJsxNamespaceAt(location); - var exports = namespace && getExportsOfSymbol(namespace); - var typeSymbol = exports && getSymbol2(exports, name, 788968 /* Type */); - return typeSymbol ? getDeclaredTypeOfSymbol(typeSymbol) : errorType; - } - function getIntrinsicTagSymbol(node) { - var links = getNodeLinks(node); - if (!links.resolvedSymbol) { - var intrinsicElementsType = getJsxType(JsxNames.IntrinsicElements, node); - if (!isErrorType(intrinsicElementsType)) { - if (!isIdentifier(node.tagName) && !isJsxNamespacedName(node.tagName)) - return Debug.fail(); - var intrinsicProp = getPropertyOfType(intrinsicElementsType, isJsxNamespacedName(node.tagName) ? getEscapedTextOfJsxNamespacedName(node.tagName) : node.tagName.escapedText); - if (intrinsicProp) { - links.jsxFlags |= 1 /* IntrinsicNamedElement */; - return links.resolvedSymbol = intrinsicProp; - } - var indexSignatureType = getIndexTypeOfType(intrinsicElementsType, stringType); - if (indexSignatureType) { - links.jsxFlags |= 2 /* IntrinsicIndexedElement */; - return links.resolvedSymbol = intrinsicElementsType.symbol; - } - error2(node, Diagnostics.Property_0_does_not_exist_on_type_1, intrinsicTagNameToString(node.tagName), "JSX." + JsxNames.IntrinsicElements); - return links.resolvedSymbol = unknownSymbol; - } - else { - if (noImplicitAny) { - error2(node, Diagnostics.JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists, unescapeLeadingUnderscores(JsxNames.IntrinsicElements)); - } - return links.resolvedSymbol = unknownSymbol; - } - } - return links.resolvedSymbol; - } - function getJsxNamespaceContainerForImplicitImport(location) { - var file = location && getSourceFileOfNode(location); - var links = file && getNodeLinks(file); - if (links && links.jsxImplicitImportContainer === false) { - return void 0; - } - if (links && links.jsxImplicitImportContainer) { - return links.jsxImplicitImportContainer; - } - var runtimeImportSpecifier = getJSXRuntimeImport(getJSXImplicitImportBase(compilerOptions, file), compilerOptions); - if (!runtimeImportSpecifier) { - return void 0; - } - var isClassic = getEmitModuleResolutionKind(compilerOptions) === 1 /* Classic */; - var errorMessage = isClassic ? Diagnostics.Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_nodenext_or_to_add_aliases_to_the_paths_option : Diagnostics.Cannot_find_module_0_or_its_corresponding_type_declarations; - var mod = resolveExternalModule(location, runtimeImportSpecifier, errorMessage, location); - var result = mod && mod !== unknownSymbol ? getMergedSymbol(resolveSymbol(mod)) : void 0; - if (links) { - links.jsxImplicitImportContainer = result || false; - } - return result; - } - function getJsxNamespaceAt(location) { - var links = location && getNodeLinks(location); - if (links && links.jsxNamespace) { - return links.jsxNamespace; - } - if (!links || links.jsxNamespace !== false) { - var resolvedNamespace = getJsxNamespaceContainerForImplicitImport(location); - if (!resolvedNamespace || resolvedNamespace === unknownSymbol) { - var namespaceName = getJsxNamespace(location); - resolvedNamespace = resolveName(location, namespaceName, 1920 /* Namespace */, - /*nameNotFoundMessage*/ - void 0, namespaceName, - /*isUse*/ - false); - } - if (resolvedNamespace) { - var candidate = resolveSymbol(getSymbol2(getExportsOfSymbol(resolveSymbol(resolvedNamespace)), JsxNames.JSX, 1920 /* Namespace */)); - if (candidate && candidate !== unknownSymbol) { - if (links) { - links.jsxNamespace = candidate; - } - return candidate; - } - } - if (links) { - links.jsxNamespace = false; - } - } - var s = resolveSymbol(getGlobalSymbol(JsxNames.JSX, 1920 /* Namespace */, - /*diagnostic*/ - void 0)); - if (s === unknownSymbol) { - return void 0; - } - return s; - } - function getNameFromJsxElementAttributesContainer(nameOfAttribPropContainer, jsxNamespace) { - var jsxElementAttribPropInterfaceSym = jsxNamespace && getSymbol2(jsxNamespace.exports, nameOfAttribPropContainer, 788968 /* Type */); - var jsxElementAttribPropInterfaceType = jsxElementAttribPropInterfaceSym && getDeclaredTypeOfSymbol(jsxElementAttribPropInterfaceSym); - var propertiesOfJsxElementAttribPropInterface = jsxElementAttribPropInterfaceType && getPropertiesOfType(jsxElementAttribPropInterfaceType); - if (propertiesOfJsxElementAttribPropInterface) { - if (propertiesOfJsxElementAttribPropInterface.length === 0) { - return ""; - } - else if (propertiesOfJsxElementAttribPropInterface.length === 1) { - return propertiesOfJsxElementAttribPropInterface[0].escapedName; - } - else if (propertiesOfJsxElementAttribPropInterface.length > 1 && jsxElementAttribPropInterfaceSym.declarations) { - error2(jsxElementAttribPropInterfaceSym.declarations[0], Diagnostics.The_global_type_JSX_0_may_not_have_more_than_one_property, unescapeLeadingUnderscores(nameOfAttribPropContainer)); - } - } - return void 0; - } - function getJsxLibraryManagedAttributes(jsxNamespace) { - return jsxNamespace && getSymbol2(jsxNamespace.exports, JsxNames.LibraryManagedAttributes, 788968 /* Type */); - } - function getJsxElementTypeSymbol(jsxNamespace) { - return jsxNamespace && getSymbol2(jsxNamespace.exports, JsxNames.ElementType, 788968 /* Type */); - } - function getJsxElementPropertiesName(jsxNamespace) { - return getNameFromJsxElementAttributesContainer(JsxNames.ElementAttributesPropertyNameContainer, jsxNamespace); - } - function getJsxElementChildrenPropertyName(jsxNamespace) { - return getNameFromJsxElementAttributesContainer(JsxNames.ElementChildrenAttributeNameContainer, jsxNamespace); - } - function getUninstantiatedJsxSignaturesOfType(elementType, caller) { - if (elementType.flags & 4 /* String */) { - return [anySignature]; - } - else if (elementType.flags & 128 /* StringLiteral */) { - var intrinsicType = getIntrinsicAttributesTypeFromStringLiteralType(elementType, caller); - if (!intrinsicType) { - error2(caller, Diagnostics.Property_0_does_not_exist_on_type_1, elementType.value, "JSX." + JsxNames.IntrinsicElements); - return emptyArray; - } - else { - var fakeSignature = createSignatureForJSXIntrinsic(caller, intrinsicType); - return [fakeSignature]; - } - } - var apparentElemType = getApparentType(elementType); - var signatures = getSignaturesOfType(apparentElemType, 1 /* Construct */); - if (signatures.length === 0) { - signatures = getSignaturesOfType(apparentElemType, 0 /* Call */); - } - if (signatures.length === 0 && apparentElemType.flags & 1048576 /* Union */) { - signatures = getUnionSignatures(map(apparentElemType.types, function (t) { return getUninstantiatedJsxSignaturesOfType(t, caller); })); - } - return signatures; - } - function getIntrinsicAttributesTypeFromStringLiteralType(type, location) { - var intrinsicElementsType = getJsxType(JsxNames.IntrinsicElements, location); - if (!isErrorType(intrinsicElementsType)) { - var stringLiteralTypeName = type.value; - var intrinsicProp = getPropertyOfType(intrinsicElementsType, escapeLeadingUnderscores(stringLiteralTypeName)); - if (intrinsicProp) { - return getTypeOfSymbol(intrinsicProp); - } - var indexSignatureType = getIndexTypeOfType(intrinsicElementsType, stringType); - if (indexSignatureType) { - return indexSignatureType; - } - return void 0; - } - return anyType; - } - function checkJsxReturnAssignableToAppropriateBound(refKind, elemInstanceType, openingLikeElement) { - if (refKind === 1 /* Function */) { - var sfcReturnConstraint = getJsxStatelessElementTypeAt(openingLikeElement); - if (sfcReturnConstraint) { - checkTypeRelatedTo(elemInstanceType, sfcReturnConstraint, assignableRelation, openingLikeElement.tagName, Diagnostics.Its_return_type_0_is_not_a_valid_JSX_element, generateInitialErrorChain); - } - } - else if (refKind === 0 /* Component */) { - var classConstraint = getJsxElementClassTypeAt(openingLikeElement); - if (classConstraint) { - checkTypeRelatedTo(elemInstanceType, classConstraint, assignableRelation, openingLikeElement.tagName, Diagnostics.Its_instance_type_0_is_not_a_valid_JSX_element, generateInitialErrorChain); - } - } - else { - var sfcReturnConstraint = getJsxStatelessElementTypeAt(openingLikeElement); - var classConstraint = getJsxElementClassTypeAt(openingLikeElement); - if (!sfcReturnConstraint || !classConstraint) { - return; - } - var combined = getUnionType([sfcReturnConstraint, classConstraint]); - checkTypeRelatedTo(elemInstanceType, combined, assignableRelation, openingLikeElement.tagName, Diagnostics.Its_element_type_0_is_not_a_valid_JSX_element, generateInitialErrorChain); - } - function generateInitialErrorChain() { - var componentName = getTextOfNode(openingLikeElement.tagName); - return chainDiagnosticMessages( - /*details*/ - void 0, Diagnostics._0_cannot_be_used_as_a_JSX_component, componentName); - } - } - function getIntrinsicAttributesTypeFromJsxOpeningLikeElement(node) { - Debug.assert(isJsxIntrinsicTagName(node.tagName)); - var links = getNodeLinks(node); - if (!links.resolvedJsxElementAttributesType) { - var symbol = getIntrinsicTagSymbol(node); - if (links.jsxFlags & 1 /* IntrinsicNamedElement */) { - return links.resolvedJsxElementAttributesType = getTypeOfSymbol(symbol) || errorType; - } - else if (links.jsxFlags & 2 /* IntrinsicIndexedElement */) { - return links.resolvedJsxElementAttributesType = getIndexTypeOfType(getJsxType(JsxNames.IntrinsicElements, node), stringType) || errorType; - } - else { - return links.resolvedJsxElementAttributesType = errorType; - } - } - return links.resolvedJsxElementAttributesType; - } - function getJsxElementClassTypeAt(location) { - var type = getJsxType(JsxNames.ElementClass, location); - if (isErrorType(type)) - return void 0; - return type; - } - function getJsxElementTypeAt(location) { - return getJsxType(JsxNames.Element, location); - } - function getJsxStatelessElementTypeAt(location) { - var jsxElementType = getJsxElementTypeAt(location); - if (jsxElementType) { - return getUnionType([jsxElementType, nullType]); - } - } - function getJsxElementTypeTypeAt(location) { - var ns = getJsxNamespaceAt(location); - if (!ns) - return void 0; - var sym = getJsxElementTypeSymbol(ns); - if (!sym) - return void 0; - var type = instantiateAliasOrInterfaceWithDefaults(sym, isInJSFile(location)); - if (!type || isErrorType(type)) - return void 0; - return type; - } - function instantiateAliasOrInterfaceWithDefaults(managedSym, inJs) { - var typeArguments = []; - for (var _t = 2; _t < arguments.length; _t++) { - typeArguments[_t - 2] = arguments[_t]; - } - var declaredManagedType = getDeclaredTypeOfSymbol(managedSym); - if (managedSym.flags & 524288 /* TypeAlias */) { - var params = getSymbolLinks(managedSym).typeParameters; - if (length(params) >= typeArguments.length) { - var args = fillMissingTypeArguments(typeArguments, params, typeArguments.length, inJs); - return length(args) === 0 ? declaredManagedType : getTypeAliasInstantiation(managedSym, args); - } - } - if (length(declaredManagedType.typeParameters) >= typeArguments.length) { - var args = fillMissingTypeArguments(typeArguments, declaredManagedType.typeParameters, typeArguments.length, inJs); - return createTypeReference(declaredManagedType, args); - } - return void 0; - } - function getJsxIntrinsicTagNamesAt(location) { - var intrinsics = getJsxType(JsxNames.IntrinsicElements, location); - return intrinsics ? getPropertiesOfType(intrinsics) : emptyArray; - } - function checkJsxPreconditions(errorNode) { - if ((compilerOptions.jsx || 0 /* None */) === 0 /* None */) { - error2(errorNode, Diagnostics.Cannot_use_JSX_unless_the_jsx_flag_is_provided); - } - if (getJsxElementTypeAt(errorNode) === void 0) { - if (noImplicitAny) { - error2(errorNode, Diagnostics.JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist); - } - } - } - function checkJsxOpeningLikeElementOrOpeningFragment(node) { - var isNodeOpeningLikeElement = isJsxOpeningLikeElement(node); - if (isNodeOpeningLikeElement) { - checkGrammarJsxElement(node); - } - checkJsxPreconditions(node); - if (!getJsxNamespaceContainerForImplicitImport(node)) { - var jsxFactoryRefErr = diagnostics && compilerOptions.jsx === 2 /* React */ ? Diagnostics.Cannot_find_name_0 : void 0; - var jsxFactoryNamespace = getJsxNamespace(node); - var jsxFactoryLocation = isNodeOpeningLikeElement ? node.tagName : node; - var jsxFactorySym = void 0; - if (!(isJsxOpeningFragment(node) && jsxFactoryNamespace === "null")) { - jsxFactorySym = resolveName(jsxFactoryLocation, jsxFactoryNamespace, 111551 /* Value */, jsxFactoryRefErr, jsxFactoryNamespace, - /*isUse*/ - true); - } - if (jsxFactorySym) { - jsxFactorySym.isReferenced = 67108863 /* All */; - if (canCollectSymbolAliasAccessabilityData && jsxFactorySym.flags & 2097152 /* Alias */ && !getTypeOnlyAliasDeclaration(jsxFactorySym)) { - markAliasSymbolAsReferenced(jsxFactorySym); - } - } - if (isJsxOpeningFragment(node)) { - var file = getSourceFileOfNode(node); - var localJsxNamespace = getLocalJsxNamespace(file); - if (localJsxNamespace) { - resolveName(jsxFactoryLocation, localJsxNamespace, 111551 /* Value */, jsxFactoryRefErr, localJsxNamespace, - /*isUse*/ - true); - } - } - } - if (isNodeOpeningLikeElement) { - var jsxOpeningLikeNode = node; - var sig = getResolvedSignature(jsxOpeningLikeNode); - checkDeprecatedSignature(sig, node); - var elementTypeConstraint = getJsxElementTypeTypeAt(jsxOpeningLikeNode); - if (elementTypeConstraint !== void 0) { - var tagName_1 = jsxOpeningLikeNode.tagName; - var tagType = isJsxIntrinsicTagName(tagName_1) ? getStringLiteralType(intrinsicTagNameToString(tagName_1)) : checkExpression(tagName_1); - checkTypeRelatedTo(tagType, elementTypeConstraint, assignableRelation, tagName_1, Diagnostics.Its_type_0_is_not_a_valid_JSX_element_type, function () { - var componentName = getTextOfNode(tagName_1); - return chainDiagnosticMessages( - /*details*/ - void 0, Diagnostics._0_cannot_be_used_as_a_JSX_component, componentName); - }); - } - else { - checkJsxReturnAssignableToAppropriateBound(getJsxReferenceKind(jsxOpeningLikeNode), getReturnTypeOfSignature(sig), jsxOpeningLikeNode); - } - } - } - function isKnownProperty(targetType, name, isComparingJsxAttributes) { - var e_333, _t; - if (targetType.flags & 524288 /* Object */) { - if (getPropertyOfObjectType(targetType, name) || getApplicableIndexInfoForName(targetType, name) || isLateBoundName(name) && getIndexInfoOfType(targetType, stringType) || isComparingJsxAttributes && isHyphenatedJsxName(name)) { - return true; - } - } - else if (targetType.flags & 3145728 /* UnionOrIntersection */ && isExcessPropertyCheckTarget(targetType)) { - try { - for (var _u = __values(targetType.types), _v = _u.next(); !_v.done; _v = _u.next()) { - var t = _v.value; - if (isKnownProperty(t, name, isComparingJsxAttributes)) { - return true; - } - } - } - catch (e_333_1) { e_333 = { error: e_333_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_333) throw e_333.error; } - } - } - return false; - } - function isExcessPropertyCheckTarget(type) { - return !!(type.flags & 524288 /* Object */ && !(getObjectFlags(type) & 512 /* ObjectLiteralPatternWithComputedProperties */) || type.flags & 67108864 /* NonPrimitive */ || type.flags & 1048576 /* Union */ && some(type.types, isExcessPropertyCheckTarget) || type.flags & 2097152 /* Intersection */ && every(type.types, isExcessPropertyCheckTarget)); - } - function checkJsxExpression(node, checkMode) { - checkGrammarJsxExpression(node); - if (node.expression) { - var type = checkExpression(node.expression, checkMode); - if (node.dotDotDotToken && type !== anyType && !isArrayType(type)) { - error2(node, Diagnostics.JSX_spread_child_must_be_an_array_type); - } - return type; - } - else { - return errorType; - } - } - function getDeclarationNodeFlagsFromSymbol(s) { - return s.valueDeclaration ? getCombinedNodeFlagsCached(s.valueDeclaration) : 0; - } - function isPrototypeProperty(symbol) { - if (symbol.flags & 8192 /* Method */ || getCheckFlags(symbol) & 4 /* SyntheticMethod */) { - return true; - } - if (isInJSFile(symbol.valueDeclaration)) { - var parent2 = symbol.valueDeclaration.parent; - return parent2 && isBinaryExpression(parent2) && getAssignmentDeclarationKind(parent2) === 3 /* PrototypeProperty */; - } - } - function checkPropertyAccessibility(node, isSuper, writing, type, prop, reportError) { - if (reportError === void 0) { reportError = true; } - var errorNode = !reportError ? void 0 : node.kind === 166 /* QualifiedName */ ? node.right : node.kind === 205 /* ImportType */ ? node : node.kind === 208 /* BindingElement */ && node.propertyName ? node.propertyName : node.name; - return checkPropertyAccessibilityAtLocation(node, isSuper, writing, type, prop, errorNode); - } - function checkPropertyAccessibilityAtLocation(location, isSuper, writing, containingType, prop, errorNode) { - var flags = getDeclarationModifierFlagsFromSymbol(prop, writing); - if (isSuper) { - if (languageVersion < 2 /* ES2015 */) { - if (symbolHasNonMethodDeclaration(prop)) { - if (errorNode) { - error2(errorNode, Diagnostics.Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword); - } - return false; - } - } - if (flags & 256 /* Abstract */) { - if (errorNode) { - error2(errorNode, Diagnostics.Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression, symbolToString(prop), typeToString(getDeclaringClass(prop))); - } - return false; - } - } - if (flags & 256 /* Abstract */ && symbolHasNonMethodDeclaration(prop) && (isThisProperty(location) || isThisInitializedObjectBindingExpression(location) || isObjectBindingPattern(location.parent) && isThisInitializedDeclaration(location.parent.parent))) { - var declaringClassDeclaration = getClassLikeDeclarationOfSymbol(getParentOfSymbol(prop)); - if (declaringClassDeclaration && isNodeUsedDuringClassInitialization(location)) { - if (errorNode) { - error2(errorNode, Diagnostics.Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor, symbolToString(prop), getTextOfIdentifierOrLiteral(declaringClassDeclaration.name)); - } - return false; - } - } - if (!(flags & 24 /* NonPublicAccessibilityModifier */)) { - return true; - } - if (flags & 8 /* Private */) { - var declaringClassDeclaration = getClassLikeDeclarationOfSymbol(getParentOfSymbol(prop)); - if (!isNodeWithinClass(location, declaringClassDeclaration)) { - if (errorNode) { - error2(errorNode, Diagnostics.Property_0_is_private_and_only_accessible_within_class_1, symbolToString(prop), typeToString(getDeclaringClass(prop))); - } - return false; - } - return true; - } - if (isSuper) { - return true; - } - var enclosingClass = forEachEnclosingClass(location, function (enclosingDeclaration) { - var enclosingClass2 = getDeclaredTypeOfSymbol(getSymbolOfDeclaration(enclosingDeclaration)); - return isClassDerivedFromDeclaringClasses(enclosingClass2, prop, writing); - }); - if (!enclosingClass) { - enclosingClass = getEnclosingClassFromThisParameter(location); - enclosingClass = enclosingClass && isClassDerivedFromDeclaringClasses(enclosingClass, prop, writing); - if (flags & 32 /* Static */ || !enclosingClass) { - if (errorNode) { - error2(errorNode, Diagnostics.Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses, symbolToString(prop), typeToString(getDeclaringClass(prop) || containingType)); - } - return false; - } - } - if (flags & 32 /* Static */) { - return true; - } - if (containingType.flags & 262144 /* TypeParameter */) { - containingType = containingType.isThisType ? getConstraintOfTypeParameter(containingType) : getBaseConstraintOfType(containingType); - } - if (!containingType || !hasBaseType(containingType, enclosingClass)) { - if (errorNode) { - error2(errorNode, Diagnostics.Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1_This_is_an_instance_of_class_2, symbolToString(prop), typeToString(enclosingClass), typeToString(containingType)); - } - return false; - } - return true; - } - function getEnclosingClassFromThisParameter(node) { - var thisParameter = getThisParameterFromNodeContext(node); - var thisType = (thisParameter == null ? void 0 : thisParameter.type) && getTypeFromTypeNode(thisParameter.type); - if (thisType && thisType.flags & 262144 /* TypeParameter */) { - thisType = getConstraintOfTypeParameter(thisType); - } - if (thisType && getObjectFlags(thisType) & (3 /* ClassOrInterface */ | 4 /* Reference */)) { - return getTargetType(thisType); - } - return void 0; - } - function getThisParameterFromNodeContext(node) { - var thisContainer = getThisContainer(node, - /*includeArrowFunctions*/ - false, - /*includeClassComputedPropertyName*/ - false); - return thisContainer && isFunctionLike(thisContainer) ? getThisParameter(thisContainer) : void 0; - } - function symbolHasNonMethodDeclaration(symbol) { - return !!forEachProperty2(symbol, function (prop) { return !(prop.flags & 8192 /* Method */); }); - } - function checkNonNullExpression(node) { - return checkNonNullType(checkExpression(node), node); - } - function isNullableType(type) { - return !!(getTypeFacts(type) & 50331648 /* IsUndefinedOrNull */); - } - function getNonNullableTypeIfNeeded(type) { - return isNullableType(type) ? getNonNullableType(type) : type; - } - function reportObjectPossiblyNullOrUndefinedError(node, facts) { - var nodeText2 = isEntityNameExpression(node) ? entityNameToString(node) : void 0; - if (node.kind === 106 /* NullKeyword */) { - error2(node, Diagnostics.The_value_0_cannot_be_used_here, "null"); - return; - } - if (nodeText2 !== void 0 && nodeText2.length < 100) { - if (isIdentifier(node) && nodeText2 === "undefined") { - error2(node, Diagnostics.The_value_0_cannot_be_used_here, "undefined"); - return; - } - error2(node, facts & 16777216 /* IsUndefined */ ? facts & 33554432 /* IsNull */ ? Diagnostics._0_is_possibly_null_or_undefined : Diagnostics._0_is_possibly_undefined : Diagnostics._0_is_possibly_null, nodeText2); - } - else { - error2(node, facts & 16777216 /* IsUndefined */ ? facts & 33554432 /* IsNull */ ? Diagnostics.Object_is_possibly_null_or_undefined : Diagnostics.Object_is_possibly_undefined : Diagnostics.Object_is_possibly_null); - } - } - function reportCannotInvokePossiblyNullOrUndefinedError(node, facts) { - error2(node, facts & 16777216 /* IsUndefined */ ? facts & 33554432 /* IsNull */ ? Diagnostics.Cannot_invoke_an_object_which_is_possibly_null_or_undefined : Diagnostics.Cannot_invoke_an_object_which_is_possibly_undefined : Diagnostics.Cannot_invoke_an_object_which_is_possibly_null); - } - function checkNonNullTypeWithReporter(type, node, reportError) { - if (strictNullChecks && type.flags & 2 /* Unknown */) { - if (isEntityNameExpression(node)) { - var nodeText2 = entityNameToString(node); - if (nodeText2.length < 100) { - error2(node, Diagnostics._0_is_of_type_unknown, nodeText2); - return errorType; - } - } - error2(node, Diagnostics.Object_is_of_type_unknown); - return errorType; - } - var facts = getTypeFacts(type); - if (facts & 50331648 /* IsUndefinedOrNull */) { - reportError(node, facts); - var t = getNonNullableType(type); - return t.flags & (98304 /* Nullable */ | 131072 /* Never */) ? errorType : t; - } - return type; - } - function checkNonNullType(type, node) { - return checkNonNullTypeWithReporter(type, node, reportObjectPossiblyNullOrUndefinedError); - } - function checkNonNullNonVoidType(type, node) { - var nonNullType = checkNonNullType(type, node); - if (nonNullType.flags & 16384 /* Void */) { - if (isEntityNameExpression(node)) { - var nodeText2 = entityNameToString(node); - if (isIdentifier(node) && nodeText2 === "undefined") { - error2(node, Diagnostics.The_value_0_cannot_be_used_here, nodeText2); - return nonNullType; - } - if (nodeText2.length < 100) { - error2(node, Diagnostics._0_is_possibly_undefined, nodeText2); - return nonNullType; - } - } - error2(node, Diagnostics.Object_is_possibly_undefined); - } - return nonNullType; - } - function checkPropertyAccessExpression(node, checkMode, writeOnly) { - return node.flags & 64 /* OptionalChain */ ? checkPropertyAccessChain(node, checkMode) : checkPropertyAccessExpressionOrQualifiedName(node, node.expression, checkNonNullExpression(node.expression), node.name, checkMode, writeOnly); - } - function checkPropertyAccessChain(node, checkMode) { - var leftType = checkExpression(node.expression); - var nonOptionalType = getOptionalExpressionType(leftType, node.expression); - return propagateOptionalTypeMarker(checkPropertyAccessExpressionOrQualifiedName(node, node.expression, checkNonNullType(nonOptionalType, node.expression), node.name, checkMode), node, nonOptionalType !== leftType); - } - function checkQualifiedName(node, checkMode) { - var leftType = isPartOfTypeQuery(node) && isThisIdentifier(node.left) ? checkNonNullType(checkThisExpression(node.left), node.left) : checkNonNullExpression(node.left); - return checkPropertyAccessExpressionOrQualifiedName(node, node.left, leftType, node.right, checkMode); - } - function isMethodAccessForCall(node) { - while (node.parent.kind === 217 /* ParenthesizedExpression */) { - node = node.parent; - } - return isCallOrNewExpression(node.parent) && node.parent.expression === node; - } - function lookupSymbolForPrivateIdentifierDeclaration(propName, location) { - for (var containingClass = getContainingClassExcludingClassDecorators(location); !!containingClass; containingClass = getContainingClass(containingClass)) { - var symbol = containingClass.symbol; - var name_47 = getSymbolNameForPrivateIdentifier(symbol, propName); - var prop = symbol.members && symbol.members.get(name_47) || symbol.exports && symbol.exports.get(name_47); - if (prop) { - return prop; - } - } - } - function checkGrammarPrivateIdentifierExpression(privId) { - if (!getContainingClass(privId)) { - return grammarErrorOnNode(privId, Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies); - } - if (!isForInStatement(privId.parent)) { - if (!isExpressionNode(privId)) { - return grammarErrorOnNode(privId, Diagnostics.Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member_declaration_property_access_or_on_the_left_hand_side_of_an_in_expression); - } - var isInOperation = isBinaryExpression(privId.parent) && privId.parent.operatorToken.kind === 103 /* InKeyword */; - if (!getSymbolForPrivateIdentifierExpression(privId) && !isInOperation) { - return grammarErrorOnNode(privId, Diagnostics.Cannot_find_name_0, idText(privId)); - } - } - return false; - } - function checkPrivateIdentifierExpression(privId) { - checkGrammarPrivateIdentifierExpression(privId); - var symbol = getSymbolForPrivateIdentifierExpression(privId); - if (symbol) { - markPropertyAsReferenced(symbol, - /*nodeForCheckWriteOnly*/ - void 0, - /*isSelfTypeAccess*/ - false); - } - return anyType; - } - function getSymbolForPrivateIdentifierExpression(privId) { - if (!isExpressionNode(privId)) { - return void 0; - } - var links = getNodeLinks(privId); - if (links.resolvedSymbol === void 0) { - links.resolvedSymbol = lookupSymbolForPrivateIdentifierDeclaration(privId.escapedText, privId); - } - return links.resolvedSymbol; - } - function getPrivateIdentifierPropertyOfType(leftType, lexicallyScopedIdentifier) { - return getPropertyOfType(leftType, lexicallyScopedIdentifier.escapedName); - } - function checkPrivateIdentifierPropertyAccess(leftType, right, lexicallyScopedIdentifier) { - var propertyOnType; - var properties = getPropertiesOfType(leftType); - if (properties) { - forEach(properties, function (symbol) { - var decl = symbol.valueDeclaration; - if (decl && isNamedDeclaration(decl) && isPrivateIdentifier(decl.name) && decl.name.escapedText === right.escapedText) { - propertyOnType = symbol; - return true; - } - }); - } - var diagName = diagnosticName(right); - if (propertyOnType) { - var typeValueDecl = Debug.checkDefined(propertyOnType.valueDeclaration); - var typeClass_1 = Debug.checkDefined(getContainingClass(typeValueDecl)); - if (lexicallyScopedIdentifier == null ? void 0 : lexicallyScopedIdentifier.valueDeclaration) { - var lexicalValueDecl = lexicallyScopedIdentifier.valueDeclaration; - var lexicalClass = getContainingClass(lexicalValueDecl); - Debug.assert(!!lexicalClass); - if (findAncestor(lexicalClass, function (n) { return typeClass_1 === n; })) { - var diagnostic = error2(right, Diagnostics.The_property_0_cannot_be_accessed_on_type_1_within_this_class_because_it_is_shadowed_by_another_private_identifier_with_the_same_spelling, diagName, typeToString(leftType)); - addRelatedInfo(diagnostic, createDiagnosticForNode(lexicalValueDecl, Diagnostics.The_shadowing_declaration_of_0_is_defined_here, diagName), createDiagnosticForNode(typeValueDecl, Diagnostics.The_declaration_of_0_that_you_probably_intended_to_use_is_defined_here, diagName)); - return true; - } - } - error2(right, Diagnostics.Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier, diagName, diagnosticName(typeClass_1.name || anon)); - return true; - } - return false; - } - function isThisPropertyAccessInConstructor(node, prop) { - return (isConstructorDeclaredProperty(prop) || isThisProperty(node) && isAutoTypedProperty(prop)) && getThisContainer(node, - /*includeArrowFunctions*/ - true, - /*includeClassComputedPropertyName*/ - false) === getDeclaringConstructor(prop); - } - function checkPropertyAccessExpressionOrQualifiedName(node, left, leftType, right, checkMode, writeOnly) { - var parentSymbol = getNodeLinks(left).resolvedSymbol; - var assignmentKind = getAssignmentTargetKind(node); - var apparentType = getApparentType(assignmentKind !== 0 /* None */ || isMethodAccessForCall(node) ? getWidenedType(leftType) : leftType); - var isAnyLike = isTypeAny(apparentType) || apparentType === silentNeverType; - var prop; - if (isPrivateIdentifier(right)) { - if (languageVersion < 99 /* ESNext */) { - if (assignmentKind !== 0 /* None */) { - checkExternalEmitHelpers(node, 1048576 /* ClassPrivateFieldSet */); - } - if (assignmentKind !== 1 /* Definite */) { - checkExternalEmitHelpers(node, 524288 /* ClassPrivateFieldGet */); - } - } - var lexicallyScopedSymbol = lookupSymbolForPrivateIdentifierDeclaration(right.escapedText, right); - if (assignmentKind && lexicallyScopedSymbol && lexicallyScopedSymbol.valueDeclaration && isMethodDeclaration(lexicallyScopedSymbol.valueDeclaration)) { - grammarErrorOnNode(right, Diagnostics.Cannot_assign_to_private_method_0_Private_methods_are_not_writable, idText(right)); - } - if (isAnyLike) { - if (lexicallyScopedSymbol) { - return isErrorType(apparentType) ? errorType : apparentType; - } - if (getContainingClassExcludingClassDecorators(right) === void 0) { - grammarErrorOnNode(right, Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies); - return anyType; - } - } - prop = lexicallyScopedSymbol && getPrivateIdentifierPropertyOfType(leftType, lexicallyScopedSymbol); - if (prop === void 0) { - if (checkPrivateIdentifierPropertyAccess(leftType, right, lexicallyScopedSymbol)) { - return errorType; - } - var containingClass = getContainingClassExcludingClassDecorators(right); - if (containingClass && isPlainJsFile(getSourceFileOfNode(containingClass), compilerOptions.checkJs)) { - grammarErrorOnNode(right, Diagnostics.Private_field_0_must_be_declared_in_an_enclosing_class, idText(right)); - } - } - else { - var isSetonlyAccessor = prop.flags & 65536 /* SetAccessor */ && !(prop.flags & 32768 /* GetAccessor */); - if (isSetonlyAccessor && assignmentKind !== 1 /* Definite */) { - error2(node, Diagnostics.Private_accessor_was_defined_without_a_getter); - } - } - } - else { - if (isAnyLike) { - if (isIdentifier(left) && parentSymbol) { - markAliasReferenced(parentSymbol, node); - } - return isErrorType(apparentType) ? errorType : apparentType; - } - prop = getPropertyOfType(apparentType, right.escapedText, - /*skipObjectFunctionPropertyAugment*/ - false, - /*includeTypeOnlyMembers*/ - node.kind === 166 /* QualifiedName */); - } - if (isIdentifier(left) && parentSymbol && (getIsolatedModules(compilerOptions) || !(prop && (isConstEnumOrConstEnumOnlyModule(prop) || prop.flags & 8 /* EnumMember */ && node.parent.kind === 306 /* EnumMember */)) || shouldPreserveConstEnums(compilerOptions) && isExportOrExportExpression(node))) { - markAliasReferenced(parentSymbol, node); - } - var propType; - if (!prop) { - var indexInfo = !isPrivateIdentifier(right) && (assignmentKind === 0 /* None */ || !isGenericObjectType(leftType) || isThisTypeParameter(leftType)) ? getApplicableIndexInfoForName(apparentType, right.escapedText) : void 0; - if (!(indexInfo && indexInfo.type)) { - var isUncheckedJS = isUncheckedJSSuggestion(node, leftType.symbol, - /*excludeClasses*/ - true); - if (!isUncheckedJS && isJSLiteralType(leftType)) { - return anyType; - } - if (leftType.symbol === globalThisSymbol) { - if (globalThisSymbol.exports.has(right.escapedText) && globalThisSymbol.exports.get(right.escapedText).flags & 418 /* BlockScoped */) { - error2(right, Diagnostics.Property_0_does_not_exist_on_type_1, unescapeLeadingUnderscores(right.escapedText), typeToString(leftType)); - } - else if (noImplicitAny) { - error2(right, Diagnostics.Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature, typeToString(leftType)); - } - return anyType; - } - if (right.escapedText && !checkAndReportErrorForExtendingInterface(node)) { - reportNonexistentProperty(right, isThisTypeParameter(leftType) ? apparentType : leftType, isUncheckedJS); - } - return errorType; - } - if (indexInfo.isReadonly && (isAssignmentTarget(node) || isDeleteTarget(node))) { - error2(node, Diagnostics.Index_signature_in_type_0_only_permits_reading, typeToString(apparentType)); - } - propType = compilerOptions.noUncheckedIndexedAccess && !isAssignmentTarget(node) ? getUnionType([indexInfo.type, missingType]) : indexInfo.type; - if (compilerOptions.noPropertyAccessFromIndexSignature && isPropertyAccessExpression(node)) { - error2(right, Diagnostics.Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0, unescapeLeadingUnderscores(right.escapedText)); - } - if (indexInfo.declaration && isDeprecatedDeclaration2(indexInfo.declaration)) { - addDeprecatedSuggestion(right, [indexInfo.declaration], right.escapedText); - } - } - else { - var targetPropSymbol = resolveAliasWithDeprecationCheck(prop, right); - if (isDeprecatedSymbol(targetPropSymbol) && isUncalledFunctionReference(node, targetPropSymbol) && targetPropSymbol.declarations) { - addDeprecatedSuggestion(right, targetPropSymbol.declarations, right.escapedText); - } - checkPropertyNotUsedBeforeDeclaration(prop, node, right); - markPropertyAsReferenced(prop, node, isSelfTypeAccess(left, parentSymbol)); - getNodeLinks(node).resolvedSymbol = prop; - checkPropertyAccessibility(node, left.kind === 108 /* SuperKeyword */, isWriteAccess(node), apparentType, prop); - if (isAssignmentToReadonlyEntity(node, prop, assignmentKind)) { - error2(right, Diagnostics.Cannot_assign_to_0_because_it_is_a_read_only_property, idText(right)); - return errorType; - } - propType = isThisPropertyAccessInConstructor(node, prop) ? autoType : writeOnly || isWriteOnlyAccess(node) ? getWriteTypeOfSymbol(prop) : getTypeOfSymbol(prop); - } - return getFlowTypeOfAccessExpression(node, prop, propType, right, checkMode); - } - function isUncheckedJSSuggestion(node, suggestion, excludeClasses) { - var file = getSourceFileOfNode(node); - if (file) { - if (compilerOptions.checkJs === void 0 && file.checkJsDirective === void 0 && (file.scriptKind === 1 /* JS */ || file.scriptKind === 2 /* JSX */)) { - var declarationFile = forEach(suggestion == null ? void 0 : suggestion.declarations, getSourceFileOfNode); - return !(file !== declarationFile && !!declarationFile && isGlobalSourceFile(declarationFile)) && !(excludeClasses && suggestion && suggestion.flags & 32 /* Class */) && !(!!node && excludeClasses && isPropertyAccessExpression(node) && node.expression.kind === 110 /* ThisKeyword */); - } - } - return false; - } - function getFlowTypeOfAccessExpression(node, prop, propType, errorNode, checkMode) { - var assignmentKind = getAssignmentTargetKind(node); - if (assignmentKind === 1 /* Definite */) { - return removeMissingType(propType, !!(prop && prop.flags & 16777216 /* Optional */)); - } - if (prop && !(prop.flags & (3 /* Variable */ | 4 /* Property */ | 98304 /* Accessor */)) && !(prop.flags & 8192 /* Method */ && propType.flags & 1048576 /* Union */) && !isDuplicatedCommonJSExport(prop.declarations)) { - return propType; - } - if (propType === autoType) { - return getFlowTypeOfProperty(node, prop); - } - propType = getNarrowableTypeForReference(propType, node, checkMode); - var assumeUninitialized = false; - if (strictNullChecks && strictPropertyInitialization && isAccessExpression(node) && node.expression.kind === 110 /* ThisKeyword */) { - var declaration = prop && prop.valueDeclaration; - if (declaration && isPropertyWithoutInitializer(declaration)) { - if (!isStatic(declaration)) { - var flowContainer = getControlFlowContainer(node); - if (flowContainer.kind === 176 /* Constructor */ && flowContainer.parent === declaration.parent && !(declaration.flags & 33554432 /* Ambient */)) { - assumeUninitialized = true; - } - } - } - } - else if (strictNullChecks && prop && prop.valueDeclaration && isPropertyAccessExpression(prop.valueDeclaration) && getAssignmentDeclarationPropertyAccessKind(prop.valueDeclaration) && getControlFlowContainer(node) === getControlFlowContainer(prop.valueDeclaration)) { - assumeUninitialized = true; - } - var flowType = getFlowTypeOfReference(node, propType, assumeUninitialized ? getOptionalType(propType) : propType); - if (assumeUninitialized && !containsUndefinedType(propType) && containsUndefinedType(flowType)) { - error2(errorNode, Diagnostics.Property_0_is_used_before_being_assigned, symbolToString(prop)); - return propType; - } - return assignmentKind ? getBaseTypeOfLiteralType(flowType) : flowType; - } - function checkPropertyNotUsedBeforeDeclaration(prop, node, right) { - var valueDeclaration = prop.valueDeclaration; - if (!valueDeclaration || getSourceFileOfNode(node).isDeclarationFile) { - return; - } - var diagnosticMessage; - var declarationName = idText(right); - if (isInPropertyInitializerOrClassStaticBlock(node) && !isOptionalPropertyDeclaration(valueDeclaration) && !(isAccessExpression(node) && isAccessExpression(node.expression)) && !isBlockScopedNameDeclaredBeforeUse(valueDeclaration, right) && !(isMethodDeclaration(valueDeclaration) && getCombinedModifierFlagsCached(valueDeclaration) & 32 /* Static */) && (useDefineForClassFields || !isPropertyDeclaredInAncestorClass(prop))) { - diagnosticMessage = error2(right, Diagnostics.Property_0_is_used_before_its_initialization, declarationName); - } - else if (valueDeclaration.kind === 263 /* ClassDeclaration */ && node.parent.kind !== 183 /* TypeReference */ && !(valueDeclaration.flags & 33554432 /* Ambient */) && !isBlockScopedNameDeclaredBeforeUse(valueDeclaration, right)) { - diagnosticMessage = error2(right, Diagnostics.Class_0_used_before_its_declaration, declarationName); - } - if (diagnosticMessage) { - addRelatedInfo(diagnosticMessage, createDiagnosticForNode(valueDeclaration, Diagnostics._0_is_declared_here, declarationName)); - } - } - function isInPropertyInitializerOrClassStaticBlock(node) { - return !!findAncestor(node, function (node2) { - switch (node2.kind) { - case 172 /* PropertyDeclaration */: - return true; - case 303 /* PropertyAssignment */: - case 174 /* MethodDeclaration */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - case 305 /* SpreadAssignment */: - case 167 /* ComputedPropertyName */: - case 239 /* TemplateSpan */: - case 294 /* JsxExpression */: - case 291 /* JsxAttribute */: - case 292 /* JsxAttributes */: - case 293 /* JsxSpreadAttribute */: - case 286 /* JsxOpeningElement */: - case 233 /* ExpressionWithTypeArguments */: - case 298 /* HeritageClause */: - return false; - case 219 /* ArrowFunction */: - case 244 /* ExpressionStatement */: - return isBlock(node2.parent) && isClassStaticBlockDeclaration(node2.parent.parent) ? true : "quit"; - default: - return isExpressionNode(node2) ? false : "quit"; - } - }); - } - function isPropertyDeclaredInAncestorClass(prop) { - if (!(prop.parent.flags & 32 /* Class */)) { - return false; - } - var classType = getTypeOfSymbol(prop.parent); - while (true) { - classType = classType.symbol && getSuperClass(classType); - if (!classType) { - return false; - } - var superProperty = getPropertyOfType(classType, prop.escapedName); - if (superProperty && superProperty.valueDeclaration) { - return true; - } - } - } - function getSuperClass(classType) { - var x = getBaseTypes(classType); - if (x.length === 0) { - return void 0; - } - return getIntersectionType(x); - } - function reportNonexistentProperty(propNode, containingType, isUncheckedJS) { - var e_334, _t; - var errorInfo; - var relatedInfo; - if (!isPrivateIdentifier(propNode) && containingType.flags & 1048576 /* Union */ && !(containingType.flags & 402784252 /* Primitive */)) { - try { - for (var _u = __values(containingType.types), _v = _u.next(); !_v.done; _v = _u.next()) { - var subtype = _v.value; - if (!getPropertyOfType(subtype, propNode.escapedText) && !getApplicableIndexInfoForName(subtype, propNode.escapedText)) { - errorInfo = chainDiagnosticMessages(errorInfo, Diagnostics.Property_0_does_not_exist_on_type_1, declarationNameToString(propNode), typeToString(subtype)); - break; - } - } - } - catch (e_334_1) { e_334 = { error: e_334_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_334) throw e_334.error; } - } - } - if (typeHasStaticProperty(propNode.escapedText, containingType)) { - var propName = declarationNameToString(propNode); - var typeName = typeToString(containingType); - errorInfo = chainDiagnosticMessages(errorInfo, Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead, propName, typeName, typeName + "." + propName); - } - else { - var promisedType = getPromisedTypeOfPromise(containingType); - if (promisedType && getPropertyOfType(promisedType, propNode.escapedText)) { - errorInfo = chainDiagnosticMessages(errorInfo, Diagnostics.Property_0_does_not_exist_on_type_1, declarationNameToString(propNode), typeToString(containingType)); - relatedInfo = createDiagnosticForNode(propNode, Diagnostics.Did_you_forget_to_use_await); - } - else { - var missingProperty = declarationNameToString(propNode); - var container = typeToString(containingType); - var libSuggestion = getSuggestedLibForNonExistentProperty(missingProperty, containingType); - if (libSuggestion !== void 0) { - errorInfo = chainDiagnosticMessages(errorInfo, Diagnostics.Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2_or_later, missingProperty, container, libSuggestion); - } - else { - var suggestion = getSuggestedSymbolForNonexistentProperty(propNode, containingType); - if (suggestion !== void 0) { - var suggestedName = symbolName(suggestion); - var message = isUncheckedJS ? Diagnostics.Property_0_may_not_exist_on_type_1_Did_you_mean_2 : Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_2; - errorInfo = chainDiagnosticMessages(errorInfo, message, missingProperty, container, suggestedName); - relatedInfo = suggestion.valueDeclaration && createDiagnosticForNode(suggestion.valueDeclaration, Diagnostics._0_is_declared_here, suggestedName); - } - else { - var diagnostic = containerSeemsToBeEmptyDomElement(containingType) ? Diagnostics.Property_0_does_not_exist_on_type_1_Try_changing_the_lib_compiler_option_to_include_dom : Diagnostics.Property_0_does_not_exist_on_type_1; - errorInfo = chainDiagnosticMessages(elaborateNeverIntersection(errorInfo, containingType), diagnostic, missingProperty, container); - } - } - } - } - var resultDiagnostic = createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(propNode), propNode, errorInfo); - if (relatedInfo) { - addRelatedInfo(resultDiagnostic, relatedInfo); - } - addErrorOrSuggestion(!isUncheckedJS || errorInfo.code !== Diagnostics.Property_0_may_not_exist_on_type_1_Did_you_mean_2.code, resultDiagnostic); - } - function containerSeemsToBeEmptyDomElement(containingType) { - return compilerOptions.lib && !compilerOptions.lib.includes("dom") && everyContainedType(containingType, function (type) { return type.symbol && /^(EventTarget|Node|((HTML[a-zA-Z]*)?Element))$/.test(unescapeLeadingUnderscores(type.symbol.escapedName)); }) && isEmptyObjectType(containingType); - } - function typeHasStaticProperty(propName, containingType) { - var prop = containingType.symbol && getPropertyOfType(getTypeOfSymbol(containingType.symbol), propName); - return prop !== void 0 && !!prop.valueDeclaration && isStatic(prop.valueDeclaration); - } - function getSuggestedLibForNonExistentName(name) { - var missingName = diagnosticName(name); - var allFeatures = getScriptTargetFeatures(); - var typeFeatures = allFeatures.get(missingName); - return typeFeatures && firstIterator(typeFeatures.keys()); - } - function getSuggestedLibForNonExistentProperty(missingProperty, containingType) { - var e_335, _t; - var container = getApparentType(containingType).symbol; - if (!container) { - return void 0; - } - var containingTypeName = symbolName(container); - var allFeatures = getScriptTargetFeatures(); - var typeFeatures = allFeatures.get(containingTypeName); - if (typeFeatures) { - try { - for (var typeFeatures_1 = __values(typeFeatures), typeFeatures_1_1 = typeFeatures_1.next(); !typeFeatures_1_1.done; typeFeatures_1_1 = typeFeatures_1.next()) { - var _u = __read(typeFeatures_1_1.value, 2), libTarget = _u[0], featuresOfType = _u[1]; - if (contains(featuresOfType, missingProperty)) { - return libTarget; - } - } - } - catch (e_335_1) { e_335 = { error: e_335_1 }; } - finally { - try { - if (typeFeatures_1_1 && !typeFeatures_1_1.done && (_t = typeFeatures_1.return)) _t.call(typeFeatures_1); - } - finally { if (e_335) throw e_335.error; } - } - } - } - function getSuggestedSymbolForNonexistentClassMember(name, baseType) { - return getSpellingSuggestionForName(name, getPropertiesOfType(baseType), 106500 /* ClassMember */); - } - function getSuggestedSymbolForNonexistentProperty(name, containingType) { - var props = getPropertiesOfType(containingType); - if (typeof name !== "string") { - var parent2_1 = name.parent; - if (isPropertyAccessExpression(parent2_1)) { - props = filter(props, function (prop) { return isValidPropertyAccessForCompletions(parent2_1, containingType, prop); }); - } - name = idText(name); - } - return getSpellingSuggestionForName(name, props, 111551 /* Value */); - } - function getSuggestedSymbolForNonexistentJSXAttribute(name, containingType) { - var strName = isString(name) ? name : idText(name); - var properties = getPropertiesOfType(containingType); - var jsxSpecific = strName === "for" ? find(properties, function (x) { return symbolName(x) === "htmlFor"; }) : strName === "class" ? find(properties, function (x) { return symbolName(x) === "className"; }) : void 0; - return jsxSpecific !== null && jsxSpecific !== void 0 ? jsxSpecific : getSpellingSuggestionForName(strName, properties, 111551 /* Value */); - } - function getSuggestionForNonexistentProperty(name, containingType) { - var suggestion = getSuggestedSymbolForNonexistentProperty(name, containingType); - return suggestion && symbolName(suggestion); - } - function getSuggestedSymbolForNonexistentSymbol(location, outerName, meaning) { - Debug.assert(outerName !== void 0, "outername should always be defined"); - var result = resolveNameHelper(location, outerName, meaning, - /*nameNotFoundMessage*/ - void 0, outerName, - /*isUse*/ - false, - /*excludeGlobals*/ - false, - /*getSpellingSuggestions*/ - true, function (symbols, name, meaning2) { - Debug.assertEqual(outerName, name, "name should equal outerName"); - var symbol = getSymbol2(symbols, name, meaning2); - if (symbol) - return symbol; - var candidates; - if (symbols === globals) { - var primitives = mapDefined(["string", "number", "boolean", "object", "bigint", "symbol"], function (s) { return symbols.has(s.charAt(0).toUpperCase() + s.slice(1)) ? createSymbol(524288 /* TypeAlias */, s) : void 0; }); - candidates = primitives.concat(arrayFrom(symbols.values())); - } - else { - candidates = arrayFrom(symbols.values()); - } - return getSpellingSuggestionForName(unescapeLeadingUnderscores(name), candidates, meaning2); - }); - return result; - } - function getSuggestionForNonexistentSymbol(location, outerName, meaning) { - var symbolResult = getSuggestedSymbolForNonexistentSymbol(location, outerName, meaning); - return symbolResult && symbolName(symbolResult); - } - function getSuggestedSymbolForNonexistentModule(name, targetModule) { - return targetModule.exports && getSpellingSuggestionForName(idText(name), getExportsOfModuleAsArray(targetModule), 2623475 /* ModuleMember */); - } - function getSuggestionForNonexistentExport(name, targetModule) { - var suggestion = getSuggestedSymbolForNonexistentModule(name, targetModule); - return suggestion && symbolName(suggestion); - } - function getSuggestionForNonexistentIndexSignature(objectType, expr, keyedType) { - function hasProp(name) { - var prop = getPropertyOfObjectType(objectType, name); - if (prop) { - var s = getSingleCallSignature(getTypeOfSymbol(prop)); - return !!s && getMinArgumentCount(s) >= 1 && isTypeAssignableTo(keyedType, getTypeAtPosition(s, 0)); - } - return false; - } - var suggestedMethod = isAssignmentTarget(expr) ? "set" : "get"; - if (!hasProp(suggestedMethod)) { - return void 0; - } - var suggestion = tryGetPropertyAccessOrIdentifierToString(expr.expression); - if (suggestion === void 0) { - suggestion = suggestedMethod; - } - else { - suggestion += "." + suggestedMethod; - } - return suggestion; - } - function getSuggestedTypeForNonexistentStringLiteralType(source, target) { - var candidates = target.types.filter(function (type) { return !!(type.flags & 128 /* StringLiteral */); }); - return getSpellingSuggestion(source.value, candidates, function (type) { return type.value; }); - } - function getSpellingSuggestionForName(name, symbols, meaning) { - return getSpellingSuggestion(name, symbols, getCandidateName); - function getCandidateName(candidate) { - var candidateName = symbolName(candidate); - if (startsWith(candidateName, '"')) { - return void 0; - } - if (candidate.flags & meaning) { - return candidateName; - } - if (candidate.flags & 2097152 /* Alias */) { - var alias = tryResolveAlias(candidate); - if (alias && alias.flags & meaning) { - return candidateName; - } - } - return void 0; - } - } - function markPropertyAsReferenced(prop, nodeForCheckWriteOnly, isSelfTypeAccess2) { - var valueDeclaration = prop && prop.flags & 106500 /* ClassMember */ && prop.valueDeclaration; - if (!valueDeclaration) { - return; - } - var hasPrivateModifier = hasEffectiveModifier(valueDeclaration, 8 /* Private */); - var hasPrivateIdentifier = prop.valueDeclaration && isNamedDeclaration(prop.valueDeclaration) && isPrivateIdentifier(prop.valueDeclaration.name); - if (!hasPrivateModifier && !hasPrivateIdentifier) { - return; - } - if (nodeForCheckWriteOnly && isWriteOnlyAccess(nodeForCheckWriteOnly) && !(prop.flags & 65536 /* SetAccessor */)) { - return; - } - if (isSelfTypeAccess2) { - var containingMethod = findAncestor(nodeForCheckWriteOnly, isFunctionLikeDeclaration); - if (containingMethod && containingMethod.symbol === prop) { - return; - } - } - (getCheckFlags(prop) & 1 /* Instantiated */ ? getSymbolLinks(prop).target : prop).isReferenced = 67108863 /* All */; - } - function isSelfTypeAccess(name, parent2) { - return name.kind === 110 /* ThisKeyword */ || !!parent2 && isEntityNameExpression(name) && parent2 === getResolvedSymbol(getFirstIdentifier(name)); - } - function isValidPropertyAccess(node, propertyName) { - switch (node.kind) { - case 211 /* PropertyAccessExpression */: - return isValidPropertyAccessWithType(node, node.expression.kind === 108 /* SuperKeyword */, propertyName, getWidenedType(checkExpression(node.expression))); - case 166 /* QualifiedName */: - return isValidPropertyAccessWithType(node, - /*isSuper*/ - false, propertyName, getWidenedType(checkExpression(node.left))); - case 205 /* ImportType */: - return isValidPropertyAccessWithType(node, - /*isSuper*/ - false, propertyName, getTypeFromTypeNode(node)); - } - } - function isValidPropertyAccessForCompletions(node, type, property) { - return isPropertyAccessible(node, node.kind === 211 /* PropertyAccessExpression */ && node.expression.kind === 108 /* SuperKeyword */, - /*isWrite*/ - false, type, property); - } - function isValidPropertyAccessWithType(node, isSuper, propertyName, type) { - if (isTypeAny(type)) { - return true; - } - var prop = getPropertyOfType(type, propertyName); - return !!prop && isPropertyAccessible(node, isSuper, - /*isWrite*/ - false, type, prop); - } - function isPropertyAccessible(node, isSuper, isWrite, containingType, property) { - if (isTypeAny(containingType)) { - return true; - } - if (property.valueDeclaration && isPrivateIdentifierClassElementDeclaration(property.valueDeclaration)) { - var declClass_1 = getContainingClass(property.valueDeclaration); - return !isOptionalChain(node) && !!findAncestor(node, function (parent2) { return parent2 === declClass_1; }); - } - return checkPropertyAccessibilityAtLocation(node, isSuper, isWrite, containingType, property); - } - function getForInVariableSymbol(node) { - var initializer = node.initializer; - if (initializer.kind === 261 /* VariableDeclarationList */) { - var variable = initializer.declarations[0]; - if (variable && !isBindingPattern(variable.name)) { - return getSymbolOfDeclaration(variable); - } - } - else if (initializer.kind === 80 /* Identifier */) { - return getResolvedSymbol(initializer); - } - return void 0; - } - function hasNumericPropertyNames(type) { - return getIndexInfosOfType(type).length === 1 && !!getIndexInfoOfType(type, numberType); - } - function isForInVariableForNumericPropertyNames(expr) { - var e = skipParentheses(expr); - if (e.kind === 80 /* Identifier */) { - var symbol = getResolvedSymbol(e); - if (symbol.flags & 3 /* Variable */) { - var child = expr; - var node = expr.parent; - while (node) { - if (node.kind === 249 /* ForInStatement */ && child === node.statement && getForInVariableSymbol(node) === symbol && hasNumericPropertyNames(getTypeOfExpression(node.expression))) { - return true; - } - child = node; - node = node.parent; - } - } - } - return false; - } - function checkIndexedAccess(node, checkMode) { - return node.flags & 64 /* OptionalChain */ ? checkElementAccessChain(node, checkMode) : checkElementAccessExpression(node, checkNonNullExpression(node.expression), checkMode); - } - function checkElementAccessChain(node, checkMode) { - var exprType = checkExpression(node.expression); - var nonOptionalType = getOptionalExpressionType(exprType, node.expression); - return propagateOptionalTypeMarker(checkElementAccessExpression(node, checkNonNullType(nonOptionalType, node.expression), checkMode), node, nonOptionalType !== exprType); - } - function checkElementAccessExpression(node, exprType, checkMode) { - var objectType = getAssignmentTargetKind(node) !== 0 /* None */ || isMethodAccessForCall(node) ? getWidenedType(exprType) : exprType; - var indexExpression = node.argumentExpression; - var indexType = checkExpression(indexExpression); - if (isErrorType(objectType) || objectType === silentNeverType) { - return objectType; - } - if (isConstEnumObjectType(objectType) && !isStringLiteralLike(indexExpression)) { - error2(indexExpression, Diagnostics.A_const_enum_member_can_only_be_accessed_using_a_string_literal); - return errorType; - } - var effectiveIndexType = isForInVariableForNumericPropertyNames(indexExpression) ? numberType : indexType; - var accessFlags = isAssignmentTarget(node) ? 4 /* Writing */ | (isGenericObjectType(objectType) && !isThisTypeParameter(objectType) ? 2 /* NoIndexSignatures */ : 0) : 32 /* ExpressionPosition */; - var indexedAccessType = getIndexedAccessTypeOrUndefined(objectType, effectiveIndexType, accessFlags, node) || errorType; - return checkIndexedAccessIndexType(getFlowTypeOfAccessExpression(node, getNodeLinks(node).resolvedSymbol, indexedAccessType, indexExpression, checkMode), node); - } - function callLikeExpressionMayHaveTypeArguments(node) { - return isCallOrNewExpression(node) || isTaggedTemplateExpression(node) || isJsxOpeningLikeElement(node); - } - function resolveUntypedCall(node) { - if (callLikeExpressionMayHaveTypeArguments(node)) { - forEach(node.typeArguments, checkSourceElement); - } - if (node.kind === 215 /* TaggedTemplateExpression */) { - checkExpression(node.template); - } - else if (isJsxOpeningLikeElement(node)) { - checkExpression(node.attributes); - } - else if (node.kind !== 170 /* Decorator */) { - forEach(node.arguments, function (argument) { - checkExpression(argument); - }); - } - return anySignature; - } - function resolveErrorCall(node) { - resolveUntypedCall(node); - return unknownSignature; - } - function reorderCandidates(signatures, result, callChainFlags) { - var e_336, _t; - var lastParent; - var lastSymbol; - var cutoffIndex = 0; - var index; - var specializedIndex = -1; - var spliceIndex; - Debug.assert(!result.length); - try { - for (var signatures_7 = __values(signatures), signatures_7_1 = signatures_7.next(); !signatures_7_1.done; signatures_7_1 = signatures_7.next()) { - var signature = signatures_7_1.value; - var symbol = signature.declaration && getSymbolOfDeclaration(signature.declaration); - var parent2 = signature.declaration && signature.declaration.parent; - if (!lastSymbol || symbol === lastSymbol) { - if (lastParent && parent2 === lastParent) { - index = index + 1; - } - else { - lastParent = parent2; - index = cutoffIndex; - } - } - else { - index = cutoffIndex = result.length; - lastParent = parent2; - } - lastSymbol = symbol; - if (signatureHasLiteralTypes(signature)) { - specializedIndex++; - spliceIndex = specializedIndex; - cutoffIndex++; - } - else { - spliceIndex = index; - } - result.splice(spliceIndex, 0, callChainFlags ? getOptionalCallSignature(signature, callChainFlags) : signature); - } - } - catch (e_336_1) { e_336 = { error: e_336_1 }; } - finally { - try { - if (signatures_7_1 && !signatures_7_1.done && (_t = signatures_7.return)) _t.call(signatures_7); - } - finally { if (e_336) throw e_336.error; } - } - } - function isSpreadArgument(arg) { - return !!arg && (arg.kind === 230 /* SpreadElement */ || arg.kind === 237 /* SyntheticExpression */ && arg.isSpread); - } - function getSpreadArgumentIndex(args) { - return findIndex(args, isSpreadArgument); - } - function acceptsVoid(t) { - return !!(t.flags & 16384 /* Void */); - } - function acceptsVoidUndefinedUnknownOrAny(t) { - return !!(t.flags & (16384 /* Void */ | 32768 /* Undefined */ | 2 /* Unknown */ | 1 /* Any */)); - } - function hasCorrectArity(node, args, signature, signatureHelpTrailingComma) { - if (signatureHelpTrailingComma === void 0) { signatureHelpTrailingComma = false; } - var argCount; - var callIsIncomplete = false; - var effectiveParameterCount = getParameterCount(signature); - var effectiveMinimumArguments = getMinArgumentCount(signature); - if (node.kind === 215 /* TaggedTemplateExpression */) { - argCount = args.length; - if (node.template.kind === 228 /* TemplateExpression */) { - var lastSpan = last(node.template.templateSpans); - callIsIncomplete = nodeIsMissing(lastSpan.literal) || !!lastSpan.literal.isUnterminated; - } - else { - var templateLiteral = node.template; - Debug.assert(templateLiteral.kind === 15 /* NoSubstitutionTemplateLiteral */); - callIsIncomplete = !!templateLiteral.isUnterminated; - } - } - else if (node.kind === 170 /* Decorator */) { - argCount = getDecoratorArgumentCount(node, signature); - } - else if (isJsxOpeningLikeElement(node)) { - callIsIncomplete = node.attributes.end === node.end; - if (callIsIncomplete) { - return true; - } - argCount = effectiveMinimumArguments === 0 ? args.length : 1; - effectiveParameterCount = args.length === 0 ? effectiveParameterCount : 1; - effectiveMinimumArguments = Math.min(effectiveMinimumArguments, 1); - } - else if (!node.arguments) { - Debug.assert(node.kind === 214 /* NewExpression */); - return getMinArgumentCount(signature) === 0; - } - else { - argCount = signatureHelpTrailingComma ? args.length + 1 : args.length; - callIsIncomplete = node.arguments.end === node.end; - var spreadArgIndex = getSpreadArgumentIndex(args); - if (spreadArgIndex >= 0) { - return spreadArgIndex >= getMinArgumentCount(signature) && (hasEffectiveRestParameter(signature) || spreadArgIndex < getParameterCount(signature)); - } - } - if (!hasEffectiveRestParameter(signature) && argCount > effectiveParameterCount) { - return false; - } - if (callIsIncomplete || argCount >= effectiveMinimumArguments) { - return true; - } - for (var i = argCount; i < effectiveMinimumArguments; i++) { - var type = getTypeAtPosition(signature, i); - if (filterType(type, isInJSFile(node) && !strictNullChecks ? acceptsVoidUndefinedUnknownOrAny : acceptsVoid).flags & 131072 /* Never */) { - return false; - } - } - return true; - } - function hasCorrectTypeArgumentArity(signature, typeArguments) { - var numTypeParameters = length(signature.typeParameters); - var minTypeArgumentCount = getMinTypeArgumentCount(signature.typeParameters); - return !some(typeArguments) || typeArguments.length >= minTypeArgumentCount && typeArguments.length <= numTypeParameters; - } - function getSingleCallSignature(type) { - return getSingleSignature(type, 0 /* Call */, - /*allowMembers*/ - false); - } - function getSingleCallOrConstructSignature(type) { - return getSingleSignature(type, 0 /* Call */, - /*allowMembers*/ - false) || getSingleSignature(type, 1 /* Construct */, - /*allowMembers*/ - false); - } - function getSingleSignature(type, kind, allowMembers) { - if (type.flags & 524288 /* Object */) { - var resolved = resolveStructuredTypeMembers(type); - if (allowMembers || resolved.properties.length === 0 && resolved.indexInfos.length === 0) { - if (kind === 0 /* Call */ && resolved.callSignatures.length === 1 && resolved.constructSignatures.length === 0) { - return resolved.callSignatures[0]; - } - if (kind === 1 /* Construct */ && resolved.constructSignatures.length === 1 && resolved.callSignatures.length === 0) { - return resolved.constructSignatures[0]; - } - } - } - return void 0; - } - function instantiateSignatureInContextOf(signature, contextualSignature, inferenceContext, compareTypes) { - var context = createInferenceContext(signature.typeParameters, signature, 0 /* None */, compareTypes); - var restType = getEffectiveRestType(contextualSignature); - var mapper = inferenceContext && (restType && restType.flags & 262144 /* TypeParameter */ ? inferenceContext.nonFixingMapper : inferenceContext.mapper); - var sourceSignature = mapper ? instantiateSignature(contextualSignature, mapper) : contextualSignature; - applyToParameterTypes(sourceSignature, signature, function (source, target) { - inferTypes(context.inferences, source, target); - }); - if (!inferenceContext) { - applyToReturnTypes(contextualSignature, signature, function (source, target) { - inferTypes(context.inferences, source, target, 128 /* ReturnType */); - }); - } - return getSignatureInstantiation(signature, getInferredTypes(context), isInJSFile(contextualSignature.declaration)); - } - function inferJsxTypeArguments(node, signature, checkMode, context) { - var paramType = getEffectiveFirstArgumentForJsxSignature(signature, node); - var checkAttrType = checkExpressionWithContextualType(node.attributes, paramType, context, checkMode); - inferTypes(context.inferences, checkAttrType, paramType); - return getInferredTypes(context); - } - function getThisArgumentType(thisArgumentNode) { - if (!thisArgumentNode) { - return voidType; - } - var thisArgumentType = checkExpression(thisArgumentNode); - return isOptionalChainRoot(thisArgumentNode.parent) ? getNonNullableType(thisArgumentType) : isOptionalChain(thisArgumentNode.parent) ? removeOptionalTypeMarker(thisArgumentType) : thisArgumentType; - } - function inferTypeArguments(node, signature, args, checkMode, context) { - if (isJsxOpeningLikeElement(node)) { - return inferJsxTypeArguments(node, signature, checkMode, context); - } - if (node.kind !== 170 /* Decorator */) { - var skipBindingPatterns = every(signature.typeParameters, function (p) { return !!getDefaultFromTypeParameter(p); }); - var contextualType = getContextualType2(node, skipBindingPatterns ? 8 /* SkipBindingPatterns */ : 0 /* None */); - if (contextualType) { - var inferenceTargetType = getReturnTypeOfSignature(signature); - if (couldContainTypeVariables(inferenceTargetType)) { - var outerContext = getInferenceContext(node); - var isFromBindingPattern = !skipBindingPatterns && getContextualType2(node, 8 /* SkipBindingPatterns */) !== contextualType; - if (!isFromBindingPattern) { - var outerMapper = getMapperFromContext(cloneInferenceContext(outerContext, 1 /* NoDefault */)); - var instantiatedType = instantiateType(contextualType, outerMapper); - var contextualSignature = getSingleCallSignature(instantiatedType); - var inferenceSourceType = contextualSignature && contextualSignature.typeParameters ? getOrCreateTypeFromSignature(getSignatureInstantiationWithoutFillingInTypeArguments(contextualSignature, contextualSignature.typeParameters)) : instantiatedType; - inferTypes(context.inferences, inferenceSourceType, inferenceTargetType, 128 /* ReturnType */); - } - var returnContext = createInferenceContext(signature.typeParameters, signature, context.flags); - var returnSourceType = instantiateType(contextualType, outerContext && outerContext.returnMapper); - inferTypes(returnContext.inferences, returnSourceType, inferenceTargetType); - context.returnMapper = some(returnContext.inferences, hasInferenceCandidates) ? getMapperFromContext(cloneInferredPartOfContext(returnContext)) : void 0; - } - } - } - var restType = getNonArrayRestType(signature); - var argCount = restType ? Math.min(getParameterCount(signature) - 1, args.length) : args.length; - if (restType && restType.flags & 262144 /* TypeParameter */) { - var info = find(context.inferences, function (info2) { return info2.typeParameter === restType; }); - if (info) { - info.impliedArity = findIndex(args, isSpreadArgument, argCount) < 0 ? args.length - argCount : void 0; - } - } - var thisType = getThisTypeOfSignature(signature); - if (thisType && couldContainTypeVariables(thisType)) { - var thisArgumentNode = getThisArgumentOfCall(node); - inferTypes(context.inferences, getThisArgumentType(thisArgumentNode), thisType); - } - for (var i = 0; i < argCount; i++) { - var arg = args[i]; - if (arg.kind !== 232 /* OmittedExpression */) { - var paramType = getTypeAtPosition(signature, i); - if (couldContainTypeVariables(paramType)) { - var argType = checkExpressionWithContextualType(arg, paramType, context, checkMode); - inferTypes(context.inferences, argType, paramType); - } - } - } - if (restType && couldContainTypeVariables(restType)) { - var spreadType = getSpreadArgumentType(args, argCount, args.length, restType, context, checkMode); - inferTypes(context.inferences, spreadType, restType); - } - return getInferredTypes(context); - } - function getMutableArrayOrTupleType(type) { - return type.flags & 1048576 /* Union */ ? mapType(type, getMutableArrayOrTupleType) : type.flags & 1 /* Any */ || isMutableArrayOrTuple(getBaseConstraintOfType(type) || type) ? type : isTupleType(type) ? createTupleType(getElementTypes(type), type.target.elementFlags, - /*readonly*/ - false, type.target.labeledElementDeclarations) : createTupleType([type], [8 /* Variadic */]); - } - function getSpreadArgumentType(args, index, argCount, restType, context, checkMode) { - var inConstContext = isConstTypeVariable(restType); - if (index >= argCount - 1) { - var arg = args[argCount - 1]; - if (isSpreadArgument(arg)) { - var spreadType = arg.kind === 237 /* SyntheticExpression */ ? arg.type : checkExpressionWithContextualType(arg.expression, restType, context, checkMode); - if (isArrayLikeType(spreadType)) { - return getMutableArrayOrTupleType(spreadType); - } - return createArrayType(checkIteratedTypeOrElementType(33 /* Spread */, spreadType, undefinedType, arg.kind === 230 /* SpreadElement */ ? arg.expression : arg), inConstContext); - } - } - var types = []; - var flags = []; - var names = []; - for (var i = index; i < argCount; i++) { - var arg = args[i]; - if (isSpreadArgument(arg)) { - var spreadType = arg.kind === 237 /* SyntheticExpression */ ? arg.type : checkExpression(arg.expression); - if (isArrayLikeType(spreadType)) { - types.push(spreadType); - flags.push(8 /* Variadic */); - } - else { - types.push(checkIteratedTypeOrElementType(33 /* Spread */, spreadType, undefinedType, arg.kind === 230 /* SpreadElement */ ? arg.expression : arg)); - flags.push(4 /* Rest */); - } - } - else { - var contextualType = isTupleType(restType) ? getContextualTypeForElementExpression(restType, i - index, argCount - index) || unknownType : getIndexedAccessType(restType, getNumberLiteralType(i - index), 256 /* Contextual */); - var argType = checkExpressionWithContextualType(arg, contextualType, context, checkMode); - var hasPrimitiveContextualType = inConstContext || maybeTypeOfKind(contextualType, 402784252 /* Primitive */ | 4194304 /* Index */ | 134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */); - types.push(hasPrimitiveContextualType ? getRegularTypeOfLiteralType(argType) : getWidenedLiteralType(argType)); - flags.push(1 /* Required */); - } - if (arg.kind === 237 /* SyntheticExpression */ && arg.tupleNameSource) { - names.push(arg.tupleNameSource); - } - } - return createTupleType(types, flags, inConstContext, length(names) === length(types) ? names : void 0); - } - function checkTypeArguments(signature, typeArgumentNodes, reportErrors2, headMessage) { - var isJavascript = isInJSFile(signature.declaration); - var typeParameters = signature.typeParameters; - var typeArgumentTypes = fillMissingTypeArguments(map(typeArgumentNodes, getTypeFromTypeNode), typeParameters, getMinTypeArgumentCount(typeParameters), isJavascript); - var mapper; - for (var i = 0; i < typeArgumentNodes.length; i++) { - Debug.assert(typeParameters[i] !== void 0, "Should not call checkTypeArguments with too many type arguments"); - var constraint = getConstraintOfTypeParameter(typeParameters[i]); - if (constraint) { - var errorInfo = reportErrors2 && headMessage ? function () { return chainDiagnosticMessages( - /*details*/ - void 0, Diagnostics.Type_0_does_not_satisfy_the_constraint_1); } : void 0; - var typeArgumentHeadMessage = headMessage || Diagnostics.Type_0_does_not_satisfy_the_constraint_1; - if (!mapper) { - mapper = createTypeMapper(typeParameters, typeArgumentTypes); - } - var typeArgument = typeArgumentTypes[i]; - if (!checkTypeAssignableTo(typeArgument, getTypeWithThisArgument(instantiateType(constraint, mapper), typeArgument), reportErrors2 ? typeArgumentNodes[i] : void 0, typeArgumentHeadMessage, errorInfo)) { - return void 0; - } - } - } - return typeArgumentTypes; - } - function getJsxReferenceKind(node) { - if (isJsxIntrinsicTagName(node.tagName)) { - return 2 /* Mixed */; - } - var tagType = getApparentType(checkExpression(node.tagName)); - if (length(getSignaturesOfType(tagType, 1 /* Construct */))) { - return 0 /* Component */; - } - if (length(getSignaturesOfType(tagType, 0 /* Call */))) { - return 1 /* Function */; - } - return 2 /* Mixed */; - } - function checkApplicableSignatureForJsxOpeningLikeElement(node, signature, relation, checkMode, reportErrors2, containingMessageChain, errorOutputContainer) { - var paramType = getEffectiveFirstArgumentForJsxSignature(signature, node); - var attributesType = checkExpressionWithContextualType(node.attributes, paramType, - /*inferenceContext*/ - void 0, checkMode); - var checkAttributesType = checkMode & 4 /* SkipContextSensitive */ ? getRegularTypeOfObjectLiteral(attributesType) : attributesType; - return checkTagNameDoesNotExpectTooManyArguments() && checkTypeRelatedToAndOptionallyElaborate(checkAttributesType, paramType, relation, reportErrors2 ? node.tagName : void 0, node.attributes, - /*headMessage*/ - void 0, containingMessageChain, errorOutputContainer); - function checkTagNameDoesNotExpectTooManyArguments() { - var e_337, _t, e_338, _u, e_339, _v; - var _a; - if (getJsxNamespaceContainerForImplicitImport(node)) { - return true; - } - var tagType = (isJsxOpeningElement(node) || isJsxSelfClosingElement(node)) && !(isJsxIntrinsicTagName(node.tagName) || isJsxNamespacedName(node.tagName)) ? checkExpression(node.tagName) : void 0; - if (!tagType) { - return true; - } - var tagCallSignatures = getSignaturesOfType(tagType, 0 /* Call */); - if (!length(tagCallSignatures)) { - return true; - } - var factory2 = getJsxFactoryEntity(node); - if (!factory2) { - return true; - } - var factorySymbol = resolveEntityName(factory2, 111551 /* Value */, - /*ignoreErrors*/ - true, - /*dontResolveAlias*/ - false, node); - if (!factorySymbol) { - return true; - } - var factoryType = getTypeOfSymbol(factorySymbol); - var callSignatures = getSignaturesOfType(factoryType, 0 /* Call */); - if (!length(callSignatures)) { - return true; - } - var hasFirstParamSignatures = false; - var maxParamCount = 0; - try { - for (var callSignatures_1 = __values(callSignatures), callSignatures_1_1 = callSignatures_1.next(); !callSignatures_1_1.done; callSignatures_1_1 = callSignatures_1.next()) { - var sig = callSignatures_1_1.value; - var firstparam = getTypeAtPosition(sig, 0); - var signaturesOfParam = getSignaturesOfType(firstparam, 0 /* Call */); - if (!length(signaturesOfParam)) - continue; - try { - for (var signaturesOfParam_1 = (e_338 = void 0, __values(signaturesOfParam)), signaturesOfParam_1_1 = signaturesOfParam_1.next(); !signaturesOfParam_1_1.done; signaturesOfParam_1_1 = signaturesOfParam_1.next()) { - var paramSig = signaturesOfParam_1_1.value; - hasFirstParamSignatures = true; - if (hasEffectiveRestParameter(paramSig)) { - return true; - } - var paramCount = getParameterCount(paramSig); - if (paramCount > maxParamCount) { - maxParamCount = paramCount; - } - } - } - catch (e_338_1) { e_338 = { error: e_338_1 }; } - finally { - try { - if (signaturesOfParam_1_1 && !signaturesOfParam_1_1.done && (_u = signaturesOfParam_1.return)) _u.call(signaturesOfParam_1); - } - finally { if (e_338) throw e_338.error; } - } - } - } - catch (e_337_1) { e_337 = { error: e_337_1 }; } - finally { - try { - if (callSignatures_1_1 && !callSignatures_1_1.done && (_t = callSignatures_1.return)) _t.call(callSignatures_1); - } - finally { if (e_337) throw e_337.error; } - } - if (!hasFirstParamSignatures) { - return true; - } - var absoluteMinArgCount = Infinity; - try { - for (var tagCallSignatures_1 = __values(tagCallSignatures), tagCallSignatures_1_1 = tagCallSignatures_1.next(); !tagCallSignatures_1_1.done; tagCallSignatures_1_1 = tagCallSignatures_1.next()) { - var tagSig = tagCallSignatures_1_1.value; - var tagRequiredArgCount = getMinArgumentCount(tagSig); - if (tagRequiredArgCount < absoluteMinArgCount) { - absoluteMinArgCount = tagRequiredArgCount; - } - } - } - catch (e_339_1) { e_339 = { error: e_339_1 }; } - finally { - try { - if (tagCallSignatures_1_1 && !tagCallSignatures_1_1.done && (_v = tagCallSignatures_1.return)) _v.call(tagCallSignatures_1); - } - finally { if (e_339) throw e_339.error; } - } - if (absoluteMinArgCount <= maxParamCount) { - return true; - } - if (reportErrors2) { - var diag2 = createDiagnosticForNode(node.tagName, Diagnostics.Tag_0_expects_at_least_1_arguments_but_the_JSX_factory_2_provides_at_most_3, entityNameToString(node.tagName), absoluteMinArgCount, entityNameToString(factory2), maxParamCount); - var tagNameDeclaration = (_a = getSymbolAtLocation(node.tagName)) == null ? void 0 : _a.valueDeclaration; - if (tagNameDeclaration) { - addRelatedInfo(diag2, createDiagnosticForNode(tagNameDeclaration, Diagnostics._0_is_declared_here, entityNameToString(node.tagName))); - } - if (errorOutputContainer && errorOutputContainer.skipLogging) { - (errorOutputContainer.errors || (errorOutputContainer.errors = [])).push(diag2); - } - if (!errorOutputContainer.skipLogging) { - diagnostics.add(diag2); - } - } - return false; - } - } - function getSignatureApplicabilityError(node, args, signature, relation, checkMode, reportErrors2, containingMessageChain) { - var errorOutputContainer = { errors: void 0, skipLogging: true }; - if (isJsxOpeningLikeElement(node)) { - if (!checkApplicableSignatureForJsxOpeningLikeElement(node, signature, relation, checkMode, reportErrors2, containingMessageChain, errorOutputContainer)) { - Debug.assert(!reportErrors2 || !!errorOutputContainer.errors, "jsx should have errors when reporting errors"); - return errorOutputContainer.errors || emptyArray; - } - return void 0; - } - var thisType = getThisTypeOfSignature(signature); - if (thisType && thisType !== voidType && !(isNewExpression(node) || isCallExpression(node) && isSuperProperty(node.expression))) { - var thisArgumentNode = getThisArgumentOfCall(node); - var thisArgumentType = getThisArgumentType(thisArgumentNode); - var errorNode = reportErrors2 ? thisArgumentNode || node : void 0; - var headMessage2 = Diagnostics.The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1; - if (!checkTypeRelatedTo(thisArgumentType, thisType, relation, errorNode, headMessage2, containingMessageChain, errorOutputContainer)) { - Debug.assert(!reportErrors2 || !!errorOutputContainer.errors, "this parameter should have errors when reporting errors"); - return errorOutputContainer.errors || emptyArray; - } - } - var headMessage = Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1; - var restType = getNonArrayRestType(signature); - var argCount = restType ? Math.min(getParameterCount(signature) - 1, args.length) : args.length; - for (var i = 0; i < argCount; i++) { - var arg = args[i]; - if (arg.kind !== 232 /* OmittedExpression */) { - var paramType = getTypeAtPosition(signature, i); - var argType = checkExpressionWithContextualType(arg, paramType, - /*inferenceContext*/ - void 0, checkMode); - var checkArgType = checkMode & 4 /* SkipContextSensitive */ ? getRegularTypeOfObjectLiteral(argType) : argType; - if (!checkTypeRelatedToAndOptionallyElaborate(checkArgType, paramType, relation, reportErrors2 ? arg : void 0, arg, headMessage, containingMessageChain, errorOutputContainer)) { - Debug.assert(!reportErrors2 || !!errorOutputContainer.errors, "parameter should have errors when reporting errors"); - maybeAddMissingAwaitInfo(arg, checkArgType, paramType); - return errorOutputContainer.errors || emptyArray; - } - } - } - if (restType) { - var spreadType = getSpreadArgumentType(args, argCount, args.length, restType, - /*context*/ - void 0, checkMode); - var restArgCount = args.length - argCount; - var errorNode = !reportErrors2 ? void 0 : restArgCount === 0 ? node : restArgCount === 1 ? args[argCount] : setTextRangePosEnd(createSyntheticExpression(node, spreadType), args[argCount].pos, args[args.length - 1].end); - if (!checkTypeRelatedTo(spreadType, restType, relation, errorNode, headMessage, - /*containingMessageChain*/ - void 0, errorOutputContainer)) { - Debug.assert(!reportErrors2 || !!errorOutputContainer.errors, "rest parameter should have errors when reporting errors"); - maybeAddMissingAwaitInfo(errorNode, spreadType, restType); - return errorOutputContainer.errors || emptyArray; - } - } - return void 0; - function maybeAddMissingAwaitInfo(errorNode, source, target) { - if (errorNode && reportErrors2 && errorOutputContainer.errors && errorOutputContainer.errors.length) { - if (getAwaitedTypeOfPromise(target)) { - return; - } - var awaitedTypeOfSource = getAwaitedTypeOfPromise(source); - if (awaitedTypeOfSource && isTypeRelatedTo(awaitedTypeOfSource, target, relation)) { - addRelatedInfo(errorOutputContainer.errors[0], createDiagnosticForNode(errorNode, Diagnostics.Did_you_forget_to_use_await)); - } - } - } - } - function getThisArgumentOfCall(node) { - var expression = node.kind === 213 /* CallExpression */ ? node.expression : node.kind === 215 /* TaggedTemplateExpression */ ? node.tag : node.kind === 170 /* Decorator */ && !legacyDecorators ? node.expression : void 0; - if (expression) { - var callee = skipOuterExpressions(expression); - if (isAccessExpression(callee)) { - return callee.expression; - } - } - } - function createSyntheticExpression(parent2, type, isSpread, tupleNameSource) { - var result = parseNodeFactory.createSyntheticExpression(type, isSpread, tupleNameSource); - setTextRange(result, parent2); - setParent(result, parent2); - return result; - } - function getEffectiveCallArguments(node) { - if (node.kind === 215 /* TaggedTemplateExpression */) { - var template = node.template; - var args2_1 = [createSyntheticExpression(template, getGlobalTemplateStringsArrayType())]; - if (template.kind === 228 /* TemplateExpression */) { - forEach(template.templateSpans, function (span) { - args2_1.push(span.expression); - }); - } - return args2_1; - } - if (node.kind === 170 /* Decorator */) { - return getEffectiveDecoratorArguments(node); - } - if (isJsxOpeningLikeElement(node)) { - return node.attributes.properties.length > 0 || isJsxOpeningElement(node) && node.parent.children.length > 0 ? [node.attributes] : emptyArray; - } - var args = node.arguments || emptyArray; - var spreadIndex = getSpreadArgumentIndex(args); - if (spreadIndex >= 0) { - var effectiveArgs_1 = args.slice(0, spreadIndex); - var _loop_29 = function (i) { - var arg = args[i]; - var spreadType = arg.kind === 230 /* SpreadElement */ && (flowLoopCount ? checkExpression(arg.expression) : checkExpressionCached(arg.expression)); - if (spreadType && isTupleType(spreadType)) { - forEach(getElementTypes(spreadType), function (t, i2) { - var _a; - var flags = spreadType.target.elementFlags[i2]; - var syntheticArg = createSyntheticExpression(arg, flags & 4 /* Rest */ ? createArrayType(t) : t, !!(flags & 12 /* Variable */), (_a = spreadType.target.labeledElementDeclarations) == null ? void 0 : _a[i2]); - effectiveArgs_1.push(syntheticArg); - }); - } - else { - effectiveArgs_1.push(arg); - } - }; - for (var i = spreadIndex; i < args.length; i++) { - _loop_29(i); - } - return effectiveArgs_1; - } - return args; - } - function getEffectiveDecoratorArguments(node) { - var e_340, _t; - var expr = node.expression; - var signature = getDecoratorCallSignature(node); - if (signature) { - var args = []; - try { - for (var _u = __values(signature.parameters), _v = _u.next(); !_v.done; _v = _u.next()) { - var param = _v.value; - var type = getTypeOfSymbol(param); - args.push(createSyntheticExpression(expr, type)); - } - } - catch (e_340_1) { e_340 = { error: e_340_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_340) throw e_340.error; } - } - return args; - } - return Debug.fail(); - } - function getDecoratorArgumentCount(node, signature) { - return compilerOptions.experimentalDecorators ? getLegacyDecoratorArgumentCount(node, signature) : 2; - } - function getLegacyDecoratorArgumentCount(node, signature) { - switch (node.parent.kind) { - case 263 /* ClassDeclaration */: - case 231 /* ClassExpression */: - return 1; - case 172 /* PropertyDeclaration */: - return hasAccessorModifier(node.parent) ? 3 : 2; - case 174 /* MethodDeclaration */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - return languageVersion === 0 /* ES3 */ || signature.parameters.length <= 2 ? 2 : 3; - case 169 /* Parameter */: - return 3; - default: - return Debug.fail(); - } - } - function getDiagnosticSpanForCallNode(node, doNotIncludeArguments) { - var start2; - var length2; - var sourceFile = getSourceFileOfNode(node); - if (isPropertyAccessExpression(node.expression)) { - var nameSpan = getErrorSpanForNode(sourceFile, node.expression.name); - start2 = nameSpan.start; - length2 = doNotIncludeArguments ? nameSpan.length : node.end - start2; - } - else { - var expressionSpan = getErrorSpanForNode(sourceFile, node.expression); - start2 = expressionSpan.start; - length2 = doNotIncludeArguments ? expressionSpan.length : node.end - start2; - } - return { start: start2, length: length2, sourceFile: sourceFile }; - } - function getDiagnosticForCallNode(node, message) { - var args = []; - for (var _t = 2; _t < arguments.length; _t++) { - args[_t - 2] = arguments[_t]; - } - if (isCallExpression(node)) { - var _u = getDiagnosticSpanForCallNode(node), sourceFile = _u.sourceFile, start2 = _u.start, length2 = _u.length; - if ("message" in message) { - return createFileDiagnostic.apply(void 0, __spreadArray([sourceFile, start2, length2, message], __read(args), false)); - } - return createDiagnosticForFileFromMessageChain(sourceFile, message); - } - else { - if ("message" in message) { - return createDiagnosticForNode.apply(void 0, __spreadArray([node, message], __read(args), false)); - } - return createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(node), node, message); - } - } - function isPromiseResolveArityError(node) { - if (!isCallExpression(node) || !isIdentifier(node.expression)) - return false; - var symbol = resolveName(node.expression, node.expression.escapedText, 111551 /* Value */, - /*nameNotFoundMessage*/ - void 0, - /*nameArg*/ - void 0, - /*isUse*/ - false); - var decl = symbol == null ? void 0 : symbol.valueDeclaration; - if (!decl || !isParameter(decl) || !isFunctionExpressionOrArrowFunction(decl.parent) || !isNewExpression(decl.parent.parent) || !isIdentifier(decl.parent.parent.expression)) { - return false; - } - var globalPromiseSymbol = getGlobalPromiseConstructorSymbol( - /*reportErrors*/ - false); - if (!globalPromiseSymbol) - return false; - var constructorSymbol = getSymbolAtLocation(decl.parent.parent.expression, - /*ignoreErrors*/ - true); - return constructorSymbol === globalPromiseSymbol; - } - function getArgumentArityError(node, signatures, args, headMessage) { - var e_341, _t; - var _a; - var spreadIndex = getSpreadArgumentIndex(args); - if (spreadIndex > -1) { - return createDiagnosticForNode(args[spreadIndex], Diagnostics.A_spread_argument_must_either_have_a_tuple_type_or_be_passed_to_a_rest_parameter); - } - var min2 = Number.POSITIVE_INFINITY; - var max = Number.NEGATIVE_INFINITY; - var maxBelow = Number.NEGATIVE_INFINITY; - var minAbove = Number.POSITIVE_INFINITY; - var closestSignature; - try { - for (var signatures_8 = __values(signatures), signatures_8_1 = signatures_8.next(); !signatures_8_1.done; signatures_8_1 = signatures_8.next()) { - var sig = signatures_8_1.value; - var minParameter = getMinArgumentCount(sig); - var maxParameter = getParameterCount(sig); - if (minParameter < min2) { - min2 = minParameter; - closestSignature = sig; - } - max = Math.max(max, maxParameter); - if (minParameter < args.length && minParameter > maxBelow) - maxBelow = minParameter; - if (args.length < maxParameter && maxParameter < minAbove) - minAbove = maxParameter; - } - } - catch (e_341_1) { e_341 = { error: e_341_1 }; } - finally { - try { - if (signatures_8_1 && !signatures_8_1.done && (_t = signatures_8.return)) _t.call(signatures_8); - } - finally { if (e_341) throw e_341.error; } - } - var hasRestParameter2 = some(signatures, hasEffectiveRestParameter); - var parameterRange = hasRestParameter2 ? min2 : min2 < max ? min2 + "-" + max : min2; - var isVoidPromiseError = !hasRestParameter2 && parameterRange === 1 && args.length === 0 && isPromiseResolveArityError(node); - if (isVoidPromiseError && isInJSFile(node)) { - return getDiagnosticForCallNode(node, Diagnostics.Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_without_arguments); - } - var error3 = isDecorator(node) ? hasRestParameter2 ? Diagnostics.The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_at_least_0 : Diagnostics.The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_0 : hasRestParameter2 ? Diagnostics.Expected_at_least_0_arguments_but_got_1 : isVoidPromiseError ? Diagnostics.Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise : Diagnostics.Expected_0_arguments_but_got_1; - if (min2 < args.length && args.length < max) { - if (headMessage) { - var chain = chainDiagnosticMessages( - /*details*/ - void 0, Diagnostics.No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments, args.length, maxBelow, minAbove); - chain = chainDiagnosticMessages(chain, headMessage); - return getDiagnosticForCallNode(node, chain); - } - return getDiagnosticForCallNode(node, Diagnostics.No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments, args.length, maxBelow, minAbove); - } - else if (args.length < min2) { - var diagnostic = void 0; - if (headMessage) { - var chain = chainDiagnosticMessages( - /*details*/ - void 0, error3, parameterRange, args.length); - chain = chainDiagnosticMessages(chain, headMessage); - diagnostic = getDiagnosticForCallNode(node, chain); - } - else { - diagnostic = getDiagnosticForCallNode(node, error3, parameterRange, args.length); - } - var parameter = (_a = closestSignature == null ? void 0 : closestSignature.declaration) == null ? void 0 : _a.parameters[closestSignature.thisParameter ? args.length + 1 : args.length]; - if (parameter) { - var messageAndArgs = isBindingPattern(parameter.name) ? [Diagnostics.An_argument_matching_this_binding_pattern_was_not_provided] : isRestParameter(parameter) ? [Diagnostics.Arguments_for_the_rest_parameter_0_were_not_provided, idText(getFirstIdentifier(parameter.name))] : [Diagnostics.An_argument_for_0_was_not_provided, !parameter.name ? args.length : idText(getFirstIdentifier(parameter.name))]; - var parameterError = createDiagnosticForNode.apply(void 0, __spreadArray([parameter], __read(messageAndArgs), false)); - return addRelatedInfo(diagnostic, parameterError); - } - return diagnostic; - } - else { - var errorSpan = factory.createNodeArray(args.slice(max)); - var pos = first(errorSpan).pos; - var end = last(errorSpan).end; - if (end === pos) { - end++; - } - setTextRangePosEnd(errorSpan, pos, end); - if (headMessage) { - var chain = chainDiagnosticMessages( - /*details*/ - void 0, error3, parameterRange, args.length); - chain = chainDiagnosticMessages(chain, headMessage); - return createDiagnosticForNodeArrayFromMessageChain(getSourceFileOfNode(node), errorSpan, chain); - } - return createDiagnosticForNodeArray(getSourceFileOfNode(node), errorSpan, error3, parameterRange, args.length); - } - } - function getTypeArgumentArityError(node, signatures, typeArguments, headMessage) { - var e_342, _t; - var argCount = typeArguments.length; - if (signatures.length === 1) { - var sig = signatures[0]; - var min2 = getMinTypeArgumentCount(sig.typeParameters); - var max = length(sig.typeParameters); - if (headMessage) { - var chain = chainDiagnosticMessages( - /*details*/ - void 0, Diagnostics.Expected_0_type_arguments_but_got_1, min2 < max ? min2 + "-" + max : min2, argCount); - chain = chainDiagnosticMessages(chain, headMessage); - return createDiagnosticForNodeArrayFromMessageChain(getSourceFileOfNode(node), typeArguments, chain); - } - return createDiagnosticForNodeArray(getSourceFileOfNode(node), typeArguments, Diagnostics.Expected_0_type_arguments_but_got_1, min2 < max ? min2 + "-" + max : min2, argCount); - } - var belowArgCount = -Infinity; - var aboveArgCount = Infinity; - try { - for (var signatures_9 = __values(signatures), signatures_9_1 = signatures_9.next(); !signatures_9_1.done; signatures_9_1 = signatures_9.next()) { - var sig = signatures_9_1.value; - var min2 = getMinTypeArgumentCount(sig.typeParameters); - var max = length(sig.typeParameters); - if (min2 > argCount) { - aboveArgCount = Math.min(aboveArgCount, min2); - } - else if (max < argCount) { - belowArgCount = Math.max(belowArgCount, max); - } - } - } - catch (e_342_1) { e_342 = { error: e_342_1 }; } - finally { - try { - if (signatures_9_1 && !signatures_9_1.done && (_t = signatures_9.return)) _t.call(signatures_9); - } - finally { if (e_342) throw e_342.error; } - } - if (belowArgCount !== -Infinity && aboveArgCount !== Infinity) { - if (headMessage) { - var chain = chainDiagnosticMessages( - /*details*/ - void 0, Diagnostics.No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments, argCount, belowArgCount, aboveArgCount); - chain = chainDiagnosticMessages(chain, headMessage); - return createDiagnosticForNodeArrayFromMessageChain(getSourceFileOfNode(node), typeArguments, chain); - } - return createDiagnosticForNodeArray(getSourceFileOfNode(node), typeArguments, Diagnostics.No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments, argCount, belowArgCount, aboveArgCount); - } - if (headMessage) { - var chain = chainDiagnosticMessages( - /*details*/ - void 0, Diagnostics.Expected_0_type_arguments_but_got_1, belowArgCount === -Infinity ? aboveArgCount : belowArgCount, argCount); - chain = chainDiagnosticMessages(chain, headMessage); - return createDiagnosticForNodeArrayFromMessageChain(getSourceFileOfNode(node), typeArguments, chain); - } - return createDiagnosticForNodeArray(getSourceFileOfNode(node), typeArguments, Diagnostics.Expected_0_type_arguments_but_got_1, belowArgCount === -Infinity ? aboveArgCount : belowArgCount, argCount); - } - function resolveCall(node, signatures, candidatesOutArray, checkMode, callChainFlags, headMessage) { - var e_343, _t, e_344, _u; - var isTaggedTemplate = node.kind === 215 /* TaggedTemplateExpression */; - var isDecorator2 = node.kind === 170 /* Decorator */; - var isJsxOpeningOrSelfClosingElement = isJsxOpeningLikeElement(node); - var reportErrors2 = !isInferencePartiallyBlocked && !candidatesOutArray; - var typeArguments; - if (!isDecorator2 && !isSuperCall(node)) { - typeArguments = node.typeArguments; - if (isTaggedTemplate || isJsxOpeningOrSelfClosingElement || node.expression.kind !== 108 /* SuperKeyword */) { - forEach(typeArguments, checkSourceElement); - } - } - var candidates = candidatesOutArray || []; - reorderCandidates(signatures, candidates, callChainFlags); - Debug.assert(candidates.length, "Revert #54442 and add a testcase with whatever triggered this"); - var args = getEffectiveCallArguments(node); - var isSingleNonGenericCandidate = candidates.length === 1 && !candidates[0].typeParameters; - var argCheckMode = !isDecorator2 && !isSingleNonGenericCandidate && some(args, isContextSensitive) ? 4 /* SkipContextSensitive */ : 0 /* Normal */; - var candidatesForArgumentError; - var candidateForArgumentArityError; - var candidateForTypeArgumentError; - var result; - var signatureHelpTrailingComma = !!(checkMode & 16 /* IsForSignatureHelp */) && node.kind === 213 /* CallExpression */ && node.arguments.hasTrailingComma; - if (candidates.length > 1) { - result = chooseOverload(candidates, subtypeRelation, isSingleNonGenericCandidate, signatureHelpTrailingComma); - } - if (!result) { - result = chooseOverload(candidates, assignableRelation, isSingleNonGenericCandidate, signatureHelpTrailingComma); - } - if (result) { - return result; - } - result = getCandidateForOverloadFailure(node, candidates, args, !!candidatesOutArray, checkMode); - getNodeLinks(node).resolvedSignature = result; - if (reportErrors2) { - if (candidatesForArgumentError) { - if (candidatesForArgumentError.length === 1 || candidatesForArgumentError.length > 3) { - var last2 = candidatesForArgumentError[candidatesForArgumentError.length - 1]; - var chain_1; - if (candidatesForArgumentError.length > 3) { - chain_1 = chainDiagnosticMessages(chain_1, Diagnostics.The_last_overload_gave_the_following_error); - chain_1 = chainDiagnosticMessages(chain_1, Diagnostics.No_overload_matches_this_call); - } - if (headMessage) { - chain_1 = chainDiagnosticMessages(chain_1, headMessage); - } - var diags = getSignatureApplicabilityError(node, args, last2, assignableRelation, 0 /* Normal */, - /*reportErrors*/ - true, function () { return chain_1; }); - if (diags) { - try { - for (var diags_1 = __values(diags), diags_1_1 = diags_1.next(); !diags_1_1.done; diags_1_1 = diags_1.next()) { - var d = diags_1_1.value; - if (last2.declaration && candidatesForArgumentError.length > 3) { - addRelatedInfo(d, createDiagnosticForNode(last2.declaration, Diagnostics.The_last_overload_is_declared_here)); - } - addImplementationSuccessElaboration(last2, d); - diagnostics.add(d); - } - } - catch (e_343_1) { e_343 = { error: e_343_1 }; } - finally { - try { - if (diags_1_1 && !diags_1_1.done && (_t = diags_1.return)) _t.call(diags_1); - } - finally { if (e_343) throw e_343.error; } - } - } - else { - Debug.fail("No error for last overload signature"); - } - } - else { - var allDiagnostics = []; - var max = 0; - var min2 = Number.MAX_VALUE; - var minIndex = 0; - var i_1 = 0; - var _loop_30 = function (c) { - var chain2 = function () { return chainDiagnosticMessages( - /*details*/ - void 0, Diagnostics.Overload_0_of_1_2_gave_the_following_error, i_1 + 1, candidates.length, signatureToString(c)); }; - var diags2 = getSignatureApplicabilityError(node, args, c, assignableRelation, 0 /* Normal */, - /*reportErrors*/ - true, chain2); - if (diags2) { - if (diags2.length <= min2) { - min2 = diags2.length; - minIndex = i_1; - } - max = Math.max(max, diags2.length); - allDiagnostics.push(diags2); - } - else { - Debug.fail("No error for 3 or fewer overload signatures"); - } - i_1++; - }; - try { - for (var candidatesForArgumentError_1 = __values(candidatesForArgumentError), candidatesForArgumentError_1_1 = candidatesForArgumentError_1.next(); !candidatesForArgumentError_1_1.done; candidatesForArgumentError_1_1 = candidatesForArgumentError_1.next()) { - var c = candidatesForArgumentError_1_1.value; - _loop_30(c); - } - } - catch (e_344_1) { e_344 = { error: e_344_1 }; } - finally { - try { - if (candidatesForArgumentError_1_1 && !candidatesForArgumentError_1_1.done && (_u = candidatesForArgumentError_1.return)) _u.call(candidatesForArgumentError_1); - } - finally { if (e_344) throw e_344.error; } - } - var diags_2 = max > 1 ? allDiagnostics[minIndex] : flatten(allDiagnostics); - Debug.assert(diags_2.length > 0, "No errors reported for 3 or fewer overload signatures"); - var chain = chainDiagnosticMessages(map(diags_2, createDiagnosticMessageChainFromDiagnostic), Diagnostics.No_overload_matches_this_call); - if (headMessage) { - chain = chainDiagnosticMessages(chain, headMessage); - } - var related = __spreadArray([], __read(flatMap(diags_2, function (d) { return d.relatedInformation; })), false); - var diag2 = void 0; - if (every(diags_2, function (d) { return d.start === diags_2[0].start && d.length === diags_2[0].length && d.file === diags_2[0].file; })) { - var _v = diags_2[0], file = _v.file, start2 = _v.start, length2 = _v.length; - diag2 = { file: file, start: start2, length: length2, code: chain.code, category: chain.category, messageText: chain, relatedInformation: related }; - } - else { - diag2 = createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(node), node, chain, related); - } - addImplementationSuccessElaboration(candidatesForArgumentError[0], diag2); - diagnostics.add(diag2); - } - } - else if (candidateForArgumentArityError) { - diagnostics.add(getArgumentArityError(node, [candidateForArgumentArityError], args, headMessage)); - } - else if (candidateForTypeArgumentError) { - checkTypeArguments(candidateForTypeArgumentError, node.typeArguments, - /*reportErrors*/ - true, headMessage); - } - else { - var signaturesWithCorrectTypeArgumentArity = filter(signatures, function (s) { return hasCorrectTypeArgumentArity(s, typeArguments); }); - if (signaturesWithCorrectTypeArgumentArity.length === 0) { - diagnostics.add(getTypeArgumentArityError(node, signatures, typeArguments, headMessage)); - } - else { - diagnostics.add(getArgumentArityError(node, signaturesWithCorrectTypeArgumentArity, args, headMessage)); - } - } - } - return result; - function addImplementationSuccessElaboration(failed, diagnostic) { - var _a, _b; - var oldCandidatesForArgumentError = candidatesForArgumentError; - var oldCandidateForArgumentArityError = candidateForArgumentArityError; - var oldCandidateForTypeArgumentError = candidateForTypeArgumentError; - var failedSignatureDeclarations = ((_b = (_a = failed.declaration) == null ? void 0 : _a.symbol) == null ? void 0 : _b.declarations) || emptyArray; - var isOverload = failedSignatureDeclarations.length > 1; - var implDecl = isOverload ? find(failedSignatureDeclarations, function (d) { return isFunctionLikeDeclaration(d) && nodeIsPresent(d.body); }) : void 0; - if (implDecl) { - var candidate = getSignatureFromDeclaration(implDecl); - var isSingleNonGenericCandidate2 = !candidate.typeParameters; - if (chooseOverload([candidate], assignableRelation, isSingleNonGenericCandidate2)) { - addRelatedInfo(diagnostic, createDiagnosticForNode(implDecl, Diagnostics.The_call_would_have_succeeded_against_this_implementation_but_implementation_signatures_of_overloads_are_not_externally_visible)); - } - } - candidatesForArgumentError = oldCandidatesForArgumentError; - candidateForArgumentArityError = oldCandidateForArgumentArityError; - candidateForTypeArgumentError = oldCandidateForTypeArgumentError; - } - function chooseOverload(candidates2, relation, isSingleNonGenericCandidate2, signatureHelpTrailingComma2) { - if (signatureHelpTrailingComma2 === void 0) { signatureHelpTrailingComma2 = false; } - candidatesForArgumentError = void 0; - candidateForArgumentArityError = void 0; - candidateForTypeArgumentError = void 0; - if (isSingleNonGenericCandidate2) { - var candidate = candidates2[0]; - if (some(typeArguments) || !hasCorrectArity(node, args, candidate, signatureHelpTrailingComma2)) { - return void 0; - } - if (getSignatureApplicabilityError(node, args, candidate, relation, 0 /* Normal */, - /*reportErrors*/ - false, - /*containingMessageChain*/ - void 0)) { - candidatesForArgumentError = [candidate]; - return void 0; - } - return candidate; - } - for (var candidateIndex = 0; candidateIndex < candidates2.length; candidateIndex++) { - var candidate = candidates2[candidateIndex]; - if (!hasCorrectTypeArgumentArity(candidate, typeArguments) || !hasCorrectArity(node, args, candidate, signatureHelpTrailingComma2)) { - continue; - } - var checkCandidate = void 0; - var inferenceContext = void 0; - if (candidate.typeParameters) { - var typeArgumentTypes = void 0; - if (some(typeArguments)) { - typeArgumentTypes = checkTypeArguments(candidate, typeArguments, - /*reportErrors*/ - false); - if (!typeArgumentTypes) { - candidateForTypeArgumentError = candidate; - continue; - } - } - else { - inferenceContext = createInferenceContext(candidate.typeParameters, candidate, - /*flags*/ - isInJSFile(node) ? 2 /* AnyDefault */ : 0 /* None */); - typeArgumentTypes = inferTypeArguments(node, candidate, args, argCheckMode | 8 /* SkipGenericFunctions */, inferenceContext); - argCheckMode |= inferenceContext.flags & 4 /* SkippedGenericFunction */ ? 8 /* SkipGenericFunctions */ : 0 /* Normal */; - } - checkCandidate = getSignatureInstantiation(candidate, typeArgumentTypes, isInJSFile(candidate.declaration), inferenceContext && inferenceContext.inferredTypeParameters); - if (getNonArrayRestType(candidate) && !hasCorrectArity(node, args, checkCandidate, signatureHelpTrailingComma2)) { - candidateForArgumentArityError = checkCandidate; - continue; - } - } - else { - checkCandidate = candidate; - } - if (getSignatureApplicabilityError(node, args, checkCandidate, relation, argCheckMode, - /*reportErrors*/ - false, - /*containingMessageChain*/ - void 0)) { - (candidatesForArgumentError || (candidatesForArgumentError = [])).push(checkCandidate); - continue; - } - if (argCheckMode) { - argCheckMode = 0 /* Normal */; - if (inferenceContext) { - var typeArgumentTypes = inferTypeArguments(node, candidate, args, argCheckMode, inferenceContext); - checkCandidate = getSignatureInstantiation(candidate, typeArgumentTypes, isInJSFile(candidate.declaration), inferenceContext.inferredTypeParameters); - if (getNonArrayRestType(candidate) && !hasCorrectArity(node, args, checkCandidate, signatureHelpTrailingComma2)) { - candidateForArgumentArityError = checkCandidate; - continue; - } - } - if (getSignatureApplicabilityError(node, args, checkCandidate, relation, argCheckMode, - /*reportErrors*/ - false, - /*containingMessageChain*/ - void 0)) { - (candidatesForArgumentError || (candidatesForArgumentError = [])).push(checkCandidate); - continue; - } - } - candidates2[candidateIndex] = checkCandidate; - return checkCandidate; - } - return void 0; - } - } - function getCandidateForOverloadFailure(node, candidates, args, hasCandidatesOutArray, checkMode) { - Debug.assert(candidates.length > 0); - checkNodeDeferred(node); - return hasCandidatesOutArray || candidates.length === 1 || candidates.some(function (c) { return !!c.typeParameters; }) ? pickLongestCandidateSignature(node, candidates, args, checkMode) : createUnionOfSignaturesForOverloadFailure(candidates); - } - function createUnionOfSignaturesForOverloadFailure(candidates) { - var thisParameters = mapDefined(candidates, function (c) { return c.thisParameter; }); - var thisParameter; - if (thisParameters.length) { - thisParameter = createCombinedSymbolFromTypes(thisParameters, thisParameters.map(getTypeOfParameter)); - } - var _t = minAndMax(candidates, getNumNonRestParameters), minArgumentCount = _t.min, maxNonRestParam = _t.max; - var parameters = []; - var _loop_31 = function (i) { - var symbols = mapDefined(candidates, function (s) { return signatureHasRestParameter(s) ? i < s.parameters.length - 1 ? s.parameters[i] : last(s.parameters) : i < s.parameters.length ? s.parameters[i] : void 0; }); - Debug.assert(symbols.length !== 0); - parameters.push(createCombinedSymbolFromTypes(symbols, mapDefined(candidates, function (candidate) { return tryGetTypeAtPosition(candidate, i); }))); - }; - for (var i = 0; i < maxNonRestParam; i++) { - _loop_31(i); - } - var restParameterSymbols = mapDefined(candidates, function (c) { return signatureHasRestParameter(c) ? last(c.parameters) : void 0; }); - var flags = 128 /* IsSignatureCandidateForOverloadFailure */; - if (restParameterSymbols.length !== 0) { - var type = createArrayType(getUnionType(mapDefined(candidates, tryGetRestTypeOfSignature), 2 /* Subtype */)); - parameters.push(createCombinedSymbolForOverloadFailure(restParameterSymbols, type)); - flags |= 1 /* HasRestParameter */; - } - if (candidates.some(signatureHasLiteralTypes)) { - flags |= 2 /* HasLiteralTypes */; - } - return createSignature(candidates[0].declaration, - /*typeParameters*/ - void 0, - // Before calling this we tested for `!candidates.some(c => !!c.typeParameters)`. - thisParameter, parameters, - /*resolvedReturnType*/ - getIntersectionType(candidates.map(getReturnTypeOfSignature)), - /*resolvedTypePredicate*/ - void 0, minArgumentCount, flags); - } - function getNumNonRestParameters(signature) { - var numParams = signature.parameters.length; - return signatureHasRestParameter(signature) ? numParams - 1 : numParams; - } - function createCombinedSymbolFromTypes(sources, types) { - return createCombinedSymbolForOverloadFailure(sources, getUnionType(types, 2 /* Subtype */)); - } - function createCombinedSymbolForOverloadFailure(sources, type) { - return createSymbolWithType(first(sources), type); - } - function pickLongestCandidateSignature(node, candidates, args, checkMode) { - var bestIndex = getLongestCandidateIndex(candidates, apparentArgumentCount === void 0 ? args.length : apparentArgumentCount); - var candidate = candidates[bestIndex]; - var typeParameters = candidate.typeParameters; - if (!typeParameters) { - return candidate; - } - var typeArgumentNodes = callLikeExpressionMayHaveTypeArguments(node) ? node.typeArguments : void 0; - var instantiated = typeArgumentNodes ? createSignatureInstantiation(candidate, getTypeArgumentsFromNodes(typeArgumentNodes, typeParameters, isInJSFile(node))) : inferSignatureInstantiationForOverloadFailure(node, typeParameters, candidate, args, checkMode); - candidates[bestIndex] = instantiated; - return instantiated; - } - function getTypeArgumentsFromNodes(typeArgumentNodes, typeParameters, isJs) { - var typeArguments = typeArgumentNodes.map(getTypeOfNode); - while (typeArguments.length > typeParameters.length) { - typeArguments.pop(); - } - while (typeArguments.length < typeParameters.length) { - typeArguments.push(getDefaultFromTypeParameter(typeParameters[typeArguments.length]) || getConstraintOfTypeParameter(typeParameters[typeArguments.length]) || getDefaultTypeArgumentType(isJs)); - } - return typeArguments; - } - function inferSignatureInstantiationForOverloadFailure(node, typeParameters, candidate, args, checkMode) { - var inferenceContext = createInferenceContext(typeParameters, candidate, - /*flags*/ - isInJSFile(node) ? 2 /* AnyDefault */ : 0 /* None */); - var typeArgumentTypes = inferTypeArguments(node, candidate, args, checkMode | 4 /* SkipContextSensitive */ | 8 /* SkipGenericFunctions */, inferenceContext); - return createSignatureInstantiation(candidate, typeArgumentTypes); - } - function getLongestCandidateIndex(candidates, argsCount) { - var maxParamsIndex = -1; - var maxParams = -1; - for (var i = 0; i < candidates.length; i++) { - var candidate = candidates[i]; - var paramCount = getParameterCount(candidate); - if (hasEffectiveRestParameter(candidate) || paramCount >= argsCount) { - return i; - } - if (paramCount > maxParams) { - maxParams = paramCount; - maxParamsIndex = i; - } - } - return maxParamsIndex; - } - function resolveCallExpression(node, candidatesOutArray, checkMode) { - var e_345, _t; - if (node.expression.kind === 108 /* SuperKeyword */) { - var superType = checkSuperExpression(node.expression); - if (isTypeAny(superType)) { - try { - for (var _u = __values(node.arguments), _v = _u.next(); !_v.done; _v = _u.next()) { - var arg = _v.value; - checkExpression(arg); - } - } - catch (e_345_1) { e_345 = { error: e_345_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_345) throw e_345.error; } - } - return anySignature; - } - if (!isErrorType(superType)) { - var baseTypeNode = getEffectiveBaseTypeNode(getContainingClass(node)); - if (baseTypeNode) { - var baseConstructors = getInstantiatedConstructorsForTypeArguments(superType, baseTypeNode.typeArguments, baseTypeNode); - return resolveCall(node, baseConstructors, candidatesOutArray, checkMode, 0 /* None */); - } - } - return resolveUntypedCall(node); - } - var callChainFlags; - var funcType = checkExpression(node.expression); - if (isCallChain(node)) { - var nonOptionalType = getOptionalExpressionType(funcType, node.expression); - callChainFlags = nonOptionalType === funcType ? 0 /* None */ : isOutermostOptionalChain(node) ? 16 /* IsOuterCallChain */ : 8 /* IsInnerCallChain */; - funcType = nonOptionalType; - } - else { - callChainFlags = 0 /* None */; - } - funcType = checkNonNullTypeWithReporter(funcType, node.expression, reportCannotInvokePossiblyNullOrUndefinedError); - if (funcType === silentNeverType) { - return silentNeverSignature; - } - var apparentType = getApparentType(funcType); - if (isErrorType(apparentType)) { - return resolveErrorCall(node); - } - var callSignatures = getSignaturesOfType(apparentType, 0 /* Call */); - var numConstructSignatures = getSignaturesOfType(apparentType, 1 /* Construct */).length; - if (isUntypedFunctionCall(funcType, apparentType, callSignatures.length, numConstructSignatures)) { - if (!isErrorType(funcType) && node.typeArguments) { - error2(node, Diagnostics.Untyped_function_calls_may_not_accept_type_arguments); - } - return resolveUntypedCall(node); - } - if (!callSignatures.length) { - if (numConstructSignatures) { - error2(node, Diagnostics.Value_of_type_0_is_not_callable_Did_you_mean_to_include_new, typeToString(funcType)); - } - else { - var relatedInformation = void 0; - if (node.arguments.length === 1) { - var text = getSourceFileOfNode(node).text; - if (isLineBreak(text.charCodeAt(skipTrivia(text, node.expression.end, - /*stopAfterLineBreak*/ - true) - 1))) { - relatedInformation = createDiagnosticForNode(node.expression, Diagnostics.Are_you_missing_a_semicolon); - } - } - invocationError(node.expression, apparentType, 0 /* Call */, relatedInformation); - } - return resolveErrorCall(node); - } - if (checkMode & 8 /* SkipGenericFunctions */ && !node.typeArguments && callSignatures.some(isGenericFunctionReturningFunction)) { - skippedGenericFunction(node, checkMode); - return resolvingSignature; - } - if (callSignatures.some(function (sig) { return isInJSFile(sig.declaration) && !!getJSDocClassTag(sig.declaration); })) { - error2(node, Diagnostics.Value_of_type_0_is_not_callable_Did_you_mean_to_include_new, typeToString(funcType)); - return resolveErrorCall(node); - } - return resolveCall(node, callSignatures, candidatesOutArray, checkMode, callChainFlags); - } - function isGenericFunctionReturningFunction(signature) { - return !!(signature.typeParameters && isFunctionType(getReturnTypeOfSignature(signature))); - } - function isUntypedFunctionCall(funcType, apparentFuncType, numCallSignatures, numConstructSignatures) { - return isTypeAny(funcType) || isTypeAny(apparentFuncType) && !!(funcType.flags & 262144 /* TypeParameter */) || !numCallSignatures && !numConstructSignatures && !(apparentFuncType.flags & 1048576 /* Union */) && !(getReducedType(apparentFuncType).flags & 131072 /* Never */) && isTypeAssignableTo(funcType, globalFunctionType); - } - function resolveNewExpression(node, candidatesOutArray, checkMode) { - if (node.arguments && languageVersion < 1 /* ES5 */) { - var spreadIndex = getSpreadArgumentIndex(node.arguments); - if (spreadIndex >= 0) { - error2(node.arguments[spreadIndex], Diagnostics.Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher); - } - } - var expressionType = checkNonNullExpression(node.expression); - if (expressionType === silentNeverType) { - return silentNeverSignature; - } - expressionType = getApparentType(expressionType); - if (isErrorType(expressionType)) { - return resolveErrorCall(node); - } - if (isTypeAny(expressionType)) { - if (node.typeArguments) { - error2(node, Diagnostics.Untyped_function_calls_may_not_accept_type_arguments); - } - return resolveUntypedCall(node); - } - var constructSignatures = getSignaturesOfType(expressionType, 1 /* Construct */); - if (constructSignatures.length) { - if (!isConstructorAccessible(node, constructSignatures[0])) { - return resolveErrorCall(node); - } - if (someSignature(constructSignatures, function (signature) { return !!(signature.flags & 4 /* Abstract */); })) { - error2(node, Diagnostics.Cannot_create_an_instance_of_an_abstract_class); - return resolveErrorCall(node); - } - var valueDecl = expressionType.symbol && getClassLikeDeclarationOfSymbol(expressionType.symbol); - if (valueDecl && hasSyntacticModifier(valueDecl, 256 /* Abstract */)) { - error2(node, Diagnostics.Cannot_create_an_instance_of_an_abstract_class); - return resolveErrorCall(node); - } - return resolveCall(node, constructSignatures, candidatesOutArray, checkMode, 0 /* None */); - } - var callSignatures = getSignaturesOfType(expressionType, 0 /* Call */); - if (callSignatures.length) { - var signature = resolveCall(node, callSignatures, candidatesOutArray, checkMode, 0 /* None */); - if (!noImplicitAny) { - if (signature.declaration && !isJSConstructor(signature.declaration) && getReturnTypeOfSignature(signature) !== voidType) { - error2(node, Diagnostics.Only_a_void_function_can_be_called_with_the_new_keyword); - } - if (getThisTypeOfSignature(signature) === voidType) { - error2(node, Diagnostics.A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void); - } - } - return signature; - } - invocationError(node.expression, expressionType, 1 /* Construct */); - return resolveErrorCall(node); - } - function someSignature(signatures, f) { - if (isArray(signatures)) { - return some(signatures, function (signature) { return someSignature(signature, f); }); - } - return signatures.compositeKind === 1048576 /* Union */ ? some(signatures.compositeSignatures, f) : f(signatures); - } - function typeHasProtectedAccessibleBase(target, type) { - var e_346, _t; - var baseTypes = getBaseTypes(type); - if (!length(baseTypes)) { - return false; - } - var firstBase = baseTypes[0]; - if (firstBase.flags & 2097152 /* Intersection */) { - var types = firstBase.types; - var mixinFlags = findMixins(types); - var i = 0; - try { - for (var _u = __values(firstBase.types), _v = _u.next(); !_v.done; _v = _u.next()) { - var intersectionMember = _v.value; - if (!mixinFlags[i]) { - if (getObjectFlags(intersectionMember) & (1 /* Class */ | 2 /* Interface */)) { - if (intersectionMember.symbol === target) { - return true; - } - if (typeHasProtectedAccessibleBase(target, intersectionMember)) { - return true; - } - } - } - i++; - } - } - catch (e_346_1) { e_346 = { error: e_346_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_346) throw e_346.error; } - } - return false; - } - if (firstBase.symbol === target) { - return true; - } - return typeHasProtectedAccessibleBase(target, firstBase); - } - function isConstructorAccessible(node, signature) { - if (!signature || !signature.declaration) { - return true; - } - var declaration = signature.declaration; - var modifiers = getSelectedEffectiveModifierFlags(declaration, 24 /* NonPublicAccessibilityModifier */); - if (!modifiers || declaration.kind !== 176 /* Constructor */) { - return true; - } - var declaringClassDeclaration = getClassLikeDeclarationOfSymbol(declaration.parent.symbol); - var declaringClass = getDeclaredTypeOfSymbol(declaration.parent.symbol); - if (!isNodeWithinClass(node, declaringClassDeclaration)) { - var containingClass = getContainingClass(node); - if (containingClass && modifiers & 16 /* Protected */) { - var containingType = getTypeOfNode(containingClass); - if (typeHasProtectedAccessibleBase(declaration.parent.symbol, containingType)) { - return true; - } - } - if (modifiers & 8 /* Private */) { - error2(node, Diagnostics.Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration, typeToString(declaringClass)); - } - if (modifiers & 16 /* Protected */) { - error2(node, Diagnostics.Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration, typeToString(declaringClass)); - } - return false; - } - return true; - } - function invocationErrorDetails(errorTarget, apparentType, kind) { - var e_347, _t; - var errorInfo; - var isCall = kind === 0 /* Call */; - var awaitedType = getAwaitedType(apparentType); - var maybeMissingAwait = awaitedType && getSignaturesOfType(awaitedType, kind).length > 0; - if (apparentType.flags & 1048576 /* Union */) { - var types = apparentType.types; - var hasSignatures = false; - try { - for (var types_18 = __values(types), types_18_1 = types_18.next(); !types_18_1.done; types_18_1 = types_18.next()) { - var constituent = types_18_1.value; - var signatures = getSignaturesOfType(constituent, kind); - if (signatures.length !== 0) { - hasSignatures = true; - if (errorInfo) { - break; - } - } - else { - if (!errorInfo) { - errorInfo = chainDiagnosticMessages(errorInfo, isCall ? Diagnostics.Type_0_has_no_call_signatures : Diagnostics.Type_0_has_no_construct_signatures, typeToString(constituent)); - errorInfo = chainDiagnosticMessages(errorInfo, isCall ? Diagnostics.Not_all_constituents_of_type_0_are_callable : Diagnostics.Not_all_constituents_of_type_0_are_constructable, typeToString(apparentType)); - } - if (hasSignatures) { - break; - } - } - } - } - catch (e_347_1) { e_347 = { error: e_347_1 }; } - finally { - try { - if (types_18_1 && !types_18_1.done && (_t = types_18.return)) _t.call(types_18); - } - finally { if (e_347) throw e_347.error; } - } - if (!hasSignatures) { - errorInfo = chainDiagnosticMessages( - /*details*/ - void 0, isCall ? Diagnostics.No_constituent_of_type_0_is_callable : Diagnostics.No_constituent_of_type_0_is_constructable, typeToString(apparentType)); - } - if (!errorInfo) { - errorInfo = chainDiagnosticMessages(errorInfo, isCall ? Diagnostics.Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_other : Diagnostics.Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_with_each_other, typeToString(apparentType)); - } - } - else { - errorInfo = chainDiagnosticMessages(errorInfo, isCall ? Diagnostics.Type_0_has_no_call_signatures : Diagnostics.Type_0_has_no_construct_signatures, typeToString(apparentType)); - } - var headMessage = isCall ? Diagnostics.This_expression_is_not_callable : Diagnostics.This_expression_is_not_constructable; - if (isCallExpression(errorTarget.parent) && errorTarget.parent.arguments.length === 0) { - var resolvedSymbol = getNodeLinks(errorTarget).resolvedSymbol; - if (resolvedSymbol && resolvedSymbol.flags & 32768 /* GetAccessor */) { - headMessage = Diagnostics.This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without; - } - } - return { - messageChain: chainDiagnosticMessages(errorInfo, headMessage), - relatedMessage: maybeMissingAwait ? Diagnostics.Did_you_forget_to_use_await : void 0 - }; - } - function invocationError(errorTarget, apparentType, kind, relatedInformation) { - var _t = invocationErrorDetails(errorTarget, apparentType, kind), messageChain = _t.messageChain, relatedInfo = _t.relatedMessage; - var diagnostic = createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(errorTarget), errorTarget, messageChain); - if (relatedInfo) { - addRelatedInfo(diagnostic, createDiagnosticForNode(errorTarget, relatedInfo)); - } - if (isCallExpression(errorTarget.parent)) { - var _u = getDiagnosticSpanForCallNode(errorTarget.parent, - /*doNotIncludeArguments*/ - true), start2 = _u.start, length2 = _u.length; - diagnostic.start = start2; - diagnostic.length = length2; - } - diagnostics.add(diagnostic); - invocationErrorRecovery(apparentType, kind, relatedInformation ? addRelatedInfo(diagnostic, relatedInformation) : diagnostic); - } - function invocationErrorRecovery(apparentType, kind, diagnostic) { - if (!apparentType.symbol) { - return; - } - var importNode = getSymbolLinks(apparentType.symbol).originatingImport; - if (importNode && !isImportCall(importNode)) { - var sigs = getSignaturesOfType(getTypeOfSymbol(getSymbolLinks(apparentType.symbol).target), kind); - if (!sigs || !sigs.length) - return; - addRelatedInfo(diagnostic, createDiagnosticForNode(importNode, Diagnostics.Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cause_a_failure_at_runtime_Consider_using_a_default_import_or_import_require_here_instead)); - } - } - function resolveTaggedTemplateExpression(node, candidatesOutArray, checkMode) { - var tagType = checkExpression(node.tag); - var apparentType = getApparentType(tagType); - if (isErrorType(apparentType)) { - return resolveErrorCall(node); - } - var callSignatures = getSignaturesOfType(apparentType, 0 /* Call */); - var numConstructSignatures = getSignaturesOfType(apparentType, 1 /* Construct */).length; - if (isUntypedFunctionCall(tagType, apparentType, callSignatures.length, numConstructSignatures)) { - return resolveUntypedCall(node); - } - if (!callSignatures.length) { - if (isArrayLiteralExpression(node.parent)) { - var diagnostic = createDiagnosticForNode(node.tag, Diagnostics.It_is_likely_that_you_are_missing_a_comma_to_separate_these_two_template_expressions_They_form_a_tagged_template_expression_which_cannot_be_invoked); - diagnostics.add(diagnostic); - return resolveErrorCall(node); - } - invocationError(node.tag, apparentType, 0 /* Call */); - return resolveErrorCall(node); - } - return resolveCall(node, callSignatures, candidatesOutArray, checkMode, 0 /* None */); - } - function getDiagnosticHeadMessageForDecoratorResolution(node) { - switch (node.parent.kind) { - case 263 /* ClassDeclaration */: - case 231 /* ClassExpression */: - return Diagnostics.Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression; - case 169 /* Parameter */: - return Diagnostics.Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression; - case 172 /* PropertyDeclaration */: - return Diagnostics.Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression; - case 174 /* MethodDeclaration */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - return Diagnostics.Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression; - default: - return Debug.fail(); - } - } - function resolveDecorator(node, candidatesOutArray, checkMode) { - var funcType = checkExpression(node.expression); - var apparentType = getApparentType(funcType); - if (isErrorType(apparentType)) { - return resolveErrorCall(node); - } - var callSignatures = getSignaturesOfType(apparentType, 0 /* Call */); - var numConstructSignatures = getSignaturesOfType(apparentType, 1 /* Construct */).length; - if (isUntypedFunctionCall(funcType, apparentType, callSignatures.length, numConstructSignatures)) { - return resolveUntypedCall(node); - } - if (isPotentiallyUncalledDecorator(node, callSignatures) && !isParenthesizedExpression(node.expression)) { - var nodeStr = getTextOfNode(node.expression, - /*includeTrivia*/ - false); - error2(node, Diagnostics._0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write_0, nodeStr); - return resolveErrorCall(node); - } - var headMessage = getDiagnosticHeadMessageForDecoratorResolution(node); - if (!callSignatures.length) { - var errorDetails = invocationErrorDetails(node.expression, apparentType, 0 /* Call */); - var messageChain = chainDiagnosticMessages(errorDetails.messageChain, headMessage); - var diag2 = createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(node.expression), node.expression, messageChain); - if (errorDetails.relatedMessage) { - addRelatedInfo(diag2, createDiagnosticForNode(node.expression, errorDetails.relatedMessage)); - } - diagnostics.add(diag2); - invocationErrorRecovery(apparentType, 0 /* Call */, diag2); - return resolveErrorCall(node); - } - return resolveCall(node, callSignatures, candidatesOutArray, checkMode, 0 /* None */, headMessage); - } - function createSignatureForJSXIntrinsic(node, result) { - var namespace = getJsxNamespaceAt(node); - var exports = namespace && getExportsOfSymbol(namespace); - var typeSymbol = exports && getSymbol2(exports, JsxNames.Element, 788968 /* Type */); - var returnNode = typeSymbol && nodeBuilder.symbolToEntityName(typeSymbol, 788968 /* Type */, node); - var declaration = factory.createFunctionTypeNode( - /*typeParameters*/ - void 0, [factory.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, "props", - /*questionToken*/ - void 0, nodeBuilder.typeToTypeNode(result, node))], returnNode ? factory.createTypeReferenceNode(returnNode, - /*typeArguments*/ - void 0) : factory.createKeywordTypeNode(133 /* AnyKeyword */)); - var parameterSymbol = createSymbol(1 /* FunctionScopedVariable */, "props"); - parameterSymbol.links.type = result; - return createSignature(declaration, - /*typeParameters*/ - void 0, - /*thisParameter*/ - void 0, [parameterSymbol], typeSymbol ? getDeclaredTypeOfSymbol(typeSymbol) : errorType, - /*resolvedTypePredicate*/ - void 0, 1, 0 /* None */); - } - function resolveJsxOpeningLikeElement(node, candidatesOutArray, checkMode) { - if (isJsxIntrinsicTagName(node.tagName)) { - var result = getIntrinsicAttributesTypeFromJsxOpeningLikeElement(node); - var fakeSignature = createSignatureForJSXIntrinsic(node, result); - checkTypeAssignableToAndOptionallyElaborate(checkExpressionWithContextualType(node.attributes, getEffectiveFirstArgumentForJsxSignature(fakeSignature, node), - /*inferenceContext*/ - void 0, 0 /* Normal */), result, node.tagName, node.attributes); - if (length(node.typeArguments)) { - forEach(node.typeArguments, checkSourceElement); - diagnostics.add(createDiagnosticForNodeArray(getSourceFileOfNode(node), node.typeArguments, Diagnostics.Expected_0_type_arguments_but_got_1, 0, length(node.typeArguments))); - } - return fakeSignature; - } - var exprTypes = checkExpression(node.tagName); - var apparentType = getApparentType(exprTypes); - if (isErrorType(apparentType)) { - return resolveErrorCall(node); - } - var signatures = getUninstantiatedJsxSignaturesOfType(exprTypes, node); - if (isUntypedFunctionCall(exprTypes, apparentType, signatures.length, - /*constructSignatures*/ - 0)) { - return resolveUntypedCall(node); - } - if (signatures.length === 0) { - error2(node.tagName, Diagnostics.JSX_element_type_0_does_not_have_any_construct_or_call_signatures, getTextOfNode(node.tagName)); - return resolveErrorCall(node); - } - return resolveCall(node, signatures, candidatesOutArray, checkMode, 0 /* None */); - } - function isPotentiallyUncalledDecorator(decorator, signatures) { - return signatures.length && every(signatures, function (signature) { return signature.minArgumentCount === 0 && !signatureHasRestParameter(signature) && signature.parameters.length < getDecoratorArgumentCount(decorator, signature); }); - } - function resolveSignature(node, candidatesOutArray, checkMode) { - switch (node.kind) { - case 213 /* CallExpression */: - return resolveCallExpression(node, candidatesOutArray, checkMode); - case 214 /* NewExpression */: - return resolveNewExpression(node, candidatesOutArray, checkMode); - case 215 /* TaggedTemplateExpression */: - return resolveTaggedTemplateExpression(node, candidatesOutArray, checkMode); - case 170 /* Decorator */: - return resolveDecorator(node, candidatesOutArray, checkMode); - case 286 /* JsxOpeningElement */: - case 285 /* JsxSelfClosingElement */: - return resolveJsxOpeningLikeElement(node, candidatesOutArray, checkMode); - } - Debug.assertNever(node, "Branch in 'resolveSignature' should be unreachable."); - } - function getResolvedSignature(node, candidatesOutArray, checkMode) { - var links = getNodeLinks(node); - var cached = links.resolvedSignature; - if (cached && cached !== resolvingSignature && !candidatesOutArray) { - return cached; - } - links.resolvedSignature = resolvingSignature; - var result = resolveSignature(node, candidatesOutArray, checkMode || 0 /* Normal */); - if (result !== resolvingSignature) { - if (links.resolvedSignature !== resolvingSignature) { - result = links.resolvedSignature; - } - links.resolvedSignature = flowLoopStart === flowLoopCount ? result : cached; - } - return result; - } - function isJSConstructor(node) { - var _a; - if (!node || !isInJSFile(node)) { - return false; - } - var func = isFunctionDeclaration(node) || isFunctionExpression(node) ? node : (isVariableDeclaration(node) || isPropertyAssignment(node)) && node.initializer && isFunctionExpression(node.initializer) ? node.initializer : void 0; - if (func) { - if (getJSDocClassTag(node)) - return true; - if (isPropertyAssignment(walkUpParenthesizedExpressions(func.parent))) - return false; - var symbol = getSymbolOfDeclaration(func); - return !!((_a = symbol == null ? void 0 : symbol.members) == null ? void 0 : _a.size); - } - return false; - } - function mergeJSSymbols(target, source) { - var _a, _b; - if (source) { - var links = getSymbolLinks(source); - if (!links.inferredClassSymbol || !links.inferredClassSymbol.has(getSymbolId(target))) { - var inferred = isTransientSymbol(target) ? target : cloneSymbol(target); - inferred.exports = inferred.exports || createSymbolTable(); - inferred.members = inferred.members || createSymbolTable(); - inferred.flags |= source.flags & 32 /* Class */; - if ((_a = source.exports) == null ? void 0 : _a.size) { - mergeSymbolTable(inferred.exports, source.exports); - } - if ((_b = source.members) == null ? void 0 : _b.size) { - mergeSymbolTable(inferred.members, source.members); - } - (links.inferredClassSymbol || (links.inferredClassSymbol = /* @__PURE__ */ new Map())).set(getSymbolId(inferred), inferred); - return inferred; - } - return links.inferredClassSymbol.get(getSymbolId(target)); - } - } - function getAssignedClassSymbol(decl) { - var _a; - var assignmentSymbol = decl && getSymbolOfExpando(decl, - /*allowDeclaration*/ - true); - var prototype = (_a = assignmentSymbol == null ? void 0 : assignmentSymbol.exports) == null ? void 0 : _a.get("prototype"); - var init = (prototype == null ? void 0 : prototype.valueDeclaration) && getAssignedJSPrototype(prototype.valueDeclaration); - return init ? getSymbolOfDeclaration(init) : void 0; - } - function getSymbolOfExpando(node, allowDeclaration) { - if (!node.parent) { - return void 0; - } - var name; - var decl; - if (isVariableDeclaration(node.parent) && node.parent.initializer === node) { - if (!isInJSFile(node) && !(isVarConstLike(node.parent) && isFunctionLikeDeclaration(node))) { - return void 0; - } - name = node.parent.name; - decl = node.parent; - } - else if (isBinaryExpression(node.parent)) { - var parentNode = node.parent; - var parentNodeOperator = node.parent.operatorToken.kind; - if (parentNodeOperator === 64 /* EqualsToken */ && (allowDeclaration || parentNode.right === node)) { - name = parentNode.left; - decl = name; - } - else if (parentNodeOperator === 57 /* BarBarToken */ || parentNodeOperator === 61 /* QuestionQuestionToken */) { - if (isVariableDeclaration(parentNode.parent) && parentNode.parent.initializer === parentNode) { - name = parentNode.parent.name; - decl = parentNode.parent; - } - else if (isBinaryExpression(parentNode.parent) && parentNode.parent.operatorToken.kind === 64 /* EqualsToken */ && (allowDeclaration || parentNode.parent.right === parentNode)) { - name = parentNode.parent.left; - decl = name; - } - if (!name || !isBindableStaticNameExpression(name) || !isSameEntityName(name, parentNode.left)) { - return void 0; - } - } - } - else if (allowDeclaration && isFunctionDeclaration(node)) { - name = node.name; - decl = node; - } - if (!decl || !name || !allowDeclaration && !getExpandoInitializer(node, isPrototypeAccess(name))) { - return void 0; - } - return getSymbolOfNode(decl); - } - function getAssignedJSPrototype(node) { - if (!node.parent) { - return false; - } - var parent2 = node.parent; - while (parent2 && parent2.kind === 211 /* PropertyAccessExpression */) { - parent2 = parent2.parent; - } - if (parent2 && isBinaryExpression(parent2) && isPrototypeAccess(parent2.left) && parent2.operatorToken.kind === 64 /* EqualsToken */) { - var right = getInitializerOfBinaryExpression(parent2); - return isObjectLiteralExpression(right) && right; - } - } - function checkCallExpression(node, checkMode) { - var _a, _b, _c; - checkGrammarTypeArguments(node, node.typeArguments); - var signature = getResolvedSignature(node, - /*candidatesOutArray*/ - void 0, checkMode); - if (signature === resolvingSignature) { - return silentNeverType; - } - checkDeprecatedSignature(signature, node); - if (node.expression.kind === 108 /* SuperKeyword */) { - return voidType; - } - if (node.kind === 214 /* NewExpression */) { - var declaration = signature.declaration; - if (declaration && declaration.kind !== 176 /* Constructor */ && declaration.kind !== 180 /* ConstructSignature */ && declaration.kind !== 185 /* ConstructorType */ && !(isJSDocSignature(declaration) && ((_b = (_a = getJSDocRoot(declaration)) == null ? void 0 : _a.parent) == null ? void 0 : _b.kind) === 176 /* Constructor */) && !isJSDocConstructSignature(declaration) && !isJSConstructor(declaration)) { - if (noImplicitAny) { - error2(node, Diagnostics.new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type); - } - return anyType; - } - } - if (isInJSFile(node) && shouldResolveJsRequire(compilerOptions) && isCommonJsRequire(node)) { - return resolveExternalModuleTypeByLiteral(node.arguments[0]); - } - var returnType = getReturnTypeOfSignature(signature); - if (returnType.flags & 12288 /* ESSymbolLike */ && isSymbolOrSymbolForCall(node)) { - return getESSymbolLikeTypeForNode(walkUpParenthesizedExpressions(node.parent)); - } - if (node.kind === 213 /* CallExpression */ && !node.questionDotToken && node.parent.kind === 244 /* ExpressionStatement */ && returnType.flags & 16384 /* Void */ && getTypePredicateOfSignature(signature)) { - if (!isDottedName(node.expression)) { - error2(node.expression, Diagnostics.Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name); - } - else if (!getEffectsSignature(node)) { - var diagnostic = error2(node.expression, Diagnostics.Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation); - getTypeOfDottedName(node.expression, diagnostic); - } - } - if (isInJSFile(node)) { - var jsSymbol = getSymbolOfExpando(node, - /*allowDeclaration*/ - false); - if ((_c = jsSymbol == null ? void 0 : jsSymbol.exports) == null ? void 0 : _c.size) { - var jsAssignmentType = createAnonymousType(jsSymbol, jsSymbol.exports, emptyArray, emptyArray, emptyArray); - jsAssignmentType.objectFlags |= 4096 /* JSLiteral */; - return getIntersectionType([returnType, jsAssignmentType]); - } - } - return returnType; - } - function checkDeprecatedSignature(signature, node) { - if (signature.flags & 128 /* IsSignatureCandidateForOverloadFailure */) - return; - if (signature.declaration && signature.declaration.flags & 536870912 /* Deprecated */) { - var suggestionNode = getDeprecatedSuggestionNode(node); - var name_48 = tryGetPropertyAccessOrIdentifierToString(getInvokedExpression(node)); - addDeprecatedSuggestionWithSignature(suggestionNode, signature.declaration, name_48, signatureToString(signature)); - } - } - function getDeprecatedSuggestionNode(node) { - node = skipParentheses(node); - switch (node.kind) { - case 213 /* CallExpression */: - case 170 /* Decorator */: - case 214 /* NewExpression */: - return getDeprecatedSuggestionNode(node.expression); - case 215 /* TaggedTemplateExpression */: - return getDeprecatedSuggestionNode(node.tag); - case 286 /* JsxOpeningElement */: - case 285 /* JsxSelfClosingElement */: - return getDeprecatedSuggestionNode(node.tagName); - case 212 /* ElementAccessExpression */: - return node.argumentExpression; - case 211 /* PropertyAccessExpression */: - return node.name; - case 183 /* TypeReference */: - var typeReference = node; - return isQualifiedName(typeReference.typeName) ? typeReference.typeName.right : typeReference; - default: - return node; - } - } - function isSymbolOrSymbolForCall(node) { - if (!isCallExpression(node)) - return false; - var left = node.expression; - if (isPropertyAccessExpression(left) && left.name.escapedText === "for") { - left = left.expression; - } - if (!isIdentifier(left) || left.escapedText !== "Symbol") { - return false; - } - var globalESSymbol = getGlobalESSymbolConstructorSymbol( - /*reportErrors*/ - false); - if (!globalESSymbol) { - return false; - } - return globalESSymbol === resolveName(left, "Symbol", 111551 /* Value */, - /*nameNotFoundMessage*/ - void 0, - /*nameArg*/ - void 0, - /*isUse*/ - false); - } - function checkImportCallExpression(node) { - checkGrammarImportCallExpression(node); - if (node.arguments.length === 0) { - return createPromiseReturnType(node, anyType); - } - var specifier = node.arguments[0]; - var specifierType = checkExpressionCached(specifier); - var optionsType = node.arguments.length > 1 ? checkExpressionCached(node.arguments[1]) : void 0; - for (var i = 2; i < node.arguments.length; ++i) { - checkExpressionCached(node.arguments[i]); - } - if (specifierType.flags & 32768 /* Undefined */ || specifierType.flags & 65536 /* Null */ || !isTypeAssignableTo(specifierType, stringType)) { - error2(specifier, Diagnostics.Dynamic_import_s_specifier_must_be_of_type_string_but_here_has_type_0, typeToString(specifierType)); - } - if (optionsType) { - var importCallOptionsType = getGlobalImportCallOptionsType( - /*reportErrors*/ - true); - if (importCallOptionsType !== emptyObjectType) { - checkTypeAssignableTo(optionsType, getNullableType(importCallOptionsType, 32768 /* Undefined */), node.arguments[1]); - } - } - var moduleSymbol = resolveExternalModuleName(node, specifier); - if (moduleSymbol) { - var esModuleSymbol = resolveESModuleSymbol(moduleSymbol, specifier, - /*dontResolveAlias*/ - true, - /*suppressInteropError*/ - false); - if (esModuleSymbol) { - return createPromiseReturnType(node, getTypeWithSyntheticDefaultOnly(getTypeOfSymbol(esModuleSymbol), esModuleSymbol, moduleSymbol, specifier) || getTypeWithSyntheticDefaultImportType(getTypeOfSymbol(esModuleSymbol), esModuleSymbol, moduleSymbol, specifier)); - } - } - return createPromiseReturnType(node, anyType); - } - function createDefaultPropertyWrapperForModule(symbol, originalSymbol, anonymousSymbol) { - var memberTable = createSymbolTable(); - var newSymbol = createSymbol(2097152 /* Alias */, "default" /* Default */); - newSymbol.parent = originalSymbol; - newSymbol.links.nameType = getStringLiteralType("default"); - newSymbol.links.aliasTarget = resolveSymbol(symbol); - memberTable.set("default" /* Default */, newSymbol); - return createAnonymousType(anonymousSymbol, memberTable, emptyArray, emptyArray, emptyArray); - } - function getTypeWithSyntheticDefaultOnly(type, symbol, originalSymbol, moduleSpecifier) { - var hasDefaultOnly = isOnlyImportedAsDefault(moduleSpecifier); - if (hasDefaultOnly && type && !isErrorType(type)) { - var synthType = type; - if (!synthType.defaultOnlyType) { - var type2 = createDefaultPropertyWrapperForModule(symbol, originalSymbol); - synthType.defaultOnlyType = type2; - } - return synthType.defaultOnlyType; - } - return void 0; - } - function getTypeWithSyntheticDefaultImportType(type, symbol, originalSymbol, moduleSpecifier) { - var _a; - if (allowSyntheticDefaultImports && type && !isErrorType(type)) { - var synthType = type; - if (!synthType.syntheticType) { - var file = (_a = originalSymbol.declarations) == null ? void 0 : _a.find(isSourceFile); - var hasSyntheticDefault = canHaveSyntheticDefault(file, originalSymbol, - /*dontResolveAlias*/ - false, moduleSpecifier); - if (hasSyntheticDefault) { - var anonymousSymbol = createSymbol(2048 /* TypeLiteral */, "__type" /* Type */); - var defaultContainingObject = createDefaultPropertyWrapperForModule(symbol, originalSymbol, anonymousSymbol); - anonymousSymbol.links.type = defaultContainingObject; - synthType.syntheticType = isValidSpreadType(type) ? getSpreadType(type, defaultContainingObject, anonymousSymbol, - /*objectFlags*/ - 0, - /*readonly*/ - false) : defaultContainingObject; - } - else { - synthType.syntheticType = type; - } - } - return synthType.syntheticType; - } - return type; - } - function isCommonJsRequire(node) { - if (!isRequireCall(node, - /*requireStringLiteralLikeArgument*/ - true)) { - return false; - } - if (!isIdentifier(node.expression)) - return Debug.fail(); - var resolvedRequire = resolveName(node.expression, node.expression.escapedText, 111551 /* Value */, - /*nameNotFoundMessage*/ - void 0, - /*nameArg*/ - void 0, - /*isUse*/ - true); - if (resolvedRequire === requireSymbol) { - return true; - } - if (resolvedRequire.flags & 2097152 /* Alias */) { - return false; - } - var targetDeclarationKind = resolvedRequire.flags & 16 /* Function */ ? 262 /* FunctionDeclaration */ : resolvedRequire.flags & 3 /* Variable */ ? 260 /* VariableDeclaration */ : 0 /* Unknown */; - if (targetDeclarationKind !== 0 /* Unknown */) { - var decl = getDeclarationOfKind(resolvedRequire, targetDeclarationKind); - return !!decl && !!(decl.flags & 33554432 /* Ambient */); - } - return false; - } - function checkTaggedTemplateExpression(node) { - if (!checkGrammarTaggedTemplateChain(node)) - checkGrammarTypeArguments(node, node.typeArguments); - if (languageVersion < 2 /* ES2015 */) { - checkExternalEmitHelpers(node, 262144 /* MakeTemplateObject */); - } - var signature = getResolvedSignature(node); - checkDeprecatedSignature(signature, node); - return getReturnTypeOfSignature(signature); - } - function checkAssertion(node, checkMode) { - if (node.kind === 216 /* TypeAssertionExpression */) { - var file = getSourceFileOfNode(node); - if (file && fileExtensionIsOneOf(file.fileName, [".cts" /* Cts */, ".mts" /* Mts */])) { - grammarErrorOnNode(node, Diagnostics.This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Use_an_as_expression_instead); - } - } - return checkAssertionWorker(node, checkMode); - } - function isValidConstAssertionArgument(node) { - switch (node.kind) { - case 11 /* StringLiteral */: - case 15 /* NoSubstitutionTemplateLiteral */: - case 9 /* NumericLiteral */: - case 10 /* BigIntLiteral */: - case 112 /* TrueKeyword */: - case 97 /* FalseKeyword */: - case 209 /* ArrayLiteralExpression */: - case 210 /* ObjectLiteralExpression */: - case 228 /* TemplateExpression */: - return true; - case 217 /* ParenthesizedExpression */: - return isValidConstAssertionArgument(node.expression); - case 224 /* PrefixUnaryExpression */: - var op = node.operator; - var arg = node.operand; - return op === 41 /* MinusToken */ && (arg.kind === 9 /* NumericLiteral */ || arg.kind === 10 /* BigIntLiteral */) || op === 40 /* PlusToken */ && arg.kind === 9 /* NumericLiteral */; - case 211 /* PropertyAccessExpression */: - case 212 /* ElementAccessExpression */: - var expr = skipParentheses(node.expression); - var symbol = isEntityNameExpression(expr) ? resolveEntityName(expr, 111551 /* Value */, - /*ignoreErrors*/ - true) : void 0; - return !!(symbol && symbol.flags & 384 /* Enum */); - } - return false; - } - function checkAssertionWorker(node, checkMode) { - var _t = getAssertionTypeAndExpression(node), type = _t.type, expression = _t.expression; - var exprType = checkExpression(expression, checkMode); - if (isConstTypeReference(type)) { - if (!isValidConstAssertionArgument(expression)) { - error2(expression, Diagnostics.A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array_or_object_literals); - } - return getRegularTypeOfLiteralType(exprType); - } - var links = getNodeLinks(node); - links.assertionExpressionType = exprType; - checkSourceElement(type); - checkNodeDeferred(node); - return getTypeFromTypeNode(type); - } - function getAssertionTypeAndExpression(node) { - var type; - var expression; - switch (node.kind) { - case 234 /* AsExpression */: - case 216 /* TypeAssertionExpression */: - type = node.type; - expression = node.expression; - break; - case 217 /* ParenthesizedExpression */: - type = getJSDocTypeAssertionType(node); - expression = node.expression; - break; - } - return { type: type, expression: expression }; - } - function checkAssertionDeferred(node) { - var type = getAssertionTypeAndExpression(node).type; - var errNode = isParenthesizedExpression(node) ? type : node; - var links = getNodeLinks(node); - Debug.assertIsDefined(links.assertionExpressionType); - var exprType = getRegularTypeOfObjectLiteral(getBaseTypeOfLiteralType(links.assertionExpressionType)); - var targetType = getTypeFromTypeNode(type); - if (!isErrorType(targetType)) { - addLazyDiagnostic(function () { - var widenedType = getWidenedType(exprType); - if (!isTypeComparableTo(targetType, widenedType)) { - checkTypeComparableTo(exprType, targetType, errNode, Diagnostics.Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the_other_If_this_was_intentional_convert_the_expression_to_unknown_first); - } - }); - } - } - function checkNonNullChain(node) { - var leftType = checkExpression(node.expression); - var nonOptionalType = getOptionalExpressionType(leftType, node.expression); - return propagateOptionalTypeMarker(getNonNullableType(nonOptionalType), node, nonOptionalType !== leftType); - } - function checkNonNullAssertion(node) { - return node.flags & 64 /* OptionalChain */ ? checkNonNullChain(node) : getNonNullableType(checkExpression(node.expression)); - } - function checkExpressionWithTypeArguments(node) { - checkGrammarExpressionWithTypeArguments(node); - forEach(node.typeArguments, checkSourceElement); - if (node.kind === 233 /* ExpressionWithTypeArguments */) { - var parent2 = walkUpParenthesizedExpressions(node.parent); - if (parent2.kind === 226 /* BinaryExpression */ && parent2.operatorToken.kind === 104 /* InstanceOfKeyword */ && isNodeDescendantOf(node, parent2.right)) { - error2(node, Diagnostics.The_right_hand_side_of_an_instanceof_expression_must_not_be_an_instantiation_expression); - } - } - var exprType = node.kind === 233 /* ExpressionWithTypeArguments */ ? checkExpression(node.expression) : isThisIdentifier(node.exprName) ? checkThisExpression(node.exprName) : checkExpression(node.exprName); - return getInstantiationExpressionType(exprType, node); - } - function getInstantiationExpressionType(exprType, node) { - var typeArguments = node.typeArguments; - if (exprType === silentNeverType || isErrorType(exprType) || !some(typeArguments)) { - return exprType; - } - var hasSomeApplicableSignature = false; - var nonApplicableType; - var result = getInstantiatedType(exprType); - var errorType2 = hasSomeApplicableSignature ? nonApplicableType : exprType; - if (errorType2) { - diagnostics.add(createDiagnosticForNodeArray(getSourceFileOfNode(node), typeArguments, Diagnostics.Type_0_has_no_signatures_for_which_the_type_argument_list_is_applicable, typeToString(errorType2))); - } - return result; - function getInstantiatedType(type) { - var hasSignatures = false; - var hasApplicableSignature = false; - var result2 = getInstantiatedTypePart(type); - hasSomeApplicableSignature || (hasSomeApplicableSignature = hasApplicableSignature); - if (hasSignatures && !hasApplicableSignature) { - nonApplicableType !== null && nonApplicableType !== void 0 ? nonApplicableType : (nonApplicableType = type); - } - return result2; - function getInstantiatedTypePart(type2) { - if (type2.flags & 524288 /* Object */) { - var resolved = resolveStructuredTypeMembers(type2); - var callSignatures = getInstantiatedSignatures(resolved.callSignatures); - var constructSignatures = getInstantiatedSignatures(resolved.constructSignatures); - hasSignatures || (hasSignatures = resolved.callSignatures.length !== 0 || resolved.constructSignatures.length !== 0); - hasApplicableSignature || (hasApplicableSignature = callSignatures.length !== 0 || constructSignatures.length !== 0); - if (callSignatures !== resolved.callSignatures || constructSignatures !== resolved.constructSignatures) { - var result3 = createAnonymousType( - /*symbol*/ - void 0, resolved.members, callSignatures, constructSignatures, resolved.indexInfos); - result3.objectFlags |= 8388608 /* InstantiationExpressionType */; - result3.node = node; - return result3; - } - } - else if (type2.flags & 58982400 /* InstantiableNonPrimitive */) { - var constraint = getBaseConstraintOfType(type2); - if (constraint) { - var instantiated = getInstantiatedTypePart(constraint); - if (instantiated !== constraint) { - return instantiated; - } - } - } - else if (type2.flags & 1048576 /* Union */) { - return mapType(type2, getInstantiatedType); - } - else if (type2.flags & 2097152 /* Intersection */) { - return getIntersectionType(sameMap(type2.types, getInstantiatedTypePart)); - } - return type2; - } - } - function getInstantiatedSignatures(signatures) { - var applicableSignatures = filter(signatures, function (sig) { return !!sig.typeParameters && hasCorrectTypeArgumentArity(sig, typeArguments); }); - return sameMap(applicableSignatures, function (sig) { - var typeArgumentTypes = checkTypeArguments(sig, typeArguments, - /*reportErrors*/ - true); - return typeArgumentTypes ? getSignatureInstantiation(sig, typeArgumentTypes, isInJSFile(sig.declaration)) : sig; - }); - } - } - function checkSatisfiesExpression(node) { - checkSourceElement(node.type); - return checkSatisfiesExpressionWorker(node.expression, node.type); - } - function checkSatisfiesExpressionWorker(expression, target, checkMode) { - var exprType = checkExpression(expression, checkMode); - var targetType = getTypeFromTypeNode(target); - if (isErrorType(targetType)) { - return targetType; - } - var errorNode = findAncestor(target.parent, function (n) { return n.kind === 238 /* SatisfiesExpression */ || n.kind === 357; } /* JSDocSatisfiesTag */); - checkTypeAssignableToAndOptionallyElaborate(exprType, targetType, errorNode, expression, Diagnostics.Type_0_does_not_satisfy_the_expected_type_1); - return exprType; - } - function checkMetaProperty(node) { - checkGrammarMetaProperty(node); - if (node.keywordToken === 105 /* NewKeyword */) { - return checkNewTargetMetaProperty(node); - } - if (node.keywordToken === 102 /* ImportKeyword */) { - return checkImportMetaProperty(node); - } - return Debug.assertNever(node.keywordToken); - } - function checkMetaPropertyKeyword(node) { - switch (node.keywordToken) { - case 102 /* ImportKeyword */: - return getGlobalImportMetaExpressionType(); - case 105 /* NewKeyword */: - var type = checkNewTargetMetaProperty(node); - return isErrorType(type) ? errorType : createNewTargetExpressionType(type); - default: - Debug.assertNever(node.keywordToken); - } - } - function checkNewTargetMetaProperty(node) { - var container = getNewTargetContainer(node); - if (!container) { - error2(node, Diagnostics.Meta_property_0_is_only_allowed_in_the_body_of_a_function_declaration_function_expression_or_constructor, "new.target"); - return errorType; - } - else if (container.kind === 176 /* Constructor */) { - var symbol = getSymbolOfDeclaration(container.parent); - return getTypeOfSymbol(symbol); - } - else { - var symbol = getSymbolOfDeclaration(container); - return getTypeOfSymbol(symbol); - } - } - function checkImportMetaProperty(node) { - if (moduleKind === 100 /* Node16 */ || moduleKind === 199 /* NodeNext */) { - if (getSourceFileOfNode(node).impliedNodeFormat !== 99 /* ESNext */) { - error2(node, Diagnostics.The_import_meta_meta_property_is_not_allowed_in_files_which_will_build_into_CommonJS_output); - } - } - else if (moduleKind < 6 /* ES2020 */ && moduleKind !== 4 /* System */) { - error2(node, Diagnostics.The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_es2020_es2022_esnext_system_node16_or_nodenext); - } - var file = getSourceFileOfNode(node); - Debug.assert(!!(file.flags & 8388608 /* PossiblyContainsImportMeta */), "Containing file is missing import meta node flag."); - return node.name.escapedText === "meta" ? getGlobalImportMetaType() : errorType; - } - function getTypeOfParameter(symbol) { - var type = getTypeOfSymbol(symbol); - if (strictNullChecks) { - var declaration = symbol.valueDeclaration; - if (declaration && hasInitializer(declaration)) { - return getOptionalType(type); - } - } - return type; - } - function getTupleElementLabel(d, index, restParameterName) { - if (restParameterName === void 0) { restParameterName = "arg"; } - if (!d) { - return "".concat(restParameterName, "_").concat(index); - } - Debug.assert(isIdentifier(d.name)); - return d.name.escapedText; - } - function getParameterNameAtPosition(signature, pos, overrideRestType) { - var paramCount = signature.parameters.length - (signatureHasRestParameter(signature) ? 1 : 0); - if (pos < paramCount) { - return signature.parameters[pos].escapedName; - } - var restParameter = signature.parameters[paramCount] || unknownSymbol; - var restType = overrideRestType || getTypeOfSymbol(restParameter); - if (isTupleType(restType)) { - var associatedNames = restType.target.labeledElementDeclarations; - var index = pos - paramCount; - return getTupleElementLabel(associatedNames == null ? void 0 : associatedNames[index], index, restParameter.escapedName); - } - return restParameter.escapedName; - } - function getParameterIdentifierInfoAtPosition(signature, pos) { - var _a; - if (((_a = signature.declaration) == null ? void 0 : _a.kind) === 324 /* JSDocFunctionType */) { - return void 0; - } - var paramCount = signature.parameters.length - (signatureHasRestParameter(signature) ? 1 : 0); - if (pos < paramCount) { - var param = signature.parameters[pos]; - var paramIdent = getParameterDeclarationIdentifier(param); - return paramIdent ? { - parameter: paramIdent, - parameterName: param.escapedName, - isRestParameter: false - } : void 0; - } - var restParameter = signature.parameters[paramCount] || unknownSymbol; - var restIdent = getParameterDeclarationIdentifier(restParameter); - if (!restIdent) { - return void 0; - } - var restType = getTypeOfSymbol(restParameter); - if (isTupleType(restType)) { - var associatedNames = restType.target.labeledElementDeclarations; - var index = pos - paramCount; - var associatedName = associatedNames == null ? void 0 : associatedNames[index]; - var isRestTupleElement = !!(associatedName == null ? void 0 : associatedName.dotDotDotToken); - if (associatedName) { - Debug.assert(isIdentifier(associatedName.name)); - return { parameter: associatedName.name, parameterName: associatedName.name.escapedText, isRestParameter: isRestTupleElement }; - } - return void 0; - } - if (pos === paramCount) { - return { parameter: restIdent, parameterName: restParameter.escapedName, isRestParameter: true }; - } - return void 0; - } - function getParameterDeclarationIdentifier(symbol) { - return symbol.valueDeclaration && isParameter(symbol.valueDeclaration) && isIdentifier(symbol.valueDeclaration.name) && symbol.valueDeclaration.name; - } - function isValidDeclarationForTupleLabel(d) { - return d.kind === 202 /* NamedTupleMember */ || isParameter(d) && d.name && isIdentifier(d.name); - } - function getNameableDeclarationAtPosition(signature, pos) { - var paramCount = signature.parameters.length - (signatureHasRestParameter(signature) ? 1 : 0); - if (pos < paramCount) { - var decl = signature.parameters[pos].valueDeclaration; - return decl && isValidDeclarationForTupleLabel(decl) ? decl : void 0; - } - var restParameter = signature.parameters[paramCount] || unknownSymbol; - var restType = getTypeOfSymbol(restParameter); - if (isTupleType(restType)) { - var associatedNames = restType.target.labeledElementDeclarations; - var index = pos - paramCount; - return associatedNames && associatedNames[index]; - } - return restParameter.valueDeclaration && isValidDeclarationForTupleLabel(restParameter.valueDeclaration) ? restParameter.valueDeclaration : void 0; - } - function getTypeAtPosition(signature, pos) { - return tryGetTypeAtPosition(signature, pos) || anyType; - } - function tryGetTypeAtPosition(signature, pos) { - var paramCount = signature.parameters.length - (signatureHasRestParameter(signature) ? 1 : 0); - if (pos < paramCount) { - return getTypeOfParameter(signature.parameters[pos]); - } - if (signatureHasRestParameter(signature)) { - var restType = getTypeOfSymbol(signature.parameters[paramCount]); - var index = pos - paramCount; - if (!isTupleType(restType) || restType.target.hasRestElement || index < restType.target.fixedLength) { - return getIndexedAccessType(restType, getNumberLiteralType(index)); - } - } - return void 0; - } - function getRestTypeAtPosition(source, pos) { - var parameterCount = getParameterCount(source); - var minArgumentCount = getMinArgumentCount(source); - var restType = getEffectiveRestType(source); - if (restType && pos >= parameterCount - 1) { - return pos === parameterCount - 1 ? restType : createArrayType(getIndexedAccessType(restType, numberType)); - } - var types = []; - var flags = []; - var names = []; - for (var i = pos; i < parameterCount; i++) { - if (!restType || i < parameterCount - 1) { - types.push(getTypeAtPosition(source, i)); - flags.push(i < minArgumentCount ? 1 /* Required */ : 2 /* Optional */); - } - else { - types.push(restType); - flags.push(8 /* Variadic */); - } - var name_49 = getNameableDeclarationAtPosition(source, i); - if (name_49) { - names.push(name_49); - } - } - return createTupleType(types, flags, - /*readonly*/ - false, length(names) === length(types) ? names : void 0); - } - function getParameterCount(signature) { - var length2 = signature.parameters.length; - if (signatureHasRestParameter(signature)) { - var restType = getTypeOfSymbol(signature.parameters[length2 - 1]); - if (isTupleType(restType)) { - return length2 + restType.target.fixedLength - (restType.target.hasRestElement ? 0 : 1); - } - } - return length2; - } - function getMinArgumentCount(signature, flags) { - var strongArityForUntypedJS = flags & 1 /* StrongArityForUntypedJS */; - var voidIsNonOptional = flags & 2 /* VoidIsNonOptional */; - if (voidIsNonOptional || signature.resolvedMinArgumentCount === void 0) { - var minArgumentCount = void 0; - if (signatureHasRestParameter(signature)) { - var restType = getTypeOfSymbol(signature.parameters[signature.parameters.length - 1]); - if (isTupleType(restType)) { - var firstOptionalIndex = findIndex(restType.target.elementFlags, function (f) { return !(f & 1 /* Required */); }); - var requiredCount = firstOptionalIndex < 0 ? restType.target.fixedLength : firstOptionalIndex; - if (requiredCount > 0) { - minArgumentCount = signature.parameters.length - 1 + requiredCount; - } - } - } - if (minArgumentCount === void 0) { - if (!strongArityForUntypedJS && signature.flags & 32 /* IsUntypedSignatureInJSFile */) { - return 0; - } - minArgumentCount = signature.minArgumentCount; - } - if (voidIsNonOptional) { - return minArgumentCount; - } - for (var i = minArgumentCount - 1; i >= 0; i--) { - var type = getTypeAtPosition(signature, i); - if (filterType(type, acceptsVoid).flags & 131072 /* Never */) { - break; - } - minArgumentCount = i; - } - signature.resolvedMinArgumentCount = minArgumentCount; - } - return signature.resolvedMinArgumentCount; - } - function hasEffectiveRestParameter(signature) { - if (signatureHasRestParameter(signature)) { - var restType = getTypeOfSymbol(signature.parameters[signature.parameters.length - 1]); - return !isTupleType(restType) || restType.target.hasRestElement; - } - return false; - } - function getEffectiveRestType(signature) { - if (signatureHasRestParameter(signature)) { - var restType = getTypeOfSymbol(signature.parameters[signature.parameters.length - 1]); - if (!isTupleType(restType)) { - return restType; - } - if (restType.target.hasRestElement) { - return sliceTupleType(restType, restType.target.fixedLength); - } - } - return void 0; - } - function getNonArrayRestType(signature) { - var restType = getEffectiveRestType(signature); - return restType && !isArrayType(restType) && !isTypeAny(restType) ? restType : void 0; - } - function getTypeOfFirstParameterOfSignature(signature) { - return getTypeOfFirstParameterOfSignatureWithFallback(signature, neverType); - } - function getTypeOfFirstParameterOfSignatureWithFallback(signature, fallbackType) { - return signature.parameters.length > 0 ? getTypeAtPosition(signature, 0) : fallbackType; - } - function inferFromAnnotatedParameters(signature, context, inferenceContext) { - var len = signature.parameters.length - (signatureHasRestParameter(signature) ? 1 : 0); - for (var i = 0; i < len; i++) { - var declaration = signature.parameters[i].valueDeclaration; - if (declaration.type) { - var typeNode = getEffectiveTypeAnnotationNode(declaration); - if (typeNode) { - inferTypes(inferenceContext.inferences, getTypeFromTypeNode(typeNode), getTypeAtPosition(context, i)); - } - } - } - } - function assignContextualParameterTypes(signature, context) { - if (context.typeParameters) { - if (!signature.typeParameters) { - signature.typeParameters = context.typeParameters; - } - else { - return; - } - } - if (context.thisParameter) { - var parameter = signature.thisParameter; - if (!parameter || parameter.valueDeclaration && !parameter.valueDeclaration.type) { - if (!parameter) { - signature.thisParameter = createSymbolWithType(context.thisParameter, - /*type*/ - void 0); - } - assignParameterType(signature.thisParameter, getTypeOfSymbol(context.thisParameter)); - } - } - var len = signature.parameters.length - (signatureHasRestParameter(signature) ? 1 : 0); - for (var i = 0; i < len; i++) { - var parameter = signature.parameters[i]; - if (!getEffectiveTypeAnnotationNode(parameter.valueDeclaration)) { - var contextualParameterType = tryGetTypeAtPosition(context, i); - assignParameterType(parameter, contextualParameterType); - } - } - if (signatureHasRestParameter(signature)) { - var parameter = last(signature.parameters); - if (parameter.valueDeclaration ? !getEffectiveTypeAnnotationNode(parameter.valueDeclaration) : !!(getCheckFlags(parameter) & 65536 /* DeferredType */)) { - var contextualParameterType = getRestTypeAtPosition(context, len); - assignParameterType(parameter, contextualParameterType); - } - } - } - function assignNonContextualParameterTypes(signature) { - var e_348, _t; - if (signature.thisParameter) { - assignParameterType(signature.thisParameter); - } - try { - for (var _u = __values(signature.parameters), _v = _u.next(); !_v.done; _v = _u.next()) { - var parameter = _v.value; - assignParameterType(parameter); - } - } - catch (e_348_1) { e_348 = { error: e_348_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_348) throw e_348.error; } - } - } - function assignParameterType(parameter, type) { - var links = getSymbolLinks(parameter); - if (!links.type) { - var declaration = parameter.valueDeclaration; - links.type = type || (declaration ? getWidenedTypeForVariableLikeDeclaration(declaration, - /*reportErrors*/ - true) : getTypeOfSymbol(parameter)); - if (declaration && declaration.name.kind !== 80 /* Identifier */) { - if (links.type === unknownType) { - links.type = getTypeFromBindingPattern(declaration.name); - } - assignBindingElementTypes(declaration.name, links.type); - } - } - else if (type) { - Debug.assertEqual(links.type, type, "Parameter symbol already has a cached type which differs from newly assigned type"); - } - } - function assignBindingElementTypes(pattern, parentType) { - var e_349, _t; - try { - for (var _u = __values(pattern.elements), _v = _u.next(); !_v.done; _v = _u.next()) { - var element = _v.value; - if (!isOmittedExpression(element)) { - var type = getBindingElementTypeFromParentType(element, parentType); - if (element.name.kind === 80 /* Identifier */) { - getSymbolLinks(getSymbolOfDeclaration(element)).type = type; - } - else { - assignBindingElementTypes(element.name, type); - } - } - } - } - catch (e_349_1) { e_349 = { error: e_349_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_349) throw e_349.error; } - } - } - function createClassDecoratorContextType(classType) { - return tryCreateTypeReference(getGlobalClassDecoratorContextType( - /*reportErrors*/ - true), [classType]); - } - function createClassMethodDecoratorContextType(thisType, valueType) { - return tryCreateTypeReference(getGlobalClassMethodDecoratorContextType( - /*reportErrors*/ - true), [thisType, valueType]); - } - function createClassGetterDecoratorContextType(thisType, valueType) { - return tryCreateTypeReference(getGlobalClassGetterDecoratorContextType( - /*reportErrors*/ - true), [thisType, valueType]); - } - function createClassSetterDecoratorContextType(thisType, valueType) { - return tryCreateTypeReference(getGlobalClassSetterDecoratorContextType( - /*reportErrors*/ - true), [thisType, valueType]); - } - function createClassAccessorDecoratorContextType(thisType, valueType) { - return tryCreateTypeReference(getGlobalClassAccessorDecoratorContextType( - /*reportErrors*/ - true), [thisType, valueType]); - } - function createClassFieldDecoratorContextType(thisType, valueType) { - return tryCreateTypeReference(getGlobalClassFieldDecoratorContextType( - /*reportErrors*/ - true), [thisType, valueType]); - } - function getClassMemberDecoratorContextOverrideType(nameType, isPrivate, isStatic2) { - var key = "".concat(isPrivate ? "p" : "P").concat(isStatic2 ? "s" : "S").concat(nameType.id); - var overrideType = decoratorContextOverrideTypeCache.get(key); - if (!overrideType) { - var members = createSymbolTable(); - members.set("name", createProperty("name", nameType)); - members.set("private", createProperty("private", isPrivate ? trueType : falseType)); - members.set("static", createProperty("static", isStatic2 ? trueType : falseType)); - overrideType = createAnonymousType( - /*symbol*/ - void 0, members, emptyArray, emptyArray, emptyArray); - decoratorContextOverrideTypeCache.set(key, overrideType); - } - return overrideType; - } - function createClassMemberDecoratorContextTypeForNode(node, thisType, valueType) { - var isStatic2 = hasStaticModifier(node); - var isPrivate = isPrivateIdentifier(node.name); - var nameType = isPrivate ? getStringLiteralType(idText(node.name)) : getLiteralTypeFromPropertyName(node.name); - var contextType = isMethodDeclaration(node) ? createClassMethodDecoratorContextType(thisType, valueType) : isGetAccessorDeclaration(node) ? createClassGetterDecoratorContextType(thisType, valueType) : isSetAccessorDeclaration(node) ? createClassSetterDecoratorContextType(thisType, valueType) : isAutoAccessorPropertyDeclaration(node) ? createClassAccessorDecoratorContextType(thisType, valueType) : isPropertyDeclaration(node) ? createClassFieldDecoratorContextType(thisType, valueType) : Debug.failBadSyntaxKind(node); - var overrideType = getClassMemberDecoratorContextOverrideType(nameType, isPrivate, isStatic2); - return getIntersectionType([contextType, overrideType]); - } - function createClassAccessorDecoratorTargetType(thisType, valueType) { - return tryCreateTypeReference(getGlobalClassAccessorDecoratorTargetType( - /*reportErrors*/ - true), [thisType, valueType]); - } - function createClassAccessorDecoratorResultType(thisType, valueType) { - return tryCreateTypeReference(getGlobalClassAccessorDecoratorResultType( - /*reportErrors*/ - true), [thisType, valueType]); - } - function createClassFieldDecoratorInitializerMutatorType(thisType, valueType) { - var thisParam = createParameter("this", thisType); - var valueParam = createParameter("value", valueType); - return createFunctionType( - /*typeParameters*/ - void 0, thisParam, [valueParam], valueType, - /*typePredicate*/ - void 0, 1); - } - function createESDecoratorCallSignature(targetType, contextType, nonOptionalReturnType) { - var targetParam = createParameter("target", targetType); - var contextParam = createParameter("context", contextType); - var returnType = getUnionType([nonOptionalReturnType, voidType]); - return createCallSignature( - /*typeParameters*/ - void 0, - /*thisParameter*/ - void 0, [targetParam, contextParam], returnType); - } - function getESDecoratorCallSignature(decorator) { - var parent2 = decorator.parent; - var links = getNodeLinks(parent2); - if (!links.decoratorSignature) { - links.decoratorSignature = anySignature; - switch (parent2.kind) { - case 263 /* ClassDeclaration */: - case 231 /* ClassExpression */: { - var node = parent2; - var targetType = getTypeOfSymbol(getSymbolOfDeclaration(node)); - var contextType = createClassDecoratorContextType(targetType); - links.decoratorSignature = createESDecoratorCallSignature(targetType, contextType, targetType); - break; - } - case 174 /* MethodDeclaration */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: { - var node = parent2; - if (!isClassLike(node.parent)) - break; - var valueType = isMethodDeclaration(node) ? getOrCreateTypeFromSignature(getSignatureFromDeclaration(node)) : getTypeOfNode(node); - var thisType = hasStaticModifier(node) ? getTypeOfSymbol(getSymbolOfDeclaration(node.parent)) : getDeclaredTypeOfClassOrInterface(getSymbolOfDeclaration(node.parent)); - var targetType = isGetAccessorDeclaration(node) ? createGetterFunctionType(valueType) : isSetAccessorDeclaration(node) ? createSetterFunctionType(valueType) : valueType; - var contextType = createClassMemberDecoratorContextTypeForNode(node, thisType, valueType); - var returnType = isGetAccessorDeclaration(node) ? createGetterFunctionType(valueType) : isSetAccessorDeclaration(node) ? createSetterFunctionType(valueType) : valueType; - links.decoratorSignature = createESDecoratorCallSignature(targetType, contextType, returnType); - break; - } - case 172 /* PropertyDeclaration */: { - var node = parent2; - if (!isClassLike(node.parent)) - break; - var valueType = getTypeOfNode(node); - var thisType = hasStaticModifier(node) ? getTypeOfSymbol(getSymbolOfDeclaration(node.parent)) : getDeclaredTypeOfClassOrInterface(getSymbolOfDeclaration(node.parent)); - var targetType = hasAccessorModifier(node) ? createClassAccessorDecoratorTargetType(thisType, valueType) : undefinedType; - var contextType = createClassMemberDecoratorContextTypeForNode(node, thisType, valueType); - var returnType = hasAccessorModifier(node) ? createClassAccessorDecoratorResultType(thisType, valueType) : createClassFieldDecoratorInitializerMutatorType(thisType, valueType); - links.decoratorSignature = createESDecoratorCallSignature(targetType, contextType, returnType); - break; - } - } - } - return links.decoratorSignature === anySignature ? void 0 : links.decoratorSignature; - } - function getLegacyDecoratorCallSignature(decorator) { - var parent2 = decorator.parent; - var links = getNodeLinks(parent2); - if (!links.decoratorSignature) { - links.decoratorSignature = anySignature; - switch (parent2.kind) { - case 263 /* ClassDeclaration */: - case 231 /* ClassExpression */: { - var node = parent2; - var targetType = getTypeOfSymbol(getSymbolOfDeclaration(node)); - var targetParam = createParameter("target", targetType); - links.decoratorSignature = createCallSignature( - /*typeParameters*/ - void 0, - /*thisParameter*/ - void 0, [targetParam], getUnionType([targetType, voidType])); - break; - } - case 169 /* Parameter */: { - var node = parent2; - if (!isConstructorDeclaration(node.parent) && !(isMethodDeclaration(node.parent) || isSetAccessorDeclaration(node.parent) && isClassLike(node.parent.parent))) { - break; - } - if (getThisParameter(node.parent) === node) { - break; - } - var index = getThisParameter(node.parent) ? node.parent.parameters.indexOf(node) - 1 : node.parent.parameters.indexOf(node); - Debug.assert(index >= 0); - var targetType = isConstructorDeclaration(node.parent) ? getTypeOfSymbol(getSymbolOfDeclaration(node.parent.parent)) : getParentTypeOfClassElement(node.parent); - var keyType = isConstructorDeclaration(node.parent) ? undefinedType : getClassElementPropertyKeyType(node.parent); - var indexType = getNumberLiteralType(index); - var targetParam = createParameter("target", targetType); - var keyParam = createParameter("propertyKey", keyType); - var indexParam = createParameter("parameterIndex", indexType); - links.decoratorSignature = createCallSignature( - /*typeParameters*/ - void 0, - /*thisParameter*/ - void 0, [targetParam, keyParam, indexParam], voidType); - break; - } - case 174 /* MethodDeclaration */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - case 172 /* PropertyDeclaration */: { - var node = parent2; - if (!isClassLike(node.parent)) - break; - var targetType = getParentTypeOfClassElement(node); - var targetParam = createParameter("target", targetType); - var keyType = getClassElementPropertyKeyType(node); - var keyParam = createParameter("propertyKey", keyType); - var returnType = isPropertyDeclaration(node) ? voidType : createTypedPropertyDescriptorType(getTypeOfNode(node)); - var hasPropDesc = languageVersion !== 0 /* ES3 */ && (!isPropertyDeclaration(parent2) || hasAccessorModifier(parent2)); - if (hasPropDesc) { - var descriptorType = createTypedPropertyDescriptorType(getTypeOfNode(node)); - var descriptorParam = createParameter("descriptor", descriptorType); - links.decoratorSignature = createCallSignature( - /*typeParameters*/ - void 0, - /*thisParameter*/ - void 0, [targetParam, keyParam, descriptorParam], getUnionType([returnType, voidType])); - } - else { - links.decoratorSignature = createCallSignature( - /*typeParameters*/ - void 0, - /*thisParameter*/ - void 0, [targetParam, keyParam], getUnionType([returnType, voidType])); - } - break; - } - } - } - return links.decoratorSignature === anySignature ? void 0 : links.decoratorSignature; - } - function getDecoratorCallSignature(decorator) { - return legacyDecorators ? getLegacyDecoratorCallSignature(decorator) : getESDecoratorCallSignature(decorator); - } - function createPromiseType(promisedType) { - var globalPromiseType = getGlobalPromiseType( - /*reportErrors*/ - true); - if (globalPromiseType !== emptyGenericType) { - promisedType = getAwaitedTypeNoAlias(unwrapAwaitedType(promisedType)) || unknownType; - return createTypeReference(globalPromiseType, [promisedType]); - } - return unknownType; - } - function createPromiseLikeType(promisedType) { - var globalPromiseLikeType = getGlobalPromiseLikeType( - /*reportErrors*/ - true); - if (globalPromiseLikeType !== emptyGenericType) { - promisedType = getAwaitedTypeNoAlias(unwrapAwaitedType(promisedType)) || unknownType; - return createTypeReference(globalPromiseLikeType, [promisedType]); - } - return unknownType; - } - function createPromiseReturnType(func, promisedType) { - var promiseType = createPromiseType(promisedType); - if (promiseType === unknownType) { - error2(func, isImportCall(func) ? Diagnostics.A_dynamic_import_call_returns_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option : Diagnostics.An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option); - return errorType; - } - else if (!getGlobalPromiseConstructorSymbol( - /*reportErrors*/ - true)) { - error2(func, isImportCall(func) ? Diagnostics.A_dynamic_import_call_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option : Diagnostics.An_async_function_or_method_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option); - } - return promiseType; - } - function createNewTargetExpressionType(targetType) { - var symbol = createSymbol(0 /* None */, "NewTargetExpression"); - var targetPropertySymbol = createSymbol(4 /* Property */, "target", 8 /* Readonly */); - targetPropertySymbol.parent = symbol; - targetPropertySymbol.links.type = targetType; - var members = createSymbolTable([targetPropertySymbol]); - symbol.members = members; - return createAnonymousType(symbol, members, emptyArray, emptyArray, emptyArray); - } - function getReturnTypeFromBody(func, checkMode) { - if (!func.body) { - return errorType; - } - var functionFlags = getFunctionFlags(func); - var isAsync = (functionFlags & 2 /* Async */) !== 0; - var isGenerator = (functionFlags & 1 /* Generator */) !== 0; - var returnType; - var yieldType; - var nextType; - var fallbackReturnType = voidType; - if (func.body.kind !== 241 /* Block */) { - returnType = checkExpressionCached(func.body, checkMode && checkMode & ~8 /* SkipGenericFunctions */); - if (isAsync) { - returnType = unwrapAwaitedType(checkAwaitedType(returnType, - /*withAlias*/ - false, - /*errorNode*/ - func, Diagnostics.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member)); - } - } - else if (isGenerator) { - var returnTypes = checkAndAggregateReturnExpressionTypes(func, checkMode); - if (!returnTypes) { - fallbackReturnType = neverType; - } - else if (returnTypes.length > 0) { - returnType = getUnionType(returnTypes, 2 /* Subtype */); - } - var _t = checkAndAggregateYieldOperandTypes(func, checkMode), yieldTypes = _t.yieldTypes, nextTypes = _t.nextTypes; - yieldType = some(yieldTypes) ? getUnionType(yieldTypes, 2 /* Subtype */) : void 0; - nextType = some(nextTypes) ? getIntersectionType(nextTypes) : void 0; - } - else { - var types = checkAndAggregateReturnExpressionTypes(func, checkMode); - if (!types) { - return functionFlags & 2 /* Async */ ? createPromiseReturnType(func, neverType) : neverType; - } - if (types.length === 0) { - var contextualReturnType = getContextualReturnType(func, - /*contextFlags*/ - void 0); - var returnType2 = contextualReturnType && (unwrapReturnType(contextualReturnType, functionFlags) || voidType).flags & 32768 /* Undefined */ ? undefinedType : voidType; - return functionFlags & 2 /* Async */ ? createPromiseReturnType(func, returnType2) : ( - // Async function - returnType2); - } - returnType = getUnionType(types, 2 /* Subtype */); - } - if (returnType || yieldType || nextType) { - if (yieldType) - reportErrorsFromWidening(func, yieldType, 3 /* GeneratorYield */); - if (returnType) - reportErrorsFromWidening(func, returnType, 1 /* FunctionReturn */); - if (nextType) - reportErrorsFromWidening(func, nextType, 2 /* GeneratorNext */); - if (returnType && isUnitType(returnType) || yieldType && isUnitType(yieldType) || nextType && isUnitType(nextType)) { - var contextualSignature = getContextualSignatureForFunctionLikeDeclaration(func); - var contextualType = !contextualSignature ? void 0 : contextualSignature === getSignatureFromDeclaration(func) ? isGenerator ? void 0 : returnType : instantiateContextualType(getReturnTypeOfSignature(contextualSignature), func, - /*contextFlags*/ - void 0); - if (isGenerator) { - yieldType = getWidenedLiteralLikeTypeForContextualIterationTypeIfNeeded(yieldType, contextualType, 0 /* Yield */, isAsync); - returnType = getWidenedLiteralLikeTypeForContextualIterationTypeIfNeeded(returnType, contextualType, 1 /* Return */, isAsync); - nextType = getWidenedLiteralLikeTypeForContextualIterationTypeIfNeeded(nextType, contextualType, 2 /* Next */, isAsync); - } - else { - returnType = getWidenedLiteralLikeTypeForContextualReturnTypeIfNeeded(returnType, contextualType, isAsync); - } - } - if (yieldType) - yieldType = getWidenedType(yieldType); - if (returnType) - returnType = getWidenedType(returnType); - if (nextType) - nextType = getWidenedType(nextType); - } - if (isGenerator) { - return createGeneratorReturnType(yieldType || neverType, returnType || fallbackReturnType, nextType || getContextualIterationType(2 /* Next */, func) || unknownType, isAsync); - } - else { - return isAsync ? createPromiseType(returnType || fallbackReturnType) : returnType || fallbackReturnType; - } - } - function createGeneratorReturnType(yieldType, returnType, nextType, isAsyncGenerator) { - var resolver = isAsyncGenerator ? asyncIterationTypesResolver : syncIterationTypesResolver; - var globalGeneratorType = resolver.getGlobalGeneratorType( - /*reportErrors*/ - false); - yieldType = resolver.resolveIterationType(yieldType, - /*errorNode*/ - void 0) || unknownType; - returnType = resolver.resolveIterationType(returnType, - /*errorNode*/ - void 0) || unknownType; - nextType = resolver.resolveIterationType(nextType, - /*errorNode*/ - void 0) || unknownType; - if (globalGeneratorType === emptyGenericType) { - var globalType = resolver.getGlobalIterableIteratorType( - /*reportErrors*/ - false); - var iterationTypes = globalType !== emptyGenericType ? getIterationTypesOfGlobalIterableType(globalType, resolver) : void 0; - var iterableIteratorReturnType = iterationTypes ? iterationTypes.returnType : anyType; - var iterableIteratorNextType = iterationTypes ? iterationTypes.nextType : undefinedType; - if (isTypeAssignableTo(returnType, iterableIteratorReturnType) && isTypeAssignableTo(iterableIteratorNextType, nextType)) { - if (globalType !== emptyGenericType) { - return createTypeFromGenericGlobalType(globalType, [yieldType]); - } - resolver.getGlobalIterableIteratorType( - /*reportErrors*/ - true); - return emptyObjectType; - } - resolver.getGlobalGeneratorType( - /*reportErrors*/ - true); - return emptyObjectType; - } - return createTypeFromGenericGlobalType(globalGeneratorType, [yieldType, returnType, nextType]); - } - function checkAndAggregateYieldOperandTypes(func, checkMode) { - var yieldTypes = []; - var nextTypes = []; - var isAsync = (getFunctionFlags(func) & 2 /* Async */) !== 0; - forEachYieldExpression(func.body, function (yieldExpression) { - var yieldExpressionType = yieldExpression.expression ? checkExpression(yieldExpression.expression, checkMode) : undefinedWideningType; - pushIfUnique(yieldTypes, getYieldedTypeOfYieldExpression(yieldExpression, yieldExpressionType, anyType, isAsync)); - var nextType; - if (yieldExpression.asteriskToken) { - var iterationTypes = getIterationTypesOfIterable(yieldExpressionType, isAsync ? 19 /* AsyncYieldStar */ : 17 /* YieldStar */, yieldExpression.expression); - nextType = iterationTypes && iterationTypes.nextType; - } - else { - nextType = getContextualType2(yieldExpression, - /*contextFlags*/ - void 0); - } - if (nextType) - pushIfUnique(nextTypes, nextType); - }); - return { yieldTypes: yieldTypes, nextTypes: nextTypes }; - } - function getYieldedTypeOfYieldExpression(node, expressionType, sentType, isAsync) { - var errorNode = node.expression || node; - var yieldedType = node.asteriskToken ? checkIteratedTypeOrElementType(isAsync ? 19 /* AsyncYieldStar */ : 17 /* YieldStar */, expressionType, sentType, errorNode) : expressionType; - return !isAsync ? yieldedType : getAwaitedType(yieldedType, errorNode, node.asteriskToken ? Diagnostics.Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member : Diagnostics.Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member); - } - function getNotEqualFactsFromTypeofSwitch(start2, end, witnesses) { - var facts = 0 /* None */; - for (var i = 0; i < witnesses.length; i++) { - var witness = i < start2 || i >= end ? witnesses[i] : void 0; - facts |= witness !== void 0 ? typeofNEFacts.get(witness) || 32768 /* TypeofNEHostObject */ : 0; - } - return facts; - } - function isExhaustiveSwitchStatement(node) { - var links = getNodeLinks(node); - if (links.isExhaustive === void 0) { - links.isExhaustive = 0; - var exhaustive = computeExhaustiveSwitchStatement(node); - if (links.isExhaustive === 0) { - links.isExhaustive = exhaustive; - } - } - else if (links.isExhaustive === 0) { - links.isExhaustive = false; - } - return links.isExhaustive; - } - function computeExhaustiveSwitchStatement(node) { - if (node.expression.kind === 221 /* TypeOfExpression */) { - var witnesses = getSwitchClauseTypeOfWitnesses(node); - if (!witnesses) { - return false; - } - var operandConstraint = getBaseConstraintOrType(checkExpressionCached(node.expression.expression)); - var notEqualFacts_2 = getNotEqualFactsFromTypeofSwitch(0, 0, witnesses); - if (operandConstraint.flags & 3 /* AnyOrUnknown */) { - return (556800 /* AllTypeofNE */ & notEqualFacts_2) === 556800 /* AllTypeofNE */; - } - return !someType(operandConstraint, function (t) { return (getTypeFacts(t) & notEqualFacts_2) === notEqualFacts_2; }); - } - var type = checkExpressionCached(node.expression); - if (!isLiteralType(type)) { - return false; - } - var switchTypes = getSwitchClauseTypes(node); - if (!switchTypes.length || some(switchTypes, isNeitherUnitTypeNorNever)) { - return false; - } - return eachTypeContainedIn(mapType(type, getRegularTypeOfLiteralType), switchTypes); - } - function functionHasImplicitReturn(func) { - return func.endFlowNode && isReachableFlowNode(func.endFlowNode); - } - function checkAndAggregateReturnExpressionTypes(func, checkMode) { - var functionFlags = getFunctionFlags(func); - var aggregatedTypes = []; - var hasReturnWithNoExpression = functionHasImplicitReturn(func); - var hasReturnOfTypeNever = false; - forEachReturnStatement(func.body, function (returnStatement) { - var expr = returnStatement.expression; - if (expr) { - if (expr.kind === 213 /* CallExpression */ && expr.expression.kind === 80 /* Identifier */ && checkExpressionCached(expr.expression).symbol === func.symbol) { - hasReturnOfTypeNever = true; - return; - } - var type = checkExpressionCached(expr, checkMode && checkMode & ~8 /* SkipGenericFunctions */); - if (functionFlags & 2 /* Async */) { - type = unwrapAwaitedType(checkAwaitedType(type, - /*withAlias*/ - false, func, Diagnostics.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member)); - } - if (type.flags & 131072 /* Never */) { - hasReturnOfTypeNever = true; - } - pushIfUnique(aggregatedTypes, type); - } - else { - hasReturnWithNoExpression = true; - } - }); - if (aggregatedTypes.length === 0 && !hasReturnWithNoExpression && (hasReturnOfTypeNever || mayReturnNever(func))) { - return void 0; - } - if (strictNullChecks && aggregatedTypes.length && hasReturnWithNoExpression && !(isJSConstructor(func) && aggregatedTypes.some(function (t) { return t.symbol === func.symbol; }))) { - pushIfUnique(aggregatedTypes, undefinedType); - } - return aggregatedTypes; - } - function mayReturnNever(func) { - switch (func.kind) { - case 218 /* FunctionExpression */: - case 219 /* ArrowFunction */: - return true; - case 174 /* MethodDeclaration */: - return func.parent.kind === 210 /* ObjectLiteralExpression */; - default: - return false; - } - } - function checkAllCodePathsInNonVoidFunctionReturnOrThrow(func, returnType) { - addLazyDiagnostic(checkAllCodePathsInNonVoidFunctionReturnOrThrowDiagnostics); - return; - function checkAllCodePathsInNonVoidFunctionReturnOrThrowDiagnostics() { - var functionFlags = getFunctionFlags(func); - var type = returnType && unwrapReturnType(returnType, functionFlags); - if (type && (maybeTypeOfKind(type, 16384 /* Void */) || type.flags & (1 /* Any */ | 32768 /* Undefined */))) { - return; - } - if (func.kind === 173 /* MethodSignature */ || nodeIsMissing(func.body) || func.body.kind !== 241 /* Block */ || !functionHasImplicitReturn(func)) { - return; - } - var hasExplicitReturn = func.flags & 1024 /* HasExplicitReturn */; - var errorNode = getEffectiveReturnTypeNode(func) || func; - if (type && type.flags & 131072 /* Never */) { - error2(errorNode, Diagnostics.A_function_returning_never_cannot_have_a_reachable_end_point); - } - else if (type && !hasExplicitReturn) { - error2(errorNode, Diagnostics.A_function_whose_declared_type_is_neither_undefined_void_nor_any_must_return_a_value); - } - else if (type && strictNullChecks && !isTypeAssignableTo(undefinedType, type)) { - error2(errorNode, Diagnostics.Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined); - } - else if (compilerOptions.noImplicitReturns) { - if (!type) { - if (!hasExplicitReturn) { - return; - } - var inferredReturnType = getReturnTypeOfSignature(getSignatureFromDeclaration(func)); - if (isUnwrappedReturnTypeUndefinedVoidOrAny(func, inferredReturnType)) { - return; - } - } - error2(errorNode, Diagnostics.Not_all_code_paths_return_a_value); - } - } - } - function checkFunctionExpressionOrObjectLiteralMethod(node, checkMode) { - Debug.assert(node.kind !== 174 /* MethodDeclaration */ || isObjectLiteralMethod(node)); - checkNodeDeferred(node); - if (isFunctionExpression(node)) { - checkCollisionsForDeclarationName(node, node.name); - } - if (checkMode && checkMode & 4 /* SkipContextSensitive */ && isContextSensitive(node)) { - if (!getEffectiveReturnTypeNode(node) && !hasContextSensitiveParameters(node)) { - var contextualSignature = getContextualSignature(node); - if (contextualSignature && couldContainTypeVariables(getReturnTypeOfSignature(contextualSignature))) { - var links = getNodeLinks(node); - if (links.contextFreeType) { - return links.contextFreeType; - } - var returnType = getReturnTypeFromBody(node, checkMode); - var returnOnlySignature = createSignature( - /*declaration*/ - void 0, - /*typeParameters*/ - void 0, - /*thisParameter*/ - void 0, emptyArray, returnType, - /*resolvedTypePredicate*/ - void 0, 0, 64 /* IsNonInferrable */); - var returnOnlyType = createAnonymousType(node.symbol, emptySymbols, [returnOnlySignature], emptyArray, emptyArray); - returnOnlyType.objectFlags |= 262144 /* NonInferrableType */; - return links.contextFreeType = returnOnlyType; - } - } - return anyFunctionType; - } - var hasGrammarError = checkGrammarFunctionLikeDeclaration(node); - if (!hasGrammarError && node.kind === 218 /* FunctionExpression */) { - checkGrammarForGenerator(node); - } - contextuallyCheckFunctionExpressionOrObjectLiteralMethod(node, checkMode); - return getTypeOfSymbol(getSymbolOfDeclaration(node)); - } - function contextuallyCheckFunctionExpressionOrObjectLiteralMethod(node, checkMode) { - var links = getNodeLinks(node); - if (!(links.flags & 64 /* ContextChecked */)) { - var contextualSignature = getContextualSignature(node); - if (!(links.flags & 64 /* ContextChecked */)) { - links.flags |= 64 /* ContextChecked */; - var signature = firstOrUndefined(getSignaturesOfType(getTypeOfSymbol(getSymbolOfDeclaration(node)), 0 /* Call */)); - if (!signature) { - return; - } - if (isContextSensitive(node)) { - if (contextualSignature) { - var inferenceContext = getInferenceContext(node); - var instantiatedContextualSignature = void 0; - if (checkMode && checkMode & 2 /* Inferential */) { - inferFromAnnotatedParameters(signature, contextualSignature, inferenceContext); - var restType = getEffectiveRestType(contextualSignature); - if (restType && restType.flags & 262144 /* TypeParameter */) { - instantiatedContextualSignature = instantiateSignature(contextualSignature, inferenceContext.nonFixingMapper); - } - } - instantiatedContextualSignature || (instantiatedContextualSignature = inferenceContext ? instantiateSignature(contextualSignature, inferenceContext.mapper) : contextualSignature); - assignContextualParameterTypes(signature, instantiatedContextualSignature); - } - else { - assignNonContextualParameterTypes(signature); - } - } - else if (contextualSignature && !node.typeParameters && contextualSignature.parameters.length > node.parameters.length) { - var inferenceContext = getInferenceContext(node); - if (checkMode && checkMode & 2 /* Inferential */) { - inferFromAnnotatedParameters(signature, contextualSignature, inferenceContext); - } - } - if (contextualSignature && !getReturnTypeFromAnnotation(node) && !signature.resolvedReturnType) { - var returnType = getReturnTypeFromBody(node, checkMode); - if (!signature.resolvedReturnType) { - signature.resolvedReturnType = returnType; - } - } - checkSignatureDeclaration(node); - } - } - } - function checkFunctionExpressionOrObjectLiteralMethodDeferred(node) { - Debug.assert(node.kind !== 174 /* MethodDeclaration */ || isObjectLiteralMethod(node)); - var functionFlags = getFunctionFlags(node); - var returnType = getReturnTypeFromAnnotation(node); - checkAllCodePathsInNonVoidFunctionReturnOrThrow(node, returnType); - if (node.body) { - if (!getEffectiveReturnTypeNode(node)) { - getReturnTypeOfSignature(getSignatureFromDeclaration(node)); - } - if (node.body.kind === 241 /* Block */) { - checkSourceElement(node.body); - } - else { - var exprType = checkExpression(node.body); - var returnOrPromisedType = returnType && unwrapReturnType(returnType, functionFlags); - if (returnOrPromisedType) { - if ((functionFlags & 3 /* AsyncGenerator */) === 2 /* Async */) { - var awaitedType = checkAwaitedType(exprType, - /*withAlias*/ - false, node.body, Diagnostics.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member); - checkTypeAssignableToAndOptionallyElaborate(awaitedType, returnOrPromisedType, node.body, node.body); - } - else { - checkTypeAssignableToAndOptionallyElaborate(exprType, returnOrPromisedType, node.body, node.body); - } - } - } - } - } - function checkArithmeticOperandType(operand, type, diagnostic, isAwaitValid) { - if (isAwaitValid === void 0) { isAwaitValid = false; } - if (!isTypeAssignableTo(type, numberOrBigIntType)) { - var awaitedType = isAwaitValid && getAwaitedTypeOfPromise(type); - errorAndMaybeSuggestAwait(operand, !!awaitedType && isTypeAssignableTo(awaitedType, numberOrBigIntType), diagnostic); - return false; - } - return true; - } - function isReadonlyAssignmentDeclaration(d) { - if (!isCallExpression(d)) { - return false; - } - if (!isBindableObjectDefinePropertyCall(d)) { - return false; - } - var objectLitType = checkExpressionCached(d.arguments[2]); - var valueType = getTypeOfPropertyOfType(objectLitType, "value"); - if (valueType) { - var writableProp = getPropertyOfType(objectLitType, "writable"); - var writableType = writableProp && getTypeOfSymbol(writableProp); - if (!writableType || writableType === falseType || writableType === regularFalseType) { - return true; - } - if (writableProp && writableProp.valueDeclaration && isPropertyAssignment(writableProp.valueDeclaration)) { - var initializer = writableProp.valueDeclaration.initializer; - var rawOriginalType = checkExpression(initializer); - if (rawOriginalType === falseType || rawOriginalType === regularFalseType) { - return true; - } - } - return false; - } - var setProp = getPropertyOfType(objectLitType, "set"); - return !setProp; - } - function isReadonlySymbol(symbol) { - return !!(getCheckFlags(symbol) & 8 /* Readonly */ || symbol.flags & 4 /* Property */ && getDeclarationModifierFlagsFromSymbol(symbol) & 64 /* Readonly */ || symbol.flags & 3 /* Variable */ && getDeclarationNodeFlagsFromSymbol(symbol) & 6 /* Constant */ || symbol.flags & 98304 /* Accessor */ && !(symbol.flags & 65536 /* SetAccessor */) || symbol.flags & 8 /* EnumMember */ || some(symbol.declarations, isReadonlyAssignmentDeclaration)); - } - function isAssignmentToReadonlyEntity(expr, symbol, assignmentKind) { - var _a, _b; - if (assignmentKind === 0 /* None */) { - return false; - } - if (isReadonlySymbol(symbol)) { - if (symbol.flags & 4 /* Property */ && isAccessExpression(expr) && expr.expression.kind === 110 /* ThisKeyword */) { - var ctor = getContainingFunction(expr); - if (!(ctor && (ctor.kind === 176 /* Constructor */ || isJSConstructor(ctor)))) { - return true; - } - if (symbol.valueDeclaration) { - var isAssignmentDeclaration2 = isBinaryExpression(symbol.valueDeclaration); - var isLocalPropertyDeclaration = ctor.parent === symbol.valueDeclaration.parent; - var isLocalParameterProperty = ctor === symbol.valueDeclaration.parent; - var isLocalThisPropertyAssignment = isAssignmentDeclaration2 && ((_a = symbol.parent) == null ? void 0 : _a.valueDeclaration) === ctor.parent; - var isLocalThisPropertyAssignmentConstructorFunction = isAssignmentDeclaration2 && ((_b = symbol.parent) == null ? void 0 : _b.valueDeclaration) === ctor; - var isWriteableSymbol = isLocalPropertyDeclaration || isLocalParameterProperty || isLocalThisPropertyAssignment || isLocalThisPropertyAssignmentConstructorFunction; - return !isWriteableSymbol; - } - } - return true; - } - if (isAccessExpression(expr)) { - var node = skipParentheses(expr.expression); - if (node.kind === 80 /* Identifier */) { - var symbol2 = getNodeLinks(node).resolvedSymbol; - if (symbol2.flags & 2097152 /* Alias */) { - var declaration = getDeclarationOfAliasSymbol(symbol2); - return !!declaration && declaration.kind === 274 /* NamespaceImport */; - } - } - } - return false; - } - function checkReferenceExpression(expr, invalidReferenceMessage, invalidOptionalChainMessage) { - var node = skipOuterExpressions(expr, 6 /* Assertions */ | 1 /* Parentheses */); - if (node.kind !== 80 /* Identifier */ && !isAccessExpression(node)) { - error2(expr, invalidReferenceMessage); - return false; - } - if (node.flags & 64 /* OptionalChain */) { - error2(expr, invalidOptionalChainMessage); - return false; - } - return true; - } - function checkDeleteExpression(node) { - checkExpression(node.expression); - var expr = skipParentheses(node.expression); - if (!isAccessExpression(expr)) { - error2(expr, Diagnostics.The_operand_of_a_delete_operator_must_be_a_property_reference); - return booleanType; - } - if (isPropertyAccessExpression(expr) && isPrivateIdentifier(expr.name)) { - error2(expr, Diagnostics.The_operand_of_a_delete_operator_cannot_be_a_private_identifier); - } - var links = getNodeLinks(expr); - var symbol = getExportSymbolOfValueSymbolIfExported(links.resolvedSymbol); - if (symbol) { - if (isReadonlySymbol(symbol)) { - error2(expr, Diagnostics.The_operand_of_a_delete_operator_cannot_be_a_read_only_property); - } - checkDeleteExpressionMustBeOptional(expr, symbol); - } - return booleanType; - } - function checkDeleteExpressionMustBeOptional(expr, symbol) { - var type = getTypeOfSymbol(symbol); - if (strictNullChecks && !(type.flags & (3 /* AnyOrUnknown */ | 131072 /* Never */)) && !(exactOptionalPropertyTypes ? symbol.flags & 16777216 /* Optional */ : getTypeFacts(type) & 16777216 /* IsUndefined */)) { - error2(expr, Diagnostics.The_operand_of_a_delete_operator_must_be_optional); - } - } - function checkTypeOfExpression(node) { - checkExpression(node.expression); - return typeofType; - } - function checkVoidExpression(node) { - checkExpression(node.expression); - return undefinedWideningType; - } - function checkAwaitGrammar(node) { - var hasError = false; - var container = getContainingFunctionOrClassStaticBlock(node); - if (container && isClassStaticBlockDeclaration(container)) { - var message = isAwaitExpression(node) ? Diagnostics.await_expression_cannot_be_used_inside_a_class_static_block : Diagnostics.await_using_statements_cannot_be_used_inside_a_class_static_block; - error2(node, message); - hasError = true; - } - else if (!(node.flags & 65536 /* AwaitContext */)) { - if (isInTopLevelContext(node)) { - var sourceFile = getSourceFileOfNode(node); - if (!hasParseDiagnostics(sourceFile)) { - var span = void 0; - if (!isEffectiveExternalModule(sourceFile, compilerOptions)) { - span !== null && span !== void 0 ? span : (span = getSpanOfTokenAtPosition(sourceFile, node.pos)); - var message = isAwaitExpression(node) ? Diagnostics.await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module : Diagnostics.await_using_statements_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module; - var diagnostic = createFileDiagnostic(sourceFile, span.start, span.length, message); - diagnostics.add(diagnostic); - hasError = true; - } - switch (moduleKind) { - case 100 /* Node16 */: - case 199 /* NodeNext */: - if (sourceFile.impliedNodeFormat === 1 /* CommonJS */) { - span !== null && span !== void 0 ? span : (span = getSpanOfTokenAtPosition(sourceFile, node.pos)); - diagnostics.add(createFileDiagnostic(sourceFile, span.start, span.length, Diagnostics.The_current_file_is_a_CommonJS_module_and_cannot_use_await_at_the_top_level)); - hasError = true; - break; - } - case 7 /* ES2022 */: - case 99 /* ESNext */: - case 4 /* System */: - if (languageVersion >= 4 /* ES2017 */) { - break; - } - default: - span !== null && span !== void 0 ? span : (span = getSpanOfTokenAtPosition(sourceFile, node.pos)); - var message = isAwaitExpression(node) ? Diagnostics.Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_or_nodenext_and_the_target_option_is_set_to_es2017_or_higher : Diagnostics.Top_level_await_using_statements_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_or_nodenext_and_the_target_option_is_set_to_es2017_or_higher; - diagnostics.add(createFileDiagnostic(sourceFile, span.start, span.length, message)); - hasError = true; - break; - } - } - } - else { - var sourceFile = getSourceFileOfNode(node); - if (!hasParseDiagnostics(sourceFile)) { - var span = getSpanOfTokenAtPosition(sourceFile, node.pos); - var message = isAwaitExpression(node) ? Diagnostics.await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules : Diagnostics.await_using_statements_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules; - var diagnostic = createFileDiagnostic(sourceFile, span.start, span.length, message); - if (container && container.kind !== 176 /* Constructor */ && (getFunctionFlags(container) & 2 /* Async */) === 0) { - var relatedInfo = createDiagnosticForNode(container, Diagnostics.Did_you_mean_to_mark_this_function_as_async); - addRelatedInfo(diagnostic, relatedInfo); - } - diagnostics.add(diagnostic); - hasError = true; - } - } - } - if (isAwaitExpression(node) && isInParameterInitializerBeforeContainingFunction(node)) { - error2(node, Diagnostics.await_expressions_cannot_be_used_in_a_parameter_initializer); - hasError = true; - } - return hasError; - } - function checkAwaitExpression(node) { - addLazyDiagnostic(function () { return checkAwaitGrammar(node); }); - var operandType = checkExpression(node.expression); - var awaitedType = checkAwaitedType(operandType, - /*withAlias*/ - true, node, Diagnostics.Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member); - if (awaitedType === operandType && !isErrorType(awaitedType) && !(operandType.flags & 3 /* AnyOrUnknown */)) { - addErrorOrSuggestion( - /*isError*/ - false, createDiagnosticForNode(node, Diagnostics.await_has_no_effect_on_the_type_of_this_expression)); - } - return awaitedType; - } - function checkPrefixUnaryExpression(node) { - var operandType = checkExpression(node.operand); - if (operandType === silentNeverType) { - return silentNeverType; - } - switch (node.operand.kind) { - case 9 /* NumericLiteral */: - switch (node.operator) { - case 41 /* MinusToken */: - return getFreshTypeOfLiteralType(getNumberLiteralType(-node.operand.text)); - case 40 /* PlusToken */: - return getFreshTypeOfLiteralType(getNumberLiteralType(+node.operand.text)); - } - break; - case 10 /* BigIntLiteral */: - if (node.operator === 41 /* MinusToken */) { - return getFreshTypeOfLiteralType(getBigIntLiteralType({ - negative: true, - base10Value: parsePseudoBigInt(node.operand.text) - })); - } - } - switch (node.operator) { - case 40 /* PlusToken */: - case 41 /* MinusToken */: - case 55 /* TildeToken */: - checkNonNullType(operandType, node.operand); - if (maybeTypeOfKindConsideringBaseConstraint(operandType, 12288 /* ESSymbolLike */)) { - error2(node.operand, Diagnostics.The_0_operator_cannot_be_applied_to_type_symbol, tokenToString(node.operator)); - } - if (node.operator === 40 /* PlusToken */) { - if (maybeTypeOfKindConsideringBaseConstraint(operandType, 2112 /* BigIntLike */)) { - error2(node.operand, Diagnostics.Operator_0_cannot_be_applied_to_type_1, tokenToString(node.operator), typeToString(getBaseTypeOfLiteralType(operandType))); - } - return numberType; - } - return getUnaryResultType(operandType); - case 54 /* ExclamationToken */: - checkTruthinessOfType(operandType, node.operand); - var facts = getTypeFacts(operandType) & (4194304 /* Truthy */ | 8388608 /* Falsy */); - return facts === 4194304 /* Truthy */ ? falseType : facts === 8388608 /* Falsy */ ? trueType : booleanType; - case 46 /* PlusPlusToken */: - case 47 /* MinusMinusToken */: - var ok = checkArithmeticOperandType(node.operand, checkNonNullType(operandType, node.operand), Diagnostics.An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type); - if (ok) { - checkReferenceExpression(node.operand, Diagnostics.The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access, Diagnostics.The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access); - } - return getUnaryResultType(operandType); - } - return errorType; - } - function checkPostfixUnaryExpression(node) { - var operandType = checkExpression(node.operand); - if (operandType === silentNeverType) { - return silentNeverType; - } - var ok = checkArithmeticOperandType(node.operand, checkNonNullType(operandType, node.operand), Diagnostics.An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type); - if (ok) { - checkReferenceExpression(node.operand, Diagnostics.The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access, Diagnostics.The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access); - } - return getUnaryResultType(operandType); - } - function getUnaryResultType(operandType) { - if (maybeTypeOfKind(operandType, 2112 /* BigIntLike */)) { - return isTypeAssignableToKind(operandType, 3 /* AnyOrUnknown */) || maybeTypeOfKind(operandType, 296 /* NumberLike */) ? numberOrBigIntType : bigintType; - } - return numberType; - } - function maybeTypeOfKindConsideringBaseConstraint(type, kind) { - if (maybeTypeOfKind(type, kind)) { - return true; - } - var baseConstraint = getBaseConstraintOrType(type); - return !!baseConstraint && maybeTypeOfKind(baseConstraint, kind); - } - function maybeTypeOfKind(type, kind) { - var e_350, _t; - if (type.flags & kind) { - return true; - } - if (type.flags & 3145728 /* UnionOrIntersection */) { - var types = type.types; - try { - for (var types_19 = __values(types), types_19_1 = types_19.next(); !types_19_1.done; types_19_1 = types_19.next()) { - var t = types_19_1.value; - if (maybeTypeOfKind(t, kind)) { - return true; - } - } - } - catch (e_350_1) { e_350 = { error: e_350_1 }; } - finally { - try { - if (types_19_1 && !types_19_1.done && (_t = types_19.return)) _t.call(types_19); - } - finally { if (e_350) throw e_350.error; } - } - } - return false; - } - function isTypeAssignableToKind(source, kind, strict) { - if (source.flags & kind) { - return true; - } - if (strict && source.flags & (3 /* AnyOrUnknown */ | 16384 /* Void */ | 32768 /* Undefined */ | 65536 /* Null */)) { - return false; - } - return !!(kind & 296 /* NumberLike */) && isTypeAssignableTo(source, numberType) || !!(kind & 2112 /* BigIntLike */) && isTypeAssignableTo(source, bigintType) || !!(kind & 402653316 /* StringLike */) && isTypeAssignableTo(source, stringType) || !!(kind & 528 /* BooleanLike */) && isTypeAssignableTo(source, booleanType) || !!(kind & 16384 /* Void */) && isTypeAssignableTo(source, voidType) || !!(kind & 131072 /* Never */) && isTypeAssignableTo(source, neverType) || !!(kind & 65536 /* Null */) && isTypeAssignableTo(source, nullType) || !!(kind & 32768 /* Undefined */) && isTypeAssignableTo(source, undefinedType) || !!(kind & 4096 /* ESSymbol */) && isTypeAssignableTo(source, esSymbolType) || !!(kind & 67108864 /* NonPrimitive */) && isTypeAssignableTo(source, nonPrimitiveType); - } - function allTypesAssignableToKind(source, kind, strict) { - return source.flags & 1048576 /* Union */ ? every(source.types, function (subType) { return allTypesAssignableToKind(subType, kind, strict); }) : isTypeAssignableToKind(source, kind, strict); - } - function isConstEnumObjectType(type) { - return !!(getObjectFlags(type) & 16 /* Anonymous */) && !!type.symbol && isConstEnumSymbol(type.symbol); - } - function isConstEnumSymbol(symbol) { - return (symbol.flags & 128 /* ConstEnum */) !== 0; - } - function checkInstanceOfExpression(left, right, leftType, rightType) { - if (leftType === silentNeverType || rightType === silentNeverType) { - return silentNeverType; - } - if (!isTypeAny(leftType) && allTypesAssignableToKind(leftType, 402784252 /* Primitive */)) { - error2(left, Diagnostics.The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter); - } - if (!(isTypeAny(rightType) || typeHasCallOrConstructSignatures(rightType) || isTypeSubtypeOf(rightType, globalFunctionType))) { - error2(right, Diagnostics.The_right_hand_side_of_an_instanceof_expression_must_be_of_type_any_or_of_a_type_assignable_to_the_Function_interface_type); - } - return booleanType; - } - function hasEmptyObjectIntersection(type) { - return someType(type, function (t) { return t === unknownEmptyObjectType || !!(t.flags & 2097152 /* Intersection */) && isEmptyAnonymousObjectType(getBaseConstraintOrType(t)); }); - } - function checkInExpression(left, right, leftType, rightType) { - if (leftType === silentNeverType || rightType === silentNeverType) { - return silentNeverType; - } - if (isPrivateIdentifier(left)) { - if (languageVersion < 99 /* ESNext */) { - checkExternalEmitHelpers(left, 2097152 /* ClassPrivateFieldIn */); - } - if (!getNodeLinks(left).resolvedSymbol && getContainingClass(left)) { - var isUncheckedJS = isUncheckedJSSuggestion(left, rightType.symbol, - /*excludeClasses*/ - true); - reportNonexistentProperty(left, rightType, isUncheckedJS); - } - } - else { - checkTypeAssignableTo(checkNonNullType(leftType, left), stringNumberSymbolType, left); - } - if (checkTypeAssignableTo(checkNonNullType(rightType, right), nonPrimitiveType, right)) { - if (hasEmptyObjectIntersection(rightType)) { - error2(right, Diagnostics.Type_0_may_represent_a_primitive_value_which_is_not_permitted_as_the_right_operand_of_the_in_operator, typeToString(rightType)); - } - } - return booleanType; - } - function checkObjectLiteralAssignment(node, sourceType, rightIsThis) { - var properties = node.properties; - if (strictNullChecks && properties.length === 0) { - return checkNonNullType(sourceType, node); - } - for (var i = 0; i < properties.length; i++) { - checkObjectLiteralDestructuringPropertyAssignment(node, sourceType, i, properties, rightIsThis); - } - return sourceType; - } - function checkObjectLiteralDestructuringPropertyAssignment(node, objectLiteralType, propertyIndex, allProperties, rightIsThis) { - var e_351, _t; - if (rightIsThis === void 0) { rightIsThis = false; } - var properties = node.properties; - var property = properties[propertyIndex]; - if (property.kind === 303 /* PropertyAssignment */ || property.kind === 304 /* ShorthandPropertyAssignment */) { - var name_50 = property.name; - var exprType = getLiteralTypeFromPropertyName(name_50); - if (isTypeUsableAsPropertyName(exprType)) { - var text = getPropertyNameFromType(exprType); - var prop = getPropertyOfType(objectLiteralType, text); - if (prop) { - markPropertyAsReferenced(prop, property, rightIsThis); - checkPropertyAccessibility(property, - /*isSuper*/ - false, - /*writing*/ - true, objectLiteralType, prop); - } - } - var elementType = getIndexedAccessType(objectLiteralType, exprType, 32 /* ExpressionPosition */, name_50); - var type = getFlowTypeOfDestructuring(property, elementType); - return checkDestructuringAssignment(property.kind === 304 /* ShorthandPropertyAssignment */ ? property : property.initializer, type); - } - else if (property.kind === 305 /* SpreadAssignment */) { - if (propertyIndex < properties.length - 1) { - error2(property, Diagnostics.A_rest_element_must_be_last_in_a_destructuring_pattern); - } - else { - if (languageVersion < 99 /* ESNext */) { - checkExternalEmitHelpers(property, 4 /* Rest */); - } - var nonRestNames = []; - if (allProperties) { - try { - for (var allProperties_1 = __values(allProperties), allProperties_1_1 = allProperties_1.next(); !allProperties_1_1.done; allProperties_1_1 = allProperties_1.next()) { - var otherProperty = allProperties_1_1.value; - if (!isSpreadAssignment(otherProperty)) { - nonRestNames.push(otherProperty.name); - } - } - } - catch (e_351_1) { e_351 = { error: e_351_1 }; } - finally { - try { - if (allProperties_1_1 && !allProperties_1_1.done && (_t = allProperties_1.return)) _t.call(allProperties_1); - } - finally { if (e_351) throw e_351.error; } - } - } - var type = getRestType(objectLiteralType, nonRestNames, objectLiteralType.symbol); - checkGrammarForDisallowedTrailingComma(allProperties, Diagnostics.A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma); - return checkDestructuringAssignment(property.expression, type); - } - } - else { - error2(property, Diagnostics.Property_assignment_expected); - } - } - function checkArrayLiteralAssignment(node, sourceType, checkMode) { - var elements = node.elements; - if (languageVersion < 2 /* ES2015 */ && compilerOptions.downlevelIteration) { - checkExternalEmitHelpers(node, 512 /* Read */); - } - var possiblyOutOfBoundsType = checkIteratedTypeOrElementType(65 /* Destructuring */ | 128 /* PossiblyOutOfBounds */, sourceType, undefinedType, node) || errorType; - var inBoundsType = compilerOptions.noUncheckedIndexedAccess ? void 0 : possiblyOutOfBoundsType; - for (var i = 0; i < elements.length; i++) { - var type = possiblyOutOfBoundsType; - if (node.elements[i].kind === 230 /* SpreadElement */) { - type = inBoundsType = inBoundsType !== null && inBoundsType !== void 0 ? inBoundsType : (checkIteratedTypeOrElementType(65 /* Destructuring */, sourceType, undefinedType, node) || errorType); - } - checkArrayLiteralDestructuringElementAssignment(node, sourceType, i, type, checkMode); - } - return sourceType; - } - function checkArrayLiteralDestructuringElementAssignment(node, sourceType, elementIndex, elementType, checkMode) { - var elements = node.elements; - var element = elements[elementIndex]; - if (element.kind !== 232 /* OmittedExpression */) { - if (element.kind !== 230 /* SpreadElement */) { - var indexType = getNumberLiteralType(elementIndex); - if (isArrayLikeType(sourceType)) { - var accessFlags = 32 /* ExpressionPosition */ | (hasDefaultValue(element) ? 16 /* NoTupleBoundsCheck */ : 0); - var elementType2 = getIndexedAccessTypeOrUndefined(sourceType, indexType, accessFlags, createSyntheticExpression(element, indexType)) || errorType; - var assignedType = hasDefaultValue(element) ? getTypeWithFacts(elementType2, 524288 /* NEUndefined */) : elementType2; - var type = getFlowTypeOfDestructuring(element, assignedType); - return checkDestructuringAssignment(element, type, checkMode); - } - return checkDestructuringAssignment(element, elementType, checkMode); - } - if (elementIndex < elements.length - 1) { - error2(element, Diagnostics.A_rest_element_must_be_last_in_a_destructuring_pattern); - } - else { - var restExpression = element.expression; - if (restExpression.kind === 226 /* BinaryExpression */ && restExpression.operatorToken.kind === 64 /* EqualsToken */) { - error2(restExpression.operatorToken, Diagnostics.A_rest_element_cannot_have_an_initializer); - } - else { - checkGrammarForDisallowedTrailingComma(node.elements, Diagnostics.A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma); - var type = everyType(sourceType, isTupleType) ? mapType(sourceType, function (t) { return sliceTupleType(t, elementIndex); }) : createArrayType(elementType); - return checkDestructuringAssignment(restExpression, type, checkMode); - } - } - } - return void 0; - } - function checkDestructuringAssignment(exprOrAssignment, sourceType, checkMode, rightIsThis) { - var target; - if (exprOrAssignment.kind === 304 /* ShorthandPropertyAssignment */) { - var prop = exprOrAssignment; - if (prop.objectAssignmentInitializer) { - if (strictNullChecks && !(getTypeFacts(checkExpression(prop.objectAssignmentInitializer)) & 16777216 /* IsUndefined */)) { - sourceType = getTypeWithFacts(sourceType, 524288 /* NEUndefined */); - } - checkBinaryLikeExpression(prop.name, prop.equalsToken, prop.objectAssignmentInitializer, checkMode); - } - target = exprOrAssignment.name; - } - else { - target = exprOrAssignment; - } - if (target.kind === 226 /* BinaryExpression */ && target.operatorToken.kind === 64 /* EqualsToken */) { - checkBinaryExpression(target, checkMode); - target = target.left; - if (strictNullChecks) { - sourceType = getTypeWithFacts(sourceType, 524288 /* NEUndefined */); - } - } - if (target.kind === 210 /* ObjectLiteralExpression */) { - return checkObjectLiteralAssignment(target, sourceType, rightIsThis); - } - if (target.kind === 209 /* ArrayLiteralExpression */) { - return checkArrayLiteralAssignment(target, sourceType, checkMode); - } - return checkReferenceAssignment(target, sourceType, checkMode); - } - function checkReferenceAssignment(target, sourceType, checkMode) { - var targetType = checkExpression(target, checkMode); - var error3 = target.parent.kind === 305 /* SpreadAssignment */ ? Diagnostics.The_target_of_an_object_rest_assignment_must_be_a_variable_or_a_property_access : Diagnostics.The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access; - var optionalError = target.parent.kind === 305 /* SpreadAssignment */ ? Diagnostics.The_target_of_an_object_rest_assignment_may_not_be_an_optional_property_access : Diagnostics.The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access; - if (checkReferenceExpression(target, error3, optionalError)) { - checkTypeAssignableToAndOptionallyElaborate(sourceType, targetType, target, target); - } - if (isPrivateIdentifierPropertyAccessExpression(target)) { - checkExternalEmitHelpers(target.parent, 1048576 /* ClassPrivateFieldSet */); - } - return sourceType; - } - function isSideEffectFree(node) { - node = skipParentheses(node); - switch (node.kind) { - case 80 /* Identifier */: - case 11 /* StringLiteral */: - case 14 /* RegularExpressionLiteral */: - case 215 /* TaggedTemplateExpression */: - case 228 /* TemplateExpression */: - case 15 /* NoSubstitutionTemplateLiteral */: - case 9 /* NumericLiteral */: - case 10 /* BigIntLiteral */: - case 112 /* TrueKeyword */: - case 97 /* FalseKeyword */: - case 106 /* NullKeyword */: - case 157 /* UndefinedKeyword */: - case 218 /* FunctionExpression */: - case 231 /* ClassExpression */: - case 219 /* ArrowFunction */: - case 209 /* ArrayLiteralExpression */: - case 210 /* ObjectLiteralExpression */: - case 221 /* TypeOfExpression */: - case 235 /* NonNullExpression */: - case 285 /* JsxSelfClosingElement */: - case 284 /* JsxElement */: - return true; - case 227 /* ConditionalExpression */: - return isSideEffectFree(node.whenTrue) && isSideEffectFree(node.whenFalse); - case 226 /* BinaryExpression */: - if (isAssignmentOperator(node.operatorToken.kind)) { - return false; - } - return isSideEffectFree(node.left) && isSideEffectFree(node.right); - case 224 /* PrefixUnaryExpression */: - case 225 /* PostfixUnaryExpression */: - switch (node.operator) { - case 54 /* ExclamationToken */: - case 40 /* PlusToken */: - case 41 /* MinusToken */: - case 55 /* TildeToken */: - return true; - } - return false; - case 222 /* VoidExpression */: - case 216 /* TypeAssertionExpression */: - case 234 /* AsExpression */: - default: - return false; - } - } - function isTypeEqualityComparableTo(source, target) { - return (target.flags & 98304 /* Nullable */) !== 0 || isTypeComparableTo(source, target); - } - function createCheckBinaryExpression() { - var trampoline = createBinaryExpressionTrampoline(onEnter, onLeft, onOperator, onRight, onExit, foldState); - return function (node, checkMode) { - var result = trampoline(node, checkMode); - Debug.assertIsDefined(result); - return result; - }; - function onEnter(node, state, checkMode) { - if (state) { - state.stackIndex++; - state.skip = false; - setLeftType(state, - /*type*/ - void 0); - setLastResult(state, - /*type*/ - void 0); - } - else { - state = { - checkMode: checkMode, - skip: false, - stackIndex: 0, - typeStack: [void 0, void 0] - }; - } - if (isInJSFile(node) && getAssignedExpandoInitializer(node)) { - state.skip = true; - setLastResult(state, checkExpression(node.right, checkMode)); - return state; - } - checkGrammarNullishCoalesceWithLogicalExpression(node); - var operator = node.operatorToken.kind; - if (operator === 64 /* EqualsToken */ && (node.left.kind === 210 /* ObjectLiteralExpression */ || node.left.kind === 209 /* ArrayLiteralExpression */)) { - state.skip = true; - setLastResult(state, checkDestructuringAssignment(node.left, checkExpression(node.right, checkMode), checkMode, node.right.kind === 110 /* ThisKeyword */)); - return state; - } - return state; - } - function onLeft(left, state, _node) { - if (!state.skip) { - return maybeCheckExpression(state, left); - } - } - function onOperator(operatorToken, state, node) { - if (!state.skip) { - var leftType = getLastResult(state); - Debug.assertIsDefined(leftType); - setLeftType(state, leftType); - setLastResult(state, - /*type*/ - void 0); - var operator = operatorToken.kind; - if (isLogicalOrCoalescingBinaryOperator(operator)) { - var parent2 = node.parent; - while (parent2.kind === 217 /* ParenthesizedExpression */ || isLogicalOrCoalescingBinaryExpression(parent2)) { - parent2 = parent2.parent; - } - if (operator === 56 /* AmpersandAmpersandToken */ || isIfStatement(parent2)) { - checkTestingKnownTruthyCallableOrAwaitableType(node.left, leftType, isIfStatement(parent2) ? parent2.thenStatement : void 0); - } - checkTruthinessOfType(leftType, node.left); - } - } - } - function onRight(right, state, _node) { - if (!state.skip) { - return maybeCheckExpression(state, right); - } - } - function onExit(node, state) { - var result; - if (state.skip) { - result = getLastResult(state); - } - else { - var leftType = getLeftType(state); - Debug.assertIsDefined(leftType); - var rightType = getLastResult(state); - Debug.assertIsDefined(rightType); - result = checkBinaryLikeExpressionWorker(node.left, node.operatorToken, node.right, leftType, rightType, state.checkMode, node); - } - state.skip = false; - setLeftType(state, - /*type*/ - void 0); - setLastResult(state, - /*type*/ - void 0); - state.stackIndex--; - return result; - } - function foldState(state, result, _side) { - setLastResult(state, result); - return state; - } - function maybeCheckExpression(state, node) { - if (isBinaryExpression(node)) { - return node; - } - setLastResult(state, checkExpression(node, state.checkMode)); - } - function getLeftType(state) { - return state.typeStack[state.stackIndex]; - } - function setLeftType(state, type) { - state.typeStack[state.stackIndex] = type; - } - function getLastResult(state) { - return state.typeStack[state.stackIndex + 1]; - } - function setLastResult(state, type) { - state.typeStack[state.stackIndex + 1] = type; - } - } - function checkGrammarNullishCoalesceWithLogicalExpression(node) { - var left = node.left, operatorToken = node.operatorToken, right = node.right; - if (operatorToken.kind === 61 /* QuestionQuestionToken */) { - if (isBinaryExpression(left) && (left.operatorToken.kind === 57 /* BarBarToken */ || left.operatorToken.kind === 56 /* AmpersandAmpersandToken */)) { - grammarErrorOnNode(left, Diagnostics._0_and_1_operations_cannot_be_mixed_without_parentheses, tokenToString(left.operatorToken.kind), tokenToString(operatorToken.kind)); - } - if (isBinaryExpression(right) && (right.operatorToken.kind === 57 /* BarBarToken */ || right.operatorToken.kind === 56 /* AmpersandAmpersandToken */)) { - grammarErrorOnNode(right, Diagnostics._0_and_1_operations_cannot_be_mixed_without_parentheses, tokenToString(right.operatorToken.kind), tokenToString(operatorToken.kind)); - } - } - } - function checkBinaryLikeExpression(left, operatorToken, right, checkMode, errorNode) { - var operator = operatorToken.kind; - if (operator === 64 /* EqualsToken */ && (left.kind === 210 /* ObjectLiteralExpression */ || left.kind === 209 /* ArrayLiteralExpression */)) { - return checkDestructuringAssignment(left, checkExpression(right, checkMode), checkMode, right.kind === 110 /* ThisKeyword */); - } - var leftType; - if (isLogicalOrCoalescingBinaryOperator(operator)) { - leftType = checkTruthinessExpression(left, checkMode); - } - else { - leftType = checkExpression(left, checkMode); - } - var rightType = checkExpression(right, checkMode); - return checkBinaryLikeExpressionWorker(left, operatorToken, right, leftType, rightType, checkMode, errorNode); - } - function checkBinaryLikeExpressionWorker(left, operatorToken, right, leftType, rightType, checkMode, errorNode) { - var operator = operatorToken.kind; - switch (operator) { - case 42 /* AsteriskToken */: - case 43 /* AsteriskAsteriskToken */: - case 67 /* AsteriskEqualsToken */: - case 68 /* AsteriskAsteriskEqualsToken */: - case 44 /* SlashToken */: - case 69 /* SlashEqualsToken */: - case 45 /* PercentToken */: - case 70 /* PercentEqualsToken */: - case 41 /* MinusToken */: - case 66 /* MinusEqualsToken */: - case 48 /* LessThanLessThanToken */: - case 71 /* LessThanLessThanEqualsToken */: - case 49 /* GreaterThanGreaterThanToken */: - case 72 /* GreaterThanGreaterThanEqualsToken */: - case 50 /* GreaterThanGreaterThanGreaterThanToken */: - case 73 /* GreaterThanGreaterThanGreaterThanEqualsToken */: - case 52 /* BarToken */: - case 75 /* BarEqualsToken */: - case 53 /* CaretToken */: - case 79 /* CaretEqualsToken */: - case 51 /* AmpersandToken */: - case 74 /* AmpersandEqualsToken */: - if (leftType === silentNeverType || rightType === silentNeverType) { - return silentNeverType; - } - leftType = checkNonNullType(leftType, left); - rightType = checkNonNullType(rightType, right); - var suggestedOperator = void 0; - if (leftType.flags & 528 /* BooleanLike */ && rightType.flags & 528 /* BooleanLike */ && (suggestedOperator = getSuggestedBooleanOperator(operatorToken.kind)) !== void 0) { - error2(errorNode || operatorToken, Diagnostics.The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead, tokenToString(operatorToken.kind), tokenToString(suggestedOperator)); - return numberType; - } - else { - var leftOk = checkArithmeticOperandType(left, leftType, Diagnostics.The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type, - /*isAwaitValid*/ - true); - var rightOk = checkArithmeticOperandType(right, rightType, Diagnostics.The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type, - /*isAwaitValid*/ - true); - var resultType2 = void 0; - if (isTypeAssignableToKind(leftType, 3 /* AnyOrUnknown */) && isTypeAssignableToKind(rightType, 3 /* AnyOrUnknown */) || // Or, if neither could be bigint, implicit coercion results in a number result - !(maybeTypeOfKind(leftType, 2112 /* BigIntLike */) || maybeTypeOfKind(rightType, 2112 /* BigIntLike */))) { - resultType2 = numberType; - } - else if (bothAreBigIntLike(leftType, rightType)) { - switch (operator) { - case 50 /* GreaterThanGreaterThanGreaterThanToken */: - case 73 /* GreaterThanGreaterThanGreaterThanEqualsToken */: - reportOperatorError(); - break; - case 43 /* AsteriskAsteriskToken */: - case 68 /* AsteriskAsteriskEqualsToken */: - if (languageVersion < 3 /* ES2016 */) { - error2(errorNode, Diagnostics.Exponentiation_cannot_be_performed_on_bigint_values_unless_the_target_option_is_set_to_es2016_or_later); - } - } - resultType2 = bigintType; - } - else { - reportOperatorError(bothAreBigIntLike); - resultType2 = errorType; - } - if (leftOk && rightOk) { - checkAssignmentOperator(resultType2); - } - return resultType2; - } - case 40 /* PlusToken */: - case 65 /* PlusEqualsToken */: - if (leftType === silentNeverType || rightType === silentNeverType) { - return silentNeverType; - } - if (!isTypeAssignableToKind(leftType, 402653316 /* StringLike */) && !isTypeAssignableToKind(rightType, 402653316 /* StringLike */)) { - leftType = checkNonNullType(leftType, left); - rightType = checkNonNullType(rightType, right); - } - var resultType = void 0; - if (isTypeAssignableToKind(leftType, 296 /* NumberLike */, - /*strict*/ - true) && isTypeAssignableToKind(rightType, 296 /* NumberLike */, - /*strict*/ - true)) { - resultType = numberType; - } - else if (isTypeAssignableToKind(leftType, 2112 /* BigIntLike */, - /*strict*/ - true) && isTypeAssignableToKind(rightType, 2112 /* BigIntLike */, - /*strict*/ - true)) { - resultType = bigintType; - } - else if (isTypeAssignableToKind(leftType, 402653316 /* StringLike */, - /*strict*/ - true) || isTypeAssignableToKind(rightType, 402653316 /* StringLike */, - /*strict*/ - true)) { - resultType = stringType; - } - else if (isTypeAny(leftType) || isTypeAny(rightType)) { - resultType = isErrorType(leftType) || isErrorType(rightType) ? errorType : anyType; - } - if (resultType && !checkForDisallowedESSymbolOperand(operator)) { - return resultType; - } - if (!resultType) { - var closeEnoughKind_1 = 296 /* NumberLike */ | 2112 /* BigIntLike */ | 402653316 /* StringLike */ | 3 /* AnyOrUnknown */; - reportOperatorError(function (left2, right2) { return isTypeAssignableToKind(left2, closeEnoughKind_1) && isTypeAssignableToKind(right2, closeEnoughKind_1); }); - return anyType; - } - if (operator === 65 /* PlusEqualsToken */) { - checkAssignmentOperator(resultType); - } - return resultType; - case 30 /* LessThanToken */: - case 32 /* GreaterThanToken */: - case 33 /* LessThanEqualsToken */: - case 34 /* GreaterThanEqualsToken */: - if (checkForDisallowedESSymbolOperand(operator)) { - leftType = getBaseTypeOfLiteralTypeForComparison(checkNonNullType(leftType, left)); - rightType = getBaseTypeOfLiteralTypeForComparison(checkNonNullType(rightType, right)); - reportOperatorErrorUnless(function (left2, right2) { - if (isTypeAny(left2) || isTypeAny(right2)) { - return true; - } - var leftAssignableToNumber = isTypeAssignableTo(left2, numberOrBigIntType); - var rightAssignableToNumber = isTypeAssignableTo(right2, numberOrBigIntType); - return leftAssignableToNumber && rightAssignableToNumber || !leftAssignableToNumber && !rightAssignableToNumber && areTypesComparable(left2, right2); - }); - } - return booleanType; - case 35 /* EqualsEqualsToken */: - case 36 /* ExclamationEqualsToken */: - case 37 /* EqualsEqualsEqualsToken */: - case 38 /* ExclamationEqualsEqualsToken */: - if (!(checkMode && checkMode & 128 /* TypeOnly */)) { - if ((isLiteralExpressionOfObject(left) || isLiteralExpressionOfObject(right)) && // only report for === and !== in JS, not == or != - (!isInJSFile(left) || (operator === 37 /* EqualsEqualsEqualsToken */ || operator === 38 /* ExclamationEqualsEqualsToken */))) { - var eqType = operator === 35 /* EqualsEqualsToken */ || operator === 37 /* EqualsEqualsEqualsToken */; - error2(errorNode, Diagnostics.This_condition_will_always_return_0_since_JavaScript_compares_objects_by_reference_not_value, eqType ? "false" : "true"); - } - checkNaNEquality(errorNode, operator, left, right); - reportOperatorErrorUnless(function (left2, right2) { return isTypeEqualityComparableTo(left2, right2) || isTypeEqualityComparableTo(right2, left2); }); - } - return booleanType; - case 104 /* InstanceOfKeyword */: - return checkInstanceOfExpression(left, right, leftType, rightType); - case 103 /* InKeyword */: - return checkInExpression(left, right, leftType, rightType); - case 56 /* AmpersandAmpersandToken */: - case 77 /* AmpersandAmpersandEqualsToken */: { - var resultType2 = getTypeFacts(leftType) & 4194304 /* Truthy */ ? getUnionType([extractDefinitelyFalsyTypes(strictNullChecks ? leftType : getBaseTypeOfLiteralType(rightType)), rightType]) : leftType; - if (operator === 77 /* AmpersandAmpersandEqualsToken */) { - checkAssignmentOperator(rightType); - } - return resultType2; - } - case 57 /* BarBarToken */: - case 76 /* BarBarEqualsToken */: { - var resultType2 = getTypeFacts(leftType) & 8388608 /* Falsy */ ? getUnionType([getNonNullableType(removeDefinitelyFalsyTypes(leftType)), rightType], 2 /* Subtype */) : leftType; - if (operator === 76 /* BarBarEqualsToken */) { - checkAssignmentOperator(rightType); - } - return resultType2; - } - case 61 /* QuestionQuestionToken */: - case 78 /* QuestionQuestionEqualsToken */: { - var resultType2 = getTypeFacts(leftType) & 262144 /* EQUndefinedOrNull */ ? getUnionType([getNonNullableType(leftType), rightType], 2 /* Subtype */) : leftType; - if (operator === 78 /* QuestionQuestionEqualsToken */) { - checkAssignmentOperator(rightType); - } - return resultType2; - } - case 64 /* EqualsToken */: - var declKind = isBinaryExpression(left.parent) ? getAssignmentDeclarationKind(left.parent) : 0 /* None */; - checkAssignmentDeclaration(declKind, rightType); - if (isAssignmentDeclaration2(declKind)) { - if (!(rightType.flags & 524288 /* Object */) || declKind !== 2 /* ModuleExports */ && declKind !== 6 /* Prototype */ && !isEmptyObjectType(rightType) && !isFunctionObjectType(rightType) && !(getObjectFlags(rightType) & 1 /* Class */)) { - checkAssignmentOperator(rightType); - } - return leftType; - } - else { - checkAssignmentOperator(rightType); - return rightType; - } - case 28 /* CommaToken */: - if (!compilerOptions.allowUnreachableCode && isSideEffectFree(left) && !isIndirectCall(left.parent)) { - var sf = getSourceFileOfNode(left); - var sourceText = sf.text; - var start2_1 = skipTrivia(sourceText, left.pos); - var isInDiag2657 = sf.parseDiagnostics.some(function (diag2) { - if (diag2.code !== Diagnostics.JSX_expressions_must_have_one_parent_element.code) - return false; - return textSpanContainsPosition(diag2, start2_1); - }); - if (!isInDiag2657) - error2(left, Diagnostics.Left_side_of_comma_operator_is_unused_and_has_no_side_effects); - } - return rightType; - default: - return Debug.fail(); - } - function bothAreBigIntLike(left2, right2) { - return isTypeAssignableToKind(left2, 2112 /* BigIntLike */) && isTypeAssignableToKind(right2, 2112 /* BigIntLike */); - } - function checkAssignmentDeclaration(kind, rightType2) { - var e_352, _t; - if (kind === 2 /* ModuleExports */) { - try { - for (var _u = __values(getPropertiesOfObjectType(rightType2)), _v = _u.next(); !_v.done; _v = _u.next()) { - var prop = _v.value; - var propType = getTypeOfSymbol(prop); - if (propType.symbol && propType.symbol.flags & 32 /* Class */) { - var name_51 = prop.escapedName; - var symbol = resolveName(prop.valueDeclaration, name_51, 788968 /* Type */, - /*nameNotFoundMessage*/ - void 0, name_51, - /*isUse*/ - false); - if ((symbol == null ? void 0 : symbol.declarations) && symbol.declarations.some(isJSDocTypedefTag)) { - addDuplicateDeclarationErrorsForSymbols(symbol, Diagnostics.Duplicate_identifier_0, unescapeLeadingUnderscores(name_51), prop); - addDuplicateDeclarationErrorsForSymbols(prop, Diagnostics.Duplicate_identifier_0, unescapeLeadingUnderscores(name_51), symbol); - } - } - } - } - catch (e_352_1) { e_352 = { error: e_352_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_352) throw e_352.error; } - } - } - } - function isIndirectCall(node) { - return node.parent.kind === 217 /* ParenthesizedExpression */ && isNumericLiteral(node.left) && node.left.text === "0" && (isCallExpression(node.parent.parent) && node.parent.parent.expression === node.parent || node.parent.parent.kind === 215 /* TaggedTemplateExpression */) && // special-case for "eval" because it's the only non-access case where an indirect call actually affects behavior. - (isAccessExpression(node.right) || isIdentifier(node.right) && node.right.escapedText === "eval"); - } - function checkForDisallowedESSymbolOperand(operator2) { - var offendingSymbolOperand = maybeTypeOfKindConsideringBaseConstraint(leftType, 12288 /* ESSymbolLike */) ? left : maybeTypeOfKindConsideringBaseConstraint(rightType, 12288 /* ESSymbolLike */) ? right : void 0; - if (offendingSymbolOperand) { - error2(offendingSymbolOperand, Diagnostics.The_0_operator_cannot_be_applied_to_type_symbol, tokenToString(operator2)); - return false; - } - return true; - } - function getSuggestedBooleanOperator(operator2) { - switch (operator2) { - case 52 /* BarToken */: - case 75 /* BarEqualsToken */: - return 57 /* BarBarToken */; - case 53 /* CaretToken */: - case 79 /* CaretEqualsToken */: - return 38 /* ExclamationEqualsEqualsToken */; - case 51 /* AmpersandToken */: - case 74 /* AmpersandEqualsToken */: - return 56 /* AmpersandAmpersandToken */; - default: - return void 0; - } - } - function checkAssignmentOperator(valueType) { - if (isAssignmentOperator(operator)) { - addLazyDiagnostic(checkAssignmentOperatorWorker); - } - function checkAssignmentOperatorWorker() { - var assigneeType = leftType; - if (isCompoundAssignment(operatorToken.kind) && left.kind === 211 /* PropertyAccessExpression */) { - assigneeType = checkPropertyAccessExpression(left, - /*checkMode*/ - void 0, - /*writeOnly*/ - true); - } - if (checkReferenceExpression(left, Diagnostics.The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access, Diagnostics.The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access)) { - var headMessage = void 0; - if (exactOptionalPropertyTypes && isPropertyAccessExpression(left) && maybeTypeOfKind(valueType, 32768 /* Undefined */)) { - var target = getTypeOfPropertyOfType(getTypeOfExpression(left.expression), left.name.escapedText); - if (isExactOptionalPropertyMismatch(valueType, target)) { - headMessage = Diagnostics.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target; - } - } - checkTypeAssignableToAndOptionallyElaborate(valueType, assigneeType, left, right, headMessage); - } - } - } - function isAssignmentDeclaration2(kind) { - var _a; - switch (kind) { - case 2 /* ModuleExports */: - return true; - case 1 /* ExportsProperty */: - case 5 /* Property */: - case 6 /* Prototype */: - case 3 /* PrototypeProperty */: - case 4 /* ThisProperty */: - var symbol = getSymbolOfNode(left); - var init = getAssignedExpandoInitializer(right); - return !!init && isObjectLiteralExpression(init) && !!((_a = symbol == null ? void 0 : symbol.exports) == null ? void 0 : _a.size); - default: - return false; - } - } - function reportOperatorErrorUnless(typesAreCompatible) { - if (!typesAreCompatible(leftType, rightType)) { - reportOperatorError(typesAreCompatible); - return true; - } - return false; - } - function reportOperatorError(isRelated) { - var _t; - var wouldWorkWithAwait = false; - var errNode = errorNode || operatorToken; - if (isRelated) { - var awaitedLeftType = getAwaitedTypeNoAlias(leftType); - var awaitedRightType = getAwaitedTypeNoAlias(rightType); - wouldWorkWithAwait = !(awaitedLeftType === leftType && awaitedRightType === rightType) && !!(awaitedLeftType && awaitedRightType) && isRelated(awaitedLeftType, awaitedRightType); - } - var effectiveLeft = leftType; - var effectiveRight = rightType; - if (!wouldWorkWithAwait && isRelated) { - _t = __read(getBaseTypesIfUnrelated(leftType, rightType, isRelated), 2), effectiveLeft = _t[0], effectiveRight = _t[1]; - } - var _u = __read(getTypeNamesForErrorDisplay(effectiveLeft, effectiveRight), 2), leftStr = _u[0], rightStr = _u[1]; - if (!tryGiveBetterPrimaryError(errNode, wouldWorkWithAwait, leftStr, rightStr)) { - errorAndMaybeSuggestAwait(errNode, wouldWorkWithAwait, Diagnostics.Operator_0_cannot_be_applied_to_types_1_and_2, tokenToString(operatorToken.kind), leftStr, rightStr); - } - } - function tryGiveBetterPrimaryError(errNode, maybeMissingAwait, leftStr, rightStr) { - switch (operatorToken.kind) { - case 37 /* EqualsEqualsEqualsToken */: - case 35 /* EqualsEqualsToken */: - case 38 /* ExclamationEqualsEqualsToken */: - case 36 /* ExclamationEqualsToken */: - return errorAndMaybeSuggestAwait(errNode, maybeMissingAwait, Diagnostics.This_comparison_appears_to_be_unintentional_because_the_types_0_and_1_have_no_overlap, leftStr, rightStr); - default: - return void 0; - } - } - function checkNaNEquality(errorNode2, operator2, left2, right2) { - var isLeftNaN = isGlobalNaN(skipParentheses(left2)); - var isRightNaN = isGlobalNaN(skipParentheses(right2)); - if (isLeftNaN || isRightNaN) { - var err = error2(errorNode2, Diagnostics.This_condition_will_always_return_0, tokenToString(operator2 === 37 /* EqualsEqualsEqualsToken */ || operator2 === 35 /* EqualsEqualsToken */ ? 97 /* FalseKeyword */ : 112 /* TrueKeyword */)); - if (isLeftNaN && isRightNaN) - return; - var operatorString = operator2 === 38 /* ExclamationEqualsEqualsToken */ || operator2 === 36 /* ExclamationEqualsToken */ ? tokenToString(54 /* ExclamationToken */) : ""; - var location_3 = isLeftNaN ? right2 : left2; - var expression = skipParentheses(location_3); - addRelatedInfo(err, createDiagnosticForNode(location_3, Diagnostics.Did_you_mean_0, "".concat(operatorString, "Number.isNaN(").concat(isEntityNameExpression(expression) ? entityNameToString(expression) : "...", ")"))); - } - } - function isGlobalNaN(expr) { - if (isIdentifier(expr) && expr.escapedText === "NaN") { - var globalNaNSymbol = getGlobalNaNSymbol(); - return !!globalNaNSymbol && globalNaNSymbol === getResolvedSymbol(expr); - } - return false; - } - } - function getBaseTypesIfUnrelated(leftType, rightType, isRelated) { - var effectiveLeft = leftType; - var effectiveRight = rightType; - var leftBase = getBaseTypeOfLiteralType(leftType); - var rightBase = getBaseTypeOfLiteralType(rightType); - if (!isRelated(leftBase, rightBase)) { - effectiveLeft = leftBase; - effectiveRight = rightBase; - } - return [effectiveLeft, effectiveRight]; - } - function checkYieldExpression(node) { - addLazyDiagnostic(checkYieldExpressionGrammar); - var func = getContainingFunction(node); - if (!func) - return anyType; - var functionFlags = getFunctionFlags(func); - if (!(functionFlags & 1 /* Generator */)) { - return anyType; - } - var isAsync = (functionFlags & 2 /* Async */) !== 0; - if (node.asteriskToken) { - if (isAsync && languageVersion < 99 /* ESNext */) { - checkExternalEmitHelpers(node, 26624 /* AsyncDelegatorIncludes */); - } - if (!isAsync && languageVersion < 2 /* ES2015 */ && compilerOptions.downlevelIteration) { - checkExternalEmitHelpers(node, 256 /* Values */); - } - } - var returnType = getReturnTypeFromAnnotation(func); - var iterationTypes = returnType && getIterationTypesOfGeneratorFunctionReturnType(returnType, isAsync); - var signatureYieldType = iterationTypes && iterationTypes.yieldType || anyType; - var signatureNextType = iterationTypes && iterationTypes.nextType || anyType; - var resolvedSignatureNextType = isAsync ? getAwaitedType(signatureNextType) || anyType : signatureNextType; - var yieldExpressionType = node.expression ? checkExpression(node.expression) : undefinedWideningType; - var yieldedType = getYieldedTypeOfYieldExpression(node, yieldExpressionType, resolvedSignatureNextType, isAsync); - if (returnType && yieldedType) { - checkTypeAssignableToAndOptionallyElaborate(yieldedType, signatureYieldType, node.expression || node, node.expression); - } - if (node.asteriskToken) { - var use = isAsync ? 19 /* AsyncYieldStar */ : 17 /* YieldStar */; - return getIterationTypeOfIterable(use, 1 /* Return */, yieldExpressionType, node.expression) || anyType; - } - else if (returnType) { - return getIterationTypeOfGeneratorFunctionReturnType(2 /* Next */, returnType, isAsync) || anyType; - } - var type = getContextualIterationType(2 /* Next */, func); - if (!type) { - type = anyType; - addLazyDiagnostic(function () { - if (noImplicitAny && !expressionResultIsUnused(node)) { - var contextualType = getContextualType2(node, - /*contextFlags*/ - void 0); - if (!contextualType || isTypeAny(contextualType)) { - error2(node, Diagnostics.yield_expression_implicitly_results_in_an_any_type_because_its_containing_generator_lacks_a_return_type_annotation); - } - } - }); - } - return type; - function checkYieldExpressionGrammar() { - if (!(node.flags & 16384 /* YieldContext */)) { - grammarErrorOnFirstToken(node, Diagnostics.A_yield_expression_is_only_allowed_in_a_generator_body); - } - if (isInParameterInitializerBeforeContainingFunction(node)) { - error2(node, Diagnostics.yield_expressions_cannot_be_used_in_a_parameter_initializer); - } - } - } - function checkConditionalExpression(node, checkMode) { - var type = checkTruthinessExpression(node.condition, checkMode); - checkTestingKnownTruthyCallableOrAwaitableType(node.condition, type, node.whenTrue); - var type1 = checkExpression(node.whenTrue, checkMode); - var type2 = checkExpression(node.whenFalse, checkMode); - return getUnionType([type1, type2], 2 /* Subtype */); - } - function isTemplateLiteralContext(node) { - var parent2 = node.parent; - return isParenthesizedExpression(parent2) && isTemplateLiteralContext(parent2) || isElementAccessExpression(parent2) && parent2.argumentExpression === node; - } - function checkTemplateExpression(node) { - var e_353, _t; - var texts = [node.head.text]; - var types = []; - try { - for (var _u = __values(node.templateSpans), _v = _u.next(); !_v.done; _v = _u.next()) { - var span = _v.value; - var type = checkExpression(span.expression); - if (maybeTypeOfKindConsideringBaseConstraint(type, 12288 /* ESSymbolLike */)) { - error2(span.expression, Diagnostics.Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_in_String); - } - texts.push(span.literal.text); - types.push(isTypeAssignableTo(type, templateConstraintType) ? type : stringType); - } - } - catch (e_353_1) { e_353 = { error: e_353_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_353) throw e_353.error; } - } - if (isConstContext(node) || isTemplateLiteralContext(node) || someType(getContextualType2(node, - /*contextFlags*/ - void 0) || unknownType, isTemplateLiteralContextualType)) { - return getTemplateLiteralType(texts, types); - } - var evaluated = node.parent.kind !== 215 /* TaggedTemplateExpression */ && evaluateTemplateExpression(node); - return evaluated ? getFreshTypeOfLiteralType(getStringLiteralType(evaluated)) : stringType; - } - function isTemplateLiteralContextualType(type) { - return !!(type.flags & (128 /* StringLiteral */ | 134217728 /* TemplateLiteral */) || type.flags & 58982400 /* InstantiableNonPrimitive */ && maybeTypeOfKind(getBaseConstraintOfType(type) || unknownType, 402653316 /* StringLike */)); - } - function getContextNode2(node) { - if (isJsxAttributes(node) && !isJsxSelfClosingElement(node.parent)) { - return node.parent.parent; - } - return node; - } - function checkExpressionWithContextualType(node, contextualType, inferenceContext, checkMode) { - var contextNode = getContextNode2(node); - pushContextualType(contextNode, contextualType, - /*isCache*/ - false); - pushInferenceContext(contextNode, inferenceContext); - var type = checkExpression(node, checkMode | 1 /* Contextual */ | (inferenceContext ? 2 /* Inferential */ : 0)); - if (inferenceContext && inferenceContext.intraExpressionInferenceSites) { - inferenceContext.intraExpressionInferenceSites = void 0; - } - var result = maybeTypeOfKind(type, 2944 /* Literal */) && isLiteralOfContextualType(type, instantiateContextualType(contextualType, node, - /*contextFlags*/ - void 0)) ? getRegularTypeOfLiteralType(type) : type; - popInferenceContext(); - popContextualType(); - return result; - } - function checkExpressionCached(node, checkMode) { - if (checkMode) { - return checkExpression(node, checkMode); - } - var links = getNodeLinks(node); - if (!links.resolvedType) { - var saveFlowLoopStart = flowLoopStart; - var saveFlowTypeCache = flowTypeCache; - flowLoopStart = flowLoopCount; - flowTypeCache = void 0; - links.resolvedType = checkExpression(node, checkMode); - flowTypeCache = saveFlowTypeCache; - flowLoopStart = saveFlowLoopStart; - } - return links.resolvedType; - } - function isTypeAssertion(node) { - node = skipParentheses(node, - /*excludeJSDocTypeAssertions*/ - true); - return node.kind === 216 /* TypeAssertionExpression */ || node.kind === 234 /* AsExpression */ || isJSDocTypeAssertion(node); - } - function checkDeclarationInitializer(declaration, checkMode, contextualType) { - var initializer = getEffectiveInitializer(declaration); - if (isInJSFile(declaration)) { - var typeNode = tryGetJSDocSatisfiesTypeNode(declaration); - if (typeNode) { - return checkSatisfiesExpressionWorker(initializer, typeNode, checkMode); - } - } - var type = getQuickTypeOfExpression(initializer) || (contextualType ? checkExpressionWithContextualType(initializer, contextualType, - /*inferenceContext*/ - void 0, checkMode || 0 /* Normal */) : checkExpressionCached(initializer, checkMode)); - return isParameter(declaration) && declaration.name.kind === 207 /* ArrayBindingPattern */ && isTupleType(type) && !type.target.hasRestElement && getTypeReferenceArity(type) < declaration.name.elements.length ? padTupleType(type, declaration.name) : type; - } - function padTupleType(type, pattern) { - var patternElements = pattern.elements; - var elementTypes = getElementTypes(type).slice(); - var elementFlags = type.target.elementFlags.slice(); - for (var i = getTypeReferenceArity(type); i < patternElements.length; i++) { - var e = patternElements[i]; - if (i < patternElements.length - 1 || !(e.kind === 208 /* BindingElement */ && e.dotDotDotToken)) { - elementTypes.push(!isOmittedExpression(e) && hasDefaultValue(e) ? getTypeFromBindingElement(e, - /*includePatternInType*/ - false, - /*reportErrors*/ - false) : anyType); - elementFlags.push(2 /* Optional */); - if (!isOmittedExpression(e) && !hasDefaultValue(e)) { - reportImplicitAny(e, anyType); - } - } - } - return createTupleType(elementTypes, elementFlags, type.target.readonly); - } - function widenTypeInferredFromInitializer(declaration, type) { - var widened = getCombinedNodeFlagsCached(declaration) & 6 /* Constant */ || isDeclarationReadonly(declaration) ? type : getWidenedLiteralType(type); - if (isInJSFile(declaration)) { - if (isEmptyLiteralType(widened)) { - reportImplicitAny(declaration, anyType); - return anyType; - } - else if (isEmptyArrayLiteralType(widened)) { - reportImplicitAny(declaration, anyArrayType); - return anyArrayType; - } - } - return widened; - } - function isLiteralOfContextualType(candidateType, contextualType) { - if (contextualType) { - if (contextualType.flags & 3145728 /* UnionOrIntersection */) { - var types = contextualType.types; - return some(types, function (t) { return isLiteralOfContextualType(candidateType, t); }); - } - if (contextualType.flags & 58982400 /* InstantiableNonPrimitive */) { - var constraint = getBaseConstraintOfType(contextualType) || unknownType; - return maybeTypeOfKind(constraint, 4 /* String */) && maybeTypeOfKind(candidateType, 128 /* StringLiteral */) || maybeTypeOfKind(constraint, 8 /* Number */) && maybeTypeOfKind(candidateType, 256 /* NumberLiteral */) || maybeTypeOfKind(constraint, 64 /* BigInt */) && maybeTypeOfKind(candidateType, 2048 /* BigIntLiteral */) || maybeTypeOfKind(constraint, 4096 /* ESSymbol */) && maybeTypeOfKind(candidateType, 8192 /* UniqueESSymbol */) || isLiteralOfContextualType(candidateType, constraint); - } - return !!(contextualType.flags & (128 /* StringLiteral */ | 4194304 /* Index */ | 134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */) && maybeTypeOfKind(candidateType, 128 /* StringLiteral */) || contextualType.flags & 256 /* NumberLiteral */ && maybeTypeOfKind(candidateType, 256 /* NumberLiteral */) || contextualType.flags & 2048 /* BigIntLiteral */ && maybeTypeOfKind(candidateType, 2048 /* BigIntLiteral */) || contextualType.flags & 512 /* BooleanLiteral */ && maybeTypeOfKind(candidateType, 512 /* BooleanLiteral */) || contextualType.flags & 8192 /* UniqueESSymbol */ && maybeTypeOfKind(candidateType, 8192 /* UniqueESSymbol */)); - } - return false; - } - function isConstContext(node) { - var parent2 = node.parent; - return isAssertionExpression(parent2) && isConstTypeReference(parent2.type) || isJSDocTypeAssertion(parent2) && isConstTypeReference(getJSDocTypeAssertionType(parent2)) || isValidConstAssertionArgument(node) && isConstTypeVariable(getContextualType2(node, 0 /* None */)) || (isParenthesizedExpression(parent2) || isArrayLiteralExpression(parent2) || isSpreadElement(parent2)) && isConstContext(parent2) || (isPropertyAssignment(parent2) || isShorthandPropertyAssignment(parent2) || isTemplateSpan(parent2)) && isConstContext(parent2.parent); - } - function checkExpressionForMutableLocation(node, checkMode, forceTuple) { - var type = checkExpression(node, checkMode, forceTuple); - return isConstContext(node) || isCommonJsExportedExpression(node) ? getRegularTypeOfLiteralType(type) : isTypeAssertion(node) ? type : getWidenedLiteralLikeTypeForContextualType(type, instantiateContextualType(getContextualType2(node, - /*contextFlags*/ - void 0), node, - /*contextFlags*/ - void 0)); - } - function checkPropertyAssignment(node, checkMode) { - if (node.name.kind === 167 /* ComputedPropertyName */) { - checkComputedPropertyName(node.name); - } - return checkExpressionForMutableLocation(node.initializer, checkMode); - } - function checkObjectLiteralMethod(node, checkMode) { - checkGrammarMethod(node); - if (node.name.kind === 167 /* ComputedPropertyName */) { - checkComputedPropertyName(node.name); - } - var uninstantiatedType = checkFunctionExpressionOrObjectLiteralMethod(node, checkMode); - return instantiateTypeWithSingleGenericCallSignature(node, uninstantiatedType, checkMode); - } - function instantiateTypeWithSingleGenericCallSignature(node, type, checkMode) { - if (checkMode && checkMode & (2 /* Inferential */ | 8 /* SkipGenericFunctions */)) { - var callSignature = getSingleSignature(type, 0 /* Call */, - /*allowMembers*/ - true); - var constructSignature = getSingleSignature(type, 1 /* Construct */, - /*allowMembers*/ - true); - var signature = callSignature || constructSignature; - if (signature && signature.typeParameters) { - var contextualType = getApparentTypeOfContextualType(node, 2 /* NoConstraints */); - if (contextualType) { - var contextualSignature = getSingleSignature(getNonNullableType(contextualType), callSignature ? 0 /* Call */ : 1 /* Construct */, - /*allowMembers*/ - false); - if (contextualSignature && !contextualSignature.typeParameters) { - if (checkMode & 8 /* SkipGenericFunctions */) { - skippedGenericFunction(node, checkMode); - return anyFunctionType; - } - var context = getInferenceContext(node); - var returnType = context.signature && getReturnTypeOfSignature(context.signature); - var returnSignature = returnType && getSingleCallOrConstructSignature(returnType); - if (returnSignature && !returnSignature.typeParameters && !every(context.inferences, hasInferenceCandidates)) { - var uniqueTypeParameters = getUniqueTypeParameters(context, signature.typeParameters); - var instantiatedSignature = getSignatureInstantiationWithoutFillingInTypeArguments(signature, uniqueTypeParameters); - var inferences_3 = map(context.inferences, function (info) { return createInferenceInfo(info.typeParameter); }); - applyToParameterTypes(instantiatedSignature, contextualSignature, function (source, target) { - inferTypes(inferences_3, source, target, - /*priority*/ - 0, - /*contravariant*/ - true); - }); - if (some(inferences_3, hasInferenceCandidates)) { - applyToReturnTypes(instantiatedSignature, contextualSignature, function (source, target) { - inferTypes(inferences_3, source, target); - }); - if (!hasOverlappingInferences(context.inferences, inferences_3)) { - mergeInferences(context.inferences, inferences_3); - context.inferredTypeParameters = concatenate(context.inferredTypeParameters, uniqueTypeParameters); - return getOrCreateTypeFromSignature(instantiatedSignature); - } - } - } - return getOrCreateTypeFromSignature(instantiateSignatureInContextOf(signature, contextualSignature, context)); - } - } - } - } - return type; - } - function skippedGenericFunction(node, checkMode) { - if (checkMode & 2 /* Inferential */) { - var context = getInferenceContext(node); - context.flags |= 4 /* SkippedGenericFunction */; - } - } - function hasInferenceCandidates(info) { - return !!(info.candidates || info.contraCandidates); - } - function hasInferenceCandidatesOrDefault(info) { - return !!(info.candidates || info.contraCandidates || hasTypeParameterDefault(info.typeParameter)); - } - function hasOverlappingInferences(a, b) { - for (var i = 0; i < a.length; i++) { - if (hasInferenceCandidates(a[i]) && hasInferenceCandidates(b[i])) { - return true; - } - } - return false; - } - function mergeInferences(target, source) { - for (var i = 0; i < target.length; i++) { - if (!hasInferenceCandidates(target[i]) && hasInferenceCandidates(source[i])) { - target[i] = source[i]; - } - } - } - function getUniqueTypeParameters(context, typeParameters) { - var e_354, _t, e_355, _u; - var result = []; - var oldTypeParameters; - var newTypeParameters; - try { - for (var typeParameters_3 = __values(typeParameters), typeParameters_3_1 = typeParameters_3.next(); !typeParameters_3_1.done; typeParameters_3_1 = typeParameters_3.next()) { - var tp = typeParameters_3_1.value; - var name_52 = tp.symbol.escapedName; - if (hasTypeParameterByName(context.inferredTypeParameters, name_52) || hasTypeParameterByName(result, name_52)) { - var newName = getUniqueTypeParameterName(concatenate(context.inferredTypeParameters, result), name_52); - var symbol = createSymbol(262144 /* TypeParameter */, newName); - var newTypeParameter = createTypeParameter(symbol); - newTypeParameter.target = tp; - oldTypeParameters = append(oldTypeParameters, tp); - newTypeParameters = append(newTypeParameters, newTypeParameter); - result.push(newTypeParameter); - } - else { - result.push(tp); - } - } - } - catch (e_354_1) { e_354 = { error: e_354_1 }; } - finally { - try { - if (typeParameters_3_1 && !typeParameters_3_1.done && (_t = typeParameters_3.return)) _t.call(typeParameters_3); - } - finally { if (e_354) throw e_354.error; } - } - if (newTypeParameters) { - var mapper = createTypeMapper(oldTypeParameters, newTypeParameters); - try { - for (var newTypeParameters_1 = __values(newTypeParameters), newTypeParameters_1_1 = newTypeParameters_1.next(); !newTypeParameters_1_1.done; newTypeParameters_1_1 = newTypeParameters_1.next()) { - var tp = newTypeParameters_1_1.value; - tp.mapper = mapper; - } - } - catch (e_355_1) { e_355 = { error: e_355_1 }; } - finally { - try { - if (newTypeParameters_1_1 && !newTypeParameters_1_1.done && (_u = newTypeParameters_1.return)) _u.call(newTypeParameters_1); - } - finally { if (e_355) throw e_355.error; } - } - } - return result; - } - function hasTypeParameterByName(typeParameters, name) { - return some(typeParameters, function (tp) { return tp.symbol.escapedName === name; }); - } - function getUniqueTypeParameterName(typeParameters, baseName) { - var len = baseName.length; - while (len > 1 && baseName.charCodeAt(len - 1) >= 48 /* _0 */ && baseName.charCodeAt(len - 1) <= 57 /* _9 */) - len--; - var s = baseName.slice(0, len); - for (var index = 1; true; index++) { - var augmentedName = s + index; - if (!hasTypeParameterByName(typeParameters, augmentedName)) { - return augmentedName; - } - } - } - function getReturnTypeOfSingleNonGenericCallSignature(funcType) { - var signature = getSingleCallSignature(funcType); - if (signature && !signature.typeParameters) { - return getReturnTypeOfSignature(signature); - } - } - function getReturnTypeOfSingleNonGenericSignatureOfCallChain(expr) { - var funcType = checkExpression(expr.expression); - var nonOptionalType = getOptionalExpressionType(funcType, expr.expression); - var returnType = getReturnTypeOfSingleNonGenericCallSignature(funcType); - return returnType && propagateOptionalTypeMarker(returnType, expr, nonOptionalType !== funcType); - } - function getTypeOfExpression(node) { - var quickType = getQuickTypeOfExpression(node); - if (quickType) { - return quickType; - } - if (node.flags & 268435456 /* TypeCached */ && flowTypeCache) { - var cachedType = flowTypeCache[getNodeId(node)]; - if (cachedType) { - return cachedType; - } - } - var startInvocationCount = flowInvocationCount; - var type = checkExpression(node, 128 /* TypeOnly */); - if (flowInvocationCount !== startInvocationCount) { - var cache = flowTypeCache || (flowTypeCache = []); - cache[getNodeId(node)] = type; - setNodeFlags(node, node.flags | 268435456 /* TypeCached */); - } - return type; - } - function getQuickTypeOfExpression(node) { - var expr = skipParentheses(node, - /*excludeJSDocTypeAssertions*/ - true); - if (isJSDocTypeAssertion(expr)) { - var type = getJSDocTypeAssertionType(expr); - if (!isConstTypeReference(type)) { - return getTypeFromTypeNode(type); - } - } - expr = skipParentheses(node); - if (isAwaitExpression(expr)) { - var type = getQuickTypeOfExpression(expr.expression); - return type ? getAwaitedType(type) : void 0; - } - if (isCallExpression(expr) && expr.expression.kind !== 108 /* SuperKeyword */ && !isRequireCall(expr, - /*requireStringLiteralLikeArgument*/ - true) && !isSymbolOrSymbolForCall(expr)) { - return isCallChain(expr) ? getReturnTypeOfSingleNonGenericSignatureOfCallChain(expr) : getReturnTypeOfSingleNonGenericCallSignature(checkNonNullExpression(expr.expression)); - } - else if (isAssertionExpression(expr) && !isConstTypeReference(expr.type)) { - return getTypeFromTypeNode(expr.type); - } - else if (isLiteralExpression(node) || isBooleanLiteral(node)) { - return checkExpression(node); - } - return void 0; - } - function getContextFreeTypeOfExpression(node) { - var links = getNodeLinks(node); - if (links.contextFreeType) { - return links.contextFreeType; - } - pushContextualType(node, anyType, - /*isCache*/ - false); - var type = links.contextFreeType = checkExpression(node, 4 /* SkipContextSensitive */); - popContextualType(); - return type; - } - function checkExpression(node, checkMode, forceTuple) { - var _a, _b; - (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Check, "checkExpression", { kind: node.kind, pos: node.pos, end: node.end, path: node.tracingPath }); - var saveCurrentNode = currentNode; - currentNode = node; - instantiationCount = 0; - var uninstantiatedType = checkExpressionWorker(node, checkMode, forceTuple); - var type = instantiateTypeWithSingleGenericCallSignature(node, uninstantiatedType, checkMode); - if (isConstEnumObjectType(type)) { - checkConstEnumAccess(node, type); - } - currentNode = saveCurrentNode; - (_b = tracing) == null ? void 0 : _b.pop(); - return type; - } - function checkConstEnumAccess(node, type) { - var ok = node.parent.kind === 211 /* PropertyAccessExpression */ && node.parent.expression === node || node.parent.kind === 212 /* ElementAccessExpression */ && node.parent.expression === node || ((node.kind === 80 /* Identifier */ || node.kind === 166 /* QualifiedName */) && isInRightSideOfImportOrExportAssignment(node) || node.parent.kind === 186 /* TypeQuery */ && node.parent.exprName === node) || node.parent.kind === 281 /* ExportSpecifier */; - if (!ok) { - error2(node, Diagnostics.const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment_or_type_query); - } - if (getIsolatedModules(compilerOptions)) { - Debug.assert(!!(type.symbol.flags & 128 /* ConstEnum */)); - var constEnumDeclaration = type.symbol.valueDeclaration; - if (constEnumDeclaration.flags & 33554432 /* Ambient */ && !isValidTypeOnlyAliasUseSite(node)) { - error2(node, Diagnostics.Cannot_access_ambient_const_enums_when_0_is_enabled, isolatedModulesLikeFlagName); - } - } - } - function checkParenthesizedExpression(node, checkMode) { - if (hasJSDocNodes(node)) { - if (isJSDocSatisfiesExpression(node)) { - return checkSatisfiesExpressionWorker(node.expression, getJSDocSatisfiesExpressionType(node), checkMode); - } - if (isJSDocTypeAssertion(node)) { - return checkAssertionWorker(node, checkMode); - } - } - return checkExpression(node.expression, checkMode); - } - function checkExpressionWorker(node, checkMode, forceTuple) { - var kind = node.kind; - if (cancellationToken) { - switch (kind) { - case 231 /* ClassExpression */: - case 218 /* FunctionExpression */: - case 219 /* ArrowFunction */: - cancellationToken.throwIfCancellationRequested(); - } - } - switch (kind) { - case 80 /* Identifier */: - return checkIdentifier(node, checkMode); - case 81 /* PrivateIdentifier */: - return checkPrivateIdentifierExpression(node); - case 110 /* ThisKeyword */: - return checkThisExpression(node); - case 108 /* SuperKeyword */: - return checkSuperExpression(node); - case 106 /* NullKeyword */: - return nullWideningType; - case 15 /* NoSubstitutionTemplateLiteral */: - case 11 /* StringLiteral */: - return hasSkipDirectInferenceFlag(node) ? wildcardType : getFreshTypeOfLiteralType(getStringLiteralType(node.text)); - case 9 /* NumericLiteral */: - checkGrammarNumericLiteral(node); - return getFreshTypeOfLiteralType(getNumberLiteralType(+node.text)); - case 10 /* BigIntLiteral */: - checkGrammarBigIntLiteral(node); - return getFreshTypeOfLiteralType(getBigIntLiteralType({ - negative: false, - base10Value: parsePseudoBigInt(node.text) - })); - case 112 /* TrueKeyword */: - return trueType; - case 97 /* FalseKeyword */: - return falseType; - case 228 /* TemplateExpression */: - return checkTemplateExpression(node); - case 14 /* RegularExpressionLiteral */: - return globalRegExpType; - case 209 /* ArrayLiteralExpression */: - return checkArrayLiteral(node, checkMode, forceTuple); - case 210 /* ObjectLiteralExpression */: - return checkObjectLiteral(node, checkMode); - case 211 /* PropertyAccessExpression */: - return checkPropertyAccessExpression(node, checkMode); - case 166 /* QualifiedName */: - return checkQualifiedName(node, checkMode); - case 212 /* ElementAccessExpression */: - return checkIndexedAccess(node, checkMode); - case 213 /* CallExpression */: - if (node.expression.kind === 102 /* ImportKeyword */) { - return checkImportCallExpression(node); - } - case 214 /* NewExpression */: - return checkCallExpression(node, checkMode); - case 215 /* TaggedTemplateExpression */: - return checkTaggedTemplateExpression(node); - case 217 /* ParenthesizedExpression */: - return checkParenthesizedExpression(node, checkMode); - case 231 /* ClassExpression */: - return checkClassExpression(node); - case 218 /* FunctionExpression */: - case 219 /* ArrowFunction */: - return checkFunctionExpressionOrObjectLiteralMethod(node, checkMode); - case 221 /* TypeOfExpression */: - return checkTypeOfExpression(node); - case 216 /* TypeAssertionExpression */: - case 234 /* AsExpression */: - return checkAssertion(node, checkMode); - case 235 /* NonNullExpression */: - return checkNonNullAssertion(node); - case 233 /* ExpressionWithTypeArguments */: - return checkExpressionWithTypeArguments(node); - case 238 /* SatisfiesExpression */: - return checkSatisfiesExpression(node); - case 236 /* MetaProperty */: - return checkMetaProperty(node); - case 220 /* DeleteExpression */: - return checkDeleteExpression(node); - case 222 /* VoidExpression */: - return checkVoidExpression(node); - case 223 /* AwaitExpression */: - return checkAwaitExpression(node); - case 224 /* PrefixUnaryExpression */: - return checkPrefixUnaryExpression(node); - case 225 /* PostfixUnaryExpression */: - return checkPostfixUnaryExpression(node); - case 226 /* BinaryExpression */: - return checkBinaryExpression(node, checkMode); - case 227 /* ConditionalExpression */: - return checkConditionalExpression(node, checkMode); - case 230 /* SpreadElement */: - return checkSpreadExpression(node, checkMode); - case 232 /* OmittedExpression */: - return undefinedWideningType; - case 229 /* YieldExpression */: - return checkYieldExpression(node); - case 237 /* SyntheticExpression */: - return checkSyntheticExpression(node); - case 294 /* JsxExpression */: - return checkJsxExpression(node, checkMode); - case 284 /* JsxElement */: - return checkJsxElement(node, checkMode); - case 285 /* JsxSelfClosingElement */: - return checkJsxSelfClosingElement(node, checkMode); - case 288 /* JsxFragment */: - return checkJsxFragment(node); - case 292 /* JsxAttributes */: - return checkJsxAttributes(node, checkMode); - case 286 /* JsxOpeningElement */: - Debug.fail("Shouldn't ever directly check a JsxOpeningElement"); - } - return errorType; - } - function checkTypeParameter(node) { - checkGrammarModifiers(node); - if (node.expression) { - grammarErrorOnFirstToken(node.expression, Diagnostics.Type_expected); - } - checkSourceElement(node.constraint); - checkSourceElement(node.default); - var typeParameter = getDeclaredTypeOfTypeParameter(getSymbolOfDeclaration(node)); - getBaseConstraintOfType(typeParameter); - if (!hasNonCircularTypeParameterDefault(typeParameter)) { - error2(node.default, Diagnostics.Type_parameter_0_has_a_circular_default, typeToString(typeParameter)); - } - var constraintType = getConstraintOfTypeParameter(typeParameter); - var defaultType = getDefaultFromTypeParameter(typeParameter); - if (constraintType && defaultType) { - checkTypeAssignableTo(defaultType, getTypeWithThisArgument(instantiateType(constraintType, makeUnaryTypeMapper(typeParameter, defaultType)), defaultType), node.default, Diagnostics.Type_0_does_not_satisfy_the_constraint_1); - } - checkNodeDeferred(node); - addLazyDiagnostic(function () { return checkTypeNameIsReserved(node.name, Diagnostics.Type_parameter_name_cannot_be_0); }); - } - function checkTypeParameterDeferred(node) { - var _a, _b; - if (isInterfaceDeclaration(node.parent) || isClassLike(node.parent) || isTypeAliasDeclaration(node.parent)) { - var typeParameter = getDeclaredTypeOfTypeParameter(getSymbolOfDeclaration(node)); - var modifiers = getTypeParameterModifiers(typeParameter) & (32768 /* In */ | 65536 /* Out */); - if (modifiers) { - var symbol = getSymbolOfDeclaration(node.parent); - if (isTypeAliasDeclaration(node.parent) && !(getObjectFlags(getDeclaredTypeOfSymbol(symbol)) & (16 /* Anonymous */ | 32 /* Mapped */))) { - error2(node, Diagnostics.Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_types); - } - else if (modifiers === 32768 /* In */ || modifiers === 65536 /* Out */) { - (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.CheckTypes, "checkTypeParameterDeferred", { parent: getTypeId(getDeclaredTypeOfSymbol(symbol)), id: getTypeId(typeParameter) }); - var source = createMarkerType(symbol, typeParameter, modifiers === 65536 /* Out */ ? markerSubTypeForCheck : markerSuperTypeForCheck); - var target = createMarkerType(symbol, typeParameter, modifiers === 65536 /* Out */ ? markerSuperTypeForCheck : markerSubTypeForCheck); - var saveVarianceTypeParameter = typeParameter; - varianceTypeParameter = typeParameter; - checkTypeAssignableTo(source, target, node, Diagnostics.Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation); - varianceTypeParameter = saveVarianceTypeParameter; - (_b = tracing) == null ? void 0 : _b.pop(); - } - } - } - } - function checkParameter(node) { - checkGrammarModifiers(node); - checkVariableLikeDeclaration(node); - var func = getContainingFunction(node); - if (hasSyntacticModifier(node, 16476 /* ParameterPropertyModifier */)) { - if (!(func.kind === 176 /* Constructor */ && nodeIsPresent(func.body))) { - error2(node, Diagnostics.A_parameter_property_is_only_allowed_in_a_constructor_implementation); - } - if (func.kind === 176 /* Constructor */ && isIdentifier(node.name) && node.name.escapedText === "constructor") { - error2(node.name, Diagnostics.constructor_cannot_be_used_as_a_parameter_property_name); - } - } - if (!node.initializer && isOptionalDeclaration(node) && isBindingPattern(node.name) && func.body) { - error2(node, Diagnostics.A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature); - } - if (node.name && isIdentifier(node.name) && (node.name.escapedText === "this" || node.name.escapedText === "new")) { - if (func.parameters.indexOf(node) !== 0) { - error2(node, Diagnostics.A_0_parameter_must_be_the_first_parameter, node.name.escapedText); - } - if (func.kind === 176 /* Constructor */ || func.kind === 180 /* ConstructSignature */ || func.kind === 185 /* ConstructorType */) { - error2(node, Diagnostics.A_constructor_cannot_have_a_this_parameter); - } - if (func.kind === 219 /* ArrowFunction */) { - error2(node, Diagnostics.An_arrow_function_cannot_have_a_this_parameter); - } - if (func.kind === 177 /* GetAccessor */ || func.kind === 178 /* SetAccessor */) { - error2(node, Diagnostics.get_and_set_accessors_cannot_declare_this_parameters); - } - } - if (node.dotDotDotToken && !isBindingPattern(node.name) && !isTypeAssignableTo(getReducedType(getTypeOfSymbol(node.symbol)), anyReadonlyArrayType)) { - error2(node, Diagnostics.A_rest_parameter_must_be_of_an_array_type); - } - } - function checkTypePredicate(node) { - var e_356, _t; - var parent2 = getTypePredicateParent(node); - if (!parent2) { - error2(node, Diagnostics.A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods); - return; - } - var signature = getSignatureFromDeclaration(parent2); - var typePredicate = getTypePredicateOfSignature(signature); - if (!typePredicate) { - return; - } - checkSourceElement(node.type); - var parameterName = node.parameterName; - if (typePredicate.kind === 0 /* This */ || typePredicate.kind === 2 /* AssertsThis */) { - getTypeFromThisTypeNode(parameterName); - } - else { - if (typePredicate.parameterIndex >= 0) { - if (signatureHasRestParameter(signature) && typePredicate.parameterIndex === signature.parameters.length - 1) { - error2(parameterName, Diagnostics.A_type_predicate_cannot_reference_a_rest_parameter); - } - else { - if (typePredicate.type) { - var leadingError = function () { return chainDiagnosticMessages( - /*details*/ - void 0, Diagnostics.A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type); }; - checkTypeAssignableTo(typePredicate.type, getTypeOfSymbol(signature.parameters[typePredicate.parameterIndex]), node.type, - /*headMessage*/ - void 0, leadingError); - } - } - } - else if (parameterName) { - var hasReportedError = false; - try { - for (var _u = __values(parent2.parameters), _v = _u.next(); !_v.done; _v = _u.next()) { - var name_53 = _v.value.name; - if (isBindingPattern(name_53) && checkIfTypePredicateVariableIsDeclaredInBindingPattern(name_53, parameterName, typePredicate.parameterName)) { - hasReportedError = true; - break; - } - } - } - catch (e_356_1) { e_356 = { error: e_356_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_356) throw e_356.error; } - } - if (!hasReportedError) { - error2(node.parameterName, Diagnostics.Cannot_find_parameter_0, typePredicate.parameterName); - } - } - } - } - function getTypePredicateParent(node) { - switch (node.parent.kind) { - case 219 /* ArrowFunction */: - case 179 /* CallSignature */: - case 262 /* FunctionDeclaration */: - case 218 /* FunctionExpression */: - case 184 /* FunctionType */: - case 174 /* MethodDeclaration */: - case 173 /* MethodSignature */: - var parent2 = node.parent; - if (node === parent2.type) { - return parent2; - } - } - } - function checkIfTypePredicateVariableIsDeclaredInBindingPattern(pattern, predicateVariableNode, predicateVariableName) { - var e_357, _t; - try { - for (var _u = __values(pattern.elements), _v = _u.next(); !_v.done; _v = _u.next()) { - var element = _v.value; - if (isOmittedExpression(element)) { - continue; - } - var name_54 = element.name; - if (name_54.kind === 80 /* Identifier */ && name_54.escapedText === predicateVariableName) { - error2(predicateVariableNode, Diagnostics.A_type_predicate_cannot_reference_element_0_in_a_binding_pattern, predicateVariableName); - return true; - } - else if (name_54.kind === 207 /* ArrayBindingPattern */ || name_54.kind === 206 /* ObjectBindingPattern */) { - if (checkIfTypePredicateVariableIsDeclaredInBindingPattern(name_54, predicateVariableNode, predicateVariableName)) { - return true; - } - } - } - } - catch (e_357_1) { e_357 = { error: e_357_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_357) throw e_357.error; } - } - } - function checkSignatureDeclaration(node) { - if (node.kind === 181 /* IndexSignature */) { - checkGrammarIndexSignature(node); - } - else if (node.kind === 184 /* FunctionType */ || node.kind === 262 /* FunctionDeclaration */ || node.kind === 185 /* ConstructorType */ || node.kind === 179 /* CallSignature */ || node.kind === 176 /* Constructor */ || node.kind === 180 /* ConstructSignature */) { - checkGrammarFunctionLikeDeclaration(node); - } - var functionFlags = getFunctionFlags(node); - if (!(functionFlags & 4 /* Invalid */)) { - if ((functionFlags & 3 /* AsyncGenerator */) === 3 /* AsyncGenerator */ && languageVersion < 99 /* ESNext */) { - checkExternalEmitHelpers(node, 6144 /* AsyncGeneratorIncludes */); - } - if ((functionFlags & 3 /* AsyncGenerator */) === 2 /* Async */ && languageVersion < 4 /* ES2017 */) { - checkExternalEmitHelpers(node, 64 /* Awaiter */); - } - if ((functionFlags & 3 /* AsyncGenerator */) !== 0 /* Normal */ && languageVersion < 2 /* ES2015 */) { - checkExternalEmitHelpers(node, 128 /* Generator */); - } - } - checkTypeParameters(getEffectiveTypeParameterDeclarations(node)); - checkUnmatchedJSDocParameters(node); - forEach(node.parameters, checkParameter); - if (node.type) { - checkSourceElement(node.type); - } - addLazyDiagnostic(checkSignatureDeclarationDiagnostics); - function checkSignatureDeclarationDiagnostics() { - checkCollisionWithArgumentsInGeneratedCode(node); - var returnTypeNode = getEffectiveReturnTypeNode(node); - var returnTypeErrorLocation = returnTypeNode; - if (isInJSFile(node)) { - var typeTag = getJSDocTypeTag(node); - if (typeTag && typeTag.typeExpression && isTypeReferenceNode(typeTag.typeExpression.type)) { - var signature = getSingleCallSignature(getTypeFromTypeNode(typeTag.typeExpression)); - if (signature && signature.declaration) { - returnTypeNode = getEffectiveReturnTypeNode(signature.declaration); - returnTypeErrorLocation = typeTag.typeExpression.type; - } - } - } - if (noImplicitAny && !returnTypeNode) { - switch (node.kind) { - case 180 /* ConstructSignature */: - error2(node, Diagnostics.Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type); - break; - case 179 /* CallSignature */: - error2(node, Diagnostics.Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type); - break; - } - } - if (returnTypeNode && returnTypeErrorLocation) { - var functionFlags2 = getFunctionFlags(node); - if ((functionFlags2 & (4 /* Invalid */ | 1 /* Generator */)) === 1 /* Generator */) { - var returnType = getTypeFromTypeNode(returnTypeNode); - if (returnType === voidType) { - error2(returnTypeErrorLocation, Diagnostics.A_generator_cannot_have_a_void_type_annotation); - } - else { - var generatorYieldType = getIterationTypeOfGeneratorFunctionReturnType(0 /* Yield */, returnType, (functionFlags2 & 2 /* Async */) !== 0) || anyType; - var generatorReturnType = getIterationTypeOfGeneratorFunctionReturnType(1 /* Return */, returnType, (functionFlags2 & 2 /* Async */) !== 0) || generatorYieldType; - var generatorNextType = getIterationTypeOfGeneratorFunctionReturnType(2 /* Next */, returnType, (functionFlags2 & 2 /* Async */) !== 0) || unknownType; - var generatorInstantiation = createGeneratorReturnType(generatorYieldType, generatorReturnType, generatorNextType, !!(functionFlags2 & 2 /* Async */)); - checkTypeAssignableTo(generatorInstantiation, returnType, returnTypeErrorLocation); - } - } - else if ((functionFlags2 & 3 /* AsyncGenerator */) === 2 /* Async */) { - checkAsyncFunctionReturnType(node, returnTypeNode, returnTypeErrorLocation); - } - } - if (node.kind !== 181 /* IndexSignature */ && node.kind !== 324 /* JSDocFunctionType */) { - registerForUnusedIdentifiersCheck(node); - } - } - } - function checkClassForDuplicateDeclarations(node) { - var e_358, _t, e_359, _u; - var instanceNames = /* @__PURE__ */ new Map(); - var staticNames = /* @__PURE__ */ new Map(); - var privateIdentifiers = /* @__PURE__ */ new Map(); - try { - for (var _v = __values(node.members), _w = _v.next(); !_w.done; _w = _v.next()) { - var member = _w.value; - if (member.kind === 176 /* Constructor */) { - try { - for (var _x = (e_359 = void 0, __values(member.parameters)), _y = _x.next(); !_y.done; _y = _x.next()) { - var param = _y.value; - if (isParameterPropertyDeclaration(param, member) && !isBindingPattern(param.name)) { - addName(instanceNames, param.name, param.name.escapedText, 3 /* GetOrSetAccessor */); - } - } - } - catch (e_359_1) { e_359 = { error: e_359_1 }; } - finally { - try { - if (_y && !_y.done && (_u = _x.return)) _u.call(_x); - } - finally { if (e_359) throw e_359.error; } - } - } - else { - var isStaticMember = isStatic(member); - var name_55 = member.name; - if (!name_55) { - continue; - } - var isPrivate = isPrivateIdentifier(name_55); - var privateStaticFlags = isPrivate && isStaticMember ? 16 /* PrivateStatic */ : 0; - var names = isPrivate ? privateIdentifiers : isStaticMember ? staticNames : instanceNames; - var memberName = name_55 && getPropertyNameForPropertyNameNode(name_55); - if (memberName) { - switch (member.kind) { - case 177 /* GetAccessor */: - addName(names, name_55, memberName, 1 /* GetAccessor */ | privateStaticFlags); - break; - case 178 /* SetAccessor */: - addName(names, name_55, memberName, 2 /* SetAccessor */ | privateStaticFlags); - break; - case 172 /* PropertyDeclaration */: - addName(names, name_55, memberName, 3 /* GetOrSetAccessor */ | privateStaticFlags); - break; - case 174 /* MethodDeclaration */: - addName(names, name_55, memberName, 8 /* Method */ | privateStaticFlags); - break; - } - } - } - } - } - catch (e_358_1) { e_358 = { error: e_358_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_358) throw e_358.error; } - } - function addName(names, location, name, meaning) { - var prev = names.get(name); - if (prev) { - if ((prev & 16 /* PrivateStatic */) !== (meaning & 16 /* PrivateStatic */)) { - error2(location, Diagnostics.Duplicate_identifier_0_Static_and_instance_elements_cannot_share_the_same_private_name, getTextOfNode(location)); - } - else { - var prevIsMethod = !!(prev & 8 /* Method */); - var isMethod = !!(meaning & 8 /* Method */); - if (prevIsMethod || isMethod) { - if (prevIsMethod !== isMethod) { - error2(location, Diagnostics.Duplicate_identifier_0, getTextOfNode(location)); - } - } - else if (prev & meaning & ~16 /* PrivateStatic */) { - error2(location, Diagnostics.Duplicate_identifier_0, getTextOfNode(location)); - } - else { - names.set(name, prev | meaning); - } - } - } - else { - names.set(name, meaning); - } - } - } - function checkClassForStaticPropertyNameConflicts(node) { - var e_360, _t; - try { - for (var _u = __values(node.members), _v = _u.next(); !_v.done; _v = _u.next()) { - var member = _v.value; - var memberNameNode = member.name; - var isStaticMember = isStatic(member); - if (isStaticMember && memberNameNode) { - var memberName = getPropertyNameForPropertyNameNode(memberNameNode); - switch (memberName) { - case "name": - case "length": - case "caller": - case "arguments": - if (useDefineForClassFields) { - break; - } - case "prototype": - var message = Diagnostics.Static_property_0_conflicts_with_built_in_property_Function_0_of_constructor_function_1; - var className = getNameOfSymbolAsWritten(getSymbolOfDeclaration(node)); - error2(memberNameNode, message, memberName, className); - break; - } - } - } - } - catch (e_360_1) { e_360 = { error: e_360_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_360) throw e_360.error; } - } - } - function checkObjectTypeForDuplicateDeclarations(node) { - var e_361, _t; - var names = /* @__PURE__ */ new Map(); - try { - for (var _u = __values(node.members), _v = _u.next(); !_v.done; _v = _u.next()) { - var member = _v.value; - if (member.kind === 171 /* PropertySignature */) { - var memberName = void 0; - var name_56 = member.name; - switch (name_56.kind) { - case 11 /* StringLiteral */: - case 9 /* NumericLiteral */: - memberName = name_56.text; - break; - case 80 /* Identifier */: - memberName = idText(name_56); - break; - default: - continue; - } - if (names.get(memberName)) { - error2(getNameOfDeclaration(member.symbol.valueDeclaration), Diagnostics.Duplicate_identifier_0, memberName); - error2(member.name, Diagnostics.Duplicate_identifier_0, memberName); - } - else { - names.set(memberName, true); - } - } - } - } - catch (e_361_1) { e_361 = { error: e_361_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_361) throw e_361.error; } - } - } - function checkTypeForDuplicateIndexSignatures(node) { - var e_362, _t; - if (node.kind === 264 /* InterfaceDeclaration */) { - var nodeSymbol = getSymbolOfDeclaration(node); - if (nodeSymbol.declarations && nodeSymbol.declarations.length > 0 && nodeSymbol.declarations[0] !== node) { - return; - } - } - var indexSymbol = getIndexSymbol(getSymbolOfDeclaration(node)); - if (indexSymbol == null ? void 0 : indexSymbol.declarations) { - var indexSignatureMap_1 = /* @__PURE__ */ new Map(); - var _loop_32 = function (declaration) { - if (declaration.parameters.length === 1 && declaration.parameters[0].type) { - forEachType(getTypeFromTypeNode(declaration.parameters[0].type), function (type) { - var entry = indexSignatureMap_1.get(getTypeId(type)); - if (entry) { - entry.declarations.push(declaration); - } - else { - indexSignatureMap_1.set(getTypeId(type), { type: type, declarations: [declaration] }); - } - }); - } - }; - try { - for (var _u = __values(indexSymbol.declarations), _v = _u.next(); !_v.done; _v = _u.next()) { - var declaration = _v.value; - _loop_32(declaration); - } - } - catch (e_362_1) { e_362 = { error: e_362_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_362) throw e_362.error; } - } - indexSignatureMap_1.forEach(function (entry) { - var e_363, _t; - if (entry.declarations.length > 1) { - try { - for (var _u = __values(entry.declarations), _v = _u.next(); !_v.done; _v = _u.next()) { - var declaration = _v.value; - error2(declaration, Diagnostics.Duplicate_index_signature_for_type_0, typeToString(entry.type)); - } - } - catch (e_363_1) { e_363 = { error: e_363_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_363) throw e_363.error; } - } - } - }); - } - } - function checkPropertyDeclaration(node) { - if (!checkGrammarModifiers(node) && !checkGrammarProperty(node)) - checkGrammarComputedPropertyName(node.name); - checkVariableLikeDeclaration(node); - setNodeLinksForPrivateIdentifierScope(node); - if (hasSyntacticModifier(node, 256 /* Abstract */) && node.kind === 172 /* PropertyDeclaration */ && node.initializer) { - error2(node, Diagnostics.Property_0_cannot_have_an_initializer_because_it_is_marked_abstract, declarationNameToString(node.name)); - } - } - function checkPropertySignature(node) { - if (isPrivateIdentifier(node.name)) { - error2(node, Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies); - } - return checkPropertyDeclaration(node); - } - function checkMethodDeclaration(node) { - if (!checkGrammarMethod(node)) - checkGrammarComputedPropertyName(node.name); - if (isMethodDeclaration(node) && node.asteriskToken && isIdentifier(node.name) && idText(node.name) === "constructor") { - error2(node.name, Diagnostics.Class_constructor_may_not_be_a_generator); - } - checkFunctionOrMethodDeclaration(node); - if (hasSyntacticModifier(node, 256 /* Abstract */) && node.kind === 174 /* MethodDeclaration */ && node.body) { - error2(node, Diagnostics.Method_0_cannot_have_an_implementation_because_it_is_marked_abstract, declarationNameToString(node.name)); - } - if (isPrivateIdentifier(node.name) && !getContainingClass(node)) { - error2(node, Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies); - } - setNodeLinksForPrivateIdentifierScope(node); - } - function setNodeLinksForPrivateIdentifierScope(node) { - if (isPrivateIdentifier(node.name) && languageVersion < 99 /* ESNext */) { - for (var lexicalScope = getEnclosingBlockScopeContainer(node); !!lexicalScope; lexicalScope = getEnclosingBlockScopeContainer(lexicalScope)) { - getNodeLinks(lexicalScope).flags |= 1048576 /* ContainsClassWithPrivateIdentifiers */; - } - if (isClassExpression(node.parent)) { - var enclosingIterationStatement = getEnclosingIterationStatement(node.parent); - if (enclosingIterationStatement) { - getNodeLinks(node.name).flags |= 32768 /* BlockScopedBindingInLoop */; - getNodeLinks(enclosingIterationStatement).flags |= 4096 /* LoopWithCapturedBlockScopedBinding */; - } - } - } - } - function checkClassStaticBlockDeclaration(node) { - checkGrammarModifiers(node); - forEachChild(node, checkSourceElement); - } - function checkConstructorDeclaration(node) { - checkSignatureDeclaration(node); - if (!checkGrammarConstructorTypeParameters(node)) - checkGrammarConstructorTypeAnnotation(node); - checkSourceElement(node.body); - var symbol = getSymbolOfDeclaration(node); - var firstDeclaration = getDeclarationOfKind(symbol, node.kind); - if (node === firstDeclaration) { - checkFunctionOrConstructorSymbol(symbol); - } - if (nodeIsMissing(node.body)) { - return; - } - addLazyDiagnostic(checkConstructorDeclarationDiagnostics); - return; - function isInstancePropertyWithInitializerOrPrivateIdentifierProperty(n) { - if (isPrivateIdentifierClassElementDeclaration(n)) { - return true; - } - return n.kind === 172 /* PropertyDeclaration */ && !isStatic(n) && !!n.initializer; - } - function checkConstructorDeclarationDiagnostics() { - var e_364, _t; - var containingClassDecl = node.parent; - if (getClassExtendsHeritageElement(containingClassDecl)) { - captureLexicalThis(node.parent, containingClassDecl); - var classExtendsNull = classDeclarationExtendsNull(containingClassDecl); - var superCall = findFirstSuperCall(node.body); - if (superCall) { - if (classExtendsNull) { - error2(superCall, Diagnostics.A_constructor_cannot_contain_a_super_call_when_its_class_extends_null); - } - var superCallShouldBeRootLevel = !emitStandardClassFields && (some(node.parent.members, isInstancePropertyWithInitializerOrPrivateIdentifierProperty) || some(node.parameters, function (p) { return hasSyntacticModifier(p, 16476 /* ParameterPropertyModifier */); })); - if (superCallShouldBeRootLevel) { - if (!superCallIsRootLevelInConstructor(superCall, node.body)) { - error2(superCall, Diagnostics.A_super_call_must_be_a_root_level_statement_within_a_constructor_of_a_derived_class_that_contains_initialized_properties_parameter_properties_or_private_identifiers); - } - else { - var superCallStatement = void 0; - try { - for (var _u = __values(node.body.statements), _v = _u.next(); !_v.done; _v = _u.next()) { - var statement = _v.value; - if (isExpressionStatement(statement) && isSuperCall(skipOuterExpressions(statement.expression))) { - superCallStatement = statement; - break; - } - if (nodeImmediatelyReferencesSuperOrThis(statement)) { - break; - } - } - } - catch (e_364_1) { e_364 = { error: e_364_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_364) throw e_364.error; } - } - if (superCallStatement === void 0) { - error2(node, Diagnostics.A_super_call_must_be_the_first_statement_in_the_constructor_to_refer_to_super_or_this_when_a_derived_class_contains_initialized_properties_parameter_properties_or_private_identifiers); - } - } - } - } - else if (!classExtendsNull) { - error2(node, Diagnostics.Constructors_for_derived_classes_must_contain_a_super_call); - } - } - } - } - function superCallIsRootLevelInConstructor(superCall, body) { - var superCallParent = walkUpParenthesizedExpressions(superCall.parent); - return isExpressionStatement(superCallParent) && superCallParent.parent === body; - } - function nodeImmediatelyReferencesSuperOrThis(node) { - if (node.kind === 108 /* SuperKeyword */ || node.kind === 110 /* ThisKeyword */) { - return true; - } - if (isThisContainerOrFunctionBlock(node)) { - return false; - } - return !!forEachChild(node, nodeImmediatelyReferencesSuperOrThis); - } - function checkAccessorDeclaration(node) { - if (isIdentifier(node.name) && idText(node.name) === "constructor" && isClassLike(node.parent)) { - error2(node.name, Diagnostics.Class_constructor_may_not_be_an_accessor); - } - addLazyDiagnostic(checkAccessorDeclarationDiagnostics); - checkSourceElement(node.body); - setNodeLinksForPrivateIdentifierScope(node); - function checkAccessorDeclarationDiagnostics() { - if (!checkGrammarFunctionLikeDeclaration(node) && !checkGrammarAccessor(node)) - checkGrammarComputedPropertyName(node.name); - checkDecorators(node); - checkSignatureDeclaration(node); - if (node.kind === 177 /* GetAccessor */) { - if (!(node.flags & 33554432 /* Ambient */) && nodeIsPresent(node.body) && node.flags & 512 /* HasImplicitReturn */) { - if (!(node.flags & 1024 /* HasExplicitReturn */)) { - error2(node.name, Diagnostics.A_get_accessor_must_return_a_value); - } - } - } - if (node.name.kind === 167 /* ComputedPropertyName */) { - checkComputedPropertyName(node.name); - } - if (hasBindableName(node)) { - var symbol = getSymbolOfDeclaration(node); - var getter = getDeclarationOfKind(symbol, 177 /* GetAccessor */); - var setter = getDeclarationOfKind(symbol, 178 /* SetAccessor */); - if (getter && setter && !(getNodeCheckFlags(getter) & 1 /* TypeChecked */)) { - getNodeLinks(getter).flags |= 1 /* TypeChecked */; - var getterFlags = getEffectiveModifierFlags(getter); - var setterFlags = getEffectiveModifierFlags(setter); - if ((getterFlags & 256 /* Abstract */) !== (setterFlags & 256 /* Abstract */)) { - error2(getter.name, Diagnostics.Accessors_must_both_be_abstract_or_non_abstract); - error2(setter.name, Diagnostics.Accessors_must_both_be_abstract_or_non_abstract); - } - if (getterFlags & 16 /* Protected */ && !(setterFlags & (16 /* Protected */ | 8 /* Private */)) || getterFlags & 8 /* Private */ && !(setterFlags & 8 /* Private */)) { - error2(getter.name, Diagnostics.A_get_accessor_must_be_at_least_as_accessible_as_the_setter); - error2(setter.name, Diagnostics.A_get_accessor_must_be_at_least_as_accessible_as_the_setter); - } - } - } - var returnType = getTypeOfAccessors(getSymbolOfDeclaration(node)); - if (node.kind === 177 /* GetAccessor */) { - checkAllCodePathsInNonVoidFunctionReturnOrThrow(node, returnType); - } - } - } - function checkMissingDeclaration(node) { - checkDecorators(node); - } - function getEffectiveTypeArgumentAtIndex(node, typeParameters, index) { - if (node.typeArguments && index < node.typeArguments.length) { - return getTypeFromTypeNode(node.typeArguments[index]); - } - return getEffectiveTypeArguments2(node, typeParameters)[index]; - } - function getEffectiveTypeArguments2(node, typeParameters) { - return fillMissingTypeArguments(map(node.typeArguments, getTypeFromTypeNode), typeParameters, getMinTypeArgumentCount(typeParameters), isInJSFile(node)); - } - function checkTypeArgumentConstraints(node, typeParameters) { - var typeArguments; - var mapper; - var result = true; - for (var i = 0; i < typeParameters.length; i++) { - var constraint = getConstraintOfTypeParameter(typeParameters[i]); - if (constraint) { - if (!typeArguments) { - typeArguments = getEffectiveTypeArguments2(node, typeParameters); - mapper = createTypeMapper(typeParameters, typeArguments); - } - result = result && checkTypeAssignableTo(typeArguments[i], instantiateType(constraint, mapper), node.typeArguments[i], Diagnostics.Type_0_does_not_satisfy_the_constraint_1); - } - } - return result; - } - function getTypeParametersForTypeAndSymbol(type, symbol) { - if (!isErrorType(type)) { - return symbol.flags & 524288 /* TypeAlias */ && getSymbolLinks(symbol).typeParameters || (getObjectFlags(type) & 4 /* Reference */ ? type.target.localTypeParameters : void 0); - } - return void 0; - } - function getTypeParametersForTypeReferenceOrImport(node) { - var type = getTypeFromTypeNode(node); - if (!isErrorType(type)) { - var symbol = getNodeLinks(node).resolvedSymbol; - if (symbol) { - return getTypeParametersForTypeAndSymbol(type, symbol); - } - } - return void 0; - } - function checkTypeReferenceNode(node) { - checkGrammarTypeArguments(node, node.typeArguments); - if (node.kind === 183 /* TypeReference */ && !isInJSFile(node) && !isInJSDoc(node) && node.typeArguments && node.typeName.end !== node.typeArguments.pos) { - var sourceFile = getSourceFileOfNode(node); - if (scanTokenAtPosition(sourceFile, node.typeName.end) === 25 /* DotToken */) { - grammarErrorAtPos(node, skipTrivia(sourceFile.text, node.typeName.end), 1, Diagnostics.JSDoc_types_can_only_be_used_inside_documentation_comments); - } - } - forEach(node.typeArguments, checkSourceElement); - checkTypeReferenceOrImport(node); - } - function checkTypeReferenceOrImport(node) { - var type = getTypeFromTypeNode(node); - if (!isErrorType(type)) { - if (node.typeArguments) { - addLazyDiagnostic(function () { - var typeParameters = getTypeParametersForTypeReferenceOrImport(node); - if (typeParameters) { - checkTypeArgumentConstraints(node, typeParameters); - } - }); - } - var symbol = getNodeLinks(node).resolvedSymbol; - if (symbol) { - if (some(symbol.declarations, function (d) { return isTypeDeclaration(d) && !!(d.flags & 536870912 /* Deprecated */); })) { - addDeprecatedSuggestion(getDeprecatedSuggestionNode(node), symbol.declarations, symbol.escapedName); - } - } - } - } - function getTypeArgumentConstraint(node) { - var typeReferenceNode = tryCast(node.parent, isTypeReferenceType); - if (!typeReferenceNode) - return void 0; - var typeParameters = getTypeParametersForTypeReferenceOrImport(typeReferenceNode); - if (!typeParameters) - return void 0; - var constraint = getConstraintOfTypeParameter(typeParameters[typeReferenceNode.typeArguments.indexOf(node)]); - return constraint && instantiateType(constraint, createTypeMapper(typeParameters, getEffectiveTypeArguments2(typeReferenceNode, typeParameters))); - } - function checkTypeQuery(node) { - getTypeFromTypeQueryNode(node); - } - function checkTypeLiteral(node) { - forEach(node.members, checkSourceElement); - addLazyDiagnostic(checkTypeLiteralDiagnostics); - function checkTypeLiteralDiagnostics() { - var type = getTypeFromTypeLiteralOrFunctionOrConstructorTypeNode(node); - checkIndexConstraints(type, type.symbol); - checkTypeForDuplicateIndexSignatures(node); - checkObjectTypeForDuplicateDeclarations(node); - } - } - function checkArrayType(node) { - checkSourceElement(node.elementType); - } - function checkTupleType(node) { - var e_365, _t; - var elementTypes = node.elements; - var seenOptionalElement = false; - var seenRestElement = false; - try { - for (var elementTypes_1 = __values(elementTypes), elementTypes_1_1 = elementTypes_1.next(); !elementTypes_1_1.done; elementTypes_1_1 = elementTypes_1.next()) { - var e = elementTypes_1_1.value; - var flags = getTupleElementFlags(e); - if (flags & 8 /* Variadic */) { - var type = getTypeFromTypeNode(e.type); - if (!isArrayLikeType(type)) { - error2(e, Diagnostics.A_rest_element_type_must_be_an_array_type); - break; - } - if (isArrayType(type) || isTupleType(type) && type.target.combinedFlags & 4 /* Rest */) { - seenRestElement = true; - } - } - else if (flags & 4 /* Rest */) { - if (seenRestElement) { - grammarErrorOnNode(e, Diagnostics.A_rest_element_cannot_follow_another_rest_element); - break; - } - seenRestElement = true; - } - else if (flags & 2 /* Optional */) { - if (seenRestElement) { - grammarErrorOnNode(e, Diagnostics.An_optional_element_cannot_follow_a_rest_element); - break; - } - seenOptionalElement = true; - } - else if (seenOptionalElement) { - grammarErrorOnNode(e, Diagnostics.A_required_element_cannot_follow_an_optional_element); - break; - } - } - } - catch (e_365_1) { e_365 = { error: e_365_1 }; } - finally { - try { - if (elementTypes_1_1 && !elementTypes_1_1.done && (_t = elementTypes_1.return)) _t.call(elementTypes_1); - } - finally { if (e_365) throw e_365.error; } - } - forEach(node.elements, checkSourceElement); - getTypeFromTypeNode(node); - } - function checkUnionOrIntersectionType(node) { - forEach(node.types, checkSourceElement); - getTypeFromTypeNode(node); - } - function checkIndexedAccessIndexType(type, accessNode) { - if (!(type.flags & 8388608 /* IndexedAccess */)) { - return type; - } - var objectType = type.objectType; - var indexType = type.indexType; - if (isTypeAssignableTo(indexType, getIndexType(objectType, 0 /* None */))) { - if (accessNode.kind === 212 /* ElementAccessExpression */ && isAssignmentTarget(accessNode) && getObjectFlags(objectType) & 32 /* Mapped */ && getMappedTypeModifiers(objectType) & 1 /* IncludeReadonly */) { - error2(accessNode, Diagnostics.Index_signature_in_type_0_only_permits_reading, typeToString(objectType)); - } - return type; - } - var apparentObjectType = getApparentType(objectType); - if (getIndexInfoOfType(apparentObjectType, numberType) && isTypeAssignableToKind(indexType, 296 /* NumberLike */)) { - return type; - } - if (isGenericObjectType(objectType)) { - var propertyName_1 = getPropertyNameFromIndex(indexType, accessNode); - if (propertyName_1) { - var propertySymbol = forEachType(apparentObjectType, function (t) { return getPropertyOfType(t, propertyName_1); }); - if (propertySymbol && getDeclarationModifierFlagsFromSymbol(propertySymbol) & 24 /* NonPublicAccessibilityModifier */) { - error2(accessNode, Diagnostics.Private_or_protected_member_0_cannot_be_accessed_on_a_type_parameter, unescapeLeadingUnderscores(propertyName_1)); - return errorType; - } - } - } - error2(accessNode, Diagnostics.Type_0_cannot_be_used_to_index_type_1, typeToString(indexType), typeToString(objectType)); - return errorType; - } - function checkIndexedAccessType(node) { - checkSourceElement(node.objectType); - checkSourceElement(node.indexType); - checkIndexedAccessIndexType(getTypeFromIndexedAccessTypeNode(node), node); - } - function checkMappedType(node) { - checkGrammarMappedType(node); - checkSourceElement(node.typeParameter); - checkSourceElement(node.nameType); - checkSourceElement(node.type); - if (!node.type) { - reportImplicitAny(node, anyType); - } - var type = getTypeFromMappedTypeNode(node); - var nameType = getNameTypeFromMappedType(type); - if (nameType) { - checkTypeAssignableTo(nameType, keyofConstraintType, node.nameType); - } - else { - var constraintType = getConstraintTypeFromMappedType(type); - checkTypeAssignableTo(constraintType, keyofConstraintType, getEffectiveConstraintOfTypeParameter(node.typeParameter)); - } - } - function checkGrammarMappedType(node) { - var _a; - if ((_a = node.members) == null ? void 0 : _a.length) { - return grammarErrorOnNode(node.members[0], Diagnostics.A_mapped_type_may_not_declare_properties_or_methods); - } - } - function checkThisType(node) { - getTypeFromThisTypeNode(node); - } - function checkTypeOperator(node) { - checkGrammarTypeOperatorNode(node); - checkSourceElement(node.type); - } - function checkConditionalType(node) { - forEachChild(node, checkSourceElement); - } - function checkInferType(node) { - var e_366, _t; - if (!findAncestor(node, function (n) { return n.parent && n.parent.kind === 194 /* ConditionalType */ && n.parent.extendsType === n; })) { - grammarErrorOnNode(node, Diagnostics.infer_declarations_are_only_permitted_in_the_extends_clause_of_a_conditional_type); - } - checkSourceElement(node.typeParameter); - var symbol = getSymbolOfDeclaration(node.typeParameter); - if (symbol.declarations && symbol.declarations.length > 1) { - var links = getSymbolLinks(symbol); - if (!links.typeParametersChecked) { - links.typeParametersChecked = true; - var typeParameter = getDeclaredTypeOfTypeParameter(symbol); - var declarations = getDeclarationsOfKind(symbol, 168 /* TypeParameter */); - if (!areTypeParametersIdentical(declarations, [typeParameter], function (decl) { return [decl]; })) { - var name_57 = symbolToString(symbol); - try { - for (var declarations_4 = __values(declarations), declarations_4_1 = declarations_4.next(); !declarations_4_1.done; declarations_4_1 = declarations_4.next()) { - var declaration = declarations_4_1.value; - error2(declaration.name, Diagnostics.All_declarations_of_0_must_have_identical_constraints, name_57); - } - } - catch (e_366_1) { e_366 = { error: e_366_1 }; } - finally { - try { - if (declarations_4_1 && !declarations_4_1.done && (_t = declarations_4.return)) _t.call(declarations_4); - } - finally { if (e_366) throw e_366.error; } - } - } - } - } - registerForUnusedIdentifiersCheck(node); - } - function checkTemplateLiteralType(node) { - var e_367, _t; - try { - for (var _u = __values(node.templateSpans), _v = _u.next(); !_v.done; _v = _u.next()) { - var span = _v.value; - checkSourceElement(span.type); - var type = getTypeFromTypeNode(span.type); - checkTypeAssignableTo(type, templateConstraintType, span.type); - } - } - catch (e_367_1) { e_367 = { error: e_367_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_367) throw e_367.error; } - } - getTypeFromTypeNode(node); - } - function checkImportType(node) { - checkSourceElement(node.argument); - if (node.assertions) { - var override = getResolutionModeOverrideForClause(node.assertions.assertClause, grammarErrorOnNode); - if (override) { - if (!isNightly()) { - grammarErrorOnNode(node.assertions.assertClause, Diagnostics.resolution_mode_assertions_are_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next); - } - if (getEmitModuleResolutionKind(compilerOptions) !== 3 /* Node16 */ && getEmitModuleResolutionKind(compilerOptions) !== 99 /* NodeNext */) { - grammarErrorOnNode(node.assertions.assertClause, Diagnostics.resolution_mode_assertions_are_only_supported_when_moduleResolution_is_node16_or_nodenext); - } - } - } - checkTypeReferenceOrImport(node); - } - function checkNamedTupleMember(node) { - if (node.dotDotDotToken && node.questionToken) { - grammarErrorOnNode(node, Diagnostics.A_tuple_member_cannot_be_both_optional_and_rest); - } - if (node.type.kind === 190 /* OptionalType */) { - grammarErrorOnNode(node.type, Diagnostics.A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_colon_rather_than_after_the_type); - } - if (node.type.kind === 191 /* RestType */) { - grammarErrorOnNode(node.type, Diagnostics.A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type); - } - checkSourceElement(node.type); - getTypeFromTypeNode(node); - } - function isPrivateWithinAmbient(node) { - return (hasEffectiveModifier(node, 8 /* Private */) || isPrivateIdentifierClassElementDeclaration(node)) && !!(node.flags & 33554432 /* Ambient */); - } - function getEffectiveDeclarationFlags(n, flagsToCheck) { - var flags = getCombinedModifierFlagsCached(n); - if (n.parent.kind !== 264 /* InterfaceDeclaration */ && n.parent.kind !== 263 /* ClassDeclaration */ && n.parent.kind !== 231 /* ClassExpression */ && n.flags & 33554432 /* Ambient */) { - var container = getEnclosingContainer(n); - if (container && container.flags & 128 /* ExportContext */ && !(flags & 2 /* Ambient */) && !(isModuleBlock(n.parent) && isModuleDeclaration(n.parent.parent) && isGlobalScopeAugmentation(n.parent.parent))) { - flags |= 1 /* Export */; - } - flags |= 2 /* Ambient */; - } - return flags & flagsToCheck; - } - function checkFunctionOrConstructorSymbol(symbol) { - addLazyDiagnostic(function () { return checkFunctionOrConstructorSymbolWorker(symbol); }); - } - function checkFunctionOrConstructorSymbolWorker(symbol) { - var e_368, _t, e_369, _u, e_370, _v, e_371, _w; - function getCanonicalOverload(overloads, implementation) { - var implementationSharesContainerWithFirstOverload = implementation !== void 0 && implementation.parent === overloads[0].parent; - return implementationSharesContainerWithFirstOverload ? implementation : overloads[0]; - } - function checkFlagAgreementBetweenOverloads(overloads, implementation, flagsToCheck2, someOverloadFlags, allOverloadFlags) { - var someButNotAllOverloadFlags = someOverloadFlags ^ allOverloadFlags; - if (someButNotAllOverloadFlags !== 0) { - var canonicalFlags_1 = getEffectiveDeclarationFlags(getCanonicalOverload(overloads, implementation), flagsToCheck2); - forEach(overloads, function (o) { - var deviation = getEffectiveDeclarationFlags(o, flagsToCheck2) ^ canonicalFlags_1; - if (deviation & 1 /* Export */) { - error2(getNameOfDeclaration(o), Diagnostics.Overload_signatures_must_all_be_exported_or_non_exported); - } - else if (deviation & 2 /* Ambient */) { - error2(getNameOfDeclaration(o), Diagnostics.Overload_signatures_must_all_be_ambient_or_non_ambient); - } - else if (deviation & (8 /* Private */ | 16 /* Protected */)) { - error2(getNameOfDeclaration(o) || o, Diagnostics.Overload_signatures_must_all_be_public_private_or_protected); - } - else if (deviation & 256 /* Abstract */) { - error2(getNameOfDeclaration(o), Diagnostics.Overload_signatures_must_all_be_abstract_or_non_abstract); - } - }); - } - } - function checkQuestionTokenAgreementBetweenOverloads(overloads, implementation, someHaveQuestionToken2, allHaveQuestionToken2) { - if (someHaveQuestionToken2 !== allHaveQuestionToken2) { - var canonicalHasQuestionToken_1 = hasQuestionToken(getCanonicalOverload(overloads, implementation)); - forEach(overloads, function (o) { - var deviation = hasQuestionToken(o) !== canonicalHasQuestionToken_1; - if (deviation) { - error2(getNameOfDeclaration(o), Diagnostics.Overload_signatures_must_all_be_optional_or_required); - } - }); - } - } - var flagsToCheck = 1 /* Export */ | 2 /* Ambient */ | 8 /* Private */ | 16 /* Protected */ | 256 /* Abstract */; - var someNodeFlags = 0 /* None */; - var allNodeFlags = flagsToCheck; - var someHaveQuestionToken = false; - var allHaveQuestionToken = true; - var hasOverloads = false; - var bodyDeclaration; - var lastSeenNonAmbientDeclaration; - var previousDeclaration; - var declarations = symbol.declarations; - var isConstructor = (symbol.flags & 16384 /* Constructor */) !== 0; - function reportImplementationExpectedError(node) { - if (node.name && nodeIsMissing(node.name)) { - return; - } - var seen = false; - var subsequentNode = forEachChild(node.parent, function (c) { - if (seen) { - return c; - } - else { - seen = c === node; - } - }); - if (subsequentNode && subsequentNode.pos === node.end) { - if (subsequentNode.kind === node.kind) { - var errorNode2 = subsequentNode.name || subsequentNode; - var subsequentName = subsequentNode.name; - if (node.name && subsequentName && // both are private identifiers - (isPrivateIdentifier(node.name) && isPrivateIdentifier(subsequentName) && node.name.escapedText === subsequentName.escapedText || // Both are computed property names - isComputedPropertyName(node.name) && isComputedPropertyName(subsequentName) && isTypeIdenticalTo(checkComputedPropertyName(node.name), checkComputedPropertyName(subsequentName)) || // Both are literal property names that are the same. - isPropertyNameLiteral(node.name) && isPropertyNameLiteral(subsequentName) && getEscapedTextOfIdentifierOrLiteral(node.name) === getEscapedTextOfIdentifierOrLiteral(subsequentName))) { - var reportError_2 = (node.kind === 174 /* MethodDeclaration */ || node.kind === 173 /* MethodSignature */) && isStatic(node) !== isStatic(subsequentNode); - if (reportError_2) { - var diagnostic = isStatic(node) ? Diagnostics.Function_overload_must_be_static : Diagnostics.Function_overload_must_not_be_static; - error2(errorNode2, diagnostic); - } - return; - } - if (nodeIsPresent(subsequentNode.body)) { - error2(errorNode2, Diagnostics.Function_implementation_name_must_be_0, declarationNameToString(node.name)); - return; - } - } - } - var errorNode = node.name || node; - if (isConstructor) { - error2(errorNode, Diagnostics.Constructor_implementation_is_missing); - } - else { - if (hasSyntacticModifier(node, 256 /* Abstract */)) { - error2(errorNode, Diagnostics.All_declarations_of_an_abstract_method_must_be_consecutive); - } - else { - error2(errorNode, Diagnostics.Function_implementation_is_missing_or_not_immediately_following_the_declaration); - } - } - } - var duplicateFunctionDeclaration = false; - var multipleConstructorImplementation = false; - var hasNonAmbientClass = false; - var functionDeclarations = []; - if (declarations) { - try { - for (var declarations_5 = __values(declarations), declarations_5_1 = declarations_5.next(); !declarations_5_1.done; declarations_5_1 = declarations_5.next()) { - var current = declarations_5_1.value; - var node = current; - var inAmbientContext = node.flags & 33554432 /* Ambient */; - var inAmbientContextOrInterface = node.parent && (node.parent.kind === 264 /* InterfaceDeclaration */ || node.parent.kind === 187 /* TypeLiteral */) || inAmbientContext; - if (inAmbientContextOrInterface) { - previousDeclaration = void 0; - } - if ((node.kind === 263 /* ClassDeclaration */ || node.kind === 231 /* ClassExpression */) && !inAmbientContext) { - hasNonAmbientClass = true; - } - if (node.kind === 262 /* FunctionDeclaration */ || node.kind === 174 /* MethodDeclaration */ || node.kind === 173 /* MethodSignature */ || node.kind === 176 /* Constructor */) { - functionDeclarations.push(node); - var currentNodeFlags = getEffectiveDeclarationFlags(node, flagsToCheck); - someNodeFlags |= currentNodeFlags; - allNodeFlags &= currentNodeFlags; - someHaveQuestionToken = someHaveQuestionToken || hasQuestionToken(node); - allHaveQuestionToken = allHaveQuestionToken && hasQuestionToken(node); - var bodyIsPresent = nodeIsPresent(node.body); - if (bodyIsPresent && bodyDeclaration) { - if (isConstructor) { - multipleConstructorImplementation = true; - } - else { - duplicateFunctionDeclaration = true; - } - } - else if ((previousDeclaration == null ? void 0 : previousDeclaration.parent) === node.parent && previousDeclaration.end !== node.pos) { - reportImplementationExpectedError(previousDeclaration); - } - if (bodyIsPresent) { - if (!bodyDeclaration) { - bodyDeclaration = node; - } - } - else { - hasOverloads = true; - } - previousDeclaration = node; - if (!inAmbientContextOrInterface) { - lastSeenNonAmbientDeclaration = node; - } - } - if (isInJSFile(current) && isFunctionLike(current) && current.jsDoc) { - try { - for (var _x = (e_369 = void 0, __values(current.jsDoc)), _y = _x.next(); !_y.done; _y = _x.next()) { - var node2 = _y.value; - if (node2.tags) { - try { - for (var _z = (e_370 = void 0, __values(node2.tags)), _10 = _z.next(); !_10.done; _10 = _z.next()) { - var tag = _10.value; - if (isJSDocOverloadTag(tag)) { - hasOverloads = true; - } - } - } - catch (e_370_1) { e_370 = { error: e_370_1 }; } - finally { - try { - if (_10 && !_10.done && (_v = _z.return)) _v.call(_z); - } - finally { if (e_370) throw e_370.error; } - } - } - } - } - catch (e_369_1) { e_369 = { error: e_369_1 }; } - finally { - try { - if (_y && !_y.done && (_u = _x.return)) _u.call(_x); - } - finally { if (e_369) throw e_369.error; } - } - } - } - } - catch (e_368_1) { e_368 = { error: e_368_1 }; } - finally { - try { - if (declarations_5_1 && !declarations_5_1.done && (_t = declarations_5.return)) _t.call(declarations_5); - } - finally { if (e_368) throw e_368.error; } - } - } - if (multipleConstructorImplementation) { - forEach(functionDeclarations, function (declaration) { - error2(declaration, Diagnostics.Multiple_constructor_implementations_are_not_allowed); - }); - } - if (duplicateFunctionDeclaration) { - forEach(functionDeclarations, function (declaration) { - error2(getNameOfDeclaration(declaration) || declaration, Diagnostics.Duplicate_function_implementation); - }); - } - if (hasNonAmbientClass && !isConstructor && symbol.flags & 16 /* Function */ && declarations) { - var relatedDiagnostics_1 = filter(declarations, function (d) { return d.kind === 263; } /* ClassDeclaration */).map(function (d) { return createDiagnosticForNode(d, Diagnostics.Consider_adding_a_declare_modifier_to_this_class); }); - forEach(declarations, function (declaration) { - var diagnostic = declaration.kind === 263 /* ClassDeclaration */ ? Diagnostics.Class_declaration_cannot_implement_overload_list_for_0 : declaration.kind === 262 /* FunctionDeclaration */ ? Diagnostics.Function_with_bodies_can_only_merge_with_classes_that_are_ambient : void 0; - if (diagnostic) { - addRelatedInfo.apply(void 0, __spreadArray([error2(getNameOfDeclaration(declaration) || declaration, diagnostic, symbolName(symbol))], __read(relatedDiagnostics_1), false)); - } - }); - } - if (lastSeenNonAmbientDeclaration && !lastSeenNonAmbientDeclaration.body && !hasSyntacticModifier(lastSeenNonAmbientDeclaration, 256 /* Abstract */) && !lastSeenNonAmbientDeclaration.questionToken) { - reportImplementationExpectedError(lastSeenNonAmbientDeclaration); - } - if (hasOverloads) { - if (declarations) { - checkFlagAgreementBetweenOverloads(declarations, bodyDeclaration, flagsToCheck, someNodeFlags, allNodeFlags); - checkQuestionTokenAgreementBetweenOverloads(declarations, bodyDeclaration, someHaveQuestionToken, allHaveQuestionToken); - } - if (bodyDeclaration) { - var signatures = getSignaturesOfSymbol(symbol); - var bodySignature = getSignatureFromDeclaration(bodyDeclaration); - try { - for (var signatures_10 = __values(signatures), signatures_10_1 = signatures_10.next(); !signatures_10_1.done; signatures_10_1 = signatures_10.next()) { - var signature = signatures_10_1.value; - if (!isImplementationCompatibleWithOverload(bodySignature, signature)) { - var errorNode = signature.declaration && isJSDocSignature(signature.declaration) ? signature.declaration.parent.tagName : signature.declaration; - addRelatedInfo(error2(errorNode, Diagnostics.This_overload_signature_is_not_compatible_with_its_implementation_signature), createDiagnosticForNode(bodyDeclaration, Diagnostics.The_implementation_signature_is_declared_here)); - break; - } - } - } - catch (e_371_1) { e_371 = { error: e_371_1 }; } - finally { - try { - if (signatures_10_1 && !signatures_10_1.done && (_w = signatures_10.return)) _w.call(signatures_10); - } - finally { if (e_371) throw e_371.error; } - } - } - } - } - function checkExportsOnMergedDeclarations(node) { - addLazyDiagnostic(function () { return checkExportsOnMergedDeclarationsWorker(node); }); - } - function checkExportsOnMergedDeclarationsWorker(node) { - var e_372, _t, e_373, _u; - var symbol = node.localSymbol; - if (!symbol) { - symbol = getSymbolOfDeclaration(node); - if (!symbol.exportSymbol) { - return; - } - } - if (getDeclarationOfKind(symbol, node.kind) !== node) { - return; - } - var exportedDeclarationSpaces = 0 /* None */; - var nonExportedDeclarationSpaces = 0 /* None */; - var defaultExportedDeclarationSpaces = 0 /* None */; - try { - for (var _v = __values(symbol.declarations), _w = _v.next(); !_w.done; _w = _v.next()) { - var d = _w.value; - var declarationSpaces = getDeclarationSpaces(d); - var effectiveDeclarationFlags = getEffectiveDeclarationFlags(d, 1 /* Export */ | 1024 /* Default */); - if (effectiveDeclarationFlags & 1 /* Export */) { - if (effectiveDeclarationFlags & 1024 /* Default */) { - defaultExportedDeclarationSpaces |= declarationSpaces; - } - else { - exportedDeclarationSpaces |= declarationSpaces; - } - } - else { - nonExportedDeclarationSpaces |= declarationSpaces; - } - } - } - catch (e_372_1) { e_372 = { error: e_372_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_372) throw e_372.error; } - } - var nonDefaultExportedDeclarationSpaces = exportedDeclarationSpaces | nonExportedDeclarationSpaces; - var commonDeclarationSpacesForExportsAndLocals = exportedDeclarationSpaces & nonExportedDeclarationSpaces; - var commonDeclarationSpacesForDefaultAndNonDefault = defaultExportedDeclarationSpaces & nonDefaultExportedDeclarationSpaces; - if (commonDeclarationSpacesForExportsAndLocals || commonDeclarationSpacesForDefaultAndNonDefault) { - try { - for (var _x = __values(symbol.declarations), _y = _x.next(); !_y.done; _y = _x.next()) { - var d = _y.value; - var declarationSpaces = getDeclarationSpaces(d); - var name_58 = getNameOfDeclaration(d); - if (declarationSpaces & commonDeclarationSpacesForDefaultAndNonDefault) { - error2(name_58, Diagnostics.Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_default_0_declaration_instead, declarationNameToString(name_58)); - } - else if (declarationSpaces & commonDeclarationSpacesForExportsAndLocals) { - error2(name_58, Diagnostics.Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local, declarationNameToString(name_58)); - } - } - } - catch (e_373_1) { e_373 = { error: e_373_1 }; } - finally { - try { - if (_y && !_y.done && (_u = _x.return)) _u.call(_x); - } - finally { if (e_373) throw e_373.error; } - } - } - function getDeclarationSpaces(decl) { - var d = decl; - switch (d.kind) { - case 264 /* InterfaceDeclaration */: - case 265 /* TypeAliasDeclaration */: - case 353 /* JSDocTypedefTag */: - case 345 /* JSDocCallbackTag */: - case 347 /* JSDocEnumTag */: - return 2 /* ExportType */; - case 267 /* ModuleDeclaration */: - return isAmbientModule(d) || getModuleInstanceState(d) !== 0 /* NonInstantiated */ ? 4 /* ExportNamespace */ | 1 /* ExportValue */ : 4 /* ExportNamespace */; - case 263 /* ClassDeclaration */: - case 266 /* EnumDeclaration */: - case 306 /* EnumMember */: - return 2 /* ExportType */ | 1 /* ExportValue */; - case 312 /* SourceFile */: - return 2 /* ExportType */ | 1 /* ExportValue */ | 4 /* ExportNamespace */; - case 277 /* ExportAssignment */: - case 226 /* BinaryExpression */: - var node2 = d; - var expression = isExportAssignment(node2) ? node2.expression : node2.right; - if (!isEntityNameExpression(expression)) { - return 1 /* ExportValue */; - } - d = expression; - case 271 /* ImportEqualsDeclaration */: - case 274 /* NamespaceImport */: - case 273 /* ImportClause */: - var result_3 = 0 /* None */; - var target = resolveAlias(getSymbolOfDeclaration(d)); - forEach(target.declarations, function (d2) { - result_3 |= getDeclarationSpaces(d2); - }); - return result_3; - case 260 /* VariableDeclaration */: - case 208 /* BindingElement */: - case 262 /* FunctionDeclaration */: - case 276 /* ImportSpecifier */: - case 80 /* Identifier */: - return 1 /* ExportValue */; - case 173 /* MethodSignature */: - case 171 /* PropertySignature */: - return 2 /* ExportType */; - default: - return Debug.failBadSyntaxKind(d); - } - } - } - function getAwaitedTypeOfPromise(type, errorNode, diagnosticMessage) { - var args = []; - for (var _t = 3; _t < arguments.length; _t++) { - args[_t - 3] = arguments[_t]; - } - var promisedType = getPromisedTypeOfPromise(type, errorNode); - return promisedType && getAwaitedType.apply(void 0, __spreadArray([promisedType, errorNode, diagnosticMessage], __read(args), false)); - } - function getPromisedTypeOfPromise(type, errorNode, thisTypeForErrorOut) { - var e_374, _t; - if (isTypeAny(type)) { - return void 0; - } - var typeAsPromise = type; - if (typeAsPromise.promisedTypeOfPromise) { - return typeAsPromise.promisedTypeOfPromise; - } - if (isReferenceToType2(type, getGlobalPromiseType( - /*reportErrors*/ - false))) { - return typeAsPromise.promisedTypeOfPromise = getTypeArguments(type)[0]; - } - if (allTypesAssignableToKind(getBaseConstraintOrType(type), 402784252 /* Primitive */ | 131072 /* Never */)) { - return void 0; - } - var thenFunction = getTypeOfPropertyOfType(type, "then"); - if (isTypeAny(thenFunction)) { - return void 0; - } - var thenSignatures = thenFunction ? getSignaturesOfType(thenFunction, 0 /* Call */) : emptyArray; - if (thenSignatures.length === 0) { - if (errorNode) { - error2(errorNode, Diagnostics.A_promise_must_have_a_then_method); - } - return void 0; - } - var thisTypeForError; - var candidates; - try { - for (var thenSignatures_1 = __values(thenSignatures), thenSignatures_1_1 = thenSignatures_1.next(); !thenSignatures_1_1.done; thenSignatures_1_1 = thenSignatures_1.next()) { - var thenSignature = thenSignatures_1_1.value; - var thisType = getThisTypeOfSignature(thenSignature); - if (thisType && thisType !== voidType && !isTypeRelatedTo(type, thisType, subtypeRelation)) { - thisTypeForError = thisType; - } - else { - candidates = append(candidates, thenSignature); - } - } - } - catch (e_374_1) { e_374 = { error: e_374_1 }; } - finally { - try { - if (thenSignatures_1_1 && !thenSignatures_1_1.done && (_t = thenSignatures_1.return)) _t.call(thenSignatures_1); - } - finally { if (e_374) throw e_374.error; } - } - if (!candidates) { - Debug.assertIsDefined(thisTypeForError); - if (thisTypeForErrorOut) { - thisTypeForErrorOut.value = thisTypeForError; - } - if (errorNode) { - error2(errorNode, Diagnostics.The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1, typeToString(type), typeToString(thisTypeForError)); - } - return void 0; - } - var onfulfilledParameterType = getTypeWithFacts(getUnionType(map(candidates, getTypeOfFirstParameterOfSignature)), 2097152 /* NEUndefinedOrNull */); - if (isTypeAny(onfulfilledParameterType)) { - return void 0; - } - var onfulfilledParameterSignatures = getSignaturesOfType(onfulfilledParameterType, 0 /* Call */); - if (onfulfilledParameterSignatures.length === 0) { - if (errorNode) { - error2(errorNode, Diagnostics.The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback); - } - return void 0; - } - return typeAsPromise.promisedTypeOfPromise = getUnionType(map(onfulfilledParameterSignatures, getTypeOfFirstParameterOfSignature), 2 /* Subtype */); - } - function checkAwaitedType(type, withAlias, errorNode, diagnosticMessage) { - var args = []; - for (var _t = 4; _t < arguments.length; _t++) { - args[_t - 4] = arguments[_t]; - } - var awaitedType = withAlias ? getAwaitedType.apply(void 0, __spreadArray([type, errorNode, diagnosticMessage], __read(args), false)) : getAwaitedTypeNoAlias.apply(void 0, __spreadArray([type, errorNode, diagnosticMessage], __read(args), false)); - return awaitedType || errorType; - } - function isThenableType(type) { - if (allTypesAssignableToKind(getBaseConstraintOrType(type), 402784252 /* Primitive */ | 131072 /* Never */)) { - return false; - } - var thenFunction = getTypeOfPropertyOfType(type, "then"); - return !!thenFunction && getSignaturesOfType(getTypeWithFacts(thenFunction, 2097152 /* NEUndefinedOrNull */), 0 /* Call */).length > 0; - } - function isAwaitedTypeInstantiation(type) { - var _a; - if (type.flags & 16777216 /* Conditional */) { - var awaitedSymbol = getGlobalAwaitedSymbol( - /*reportErrors*/ - false); - return !!awaitedSymbol && type.aliasSymbol === awaitedSymbol && ((_a = type.aliasTypeArguments) == null ? void 0 : _a.length) === 1; - } - return false; - } - function unwrapAwaitedType(type) { - return type.flags & 1048576 /* Union */ ? mapType(type, unwrapAwaitedType) : isAwaitedTypeInstantiation(type) ? type.aliasTypeArguments[0] : type; - } - function isAwaitedTypeNeeded(type) { - if (isTypeAny(type) || isAwaitedTypeInstantiation(type)) { - return false; - } - if (isGenericObjectType(type)) { - var baseConstraint = getBaseConstraintOfType(type); - if (baseConstraint ? baseConstraint.flags & 3 /* AnyOrUnknown */ || isEmptyObjectType(baseConstraint) || someType(baseConstraint, isThenableType) : maybeTypeOfKind(type, 8650752 /* TypeVariable */)) { - return true; - } - } - return false; - } - function tryCreateAwaitedType(type) { - var awaitedSymbol = getGlobalAwaitedSymbol( - /*reportErrors*/ - true); - if (awaitedSymbol) { - return getTypeAliasInstantiation(awaitedSymbol, [unwrapAwaitedType(type)]); - } - return void 0; - } - function createAwaitedTypeIfNeeded(type) { - if (isAwaitedTypeNeeded(type)) { - var awaitedType = tryCreateAwaitedType(type); - if (awaitedType) { - return awaitedType; - } - } - Debug.assert(isAwaitedTypeInstantiation(type) || getPromisedTypeOfPromise(type) === void 0, "type provided should not be a non-generic 'promise'-like."); - return type; - } - function getAwaitedType(type, errorNode, diagnosticMessage) { - var args = []; - for (var _t = 3; _t < arguments.length; _t++) { - args[_t - 3] = arguments[_t]; - } - var awaitedType = getAwaitedTypeNoAlias.apply(void 0, __spreadArray([type, errorNode, diagnosticMessage], __read(args), false)); - return awaitedType && createAwaitedTypeIfNeeded(awaitedType); - } - function getAwaitedTypeNoAlias(type, errorNode, diagnosticMessage) { - var args = []; - for (var _t = 3; _t < arguments.length; _t++) { - args[_t - 3] = arguments[_t]; - } - if (isTypeAny(type)) { - return type; - } - if (isAwaitedTypeInstantiation(type)) { - return type; - } - var typeAsAwaitable = type; - if (typeAsAwaitable.awaitedTypeOfType) { - return typeAsAwaitable.awaitedTypeOfType; - } - if (type.flags & 1048576 /* Union */) { - if (awaitedTypeStack.lastIndexOf(type.id) >= 0) { - if (errorNode) { - error2(errorNode, Diagnostics.Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method); - } - return void 0; - } - var mapper = errorNode ? function (constituentType) { return getAwaitedTypeNoAlias.apply(void 0, __spreadArray([constituentType, errorNode, diagnosticMessage], __read(args), false)); } : getAwaitedTypeNoAlias; - awaitedTypeStack.push(type.id); - var mapped = mapType(type, mapper); - awaitedTypeStack.pop(); - return typeAsAwaitable.awaitedTypeOfType = mapped; - } - if (isAwaitedTypeNeeded(type)) { - return typeAsAwaitable.awaitedTypeOfType = type; - } - var thisTypeForErrorOut = { value: void 0 }; - var promisedType = getPromisedTypeOfPromise(type, - /*errorNode*/ - void 0, thisTypeForErrorOut); - if (promisedType) { - if (type.id === promisedType.id || awaitedTypeStack.lastIndexOf(promisedType.id) >= 0) { - if (errorNode) { - error2(errorNode, Diagnostics.Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method); - } - return void 0; - } - awaitedTypeStack.push(type.id); - var awaitedType = getAwaitedTypeNoAlias.apply(void 0, __spreadArray([promisedType, errorNode, diagnosticMessage], __read(args), false)); - awaitedTypeStack.pop(); - if (!awaitedType) { - return void 0; - } - return typeAsAwaitable.awaitedTypeOfType = awaitedType; - } - if (isThenableType(type)) { - if (errorNode) { - Debug.assertIsDefined(diagnosticMessage); - var chain = void 0; - if (thisTypeForErrorOut.value) { - chain = chainDiagnosticMessages(chain, Diagnostics.The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1, typeToString(type), typeToString(thisTypeForErrorOut.value)); - } - chain = chainDiagnosticMessages.apply(void 0, __spreadArray([chain, diagnosticMessage], __read(args), false)); - diagnostics.add(createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(errorNode), errorNode, chain)); - } - return void 0; - } - return typeAsAwaitable.awaitedTypeOfType = type; - } - function checkAsyncFunctionReturnType(node, returnTypeNode, returnTypeErrorLocation) { - var returnType = getTypeFromTypeNode(returnTypeNode); - if (languageVersion >= 2 /* ES2015 */) { - if (isErrorType(returnType)) { - return; - } - var globalPromiseType = getGlobalPromiseType( - /*reportErrors*/ - true); - if (globalPromiseType !== emptyGenericType && !isReferenceToType2(returnType, globalPromiseType)) { - reportErrorForInvalidReturnType(Diagnostics.The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0, returnTypeNode, returnTypeErrorLocation, typeToString(getAwaitedTypeNoAlias(returnType) || voidType)); - return; - } - } - else { - markTypeNodeAsReferenced(returnTypeNode); - if (isErrorType(returnType)) { - return; - } - var promiseConstructorName = getEntityNameFromTypeNode(returnTypeNode); - if (promiseConstructorName === void 0) { - reportErrorForInvalidReturnType(Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value, returnTypeNode, returnTypeErrorLocation, typeToString(returnType)); - return; - } - var promiseConstructorSymbol = resolveEntityName(promiseConstructorName, 111551 /* Value */, - /*ignoreErrors*/ - true); - var promiseConstructorType = promiseConstructorSymbol ? getTypeOfSymbol(promiseConstructorSymbol) : errorType; - if (isErrorType(promiseConstructorType)) { - if (promiseConstructorName.kind === 80 /* Identifier */ && promiseConstructorName.escapedText === "Promise" && getTargetType(returnType) === getGlobalPromiseType( - /*reportErrors*/ - false)) { - error2(returnTypeErrorLocation, Diagnostics.An_async_function_or_method_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option); - } - else { - reportErrorForInvalidReturnType(Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value, returnTypeNode, returnTypeErrorLocation, entityNameToString(promiseConstructorName)); - } - return; - } - var globalPromiseConstructorLikeType = getGlobalPromiseConstructorLikeType( - /*reportErrors*/ - true); - if (globalPromiseConstructorLikeType === emptyObjectType) { - reportErrorForInvalidReturnType(Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value, returnTypeNode, returnTypeErrorLocation, entityNameToString(promiseConstructorName)); - return; - } - var headMessage = Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value; - var errorInfo = function () { return returnTypeNode === returnTypeErrorLocation ? void 0 : chainDiagnosticMessages( - /*details*/ - void 0, Diagnostics.The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type); }; - if (!checkTypeAssignableTo(promiseConstructorType, globalPromiseConstructorLikeType, returnTypeErrorLocation, headMessage, errorInfo)) { - return; - } - var rootName = promiseConstructorName && getFirstIdentifier(promiseConstructorName); - var collidingSymbol = getSymbol2(node.locals, rootName.escapedText, 111551 /* Value */); - if (collidingSymbol) { - error2(collidingSymbol.valueDeclaration, Diagnostics.Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions, idText(rootName), entityNameToString(promiseConstructorName)); - return; - } - } - checkAwaitedType(returnType, - /*withAlias*/ - false, node, Diagnostics.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member); - function reportErrorForInvalidReturnType(message, returnTypeNode2, returnTypeErrorLocation2, typeName) { - if (returnTypeNode2 === returnTypeErrorLocation2) { - error2(returnTypeErrorLocation2, message, typeName); - } - else { - var diag2 = error2(returnTypeErrorLocation2, Diagnostics.The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type); - addRelatedInfo(diag2, createDiagnosticForNode(returnTypeNode2, message, typeName)); - } - } - } - function checkDecorator(node) { - var signature = getResolvedSignature(node); - checkDeprecatedSignature(signature, node); - var returnType = getReturnTypeOfSignature(signature); - if (returnType.flags & 1 /* Any */) { - return; - } - var decoratorSignature = getDecoratorCallSignature(node); - if (!(decoratorSignature == null ? void 0 : decoratorSignature.resolvedReturnType)) - return; - var headMessage; - var expectedReturnType = decoratorSignature.resolvedReturnType; - switch (node.parent.kind) { - case 263 /* ClassDeclaration */: - case 231 /* ClassExpression */: - headMessage = Diagnostics.Decorator_function_return_type_0_is_not_assignable_to_type_1; - break; - case 172 /* PropertyDeclaration */: - if (!legacyDecorators) { - headMessage = Diagnostics.Decorator_function_return_type_0_is_not_assignable_to_type_1; - break; - } - case 169 /* Parameter */: - headMessage = Diagnostics.Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any; - break; - case 174 /* MethodDeclaration */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - headMessage = Diagnostics.Decorator_function_return_type_0_is_not_assignable_to_type_1; - break; - default: - return Debug.failBadSyntaxKind(node.parent); - } - checkTypeAssignableTo(returnType, expectedReturnType, node.expression, headMessage); - } - function createCallSignature(typeParameters, thisParameter, parameters, returnType, typePredicate, minArgumentCount, flags /* None */) { - if (minArgumentCount === void 0) { minArgumentCount = parameters.length; } - if (flags === void 0) { flags = 0; } - var decl = factory.createFunctionTypeNode( - /*typeParameters*/ - void 0, emptyArray, factory.createKeywordTypeNode(133 /* AnyKeyword */)); - return createSignature(decl, typeParameters, thisParameter, parameters, returnType, typePredicate, minArgumentCount, flags); - } - function createFunctionType(typeParameters, thisParameter, parameters, returnType, typePredicate, minArgumentCount, flags) { - var signature = createCallSignature(typeParameters, thisParameter, parameters, returnType, typePredicate, minArgumentCount, flags); - return getOrCreateTypeFromSignature(signature); - } - function createGetterFunctionType(type) { - return createFunctionType( - /*typeParameters*/ - void 0, - /*thisParameter*/ - void 0, emptyArray, type); - } - function createSetterFunctionType(type) { - var valueParam = createParameter("value", type); - return createFunctionType( - /*typeParameters*/ - void 0, - /*thisParameter*/ - void 0, [valueParam], voidType); - } - function markTypeNodeAsReferenced(node) { - markEntityNameOrEntityExpressionAsReference(node && getEntityNameFromTypeNode(node), - /*forDecoratorMetadata*/ - false); - } - function markEntityNameOrEntityExpressionAsReference(typeName, forDecoratorMetadata) { - if (!typeName) - return; - var rootName = getFirstIdentifier(typeName); - var meaning = (typeName.kind === 80 /* Identifier */ ? 788968 /* Type */ : 1920 /* Namespace */) | 2097152 /* Alias */; - var rootSymbol = resolveName(rootName, rootName.escapedText, meaning, - /*nameNotFoundMessage*/ - void 0, - /*nameArg*/ - void 0, - /*isUse*/ - true); - if (rootSymbol && rootSymbol.flags & 2097152 /* Alias */) { - if (canCollectSymbolAliasAccessabilityData && symbolIsValue(rootSymbol) && !isConstEnumOrConstEnumOnlyModule(resolveAlias(rootSymbol)) && !getTypeOnlyAliasDeclaration(rootSymbol)) { - markAliasSymbolAsReferenced(rootSymbol); - } - else if (forDecoratorMetadata && getIsolatedModules(compilerOptions) && getEmitModuleKind(compilerOptions) >= 5 /* ES2015 */ && !symbolIsValue(rootSymbol) && !some(rootSymbol.declarations, isTypeOnlyImportOrExportDeclaration)) { - var diag2 = error2(typeName, Diagnostics.A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_when_isolatedModules_and_emitDecoratorMetadata_are_enabled); - var aliasDeclaration = find(rootSymbol.declarations || emptyArray, isAliasSymbolDeclaration2); - if (aliasDeclaration) { - addRelatedInfo(diag2, createDiagnosticForNode(aliasDeclaration, Diagnostics._0_was_imported_here, idText(rootName))); - } - } - } - } - function markDecoratorMedataDataTypeNodeAsReferenced(node) { - var entityName = getEntityNameForDecoratorMetadata(node); - if (entityName && isEntityName(entityName)) { - markEntityNameOrEntityExpressionAsReference(entityName, - /*forDecoratorMetadata*/ - true); - } - } - function getEntityNameForDecoratorMetadata(node) { - if (node) { - switch (node.kind) { - case 193 /* IntersectionType */: - case 192 /* UnionType */: - return getEntityNameForDecoratorMetadataFromTypeList(node.types); - case 194 /* ConditionalType */: - return getEntityNameForDecoratorMetadataFromTypeList([node.trueType, node.falseType]); - case 196 /* ParenthesizedType */: - case 202 /* NamedTupleMember */: - return getEntityNameForDecoratorMetadata(node.type); - case 183 /* TypeReference */: - return node.typeName; - } - } - } - function getEntityNameForDecoratorMetadataFromTypeList(types) { - var e_375, _t; - var commonEntityName; - try { - for (var types_20 = __values(types), types_20_1 = types_20.next(); !types_20_1.done; types_20_1 = types_20.next()) { - var typeNode = types_20_1.value; - while (typeNode.kind === 196 /* ParenthesizedType */ || typeNode.kind === 202 /* NamedTupleMember */) { - typeNode = typeNode.type; - } - if (typeNode.kind === 146 /* NeverKeyword */) { - continue; - } - if (!strictNullChecks && (typeNode.kind === 201 /* LiteralType */ && typeNode.literal.kind === 106 /* NullKeyword */ || typeNode.kind === 157 /* UndefinedKeyword */)) { - continue; - } - var individualEntityName = getEntityNameForDecoratorMetadata(typeNode); - if (!individualEntityName) { - return void 0; - } - if (commonEntityName) { - if (!isIdentifier(commonEntityName) || !isIdentifier(individualEntityName) || commonEntityName.escapedText !== individualEntityName.escapedText) { - return void 0; - } - } - else { - commonEntityName = individualEntityName; - } - } - } - catch (e_375_1) { e_375 = { error: e_375_1 }; } - finally { - try { - if (types_20_1 && !types_20_1.done && (_t = types_20.return)) _t.call(types_20); - } - finally { if (e_375) throw e_375.error; } - } - return commonEntityName; - } - function getParameterTypeNodeForDecoratorCheck(node) { - var typeNode = getEffectiveTypeAnnotationNode(node); - return isRestParameter(node) ? getRestParameterElementType(typeNode) : typeNode; - } - function checkDecorators(node) { - var e_376, _t, e_377, _u, e_378, _v, e_379, _w; - if (!canHaveDecorators(node) || !hasDecorators(node) || !node.modifiers || !nodeCanBeDecorated(legacyDecorators, node, node.parent, node.parent.parent)) { - return; - } - var firstDecorator = find(node.modifiers, isDecorator); - if (!firstDecorator) { - return; - } - if (legacyDecorators) { - checkExternalEmitHelpers(firstDecorator, 8 /* Decorate */); - if (node.kind === 169 /* Parameter */) { - checkExternalEmitHelpers(firstDecorator, 32 /* Param */); - } - } - else if (languageVersion < 99 /* ESNext */) { - checkExternalEmitHelpers(firstDecorator, 8 /* ESDecorateAndRunInitializers */); - if (isClassDeclaration(node)) { - if (!node.name) { - checkExternalEmitHelpers(firstDecorator, 8388608 /* SetFunctionName */); - } - else { - var member = getFirstTransformableStaticClassElement(node); - if (member) { - checkExternalEmitHelpers(firstDecorator, 8388608 /* SetFunctionName */); - } - } - } - else if (!isClassExpression(node)) { - if (isPrivateIdentifier(node.name) && (isMethodDeclaration(node) || isAccessor(node) || isAutoAccessorPropertyDeclaration(node))) { - checkExternalEmitHelpers(firstDecorator, 8388608 /* SetFunctionName */); - } - if (isComputedPropertyName(node.name)) { - checkExternalEmitHelpers(firstDecorator, 16777216 /* PropKey */); - } - } - } - if (compilerOptions.emitDecoratorMetadata) { - checkExternalEmitHelpers(firstDecorator, 16 /* Metadata */); - switch (node.kind) { - case 263 /* ClassDeclaration */: - var constructor = getFirstConstructorWithBody(node); - if (constructor) { - try { - for (var _x = __values(constructor.parameters), _y = _x.next(); !_y.done; _y = _x.next()) { - var parameter = _y.value; - markDecoratorMedataDataTypeNodeAsReferenced(getParameterTypeNodeForDecoratorCheck(parameter)); - } - } - catch (e_376_1) { e_376 = { error: e_376_1 }; } - finally { - try { - if (_y && !_y.done && (_t = _x.return)) _t.call(_x); - } - finally { if (e_376) throw e_376.error; } - } - } - break; - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - var otherKind = node.kind === 177 /* GetAccessor */ ? 178 /* SetAccessor */ : 177 /* GetAccessor */; - var otherAccessor = getDeclarationOfKind(getSymbolOfDeclaration(node), otherKind); - markDecoratorMedataDataTypeNodeAsReferenced(getAnnotatedAccessorTypeNode(node) || otherAccessor && getAnnotatedAccessorTypeNode(otherAccessor)); - break; - case 174 /* MethodDeclaration */: - try { - for (var _z = __values(node.parameters), _10 = _z.next(); !_10.done; _10 = _z.next()) { - var parameter = _10.value; - markDecoratorMedataDataTypeNodeAsReferenced(getParameterTypeNodeForDecoratorCheck(parameter)); - } - } - catch (e_377_1) { e_377 = { error: e_377_1 }; } - finally { - try { - if (_10 && !_10.done && (_u = _z.return)) _u.call(_z); - } - finally { if (e_377) throw e_377.error; } - } - markDecoratorMedataDataTypeNodeAsReferenced(getEffectiveReturnTypeNode(node)); - break; - case 172 /* PropertyDeclaration */: - markDecoratorMedataDataTypeNodeAsReferenced(getEffectiveTypeAnnotationNode(node)); - break; - case 169 /* Parameter */: - markDecoratorMedataDataTypeNodeAsReferenced(getParameterTypeNodeForDecoratorCheck(node)); - var containingSignature = node.parent; - try { - for (var _11 = __values(containingSignature.parameters), _12 = _11.next(); !_12.done; _12 = _11.next()) { - var parameter = _12.value; - markDecoratorMedataDataTypeNodeAsReferenced(getParameterTypeNodeForDecoratorCheck(parameter)); - } - } - catch (e_378_1) { e_378 = { error: e_378_1 }; } - finally { - try { - if (_12 && !_12.done && (_v = _11.return)) _v.call(_11); - } - finally { if (e_378) throw e_378.error; } - } - markDecoratorMedataDataTypeNodeAsReferenced(getEffectiveReturnTypeNode(containingSignature)); - break; - } - } - try { - for (var _13 = __values(node.modifiers), _14 = _13.next(); !_14.done; _14 = _13.next()) { - var modifier = _14.value; - if (isDecorator(modifier)) { - checkDecorator(modifier); - } - } - } - catch (e_379_1) { e_379 = { error: e_379_1 }; } - finally { - try { - if (_14 && !_14.done && (_w = _13.return)) _w.call(_13); - } - finally { if (e_379) throw e_379.error; } - } - } - function checkFunctionDeclaration(node) { - addLazyDiagnostic(checkFunctionDeclarationDiagnostics); - function checkFunctionDeclarationDiagnostics() { - checkFunctionOrMethodDeclaration(node); - checkGrammarForGenerator(node); - checkCollisionsForDeclarationName(node, node.name); - } - } - function checkJSDocTypeAliasTag(node) { - if (!node.typeExpression) { - error2(node.name, Diagnostics.JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags); - } - if (node.name) { - checkTypeNameIsReserved(node.name, Diagnostics.Type_alias_name_cannot_be_0); - } - checkSourceElement(node.typeExpression); - checkTypeParameters(getEffectiveTypeParameterDeclarations(node)); - } - function checkJSDocTemplateTag(node) { - var e_380, _t; - checkSourceElement(node.constraint); - try { - for (var _u = __values(node.typeParameters), _v = _u.next(); !_v.done; _v = _u.next()) { - var tp = _v.value; - checkSourceElement(tp); - } - } - catch (e_380_1) { e_380 = { error: e_380_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_380) throw e_380.error; } - } - } - function checkJSDocTypeTag(node) { - checkSourceElement(node.typeExpression); - } - function checkJSDocSatisfiesTag(node) { - checkSourceElement(node.typeExpression); - var host2 = getEffectiveJSDocHost(node); - if (host2) { - var tags = getAllJSDocTags(host2, isJSDocSatisfiesTag); - if (length(tags) > 1) { - for (var i = 1; i < length(tags); i++) { - var tagName = tags[i].tagName; - error2(tagName, Diagnostics._0_tag_already_specified, idText(tagName)); - } - } - } - } - function checkJSDocLinkLikeTag(node) { - if (node.name) { - resolveJSDocMemberName(node.name, - /*ignoreErrors*/ - true); - } - } - function checkJSDocParameterTag(node) { - checkSourceElement(node.typeExpression); - } - function checkJSDocPropertyTag(node) { - checkSourceElement(node.typeExpression); - } - function checkJSDocFunctionType(node) { - addLazyDiagnostic(checkJSDocFunctionTypeImplicitAny); - checkSignatureDeclaration(node); - function checkJSDocFunctionTypeImplicitAny() { - if (!node.type && !isJSDocConstructSignature(node)) { - reportImplicitAny(node, anyType); - } - } - } - function checkJSDocImplementsTag(node) { - var classLike = getEffectiveJSDocHost(node); - if (!classLike || !isClassDeclaration(classLike) && !isClassExpression(classLike)) { - error2(classLike, Diagnostics.JSDoc_0_is_not_attached_to_a_class, idText(node.tagName)); - } - } - function checkJSDocAugmentsTag(node) { - var classLike = getEffectiveJSDocHost(node); - if (!classLike || !isClassDeclaration(classLike) && !isClassExpression(classLike)) { - error2(classLike, Diagnostics.JSDoc_0_is_not_attached_to_a_class, idText(node.tagName)); - return; - } - var augmentsTags = getJSDocTags(classLike).filter(isJSDocAugmentsTag); - Debug.assert(augmentsTags.length > 0); - if (augmentsTags.length > 1) { - error2(augmentsTags[1], Diagnostics.Class_declarations_cannot_have_more_than_one_augments_or_extends_tag); - } - var name = getIdentifierFromEntityNameExpression(node.class.expression); - var extend2 = getClassExtendsHeritageElement(classLike); - if (extend2) { - var className = getIdentifierFromEntityNameExpression(extend2.expression); - if (className && name.escapedText !== className.escapedText) { - error2(name, Diagnostics.JSDoc_0_1_does_not_match_the_extends_2_clause, idText(node.tagName), idText(name), idText(className)); - } - } - } - function checkJSDocAccessibilityModifiers(node) { - var host2 = getJSDocHost(node); - if (host2 && isPrivateIdentifierClassElementDeclaration(host2)) { - error2(node, Diagnostics.An_accessibility_modifier_cannot_be_used_with_a_private_identifier); - } - } - function getIdentifierFromEntityNameExpression(node) { - switch (node.kind) { - case 80 /* Identifier */: - return node; - case 211 /* PropertyAccessExpression */: - return node.name; - default: - return void 0; - } - } - function checkFunctionOrMethodDeclaration(node) { - var _a; - checkDecorators(node); - checkSignatureDeclaration(node); - var functionFlags = getFunctionFlags(node); - if (node.name && node.name.kind === 167 /* ComputedPropertyName */) { - checkComputedPropertyName(node.name); - } - if (hasBindableName(node)) { - var symbol = getSymbolOfDeclaration(node); - var localSymbol = node.localSymbol || symbol; - var firstDeclaration = (_a = localSymbol.declarations) == null ? void 0 : _a.find( - // Get first non javascript function declaration - function (declaration) { return declaration.kind === node.kind && !(declaration.flags & 524288 /* JavaScriptFile */); }); - if (node === firstDeclaration) { - checkFunctionOrConstructorSymbol(localSymbol); - } - if (symbol.parent) { - checkFunctionOrConstructorSymbol(symbol); - } - } - var body = node.kind === 173 /* MethodSignature */ ? void 0 : node.body; - checkSourceElement(body); - checkAllCodePathsInNonVoidFunctionReturnOrThrow(node, getReturnTypeFromAnnotation(node)); - addLazyDiagnostic(checkFunctionOrMethodDeclarationDiagnostics); - if (isInJSFile(node)) { - var typeTag = getJSDocTypeTag(node); - if (typeTag && typeTag.typeExpression && !getContextualCallSignature(getTypeFromTypeNode(typeTag.typeExpression), node)) { - error2(typeTag.typeExpression.type, Diagnostics.The_type_of_a_function_declaration_must_match_the_function_s_signature); - } - } - function checkFunctionOrMethodDeclarationDiagnostics() { - if (!getEffectiveReturnTypeNode(node)) { - if (nodeIsMissing(body) && !isPrivateWithinAmbient(node)) { - reportImplicitAny(node, anyType); - } - if (functionFlags & 1 /* Generator */ && nodeIsPresent(body)) { - getReturnTypeOfSignature(getSignatureFromDeclaration(node)); - } - } - } - } - function registerForUnusedIdentifiersCheck(node) { - addLazyDiagnostic(registerForUnusedIdentifiersCheckDiagnostics); - function registerForUnusedIdentifiersCheckDiagnostics() { - var sourceFile = getSourceFileOfNode(node); - var potentiallyUnusedIdentifiers = allPotentiallyUnusedIdentifiers.get(sourceFile.path); - if (!potentiallyUnusedIdentifiers) { - potentiallyUnusedIdentifiers = []; - allPotentiallyUnusedIdentifiers.set(sourceFile.path, potentiallyUnusedIdentifiers); - } - potentiallyUnusedIdentifiers.push(node); - } - } - function checkUnusedIdentifiers(potentiallyUnusedIdentifiers, addDiagnostic) { - var e_381, _t; - try { - for (var potentiallyUnusedIdentifiers_1 = __values(potentiallyUnusedIdentifiers), potentiallyUnusedIdentifiers_1_1 = potentiallyUnusedIdentifiers_1.next(); !potentiallyUnusedIdentifiers_1_1.done; potentiallyUnusedIdentifiers_1_1 = potentiallyUnusedIdentifiers_1.next()) { - var node = potentiallyUnusedIdentifiers_1_1.value; - switch (node.kind) { - case 263 /* ClassDeclaration */: - case 231 /* ClassExpression */: - checkUnusedClassMembers(node, addDiagnostic); - checkUnusedTypeParameters(node, addDiagnostic); - break; - case 312 /* SourceFile */: - case 267 /* ModuleDeclaration */: - case 241 /* Block */: - case 269 /* CaseBlock */: - case 248 /* ForStatement */: - case 249 /* ForInStatement */: - case 250 /* ForOfStatement */: - checkUnusedLocalsAndParameters(node, addDiagnostic); - break; - case 176 /* Constructor */: - case 218 /* FunctionExpression */: - case 262 /* FunctionDeclaration */: - case 219 /* ArrowFunction */: - case 174 /* MethodDeclaration */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - if (node.body) { - checkUnusedLocalsAndParameters(node, addDiagnostic); - } - checkUnusedTypeParameters(node, addDiagnostic); - break; - case 173 /* MethodSignature */: - case 179 /* CallSignature */: - case 180 /* ConstructSignature */: - case 184 /* FunctionType */: - case 185 /* ConstructorType */: - case 265 /* TypeAliasDeclaration */: - case 264 /* InterfaceDeclaration */: - checkUnusedTypeParameters(node, addDiagnostic); - break; - case 195 /* InferType */: - checkUnusedInferTypeParameter(node, addDiagnostic); - break; - default: - Debug.assertNever(node, "Node should not have been registered for unused identifiers check"); - } - } - } - catch (e_381_1) { e_381 = { error: e_381_1 }; } - finally { - try { - if (potentiallyUnusedIdentifiers_1_1 && !potentiallyUnusedIdentifiers_1_1.done && (_t = potentiallyUnusedIdentifiers_1.return)) _t.call(potentiallyUnusedIdentifiers_1); - } - finally { if (e_381) throw e_381.error; } - } - } - function errorUnusedLocal(declaration, name, addDiagnostic) { - var node = getNameOfDeclaration(declaration) || declaration; - var message = isTypeDeclaration(declaration) ? Diagnostics._0_is_declared_but_never_used : Diagnostics._0_is_declared_but_its_value_is_never_read; - addDiagnostic(declaration, 0 /* Local */, createDiagnosticForNode(node, message, name)); - } - function isIdentifierThatStartsWithUnderscore(node) { - return isIdentifier(node) && idText(node).charCodeAt(0) === 95 /* _ */; - } - function checkUnusedClassMembers(node, addDiagnostic) { - var e_382, _t, e_383, _u; - try { - for (var _v = __values(node.members), _w = _v.next(); !_w.done; _w = _v.next()) { - var member = _w.value; - switch (member.kind) { - case 174 /* MethodDeclaration */: - case 172 /* PropertyDeclaration */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - if (member.kind === 178 /* SetAccessor */ && member.symbol.flags & 32768 /* GetAccessor */) { - break; - } - var symbol = getSymbolOfDeclaration(member); - if (!symbol.isReferenced && (hasEffectiveModifier(member, 8 /* Private */) || isNamedDeclaration(member) && isPrivateIdentifier(member.name)) && !(member.flags & 33554432 /* Ambient */)) { - addDiagnostic(member, 0 /* Local */, createDiagnosticForNode(member.name, Diagnostics._0_is_declared_but_its_value_is_never_read, symbolToString(symbol))); - } - break; - case 176 /* Constructor */: - try { - for (var _x = (e_383 = void 0, __values(member.parameters)), _y = _x.next(); !_y.done; _y = _x.next()) { - var parameter = _y.value; - if (!parameter.symbol.isReferenced && hasSyntacticModifier(parameter, 8 /* Private */)) { - addDiagnostic(parameter, 0 /* Local */, createDiagnosticForNode(parameter.name, Diagnostics.Property_0_is_declared_but_its_value_is_never_read, symbolName(parameter.symbol))); - } - } - } - catch (e_383_1) { e_383 = { error: e_383_1 }; } - finally { - try { - if (_y && !_y.done && (_u = _x.return)) _u.call(_x); - } - finally { if (e_383) throw e_383.error; } - } - break; - case 181 /* IndexSignature */: - case 240 /* SemicolonClassElement */: - case 175 /* ClassStaticBlockDeclaration */: - break; - default: - Debug.fail("Unexpected class member"); - } - } - } - catch (e_382_1) { e_382 = { error: e_382_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_382) throw e_382.error; } - } - } - function checkUnusedInferTypeParameter(node, addDiagnostic) { - var typeParameter = node.typeParameter; - if (isTypeParameterUnused(typeParameter)) { - addDiagnostic(node, 1 /* Parameter */, createDiagnosticForNode(node, Diagnostics._0_is_declared_but_its_value_is_never_read, idText(typeParameter.name))); - } - } - function checkUnusedTypeParameters(node, addDiagnostic) { - var e_384, _t; - var declarations = getSymbolOfDeclaration(node).declarations; - if (!declarations || last(declarations) !== node) - return; - var typeParameters = getEffectiveTypeParameterDeclarations(node); - var seenParentsWithEveryUnused = /* @__PURE__ */ new Set(); - try { - for (var typeParameters_4 = __values(typeParameters), typeParameters_4_1 = typeParameters_4.next(); !typeParameters_4_1.done; typeParameters_4_1 = typeParameters_4.next()) { - var typeParameter = typeParameters_4_1.value; - if (!isTypeParameterUnused(typeParameter)) - continue; - var name_59 = idText(typeParameter.name); - var parent2 = typeParameter.parent; - if (parent2.kind !== 195 /* InferType */ && parent2.typeParameters.every(isTypeParameterUnused)) { - if (tryAddToSet(seenParentsWithEveryUnused, parent2)) { - var sourceFile = getSourceFileOfNode(parent2); - var range = isJSDocTemplateTag(parent2) ? rangeOfNode(parent2) : rangeOfTypeParameters(sourceFile, parent2.typeParameters); - var only = parent2.typeParameters.length === 1; - var messageAndArg = only ? [Diagnostics._0_is_declared_but_its_value_is_never_read, name_59] : [Diagnostics.All_type_parameters_are_unused]; - addDiagnostic(typeParameter, 1 /* Parameter */, createFileDiagnostic.apply(void 0, __spreadArray([sourceFile, range.pos, range.end - range.pos], __read(messageAndArg), false))); - } - } - else { - addDiagnostic(typeParameter, 1 /* Parameter */, createDiagnosticForNode(typeParameter, Diagnostics._0_is_declared_but_its_value_is_never_read, name_59)); - } - } - } - catch (e_384_1) { e_384 = { error: e_384_1 }; } - finally { - try { - if (typeParameters_4_1 && !typeParameters_4_1.done && (_t = typeParameters_4.return)) _t.call(typeParameters_4); - } - finally { if (e_384) throw e_384.error; } - } - } - function isTypeParameterUnused(typeParameter) { - return !(getMergedSymbol(typeParameter.symbol).isReferenced & 262144 /* TypeParameter */) && !isIdentifierThatStartsWithUnderscore(typeParameter.name); - } - function addToGroup(map2, key, value, getKey) { - var keyString = String(getKey(key)); - var group2 = map2.get(keyString); - if (group2) { - group2[1].push(value); - } - else { - map2.set(keyString, [key, [value]]); - } - } - function tryGetRootParameterDeclaration(node) { - return tryCast(getRootDeclaration(node), isParameter); - } - function isValidUnusedLocalDeclaration(declaration) { - if (isBindingElement(declaration)) { - if (isObjectBindingPattern(declaration.parent)) { - return !!(declaration.propertyName && isIdentifierThatStartsWithUnderscore(declaration.name)); - } - return isIdentifierThatStartsWithUnderscore(declaration.name); - } - return isAmbientModule(declaration) || (isVariableDeclaration(declaration) && isForInOrOfStatement(declaration.parent.parent) || isImportedDeclaration(declaration)) && isIdentifierThatStartsWithUnderscore(declaration.name); - } - function checkUnusedLocalsAndParameters(nodeWithLocals, addDiagnostic) { - var unusedImports = /* @__PURE__ */ new Map(); - var unusedDestructures = /* @__PURE__ */ new Map(); - var unusedVariables = /* @__PURE__ */ new Map(); - nodeWithLocals.locals.forEach(function (local) { - var e_385, _t; - if (local.flags & 262144 /* TypeParameter */ ? !(local.flags & 3 /* Variable */ && !(local.isReferenced & 3 /* Variable */)) : local.isReferenced || local.exportSymbol) { - return; - } - if (local.declarations) { - try { - for (var _u = __values(local.declarations), _v = _u.next(); !_v.done; _v = _u.next()) { - var declaration = _v.value; - if (isValidUnusedLocalDeclaration(declaration)) { - continue; - } - if (isImportedDeclaration(declaration)) { - addToGroup(unusedImports, importClauseFromImported(declaration), declaration, getNodeId); - } - else if (isBindingElement(declaration) && isObjectBindingPattern(declaration.parent)) { - var lastElement = last(declaration.parent.elements); - if (declaration === lastElement || !last(declaration.parent.elements).dotDotDotToken) { - addToGroup(unusedDestructures, declaration.parent, declaration, getNodeId); - } - } - else if (isVariableDeclaration(declaration)) { - var blockScopeKind = getCombinedNodeFlagsCached(declaration) & 7 /* BlockScoped */; - var name_60 = getNameOfDeclaration(declaration); - if (blockScopeKind !== 4 /* Using */ && blockScopeKind !== 6 /* AwaitUsing */ || !name_60 || !isIdentifierThatStartsWithUnderscore(name_60)) { - addToGroup(unusedVariables, declaration.parent, declaration, getNodeId); - } - } - else { - var parameter = local.valueDeclaration && tryGetRootParameterDeclaration(local.valueDeclaration); - var name_61 = local.valueDeclaration && getNameOfDeclaration(local.valueDeclaration); - if (parameter && name_61) { - if (!isParameterPropertyDeclaration(parameter, parameter.parent) && !parameterIsThisKeyword(parameter) && !isIdentifierThatStartsWithUnderscore(name_61)) { - if (isBindingElement(declaration) && isArrayBindingPattern(declaration.parent)) { - addToGroup(unusedDestructures, declaration.parent, declaration, getNodeId); - } - else { - addDiagnostic(parameter, 1 /* Parameter */, createDiagnosticForNode(name_61, Diagnostics._0_is_declared_but_its_value_is_never_read, symbolName(local))); - } - } - } - else { - errorUnusedLocal(declaration, symbolName(local), addDiagnostic); - } - } - } - } - catch (e_385_1) { e_385 = { error: e_385_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_385) throw e_385.error; } - } - } - }); - unusedImports.forEach(function (_t) { - var e_386, _u; - var _v = __read(_t, 2), importClause = _v[0], unuseds = _v[1]; - var importDecl = importClause.parent; - var nDeclarations = (importClause.name ? 1 : 0) + (importClause.namedBindings ? importClause.namedBindings.kind === 274 /* NamespaceImport */ ? 1 : importClause.namedBindings.elements.length : 0); - if (nDeclarations === unuseds.length) { - addDiagnostic(importDecl, 0 /* Local */, unuseds.length === 1 ? createDiagnosticForNode(importDecl, Diagnostics._0_is_declared_but_its_value_is_never_read, idText(first(unuseds).name)) : createDiagnosticForNode(importDecl, Diagnostics.All_imports_in_import_declaration_are_unused)); - } - else { - try { - for (var unuseds_1 = __values(unuseds), unuseds_1_1 = unuseds_1.next(); !unuseds_1_1.done; unuseds_1_1 = unuseds_1.next()) { - var unused = unuseds_1_1.value; - errorUnusedLocal(unused, idText(unused.name), addDiagnostic); - } - } - catch (e_386_1) { e_386 = { error: e_386_1 }; } - finally { - try { - if (unuseds_1_1 && !unuseds_1_1.done && (_u = unuseds_1.return)) _u.call(unuseds_1); - } - finally { if (e_386) throw e_386.error; } - } - } - }); - unusedDestructures.forEach(function (_t) { - var e_387, _u; - var _v = __read(_t, 2), bindingPattern = _v[0], bindingElements = _v[1]; - var kind = tryGetRootParameterDeclaration(bindingPattern.parent) ? 1 /* Parameter */ : 0 /* Local */; - if (bindingPattern.elements.length === bindingElements.length) { - if (bindingElements.length === 1 && bindingPattern.parent.kind === 260 /* VariableDeclaration */ && bindingPattern.parent.parent.kind === 261 /* VariableDeclarationList */) { - addToGroup(unusedVariables, bindingPattern.parent.parent, bindingPattern.parent, getNodeId); - } - else { - addDiagnostic(bindingPattern, kind, bindingElements.length === 1 ? createDiagnosticForNode(bindingPattern, Diagnostics._0_is_declared_but_its_value_is_never_read, bindingNameText(first(bindingElements).name)) : createDiagnosticForNode(bindingPattern, Diagnostics.All_destructured_elements_are_unused)); - } - } - else { - try { - for (var bindingElements_1 = __values(bindingElements), bindingElements_1_1 = bindingElements_1.next(); !bindingElements_1_1.done; bindingElements_1_1 = bindingElements_1.next()) { - var e = bindingElements_1_1.value; - addDiagnostic(e, kind, createDiagnosticForNode(e, Diagnostics._0_is_declared_but_its_value_is_never_read, bindingNameText(e.name))); - } - } - catch (e_387_1) { e_387 = { error: e_387_1 }; } - finally { - try { - if (bindingElements_1_1 && !bindingElements_1_1.done && (_u = bindingElements_1.return)) _u.call(bindingElements_1); - } - finally { if (e_387) throw e_387.error; } - } - } - }); - unusedVariables.forEach(function (_t) { - var e_388, _u; - var _v = __read(_t, 2), declarationList = _v[0], declarations = _v[1]; - if (declarationList.declarations.length === declarations.length) { - addDiagnostic(declarationList, 0 /* Local */, declarations.length === 1 ? createDiagnosticForNode(first(declarations).name, Diagnostics._0_is_declared_but_its_value_is_never_read, bindingNameText(first(declarations).name)) : createDiagnosticForNode(declarationList.parent.kind === 243 /* VariableStatement */ ? declarationList.parent : declarationList, Diagnostics.All_variables_are_unused)); - } - else { - try { - for (var declarations_6 = __values(declarations), declarations_6_1 = declarations_6.next(); !declarations_6_1.done; declarations_6_1 = declarations_6.next()) { - var decl = declarations_6_1.value; - addDiagnostic(decl, 0 /* Local */, createDiagnosticForNode(decl, Diagnostics._0_is_declared_but_its_value_is_never_read, bindingNameText(decl.name))); - } - } - catch (e_388_1) { e_388 = { error: e_388_1 }; } - finally { - try { - if (declarations_6_1 && !declarations_6_1.done && (_u = declarations_6.return)) _u.call(declarations_6); - } - finally { if (e_388) throw e_388.error; } - } - } - }); - } - function checkPotentialUncheckedRenamedBindingElementsInTypes() { - var e_389, _t; - var _a; - try { - for (var potentialUnusedRenamedBindingElementsInTypes_1 = __values(potentialUnusedRenamedBindingElementsInTypes), potentialUnusedRenamedBindingElementsInTypes_1_1 = potentialUnusedRenamedBindingElementsInTypes_1.next(); !potentialUnusedRenamedBindingElementsInTypes_1_1.done; potentialUnusedRenamedBindingElementsInTypes_1_1 = potentialUnusedRenamedBindingElementsInTypes_1.next()) { - var node = potentialUnusedRenamedBindingElementsInTypes_1_1.value; - if (!((_a = getSymbolOfDeclaration(node)) == null ? void 0 : _a.isReferenced)) { - var wrappingDeclaration = walkUpBindingElementsAndPatterns(node); - Debug.assert(isParameterDeclaration(wrappingDeclaration), "Only parameter declaration should be checked here"); - var diagnostic = createDiagnosticForNode(node.name, Diagnostics._0_is_an_unused_renaming_of_1_Did_you_intend_to_use_it_as_a_type_annotation, declarationNameToString(node.name), declarationNameToString(node.propertyName)); - if (!wrappingDeclaration.type) { - addRelatedInfo(diagnostic, createFileDiagnostic(getSourceFileOfNode(wrappingDeclaration), wrappingDeclaration.end, 1, Diagnostics.We_can_only_write_a_type_for_0_by_adding_a_type_for_the_entire_parameter_here, declarationNameToString(node.propertyName))); - } - diagnostics.add(diagnostic); - } - } - } - catch (e_389_1) { e_389 = { error: e_389_1 }; } - finally { - try { - if (potentialUnusedRenamedBindingElementsInTypes_1_1 && !potentialUnusedRenamedBindingElementsInTypes_1_1.done && (_t = potentialUnusedRenamedBindingElementsInTypes_1.return)) _t.call(potentialUnusedRenamedBindingElementsInTypes_1); - } - finally { if (e_389) throw e_389.error; } - } - } - function bindingNameText(name) { - switch (name.kind) { - case 80 /* Identifier */: - return idText(name); - case 207 /* ArrayBindingPattern */: - case 206 /* ObjectBindingPattern */: - return bindingNameText(cast(first(name.elements), isBindingElement).name); - default: - return Debug.assertNever(name); - } - } - function isImportedDeclaration(node) { - return node.kind === 273 /* ImportClause */ || node.kind === 276 /* ImportSpecifier */ || node.kind === 274 /* NamespaceImport */; - } - function importClauseFromImported(decl) { - return decl.kind === 273 /* ImportClause */ ? decl : decl.kind === 274 /* NamespaceImport */ ? decl.parent : decl.parent.parent; - } - function checkBlock(node) { - if (node.kind === 241 /* Block */) { - checkGrammarStatementInAmbientContext(node); - } - if (isFunctionOrModuleBlock(node)) { - var saveFlowAnalysisDisabled = flowAnalysisDisabled; - forEach(node.statements, checkSourceElement); - flowAnalysisDisabled = saveFlowAnalysisDisabled; - } - else { - forEach(node.statements, checkSourceElement); - } - if (node.locals) { - registerForUnusedIdentifiersCheck(node); - } - } - function checkCollisionWithArgumentsInGeneratedCode(node) { - if (languageVersion >= 2 /* ES2015 */ || !hasRestParameter(node) || node.flags & 33554432 /* Ambient */ || nodeIsMissing(node.body)) { - return; - } - forEach(node.parameters, function (p) { - if (p.name && !isBindingPattern(p.name) && p.name.escapedText === argumentsSymbol.escapedName) { - errorSkippedOn("noEmit", p, Diagnostics.Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters); - } - }); - } - function needCollisionCheckForIdentifier(node, identifier, name) { - if ((identifier == null ? void 0 : identifier.escapedText) !== name) { - return false; - } - if (node.kind === 172 /* PropertyDeclaration */ || node.kind === 171 /* PropertySignature */ || node.kind === 174 /* MethodDeclaration */ || node.kind === 173 /* MethodSignature */ || node.kind === 177 /* GetAccessor */ || node.kind === 178 /* SetAccessor */ || node.kind === 303 /* PropertyAssignment */) { - return false; - } - if (node.flags & 33554432 /* Ambient */) { - return false; - } - if (isImportClause(node) || isImportEqualsDeclaration(node) || isImportSpecifier(node)) { - if (isTypeOnlyImportOrExportDeclaration(node)) { - return false; - } - } - var root = getRootDeclaration(node); - if (isParameter(root) && nodeIsMissing(root.parent.body)) { - return false; - } - return true; - } - function checkIfThisIsCapturedInEnclosingScope(node) { - findAncestor(node, function (current) { - if (getNodeCheckFlags(current) & 4 /* CaptureThis */) { - var isDeclaration2 = node.kind !== 80 /* Identifier */; - if (isDeclaration2) { - error2(getNameOfDeclaration(node), Diagnostics.Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference); - } - else { - error2(node, Diagnostics.Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference); - } - return true; - } - return false; - }); - } - function checkIfNewTargetIsCapturedInEnclosingScope(node) { - findAncestor(node, function (current) { - if (getNodeCheckFlags(current) & 8 /* CaptureNewTarget */) { - var isDeclaration2 = node.kind !== 80 /* Identifier */; - if (isDeclaration2) { - error2(getNameOfDeclaration(node), Diagnostics.Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_meta_property_reference); - } - else { - error2(node, Diagnostics.Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta_property_reference); - } - return true; - } - return false; - }); - } - function checkCollisionWithRequireExportsInGeneratedCode(node, name) { - if (moduleKind >= 5 /* ES2015 */ && !(moduleKind >= 100 /* Node16 */ && getSourceFileOfNode(node).impliedNodeFormat === 1 /* CommonJS */)) { - return; - } - if (!name || !needCollisionCheckForIdentifier(node, name, "require") && !needCollisionCheckForIdentifier(node, name, "exports")) { - return; - } - if (isModuleDeclaration(node) && getModuleInstanceState(node) !== 1 /* Instantiated */) { - return; - } - var parent2 = getDeclarationContainer(node); - if (parent2.kind === 312 /* SourceFile */ && isExternalOrCommonJsModule(parent2)) { - errorSkippedOn("noEmit", name, Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module, declarationNameToString(name), declarationNameToString(name)); - } - } - function checkCollisionWithGlobalPromiseInGeneratedCode(node, name) { - if (!name || languageVersion >= 4 /* ES2017 */ || !needCollisionCheckForIdentifier(node, name, "Promise")) { - return; - } - if (isModuleDeclaration(node) && getModuleInstanceState(node) !== 1 /* Instantiated */) { - return; - } - var parent2 = getDeclarationContainer(node); - if (parent2.kind === 312 /* SourceFile */ && isExternalOrCommonJsModule(parent2) && parent2.flags & 4096 /* HasAsyncFunctions */) { - errorSkippedOn("noEmit", name, Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_functions, declarationNameToString(name), declarationNameToString(name)); - } - } - function recordPotentialCollisionWithWeakMapSetInGeneratedCode(node, name) { - if (languageVersion <= 8 /* ES2021 */ && (needCollisionCheckForIdentifier(node, name, "WeakMap") || needCollisionCheckForIdentifier(node, name, "WeakSet"))) { - potentialWeakMapSetCollisions.push(node); - } - } - function checkWeakMapSetCollision(node) { - var enclosingBlockScope = getEnclosingBlockScopeContainer(node); - if (getNodeCheckFlags(enclosingBlockScope) & 1048576 /* ContainsClassWithPrivateIdentifiers */) { - Debug.assert(isNamedDeclaration(node) && isIdentifier(node.name) && typeof node.name.escapedText === "string", "The target of a WeakMap/WeakSet collision check should be an identifier"); - errorSkippedOn("noEmit", node, Diagnostics.Compiler_reserves_name_0_when_emitting_private_identifier_downlevel, node.name.escapedText); - } - } - function recordPotentialCollisionWithReflectInGeneratedCode(node, name) { - if (name && languageVersion >= 2 /* ES2015 */ && languageVersion <= 8 /* ES2021 */ && needCollisionCheckForIdentifier(node, name, "Reflect")) { - potentialReflectCollisions.push(node); - } - } - function checkReflectCollision(node) { - var e_390, _t; - var hasCollision = false; - if (isClassExpression(node)) { - try { - for (var _u = __values(node.members), _v = _u.next(); !_v.done; _v = _u.next()) { - var member = _v.value; - if (getNodeCheckFlags(member) & 2097152 /* ContainsSuperPropertyInStaticInitializer */) { - hasCollision = true; - break; - } - } - } - catch (e_390_1) { e_390 = { error: e_390_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_390) throw e_390.error; } - } - } - else if (isFunctionExpression(node)) { - if (getNodeCheckFlags(node) & 2097152 /* ContainsSuperPropertyInStaticInitializer */) { - hasCollision = true; - } - } - else { - var container = getEnclosingBlockScopeContainer(node); - if (container && getNodeCheckFlags(container) & 2097152 /* ContainsSuperPropertyInStaticInitializer */) { - hasCollision = true; - } - } - if (hasCollision) { - Debug.assert(isNamedDeclaration(node) && isIdentifier(node.name), "The target of a Reflect collision check should be an identifier"); - errorSkippedOn("noEmit", node, Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_when_emitting_super_references_in_static_initializers, declarationNameToString(node.name), "Reflect"); - } - } - function checkCollisionsForDeclarationName(node, name) { - if (!name) - return; - checkCollisionWithRequireExportsInGeneratedCode(node, name); - checkCollisionWithGlobalPromiseInGeneratedCode(node, name); - recordPotentialCollisionWithWeakMapSetInGeneratedCode(node, name); - recordPotentialCollisionWithReflectInGeneratedCode(node, name); - if (isClassLike(node)) { - checkTypeNameIsReserved(name, Diagnostics.Class_name_cannot_be_0); - if (!(node.flags & 33554432 /* Ambient */)) { - checkClassNameCollisionWithObject(name); - } - } - else if (isEnumDeclaration(node)) { - checkTypeNameIsReserved(name, Diagnostics.Enum_name_cannot_be_0); - } - } - function checkVarDeclaredNamesNotShadowed(node) { - if ((getCombinedNodeFlagsCached(node) & 7 /* BlockScoped */) !== 0 || isParameterDeclaration(node)) { - return; - } - var symbol = getSymbolOfDeclaration(node); - if (symbol.flags & 1 /* FunctionScopedVariable */) { - if (!isIdentifier(node.name)) - return Debug.fail(); - var localDeclarationSymbol = resolveName(node, node.name.escapedText, 3 /* Variable */, - /*nameNotFoundMessage*/ - void 0, - /*nameArg*/ - void 0, - /*isUse*/ - false); - if (localDeclarationSymbol && localDeclarationSymbol !== symbol && localDeclarationSymbol.flags & 2 /* BlockScopedVariable */) { - if (getDeclarationNodeFlagsFromSymbol(localDeclarationSymbol) & 7 /* BlockScoped */) { - var varDeclList = getAncestor(localDeclarationSymbol.valueDeclaration, 261 /* VariableDeclarationList */); - var container = varDeclList.parent.kind === 243 /* VariableStatement */ && varDeclList.parent.parent ? varDeclList.parent.parent : void 0; - var namesShareScope = container && (container.kind === 241 /* Block */ && isFunctionLike(container.parent) || container.kind === 268 /* ModuleBlock */ || container.kind === 267 /* ModuleDeclaration */ || container.kind === 312 /* SourceFile */); - if (!namesShareScope) { - var name_62 = symbolToString(localDeclarationSymbol); - error2(node, Diagnostics.Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1, name_62, name_62); - } - } - } - } - } - function convertAutoToAny(type) { - return type === autoType ? anyType : type === autoArrayType ? anyArrayType : type; - } - function checkVariableLikeDeclaration(node) { - var _a; - checkDecorators(node); - if (!isBindingElement(node)) { - checkSourceElement(node.type); - } - if (!node.name) { - return; - } - if (node.name.kind === 167 /* ComputedPropertyName */) { - checkComputedPropertyName(node.name); - if (hasOnlyExpressionInitializer(node) && node.initializer) { - checkExpressionCached(node.initializer); - } - } - if (isBindingElement(node)) { - if (node.propertyName && isIdentifier(node.name) && isParameterDeclaration(node) && nodeIsMissing(getContainingFunction(node).body)) { - potentialUnusedRenamedBindingElementsInTypes.push(node); - return; - } - if (isObjectBindingPattern(node.parent) && node.dotDotDotToken && languageVersion < 5 /* ES2018 */) { - checkExternalEmitHelpers(node, 4 /* Rest */); - } - if (node.propertyName && node.propertyName.kind === 167 /* ComputedPropertyName */) { - checkComputedPropertyName(node.propertyName); - } - var parent2 = node.parent.parent; - var parentCheckMode = node.dotDotDotToken ? 64 /* RestBindingElement */ : 0 /* Normal */; - var parentType = getTypeForBindingElementParent(parent2, parentCheckMode); - var name_63 = node.propertyName || node.name; - if (parentType && !isBindingPattern(name_63)) { - var exprType = getLiteralTypeFromPropertyName(name_63); - if (isTypeUsableAsPropertyName(exprType)) { - var nameText = getPropertyNameFromType(exprType); - var property = getPropertyOfType(parentType, nameText); - if (property) { - markPropertyAsReferenced(property, - /*nodeForCheckWriteOnly*/ - void 0, - /*isSelfTypeAccess*/ - false); - checkPropertyAccessibility(node, !!parent2.initializer && parent2.initializer.kind === 108 /* SuperKeyword */, - /*writing*/ - false, parentType, property); - } - } - } - } - if (isBindingPattern(node.name)) { - if (node.name.kind === 207 /* ArrayBindingPattern */ && languageVersion < 2 /* ES2015 */ && compilerOptions.downlevelIteration) { - checkExternalEmitHelpers(node, 512 /* Read */); - } - forEach(node.name.elements, checkSourceElement); - } - if (isParameter(node) && node.initializer && nodeIsMissing(getContainingFunction(node).body)) { - error2(node, Diagnostics.A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation); - return; - } - if (isBindingPattern(node.name)) { - if (isInAmbientOrTypeNode(node)) { - return; - } - var needCheckInitializer = hasOnlyExpressionInitializer(node) && node.initializer && node.parent.parent.kind !== 249 /* ForInStatement */; - var needCheckWidenedType = !some(node.name.elements, not(isOmittedExpression)); - if (needCheckInitializer || needCheckWidenedType) { - var widenedType = getWidenedTypeForVariableLikeDeclaration(node); - if (needCheckInitializer) { - var initializerType = checkExpressionCached(node.initializer); - if (strictNullChecks && needCheckWidenedType) { - checkNonNullNonVoidType(initializerType, node); - } - else { - checkTypeAssignableToAndOptionallyElaborate(initializerType, getWidenedTypeForVariableLikeDeclaration(node), node, node.initializer); - } - } - if (needCheckWidenedType) { - if (isArrayBindingPattern(node.name)) { - checkIteratedTypeOrElementType(65 /* Destructuring */, widenedType, undefinedType, node); - } - else if (strictNullChecks) { - checkNonNullNonVoidType(widenedType, node); - } - } - } - return; - } - var symbol = getSymbolOfDeclaration(node); - if (symbol.flags & 2097152 /* Alias */ && (isVariableDeclarationInitializedToBareOrAccessedRequire(node) || isBindingElementOfBareOrAccessedRequire(node))) { - checkAliasSymbol(node); - return; - } - var type = convertAutoToAny(getTypeOfSymbol(symbol)); - if (node === symbol.valueDeclaration) { - var initializer = hasOnlyExpressionInitializer(node) && getEffectiveInitializer(node); - if (initializer) { - var isJSObjectLiteralInitializer = isInJSFile(node) && isObjectLiteralExpression(initializer) && (initializer.properties.length === 0 || isPrototypeAccess(node.name)) && !!((_a = symbol.exports) == null ? void 0 : _a.size); - if (!isJSObjectLiteralInitializer && node.parent.parent.kind !== 249 /* ForInStatement */) { - var initializerType = checkExpressionCached(initializer); - checkTypeAssignableToAndOptionallyElaborate(initializerType, type, node, initializer, - /*headMessage*/ - void 0); - var blockScopeKind = getCombinedNodeFlagsCached(node) & 7 /* BlockScoped */; - if (blockScopeKind === 6 /* AwaitUsing */) { - var globalAsyncDisposableType = getGlobalAsyncDisposableType( - /*reportErrors*/ - true); - var globalDisposableType = getGlobalDisposableType( - /*reportErrors*/ - true); - if (globalAsyncDisposableType !== emptyObjectType && globalDisposableType !== emptyObjectType) { - var optionalDisposableType = getUnionType([globalAsyncDisposableType, globalDisposableType, nullType, undefinedType]); - checkTypeAssignableTo(initializerType, optionalDisposableType, initializer, Diagnostics.The_initializer_of_an_await_using_declaration_must_be_either_an_object_with_a_Symbol_asyncDispose_or_Symbol_dispose_method_or_be_null_or_undefined); - } - } - else if (blockScopeKind === 4 /* Using */) { - var globalDisposableType = getGlobalDisposableType( - /*reportErrors*/ - true); - if (globalDisposableType !== emptyObjectType) { - var optionalDisposableType = getUnionType([globalDisposableType, nullType, undefinedType]); - checkTypeAssignableTo(initializerType, optionalDisposableType, initializer, Diagnostics.The_initializer_of_a_using_declaration_must_be_either_an_object_with_a_Symbol_dispose_method_or_be_null_or_undefined); - } - } - } - } - if (symbol.declarations && symbol.declarations.length > 1) { - if (some(symbol.declarations, function (d) { return d !== node && isVariableLike(d) && !areDeclarationFlagsIdentical(d, node); })) { - error2(node.name, Diagnostics.All_declarations_of_0_must_have_identical_modifiers, declarationNameToString(node.name)); - } - } - } - else { - var declarationType = convertAutoToAny(getWidenedTypeForVariableLikeDeclaration(node)); - if (!isErrorType(type) && !isErrorType(declarationType) && !isTypeIdenticalTo(type, declarationType) && !(symbol.flags & 67108864 /* Assignment */)) { - errorNextVariableOrPropertyDeclarationMustHaveSameType(symbol.valueDeclaration, type, node, declarationType); - } - if (hasOnlyExpressionInitializer(node) && node.initializer) { - checkTypeAssignableToAndOptionallyElaborate(checkExpressionCached(node.initializer), declarationType, node, node.initializer, - /*headMessage*/ - void 0); - } - if (symbol.valueDeclaration && !areDeclarationFlagsIdentical(node, symbol.valueDeclaration)) { - error2(node.name, Diagnostics.All_declarations_of_0_must_have_identical_modifiers, declarationNameToString(node.name)); - } - } - if (node.kind !== 172 /* PropertyDeclaration */ && node.kind !== 171 /* PropertySignature */) { - checkExportsOnMergedDeclarations(node); - if (node.kind === 260 /* VariableDeclaration */ || node.kind === 208 /* BindingElement */) { - checkVarDeclaredNamesNotShadowed(node); - } - checkCollisionsForDeclarationName(node, node.name); - } - } - function errorNextVariableOrPropertyDeclarationMustHaveSameType(firstDeclaration, firstType, nextDeclaration, nextType) { - var nextDeclarationName = getNameOfDeclaration(nextDeclaration); - var message = nextDeclaration.kind === 172 /* PropertyDeclaration */ || nextDeclaration.kind === 171 /* PropertySignature */ ? Diagnostics.Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_type_2 : Diagnostics.Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2; - var declName = declarationNameToString(nextDeclarationName); - var err = error2(nextDeclarationName, message, declName, typeToString(firstType), typeToString(nextType)); - if (firstDeclaration) { - addRelatedInfo(err, createDiagnosticForNode(firstDeclaration, Diagnostics._0_was_also_declared_here, declName)); - } - } - function areDeclarationFlagsIdentical(left, right) { - if (left.kind === 169 /* Parameter */ && right.kind === 260 /* VariableDeclaration */ || left.kind === 260 /* VariableDeclaration */ && right.kind === 169 /* Parameter */) { - return true; - } - if (hasQuestionToken(left) !== hasQuestionToken(right)) { - return false; - } - var interestingFlags = 8 /* Private */ | 16 /* Protected */ | 512 /* Async */ | 256 /* Abstract */ | 64 /* Readonly */ | 32 /* Static */; - return getSelectedEffectiveModifierFlags(left, interestingFlags) === getSelectedEffectiveModifierFlags(right, interestingFlags); - } - function checkVariableDeclaration(node) { - var _a, _b; - (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Check, "checkVariableDeclaration", { kind: node.kind, pos: node.pos, end: node.end, path: node.tracingPath }); - checkGrammarVariableDeclaration(node); - checkVariableLikeDeclaration(node); - (_b = tracing) == null ? void 0 : _b.pop(); - } - function checkBindingElement(node) { - checkGrammarBindingElement(node); - return checkVariableLikeDeclaration(node); - } - function checkVariableDeclarationList(node) { - var blockScopeKind = getCombinedNodeFlags(node) & 7 /* BlockScoped */; - if (blockScopeKind === 4 /* Using */ || blockScopeKind === 6 /* AwaitUsing */) { - checkExternalEmitHelpers(node, 33554432 /* AddDisposableResourceAndDisposeResources */); - } - forEach(node.declarations, checkSourceElement); - } - function checkVariableStatement(node) { - if (!checkGrammarModifiers(node) && !checkGrammarVariableDeclarationList(node.declarationList)) - checkGrammarForDisallowedBlockScopedVariableStatement(node); - checkVariableDeclarationList(node.declarationList); - } - function checkExpressionStatement(node) { - checkGrammarStatementInAmbientContext(node); - checkExpression(node.expression); - } - function checkIfStatement(node) { - checkGrammarStatementInAmbientContext(node); - var type = checkTruthinessExpression(node.expression); - checkTestingKnownTruthyCallableOrAwaitableType(node.expression, type, node.thenStatement); - checkSourceElement(node.thenStatement); - if (node.thenStatement.kind === 242 /* EmptyStatement */) { - error2(node.thenStatement, Diagnostics.The_body_of_an_if_statement_cannot_be_the_empty_statement); - } - checkSourceElement(node.elseStatement); - } - function checkTestingKnownTruthyCallableOrAwaitableType(condExpr, condType, body) { - if (!strictNullChecks) - return; - bothHelper(condExpr, body); - function bothHelper(condExpr2, body2) { - condExpr2 = skipParentheses(condExpr2); - helper(condExpr2, body2); - while (isBinaryExpression(condExpr2) && (condExpr2.operatorToken.kind === 57 /* BarBarToken */ || condExpr2.operatorToken.kind === 61 /* QuestionQuestionToken */)) { - condExpr2 = skipParentheses(condExpr2.left); - helper(condExpr2, body2); - } - } - function helper(condExpr2, body2) { - var location = isLogicalOrCoalescingBinaryExpression(condExpr2) ? skipParentheses(condExpr2.right) : condExpr2; - if (isModuleExportsAccessExpression(location)) { - return; - } - if (isLogicalOrCoalescingBinaryExpression(location)) { - bothHelper(location, body2); - return; - } - var type = location === condExpr2 ? condType : checkTruthinessExpression(location); - var isPropertyExpressionCast = isPropertyAccessExpression(location) && isTypeAssertion(location.expression); - if (!(getTypeFacts(type) & 4194304 /* Truthy */) || isPropertyExpressionCast) - return; - var callSignatures = getSignaturesOfType(type, 0 /* Call */); - var isPromise = !!getAwaitedTypeOfPromise(type); - if (callSignatures.length === 0 && !isPromise) { - return; - } - var testedNode = isIdentifier(location) ? location : isPropertyAccessExpression(location) ? location.name : void 0; - var testedSymbol = testedNode && getSymbolAtLocation(testedNode); - if (!testedSymbol && !isPromise) { - return; - } - var isUsed = testedSymbol && isBinaryExpression(condExpr2.parent) && isSymbolUsedInBinaryExpressionChain(condExpr2.parent, testedSymbol) || testedSymbol && body2 && isSymbolUsedInConditionBody(condExpr2, body2, testedNode, testedSymbol); - if (!isUsed) { - if (isPromise) { - errorAndMaybeSuggestAwait(location, - /*maybeMissingAwait*/ - true, Diagnostics.This_condition_will_always_return_true_since_this_0_is_always_defined, getTypeNameForErrorDisplay(type)); - } - else { - error2(location, Diagnostics.This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_instead); - } - } - } - } - function isSymbolUsedInConditionBody(expr, body, testedNode, testedSymbol) { - return !!forEachChild(body, function check(childNode) { - if (isIdentifier(childNode)) { - var childSymbol = getSymbolAtLocation(childNode); - if (childSymbol && childSymbol === testedSymbol) { - if (isIdentifier(expr) || isIdentifier(testedNode) && isBinaryExpression(testedNode.parent)) { - return true; - } - var testedExpression = testedNode.parent; - var childExpression = childNode.parent; - while (testedExpression && childExpression) { - if (isIdentifier(testedExpression) && isIdentifier(childExpression) || testedExpression.kind === 110 /* ThisKeyword */ && childExpression.kind === 110 /* ThisKeyword */) { - return getSymbolAtLocation(testedExpression) === getSymbolAtLocation(childExpression); - } - else if (isPropertyAccessExpression(testedExpression) && isPropertyAccessExpression(childExpression)) { - if (getSymbolAtLocation(testedExpression.name) !== getSymbolAtLocation(childExpression.name)) { - return false; - } - childExpression = childExpression.expression; - testedExpression = testedExpression.expression; - } - else if (isCallExpression(testedExpression) && isCallExpression(childExpression)) { - childExpression = childExpression.expression; - testedExpression = testedExpression.expression; - } - else { - return false; - } - } - } - } - return forEachChild(childNode, check); - }); - } - function isSymbolUsedInBinaryExpressionChain(node, testedSymbol) { - while (isBinaryExpression(node) && node.operatorToken.kind === 56 /* AmpersandAmpersandToken */) { - var isUsed = forEachChild(node.right, function visit(child) { - if (isIdentifier(child)) { - var symbol = getSymbolAtLocation(child); - if (symbol && symbol === testedSymbol) { - return true; - } - } - return forEachChild(child, visit); - }); - if (isUsed) { - return true; - } - node = node.parent; - } - return false; - } - function checkDoStatement(node) { - checkGrammarStatementInAmbientContext(node); - checkSourceElement(node.statement); - checkTruthinessExpression(node.expression); - } - function checkWhileStatement(node) { - checkGrammarStatementInAmbientContext(node); - checkTruthinessExpression(node.expression); - checkSourceElement(node.statement); - } - function checkTruthinessOfType(type, node) { - if (type.flags & 16384 /* Void */) { - error2(node, Diagnostics.An_expression_of_type_void_cannot_be_tested_for_truthiness); - } - return type; - } - function checkTruthinessExpression(node, checkMode) { - return checkTruthinessOfType(checkExpression(node, checkMode), node); - } - function checkForStatement(node) { - if (!checkGrammarStatementInAmbientContext(node)) { - if (node.initializer && node.initializer.kind === 261 /* VariableDeclarationList */) { - checkGrammarVariableDeclarationList(node.initializer); - } - } - if (node.initializer) { - if (node.initializer.kind === 261 /* VariableDeclarationList */) { - checkVariableDeclarationList(node.initializer); - } - else { - checkExpression(node.initializer); - } - } - if (node.condition) - checkTruthinessExpression(node.condition); - if (node.incrementor) - checkExpression(node.incrementor); - checkSourceElement(node.statement); - if (node.locals) { - registerForUnusedIdentifiersCheck(node); - } - } - function checkForOfStatement(node) { - checkGrammarForInOrForOfStatement(node); - var container = getContainingFunctionOrClassStaticBlock(node); - if (node.awaitModifier) { - if (container && isClassStaticBlockDeclaration(container)) { - grammarErrorOnNode(node.awaitModifier, Diagnostics.for_await_loops_cannot_be_used_inside_a_class_static_block); - } - else { - var functionFlags = getFunctionFlags(container); - if ((functionFlags & (4 /* Invalid */ | 2 /* Async */)) === 2 /* Async */ && languageVersion < 99 /* ESNext */) { - checkExternalEmitHelpers(node, 16384 /* ForAwaitOfIncludes */); - } - } - } - else if (compilerOptions.downlevelIteration && languageVersion < 2 /* ES2015 */) { - checkExternalEmitHelpers(node, 256 /* ForOfIncludes */); - } - if (node.initializer.kind === 261 /* VariableDeclarationList */) { - checkVariableDeclarationList(node.initializer); - } - else { - var varExpr = node.initializer; - var iteratedType = checkRightHandSideOfForOf(node); - if (varExpr.kind === 209 /* ArrayLiteralExpression */ || varExpr.kind === 210 /* ObjectLiteralExpression */) { - checkDestructuringAssignment(varExpr, iteratedType || errorType); - } - else { - var leftType = checkExpression(varExpr); - checkReferenceExpression(varExpr, Diagnostics.The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access, Diagnostics.The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access); - if (iteratedType) { - checkTypeAssignableToAndOptionallyElaborate(iteratedType, leftType, varExpr, node.expression); - } - } - } - checkSourceElement(node.statement); - if (node.locals) { - registerForUnusedIdentifiersCheck(node); - } - } - function checkForInStatement(node) { - checkGrammarForInOrForOfStatement(node); - var rightType = getNonNullableTypeIfNeeded(checkExpression(node.expression)); - if (node.initializer.kind === 261 /* VariableDeclarationList */) { - var variable = node.initializer.declarations[0]; - if (variable && isBindingPattern(variable.name)) { - error2(variable.name, Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern); - } - checkVariableDeclarationList(node.initializer); - } - else { - var varExpr = node.initializer; - var leftType = checkExpression(varExpr); - if (varExpr.kind === 209 /* ArrayLiteralExpression */ || varExpr.kind === 210 /* ObjectLiteralExpression */) { - error2(varExpr, Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern); - } - else if (!isTypeAssignableTo(getIndexTypeOrString(rightType), leftType)) { - error2(varExpr, Diagnostics.The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any); - } - else { - checkReferenceExpression(varExpr, Diagnostics.The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access, Diagnostics.The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access); - } - } - if (rightType === neverType || !isTypeAssignableToKind(rightType, 67108864 /* NonPrimitive */ | 58982400 /* InstantiableNonPrimitive */)) { - error2(node.expression, Diagnostics.The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_here_has_type_0, typeToString(rightType)); - } - checkSourceElement(node.statement); - if (node.locals) { - registerForUnusedIdentifiersCheck(node); - } - } - function checkRightHandSideOfForOf(statement) { - var use = statement.awaitModifier ? 15 /* ForAwaitOf */ : 13 /* ForOf */; - return checkIteratedTypeOrElementType(use, checkNonNullExpression(statement.expression), undefinedType, statement.expression); - } - function checkIteratedTypeOrElementType(use, inputType, sentType, errorNode) { - if (isTypeAny(inputType)) { - return inputType; - } - return getIteratedTypeOrElementType(use, inputType, sentType, errorNode, - /*checkAssignability*/ - true) || anyType; - } - function getIteratedTypeOrElementType(use, inputType, sentType, errorNode, checkAssignability) { - var allowAsyncIterables = (use & 2 /* AllowsAsyncIterablesFlag */) !== 0; - if (inputType === neverType) { - reportTypeNotIterableError(errorNode, inputType, allowAsyncIterables); - return void 0; - } - var uplevelIteration = languageVersion >= 2 /* ES2015 */; - var downlevelIteration = !uplevelIteration && compilerOptions.downlevelIteration; - var possibleOutOfBounds = compilerOptions.noUncheckedIndexedAccess && !!(use & 128 /* PossiblyOutOfBounds */); - if (uplevelIteration || downlevelIteration || allowAsyncIterables) { - var iterationTypes = getIterationTypesOfIterable(inputType, use, uplevelIteration ? errorNode : void 0); - if (checkAssignability) { - if (iterationTypes) { - var diagnostic = use & 8 /* ForOfFlag */ ? Diagnostics.Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_send_0 : use & 32 /* SpreadFlag */ ? Diagnostics.Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_always_send_0 : use & 64 /* DestructuringFlag */ ? Diagnostics.Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring_will_always_send_0 : use & 16 /* YieldStarFlag */ ? Diagnostics.Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_containing_generator_will_always_send_0 : void 0; - if (diagnostic) { - checkTypeAssignableTo(sentType, iterationTypes.nextType, errorNode, diagnostic); - } - } - } - if (iterationTypes || uplevelIteration) { - return possibleOutOfBounds ? includeUndefinedInIndexSignature(iterationTypes && iterationTypes.yieldType) : iterationTypes && iterationTypes.yieldType; - } - } - var arrayType = inputType; - var reportedError = false; - var hasStringConstituent = false; - if (use & 4 /* AllowsStringInputFlag */) { - if (arrayType.flags & 1048576 /* Union */) { - var arrayTypes = inputType.types; - var filteredTypes = filter(arrayTypes, function (t) { return !(t.flags & 402653316 /* StringLike */); }); - if (filteredTypes !== arrayTypes) { - arrayType = getUnionType(filteredTypes, 2 /* Subtype */); - } - } - else if (arrayType.flags & 402653316 /* StringLike */) { - arrayType = neverType; - } - hasStringConstituent = arrayType !== inputType; - if (hasStringConstituent) { - if (languageVersion < 1 /* ES5 */) { - if (errorNode) { - error2(errorNode, Diagnostics.Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher); - reportedError = true; - } - } - if (arrayType.flags & 131072 /* Never */) { - return possibleOutOfBounds ? includeUndefinedInIndexSignature(stringType) : stringType; - } - } - } - if (!isArrayLikeType(arrayType)) { - if (errorNode && !reportedError) { - var allowsStrings = !!(use & 4 /* AllowsStringInputFlag */) && !hasStringConstituent; - var _t = __read(getIterationDiagnosticDetails(allowsStrings, downlevelIteration), 2), defaultDiagnostic = _t[0], maybeMissingAwait = _t[1]; - errorAndMaybeSuggestAwait(errorNode, maybeMissingAwait && !!getAwaitedTypeOfPromise(arrayType), defaultDiagnostic, typeToString(arrayType)); - } - return hasStringConstituent ? possibleOutOfBounds ? includeUndefinedInIndexSignature(stringType) : stringType : void 0; - } - var arrayElementType = getIndexTypeOfType(arrayType, numberType); - if (hasStringConstituent && arrayElementType) { - if (arrayElementType.flags & 402653316 /* StringLike */ && !compilerOptions.noUncheckedIndexedAccess) { - return stringType; - } - return getUnionType(possibleOutOfBounds ? [arrayElementType, stringType, undefinedType] : [arrayElementType, stringType], 2 /* Subtype */); - } - return use & 128 /* PossiblyOutOfBounds */ ? includeUndefinedInIndexSignature(arrayElementType) : arrayElementType; - function getIterationDiagnosticDetails(allowsStrings, downlevelIteration2) { - var _a; - if (downlevelIteration2) { - return allowsStrings ? [Diagnostics.Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator, true] : [Diagnostics.Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator, true]; - } - var yieldType = getIterationTypeOfIterable(use, 0 /* Yield */, inputType, - /*errorNode*/ - void 0); - if (yieldType) { - return [Diagnostics.Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher, false]; - } - if (isES2015OrLaterIterable((_a = inputType.symbol) == null ? void 0 : _a.escapedName)) { - return [Diagnostics.Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher, true]; - } - return allowsStrings ? [Diagnostics.Type_0_is_not_an_array_type_or_a_string_type, true] : [Diagnostics.Type_0_is_not_an_array_type, true]; - } - } - function isES2015OrLaterIterable(n) { - switch (n) { - case "Float32Array": - case "Float64Array": - case "Int16Array": - case "Int32Array": - case "Int8Array": - case "NodeList": - case "Uint16Array": - case "Uint32Array": - case "Uint8Array": - case "Uint8ClampedArray": - return true; - } - return false; - } - function getIterationTypeOfIterable(use, typeKind, inputType, errorNode) { - if (isTypeAny(inputType)) { - return void 0; - } - var iterationTypes = getIterationTypesOfIterable(inputType, use, errorNode); - return iterationTypes && iterationTypes[getIterationTypesKeyFromIterationTypeKind(typeKind)]; - } - function createIterationTypes(yieldType, returnType, nextType) { - if (yieldType === void 0) { yieldType = neverType; } - if (returnType === void 0) { returnType = neverType; } - if (nextType === void 0) { nextType = unknownType; } - if (yieldType.flags & 67359327 /* Intrinsic */ && returnType.flags & (1 /* Any */ | 131072 /* Never */ | 2 /* Unknown */ | 16384 /* Void */ | 32768 /* Undefined */) && nextType.flags & (1 /* Any */ | 131072 /* Never */ | 2 /* Unknown */ | 16384 /* Void */ | 32768 /* Undefined */)) { - var id = getTypeListId([yieldType, returnType, nextType]); - var iterationTypes = iterationTypesCache.get(id); - if (!iterationTypes) { - iterationTypes = { yieldType: yieldType, returnType: returnType, nextType: nextType }; - iterationTypesCache.set(id, iterationTypes); - } - return iterationTypes; - } - return { yieldType: yieldType, returnType: returnType, nextType: nextType }; - } - function combineIterationTypes(array) { - var e_391, _t; - var yieldTypes; - var returnTypes; - var nextTypes; - try { - for (var array_9 = __values(array), array_9_1 = array_9.next(); !array_9_1.done; array_9_1 = array_9.next()) { - var iterationTypes = array_9_1.value; - if (iterationTypes === void 0 || iterationTypes === noIterationTypes) { - continue; - } - if (iterationTypes === anyIterationTypes) { - return anyIterationTypes; - } - yieldTypes = append(yieldTypes, iterationTypes.yieldType); - returnTypes = append(returnTypes, iterationTypes.returnType); - nextTypes = append(nextTypes, iterationTypes.nextType); - } - } - catch (e_391_1) { e_391 = { error: e_391_1 }; } - finally { - try { - if (array_9_1 && !array_9_1.done && (_t = array_9.return)) _t.call(array_9); - } - finally { if (e_391) throw e_391.error; } - } - if (yieldTypes || returnTypes || nextTypes) { - return createIterationTypes(yieldTypes && getUnionType(yieldTypes), returnTypes && getUnionType(returnTypes), nextTypes && getIntersectionType(nextTypes)); - } - return noIterationTypes; - } - function getCachedIterationTypes(type, cacheKey) { - return type[cacheKey]; - } - function setCachedIterationTypes(type, cacheKey, cachedTypes2) { - return type[cacheKey] = cachedTypes2; - } - function getIterationTypesOfIterable(type, use, errorNode) { - var e_392, _t, e_393, _u, e_394, _v; - var _a, _b; - if (isTypeAny(type)) { - return anyIterationTypes; - } - if (!(type.flags & 1048576 /* Union */)) { - var errorOutputContainer = errorNode ? { errors: void 0 } : void 0; - var iterationTypes2 = getIterationTypesOfIterableWorker(type, use, errorNode, errorOutputContainer); - if (iterationTypes2 === noIterationTypes) { - if (errorNode) { - var rootDiag = reportTypeNotIterableError(errorNode, type, !!(use & 2 /* AllowsAsyncIterablesFlag */)); - if (errorOutputContainer == null ? void 0 : errorOutputContainer.errors) { - addRelatedInfo.apply(void 0, __spreadArray([rootDiag], __read(errorOutputContainer.errors), false)); - } - } - return void 0; - } - else if ((_a = errorOutputContainer == null ? void 0 : errorOutputContainer.errors) == null ? void 0 : _a.length) { - try { - for (var _w = __values(errorOutputContainer.errors), _x = _w.next(); !_x.done; _x = _w.next()) { - var diag2 = _x.value; - diagnostics.add(diag2); - } - } - catch (e_392_1) { e_392 = { error: e_392_1 }; } - finally { - try { - if (_x && !_x.done && (_t = _w.return)) _t.call(_w); - } - finally { if (e_392) throw e_392.error; } - } - } - return iterationTypes2; - } - var cacheKey = use & 2 /* AllowsAsyncIterablesFlag */ ? "iterationTypesOfAsyncIterable" : "iterationTypesOfIterable"; - var cachedTypes2 = getCachedIterationTypes(type, cacheKey); - if (cachedTypes2) - return cachedTypes2 === noIterationTypes ? void 0 : cachedTypes2; - var allIterationTypes; - try { - for (var _y = __values(type.types), _z = _y.next(); !_z.done; _z = _y.next()) { - var constituent = _z.value; - var errorOutputContainer = errorNode ? { errors: void 0 } : void 0; - var iterationTypes2 = getIterationTypesOfIterableWorker(constituent, use, errorNode, errorOutputContainer); - if (iterationTypes2 === noIterationTypes) { - if (errorNode) { - var rootDiag = reportTypeNotIterableError(errorNode, type, !!(use & 2 /* AllowsAsyncIterablesFlag */)); - if (errorOutputContainer == null ? void 0 : errorOutputContainer.errors) { - addRelatedInfo.apply(void 0, __spreadArray([rootDiag], __read(errorOutputContainer.errors), false)); - } - } - setCachedIterationTypes(type, cacheKey, noIterationTypes); - return void 0; - } - else if ((_b = errorOutputContainer == null ? void 0 : errorOutputContainer.errors) == null ? void 0 : _b.length) { - try { - for (var _10 = (e_394 = void 0, __values(errorOutputContainer.errors)), _11 = _10.next(); !_11.done; _11 = _10.next()) { - var diag2 = _11.value; - diagnostics.add(diag2); - } - } - catch (e_394_1) { e_394 = { error: e_394_1 }; } - finally { - try { - if (_11 && !_11.done && (_v = _10.return)) _v.call(_10); - } - finally { if (e_394) throw e_394.error; } - } - } - allIterationTypes = append(allIterationTypes, iterationTypes2); - } - } - catch (e_393_1) { e_393 = { error: e_393_1 }; } - finally { - try { - if (_z && !_z.done && (_u = _y.return)) _u.call(_y); - } - finally { if (e_393) throw e_393.error; } - } - var iterationTypes = allIterationTypes ? combineIterationTypes(allIterationTypes) : noIterationTypes; - setCachedIterationTypes(type, cacheKey, iterationTypes); - return iterationTypes === noIterationTypes ? void 0 : iterationTypes; - } - function getAsyncFromSyncIterationTypes(iterationTypes, errorNode) { - if (iterationTypes === noIterationTypes) - return noIterationTypes; - if (iterationTypes === anyIterationTypes) - return anyIterationTypes; - var yieldType = iterationTypes.yieldType, returnType = iterationTypes.returnType, nextType = iterationTypes.nextType; - if (errorNode) { - getGlobalAwaitedSymbol( - /*reportErrors*/ - true); - } - return createIterationTypes(getAwaitedType(yieldType, errorNode) || anyType, getAwaitedType(returnType, errorNode) || anyType, nextType); - } - function getIterationTypesOfIterableWorker(type, use, errorNode, errorOutputContainer) { - if (isTypeAny(type)) { - return anyIterationTypes; - } - var noCache = false; - if (use & 2 /* AllowsAsyncIterablesFlag */) { - var iterationTypes = getIterationTypesOfIterableCached(type, asyncIterationTypesResolver) || getIterationTypesOfIterableFast(type, asyncIterationTypesResolver); - if (iterationTypes) { - if (iterationTypes === noIterationTypes && errorNode) { - noCache = true; - } - else { - return use & 8 /* ForOfFlag */ ? getAsyncFromSyncIterationTypes(iterationTypes, errorNode) : iterationTypes; - } - } - } - if (use & 1 /* AllowsSyncIterablesFlag */) { - var iterationTypes = getIterationTypesOfIterableCached(type, syncIterationTypesResolver) || getIterationTypesOfIterableFast(type, syncIterationTypesResolver); - if (iterationTypes) { - if (iterationTypes === noIterationTypes && errorNode) { - noCache = true; - } - else { - if (use & 2 /* AllowsAsyncIterablesFlag */) { - if (iterationTypes !== noIterationTypes) { - iterationTypes = getAsyncFromSyncIterationTypes(iterationTypes, errorNode); - return noCache ? iterationTypes : setCachedIterationTypes(type, "iterationTypesOfAsyncIterable", iterationTypes); - } - } - else { - return iterationTypes; - } - } - } - } - if (use & 2 /* AllowsAsyncIterablesFlag */) { - var iterationTypes = getIterationTypesOfIterableSlow(type, asyncIterationTypesResolver, errorNode, errorOutputContainer, noCache); - if (iterationTypes !== noIterationTypes) { - return iterationTypes; - } - } - if (use & 1 /* AllowsSyncIterablesFlag */) { - var iterationTypes = getIterationTypesOfIterableSlow(type, syncIterationTypesResolver, errorNode, errorOutputContainer, noCache); - if (iterationTypes !== noIterationTypes) { - if (use & 2 /* AllowsAsyncIterablesFlag */) { - iterationTypes = getAsyncFromSyncIterationTypes(iterationTypes, errorNode); - return noCache ? iterationTypes : setCachedIterationTypes(type, "iterationTypesOfAsyncIterable", iterationTypes); - } - else { - return iterationTypes; - } - } - } - return noIterationTypes; - } - function getIterationTypesOfIterableCached(type, resolver) { - return getCachedIterationTypes(type, resolver.iterableCacheKey); - } - function getIterationTypesOfGlobalIterableType(globalType, resolver) { - var globalIterationTypes = getIterationTypesOfIterableCached(globalType, resolver) || getIterationTypesOfIterableSlow(globalType, resolver, - /*errorNode*/ - void 0, - /*errorOutputContainer*/ - void 0, - /*noCache*/ - false); - return globalIterationTypes === noIterationTypes ? defaultIterationTypes : globalIterationTypes; - } - function getIterationTypesOfIterableFast(type, resolver) { - var globalType; - if (isReferenceToType2(type, globalType = resolver.getGlobalIterableType( - /*reportErrors*/ - false)) || isReferenceToType2(type, globalType = resolver.getGlobalIterableIteratorType( - /*reportErrors*/ - false))) { - var _t = __read(getTypeArguments(type), 1), yieldType = _t[0]; - var _u = getIterationTypesOfGlobalIterableType(globalType, resolver), returnType = _u.returnType, nextType = _u.nextType; - return setCachedIterationTypes(type, resolver.iterableCacheKey, createIterationTypes(resolver.resolveIterationType(yieldType, - /*errorNode*/ - void 0) || yieldType, resolver.resolveIterationType(returnType, - /*errorNode*/ - void 0) || returnType, nextType)); - } - if (isReferenceToType2(type, resolver.getGlobalGeneratorType( - /*reportErrors*/ - false))) { - var _v = __read(getTypeArguments(type), 3), yieldType = _v[0], returnType = _v[1], nextType = _v[2]; - return setCachedIterationTypes(type, resolver.iterableCacheKey, createIterationTypes(resolver.resolveIterationType(yieldType, - /*errorNode*/ - void 0) || yieldType, resolver.resolveIterationType(returnType, - /*errorNode*/ - void 0) || returnType, nextType)); - } - } - function getPropertyNameForKnownSymbolName(symbolName2) { - var ctorType = getGlobalESSymbolConstructorSymbol( - /*reportErrors*/ - false); - var uniqueType = ctorType && getTypeOfPropertyOfType(getTypeOfSymbol(ctorType), escapeLeadingUnderscores(symbolName2)); - return uniqueType && isTypeUsableAsPropertyName(uniqueType) ? getPropertyNameFromType(uniqueType) : "__@".concat(symbolName2); - } - function getIterationTypesOfIterableSlow(type, resolver, errorNode, errorOutputContainer, noCache) { - var _t; - var method = getPropertyOfType(type, getPropertyNameForKnownSymbolName(resolver.iteratorSymbolName)); - var methodType = method && !(method.flags & 16777216 /* Optional */) ? getTypeOfSymbol(method) : void 0; - if (isTypeAny(methodType)) { - return noCache ? anyIterationTypes : setCachedIterationTypes(type, resolver.iterableCacheKey, anyIterationTypes); - } - var signatures = methodType ? getSignaturesOfType(methodType, 0 /* Call */) : void 0; - if (!some(signatures)) { - return noCache ? noIterationTypes : setCachedIterationTypes(type, resolver.iterableCacheKey, noIterationTypes); - } - var iteratorType = getIntersectionType(map(signatures, getReturnTypeOfSignature)); - var iterationTypes = (_t = getIterationTypesOfIteratorWorker(iteratorType, resolver, errorNode, errorOutputContainer, noCache)) !== null && _t !== void 0 ? _t : noIterationTypes; - return noCache ? iterationTypes : setCachedIterationTypes(type, resolver.iterableCacheKey, iterationTypes); - } - function reportTypeNotIterableError(errorNode, type, allowAsyncIterables) { - var message = allowAsyncIterables ? Diagnostics.Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator : Diagnostics.Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator; - var suggestAwait = ( - // for (const x of Promise<...>) or [...Promise<...>] - !!getAwaitedTypeOfPromise(type) || !allowAsyncIterables && isForOfStatement(errorNode.parent) && errorNode.parent.expression === errorNode && getGlobalAsyncIterableType( - /*reportErrors*/ - false) !== emptyGenericType && isTypeAssignableTo(type, getGlobalAsyncIterableType( - /*reportErrors*/ - false))); - return errorAndMaybeSuggestAwait(errorNode, suggestAwait, message, typeToString(type)); - } - function getIterationTypesOfIterator(type, resolver, errorNode, errorOutputContainer) { - return getIterationTypesOfIteratorWorker(type, resolver, errorNode, errorOutputContainer, - /*noCache*/ - false); - } - function getIterationTypesOfIteratorWorker(type, resolver, errorNode, errorOutputContainer, noCache) { - if (isTypeAny(type)) { - return anyIterationTypes; - } - var iterationTypes = getIterationTypesOfIteratorCached(type, resolver) || getIterationTypesOfIteratorFast(type, resolver); - if (iterationTypes === noIterationTypes && errorNode) { - iterationTypes = void 0; - noCache = true; - } - iterationTypes !== null && iterationTypes !== void 0 ? iterationTypes : (iterationTypes = getIterationTypesOfIteratorSlow(type, resolver, errorNode, errorOutputContainer, noCache)); - return iterationTypes === noIterationTypes ? void 0 : iterationTypes; - } - function getIterationTypesOfIteratorCached(type, resolver) { - return getCachedIterationTypes(type, resolver.iteratorCacheKey); - } - function getIterationTypesOfIteratorFast(type, resolver) { - var globalType = resolver.getGlobalIterableIteratorType( - /*reportErrors*/ - false); - if (isReferenceToType2(type, globalType)) { - var _t = __read(getTypeArguments(type), 1), yieldType = _t[0]; - var globalIterationTypes = getIterationTypesOfIteratorCached(globalType, resolver) || getIterationTypesOfIteratorSlow(globalType, resolver, - /*errorNode*/ - void 0, - /*errorOutputContainer*/ - void 0, - /*noCache*/ - false); - var _u = globalIterationTypes === noIterationTypes ? defaultIterationTypes : globalIterationTypes, returnType = _u.returnType, nextType = _u.nextType; - return setCachedIterationTypes(type, resolver.iteratorCacheKey, createIterationTypes(yieldType, returnType, nextType)); - } - if (isReferenceToType2(type, resolver.getGlobalIteratorType( - /*reportErrors*/ - false)) || isReferenceToType2(type, resolver.getGlobalGeneratorType( - /*reportErrors*/ - false))) { - var _v = __read(getTypeArguments(type), 3), yieldType = _v[0], returnType = _v[1], nextType = _v[2]; - return setCachedIterationTypes(type, resolver.iteratorCacheKey, createIterationTypes(yieldType, returnType, nextType)); - } - } - function isIteratorResult(type, kind) { - var doneType = getTypeOfPropertyOfType(type, "done") || falseType; - return isTypeAssignableTo(kind === 0 /* Yield */ ? falseType : trueType, doneType); - } - function isYieldIteratorResult(type) { - return isIteratorResult(type, 0 /* Yield */); - } - function isReturnIteratorResult(type) { - return isIteratorResult(type, 1 /* Return */); - } - function getIterationTypesOfIteratorResult(type) { - if (isTypeAny(type)) { - return anyIterationTypes; - } - var cachedTypes2 = getCachedIterationTypes(type, "iterationTypesOfIteratorResult"); - if (cachedTypes2) { - return cachedTypes2; - } - if (isReferenceToType2(type, getGlobalIteratorYieldResultType( - /*reportErrors*/ - false))) { - var yieldType2 = getTypeArguments(type)[0]; - return setCachedIterationTypes(type, "iterationTypesOfIteratorResult", createIterationTypes(yieldType2, - /*returnType*/ - void 0, - /*nextType*/ - void 0)); - } - if (isReferenceToType2(type, getGlobalIteratorReturnResultType( - /*reportErrors*/ - false))) { - var returnType2 = getTypeArguments(type)[0]; - return setCachedIterationTypes(type, "iterationTypesOfIteratorResult", createIterationTypes( - /*yieldType*/ - void 0, returnType2, - /*nextType*/ - void 0)); - } - var yieldIteratorResult = filterType(type, isYieldIteratorResult); - var yieldType = yieldIteratorResult !== neverType ? getTypeOfPropertyOfType(yieldIteratorResult, "value") : void 0; - var returnIteratorResult = filterType(type, isReturnIteratorResult); - var returnType = returnIteratorResult !== neverType ? getTypeOfPropertyOfType(returnIteratorResult, "value") : void 0; - if (!yieldType && !returnType) { - return setCachedIterationTypes(type, "iterationTypesOfIteratorResult", noIterationTypes); - } - return setCachedIterationTypes(type, "iterationTypesOfIteratorResult", createIterationTypes(yieldType, returnType || voidType, - /*nextType*/ - void 0)); - } - function getIterationTypesOfMethod(type, resolver, methodName, errorNode, errorOutputContainer) { - var e_395, _t; - var _u, _v; - var _a, _b, _c, _d; - var method = getPropertyOfType(type, methodName); - if (!method && methodName !== "next") { - return void 0; - } - var methodType = method && !(methodName === "next" && method.flags & 16777216 /* Optional */) ? methodName === "next" ? getTypeOfSymbol(method) : getTypeWithFacts(getTypeOfSymbol(method), 2097152 /* NEUndefinedOrNull */) : void 0; - if (isTypeAny(methodType)) { - return methodName === "next" ? anyIterationTypes : anyIterationTypesExceptNext; - } - var methodSignatures = methodType ? getSignaturesOfType(methodType, 0 /* Call */) : emptyArray; - if (methodSignatures.length === 0) { - if (errorNode) { - var diagnostic = methodName === "next" ? resolver.mustHaveANextMethodDiagnostic : resolver.mustBeAMethodDiagnostic; - if (errorOutputContainer) { - (_u = errorOutputContainer.errors) !== null && _u !== void 0 ? _u : (errorOutputContainer.errors = []); - errorOutputContainer.errors.push(createDiagnosticForNode(errorNode, diagnostic, methodName)); - } - else { - error2(errorNode, diagnostic, methodName); - } - } - return methodName === "next" ? noIterationTypes : void 0; - } - if ((methodType == null ? void 0 : methodType.symbol) && methodSignatures.length === 1) { - var globalGeneratorType = resolver.getGlobalGeneratorType( - /*reportErrors*/ - false); - var globalIteratorType = resolver.getGlobalIteratorType( - /*reportErrors*/ - false); - var isGeneratorMethod = ((_b = (_a = globalGeneratorType.symbol) == null ? void 0 : _a.members) == null ? void 0 : _b.get(methodName)) === methodType.symbol; - var isIteratorMethod = !isGeneratorMethod && ((_d = (_c = globalIteratorType.symbol) == null ? void 0 : _c.members) == null ? void 0 : _d.get(methodName)) === methodType.symbol; - if (isGeneratorMethod || isIteratorMethod) { - var globalType = isGeneratorMethod ? globalGeneratorType : globalIteratorType; - var mapper = methodType.mapper; - return createIterationTypes(getMappedType(globalType.typeParameters[0], mapper), getMappedType(globalType.typeParameters[1], mapper), methodName === "next" ? getMappedType(globalType.typeParameters[2], mapper) : void 0); - } - } - var methodParameterTypes; - var methodReturnTypes; - try { - for (var methodSignatures_1 = __values(methodSignatures), methodSignatures_1_1 = methodSignatures_1.next(); !methodSignatures_1_1.done; methodSignatures_1_1 = methodSignatures_1.next()) { - var signature = methodSignatures_1_1.value; - if (methodName !== "throw" && some(signature.parameters)) { - methodParameterTypes = append(methodParameterTypes, getTypeAtPosition(signature, 0)); - } - methodReturnTypes = append(methodReturnTypes, getReturnTypeOfSignature(signature)); - } - } - catch (e_395_1) { e_395 = { error: e_395_1 }; } - finally { - try { - if (methodSignatures_1_1 && !methodSignatures_1_1.done && (_t = methodSignatures_1.return)) _t.call(methodSignatures_1); - } - finally { if (e_395) throw e_395.error; } - } - var returnTypes; - var nextType; - if (methodName !== "throw") { - var methodParameterType = methodParameterTypes ? getUnionType(methodParameterTypes) : unknownType; - if (methodName === "next") { - nextType = methodParameterType; - } - else if (methodName === "return") { - var resolvedMethodParameterType = resolver.resolveIterationType(methodParameterType, errorNode) || anyType; - returnTypes = append(returnTypes, resolvedMethodParameterType); - } - } - var yieldType; - var methodReturnType = methodReturnTypes ? getIntersectionType(methodReturnTypes) : neverType; - var resolvedMethodReturnType = resolver.resolveIterationType(methodReturnType, errorNode) || anyType; - var iterationTypes = getIterationTypesOfIteratorResult(resolvedMethodReturnType); - if (iterationTypes === noIterationTypes) { - if (errorNode) { - if (errorOutputContainer) { - (_v = errorOutputContainer.errors) !== null && _v !== void 0 ? _v : (errorOutputContainer.errors = []); - errorOutputContainer.errors.push(createDiagnosticForNode(errorNode, resolver.mustHaveAValueDiagnostic, methodName)); - } - else { - error2(errorNode, resolver.mustHaveAValueDiagnostic, methodName); - } - } - yieldType = anyType; - returnTypes = append(returnTypes, anyType); - } - else { - yieldType = iterationTypes.yieldType; - returnTypes = append(returnTypes, iterationTypes.returnType); - } - return createIterationTypes(yieldType, getUnionType(returnTypes), nextType); - } - function getIterationTypesOfIteratorSlow(type, resolver, errorNode, errorOutputContainer, noCache) { - var iterationTypes = combineIterationTypes([ - getIterationTypesOfMethod(type, resolver, "next", errorNode, errorOutputContainer), - getIterationTypesOfMethod(type, resolver, "return", errorNode, errorOutputContainer), - getIterationTypesOfMethod(type, resolver, "throw", errorNode, errorOutputContainer) - ]); - return noCache ? iterationTypes : setCachedIterationTypes(type, resolver.iteratorCacheKey, iterationTypes); - } - function getIterationTypeOfGeneratorFunctionReturnType(kind, returnType, isAsyncGenerator) { - if (isTypeAny(returnType)) { - return void 0; - } - var iterationTypes = getIterationTypesOfGeneratorFunctionReturnType(returnType, isAsyncGenerator); - return iterationTypes && iterationTypes[getIterationTypesKeyFromIterationTypeKind(kind)]; - } - function getIterationTypesOfGeneratorFunctionReturnType(type, isAsyncGenerator) { - if (isTypeAny(type)) { - return anyIterationTypes; - } - var use = isAsyncGenerator ? 2 /* AsyncGeneratorReturnType */ : 1 /* GeneratorReturnType */; - var resolver = isAsyncGenerator ? asyncIterationTypesResolver : syncIterationTypesResolver; - return getIterationTypesOfIterable(type, use, - /*errorNode*/ - void 0) || getIterationTypesOfIterator(type, resolver, - /*errorNode*/ - void 0, - /*errorOutputContainer*/ - void 0); - } - function checkBreakOrContinueStatement(node) { - if (!checkGrammarStatementInAmbientContext(node)) - checkGrammarBreakOrContinueStatement(node); - } - function unwrapReturnType(returnType, functionFlags) { - var isGenerator = !!(functionFlags & 1 /* Generator */); - var isAsync = !!(functionFlags & 2 /* Async */); - if (isGenerator) { - var returnIterationType = getIterationTypeOfGeneratorFunctionReturnType(1 /* Return */, returnType, isAsync); - if (!returnIterationType) { - return errorType; - } - return isAsync ? getAwaitedTypeNoAlias(unwrapAwaitedType(returnIterationType)) : returnIterationType; - } - return isAsync ? getAwaitedTypeNoAlias(returnType) || errorType : returnType; - } - function isUnwrappedReturnTypeUndefinedVoidOrAny(func, returnType) { - var type = unwrapReturnType(returnType, getFunctionFlags(func)); - return !!(type && (maybeTypeOfKind(type, 16384 /* Void */) || type.flags & (1 /* Any */ | 32768 /* Undefined */))); - } - function checkReturnStatement(node) { - var _t; - if (checkGrammarStatementInAmbientContext(node)) { - return; - } - var container = getContainingFunctionOrClassStaticBlock(node); - if (container && isClassStaticBlockDeclaration(container)) { - grammarErrorOnFirstToken(node, Diagnostics.A_return_statement_cannot_be_used_inside_a_class_static_block); - return; - } - if (!container) { - grammarErrorOnFirstToken(node, Diagnostics.A_return_statement_can_only_be_used_within_a_function_body); - return; - } - var signature = getSignatureFromDeclaration(container); - var returnType = getReturnTypeOfSignature(signature); - var functionFlags = getFunctionFlags(container); - if (strictNullChecks || node.expression || returnType.flags & 131072 /* Never */) { - var exprType = node.expression ? checkExpressionCached(node.expression) : undefinedType; - if (container.kind === 178 /* SetAccessor */) { - if (node.expression) { - error2(node, Diagnostics.Setters_cannot_return_a_value); - } - } - else if (container.kind === 176 /* Constructor */) { - if (node.expression && !checkTypeAssignableToAndOptionallyElaborate(exprType, returnType, node, node.expression)) { - error2(node, Diagnostics.Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class); - } - } - else if (getReturnTypeFromAnnotation(container)) { - var unwrappedReturnType = (_t = unwrapReturnType(returnType, functionFlags)) !== null && _t !== void 0 ? _t : returnType; - var unwrappedExprType = functionFlags & 2 /* Async */ ? checkAwaitedType(exprType, - /*withAlias*/ - false, node, Diagnostics.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member) : exprType; - if (unwrappedReturnType) { - checkTypeAssignableToAndOptionallyElaborate(unwrappedExprType, unwrappedReturnType, node, node.expression); - } - } - } - else if (container.kind !== 176 /* Constructor */ && compilerOptions.noImplicitReturns && !isUnwrappedReturnTypeUndefinedVoidOrAny(container, returnType)) { - error2(node, Diagnostics.Not_all_code_paths_return_a_value); - } - } - function checkWithStatement(node) { - if (!checkGrammarStatementInAmbientContext(node)) { - if (node.flags & 65536 /* AwaitContext */) { - grammarErrorOnFirstToken(node, Diagnostics.with_statements_are_not_allowed_in_an_async_function_block); - } - } - checkExpression(node.expression); - var sourceFile = getSourceFileOfNode(node); - if (!hasParseDiagnostics(sourceFile)) { - var start2 = getSpanOfTokenAtPosition(sourceFile, node.pos).start; - var end = node.statement.pos; - grammarErrorAtPos(sourceFile, start2, end - start2, Diagnostics.The_with_statement_is_not_supported_All_symbols_in_a_with_block_will_have_type_any); - } - } - function checkSwitchStatement(node) { - checkGrammarStatementInAmbientContext(node); - var firstDefaultClause; - var hasDuplicateDefaultClause = false; - var expressionType = checkExpression(node.expression); - forEach(node.caseBlock.clauses, function (clause) { - if (clause.kind === 297 /* DefaultClause */ && !hasDuplicateDefaultClause) { - if (firstDefaultClause === void 0) { - firstDefaultClause = clause; - } - else { - grammarErrorOnNode(clause, Diagnostics.A_default_clause_cannot_appear_more_than_once_in_a_switch_statement); - hasDuplicateDefaultClause = true; - } - } - if (clause.kind === 296 /* CaseClause */) { - addLazyDiagnostic(createLazyCaseClauseDiagnostics(clause)); - } - forEach(clause.statements, checkSourceElement); - if (compilerOptions.noFallthroughCasesInSwitch && clause.fallthroughFlowNode && isReachableFlowNode(clause.fallthroughFlowNode)) { - error2(clause, Diagnostics.Fallthrough_case_in_switch); - } - function createLazyCaseClauseDiagnostics(clause2) { - return function () { - var caseType = checkExpression(clause2.expression); - if (!isTypeEqualityComparableTo(expressionType, caseType)) { - checkTypeComparableTo(caseType, expressionType, clause2.expression, - /*headMessage*/ - void 0); - } - }; - } - }); - if (node.caseBlock.locals) { - registerForUnusedIdentifiersCheck(node.caseBlock); - } - } - function checkLabeledStatement(node) { - if (!checkGrammarStatementInAmbientContext(node)) { - findAncestor(node.parent, function (current) { - if (isFunctionLike(current)) { - return "quit"; - } - if (current.kind === 256 /* LabeledStatement */ && current.label.escapedText === node.label.escapedText) { - grammarErrorOnNode(node.label, Diagnostics.Duplicate_label_0, getTextOfNode(node.label)); - return true; - } - return false; - }); - } - checkSourceElement(node.statement); - } - function checkThrowStatement(node) { - if (!checkGrammarStatementInAmbientContext(node)) { - if (isIdentifier(node.expression) && !node.expression.escapedText) { - grammarErrorAfterFirstToken(node, Diagnostics.Line_break_not_permitted_here); - } - } - if (node.expression) { - checkExpression(node.expression); - } - } - function checkTryStatement(node) { - checkGrammarStatementInAmbientContext(node); - checkBlock(node.tryBlock); - var catchClause = node.catchClause; - if (catchClause) { - if (catchClause.variableDeclaration) { - var declaration = catchClause.variableDeclaration; - checkVariableLikeDeclaration(declaration); - var typeNode = getEffectiveTypeAnnotationNode(declaration); - if (typeNode) { - var type = getTypeFromTypeNode(typeNode); - if (type && !(type.flags & 3 /* AnyOrUnknown */)) { - grammarErrorOnFirstToken(typeNode, Diagnostics.Catch_clause_variable_type_annotation_must_be_any_or_unknown_if_specified); - } - } - else if (declaration.initializer) { - grammarErrorOnFirstToken(declaration.initializer, Diagnostics.Catch_clause_variable_cannot_have_an_initializer); - } - else { - var blockLocals_1 = catchClause.block.locals; - if (blockLocals_1) { - forEachKey(catchClause.locals, function (caughtName) { - var blockLocal = blockLocals_1.get(caughtName); - if ((blockLocal == null ? void 0 : blockLocal.valueDeclaration) && (blockLocal.flags & 2 /* BlockScopedVariable */) !== 0) { - grammarErrorOnNode(blockLocal.valueDeclaration, Diagnostics.Cannot_redeclare_identifier_0_in_catch_clause, unescapeLeadingUnderscores(caughtName)); - } - }); - } - } - } - checkBlock(catchClause.block); - } - if (node.finallyBlock) { - checkBlock(node.finallyBlock); - } - } - function checkIndexConstraints(type, symbol, isStaticIndex) { - var e_396, _t, e_397, _u, e_398, _v; - var indexInfos = getIndexInfosOfType(type); - if (indexInfos.length === 0) { - return; - } - try { - for (var _w = __values(getPropertiesOfObjectType(type)), _x = _w.next(); !_x.done; _x = _w.next()) { - var prop = _x.value; - if (!(isStaticIndex && prop.flags & 4194304 /* Prototype */)) { - checkIndexConstraintForProperty(type, prop, getLiteralTypeFromProperty(prop, 8576 /* StringOrNumberLiteralOrUnique */, - /*includeNonPublic*/ - true), getNonMissingTypeOfSymbol(prop)); - } - } - } - catch (e_396_1) { e_396 = { error: e_396_1 }; } - finally { - try { - if (_x && !_x.done && (_t = _w.return)) _t.call(_w); - } - finally { if (e_396) throw e_396.error; } - } - var typeDeclaration = symbol.valueDeclaration; - if (typeDeclaration && isClassLike(typeDeclaration)) { - try { - for (var _y = __values(typeDeclaration.members), _z = _y.next(); !_z.done; _z = _y.next()) { - var member = _z.value; - if (!isStatic(member) && !hasBindableName(member)) { - var symbol2 = getSymbolOfDeclaration(member); - checkIndexConstraintForProperty(type, symbol2, getTypeOfExpression(member.name.expression), getNonMissingTypeOfSymbol(symbol2)); - } - } - } - catch (e_397_1) { e_397 = { error: e_397_1 }; } - finally { - try { - if (_z && !_z.done && (_u = _y.return)) _u.call(_y); - } - finally { if (e_397) throw e_397.error; } - } - } - if (indexInfos.length > 1) { - try { - for (var indexInfos_6 = __values(indexInfos), indexInfos_6_1 = indexInfos_6.next(); !indexInfos_6_1.done; indexInfos_6_1 = indexInfos_6.next()) { - var info = indexInfos_6_1.value; - checkIndexConstraintForIndexSignature(type, info); - } - } - catch (e_398_1) { e_398 = { error: e_398_1 }; } - finally { - try { - if (indexInfos_6_1 && !indexInfos_6_1.done && (_v = indexInfos_6.return)) _v.call(indexInfos_6); - } - finally { if (e_398) throw e_398.error; } - } - } - } - function checkIndexConstraintForProperty(type, prop, propNameType, propType) { - var e_399, _t; - var declaration = prop.valueDeclaration; - var name = getNameOfDeclaration(declaration); - if (name && isPrivateIdentifier(name)) { - return; - } - var indexInfos = getApplicableIndexInfos(type, propNameType); - var interfaceDeclaration = getObjectFlags(type) & 2 /* Interface */ ? getDeclarationOfKind(type.symbol, 264 /* InterfaceDeclaration */) : void 0; - var propDeclaration = declaration && declaration.kind === 226 /* BinaryExpression */ || name && name.kind === 167 /* ComputedPropertyName */ ? declaration : void 0; - var localPropDeclaration = getParentOfSymbol(prop) === type.symbol ? declaration : void 0; - var _loop_33 = function (info) { - var localIndexDeclaration = info.declaration && getParentOfSymbol(getSymbolOfDeclaration(info.declaration)) === type.symbol ? info.declaration : void 0; - var errorNode = localPropDeclaration || localIndexDeclaration || (interfaceDeclaration && !some(getBaseTypes(type), function (base) { return !!getPropertyOfObjectType(base, prop.escapedName) && !!getIndexTypeOfType(base, info.keyType); }) ? interfaceDeclaration : void 0); - if (errorNode && !isTypeAssignableTo(propType, info.type)) { - var diagnostic = createError(errorNode, Diagnostics.Property_0_of_type_1_is_not_assignable_to_2_index_type_3, symbolToString(prop), typeToString(propType), typeToString(info.keyType), typeToString(info.type)); - if (propDeclaration && errorNode !== propDeclaration) { - addRelatedInfo(diagnostic, createDiagnosticForNode(propDeclaration, Diagnostics._0_is_declared_here, symbolToString(prop))); - } - diagnostics.add(diagnostic); - } - }; - try { - for (var indexInfos_7 = __values(indexInfos), indexInfos_7_1 = indexInfos_7.next(); !indexInfos_7_1.done; indexInfos_7_1 = indexInfos_7.next()) { - var info = indexInfos_7_1.value; - _loop_33(info); - } - } - catch (e_399_1) { e_399 = { error: e_399_1 }; } - finally { - try { - if (indexInfos_7_1 && !indexInfos_7_1.done && (_t = indexInfos_7.return)) _t.call(indexInfos_7); - } - finally { if (e_399) throw e_399.error; } - } - } - function checkIndexConstraintForIndexSignature(type, checkInfo) { - var e_400, _t; - var declaration = checkInfo.declaration; - var indexInfos = getApplicableIndexInfos(type, checkInfo.keyType); - var interfaceDeclaration = getObjectFlags(type) & 2 /* Interface */ ? getDeclarationOfKind(type.symbol, 264 /* InterfaceDeclaration */) : void 0; - var localCheckDeclaration = declaration && getParentOfSymbol(getSymbolOfDeclaration(declaration)) === type.symbol ? declaration : void 0; - var _loop_34 = function (info) { - if (info === checkInfo) - return "continue"; - var localIndexDeclaration = info.declaration && getParentOfSymbol(getSymbolOfDeclaration(info.declaration)) === type.symbol ? info.declaration : void 0; - var errorNode = localCheckDeclaration || localIndexDeclaration || (interfaceDeclaration && !some(getBaseTypes(type), function (base) { return !!getIndexInfoOfType(base, checkInfo.keyType) && !!getIndexTypeOfType(base, info.keyType); }) ? interfaceDeclaration : void 0); - if (errorNode && !isTypeAssignableTo(checkInfo.type, info.type)) { - error2(errorNode, Diagnostics._0_index_type_1_is_not_assignable_to_2_index_type_3, typeToString(checkInfo.keyType), typeToString(checkInfo.type), typeToString(info.keyType), typeToString(info.type)); - } - }; - try { - for (var indexInfos_8 = __values(indexInfos), indexInfos_8_1 = indexInfos_8.next(); !indexInfos_8_1.done; indexInfos_8_1 = indexInfos_8.next()) { - var info = indexInfos_8_1.value; - _loop_34(info); - } - } - catch (e_400_1) { e_400 = { error: e_400_1 }; } - finally { - try { - if (indexInfos_8_1 && !indexInfos_8_1.done && (_t = indexInfos_8.return)) _t.call(indexInfos_8); - } - finally { if (e_400) throw e_400.error; } - } - } - function checkTypeNameIsReserved(name, message) { - switch (name.escapedText) { - case "any": - case "unknown": - case "never": - case "number": - case "bigint": - case "boolean": - case "string": - case "symbol": - case "void": - case "object": - error2(name, message, name.escapedText); - } - } - function checkClassNameCollisionWithObject(name) { - if (languageVersion >= 1 /* ES5 */ && name.escapedText === "Object" && (moduleKind < 5 /* ES2015 */ || getSourceFileOfNode(name).impliedNodeFormat === 1 /* CommonJS */)) { - error2(name, Diagnostics.Class_name_cannot_be_Object_when_targeting_ES5_with_module_0, ModuleKind[moduleKind]); - } - } - function checkUnmatchedJSDocParameters(node) { - var jsdocParameters = filter(getJSDocTags(node), isJSDocParameterTag); - if (!length(jsdocParameters)) - return; - var isJs = isInJSFile(node); - var parameters = /* @__PURE__ */ new Set(); - var excludedParameters = /* @__PURE__ */ new Set(); - forEach(node.parameters, function (_t, index) { - var name = _t.name; - if (isIdentifier(name)) { - parameters.add(name.escapedText); - } - if (isBindingPattern(name)) { - excludedParameters.add(index); - } - }); - var containsArguments = containsArgumentsReference(node); - if (containsArguments) { - var lastJSDocParamIndex = jsdocParameters.length - 1; - var lastJSDocParam = jsdocParameters[lastJSDocParamIndex]; - if (isJs && lastJSDocParam && isIdentifier(lastJSDocParam.name) && lastJSDocParam.typeExpression && lastJSDocParam.typeExpression.type && !parameters.has(lastJSDocParam.name.escapedText) && !excludedParameters.has(lastJSDocParamIndex) && !isArrayType(getTypeFromTypeNode(lastJSDocParam.typeExpression.type))) { - error2(lastJSDocParam.name, Diagnostics.JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_had_an_array_type, idText(lastJSDocParam.name)); - } - } - else { - forEach(jsdocParameters, function (_t, index) { - var name = _t.name, isNameFirst = _t.isNameFirst; - if (excludedParameters.has(index) || isIdentifier(name) && parameters.has(name.escapedText)) { - return; - } - if (isQualifiedName(name)) { - if (isJs) { - error2(name, Diagnostics.Qualified_name_0_is_not_allowed_without_a_leading_param_object_1, entityNameToString(name), entityNameToString(name.left)); - } - } - else { - if (!isNameFirst) { - errorOrSuggestion(isJs, name, Diagnostics.JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name, idText(name)); - } - } - }); - } - } - function checkTypeParameters(typeParameterDeclarations) { - var seenDefault = false; - if (typeParameterDeclarations) { - for (var i = 0; i < typeParameterDeclarations.length; i++) { - var node = typeParameterDeclarations[i]; - checkTypeParameter(node); - addLazyDiagnostic(createCheckTypeParameterDiagnostic(node, i)); - } - } - function createCheckTypeParameterDiagnostic(node, i) { - return function () { - if (node.default) { - seenDefault = true; - checkTypeParametersNotReferenced(node.default, typeParameterDeclarations, i); - } - else if (seenDefault) { - error2(node, Diagnostics.Required_type_parameters_may_not_follow_optional_type_parameters); - } - for (var j = 0; j < i; j++) { - if (typeParameterDeclarations[j].symbol === node.symbol) { - error2(node.name, Diagnostics.Duplicate_identifier_0, declarationNameToString(node.name)); - } - } - }; - } - } - function checkTypeParametersNotReferenced(root, typeParameters, index) { - visit(root); - function visit(node) { - if (node.kind === 183 /* TypeReference */) { - var type = getTypeFromTypeReference(node); - if (type.flags & 262144 /* TypeParameter */) { - for (var i = index; i < typeParameters.length; i++) { - if (type.symbol === getSymbolOfDeclaration(typeParameters[i])) { - error2(node, Diagnostics.Type_parameter_defaults_can_only_reference_previously_declared_type_parameters); - } - } - } - } - forEachChild(node, visit); - } - } - function checkTypeParameterListsIdentical(symbol) { - var e_401, _t; - if (symbol.declarations && symbol.declarations.length === 1) { - return; - } - var links = getSymbolLinks(symbol); - if (!links.typeParametersChecked) { - links.typeParametersChecked = true; - var declarations = getClassOrInterfaceDeclarationsOfSymbol(symbol); - if (!declarations || declarations.length <= 1) { - return; - } - var type = getDeclaredTypeOfSymbol(symbol); - if (!areTypeParametersIdentical(declarations, type.localTypeParameters, getEffectiveTypeParameterDeclarations)) { - var name_64 = symbolToString(symbol); - try { - for (var declarations_7 = __values(declarations), declarations_7_1 = declarations_7.next(); !declarations_7_1.done; declarations_7_1 = declarations_7.next()) { - var declaration = declarations_7_1.value; - error2(declaration.name, Diagnostics.All_declarations_of_0_must_have_identical_type_parameters, name_64); - } - } - catch (e_401_1) { e_401 = { error: e_401_1 }; } - finally { - try { - if (declarations_7_1 && !declarations_7_1.done && (_t = declarations_7.return)) _t.call(declarations_7); - } - finally { if (e_401) throw e_401.error; } - } - } - } - } - function areTypeParametersIdentical(declarations, targetParameters, getTypeParameterDeclarations) { - var e_402, _t; - var maxTypeArgumentCount = length(targetParameters); - var minTypeArgumentCount = getMinTypeArgumentCount(targetParameters); - try { - for (var declarations_8 = __values(declarations), declarations_8_1 = declarations_8.next(); !declarations_8_1.done; declarations_8_1 = declarations_8.next()) { - var declaration = declarations_8_1.value; - var sourceParameters = getTypeParameterDeclarations(declaration); - var numTypeParameters = sourceParameters.length; - if (numTypeParameters < minTypeArgumentCount || numTypeParameters > maxTypeArgumentCount) { - return false; - } - for (var i = 0; i < numTypeParameters; i++) { - var source = sourceParameters[i]; - var target = targetParameters[i]; - if (source.name.escapedText !== target.symbol.escapedName) { - return false; - } - var constraint = getEffectiveConstraintOfTypeParameter(source); - var sourceConstraint = constraint && getTypeFromTypeNode(constraint); - var targetConstraint = getConstraintOfTypeParameter(target); - if (sourceConstraint && targetConstraint && !isTypeIdenticalTo(sourceConstraint, targetConstraint)) { - return false; - } - var sourceDefault = source.default && getTypeFromTypeNode(source.default); - var targetDefault = getDefaultFromTypeParameter(target); - if (sourceDefault && targetDefault && !isTypeIdenticalTo(sourceDefault, targetDefault)) { - return false; - } - } - } - } - catch (e_402_1) { e_402 = { error: e_402_1 }; } - finally { - try { - if (declarations_8_1 && !declarations_8_1.done && (_t = declarations_8.return)) _t.call(declarations_8); - } - finally { if (e_402) throw e_402.error; } - } - return true; - } - function getFirstTransformableStaticClassElement(node) { - var e_403, _t; - var _u; - var willTransformStaticElementsOfDecoratedClass = !legacyDecorators && languageVersion < 99 /* ESNext */ && classOrConstructorParameterIsDecorated( - /*useLegacyDecorators*/ - false, node); - var willTransformPrivateElementsOrClassStaticBlocks = languageVersion <= 9 /* ES2022 */; - var willTransformInitializers = !emitStandardClassFields; - if (willTransformStaticElementsOfDecoratedClass || willTransformPrivateElementsOrClassStaticBlocks) { - try { - for (var _v = __values(node.members), _w = _v.next(); !_w.done; _w = _v.next()) { - var member = _w.value; - if (willTransformStaticElementsOfDecoratedClass && classElementOrClassElementParameterIsDecorated( - /*useLegacyDecorators*/ - false, member, node)) { - return (_u = firstOrUndefined(getDecorators(node))) !== null && _u !== void 0 ? _u : node; - } - else if (willTransformPrivateElementsOrClassStaticBlocks) { - if (isClassStaticBlockDeclaration(member)) { - return member; - } - else if (isStatic(member)) { - if (isPrivateIdentifierClassElementDeclaration(member) || willTransformInitializers && isInitializedProperty(member)) { - return member; - } - } - } - } - } - catch (e_403_1) { e_403 = { error: e_403_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_403) throw e_403.error; } - } - } - } - function checkClassExpressionExternalHelpers(node) { - var _t; - if (node.name) - return; - var parent2 = walkUpOuterExpressions(node); - if (!isNamedEvaluationSource(parent2)) - return; - var willTransformESDecorators = !legacyDecorators && languageVersion < 99 /* ESNext */; - var location; - if (willTransformESDecorators && classOrConstructorParameterIsDecorated( - /*useLegacyDecorators*/ - false, node)) { - location = (_t = firstOrUndefined(getDecorators(node))) !== null && _t !== void 0 ? _t : node; - } - else { - location = getFirstTransformableStaticClassElement(node); - } - if (location) { - checkExternalEmitHelpers(location, 8388608 /* SetFunctionName */); - if ((isPropertyAssignment(parent2) || isPropertyDeclaration(parent2) || isBindingElement(parent2)) && isComputedPropertyName(parent2.name)) { - checkExternalEmitHelpers(location, 16777216 /* PropKey */); - } - } - } - function checkClassExpression(node) { - checkClassLikeDeclaration(node); - checkNodeDeferred(node); - checkClassExpressionExternalHelpers(node); - return getTypeOfSymbol(getSymbolOfDeclaration(node)); - } - function checkClassExpressionDeferred(node) { - forEach(node.members, checkSourceElement); - registerForUnusedIdentifiersCheck(node); - } - function checkClassDeclaration(node) { - var firstDecorator = find(node.modifiers, isDecorator); - if (legacyDecorators && firstDecorator && some(node.members, function (p) { return hasStaticModifier(p) && isPrivateIdentifierClassElementDeclaration(p); })) { - grammarErrorOnNode(firstDecorator, Diagnostics.Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_decorator); - } - if (!node.name && !hasSyntacticModifier(node, 1024 /* Default */)) { - grammarErrorOnFirstToken(node, Diagnostics.A_class_declaration_without_the_default_modifier_must_have_a_name); - } - checkClassLikeDeclaration(node); - forEach(node.members, checkSourceElement); - registerForUnusedIdentifiersCheck(node); - } - function checkClassLikeDeclaration(node) { - var e_404, _t; - checkGrammarClassLikeDeclaration(node); - checkDecorators(node); - checkCollisionsForDeclarationName(node, node.name); - checkTypeParameters(getEffectiveTypeParameterDeclarations(node)); - checkExportsOnMergedDeclarations(node); - var symbol = getSymbolOfDeclaration(node); - var type = getDeclaredTypeOfSymbol(symbol); - var typeWithThis = getTypeWithThisArgument(type); - var staticType = getTypeOfSymbol(symbol); - checkTypeParameterListsIdentical(symbol); - checkFunctionOrConstructorSymbol(symbol); - checkClassForDuplicateDeclarations(node); - var nodeInAmbientContext = !!(node.flags & 33554432 /* Ambient */); - if (!nodeInAmbientContext) { - checkClassForStaticPropertyNameConflicts(node); - } - var baseTypeNode = getEffectiveBaseTypeNode(node); - if (baseTypeNode) { - forEach(baseTypeNode.typeArguments, checkSourceElement); - if (languageVersion < 2 /* ES2015 */) { - checkExternalEmitHelpers(baseTypeNode.parent, 1 /* Extends */); - } - var extendsNode = getClassExtendsHeritageElement(node); - if (extendsNode && extendsNode !== baseTypeNode) { - checkExpression(extendsNode.expression); - } - var baseTypes_2 = getBaseTypes(type); - if (baseTypes_2.length) { - addLazyDiagnostic(function () { - var e_405, _t; - var baseType = baseTypes_2[0]; - var baseConstructorType = getBaseConstructorTypeOfClass(type); - var staticBaseType = getApparentType(baseConstructorType); - checkBaseTypeAccessibility(staticBaseType, baseTypeNode); - checkSourceElement(baseTypeNode.expression); - if (some(baseTypeNode.typeArguments)) { - forEach(baseTypeNode.typeArguments, checkSourceElement); - try { - for (var _u = __values(getConstructorsForTypeArguments(staticBaseType, baseTypeNode.typeArguments, baseTypeNode)), _v = _u.next(); !_v.done; _v = _u.next()) { - var constructor = _v.value; - if (!checkTypeArgumentConstraints(baseTypeNode, constructor.typeParameters)) { - break; - } - } - } - catch (e_405_1) { e_405 = { error: e_405_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_405) throw e_405.error; } - } - } - var baseWithThis = getTypeWithThisArgument(baseType, type.thisType); - if (!checkTypeAssignableTo(typeWithThis, baseWithThis, - /*errorNode*/ - void 0)) { - issueMemberSpecificError(node, typeWithThis, baseWithThis, Diagnostics.Class_0_incorrectly_extends_base_class_1); - } - else { - checkTypeAssignableTo(staticType, getTypeWithoutSignatures(staticBaseType), node.name || node, Diagnostics.Class_static_side_0_incorrectly_extends_base_class_static_side_1); - } - if (baseConstructorType.flags & 8650752 /* TypeVariable */) { - if (!isMixinConstructorType(staticType)) { - error2(node.name || node, Diagnostics.A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any); - } - else { - var constructSignatures = getSignaturesOfType(baseConstructorType, 1 /* Construct */); - if (constructSignatures.some(function (signature) { return signature.flags & 4; } /* Abstract */) && !hasSyntacticModifier(node, 256 /* Abstract */)) { - error2(node.name || node, Diagnostics.A_mixin_class_that_extends_from_a_type_variable_containing_an_abstract_construct_signature_must_also_be_declared_abstract); - } - } - } - if (!(staticBaseType.symbol && staticBaseType.symbol.flags & 32 /* Class */) && !(baseConstructorType.flags & 8650752 /* TypeVariable */)) { - var constructors = getInstantiatedConstructorsForTypeArguments(staticBaseType, baseTypeNode.typeArguments, baseTypeNode); - if (forEach(constructors, function (sig) { return !isJSConstructor(sig.declaration) && !isTypeIdenticalTo(getReturnTypeOfSignature(sig), baseType); })) { - error2(baseTypeNode.expression, Diagnostics.Base_constructors_must_all_have_the_same_return_type); - } - } - checkKindsOfPropertyMemberOverrides(type, baseType); - }); - } - } - checkMembersForOverrideModifier(node, type, typeWithThis, staticType); - var implementedTypeNodes = getEffectiveImplementsTypeNodes(node); - if (implementedTypeNodes) { - try { - for (var implementedTypeNodes_1 = __values(implementedTypeNodes), implementedTypeNodes_1_1 = implementedTypeNodes_1.next(); !implementedTypeNodes_1_1.done; implementedTypeNodes_1_1 = implementedTypeNodes_1.next()) { - var typeRefNode = implementedTypeNodes_1_1.value; - if (!isEntityNameExpression(typeRefNode.expression) || isOptionalChain(typeRefNode.expression)) { - error2(typeRefNode.expression, Diagnostics.A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments); - } - checkTypeReferenceNode(typeRefNode); - addLazyDiagnostic(createImplementsDiagnostics(typeRefNode)); - } - } - catch (e_404_1) { e_404 = { error: e_404_1 }; } - finally { - try { - if (implementedTypeNodes_1_1 && !implementedTypeNodes_1_1.done && (_t = implementedTypeNodes_1.return)) _t.call(implementedTypeNodes_1); - } - finally { if (e_404) throw e_404.error; } - } - } - addLazyDiagnostic(function () { - checkIndexConstraints(type, symbol); - checkIndexConstraints(staticType, symbol, - /*isStaticIndex*/ - true); - checkTypeForDuplicateIndexSignatures(node); - checkPropertyInitialization(node); - }); - function createImplementsDiagnostics(typeRefNode) { - return function () { - var t = getReducedType(getTypeFromTypeNode(typeRefNode)); - if (!isErrorType(t)) { - if (isValidBaseType(t)) { - var genericDiag = t.symbol && t.symbol.flags & 32 /* Class */ ? Diagnostics.Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclass : Diagnostics.Class_0_incorrectly_implements_interface_1; - var baseWithThis = getTypeWithThisArgument(t, type.thisType); - if (!checkTypeAssignableTo(typeWithThis, baseWithThis, - /*errorNode*/ - void 0)) { - issueMemberSpecificError(node, typeWithThis, baseWithThis, genericDiag); - } - } - else { - error2(typeRefNode, Diagnostics.A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_members); - } - } - }; - } - } - function checkMembersForOverrideModifier(node, type, typeWithThis, staticType) { - var e_406, _t; - var baseTypeNode = getEffectiveBaseTypeNode(node); - var baseTypes = baseTypeNode && getBaseTypes(type); - var baseWithThis = (baseTypes == null ? void 0 : baseTypes.length) ? getTypeWithThisArgument(first(baseTypes), type.thisType) : void 0; - var baseStaticType = getBaseConstructorTypeOfClass(type); - var _loop_35 = function (member) { - if (hasAmbientModifier(member)) { - return "continue"; - } - if (isConstructorDeclaration(member)) { - forEach(member.parameters, function (param) { - if (isParameterPropertyDeclaration(param, member)) { - checkExistingMemberForOverrideModifier(node, staticType, baseStaticType, baseWithThis, type, typeWithThis, param, - /*memberIsParameterProperty*/ - true); - } - }); - } - checkExistingMemberForOverrideModifier(node, staticType, baseStaticType, baseWithThis, type, typeWithThis, member, - /*memberIsParameterProperty*/ - false); - }; - try { - for (var _u = __values(node.members), _v = _u.next(); !_v.done; _v = _u.next()) { - var member = _v.value; - _loop_35(member); - } - } - catch (e_406_1) { e_406 = { error: e_406_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_406) throw e_406.error; } - } - } - function checkExistingMemberForOverrideModifier(node, staticType, baseStaticType, baseWithThis, type, typeWithThis, member, memberIsParameterProperty, reportErrors2) { - if (reportErrors2 === void 0) { reportErrors2 = true; } - var declaredProp = member.name && getSymbolAtLocation(member.name) || getSymbolAtLocation(member); - if (!declaredProp) { - return 0 /* Ok */; - } - return checkMemberForOverrideModifier(node, staticType, baseStaticType, baseWithThis, type, typeWithThis, hasOverrideModifier(member), hasAbstractModifier(member), isStatic(member), memberIsParameterProperty, symbolName(declaredProp), reportErrors2 ? member : void 0); - } - function checkMemberForOverrideModifier(node, staticType, baseStaticType, baseWithThis, type, typeWithThis, memberHasOverrideModifier, memberHasAbstractModifier, memberIsStatic, memberIsParameterProperty, memberName, errorNode) { - var isJs = isInJSFile(node); - var nodeInAmbientContext = !!(node.flags & 33554432 /* Ambient */); - if (baseWithThis && (memberHasOverrideModifier || compilerOptions.noImplicitOverride)) { - var memberEscapedName = escapeLeadingUnderscores(memberName); - var thisType = memberIsStatic ? staticType : typeWithThis; - var baseType = memberIsStatic ? baseStaticType : baseWithThis; - var prop = getPropertyOfType(thisType, memberEscapedName); - var baseProp = getPropertyOfType(baseType, memberEscapedName); - var baseClassName = typeToString(baseWithThis); - if (prop && !baseProp && memberHasOverrideModifier) { - if (errorNode) { - var suggestion = getSuggestedSymbolForNonexistentClassMember(memberName, baseType); - suggestion ? error2(errorNode, isJs ? Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1 : Diagnostics.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1, baseClassName, symbolToString(suggestion)) : error2(errorNode, isJs ? Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0 : Diagnostics.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0, baseClassName); - } - return 2 /* HasInvalidOverride */; - } - else if (prop && (baseProp == null ? void 0 : baseProp.declarations) && compilerOptions.noImplicitOverride && !nodeInAmbientContext) { - var baseHasAbstract = some(baseProp.declarations, hasAbstractModifier); - if (memberHasOverrideModifier) { - return 0 /* Ok */; - } - if (!baseHasAbstract) { - if (errorNode) { - var diag2 = memberIsParameterProperty ? isJs ? Diagnostics.This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0 : Diagnostics.This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0 : isJs ? Diagnostics.This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0 : Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0; - error2(errorNode, diag2, baseClassName); - } - return 1 /* NeedsOverride */; - } - else if (memberHasAbstractModifier && baseHasAbstract) { - if (errorNode) { - error2(errorNode, Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0, baseClassName); - } - return 1 /* NeedsOverride */; - } - } - } - else if (memberHasOverrideModifier) { - if (errorNode) { - var className = typeToString(type); - error2(errorNode, isJs ? Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class : Diagnostics.This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class, className); - } - return 2 /* HasInvalidOverride */; - } - return 0 /* Ok */; - } - function issueMemberSpecificError(node, typeWithThis, baseWithThis, broadDiag) { - var e_407, _t; - var issuedMemberError = false; - var _loop_36 = function (member) { - if (isStatic(member)) { - return "continue"; - } - var declaredProp = member.name && getSymbolAtLocation(member.name) || getSymbolAtLocation(member); - if (declaredProp) { - var prop = getPropertyOfType(typeWithThis, declaredProp.escapedName); - var baseProp = getPropertyOfType(baseWithThis, declaredProp.escapedName); - if (prop && baseProp) { - var rootChain = function () { return chainDiagnosticMessages( - /*details*/ - void 0, Diagnostics.Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2, symbolToString(declaredProp), typeToString(typeWithThis), typeToString(baseWithThis)); }; - if (!checkTypeAssignableTo(getTypeOfSymbol(prop), getTypeOfSymbol(baseProp), member.name || member, - /*headMessage*/ - void 0, rootChain)) { - issuedMemberError = true; - } - } - } - }; - try { - for (var _u = __values(node.members), _v = _u.next(); !_v.done; _v = _u.next()) { - var member = _v.value; - _loop_36(member); - } - } - catch (e_407_1) { e_407 = { error: e_407_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_407) throw e_407.error; } - } - if (!issuedMemberError) { - checkTypeAssignableTo(typeWithThis, baseWithThis, node.name || node, broadDiag); - } - } - function checkBaseTypeAccessibility(type, node) { - var signatures = getSignaturesOfType(type, 1 /* Construct */); - if (signatures.length) { - var declaration = signatures[0].declaration; - if (declaration && hasEffectiveModifier(declaration, 8 /* Private */)) { - var typeClassDeclaration = getClassLikeDeclarationOfSymbol(type.symbol); - if (!isNodeWithinClass(node, typeClassDeclaration)) { - error2(node, Diagnostics.Cannot_extend_a_class_0_Class_constructor_is_marked_as_private, getFullyQualifiedName(type.symbol)); - } - } - } - } - function getMemberOverrideModifierStatus(node, member, memberSymbol) { - if (!member.name) { - return 0 /* Ok */; - } - var classSymbol = getSymbolOfDeclaration(node); - var type = getDeclaredTypeOfSymbol(classSymbol); - var typeWithThis = getTypeWithThisArgument(type); - var staticType = getTypeOfSymbol(classSymbol); - var baseTypeNode = getEffectiveBaseTypeNode(node); - var baseTypes = baseTypeNode && getBaseTypes(type); - var baseWithThis = (baseTypes == null ? void 0 : baseTypes.length) ? getTypeWithThisArgument(first(baseTypes), type.thisType) : void 0; - var baseStaticType = getBaseConstructorTypeOfClass(type); - var memberHasOverrideModifier = member.parent ? hasOverrideModifier(member) : hasSyntacticModifier(member, 16384 /* Override */); - return checkMemberForOverrideModifier(node, staticType, baseStaticType, baseWithThis, type, typeWithThis, memberHasOverrideModifier, hasAbstractModifier(member), isStatic(member), - /*memberIsParameterProperty*/ - false, symbolName(memberSymbol)); - } - function getTargetSymbol(s) { - return getCheckFlags(s) & 1 /* Instantiated */ ? s.links.target : s; - } - function getClassOrInterfaceDeclarationsOfSymbol(symbol) { - return filter(symbol.declarations, function (d) { return d.kind === 263 /* ClassDeclaration */ || d.kind === 264; } /* InterfaceDeclaration */); - } - function checkKindsOfPropertyMemberOverrides(type, baseType) { - var e_408, _t; - var _u, _v, _w, _x; - var _a, _b, _c, _d; - var baseProperties = getPropertiesOfType(baseType); - var inheritedAbstractMemberNotImplementedError; - var _loop_37 = function (baseProperty) { - var e_409, _y; - var base = getTargetSymbol(baseProperty); - if (base.flags & 4194304 /* Prototype */) { - return "continue"; - } - var baseSymbol = getPropertyOfObjectType(type, base.escapedName); - if (!baseSymbol) { - return "continue"; - } - var derived = getTargetSymbol(baseSymbol); - var baseDeclarationFlags = getDeclarationModifierFlagsFromSymbol(base); - Debug.assert(!!derived, "derived should point to something, even if it is the base class' declaration."); - if (derived === base) { - var derivedClassDecl = getClassLikeDeclarationOfSymbol(type.symbol); - if (baseDeclarationFlags & 256 /* Abstract */ && (!derivedClassDecl || !hasSyntacticModifier(derivedClassDecl, 256 /* Abstract */))) { - try { - for (var _z = (e_409 = void 0, __values(getBaseTypes(type))), _10 = _z.next(); !_10.done; _10 = _z.next()) { - var otherBaseType = _10.value; - if (otherBaseType === baseType) - continue; - var baseSymbol2 = getPropertyOfObjectType(otherBaseType, base.escapedName); - var derivedElsewhere = baseSymbol2 && getTargetSymbol(baseSymbol2); - if (derivedElsewhere && derivedElsewhere !== base) { - return "continue-basePropertyCheck"; - } - } - } - catch (e_409_1) { e_409 = { error: e_409_1 }; } - finally { - try { - if (_10 && !_10.done && (_y = _z.return)) _y.call(_z); - } - finally { if (e_409) throw e_409.error; } - } - if (!inheritedAbstractMemberNotImplementedError) { - inheritedAbstractMemberNotImplementedError = error2(derivedClassDecl, Diagnostics.Non_abstract_class_0_does_not_implement_all_abstract_members_of_1, typeToString(type), typeToString(baseType)); - } - if (derivedClassDecl.kind === 231 /* ClassExpression */) { - addRelatedInfo(inheritedAbstractMemberNotImplementedError, createDiagnosticForNode((_v = (_u = baseProperty.valueDeclaration) !== null && _u !== void 0 ? _u : (baseProperty.declarations && first(baseProperty.declarations))) !== null && _v !== void 0 ? _v : derivedClassDecl, Diagnostics.Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1, symbolToString(baseProperty), typeToString(baseType))); - } - else { - addRelatedInfo(inheritedAbstractMemberNotImplementedError, createDiagnosticForNode((_x = (_w = baseProperty.valueDeclaration) !== null && _w !== void 0 ? _w : (baseProperty.declarations && first(baseProperty.declarations))) !== null && _x !== void 0 ? _x : derivedClassDecl, Diagnostics.Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2, typeToString(type), symbolToString(baseProperty), typeToString(baseType))); - } - } - } - else { - var derivedDeclarationFlags = getDeclarationModifierFlagsFromSymbol(derived); - if (baseDeclarationFlags & 8 /* Private */ || derivedDeclarationFlags & 8 /* Private */) { - return "continue"; - } - var errorMessage = void 0; - var basePropertyFlags = base.flags & 98308 /* PropertyOrAccessor */; - var derivedPropertyFlags = derived.flags & 98308 /* PropertyOrAccessor */; - if (basePropertyFlags && derivedPropertyFlags) { - if ((getCheckFlags(base) & 6 /* Synthetic */ ? (_a = base.declarations) == null ? void 0 : _a.some(function (d) { return isPropertyAbstractOrInterface(d, baseDeclarationFlags); }) : (_b = base.declarations) == null ? void 0 : _b.every(function (d) { return isPropertyAbstractOrInterface(d, baseDeclarationFlags); })) || getCheckFlags(base) & 262144 /* Mapped */ || derived.valueDeclaration && isBinaryExpression(derived.valueDeclaration)) { - return "continue"; - } - var overriddenInstanceProperty = basePropertyFlags !== 4 /* Property */ && derivedPropertyFlags === 4 /* Property */; - var overriddenInstanceAccessor = basePropertyFlags === 4 /* Property */ && derivedPropertyFlags !== 4 /* Property */; - if (overriddenInstanceProperty || overriddenInstanceAccessor) { - var errorMessage2 = overriddenInstanceProperty ? Diagnostics._0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property : Diagnostics._0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor; - error2(getNameOfDeclaration(derived.valueDeclaration) || derived.valueDeclaration, errorMessage2, symbolToString(base), typeToString(baseType), typeToString(type)); - } - else if (useDefineForClassFields) { - var uninitialized = (_c = derived.declarations) == null ? void 0 : _c.find(function (d) { return d.kind === 172 /* PropertyDeclaration */ && !d.initializer; }); - if (uninitialized && !(derived.flags & 33554432 /* Transient */) && !(baseDeclarationFlags & 256 /* Abstract */) && !(derivedDeclarationFlags & 256 /* Abstract */) && !((_d = derived.declarations) == null ? void 0 : _d.some(function (d) { return !!(d.flags & 33554432 /* Ambient */); }))) { - var constructor = findConstructorDeclaration(getClassLikeDeclarationOfSymbol(type.symbol)); - var propName = uninitialized.name; - if (uninitialized.exclamationToken || !constructor || !isIdentifier(propName) || !strictNullChecks || !isPropertyInitializedInConstructor(propName, type, constructor)) { - var errorMessage2 = Diagnostics.Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_add_a_declare_modifier_or_remove_the_redundant_declaration; - error2(getNameOfDeclaration(derived.valueDeclaration) || derived.valueDeclaration, errorMessage2, symbolToString(base), typeToString(baseType)); - } - } - } - return "continue"; - } - else if (isPrototypeProperty(base)) { - if (isPrototypeProperty(derived) || derived.flags & 4 /* Property */) { - return "continue"; - } - else { - Debug.assert(!!(derived.flags & 98304 /* Accessor */)); - errorMessage = Diagnostics.Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor; - } - } - else if (base.flags & 98304 /* Accessor */) { - errorMessage = Diagnostics.Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function; - } - else { - errorMessage = Diagnostics.Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function; - } - error2(getNameOfDeclaration(derived.valueDeclaration) || derived.valueDeclaration, errorMessage, typeToString(baseType), symbolToString(base), typeToString(type)); - } - }; - try { - basePropertyCheck: for (var baseProperties_1 = __values(baseProperties), baseProperties_1_1 = baseProperties_1.next(); !baseProperties_1_1.done; baseProperties_1_1 = baseProperties_1.next()) { - var baseProperty = baseProperties_1_1.value; - var state_13 = _loop_37(baseProperty); - switch (state_13) { - case "continue-basePropertyCheck": continue basePropertyCheck; - } - } - } - catch (e_408_1) { e_408 = { error: e_408_1 }; } - finally { - try { - if (baseProperties_1_1 && !baseProperties_1_1.done && (_t = baseProperties_1.return)) _t.call(baseProperties_1); - } - finally { if (e_408) throw e_408.error; } - } - } - function isPropertyAbstractOrInterface(declaration, baseDeclarationFlags) { - return baseDeclarationFlags & 256 /* Abstract */ && (!isPropertyDeclaration(declaration) || !declaration.initializer) || isInterfaceDeclaration(declaration.parent); - } - function getNonInheritedProperties(type, baseTypes, properties) { - var e_410, _t, e_411, _u; - if (!length(baseTypes)) { - return properties; - } - var seen = /* @__PURE__ */ new Map(); - forEach(properties, function (p) { - seen.set(p.escapedName, p); - }); - try { - for (var baseTypes_3 = __values(baseTypes), baseTypes_3_1 = baseTypes_3.next(); !baseTypes_3_1.done; baseTypes_3_1 = baseTypes_3.next()) { - var base = baseTypes_3_1.value; - var properties2 = getPropertiesOfType(getTypeWithThisArgument(base, type.thisType)); - try { - for (var properties2_1 = (e_411 = void 0, __values(properties2)), properties2_1_1 = properties2_1.next(); !properties2_1_1.done; properties2_1_1 = properties2_1.next()) { - var prop = properties2_1_1.value; - var existing = seen.get(prop.escapedName); - if (existing && prop.parent === existing.parent) { - seen.delete(prop.escapedName); - } - } - } - catch (e_411_1) { e_411 = { error: e_411_1 }; } - finally { - try { - if (properties2_1_1 && !properties2_1_1.done && (_u = properties2_1.return)) _u.call(properties2_1); - } - finally { if (e_411) throw e_411.error; } - } - } - } - catch (e_410_1) { e_410 = { error: e_410_1 }; } - finally { - try { - if (baseTypes_3_1 && !baseTypes_3_1.done && (_t = baseTypes_3.return)) _t.call(baseTypes_3); - } - finally { if (e_410) throw e_410.error; } - } - return arrayFrom(seen.values()); - } - function checkInheritedPropertiesAreIdentical(type, typeNode) { - var e_412, _t, e_413, _u; - var baseTypes = getBaseTypes(type); - if (baseTypes.length < 2) { - return true; - } - var seen = /* @__PURE__ */ new Map(); - forEach(resolveDeclaredMembers(type).declaredProperties, function (p) { - seen.set(p.escapedName, { prop: p, containingType: type }); - }); - var ok = true; - try { - for (var baseTypes_4 = __values(baseTypes), baseTypes_4_1 = baseTypes_4.next(); !baseTypes_4_1.done; baseTypes_4_1 = baseTypes_4.next()) { - var base = baseTypes_4_1.value; - var properties = getPropertiesOfType(getTypeWithThisArgument(base, type.thisType)); - try { - for (var properties_4 = (e_413 = void 0, __values(properties)), properties_4_1 = properties_4.next(); !properties_4_1.done; properties_4_1 = properties_4.next()) { - var prop = properties_4_1.value; - var existing = seen.get(prop.escapedName); - if (!existing) { - seen.set(prop.escapedName, { prop: prop, containingType: base }); - } - else { - var isInheritedProperty = existing.containingType !== type; - if (isInheritedProperty && !isPropertyIdenticalTo(existing.prop, prop)) { - ok = false; - var typeName1 = typeToString(existing.containingType); - var typeName2 = typeToString(base); - var errorInfo = chainDiagnosticMessages( - /*details*/ - void 0, Diagnostics.Named_property_0_of_types_1_and_2_are_not_identical, symbolToString(prop), typeName1, typeName2); - errorInfo = chainDiagnosticMessages(errorInfo, Diagnostics.Interface_0_cannot_simultaneously_extend_types_1_and_2, typeToString(type), typeName1, typeName2); - diagnostics.add(createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(typeNode), typeNode, errorInfo)); - } - } - } - } - catch (e_413_1) { e_413 = { error: e_413_1 }; } - finally { - try { - if (properties_4_1 && !properties_4_1.done && (_u = properties_4.return)) _u.call(properties_4); - } - finally { if (e_413) throw e_413.error; } - } - } - } - catch (e_412_1) { e_412 = { error: e_412_1 }; } - finally { - try { - if (baseTypes_4_1 && !baseTypes_4_1.done && (_t = baseTypes_4.return)) _t.call(baseTypes_4); - } - finally { if (e_412) throw e_412.error; } - } - return ok; - } - function checkPropertyInitialization(node) { - var e_414, _t; - if (!strictNullChecks || !strictPropertyInitialization || node.flags & 33554432 /* Ambient */) { - return; - } - var constructor = findConstructorDeclaration(node); - try { - for (var _u = __values(node.members), _v = _u.next(); !_v.done; _v = _u.next()) { - var member = _v.value; - if (getEffectiveModifierFlags(member) & 2 /* Ambient */) { - continue; - } - if (!isStatic(member) && isPropertyWithoutInitializer(member)) { - var propName = member.name; - if (isIdentifier(propName) || isPrivateIdentifier(propName) || isComputedPropertyName(propName)) { - var type = getTypeOfSymbol(getSymbolOfDeclaration(member)); - if (!(type.flags & 3 /* AnyOrUnknown */ || containsUndefinedType(type))) { - if (!constructor || !isPropertyInitializedInConstructor(propName, type, constructor)) { - error2(member.name, Diagnostics.Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor, declarationNameToString(propName)); - } - } - } - } - } - } - catch (e_414_1) { e_414 = { error: e_414_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_414) throw e_414.error; } - } - } - function isPropertyWithoutInitializer(node) { - return node.kind === 172 /* PropertyDeclaration */ && !hasAbstractModifier(node) && !node.exclamationToken && !node.initializer; - } - function isPropertyInitializedInStaticBlocks(propName, propType, staticBlocks, startPos, endPos) { - var e_415, _t; - try { - for (var staticBlocks_2 = __values(staticBlocks), staticBlocks_2_1 = staticBlocks_2.next(); !staticBlocks_2_1.done; staticBlocks_2_1 = staticBlocks_2.next()) { - var staticBlock = staticBlocks_2_1.value; - if (staticBlock.pos >= startPos && staticBlock.pos <= endPos) { - var reference = factory.createPropertyAccessExpression(factory.createThis(), propName); - setParent(reference.expression, reference); - setParent(reference, staticBlock); - reference.flowNode = staticBlock.returnFlowNode; - var flowType = getFlowTypeOfReference(reference, propType, getOptionalType(propType)); - if (!containsUndefinedType(flowType)) { - return true; - } - } - } - } - catch (e_415_1) { e_415 = { error: e_415_1 }; } - finally { - try { - if (staticBlocks_2_1 && !staticBlocks_2_1.done && (_t = staticBlocks_2.return)) _t.call(staticBlocks_2); - } - finally { if (e_415) throw e_415.error; } - } - return false; - } - function isPropertyInitializedInConstructor(propName, propType, constructor) { - var reference = isComputedPropertyName(propName) ? factory.createElementAccessExpression(factory.createThis(), propName.expression) : factory.createPropertyAccessExpression(factory.createThis(), propName); - setParent(reference.expression, reference); - setParent(reference, constructor); - reference.flowNode = constructor.returnFlowNode; - var flowType = getFlowTypeOfReference(reference, propType, getOptionalType(propType)); - return !containsUndefinedType(flowType); - } - function checkInterfaceDeclaration(node) { - if (!checkGrammarModifiers(node)) - checkGrammarInterfaceDeclaration(node); - checkTypeParameters(node.typeParameters); - addLazyDiagnostic(function () { - var e_416, _t; - checkTypeNameIsReserved(node.name, Diagnostics.Interface_name_cannot_be_0); - checkExportsOnMergedDeclarations(node); - var symbol = getSymbolOfDeclaration(node); - checkTypeParameterListsIdentical(symbol); - var firstInterfaceDecl = getDeclarationOfKind(symbol, 264 /* InterfaceDeclaration */); - if (node === firstInterfaceDecl) { - var type = getDeclaredTypeOfSymbol(symbol); - var typeWithThis = getTypeWithThisArgument(type); - if (checkInheritedPropertiesAreIdentical(type, node.name)) { - try { - for (var _u = __values(getBaseTypes(type)), _v = _u.next(); !_v.done; _v = _u.next()) { - var baseType = _v.value; - checkTypeAssignableTo(typeWithThis, getTypeWithThisArgument(baseType, type.thisType), node.name, Diagnostics.Interface_0_incorrectly_extends_interface_1); - } - } - catch (e_416_1) { e_416 = { error: e_416_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_416) throw e_416.error; } - } - checkIndexConstraints(type, symbol); - } - } - checkObjectTypeForDuplicateDeclarations(node); - }); - forEach(getInterfaceBaseTypeNodes(node), function (heritageElement) { - if (!isEntityNameExpression(heritageElement.expression) || isOptionalChain(heritageElement.expression)) { - error2(heritageElement.expression, Diagnostics.An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments); - } - checkTypeReferenceNode(heritageElement); - }); - forEach(node.members, checkSourceElement); - addLazyDiagnostic(function () { - checkTypeForDuplicateIndexSignatures(node); - registerForUnusedIdentifiersCheck(node); - }); - } - function checkTypeAliasDeclaration(node) { - checkGrammarModifiers(node); - checkTypeNameIsReserved(node.name, Diagnostics.Type_alias_name_cannot_be_0); - checkExportsOnMergedDeclarations(node); - checkTypeParameters(node.typeParameters); - if (node.type.kind === 141 /* IntrinsicKeyword */) { - if (!intrinsicTypeKinds.has(node.name.escapedText) || length(node.typeParameters) !== 1) { - error2(node.type, Diagnostics.The_intrinsic_keyword_can_only_be_used_to_declare_compiler_provided_intrinsic_types); - } - } - else { - checkSourceElement(node.type); - registerForUnusedIdentifiersCheck(node); - } - } - function computeEnumMemberValues(node) { - var e_417, _t; - var nodeLinks2 = getNodeLinks(node); - if (!(nodeLinks2.flags & 1024 /* EnumValuesComputed */)) { - nodeLinks2.flags |= 1024 /* EnumValuesComputed */; - var autoValue = 0; - try { - for (var _u = __values(node.members), _v = _u.next(); !_v.done; _v = _u.next()) { - var member = _v.value; - var value = computeMemberValue(member, autoValue); - getNodeLinks(member).enumMemberValue = value; - autoValue = typeof value === "number" ? value + 1 : void 0; - } - } - catch (e_417_1) { e_417 = { error: e_417_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_417) throw e_417.error; } - } - } - } - function computeMemberValue(member, autoValue) { - if (isComputedNonLiteralName(member.name)) { - error2(member.name, Diagnostics.Computed_property_names_are_not_allowed_in_enums); - } - else { - var text = getTextOfPropertyName(member.name); - if (isNumericLiteralName(text) && !isInfinityOrNaNString(text)) { - error2(member.name, Diagnostics.An_enum_member_cannot_have_a_numeric_name); - } - } - if (member.initializer) { - return computeConstantValue(member); - } - if (member.parent.flags & 33554432 /* Ambient */ && !isEnumConst(member.parent)) { - return void 0; - } - if (autoValue !== void 0) { - return autoValue; - } - error2(member.name, Diagnostics.Enum_member_must_have_initializer); - return void 0; - } - function computeConstantValue(member) { - var isConstEnum = isEnumConst(member.parent); - var initializer = member.initializer; - var value = evaluate(initializer, member); - if (value !== void 0) { - if (isConstEnum && typeof value === "number" && !isFinite(value)) { - error2(initializer, isNaN(value) ? Diagnostics.const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN : Diagnostics.const_enum_member_initializer_was_evaluated_to_a_non_finite_value); - } - } - else if (isConstEnum) { - error2(initializer, Diagnostics.const_enum_member_initializers_must_be_constant_expressions); - } - else if (member.parent.flags & 33554432 /* Ambient */) { - error2(initializer, Diagnostics.In_ambient_enum_declarations_member_initializer_must_be_constant_expression); - } - else { - checkTypeAssignableTo(checkExpression(initializer), numberType, initializer, Diagnostics.Type_0_is_not_assignable_to_type_1_as_required_for_computed_enum_member_values); - } - return value; - } - function evaluate(expr, location) { - switch (expr.kind) { - case 224 /* PrefixUnaryExpression */: - var value = evaluate(expr.operand, location); - if (typeof value === "number") { - switch (expr.operator) { - case 40 /* PlusToken */: - return value; - case 41 /* MinusToken */: - return -value; - case 55 /* TildeToken */: - return ~value; - } - } - break; - case 226 /* BinaryExpression */: - var left = evaluate(expr.left, location); - var right = evaluate(expr.right, location); - if (typeof left === "number" && typeof right === "number") { - switch (expr.operatorToken.kind) { - case 52 /* BarToken */: - return left | right; - case 51 /* AmpersandToken */: - return left & right; - case 49 /* GreaterThanGreaterThanToken */: - return left >> right; - case 50 /* GreaterThanGreaterThanGreaterThanToken */: - return left >>> right; - case 48 /* LessThanLessThanToken */: - return left << right; - case 53 /* CaretToken */: - return left ^ right; - case 42 /* AsteriskToken */: - return left * right; - case 44 /* SlashToken */: - return left / right; - case 40 /* PlusToken */: - return left + right; - case 41 /* MinusToken */: - return left - right; - case 45 /* PercentToken */: - return left % right; - case 43 /* AsteriskAsteriskToken */: - return Math.pow(left, right); - } - } - else if ((typeof left === "string" || typeof left === "number") && (typeof right === "string" || typeof right === "number") && expr.operatorToken.kind === 40 /* PlusToken */) { - return "" + left + right; - } - break; - case 11 /* StringLiteral */: - case 15 /* NoSubstitutionTemplateLiteral */: - return expr.text; - case 228 /* TemplateExpression */: - return evaluateTemplateExpression(expr, location); - case 9 /* NumericLiteral */: - checkGrammarNumericLiteral(expr); - return +expr.text; - case 217 /* ParenthesizedExpression */: - return evaluate(expr.expression, location); - case 80 /* Identifier */: { - var identifier = expr; - if (isInfinityOrNaNString(identifier.escapedText) && resolveEntityName(identifier, 111551 /* Value */, - /*ignoreErrors*/ - true) === getGlobalSymbol(identifier.escapedText, 111551 /* Value */, - /*diagnostic*/ - void 0)) { - return +identifier.escapedText; - } - } - case 211 /* PropertyAccessExpression */: - if (isEntityNameExpression(expr)) { - var symbol = resolveEntityName(expr, 111551 /* Value */, - /*ignoreErrors*/ - true); - if (symbol) { - if (symbol.flags & 8 /* EnumMember */) { - return location ? evaluateEnumMember(expr, symbol, location) : getEnumMemberValue(symbol.valueDeclaration); - } - if (isConstantVariable(symbol)) { - var declaration = symbol.valueDeclaration; - if (declaration && !declaration.type && declaration.initializer && (!location || declaration !== location && isBlockScopedNameDeclaredBeforeUse(declaration, location))) { - return evaluate(declaration.initializer, declaration); - } - } - } - } - break; - case 212 /* ElementAccessExpression */: - var root = expr.expression; - if (isEntityNameExpression(root) && isStringLiteralLike(expr.argumentExpression)) { - var rootSymbol = resolveEntityName(root, 111551 /* Value */, - /*ignoreErrors*/ - true); - if (rootSymbol && rootSymbol.flags & 384 /* Enum */) { - var name_65 = escapeLeadingUnderscores(expr.argumentExpression.text); - var member = rootSymbol.exports.get(name_65); - if (member) { - return location ? evaluateEnumMember(expr, member, location) : getEnumMemberValue(member.valueDeclaration); - } - } - } - break; - } - return void 0; - } - function evaluateEnumMember(expr, symbol, location) { - var declaration = symbol.valueDeclaration; - if (!declaration || declaration === location) { - error2(expr, Diagnostics.Property_0_is_used_before_being_assigned, symbolToString(symbol)); - return void 0; - } - if (!isBlockScopedNameDeclaredBeforeUse(declaration, location)) { - error2(expr, Diagnostics.A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums); - return 0; - } - return getEnumMemberValue(declaration); - } - function evaluateTemplateExpression(expr, location) { - var e_418, _t; - var result = expr.head.text; - try { - for (var _u = __values(expr.templateSpans), _v = _u.next(); !_v.done; _v = _u.next()) { - var span = _v.value; - var value = evaluate(span.expression, location); - if (value === void 0) { - return void 0; - } - result += value; - result += span.literal.text; - } - } - catch (e_418_1) { e_418 = { error: e_418_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_418) throw e_418.error; } - } - return result; - } - function checkEnumDeclaration(node) { - addLazyDiagnostic(function () { return checkEnumDeclarationWorker(node); }); - } - function checkEnumDeclarationWorker(node) { - checkGrammarModifiers(node); - checkCollisionsForDeclarationName(node, node.name); - checkExportsOnMergedDeclarations(node); - node.members.forEach(checkEnumMember); - computeEnumMemberValues(node); - var enumSymbol = getSymbolOfDeclaration(node); - var firstDeclaration = getDeclarationOfKind(enumSymbol, node.kind); - if (node === firstDeclaration) { - if (enumSymbol.declarations && enumSymbol.declarations.length > 1) { - var enumIsConst_1 = isEnumConst(node); - forEach(enumSymbol.declarations, function (decl) { - if (isEnumDeclaration(decl) && isEnumConst(decl) !== enumIsConst_1) { - error2(getNameOfDeclaration(decl), Diagnostics.Enum_declarations_must_all_be_const_or_non_const); - } - }); - } - var seenEnumMissingInitialInitializer_1 = false; - forEach(enumSymbol.declarations, function (declaration) { - if (declaration.kind !== 266 /* EnumDeclaration */) { - return false; - } - var enumDeclaration = declaration; - if (!enumDeclaration.members.length) { - return false; - } - var firstEnumMember = enumDeclaration.members[0]; - if (!firstEnumMember.initializer) { - if (seenEnumMissingInitialInitializer_1) { - error2(firstEnumMember.name, Diagnostics.In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element); - } - else { - seenEnumMissingInitialInitializer_1 = true; - } - } - }); - } - } - function checkEnumMember(node) { - if (isPrivateIdentifier(node.name)) { - error2(node, Diagnostics.An_enum_member_cannot_be_named_with_a_private_identifier); - } - if (node.initializer) { - checkExpression(node.initializer); - } - } - function getFirstNonAmbientClassOrFunctionDeclaration(symbol) { - var e_419, _t; - var declarations = symbol.declarations; - if (declarations) { - try { - for (var declarations_9 = __values(declarations), declarations_9_1 = declarations_9.next(); !declarations_9_1.done; declarations_9_1 = declarations_9.next()) { - var declaration = declarations_9_1.value; - if ((declaration.kind === 263 /* ClassDeclaration */ || declaration.kind === 262 /* FunctionDeclaration */ && nodeIsPresent(declaration.body)) && !(declaration.flags & 33554432 /* Ambient */)) { - return declaration; - } - } - } - catch (e_419_1) { e_419 = { error: e_419_1 }; } - finally { - try { - if (declarations_9_1 && !declarations_9_1.done && (_t = declarations_9.return)) _t.call(declarations_9); - } - finally { if (e_419) throw e_419.error; } - } - } - return void 0; - } - function inSameLexicalScope(node1, node2) { - var container1 = getEnclosingBlockScopeContainer(node1); - var container2 = getEnclosingBlockScopeContainer(node2); - if (isGlobalSourceFile(container1)) { - return isGlobalSourceFile(container2); - } - else if (isGlobalSourceFile(container2)) { - return false; - } - else { - return container1 === container2; - } - } - function checkModuleDeclaration(node) { - if (node.body) { - checkSourceElement(node.body); - if (!isGlobalScopeAugmentation(node)) { - registerForUnusedIdentifiersCheck(node); - } - } - addLazyDiagnostic(checkModuleDeclarationDiagnostics); - function checkModuleDeclarationDiagnostics() { - var e_420, _t; - var _a, _b; - var isGlobalAugmentation = isGlobalScopeAugmentation(node); - var inAmbientContext = node.flags & 33554432 /* Ambient */; - if (isGlobalAugmentation && !inAmbientContext) { - error2(node.name, Diagnostics.Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambient_context); - } - var isAmbientExternalModule = isAmbientModule(node); - var contextErrorMessage = isAmbientExternalModule ? Diagnostics.An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file : Diagnostics.A_namespace_declaration_is_only_allowed_at_the_top_level_of_a_namespace_or_module; - if (checkGrammarModuleElementContext(node, contextErrorMessage)) { - return; - } - if (!checkGrammarModifiers(node)) { - if (!inAmbientContext && node.name.kind === 11 /* StringLiteral */) { - grammarErrorOnNode(node.name, Diagnostics.Only_ambient_modules_can_use_quoted_names); - } - } - if (isIdentifier(node.name)) { - checkCollisionsForDeclarationName(node, node.name); - } - checkExportsOnMergedDeclarations(node); - var symbol = getSymbolOfDeclaration(node); - if (symbol.flags & 512 /* ValueModule */ && !inAmbientContext && isInstantiatedModule(node, shouldPreserveConstEnums(compilerOptions))) { - if (getIsolatedModules(compilerOptions) && !getSourceFileOfNode(node).externalModuleIndicator) { - error2(node.name, Diagnostics.Namespaces_are_not_allowed_in_global_script_files_when_0_is_enabled_If_this_file_is_not_intended_to_be_a_global_script_set_moduleDetection_to_force_or_add_an_empty_export_statement, isolatedModulesLikeFlagName); - } - if (((_a = symbol.declarations) == null ? void 0 : _a.length) > 1) { - var firstNonAmbientClassOrFunc = getFirstNonAmbientClassOrFunctionDeclaration(symbol); - if (firstNonAmbientClassOrFunc) { - if (getSourceFileOfNode(node) !== getSourceFileOfNode(firstNonAmbientClassOrFunc)) { - error2(node.name, Diagnostics.A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged); - } - else if (node.pos < firstNonAmbientClassOrFunc.pos) { - error2(node.name, Diagnostics.A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged); - } - } - var mergedClass = getDeclarationOfKind(symbol, 263 /* ClassDeclaration */); - if (mergedClass && inSameLexicalScope(node, mergedClass)) { - getNodeLinks(node).flags |= 2048 /* LexicalModuleMergesWithClass */; - } - } - if (compilerOptions.verbatimModuleSyntax && node.parent.kind === 312 /* SourceFile */ && (moduleKind === 1 /* CommonJS */ || node.parent.impliedNodeFormat === 1 /* CommonJS */)) { - var exportModifier = (_b = node.modifiers) == null ? void 0 : _b.find(function (m) { return m.kind === 95; } /* ExportKeyword */); - if (exportModifier) { - error2(exportModifier, Diagnostics.A_top_level_export_modifier_cannot_be_used_on_value_declarations_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled); - } - } - } - if (isAmbientExternalModule) { - if (isExternalModuleAugmentation(node)) { - var checkBody = isGlobalAugmentation || getSymbolOfDeclaration(node).flags & 33554432 /* Transient */; - if (checkBody && node.body) { - try { - for (var _u = __values(node.body.statements), _v = _u.next(); !_v.done; _v = _u.next()) { - var statement = _v.value; - checkModuleAugmentationElement(statement, isGlobalAugmentation); - } - } - catch (e_420_1) { e_420 = { error: e_420_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_420) throw e_420.error; } - } - } - } - else if (isGlobalSourceFile(node.parent)) { - if (isGlobalAugmentation) { - error2(node.name, Diagnostics.Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations); - } - else if (isExternalModuleNameRelative(getTextOfIdentifierOrLiteral(node.name))) { - error2(node.name, Diagnostics.Ambient_module_declaration_cannot_specify_relative_module_name); - } - } - else { - if (isGlobalAugmentation) { - error2(node.name, Diagnostics.Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations); - } - else { - error2(node.name, Diagnostics.Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces); - } - } - } - } - } - function checkModuleAugmentationElement(node, isGlobalAugmentation) { - var e_421, _t, e_422, _u; - switch (node.kind) { - case 243 /* VariableStatement */: - try { - for (var _v = __values(node.declarationList.declarations), _w = _v.next(); !_w.done; _w = _v.next()) { - var decl = _w.value; - checkModuleAugmentationElement(decl, isGlobalAugmentation); - } - } - catch (e_421_1) { e_421 = { error: e_421_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_421) throw e_421.error; } - } - break; - case 277 /* ExportAssignment */: - case 278 /* ExportDeclaration */: - grammarErrorOnFirstToken(node, Diagnostics.Exports_and_export_assignments_are_not_permitted_in_module_augmentations); - break; - case 271 /* ImportEqualsDeclaration */: - case 272 /* ImportDeclaration */: - grammarErrorOnFirstToken(node, Diagnostics.Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_module); - break; - case 208 /* BindingElement */: - case 260 /* VariableDeclaration */: - var name_66 = node.name; - if (isBindingPattern(name_66)) { - try { - for (var _x = __values(name_66.elements), _y = _x.next(); !_y.done; _y = _x.next()) { - var el = _y.value; - checkModuleAugmentationElement(el, isGlobalAugmentation); - } - } - catch (e_422_1) { e_422 = { error: e_422_1 }; } - finally { - try { - if (_y && !_y.done && (_u = _x.return)) _u.call(_x); - } - finally { if (e_422) throw e_422.error; } - } - break; - } - case 263 /* ClassDeclaration */: - case 266 /* EnumDeclaration */: - case 262 /* FunctionDeclaration */: - case 264 /* InterfaceDeclaration */: - case 267 /* ModuleDeclaration */: - case 265 /* TypeAliasDeclaration */: - if (isGlobalAugmentation) { - return; - } - break; - } - } - function getFirstNonModuleExportsIdentifier(node) { - switch (node.kind) { - case 80 /* Identifier */: - return node; - case 166 /* QualifiedName */: - do { - node = node.left; - } while (node.kind !== 80 /* Identifier */); - return node; - case 211 /* PropertyAccessExpression */: - do { - if (isModuleExportsAccessExpression(node.expression) && !isPrivateIdentifier(node.name)) { - return node.name; - } - node = node.expression; - } while (node.kind !== 80 /* Identifier */); - return node; - } - } - function checkExternalImportOrExportDeclaration(node) { - var e_423, _t; - var moduleName = getExternalModuleName(node); - if (!moduleName || nodeIsMissing(moduleName)) { - return false; - } - if (!isStringLiteral(moduleName)) { - error2(moduleName, Diagnostics.String_literal_expected); - return false; - } - var inAmbientExternalModule = node.parent.kind === 268 /* ModuleBlock */ && isAmbientModule(node.parent.parent); - if (node.parent.kind !== 312 /* SourceFile */ && !inAmbientExternalModule) { - error2(moduleName, node.kind === 278 /* ExportDeclaration */ ? Diagnostics.Export_declarations_are_not_permitted_in_a_namespace : Diagnostics.Import_declarations_in_a_namespace_cannot_reference_a_module); - return false; - } - if (inAmbientExternalModule && isExternalModuleNameRelative(moduleName.text)) { - if (!isTopLevelInExternalModuleAugmentation(node)) { - error2(node, Diagnostics.Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relative_module_name); - return false; - } - } - if (!isImportEqualsDeclaration(node) && node.assertClause) { - var hasError = false; - try { - for (var _u = __values(node.assertClause.elements), _v = _u.next(); !_v.done; _v = _u.next()) { - var clause = _v.value; - if (!isStringLiteral(clause.value)) { - hasError = true; - error2(clause.value, Diagnostics.Import_assertion_values_must_be_string_literal_expressions); - } - } - } - catch (e_423_1) { e_423 = { error: e_423_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_423) throw e_423.error; } - } - return !hasError; - } - return true; - } - function checkAliasSymbol(node) { - var _t; - var _a, _b, _c, _d; - var symbol = getSymbolOfDeclaration(node); - var target = resolveAlias(symbol); - if (target !== unknownSymbol) { - symbol = getMergedSymbol(symbol.exportSymbol || symbol); - if (isInJSFile(node) && !(target.flags & 111551 /* Value */) && !isTypeOnlyImportOrExportDeclaration(node)) { - var errorNode = isImportOrExportSpecifier(node) ? node.propertyName || node.name : isNamedDeclaration(node) ? node.name : node; - Debug.assert(node.kind !== 280 /* NamespaceExport */); - if (node.kind === 281 /* ExportSpecifier */) { - var diag2 = error2(errorNode, Diagnostics.Types_cannot_appear_in_export_declarations_in_JavaScript_files); - var alreadyExportedSymbol = (_b = (_a = getSourceFileOfNode(node).symbol) == null ? void 0 : _a.exports) == null ? void 0 : _b.get((node.propertyName || node.name).escapedText); - if (alreadyExportedSymbol === target) { - var exportingDeclaration = (_c = alreadyExportedSymbol.declarations) == null ? void 0 : _c.find(isJSDocNode); - if (exportingDeclaration) { - addRelatedInfo(diag2, createDiagnosticForNode(exportingDeclaration, Diagnostics._0_is_automatically_exported_here, unescapeLeadingUnderscores(alreadyExportedSymbol.escapedName))); - } - } - } - else { - Debug.assert(node.kind !== 260 /* VariableDeclaration */); - var importDeclaration = findAncestor(node, or(isImportDeclaration, isImportEqualsDeclaration)); - var moduleSpecifier = (_t = (importDeclaration && ((_d = tryGetModuleSpecifierFromDeclaration(importDeclaration)) == null ? void 0 : _d.text))) !== null && _t !== void 0 ? _t : "..."; - var importedIdentifier = unescapeLeadingUnderscores(isIdentifier(errorNode) ? errorNode.escapedText : symbol.escapedName); - error2(errorNode, Diagnostics._0_is_a_type_and_cannot_be_imported_in_JavaScript_files_Use_1_in_a_JSDoc_type_annotation, importedIdentifier, "import(\"".concat(moduleSpecifier, "\").").concat(importedIdentifier)); - } - return; - } - var targetFlags = getSymbolFlags(target); - var excludedMeanings = (symbol.flags & (111551 /* Value */ | 1048576 /* ExportValue */) ? 111551 /* Value */ : 0) | (symbol.flags & 788968 /* Type */ ? 788968 /* Type */ : 0) | (symbol.flags & 1920 /* Namespace */ ? 1920 /* Namespace */ : 0); - if (targetFlags & excludedMeanings) { - var message = node.kind === 281 /* ExportSpecifier */ ? Diagnostics.Export_declaration_conflicts_with_exported_declaration_of_0 : Diagnostics.Import_declaration_conflicts_with_local_declaration_of_0; - error2(node, message, symbolToString(symbol)); - } - if (getIsolatedModules(compilerOptions) && !isTypeOnlyImportOrExportDeclaration(node) && !(node.flags & 33554432 /* Ambient */)) { - var typeOnlyAlias = getTypeOnlyAliasDeclaration(symbol); - var isType = !(targetFlags & 111551 /* Value */); - if (isType || typeOnlyAlias) { - switch (node.kind) { - case 273 /* ImportClause */: - case 276 /* ImportSpecifier */: - case 271 /* ImportEqualsDeclaration */: { - if (compilerOptions.preserveValueImports || compilerOptions.verbatimModuleSyntax) { - Debug.assertIsDefined(node.name, "An ImportClause with a symbol should have a name"); - var message = compilerOptions.verbatimModuleSyntax && isInternalModuleImportEqualsDeclaration(node) ? Diagnostics.An_import_alias_cannot_resolve_to_a_type_or_type_only_declaration_when_verbatimModuleSyntax_is_enabled : isType ? compilerOptions.verbatimModuleSyntax ? Diagnostics._0_is_a_type_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled : Diagnostics._0_is_a_type_and_must_be_imported_using_a_type_only_import_when_preserveValueImports_and_isolatedModules_are_both_enabled : compilerOptions.verbatimModuleSyntax ? Diagnostics._0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled : Diagnostics._0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_preserveValueImports_and_isolatedModules_are_both_enabled; - var name_67 = idText(node.kind === 276 /* ImportSpecifier */ ? node.propertyName || node.name : node.name); - addTypeOnlyDeclarationRelatedInfo(error2(node, message, name_67), isType ? void 0 : typeOnlyAlias, name_67); - } - if (isType && node.kind === 271 /* ImportEqualsDeclaration */ && hasEffectiveModifier(node, 1 /* Export */)) { - error2(node, Diagnostics.Cannot_use_export_import_on_a_type_or_type_only_namespace_when_0_is_enabled, isolatedModulesLikeFlagName); - } - break; - } - case 281 /* ExportSpecifier */: { - if (compilerOptions.verbatimModuleSyntax || getSourceFileOfNode(typeOnlyAlias) !== getSourceFileOfNode(node)) { - var name_68 = idText(node.propertyName || node.name); - var diagnostic = isType ? error2(node, Diagnostics.Re_exporting_a_type_when_0_is_enabled_requires_using_export_type, isolatedModulesLikeFlagName) : error2(node, Diagnostics._0_resolves_to_a_type_only_declaration_and_must_be_re_exported_using_a_type_only_re_export_when_1_is_enabled, name_68, isolatedModulesLikeFlagName); - addTypeOnlyDeclarationRelatedInfo(diagnostic, isType ? void 0 : typeOnlyAlias, name_68); - break; - } - } - } - } - if (compilerOptions.verbatimModuleSyntax && node.kind !== 271 /* ImportEqualsDeclaration */ && !isInJSFile(node) && (moduleKind === 1 /* CommonJS */ || getSourceFileOfNode(node).impliedNodeFormat === 1 /* CommonJS */)) { - error2(node, Diagnostics.ESM_syntax_is_not_allowed_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled); - } - } - if (isImportSpecifier(node)) { - var targetSymbol = resolveAliasWithDeprecationCheck(symbol, node); - if (isDeprecatedSymbol(targetSymbol) && targetSymbol.declarations) { - addDeprecatedSuggestion(node, targetSymbol.declarations, targetSymbol.escapedName); - } - } - } - } - function resolveAliasWithDeprecationCheck(symbol, location) { - if (!(symbol.flags & 2097152 /* Alias */) || isDeprecatedSymbol(symbol) || !getDeclarationOfAliasSymbol(symbol)) { - return symbol; - } - var targetSymbol = resolveAlias(symbol); - if (targetSymbol === unknownSymbol) - return targetSymbol; - while (symbol.flags & 2097152 /* Alias */) { - var target = getImmediateAliasedSymbol(symbol); - if (target) { - if (target === targetSymbol) - break; - if (target.declarations && length(target.declarations)) { - if (isDeprecatedSymbol(target)) { - addDeprecatedSuggestion(location, target.declarations, target.escapedName); - break; - } - else { - if (symbol === targetSymbol) - break; - symbol = target; - } - } - } - else { - break; - } - } - return targetSymbol; - } - function checkImportBinding(node) { - checkCollisionsForDeclarationName(node, node.name); - checkAliasSymbol(node); - if (node.kind === 276 /* ImportSpecifier */ && idText(node.propertyName || node.name) === "default" && getESModuleInterop(compilerOptions) && moduleKind !== 4 /* System */ && (moduleKind < 5 /* ES2015 */ || getSourceFileOfNode(node).impliedNodeFormat === 1 /* CommonJS */)) { - checkExternalEmitHelpers(node, 131072 /* ImportDefault */); - } - } - function checkAssertClause(declaration) { - var _a; - if (declaration.assertClause) { - var validForTypeAssertions = isExclusivelyTypeOnlyImportOrExport(declaration); - var override = getResolutionModeOverrideForClause(declaration.assertClause, validForTypeAssertions ? grammarErrorOnNode : void 0); - if (validForTypeAssertions && override) { - if (!isNightly()) { - grammarErrorOnNode(declaration.assertClause, Diagnostics.resolution_mode_assertions_are_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next); - } - if (getEmitModuleResolutionKind(compilerOptions) !== 3 /* Node16 */ && getEmitModuleResolutionKind(compilerOptions) !== 99 /* NodeNext */) { - return grammarErrorOnNode(declaration.assertClause, Diagnostics.resolution_mode_assertions_are_only_supported_when_moduleResolution_is_node16_or_nodenext); - } - return; - } - var mode = moduleKind === 199 /* NodeNext */ && declaration.moduleSpecifier && getUsageModeForExpression(declaration.moduleSpecifier); - if (mode !== 99 /* ESNext */ && moduleKind !== 99 /* ESNext */) { - return grammarErrorOnNode(declaration.assertClause, moduleKind === 199 /* NodeNext */ ? Diagnostics.Import_assertions_are_not_allowed_on_statements_that_transpile_to_commonjs_require_calls : Diagnostics.Import_assertions_are_only_supported_when_the_module_option_is_set_to_esnext_or_nodenext); - } - if (isImportDeclaration(declaration) ? (_a = declaration.importClause) == null ? void 0 : _a.isTypeOnly : declaration.isTypeOnly) { - return grammarErrorOnNode(declaration.assertClause, Diagnostics.Import_assertions_cannot_be_used_with_type_only_imports_or_exports); - } - if (override) { - return grammarErrorOnNode(declaration.assertClause, Diagnostics.resolution_mode_can_only_be_set_for_type_only_imports); - } - } - } - function checkImportDeclaration(node) { - if (checkGrammarModuleElementContext(node, isInJSFile(node) ? Diagnostics.An_import_declaration_can_only_be_used_at_the_top_level_of_a_module : Diagnostics.An_import_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module)) { - return; - } - if (!checkGrammarModifiers(node) && hasEffectiveModifiers(node)) { - grammarErrorOnFirstToken(node, Diagnostics.An_import_declaration_cannot_have_modifiers); - } - if (checkExternalImportOrExportDeclaration(node)) { - var importClause = node.importClause; - if (importClause && !checkGrammarImportClause(importClause)) { - if (importClause.name) { - checkImportBinding(importClause); - } - if (importClause.namedBindings) { - if (importClause.namedBindings.kind === 274 /* NamespaceImport */) { - checkImportBinding(importClause.namedBindings); - if (moduleKind !== 4 /* System */ && (moduleKind < 5 /* ES2015 */ || getSourceFileOfNode(node).impliedNodeFormat === 1 /* CommonJS */) && getESModuleInterop(compilerOptions)) { - checkExternalEmitHelpers(node, 65536 /* ImportStar */); - } - } - else { - var moduleExisted = resolveExternalModuleName(node, node.moduleSpecifier); - if (moduleExisted) { - forEach(importClause.namedBindings.elements, checkImportBinding); - } - } - } - } - } - checkAssertClause(node); - } - function checkImportEqualsDeclaration(node) { - if (checkGrammarModuleElementContext(node, isInJSFile(node) ? Diagnostics.An_import_declaration_can_only_be_used_at_the_top_level_of_a_module : Diagnostics.An_import_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module)) { - return; - } - checkGrammarModifiers(node); - if (isInternalModuleImportEqualsDeclaration(node) || checkExternalImportOrExportDeclaration(node)) { - checkImportBinding(node); - if (hasSyntacticModifier(node, 1 /* Export */)) { - markExportAsReferenced(node); - } - if (node.moduleReference.kind !== 283 /* ExternalModuleReference */) { - var target = resolveAlias(getSymbolOfDeclaration(node)); - if (target !== unknownSymbol) { - var targetFlags = getSymbolFlags(target); - if (targetFlags & 111551 /* Value */) { - var moduleName = getFirstIdentifier(node.moduleReference); - if (!(resolveEntityName(moduleName, 111551 /* Value */ | 1920 /* Namespace */).flags & 1920 /* Namespace */)) { - error2(moduleName, Diagnostics.Module_0_is_hidden_by_a_local_declaration_with_the_same_name, declarationNameToString(moduleName)); - } - } - if (targetFlags & 788968 /* Type */) { - checkTypeNameIsReserved(node.name, Diagnostics.Import_name_cannot_be_0); - } - } - if (node.isTypeOnly) { - grammarErrorOnNode(node, Diagnostics.An_import_alias_cannot_use_import_type); - } - } - else { - if (moduleKind >= 5 /* ES2015 */ && getSourceFileOfNode(node).impliedNodeFormat === void 0 && !node.isTypeOnly && !(node.flags & 33554432 /* Ambient */)) { - grammarErrorOnNode(node, Diagnostics.Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_import_d_from_mod_or_another_module_format_instead); - } - } - } - } - function checkExportDeclaration(node) { - if (checkGrammarModuleElementContext(node, isInJSFile(node) ? Diagnostics.An_export_declaration_can_only_be_used_at_the_top_level_of_a_module : Diagnostics.An_export_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module)) { - return; - } - if (!checkGrammarModifiers(node) && hasSyntacticModifiers(node)) { - grammarErrorOnFirstToken(node, Diagnostics.An_export_declaration_cannot_have_modifiers); - } - if (node.moduleSpecifier && node.exportClause && isNamedExports(node.exportClause) && length(node.exportClause.elements) && languageVersion === 0 /* ES3 */) { - checkExternalEmitHelpers(node, 4194304 /* CreateBinding */); - } - checkGrammarExportDeclaration(node); - if (!node.moduleSpecifier || checkExternalImportOrExportDeclaration(node)) { - if (node.exportClause && !isNamespaceExport(node.exportClause)) { - forEach(node.exportClause.elements, checkExportSpecifier); - var inAmbientExternalModule = node.parent.kind === 268 /* ModuleBlock */ && isAmbientModule(node.parent.parent); - var inAmbientNamespaceDeclaration = !inAmbientExternalModule && node.parent.kind === 268 /* ModuleBlock */ && !node.moduleSpecifier && node.flags & 33554432 /* Ambient */; - if (node.parent.kind !== 312 /* SourceFile */ && !inAmbientExternalModule && !inAmbientNamespaceDeclaration) { - error2(node, Diagnostics.Export_declarations_are_not_permitted_in_a_namespace); - } - } - else { - var moduleSymbol = resolveExternalModuleName(node, node.moduleSpecifier); - if (moduleSymbol && hasExportAssignmentSymbol(moduleSymbol)) { - error2(node.moduleSpecifier, Diagnostics.Module_0_uses_export_and_cannot_be_used_with_export_Asterisk, symbolToString(moduleSymbol)); - } - else if (node.exportClause) { - checkAliasSymbol(node.exportClause); - } - if (moduleKind !== 4 /* System */ && (moduleKind < 5 /* ES2015 */ || getSourceFileOfNode(node).impliedNodeFormat === 1 /* CommonJS */)) { - if (node.exportClause) { - if (getESModuleInterop(compilerOptions)) { - checkExternalEmitHelpers(node, 65536 /* ImportStar */); - } - } - else { - checkExternalEmitHelpers(node, 32768 /* ExportStar */); - } - } - } - } - checkAssertClause(node); - } - function checkGrammarExportDeclaration(node) { - var _a; - if (node.isTypeOnly && ((_a = node.exportClause) == null ? void 0 : _a.kind) === 279 /* NamedExports */) { - return checkGrammarNamedImportsOrExports(node.exportClause); - } - return false; - } - function checkGrammarModuleElementContext(node, errorMessage) { - var isInAppropriateContext = node.parent.kind === 312 /* SourceFile */ || node.parent.kind === 268 /* ModuleBlock */ || node.parent.kind === 267 /* ModuleDeclaration */; - if (!isInAppropriateContext) { - grammarErrorOnFirstToken(node, errorMessage); - } - return !isInAppropriateContext; - } - function importClauseContainsReferencedImport(importClause) { - return forEachImportClauseDeclaration(importClause, function (declaration) { - return !!getSymbolOfDeclaration(declaration).isReferenced; - }); - } - function importClauseContainsConstEnumUsedAsValue(importClause) { - return forEachImportClauseDeclaration(importClause, function (declaration) { - return !!getSymbolLinks(getSymbolOfDeclaration(declaration)).constEnumReferenced; - }); - } - function canConvertImportDeclarationToTypeOnly(statement) { - return isImportDeclaration(statement) && statement.importClause && !statement.importClause.isTypeOnly && importClauseContainsReferencedImport(statement.importClause) && !isReferencedAliasDeclaration(statement.importClause, - /*checkChildren*/ - true) && !importClauseContainsConstEnumUsedAsValue(statement.importClause); - } - function canConvertImportEqualsDeclarationToTypeOnly(statement) { - return isImportEqualsDeclaration(statement) && isExternalModuleReference(statement.moduleReference) && !statement.isTypeOnly && getSymbolOfDeclaration(statement).isReferenced && !isReferencedAliasDeclaration(statement, - /*checkChildren*/ - false) && !getSymbolLinks(getSymbolOfDeclaration(statement)).constEnumReferenced; - } - function checkImportsForTypeOnlyConversion(sourceFile) { - var e_424, _t; - if (!canCollectSymbolAliasAccessabilityData) { - return; - } - try { - for (var _u = __values(sourceFile.statements), _v = _u.next(); !_v.done; _v = _u.next()) { - var statement = _v.value; - if (canConvertImportDeclarationToTypeOnly(statement) || canConvertImportEqualsDeclarationToTypeOnly(statement)) { - error2(statement, Diagnostics.This_import_is_never_used_as_a_value_and_must_use_import_type_because_importsNotUsedAsValues_is_set_to_error); - } - } - } - catch (e_424_1) { e_424 = { error: e_424_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_424) throw e_424.error; } - } - } - function checkExportSpecifier(node) { - checkAliasSymbol(node); - if (getEmitDeclarations(compilerOptions)) { - collectLinkedAliases(node.propertyName || node.name, - /*setVisibility*/ - true); - } - if (!node.parent.parent.moduleSpecifier) { - var exportedName = node.propertyName || node.name; - var symbol = resolveName(exportedName, exportedName.escapedText, 111551 /* Value */ | 788968 /* Type */ | 1920 /* Namespace */ | 2097152 /* Alias */, - /*nameNotFoundMessage*/ - void 0, - /*nameArg*/ - void 0, - /*isUse*/ - true); - if (symbol && (symbol === undefinedSymbol || symbol === globalThisSymbol || symbol.declarations && isGlobalSourceFile(getDeclarationContainer(symbol.declarations[0])))) { - error2(exportedName, Diagnostics.Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module, idText(exportedName)); - } - else { - if (!node.isTypeOnly && !node.parent.parent.isTypeOnly) { - markExportAsReferenced(node); - } - var target = symbol && (symbol.flags & 2097152 /* Alias */ ? resolveAlias(symbol) : symbol); - if (!target || getSymbolFlags(target) & 111551 /* Value */) { - checkExpressionCached(node.propertyName || node.name); - } - } - } - else { - if (getESModuleInterop(compilerOptions) && moduleKind !== 4 /* System */ && (moduleKind < 5 /* ES2015 */ || getSourceFileOfNode(node).impliedNodeFormat === 1 /* CommonJS */) && idText(node.propertyName || node.name) === "default") { - checkExternalEmitHelpers(node, 131072 /* ImportDefault */); - } - } - } - function checkExportAssignment(node) { - var illegalContextMessage = node.isExportEquals ? Diagnostics.An_export_assignment_must_be_at_the_top_level_of_a_file_or_module_declaration : Diagnostics.A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration; - if (checkGrammarModuleElementContext(node, illegalContextMessage)) { - return; - } - var container = node.parent.kind === 312 /* SourceFile */ ? node.parent : node.parent.parent; - if (container.kind === 267 /* ModuleDeclaration */ && !isAmbientModule(container)) { - if (node.isExportEquals) { - error2(node, Diagnostics.An_export_assignment_cannot_be_used_in_a_namespace); - } - else { - error2(node, Diagnostics.A_default_export_can_only_be_used_in_an_ECMAScript_style_module); - } - return; - } - if (!checkGrammarModifiers(node) && hasEffectiveModifiers(node)) { - grammarErrorOnFirstToken(node, Diagnostics.An_export_assignment_cannot_have_modifiers); - } - var typeAnnotationNode = getEffectiveTypeAnnotationNode(node); - if (typeAnnotationNode) { - checkTypeAssignableTo(checkExpressionCached(node.expression), getTypeFromTypeNode(typeAnnotationNode), node.expression); - } - var isIllegalExportDefaultInCJS = !node.isExportEquals && !(node.flags & 33554432 /* Ambient */) && compilerOptions.verbatimModuleSyntax && (moduleKind === 1 /* CommonJS */ || getSourceFileOfNode(node).impliedNodeFormat === 1 /* CommonJS */); - if (node.expression.kind === 80 /* Identifier */) { - var id = node.expression; - var sym = getExportSymbolOfValueSymbolIfExported(resolveEntityName(id, 67108863 /* All */, - /*ignoreErrors*/ - true, - /*dontResolveAlias*/ - true, node)); - if (sym) { - markAliasReferenced(sym, id); - if (getSymbolFlags(sym) & 111551 /* Value */) { - checkExpressionCached(id); - if (!isIllegalExportDefaultInCJS && !(node.flags & 33554432 /* Ambient */) && compilerOptions.verbatimModuleSyntax && getTypeOnlyAliasDeclaration(sym, 111551 /* Value */)) { - error2(id, node.isExportEquals ? Diagnostics.An_export_declaration_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_a_type_only_declaration : Diagnostics.An_export_default_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_a_type_only_declaration, idText(id)); - } - } - else if (!isIllegalExportDefaultInCJS && !(node.flags & 33554432 /* Ambient */) && compilerOptions.verbatimModuleSyntax) { - error2(id, node.isExportEquals ? Diagnostics.An_export_declaration_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_type : Diagnostics.An_export_default_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_type, idText(id)); - } - } - else { - checkExpressionCached(id); - } - if (getEmitDeclarations(compilerOptions)) { - collectLinkedAliases(id, - /*setVisibility*/ - true); - } - } - else { - checkExpressionCached(node.expression); - } - if (isIllegalExportDefaultInCJS) { - error2(node, Diagnostics.ESM_syntax_is_not_allowed_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled); - } - checkExternalModuleExports(container); - if (node.flags & 33554432 /* Ambient */ && !isEntityNameExpression(node.expression)) { - grammarErrorOnNode(node.expression, Diagnostics.The_expression_of_an_export_assignment_must_be_an_identifier_or_qualified_name_in_an_ambient_context); - } - if (node.isExportEquals) { - if (moduleKind >= 5 /* ES2015 */ && (node.flags & 33554432 /* Ambient */ && getSourceFileOfNode(node).impliedNodeFormat === 99 /* ESNext */ || !(node.flags & 33554432 /* Ambient */) && getSourceFileOfNode(node).impliedNodeFormat !== 1 /* CommonJS */)) { - grammarErrorOnNode(node, Diagnostics.Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or_another_module_format_instead); - } - else if (moduleKind === 4 /* System */ && !(node.flags & 33554432 /* Ambient */)) { - grammarErrorOnNode(node, Diagnostics.Export_assignment_is_not_supported_when_module_flag_is_system); - } - } - } - function hasExportedMembers(moduleSymbol) { - return forEachEntry(moduleSymbol.exports, function (_, id) { return id !== "export="; }); - } - function checkExternalModuleExports(node) { - var moduleSymbol = getSymbolOfDeclaration(node); - var links = getSymbolLinks(moduleSymbol); - if (!links.exportsChecked) { - var exportEqualsSymbol = moduleSymbol.exports.get("export="); - if (exportEqualsSymbol && hasExportedMembers(moduleSymbol)) { - var declaration = getDeclarationOfAliasSymbol(exportEqualsSymbol) || exportEqualsSymbol.valueDeclaration; - if (declaration && !isTopLevelInExternalModuleAugmentation(declaration) && !isInJSFile(declaration)) { - error2(declaration, Diagnostics.An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements); - } - } - var exports_4 = getExportsOfModule(moduleSymbol); - if (exports_4) { - exports_4.forEach(function (_t, id) { - var e_425, _u; - var declarations = _t.declarations, flags = _t.flags; - if (id === "__export") { - return; - } - if (flags & (1920 /* Namespace */ | 384 /* Enum */)) { - return; - } - var exportedDeclarationsCount = countWhere(declarations, and(isNotOverloadAndNotAccessor, not(isInterfaceDeclaration))); - if (flags & 524288 /* TypeAlias */ && exportedDeclarationsCount <= 2) { - return; - } - if (exportedDeclarationsCount > 1) { - if (!isDuplicatedCommonJSExport(declarations)) { - try { - for (var declarations_10 = __values(declarations), declarations_10_1 = declarations_10.next(); !declarations_10_1.done; declarations_10_1 = declarations_10.next()) { - var declaration = declarations_10_1.value; - if (isNotOverload(declaration)) { - diagnostics.add(createDiagnosticForNode(declaration, Diagnostics.Cannot_redeclare_exported_variable_0, unescapeLeadingUnderscores(id))); - } - } - } - catch (e_425_1) { e_425 = { error: e_425_1 }; } - finally { - try { - if (declarations_10_1 && !declarations_10_1.done && (_u = declarations_10.return)) _u.call(declarations_10); - } - finally { if (e_425) throw e_425.error; } - } - } - } - }); - } - links.exportsChecked = true; - } - } - function isDuplicatedCommonJSExport(declarations) { - return declarations && declarations.length > 1 && declarations.every(function (d) { return isInJSFile(d) && isAccessExpression(d) && (isExportsIdentifier(d.expression) || isModuleExportsAccessExpression(d.expression)); }); - } - function checkSourceElement(node) { - if (node) { - var saveCurrentNode = currentNode; - currentNode = node; - instantiationCount = 0; - checkSourceElementWorker(node); - currentNode = saveCurrentNode; - } - } - function checkSourceElementWorker(node) { - if (canHaveJSDoc(node)) { - forEach(node.jsDoc, function (_t) { - var comment = _t.comment, tags = _t.tags; - checkJSDocCommentWorker(comment); - forEach(tags, function (tag) { - checkJSDocCommentWorker(tag.comment); - if (isInJSFile(node)) { - checkSourceElement(tag); - } - }); - }); - } - var kind = node.kind; - if (cancellationToken) { - switch (kind) { - case 267 /* ModuleDeclaration */: - case 263 /* ClassDeclaration */: - case 264 /* InterfaceDeclaration */: - case 262 /* FunctionDeclaration */: - cancellationToken.throwIfCancellationRequested(); - } - } - if (kind >= 243 /* FirstStatement */ && kind <= 259 /* LastStatement */ && canHaveFlowNode(node) && node.flowNode && !isReachableFlowNode(node.flowNode)) { - errorOrSuggestion(compilerOptions.allowUnreachableCode === false, node, Diagnostics.Unreachable_code_detected); - } - switch (kind) { - case 168 /* TypeParameter */: - return checkTypeParameter(node); - case 169 /* Parameter */: - return checkParameter(node); - case 172 /* PropertyDeclaration */: - return checkPropertyDeclaration(node); - case 171 /* PropertySignature */: - return checkPropertySignature(node); - case 185 /* ConstructorType */: - case 184 /* FunctionType */: - case 179 /* CallSignature */: - case 180 /* ConstructSignature */: - case 181 /* IndexSignature */: - return checkSignatureDeclaration(node); - case 174 /* MethodDeclaration */: - case 173 /* MethodSignature */: - return checkMethodDeclaration(node); - case 175 /* ClassStaticBlockDeclaration */: - return checkClassStaticBlockDeclaration(node); - case 176 /* Constructor */: - return checkConstructorDeclaration(node); - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - return checkAccessorDeclaration(node); - case 183 /* TypeReference */: - return checkTypeReferenceNode(node); - case 182 /* TypePredicate */: - return checkTypePredicate(node); - case 186 /* TypeQuery */: - return checkTypeQuery(node); - case 187 /* TypeLiteral */: - return checkTypeLiteral(node); - case 188 /* ArrayType */: - return checkArrayType(node); - case 189 /* TupleType */: - return checkTupleType(node); - case 192 /* UnionType */: - case 193 /* IntersectionType */: - return checkUnionOrIntersectionType(node); - case 196 /* ParenthesizedType */: - case 190 /* OptionalType */: - case 191 /* RestType */: - return checkSourceElement(node.type); - case 197 /* ThisType */: - return checkThisType(node); - case 198 /* TypeOperator */: - return checkTypeOperator(node); - case 194 /* ConditionalType */: - return checkConditionalType(node); - case 195 /* InferType */: - return checkInferType(node); - case 203 /* TemplateLiteralType */: - return checkTemplateLiteralType(node); - case 205 /* ImportType */: - return checkImportType(node); - case 202 /* NamedTupleMember */: - return checkNamedTupleMember(node); - case 335 /* JSDocAugmentsTag */: - return checkJSDocAugmentsTag(node); - case 336 /* JSDocImplementsTag */: - return checkJSDocImplementsTag(node); - case 353 /* JSDocTypedefTag */: - case 345 /* JSDocCallbackTag */: - case 347 /* JSDocEnumTag */: - return checkJSDocTypeAliasTag(node); - case 352 /* JSDocTemplateTag */: - return checkJSDocTemplateTag(node); - case 351 /* JSDocTypeTag */: - return checkJSDocTypeTag(node); - case 331 /* JSDocLink */: - case 332 /* JSDocLinkCode */: - case 333 /* JSDocLinkPlain */: - return checkJSDocLinkLikeTag(node); - case 348 /* JSDocParameterTag */: - return checkJSDocParameterTag(node); - case 355 /* JSDocPropertyTag */: - return checkJSDocPropertyTag(node); - case 324 /* JSDocFunctionType */: - checkJSDocFunctionType(node); - case 322 /* JSDocNonNullableType */: - case 321 /* JSDocNullableType */: - case 319 /* JSDocAllType */: - case 320 /* JSDocUnknownType */: - case 329 /* JSDocTypeLiteral */: - checkJSDocTypeIsInJsFile(node); - forEachChild(node, checkSourceElement); - return; - case 325 /* JSDocVariadicType */: - checkJSDocVariadicType(node); - return; - case 316 /* JSDocTypeExpression */: - return checkSourceElement(node.type); - case 340 /* JSDocPublicTag */: - case 342 /* JSDocProtectedTag */: - case 341 /* JSDocPrivateTag */: - return checkJSDocAccessibilityModifiers(node); - case 357 /* JSDocSatisfiesTag */: - return checkJSDocSatisfiesTag(node); - case 199 /* IndexedAccessType */: - return checkIndexedAccessType(node); - case 200 /* MappedType */: - return checkMappedType(node); - case 262 /* FunctionDeclaration */: - return checkFunctionDeclaration(node); - case 241 /* Block */: - case 268 /* ModuleBlock */: - return checkBlock(node); - case 243 /* VariableStatement */: - return checkVariableStatement(node); - case 244 /* ExpressionStatement */: - return checkExpressionStatement(node); - case 245 /* IfStatement */: - return checkIfStatement(node); - case 246 /* DoStatement */: - return checkDoStatement(node); - case 247 /* WhileStatement */: - return checkWhileStatement(node); - case 248 /* ForStatement */: - return checkForStatement(node); - case 249 /* ForInStatement */: - return checkForInStatement(node); - case 250 /* ForOfStatement */: - return checkForOfStatement(node); - case 251 /* ContinueStatement */: - case 252 /* BreakStatement */: - return checkBreakOrContinueStatement(node); - case 253 /* ReturnStatement */: - return checkReturnStatement(node); - case 254 /* WithStatement */: - return checkWithStatement(node); - case 255 /* SwitchStatement */: - return checkSwitchStatement(node); - case 256 /* LabeledStatement */: - return checkLabeledStatement(node); - case 257 /* ThrowStatement */: - return checkThrowStatement(node); - case 258 /* TryStatement */: - return checkTryStatement(node); - case 260 /* VariableDeclaration */: - return checkVariableDeclaration(node); - case 208 /* BindingElement */: - return checkBindingElement(node); - case 263 /* ClassDeclaration */: - return checkClassDeclaration(node); - case 264 /* InterfaceDeclaration */: - return checkInterfaceDeclaration(node); - case 265 /* TypeAliasDeclaration */: - return checkTypeAliasDeclaration(node); - case 266 /* EnumDeclaration */: - return checkEnumDeclaration(node); - case 267 /* ModuleDeclaration */: - return checkModuleDeclaration(node); - case 272 /* ImportDeclaration */: - return checkImportDeclaration(node); - case 271 /* ImportEqualsDeclaration */: - return checkImportEqualsDeclaration(node); - case 278 /* ExportDeclaration */: - return checkExportDeclaration(node); - case 277 /* ExportAssignment */: - return checkExportAssignment(node); - case 242 /* EmptyStatement */: - case 259 /* DebuggerStatement */: - checkGrammarStatementInAmbientContext(node); - return; - case 282 /* MissingDeclaration */: - return checkMissingDeclaration(node); - } - } - function checkJSDocCommentWorker(node) { - if (isArray(node)) { - forEach(node, function (tag) { - if (isJSDocLinkLike(tag)) { - checkSourceElement(tag); - } - }); - } - } - function checkJSDocTypeIsInJsFile(node) { - if (!isInJSFile(node)) { - if (isJSDocNonNullableType(node) || isJSDocNullableType(node)) { - var token = tokenToString(isJSDocNonNullableType(node) ? 54 /* ExclamationToken */ : 58 /* QuestionToken */); - var diagnostic = node.postfix ? Diagnostics._0_at_the_end_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1 : Diagnostics._0_at_the_start_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1; - var typeNode = node.type; - var type = getTypeFromTypeNode(typeNode); - grammarErrorOnNode(node, diagnostic, token, typeToString(isJSDocNullableType(node) && !(type === neverType || type === voidType) ? getUnionType(append([type, undefinedType], node.postfix ? void 0 : nullType)) : type)); - } - else { - grammarErrorOnNode(node, Diagnostics.JSDoc_types_can_only_be_used_inside_documentation_comments); - } - } - } - function checkJSDocVariadicType(node) { - checkJSDocTypeIsInJsFile(node); - checkSourceElement(node.type); - var parent2 = node.parent; - if (isParameter(parent2) && isJSDocFunctionType(parent2.parent)) { - if (last(parent2.parent.parameters) !== parent2) { - error2(node, Diagnostics.A_rest_parameter_must_be_last_in_a_parameter_list); - } - return; - } - if (!isJSDocTypeExpression(parent2)) { - error2(node, Diagnostics.JSDoc_may_only_appear_in_the_last_parameter_of_a_signature); - } - var paramTag = node.parent.parent; - if (!isJSDocParameterTag(paramTag)) { - error2(node, Diagnostics.JSDoc_may_only_appear_in_the_last_parameter_of_a_signature); - return; - } - var param = getParameterSymbolFromJSDoc(paramTag); - if (!param) { - return; - } - var host2 = getHostSignatureFromJSDoc(paramTag); - if (!host2 || last(host2.parameters).symbol !== param) { - error2(node, Diagnostics.A_rest_parameter_must_be_last_in_a_parameter_list); - } - } - function getTypeFromJSDocVariadicType(node) { - var type = getTypeFromTypeNode(node.type); - var parent2 = node.parent; - var paramTag = node.parent.parent; - if (isJSDocTypeExpression(node.parent) && isJSDocParameterTag(paramTag)) { - var host2 = getHostSignatureFromJSDoc(paramTag); - var isCallbackTag = isJSDocCallbackTag(paramTag.parent.parent); - if (host2 || isCallbackTag) { - var lastParamDeclaration = isCallbackTag ? lastOrUndefined(paramTag.parent.parent.typeExpression.parameters) : lastOrUndefined(host2.parameters); - var symbol = getParameterSymbolFromJSDoc(paramTag); - if (!lastParamDeclaration || symbol && lastParamDeclaration.symbol === symbol && isRestParameter(lastParamDeclaration)) { - return createArrayType(type); - } - } - } - if (isParameter(parent2) && isJSDocFunctionType(parent2.parent)) { - return createArrayType(type); - } - return addOptionality(type); - } - function checkNodeDeferred(node) { - var enclosingFile = getSourceFileOfNode(node); - var links = getNodeLinks(enclosingFile); - if (!(links.flags & 1 /* TypeChecked */)) { - links.deferredNodes || (links.deferredNodes = /* @__PURE__ */ new Set()); - links.deferredNodes.add(node); - } - else { - Debug.assert(!links.deferredNodes, "A type-checked file should have no deferred nodes."); - } - } - function checkDeferredNodes(context) { - var links = getNodeLinks(context); - if (links.deferredNodes) { - links.deferredNodes.forEach(checkDeferredNode); - } - links.deferredNodes = void 0; - } - function checkDeferredNode(node) { - var _a, _b; - (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Check, "checkDeferredNode", { kind: node.kind, pos: node.pos, end: node.end, path: node.tracingPath }); - var saveCurrentNode = currentNode; - currentNode = node; - instantiationCount = 0; - switch (node.kind) { - case 213 /* CallExpression */: - case 214 /* NewExpression */: - case 215 /* TaggedTemplateExpression */: - case 170 /* Decorator */: - case 286 /* JsxOpeningElement */: - resolveUntypedCall(node); - break; - case 218 /* FunctionExpression */: - case 219 /* ArrowFunction */: - case 174 /* MethodDeclaration */: - case 173 /* MethodSignature */: - checkFunctionExpressionOrObjectLiteralMethodDeferred(node); - break; - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - checkAccessorDeclaration(node); - break; - case 231 /* ClassExpression */: - checkClassExpressionDeferred(node); - break; - case 168 /* TypeParameter */: - checkTypeParameterDeferred(node); - break; - case 285 /* JsxSelfClosingElement */: - checkJsxSelfClosingElementDeferred(node); - break; - case 284 /* JsxElement */: - checkJsxElementDeferred(node); - break; - case 216 /* TypeAssertionExpression */: - case 234 /* AsExpression */: - case 217 /* ParenthesizedExpression */: - checkAssertionDeferred(node); - } - currentNode = saveCurrentNode; - (_b = tracing) == null ? void 0 : _b.pop(); - } - function checkSourceFile(node) { - var _a, _b; - (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Check, "checkSourceFile", { path: node.path }, - /*separateBeginAndEnd*/ - true); - mark("beforeCheck"); - checkSourceFileWorker(node); - mark("afterCheck"); - measure("Check", "beforeCheck", "afterCheck"); - (_b = tracing) == null ? void 0 : _b.pop(); - } - function unusedIsError(kind, isAmbient) { - if (isAmbient) { - return false; - } - switch (kind) { - case 0 /* Local */: - return !!compilerOptions.noUnusedLocals; - case 1 /* Parameter */: - return !!compilerOptions.noUnusedParameters; - default: - return Debug.assertNever(kind); - } - } - function getPotentiallyUnusedIdentifiers(sourceFile) { - return allPotentiallyUnusedIdentifiers.get(sourceFile.path) || emptyArray; - } - function checkSourceFileWorker(node) { - var links = getNodeLinks(node); - if (!(links.flags & 1 /* TypeChecked */)) { - if (skipTypeChecking(node, compilerOptions, host)) { - return; - } - checkGrammarSourceFile(node); - clear(potentialThisCollisions); - clear(potentialNewTargetCollisions); - clear(potentialWeakMapSetCollisions); - clear(potentialReflectCollisions); - clear(potentialUnusedRenamedBindingElementsInTypes); - forEach(node.statements, checkSourceElement); - checkSourceElement(node.endOfFileToken); - checkDeferredNodes(node); - if (isExternalOrCommonJsModule(node)) { - registerForUnusedIdentifiersCheck(node); - } - addLazyDiagnostic(function () { - if (!node.isDeclarationFile && (compilerOptions.noUnusedLocals || compilerOptions.noUnusedParameters)) { - checkUnusedIdentifiers(getPotentiallyUnusedIdentifiers(node), function (containingNode, kind, diag2) { - if (!containsParseError(containingNode) && unusedIsError(kind, !!(containingNode.flags & 33554432 /* Ambient */))) { - diagnostics.add(diag2); - } - }); - } - if (!node.isDeclarationFile) { - checkPotentialUncheckedRenamedBindingElementsInTypes(); - } - }); - if (compilerOptions.importsNotUsedAsValues === 2 /* Error */ && !node.isDeclarationFile && isExternalModule(node)) { - checkImportsForTypeOnlyConversion(node); - } - if (isExternalOrCommonJsModule(node)) { - checkExternalModuleExports(node); - } - if (potentialThisCollisions.length) { - forEach(potentialThisCollisions, checkIfThisIsCapturedInEnclosingScope); - clear(potentialThisCollisions); - } - if (potentialNewTargetCollisions.length) { - forEach(potentialNewTargetCollisions, checkIfNewTargetIsCapturedInEnclosingScope); - clear(potentialNewTargetCollisions); - } - if (potentialWeakMapSetCollisions.length) { - forEach(potentialWeakMapSetCollisions, checkWeakMapSetCollision); - clear(potentialWeakMapSetCollisions); - } - if (potentialReflectCollisions.length) { - forEach(potentialReflectCollisions, checkReflectCollision); - clear(potentialReflectCollisions); - } - links.flags |= 1 /* TypeChecked */; - } - } - function getDiagnostics2(sourceFile, ct) { - try { - cancellationToken = ct; - return getDiagnosticsWorker(sourceFile); - } - finally { - cancellationToken = void 0; - } - } - function ensurePendingDiagnosticWorkComplete() { - var e_426, _t; - try { - for (var deferredDiagnosticsCallbacks_1 = __values(deferredDiagnosticsCallbacks), deferredDiagnosticsCallbacks_1_1 = deferredDiagnosticsCallbacks_1.next(); !deferredDiagnosticsCallbacks_1_1.done; deferredDiagnosticsCallbacks_1_1 = deferredDiagnosticsCallbacks_1.next()) { - var cb = deferredDiagnosticsCallbacks_1_1.value; - cb(); - } - } - catch (e_426_1) { e_426 = { error: e_426_1 }; } - finally { - try { - if (deferredDiagnosticsCallbacks_1_1 && !deferredDiagnosticsCallbacks_1_1.done && (_t = deferredDiagnosticsCallbacks_1.return)) _t.call(deferredDiagnosticsCallbacks_1); - } - finally { if (e_426) throw e_426.error; } - } - deferredDiagnosticsCallbacks = []; - } - function checkSourceFileWithEagerDiagnostics(sourceFile) { - ensurePendingDiagnosticWorkComplete(); - var oldAddLazyDiagnostics = addLazyDiagnostic; - addLazyDiagnostic = function (cb) { return cb(); }; - checkSourceFile(sourceFile); - addLazyDiagnostic = oldAddLazyDiagnostics; - } - function getDiagnosticsWorker(sourceFile) { - if (sourceFile) { - ensurePendingDiagnosticWorkComplete(); - var previousGlobalDiagnostics = diagnostics.getGlobalDiagnostics(); - var previousGlobalDiagnosticsSize = previousGlobalDiagnostics.length; - checkSourceFileWithEagerDiagnostics(sourceFile); - var semanticDiagnostics = diagnostics.getDiagnostics(sourceFile.fileName); - var currentGlobalDiagnostics = diagnostics.getGlobalDiagnostics(); - if (currentGlobalDiagnostics !== previousGlobalDiagnostics) { - var deferredGlobalDiagnostics = relativeComplement(previousGlobalDiagnostics, currentGlobalDiagnostics, compareDiagnostics); - return concatenate(deferredGlobalDiagnostics, semanticDiagnostics); - } - else if (previousGlobalDiagnosticsSize === 0 && currentGlobalDiagnostics.length > 0) { - return concatenate(currentGlobalDiagnostics, semanticDiagnostics); - } - return semanticDiagnostics; - } - forEach(host.getSourceFiles(), checkSourceFileWithEagerDiagnostics); - return diagnostics.getDiagnostics(); - } - function getGlobalDiagnostics() { - ensurePendingDiagnosticWorkComplete(); - return diagnostics.getGlobalDiagnostics(); - } - function getSymbolsInScope(location, meaning) { - if (location.flags & 67108864 /* InWithStatement */) { - return []; - } - var symbols = createSymbolTable(); - var isStaticSymbol = false; - populateSymbols(); - symbols.delete("this" /* This */); - return symbolsToArray(symbols); - function populateSymbols() { - while (location) { - if (canHaveLocals(location) && location.locals && !isGlobalSourceFile(location)) { - copySymbols(location.locals, meaning); - } - switch (location.kind) { - case 312 /* SourceFile */: - if (!isExternalModule(location)) - break; - case 267 /* ModuleDeclaration */: - copyLocallyVisibleExportSymbols(getSymbolOfDeclaration(location).exports, meaning & 2623475 /* ModuleMember */); - break; - case 266 /* EnumDeclaration */: - copySymbols(getSymbolOfDeclaration(location).exports, meaning & 8 /* EnumMember */); - break; - case 231 /* ClassExpression */: - var className = location.name; - if (className) { - copySymbol(location.symbol, meaning); - } - case 263 /* ClassDeclaration */: - case 264 /* InterfaceDeclaration */: - if (!isStaticSymbol) { - copySymbols(getMembersOfSymbol(getSymbolOfDeclaration(location)), meaning & 788968 /* Type */); - } - break; - case 218 /* FunctionExpression */: - var funcName = location.name; - if (funcName) { - copySymbol(location.symbol, meaning); - } - break; - } - if (introducesArgumentsExoticObject(location)) { - copySymbol(argumentsSymbol, meaning); - } - isStaticSymbol = isStatic(location); - location = location.parent; - } - copySymbols(globals, meaning); - } - function copySymbol(symbol, meaning2) { - if (getCombinedLocalAndExportSymbolFlags(symbol) & meaning2) { - var id = symbol.escapedName; - if (!symbols.has(id)) { - symbols.set(id, symbol); - } - } - } - function copySymbols(source, meaning2) { - if (meaning2) { - source.forEach(function (symbol) { - copySymbol(symbol, meaning2); - }); - } - } - function copyLocallyVisibleExportSymbols(source, meaning2) { - if (meaning2) { - source.forEach(function (symbol) { - if (!getDeclarationOfKind(symbol, 281 /* ExportSpecifier */) && !getDeclarationOfKind(symbol, 280 /* NamespaceExport */) && symbol.escapedName !== "default" /* Default */) { - copySymbol(symbol, meaning2); - } - }); - } - } - } - function isTypeDeclarationName(name) { - return name.kind === 80 /* Identifier */ && isTypeDeclaration(name.parent) && getNameOfDeclaration(name.parent) === name; - } - function isTypeReferenceIdentifier(node) { - while (node.parent.kind === 166 /* QualifiedName */) { - node = node.parent; - } - return node.parent.kind === 183 /* TypeReference */; - } - function isInNameOfExpressionWithTypeArguments(node) { - while (node.parent.kind === 211 /* PropertyAccessExpression */) { - node = node.parent; - } - return node.parent.kind === 233 /* ExpressionWithTypeArguments */; - } - function forEachEnclosingClass(node, callback) { - var result; - var containingClass = getContainingClass(node); - while (containingClass) { - if (result = callback(containingClass)) - break; - containingClass = getContainingClass(containingClass); - } - return result; - } - function isNodeUsedDuringClassInitialization(node) { - return !!findAncestor(node, function (element) { - if (isConstructorDeclaration(element) && nodeIsPresent(element.body) || isPropertyDeclaration(element)) { - return true; - } - else if (isClassLike(element) || isFunctionLikeDeclaration(element)) { - return "quit"; - } - return false; - }); - } - function isNodeWithinClass(node, classDeclaration) { - return !!forEachEnclosingClass(node, function (n) { return n === classDeclaration; }); - } - function getLeftSideOfImportEqualsOrExportAssignment(nodeOnRightSide) { - while (nodeOnRightSide.parent.kind === 166 /* QualifiedName */) { - nodeOnRightSide = nodeOnRightSide.parent; - } - if (nodeOnRightSide.parent.kind === 271 /* ImportEqualsDeclaration */) { - return nodeOnRightSide.parent.moduleReference === nodeOnRightSide ? nodeOnRightSide.parent : void 0; - } - if (nodeOnRightSide.parent.kind === 277 /* ExportAssignment */) { - return nodeOnRightSide.parent.expression === nodeOnRightSide ? nodeOnRightSide.parent : void 0; - } - return void 0; - } - function isInRightSideOfImportOrExportAssignment(node) { - return getLeftSideOfImportEqualsOrExportAssignment(node) !== void 0; - } - function getSpecialPropertyAssignmentSymbolFromEntityName(entityName) { - var specialPropertyAssignmentKind = getAssignmentDeclarationKind(entityName.parent.parent); - switch (specialPropertyAssignmentKind) { - case 1 /* ExportsProperty */: - case 3 /* PrototypeProperty */: - return getSymbolOfNode(entityName.parent); - case 4 /* ThisProperty */: - case 2 /* ModuleExports */: - case 5 /* Property */: - return getSymbolOfDeclaration(entityName.parent.parent); - } - } - function isImportTypeQualifierPart(node) { - var parent2 = node.parent; - while (isQualifiedName(parent2)) { - node = parent2; - parent2 = parent2.parent; - } - if (parent2 && parent2.kind === 205 /* ImportType */ && parent2.qualifier === node) { - return parent2; - } - return void 0; - } - function isThisPropertyAndThisTyped(node) { - if (node.expression.kind === 110 /* ThisKeyword */) { - var container = getThisContainer(node, - /*includeArrowFunctions*/ - false, - /*includeClassComputedPropertyName*/ - false); - if (isFunctionLike(container)) { - var containingLiteral = getContainingObjectLiteral(container); - if (containingLiteral) { - var contextualType = getApparentTypeOfContextualType(containingLiteral, - /*contextFlags*/ - void 0); - var type = getThisTypeOfObjectLiteralFromContextualType(containingLiteral, contextualType); - return type && !isTypeAny(type); - } - } - } - } - function getSymbolOfNameOrPropertyAccessExpression(name) { - if (isDeclarationName(name)) { - return getSymbolOfNode(name.parent); - } - if (isInJSFile(name) && name.parent.kind === 211 /* PropertyAccessExpression */ && name.parent === name.parent.parent.left) { - if (!isPrivateIdentifier(name) && !isJSDocMemberName(name) && !isThisPropertyAndThisTyped(name.parent)) { - var specialPropertyAssignmentSymbol = getSpecialPropertyAssignmentSymbolFromEntityName(name); - if (specialPropertyAssignmentSymbol) { - return specialPropertyAssignmentSymbol; - } - } - } - if (name.parent.kind === 277 /* ExportAssignment */ && isEntityNameExpression(name)) { - var success = resolveEntityName(name, - /*all meanings*/ - 111551 /* Value */ | 788968 /* Type */ | 1920 /* Namespace */ | 2097152 /* Alias */, - /*ignoreErrors*/ - true); - if (success && success !== unknownSymbol) { - return success; - } - } - else if (isEntityName(name) && isInRightSideOfImportOrExportAssignment(name)) { - var importEqualsDeclaration = getAncestor(name, 271 /* ImportEqualsDeclaration */); - Debug.assert(importEqualsDeclaration !== void 0); - return getSymbolOfPartOfRightHandSideOfImportEquals(name, - /*dontResolveAlias*/ - true); - } - if (isEntityName(name)) { - var possibleImportNode = isImportTypeQualifierPart(name); - if (possibleImportNode) { - getTypeFromTypeNode(possibleImportNode); - var sym = getNodeLinks(name).resolvedSymbol; - return sym === unknownSymbol ? void 0 : sym; - } - } - while (isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName(name)) { - name = name.parent; - } - if (isInNameOfExpressionWithTypeArguments(name)) { - var meaning = 0 /* None */; - if (name.parent.kind === 233 /* ExpressionWithTypeArguments */) { - meaning = isPartOfTypeNode(name) ? 788968 /* Type */ : 111551 /* Value */; - if (isExpressionWithTypeArgumentsInClassExtendsClause(name.parent)) { - meaning |= 111551 /* Value */; - } - } - else { - meaning = 1920 /* Namespace */; - } - meaning |= 2097152 /* Alias */; - var entityNameSymbol = isEntityNameExpression(name) ? resolveEntityName(name, meaning, - /*ignoreErrors*/ - true) : void 0; - if (entityNameSymbol) { - return entityNameSymbol; - } - } - if (name.parent.kind === 348 /* JSDocParameterTag */) { - return getParameterSymbolFromJSDoc(name.parent); - } - if (name.parent.kind === 168 /* TypeParameter */ && name.parent.parent.kind === 352 /* JSDocTemplateTag */) { - Debug.assert(!isInJSFile(name)); - var typeParameter = getTypeParameterFromJsDoc(name.parent); - return typeParameter && typeParameter.symbol; - } - if (isExpressionNode(name)) { - if (nodeIsMissing(name)) { - return void 0; - } - var isJSDoc2 = findAncestor(name, or(isJSDocLinkLike, isJSDocNameReference, isJSDocMemberName)); - var meaning = isJSDoc2 ? 788968 /* Type */ | 1920 /* Namespace */ | 111551 /* Value */ : 111551 /* Value */; - if (name.kind === 80 /* Identifier */) { - if (isJSXTagName(name) && isJsxIntrinsicTagName(name)) { - var symbol = getIntrinsicTagSymbol(name.parent); - return symbol === unknownSymbol ? void 0 : symbol; - } - var result = resolveEntityName(name, meaning, - /*ignoreErrors*/ - true, - /*dontResolveAlias*/ - true, getHostSignatureFromJSDoc(name)); - if (!result && isJSDoc2) { - var container = findAncestor(name, or(isClassLike, isInterfaceDeclaration)); - if (container) { - return resolveJSDocMemberName(name, - /*ignoreErrors*/ - true, getSymbolOfDeclaration(container)); - } - } - if (result && isJSDoc2) { - var container = getJSDocHost(name); - if (container && isEnumMember(container) && container === result.valueDeclaration) { - return resolveEntityName(name, meaning, - /*ignoreErrors*/ - true, - /*dontResolveAlias*/ - true, getSourceFileOfNode(container)) || result; - } - } - return result; - } - else if (isPrivateIdentifier(name)) { - return getSymbolForPrivateIdentifierExpression(name); - } - else if (name.kind === 211 /* PropertyAccessExpression */ || name.kind === 166 /* QualifiedName */) { - var links = getNodeLinks(name); - if (links.resolvedSymbol) { - return links.resolvedSymbol; - } - if (name.kind === 211 /* PropertyAccessExpression */) { - checkPropertyAccessExpression(name, 0 /* Normal */); - if (!links.resolvedSymbol) { - var expressionType = checkExpressionCached(name.expression); - var infos = getApplicableIndexInfos(expressionType, getLiteralTypeFromPropertyName(name.name)); - if (infos.length && expressionType.members) { - var resolved = resolveStructuredTypeMembers(expressionType); - var symbol = resolved.members.get("__index" /* Index */); - if (infos === getIndexInfosOfType(expressionType)) { - links.resolvedSymbol = symbol; - } - else if (symbol) { - var symbolLinks2 = getSymbolLinks(symbol); - var declarationList = mapDefined(infos, function (i) { return i.declaration; }); - var nodeListId = map(declarationList, getNodeId).join(","); - if (!symbolLinks2.filteredIndexSymbolCache) { - symbolLinks2.filteredIndexSymbolCache = /* @__PURE__ */ new Map(); - } - if (symbolLinks2.filteredIndexSymbolCache.has(nodeListId)) { - links.resolvedSymbol = symbolLinks2.filteredIndexSymbolCache.get(nodeListId); - } - else { - var copy = createSymbol(131072 /* Signature */, "__index" /* Index */); - copy.declarations = mapDefined(infos, function (i) { return i.declaration; }); - copy.parent = expressionType.aliasSymbol ? expressionType.aliasSymbol : expressionType.symbol ? expressionType.symbol : getSymbolAtLocation(copy.declarations[0].parent); - symbolLinks2.filteredIndexSymbolCache.set(nodeListId, copy); - links.resolvedSymbol = symbolLinks2.filteredIndexSymbolCache.get(nodeListId); - } - } - } - } - } - else { - checkQualifiedName(name, 0 /* Normal */); - } - if (!links.resolvedSymbol && isJSDoc2 && isQualifiedName(name)) { - return resolveJSDocMemberName(name); - } - return links.resolvedSymbol; - } - else if (isJSDocMemberName(name)) { - return resolveJSDocMemberName(name); - } - } - else if (isTypeReferenceIdentifier(name)) { - var meaning = name.parent.kind === 183 /* TypeReference */ ? 788968 /* Type */ : 1920 /* Namespace */; - var symbol = resolveEntityName(name, meaning, - /*ignoreErrors*/ - false, - /*dontResolveAlias*/ - true); - return symbol && symbol !== unknownSymbol ? symbol : getUnresolvedSymbolForEntityName(name); - } - if (name.parent.kind === 182 /* TypePredicate */) { - return resolveEntityName(name, - /*meaning*/ - 1 /* FunctionScopedVariable */); - } - return void 0; - } - function resolveJSDocMemberName(name, ignoreErrors, container) { - if (isEntityName(name)) { - var meaning = 788968 /* Type */ | 1920 /* Namespace */ | 111551 /* Value */; - var symbol = resolveEntityName(name, meaning, ignoreErrors, - /*dontResolveAlias*/ - true, getHostSignatureFromJSDoc(name)); - if (!symbol && isIdentifier(name) && container) { - symbol = getMergedSymbol(getSymbol2(getExportsOfSymbol(container), name.escapedText, meaning)); - } - if (symbol) { - return symbol; - } - } - var left = isIdentifier(name) ? container : resolveJSDocMemberName(name.left, ignoreErrors, container); - var right = isIdentifier(name) ? name.escapedText : name.right.escapedText; - if (left) { - var proto = left.flags & 111551 /* Value */ && getPropertyOfType(getTypeOfSymbol(left), "prototype"); - var t = proto ? getTypeOfSymbol(proto) : getDeclaredTypeOfSymbol(left); - return getPropertyOfType(t, right); - } - } - function getSymbolAtLocation(node, ignoreErrors) { - if (isSourceFile(node)) { - return isExternalModule(node) ? getMergedSymbol(node.symbol) : void 0; - } - var parent2 = node.parent; - var grandParent = parent2.parent; - if (node.flags & 67108864 /* InWithStatement */) { - return void 0; - } - if (isDeclarationNameOrImportPropertyName(node)) { - var parentSymbol = getSymbolOfDeclaration(parent2); - return isImportOrExportSpecifier(node.parent) && node.parent.propertyName === node ? getImmediateAliasedSymbol(parentSymbol) : parentSymbol; - } - else if (isLiteralComputedPropertyDeclarationName(node)) { - return getSymbolOfDeclaration(parent2.parent); - } - if (node.kind === 80 /* Identifier */) { - if (isInRightSideOfImportOrExportAssignment(node)) { - return getSymbolOfNameOrPropertyAccessExpression(node); - } - else if (parent2.kind === 208 /* BindingElement */ && grandParent.kind === 206 /* ObjectBindingPattern */ && node === parent2.propertyName) { - var typeOfPattern = getTypeOfNode(grandParent); - var propertyDeclaration = getPropertyOfType(typeOfPattern, node.escapedText); - if (propertyDeclaration) { - return propertyDeclaration; - } - } - else if (isMetaProperty(parent2) && parent2.name === node) { - if (parent2.keywordToken === 105 /* NewKeyword */ && idText(node) === "target") { - return checkNewTargetMetaProperty(parent2).symbol; - } - if (parent2.keywordToken === 102 /* ImportKeyword */ && idText(node) === "meta") { - return getGlobalImportMetaExpressionType().members.get("meta"); - } - return void 0; - } - } - switch (node.kind) { - case 80 /* Identifier */: - case 81 /* PrivateIdentifier */: - case 211 /* PropertyAccessExpression */: - case 166 /* QualifiedName */: - if (!isThisInTypeQuery(node)) { - return getSymbolOfNameOrPropertyAccessExpression(node); - } - case 110 /* ThisKeyword */: - var container = getThisContainer(node, - /*includeArrowFunctions*/ - false, - /*includeClassComputedPropertyName*/ - false); - if (isFunctionLike(container)) { - var sig = getSignatureFromDeclaration(container); - if (sig.thisParameter) { - return sig.thisParameter; - } - } - if (isInExpressionContext(node)) { - return checkExpression(node).symbol; - } - case 197 /* ThisType */: - return getTypeFromThisTypeNode(node).symbol; - case 108 /* SuperKeyword */: - return checkExpression(node).symbol; - case 137 /* ConstructorKeyword */: - var constructorDeclaration = node.parent; - if (constructorDeclaration && constructorDeclaration.kind === 176 /* Constructor */) { - return constructorDeclaration.parent.symbol; - } - return void 0; - case 11 /* StringLiteral */: - case 15 /* NoSubstitutionTemplateLiteral */: - if (isExternalModuleImportEqualsDeclaration(node.parent.parent) && getExternalModuleImportEqualsDeclarationExpression(node.parent.parent) === node || (node.parent.kind === 272 /* ImportDeclaration */ || node.parent.kind === 278 /* ExportDeclaration */) && node.parent.moduleSpecifier === node || (isInJSFile(node) && getEmitModuleResolutionKind(compilerOptions) !== 100 /* Bundler */ && isRequireCall(node.parent, - /*requireStringLiteralLikeArgument*/ - false) || isImportCall(node.parent)) || isLiteralTypeNode(node.parent) && isLiteralImportTypeNode(node.parent.parent) && node.parent.parent.argument === node.parent) { - return resolveExternalModuleName(node, node, ignoreErrors); - } - if (isCallExpression(parent2) && isBindableObjectDefinePropertyCall(parent2) && parent2.arguments[1] === node) { - return getSymbolOfDeclaration(parent2); - } - case 9 /* NumericLiteral */: - var objectType = isElementAccessExpression(parent2) ? parent2.argumentExpression === node ? getTypeOfExpression(parent2.expression) : void 0 : isLiteralTypeNode(parent2) && isIndexedAccessTypeNode(grandParent) ? getTypeFromTypeNode(grandParent.objectType) : void 0; - return objectType && getPropertyOfType(objectType, escapeLeadingUnderscores(node.text)); - case 90 /* DefaultKeyword */: - case 100 /* FunctionKeyword */: - case 39 /* EqualsGreaterThanToken */: - case 86 /* ClassKeyword */: - return getSymbolOfNode(node.parent); - case 205 /* ImportType */: - return isLiteralImportTypeNode(node) ? getSymbolAtLocation(node.argument.literal, ignoreErrors) : void 0; - case 95 /* ExportKeyword */: - return isExportAssignment(node.parent) ? Debug.checkDefined(node.parent.symbol) : void 0; - case 102 /* ImportKeyword */: - case 105 /* NewKeyword */: - return isMetaProperty(node.parent) ? checkMetaPropertyKeyword(node.parent).symbol : void 0; - case 236 /* MetaProperty */: - return checkExpression(node).symbol; - case 295 /* JsxNamespacedName */: - if (isJSXTagName(node) && isJsxIntrinsicTagName(node)) { - var symbol = getIntrinsicTagSymbol(node.parent); - return symbol === unknownSymbol ? void 0 : symbol; - } - default: - return void 0; - } - } - function getIndexInfosAtLocation(node) { - if (isIdentifier(node) && isPropertyAccessExpression(node.parent) && node.parent.name === node) { - var keyType_1 = getLiteralTypeFromPropertyName(node); - var objectType = getTypeOfExpression(node.parent.expression); - var objectTypes = objectType.flags & 1048576 /* Union */ ? objectType.types : [objectType]; - return flatMap(objectTypes, function (t) { return filter(getIndexInfosOfType(t), function (info) { return isApplicableIndexType(keyType_1, info.keyType); }); }); - } - return void 0; - } - function getShorthandAssignmentValueSymbol(location) { - if (location && location.kind === 304 /* ShorthandPropertyAssignment */) { - return resolveEntityName(location.name, 111551 /* Value */ | 2097152 /* Alias */); - } - return void 0; - } - function getExportSpecifierLocalTargetSymbol(node) { - if (isExportSpecifier(node)) { - return node.parent.parent.moduleSpecifier ? getExternalModuleMember(node.parent.parent, node) : resolveEntityName(node.propertyName || node.name, 111551 /* Value */ | 788968 /* Type */ | 1920 /* Namespace */ | 2097152 /* Alias */); - } - else { - return resolveEntityName(node, 111551 /* Value */ | 788968 /* Type */ | 1920 /* Namespace */ | 2097152 /* Alias */); - } - } - function getTypeOfNode(node) { - if (isSourceFile(node) && !isExternalModule(node)) { - return errorType; - } - if (node.flags & 67108864 /* InWithStatement */) { - return errorType; - } - var classDecl = tryGetClassImplementingOrExtendingExpressionWithTypeArguments(node); - var classType = classDecl && getDeclaredTypeOfClassOrInterface(getSymbolOfDeclaration(classDecl.class)); - if (isPartOfTypeNode(node)) { - var typeFromTypeNode = getTypeFromTypeNode(node); - return classType ? getTypeWithThisArgument(typeFromTypeNode, classType.thisType) : typeFromTypeNode; - } - if (isExpressionNode(node)) { - return getRegularTypeOfExpression(node); - } - if (classType && !classDecl.isImplements) { - var baseType = firstOrUndefined(getBaseTypes(classType)); - return baseType ? getTypeWithThisArgument(baseType, classType.thisType) : errorType; - } - if (isTypeDeclaration(node)) { - var symbol = getSymbolOfDeclaration(node); - return getDeclaredTypeOfSymbol(symbol); - } - if (isTypeDeclarationName(node)) { - var symbol = getSymbolAtLocation(node); - return symbol ? getDeclaredTypeOfSymbol(symbol) : errorType; - } - if (isBindingElement(node)) { - return getTypeForVariableLikeDeclaration(node, - /*includeOptionality*/ - true, 0 /* Normal */) || errorType; - } - if (isDeclaration(node)) { - var symbol = getSymbolOfDeclaration(node); - return symbol ? getTypeOfSymbol(symbol) : errorType; - } - if (isDeclarationNameOrImportPropertyName(node)) { - var symbol = getSymbolAtLocation(node); - if (symbol) { - return getTypeOfSymbol(symbol); - } - return errorType; - } - if (isBindingPattern(node)) { - return getTypeForVariableLikeDeclaration(node.parent, - /*includeOptionality*/ - true, 0 /* Normal */) || errorType; - } - if (isInRightSideOfImportOrExportAssignment(node)) { - var symbol = getSymbolAtLocation(node); - if (symbol) { - var declaredType = getDeclaredTypeOfSymbol(symbol); - return !isErrorType(declaredType) ? declaredType : getTypeOfSymbol(symbol); - } - } - if (isMetaProperty(node.parent) && node.parent.keywordToken === node.kind) { - return checkMetaPropertyKeyword(node.parent); - } - return errorType; - } - function getTypeOfAssignmentPattern(expr) { - Debug.assert(expr.kind === 210 /* ObjectLiteralExpression */ || expr.kind === 209 /* ArrayLiteralExpression */); - if (expr.parent.kind === 250 /* ForOfStatement */) { - var iteratedType = checkRightHandSideOfForOf(expr.parent); - return checkDestructuringAssignment(expr, iteratedType || errorType); - } - if (expr.parent.kind === 226 /* BinaryExpression */) { - var iteratedType = getTypeOfExpression(expr.parent.right); - return checkDestructuringAssignment(expr, iteratedType || errorType); - } - if (expr.parent.kind === 303 /* PropertyAssignment */) { - var node2 = cast(expr.parent.parent, isObjectLiteralExpression); - var typeOfParentObjectLiteral = getTypeOfAssignmentPattern(node2) || errorType; - var propertyIndex = indexOfNode(node2.properties, expr.parent); - return checkObjectLiteralDestructuringPropertyAssignment(node2, typeOfParentObjectLiteral, propertyIndex); - } - var node = cast(expr.parent, isArrayLiteralExpression); - var typeOfArrayLiteral = getTypeOfAssignmentPattern(node) || errorType; - var elementType = checkIteratedTypeOrElementType(65 /* Destructuring */, typeOfArrayLiteral, undefinedType, expr.parent) || errorType; - return checkArrayLiteralDestructuringElementAssignment(node, typeOfArrayLiteral, node.elements.indexOf(expr), elementType); - } - function getPropertySymbolOfDestructuringAssignment(location) { - var typeOfObjectLiteral = getTypeOfAssignmentPattern(cast(location.parent.parent, isAssignmentPattern)); - return typeOfObjectLiteral && getPropertyOfType(typeOfObjectLiteral, location.escapedText); - } - function getRegularTypeOfExpression(expr) { - if (isRightSideOfQualifiedNameOrPropertyAccess(expr)) { - expr = expr.parent; - } - return getRegularTypeOfLiteralType(getTypeOfExpression(expr)); - } - function getParentTypeOfClassElement(node) { - var classSymbol = getSymbolOfNode(node.parent); - return isStatic(node) ? getTypeOfSymbol(classSymbol) : getDeclaredTypeOfSymbol(classSymbol); - } - function getClassElementPropertyKeyType(element) { - var name = element.name; - switch (name.kind) { - case 80 /* Identifier */: - return getStringLiteralType(idText(name)); - case 9 /* NumericLiteral */: - case 11 /* StringLiteral */: - return getStringLiteralType(name.text); - case 167 /* ComputedPropertyName */: - var nameType = checkComputedPropertyName(name); - return isTypeAssignableToKind(nameType, 12288 /* ESSymbolLike */) ? nameType : stringType; - default: - return Debug.fail("Unsupported property name."); - } - } - function getAugmentedPropertiesOfType(type) { - type = getApparentType(type); - var propsByName = createSymbolTable(getPropertiesOfType(type)); - var functionType = getSignaturesOfType(type, 0 /* Call */).length ? globalCallableFunctionType : getSignaturesOfType(type, 1 /* Construct */).length ? globalNewableFunctionType : void 0; - if (functionType) { - forEach(getPropertiesOfType(functionType), function (p) { - if (!propsByName.has(p.escapedName)) { - propsByName.set(p.escapedName, p); - } - }); - } - return getNamedMembers(propsByName); - } - function typeHasCallOrConstructSignatures(type) { - return getSignaturesOfType(type, 0 /* Call */).length !== 0 || getSignaturesOfType(type, 1 /* Construct */).length !== 0; - } - function getRootSymbols(symbol) { - var roots = getImmediateRootSymbols(symbol); - return roots ? flatMap(roots, getRootSymbols) : [symbol]; - } - function getImmediateRootSymbols(symbol) { - if (getCheckFlags(symbol) & 6 /* Synthetic */) { - return mapDefined(getSymbolLinks(symbol).containingType.types, function (type) { return getPropertyOfType(type, symbol.escapedName); }); - } - else if (symbol.flags & 33554432 /* Transient */) { - var _t = symbol.links, leftSpread = _t.leftSpread, rightSpread = _t.rightSpread, syntheticOrigin = _t.syntheticOrigin; - return leftSpread ? [leftSpread, rightSpread] : syntheticOrigin ? [syntheticOrigin] : singleElementArray(tryGetTarget(symbol)); - } - return void 0; - } - function tryGetTarget(symbol) { - var target; - var next = symbol; - while (next = getSymbolLinks(next).target) { - target = next; - } - return target; - } - function isArgumentsLocalBinding(nodeIn) { - if (isGeneratedIdentifier(nodeIn)) - return false; - var node = getParseTreeNode(nodeIn, isIdentifier); - if (!node) - return false; - var parent2 = node.parent; - if (!parent2) - return false; - var isPropertyName2 = (isPropertyAccessExpression(parent2) || isPropertyAssignment(parent2)) && parent2.name === node; - return !isPropertyName2 && getReferencedValueSymbol(node) === argumentsSymbol; - } - function moduleExportsSomeValue(moduleReferenceExpression) { - var moduleSymbol = resolveExternalModuleName(moduleReferenceExpression.parent, moduleReferenceExpression); - if (!moduleSymbol || isShorthandAmbientModuleSymbol(moduleSymbol)) { - return true; - } - var hasExportAssignment = hasExportAssignmentSymbol(moduleSymbol); - moduleSymbol = resolveExternalModuleSymbol(moduleSymbol); - var symbolLinks2 = getSymbolLinks(moduleSymbol); - if (symbolLinks2.exportsSomeValue === void 0) { - symbolLinks2.exportsSomeValue = hasExportAssignment ? !!(moduleSymbol.flags & 111551 /* Value */) : forEachEntry(getExportsOfModule(moduleSymbol), isValue); - } - return symbolLinks2.exportsSomeValue; - function isValue(s) { - s = resolveSymbol(s); - return s && !!(getSymbolFlags(s) & 111551 /* Value */); - } - } - function isNameOfModuleOrEnumDeclaration(node) { - return isModuleOrEnumDeclaration(node.parent) && node === node.parent.name; - } - function getReferencedExportContainer(nodeIn, prefixLocals) { - var _a; - var node = getParseTreeNode(nodeIn, isIdentifier); - if (node) { - var symbol = getReferencedValueSymbol(node, - /*startInDeclarationContainer*/ - isNameOfModuleOrEnumDeclaration(node)); - if (symbol) { - if (symbol.flags & 1048576 /* ExportValue */) { - var exportSymbol = getMergedSymbol(symbol.exportSymbol); - if (!prefixLocals && exportSymbol.flags & 944 /* ExportHasLocal */ && !(exportSymbol.flags & 3 /* Variable */)) { - return void 0; - } - symbol = exportSymbol; - } - var parentSymbol_1 = getParentOfSymbol(symbol); - if (parentSymbol_1) { - if (parentSymbol_1.flags & 512 /* ValueModule */ && ((_a = parentSymbol_1.valueDeclaration) == null ? void 0 : _a.kind) === 312 /* SourceFile */) { - var symbolFile = parentSymbol_1.valueDeclaration; - var referenceFile = getSourceFileOfNode(node); - var symbolIsUmdExport = symbolFile !== referenceFile; - return symbolIsUmdExport ? void 0 : symbolFile; - } - return findAncestor(node.parent, function (n) { return isModuleOrEnumDeclaration(n) && getSymbolOfDeclaration(n) === parentSymbol_1; }); - } - } - } - } - function getReferencedImportDeclaration(nodeIn) { - var specifier = getIdentifierGeneratedImportReference(nodeIn); - if (specifier) { - return specifier; - } - var node = getParseTreeNode(nodeIn, isIdentifier); - if (node) { - var symbol = getReferencedValueOrAliasSymbol(node); - if (isNonLocalAlias(symbol, - /*excludes*/ - 111551 /* Value */) && !getTypeOnlyAliasDeclaration(symbol, 111551 /* Value */)) { - return getDeclarationOfAliasSymbol(symbol); - } - } - return void 0; - } - function isSymbolOfDestructuredElementOfCatchBinding(symbol) { - return symbol.valueDeclaration && isBindingElement(symbol.valueDeclaration) && walkUpBindingElementsAndPatterns(symbol.valueDeclaration).parent.kind === 299 /* CatchClause */; - } - function isSymbolOfDeclarationWithCollidingName(symbol) { - if (symbol.flags & 418 /* BlockScoped */ && symbol.valueDeclaration && !isSourceFile(symbol.valueDeclaration)) { - var links = getSymbolLinks(symbol); - if (links.isDeclarationWithCollidingName === void 0) { - var container = getEnclosingBlockScopeContainer(symbol.valueDeclaration); - if (isStatementWithLocals(container) || isSymbolOfDestructuredElementOfCatchBinding(symbol)) { - var nodeLinks2 = getNodeLinks(symbol.valueDeclaration); - if (resolveName(container.parent, symbol.escapedName, 111551 /* Value */, - /*nameNotFoundMessage*/ - void 0, - /*nameArg*/ - void 0, - /*isUse*/ - false)) { - links.isDeclarationWithCollidingName = true; - } - else if (nodeLinks2.flags & 16384 /* CapturedBlockScopedBinding */) { - var isDeclaredInLoop = nodeLinks2.flags & 32768 /* BlockScopedBindingInLoop */; - var inLoopInitializer = isIterationStatement(container, - /*lookInLabeledStatements*/ - false); - var inLoopBodyBlock = container.kind === 241 /* Block */ && isIterationStatement(container.parent, - /*lookInLabeledStatements*/ - false); - links.isDeclarationWithCollidingName = !isBlockScopedContainerTopLevel(container) && (!isDeclaredInLoop || !inLoopInitializer && !inLoopBodyBlock); - } - else { - links.isDeclarationWithCollidingName = false; - } - } - } - return links.isDeclarationWithCollidingName; - } - return false; - } - function getReferencedDeclarationWithCollidingName(nodeIn) { - if (!isGeneratedIdentifier(nodeIn)) { - var node = getParseTreeNode(nodeIn, isIdentifier); - if (node) { - var symbol = getReferencedValueSymbol(node); - if (symbol && isSymbolOfDeclarationWithCollidingName(symbol)) { - return symbol.valueDeclaration; - } - } - } - return void 0; - } - function isDeclarationWithCollidingName(nodeIn) { - var node = getParseTreeNode(nodeIn, isDeclaration); - if (node) { - var symbol = getSymbolOfDeclaration(node); - if (symbol) { - return isSymbolOfDeclarationWithCollidingName(symbol); - } - } - return false; - } - function isValueAliasDeclaration(node) { - Debug.assert(canCollectSymbolAliasAccessabilityData); - switch (node.kind) { - case 271 /* ImportEqualsDeclaration */: - return isAliasResolvedToValue(getSymbolOfDeclaration(node)); - case 273 /* ImportClause */: - case 274 /* NamespaceImport */: - case 276 /* ImportSpecifier */: - case 281 /* ExportSpecifier */: - var symbol = getSymbolOfDeclaration(node); - return !!symbol && isAliasResolvedToValue(symbol, - /*excludeTypeOnlyValues*/ - true); - case 278 /* ExportDeclaration */: - var exportClause = node.exportClause; - return !!exportClause && (isNamespaceExport(exportClause) || some(exportClause.elements, isValueAliasDeclaration)); - case 277 /* ExportAssignment */: - return node.expression && node.expression.kind === 80 /* Identifier */ ? isAliasResolvedToValue(getSymbolOfDeclaration(node)) : true; - } - return false; - } - function isTopLevelValueImportEqualsWithEntityName(nodeIn) { - var node = getParseTreeNode(nodeIn, isImportEqualsDeclaration); - if (node === void 0 || node.parent.kind !== 312 /* SourceFile */ || !isInternalModuleImportEqualsDeclaration(node)) { - return false; - } - var isValue = isAliasResolvedToValue(getSymbolOfDeclaration(node)); - return isValue && node.moduleReference && !nodeIsMissing(node.moduleReference); - } - function isAliasResolvedToValue(symbol, excludeTypeOnlyValues) { - if (!symbol) { - return false; - } - var target = getExportSymbolOfValueSymbolIfExported(resolveAlias(symbol)); - if (target === unknownSymbol) { - return true; - } - return !!(getSymbolFlags(symbol, excludeTypeOnlyValues, - /*excludeLocalMeanings*/ - true) & 111551 /* Value */) && (shouldPreserveConstEnums(compilerOptions) || !isConstEnumOrConstEnumOnlyModule(target)); - } - function isConstEnumOrConstEnumOnlyModule(s) { - return isConstEnumSymbol(s) || !!s.constEnumOnlyModule; - } - function isReferencedAliasDeclaration(node, checkChildren) { - Debug.assert(canCollectSymbolAliasAccessabilityData); - if (isAliasSymbolDeclaration2(node)) { - var symbol = getSymbolOfDeclaration(node); - var links = symbol && getSymbolLinks(symbol); - if (links == null ? void 0 : links.referenced) { - return true; - } - var target = getSymbolLinks(symbol).aliasTarget; - if (target && getEffectiveModifierFlags(node) & 1 /* Export */ && getSymbolFlags(target) & 111551 /* Value */ && (shouldPreserveConstEnums(compilerOptions) || !isConstEnumOrConstEnumOnlyModule(target))) { - return true; - } - } - if (checkChildren) { - return !!forEachChild(node, function (node2) { return isReferencedAliasDeclaration(node2, checkChildren); }); - } - return false; - } - function isImplementationOfOverload(node) { - if (nodeIsPresent(node.body)) { - if (isGetAccessor(node) || isSetAccessor(node)) - return false; - var symbol = getSymbolOfDeclaration(node); - var signaturesOfSymbol = getSignaturesOfSymbol(symbol); - return signaturesOfSymbol.length > 1 || // If there is single signature for the symbol, it is overload if that signature isn't coming from the node - // e.g.: function foo(a: string): string; - // function foo(a: any) { // This is implementation of the overloads - // return a; - // } - signaturesOfSymbol.length === 1 && signaturesOfSymbol[0].declaration !== node; - } - return false; - } - function isRequiredInitializedParameter(parameter) { - return !!strictNullChecks && !isOptionalParameter(parameter) && !isJSDocParameterTag(parameter) && !!parameter.initializer && !hasSyntacticModifier(parameter, 16476 /* ParameterPropertyModifier */); - } - function isOptionalUninitializedParameterProperty(parameter) { - return strictNullChecks && isOptionalParameter(parameter) && !parameter.initializer && hasSyntacticModifier(parameter, 16476 /* ParameterPropertyModifier */); - } - function isExpandoFunctionDeclaration(node) { - var declaration = getParseTreeNode(node, isFunctionDeclaration); - if (!declaration) { - return false; - } - var symbol = getSymbolOfDeclaration(declaration); - if (!symbol || !(symbol.flags & 16 /* Function */)) { - return false; - } - return !!forEachEntry(getExportsOfSymbol(symbol), function (p) { return p.flags & 111551 /* Value */ && p.valueDeclaration && isPropertyAccessExpression(p.valueDeclaration); }); - } - function getPropertiesOfContainerFunction(node) { - var declaration = getParseTreeNode(node, isFunctionDeclaration); - if (!declaration) { - return emptyArray; - } - var symbol = getSymbolOfDeclaration(declaration); - return symbol && getPropertiesOfType(getTypeOfSymbol(symbol)) || emptyArray; - } - function getNodeCheckFlags(node) { - var _a; - var nodeId = node.id || 0; - if (nodeId < 0 || nodeId >= nodeLinks.length) - return 0; - return ((_a = nodeLinks[nodeId]) == null ? void 0 : _a.flags) || 0; - } - function getEnumMemberValue(node) { - computeEnumMemberValues(node.parent); - return getNodeLinks(node).enumMemberValue; - } - function canHaveConstantValue(node) { - switch (node.kind) { - case 306 /* EnumMember */: - case 211 /* PropertyAccessExpression */: - case 212 /* ElementAccessExpression */: - return true; - } - return false; - } - function getConstantValue2(node) { - if (node.kind === 306 /* EnumMember */) { - return getEnumMemberValue(node); - } - var symbol = getNodeLinks(node).resolvedSymbol; - if (symbol && symbol.flags & 8 /* EnumMember */) { - var member = symbol.valueDeclaration; - if (isEnumConst(member.parent)) { - return getEnumMemberValue(member); - } - } - return void 0; - } - function isFunctionType(type) { - return !!(type.flags & 524288 /* Object */) && getSignaturesOfType(type, 0 /* Call */).length > 0; - } - function getTypeReferenceSerializationKind(typeNameIn, location) { - var _a; - var typeName = getParseTreeNode(typeNameIn, isEntityName); - if (!typeName) - return 0 /* Unknown */; - if (location) { - location = getParseTreeNode(location); - if (!location) - return 0 /* Unknown */; - } - var isTypeOnly = false; - if (isQualifiedName(typeName)) { - var rootValueSymbol = resolveEntityName(getFirstIdentifier(typeName), 111551 /* Value */, - /*ignoreErrors*/ - true, - /*dontResolveAlias*/ - true, location); - isTypeOnly = !!((_a = rootValueSymbol == null ? void 0 : rootValueSymbol.declarations) == null ? void 0 : _a.every(isTypeOnlyImportOrExportDeclaration)); - } - var valueSymbol = resolveEntityName(typeName, 111551 /* Value */, - /*ignoreErrors*/ - true, - /*dontResolveAlias*/ - true, location); - var resolvedSymbol = valueSymbol && valueSymbol.flags & 2097152 /* Alias */ ? resolveAlias(valueSymbol) : valueSymbol; - isTypeOnly || (isTypeOnly = !!(valueSymbol && getTypeOnlyAliasDeclaration(valueSymbol, 111551 /* Value */))); - var typeSymbol = resolveEntityName(typeName, 788968 /* Type */, - /*ignoreErrors*/ - true, - /*dontResolveAlias*/ - false, location); - if (resolvedSymbol && resolvedSymbol === typeSymbol) { - var globalPromiseSymbol = getGlobalPromiseConstructorSymbol( - /*reportErrors*/ - false); - if (globalPromiseSymbol && resolvedSymbol === globalPromiseSymbol) { - return 9 /* Promise */; - } - var constructorType = getTypeOfSymbol(resolvedSymbol); - if (constructorType && isConstructorType(constructorType)) { - return isTypeOnly ? 10 /* TypeWithCallSignature */ : 1 /* TypeWithConstructSignatureAndValue */; - } - } - if (!typeSymbol) { - return isTypeOnly ? 11 /* ObjectType */ : 0 /* Unknown */; - } - var type = getDeclaredTypeOfSymbol(typeSymbol); - if (isErrorType(type)) { - return isTypeOnly ? 11 /* ObjectType */ : 0 /* Unknown */; - } - else if (type.flags & 3 /* AnyOrUnknown */) { - return 11 /* ObjectType */; - } - else if (isTypeAssignableToKind(type, 16384 /* Void */ | 98304 /* Nullable */ | 131072 /* Never */)) { - return 2 /* VoidNullableOrNeverType */; - } - else if (isTypeAssignableToKind(type, 528 /* BooleanLike */)) { - return 6 /* BooleanType */; - } - else if (isTypeAssignableToKind(type, 296 /* NumberLike */)) { - return 3 /* NumberLikeType */; - } - else if (isTypeAssignableToKind(type, 2112 /* BigIntLike */)) { - return 4 /* BigIntLikeType */; - } - else if (isTypeAssignableToKind(type, 402653316 /* StringLike */)) { - return 5 /* StringLikeType */; - } - else if (isTupleType(type)) { - return 7 /* ArrayLikeType */; - } - else if (isTypeAssignableToKind(type, 12288 /* ESSymbolLike */)) { - return 8 /* ESSymbolType */; - } - else if (isFunctionType(type)) { - return 10 /* TypeWithCallSignature */; - } - else if (isArrayType(type)) { - return 7 /* ArrayLikeType */; - } - else { - return 11 /* ObjectType */; - } - } - function createTypeOfDeclaration(declarationIn, enclosingDeclaration, flags, tracker, addUndefined) { - var declaration = getParseTreeNode(declarationIn, isVariableLikeOrAccessor); - if (!declaration) { - return factory.createToken(133 /* AnyKeyword */); - } - var symbol = getSymbolOfDeclaration(declaration); - var type = symbol && !(symbol.flags & (2048 /* TypeLiteral */ | 131072 /* Signature */)) ? getWidenedLiteralType(getTypeOfSymbol(symbol)) : errorType; - if (type.flags & 8192 /* UniqueESSymbol */ && type.symbol === symbol) { - flags |= 1048576 /* AllowUniqueESSymbolType */; - } - if (addUndefined) { - type = getOptionalType(type); - } - return nodeBuilder.typeToTypeNode(type, enclosingDeclaration, flags | 1024 /* MultilineObjectLiterals */, tracker); - } - function createReturnTypeOfSignatureDeclaration(signatureDeclarationIn, enclosingDeclaration, flags, tracker) { - var signatureDeclaration = getParseTreeNode(signatureDeclarationIn, isFunctionLike); - if (!signatureDeclaration) { - return factory.createToken(133 /* AnyKeyword */); - } - var signature = getSignatureFromDeclaration(signatureDeclaration); - return nodeBuilder.typeToTypeNode(getReturnTypeOfSignature(signature), enclosingDeclaration, flags | 1024 /* MultilineObjectLiterals */, tracker); - } - function createTypeOfExpression(exprIn, enclosingDeclaration, flags, tracker) { - var expr = getParseTreeNode(exprIn, isExpression); - if (!expr) { - return factory.createToken(133 /* AnyKeyword */); - } - var type = getWidenedType(getRegularTypeOfExpression(expr)); - return nodeBuilder.typeToTypeNode(type, enclosingDeclaration, flags | 1024 /* MultilineObjectLiterals */, tracker); - } - function hasGlobalName(name) { - return globals.has(escapeLeadingUnderscores(name)); - } - function getReferencedValueSymbol(reference, startInDeclarationContainer) { - var resolvedSymbol = getNodeLinks(reference).resolvedSymbol; - if (resolvedSymbol) { - return resolvedSymbol; - } - var location = reference; - if (startInDeclarationContainer) { - var parent2 = reference.parent; - if (isDeclaration(parent2) && reference === parent2.name) { - location = getDeclarationContainer(parent2); - } - } - return resolveName(location, reference.escapedText, 111551 /* Value */ | 1048576 /* ExportValue */ | 2097152 /* Alias */, - /*nameNotFoundMessage*/ - void 0, - /*nameArg*/ - void 0, - /*isUse*/ - true); - } - function getReferencedValueOrAliasSymbol(reference) { - var resolvedSymbol = getNodeLinks(reference).resolvedSymbol; - if (resolvedSymbol && resolvedSymbol !== unknownSymbol) { - return resolvedSymbol; - } - return resolveName(reference, reference.escapedText, 111551 /* Value */ | 1048576 /* ExportValue */ | 2097152 /* Alias */, - /*nameNotFoundMessage*/ - void 0, - /*nameArg*/ - void 0, - /*isUse*/ - true, - /*excludeGlobals*/ - void 0, - /*getSpellingSuggestions*/ - void 0); - } - function getReferencedValueDeclaration(referenceIn) { - if (!isGeneratedIdentifier(referenceIn)) { - var reference = getParseTreeNode(referenceIn, isIdentifier); - if (reference) { - var symbol = getReferencedValueSymbol(reference); - if (symbol) { - return getExportSymbolOfValueSymbolIfExported(symbol).valueDeclaration; - } - } - } - return void 0; - } - function getReferencedValueDeclarations(referenceIn) { - if (!isGeneratedIdentifier(referenceIn)) { - var reference = getParseTreeNode(referenceIn, isIdentifier); - if (reference) { - var symbol = getReferencedValueSymbol(reference); - if (symbol) { - return filter(getExportSymbolOfValueSymbolIfExported(symbol).declarations, function (declaration) { - switch (declaration.kind) { - case 260 /* VariableDeclaration */: - case 169 /* Parameter */: - case 208 /* BindingElement */: - case 172 /* PropertyDeclaration */: - case 303 /* PropertyAssignment */: - case 304 /* ShorthandPropertyAssignment */: - case 306 /* EnumMember */: - case 210 /* ObjectLiteralExpression */: - case 262 /* FunctionDeclaration */: - case 218 /* FunctionExpression */: - case 219 /* ArrowFunction */: - case 263 /* ClassDeclaration */: - case 231 /* ClassExpression */: - case 266 /* EnumDeclaration */: - case 174 /* MethodDeclaration */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - case 267 /* ModuleDeclaration */: - return true; - } - return false; - }); - } - } - } - return void 0; - } - function isLiteralConstDeclaration(node) { - if (isDeclarationReadonly(node) || isVariableDeclaration(node) && isVarConstLike(node)) { - return isFreshLiteralType(getTypeOfSymbol(getSymbolOfDeclaration(node))); - } - return false; - } - function literalTypeToNode(type, enclosing, tracker) { - var enumResult = type.flags & 1056 /* EnumLike */ ? nodeBuilder.symbolToExpression(type.symbol, 111551 /* Value */, enclosing, - /*flags*/ - void 0, tracker) : type === trueType ? factory.createTrue() : type === falseType && factory.createFalse(); - if (enumResult) - return enumResult; - var literalValue = type.value; - return typeof literalValue === "object" ? factory.createBigIntLiteral(literalValue) : typeof literalValue === "number" ? factory.createNumericLiteral(literalValue) : factory.createStringLiteral(literalValue); - } - function createLiteralConstValue(node, tracker) { - var type = getTypeOfSymbol(getSymbolOfDeclaration(node)); - return literalTypeToNode(type, node, tracker); - } - function getJsxFactoryEntity(location) { - return location ? (getJsxNamespace(location), getSourceFileOfNode(location).localJsxFactory || _jsxFactoryEntity) : _jsxFactoryEntity; - } - function getJsxFragmentFactoryEntity(location) { - if (location) { - var file = getSourceFileOfNode(location); - if (file) { - if (file.localJsxFragmentFactory) { - return file.localJsxFragmentFactory; - } - var jsxFragPragmas = file.pragmas.get("jsxfrag"); - var jsxFragPragma = isArray(jsxFragPragmas) ? jsxFragPragmas[0] : jsxFragPragmas; - if (jsxFragPragma) { - file.localJsxFragmentFactory = parseIsolatedEntityName(jsxFragPragma.arguments.factory, languageVersion); - return file.localJsxFragmentFactory; - } - } - } - if (compilerOptions.jsxFragmentFactory) { - return parseIsolatedEntityName(compilerOptions.jsxFragmentFactory, languageVersion); - } - } - function createResolver() { - var resolvedTypeReferenceDirectives = host.getResolvedTypeReferenceDirectives(); - var fileToDirective; - if (resolvedTypeReferenceDirectives) { - fileToDirective = /* @__PURE__ */ new Map(); - resolvedTypeReferenceDirectives.forEach(function (_t, key, mode) { - var resolvedTypeReferenceDirective = _t.resolvedTypeReferenceDirective; - if (!(resolvedTypeReferenceDirective == null ? void 0 : resolvedTypeReferenceDirective.resolvedFileName)) { - return; - } - var file = host.getSourceFile(resolvedTypeReferenceDirective.resolvedFileName); - if (file) { - addReferencedFilesToTypeDirective(file, key, mode); - } - }); - } - return { - getReferencedExportContainer: getReferencedExportContainer, - getReferencedImportDeclaration: getReferencedImportDeclaration, - getReferencedDeclarationWithCollidingName: getReferencedDeclarationWithCollidingName, - isDeclarationWithCollidingName: isDeclarationWithCollidingName, - isValueAliasDeclaration: function (nodeIn) { - var node = getParseTreeNode(nodeIn); - return node && canCollectSymbolAliasAccessabilityData ? isValueAliasDeclaration(node) : true; - }, - hasGlobalName: hasGlobalName, - isReferencedAliasDeclaration: function (nodeIn, checkChildren) { - var node = getParseTreeNode(nodeIn); - return node && canCollectSymbolAliasAccessabilityData ? isReferencedAliasDeclaration(node, checkChildren) : true; - }, - getNodeCheckFlags: function (nodeIn) { - var node = getParseTreeNode(nodeIn); - return node ? getNodeCheckFlags(node) : 0; - }, - isTopLevelValueImportEqualsWithEntityName: isTopLevelValueImportEqualsWithEntityName, - isDeclarationVisible: isDeclarationVisible, - isImplementationOfOverload: isImplementationOfOverload, - isRequiredInitializedParameter: isRequiredInitializedParameter, - isOptionalUninitializedParameterProperty: isOptionalUninitializedParameterProperty, - isExpandoFunctionDeclaration: isExpandoFunctionDeclaration, - getPropertiesOfContainerFunction: getPropertiesOfContainerFunction, - createTypeOfDeclaration: createTypeOfDeclaration, - createReturnTypeOfSignatureDeclaration: createReturnTypeOfSignatureDeclaration, - createTypeOfExpression: createTypeOfExpression, - createLiteralConstValue: createLiteralConstValue, - isSymbolAccessible: isSymbolAccessible, - isEntityNameVisible: isEntityNameVisible, - getConstantValue: function (nodeIn) { - var node = getParseTreeNode(nodeIn, canHaveConstantValue); - return node ? getConstantValue2(node) : void 0; - }, - collectLinkedAliases: collectLinkedAliases, - getReferencedValueDeclaration: getReferencedValueDeclaration, - getReferencedValueDeclarations: getReferencedValueDeclarations, - getTypeReferenceSerializationKind: getTypeReferenceSerializationKind, - isOptionalParameter: isOptionalParameter, - moduleExportsSomeValue: moduleExportsSomeValue, - isArgumentsLocalBinding: isArgumentsLocalBinding, - getExternalModuleFileFromDeclaration: function (nodeIn) { - var node = getParseTreeNode(nodeIn, hasPossibleExternalModuleReference); - return node && getExternalModuleFileFromDeclaration(node); - }, - getTypeReferenceDirectivesForEntityName: getTypeReferenceDirectivesForEntityName, - getTypeReferenceDirectivesForSymbol: getTypeReferenceDirectivesForSymbol, - isLiteralConstDeclaration: isLiteralConstDeclaration, - isLateBound: function (nodeIn) { - var node = getParseTreeNode(nodeIn, isDeclaration); - var symbol = node && getSymbolOfDeclaration(node); - return !!(symbol && getCheckFlags(symbol) & 4096 /* Late */); - }, - getJsxFactoryEntity: getJsxFactoryEntity, - getJsxFragmentFactoryEntity: getJsxFragmentFactoryEntity, - getAllAccessorDeclarations: function (accessor) { - accessor = getParseTreeNode(accessor, isGetOrSetAccessorDeclaration); - var otherKind = accessor.kind === 178 /* SetAccessor */ ? 177 /* GetAccessor */ : 178 /* SetAccessor */; - var otherAccessor = getDeclarationOfKind(getSymbolOfDeclaration(accessor), otherKind); - var firstAccessor = otherAccessor && otherAccessor.pos < accessor.pos ? otherAccessor : accessor; - var secondAccessor = otherAccessor && otherAccessor.pos < accessor.pos ? accessor : otherAccessor; - var setAccessor = accessor.kind === 178 /* SetAccessor */ ? accessor : otherAccessor; - var getAccessor = accessor.kind === 177 /* GetAccessor */ ? accessor : otherAccessor; - return { - firstAccessor: firstAccessor, - secondAccessor: secondAccessor, - setAccessor: setAccessor, - getAccessor: getAccessor - }; - }, - getSymbolOfExternalModuleSpecifier: function (moduleName) { return resolveExternalModuleNameWorker(moduleName, moduleName, - /*moduleNotFoundError*/ - void 0); }, - isBindingCapturedByNode: function (node, decl) { - var parseNode = getParseTreeNode(node); - var parseDecl = getParseTreeNode(decl); - return !!parseNode && !!parseDecl && (isVariableDeclaration(parseDecl) || isBindingElement(parseDecl)) && isBindingCapturedByNode(parseNode, parseDecl); - }, - getDeclarationStatementsForSourceFile: function (node, flags, tracker, bundled) { - var n = getParseTreeNode(node); - Debug.assert(n && n.kind === 312 /* SourceFile */, "Non-sourcefile node passed into getDeclarationsForSourceFile"); - var sym = getSymbolOfDeclaration(node); - if (!sym) { - return !node.locals ? [] : nodeBuilder.symbolTableToDeclarationStatements(node.locals, node, flags, tracker, bundled); - } - return !sym.exports ? [] : nodeBuilder.symbolTableToDeclarationStatements(sym.exports, node, flags, tracker, bundled); - }, - isImportRequiredByAugmentation: isImportRequiredByAugmentation - }; - function isImportRequiredByAugmentation(node) { - var e_427, _t, e_428, _u; - var file = getSourceFileOfNode(node); - if (!file.symbol) - return false; - var importTarget = getExternalModuleFileFromDeclaration(node); - if (!importTarget) - return false; - if (importTarget === file) - return false; - var exports = getExportsOfModule(file.symbol); - try { - for (var _v = __values(arrayFrom(exports.values())), _w = _v.next(); !_w.done; _w = _v.next()) { - var s = _w.value; - if (s.mergeId) { - var merged = getMergedSymbol(s); - if (merged.declarations) { - try { - for (var _x = (e_428 = void 0, __values(merged.declarations)), _y = _x.next(); !_y.done; _y = _x.next()) { - var d = _y.value; - var declFile = getSourceFileOfNode(d); - if (declFile === importTarget) { - return true; - } - } - } - catch (e_428_1) { e_428 = { error: e_428_1 }; } - finally { - try { - if (_y && !_y.done && (_u = _x.return)) _u.call(_x); - } - finally { if (e_428) throw e_428.error; } - } - } - } - } - } - catch (e_427_1) { e_427 = { error: e_427_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_427) throw e_427.error; } - } - return false; - } - function isInHeritageClause(node) { - return node.parent && node.parent.kind === 233 /* ExpressionWithTypeArguments */ && node.parent.parent && node.parent.parent.kind === 298 /* HeritageClause */; - } - function getTypeReferenceDirectivesForEntityName(node) { - if (!fileToDirective) { - return void 0; - } - var meaning; - if (node.parent.kind === 167 /* ComputedPropertyName */) { - meaning = 111551 /* Value */ | 1048576 /* ExportValue */; - } - else { - meaning = 788968 /* Type */ | 1920 /* Namespace */; - if (node.kind === 80 /* Identifier */ && isInTypeQuery(node) || node.kind === 211 /* PropertyAccessExpression */ && !isInHeritageClause(node)) { - meaning = 111551 /* Value */ | 1048576 /* ExportValue */; - } - } - var symbol = resolveEntityName(node, meaning, - /*ignoreErrors*/ - true); - return symbol && symbol !== unknownSymbol ? getTypeReferenceDirectivesForSymbol(symbol, meaning) : void 0; - } - function getTypeReferenceDirectivesForSymbol(symbol, meaning) { - var e_429, _t; - if (!fileToDirective || !isSymbolFromTypeDeclarationFile(symbol)) { - return void 0; - } - var typeReferenceDirectives; - try { - for (var _u = __values(symbol.declarations), _v = _u.next(); !_v.done; _v = _u.next()) { - var decl = _v.value; - if (decl.symbol && decl.symbol.flags & meaning) { - var file = getSourceFileOfNode(decl); - var typeReferenceDirective = fileToDirective.get(file.path); - if (typeReferenceDirective) { - (typeReferenceDirectives || (typeReferenceDirectives = [])).push(typeReferenceDirective); - } - else { - return void 0; - } - } - } - } - catch (e_429_1) { e_429 = { error: e_429_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_429) throw e_429.error; } - } - return typeReferenceDirectives; - } - function isSymbolFromTypeDeclarationFile(symbol) { - var e_430, _t; - if (!symbol.declarations) { - return false; - } - var current = symbol; - while (true) { - var parent2 = getParentOfSymbol(current); - if (parent2) { - current = parent2; - } - else { - break; - } - } - if (current.valueDeclaration && current.valueDeclaration.kind === 312 /* SourceFile */ && current.flags & 512 /* ValueModule */) { - return false; - } - try { - for (var _u = __values(symbol.declarations), _v = _u.next(); !_v.done; _v = _u.next()) { - var decl = _v.value; - var file = getSourceFileOfNode(decl); - if (fileToDirective.has(file.path)) { - return true; - } - } - } - catch (e_430_1) { e_430 = { error: e_430_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_430) throw e_430.error; } - } - return false; - } - function addReferencedFilesToTypeDirective(file, key, mode) { - var e_431, _t; - if (fileToDirective.has(file.path)) - return; - fileToDirective.set(file.path, [key, mode]); - try { - for (var _u = __values(file.referencedFiles), _v = _u.next(); !_v.done; _v = _u.next()) { - var _w = _v.value, fileName = _w.fileName, resolutionMode = _w.resolutionMode; - var resolvedFile = resolveTripleslashReference(fileName, file.fileName); - var referencedFile = host.getSourceFile(resolvedFile); - if (referencedFile) { - addReferencedFilesToTypeDirective(referencedFile, key, resolutionMode || file.impliedNodeFormat); - } - } - } - catch (e_431_1) { e_431 = { error: e_431_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_431) throw e_431.error; } - } - } - } - function getExternalModuleFileFromDeclaration(declaration) { - var specifier = declaration.kind === 267 /* ModuleDeclaration */ ? tryCast(declaration.name, isStringLiteral) : getExternalModuleName(declaration); - var moduleSymbol = resolveExternalModuleNameWorker(specifier, specifier, - /*moduleNotFoundError*/ - void 0); - if (!moduleSymbol) { - return void 0; - } - return getDeclarationOfKind(moduleSymbol, 312 /* SourceFile */); - } - function initializeTypeChecker() { - var e_432, _t, e_433, _u, e_434, _v, e_435, _w, e_436, _x, e_437, _y, e_438, _z; - try { - for (var _10 = __values(host.getSourceFiles()), _11 = _10.next(); !_11.done; _11 = _10.next()) { - var file = _11.value; - bindSourceFile(file, compilerOptions); - } - } - catch (e_432_1) { e_432 = { error: e_432_1 }; } - finally { - try { - if (_11 && !_11.done && (_t = _10.return)) _t.call(_10); - } - finally { if (e_432) throw e_432.error; } - } - amalgamatedDuplicates = /* @__PURE__ */ new Map(); - var augmentations; - try { - for (var _12 = __values(host.getSourceFiles()), _13 = _12.next(); !_13.done; _13 = _12.next()) { - var file = _13.value; - if (file.redirectInfo) { - continue; - } - if (!isExternalOrCommonJsModule(file)) { - var fileGlobalThisSymbol = file.locals.get("globalThis"); - if (fileGlobalThisSymbol == null ? void 0 : fileGlobalThisSymbol.declarations) { - try { - for (var _14 = (e_434 = void 0, __values(fileGlobalThisSymbol.declarations)), _15 = _14.next(); !_15.done; _15 = _14.next()) { - var declaration = _15.value; - diagnostics.add(createDiagnosticForNode(declaration, Diagnostics.Declaration_name_conflicts_with_built_in_global_identifier_0, "globalThis")); - } - } - catch (e_434_1) { e_434 = { error: e_434_1 }; } - finally { - try { - if (_15 && !_15.done && (_v = _14.return)) _v.call(_14); - } - finally { if (e_434) throw e_434.error; } - } - } - mergeSymbolTable(globals, file.locals); - } - if (file.jsGlobalAugmentations) { - mergeSymbolTable(globals, file.jsGlobalAugmentations); - } - if (file.patternAmbientModules && file.patternAmbientModules.length) { - patternAmbientModules = concatenate(patternAmbientModules, file.patternAmbientModules); - } - if (file.moduleAugmentations.length) { - (augmentations || (augmentations = [])).push(file.moduleAugmentations); - } - if (file.symbol && file.symbol.globalExports) { - var source = file.symbol.globalExports; - source.forEach(function (sourceSymbol, id) { - if (!globals.has(id)) { - globals.set(id, sourceSymbol); - } - }); - } - } - } - catch (e_433_1) { e_433 = { error: e_433_1 }; } - finally { - try { - if (_13 && !_13.done && (_u = _12.return)) _u.call(_12); - } - finally { if (e_433) throw e_433.error; } - } - if (augmentations) { - try { - for (var augmentations_1 = __values(augmentations), augmentations_1_1 = augmentations_1.next(); !augmentations_1_1.done; augmentations_1_1 = augmentations_1.next()) { - var list = augmentations_1_1.value; - try { - for (var list_1 = (e_436 = void 0, __values(list)), list_1_1 = list_1.next(); !list_1_1.done; list_1_1 = list_1.next()) { - var augmentation = list_1_1.value; - if (!isGlobalScopeAugmentation(augmentation.parent)) - continue; - mergeModuleAugmentation(augmentation); - } - } - catch (e_436_1) { e_436 = { error: e_436_1 }; } - finally { - try { - if (list_1_1 && !list_1_1.done && (_x = list_1.return)) _x.call(list_1); - } - finally { if (e_436) throw e_436.error; } - } - } - } - catch (e_435_1) { e_435 = { error: e_435_1 }; } - finally { - try { - if (augmentations_1_1 && !augmentations_1_1.done && (_w = augmentations_1.return)) _w.call(augmentations_1); - } - finally { if (e_435) throw e_435.error; } - } - } - addToSymbolTable(globals, builtinGlobals, Diagnostics.Declaration_name_conflicts_with_built_in_global_identifier_0); - getSymbolLinks(undefinedSymbol).type = undefinedWideningType; - getSymbolLinks(argumentsSymbol).type = getGlobalType("IArguments", - /*arity*/ - 0, - /*reportErrors*/ - true); - getSymbolLinks(unknownSymbol).type = errorType; - getSymbolLinks(globalThisSymbol).type = createObjectType(16 /* Anonymous */, globalThisSymbol); - globalArrayType = getGlobalType("Array", - /*arity*/ - 1, - /*reportErrors*/ - true); - globalObjectType = getGlobalType("Object", - /*arity*/ - 0, - /*reportErrors*/ - true); - globalFunctionType = getGlobalType("Function", - /*arity*/ - 0, - /*reportErrors*/ - true); - globalCallableFunctionType = strictBindCallApply && getGlobalType("CallableFunction", - /*arity*/ - 0, - /*reportErrors*/ - true) || globalFunctionType; - globalNewableFunctionType = strictBindCallApply && getGlobalType("NewableFunction", - /*arity*/ - 0, - /*reportErrors*/ - true) || globalFunctionType; - globalStringType = getGlobalType("String", - /*arity*/ - 0, - /*reportErrors*/ - true); - globalNumberType = getGlobalType("Number", - /*arity*/ - 0, - /*reportErrors*/ - true); - globalBooleanType = getGlobalType("Boolean", - /*arity*/ - 0, - /*reportErrors*/ - true); - globalRegExpType = getGlobalType("RegExp", - /*arity*/ - 0, - /*reportErrors*/ - true); - anyArrayType = createArrayType(anyType); - autoArrayType = createArrayType(autoType); - if (autoArrayType === emptyObjectType) { - autoArrayType = createAnonymousType( - /*symbol*/ - void 0, emptySymbols, emptyArray, emptyArray, emptyArray); - } - globalReadonlyArrayType = getGlobalTypeOrUndefined("ReadonlyArray", - /*arity*/ - 1) || globalArrayType; - anyReadonlyArrayType = globalReadonlyArrayType ? createTypeFromGenericGlobalType(globalReadonlyArrayType, [anyType]) : anyArrayType; - globalThisType = getGlobalTypeOrUndefined("ThisType", - /*arity*/ - 1); - if (augmentations) { - try { - for (var augmentations_2 = __values(augmentations), augmentations_2_1 = augmentations_2.next(); !augmentations_2_1.done; augmentations_2_1 = augmentations_2.next()) { - var list = augmentations_2_1.value; - try { - for (var list_2 = (e_438 = void 0, __values(list)), list_2_1 = list_2.next(); !list_2_1.done; list_2_1 = list_2.next()) { - var augmentation = list_2_1.value; - if (isGlobalScopeAugmentation(augmentation.parent)) - continue; - mergeModuleAugmentation(augmentation); - } - } - catch (e_438_1) { e_438 = { error: e_438_1 }; } - finally { - try { - if (list_2_1 && !list_2_1.done && (_z = list_2.return)) _z.call(list_2); - } - finally { if (e_438) throw e_438.error; } - } - } - } - catch (e_437_1) { e_437 = { error: e_437_1 }; } - finally { - try { - if (augmentations_2_1 && !augmentations_2_1.done && (_y = augmentations_2.return)) _y.call(augmentations_2); - } - finally { if (e_437) throw e_437.error; } - } - } - amalgamatedDuplicates.forEach(function (_t) { - var firstFile = _t.firstFile, secondFile = _t.secondFile, conflictingSymbols = _t.conflictingSymbols; - if (conflictingSymbols.size < 8) { - conflictingSymbols.forEach(function (_t, symbolName2) { - var e_439, _u, e_440, _v; - var isBlockScoped = _t.isBlockScoped, firstFileLocations = _t.firstFileLocations, secondFileLocations = _t.secondFileLocations; - var message = isBlockScoped ? Diagnostics.Cannot_redeclare_block_scoped_variable_0 : Diagnostics.Duplicate_identifier_0; - try { - for (var firstFileLocations_1 = __values(firstFileLocations), firstFileLocations_1_1 = firstFileLocations_1.next(); !firstFileLocations_1_1.done; firstFileLocations_1_1 = firstFileLocations_1.next()) { - var node = firstFileLocations_1_1.value; - addDuplicateDeclarationError(node, message, symbolName2, secondFileLocations); - } - } - catch (e_439_1) { e_439 = { error: e_439_1 }; } - finally { - try { - if (firstFileLocations_1_1 && !firstFileLocations_1_1.done && (_u = firstFileLocations_1.return)) _u.call(firstFileLocations_1); - } - finally { if (e_439) throw e_439.error; } - } - try { - for (var secondFileLocations_1 = __values(secondFileLocations), secondFileLocations_1_1 = secondFileLocations_1.next(); !secondFileLocations_1_1.done; secondFileLocations_1_1 = secondFileLocations_1.next()) { - var node = secondFileLocations_1_1.value; - addDuplicateDeclarationError(node, message, symbolName2, firstFileLocations); - } - } - catch (e_440_1) { e_440 = { error: e_440_1 }; } - finally { - try { - if (secondFileLocations_1_1 && !secondFileLocations_1_1.done && (_v = secondFileLocations_1.return)) _v.call(secondFileLocations_1); - } - finally { if (e_440) throw e_440.error; } - } - }); - } - else { - var list = arrayFrom(conflictingSymbols.keys()).join(", "); - diagnostics.add(addRelatedInfo(createDiagnosticForNode(firstFile, Diagnostics.Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0, list), createDiagnosticForNode(secondFile, Diagnostics.Conflicts_are_in_this_file))); - diagnostics.add(addRelatedInfo(createDiagnosticForNode(secondFile, Diagnostics.Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0, list), createDiagnosticForNode(firstFile, Diagnostics.Conflicts_are_in_this_file))); - } - }); - amalgamatedDuplicates = void 0; - } - function checkExternalEmitHelpers(location, helpers) { - var e_441, _t; - if ((requestedExternalEmitHelpers & helpers) !== helpers && compilerOptions.importHelpers) { - var sourceFile = getSourceFileOfNode(location); - if (isEffectiveExternalModule(sourceFile, compilerOptions) && !(location.flags & 33554432 /* Ambient */)) { - var helpersModule = resolveHelpersModule(sourceFile, location); - if (helpersModule !== unknownSymbol) { - var uncheckedHelpers = helpers & ~requestedExternalEmitHelpers; - for (var helper = 1 /* FirstEmitHelper */; helper <= 33554432 /* LastEmitHelper */; helper <<= 1) { - if (uncheckedHelpers & helper) { - try { - for (var _u = (e_441 = void 0, __values(getHelperNames(helper))), _v = _u.next(); !_v.done; _v = _u.next()) { - var name_69 = _v.value; - if (requestedExternalEmitHelperNames.has(name_69)) - continue; - requestedExternalEmitHelperNames.add(name_69); - var symbol = resolveSymbol(getSymbol2(getExportsOfModule(helpersModule), escapeLeadingUnderscores(name_69), 111551 /* Value */)); - if (!symbol) { - error2(location, Diagnostics.This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_version_of_0, externalHelpersModuleNameText, name_69); - } - else if (helper & 524288 /* ClassPrivateFieldGet */) { - if (!some(getSignaturesOfSymbol(symbol), function (signature) { return getParameterCount(signature) > 3; })) { - error2(location, Diagnostics.This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_one_in_0_Consider_upgrading_your_version_of_0, externalHelpersModuleNameText, name_69, 4); - } - } - else if (helper & 1048576 /* ClassPrivateFieldSet */) { - if (!some(getSignaturesOfSymbol(symbol), function (signature) { return getParameterCount(signature) > 4; })) { - error2(location, Diagnostics.This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_one_in_0_Consider_upgrading_your_version_of_0, externalHelpersModuleNameText, name_69, 5); - } - } - else if (helper & 1024 /* SpreadArray */) { - if (!some(getSignaturesOfSymbol(symbol), function (signature) { return getParameterCount(signature) > 2; })) { - error2(location, Diagnostics.This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_one_in_0_Consider_upgrading_your_version_of_0, externalHelpersModuleNameText, name_69, 3); - } - } - } - } - catch (e_441_1) { e_441 = { error: e_441_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_441) throw e_441.error; } - } - } - } - } - requestedExternalEmitHelpers |= helpers; - } - } - } - function getHelperNames(helper) { - switch (helper) { - case 1 /* Extends */: - return ["__extends"]; - case 2 /* Assign */: - return ["__assign"]; - case 4 /* Rest */: - return ["__rest"]; - case 8 /* Decorate */: - return legacyDecorators ? ["__decorate"] : ["__esDecorate", "__runInitializers"]; - case 16 /* Metadata */: - return ["__metadata"]; - case 32 /* Param */: - return ["__param"]; - case 64 /* Awaiter */: - return ["__awaiter"]; - case 128 /* Generator */: - return ["__generator"]; - case 256 /* Values */: - return ["__values"]; - case 512 /* Read */: - return ["__read"]; - case 1024 /* SpreadArray */: - return ["__spreadArray"]; - case 2048 /* Await */: - return ["__await"]; - case 4096 /* AsyncGenerator */: - return ["__asyncGenerator"]; - case 8192 /* AsyncDelegator */: - return ["__asyncDelegator"]; - case 16384 /* AsyncValues */: - return ["__asyncValues"]; - case 32768 /* ExportStar */: - return ["__exportStar"]; - case 65536 /* ImportStar */: - return ["__importStar"]; - case 131072 /* ImportDefault */: - return ["__importDefault"]; - case 262144 /* MakeTemplateObject */: - return ["__makeTemplateObject"]; - case 524288 /* ClassPrivateFieldGet */: - return ["__classPrivateFieldGet"]; - case 1048576 /* ClassPrivateFieldSet */: - return ["__classPrivateFieldSet"]; - case 2097152 /* ClassPrivateFieldIn */: - return ["__classPrivateFieldIn"]; - case 4194304 /* CreateBinding */: - return ["__createBinding"]; - case 8388608 /* SetFunctionName */: - return ["__setFunctionName"]; - case 16777216 /* PropKey */: - return ["__propKey"]; - case 33554432 /* AddDisposableResourceAndDisposeResources */: - return ["__addDisposableResource", "__disposeResources"]; - default: - return Debug.fail("Unrecognized helper"); - } - } - function resolveHelpersModule(node, errorNode) { - if (!externalHelpersModule) { - externalHelpersModule = resolveExternalModule(node, externalHelpersModuleNameText, Diagnostics.This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found, errorNode) || unknownSymbol; - } - return externalHelpersModule; - } - function checkGrammarModifiers(node) { - var e_442, _t; - var quickResult = reportObviousDecoratorErrors(node) || reportObviousModifierErrors(node); - if (quickResult !== void 0) { - return quickResult; - } - if (isParameter(node) && parameterIsThisKeyword(node)) { - return grammarErrorOnFirstToken(node, Diagnostics.Neither_decorators_nor_modifiers_may_be_applied_to_this_parameters); - } - var blockScopeKind = isVariableStatement(node) ? node.declarationList.flags & 7 /* BlockScoped */ : 0 /* None */; - var lastStatic, lastDeclare, lastAsync, lastOverride, firstDecorator; - var flags = 0 /* None */; - var sawExportBeforeDecorators = false; - var hasLeadingDecorators = false; - try { - for (var _u = __values(node.modifiers), _v = _u.next(); !_v.done; _v = _u.next()) { - var modifier = _v.value; - if (isDecorator(modifier)) { - if (!nodeCanBeDecorated(legacyDecorators, node, node.parent, node.parent.parent)) { - if (node.kind === 174 /* MethodDeclaration */ && !nodeIsPresent(node.body)) { - return grammarErrorOnFirstToken(node, Diagnostics.A_decorator_can_only_decorate_a_method_implementation_not_an_overload); - } - else { - return grammarErrorOnFirstToken(node, Diagnostics.Decorators_are_not_valid_here); - } - } - else if (legacyDecorators && (node.kind === 177 /* GetAccessor */ || node.kind === 178 /* SetAccessor */)) { - var accessors = getAllAccessorDeclarations(node.parent.members, node); - if (hasDecorators(accessors.firstAccessor) && node === accessors.secondAccessor) { - return grammarErrorOnFirstToken(node, Diagnostics.Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name); - } - } - if (flags & ~(1025 /* ExportDefault */ | 131072 /* Decorator */)) { - return grammarErrorOnNode(modifier, Diagnostics.Decorators_are_not_valid_here); - } - if (hasLeadingDecorators && flags & 126975 /* Modifier */) { - Debug.assertIsDefined(firstDecorator); - var sourceFile = getSourceFileOfNode(modifier); - if (!hasParseDiagnostics(sourceFile)) { - addRelatedInfo(error2(modifier, Diagnostics.Decorators_may_not_appear_after_export_or_export_default_if_they_also_appear_before_export), createDiagnosticForNode(firstDecorator, Diagnostics.Decorator_used_before_export_here)); - return true; - } - return false; - } - flags |= 131072 /* Decorator */; - if (!(flags & 126975 /* Modifier */)) { - hasLeadingDecorators = true; - } - else if (flags & 1 /* Export */) { - sawExportBeforeDecorators = true; - } - firstDecorator !== null && firstDecorator !== void 0 ? firstDecorator : (firstDecorator = modifier); - } - else { - if (modifier.kind !== 148 /* ReadonlyKeyword */) { - if (node.kind === 171 /* PropertySignature */ || node.kind === 173 /* MethodSignature */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_a_type_member, tokenToString(modifier.kind)); - } - if (node.kind === 181 /* IndexSignature */ && (modifier.kind !== 126 /* StaticKeyword */ || !isClassLike(node.parent))) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_an_index_signature, tokenToString(modifier.kind)); - } - } - if (modifier.kind !== 103 /* InKeyword */ && modifier.kind !== 147 /* OutKeyword */ && modifier.kind !== 87 /* ConstKeyword */) { - if (node.kind === 168 /* TypeParameter */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_a_type_parameter, tokenToString(modifier.kind)); - } - } - switch (modifier.kind) { - case 87 /* ConstKeyword */: - if (node.kind !== 266 /* EnumDeclaration */ && node.kind !== 168 /* TypeParameter */) { - return grammarErrorOnNode(node, Diagnostics.A_class_member_cannot_have_the_0_keyword, tokenToString(87 /* ConstKeyword */)); - } - var parent2 = node.parent; - if (node.kind === 168 /* TypeParameter */ && !(isFunctionLikeDeclaration(parent2) || isClassLike(parent2) || isFunctionTypeNode(parent2) || isConstructorTypeNode(parent2) || isCallSignatureDeclaration(parent2) || isConstructSignatureDeclaration(parent2) || isMethodSignature(parent2))) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_can_only_appear_on_a_type_parameter_of_a_function_method_or_class, tokenToString(modifier.kind)); - } - break; - case 164 /* OverrideKeyword */: - if (flags & 16384 /* Override */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_already_seen, "override"); - } - else if (flags & 2 /* Ambient */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_with_1_modifier, "override", "declare"); - } - else if (flags & 64 /* Readonly */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, "override", "readonly"); - } - else if (flags & 128 /* Accessor */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, "override", "accessor"); - } - else if (flags & 512 /* Async */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, "override", "async"); - } - flags |= 16384 /* Override */; - lastOverride = modifier; - break; - case 125 /* PublicKeyword */: - case 124 /* ProtectedKeyword */: - case 123 /* PrivateKeyword */: - var text = visibilityToString(modifierToFlag(modifier.kind)); - if (flags & 28 /* AccessibilityModifier */) { - return grammarErrorOnNode(modifier, Diagnostics.Accessibility_modifier_already_seen); - } - else if (flags & 16384 /* Override */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, text, "override"); - } - else if (flags & 32 /* Static */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, text, "static"); - } - else if (flags & 128 /* Accessor */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, text, "accessor"); - } - else if (flags & 64 /* Readonly */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, text, "readonly"); - } - else if (flags & 512 /* Async */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, text, "async"); - } - else if (node.parent.kind === 268 /* ModuleBlock */ || node.parent.kind === 312 /* SourceFile */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_a_module_or_namespace_element, text); - } - else if (flags & 256 /* Abstract */) { - if (modifier.kind === 123 /* PrivateKeyword */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_with_1_modifier, text, "abstract"); - } - else { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, text, "abstract"); - } - } - else if (isPrivateIdentifierClassElementDeclaration(node)) { - return grammarErrorOnNode(modifier, Diagnostics.An_accessibility_modifier_cannot_be_used_with_a_private_identifier); - } - flags |= modifierToFlag(modifier.kind); - break; - case 126 /* StaticKeyword */: - if (flags & 32 /* Static */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_already_seen, "static"); - } - else if (flags & 64 /* Readonly */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, "static", "readonly"); - } - else if (flags & 512 /* Async */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, "static", "async"); - } - else if (flags & 128 /* Accessor */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, "static", "accessor"); - } - else if (node.parent.kind === 268 /* ModuleBlock */ || node.parent.kind === 312 /* SourceFile */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_a_module_or_namespace_element, "static"); - } - else if (node.kind === 169 /* Parameter */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_a_parameter, "static"); - } - else if (flags & 256 /* Abstract */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_with_1_modifier, "static", "abstract"); - } - else if (flags & 16384 /* Override */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, "static", "override"); - } - flags |= 32 /* Static */; - lastStatic = modifier; - break; - case 129 /* AccessorKeyword */: - if (flags & 128 /* Accessor */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_already_seen, "accessor"); - } - else if (flags & 64 /* Readonly */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_with_1_modifier, "accessor", "readonly"); - } - else if (flags & 2 /* Ambient */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_with_1_modifier, "accessor", "declare"); - } - else if (node.kind !== 172 /* PropertyDeclaration */) { - return grammarErrorOnNode(modifier, Diagnostics.accessor_modifier_can_only_appear_on_a_property_declaration); - } - flags |= 128 /* Accessor */; - break; - case 148 /* ReadonlyKeyword */: - if (flags & 64 /* Readonly */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_already_seen, "readonly"); - } - else if (node.kind !== 172 /* PropertyDeclaration */ && node.kind !== 171 /* PropertySignature */ && node.kind !== 181 /* IndexSignature */ && node.kind !== 169 /* Parameter */) { - return grammarErrorOnNode(modifier, Diagnostics.readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature); - } - else if (flags & 128 /* Accessor */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_with_1_modifier, "readonly", "accessor"); - } - flags |= 64 /* Readonly */; - break; - case 95 /* ExportKeyword */: - if (compilerOptions.verbatimModuleSyntax && !(node.flags & 33554432 /* Ambient */) && node.kind !== 265 /* TypeAliasDeclaration */ && node.kind !== 264 /* InterfaceDeclaration */ && // ModuleDeclaration needs to be checked that it is uninstantiated later - node.kind !== 267 /* ModuleDeclaration */ && node.parent.kind === 312 /* SourceFile */ && (moduleKind === 1 /* CommonJS */ || getSourceFileOfNode(node).impliedNodeFormat === 1 /* CommonJS */)) { - return grammarErrorOnNode(modifier, Diagnostics.A_top_level_export_modifier_cannot_be_used_on_value_declarations_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled); - } - if (flags & 1 /* Export */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_already_seen, "export"); - } - else if (flags & 2 /* Ambient */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, "export", "declare"); - } - else if (flags & 256 /* Abstract */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, "export", "abstract"); - } - else if (flags & 512 /* Async */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, "export", "async"); - } - else if (isClassLike(node.parent)) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_class_elements_of_this_kind, "export"); - } - else if (node.kind === 169 /* Parameter */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_a_parameter, "export"); - } - else if (blockScopeKind === 4 /* Using */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_a_using_declaration, "export"); - } - else if (blockScopeKind === 6 /* AwaitUsing */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_an_await_using_declaration, "export"); - } - flags |= 1 /* Export */; - break; - case 90 /* DefaultKeyword */: - var container = node.parent.kind === 312 /* SourceFile */ ? node.parent : node.parent.parent; - if (container.kind === 267 /* ModuleDeclaration */ && !isAmbientModule(container)) { - return grammarErrorOnNode(modifier, Diagnostics.A_default_export_can_only_be_used_in_an_ECMAScript_style_module); - } - else if (blockScopeKind === 4 /* Using */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_a_using_declaration, "default"); - } - else if (blockScopeKind === 6 /* AwaitUsing */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_an_await_using_declaration, "default"); - } - else if (!(flags & 1 /* Export */)) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, "export", "default"); - } - else if (sawExportBeforeDecorators) { - return grammarErrorOnNode(firstDecorator, Diagnostics.Decorators_are_not_valid_here); - } - flags |= 1024 /* Default */; - break; - case 138 /* DeclareKeyword */: - if (flags & 2 /* Ambient */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_already_seen, "declare"); - } - else if (flags & 512 /* Async */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_in_an_ambient_context, "async"); - } - else if (flags & 16384 /* Override */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_in_an_ambient_context, "override"); - } - else if (isClassLike(node.parent) && !isPropertyDeclaration(node)) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_class_elements_of_this_kind, "declare"); - } - else if (node.kind === 169 /* Parameter */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_a_parameter, "declare"); - } - else if (blockScopeKind === 4 /* Using */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_a_using_declaration, "declare"); - } - else if (blockScopeKind === 6 /* AwaitUsing */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_an_await_using_declaration, "declare"); - } - else if (node.parent.flags & 33554432 /* Ambient */ && node.parent.kind === 268 /* ModuleBlock */) { - return grammarErrorOnNode(modifier, Diagnostics.A_declare_modifier_cannot_be_used_in_an_already_ambient_context); - } - else if (isPrivateIdentifierClassElementDeclaration(node)) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_with_a_private_identifier, "declare"); - } - else if (flags & 128 /* Accessor */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_with_1_modifier, "declare", "accessor"); - } - flags |= 2 /* Ambient */; - lastDeclare = modifier; - break; - case 128 /* AbstractKeyword */: - if (flags & 256 /* Abstract */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_already_seen, "abstract"); - } - if (node.kind !== 263 /* ClassDeclaration */ && node.kind !== 185 /* ConstructorType */) { - if (node.kind !== 174 /* MethodDeclaration */ && node.kind !== 172 /* PropertyDeclaration */ && node.kind !== 177 /* GetAccessor */ && node.kind !== 178 /* SetAccessor */) { - return grammarErrorOnNode(modifier, Diagnostics.abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration); - } - if (!(node.parent.kind === 263 /* ClassDeclaration */ && hasSyntacticModifier(node.parent, 256 /* Abstract */))) { - var message = node.kind === 172 /* PropertyDeclaration */ ? Diagnostics.Abstract_properties_can_only_appear_within_an_abstract_class : Diagnostics.Abstract_methods_can_only_appear_within_an_abstract_class; - return grammarErrorOnNode(modifier, message); - } - if (flags & 32 /* Static */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_with_1_modifier, "static", "abstract"); - } - if (flags & 8 /* Private */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_with_1_modifier, "private", "abstract"); - } - if (flags & 512 /* Async */ && lastAsync) { - return grammarErrorOnNode(lastAsync, Diagnostics._0_modifier_cannot_be_used_with_1_modifier, "async", "abstract"); - } - if (flags & 16384 /* Override */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, "abstract", "override"); - } - if (flags & 128 /* Accessor */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, "abstract", "accessor"); - } - } - if (isNamedDeclaration(node) && node.name.kind === 81 /* PrivateIdentifier */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_with_a_private_identifier, "abstract"); - } - flags |= 256 /* Abstract */; - break; - case 134 /* AsyncKeyword */: - if (flags & 512 /* Async */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_already_seen, "async"); - } - else if (flags & 2 /* Ambient */ || node.parent.flags & 33554432 /* Ambient */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_in_an_ambient_context, "async"); - } - else if (node.kind === 169 /* Parameter */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_a_parameter, "async"); - } - if (flags & 256 /* Abstract */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_with_1_modifier, "async", "abstract"); - } - flags |= 512 /* Async */; - lastAsync = modifier; - break; - case 103 /* InKeyword */: - case 147 /* OutKeyword */: - var inOutFlag = modifier.kind === 103 /* InKeyword */ ? 32768 /* In */ : 65536 /* Out */; - var inOutText = modifier.kind === 103 /* InKeyword */ ? "in" : "out"; - if (node.kind !== 168 /* TypeParameter */ || !(isInterfaceDeclaration(node.parent) || isClassLike(node.parent) || isTypeAliasDeclaration(node.parent))) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_can_only_appear_on_a_type_parameter_of_a_class_interface_or_type_alias, inOutText); - } - if (flags & inOutFlag) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_already_seen, inOutText); - } - if (inOutFlag & 32768 /* In */ && flags & 65536 /* Out */) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, "in", "out"); - } - flags |= inOutFlag; - break; - } - } - } - } - catch (e_442_1) { e_442 = { error: e_442_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_442) throw e_442.error; } - } - if (node.kind === 176 /* Constructor */) { - if (flags & 32 /* Static */) { - return grammarErrorOnNode(lastStatic, Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration, "static"); - } - if (flags & 16384 /* Override */) { - return grammarErrorOnNode(lastOverride, Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration, "override"); - } - if (flags & 512 /* Async */) { - return grammarErrorOnNode(lastAsync, Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration, "async"); - } - return false; - } - else if ((node.kind === 272 /* ImportDeclaration */ || node.kind === 271 /* ImportEqualsDeclaration */) && flags & 2 /* Ambient */) { - return grammarErrorOnNode(lastDeclare, Diagnostics.A_0_modifier_cannot_be_used_with_an_import_declaration, "declare"); - } - else if (node.kind === 169 /* Parameter */ && flags & 16476 /* ParameterPropertyModifier */ && isBindingPattern(node.name)) { - return grammarErrorOnNode(node, Diagnostics.A_parameter_property_may_not_be_declared_using_a_binding_pattern); - } - else if (node.kind === 169 /* Parameter */ && flags & 16476 /* ParameterPropertyModifier */ && node.dotDotDotToken) { - return grammarErrorOnNode(node, Diagnostics.A_parameter_property_cannot_be_declared_using_a_rest_parameter); - } - if (flags & 512 /* Async */) { - return checkGrammarAsyncModifier(node, lastAsync); - } - return false; - } - function reportObviousModifierErrors(node) { - if (!node.modifiers) - return false; - var modifier = findFirstIllegalModifier(node); - return modifier && grammarErrorOnFirstToken(modifier, Diagnostics.Modifiers_cannot_appear_here); - } - function findFirstModifierExcept(node, allowedModifier) { - var modifier = find(node.modifiers, isModifier); - return modifier && modifier.kind !== allowedModifier ? modifier : void 0; - } - function findFirstIllegalModifier(node) { - switch (node.kind) { - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - case 176 /* Constructor */: - case 172 /* PropertyDeclaration */: - case 171 /* PropertySignature */: - case 174 /* MethodDeclaration */: - case 173 /* MethodSignature */: - case 181 /* IndexSignature */: - case 267 /* ModuleDeclaration */: - case 272 /* ImportDeclaration */: - case 271 /* ImportEqualsDeclaration */: - case 278 /* ExportDeclaration */: - case 277 /* ExportAssignment */: - case 218 /* FunctionExpression */: - case 219 /* ArrowFunction */: - case 169 /* Parameter */: - case 168 /* TypeParameter */: - return void 0; - case 175 /* ClassStaticBlockDeclaration */: - case 303 /* PropertyAssignment */: - case 304 /* ShorthandPropertyAssignment */: - case 270 /* NamespaceExportDeclaration */: - case 282 /* MissingDeclaration */: - return find(node.modifiers, isModifier); - default: - if (node.parent.kind === 268 /* ModuleBlock */ || node.parent.kind === 312 /* SourceFile */) { - return void 0; - } - switch (node.kind) { - case 262 /* FunctionDeclaration */: - return findFirstModifierExcept(node, 134 /* AsyncKeyword */); - case 263 /* ClassDeclaration */: - case 185 /* ConstructorType */: - return findFirstModifierExcept(node, 128 /* AbstractKeyword */); - case 231 /* ClassExpression */: - case 264 /* InterfaceDeclaration */: - case 265 /* TypeAliasDeclaration */: - return find(node.modifiers, isModifier); - case 243 /* VariableStatement */: - return node.declarationList.flags & 4 /* Using */ ? findFirstModifierExcept(node, 135 /* AwaitKeyword */) : find(node.modifiers, isModifier); - case 266 /* EnumDeclaration */: - return findFirstModifierExcept(node, 87 /* ConstKeyword */); - default: - Debug.assertNever(node); - } - } - } - function reportObviousDecoratorErrors(node) { - var decorator = findFirstIllegalDecorator(node); - return decorator && grammarErrorOnFirstToken(decorator, Diagnostics.Decorators_are_not_valid_here); - } - function findFirstIllegalDecorator(node) { - return canHaveIllegalDecorators(node) ? find(node.modifiers, isDecorator) : void 0; - } - function checkGrammarAsyncModifier(node, asyncModifier) { - switch (node.kind) { - case 174 /* MethodDeclaration */: - case 262 /* FunctionDeclaration */: - case 218 /* FunctionExpression */: - case 219 /* ArrowFunction */: - return false; - } - return grammarErrorOnNode(asyncModifier, Diagnostics._0_modifier_cannot_be_used_here, "async"); - } - function checkGrammarForDisallowedTrailingComma(list, diag2) { - if (diag2 === void 0) { diag2 = Diagnostics.Trailing_comma_not_allowed; } - if (list && list.hasTrailingComma) { - return grammarErrorAtPos(list[0], list.end - ",".length, ",".length, diag2); - } - return false; - } - function checkGrammarTypeParameterList(typeParameters, file) { - if (typeParameters && typeParameters.length === 0) { - var start2 = typeParameters.pos - "<".length; - var end = skipTrivia(file.text, typeParameters.end) + ">".length; - return grammarErrorAtPos(file, start2, end - start2, Diagnostics.Type_parameter_list_cannot_be_empty); - } - return false; - } - function checkGrammarParameterList(parameters) { - var seenOptionalParameter = false; - var parameterCount = parameters.length; - for (var i = 0; i < parameterCount; i++) { - var parameter = parameters[i]; - if (parameter.dotDotDotToken) { - if (i !== parameterCount - 1) { - return grammarErrorOnNode(parameter.dotDotDotToken, Diagnostics.A_rest_parameter_must_be_last_in_a_parameter_list); - } - if (!(parameter.flags & 33554432 /* Ambient */)) { - checkGrammarForDisallowedTrailingComma(parameters, Diagnostics.A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma); - } - if (parameter.questionToken) { - return grammarErrorOnNode(parameter.questionToken, Diagnostics.A_rest_parameter_cannot_be_optional); - } - if (parameter.initializer) { - return grammarErrorOnNode(parameter.name, Diagnostics.A_rest_parameter_cannot_have_an_initializer); - } - } - else if (isOptionalParameter(parameter)) { - seenOptionalParameter = true; - if (parameter.questionToken && parameter.initializer) { - return grammarErrorOnNode(parameter.name, Diagnostics.Parameter_cannot_have_question_mark_and_initializer); - } - } - else if (seenOptionalParameter && !parameter.initializer) { - return grammarErrorOnNode(parameter.name, Diagnostics.A_required_parameter_cannot_follow_an_optional_parameter); - } - } - } - function getNonSimpleParameters(parameters) { - return filter(parameters, function (parameter) { return !!parameter.initializer || isBindingPattern(parameter.name) || isRestParameter(parameter); }); - } - function checkGrammarForUseStrictSimpleParameterList(node) { - if (languageVersion >= 3 /* ES2016 */) { - var useStrictDirective_1 = node.body && isBlock(node.body) && findUseStrictPrologue(node.body.statements); - if (useStrictDirective_1) { - var nonSimpleParameters = getNonSimpleParameters(node.parameters); - if (length(nonSimpleParameters)) { - forEach(nonSimpleParameters, function (parameter) { - addRelatedInfo(error2(parameter, Diagnostics.This_parameter_is_not_allowed_with_use_strict_directive), createDiagnosticForNode(useStrictDirective_1, Diagnostics.use_strict_directive_used_here)); - }); - var diagnostics2 = nonSimpleParameters.map(function (parameter, index) { return index === 0 ? createDiagnosticForNode(parameter, Diagnostics.Non_simple_parameter_declared_here) : createDiagnosticForNode(parameter, Diagnostics.and_here); }); - addRelatedInfo.apply(void 0, __spreadArray([error2(useStrictDirective_1, Diagnostics.use_strict_directive_cannot_be_used_with_non_simple_parameter_list)], __read(diagnostics2), false)); - return true; - } - } - } - return false; - } - function checkGrammarFunctionLikeDeclaration(node) { - var file = getSourceFileOfNode(node); - return checkGrammarModifiers(node) || checkGrammarTypeParameterList(node.typeParameters, file) || checkGrammarParameterList(node.parameters) || checkGrammarArrowFunction(node, file) || isFunctionLikeDeclaration(node) && checkGrammarForUseStrictSimpleParameterList(node); - } - function checkGrammarClassLikeDeclaration(node) { - var file = getSourceFileOfNode(node); - return checkGrammarClassDeclarationHeritageClauses(node) || checkGrammarTypeParameterList(node.typeParameters, file); - } - function checkGrammarArrowFunction(node, file) { - if (!isArrowFunction(node)) { - return false; - } - if (node.typeParameters && !(length(node.typeParameters) > 1 || node.typeParameters.hasTrailingComma || node.typeParameters[0].constraint)) { - if (file && fileExtensionIsOneOf(file.fileName, [".mts" /* Mts */, ".cts" /* Cts */])) { - grammarErrorOnNode(node.typeParameters[0], Diagnostics.This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Add_a_trailing_comma_or_explicit_constraint); - } - } - var equalsGreaterThanToken = node.equalsGreaterThanToken; - var startLine = getLineAndCharacterOfPosition(file, equalsGreaterThanToken.pos).line; - var endLine = getLineAndCharacterOfPosition(file, equalsGreaterThanToken.end).line; - return startLine !== endLine && grammarErrorOnNode(equalsGreaterThanToken, Diagnostics.Line_terminator_not_permitted_before_arrow); - } - function checkGrammarIndexSignatureParameters(node) { - var parameter = node.parameters[0]; - if (node.parameters.length !== 1) { - if (parameter) { - return grammarErrorOnNode(parameter.name, Diagnostics.An_index_signature_must_have_exactly_one_parameter); - } - else { - return grammarErrorOnNode(node, Diagnostics.An_index_signature_must_have_exactly_one_parameter); - } - } - checkGrammarForDisallowedTrailingComma(node.parameters, Diagnostics.An_index_signature_cannot_have_a_trailing_comma); - if (parameter.dotDotDotToken) { - return grammarErrorOnNode(parameter.dotDotDotToken, Diagnostics.An_index_signature_cannot_have_a_rest_parameter); - } - if (hasEffectiveModifiers(parameter)) { - return grammarErrorOnNode(parameter.name, Diagnostics.An_index_signature_parameter_cannot_have_an_accessibility_modifier); - } - if (parameter.questionToken) { - return grammarErrorOnNode(parameter.questionToken, Diagnostics.An_index_signature_parameter_cannot_have_a_question_mark); - } - if (parameter.initializer) { - return grammarErrorOnNode(parameter.name, Diagnostics.An_index_signature_parameter_cannot_have_an_initializer); - } - if (!parameter.type) { - return grammarErrorOnNode(parameter.name, Diagnostics.An_index_signature_parameter_must_have_a_type_annotation); - } - var type = getTypeFromTypeNode(parameter.type); - if (someType(type, function (t) { return !!(t.flags & 8576 /* StringOrNumberLiteralOrUnique */); }) || isGenericType(type)) { - return grammarErrorOnNode(parameter.name, Diagnostics.An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_object_type_instead); - } - if (!everyType(type, isValidIndexKeyType)) { - return grammarErrorOnNode(parameter.name, Diagnostics.An_index_signature_parameter_type_must_be_string_number_symbol_or_a_template_literal_type); - } - if (!node.type) { - return grammarErrorOnNode(node, Diagnostics.An_index_signature_must_have_a_type_annotation); - } - return false; - } - function checkGrammarIndexSignature(node) { - return checkGrammarModifiers(node) || checkGrammarIndexSignatureParameters(node); - } - function checkGrammarForAtLeastOneTypeArgument(node, typeArguments) { - if (typeArguments && typeArguments.length === 0) { - var sourceFile = getSourceFileOfNode(node); - var start2 = typeArguments.pos - "<".length; - var end = skipTrivia(sourceFile.text, typeArguments.end) + ">".length; - return grammarErrorAtPos(sourceFile, start2, end - start2, Diagnostics.Type_argument_list_cannot_be_empty); - } - return false; - } - function checkGrammarTypeArguments(node, typeArguments) { - return checkGrammarForDisallowedTrailingComma(typeArguments) || checkGrammarForAtLeastOneTypeArgument(node, typeArguments); - } - function checkGrammarTaggedTemplateChain(node) { - if (node.questionDotToken || node.flags & 64 /* OptionalChain */) { - return grammarErrorOnNode(node.template, Diagnostics.Tagged_template_expressions_are_not_permitted_in_an_optional_chain); - } - return false; - } - function checkGrammarHeritageClause(node) { - var types = node.types; - if (checkGrammarForDisallowedTrailingComma(types)) { - return true; - } - if (types && types.length === 0) { - var listType = tokenToString(node.token); - return grammarErrorAtPos(node, types.pos, 0, Diagnostics._0_list_cannot_be_empty, listType); - } - return some(types, checkGrammarExpressionWithTypeArguments); - } - function checkGrammarExpressionWithTypeArguments(node) { - if (isExpressionWithTypeArguments(node) && isImportKeyword(node.expression) && node.typeArguments) { - return grammarErrorOnNode(node, Diagnostics.This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot_have_type_arguments); - } - return checkGrammarTypeArguments(node, node.typeArguments); - } - function checkGrammarClassDeclarationHeritageClauses(node) { - var e_443, _t; - var seenExtendsClause = false; - var seenImplementsClause = false; - if (!checkGrammarModifiers(node) && node.heritageClauses) { - try { - for (var _u = __values(node.heritageClauses), _v = _u.next(); !_v.done; _v = _u.next()) { - var heritageClause = _v.value; - if (heritageClause.token === 96 /* ExtendsKeyword */) { - if (seenExtendsClause) { - return grammarErrorOnFirstToken(heritageClause, Diagnostics.extends_clause_already_seen); - } - if (seenImplementsClause) { - return grammarErrorOnFirstToken(heritageClause, Diagnostics.extends_clause_must_precede_implements_clause); - } - if (heritageClause.types.length > 1) { - return grammarErrorOnFirstToken(heritageClause.types[1], Diagnostics.Classes_can_only_extend_a_single_class); - } - seenExtendsClause = true; - } - else { - Debug.assert(heritageClause.token === 119 /* ImplementsKeyword */); - if (seenImplementsClause) { - return grammarErrorOnFirstToken(heritageClause, Diagnostics.implements_clause_already_seen); - } - seenImplementsClause = true; - } - checkGrammarHeritageClause(heritageClause); - } - } - catch (e_443_1) { e_443 = { error: e_443_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_443) throw e_443.error; } - } - } - } - function checkGrammarInterfaceDeclaration(node) { - var e_444, _t; - var seenExtendsClause = false; - if (node.heritageClauses) { - try { - for (var _u = __values(node.heritageClauses), _v = _u.next(); !_v.done; _v = _u.next()) { - var heritageClause = _v.value; - if (heritageClause.token === 96 /* ExtendsKeyword */) { - if (seenExtendsClause) { - return grammarErrorOnFirstToken(heritageClause, Diagnostics.extends_clause_already_seen); - } - seenExtendsClause = true; - } - else { - Debug.assert(heritageClause.token === 119 /* ImplementsKeyword */); - return grammarErrorOnFirstToken(heritageClause, Diagnostics.Interface_declaration_cannot_have_implements_clause); - } - checkGrammarHeritageClause(heritageClause); - } - } - catch (e_444_1) { e_444 = { error: e_444_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_444) throw e_444.error; } - } - } - return false; - } - function checkGrammarComputedPropertyName(node) { - if (node.kind !== 167 /* ComputedPropertyName */) { - return false; - } - var computedPropertyName = node; - if (computedPropertyName.expression.kind === 226 /* BinaryExpression */ && computedPropertyName.expression.operatorToken.kind === 28 /* CommaToken */) { - return grammarErrorOnNode(computedPropertyName.expression, Diagnostics.A_comma_expression_is_not_allowed_in_a_computed_property_name); - } - return false; - } - function checkGrammarForGenerator(node) { - if (node.asteriskToken) { - Debug.assert(node.kind === 262 /* FunctionDeclaration */ || node.kind === 218 /* FunctionExpression */ || node.kind === 174 /* MethodDeclaration */); - if (node.flags & 33554432 /* Ambient */) { - return grammarErrorOnNode(node.asteriskToken, Diagnostics.Generators_are_not_allowed_in_an_ambient_context); - } - if (!node.body) { - return grammarErrorOnNode(node.asteriskToken, Diagnostics.An_overload_signature_cannot_be_declared_as_a_generator); - } - } - } - function checkGrammarForInvalidQuestionMark(questionToken, message) { - return !!questionToken && grammarErrorOnNode(questionToken, message); - } - function checkGrammarForInvalidExclamationToken(exclamationToken, message) { - return !!exclamationToken && grammarErrorOnNode(exclamationToken, message); - } - function checkGrammarObjectLiteralExpression(node, inDestructuring) { - var e_445, _t, e_446, _u, e_447, _v; - var seen = /* @__PURE__ */ new Map(); - try { - for (var _w = __values(node.properties), _x = _w.next(); !_x.done; _x = _w.next()) { - var prop = _x.value; - if (prop.kind === 305 /* SpreadAssignment */) { - if (inDestructuring) { - var expression = skipParentheses(prop.expression); - if (isArrayLiteralExpression(expression) || isObjectLiteralExpression(expression)) { - return grammarErrorOnNode(prop.expression, Diagnostics.A_rest_element_cannot_contain_a_binding_pattern); - } - } - continue; - } - var name_70 = prop.name; - if (name_70.kind === 167 /* ComputedPropertyName */) { - checkGrammarComputedPropertyName(name_70); - } - if (prop.kind === 304 /* ShorthandPropertyAssignment */ && !inDestructuring && prop.objectAssignmentInitializer) { - grammarErrorOnNode(prop.equalsToken, Diagnostics.Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_part_of_a_destructuring_pattern); - } - if (name_70.kind === 81 /* PrivateIdentifier */) { - grammarErrorOnNode(name_70, Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies); - } - if (canHaveModifiers(prop) && prop.modifiers) { - try { - for (var _y = (e_446 = void 0, __values(prop.modifiers)), _z = _y.next(); !_z.done; _z = _y.next()) { - var mod = _z.value; - if (isModifier(mod) && (mod.kind !== 134 /* AsyncKeyword */ || prop.kind !== 174 /* MethodDeclaration */)) { - grammarErrorOnNode(mod, Diagnostics._0_modifier_cannot_be_used_here, getTextOfNode(mod)); - } - } - } - catch (e_446_1) { e_446 = { error: e_446_1 }; } - finally { - try { - if (_z && !_z.done && (_u = _y.return)) _u.call(_y); - } - finally { if (e_446) throw e_446.error; } - } - } - else if (canHaveIllegalModifiers(prop) && prop.modifiers) { - try { - for (var _10 = (e_447 = void 0, __values(prop.modifiers)), _11 = _10.next(); !_11.done; _11 = _10.next()) { - var mod = _11.value; - if (isModifier(mod)) { - grammarErrorOnNode(mod, Diagnostics._0_modifier_cannot_be_used_here, getTextOfNode(mod)); - } - } - } - catch (e_447_1) { e_447 = { error: e_447_1 }; } - finally { - try { - if (_11 && !_11.done && (_v = _10.return)) _v.call(_10); - } - finally { if (e_447) throw e_447.error; } - } - } - var currentKind = void 0; - switch (prop.kind) { - case 304 /* ShorthandPropertyAssignment */: - case 303 /* PropertyAssignment */: - checkGrammarForInvalidExclamationToken(prop.exclamationToken, Diagnostics.A_definite_assignment_assertion_is_not_permitted_in_this_context); - checkGrammarForInvalidQuestionMark(prop.questionToken, Diagnostics.An_object_member_cannot_be_declared_optional); - if (name_70.kind === 9 /* NumericLiteral */) { - checkGrammarNumericLiteral(name_70); - } - currentKind = 4 /* PropertyAssignment */; - break; - case 174 /* MethodDeclaration */: - currentKind = 8 /* Method */; - break; - case 177 /* GetAccessor */: - currentKind = 1 /* GetAccessor */; - break; - case 178 /* SetAccessor */: - currentKind = 2 /* SetAccessor */; - break; - default: - Debug.assertNever(prop, "Unexpected syntax kind:" + prop.kind); - } - if (!inDestructuring) { - var effectiveName = getEffectivePropertyNameForPropertyNameNode(name_70); - if (effectiveName === void 0) { - continue; - } - var existingKind = seen.get(effectiveName); - if (!existingKind) { - seen.set(effectiveName, currentKind); - } - else { - if (currentKind & 8 /* Method */ && existingKind & 8 /* Method */) { - grammarErrorOnNode(name_70, Diagnostics.Duplicate_identifier_0, getTextOfNode(name_70)); - } - else if (currentKind & 4 /* PropertyAssignment */ && existingKind & 4 /* PropertyAssignment */) { - grammarErrorOnNode(name_70, Diagnostics.An_object_literal_cannot_have_multiple_properties_with_the_same_name, getTextOfNode(name_70)); - } - else if (currentKind & 3 /* GetOrSetAccessor */ && existingKind & 3 /* GetOrSetAccessor */) { - if (existingKind !== 3 /* GetOrSetAccessor */ && currentKind !== existingKind) { - seen.set(effectiveName, currentKind | existingKind); - } - else { - return grammarErrorOnNode(name_70, Diagnostics.An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name); - } - } - else { - return grammarErrorOnNode(name_70, Diagnostics.An_object_literal_cannot_have_property_and_accessor_with_the_same_name); - } - } - } - } - } - catch (e_445_1) { e_445 = { error: e_445_1 }; } - finally { - try { - if (_x && !_x.done && (_t = _w.return)) _t.call(_w); - } - finally { if (e_445) throw e_445.error; } - } - } - function checkGrammarJsxElement(node) { - var e_448, _t; - checkGrammarJsxName(node.tagName); - checkGrammarTypeArguments(node, node.typeArguments); - var seen = /* @__PURE__ */ new Map(); - try { - for (var _u = __values(node.attributes.properties), _v = _u.next(); !_v.done; _v = _u.next()) { - var attr = _v.value; - if (attr.kind === 293 /* JsxSpreadAttribute */) { - continue; - } - var name_71 = attr.name, initializer = attr.initializer; - var escapedText = getEscapedTextOfJsxAttributeName(name_71); - if (!seen.get(escapedText)) { - seen.set(escapedText, true); - } - else { - return grammarErrorOnNode(name_71, Diagnostics.JSX_elements_cannot_have_multiple_attributes_with_the_same_name); - } - if (initializer && initializer.kind === 294 /* JsxExpression */ && !initializer.expression) { - return grammarErrorOnNode(initializer, Diagnostics.JSX_attributes_must_only_be_assigned_a_non_empty_expression); - } - } - } - catch (e_448_1) { e_448 = { error: e_448_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_448) throw e_448.error; } - } - } - function checkGrammarJsxName(node) { - if (isPropertyAccessExpression(node) && isJsxNamespacedName(node.expression)) { - return grammarErrorOnNode(node.expression, Diagnostics.JSX_property_access_expressions_cannot_include_JSX_namespace_names); - } - if (isJsxNamespacedName(node) && getJSXTransformEnabled(compilerOptions) && !isIntrinsicJsxName(node.namespace.escapedText)) { - return grammarErrorOnNode(node, Diagnostics.React_components_cannot_include_JSX_namespace_names); - } - } - function checkGrammarJsxExpression(node) { - if (node.expression && isCommaSequence(node.expression)) { - return grammarErrorOnNode(node.expression, Diagnostics.JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array); - } - } - function checkGrammarForInOrForOfStatement(forInOrOfStatement) { - if (checkGrammarStatementInAmbientContext(forInOrOfStatement)) { - return true; - } - if (forInOrOfStatement.kind === 250 /* ForOfStatement */ && forInOrOfStatement.awaitModifier) { - if (!(forInOrOfStatement.flags & 65536 /* AwaitContext */)) { - var sourceFile = getSourceFileOfNode(forInOrOfStatement); - if (isInTopLevelContext(forInOrOfStatement)) { - if (!hasParseDiagnostics(sourceFile)) { - if (!isEffectiveExternalModule(sourceFile, compilerOptions)) { - diagnostics.add(createDiagnosticForNode(forInOrOfStatement.awaitModifier, Diagnostics.for_await_loops_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module)); - } - switch (moduleKind) { - case 100 /* Node16 */: - case 199 /* NodeNext */: - if (sourceFile.impliedNodeFormat === 1 /* CommonJS */) { - diagnostics.add(createDiagnosticForNode(forInOrOfStatement.awaitModifier, Diagnostics.The_current_file_is_a_CommonJS_module_and_cannot_use_await_at_the_top_level)); - break; - } - case 7 /* ES2022 */: - case 99 /* ESNext */: - case 4 /* System */: - if (languageVersion >= 4 /* ES2017 */) { - break; - } - default: - diagnostics.add(createDiagnosticForNode(forInOrOfStatement.awaitModifier, Diagnostics.Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_or_nodenext_and_the_target_option_is_set_to_es2017_or_higher)); - break; - } - } - } - else { - if (!hasParseDiagnostics(sourceFile)) { - var diagnostic = createDiagnosticForNode(forInOrOfStatement.awaitModifier, Diagnostics.for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules); - var func = getContainingFunction(forInOrOfStatement); - if (func && func.kind !== 176 /* Constructor */) { - Debug.assert((getFunctionFlags(func) & 2 /* Async */) === 0, "Enclosing function should never be an async function."); - var relatedInfo = createDiagnosticForNode(func, Diagnostics.Did_you_mean_to_mark_this_function_as_async); - addRelatedInfo(diagnostic, relatedInfo); - } - diagnostics.add(diagnostic); - return true; - } - } - return false; - } - } - if (isForOfStatement(forInOrOfStatement) && !(forInOrOfStatement.flags & 65536 /* AwaitContext */) && isIdentifier(forInOrOfStatement.initializer) && forInOrOfStatement.initializer.escapedText === "async") { - grammarErrorOnNode(forInOrOfStatement.initializer, Diagnostics.The_left_hand_side_of_a_for_of_statement_may_not_be_async); - return false; - } - if (forInOrOfStatement.initializer.kind === 261 /* VariableDeclarationList */) { - var variableList = forInOrOfStatement.initializer; - if (!checkGrammarVariableDeclarationList(variableList)) { - var declarations = variableList.declarations; - if (!declarations.length) { - return false; - } - if (declarations.length > 1) { - var diagnostic = forInOrOfStatement.kind === 249 /* ForInStatement */ ? Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement : Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement; - return grammarErrorOnFirstToken(variableList.declarations[1], diagnostic); - } - var firstDeclaration = declarations[0]; - if (firstDeclaration.initializer) { - var diagnostic = forInOrOfStatement.kind === 249 /* ForInStatement */ ? Diagnostics.The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer : Diagnostics.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer; - return grammarErrorOnNode(firstDeclaration.name, diagnostic); - } - if (firstDeclaration.type) { - var diagnostic = forInOrOfStatement.kind === 249 /* ForInStatement */ ? Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation : Diagnostics.The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation; - return grammarErrorOnNode(firstDeclaration, diagnostic); - } - } - } - return false; - } - function checkGrammarAccessor(accessor) { - if (!(accessor.flags & 33554432 /* Ambient */) && accessor.parent.kind !== 187 /* TypeLiteral */ && accessor.parent.kind !== 264 /* InterfaceDeclaration */) { - if (languageVersion < 1 /* ES5 */) { - return grammarErrorOnNode(accessor.name, Diagnostics.Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher); - } - if (languageVersion < 2 /* ES2015 */ && isPrivateIdentifier(accessor.name)) { - return grammarErrorOnNode(accessor.name, Diagnostics.Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher); - } - if (accessor.body === void 0 && !hasSyntacticModifier(accessor, 256 /* Abstract */)) { - return grammarErrorAtPos(accessor, accessor.end - 1, ";".length, Diagnostics._0_expected, "{"); - } - } - if (accessor.body) { - if (hasSyntacticModifier(accessor, 256 /* Abstract */)) { - return grammarErrorOnNode(accessor, Diagnostics.An_abstract_accessor_cannot_have_an_implementation); - } - if (accessor.parent.kind === 187 /* TypeLiteral */ || accessor.parent.kind === 264 /* InterfaceDeclaration */) { - return grammarErrorOnNode(accessor.body, Diagnostics.An_implementation_cannot_be_declared_in_ambient_contexts); - } - } - if (accessor.typeParameters) { - return grammarErrorOnNode(accessor.name, Diagnostics.An_accessor_cannot_have_type_parameters); - } - if (!doesAccessorHaveCorrectParameterCount(accessor)) { - return grammarErrorOnNode(accessor.name, accessor.kind === 177 /* GetAccessor */ ? Diagnostics.A_get_accessor_cannot_have_parameters : Diagnostics.A_set_accessor_must_have_exactly_one_parameter); - } - if (accessor.kind === 178 /* SetAccessor */) { - if (accessor.type) { - return grammarErrorOnNode(accessor.name, Diagnostics.A_set_accessor_cannot_have_a_return_type_annotation); - } - var parameter = Debug.checkDefined(getSetAccessorValueParameter(accessor), "Return value does not match parameter count assertion."); - if (parameter.dotDotDotToken) { - return grammarErrorOnNode(parameter.dotDotDotToken, Diagnostics.A_set_accessor_cannot_have_rest_parameter); - } - if (parameter.questionToken) { - return grammarErrorOnNode(parameter.questionToken, Diagnostics.A_set_accessor_cannot_have_an_optional_parameter); - } - if (parameter.initializer) { - return grammarErrorOnNode(accessor.name, Diagnostics.A_set_accessor_parameter_cannot_have_an_initializer); - } - } - return false; - } - function doesAccessorHaveCorrectParameterCount(accessor) { - return getAccessorThisParameter(accessor) || accessor.parameters.length === (accessor.kind === 177 /* GetAccessor */ ? 0 : 1); - } - function getAccessorThisParameter(accessor) { - if (accessor.parameters.length === (accessor.kind === 177 /* GetAccessor */ ? 1 : 2)) { - return getThisParameter(accessor); - } - } - function checkGrammarTypeOperatorNode(node) { - if (node.operator === 158 /* UniqueKeyword */) { - if (node.type.kind !== 155 /* SymbolKeyword */) { - return grammarErrorOnNode(node.type, Diagnostics._0_expected, tokenToString(155 /* SymbolKeyword */)); - } - var parent2 = walkUpParenthesizedTypes(node.parent); - if (isInJSFile(parent2) && isJSDocTypeExpression(parent2)) { - var host2 = getJSDocHost(parent2); - if (host2) { - parent2 = getSingleVariableOfVariableStatement(host2) || host2; - } - } - switch (parent2.kind) { - case 260 /* VariableDeclaration */: - var decl = parent2; - if (decl.name.kind !== 80 /* Identifier */) { - return grammarErrorOnNode(node, Diagnostics.unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name); - } - if (!isVariableDeclarationInVariableStatement(decl)) { - return grammarErrorOnNode(node, Diagnostics.unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement); - } - if (!(decl.parent.flags & 2 /* Const */)) { - return grammarErrorOnNode(parent2.name, Diagnostics.A_variable_whose_type_is_a_unique_symbol_type_must_be_const); - } - break; - case 172 /* PropertyDeclaration */: - if (!isStatic(parent2) || !hasEffectiveReadonlyModifier(parent2)) { - return grammarErrorOnNode(parent2.name, Diagnostics.A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly); - } - break; - case 171 /* PropertySignature */: - if (!hasSyntacticModifier(parent2, 64 /* Readonly */)) { - return grammarErrorOnNode(parent2.name, Diagnostics.A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly); - } - break; - default: - return grammarErrorOnNode(node, Diagnostics.unique_symbol_types_are_not_allowed_here); - } - } - else if (node.operator === 148 /* ReadonlyKeyword */) { - if (node.type.kind !== 188 /* ArrayType */ && node.type.kind !== 189 /* TupleType */) { - return grammarErrorOnFirstToken(node, Diagnostics.readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types, tokenToString(155 /* SymbolKeyword */)); - } - } - } - function checkGrammarForInvalidDynamicName(node, message) { - if (isNonBindableDynamicName(node)) { - return grammarErrorOnNode(node, message); - } - } - function checkGrammarMethod(node) { - if (checkGrammarFunctionLikeDeclaration(node)) { - return true; - } - if (node.kind === 174 /* MethodDeclaration */) { - if (node.parent.kind === 210 /* ObjectLiteralExpression */) { - if (node.modifiers && !(node.modifiers.length === 1 && first(node.modifiers).kind === 134 /* AsyncKeyword */)) { - return grammarErrorOnFirstToken(node, Diagnostics.Modifiers_cannot_appear_here); - } - else if (checkGrammarForInvalidQuestionMark(node.questionToken, Diagnostics.An_object_member_cannot_be_declared_optional)) { - return true; - } - else if (checkGrammarForInvalidExclamationToken(node.exclamationToken, Diagnostics.A_definite_assignment_assertion_is_not_permitted_in_this_context)) { - return true; - } - else if (node.body === void 0) { - return grammarErrorAtPos(node, node.end - 1, ";".length, Diagnostics._0_expected, "{"); - } - } - if (checkGrammarForGenerator(node)) { - return true; - } - } - if (isClassLike(node.parent)) { - if (languageVersion < 2 /* ES2015 */ && isPrivateIdentifier(node.name)) { - return grammarErrorOnNode(node.name, Diagnostics.Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher); - } - if (node.flags & 33554432 /* Ambient */) { - return checkGrammarForInvalidDynamicName(node.name, Diagnostics.A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type); - } - else if (node.kind === 174 /* MethodDeclaration */ && !node.body) { - return checkGrammarForInvalidDynamicName(node.name, Diagnostics.A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type); - } - } - else if (node.parent.kind === 264 /* InterfaceDeclaration */) { - return checkGrammarForInvalidDynamicName(node.name, Diagnostics.A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type); - } - else if (node.parent.kind === 187 /* TypeLiteral */) { - return checkGrammarForInvalidDynamicName(node.name, Diagnostics.A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type); - } - } - function checkGrammarBreakOrContinueStatement(node) { - var current = node; - while (current) { - if (isFunctionLikeOrClassStaticBlockDeclaration(current)) { - return grammarErrorOnNode(node, Diagnostics.Jump_target_cannot_cross_function_boundary); - } - switch (current.kind) { - case 256 /* LabeledStatement */: - if (node.label && current.label.escapedText === node.label.escapedText) { - var isMisplacedContinueLabel = node.kind === 251 /* ContinueStatement */ && !isIterationStatement(current.statement, - /*lookInLabeledStatements*/ - true); - if (isMisplacedContinueLabel) { - return grammarErrorOnNode(node, Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement); - } - return false; - } - break; - case 255 /* SwitchStatement */: - if (node.kind === 252 /* BreakStatement */ && !node.label) { - return false; - } - break; - default: - if (isIterationStatement(current, - /*lookInLabeledStatements*/ - false) && !node.label) { - return false; - } - break; - } - current = current.parent; - } - if (node.label) { - var message = node.kind === 252 /* BreakStatement */ ? Diagnostics.A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement : Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement; - return grammarErrorOnNode(node, message); - } - else { - var message = node.kind === 252 /* BreakStatement */ ? Diagnostics.A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement : Diagnostics.A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement; - return grammarErrorOnNode(node, message); - } - } - function checkGrammarBindingElement(node) { - if (node.dotDotDotToken) { - var elements = node.parent.elements; - if (node !== last(elements)) { - return grammarErrorOnNode(node, Diagnostics.A_rest_element_must_be_last_in_a_destructuring_pattern); - } - checkGrammarForDisallowedTrailingComma(elements, Diagnostics.A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma); - if (node.propertyName) { - return grammarErrorOnNode(node.name, Diagnostics.A_rest_element_cannot_have_a_property_name); - } - } - if (node.dotDotDotToken && node.initializer) { - return grammarErrorAtPos(node, node.initializer.pos - 1, 1, Diagnostics.A_rest_element_cannot_have_an_initializer); - } - } - function isStringOrNumberLiteralExpression(expr) { - return isStringOrNumericLiteralLike(expr) || expr.kind === 224 /* PrefixUnaryExpression */ && expr.operator === 41 /* MinusToken */ && expr.operand.kind === 9 /* NumericLiteral */; - } - function isBigIntLiteralExpression(expr) { - return expr.kind === 10 /* BigIntLiteral */ || expr.kind === 224 /* PrefixUnaryExpression */ && expr.operator === 41 /* MinusToken */ && expr.operand.kind === 10 /* BigIntLiteral */; - } - function isSimpleLiteralEnumReference(expr) { - if ((isPropertyAccessExpression(expr) || isElementAccessExpression(expr) && isStringOrNumberLiteralExpression(expr.argumentExpression)) && isEntityNameExpression(expr.expression)) { - return !!(checkExpressionCached(expr).flags & 1056 /* EnumLike */); - } - } - function checkAmbientInitializer(node) { - var initializer = node.initializer; - if (initializer) { - var isInvalidInitializer = !(isStringOrNumberLiteralExpression(initializer) || isSimpleLiteralEnumReference(initializer) || initializer.kind === 112 /* TrueKeyword */ || initializer.kind === 97 /* FalseKeyword */ || isBigIntLiteralExpression(initializer)); - var isConstOrReadonly = isDeclarationReadonly(node) || isVariableDeclaration(node) && isVarConstLike(node); - if (isConstOrReadonly && !node.type) { - if (isInvalidInitializer) { - return grammarErrorOnNode(initializer, Diagnostics.A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_reference); - } - } - else { - return grammarErrorOnNode(initializer, Diagnostics.Initializers_are_not_allowed_in_ambient_contexts); - } - } - } - function checkGrammarVariableDeclaration(node) { - var nodeFlags = getCombinedNodeFlagsCached(node); - var blockScopeKind = nodeFlags & 7 /* BlockScoped */; - if (isBindingPattern(node.name)) { - switch (blockScopeKind) { - case 6 /* AwaitUsing */: - return grammarErrorOnNode(node, Diagnostics._0_declarations_may_not_have_binding_patterns, "await using"); - case 4 /* Using */: - return grammarErrorOnNode(node, Diagnostics._0_declarations_may_not_have_binding_patterns, "using"); - } - } - if (node.parent.parent.kind !== 249 /* ForInStatement */ && node.parent.parent.kind !== 250 /* ForOfStatement */) { - if (nodeFlags & 33554432 /* Ambient */) { - checkAmbientInitializer(node); - } - else if (!node.initializer) { - if (isBindingPattern(node.name) && !isBindingPattern(node.parent)) { - return grammarErrorOnNode(node, Diagnostics.A_destructuring_declaration_must_have_an_initializer); - } - switch (blockScopeKind) { - case 6 /* AwaitUsing */: - return grammarErrorOnNode(node, Diagnostics._0_declarations_must_be_initialized, "await using"); - case 4 /* Using */: - return grammarErrorOnNode(node, Diagnostics._0_declarations_must_be_initialized, "using"); - case 2 /* Const */: - return grammarErrorOnNode(node, Diagnostics._0_declarations_must_be_initialized, "const"); - } - } - } - if (node.exclamationToken && (node.parent.parent.kind !== 243 /* VariableStatement */ || !node.type || node.initializer || nodeFlags & 33554432 /* Ambient */)) { - var message = node.initializer ? Diagnostics.Declarations_with_initializers_cannot_also_have_definite_assignment_assertions : !node.type ? Diagnostics.Declarations_with_definite_assignment_assertions_must_also_have_type_annotations : Diagnostics.A_definite_assignment_assertion_is_not_permitted_in_this_context; - return grammarErrorOnNode(node.exclamationToken, message); - } - if ((moduleKind < 5 /* ES2015 */ || getSourceFileOfNode(node).impliedNodeFormat === 1 /* CommonJS */) && moduleKind !== 4 /* System */ && !(node.parent.parent.flags & 33554432 /* Ambient */) && hasSyntacticModifier(node.parent.parent, 1 /* Export */)) { - checkESModuleMarker(node.name); - } - return !!blockScopeKind && checkGrammarNameInLetOrConstDeclarations(node.name); - } - function checkESModuleMarker(name) { - var e_449, _t; - if (name.kind === 80 /* Identifier */) { - if (idText(name) === "__esModule") { - return grammarErrorOnNodeSkippedOn("noEmit", name, Diagnostics.Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules); - } - } - else { - var elements = name.elements; - try { - for (var elements_2 = __values(elements), elements_2_1 = elements_2.next(); !elements_2_1.done; elements_2_1 = elements_2.next()) { - var element = elements_2_1.value; - if (!isOmittedExpression(element)) { - return checkESModuleMarker(element.name); - } - } - } - catch (e_449_1) { e_449 = { error: e_449_1 }; } - finally { - try { - if (elements_2_1 && !elements_2_1.done && (_t = elements_2.return)) _t.call(elements_2); - } - finally { if (e_449) throw e_449.error; } - } - } - return false; - } - function checkGrammarNameInLetOrConstDeclarations(name) { - var e_450, _t; - if (name.kind === 80 /* Identifier */) { - if (name.escapedText === "let") { - return grammarErrorOnNode(name, Diagnostics.let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations); - } - } - else { - var elements = name.elements; - try { - for (var elements_3 = __values(elements), elements_3_1 = elements_3.next(); !elements_3_1.done; elements_3_1 = elements_3.next()) { - var element = elements_3_1.value; - if (!isOmittedExpression(element)) { - checkGrammarNameInLetOrConstDeclarations(element.name); - } - } - } - catch (e_450_1) { e_450 = { error: e_450_1 }; } - finally { - try { - if (elements_3_1 && !elements_3_1.done && (_t = elements_3.return)) _t.call(elements_3); - } - finally { if (e_450) throw e_450.error; } - } - } - return false; - } - function checkGrammarVariableDeclarationList(declarationList) { - var declarations = declarationList.declarations; - if (checkGrammarForDisallowedTrailingComma(declarationList.declarations)) { - return true; - } - if (!declarationList.declarations.length) { - return grammarErrorAtPos(declarationList, declarations.pos, declarations.end - declarations.pos, Diagnostics.Variable_declaration_list_cannot_be_empty); - } - var blockScopeFlags = declarationList.flags & 7 /* BlockScoped */; - if ((blockScopeFlags === 4 /* Using */ || blockScopeFlags === 6 /* AwaitUsing */) && isForInStatement(declarationList.parent)) { - return grammarErrorOnNode(declarationList, blockScopeFlags === 4 /* Using */ ? Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_a_using_declaration : Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_an_await_using_declaration); - } - if (blockScopeFlags === 6 /* AwaitUsing */) { - return checkAwaitGrammar(declarationList); - } - return false; - } - function allowLetAndConstDeclarations(parent2) { - switch (parent2.kind) { - case 245 /* IfStatement */: - case 246 /* DoStatement */: - case 247 /* WhileStatement */: - case 254 /* WithStatement */: - case 248 /* ForStatement */: - case 249 /* ForInStatement */: - case 250 /* ForOfStatement */: - return false; - case 256 /* LabeledStatement */: - return allowLetAndConstDeclarations(parent2.parent); - } - return true; - } - function checkGrammarForDisallowedBlockScopedVariableStatement(node) { - if (!allowLetAndConstDeclarations(node.parent)) { - var blockScopeKind = getCombinedNodeFlagsCached(node.declarationList) & 7 /* BlockScoped */; - if (blockScopeKind) { - var keyword = blockScopeKind === 1 /* Let */ ? "let" : blockScopeKind === 2 /* Const */ ? "const" : blockScopeKind === 4 /* Using */ ? "using" : blockScopeKind === 6 /* AwaitUsing */ ? "await using" : Debug.fail("Unknown BlockScope flag"); - return grammarErrorOnNode(node, Diagnostics._0_declarations_can_only_be_declared_inside_a_block, keyword); - } - } - } - function checkGrammarMetaProperty(node) { - var escapedText = node.name.escapedText; - switch (node.keywordToken) { - case 105 /* NewKeyword */: - if (escapedText !== "target") { - return grammarErrorOnNode(node.name, Diagnostics._0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2, unescapeLeadingUnderscores(node.name.escapedText), tokenToString(node.keywordToken), "target"); - } - break; - case 102 /* ImportKeyword */: - if (escapedText !== "meta") { - return grammarErrorOnNode(node.name, Diagnostics._0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2, unescapeLeadingUnderscores(node.name.escapedText), tokenToString(node.keywordToken), "meta"); - } - break; - } - } - function hasParseDiagnostics(sourceFile) { - return sourceFile.parseDiagnostics.length > 0; - } - function grammarErrorOnFirstToken(node, message) { - var args = []; - for (var _t = 2; _t < arguments.length; _t++) { - args[_t - 2] = arguments[_t]; - } - var sourceFile = getSourceFileOfNode(node); - if (!hasParseDiagnostics(sourceFile)) { - var span = getSpanOfTokenAtPosition(sourceFile, node.pos); - diagnostics.add(createFileDiagnostic.apply(void 0, __spreadArray([sourceFile, span.start, span.length, message], __read(args), false))); - return true; - } - return false; - } - function grammarErrorAtPos(nodeForSourceFile, start2, length2, message) { - var args = []; - for (var _t = 4; _t < arguments.length; _t++) { - args[_t - 4] = arguments[_t]; - } - var sourceFile = getSourceFileOfNode(nodeForSourceFile); - if (!hasParseDiagnostics(sourceFile)) { - diagnostics.add(createFileDiagnostic.apply(void 0, __spreadArray([sourceFile, start2, length2, message], __read(args), false))); - return true; - } - return false; - } - function grammarErrorOnNodeSkippedOn(key, node, message) { - var args = []; - for (var _t = 3; _t < arguments.length; _t++) { - args[_t - 3] = arguments[_t]; - } - var sourceFile = getSourceFileOfNode(node); - if (!hasParseDiagnostics(sourceFile)) { - errorSkippedOn.apply(void 0, __spreadArray([key, node, message], __read(args), false)); - return true; - } - return false; - } - function grammarErrorOnNode(node, message) { - var args = []; - for (var _t = 2; _t < arguments.length; _t++) { - args[_t - 2] = arguments[_t]; - } - var sourceFile = getSourceFileOfNode(node); - if (!hasParseDiagnostics(sourceFile)) { - diagnostics.add(createDiagnosticForNode.apply(void 0, __spreadArray([node, message], __read(args), false))); - return true; - } - return false; - } - function checkGrammarConstructorTypeParameters(node) { - var jsdocTypeParameters = isInJSFile(node) ? getJSDocTypeParameterDeclarations(node) : void 0; - var range = node.typeParameters || jsdocTypeParameters && firstOrUndefined(jsdocTypeParameters); - if (range) { - var pos = range.pos === range.end ? range.pos : skipTrivia(getSourceFileOfNode(node).text, range.pos); - return grammarErrorAtPos(node, pos, range.end - pos, Diagnostics.Type_parameters_cannot_appear_on_a_constructor_declaration); - } - } - function checkGrammarConstructorTypeAnnotation(node) { - var type = node.type || getEffectiveReturnTypeNode(node); - if (type) { - return grammarErrorOnNode(type, Diagnostics.Type_annotation_cannot_appear_on_a_constructor_declaration); - } - } - function checkGrammarProperty(node) { - if (isComputedPropertyName(node.name) && isBinaryExpression(node.name.expression) && node.name.expression.operatorToken.kind === 103 /* InKeyword */) { - return grammarErrorOnNode(node.parent.members[0], Diagnostics.A_mapped_type_may_not_declare_properties_or_methods); - } - if (isClassLike(node.parent)) { - if (isStringLiteral(node.name) && node.name.text === "constructor") { - return grammarErrorOnNode(node.name, Diagnostics.Classes_may_not_have_a_field_named_constructor); - } - if (checkGrammarForInvalidDynamicName(node.name, Diagnostics.A_computed_property_name_in_a_class_property_declaration_must_have_a_simple_literal_type_or_a_unique_symbol_type)) { - return true; - } - if (languageVersion < 2 /* ES2015 */ && isPrivateIdentifier(node.name)) { - return grammarErrorOnNode(node.name, Diagnostics.Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher); - } - if (languageVersion < 2 /* ES2015 */ && isAutoAccessorPropertyDeclaration(node)) { - return grammarErrorOnNode(node.name, Diagnostics.Properties_with_the_accessor_modifier_are_only_available_when_targeting_ECMAScript_2015_and_higher); - } - if (isAutoAccessorPropertyDeclaration(node) && checkGrammarForInvalidQuestionMark(node.questionToken, Diagnostics.An_accessor_property_cannot_be_declared_optional)) { - return true; - } - } - else if (node.parent.kind === 264 /* InterfaceDeclaration */) { - if (checkGrammarForInvalidDynamicName(node.name, Diagnostics.A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type)) { - return true; - } - Debug.assertNode(node, isPropertySignature); - if (node.initializer) { - return grammarErrorOnNode(node.initializer, Diagnostics.An_interface_property_cannot_have_an_initializer); - } - } - else if (isTypeLiteralNode(node.parent)) { - if (checkGrammarForInvalidDynamicName(node.name, Diagnostics.A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type)) { - return true; - } - Debug.assertNode(node, isPropertySignature); - if (node.initializer) { - return grammarErrorOnNode(node.initializer, Diagnostics.A_type_literal_property_cannot_have_an_initializer); - } - } - if (node.flags & 33554432 /* Ambient */) { - checkAmbientInitializer(node); - } - if (isPropertyDeclaration(node) && node.exclamationToken && (!isClassLike(node.parent) || !node.type || node.initializer || node.flags & 33554432 /* Ambient */ || isStatic(node) || hasAbstractModifier(node))) { - var message = node.initializer ? Diagnostics.Declarations_with_initializers_cannot_also_have_definite_assignment_assertions : !node.type ? Diagnostics.Declarations_with_definite_assignment_assertions_must_also_have_type_annotations : Diagnostics.A_definite_assignment_assertion_is_not_permitted_in_this_context; - return grammarErrorOnNode(node.exclamationToken, message); - } - } - function checkGrammarTopLevelElementForRequiredDeclareModifier(node) { - if (node.kind === 264 /* InterfaceDeclaration */ || node.kind === 265 /* TypeAliasDeclaration */ || node.kind === 272 /* ImportDeclaration */ || node.kind === 271 /* ImportEqualsDeclaration */ || node.kind === 278 /* ExportDeclaration */ || node.kind === 277 /* ExportAssignment */ || node.kind === 270 /* NamespaceExportDeclaration */ || hasSyntacticModifier(node, 2 /* Ambient */ | 1 /* Export */ | 1024 /* Default */)) { - return false; - } - return grammarErrorOnFirstToken(node, Diagnostics.Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier); - } - function checkGrammarTopLevelElementsForRequiredDeclareModifier(file) { - var e_451, _t; - try { - for (var _u = __values(file.statements), _v = _u.next(); !_v.done; _v = _u.next()) { - var decl = _v.value; - if (isDeclaration(decl) || decl.kind === 243 /* VariableStatement */) { - if (checkGrammarTopLevelElementForRequiredDeclareModifier(decl)) { - return true; - } - } - } - } - catch (e_451_1) { e_451 = { error: e_451_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_451) throw e_451.error; } - } - return false; - } - function checkGrammarSourceFile(node) { - return !!(node.flags & 33554432 /* Ambient */) && checkGrammarTopLevelElementsForRequiredDeclareModifier(node); - } - function checkGrammarStatementInAmbientContext(node) { - if (node.flags & 33554432 /* Ambient */) { - var links = getNodeLinks(node); - if (!links.hasReportedStatementInAmbientContext && (isFunctionLike(node.parent) || isAccessor(node.parent))) { - return getNodeLinks(node).hasReportedStatementInAmbientContext = grammarErrorOnFirstToken(node, Diagnostics.An_implementation_cannot_be_declared_in_ambient_contexts); - } - if (node.parent.kind === 241 /* Block */ || node.parent.kind === 268 /* ModuleBlock */ || node.parent.kind === 312 /* SourceFile */) { - var links2 = getNodeLinks(node.parent); - if (!links2.hasReportedStatementInAmbientContext) { - return links2.hasReportedStatementInAmbientContext = grammarErrorOnFirstToken(node, Diagnostics.Statements_are_not_allowed_in_ambient_contexts); - } - } - else { - } - } - return false; - } - function checkGrammarNumericLiteral(node) { - var isFractional = getTextOfNode(node).indexOf(".") !== -1; - var isScientific = node.numericLiteralFlags & 16 /* Scientific */; - if (isFractional || isScientific) { - return; - } - var value = +node.text; - if (value <= Math.pow(2, 53) - 1) { - return; - } - addErrorOrSuggestion( - /*isError*/ - false, createDiagnosticForNode(node, Diagnostics.Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accurately_as_integers)); - } - function checkGrammarBigIntLiteral(node) { - var literalType = isLiteralTypeNode(node.parent) || isPrefixUnaryExpression(node.parent) && isLiteralTypeNode(node.parent.parent); - if (!literalType) { - if (languageVersion < 7 /* ES2020 */) { - if (grammarErrorOnNode(node, Diagnostics.BigInt_literals_are_not_available_when_targeting_lower_than_ES2020)) { - return true; - } - } - } - return false; - } - function grammarErrorAfterFirstToken(node, message) { - var args = []; - for (var _t = 2; _t < arguments.length; _t++) { - args[_t - 2] = arguments[_t]; - } - var sourceFile = getSourceFileOfNode(node); - if (!hasParseDiagnostics(sourceFile)) { - var span = getSpanOfTokenAtPosition(sourceFile, node.pos); - diagnostics.add(createFileDiagnostic.apply(void 0, __spreadArray([sourceFile, - textSpanEnd(span), - /*length*/ - 0, - message], __read(args), false))); - return true; - } - return false; - } - function getAmbientModules() { - if (!ambientModulesCache) { - ambientModulesCache = []; - globals.forEach(function (global2, sym) { - if (ambientModuleSymbolRegex.test(sym)) { - ambientModulesCache.push(global2); - } - }); - } - return ambientModulesCache; - } - function checkGrammarImportClause(node) { - var _a; - if (node.isTypeOnly && node.name && node.namedBindings) { - return grammarErrorOnNode(node, Diagnostics.A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both); - } - if (node.isTypeOnly && ((_a = node.namedBindings) == null ? void 0 : _a.kind) === 275 /* NamedImports */) { - return checkGrammarNamedImportsOrExports(node.namedBindings); - } - return false; - } - function checkGrammarNamedImportsOrExports(namedBindings) { - return !!forEach(namedBindings.elements, function (specifier) { - if (specifier.isTypeOnly) { - return grammarErrorOnFirstToken(specifier, specifier.kind === 276 /* ImportSpecifier */ ? Diagnostics.The_type_modifier_cannot_be_used_on_a_named_import_when_import_type_is_used_on_its_import_statement : Diagnostics.The_type_modifier_cannot_be_used_on_a_named_export_when_export_type_is_used_on_its_export_statement); - } - }); - } - function checkGrammarImportCallExpression(node) { - if (compilerOptions.verbatimModuleSyntax && moduleKind === 1 /* CommonJS */) { - return grammarErrorOnNode(node, Diagnostics.ESM_syntax_is_not_allowed_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled); - } - if (moduleKind === 5 /* ES2015 */) { - return grammarErrorOnNode(node, Diagnostics.Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_es2022_esnext_commonjs_amd_system_umd_node16_or_nodenext); - } - if (node.typeArguments) { - return grammarErrorOnNode(node, Diagnostics.This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot_have_type_arguments); - } - var nodeArguments = node.arguments; - if (moduleKind !== 99 /* ESNext */ && moduleKind !== 199 /* NodeNext */ && moduleKind !== 100 /* Node16 */) { - checkGrammarForDisallowedTrailingComma(nodeArguments); - if (nodeArguments.length > 1) { - var assertionArgument = nodeArguments[1]; - return grammarErrorOnNode(assertionArgument, Diagnostics.Dynamic_imports_only_support_a_second_argument_when_the_module_option_is_set_to_esnext_node16_or_nodenext); - } - } - if (nodeArguments.length === 0 || nodeArguments.length > 2) { - return grammarErrorOnNode(node, Diagnostics.Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_assertion_as_arguments); - } - var spreadElement = find(nodeArguments, isSpreadElement); - if (spreadElement) { - return grammarErrorOnNode(spreadElement, Diagnostics.Argument_of_dynamic_import_cannot_be_spread_element); - } - return false; - } - function findMatchingTypeReferenceOrTypeAliasReference(source, unionTarget) { - var sourceObjectFlags = getObjectFlags(source); - if (sourceObjectFlags & (4 /* Reference */ | 16 /* Anonymous */) && unionTarget.flags & 1048576 /* Union */) { - return find(unionTarget.types, function (target) { - if (target.flags & 524288 /* Object */) { - var overlapObjFlags = sourceObjectFlags & getObjectFlags(target); - if (overlapObjFlags & 4 /* Reference */) { - return source.target === target.target; - } - if (overlapObjFlags & 16 /* Anonymous */) { - return !!source.aliasSymbol && source.aliasSymbol === target.aliasSymbol; - } - } - return false; - }); - } - } - function findBestTypeForObjectLiteral(source, unionTarget) { - if (getObjectFlags(source) & 128 /* ObjectLiteral */ && someType(unionTarget, isArrayLikeType)) { - return find(unionTarget.types, function (t) { return !isArrayLikeType(t); }); - } - } - function findBestTypeForInvokable(source, unionTarget) { - var signatureKind = 0 /* Call */; - var hasSignatures = getSignaturesOfType(source, signatureKind).length > 0 || (signatureKind = 1 /* Construct */, getSignaturesOfType(source, signatureKind).length > 0); - if (hasSignatures) { - return find(unionTarget.types, function (t) { return getSignaturesOfType(t, signatureKind).length > 0; }); - } - } - function findMostOverlappyType(source, unionTarget) { - var e_452, _t; - var bestMatch; - if (!(source.flags & (402784252 /* Primitive */ | 406847488 /* InstantiablePrimitive */))) { - var matchingCount = 0; - try { - for (var _u = __values(unionTarget.types), _v = _u.next(); !_v.done; _v = _u.next()) { - var target = _v.value; - if (!(target.flags & (402784252 /* Primitive */ | 406847488 /* InstantiablePrimitive */))) { - var overlap = getIntersectionType([getIndexType(source), getIndexType(target)]); - if (overlap.flags & 4194304 /* Index */) { - return target; - } - else if (isUnitType(overlap) || overlap.flags & 1048576 /* Union */) { - var len = overlap.flags & 1048576 /* Union */ ? countWhere(overlap.types, isUnitType) : 1; - if (len >= matchingCount) { - bestMatch = target; - matchingCount = len; - } - } - } - } - } - catch (e_452_1) { e_452 = { error: e_452_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_452) throw e_452.error; } - } - } - return bestMatch; - } - function filterPrimitivesIfContainsNonPrimitive(type) { - if (maybeTypeOfKind(type, 67108864 /* NonPrimitive */)) { - var result = filterType(type, function (t) { return !(t.flags & 402784252 /* Primitive */); }); - if (!(result.flags & 131072 /* Never */)) { - return result; - } - } - return type; - } - function findMatchingDiscriminantType(source, target, isRelatedTo) { - if (target.flags & 1048576 /* Union */ && source.flags & (2097152 /* Intersection */ | 524288 /* Object */)) { - var match = getMatchingUnionConstituentForType(target, source); - if (match) { - return match; - } - var sourceProperties = getPropertiesOfType(source); - if (sourceProperties) { - var sourcePropertiesFiltered = findDiscriminantProperties(sourceProperties, target); - if (sourcePropertiesFiltered) { - var discriminated = discriminateTypeByDiscriminableItems(target, map(sourcePropertiesFiltered, function (p) { return [function () { return getTypeOfSymbol(p); }, p.escapedName]; }), isRelatedTo); - if (discriminated !== target) { - return discriminated; - } - } - } - } - return void 0; - } - function getEffectivePropertyNameForPropertyNameNode(node) { - var name = getPropertyNameForPropertyNameNode(node); - return name ? name : isComputedPropertyName(node) && isEntityNameExpression(node.expression) ? tryGetNameFromEntityNameExpression(node.expression) : void 0; - } - function getCombinedModifierFlagsCached(node) { - if (lastGetCombinedModifierFlagsNode === node) { - return lastGetCombinedModifierFlagsResult; - } - lastGetCombinedModifierFlagsNode = node; - lastGetCombinedModifierFlagsResult = getCombinedModifierFlags(node); - return lastGetCombinedModifierFlagsResult; - } - function getCombinedNodeFlagsCached(node) { - if (lastGetCombinedNodeFlagsNode === node) { - return lastGetCombinedNodeFlagsResult; - } - lastGetCombinedNodeFlagsNode = node; - lastGetCombinedNodeFlagsResult = getCombinedNodeFlags(node); - return lastGetCombinedNodeFlagsResult; - } - function isVarConstLike(node) { - var blockScopeKind = getCombinedNodeFlagsCached(node) & 7 /* BlockScoped */; - return blockScopeKind === 2 /* Const */ || blockScopeKind === 4 /* Using */ || blockScopeKind === 6 /* AwaitUsing */; - } -} -function isNotAccessor(declaration) { - return !isAccessor(declaration); -} -function isNotOverload(declaration) { - return declaration.kind !== 262 /* FunctionDeclaration */ && declaration.kind !== 174 /* MethodDeclaration */ || !!declaration.body; -} -function isDeclarationNameOrImportPropertyName(name) { - switch (name.parent.kind) { - case 276 /* ImportSpecifier */: - case 281 /* ExportSpecifier */: - return isIdentifier(name); - default: - return isDeclarationName(name); - } -} -var JsxNames; -(function (JsxNames2) { - JsxNames2.JSX = "JSX"; - JsxNames2.IntrinsicElements = "IntrinsicElements"; - JsxNames2.ElementClass = "ElementClass"; - JsxNames2.ElementAttributesPropertyNameContainer = "ElementAttributesProperty"; - JsxNames2.ElementChildrenAttributeNameContainer = "ElementChildrenAttribute"; - JsxNames2.Element = "Element"; - JsxNames2.ElementType = "ElementType"; - JsxNames2.IntrinsicAttributes = "IntrinsicAttributes"; - JsxNames2.IntrinsicClassAttributes = "IntrinsicClassAttributes"; - JsxNames2.LibraryManagedAttributes = "LibraryManagedAttributes"; -})(JsxNames || (JsxNames = {})); -function getIterationTypesKeyFromIterationTypeKind(typeKind) { - switch (typeKind) { - case 0 /* Yield */: - return "yieldType"; - case 1 /* Return */: - return "returnType"; - case 2 /* Next */: - return "nextType"; - } -} -function signatureHasRestParameter(s) { - return !!(s.flags & 1 /* HasRestParameter */); -} -function signatureHasLiteralTypes(s) { - return !!(s.flags & 2 /* HasLiteralTypes */); -} -function createBasicNodeBuilderModuleSpecifierResolutionHost(host) { - return { - getCommonSourceDirectory: !!host.getCommonSourceDirectory ? function () { return host.getCommonSourceDirectory(); } : function () { return ""; }, - getCurrentDirectory: function () { return host.getCurrentDirectory(); }, - getSymlinkCache: maybeBind(host, host.getSymlinkCache), - getPackageJsonInfoCache: function () { - var _a; - return (_a = host.getPackageJsonInfoCache) == null ? void 0 : _a.call(host); - }, - useCaseSensitiveFileNames: maybeBind(host, host.useCaseSensitiveFileNames), - redirectTargetsMap: host.redirectTargetsMap, - getProjectReferenceRedirect: function (fileName) { return host.getProjectReferenceRedirect(fileName); }, - isSourceOfProjectReferenceRedirect: function (fileName) { return host.isSourceOfProjectReferenceRedirect(fileName); }, - fileExists: function (fileName) { return host.fileExists(fileName); }, - getFileIncludeReasons: function () { return host.getFileIncludeReasons(); }, - readFile: host.readFile ? function (fileName) { return host.readFile(fileName); } : void 0 - }; -} -var SymbolTrackerImpl = /** @class */ (function () { - function _SymbolTrackerImpl(context, tracker, moduleResolverHost) { - this.moduleResolverHost = void 0; - this.inner = void 0; - this.disableTrackSymbol = false; - var _a; - while (tracker instanceof _SymbolTrackerImpl) { - tracker = tracker.inner; - } - this.inner = tracker; - this.moduleResolverHost = moduleResolverHost; - this.context = context; - this.canTrackSymbol = !!((_a = this.inner) == null ? void 0 : _a.trackSymbol); - } - _SymbolTrackerImpl.prototype.trackSymbol = function (symbol, enclosingDeclaration, meaning) { - var _a; - if (((_a = this.inner) == null ? void 0 : _a.trackSymbol) && !this.disableTrackSymbol) { - if (this.inner.trackSymbol(symbol, enclosingDeclaration, meaning)) { - this.onDiagnosticReported(); - return true; - } - } - return false; - }; - _SymbolTrackerImpl.prototype.reportInaccessibleThisError = function () { - var _a; - if ((_a = this.inner) == null ? void 0 : _a.reportInaccessibleThisError) { - this.onDiagnosticReported(); - this.inner.reportInaccessibleThisError(); - } - }; - _SymbolTrackerImpl.prototype.reportPrivateInBaseOfClassExpression = function (propertyName) { - var _a; - if ((_a = this.inner) == null ? void 0 : _a.reportPrivateInBaseOfClassExpression) { - this.onDiagnosticReported(); - this.inner.reportPrivateInBaseOfClassExpression(propertyName); - } - }; - _SymbolTrackerImpl.prototype.reportInaccessibleUniqueSymbolError = function () { - var _a; - if ((_a = this.inner) == null ? void 0 : _a.reportInaccessibleUniqueSymbolError) { - this.onDiagnosticReported(); - this.inner.reportInaccessibleUniqueSymbolError(); - } - }; - _SymbolTrackerImpl.prototype.reportCyclicStructureError = function () { - var _a; - if ((_a = this.inner) == null ? void 0 : _a.reportCyclicStructureError) { - this.onDiagnosticReported(); - this.inner.reportCyclicStructureError(); - } - }; - _SymbolTrackerImpl.prototype.reportLikelyUnsafeImportRequiredError = function (specifier) { - var _a; - if ((_a = this.inner) == null ? void 0 : _a.reportLikelyUnsafeImportRequiredError) { - this.onDiagnosticReported(); - this.inner.reportLikelyUnsafeImportRequiredError(specifier); - } - }; - _SymbolTrackerImpl.prototype.reportTruncationError = function () { - var _a; - if ((_a = this.inner) == null ? void 0 : _a.reportTruncationError) { - this.onDiagnosticReported(); - this.inner.reportTruncationError(); - } - }; - _SymbolTrackerImpl.prototype.trackReferencedAmbientModule = function (decl, symbol) { - var _a; - if ((_a = this.inner) == null ? void 0 : _a.trackReferencedAmbientModule) { - this.onDiagnosticReported(); - this.inner.trackReferencedAmbientModule(decl, symbol); - } - }; - _SymbolTrackerImpl.prototype.trackExternalModuleSymbolOfImportTypeNode = function (symbol) { - var _a; - if ((_a = this.inner) == null ? void 0 : _a.trackExternalModuleSymbolOfImportTypeNode) { - this.onDiagnosticReported(); - this.inner.trackExternalModuleSymbolOfImportTypeNode(symbol); - } - }; - _SymbolTrackerImpl.prototype.reportNonlocalAugmentation = function (containingFile, parentSymbol, augmentingSymbol) { - var _a; - if ((_a = this.inner) == null ? void 0 : _a.reportNonlocalAugmentation) { - this.onDiagnosticReported(); - this.inner.reportNonlocalAugmentation(containingFile, parentSymbol, augmentingSymbol); - } - }; - _SymbolTrackerImpl.prototype.reportNonSerializableProperty = function (propertyName) { - var _a; - if ((_a = this.inner) == null ? void 0 : _a.reportNonSerializableProperty) { - this.onDiagnosticReported(); - this.inner.reportNonSerializableProperty(propertyName); - } - }; - _SymbolTrackerImpl.prototype.reportImportTypeNodeResolutionModeOverride = function () { - var _a; - if ((_a = this.inner) == null ? void 0 : _a.reportImportTypeNodeResolutionModeOverride) { - this.onDiagnosticReported(); - this.inner.reportImportTypeNodeResolutionModeOverride(); - } - }; - _SymbolTrackerImpl.prototype.onDiagnosticReported = function () { - this.context.reportedDiagnostic = true; - }; - return _SymbolTrackerImpl; -}()); -// src/compiler/visitorPublic.ts -function visitNode(node, visitor, test, lift) { - if (node === void 0) { - return node; - } - var visited = visitor(node); - var visitedNode; - if (visited === void 0) { - return void 0; - } - else if (isArray(visited)) { - visitedNode = (lift || extractSingleNode)(visited); - } - else { - visitedNode = visited; - } - Debug.assertNode(visitedNode, test); - return visitedNode; -} -function visitNodes2(nodes, visitor, test, start2, count) { - if (nodes === void 0) { - return nodes; - } - var length2 = nodes.length; - if (start2 === void 0 || start2 < 0) { - start2 = 0; - } - if (count === void 0 || count > length2 - start2) { - count = length2 - start2; - } - var hasTrailingComma; - var pos = -1; - var end = -1; - if (start2 > 0 || count < length2) { - hasTrailingComma = nodes.hasTrailingComma && start2 + count === length2; - } - else { - pos = nodes.pos; - end = nodes.end; - hasTrailingComma = nodes.hasTrailingComma; - } - var updated = visitArrayWorker(nodes, visitor, test, start2, count); - if (updated !== nodes) { - var updatedArray = factory.createNodeArray(updated, hasTrailingComma); - setTextRangePosEnd(updatedArray, pos, end); - return updatedArray; - } - return nodes; -} -function visitArray(nodes, visitor, test, start2, count) { - if (nodes === void 0) { - return nodes; - } - var length2 = nodes.length; - if (start2 === void 0 || start2 < 0) { - start2 = 0; - } - if (count === void 0 || count > length2 - start2) { - count = length2 - start2; - } - return visitArrayWorker(nodes, visitor, test, start2, count); -} -function visitArrayWorker(nodes, visitor, test, start2, count) { - var e_453, _t; - var updated; - var length2 = nodes.length; - if (start2 > 0 || count < length2) { - updated = []; - } - for (var i = 0; i < count; i++) { - var node = nodes[i + start2]; - var visited = node !== void 0 ? visitor ? visitor(node) : node : void 0; - if (updated !== void 0 || visited === void 0 || visited !== node) { - if (updated === void 0) { - updated = nodes.slice(0, i); - Debug.assertEachNode(updated, test); - } - if (visited) { - if (isArray(visited)) { - try { - for (var visited_1 = (e_453 = void 0, __values(visited)), visited_1_1 = visited_1.next(); !visited_1_1.done; visited_1_1 = visited_1.next()) { - var visitedNode = visited_1_1.value; - Debug.assertNode(visitedNode, test); - updated.push(visitedNode); - } - } - catch (e_453_1) { e_453 = { error: e_453_1 }; } - finally { - try { - if (visited_1_1 && !visited_1_1.done && (_t = visited_1.return)) _t.call(visited_1); - } - finally { if (e_453) throw e_453.error; } - } - } - else { - Debug.assertNode(visited, test); - updated.push(visited); - } - } - } - } - if (updated) { - return updated; - } - Debug.assertEachNode(nodes, test); - return nodes; -} -function visitLexicalEnvironment(statements, visitor, context, start2, ensureUseStrict, nodesVisitor) { - if (nodesVisitor === void 0) { nodesVisitor = visitNodes2; } - context.startLexicalEnvironment(); - statements = nodesVisitor(statements, visitor, isStatement, start2); - if (ensureUseStrict) - statements = context.factory.ensureUseStrict(statements); - return factory.mergeLexicalEnvironment(statements, context.endLexicalEnvironment()); -} -function visitParameterList(nodes, visitor, context, nodesVisitor) { - if (nodesVisitor === void 0) { nodesVisitor = visitNodes2; } - var updated; - context.startLexicalEnvironment(); - if (nodes) { - context.setLexicalEnvironmentFlags(1 /* InParameters */, true); - updated = nodesVisitor(nodes, visitor, isParameter); - if (context.getLexicalEnvironmentFlags() & 2 /* VariablesHoistedInParameters */ && getEmitScriptTarget(context.getCompilerOptions()) >= 2 /* ES2015 */) { - updated = addDefaultValueAssignmentsIfNeeded(updated, context); - } - context.setLexicalEnvironmentFlags(1 /* InParameters */, false); - } - context.suspendLexicalEnvironment(); - return updated; -} -function addDefaultValueAssignmentsIfNeeded(parameters, context) { - var result; - for (var i = 0; i < parameters.length; i++) { - var parameter = parameters[i]; - var updated = addDefaultValueAssignmentIfNeeded(parameter, context); - if (result || updated !== parameter) { - if (!result) - result = parameters.slice(0, i); - result[i] = updated; - } - } - if (result) { - return setTextRange(context.factory.createNodeArray(result, parameters.hasTrailingComma), parameters); - } - return parameters; -} -function addDefaultValueAssignmentIfNeeded(parameter, context) { - return parameter.dotDotDotToken ? parameter : isBindingPattern(parameter.name) ? addDefaultValueAssignmentForBindingPattern(parameter, context) : parameter.initializer ? addDefaultValueAssignmentForInitializer(parameter, parameter.name, parameter.initializer, context) : parameter; -} -function addDefaultValueAssignmentForBindingPattern(parameter, context) { - var factory2 = context.factory; - context.addInitializationStatement(factory2.createVariableStatement( - /*modifiers*/ - void 0, factory2.createVariableDeclarationList([ - factory2.createVariableDeclaration(parameter.name, - /*exclamationToken*/ - void 0, parameter.type, parameter.initializer ? factory2.createConditionalExpression(factory2.createStrictEquality(factory2.getGeneratedNameForNode(parameter), factory2.createVoidZero()), - /*questionToken*/ - void 0, parameter.initializer, - /*colonToken*/ - void 0, factory2.getGeneratedNameForNode(parameter)) : factory2.getGeneratedNameForNode(parameter)) - ]))); - return factory2.updateParameterDeclaration(parameter, parameter.modifiers, parameter.dotDotDotToken, factory2.getGeneratedNameForNode(parameter), parameter.questionToken, parameter.type, - /*initializer*/ - void 0); -} -function addDefaultValueAssignmentForInitializer(parameter, name, initializer, context) { - var factory2 = context.factory; - context.addInitializationStatement(factory2.createIfStatement(factory2.createTypeCheck(factory2.cloneNode(name), "undefined"), setEmitFlags(setTextRange(factory2.createBlock([ - factory2.createExpressionStatement(setEmitFlags(setTextRange(factory2.createAssignment(setEmitFlags(factory2.cloneNode(name), 96 /* NoSourceMap */), setEmitFlags(initializer, 96 /* NoSourceMap */ | getEmitFlags(initializer) | 3072 /* NoComments */)), parameter), 3072 /* NoComments */)) - ]), parameter), 1 /* SingleLine */ | 64 /* NoTrailingSourceMap */ | 768 /* NoTokenSourceMaps */ | 3072 /* NoComments */))); - return factory2.updateParameterDeclaration(parameter, parameter.modifiers, parameter.dotDotDotToken, parameter.name, parameter.questionToken, parameter.type, - /*initializer*/ - void 0); -} -function visitFunctionBody(node, visitor, context, nodeVisitor) { - if (nodeVisitor === void 0) { nodeVisitor = visitNode; } - context.resumeLexicalEnvironment(); - var updated = nodeVisitor(node, visitor, isConciseBody); - var declarations = context.endLexicalEnvironment(); - if (some(declarations)) { - if (!updated) { - return context.factory.createBlock(declarations); - } - var block = context.factory.converters.convertToFunctionBlock(updated); - var statements = factory.mergeLexicalEnvironment(block.statements, declarations); - return context.factory.updateBlock(block, statements); - } - return updated; -} -function visitIterationBody(body, visitor, context, nodeVisitor) { - if (nodeVisitor === void 0) { nodeVisitor = visitNode; } - context.startBlockScope(); - var updated = nodeVisitor(body, visitor, isStatement, context.factory.liftToBlock); - Debug.assert(updated); - var declarations = context.endBlockScope(); - if (some(declarations)) { - if (isBlock(updated)) { - declarations.push.apply(declarations, __spreadArray([], __read(updated.statements), false)); - return context.factory.updateBlock(updated, declarations); - } - declarations.push(updated); - return context.factory.createBlock(declarations); - } - return updated; -} -function visitCommaListElements(elements, visitor, discardVisitor) { - if (discardVisitor === void 0) { discardVisitor = visitor; } - if (discardVisitor === visitor || elements.length <= 1) { - return visitNodes2(elements, visitor, isExpression); - } - var i = 0; - var length2 = elements.length; - return visitNodes2(elements, function (node) { - var discarded = i < length2 - 1; - i++; - return discarded ? discardVisitor(node) : visitor(node); - }, isExpression); -} -function visitEachChild(node, visitor, context, nodesVisitor, tokenVisitor, nodeVisitor) { - if (nodesVisitor === void 0) { nodesVisitor = visitNodes2; } - if (nodeVisitor === void 0) { nodeVisitor = visitNode; } - if (node === void 0) { - return void 0; - } - var fn = visitEachChildTable[node.kind]; - return fn === void 0 ? node : fn(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor); -} -var visitEachChildTable = (_v = {}, - _v[166 /* QualifiedName */] = function visitEachChildOfQualifiedName(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateQualifiedName(node, Debug.checkDefined(nodeVisitor(node.left, visitor, isEntityName)), Debug.checkDefined(nodeVisitor(node.right, visitor, isIdentifier))); - }, - _v[167 /* ComputedPropertyName */] = function visitEachChildOfComputedPropertyName(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateComputedPropertyName(node, Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))); - }, - // Signature elements - _v[168 /* TypeParameter */] = function visitEachChildOfTypeParameterDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateTypeParameterDeclaration(node, nodesVisitor(node.modifiers, visitor, isModifier), Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier)), nodeVisitor(node.constraint, visitor, isTypeNode), nodeVisitor(node.default, visitor, isTypeNode)); - }, - _v[169 /* Parameter */] = function visitEachChildOfParameterDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) { - return context.factory.updateParameterDeclaration(node, nodesVisitor(node.modifiers, visitor, isModifierLike), tokenVisitor ? nodeVisitor(node.dotDotDotToken, tokenVisitor, isDotDotDotToken) : node.dotDotDotToken, Debug.checkDefined(nodeVisitor(node.name, visitor, isBindingName)), tokenVisitor ? nodeVisitor(node.questionToken, tokenVisitor, isQuestionToken) : node.questionToken, nodeVisitor(node.type, visitor, isTypeNode), nodeVisitor(node.initializer, visitor, isExpression)); - }, - _v[170 /* Decorator */] = function visitEachChildOfDecorator(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateDecorator(node, Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))); - }, - // Type elements - _v[171 /* PropertySignature */] = function visitEachChildOfPropertySignature(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) { - return context.factory.updatePropertySignature(node, nodesVisitor(node.modifiers, visitor, isModifier), Debug.checkDefined(nodeVisitor(node.name, visitor, isPropertyName)), tokenVisitor ? nodeVisitor(node.questionToken, tokenVisitor, isQuestionToken) : node.questionToken, nodeVisitor(node.type, visitor, isTypeNode)); - }, - _v[172 /* PropertyDeclaration */] = function visitEachChildOfPropertyDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) { - var _t, _u; - return context.factory.updatePropertyDeclaration(node, nodesVisitor(node.modifiers, visitor, isModifierLike), Debug.checkDefined(nodeVisitor(node.name, visitor, isPropertyName)), - // QuestionToken and ExclamationToken are mutually exclusive in PropertyDeclaration - tokenVisitor ? nodeVisitor((_t = node.questionToken) !== null && _t !== void 0 ? _t : node.exclamationToken, tokenVisitor, isQuestionOrExclamationToken) : (_u = node.questionToken) !== null && _u !== void 0 ? _u : node.exclamationToken, nodeVisitor(node.type, visitor, isTypeNode), nodeVisitor(node.initializer, visitor, isExpression)); - }, - _v[173 /* MethodSignature */] = function visitEachChildOfMethodSignature(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) { - return context.factory.updateMethodSignature(node, nodesVisitor(node.modifiers, visitor, isModifier), Debug.checkDefined(nodeVisitor(node.name, visitor, isPropertyName)), tokenVisitor ? nodeVisitor(node.questionToken, tokenVisitor, isQuestionToken) : node.questionToken, nodesVisitor(node.typeParameters, visitor, isTypeParameterDeclaration), nodesVisitor(node.parameters, visitor, isParameter), nodeVisitor(node.type, visitor, isTypeNode)); - }, - _v[174 /* MethodDeclaration */] = function visitEachChildOfMethodDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) { - return context.factory.updateMethodDeclaration(node, nodesVisitor(node.modifiers, visitor, isModifierLike), tokenVisitor ? nodeVisitor(node.asteriskToken, tokenVisitor, isAsteriskToken) : node.asteriskToken, Debug.checkDefined(nodeVisitor(node.name, visitor, isPropertyName)), tokenVisitor ? nodeVisitor(node.questionToken, tokenVisitor, isQuestionToken) : node.questionToken, nodesVisitor(node.typeParameters, visitor, isTypeParameterDeclaration), visitParameterList(node.parameters, visitor, context, nodesVisitor), nodeVisitor(node.type, visitor, isTypeNode), visitFunctionBody(node.body, visitor, context, nodeVisitor)); - }, - _v[176 /* Constructor */] = function visitEachChildOfConstructorDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateConstructorDeclaration(node, nodesVisitor(node.modifiers, visitor, isModifierLike), visitParameterList(node.parameters, visitor, context, nodesVisitor), visitFunctionBody(node.body, visitor, context, nodeVisitor)); - }, - _v[177 /* GetAccessor */] = function visitEachChildOfGetAccessorDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateGetAccessorDeclaration(node, nodesVisitor(node.modifiers, visitor, isModifierLike), Debug.checkDefined(nodeVisitor(node.name, visitor, isPropertyName)), visitParameterList(node.parameters, visitor, context, nodesVisitor), nodeVisitor(node.type, visitor, isTypeNode), visitFunctionBody(node.body, visitor, context, nodeVisitor)); - }, - _v[178 /* SetAccessor */] = function visitEachChildOfSetAccessorDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateSetAccessorDeclaration(node, nodesVisitor(node.modifiers, visitor, isModifierLike), Debug.checkDefined(nodeVisitor(node.name, visitor, isPropertyName)), visitParameterList(node.parameters, visitor, context, nodesVisitor), visitFunctionBody(node.body, visitor, context, nodeVisitor)); - }, - _v[175 /* ClassStaticBlockDeclaration */] = function visitEachChildOfClassStaticBlockDeclaration(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - context.startLexicalEnvironment(); - context.suspendLexicalEnvironment(); - return context.factory.updateClassStaticBlockDeclaration(node, visitFunctionBody(node.body, visitor, context, nodeVisitor)); - }, - _v[179 /* CallSignature */] = function visitEachChildOfCallSignatureDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateCallSignature(node, nodesVisitor(node.typeParameters, visitor, isTypeParameterDeclaration), nodesVisitor(node.parameters, visitor, isParameter), nodeVisitor(node.type, visitor, isTypeNode)); - }, - _v[180 /* ConstructSignature */] = function visitEachChildOfConstructSignatureDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateConstructSignature(node, nodesVisitor(node.typeParameters, visitor, isTypeParameterDeclaration), nodesVisitor(node.parameters, visitor, isParameter), nodeVisitor(node.type, visitor, isTypeNode)); - }, - _v[181 /* IndexSignature */] = function visitEachChildOfIndexSignatureDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateIndexSignature(node, nodesVisitor(node.modifiers, visitor, isModifierLike), nodesVisitor(node.parameters, visitor, isParameter), Debug.checkDefined(nodeVisitor(node.type, visitor, isTypeNode))); - }, - // Types - _v[182 /* TypePredicate */] = function visitEachChildOfTypePredicateNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateTypePredicateNode(node, nodeVisitor(node.assertsModifier, visitor, isAssertsKeyword), Debug.checkDefined(nodeVisitor(node.parameterName, visitor, isIdentifierOrThisTypeNode)), nodeVisitor(node.type, visitor, isTypeNode)); - }, - _v[183 /* TypeReference */] = function visitEachChildOfTypeReferenceNode(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateTypeReferenceNode(node, Debug.checkDefined(nodeVisitor(node.typeName, visitor, isEntityName)), nodesVisitor(node.typeArguments, visitor, isTypeNode)); - }, - _v[184 /* FunctionType */] = function visitEachChildOfFunctionTypeNode(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateFunctionTypeNode(node, nodesVisitor(node.typeParameters, visitor, isTypeParameterDeclaration), nodesVisitor(node.parameters, visitor, isParameter), Debug.checkDefined(nodeVisitor(node.type, visitor, isTypeNode))); - }, - _v[185 /* ConstructorType */] = function visitEachChildOfConstructorTypeNode(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateConstructorTypeNode(node, nodesVisitor(node.modifiers, visitor, isModifier), nodesVisitor(node.typeParameters, visitor, isTypeParameterDeclaration), nodesVisitor(node.parameters, visitor, isParameter), Debug.checkDefined(nodeVisitor(node.type, visitor, isTypeNode))); - }, - _v[186 /* TypeQuery */] = function visitEachChildOfTypeQueryNode(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateTypeQueryNode(node, Debug.checkDefined(nodeVisitor(node.exprName, visitor, isEntityName)), nodesVisitor(node.typeArguments, visitor, isTypeNode)); - }, - _v[187 /* TypeLiteral */] = function visitEachChildOfTypeLiteralNode(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) { - return context.factory.updateTypeLiteralNode(node, nodesVisitor(node.members, visitor, isTypeElement)); - }, - _v[188 /* ArrayType */] = function visitEachChildOfArrayTypeNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateArrayTypeNode(node, Debug.checkDefined(nodeVisitor(node.elementType, visitor, isTypeNode))); - }, - _v[189 /* TupleType */] = function visitEachChildOfTupleTypeNode(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) { - return context.factory.updateTupleTypeNode(node, nodesVisitor(node.elements, visitor, isTypeNode)); - }, - _v[190 /* OptionalType */] = function visitEachChildOfOptionalTypeNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateOptionalTypeNode(node, Debug.checkDefined(nodeVisitor(node.type, visitor, isTypeNode))); - }, - _v[191 /* RestType */] = function visitEachChildOfRestTypeNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateRestTypeNode(node, Debug.checkDefined(nodeVisitor(node.type, visitor, isTypeNode))); - }, - _v[192 /* UnionType */] = function visitEachChildOfUnionTypeNode(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) { - return context.factory.updateUnionTypeNode(node, nodesVisitor(node.types, visitor, isTypeNode)); - }, - _v[193 /* IntersectionType */] = function visitEachChildOfIntersectionTypeNode(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) { - return context.factory.updateIntersectionTypeNode(node, nodesVisitor(node.types, visitor, isTypeNode)); - }, - _v[194 /* ConditionalType */] = function visitEachChildOfConditionalTypeNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateConditionalTypeNode(node, Debug.checkDefined(nodeVisitor(node.checkType, visitor, isTypeNode)), Debug.checkDefined(nodeVisitor(node.extendsType, visitor, isTypeNode)), Debug.checkDefined(nodeVisitor(node.trueType, visitor, isTypeNode)), Debug.checkDefined(nodeVisitor(node.falseType, visitor, isTypeNode))); - }, - _v[195 /* InferType */] = function visitEachChildOfInferTypeNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateInferTypeNode(node, Debug.checkDefined(nodeVisitor(node.typeParameter, visitor, isTypeParameterDeclaration))); - }, - _v[205 /* ImportType */] = function visitEachChildOfImportTypeNode(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateImportTypeNode(node, Debug.checkDefined(nodeVisitor(node.argument, visitor, isTypeNode)), nodeVisitor(node.assertions, visitor, isImportTypeAssertionContainer), nodeVisitor(node.qualifier, visitor, isEntityName), nodesVisitor(node.typeArguments, visitor, isTypeNode), node.isTypeOf); - }, - _v[302 /* ImportTypeAssertionContainer */] = function visitEachChildOfImportTypeAssertionContainer(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateImportTypeAssertionContainer(node, Debug.checkDefined(nodeVisitor(node.assertClause, visitor, isAssertClause)), node.multiLine); - }, - _v[202 /* NamedTupleMember */] = function visitEachChildOfNamedTupleMember(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) { - return context.factory.updateNamedTupleMember(node, tokenVisitor ? nodeVisitor(node.dotDotDotToken, tokenVisitor, isDotDotDotToken) : node.dotDotDotToken, Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier)), tokenVisitor ? nodeVisitor(node.questionToken, tokenVisitor, isQuestionToken) : node.questionToken, Debug.checkDefined(nodeVisitor(node.type, visitor, isTypeNode))); - }, - _v[196 /* ParenthesizedType */] = function visitEachChildOfParenthesizedType(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateParenthesizedType(node, Debug.checkDefined(nodeVisitor(node.type, visitor, isTypeNode))); - }, - _v[198 /* TypeOperator */] = function visitEachChildOfTypeOperatorNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateTypeOperatorNode(node, Debug.checkDefined(nodeVisitor(node.type, visitor, isTypeNode))); - }, - _v[199 /* IndexedAccessType */] = function visitEachChildOfIndexedAccessType(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateIndexedAccessTypeNode(node, Debug.checkDefined(nodeVisitor(node.objectType, visitor, isTypeNode)), Debug.checkDefined(nodeVisitor(node.indexType, visitor, isTypeNode))); - }, - _v[200 /* MappedType */] = function visitEachChildOfMappedType(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) { - return context.factory.updateMappedTypeNode(node, tokenVisitor ? nodeVisitor(node.readonlyToken, tokenVisitor, isReadonlyKeywordOrPlusOrMinusToken) : node.readonlyToken, Debug.checkDefined(nodeVisitor(node.typeParameter, visitor, isTypeParameterDeclaration)), nodeVisitor(node.nameType, visitor, isTypeNode), tokenVisitor ? nodeVisitor(node.questionToken, tokenVisitor, isQuestionOrPlusOrMinusToken) : node.questionToken, nodeVisitor(node.type, visitor, isTypeNode), nodesVisitor(node.members, visitor, isTypeElement)); - }, - _v[201 /* LiteralType */] = function visitEachChildOfLiteralTypeNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateLiteralTypeNode(node, Debug.checkDefined(nodeVisitor(node.literal, visitor, isLiteralTypeLiteral))); - }, - _v[203 /* TemplateLiteralType */] = function visitEachChildOfTemplateLiteralType(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateTemplateLiteralType(node, Debug.checkDefined(nodeVisitor(node.head, visitor, isTemplateHead)), nodesVisitor(node.templateSpans, visitor, isTemplateLiteralTypeSpan)); - }, - _v[204 /* TemplateLiteralTypeSpan */] = function visitEachChildOfTemplateLiteralTypeSpan(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateTemplateLiteralTypeSpan(node, Debug.checkDefined(nodeVisitor(node.type, visitor, isTypeNode)), Debug.checkDefined(nodeVisitor(node.literal, visitor, isTemplateMiddleOrTemplateTail))); - }, - // Binding patterns - _v[206 /* ObjectBindingPattern */] = function visitEachChildOfObjectBindingPattern(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) { - return context.factory.updateObjectBindingPattern(node, nodesVisitor(node.elements, visitor, isBindingElement)); - }, - _v[207 /* ArrayBindingPattern */] = function visitEachChildOfArrayBindingPattern(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) { - return context.factory.updateArrayBindingPattern(node, nodesVisitor(node.elements, visitor, isArrayBindingElement)); - }, - _v[208 /* BindingElement */] = function visitEachChildOfBindingElement(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) { - return context.factory.updateBindingElement(node, tokenVisitor ? nodeVisitor(node.dotDotDotToken, tokenVisitor, isDotDotDotToken) : node.dotDotDotToken, nodeVisitor(node.propertyName, visitor, isPropertyName), Debug.checkDefined(nodeVisitor(node.name, visitor, isBindingName)), nodeVisitor(node.initializer, visitor, isExpression)); - }, - // Expression - _v[209 /* ArrayLiteralExpression */] = function visitEachChildOfArrayLiteralExpression(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) { - return context.factory.updateArrayLiteralExpression(node, nodesVisitor(node.elements, visitor, isExpression)); - }, - _v[210 /* ObjectLiteralExpression */] = function visitEachChildOfObjectLiteralExpression(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) { - return context.factory.updateObjectLiteralExpression(node, nodesVisitor(node.properties, visitor, isObjectLiteralElementLike)); - }, - _v[211 /* PropertyAccessExpression */] = function visitEachChildOfPropertyAccessExpression(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) { - return isPropertyAccessChain(node) ? context.factory.updatePropertyAccessChain(node, Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)), tokenVisitor ? nodeVisitor(node.questionDotToken, tokenVisitor, isQuestionDotToken) : node.questionDotToken, Debug.checkDefined(nodeVisitor(node.name, visitor, isMemberName))) : context.factory.updatePropertyAccessExpression(node, Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)), Debug.checkDefined(nodeVisitor(node.name, visitor, isMemberName))); - }, - _v[212 /* ElementAccessExpression */] = function visitEachChildOfElementAccessExpression(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) { - return isElementAccessChain(node) ? context.factory.updateElementAccessChain(node, Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)), tokenVisitor ? nodeVisitor(node.questionDotToken, tokenVisitor, isQuestionDotToken) : node.questionDotToken, Debug.checkDefined(nodeVisitor(node.argumentExpression, visitor, isExpression))) : context.factory.updateElementAccessExpression(node, Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)), Debug.checkDefined(nodeVisitor(node.argumentExpression, visitor, isExpression))); - }, - _v[213 /* CallExpression */] = function visitEachChildOfCallExpression(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) { - return isCallChain(node) ? context.factory.updateCallChain(node, Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)), tokenVisitor ? nodeVisitor(node.questionDotToken, tokenVisitor, isQuestionDotToken) : node.questionDotToken, nodesVisitor(node.typeArguments, visitor, isTypeNode), nodesVisitor(node.arguments, visitor, isExpression)) : context.factory.updateCallExpression(node, Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)), nodesVisitor(node.typeArguments, visitor, isTypeNode), nodesVisitor(node.arguments, visitor, isExpression)); - }, - _v[214 /* NewExpression */] = function visitEachChildOfNewExpression(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateNewExpression(node, Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)), nodesVisitor(node.typeArguments, visitor, isTypeNode), nodesVisitor(node.arguments, visitor, isExpression)); - }, - _v[215 /* TaggedTemplateExpression */] = function visitEachChildOfTaggedTemplateExpression(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateTaggedTemplateExpression(node, Debug.checkDefined(nodeVisitor(node.tag, visitor, isExpression)), nodesVisitor(node.typeArguments, visitor, isTypeNode), Debug.checkDefined(nodeVisitor(node.template, visitor, isTemplateLiteral))); - }, - _v[216 /* TypeAssertionExpression */] = function visitEachChildOfTypeAssertionExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateTypeAssertion(node, Debug.checkDefined(nodeVisitor(node.type, visitor, isTypeNode)), Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))); - }, - _v[217 /* ParenthesizedExpression */] = function visitEachChildOfParenthesizedExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateParenthesizedExpression(node, Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))); - }, - _v[218 /* FunctionExpression */] = function visitEachChildOfFunctionExpression(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) { - return context.factory.updateFunctionExpression(node, nodesVisitor(node.modifiers, visitor, isModifier), tokenVisitor ? nodeVisitor(node.asteriskToken, tokenVisitor, isAsteriskToken) : node.asteriskToken, nodeVisitor(node.name, visitor, isIdentifier), nodesVisitor(node.typeParameters, visitor, isTypeParameterDeclaration), visitParameterList(node.parameters, visitor, context, nodesVisitor), nodeVisitor(node.type, visitor, isTypeNode), visitFunctionBody(node.body, visitor, context, nodeVisitor)); - }, - _v[219 /* ArrowFunction */] = function visitEachChildOfArrowFunction(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) { - return context.factory.updateArrowFunction(node, nodesVisitor(node.modifiers, visitor, isModifier), nodesVisitor(node.typeParameters, visitor, isTypeParameterDeclaration), visitParameterList(node.parameters, visitor, context, nodesVisitor), nodeVisitor(node.type, visitor, isTypeNode), tokenVisitor ? Debug.checkDefined(nodeVisitor(node.equalsGreaterThanToken, tokenVisitor, isEqualsGreaterThanToken)) : node.equalsGreaterThanToken, visitFunctionBody(node.body, visitor, context, nodeVisitor)); - }, - _v[220 /* DeleteExpression */] = function visitEachChildOfDeleteExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateDeleteExpression(node, Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))); - }, - _v[221 /* TypeOfExpression */] = function visitEachChildOfTypeOfExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateTypeOfExpression(node, Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))); - }, - _v[222 /* VoidExpression */] = function visitEachChildOfVoidExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateVoidExpression(node, Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))); - }, - _v[223 /* AwaitExpression */] = function visitEachChildOfAwaitExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateAwaitExpression(node, Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))); - }, - _v[224 /* PrefixUnaryExpression */] = function visitEachChildOfPrefixUnaryExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updatePrefixUnaryExpression(node, Debug.checkDefined(nodeVisitor(node.operand, visitor, isExpression))); - }, - _v[225 /* PostfixUnaryExpression */] = function visitEachChildOfPostfixUnaryExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updatePostfixUnaryExpression(node, Debug.checkDefined(nodeVisitor(node.operand, visitor, isExpression))); - }, - _v[226 /* BinaryExpression */] = function visitEachChildOfBinaryExpression(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) { - return context.factory.updateBinaryExpression(node, Debug.checkDefined(nodeVisitor(node.left, visitor, isExpression)), tokenVisitor ? Debug.checkDefined(nodeVisitor(node.operatorToken, tokenVisitor, isBinaryOperatorToken)) : node.operatorToken, Debug.checkDefined(nodeVisitor(node.right, visitor, isExpression))); - }, - _v[227 /* ConditionalExpression */] = function visitEachChildOfConditionalExpression(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) { - return context.factory.updateConditionalExpression(node, Debug.checkDefined(nodeVisitor(node.condition, visitor, isExpression)), tokenVisitor ? Debug.checkDefined(nodeVisitor(node.questionToken, tokenVisitor, isQuestionToken)) : node.questionToken, Debug.checkDefined(nodeVisitor(node.whenTrue, visitor, isExpression)), tokenVisitor ? Debug.checkDefined(nodeVisitor(node.colonToken, tokenVisitor, isColonToken)) : node.colonToken, Debug.checkDefined(nodeVisitor(node.whenFalse, visitor, isExpression))); - }, - _v[228 /* TemplateExpression */] = function visitEachChildOfTemplateExpression(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateTemplateExpression(node, Debug.checkDefined(nodeVisitor(node.head, visitor, isTemplateHead)), nodesVisitor(node.templateSpans, visitor, isTemplateSpan)); - }, - _v[229 /* YieldExpression */] = function visitEachChildOfYieldExpression(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) { - return context.factory.updateYieldExpression(node, tokenVisitor ? nodeVisitor(node.asteriskToken, tokenVisitor, isAsteriskToken) : node.asteriskToken, nodeVisitor(node.expression, visitor, isExpression)); - }, - _v[230 /* SpreadElement */] = function visitEachChildOfSpreadElement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateSpreadElement(node, Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))); - }, - _v[231 /* ClassExpression */] = function visitEachChildOfClassExpression(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateClassExpression(node, nodesVisitor(node.modifiers, visitor, isModifierLike), nodeVisitor(node.name, visitor, isIdentifier), nodesVisitor(node.typeParameters, visitor, isTypeParameterDeclaration), nodesVisitor(node.heritageClauses, visitor, isHeritageClause), nodesVisitor(node.members, visitor, isClassElement)); - }, - _v[233 /* ExpressionWithTypeArguments */] = function visitEachChildOfExpressionWithTypeArguments(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateExpressionWithTypeArguments(node, Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)), nodesVisitor(node.typeArguments, visitor, isTypeNode)); - }, - _v[234 /* AsExpression */] = function visitEachChildOfAsExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateAsExpression(node, Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)), Debug.checkDefined(nodeVisitor(node.type, visitor, isTypeNode))); - }, - _v[238 /* SatisfiesExpression */] = function visitEachChildOfSatisfiesExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateSatisfiesExpression(node, Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)), Debug.checkDefined(nodeVisitor(node.type, visitor, isTypeNode))); - }, - _v[235 /* NonNullExpression */] = function visitEachChildOfNonNullExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return isOptionalChain(node) ? context.factory.updateNonNullChain(node, Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))) : context.factory.updateNonNullExpression(node, Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))); - }, - _v[236 /* MetaProperty */] = function visitEachChildOfMetaProperty(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateMetaProperty(node, Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier))); - }, - // Misc - _v[239 /* TemplateSpan */] = function visitEachChildOfTemplateSpan(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateTemplateSpan(node, Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)), Debug.checkDefined(nodeVisitor(node.literal, visitor, isTemplateMiddleOrTemplateTail))); - }, - // Element - _v[241 /* Block */] = function visitEachChildOfBlock(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) { - return context.factory.updateBlock(node, nodesVisitor(node.statements, visitor, isStatement)); - }, - _v[243 /* VariableStatement */] = function visitEachChildOfVariableStatement(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateVariableStatement(node, nodesVisitor(node.modifiers, visitor, isModifierLike), Debug.checkDefined(nodeVisitor(node.declarationList, visitor, isVariableDeclarationList))); - }, - _v[244 /* ExpressionStatement */] = function visitEachChildOfExpressionStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateExpressionStatement(node, Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))); - }, - _v[245 /* IfStatement */] = function visitEachChildOfIfStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateIfStatement(node, Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)), Debug.checkDefined(nodeVisitor(node.thenStatement, visitor, isStatement, context.factory.liftToBlock)), nodeVisitor(node.elseStatement, visitor, isStatement, context.factory.liftToBlock)); - }, - _v[246 /* DoStatement */] = function visitEachChildOfDoStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateDoStatement(node, visitIterationBody(node.statement, visitor, context, nodeVisitor), Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))); - }, - _v[247 /* WhileStatement */] = function visitEachChildOfWhileStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateWhileStatement(node, Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)), visitIterationBody(node.statement, visitor, context, nodeVisitor)); - }, - _v[248 /* ForStatement */] = function visitEachChildOfForStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateForStatement(node, nodeVisitor(node.initializer, visitor, isForInitializer), nodeVisitor(node.condition, visitor, isExpression), nodeVisitor(node.incrementor, visitor, isExpression), visitIterationBody(node.statement, visitor, context, nodeVisitor)); - }, - _v[249 /* ForInStatement */] = function visitEachChildOfForInStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateForInStatement(node, Debug.checkDefined(nodeVisitor(node.initializer, visitor, isForInitializer)), Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)), visitIterationBody(node.statement, visitor, context, nodeVisitor)); - }, - _v[250 /* ForOfStatement */] = function visitEachChildOfForOfStatement(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) { - return context.factory.updateForOfStatement(node, tokenVisitor ? nodeVisitor(node.awaitModifier, tokenVisitor, isAwaitKeyword) : node.awaitModifier, Debug.checkDefined(nodeVisitor(node.initializer, visitor, isForInitializer)), Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)), visitIterationBody(node.statement, visitor, context, nodeVisitor)); - }, - _v[251 /* ContinueStatement */] = function visitEachChildOfContinueStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateContinueStatement(node, nodeVisitor(node.label, visitor, isIdentifier)); - }, - _v[252 /* BreakStatement */] = function visitEachChildOfBreakStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateBreakStatement(node, nodeVisitor(node.label, visitor, isIdentifier)); - }, - _v[253 /* ReturnStatement */] = function visitEachChildOfReturnStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateReturnStatement(node, nodeVisitor(node.expression, visitor, isExpression)); - }, - _v[254 /* WithStatement */] = function visitEachChildOfWithStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateWithStatement(node, Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)), Debug.checkDefined(nodeVisitor(node.statement, visitor, isStatement, context.factory.liftToBlock))); - }, - _v[255 /* SwitchStatement */] = function visitEachChildOfSwitchStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateSwitchStatement(node, Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)), Debug.checkDefined(nodeVisitor(node.caseBlock, visitor, isCaseBlock))); - }, - _v[256 /* LabeledStatement */] = function visitEachChildOfLabeledStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateLabeledStatement(node, Debug.checkDefined(nodeVisitor(node.label, visitor, isIdentifier)), Debug.checkDefined(nodeVisitor(node.statement, visitor, isStatement, context.factory.liftToBlock))); - }, - _v[257 /* ThrowStatement */] = function visitEachChildOfThrowStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateThrowStatement(node, Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))); - }, - _v[258 /* TryStatement */] = function visitEachChildOfTryStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateTryStatement(node, Debug.checkDefined(nodeVisitor(node.tryBlock, visitor, isBlock)), nodeVisitor(node.catchClause, visitor, isCatchClause), nodeVisitor(node.finallyBlock, visitor, isBlock)); - }, - _v[260 /* VariableDeclaration */] = function visitEachChildOfVariableDeclaration(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) { - return context.factory.updateVariableDeclaration(node, Debug.checkDefined(nodeVisitor(node.name, visitor, isBindingName)), tokenVisitor ? nodeVisitor(node.exclamationToken, tokenVisitor, isExclamationToken) : node.exclamationToken, nodeVisitor(node.type, visitor, isTypeNode), nodeVisitor(node.initializer, visitor, isExpression)); - }, - _v[261 /* VariableDeclarationList */] = function visitEachChildOfVariableDeclarationList(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) { - return context.factory.updateVariableDeclarationList(node, nodesVisitor(node.declarations, visitor, isVariableDeclaration)); - }, - _v[262 /* FunctionDeclaration */] = function visitEachChildOfFunctionDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) { - return context.factory.updateFunctionDeclaration(node, nodesVisitor(node.modifiers, visitor, isModifier), tokenVisitor ? nodeVisitor(node.asteriskToken, tokenVisitor, isAsteriskToken) : node.asteriskToken, nodeVisitor(node.name, visitor, isIdentifier), nodesVisitor(node.typeParameters, visitor, isTypeParameterDeclaration), visitParameterList(node.parameters, visitor, context, nodesVisitor), nodeVisitor(node.type, visitor, isTypeNode), visitFunctionBody(node.body, visitor, context, nodeVisitor)); - }, - _v[263 /* ClassDeclaration */] = function visitEachChildOfClassDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateClassDeclaration(node, nodesVisitor(node.modifiers, visitor, isModifierLike), nodeVisitor(node.name, visitor, isIdentifier), nodesVisitor(node.typeParameters, visitor, isTypeParameterDeclaration), nodesVisitor(node.heritageClauses, visitor, isHeritageClause), nodesVisitor(node.members, visitor, isClassElement)); - }, - _v[264 /* InterfaceDeclaration */] = function visitEachChildOfInterfaceDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateInterfaceDeclaration(node, nodesVisitor(node.modifiers, visitor, isModifierLike), Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier)), nodesVisitor(node.typeParameters, visitor, isTypeParameterDeclaration), nodesVisitor(node.heritageClauses, visitor, isHeritageClause), nodesVisitor(node.members, visitor, isTypeElement)); - }, - _v[265 /* TypeAliasDeclaration */] = function visitEachChildOfTypeAliasDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateTypeAliasDeclaration(node, nodesVisitor(node.modifiers, visitor, isModifierLike), Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier)), nodesVisitor(node.typeParameters, visitor, isTypeParameterDeclaration), Debug.checkDefined(nodeVisitor(node.type, visitor, isTypeNode))); - }, - _v[266 /* EnumDeclaration */] = function visitEachChildOfEnumDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateEnumDeclaration(node, nodesVisitor(node.modifiers, visitor, isModifierLike), Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier)), nodesVisitor(node.members, visitor, isEnumMember)); - }, - _v[267 /* ModuleDeclaration */] = function visitEachChildOfModuleDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateModuleDeclaration(node, nodesVisitor(node.modifiers, visitor, isModifierLike), Debug.checkDefined(nodeVisitor(node.name, visitor, isModuleName)), nodeVisitor(node.body, visitor, isModuleBody)); - }, - _v[268 /* ModuleBlock */] = function visitEachChildOfModuleBlock(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) { - return context.factory.updateModuleBlock(node, nodesVisitor(node.statements, visitor, isStatement)); - }, - _v[269 /* CaseBlock */] = function visitEachChildOfCaseBlock(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) { - return context.factory.updateCaseBlock(node, nodesVisitor(node.clauses, visitor, isCaseOrDefaultClause)); - }, - _v[270 /* NamespaceExportDeclaration */] = function visitEachChildOfNamespaceExportDeclaration(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateNamespaceExportDeclaration(node, Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier))); - }, - _v[271 /* ImportEqualsDeclaration */] = function visitEachChildOfImportEqualsDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateImportEqualsDeclaration(node, nodesVisitor(node.modifiers, visitor, isModifierLike), node.isTypeOnly, Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier)), Debug.checkDefined(nodeVisitor(node.moduleReference, visitor, isModuleReference))); - }, - _v[272 /* ImportDeclaration */] = function visitEachChildOfImportDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateImportDeclaration(node, nodesVisitor(node.modifiers, visitor, isModifierLike), nodeVisitor(node.importClause, visitor, isImportClause), Debug.checkDefined(nodeVisitor(node.moduleSpecifier, visitor, isExpression)), nodeVisitor(node.assertClause, visitor, isAssertClause)); - }, - _v[300 /* AssertClause */] = function visitEachChildOfAssertClause(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) { - return context.factory.updateAssertClause(node, nodesVisitor(node.elements, visitor, isAssertEntry), node.multiLine); - }, - _v[301 /* AssertEntry */] = function visitEachChildOfAssertEntry(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateAssertEntry(node, Debug.checkDefined(nodeVisitor(node.name, visitor, isAssertionKey)), Debug.checkDefined(nodeVisitor(node.value, visitor, isExpression))); - }, - _v[273 /* ImportClause */] = function visitEachChildOfImportClause(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateImportClause(node, node.isTypeOnly, nodeVisitor(node.name, visitor, isIdentifier), nodeVisitor(node.namedBindings, visitor, isNamedImportBindings)); - }, - _v[274 /* NamespaceImport */] = function visitEachChildOfNamespaceImport(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateNamespaceImport(node, Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier))); - }, - _v[280 /* NamespaceExport */] = function visitEachChildOfNamespaceExport(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateNamespaceExport(node, Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier))); - }, - _v[275 /* NamedImports */] = function visitEachChildOfNamedImports(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) { - return context.factory.updateNamedImports(node, nodesVisitor(node.elements, visitor, isImportSpecifier)); - }, - _v[276 /* ImportSpecifier */] = function visitEachChildOfImportSpecifier(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateImportSpecifier(node, node.isTypeOnly, nodeVisitor(node.propertyName, visitor, isIdentifier), Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier))); - }, - _v[277 /* ExportAssignment */] = function visitEachChildOfExportAssignment(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateExportAssignment(node, nodesVisitor(node.modifiers, visitor, isModifierLike), Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))); - }, - _v[278 /* ExportDeclaration */] = function visitEachChildOfExportDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateExportDeclaration(node, nodesVisitor(node.modifiers, visitor, isModifierLike), node.isTypeOnly, nodeVisitor(node.exportClause, visitor, isNamedExportBindings), nodeVisitor(node.moduleSpecifier, visitor, isExpression), nodeVisitor(node.assertClause, visitor, isAssertClause)); - }, - _v[279 /* NamedExports */] = function visitEachChildOfNamedExports(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) { - return context.factory.updateNamedExports(node, nodesVisitor(node.elements, visitor, isExportSpecifier)); - }, - _v[281 /* ExportSpecifier */] = function visitEachChildOfExportSpecifier(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateExportSpecifier(node, node.isTypeOnly, nodeVisitor(node.propertyName, visitor, isIdentifier), Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier))); - }, - // Module references - _v[283 /* ExternalModuleReference */] = function visitEachChildOfExternalModuleReference(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateExternalModuleReference(node, Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))); - }, - // JSX - _v[284 /* JsxElement */] = function visitEachChildOfJsxElement(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateJsxElement(node, Debug.checkDefined(nodeVisitor(node.openingElement, visitor, isJsxOpeningElement)), nodesVisitor(node.children, visitor, isJsxChild), Debug.checkDefined(nodeVisitor(node.closingElement, visitor, isJsxClosingElement))); - }, - _v[285 /* JsxSelfClosingElement */] = function visitEachChildOfJsxSelfClosingElement(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateJsxSelfClosingElement(node, Debug.checkDefined(nodeVisitor(node.tagName, visitor, isJsxTagNameExpression)), nodesVisitor(node.typeArguments, visitor, isTypeNode), Debug.checkDefined(nodeVisitor(node.attributes, visitor, isJsxAttributes))); - }, - _v[286 /* JsxOpeningElement */] = function visitEachChildOfJsxOpeningElement(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateJsxOpeningElement(node, Debug.checkDefined(nodeVisitor(node.tagName, visitor, isJsxTagNameExpression)), nodesVisitor(node.typeArguments, visitor, isTypeNode), Debug.checkDefined(nodeVisitor(node.attributes, visitor, isJsxAttributes))); - }, - _v[287 /* JsxClosingElement */] = function visitEachChildOfJsxClosingElement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateJsxClosingElement(node, Debug.checkDefined(nodeVisitor(node.tagName, visitor, isJsxTagNameExpression))); - }, - _v[295 /* JsxNamespacedName */] = function forEachChildInJsxNamespacedName2(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateJsxNamespacedName(node, Debug.checkDefined(nodeVisitor(node.namespace, visitor, isIdentifier)), Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier))); - }, - _v[288 /* JsxFragment */] = function visitEachChildOfJsxFragment(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateJsxFragment(node, Debug.checkDefined(nodeVisitor(node.openingFragment, visitor, isJsxOpeningFragment)), nodesVisitor(node.children, visitor, isJsxChild), Debug.checkDefined(nodeVisitor(node.closingFragment, visitor, isJsxClosingFragment))); - }, - _v[291 /* JsxAttribute */] = function visitEachChildOfJsxAttribute(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateJsxAttribute(node, Debug.checkDefined(nodeVisitor(node.name, visitor, isJsxAttributeName)), nodeVisitor(node.initializer, visitor, isStringLiteralOrJsxExpression)); - }, - _v[292 /* JsxAttributes */] = function visitEachChildOfJsxAttributes(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) { - return context.factory.updateJsxAttributes(node, nodesVisitor(node.properties, visitor, isJsxAttributeLike)); - }, - _v[293 /* JsxSpreadAttribute */] = function visitEachChildOfJsxSpreadAttribute(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateJsxSpreadAttribute(node, Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))); - }, - _v[294 /* JsxExpression */] = function visitEachChildOfJsxExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateJsxExpression(node, nodeVisitor(node.expression, visitor, isExpression)); - }, - // Clauses - _v[296 /* CaseClause */] = function visitEachChildOfCaseClause(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateCaseClause(node, Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)), nodesVisitor(node.statements, visitor, isStatement)); - }, - _v[297 /* DefaultClause */] = function visitEachChildOfDefaultClause(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) { - return context.factory.updateDefaultClause(node, nodesVisitor(node.statements, visitor, isStatement)); - }, - _v[298 /* HeritageClause */] = function visitEachChildOfHeritageClause(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) { - return context.factory.updateHeritageClause(node, nodesVisitor(node.types, visitor, isExpressionWithTypeArguments)); - }, - _v[299 /* CatchClause */] = function visitEachChildOfCatchClause(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateCatchClause(node, nodeVisitor(node.variableDeclaration, visitor, isVariableDeclaration), Debug.checkDefined(nodeVisitor(node.block, visitor, isBlock))); - }, - // Property assignments - _v[303 /* PropertyAssignment */] = function visitEachChildOfPropertyAssignment(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updatePropertyAssignment(node, Debug.checkDefined(nodeVisitor(node.name, visitor, isPropertyName)), Debug.checkDefined(nodeVisitor(node.initializer, visitor, isExpression))); - }, - _v[304 /* ShorthandPropertyAssignment */] = function visitEachChildOfShorthandPropertyAssignment(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateShorthandPropertyAssignment(node, Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier)), nodeVisitor(node.objectAssignmentInitializer, visitor, isExpression)); - }, - _v[305 /* SpreadAssignment */] = function visitEachChildOfSpreadAssignment(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateSpreadAssignment(node, Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))); - }, - // Enum - _v[306 /* EnumMember */] = function visitEachChildOfEnumMember(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updateEnumMember(node, Debug.checkDefined(nodeVisitor(node.name, visitor, isPropertyName)), nodeVisitor(node.initializer, visitor, isExpression)); - }, - // Top-level nodes - _v[312 /* SourceFile */] = function visitEachChildOfSourceFile(node, visitor, context, _nodesVisitor, _nodeVisitor, _tokenVisitor) { - return context.factory.updateSourceFile(node, visitLexicalEnvironment(node.statements, visitor, context)); - }, - // Transformation nodes - _v[360 /* PartiallyEmittedExpression */] = function visitEachChildOfPartiallyEmittedExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { - return context.factory.updatePartiallyEmittedExpression(node, Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))); - }, - _v[361 /* CommaListExpression */] = function visitEachChildOfCommaListExpression(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) { - return context.factory.updateCommaListExpression(node, nodesVisitor(node.elements, visitor, isExpression)); - }, - _v); -function extractSingleNode(nodes) { - Debug.assert(nodes.length <= 1, "Too many nodes written to output."); - return singleOrUndefined(nodes); -} -// src/compiler/sourcemap.ts -function createSourceMapGenerator(host, file, sourceRoot, sourcesDirectoryPath, generatorOptions) { - var _t = generatorOptions.extendedDiagnostics ? createTimer("Source Map", "beforeSourcemap", "afterSourcemap") : nullTimer, enter = _t.enter, exit = _t.exit; - var rawSources = []; - var sources = []; - var sourceToSourceIndexMap = /* @__PURE__ */ new Map(); - var sourcesContent; - var names = []; - var nameToNameIndexMap; - var mappingCharCodes = []; - var mappings = ""; - var lastGeneratedLine = 0; - var lastGeneratedCharacter = 0; - var lastSourceIndex = 0; - var lastSourceLine = 0; - var lastSourceCharacter = 0; - var lastNameIndex = 0; - var hasLast = false; - var pendingGeneratedLine = 0; - var pendingGeneratedCharacter = 0; - var pendingSourceIndex = 0; - var pendingSourceLine = 0; - var pendingSourceCharacter = 0; - var pendingNameIndex = 0; - var hasPending = false; - var hasPendingSource = false; - var hasPendingName = false; - return { - getSources: function () { return rawSources; }, - addSource: addSource, - setSourceContent: setSourceContent, - addName: addName, - addMapping: addMapping, - appendSourceMap: appendSourceMap, - toJSON: toJSON, - toString: function () { return JSON.stringify(toJSON()); } - }; - function addSource(fileName) { - enter(); - var source = getRelativePathToDirectoryOrUrl(sourcesDirectoryPath, fileName, host.getCurrentDirectory(), host.getCanonicalFileName, - /*isAbsolutePathAnUrl*/ - true); - var sourceIndex = sourceToSourceIndexMap.get(source); - if (sourceIndex === void 0) { - sourceIndex = sources.length; - sources.push(source); - rawSources.push(fileName); - sourceToSourceIndexMap.set(source, sourceIndex); - } - exit(); - return sourceIndex; - } - function setSourceContent(sourceIndex, content) { - enter(); - if (content !== null) { - if (!sourcesContent) - sourcesContent = []; - while (sourcesContent.length < sourceIndex) { - sourcesContent.push(null); - } - sourcesContent[sourceIndex] = content; - } - exit(); - } - function addName(name) { - enter(); - if (!nameToNameIndexMap) - nameToNameIndexMap = /* @__PURE__ */ new Map(); - var nameIndex = nameToNameIndexMap.get(name); - if (nameIndex === void 0) { - nameIndex = names.length; - names.push(name); - nameToNameIndexMap.set(name, nameIndex); - } - exit(); - return nameIndex; - } - function isNewGeneratedPosition(generatedLine, generatedCharacter) { - return !hasPending || pendingGeneratedLine !== generatedLine || pendingGeneratedCharacter !== generatedCharacter; - } - function isBacktrackingSourcePosition(sourceIndex, sourceLine, sourceCharacter) { - return sourceIndex !== void 0 && sourceLine !== void 0 && sourceCharacter !== void 0 && pendingSourceIndex === sourceIndex && (pendingSourceLine > sourceLine || pendingSourceLine === sourceLine && pendingSourceCharacter > sourceCharacter); - } - function addMapping(generatedLine, generatedCharacter, sourceIndex, sourceLine, sourceCharacter, nameIndex) { - Debug.assert(generatedLine >= pendingGeneratedLine, "generatedLine cannot backtrack"); - Debug.assert(generatedCharacter >= 0, "generatedCharacter cannot be negative"); - Debug.assert(sourceIndex === void 0 || sourceIndex >= 0, "sourceIndex cannot be negative"); - Debug.assert(sourceLine === void 0 || sourceLine >= 0, "sourceLine cannot be negative"); - Debug.assert(sourceCharacter === void 0 || sourceCharacter >= 0, "sourceCharacter cannot be negative"); - enter(); - if (isNewGeneratedPosition(generatedLine, generatedCharacter) || isBacktrackingSourcePosition(sourceIndex, sourceLine, sourceCharacter)) { - commitPendingMapping(); - pendingGeneratedLine = generatedLine; - pendingGeneratedCharacter = generatedCharacter; - hasPendingSource = false; - hasPendingName = false; - hasPending = true; - } - if (sourceIndex !== void 0 && sourceLine !== void 0 && sourceCharacter !== void 0) { - pendingSourceIndex = sourceIndex; - pendingSourceLine = sourceLine; - pendingSourceCharacter = sourceCharacter; - hasPendingSource = true; - if (nameIndex !== void 0) { - pendingNameIndex = nameIndex; - hasPendingName = true; - } - } - exit(); - } - function appendSourceMap(generatedLine, generatedCharacter, map2, sourceMapPath, start2, end) { - var e_454, _t; - Debug.assert(generatedLine >= pendingGeneratedLine, "generatedLine cannot backtrack"); - Debug.assert(generatedCharacter >= 0, "generatedCharacter cannot be negative"); - enter(); - var sourceIndexToNewSourceIndexMap = []; - var nameIndexToNewNameIndexMap; - var mappingIterator = decodeMappings(map2.mappings); - try { - for (var mappingIterator_1 = __values(mappingIterator), mappingIterator_1_1 = mappingIterator_1.next(); !mappingIterator_1_1.done; mappingIterator_1_1 = mappingIterator_1.next()) { - var raw = mappingIterator_1_1.value; - if (end && (raw.generatedLine > end.line || raw.generatedLine === end.line && raw.generatedCharacter > end.character)) { - break; - } - if (start2 && (raw.generatedLine < start2.line || start2.line === raw.generatedLine && raw.generatedCharacter < start2.character)) { - continue; - } - var newSourceIndex = void 0; - var newSourceLine = void 0; - var newSourceCharacter = void 0; - var newNameIndex = void 0; - if (raw.sourceIndex !== void 0) { - newSourceIndex = sourceIndexToNewSourceIndexMap[raw.sourceIndex]; - if (newSourceIndex === void 0) { - var rawPath = map2.sources[raw.sourceIndex]; - var relativePath = map2.sourceRoot ? combinePaths(map2.sourceRoot, rawPath) : rawPath; - var combinedPath = combinePaths(getDirectoryPath(sourceMapPath), relativePath); - sourceIndexToNewSourceIndexMap[raw.sourceIndex] = newSourceIndex = addSource(combinedPath); - if (map2.sourcesContent && typeof map2.sourcesContent[raw.sourceIndex] === "string") { - setSourceContent(newSourceIndex, map2.sourcesContent[raw.sourceIndex]); - } - } - newSourceLine = raw.sourceLine; - newSourceCharacter = raw.sourceCharacter; - if (map2.names && raw.nameIndex !== void 0) { - if (!nameIndexToNewNameIndexMap) - nameIndexToNewNameIndexMap = []; - newNameIndex = nameIndexToNewNameIndexMap[raw.nameIndex]; - if (newNameIndex === void 0) { - nameIndexToNewNameIndexMap[raw.nameIndex] = newNameIndex = addName(map2.names[raw.nameIndex]); - } - } - } - var rawGeneratedLine = raw.generatedLine - (start2 ? start2.line : 0); - var newGeneratedLine = rawGeneratedLine + generatedLine; - var rawGeneratedCharacter = start2 && start2.line === raw.generatedLine ? raw.generatedCharacter - start2.character : raw.generatedCharacter; - var newGeneratedCharacter = rawGeneratedLine === 0 ? rawGeneratedCharacter + generatedCharacter : rawGeneratedCharacter; - addMapping(newGeneratedLine, newGeneratedCharacter, newSourceIndex, newSourceLine, newSourceCharacter, newNameIndex); - } - } - catch (e_454_1) { e_454 = { error: e_454_1 }; } - finally { - try { - if (mappingIterator_1_1 && !mappingIterator_1_1.done && (_t = mappingIterator_1.return)) _t.call(mappingIterator_1); - } - finally { if (e_454) throw e_454.error; } - } - exit(); - } - function shouldCommitMapping() { - return !hasLast || lastGeneratedLine !== pendingGeneratedLine || lastGeneratedCharacter !== pendingGeneratedCharacter || lastSourceIndex !== pendingSourceIndex || lastSourceLine !== pendingSourceLine || lastSourceCharacter !== pendingSourceCharacter || lastNameIndex !== pendingNameIndex; - } - function appendMappingCharCode(charCode) { - mappingCharCodes.push(charCode); - if (mappingCharCodes.length >= 1024) { - flushMappingBuffer(); - } - } - function commitPendingMapping() { - if (!hasPending || !shouldCommitMapping()) { - return; - } - enter(); - if (lastGeneratedLine < pendingGeneratedLine) { - do { - appendMappingCharCode(59 /* semicolon */); - lastGeneratedLine++; - } while (lastGeneratedLine < pendingGeneratedLine); - lastGeneratedCharacter = 0; - } - else { - Debug.assertEqual(lastGeneratedLine, pendingGeneratedLine, "generatedLine cannot backtrack"); - if (hasLast) { - appendMappingCharCode(44 /* comma */); - } - } - appendBase64VLQ(pendingGeneratedCharacter - lastGeneratedCharacter); - lastGeneratedCharacter = pendingGeneratedCharacter; - if (hasPendingSource) { - appendBase64VLQ(pendingSourceIndex - lastSourceIndex); - lastSourceIndex = pendingSourceIndex; - appendBase64VLQ(pendingSourceLine - lastSourceLine); - lastSourceLine = pendingSourceLine; - appendBase64VLQ(pendingSourceCharacter - lastSourceCharacter); - lastSourceCharacter = pendingSourceCharacter; - if (hasPendingName) { - appendBase64VLQ(pendingNameIndex - lastNameIndex); - lastNameIndex = pendingNameIndex; - } - } - hasLast = true; - exit(); - } - function flushMappingBuffer() { - if (mappingCharCodes.length > 0) { - mappings += String.fromCharCode.apply(void 0, mappingCharCodes); - mappingCharCodes.length = 0; - } - } - function toJSON() { - commitPendingMapping(); - flushMappingBuffer(); - return { - version: 3, - file: file, - sourceRoot: sourceRoot, - sources: sources, - names: names, - mappings: mappings, - sourcesContent: sourcesContent - }; - } - function appendBase64VLQ(inValue) { - if (inValue < 0) { - inValue = (-inValue << 1) + 1; - } - else { - inValue = inValue << 1; - } - do { - var currentDigit = inValue & 31; - inValue = inValue >> 5; - if (inValue > 0) { - currentDigit = currentDigit | 32; - } - appendMappingCharCode(base64FormatEncode(currentDigit)); - } while (inValue > 0); - } -} -var sourceMapCommentRegExpDontCareLineStart = /\/\/[@#] source[M]appingURL=(.+)\r?\n?$/; -var sourceMapCommentRegExp = /^\/\/[@#] source[M]appingURL=(.+)\r?\n?$/; -var whitespaceOrMapCommentRegExp = /^\s*(\/\/[@#] .*)?$/; -function getLineInfo(text, lineStarts) { - return { - getLineCount: function () { return lineStarts.length; }, - getLineText: function (line) { return text.substring(lineStarts[line], lineStarts[line + 1]); } - }; -} -function tryGetSourceMappingURL(lineInfo) { - for (var index = lineInfo.getLineCount() - 1; index >= 0; index--) { - var line = lineInfo.getLineText(index); - var comment = sourceMapCommentRegExp.exec(line); - if (comment) { - return trimStringEnd(comment[1]); - } - else if (!line.match(whitespaceOrMapCommentRegExp)) { - break; - } - } -} -function isStringOrNull(x) { - return typeof x === "string" || x === null; -} -function isRawSourceMap(x) { - return x !== null && typeof x === "object" && x.version === 3 && typeof x.file === "string" && typeof x.mappings === "string" && isArray(x.sources) && every(x.sources, isString) && (x.sourceRoot === void 0 || x.sourceRoot === null || typeof x.sourceRoot === "string") && (x.sourcesContent === void 0 || x.sourcesContent === null || isArray(x.sourcesContent) && every(x.sourcesContent, isStringOrNull)) && (x.names === void 0 || x.names === null || isArray(x.names) && every(x.names, isString)); -} -function tryParseRawSourceMap(text) { - try { - var parsed = JSON.parse(text); - if (isRawSourceMap(parsed)) { - return parsed; - } - } - catch (_t) { - } - return void 0; -} -function decodeMappings(mappings) { - var _t; - var done = false; - var pos = 0; - var generatedLine = 0; - var generatedCharacter = 0; - var sourceIndex = 0; - var sourceLine = 0; - var sourceCharacter = 0; - var nameIndex = 0; - var error2; - return _t = { - get pos() { - return pos; - }, - get error() { - return error2; - }, - get state() { - return captureMapping( - /*hasSource*/ - true, - /*hasName*/ - true); - }, - next: function () { - while (!done && pos < mappings.length) { - var ch = mappings.charCodeAt(pos); - if (ch === 59 /* semicolon */) { - generatedLine++; - generatedCharacter = 0; - pos++; - continue; - } - if (ch === 44 /* comma */) { - pos++; - continue; - } - var hasSource = false; - var hasName = false; - generatedCharacter += base64VLQFormatDecode(); - if (hasReportedError()) - return stopIterating(); - if (generatedCharacter < 0) - return setErrorAndStopIterating("Invalid generatedCharacter found"); - if (!isSourceMappingSegmentEnd()) { - hasSource = true; - sourceIndex += base64VLQFormatDecode(); - if (hasReportedError()) - return stopIterating(); - if (sourceIndex < 0) - return setErrorAndStopIterating("Invalid sourceIndex found"); - if (isSourceMappingSegmentEnd()) - return setErrorAndStopIterating("Unsupported Format: No entries after sourceIndex"); - sourceLine += base64VLQFormatDecode(); - if (hasReportedError()) - return stopIterating(); - if (sourceLine < 0) - return setErrorAndStopIterating("Invalid sourceLine found"); - if (isSourceMappingSegmentEnd()) - return setErrorAndStopIterating("Unsupported Format: No entries after sourceLine"); - sourceCharacter += base64VLQFormatDecode(); - if (hasReportedError()) - return stopIterating(); - if (sourceCharacter < 0) - return setErrorAndStopIterating("Invalid sourceCharacter found"); - if (!isSourceMappingSegmentEnd()) { - hasName = true; - nameIndex += base64VLQFormatDecode(); - if (hasReportedError()) - return stopIterating(); - if (nameIndex < 0) - return setErrorAndStopIterating("Invalid nameIndex found"); - if (!isSourceMappingSegmentEnd()) - return setErrorAndStopIterating("Unsupported Error Format: Entries after nameIndex"); - } - } - return { value: captureMapping(hasSource, hasName), done: done }; - } - return stopIterating(); - } - }, - _t[Symbol.iterator] = function () { - return this; - }, - _t; - function captureMapping(hasSource, hasName) { - return { - generatedLine: generatedLine, - generatedCharacter: generatedCharacter, - sourceIndex: hasSource ? sourceIndex : void 0, - sourceLine: hasSource ? sourceLine : void 0, - sourceCharacter: hasSource ? sourceCharacter : void 0, - nameIndex: hasName ? nameIndex : void 0 - }; - } - function stopIterating() { - done = true; - return { value: void 0, done: true }; - } - function setError(message) { - if (error2 === void 0) { - error2 = message; - } - } - function setErrorAndStopIterating(message) { - setError(message); - return stopIterating(); - } - function hasReportedError() { - return error2 !== void 0; - } - function isSourceMappingSegmentEnd() { - return pos === mappings.length || mappings.charCodeAt(pos) === 44 /* comma */ || mappings.charCodeAt(pos) === 59 /* semicolon */; - } - function base64VLQFormatDecode() { - var moreDigits = true; - var shiftCount = 0; - var value = 0; - for (; moreDigits; pos++) { - if (pos >= mappings.length) - return setError("Error in decoding base64VLQFormatDecode, past the mapping string"), -1; - var currentByte = base64FormatDecode(mappings.charCodeAt(pos)); - if (currentByte === -1) - return setError("Invalid character in VLQ"), -1; - moreDigits = (currentByte & 32) !== 0; - value = value | (currentByte & 31) << shiftCount; - shiftCount += 5; - } - if ((value & 1) === 0) { - value = value >> 1; - } - else { - value = value >> 1; - value = -value; - } - return value; - } -} -function sameMapping(left, right) { - return left === right || left.generatedLine === right.generatedLine && left.generatedCharacter === right.generatedCharacter && left.sourceIndex === right.sourceIndex && left.sourceLine === right.sourceLine && left.sourceCharacter === right.sourceCharacter && left.nameIndex === right.nameIndex; -} -function isSourceMapping(mapping) { - return mapping.sourceIndex !== void 0 && mapping.sourceLine !== void 0 && mapping.sourceCharacter !== void 0; -} -function base64FormatEncode(value) { - return value >= 0 && value < 26 ? 65 /* A */ + value : value >= 26 && value < 52 ? 97 /* a */ + value - 26 : value >= 52 && value < 62 ? 48 /* _0 */ + value - 52 : value === 62 ? 43 /* plus */ : value === 63 ? 47 /* slash */ : Debug.fail("".concat(value, ": not a base64 value")); -} -function base64FormatDecode(ch) { - return ch >= 65 /* A */ && ch <= 90 /* Z */ ? ch - 65 /* A */ : ch >= 97 /* a */ && ch <= 122 /* z */ ? ch - 97 /* a */ + 26 : ch >= 48 /* _0 */ && ch <= 57 /* _9 */ ? ch - 48 /* _0 */ + 52 : ch === 43 /* plus */ ? 62 : ch === 47 /* slash */ ? 63 : -1; -} -function isSourceMappedPosition(value) { - return value.sourceIndex !== void 0 && value.sourcePosition !== void 0; -} -function sameMappedPosition(left, right) { - return left.generatedPosition === right.generatedPosition && left.sourceIndex === right.sourceIndex && left.sourcePosition === right.sourcePosition; -} -function compareSourcePositions(left, right) { - Debug.assert(left.sourceIndex === right.sourceIndex); - return compareValues(left.sourcePosition, right.sourcePosition); -} -function compareGeneratedPositions(left, right) { - return compareValues(left.generatedPosition, right.generatedPosition); -} -function getSourcePositionOfMapping(value) { - return value.sourcePosition; -} -function getGeneratedPositionOfMapping(value) { - return value.generatedPosition; -} -function createDocumentPositionMapper(host, map2, mapPath) { - var mapDirectory = getDirectoryPath(mapPath); - var sourceRoot = map2.sourceRoot ? getNormalizedAbsolutePath(map2.sourceRoot, mapDirectory) : mapDirectory; - var generatedAbsoluteFilePath = getNormalizedAbsolutePath(map2.file, mapDirectory); - var generatedFile = host.getSourceFileLike(generatedAbsoluteFilePath); - var sourceFileAbsolutePaths = map2.sources.map(function (source) { return getNormalizedAbsolutePath(source, sourceRoot); }); - var sourceToSourceIndexMap = new Map(sourceFileAbsolutePaths.map(function (source, i) { return [host.getCanonicalFileName(source), i]; })); - var decodedMappings; - var generatedMappings; - var sourceMappings; - return { - getSourcePosition: getSourcePosition, - getGeneratedPosition: getGeneratedPosition - }; - function processMapping(mapping) { - var generatedPosition = generatedFile !== void 0 ? getPositionOfLineAndCharacter(generatedFile, mapping.generatedLine, mapping.generatedCharacter, - /*allowEdits*/ - true) : -1; - var source; - var sourcePosition; - if (isSourceMapping(mapping)) { - var sourceFile = host.getSourceFileLike(sourceFileAbsolutePaths[mapping.sourceIndex]); - source = map2.sources[mapping.sourceIndex]; - sourcePosition = sourceFile !== void 0 ? getPositionOfLineAndCharacter(sourceFile, mapping.sourceLine, mapping.sourceCharacter, - /*allowEdits*/ - true) : -1; - } - return { - generatedPosition: generatedPosition, - source: source, - sourceIndex: mapping.sourceIndex, - sourcePosition: sourcePosition, - nameIndex: mapping.nameIndex - }; - } - function getDecodedMappings() { - if (decodedMappings === void 0) { - var decoder = decodeMappings(map2.mappings); - var mappings = arrayFrom(decoder, processMapping); - if (decoder.error !== void 0) { - if (host.log) { - host.log("Encountered error while decoding sourcemap: ".concat(decoder.error)); - } - decodedMappings = emptyArray; - } - else { - decodedMappings = mappings; - } - } - return decodedMappings; - } - function getSourceMappings(sourceIndex) { - var e_455, _t; - if (sourceMappings === void 0) { - var lists = []; - try { - for (var _u = __values(getDecodedMappings()), _v = _u.next(); !_v.done; _v = _u.next()) { - var mapping = _v.value; - if (!isSourceMappedPosition(mapping)) - continue; - var list = lists[mapping.sourceIndex]; - if (!list) - lists[mapping.sourceIndex] = list = []; - list.push(mapping); - } - } - catch (e_455_1) { e_455 = { error: e_455_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_455) throw e_455.error; } - } - sourceMappings = lists.map(function (list) { return sortAndDeduplicate(list, compareSourcePositions, sameMappedPosition); }); - } - return sourceMappings[sourceIndex]; - } - function getGeneratedMappings() { - var e_456, _t; - if (generatedMappings === void 0) { - var list = []; - try { - for (var _u = __values(getDecodedMappings()), _v = _u.next(); !_v.done; _v = _u.next()) { - var mapping = _v.value; - list.push(mapping); - } - } - catch (e_456_1) { e_456 = { error: e_456_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_456) throw e_456.error; } - } - generatedMappings = sortAndDeduplicate(list, compareGeneratedPositions, sameMappedPosition); - } - return generatedMappings; - } - function getGeneratedPosition(loc) { - var sourceIndex = sourceToSourceIndexMap.get(host.getCanonicalFileName(loc.fileName)); - if (sourceIndex === void 0) - return loc; - var sourceMappings2 = getSourceMappings(sourceIndex); - if (!some(sourceMappings2)) - return loc; - var targetIndex = binarySearchKey(sourceMappings2, loc.pos, getSourcePositionOfMapping, compareValues); - if (targetIndex < 0) { - targetIndex = ~targetIndex; - } - var mapping = sourceMappings2[targetIndex]; - if (mapping === void 0 || mapping.sourceIndex !== sourceIndex) { - return loc; - } - return { fileName: generatedAbsoluteFilePath, pos: mapping.generatedPosition }; - } - function getSourcePosition(loc) { - var generatedMappings2 = getGeneratedMappings(); - if (!some(generatedMappings2)) - return loc; - var targetIndex = binarySearchKey(generatedMappings2, loc.pos, getGeneratedPositionOfMapping, compareValues); - if (targetIndex < 0) { - targetIndex = ~targetIndex; - } - var mapping = generatedMappings2[targetIndex]; - if (mapping === void 0 || !isSourceMappedPosition(mapping)) { - return loc; - } - return { fileName: sourceFileAbsolutePaths[mapping.sourceIndex], pos: mapping.sourcePosition }; - } -} -var identitySourceMapConsumer = { - getSourcePosition: identity, - getGeneratedPosition: identity -}; -// src/compiler/transformers/utilities.ts -function getOriginalNodeId(node) { - node = getOriginalNode(node); - return node ? getNodeId(node) : 0; -} -function containsDefaultReference(node) { - if (!node) - return false; - if (!isNamedImports(node)) - return false; - return some(node.elements, isNamedDefaultReference); -} -function isNamedDefaultReference(e) { - return e.propertyName !== void 0 && e.propertyName.escapedText === "default" /* Default */; -} -function chainBundle(context, transformSourceFile) { - return transformSourceFileOrBundle; - function transformSourceFileOrBundle(node) { - return node.kind === 312 /* SourceFile */ ? transformSourceFile(node) : transformBundle(node); - } - function transformBundle(node) { - return context.factory.createBundle(map(node.sourceFiles, transformSourceFile), node.prepends); - } -} -function getExportNeedsImportStarHelper(node) { - return !!getNamespaceDeclarationNode(node); -} -function getImportNeedsImportStarHelper(node) { - var e_457, _t; - if (!!getNamespaceDeclarationNode(node)) { - return true; - } - var bindings = node.importClause && node.importClause.namedBindings; - if (!bindings) { - return false; - } - if (!isNamedImports(bindings)) - return false; - var defaultRefCount = 0; - try { - for (var _u = __values(bindings.elements), _v = _u.next(); !_v.done; _v = _u.next()) { - var binding = _v.value; - if (isNamedDefaultReference(binding)) { - defaultRefCount++; - } - } - } - catch (e_457_1) { e_457 = { error: e_457_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_457) throw e_457.error; } - } - return defaultRefCount > 0 && defaultRefCount !== bindings.elements.length || !!(bindings.elements.length - defaultRefCount) && isDefaultImport(node); -} -function getImportNeedsImportDefaultHelper(node) { - return !getImportNeedsImportStarHelper(node) && (isDefaultImport(node) || !!node.importClause && isNamedImports(node.importClause.namedBindings) && containsDefaultReference(node.importClause.namedBindings)); -} -function collectExternalModuleInfo(context, sourceFile) { - var e_458, _t, e_459, _u; - var resolver = context.getEmitResolver(); - var compilerOptions = context.getCompilerOptions(); - var externalImports = []; - var exportSpecifiers = new IdentifierNameMultiMap(); - var exportedBindings = []; - var uniqueExports = /* @__PURE__ */ new Map(); - var exportedNames; - var hasExportDefault = false; - var exportEquals; - var hasExportStarsToExportValues = false; - var hasImportStar = false; - var hasImportDefault = false; - try { - for (var _v = __values(sourceFile.statements), _w = _v.next(); !_w.done; _w = _v.next()) { - var node = _w.value; - switch (node.kind) { - case 272 /* ImportDeclaration */: - externalImports.push(node); - if (!hasImportStar && getImportNeedsImportStarHelper(node)) { - hasImportStar = true; - } - if (!hasImportDefault && getImportNeedsImportDefaultHelper(node)) { - hasImportDefault = true; - } - break; - case 271 /* ImportEqualsDeclaration */: - if (node.moduleReference.kind === 283 /* ExternalModuleReference */) { - externalImports.push(node); - } - break; - case 278 /* ExportDeclaration */: - if (node.moduleSpecifier) { - if (!node.exportClause) { - externalImports.push(node); - hasExportStarsToExportValues = true; - } - else { - externalImports.push(node); - if (isNamedExports(node.exportClause)) { - addExportedNamesForExportDeclaration(node); - } - else { - var name_72 = node.exportClause.name; - if (!uniqueExports.get(idText(name_72))) { - multiMapSparseArrayAdd(exportedBindings, getOriginalNodeId(node), name_72); - uniqueExports.set(idText(name_72), true); - exportedNames = append(exportedNames, name_72); - } - hasImportStar = true; - } - } - } - else { - addExportedNamesForExportDeclaration(node); - } - break; - case 277 /* ExportAssignment */: - if (node.isExportEquals && !exportEquals) { - exportEquals = node; - } - break; - case 243 /* VariableStatement */: - if (hasSyntacticModifier(node, 1 /* Export */)) { - try { - for (var _x = (e_459 = void 0, __values(node.declarationList.declarations)), _y = _x.next(); !_y.done; _y = _x.next()) { - var decl = _y.value; - exportedNames = collectExportedVariableInfo(decl, uniqueExports, exportedNames, exportedBindings); - } - } - catch (e_459_1) { e_459 = { error: e_459_1 }; } - finally { - try { - if (_y && !_y.done && (_u = _x.return)) _u.call(_x); - } - finally { if (e_459) throw e_459.error; } - } - } - break; - case 262 /* FunctionDeclaration */: - if (hasSyntacticModifier(node, 1 /* Export */)) { - if (hasSyntacticModifier(node, 1024 /* Default */)) { - if (!hasExportDefault) { - multiMapSparseArrayAdd(exportedBindings, getOriginalNodeId(node), context.factory.getDeclarationName(node)); - hasExportDefault = true; - } - } - else { - var name_73 = node.name; - if (!uniqueExports.get(idText(name_73))) { - multiMapSparseArrayAdd(exportedBindings, getOriginalNodeId(node), name_73); - uniqueExports.set(idText(name_73), true); - exportedNames = append(exportedNames, name_73); - } - } - } - break; - case 263 /* ClassDeclaration */: - if (hasSyntacticModifier(node, 1 /* Export */)) { - if (hasSyntacticModifier(node, 1024 /* Default */)) { - if (!hasExportDefault) { - multiMapSparseArrayAdd(exportedBindings, getOriginalNodeId(node), context.factory.getDeclarationName(node)); - hasExportDefault = true; - } - } - else { - var name_74 = node.name; - if (name_74 && !uniqueExports.get(idText(name_74))) { - multiMapSparseArrayAdd(exportedBindings, getOriginalNodeId(node), name_74); - uniqueExports.set(idText(name_74), true); - exportedNames = append(exportedNames, name_74); - } - } - } - break; - } - } - } - catch (e_458_1) { e_458 = { error: e_458_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_458) throw e_458.error; } - } - var externalHelpersImportDeclaration = createExternalHelpersImportDeclarationIfNeeded(context.factory, context.getEmitHelperFactory(), sourceFile, compilerOptions, hasExportStarsToExportValues, hasImportStar, hasImportDefault); - if (externalHelpersImportDeclaration) { - externalImports.unshift(externalHelpersImportDeclaration); - } - return { externalImports: externalImports, exportSpecifiers: exportSpecifiers, exportEquals: exportEquals, hasExportStarsToExportValues: hasExportStarsToExportValues, exportedBindings: exportedBindings, exportedNames: exportedNames, externalHelpersImportDeclaration: externalHelpersImportDeclaration }; - function addExportedNamesForExportDeclaration(node) { - var e_460, _t; - try { - for (var _u = __values(cast(node.exportClause, isNamedExports).elements), _v = _u.next(); !_v.done; _v = _u.next()) { - var specifier = _v.value; - if (!uniqueExports.get(idText(specifier.name))) { - var name_75 = specifier.propertyName || specifier.name; - if (!node.moduleSpecifier) { - exportSpecifiers.add(name_75, specifier); - } - var decl = resolver.getReferencedImportDeclaration(name_75) || resolver.getReferencedValueDeclaration(name_75); - if (decl) { - multiMapSparseArrayAdd(exportedBindings, getOriginalNodeId(decl), specifier.name); - } - uniqueExports.set(idText(specifier.name), true); - exportedNames = append(exportedNames, specifier.name); - } - } - } - catch (e_460_1) { e_460 = { error: e_460_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_460) throw e_460.error; } - } - } -} -function collectExportedVariableInfo(decl, uniqueExports, exportedNames, exportedBindings) { - var e_461, _t; - if (isBindingPattern(decl.name)) { - try { - for (var _u = __values(decl.name.elements), _v = _u.next(); !_v.done; _v = _u.next()) { - var element = _v.value; - if (!isOmittedExpression(element)) { - exportedNames = collectExportedVariableInfo(element, uniqueExports, exportedNames, exportedBindings); - } - } - } - catch (e_461_1) { e_461 = { error: e_461_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_461) throw e_461.error; } - } - } - else if (!isGeneratedIdentifier(decl.name)) { - var text = idText(decl.name); - if (!uniqueExports.get(text)) { - uniqueExports.set(text, true); - exportedNames = append(exportedNames, decl.name); - if (isLocalName(decl.name)) { - multiMapSparseArrayAdd(exportedBindings, getOriginalNodeId(decl), decl.name); - } - } - } - return exportedNames; -} -function multiMapSparseArrayAdd(map2, key, value) { - var values = map2[key]; - if (values) { - values.push(value); - } - else { - map2[key] = values = [value]; - } - return values; -} -var IdentifierNameMap = /** @class */ (function () { - function _IdentifierNameMap() { - this._map = /* @__PURE__ */ new Map(); - } - Object.defineProperty(_IdentifierNameMap.prototype, "size", { - get: function () { - return this._map.size; - }, - enumerable: false, - configurable: true - }); - _IdentifierNameMap.prototype.has = function (key) { - return this._map.has(_IdentifierNameMap.toKey(key)); - }; - _IdentifierNameMap.prototype.get = function (key) { - return this._map.get(_IdentifierNameMap.toKey(key)); - }; - _IdentifierNameMap.prototype.set = function (key, value) { - this._map.set(_IdentifierNameMap.toKey(key), value); - return this; - }; - _IdentifierNameMap.prototype.delete = function (key) { - var _t; - var _a; - return (_t = ((_a = this._map) == null ? void 0 : _a.delete(_IdentifierNameMap.toKey(key)))) !== null && _t !== void 0 ? _t : false; - }; - _IdentifierNameMap.prototype.clear = function () { - this._map.clear(); - }; - _IdentifierNameMap.prototype.values = function () { - return this._map.values(); - }; - _IdentifierNameMap.toKey = function (name) { - if (isGeneratedPrivateIdentifier(name) || isGeneratedIdentifier(name)) { - var autoGenerate = name.emitNode.autoGenerate; - if ((autoGenerate.flags & 7 /* KindMask */) === 4 /* Node */) { - var node = getNodeForGeneratedName(name); - var baseName = isMemberName(node) && node !== name ? _IdentifierNameMap.toKey(node) : "(generated@".concat(getNodeId(node), ")"); - return formatGeneratedName( - /*privateName*/ - false, autoGenerate.prefix, baseName, autoGenerate.suffix, _IdentifierNameMap.toKey); - } - else { - var baseName = "(auto@".concat(autoGenerate.id, ")"); - return formatGeneratedName( - /*privateName*/ - false, autoGenerate.prefix, baseName, autoGenerate.suffix, _IdentifierNameMap.toKey); - } - } - if (isPrivateIdentifier(name)) { - return idText(name).slice(1); - } - return idText(name); - }; - return _IdentifierNameMap; -}()); -var IdentifierNameMultiMap = /** @class */ (function (_super) { - __extends(IdentifierNameMultiMap, _super); - function IdentifierNameMultiMap() { - return _super !== null && _super.apply(this, arguments) || this; - } - IdentifierNameMultiMap.prototype.add = function (key, value) { - var values = this.get(key); - if (values) { - values.push(value); - } - else { - this.set(key, values = [value]); - } - return values; - }; - IdentifierNameMultiMap.prototype.remove = function (key, value) { - var values = this.get(key); - if (values) { - unorderedRemoveItem(values, value); - if (!values.length) { - this.delete(key); - } - } - }; - return IdentifierNameMultiMap; -}(IdentifierNameMap)); -function isSimpleCopiableExpression(expression) { - return isStringLiteralLike(expression) || expression.kind === 9 /* NumericLiteral */ || isKeyword(expression.kind) || isIdentifier(expression); -} -function isSimpleInlineableExpression(expression) { - return !isIdentifier(expression) && isSimpleCopiableExpression(expression); -} -function isCompoundAssignment(kind) { - return kind >= 65 /* FirstCompoundAssignment */ && kind <= 79 /* LastCompoundAssignment */; -} -function getNonAssignmentOperatorForCompoundAssignment(kind) { - switch (kind) { - case 65 /* PlusEqualsToken */: - return 40 /* PlusToken */; - case 66 /* MinusEqualsToken */: - return 41 /* MinusToken */; - case 67 /* AsteriskEqualsToken */: - return 42 /* AsteriskToken */; - case 68 /* AsteriskAsteriskEqualsToken */: - return 43 /* AsteriskAsteriskToken */; - case 69 /* SlashEqualsToken */: - return 44 /* SlashToken */; - case 70 /* PercentEqualsToken */: - return 45 /* PercentToken */; - case 71 /* LessThanLessThanEqualsToken */: - return 48 /* LessThanLessThanToken */; - case 72 /* GreaterThanGreaterThanEqualsToken */: - return 49 /* GreaterThanGreaterThanToken */; - case 73 /* GreaterThanGreaterThanGreaterThanEqualsToken */: - return 50 /* GreaterThanGreaterThanGreaterThanToken */; - case 74 /* AmpersandEqualsToken */: - return 51 /* AmpersandToken */; - case 75 /* BarEqualsToken */: - return 52 /* BarToken */; - case 79 /* CaretEqualsToken */: - return 53 /* CaretToken */; - case 76 /* BarBarEqualsToken */: - return 57 /* BarBarToken */; - case 77 /* AmpersandAmpersandEqualsToken */: - return 56 /* AmpersandAmpersandToken */; - case 78 /* QuestionQuestionEqualsToken */: - return 61 /* QuestionQuestionToken */; - } -} -function getSuperCallFromStatement(statement) { - if (!isExpressionStatement(statement)) { - return void 0; - } - var expression = skipParentheses(statement.expression); - return isSuperCall(expression) ? expression : void 0; -} -function findSuperStatementIndexPathWorker(statements, start2, indices) { - for (var i = start2; i < statements.length; i += 1) { - var statement = statements[i]; - if (getSuperCallFromStatement(statement)) { - indices.unshift(i); - return true; - } - else if (isTryStatement(statement) && findSuperStatementIndexPathWorker(statement.tryBlock.statements, 0, indices)) { - indices.unshift(i); - return true; - } - } - return false; -} -function findSuperStatementIndexPath(statements, start2) { - var indices = []; - findSuperStatementIndexPathWorker(statements, start2, indices); - return indices; -} -function getProperties(node, requireInitializer, isStatic2) { - return filter(node.members, function (m) { return isInitializedOrStaticProperty(m, requireInitializer, isStatic2); }); -} -function isStaticPropertyDeclarationOrClassStaticBlockDeclaration(element) { - return isStaticPropertyDeclaration(element) || isClassStaticBlockDeclaration(element); -} -function getStaticPropertiesAndClassStaticBlock(node) { - return filter(node.members, isStaticPropertyDeclarationOrClassStaticBlockDeclaration); -} -function isInitializedOrStaticProperty(member, requireInitializer, isStatic2) { - return isPropertyDeclaration(member) && (!!member.initializer || !requireInitializer) && hasStaticModifier(member) === isStatic2; -} -function isStaticPropertyDeclaration(member) { - return isPropertyDeclaration(member) && hasStaticModifier(member); -} -function isInitializedProperty(member) { - return member.kind === 172 /* PropertyDeclaration */ && member.initializer !== void 0; -} -function isNonStaticMethodOrAccessorWithPrivateName(member) { - return !isStatic(member) && (isMethodOrAccessor(member) || isAutoAccessorPropertyDeclaration(member)) && isPrivateIdentifier(member.name); -} -function getDecoratorsOfParameters(node) { - var decorators; - if (node) { - var parameters = node.parameters; - var firstParameterIsThis = parameters.length > 0 && parameterIsThisKeyword(parameters[0]); - var firstParameterOffset = firstParameterIsThis ? 1 : 0; - var numParameters = firstParameterIsThis ? parameters.length - 1 : parameters.length; - for (var i = 0; i < numParameters; i++) { - var parameter = parameters[i + firstParameterOffset]; - if (decorators || hasDecorators(parameter)) { - if (!decorators) { - decorators = new Array(numParameters); - } - decorators[i] = getDecorators(parameter); - } - } - } - return decorators; -} -function getAllDecoratorsOfClass(node) { - var decorators = getDecorators(node); - var parameters = getDecoratorsOfParameters(getFirstConstructorWithBody(node)); - if (!some(decorators) && !some(parameters)) { - return void 0; - } - return { - decorators: decorators, - parameters: parameters - }; -} -function getAllDecoratorsOfClassElement(member, parent2, useLegacyDecorators) { - switch (member.kind) { - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - if (!useLegacyDecorators) { - return getAllDecoratorsOfMethod(member); - } - return getAllDecoratorsOfAccessors(member, parent2); - case 174 /* MethodDeclaration */: - return getAllDecoratorsOfMethod(member); - case 172 /* PropertyDeclaration */: - return getAllDecoratorsOfProperty(member); - default: - return void 0; - } -} -function getAllDecoratorsOfAccessors(accessor, parent2) { - if (!accessor.body) { - return void 0; - } - var _t = getAllAccessorDeclarations(parent2.members, accessor), firstAccessor = _t.firstAccessor, secondAccessor = _t.secondAccessor, getAccessor = _t.getAccessor, setAccessor = _t.setAccessor; - var firstAccessorWithDecorators = hasDecorators(firstAccessor) ? firstAccessor : secondAccessor && hasDecorators(secondAccessor) ? secondAccessor : void 0; - if (!firstAccessorWithDecorators || accessor !== firstAccessorWithDecorators) { - return void 0; - } - var decorators = getDecorators(firstAccessorWithDecorators); - var parameters = getDecoratorsOfParameters(setAccessor); - if (!some(decorators) && !some(parameters)) { - return void 0; - } - return { - decorators: decorators, - parameters: parameters, - getDecorators: getAccessor && getDecorators(getAccessor), - setDecorators: setAccessor && getDecorators(setAccessor) - }; -} -function getAllDecoratorsOfMethod(method) { - if (!method.body) { - return void 0; - } - var decorators = getDecorators(method); - var parameters = getDecoratorsOfParameters(method); - if (!some(decorators) && !some(parameters)) { - return void 0; - } - return { decorators: decorators, parameters: parameters }; -} -function getAllDecoratorsOfProperty(property) { - var decorators = getDecorators(property); - if (!some(decorators)) { - return void 0; - } - return { decorators: decorators }; -} -function walkUpLexicalEnvironments(env, cb) { - while (env) { - var result = cb(env); - if (result !== void 0) - return result; - env = env.previous; - } -} -function newPrivateEnvironment(data) { - return { data: data }; -} -function getPrivateIdentifier(privateEnv, name) { - var _a, _b; - return isGeneratedPrivateIdentifier(name) ? (_a = privateEnv == null ? void 0 : privateEnv.generatedIdentifiers) == null ? void 0 : _a.get(getNodeForGeneratedName(name)) : (_b = privateEnv == null ? void 0 : privateEnv.identifiers) == null ? void 0 : _b.get(name.escapedText); -} -function setPrivateIdentifier(privateEnv, name, entry) { - var _t, _u; - if (isGeneratedPrivateIdentifier(name)) { - (_t = privateEnv.generatedIdentifiers) !== null && _t !== void 0 ? _t : (privateEnv.generatedIdentifiers = /* @__PURE__ */ new Map()); - privateEnv.generatedIdentifiers.set(getNodeForGeneratedName(name), entry); - } - else { - (_u = privateEnv.identifiers) !== null && _u !== void 0 ? _u : (privateEnv.identifiers = /* @__PURE__ */ new Map()); - privateEnv.identifiers.set(name.escapedText, entry); - } -} -function accessPrivateIdentifier(env, name) { - return walkUpLexicalEnvironments(env, function (env2) { return getPrivateIdentifier(env2.privateEnv, name); }); -} -// src/compiler/transformers/destructuring.ts -var FlattenLevel = /* @__PURE__ */ (function (FlattenLevel2) { - FlattenLevel2[FlattenLevel2["All"] = 0] = "All"; - FlattenLevel2[FlattenLevel2["ObjectRest"] = 1] = "ObjectRest"; - return FlattenLevel2; -})(FlattenLevel || {}); -function flattenDestructuringAssignment(node, visitor, context, level, needsValue, createAssignmentCallback) { - var location = node; - var value; - if (isDestructuringAssignment(node)) { - value = node.right; - while (isEmptyArrayLiteral(node.left) || isEmptyObjectLiteral(node.left)) { - if (isDestructuringAssignment(value)) { - location = node = value; - value = node.right; - } - else { - return Debug.checkDefined(visitNode(value, visitor, isExpression)); - } - } - } - var expressions; - var flattenContext = { - context: context, - level: level, - downlevelIteration: !!context.getCompilerOptions().downlevelIteration, - hoistTempVariables: true, - emitExpression: emitExpression, - emitBindingOrAssignment: emitBindingOrAssignment, - createArrayBindingOrAssignmentPattern: function (elements) { return makeArrayAssignmentPattern(context.factory, elements); }, - createObjectBindingOrAssignmentPattern: function (elements) { return makeObjectAssignmentPattern(context.factory, elements); }, - createArrayBindingOrAssignmentElement: makeAssignmentElement, - visitor: visitor - }; - if (value) { - value = visitNode(value, visitor, isExpression); - Debug.assert(value); - if (isIdentifier(value) && bindingOrAssignmentElementAssignsToName(node, value.escapedText) || bindingOrAssignmentElementContainsNonLiteralComputedName(node)) { - value = ensureIdentifier(flattenContext, value, - /*reuseIdentifierExpressions*/ - false, location); - } - else if (needsValue) { - value = ensureIdentifier(flattenContext, value, - /*reuseIdentifierExpressions*/ - true, location); - } - else if (nodeIsSynthesized(node)) { - location = value; - } - } - flattenBindingOrAssignmentElement(flattenContext, node, value, location, - /*skipInitializer*/ - isDestructuringAssignment(node)); - if (value && needsValue) { - if (!some(expressions)) { - return value; - } - expressions.push(value); - } - return context.factory.inlineExpressions(expressions) || context.factory.createOmittedExpression(); - function emitExpression(expression) { - expressions = append(expressions, expression); - } - function emitBindingOrAssignment(target, value2, location2, original) { - Debug.assertNode(target, createAssignmentCallback ? isIdentifier : isExpression); - var expression = createAssignmentCallback ? createAssignmentCallback(target, value2, location2) : setTextRange(context.factory.createAssignment(Debug.checkDefined(visitNode(target, visitor, isExpression)), value2), location2); - expression.original = original; - emitExpression(expression); - } -} -function bindingOrAssignmentElementAssignsToName(element, escapedName) { - var target = getTargetOfBindingOrAssignmentElement(element); - if (isBindingOrAssignmentPattern(target)) { - return bindingOrAssignmentPatternAssignsToName(target, escapedName); - } - else if (isIdentifier(target)) { - return target.escapedText === escapedName; - } - return false; -} -function bindingOrAssignmentPatternAssignsToName(pattern, escapedName) { - var e_462, _t; - var elements = getElementsOfBindingOrAssignmentPattern(pattern); - try { - for (var elements_4 = __values(elements), elements_4_1 = elements_4.next(); !elements_4_1.done; elements_4_1 = elements_4.next()) { - var element = elements_4_1.value; - if (bindingOrAssignmentElementAssignsToName(element, escapedName)) { - return true; - } - } - } - catch (e_462_1) { e_462 = { error: e_462_1 }; } - finally { - try { - if (elements_4_1 && !elements_4_1.done && (_t = elements_4.return)) _t.call(elements_4); - } - finally { if (e_462) throw e_462.error; } - } - return false; -} -function bindingOrAssignmentElementContainsNonLiteralComputedName(element) { - var propertyName = tryGetPropertyNameOfBindingOrAssignmentElement(element); - if (propertyName && isComputedPropertyName(propertyName) && !isLiteralExpression(propertyName.expression)) { - return true; - } - var target = getTargetOfBindingOrAssignmentElement(element); - return !!target && isBindingOrAssignmentPattern(target) && bindingOrAssignmentPatternContainsNonLiteralComputedName(target); -} -function bindingOrAssignmentPatternContainsNonLiteralComputedName(pattern) { - return !!forEach(getElementsOfBindingOrAssignmentPattern(pattern), bindingOrAssignmentElementContainsNonLiteralComputedName); -} -function flattenDestructuringBinding(node, visitor, context, level, rval, hoistTempVariables, skipInitializer) { - var e_463, _t; - if (hoistTempVariables === void 0) { hoistTempVariables = false; } - var pendingExpressions; - var pendingDeclarations = []; - var declarations = []; - var flattenContext = { - context: context, - level: level, - downlevelIteration: !!context.getCompilerOptions().downlevelIteration, - hoistTempVariables: hoistTempVariables, - emitExpression: emitExpression, - emitBindingOrAssignment: emitBindingOrAssignment, - createArrayBindingOrAssignmentPattern: function (elements) { return makeArrayBindingPattern(context.factory, elements); }, - createObjectBindingOrAssignmentPattern: function (elements) { return makeObjectBindingPattern(context.factory, elements); }, - createArrayBindingOrAssignmentElement: function (name) { return makeBindingElement(context.factory, name); }, - visitor: visitor - }; - if (isVariableDeclaration(node)) { - var initializer = getInitializerOfBindingOrAssignmentElement(node); - if (initializer && (isIdentifier(initializer) && bindingOrAssignmentElementAssignsToName(node, initializer.escapedText) || bindingOrAssignmentElementContainsNonLiteralComputedName(node))) { - initializer = ensureIdentifier(flattenContext, Debug.checkDefined(visitNode(initializer, flattenContext.visitor, isExpression)), - /*reuseIdentifierExpressions*/ - false, initializer); - node = context.factory.updateVariableDeclaration(node, node.name, - /*exclamationToken*/ - void 0, - /*type*/ - void 0, initializer); - } - } - flattenBindingOrAssignmentElement(flattenContext, node, rval, node, skipInitializer); - if (pendingExpressions) { - var temp = context.factory.createTempVariable( - /*recordTempVariable*/ - void 0); - if (hoistTempVariables) { - var value = context.factory.inlineExpressions(pendingExpressions); - pendingExpressions = void 0; - emitBindingOrAssignment(temp, value, - /*location*/ - void 0, - /*original*/ - void 0); - } - else { - context.hoistVariableDeclaration(temp); - var pendingDeclaration = last(pendingDeclarations); - pendingDeclaration.pendingExpressions = append(pendingDeclaration.pendingExpressions, context.factory.createAssignment(temp, pendingDeclaration.value)); - addRange(pendingDeclaration.pendingExpressions, pendingExpressions); - pendingDeclaration.value = temp; - } - } - try { - for (var pendingDeclarations_1 = __values(pendingDeclarations), pendingDeclarations_1_1 = pendingDeclarations_1.next(); !pendingDeclarations_1_1.done; pendingDeclarations_1_1 = pendingDeclarations_1.next()) { - var _u = pendingDeclarations_1_1.value, pendingExpressions2 = _u.pendingExpressions, name_76 = _u.name, value = _u.value, location_4 = _u.location, original = _u.original; - var variable = context.factory.createVariableDeclaration(name_76, - /*exclamationToken*/ - void 0, - /*type*/ - void 0, pendingExpressions2 ? context.factory.inlineExpressions(append(pendingExpressions2, value)) : value); - variable.original = original; - setTextRange(variable, location_4); - declarations.push(variable); - } - } - catch (e_463_1) { e_463 = { error: e_463_1 }; } - finally { - try { - if (pendingDeclarations_1_1 && !pendingDeclarations_1_1.done && (_t = pendingDeclarations_1.return)) _t.call(pendingDeclarations_1); - } - finally { if (e_463) throw e_463.error; } - } - return declarations; - function emitExpression(value) { - pendingExpressions = append(pendingExpressions, value); - } - function emitBindingOrAssignment(target, value, location, original) { - Debug.assertNode(target, isBindingName); - if (pendingExpressions) { - value = context.factory.inlineExpressions(append(pendingExpressions, value)); - pendingExpressions = void 0; - } - pendingDeclarations.push({ pendingExpressions: pendingExpressions, name: target, value: value, location: location, original: original }); - } -} -function flattenBindingOrAssignmentElement(flattenContext, element, value, location, skipInitializer) { - var bindingTarget = getTargetOfBindingOrAssignmentElement(element); - if (!skipInitializer) { - var initializer = visitNode(getInitializerOfBindingOrAssignmentElement(element), flattenContext.visitor, isExpression); - if (initializer) { - if (value) { - value = createDefaultValueCheck(flattenContext, value, initializer, location); - if (!isSimpleInlineableExpression(initializer) && isBindingOrAssignmentPattern(bindingTarget)) { - value = ensureIdentifier(flattenContext, value, - /*reuseIdentifierExpressions*/ - true, location); - } - } - else { - value = initializer; - } - } - else if (!value) { - value = flattenContext.context.factory.createVoidZero(); - } - } - if (isObjectBindingOrAssignmentPattern(bindingTarget)) { - flattenObjectBindingOrAssignmentPattern(flattenContext, element, bindingTarget, value, location); - } - else if (isArrayBindingOrAssignmentPattern(bindingTarget)) { - flattenArrayBindingOrAssignmentPattern(flattenContext, element, bindingTarget, value, location); - } - else { - flattenContext.emitBindingOrAssignment(bindingTarget, value, location, - /*original*/ - element); - } -} -function flattenObjectBindingOrAssignmentPattern(flattenContext, parent2, pattern, value, location) { - var elements = getElementsOfBindingOrAssignmentPattern(pattern); - var numElements = elements.length; - if (numElements !== 1) { - var reuseIdentifierExpressions = !isDeclarationBindingElement(parent2) || numElements !== 0; - value = ensureIdentifier(flattenContext, value, reuseIdentifierExpressions, location); - } - var bindingElements; - var computedTempVariables; - for (var i = 0; i < numElements; i++) { - var element = elements[i]; - if (!getRestIndicatorOfBindingOrAssignmentElement(element)) { - var propertyName = getPropertyNameOfBindingOrAssignmentElement(element); - if (flattenContext.level >= 1 /* ObjectRest */ && !(element.transformFlags & (32768 /* ContainsRestOrSpread */ | 65536 /* ContainsObjectRestOrSpread */)) && !(getTargetOfBindingOrAssignmentElement(element).transformFlags & (32768 /* ContainsRestOrSpread */ | 65536 /* ContainsObjectRestOrSpread */)) && !isComputedPropertyName(propertyName)) { - bindingElements = append(bindingElements, visitNode(element, flattenContext.visitor, isBindingOrAssignmentElement)); - } - else { - if (bindingElements) { - flattenContext.emitBindingOrAssignment(flattenContext.createObjectBindingOrAssignmentPattern(bindingElements), value, location, pattern); - bindingElements = void 0; - } - var rhsValue = createDestructuringPropertyAccess(flattenContext, value, propertyName); - if (isComputedPropertyName(propertyName)) { - computedTempVariables = append(computedTempVariables, rhsValue.argumentExpression); - } - flattenBindingOrAssignmentElement(flattenContext, element, rhsValue, - /*location*/ - element); - } - } - else if (i === numElements - 1) { - if (bindingElements) { - flattenContext.emitBindingOrAssignment(flattenContext.createObjectBindingOrAssignmentPattern(bindingElements), value, location, pattern); - bindingElements = void 0; - } - var rhsValue = flattenContext.context.getEmitHelperFactory().createRestHelper(value, elements, computedTempVariables, pattern); - flattenBindingOrAssignmentElement(flattenContext, element, rhsValue, element); - } - } - if (bindingElements) { - flattenContext.emitBindingOrAssignment(flattenContext.createObjectBindingOrAssignmentPattern(bindingElements), value, location, pattern); - } -} -function flattenArrayBindingOrAssignmentPattern(flattenContext, parent2, pattern, value, location) { - var e_464, _t; - var elements = getElementsOfBindingOrAssignmentPattern(pattern); - var numElements = elements.length; - if (flattenContext.level < 1 /* ObjectRest */ && flattenContext.downlevelIteration) { - value = ensureIdentifier(flattenContext, setTextRange(flattenContext.context.getEmitHelperFactory().createReadHelper(value, numElements > 0 && getRestIndicatorOfBindingOrAssignmentElement(elements[numElements - 1]) ? void 0 : numElements), location), - /*reuseIdentifierExpressions*/ - false, location); - } - else if (numElements !== 1 && (flattenContext.level < 1 /* ObjectRest */ || numElements === 0) || every(elements, isOmittedExpression)) { - var reuseIdentifierExpressions = !isDeclarationBindingElement(parent2) || numElements !== 0; - value = ensureIdentifier(flattenContext, value, reuseIdentifierExpressions, location); - } - var bindingElements; - var restContainingElements; - for (var i = 0; i < numElements; i++) { - var element = elements[i]; - if (flattenContext.level >= 1 /* ObjectRest */) { - if (element.transformFlags & 65536 /* ContainsObjectRestOrSpread */ || flattenContext.hasTransformedPriorElement && !isSimpleBindingOrAssignmentElement(element)) { - flattenContext.hasTransformedPriorElement = true; - var temp = flattenContext.context.factory.createTempVariable( - /*recordTempVariable*/ - void 0); - if (flattenContext.hoistTempVariables) { - flattenContext.context.hoistVariableDeclaration(temp); - } - restContainingElements = append(restContainingElements, [temp, element]); - bindingElements = append(bindingElements, flattenContext.createArrayBindingOrAssignmentElement(temp)); - } - else { - bindingElements = append(bindingElements, element); - } - } - else if (isOmittedExpression(element)) { - continue; - } - else if (!getRestIndicatorOfBindingOrAssignmentElement(element)) { - var rhsValue = flattenContext.context.factory.createElementAccessExpression(value, i); - flattenBindingOrAssignmentElement(flattenContext, element, rhsValue, - /*location*/ - element); - } - else if (i === numElements - 1) { - var rhsValue = flattenContext.context.factory.createArraySliceCall(value, i); - flattenBindingOrAssignmentElement(flattenContext, element, rhsValue, - /*location*/ - element); - } - } - if (bindingElements) { - flattenContext.emitBindingOrAssignment(flattenContext.createArrayBindingOrAssignmentPattern(bindingElements), value, location, pattern); - } - if (restContainingElements) { - try { - for (var restContainingElements_1 = __values(restContainingElements), restContainingElements_1_1 = restContainingElements_1.next(); !restContainingElements_1_1.done; restContainingElements_1_1 = restContainingElements_1.next()) { - var _u = __read(restContainingElements_1_1.value, 2), id = _u[0], element = _u[1]; - flattenBindingOrAssignmentElement(flattenContext, element, id, element); - } - } - catch (e_464_1) { e_464 = { error: e_464_1 }; } - finally { - try { - if (restContainingElements_1_1 && !restContainingElements_1_1.done && (_t = restContainingElements_1.return)) _t.call(restContainingElements_1); - } - finally { if (e_464) throw e_464.error; } - } - } -} -function isSimpleBindingOrAssignmentElement(element) { - var target = getTargetOfBindingOrAssignmentElement(element); - if (!target || isOmittedExpression(target)) - return true; - var propertyName = tryGetPropertyNameOfBindingOrAssignmentElement(element); - if (propertyName && !isPropertyNameLiteral(propertyName)) - return false; - var initializer = getInitializerOfBindingOrAssignmentElement(element); - if (initializer && !isSimpleInlineableExpression(initializer)) - return false; - if (isBindingOrAssignmentPattern(target)) - return every(getElementsOfBindingOrAssignmentPattern(target), isSimpleBindingOrAssignmentElement); - return isIdentifier(target); -} -function createDefaultValueCheck(flattenContext, value, defaultValue, location) { - value = ensureIdentifier(flattenContext, value, - /*reuseIdentifierExpressions*/ - true, location); - return flattenContext.context.factory.createConditionalExpression(flattenContext.context.factory.createTypeCheck(value, "undefined"), - /*questionToken*/ - void 0, defaultValue, - /*colonToken*/ - void 0, value); -} -function createDestructuringPropertyAccess(flattenContext, value, propertyName) { - var factory2 = flattenContext.context.factory; - if (isComputedPropertyName(propertyName)) { - var argumentExpression = ensureIdentifier(flattenContext, Debug.checkDefined(visitNode(propertyName.expression, flattenContext.visitor, isExpression)), - /*reuseIdentifierExpressions*/ - false, - /*location*/ - propertyName); - return flattenContext.context.factory.createElementAccessExpression(value, argumentExpression); - } - else if (isStringOrNumericLiteralLike(propertyName)) { - var argumentExpression = factory2.cloneNode(propertyName); - return flattenContext.context.factory.createElementAccessExpression(value, argumentExpression); - } - else { - var name_77 = flattenContext.context.factory.createIdentifier(idText(propertyName)); - return flattenContext.context.factory.createPropertyAccessExpression(value, name_77); - } -} -function ensureIdentifier(flattenContext, value, reuseIdentifierExpressions, location) { - if (isIdentifier(value) && reuseIdentifierExpressions) { - return value; - } - else { - var temp = flattenContext.context.factory.createTempVariable( - /*recordTempVariable*/ - void 0); - if (flattenContext.hoistTempVariables) { - flattenContext.context.hoistVariableDeclaration(temp); - flattenContext.emitExpression(setTextRange(flattenContext.context.factory.createAssignment(temp, value), location)); - } - else { - flattenContext.emitBindingOrAssignment(temp, value, location, - /*original*/ - void 0); - } - return temp; - } -} -function makeArrayBindingPattern(factory2, elements) { - Debug.assertEachNode(elements, isArrayBindingElement); - return factory2.createArrayBindingPattern(elements); -} -function makeArrayAssignmentPattern(factory2, elements) { - Debug.assertEachNode(elements, isArrayBindingOrAssignmentElement); - return factory2.createArrayLiteralExpression(map(elements, factory2.converters.convertToArrayAssignmentElement)); -} -function makeObjectBindingPattern(factory2, elements) { - Debug.assertEachNode(elements, isBindingElement); - return factory2.createObjectBindingPattern(elements); -} -function makeObjectAssignmentPattern(factory2, elements) { - Debug.assertEachNode(elements, isObjectBindingOrAssignmentElement); - return factory2.createObjectLiteralExpression(map(elements, factory2.converters.convertToObjectAssignmentElement)); -} -function makeBindingElement(factory2, name) { - return factory2.createBindingElement( - /*dotDotDotToken*/ - void 0, - /*propertyName*/ - void 0, name); -} -function makeAssignmentElement(name) { - return name; -} -// src/compiler/transformers/classThis.ts -function createClassThisAssignmentBlock(factory2, classThis, thisExpression) { - if (thisExpression === void 0) { thisExpression = factory2.createThis(); } - var expression = factory2.createAssignment(classThis, thisExpression); - var statement = factory2.createExpressionStatement(expression); - var body = factory2.createBlock([statement], - /*multiLine*/ - false); - var block = factory2.createClassStaticBlockDeclaration(body); - getOrCreateEmitNode(block).classThis = classThis; - return block; -} -function isClassThisAssignmentBlock(node) { - var _a; - if (!isClassStaticBlockDeclaration(node) || node.body.statements.length !== 1) { - return false; - } - var statement = node.body.statements[0]; - return isExpressionStatement(statement) && isAssignmentExpression(statement.expression, - /*excludeCompoundAssignment*/ - true) && isIdentifier(statement.expression.left) && ((_a = node.emitNode) == null ? void 0 : _a.classThis) === statement.expression.left && statement.expression.right.kind === 110 /* ThisKeyword */; -} -function classHasClassThisAssignment(node) { - var _a; - return !!((_a = node.emitNode) == null ? void 0 : _a.classThis) && some(node.members, isClassThisAssignmentBlock); -} -function injectClassThisAssignmentIfMissing(factory2, node, classThis, thisExpression) { - if (classHasClassThisAssignment(node)) { - return node; - } - var staticBlock = createClassThisAssignmentBlock(factory2, classThis, thisExpression); - if (node.name) { - setSourceMapRange(staticBlock.body.statements[0], node.name); - } - var members = factory2.createNodeArray(__spreadArray([staticBlock], __read(node.members), false)); - setTextRange(members, node.members); - var updatedNode = isClassDeclaration(node) ? factory2.updateClassDeclaration(node, node.modifiers, node.name, node.typeParameters, node.heritageClauses, members) : factory2.updateClassExpression(node, node.modifiers, node.name, node.typeParameters, node.heritageClauses, members); - getOrCreateEmitNode(updatedNode).classThis = classThis; - return updatedNode; -} -// src/compiler/transformers/namedEvaluation.ts -function getAssignedNameOfIdentifier(factory2, name, expression) { - var original = getOriginalNode(skipOuterExpressions(expression)); - if ((isClassDeclaration(original) || isFunctionDeclaration(original)) && !original.name && hasSyntacticModifier(original, 1024 /* Default */)) { - return factory2.createStringLiteral("default"); - } - return factory2.createStringLiteralFromNode(name); -} -function getAssignedNameOfPropertyName(context, name, assignedNameText) { - var factory2 = context.factory; - if (assignedNameText !== void 0) { - var assignedName2 = factory2.createStringLiteral(assignedNameText); - return { assignedName: assignedName2, name: name }; - } - if (isPropertyNameLiteral(name) || isPrivateIdentifier(name)) { - var assignedName2 = factory2.createStringLiteralFromNode(name); - return { assignedName: assignedName2, name: name }; - } - if (isPropertyNameLiteral(name.expression) && !isIdentifier(name.expression)) { - var assignedName2 = factory2.createStringLiteralFromNode(name.expression); - return { assignedName: assignedName2, name: name }; - } - var assignedName = factory2.getGeneratedNameForNode(name); - context.hoistVariableDeclaration(assignedName); - var key = context.getEmitHelperFactory().createPropKeyHelper(name.expression); - var assignment = factory2.createAssignment(assignedName, key); - var updatedName = factory2.updateComputedPropertyName(name, assignment); - return { assignedName: assignedName, name: updatedName }; -} -function createClassNamedEvaluationHelperBlock(context, assignedName, thisExpression) { - if (thisExpression === void 0) { thisExpression = context.factory.createThis(); } - var factory2 = context.factory; - var expression = context.getEmitHelperFactory().createSetFunctionNameHelper(thisExpression, assignedName); - var statement = factory2.createExpressionStatement(expression); - var body = factory2.createBlock([statement], - /*multiLine*/ - false); - var block = factory2.createClassStaticBlockDeclaration(body); - getOrCreateEmitNode(block).assignedName = assignedName; - return block; -} -function isClassNamedEvaluationHelperBlock(node) { - var _a; - if (!isClassStaticBlockDeclaration(node) || node.body.statements.length !== 1) { - return false; - } - var statement = node.body.statements[0]; - return isExpressionStatement(statement) && isCallToHelper(statement.expression, "___setFunctionName") && statement.expression.arguments.length >= 2 && statement.expression.arguments[1] === ((_a = node.emitNode) == null ? void 0 : _a.assignedName); -} -function classHasExplicitlyAssignedName(node) { - var _a; - return !!((_a = node.emitNode) == null ? void 0 : _a.assignedName) && some(node.members, isClassNamedEvaluationHelperBlock); -} -function classHasDeclaredOrExplicitlyAssignedName(node) { - return !!node.name || classHasExplicitlyAssignedName(node); -} -function injectClassNamedEvaluationHelperBlockIfMissing(context, node, assignedName, thisExpression) { - if (classHasExplicitlyAssignedName(node)) { - return node; - } - var factory2 = context.factory; - var namedEvaluationBlock = createClassNamedEvaluationHelperBlock(context, assignedName, thisExpression); - if (node.name) { - setSourceMapRange(namedEvaluationBlock.body.statements[0], node.name); - } - var insertionIndex = findIndex(node.members, isClassThisAssignmentBlock) + 1; - var leading = node.members.slice(0, insertionIndex); - var trailing = node.members.slice(insertionIndex); - var members = factory2.createNodeArray(__spreadArray(__spreadArray(__spreadArray([], __read(leading), false), [namedEvaluationBlock], false), __read(trailing), false)); - setTextRange(members, node.members); - node = isClassDeclaration(node) ? factory2.updateClassDeclaration(node, node.modifiers, node.name, node.typeParameters, node.heritageClauses, members) : factory2.updateClassExpression(node, node.modifiers, node.name, node.typeParameters, node.heritageClauses, members); - getOrCreateEmitNode(node).assignedName = assignedName; - return node; -} -function finishTransformNamedEvaluation(context, expression, assignedName, ignoreEmptyStringLiteral) { - if (ignoreEmptyStringLiteral && isStringLiteral(assignedName) && isEmptyStringLiteral(assignedName)) { - return expression; - } - var factory2 = context.factory; - var innerExpression = skipOuterExpressions(expression); - var updatedExpression = isClassExpression(innerExpression) ? cast(injectClassNamedEvaluationHelperBlockIfMissing(context, innerExpression, assignedName), isClassExpression) : context.getEmitHelperFactory().createSetFunctionNameHelper(innerExpression, assignedName); - return factory2.restoreOuterExpressions(expression, updatedExpression); -} -function transformNamedEvaluationOfPropertyAssignment(context, node, ignoreEmptyStringLiteral, assignedNameText) { - var factory2 = context.factory; - var _t = getAssignedNameOfPropertyName(context, node.name, assignedNameText), assignedName = _t.assignedName, name = _t.name; - var initializer = finishTransformNamedEvaluation(context, node.initializer, assignedName, ignoreEmptyStringLiteral); - return factory2.updatePropertyAssignment(node, name, initializer); -} -function transformNamedEvaluationOfShorthandAssignmentProperty(context, node, ignoreEmptyStringLiteral, assignedNameText) { - var factory2 = context.factory; - var assignedName = assignedNameText !== void 0 ? factory2.createStringLiteral(assignedNameText) : getAssignedNameOfIdentifier(factory2, node.name, node.objectAssignmentInitializer); - var objectAssignmentInitializer = finishTransformNamedEvaluation(context, node.objectAssignmentInitializer, assignedName, ignoreEmptyStringLiteral); - return factory2.updateShorthandPropertyAssignment(node, node.name, objectAssignmentInitializer); -} -function transformNamedEvaluationOfVariableDeclaration(context, node, ignoreEmptyStringLiteral, assignedNameText) { - var factory2 = context.factory; - var assignedName = assignedNameText !== void 0 ? factory2.createStringLiteral(assignedNameText) : getAssignedNameOfIdentifier(factory2, node.name, node.initializer); - var initializer = finishTransformNamedEvaluation(context, node.initializer, assignedName, ignoreEmptyStringLiteral); - return factory2.updateVariableDeclaration(node, node.name, node.exclamationToken, node.type, initializer); -} -function transformNamedEvaluationOfParameterDeclaration(context, node, ignoreEmptyStringLiteral, assignedNameText) { - var factory2 = context.factory; - var assignedName = assignedNameText !== void 0 ? factory2.createStringLiteral(assignedNameText) : getAssignedNameOfIdentifier(factory2, node.name, node.initializer); - var initializer = finishTransformNamedEvaluation(context, node.initializer, assignedName, ignoreEmptyStringLiteral); - return factory2.updateParameterDeclaration(node, node.modifiers, node.dotDotDotToken, node.name, node.questionToken, node.type, initializer); -} -function transformNamedEvaluationOfBindingElement(context, node, ignoreEmptyStringLiteral, assignedNameText) { - var factory2 = context.factory; - var assignedName = assignedNameText !== void 0 ? factory2.createStringLiteral(assignedNameText) : getAssignedNameOfIdentifier(factory2, node.name, node.initializer); - var initializer = finishTransformNamedEvaluation(context, node.initializer, assignedName, ignoreEmptyStringLiteral); - return factory2.updateBindingElement(node, node.dotDotDotToken, node.propertyName, node.name, initializer); -} -function transformNamedEvaluationOfPropertyDeclaration(context, node, ignoreEmptyStringLiteral, assignedNameText) { - var _t; - var factory2 = context.factory; - var _u = getAssignedNameOfPropertyName(context, node.name, assignedNameText), assignedName = _u.assignedName, name = _u.name; - var initializer = finishTransformNamedEvaluation(context, node.initializer, assignedName, ignoreEmptyStringLiteral); - return factory2.updatePropertyDeclaration(node, node.modifiers, name, (_t = node.questionToken) !== null && _t !== void 0 ? _t : node.exclamationToken, node.type, initializer); -} -function transformNamedEvaluationOfAssignmentExpression(context, node, ignoreEmptyStringLiteral, assignedNameText) { - var factory2 = context.factory; - var assignedName = assignedNameText !== void 0 ? factory2.createStringLiteral(assignedNameText) : getAssignedNameOfIdentifier(factory2, node.left, node.right); - var right = finishTransformNamedEvaluation(context, node.right, assignedName, ignoreEmptyStringLiteral); - return factory2.updateBinaryExpression(node, node.left, node.operatorToken, right); -} -function transformNamedEvaluationOfExportAssignment(context, node, ignoreEmptyStringLiteral, assignedNameText) { - var factory2 = context.factory; - var assignedName = assignedNameText !== void 0 ? factory2.createStringLiteral(assignedNameText) : factory2.createStringLiteral(node.isExportEquals ? "" : "default"); - var expression = finishTransformNamedEvaluation(context, node.expression, assignedName, ignoreEmptyStringLiteral); - return factory2.updateExportAssignment(node, node.modifiers, expression); -} -function transformNamedEvaluation(context, node, ignoreEmptyStringLiteral, assignedName) { - switch (node.kind) { - case 303 /* PropertyAssignment */: - return transformNamedEvaluationOfPropertyAssignment(context, node, ignoreEmptyStringLiteral, assignedName); - case 304 /* ShorthandPropertyAssignment */: - return transformNamedEvaluationOfShorthandAssignmentProperty(context, node, ignoreEmptyStringLiteral, assignedName); - case 260 /* VariableDeclaration */: - return transformNamedEvaluationOfVariableDeclaration(context, node, ignoreEmptyStringLiteral, assignedName); - case 169 /* Parameter */: - return transformNamedEvaluationOfParameterDeclaration(context, node, ignoreEmptyStringLiteral, assignedName); - case 208 /* BindingElement */: - return transformNamedEvaluationOfBindingElement(context, node, ignoreEmptyStringLiteral, assignedName); - case 172 /* PropertyDeclaration */: - return transformNamedEvaluationOfPropertyDeclaration(context, node, ignoreEmptyStringLiteral, assignedName); - case 226 /* BinaryExpression */: - return transformNamedEvaluationOfAssignmentExpression(context, node, ignoreEmptyStringLiteral, assignedName); - case 277 /* ExportAssignment */: - return transformNamedEvaluationOfExportAssignment(context, node, ignoreEmptyStringLiteral, assignedName); - } -} -// src/compiler/transformers/taggedTemplate.ts -var ProcessLevel = /* @__PURE__ */ (function (ProcessLevel2) { - ProcessLevel2[ProcessLevel2["LiftRestriction"] = 0] = "LiftRestriction"; - ProcessLevel2[ProcessLevel2["All"] = 1] = "All"; - return ProcessLevel2; -})(ProcessLevel || {}); -function processTaggedTemplateExpression(context, node, visitor, currentSourceFile, recordTaggedTemplateString, level) { - var e_465, _t; - var tag = visitNode(node.tag, visitor, isExpression); - Debug.assert(tag); - var templateArguments = [void 0]; - var cookedStrings = []; - var rawStrings = []; - var template = node.template; - if (level === 0 /* LiftRestriction */ && !hasInvalidEscape(template)) { - return visitEachChild(node, visitor, context); - } - var factory2 = context.factory; - if (isNoSubstitutionTemplateLiteral(template)) { - cookedStrings.push(createTemplateCooked(factory2, template)); - rawStrings.push(getRawLiteral(factory2, template, currentSourceFile)); - } - else { - cookedStrings.push(createTemplateCooked(factory2, template.head)); - rawStrings.push(getRawLiteral(factory2, template.head, currentSourceFile)); - try { - for (var _u = __values(template.templateSpans), _v = _u.next(); !_v.done; _v = _u.next()) { - var templateSpan = _v.value; - cookedStrings.push(createTemplateCooked(factory2, templateSpan.literal)); - rawStrings.push(getRawLiteral(factory2, templateSpan.literal, currentSourceFile)); - templateArguments.push(Debug.checkDefined(visitNode(templateSpan.expression, visitor, isExpression))); - } - } - catch (e_465_1) { e_465 = { error: e_465_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_465) throw e_465.error; } - } - } - var helperCall = context.getEmitHelperFactory().createTemplateObjectHelper(factory2.createArrayLiteralExpression(cookedStrings), factory2.createArrayLiteralExpression(rawStrings)); - if (isExternalModule(currentSourceFile)) { - var tempVar = factory2.createUniqueName("templateObject"); - recordTaggedTemplateString(tempVar); - templateArguments[0] = factory2.createLogicalOr(tempVar, factory2.createAssignment(tempVar, helperCall)); - } - else { - templateArguments[0] = helperCall; - } - return factory2.createCallExpression(tag, - /*typeArguments*/ - void 0, templateArguments); -} -function createTemplateCooked(factory2, template) { - return template.templateFlags & 26656 /* IsInvalid */ ? factory2.createVoidZero() : factory2.createStringLiteral(template.text); -} -function getRawLiteral(factory2, node, currentSourceFile) { - var text = node.rawText; - if (text === void 0) { - Debug.assertIsDefined(currentSourceFile, "Template literal node is missing 'rawText' and does not have a source file. Possibly bad transform."); - text = getSourceTextOfNodeFromSourceFile(currentSourceFile, node); - var isLast = node.kind === 15 /* NoSubstitutionTemplateLiteral */ || node.kind === 18 /* TemplateTail */; - text = text.substring(1, text.length - (isLast ? 1 : 2)); - } - text = text.replace(/\r\n?/g, "\n"); - return setTextRange(factory2.createStringLiteral(text), node); -} -// src/compiler/transformers/ts.ts -var USE_NEW_TYPE_METADATA_FORMAT = false; -function transformTypeScript(context) { - var factory2 = context.factory, emitHelpers = context.getEmitHelperFactory, startLexicalEnvironment = context.startLexicalEnvironment, resumeLexicalEnvironment = context.resumeLexicalEnvironment, endLexicalEnvironment = context.endLexicalEnvironment, hoistVariableDeclaration = context.hoistVariableDeclaration; - var resolver = context.getEmitResolver(); - var compilerOptions = context.getCompilerOptions(); - var languageVersion = getEmitScriptTarget(compilerOptions); - var moduleKind = getEmitModuleKind(compilerOptions); - var legacyDecorators = !!compilerOptions.experimentalDecorators; - var typeSerializer = compilerOptions.emitDecoratorMetadata ? createRuntimeTypeSerializer(context) : void 0; - var previousOnEmitNode = context.onEmitNode; - var previousOnSubstituteNode = context.onSubstituteNode; - context.onEmitNode = onEmitNode; - context.onSubstituteNode = onSubstituteNode; - context.enableSubstitution(211 /* PropertyAccessExpression */); - context.enableSubstitution(212 /* ElementAccessExpression */); - var currentSourceFile; - var currentNamespace; - var currentNamespaceContainerName; - var currentLexicalScope; - var currentScopeFirstDeclarationsOfName; - var currentClassHasParameterProperties; - var enabledSubstitutions; - var applicableSubstitutions; - return transformSourceFileOrBundle; - function transformSourceFileOrBundle(node) { - if (node.kind === 313 /* Bundle */) { - return transformBundle(node); - } - return transformSourceFile(node); - } - function transformBundle(node) { - return factory2.createBundle(node.sourceFiles.map(transformSourceFile), mapDefined(node.prepends, function (prepend) { - if (prepend.kind === 315 /* InputFiles */) { - return createUnparsedSourceFile(prepend, "js"); - } - return prepend; - })); - } - function transformSourceFile(node) { - if (node.isDeclarationFile) { - return node; - } - currentSourceFile = node; - var visited = saveStateAndInvoke(node, visitSourceFile); - addEmitHelpers(visited, context.readEmitHelpers()); - currentSourceFile = void 0; - return visited; - } - function saveStateAndInvoke(node, f) { - var savedCurrentScope = currentLexicalScope; - var savedCurrentScopeFirstDeclarationsOfName = currentScopeFirstDeclarationsOfName; - var savedCurrentClassHasParameterProperties = currentClassHasParameterProperties; - onBeforeVisitNode(node); - var visited = f(node); - if (currentLexicalScope !== savedCurrentScope) { - currentScopeFirstDeclarationsOfName = savedCurrentScopeFirstDeclarationsOfName; - } - currentLexicalScope = savedCurrentScope; - currentClassHasParameterProperties = savedCurrentClassHasParameterProperties; - return visited; - } - function onBeforeVisitNode(node) { - switch (node.kind) { - case 312 /* SourceFile */: - case 269 /* CaseBlock */: - case 268 /* ModuleBlock */: - case 241 /* Block */: - currentLexicalScope = node; - currentScopeFirstDeclarationsOfName = void 0; - break; - case 263 /* ClassDeclaration */: - case 262 /* FunctionDeclaration */: - if (hasSyntacticModifier(node, 2 /* Ambient */)) { - break; - } - if (node.name) { - recordEmittedDeclarationInScope(node); - } - else { - Debug.assert(node.kind === 263 /* ClassDeclaration */ || hasSyntacticModifier(node, 1024 /* Default */)); - } - break; - } - } - function visitor(node) { - return saveStateAndInvoke(node, visitorWorker); - } - function visitorWorker(node) { - if (node.transformFlags & 1 /* ContainsTypeScript */) { - return visitTypeScript(node); - } - return node; - } - function sourceElementVisitor(node) { - return saveStateAndInvoke(node, sourceElementVisitorWorker); - } - function sourceElementVisitorWorker(node) { - switch (node.kind) { - case 272 /* ImportDeclaration */: - case 271 /* ImportEqualsDeclaration */: - case 277 /* ExportAssignment */: - case 278 /* ExportDeclaration */: - return visitElidableStatement(node); - default: - return visitorWorker(node); - } - } - function visitElidableStatement(node) { - var parsed = getParseTreeNode(node); - if (parsed !== node) { - if (node.transformFlags & 1 /* ContainsTypeScript */) { - return visitEachChild(node, visitor, context); - } - return node; - } - switch (node.kind) { - case 272 /* ImportDeclaration */: - return visitImportDeclaration(node); - case 271 /* ImportEqualsDeclaration */: - return visitImportEqualsDeclaration(node); - case 277 /* ExportAssignment */: - return visitExportAssignment(node); - case 278 /* ExportDeclaration */: - return visitExportDeclaration(node); - default: - Debug.fail("Unhandled ellided statement"); - } - } - function namespaceElementVisitor(node) { - return saveStateAndInvoke(node, namespaceElementVisitorWorker); - } - function namespaceElementVisitorWorker(node) { - if (node.kind === 278 /* ExportDeclaration */ || node.kind === 272 /* ImportDeclaration */ || node.kind === 273 /* ImportClause */ || node.kind === 271 /* ImportEqualsDeclaration */ && node.moduleReference.kind === 283 /* ExternalModuleReference */) { - return void 0; - } - else if (node.transformFlags & 1 /* ContainsTypeScript */ || hasSyntacticModifier(node, 1 /* Export */)) { - return visitTypeScript(node); - } - return node; - } - function getClassElementVisitor(parent2) { - return function (node) { return saveStateAndInvoke(node, function (n) { return classElementVisitorWorker(n, parent2); }); }; - } - function classElementVisitorWorker(node, parent2) { - switch (node.kind) { - case 176 /* Constructor */: - return visitConstructor(node); - case 172 /* PropertyDeclaration */: - return visitPropertyDeclaration(node, parent2); - case 177 /* GetAccessor */: - return visitGetAccessor(node, parent2); - case 178 /* SetAccessor */: - return visitSetAccessor(node, parent2); - case 174 /* MethodDeclaration */: - return visitMethodDeclaration(node, parent2); - case 175 /* ClassStaticBlockDeclaration */: - return visitEachChild(node, visitor, context); - case 240 /* SemicolonClassElement */: - return node; - case 181 /* IndexSignature */: - return; - default: - return Debug.failBadSyntaxKind(node); - } - } - function getObjectLiteralElementVisitor(parent2) { - return function (node) { return saveStateAndInvoke(node, function (n) { return objectLiteralElementVisitorWorker(n, parent2); }); }; - } - function objectLiteralElementVisitorWorker(node, parent2) { - switch (node.kind) { - case 303 /* PropertyAssignment */: - case 304 /* ShorthandPropertyAssignment */: - case 305 /* SpreadAssignment */: - return visitor(node); - case 177 /* GetAccessor */: - return visitGetAccessor(node, parent2); - case 178 /* SetAccessor */: - return visitSetAccessor(node, parent2); - case 174 /* MethodDeclaration */: - return visitMethodDeclaration(node, parent2); - default: - return Debug.failBadSyntaxKind(node); - } - } - function decoratorElidingVisitor(node) { - return isDecorator(node) ? void 0 : visitor(node); - } - function modifierElidingVisitor(node) { - return isModifier(node) ? void 0 : visitor(node); - } - function modifierVisitor(node) { - if (isDecorator(node)) - return void 0; - if (modifierToFlag(node.kind) & 117086 /* TypeScriptModifier */) { - return void 0; - } - else if (currentNamespace && node.kind === 95 /* ExportKeyword */) { - return void 0; - } - return node; - } - function visitTypeScript(node) { - if (isStatement(node) && hasSyntacticModifier(node, 2 /* Ambient */)) { - return factory2.createNotEmittedStatement(node); - } - switch (node.kind) { - case 95 /* ExportKeyword */: - case 90 /* DefaultKeyword */: - return currentNamespace ? void 0 : node; - case 125 /* PublicKeyword */: - case 123 /* PrivateKeyword */: - case 124 /* ProtectedKeyword */: - case 128 /* AbstractKeyword */: - case 164 /* OverrideKeyword */: - case 87 /* ConstKeyword */: - case 138 /* DeclareKeyword */: - case 148 /* ReadonlyKeyword */: - case 103 /* InKeyword */: - case 147 /* OutKeyword */: - case 188 /* ArrayType */: - case 189 /* TupleType */: - case 190 /* OptionalType */: - case 191 /* RestType */: - case 187 /* TypeLiteral */: - case 182 /* TypePredicate */: - case 168 /* TypeParameter */: - case 133 /* AnyKeyword */: - case 159 /* UnknownKeyword */: - case 136 /* BooleanKeyword */: - case 154 /* StringKeyword */: - case 150 /* NumberKeyword */: - case 146 /* NeverKeyword */: - case 116 /* VoidKeyword */: - case 155 /* SymbolKeyword */: - case 185 /* ConstructorType */: - case 184 /* FunctionType */: - case 186 /* TypeQuery */: - case 183 /* TypeReference */: - case 192 /* UnionType */: - case 193 /* IntersectionType */: - case 194 /* ConditionalType */: - case 196 /* ParenthesizedType */: - case 197 /* ThisType */: - case 198 /* TypeOperator */: - case 199 /* IndexedAccessType */: - case 200 /* MappedType */: - case 201 /* LiteralType */: - case 181 /* IndexSignature */: - return void 0; - case 265 /* TypeAliasDeclaration */: - return factory2.createNotEmittedStatement(node); - case 270 /* NamespaceExportDeclaration */: - return void 0; - case 264 /* InterfaceDeclaration */: - return factory2.createNotEmittedStatement(node); - case 263 /* ClassDeclaration */: - return visitClassDeclaration(node); - case 231 /* ClassExpression */: - return visitClassExpression(node); - case 298 /* HeritageClause */: - return visitHeritageClause(node); - case 233 /* ExpressionWithTypeArguments */: - return visitExpressionWithTypeArguments(node); - case 210 /* ObjectLiteralExpression */: - return visitObjectLiteralExpression(node); - case 176 /* Constructor */: - case 172 /* PropertyDeclaration */: - case 174 /* MethodDeclaration */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - case 175 /* ClassStaticBlockDeclaration */: - return Debug.fail("Class and object literal elements must be visited with their respective visitors"); - case 262 /* FunctionDeclaration */: - return visitFunctionDeclaration(node); - case 218 /* FunctionExpression */: - return visitFunctionExpression(node); - case 219 /* ArrowFunction */: - return visitArrowFunction(node); - case 169 /* Parameter */: - return visitParameter(node); - case 217 /* ParenthesizedExpression */: - return visitParenthesizedExpression(node); - case 216 /* TypeAssertionExpression */: - case 234 /* AsExpression */: - return visitAssertionExpression(node); - case 238 /* SatisfiesExpression */: - return visitSatisfiesExpression(node); - case 213 /* CallExpression */: - return visitCallExpression(node); - case 214 /* NewExpression */: - return visitNewExpression(node); - case 215 /* TaggedTemplateExpression */: - return visitTaggedTemplateExpression(node); - case 235 /* NonNullExpression */: - return visitNonNullExpression(node); - case 266 /* EnumDeclaration */: - return visitEnumDeclaration(node); - case 243 /* VariableStatement */: - return visitVariableStatement(node); - case 260 /* VariableDeclaration */: - return visitVariableDeclaration(node); - case 267 /* ModuleDeclaration */: - return visitModuleDeclaration(node); - case 271 /* ImportEqualsDeclaration */: - return visitImportEqualsDeclaration(node); - case 285 /* JsxSelfClosingElement */: - return visitJsxSelfClosingElement(node); - case 286 /* JsxOpeningElement */: - return visitJsxJsxOpeningElement(node); - default: - return visitEachChild(node, visitor, context); - } - } - function visitSourceFile(node) { - var alwaysStrict = getStrictOptionValue(compilerOptions, "alwaysStrict") && !(isExternalModule(node) && moduleKind >= 5 /* ES2015 */) && !isJsonSourceFile(node); - return factory2.updateSourceFile(node, visitLexicalEnvironment(node.statements, sourceElementVisitor, context, - /*start*/ - 0, alwaysStrict)); - } - function visitObjectLiteralExpression(node) { - return factory2.updateObjectLiteralExpression(node, visitNodes2(node.properties, getObjectLiteralElementVisitor(node), isObjectLiteralElementLike)); - } - function getClassFacts(node) { - var facts = 0 /* None */; - if (some(getProperties(node, - /*requireInitializer*/ - true, - /*isStatic*/ - true))) - facts |= 1 /* HasStaticInitializedProperties */; - var extendsClauseElement = getEffectiveBaseTypeNode(node); - if (extendsClauseElement && skipOuterExpressions(extendsClauseElement.expression).kind !== 106 /* NullKeyword */) - facts |= 64 /* IsDerivedClass */; - if (classOrConstructorParameterIsDecorated(legacyDecorators, node)) - facts |= 2 /* HasClassOrConstructorParameterDecorators */; - if (childIsDecorated(legacyDecorators, node)) - facts |= 4 /* HasMemberDecorators */; - if (isExportOfNamespace(node)) - facts |= 8 /* IsExportOfNamespace */; - else if (isDefaultExternalModuleExport(node)) - facts |= 32 /* IsDefaultExternalExport */; - else if (isNamedExternalModuleExport(node)) - facts |= 16 /* IsNamedExternalExport */; - return facts; - } - function hasTypeScriptClassSyntax(node) { - return !!(node.transformFlags & 8192 /* ContainsTypeScriptClassSyntax */); - } - function isClassLikeDeclarationWithTypeScriptSyntax(node) { - return hasDecorators(node) || some(node.typeParameters) || some(node.heritageClauses, hasTypeScriptClassSyntax) || some(node.members, hasTypeScriptClassSyntax); - } - function visitClassDeclaration(node) { - var _t; - var facts = getClassFacts(node); - var promoteToIIFE = languageVersion <= 1 /* ES5 */ && !!(facts & 7 /* MayNeedImmediatelyInvokedFunctionExpression */); - if (!isClassLikeDeclarationWithTypeScriptSyntax(node) && !classOrConstructorParameterIsDecorated(legacyDecorators, node) && !isExportOfNamespace(node)) { - return factory2.updateClassDeclaration(node, visitNodes2(node.modifiers, modifierVisitor, isModifier), node.name, - /*typeParameters*/ - void 0, visitNodes2(node.heritageClauses, visitor, isHeritageClause), visitNodes2(node.members, getClassElementVisitor(node), isClassElement)); - } - if (promoteToIIFE) { - context.startLexicalEnvironment(); - } - var moveModifiers = promoteToIIFE || facts & 8 /* IsExportOfNamespace */; - var modifiers = moveModifiers ? visitNodes2(node.modifiers, modifierElidingVisitor, isModifierLike) : visitNodes2(node.modifiers, visitor, isModifierLike); - if (facts & 2 /* HasClassOrConstructorParameterDecorators */) { - modifiers = injectClassTypeMetadata(modifiers, node); - } - var needsName = moveModifiers && !node.name || facts & 4 /* HasMemberDecorators */ || facts & 1 /* HasStaticInitializedProperties */; - var name = needsName ? (_t = node.name) !== null && _t !== void 0 ? _t : factory2.getGeneratedNameForNode(node) : node.name; - var classDeclaration = factory2.updateClassDeclaration(node, modifiers, name, - /*typeParameters*/ - void 0, visitNodes2(node.heritageClauses, visitor, isHeritageClause), transformClassMembers(node)); - var emitFlags = getEmitFlags(node); - if (facts & 1 /* HasStaticInitializedProperties */) { - emitFlags |= 64 /* NoTrailingSourceMap */; - } - setEmitFlags(classDeclaration, emitFlags); - var statement; - if (promoteToIIFE) { - var statements = [classDeclaration]; - var closingBraceLocation = createTokenRange(skipTrivia(currentSourceFile.text, node.members.end), 20 /* CloseBraceToken */); - var localName = factory2.getInternalName(node); - var outer = factory2.createPartiallyEmittedExpression(localName); - setTextRangeEnd(outer, closingBraceLocation.end); - setEmitFlags(outer, 3072 /* NoComments */); - var returnStatement = factory2.createReturnStatement(outer); - setTextRangePos(returnStatement, closingBraceLocation.pos); - setEmitFlags(returnStatement, 3072 /* NoComments */ | 768 /* NoTokenSourceMaps */); - statements.push(returnStatement); - insertStatementsAfterStandardPrologue(statements, context.endLexicalEnvironment()); - var iife = factory2.createImmediatelyInvokedArrowFunction(statements); - setInternalEmitFlags(iife, 1 /* TypeScriptClassWrapper */); - var varDecl = factory2.createVariableDeclaration(factory2.getLocalName(node, - /*allowComments*/ - false, - /*allowSourceMaps*/ - false), - /*exclamationToken*/ - void 0, - /*type*/ - void 0, iife); - setOriginalNode(varDecl, node); - var varStatement = factory2.createVariableStatement( - /*modifiers*/ - void 0, factory2.createVariableDeclarationList([varDecl], 1 /* Let */)); - setOriginalNode(varStatement, node); - setCommentRange(varStatement, node); - setSourceMapRange(varStatement, moveRangePastDecorators(node)); - startOnNewLine(varStatement); - statement = varStatement; - } - else { - statement = classDeclaration; - } - if (moveModifiers) { - if (facts & 8 /* IsExportOfNamespace */) { - return [ - statement, - createExportMemberAssignmentStatement(node) - ]; - } - if (facts & 32 /* IsDefaultExternalExport */) { - return [ - statement, - factory2.createExportDefault(factory2.getLocalName(node, - /*allowComments*/ - false, - /*allowSourceMaps*/ - true)) - ]; - } - if (facts & 16 /* IsNamedExternalExport */) { - return [ - statement, - factory2.createExternalModuleExport(factory2.getDeclarationName(node, - /*allowComments*/ - false, - /*allowSourceMaps*/ - true)) - ]; - } - } - return statement; - } - function visitClassExpression(node) { - var modifiers = visitNodes2(node.modifiers, modifierElidingVisitor, isModifierLike); - if (classOrConstructorParameterIsDecorated(legacyDecorators, node)) { - modifiers = injectClassTypeMetadata(modifiers, node); - } - return factory2.updateClassExpression(node, modifiers, node.name, - /*typeParameters*/ - void 0, visitNodes2(node.heritageClauses, visitor, isHeritageClause), transformClassMembers(node)); - } - function transformClassMembers(node) { - var e_466, _t; - var members = visitNodes2(node.members, getClassElementVisitor(node), isClassElement); - var newMembers; - var constructor = getFirstConstructorWithBody(node); - var parametersWithPropertyAssignments = constructor && filter(constructor.parameters, function (p) { return isParameterPropertyDeclaration(p, constructor); }); - if (parametersWithPropertyAssignments) { - try { - for (var parametersWithPropertyAssignments_1 = __values(parametersWithPropertyAssignments), parametersWithPropertyAssignments_1_1 = parametersWithPropertyAssignments_1.next(); !parametersWithPropertyAssignments_1_1.done; parametersWithPropertyAssignments_1_1 = parametersWithPropertyAssignments_1.next()) { - var parameter = parametersWithPropertyAssignments_1_1.value; - var parameterProperty = factory2.createPropertyDeclaration( - /*modifiers*/ - void 0, parameter.name, - /*questionOrExclamationToken*/ - void 0, - /*type*/ - void 0, - /*initializer*/ - void 0); - setOriginalNode(parameterProperty, parameter); - newMembers = append(newMembers, parameterProperty); - } - } - catch (e_466_1) { e_466 = { error: e_466_1 }; } - finally { - try { - if (parametersWithPropertyAssignments_1_1 && !parametersWithPropertyAssignments_1_1.done && (_t = parametersWithPropertyAssignments_1.return)) _t.call(parametersWithPropertyAssignments_1); - } - finally { if (e_466) throw e_466.error; } - } - } - if (newMembers) { - newMembers = addRange(newMembers, members); - return setTextRange(factory2.createNodeArray(newMembers), - /*location*/ - node.members); - } - return members; - } - function injectClassTypeMetadata(modifiers, node) { - var metadata = getTypeMetadata(node, node); - if (some(metadata)) { - var modifiersArray = []; - addRange(modifiersArray, takeWhile(modifiers, isExportOrDefaultModifier)); - addRange(modifiersArray, filter(modifiers, isDecorator)); - addRange(modifiersArray, metadata); - addRange(modifiersArray, filter(skipWhile(modifiers, isExportOrDefaultModifier), isModifier)); - modifiers = setTextRange(factory2.createNodeArray(modifiersArray), modifiers); - } - return modifiers; - } - function injectClassElementTypeMetadata(modifiers, node, container) { - if (isClassLike(container) && classElementOrClassElementParameterIsDecorated(legacyDecorators, node, container)) { - var metadata = getTypeMetadata(node, container); - if (some(metadata)) { - var modifiersArray = []; - addRange(modifiersArray, filter(modifiers, isDecorator)); - addRange(modifiersArray, metadata); - addRange(modifiersArray, filter(modifiers, isModifier)); - modifiers = setTextRange(factory2.createNodeArray(modifiersArray), modifiers); - } - } - return modifiers; - } - function getTypeMetadata(node, container) { - if (!legacyDecorators) - return void 0; - return USE_NEW_TYPE_METADATA_FORMAT ? getNewTypeMetadata(node, container) : getOldTypeMetadata(node, container); - } - function getOldTypeMetadata(node, container) { - if (typeSerializer) { - var decorators = void 0; - if (shouldAddTypeMetadata(node)) { - var typeMetadata = emitHelpers().createMetadataHelper("design:type", typeSerializer.serializeTypeOfNode({ currentLexicalScope: currentLexicalScope, currentNameScope: container }, node)); - decorators = append(decorators, factory2.createDecorator(typeMetadata)); - } - if (shouldAddParamTypesMetadata(node)) { - var paramTypesMetadata = emitHelpers().createMetadataHelper("design:paramtypes", typeSerializer.serializeParameterTypesOfNode({ currentLexicalScope: currentLexicalScope, currentNameScope: container }, node, container)); - decorators = append(decorators, factory2.createDecorator(paramTypesMetadata)); - } - if (shouldAddReturnTypeMetadata(node)) { - var returnTypeMetadata = emitHelpers().createMetadataHelper("design:returntype", typeSerializer.serializeReturnTypeOfNode({ currentLexicalScope: currentLexicalScope, currentNameScope: container }, node)); - decorators = append(decorators, factory2.createDecorator(returnTypeMetadata)); - } - return decorators; - } - } - function getNewTypeMetadata(node, container) { - if (typeSerializer) { - var properties = void 0; - if (shouldAddTypeMetadata(node)) { - var typeProperty = factory2.createPropertyAssignment("type", factory2.createArrowFunction( - /*modifiers*/ - void 0, - /*typeParameters*/ - void 0, [], - /*type*/ - void 0, factory2.createToken(39 /* EqualsGreaterThanToken */), typeSerializer.serializeTypeOfNode({ currentLexicalScope: currentLexicalScope, currentNameScope: container }, node))); - properties = append(properties, typeProperty); - } - if (shouldAddParamTypesMetadata(node)) { - var paramTypeProperty = factory2.createPropertyAssignment("paramTypes", factory2.createArrowFunction( - /*modifiers*/ - void 0, - /*typeParameters*/ - void 0, [], - /*type*/ - void 0, factory2.createToken(39 /* EqualsGreaterThanToken */), typeSerializer.serializeParameterTypesOfNode({ currentLexicalScope: currentLexicalScope, currentNameScope: container }, node, container))); - properties = append(properties, paramTypeProperty); - } - if (shouldAddReturnTypeMetadata(node)) { - var returnTypeProperty = factory2.createPropertyAssignment("returnType", factory2.createArrowFunction( - /*modifiers*/ - void 0, - /*typeParameters*/ - void 0, [], - /*type*/ - void 0, factory2.createToken(39 /* EqualsGreaterThanToken */), typeSerializer.serializeReturnTypeOfNode({ currentLexicalScope: currentLexicalScope, currentNameScope: container }, node))); - properties = append(properties, returnTypeProperty); - } - if (properties) { - var typeInfoMetadata = emitHelpers().createMetadataHelper("design:typeinfo", factory2.createObjectLiteralExpression(properties, - /*multiLine*/ - true)); - return [factory2.createDecorator(typeInfoMetadata)]; - } - } - } - function shouldAddTypeMetadata(node) { - var kind = node.kind; - return kind === 174 /* MethodDeclaration */ || kind === 177 /* GetAccessor */ || kind === 178 /* SetAccessor */ || kind === 172 /* PropertyDeclaration */; - } - function shouldAddReturnTypeMetadata(node) { - return node.kind === 174 /* MethodDeclaration */; - } - function shouldAddParamTypesMetadata(node) { - switch (node.kind) { - case 263 /* ClassDeclaration */: - case 231 /* ClassExpression */: - return getFirstConstructorWithBody(node) !== void 0; - case 174 /* MethodDeclaration */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - return true; - } - return false; - } - function getExpressionForPropertyName(member, generateNameForComputedPropertyName) { - var name = member.name; - if (isPrivateIdentifier(name)) { - return factory2.createIdentifier(""); - } - else if (isComputedPropertyName(name)) { - return generateNameForComputedPropertyName && !isSimpleInlineableExpression(name.expression) ? factory2.getGeneratedNameForNode(name) : name.expression; - } - else if (isIdentifier(name)) { - return factory2.createStringLiteral(idText(name)); - } - else { - return factory2.cloneNode(name); - } - } - function visitPropertyNameOfClassElement(member) { - var name = member.name; - if (isComputedPropertyName(name) && (!hasStaticModifier(member) && currentClassHasParameterProperties || hasDecorators(member) && legacyDecorators)) { - var expression = visitNode(name.expression, visitor, isExpression); - Debug.assert(expression); - var innerExpression = skipPartiallyEmittedExpressions(expression); - if (!isSimpleInlineableExpression(innerExpression)) { - var generatedName = factory2.getGeneratedNameForNode(name); - hoistVariableDeclaration(generatedName); - return factory2.updateComputedPropertyName(name, factory2.createAssignment(generatedName, expression)); - } - } - return Debug.checkDefined(visitNode(name, visitor, isPropertyName)); - } - function visitHeritageClause(node) { - if (node.token === 119 /* ImplementsKeyword */) { - return void 0; - } - return visitEachChild(node, visitor, context); - } - function visitExpressionWithTypeArguments(node) { - return factory2.updateExpressionWithTypeArguments(node, Debug.checkDefined(visitNode(node.expression, visitor, isLeftHandSideExpression)), - /*typeArguments*/ - void 0); - } - function shouldEmitFunctionLikeDeclaration(node) { - return !nodeIsMissing(node.body); - } - function visitPropertyDeclaration(node, parent2) { - var isAmbient = node.flags & 33554432 /* Ambient */ || hasSyntacticModifier(node, 256 /* Abstract */); - if (isAmbient && !(legacyDecorators && hasDecorators(node))) { - return void 0; - } - var modifiers = isClassLike(parent2) ? !isAmbient ? visitNodes2(node.modifiers, visitor, isModifierLike) : visitNodes2(node.modifiers, modifierElidingVisitor, isModifierLike) : visitNodes2(node.modifiers, decoratorElidingVisitor, isModifierLike); - modifiers = injectClassElementTypeMetadata(modifiers, node, parent2); - if (isAmbient) { - return factory2.updatePropertyDeclaration(node, concatenate(modifiers, factory2.createModifiersFromModifierFlags(2 /* Ambient */)), Debug.checkDefined(visitNode(node.name, visitor, isPropertyName)), - /*questionOrExclamationToken*/ - void 0, - /*type*/ - void 0, - /*initializer*/ - void 0); - } - return factory2.updatePropertyDeclaration(node, modifiers, visitPropertyNameOfClassElement(node), - /*questionOrExclamationToken*/ - void 0, - /*type*/ - void 0, visitNode(node.initializer, visitor, isExpression)); - } - function visitConstructor(node) { - if (!shouldEmitFunctionLikeDeclaration(node)) { - return void 0; - } - return factory2.updateConstructorDeclaration(node, - /*modifiers*/ - void 0, visitParameterList(node.parameters, visitor, context), transformConstructorBody(node.body, node)); - } - function transformConstructorBodyWorker(statementsOut, statementsIn, statementOffset, superPath, superPathDepth, initializerStatements) { - var superStatementIndex = superPath[superPathDepth]; - var superStatement = statementsIn[superStatementIndex]; - addRange(statementsOut, visitNodes2(statementsIn, visitor, isStatement, statementOffset, superStatementIndex - statementOffset)); - if (isTryStatement(superStatement)) { - var tryBlockStatements = []; - transformConstructorBodyWorker(tryBlockStatements, superStatement.tryBlock.statements, - /*statementOffset*/ - 0, superPath, superPathDepth + 1, initializerStatements); - var tryBlockStatementsArray = factory2.createNodeArray(tryBlockStatements); - setTextRange(tryBlockStatementsArray, superStatement.tryBlock.statements); - statementsOut.push(factory2.updateTryStatement(superStatement, factory2.updateBlock(superStatement.tryBlock, tryBlockStatements), visitNode(superStatement.catchClause, visitor, isCatchClause), visitNode(superStatement.finallyBlock, visitor, isBlock))); - } - else { - addRange(statementsOut, visitNodes2(statementsIn, visitor, isStatement, superStatementIndex, 1)); - addRange(statementsOut, initializerStatements); - } - addRange(statementsOut, visitNodes2(statementsIn, visitor, isStatement, superStatementIndex + 1)); - } - function transformConstructorBody(body, constructor) { - var parametersWithPropertyAssignments = constructor && filter(constructor.parameters, function (p) { return isParameterPropertyDeclaration(p, constructor); }); - if (!some(parametersWithPropertyAssignments)) { - return visitFunctionBody(body, visitor, context); - } - var statements = []; - resumeLexicalEnvironment(); - var prologueStatementCount = factory2.copyPrologue(body.statements, statements, - /*ensureUseStrict*/ - false, visitor); - var superPath = findSuperStatementIndexPath(body.statements, prologueStatementCount); - var parameterPropertyAssignments = mapDefined(parametersWithPropertyAssignments, transformParameterWithPropertyAssignment); - if (superPath.length) { - transformConstructorBodyWorker(statements, body.statements, prologueStatementCount, superPath, - /*superPathDepth*/ - 0, parameterPropertyAssignments); - } - else { - addRange(statements, parameterPropertyAssignments); - addRange(statements, visitNodes2(body.statements, visitor, isStatement, prologueStatementCount)); - } - statements = factory2.mergeLexicalEnvironment(statements, endLexicalEnvironment()); - var block = factory2.createBlock(setTextRange(factory2.createNodeArray(statements), body.statements), - /*multiLine*/ - true); - setTextRange(block, - /*location*/ - body); - setOriginalNode(block, body); - return block; - } - function transformParameterWithPropertyAssignment(node) { - var name = node.name; - if (!isIdentifier(name)) { - return void 0; - } - var propertyName = setParent(setTextRange(factory2.cloneNode(name), name), name.parent); - setEmitFlags(propertyName, 3072 /* NoComments */ | 96 /* NoSourceMap */); - var localName = setParent(setTextRange(factory2.cloneNode(name), name), name.parent); - setEmitFlags(localName, 3072 /* NoComments */); - return startOnNewLine(removeAllComments(setTextRange(setOriginalNode(factory2.createExpressionStatement(factory2.createAssignment(setTextRange(factory2.createPropertyAccessExpression(factory2.createThis(), propertyName), node.name), localName)), node), moveRangePos(node, -1)))); - } - function visitMethodDeclaration(node, parent2) { - if (!(node.transformFlags & 1 /* ContainsTypeScript */)) { - return node; - } - if (!shouldEmitFunctionLikeDeclaration(node)) { - return void 0; - } - var modifiers = isClassLike(parent2) ? visitNodes2(node.modifiers, visitor, isModifierLike) : visitNodes2(node.modifiers, decoratorElidingVisitor, isModifierLike); - modifiers = injectClassElementTypeMetadata(modifiers, node, parent2); - return factory2.updateMethodDeclaration(node, modifiers, node.asteriskToken, visitPropertyNameOfClassElement(node), - /*questionToken*/ - void 0, - /*typeParameters*/ - void 0, visitParameterList(node.parameters, visitor, context), - /*type*/ - void 0, visitFunctionBody(node.body, visitor, context)); - } - function shouldEmitAccessorDeclaration(node) { - return !(nodeIsMissing(node.body) && hasSyntacticModifier(node, 256 /* Abstract */)); - } - function visitGetAccessor(node, parent2) { - if (!(node.transformFlags & 1 /* ContainsTypeScript */)) { - return node; - } - if (!shouldEmitAccessorDeclaration(node)) { - return void 0; - } - var modifiers = isClassLike(parent2) ? visitNodes2(node.modifiers, visitor, isModifierLike) : visitNodes2(node.modifiers, decoratorElidingVisitor, isModifierLike); - modifiers = injectClassElementTypeMetadata(modifiers, node, parent2); - return factory2.updateGetAccessorDeclaration(node, modifiers, visitPropertyNameOfClassElement(node), visitParameterList(node.parameters, visitor, context), - /*type*/ - void 0, visitFunctionBody(node.body, visitor, context) || factory2.createBlock([])); - } - function visitSetAccessor(node, parent2) { - if (!(node.transformFlags & 1 /* ContainsTypeScript */)) { - return node; - } - if (!shouldEmitAccessorDeclaration(node)) { - return void 0; - } - var modifiers = isClassLike(parent2) ? visitNodes2(node.modifiers, visitor, isModifierLike) : visitNodes2(node.modifiers, decoratorElidingVisitor, isModifierLike); - modifiers = injectClassElementTypeMetadata(modifiers, node, parent2); - return factory2.updateSetAccessorDeclaration(node, modifiers, visitPropertyNameOfClassElement(node), visitParameterList(node.parameters, visitor, context), visitFunctionBody(node.body, visitor, context) || factory2.createBlock([])); - } - function visitFunctionDeclaration(node) { - if (!shouldEmitFunctionLikeDeclaration(node)) { - return factory2.createNotEmittedStatement(node); - } - var updated = factory2.updateFunctionDeclaration(node, visitNodes2(node.modifiers, modifierVisitor, isModifier), node.asteriskToken, node.name, - /*typeParameters*/ - void 0, visitParameterList(node.parameters, visitor, context), - /*type*/ - void 0, visitFunctionBody(node.body, visitor, context) || factory2.createBlock([])); - if (isExportOfNamespace(node)) { - var statements = [updated]; - addExportMemberAssignment(statements, node); - return statements; - } - return updated; - } - function visitFunctionExpression(node) { - if (!shouldEmitFunctionLikeDeclaration(node)) { - return factory2.createOmittedExpression(); - } - var updated = factory2.updateFunctionExpression(node, visitNodes2(node.modifiers, modifierVisitor, isModifier), node.asteriskToken, node.name, - /*typeParameters*/ - void 0, visitParameterList(node.parameters, visitor, context), - /*type*/ - void 0, visitFunctionBody(node.body, visitor, context) || factory2.createBlock([])); - return updated; - } - function visitArrowFunction(node) { - var updated = factory2.updateArrowFunction(node, visitNodes2(node.modifiers, modifierVisitor, isModifier), - /*typeParameters*/ - void 0, visitParameterList(node.parameters, visitor, context), - /*type*/ - void 0, node.equalsGreaterThanToken, visitFunctionBody(node.body, visitor, context)); - return updated; - } - function visitParameter(node) { - if (parameterIsThisKeyword(node)) { - return void 0; - } - var updated = factory2.updateParameterDeclaration(node, visitNodes2(node.modifiers, function (node2) { return isDecorator(node2) ? visitor(node2) : void 0; }, isModifierLike), node.dotDotDotToken, Debug.checkDefined(visitNode(node.name, visitor, isBindingName)), - /*questionToken*/ - void 0, - /*type*/ - void 0, visitNode(node.initializer, visitor, isExpression)); - if (updated !== node) { - setCommentRange(updated, node); - setTextRange(updated, moveRangePastModifiers(node)); - setSourceMapRange(updated, moveRangePastModifiers(node)); - setEmitFlags(updated.name, 64 /* NoTrailingSourceMap */); - } - return updated; - } - function visitVariableStatement(node) { - if (isExportOfNamespace(node)) { - var variables = getInitializedVariables(node.declarationList); - if (variables.length === 0) { - return void 0; - } - return setTextRange(factory2.createExpressionStatement(factory2.inlineExpressions(map(variables, transformInitializedVariable))), node); - } - else { - return visitEachChild(node, visitor, context); - } - } - function transformInitializedVariable(node) { - var name = node.name; - if (isBindingPattern(name)) { - return flattenDestructuringAssignment(node, visitor, context, 0 /* All */, - /*needsValue*/ - false, createNamespaceExportExpression); - } - else { - return setTextRange(factory2.createAssignment(getNamespaceMemberNameWithSourceMapsAndWithoutComments(name), Debug.checkDefined(visitNode(node.initializer, visitor, isExpression))), - /*location*/ - node); - } - } - function visitVariableDeclaration(node) { - var updated = factory2.updateVariableDeclaration(node, Debug.checkDefined(visitNode(node.name, visitor, isBindingName)), - /*exclamationToken*/ - void 0, - /*type*/ - void 0, visitNode(node.initializer, visitor, isExpression)); - if (node.type) { - setTypeNode(updated.name, node.type); - } - return updated; - } - function visitParenthesizedExpression(node) { - var innerExpression = skipOuterExpressions(node.expression, ~6 /* Assertions */); - if (isAssertionExpression(innerExpression)) { - var expression = visitNode(node.expression, visitor, isExpression); - Debug.assert(expression); - return factory2.createPartiallyEmittedExpression(expression, node); - } - return visitEachChild(node, visitor, context); - } - function visitAssertionExpression(node) { - var expression = visitNode(node.expression, visitor, isExpression); - Debug.assert(expression); - return factory2.createPartiallyEmittedExpression(expression, node); - } - function visitNonNullExpression(node) { - var expression = visitNode(node.expression, visitor, isLeftHandSideExpression); - Debug.assert(expression); - return factory2.createPartiallyEmittedExpression(expression, node); - } - function visitSatisfiesExpression(node) { - var expression = visitNode(node.expression, visitor, isExpression); - Debug.assert(expression); - return factory2.createPartiallyEmittedExpression(expression, node); - } - function visitCallExpression(node) { - return factory2.updateCallExpression(node, Debug.checkDefined(visitNode(node.expression, visitor, isExpression)), - /*typeArguments*/ - void 0, visitNodes2(node.arguments, visitor, isExpression)); - } - function visitNewExpression(node) { - return factory2.updateNewExpression(node, Debug.checkDefined(visitNode(node.expression, visitor, isExpression)), - /*typeArguments*/ - void 0, visitNodes2(node.arguments, visitor, isExpression)); - } - function visitTaggedTemplateExpression(node) { - return factory2.updateTaggedTemplateExpression(node, Debug.checkDefined(visitNode(node.tag, visitor, isExpression)), - /*typeArguments*/ - void 0, Debug.checkDefined(visitNode(node.template, visitor, isTemplateLiteral))); - } - function visitJsxSelfClosingElement(node) { - return factory2.updateJsxSelfClosingElement(node, Debug.checkDefined(visitNode(node.tagName, visitor, isJsxTagNameExpression)), - /*typeArguments*/ - void 0, Debug.checkDefined(visitNode(node.attributes, visitor, isJsxAttributes))); - } - function visitJsxJsxOpeningElement(node) { - return factory2.updateJsxOpeningElement(node, Debug.checkDefined(visitNode(node.tagName, visitor, isJsxTagNameExpression)), - /*typeArguments*/ - void 0, Debug.checkDefined(visitNode(node.attributes, visitor, isJsxAttributes))); - } - function shouldEmitEnumDeclaration(node) { - return !isEnumConst(node) || shouldPreserveConstEnums(compilerOptions); - } - function visitEnumDeclaration(node) { - if (!shouldEmitEnumDeclaration(node)) { - return factory2.createNotEmittedStatement(node); - } - var statements = []; - var emitFlags = 4 /* AdviseOnEmitNode */; - var varAdded = addVarForEnumOrModuleDeclaration(statements, node); - if (varAdded) { - if (moduleKind !== 4 /* System */ || currentLexicalScope !== currentSourceFile) { - emitFlags |= 1024 /* NoLeadingComments */; - } - } - var parameterName = getNamespaceParameterName(node); - var containerName = getNamespaceContainerName(node); - var exportName = isExportOfNamespace(node) ? factory2.getExternalModuleOrNamespaceExportName(currentNamespaceContainerName, node, - /*allowComments*/ - false, - /*allowSourceMaps*/ - true) : factory2.getDeclarationName(node, - /*allowComments*/ - false, - /*allowSourceMaps*/ - true); - var moduleArg = factory2.createLogicalOr(exportName, factory2.createAssignment(exportName, factory2.createObjectLiteralExpression())); - if (isExportOfNamespace(node)) { - var localName = factory2.getLocalName(node, - /*allowComments*/ - false, - /*allowSourceMaps*/ - true); - moduleArg = factory2.createAssignment(localName, moduleArg); - } - var enumStatement = factory2.createExpressionStatement(factory2.createCallExpression(factory2.createFunctionExpression( - /*modifiers*/ - void 0, - /*asteriskToken*/ - void 0, - /*name*/ - void 0, - /*typeParameters*/ - void 0, [factory2.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, parameterName)], - /*type*/ - void 0, transformEnumBody(node, containerName)), - /*typeArguments*/ - void 0, [moduleArg])); - setOriginalNode(enumStatement, node); - if (varAdded) { - setSyntheticLeadingComments(enumStatement, void 0); - setSyntheticTrailingComments(enumStatement, void 0); - } - setTextRange(enumStatement, node); - addEmitFlags(enumStatement, emitFlags); - statements.push(enumStatement); - return statements; - } - function transformEnumBody(node, localName) { - var savedCurrentNamespaceLocalName = currentNamespaceContainerName; - currentNamespaceContainerName = localName; - var statements = []; - startLexicalEnvironment(); - var members = map(node.members, transformEnumMember); - insertStatementsAfterStandardPrologue(statements, endLexicalEnvironment()); - addRange(statements, members); - currentNamespaceContainerName = savedCurrentNamespaceLocalName; - return factory2.createBlock(setTextRange(factory2.createNodeArray(statements), - /*location*/ - node.members), - /*multiLine*/ - true); - } - function transformEnumMember(member) { - var name = getExpressionForPropertyName(member, - /*generateNameForComputedPropertyName*/ - false); - var valueExpression = transformEnumMemberDeclarationValue(member); - var innerAssignment = factory2.createAssignment(factory2.createElementAccessExpression(currentNamespaceContainerName, name), valueExpression); - var outerAssignment = valueExpression.kind === 11 /* StringLiteral */ ? innerAssignment : factory2.createAssignment(factory2.createElementAccessExpression(currentNamespaceContainerName, innerAssignment), name); - return setTextRange(factory2.createExpressionStatement(setTextRange(outerAssignment, member)), member); - } - function transformEnumMemberDeclarationValue(member) { - var value = resolver.getConstantValue(member); - if (value !== void 0) { - return typeof value === "string" ? factory2.createStringLiteral(value) : factory2.createNumericLiteral(value); - } - else { - enableSubstitutionForNonQualifiedEnumMembers(); - if (member.initializer) { - return Debug.checkDefined(visitNode(member.initializer, visitor, isExpression)); - } - else { - return factory2.createVoidZero(); - } - } - } - function shouldEmitModuleDeclaration(nodeIn) { - var node = getParseTreeNode(nodeIn, isModuleDeclaration); - if (!node) { - return true; - } - return isInstantiatedModule(node, shouldPreserveConstEnums(compilerOptions)); - } - function recordEmittedDeclarationInScope(node) { - if (!currentScopeFirstDeclarationsOfName) { - currentScopeFirstDeclarationsOfName = /* @__PURE__ */ new Map(); - } - var name = declaredNameInScope(node); - if (!currentScopeFirstDeclarationsOfName.has(name)) { - currentScopeFirstDeclarationsOfName.set(name, node); - } - } - function isFirstEmittedDeclarationInScope(node) { - if (currentScopeFirstDeclarationsOfName) { - var name_78 = declaredNameInScope(node); - return currentScopeFirstDeclarationsOfName.get(name_78) === node; - } - return true; - } - function declaredNameInScope(node) { - Debug.assertNode(node.name, isIdentifier); - return node.name.escapedText; - } - function addVarForEnumOrModuleDeclaration(statements, node) { - var varDecl = factory2.createVariableDeclaration(factory2.getLocalName(node, - /*allowComments*/ - false, - /*allowSourceMaps*/ - true)); - var varFlags = currentLexicalScope.kind === 312 /* SourceFile */ ? 0 /* None */ : 1 /* Let */; - var statement = factory2.createVariableStatement(visitNodes2(node.modifiers, modifierVisitor, isModifier), factory2.createVariableDeclarationList([varDecl], varFlags)); - setOriginalNode(varDecl, node); - setSyntheticLeadingComments(varDecl, void 0); - setSyntheticTrailingComments(varDecl, void 0); - setOriginalNode(statement, node); - recordEmittedDeclarationInScope(node); - if (isFirstEmittedDeclarationInScope(node)) { - if (node.kind === 266 /* EnumDeclaration */) { - setSourceMapRange(statement.declarationList, node); - } - else { - setSourceMapRange(statement, node); - } - setCommentRange(statement, node); - addEmitFlags(statement, 2048 /* NoTrailingComments */); - statements.push(statement); - return true; - } - return false; - } - function visitModuleDeclaration(node) { - if (!shouldEmitModuleDeclaration(node)) { - return factory2.createNotEmittedStatement(node); - } - Debug.assertNode(node.name, isIdentifier, "A TypeScript namespace should have an Identifier name."); - enableSubstitutionForNamespaceExports(); - var statements = []; - var emitFlags = 4 /* AdviseOnEmitNode */; - var varAdded = addVarForEnumOrModuleDeclaration(statements, node); - if (varAdded) { - if (moduleKind !== 4 /* System */ || currentLexicalScope !== currentSourceFile) { - emitFlags |= 1024 /* NoLeadingComments */; - } - } - var parameterName = getNamespaceParameterName(node); - var containerName = getNamespaceContainerName(node); - var exportName = isExportOfNamespace(node) ? factory2.getExternalModuleOrNamespaceExportName(currentNamespaceContainerName, node, - /*allowComments*/ - false, - /*allowSourceMaps*/ - true) : factory2.getDeclarationName(node, - /*allowComments*/ - false, - /*allowSourceMaps*/ - true); - var moduleArg = factory2.createLogicalOr(exportName, factory2.createAssignment(exportName, factory2.createObjectLiteralExpression())); - if (isExportOfNamespace(node)) { - var localName = factory2.getLocalName(node, - /*allowComments*/ - false, - /*allowSourceMaps*/ - true); - moduleArg = factory2.createAssignment(localName, moduleArg); - } - var moduleStatement = factory2.createExpressionStatement(factory2.createCallExpression(factory2.createFunctionExpression( - /*modifiers*/ - void 0, - /*asteriskToken*/ - void 0, - /*name*/ - void 0, - /*typeParameters*/ - void 0, [factory2.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, parameterName)], - /*type*/ - void 0, transformModuleBody(node, containerName)), - /*typeArguments*/ - void 0, [moduleArg])); - setOriginalNode(moduleStatement, node); - if (varAdded) { - setSyntheticLeadingComments(moduleStatement, void 0); - setSyntheticTrailingComments(moduleStatement, void 0); - } - setTextRange(moduleStatement, node); - addEmitFlags(moduleStatement, emitFlags); - statements.push(moduleStatement); - return statements; - } - function transformModuleBody(node, namespaceLocalName) { - var savedCurrentNamespaceContainerName = currentNamespaceContainerName; - var savedCurrentNamespace = currentNamespace; - var savedCurrentScopeFirstDeclarationsOfName = currentScopeFirstDeclarationsOfName; - currentNamespaceContainerName = namespaceLocalName; - currentNamespace = node; - currentScopeFirstDeclarationsOfName = void 0; - var statements = []; - startLexicalEnvironment(); - var statementsLocation; - var blockLocation; - if (node.body) { - if (node.body.kind === 268 /* ModuleBlock */) { - saveStateAndInvoke(node.body, function (body) { return addRange(statements, visitNodes2(body.statements, namespaceElementVisitor, isStatement)); }); - statementsLocation = node.body.statements; - blockLocation = node.body; - } - else { - var result = visitModuleDeclaration(node.body); - if (result) { - if (isArray(result)) { - addRange(statements, result); - } - else { - statements.push(result); - } - } - var moduleBlock = getInnerMostModuleDeclarationFromDottedModule(node).body; - statementsLocation = moveRangePos(moduleBlock.statements, -1); - } - } - insertStatementsAfterStandardPrologue(statements, endLexicalEnvironment()); - currentNamespaceContainerName = savedCurrentNamespaceContainerName; - currentNamespace = savedCurrentNamespace; - currentScopeFirstDeclarationsOfName = savedCurrentScopeFirstDeclarationsOfName; - var block = factory2.createBlock(setTextRange(factory2.createNodeArray(statements), - /*location*/ - statementsLocation), - /*multiLine*/ - true); - setTextRange(block, blockLocation); - if (!node.body || node.body.kind !== 268 /* ModuleBlock */) { - setEmitFlags(block, getEmitFlags(block) | 3072 /* NoComments */); - } - return block; - } - function getInnerMostModuleDeclarationFromDottedModule(moduleDeclaration) { - if (moduleDeclaration.body.kind === 267 /* ModuleDeclaration */) { - var recursiveInnerModule = getInnerMostModuleDeclarationFromDottedModule(moduleDeclaration.body); - return recursiveInnerModule || moduleDeclaration.body; - } - } - function visitImportDeclaration(node) { - if (!node.importClause) { - return node; - } - if (node.importClause.isTypeOnly) { - return void 0; - } - var importClause = visitNode(node.importClause, visitImportClause, isImportClause); - return importClause || compilerOptions.importsNotUsedAsValues === 1 /* Preserve */ || compilerOptions.importsNotUsedAsValues === 2 /* Error */ ? factory2.updateImportDeclaration(node, - /*modifiers*/ - void 0, importClause, node.moduleSpecifier, node.assertClause) : void 0; - } - function visitImportClause(node) { - Debug.assert(!node.isTypeOnly); - var name = shouldEmitAliasDeclaration(node) ? node.name : void 0; - var namedBindings = visitNode(node.namedBindings, visitNamedImportBindings, isNamedImportBindings); - return name || namedBindings ? factory2.updateImportClause(node, - /*isTypeOnly*/ - false, name, namedBindings) : void 0; - } - function visitNamedImportBindings(node) { - if (node.kind === 274 /* NamespaceImport */) { - return shouldEmitAliasDeclaration(node) ? node : void 0; - } - else { - var allowEmpty = compilerOptions.verbatimModuleSyntax || compilerOptions.preserveValueImports && (compilerOptions.importsNotUsedAsValues === 1 /* Preserve */ || compilerOptions.importsNotUsedAsValues === 2 /* Error */); - var elements = visitNodes2(node.elements, visitImportSpecifier, isImportSpecifier); - return allowEmpty || some(elements) ? factory2.updateNamedImports(node, elements) : void 0; - } - } - function visitImportSpecifier(node) { - return !node.isTypeOnly && shouldEmitAliasDeclaration(node) ? node : void 0; - } - function visitExportAssignment(node) { - return compilerOptions.verbatimModuleSyntax || resolver.isValueAliasDeclaration(node) ? visitEachChild(node, visitor, context) : void 0; - } - function visitExportDeclaration(node) { - if (node.isTypeOnly) { - return void 0; - } - if (!node.exportClause || isNamespaceExport(node.exportClause)) { - return node; - } - var allowEmpty = compilerOptions.verbatimModuleSyntax || !!node.moduleSpecifier && (compilerOptions.importsNotUsedAsValues === 1 /* Preserve */ || compilerOptions.importsNotUsedAsValues === 2 /* Error */); - var exportClause = visitNode(node.exportClause, function (bindings) { return visitNamedExportBindings(bindings, allowEmpty); }, isNamedExportBindings); - return exportClause ? factory2.updateExportDeclaration(node, - /*modifiers*/ - void 0, node.isTypeOnly, exportClause, node.moduleSpecifier, node.assertClause) : void 0; - } - function visitNamedExports(node, allowEmpty) { - var elements = visitNodes2(node.elements, visitExportSpecifier, isExportSpecifier); - return allowEmpty || some(elements) ? factory2.updateNamedExports(node, elements) : void 0; - } - function visitNamespaceExports(node) { - return factory2.updateNamespaceExport(node, Debug.checkDefined(visitNode(node.name, visitor, isIdentifier))); - } - function visitNamedExportBindings(node, allowEmpty) { - return isNamespaceExport(node) ? visitNamespaceExports(node) : visitNamedExports(node, allowEmpty); - } - function visitExportSpecifier(node) { - return !node.isTypeOnly && (compilerOptions.verbatimModuleSyntax || resolver.isValueAliasDeclaration(node)) ? node : void 0; - } - function shouldEmitImportEqualsDeclaration(node) { - return shouldEmitAliasDeclaration(node) || !isExternalModule(currentSourceFile) && resolver.isTopLevelValueImportEqualsWithEntityName(node); - } - function visitImportEqualsDeclaration(node) { - if (node.isTypeOnly) { - return void 0; - } - if (isExternalModuleImportEqualsDeclaration(node)) { - var isReferenced = shouldEmitAliasDeclaration(node); - if (!isReferenced && compilerOptions.importsNotUsedAsValues === 1 /* Preserve */) { - return setOriginalNode(setTextRange(factory2.createImportDeclaration( - /*modifiers*/ - void 0, - /*importClause*/ - void 0, node.moduleReference.expression, - /*assertClause*/ - void 0), node), node); - } - return isReferenced ? visitEachChild(node, visitor, context) : void 0; - } - if (!shouldEmitImportEqualsDeclaration(node)) { - return void 0; - } - var moduleReference = createExpressionFromEntityName(factory2, node.moduleReference); - setEmitFlags(moduleReference, 3072 /* NoComments */ | 4096 /* NoNestedComments */); - if (isNamedExternalModuleExport(node) || !isExportOfNamespace(node)) { - return setOriginalNode(setTextRange(factory2.createVariableStatement(visitNodes2(node.modifiers, modifierVisitor, isModifier), factory2.createVariableDeclarationList([ - setOriginalNode(factory2.createVariableDeclaration(node.name, - /*exclamationToken*/ - void 0, - /*type*/ - void 0, moduleReference), node) - ])), node), node); - } - else { - return setOriginalNode(createNamespaceExport(node.name, moduleReference, node), node); - } - } - function isExportOfNamespace(node) { - return currentNamespace !== void 0 && hasSyntacticModifier(node, 1 /* Export */); - } - function isExternalModuleExport(node) { - return currentNamespace === void 0 && hasSyntacticModifier(node, 1 /* Export */); - } - function isNamedExternalModuleExport(node) { - return isExternalModuleExport(node) && !hasSyntacticModifier(node, 1024 /* Default */); - } - function isDefaultExternalModuleExport(node) { - return isExternalModuleExport(node) && hasSyntacticModifier(node, 1024 /* Default */); - } - function createExportMemberAssignmentStatement(node) { - var expression = factory2.createAssignment(factory2.getExternalModuleOrNamespaceExportName(currentNamespaceContainerName, node, - /*allowComments*/ - false, - /*allowSourceMaps*/ - true), factory2.getLocalName(node)); - setSourceMapRange(expression, createRange(node.name ? node.name.pos : node.pos, node.end)); - var statement = factory2.createExpressionStatement(expression); - setSourceMapRange(statement, createRange(-1, node.end)); - return statement; - } - function addExportMemberAssignment(statements, node) { - statements.push(createExportMemberAssignmentStatement(node)); - } - function createNamespaceExport(exportName, exportValue, location) { - return setTextRange(factory2.createExpressionStatement(factory2.createAssignment(factory2.getNamespaceMemberName(currentNamespaceContainerName, exportName, - /*allowComments*/ - false, - /*allowSourceMaps*/ - true), exportValue)), location); - } - function createNamespaceExportExpression(exportName, exportValue, location) { - return setTextRange(factory2.createAssignment(getNamespaceMemberNameWithSourceMapsAndWithoutComments(exportName), exportValue), location); - } - function getNamespaceMemberNameWithSourceMapsAndWithoutComments(name) { - return factory2.getNamespaceMemberName(currentNamespaceContainerName, name, - /*allowComments*/ - false, - /*allowSourceMaps*/ - true); - } - function getNamespaceParameterName(node) { - var name = factory2.getGeneratedNameForNode(node); - setSourceMapRange(name, node.name); - return name; - } - function getNamespaceContainerName(node) { - return factory2.getGeneratedNameForNode(node); - } - function enableSubstitutionForNonQualifiedEnumMembers() { - if ((enabledSubstitutions & 8 /* NonQualifiedEnumMembers */) === 0) { - enabledSubstitutions |= 8 /* NonQualifiedEnumMembers */; - context.enableSubstitution(80 /* Identifier */); - } - } - function enableSubstitutionForNamespaceExports() { - if ((enabledSubstitutions & 2 /* NamespaceExports */) === 0) { - enabledSubstitutions |= 2 /* NamespaceExports */; - context.enableSubstitution(80 /* Identifier */); - context.enableSubstitution(304 /* ShorthandPropertyAssignment */); - context.enableEmitNotification(267 /* ModuleDeclaration */); - } - } - function isTransformedModuleDeclaration(node) { - return getOriginalNode(node).kind === 267 /* ModuleDeclaration */; - } - function isTransformedEnumDeclaration(node) { - return getOriginalNode(node).kind === 266 /* EnumDeclaration */; - } - function onEmitNode(hint, node, emitCallback) { - var savedApplicableSubstitutions = applicableSubstitutions; - var savedCurrentSourceFile = currentSourceFile; - if (isSourceFile(node)) { - currentSourceFile = node; - } - if (enabledSubstitutions & 2 /* NamespaceExports */ && isTransformedModuleDeclaration(node)) { - applicableSubstitutions |= 2 /* NamespaceExports */; - } - if (enabledSubstitutions & 8 /* NonQualifiedEnumMembers */ && isTransformedEnumDeclaration(node)) { - applicableSubstitutions |= 8 /* NonQualifiedEnumMembers */; - } - previousOnEmitNode(hint, node, emitCallback); - applicableSubstitutions = savedApplicableSubstitutions; - currentSourceFile = savedCurrentSourceFile; - } - function onSubstituteNode(hint, node) { - node = previousOnSubstituteNode(hint, node); - if (hint === 1 /* Expression */) { - return substituteExpression(node); - } - else if (isShorthandPropertyAssignment(node)) { - return substituteShorthandPropertyAssignment(node); - } - return node; - } - function substituteShorthandPropertyAssignment(node) { - if (enabledSubstitutions & 2 /* NamespaceExports */) { - var name_79 = node.name; - var exportedName = trySubstituteNamespaceExportedName(name_79); - if (exportedName) { - if (node.objectAssignmentInitializer) { - var initializer = factory2.createAssignment(exportedName, node.objectAssignmentInitializer); - return setTextRange(factory2.createPropertyAssignment(name_79, initializer), node); - } - return setTextRange(factory2.createPropertyAssignment(name_79, exportedName), node); - } - } - return node; - } - function substituteExpression(node) { - switch (node.kind) { - case 80 /* Identifier */: - return substituteExpressionIdentifier(node); - case 211 /* PropertyAccessExpression */: - return substitutePropertyAccessExpression(node); - case 212 /* ElementAccessExpression */: - return substituteElementAccessExpression(node); - } - return node; - } - function substituteExpressionIdentifier(node) { - return trySubstituteNamespaceExportedName(node) || node; - } - function trySubstituteNamespaceExportedName(node) { - if (enabledSubstitutions & applicableSubstitutions && !isGeneratedIdentifier(node) && !isLocalName(node)) { - var container = resolver.getReferencedExportContainer(node, - /*prefixLocals*/ - false); - if (container && container.kind !== 312 /* SourceFile */) { - var substitute = applicableSubstitutions & 2 /* NamespaceExports */ && container.kind === 267 /* ModuleDeclaration */ || applicableSubstitutions & 8 /* NonQualifiedEnumMembers */ && container.kind === 266 /* EnumDeclaration */; - if (substitute) { - return setTextRange(factory2.createPropertyAccessExpression(factory2.getGeneratedNameForNode(container), node), - /*location*/ - node); - } - } - } - return void 0; - } - function substitutePropertyAccessExpression(node) { - return substituteConstantValue(node); - } - function substituteElementAccessExpression(node) { - return substituteConstantValue(node); - } - function safeMultiLineComment(value) { - return value.replace(/\*\//g, "*_/"); - } - function substituteConstantValue(node) { - var constantValue = tryGetConstEnumValue(node); - if (constantValue !== void 0) { - setConstantValue(node, constantValue); - var substitute = typeof constantValue === "string" ? factory2.createStringLiteral(constantValue) : constantValue < 0 ? factory2.createPrefixUnaryExpression(41 /* MinusToken */, factory2.createNumericLiteral(Math.abs(constantValue))) : factory2.createNumericLiteral(constantValue); - if (!compilerOptions.removeComments) { - var originalNode = getOriginalNode(node, isAccessExpression); - addSyntheticTrailingComment(substitute, 3 /* MultiLineCommentTrivia */, " ".concat(safeMultiLineComment(getTextOfNode(originalNode)), " ")); - } - return substitute; - } - return node; - } - function tryGetConstEnumValue(node) { - if (getIsolatedModules(compilerOptions)) { - return void 0; - } - return isPropertyAccessExpression(node) || isElementAccessExpression(node) ? resolver.getConstantValue(node) : void 0; - } - function shouldEmitAliasDeclaration(node) { - return compilerOptions.verbatimModuleSyntax || isInJSFile(node) || (compilerOptions.preserveValueImports ? resolver.isValueAliasDeclaration(node) : resolver.isReferencedAliasDeclaration(node)); - } -} -// src/compiler/transformers/classFields.ts -function transformClassFields(context) { - var factory2 = context.factory, emitHelpers = context.getEmitHelperFactory, hoistVariableDeclaration = context.hoistVariableDeclaration, endLexicalEnvironment = context.endLexicalEnvironment, startLexicalEnvironment = context.startLexicalEnvironment, resumeLexicalEnvironment = context.resumeLexicalEnvironment, addBlockScopedVariable = context.addBlockScopedVariable; - var resolver = context.getEmitResolver(); - var compilerOptions = context.getCompilerOptions(); - var languageVersion = getEmitScriptTarget(compilerOptions); - var useDefineForClassFields = getUseDefineForClassFields(compilerOptions); - var legacyDecorators = !!compilerOptions.experimentalDecorators; - var shouldTransformInitializersUsingSet = !useDefineForClassFields; - var shouldTransformInitializersUsingDefine = useDefineForClassFields && languageVersion < 9 /* ES2022 */; - var shouldTransformInitializers = shouldTransformInitializersUsingSet || shouldTransformInitializersUsingDefine; - var shouldTransformPrivateElementsOrClassStaticBlocks = languageVersion < 9 /* ES2022 */; - var shouldTransformAutoAccessors = languageVersion < 99 /* ESNext */ ? -1 /* True */ : !useDefineForClassFields ? 3 /* Maybe */ : 0 /* False */; - var shouldTransformThisInStaticInitializers = languageVersion < 9 /* ES2022 */; - var shouldTransformSuperInStaticInitializers = shouldTransformThisInStaticInitializers && languageVersion >= 2 /* ES2015 */; - var shouldTransformAnything = shouldTransformInitializers || shouldTransformPrivateElementsOrClassStaticBlocks || shouldTransformAutoAccessors === -1 /* True */; - var previousOnSubstituteNode = context.onSubstituteNode; - context.onSubstituteNode = onSubstituteNode; - var previousOnEmitNode = context.onEmitNode; - context.onEmitNode = onEmitNode; - var shouldTransformPrivateStaticElementsInFile = false; - var enabledSubstitutions; - var classAliases; - var pendingExpressions; - var pendingStatements; - var lexicalEnvironment; - var lexicalEnvironmentMap = /* @__PURE__ */ new Map(); - var noSubstitution = /* @__PURE__ */ new Set(); - var currentClassContainer; - var currentClassElement; - var shouldSubstituteThisWithClassThis = false; - var previousShouldSubstituteThisWithClassThis = false; - return chainBundle(context, transformSourceFile); - function transformSourceFile(node) { - if (node.isDeclarationFile) { - return node; - } - lexicalEnvironment = void 0; - shouldTransformPrivateStaticElementsInFile = !!(getInternalEmitFlags(node) & 32 /* TransformPrivateStaticElements */); - if (!shouldTransformAnything && !shouldTransformPrivateStaticElementsInFile) { - return node; - } - var visited = visitEachChild(node, visitor, context); - addEmitHelpers(visited, context.readEmitHelpers()); - return visited; - } - function modifierVisitor(node) { - switch (node.kind) { - case 129 /* AccessorKeyword */: - return shouldTransformAutoAccessorsInCurrentClass() ? void 0 : node; - default: - return tryCast(node, isModifier); - } - } - function visitor(node) { - if (!(node.transformFlags & 16777216 /* ContainsClassFields */) && !(node.transformFlags & 134234112 /* ContainsLexicalThisOrSuper */)) { - return node; - } - switch (node.kind) { - case 129 /* AccessorKeyword */: - return Debug.fail("Use `modifierVisitor` instead."); - case 263 /* ClassDeclaration */: - return visitClassDeclaration(node); - case 231 /* ClassExpression */: - return visitClassExpression(node); - case 175 /* ClassStaticBlockDeclaration */: - case 172 /* PropertyDeclaration */: - return Debug.fail("Use `classElementVisitor` instead."); - case 303 /* PropertyAssignment */: - return visitPropertyAssignment(node); - case 243 /* VariableStatement */: - return visitVariableStatement(node); - case 260 /* VariableDeclaration */: - return visitVariableDeclaration(node); - case 169 /* Parameter */: - return visitParameterDeclaration(node); - case 208 /* BindingElement */: - return visitBindingElement(node); - case 277 /* ExportAssignment */: - return visitExportAssignment(node); - case 81 /* PrivateIdentifier */: - return visitPrivateIdentifier(node); - case 211 /* PropertyAccessExpression */: - return visitPropertyAccessExpression(node); - case 212 /* ElementAccessExpression */: - return visitElementAccessExpression(node); - case 224 /* PrefixUnaryExpression */: - case 225 /* PostfixUnaryExpression */: - return visitPreOrPostfixUnaryExpression(node, - /*discarded*/ - false); - case 226 /* BinaryExpression */: - return visitBinaryExpression(node, - /*discarded*/ - false); - case 217 /* ParenthesizedExpression */: - return visitParenthesizedExpression(node, - /*discarded*/ - false); - case 213 /* CallExpression */: - return visitCallExpression(node); - case 244 /* ExpressionStatement */: - return visitExpressionStatement(node); - case 215 /* TaggedTemplateExpression */: - return visitTaggedTemplateExpression(node); - case 248 /* ForStatement */: - return visitForStatement(node); - case 110 /* ThisKeyword */: - return visitThisExpression(node); - case 262 /* FunctionDeclaration */: - case 218 /* FunctionExpression */: - return setCurrentClassElementAnd( - /*classElement*/ - void 0, fallbackVisitor, node); - case 176 /* Constructor */: - case 174 /* MethodDeclaration */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: { - return setCurrentClassElementAnd(node, fallbackVisitor, node); - } - default: - return fallbackVisitor(node); - } - } - function fallbackVisitor(node) { - return visitEachChild(node, visitor, context); - } - function discardedValueVisitor(node) { - switch (node.kind) { - case 224 /* PrefixUnaryExpression */: - case 225 /* PostfixUnaryExpression */: - return visitPreOrPostfixUnaryExpression(node, - /*discarded*/ - true); - case 226 /* BinaryExpression */: - return visitBinaryExpression(node, - /*discarded*/ - true); - case 361 /* CommaListExpression */: - return visitCommaListExpression(node, - /*discarded*/ - true); - case 217 /* ParenthesizedExpression */: - return visitParenthesizedExpression(node, - /*discarded*/ - true); - default: - return visitor(node); - } - } - function heritageClauseVisitor(node) { - switch (node.kind) { - case 298 /* HeritageClause */: - return visitEachChild(node, heritageClauseVisitor, context); - case 233 /* ExpressionWithTypeArguments */: - return visitExpressionWithTypeArgumentsInHeritageClause(node); - default: - return visitor(node); - } - } - function assignmentTargetVisitor(node) { - switch (node.kind) { - case 210 /* ObjectLiteralExpression */: - case 209 /* ArrayLiteralExpression */: - return visitAssignmentPattern(node); - default: - return visitor(node); - } - } - function classElementVisitor(node) { - switch (node.kind) { - case 176 /* Constructor */: - return setCurrentClassElementAnd(node, visitConstructorDeclaration, node); - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - case 174 /* MethodDeclaration */: - return setCurrentClassElementAnd(node, visitMethodOrAccessorDeclaration, node); - case 172 /* PropertyDeclaration */: - return setCurrentClassElementAnd(node, visitPropertyDeclaration, node); - case 175 /* ClassStaticBlockDeclaration */: - return setCurrentClassElementAnd(node, visitClassStaticBlockDeclaration, node); - case 167 /* ComputedPropertyName */: - return visitComputedPropertyName(node); - case 240 /* SemicolonClassElement */: - return node; - default: - return isModifierLike(node) ? modifierVisitor(node) : visitor(node); - } - } - function propertyNameVisitor(node) { - switch (node.kind) { - case 167 /* ComputedPropertyName */: - return visitComputedPropertyName(node); - default: - return visitor(node); - } - } - function accessorFieldResultVisitor(node) { - switch (node.kind) { - case 172 /* PropertyDeclaration */: - return transformFieldInitializer(node); - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - return classElementVisitor(node); - default: - Debug.assertMissingNode(node, "Expected node to either be a PropertyDeclaration, GetAccessorDeclaration, or SetAccessorDeclaration"); - break; - } - } - function visitPrivateIdentifier(node) { - if (!shouldTransformPrivateElementsOrClassStaticBlocks) { - return node; - } - if (isStatement(node.parent)) { - return node; - } - return setOriginalNode(factory2.createIdentifier(""), node); - } - function transformPrivateIdentifierInInExpression(node) { - var info = accessPrivateIdentifier2(node.left); - if (info) { - var receiver = visitNode(node.right, visitor, isExpression); - return setOriginalNode(emitHelpers().createClassPrivateFieldInHelper(info.brandCheckIdentifier, receiver), node); - } - return visitEachChild(node, visitor, context); - } - function visitPropertyAssignment(node) { - if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) { - node = transformNamedEvaluation(context, node); - } - return visitEachChild(node, visitor, context); - } - function visitVariableStatement(node) { - var savedPendingStatements = pendingStatements; - pendingStatements = []; - var visitedNode = visitEachChild(node, visitor, context); - var statement = some(pendingStatements) ? __spreadArray([visitedNode], __read(pendingStatements), false) : visitedNode; - pendingStatements = savedPendingStatements; - return statement; - } - function visitVariableDeclaration(node) { - if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) { - node = transformNamedEvaluation(context, node); - } - return visitEachChild(node, visitor, context); - } - function visitParameterDeclaration(node) { - if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) { - node = transformNamedEvaluation(context, node); - } - return visitEachChild(node, visitor, context); - } - function visitBindingElement(node) { - if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) { - node = transformNamedEvaluation(context, node); - } - return visitEachChild(node, visitor, context); - } - function visitExportAssignment(node) { - if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) { - node = transformNamedEvaluation(context, node, - /*ignoreEmptyStringLiteral*/ - true, node.isExportEquals ? "" : "default"); - } - return visitEachChild(node, visitor, context); - } - function injectPendingExpressions(expression) { - if (some(pendingExpressions)) { - if (isParenthesizedExpression(expression)) { - pendingExpressions.push(expression.expression); - expression = factory2.updateParenthesizedExpression(expression, factory2.inlineExpressions(pendingExpressions)); - } - else { - pendingExpressions.push(expression); - expression = factory2.inlineExpressions(pendingExpressions); - } - pendingExpressions = void 0; - } - return expression; - } - function visitComputedPropertyName(node) { - var expression = visitNode(node.expression, visitor, isExpression); - return factory2.updateComputedPropertyName(node, injectPendingExpressions(expression)); - } - function visitConstructorDeclaration(node) { - if (currentClassContainer) { - return transformConstructor(node, currentClassContainer); - } - return fallbackVisitor(node); - } - function shouldTransformClassElementToWeakMap(node) { - if (shouldTransformPrivateElementsOrClassStaticBlocks) - return true; - if (hasStaticModifier(node) && getInternalEmitFlags(node) & 32 /* TransformPrivateStaticElements */) - return true; - return false; - } - function visitMethodOrAccessorDeclaration(node) { - Debug.assert(!hasDecorators(node)); - if (!isPrivateIdentifierClassElementDeclaration(node) || !shouldTransformClassElementToWeakMap(node)) { - return visitEachChild(node, classElementVisitor, context); - } - var info = accessPrivateIdentifier2(node.name); - Debug.assert(info, "Undeclared private name for property declaration."); - if (!info.isValid) { - return node; - } - var functionName = getHoistedFunctionName(node); - if (functionName) { - getPendingExpressions().push(factory2.createAssignment(functionName, factory2.createFunctionExpression(filter(node.modifiers, function (m) { return isModifier(m) && !isStaticModifier(m) && !isAccessorModifier(m); }), node.asteriskToken, functionName, - /*typeParameters*/ - void 0, visitParameterList(node.parameters, visitor, context), - /*type*/ - void 0, visitFunctionBody(node.body, visitor, context)))); - } - return void 0; - } - function setCurrentClassElementAnd(classElement, visitor2, arg) { - if (classElement !== currentClassElement) { - var savedCurrentClassElement = currentClassElement; - currentClassElement = classElement; - var result = visitor2(arg); - currentClassElement = savedCurrentClassElement; - return result; - } - return visitor2(arg); - } - function getHoistedFunctionName(node) { - Debug.assert(isPrivateIdentifier(node.name)); - var info = accessPrivateIdentifier2(node.name); - Debug.assert(info, "Undeclared private name for property declaration."); - if (info.kind === "m" /* Method */) { - return info.methodName; - } - if (info.kind === "a" /* Accessor */) { - if (isGetAccessor(node)) { - return info.getterName; - } - if (isSetAccessor(node)) { - return info.setterName; - } - } - } - function getClassThis() { - var _t, _u; - var lex = getClassLexicalEnvironment(); - var classThis = (_u = (_t = lex.classThis) !== null && _t !== void 0 ? _t : lex.classConstructor) !== null && _u !== void 0 ? _u : (currentClassContainer == null ? void 0 : currentClassContainer.name); - return Debug.checkDefined(classThis); - } - function transformAutoAccessor(node) { - var commentRange = getCommentRange(node); - var sourceMapRange = getSourceMapRange(node); - var name = node.name; - var getterName = name; - var setterName = name; - if (isComputedPropertyName(name) && !isSimpleInlineableExpression(name.expression)) { - var cacheAssignment = findComputedPropertyNameCacheAssignment(name); - if (cacheAssignment) { - getterName = factory2.updateComputedPropertyName(name, visitNode(name.expression, visitor, isExpression)); - setterName = factory2.updateComputedPropertyName(name, cacheAssignment.left); - } - else { - var temp = factory2.createTempVariable(hoistVariableDeclaration); - setSourceMapRange(temp, name.expression); - var expression = visitNode(name.expression, visitor, isExpression); - var assignment = factory2.createAssignment(temp, expression); - setSourceMapRange(assignment, name.expression); - getterName = factory2.updateComputedPropertyName(name, assignment); - setterName = factory2.updateComputedPropertyName(name, temp); - } - } - var modifiers = visitNodes2(node.modifiers, modifierVisitor, isModifier); - var backingField = createAccessorPropertyBackingField(factory2, node, modifiers, node.initializer); - setOriginalNode(backingField, node); - setEmitFlags(backingField, 3072 /* NoComments */); - setSourceMapRange(backingField, sourceMapRange); - var receiver = isStatic(node) ? getClassThis() : factory2.createThis(); - var getter = createAccessorPropertyGetRedirector(factory2, node, modifiers, getterName, receiver); - setOriginalNode(getter, node); - setCommentRange(getter, commentRange); - setSourceMapRange(getter, sourceMapRange); - var setterModifiers = factory2.createModifiersFromModifierFlags(modifiersToFlags(modifiers)); - var setter = createAccessorPropertySetRedirector(factory2, node, setterModifiers, setterName, receiver); - setOriginalNode(setter, node); - setEmitFlags(setter, 3072 /* NoComments */); - setSourceMapRange(setter, sourceMapRange); - return visitArray([backingField, getter, setter], accessorFieldResultVisitor, isClassElement); - } - function transformPrivateFieldInitializer(node) { - if (shouldTransformClassElementToWeakMap(node)) { - var info = accessPrivateIdentifier2(node.name); - Debug.assert(info, "Undeclared private name for property declaration."); - if (!info.isValid) { - return node; - } - if (info.isStatic && !shouldTransformPrivateElementsOrClassStaticBlocks) { - var statement = transformPropertyOrClassStaticBlock(node, factory2.createThis()); - if (statement) { - return factory2.createClassStaticBlockDeclaration(factory2.createBlock([statement], - /*multiLine*/ - true)); - } - } - return void 0; - } - if (shouldTransformInitializersUsingSet && !isStatic(node) && (lexicalEnvironment == null ? void 0 : lexicalEnvironment.data) && lexicalEnvironment.data.facts & 16 /* WillHoistInitializersToConstructor */) { - return factory2.updatePropertyDeclaration(node, visitNodes2(node.modifiers, visitor, isModifierLike), node.name, - /*questionOrExclamationToken*/ - void 0, - /*type*/ - void 0, - /*initializer*/ - void 0); - } - if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) { - node = transformNamedEvaluation(context, node); - } - return factory2.updatePropertyDeclaration(node, visitNodes2(node.modifiers, modifierVisitor, isModifier), visitNode(node.name, propertyNameVisitor, isPropertyName), - /*questionOrExclamationToken*/ - void 0, - /*type*/ - void 0, visitNode(node.initializer, visitor, isExpression)); - } - function transformPublicFieldInitializer(node) { - var _t; - if (shouldTransformInitializers && !isAutoAccessorPropertyDeclaration(node)) { - var expr = getPropertyNameExpressionIfNeeded(node.name, - /*shouldHoist*/ - !!node.initializer || useDefineForClassFields); - if (expr) { - (_t = getPendingExpressions()).push.apply(_t, __spreadArray([], __read(flattenCommaList(expr)), false)); - } - if (isStatic(node) && !shouldTransformPrivateElementsOrClassStaticBlocks) { - var initializerStatement = transformPropertyOrClassStaticBlock(node, factory2.createThis()); - if (initializerStatement) { - var staticBlock = factory2.createClassStaticBlockDeclaration(factory2.createBlock([initializerStatement])); - setOriginalNode(staticBlock, node); - setCommentRange(staticBlock, node); - setCommentRange(initializerStatement, { pos: -1, end: -1 }); - setSyntheticLeadingComments(initializerStatement, void 0); - setSyntheticTrailingComments(initializerStatement, void 0); - return staticBlock; - } - } - return void 0; - } - return factory2.updatePropertyDeclaration(node, visitNodes2(node.modifiers, modifierVisitor, isModifier), visitNode(node.name, propertyNameVisitor, isPropertyName), - /*questionOrExclamationToken*/ - void 0, - /*type*/ - void 0, visitNode(node.initializer, visitor, isExpression)); - } - function transformFieldInitializer(node) { - Debug.assert(!hasDecorators(node), "Decorators should already have been transformed and elided."); - return isPrivateIdentifierClassElementDeclaration(node) ? transformPrivateFieldInitializer(node) : transformPublicFieldInitializer(node); - } - function shouldTransformAutoAccessorsInCurrentClass() { - return shouldTransformAutoAccessors === -1 /* True */ || shouldTransformAutoAccessors === 3 /* Maybe */ && !!(lexicalEnvironment == null ? void 0 : lexicalEnvironment.data) && !!(lexicalEnvironment.data.facts & 16 /* WillHoistInitializersToConstructor */); - } - function visitPropertyDeclaration(node) { - if (isAutoAccessorPropertyDeclaration(node) && (shouldTransformAutoAccessorsInCurrentClass() || hasStaticModifier(node) && getInternalEmitFlags(node) & 32 /* TransformPrivateStaticElements */)) { - return transformAutoAccessor(node); - } - return transformFieldInitializer(node); - } - function shouldForceDynamicThis() { - return !!currentClassElement && hasStaticModifier(currentClassElement) && isAccessor(currentClassElement) && isAutoAccessorPropertyDeclaration(getOriginalNode(currentClassElement)); - } - function ensureDynamicThisIfNeeded(node) { - if (shouldForceDynamicThis()) { - var innerExpression = skipOuterExpressions(node); - if (innerExpression.kind === 110 /* ThisKeyword */) { - noSubstitution.add(innerExpression); - } - } - } - function createPrivateIdentifierAccess(info, receiver) { - receiver = visitNode(receiver, visitor, isExpression); - ensureDynamicThisIfNeeded(receiver); - return createPrivateIdentifierAccessHelper(info, receiver); - } - function createPrivateIdentifierAccessHelper(info, receiver) { - setCommentRange(receiver, moveRangePos(receiver, -1)); - switch (info.kind) { - case "a" /* Accessor */: - return emitHelpers().createClassPrivateFieldGetHelper(receiver, info.brandCheckIdentifier, info.kind, info.getterName); - case "m" /* Method */: - return emitHelpers().createClassPrivateFieldGetHelper(receiver, info.brandCheckIdentifier, info.kind, info.methodName); - case "f" /* Field */: - return emitHelpers().createClassPrivateFieldGetHelper(receiver, info.brandCheckIdentifier, info.kind, info.isStatic ? info.variableName : void 0); - case "untransformed": - return Debug.fail("Access helpers should not be created for untransformed private elements"); - default: - Debug.assertNever(info, "Unknown private element type"); - } - } - function visitPropertyAccessExpression(node) { - if (isPrivateIdentifier(node.name)) { - var privateIdentifierInfo = accessPrivateIdentifier2(node.name); - if (privateIdentifierInfo) { - return setTextRange(setOriginalNode(createPrivateIdentifierAccess(privateIdentifierInfo, node.expression), node), node); - } - } - if (shouldTransformSuperInStaticInitializers && currentClassElement && isSuperProperty(node) && isIdentifier(node.name) && isStaticPropertyDeclarationOrClassStaticBlock(currentClassElement) && (lexicalEnvironment == null ? void 0 : lexicalEnvironment.data)) { - var _t = lexicalEnvironment.data, classConstructor = _t.classConstructor, superClassReference = _t.superClassReference, facts = _t.facts; - if (facts & 1 /* ClassWasDecorated */) { - return visitInvalidSuperProperty(node); - } - if (classConstructor && superClassReference) { - var superProperty = factory2.createReflectGetCall(superClassReference, factory2.createStringLiteralFromNode(node.name), classConstructor); - setOriginalNode(superProperty, node.expression); - setTextRange(superProperty, node.expression); - return superProperty; - } - } - return visitEachChild(node, visitor, context); - } - function visitElementAccessExpression(node) { - if (shouldTransformSuperInStaticInitializers && currentClassElement && isSuperProperty(node) && isStaticPropertyDeclarationOrClassStaticBlock(currentClassElement) && (lexicalEnvironment == null ? void 0 : lexicalEnvironment.data)) { - var _t = lexicalEnvironment.data, classConstructor = _t.classConstructor, superClassReference = _t.superClassReference, facts = _t.facts; - if (facts & 1 /* ClassWasDecorated */) { - return visitInvalidSuperProperty(node); - } - if (classConstructor && superClassReference) { - var superProperty = factory2.createReflectGetCall(superClassReference, visitNode(node.argumentExpression, visitor, isExpression), classConstructor); - setOriginalNode(superProperty, node.expression); - setTextRange(superProperty, node.expression); - return superProperty; - } - } - return visitEachChild(node, visitor, context); - } - function visitPreOrPostfixUnaryExpression(node, discarded) { - if (node.operator === 46 /* PlusPlusToken */ || node.operator === 47 /* MinusMinusToken */) { - var operand = skipParentheses(node.operand); - if (isPrivateIdentifierPropertyAccessExpression(operand)) { - var info = void 0; - if (info = accessPrivateIdentifier2(operand.name)) { - var receiver = visitNode(operand.expression, visitor, isExpression); - ensureDynamicThisIfNeeded(receiver); - var _t = createCopiableReceiverExpr(receiver), readExpression = _t.readExpression, initializeExpression = _t.initializeExpression; - var expression = createPrivateIdentifierAccess(info, readExpression); - var temp = isPrefixUnaryExpression(node) || discarded ? void 0 : factory2.createTempVariable(hoistVariableDeclaration); - expression = expandPreOrPostfixIncrementOrDecrementExpression(factory2, node, expression, hoistVariableDeclaration, temp); - expression = createPrivateIdentifierAssignment(info, initializeExpression || readExpression, expression, 64 /* EqualsToken */); - setOriginalNode(expression, node); - setTextRange(expression, node); - if (temp) { - expression = factory2.createComma(expression, temp); - setTextRange(expression, node); - } - return expression; - } - } - else if (shouldTransformSuperInStaticInitializers && currentClassElement && isSuperProperty(operand) && isStaticPropertyDeclarationOrClassStaticBlock(currentClassElement) && (lexicalEnvironment == null ? void 0 : lexicalEnvironment.data)) { - var _u = lexicalEnvironment.data, classConstructor = _u.classConstructor, superClassReference = _u.superClassReference, facts = _u.facts; - if (facts & 1 /* ClassWasDecorated */) { - var expression = visitInvalidSuperProperty(operand); - return isPrefixUnaryExpression(node) ? factory2.updatePrefixUnaryExpression(node, expression) : factory2.updatePostfixUnaryExpression(node, expression); - } - if (classConstructor && superClassReference) { - var setterName = void 0; - var getterName = void 0; - if (isPropertyAccessExpression(operand)) { - if (isIdentifier(operand.name)) { - getterName = setterName = factory2.createStringLiteralFromNode(operand.name); - } - } - else { - if (isSimpleInlineableExpression(operand.argumentExpression)) { - getterName = setterName = operand.argumentExpression; - } - else { - getterName = factory2.createTempVariable(hoistVariableDeclaration); - setterName = factory2.createAssignment(getterName, visitNode(operand.argumentExpression, visitor, isExpression)); - } - } - if (setterName && getterName) { - var expression = factory2.createReflectGetCall(superClassReference, getterName, classConstructor); - setTextRange(expression, operand); - var temp = discarded ? void 0 : factory2.createTempVariable(hoistVariableDeclaration); - expression = expandPreOrPostfixIncrementOrDecrementExpression(factory2, node, expression, hoistVariableDeclaration, temp); - expression = factory2.createReflectSetCall(superClassReference, setterName, expression, classConstructor); - setOriginalNode(expression, node); - setTextRange(expression, node); - if (temp) { - expression = factory2.createComma(expression, temp); - setTextRange(expression, node); - } - return expression; - } - } - } - } - return visitEachChild(node, visitor, context); - } - function visitForStatement(node) { - return factory2.updateForStatement(node, visitNode(node.initializer, discardedValueVisitor, isForInitializer), visitNode(node.condition, visitor, isExpression), visitNode(node.incrementor, discardedValueVisitor, isExpression), visitIterationBody(node.statement, visitor, context)); - } - function visitExpressionStatement(node) { - return factory2.updateExpressionStatement(node, visitNode(node.expression, discardedValueVisitor, isExpression)); - } - function createCopiableReceiverExpr(receiver) { - var clone2 = nodeIsSynthesized(receiver) ? receiver : factory2.cloneNode(receiver); - if (receiver.kind === 110 /* ThisKeyword */ && noSubstitution.has(receiver)) { - noSubstitution.add(clone2); - } - if (isSimpleInlineableExpression(receiver)) { - return { readExpression: clone2, initializeExpression: void 0 }; - } - var readExpression = factory2.createTempVariable(hoistVariableDeclaration); - var initializeExpression = factory2.createAssignment(readExpression, clone2); - return { readExpression: readExpression, initializeExpression: initializeExpression }; - } - function visitCallExpression(node) { - var _a; - if (isPrivateIdentifierPropertyAccessExpression(node.expression) && accessPrivateIdentifier2(node.expression.name)) { - var _t = factory2.createCallBinding(node.expression, hoistVariableDeclaration, languageVersion), thisArg = _t.thisArg, target = _t.target; - if (isCallChain(node)) { - return factory2.updateCallChain(node, factory2.createPropertyAccessChain(visitNode(target, visitor, isExpression), node.questionDotToken, "call"), - /*questionDotToken*/ - void 0, - /*typeArguments*/ - void 0, __spreadArray([visitNode(thisArg, visitor, isExpression)], __read(visitNodes2(node.arguments, visitor, isExpression)), false)); - } - return factory2.updateCallExpression(node, factory2.createPropertyAccessExpression(visitNode(target, visitor, isExpression), "call"), - /*typeArguments*/ - void 0, __spreadArray([visitNode(thisArg, visitor, isExpression)], __read(visitNodes2(node.arguments, visitor, isExpression)), false)); - } - if (shouldTransformSuperInStaticInitializers && currentClassElement && isSuperProperty(node.expression) && isStaticPropertyDeclarationOrClassStaticBlock(currentClassElement) && ((_a = lexicalEnvironment == null ? void 0 : lexicalEnvironment.data) == null ? void 0 : _a.classConstructor)) { - var invocation = factory2.createFunctionCallCall(visitNode(node.expression, visitor, isExpression), lexicalEnvironment.data.classConstructor, visitNodes2(node.arguments, visitor, isExpression)); - setOriginalNode(invocation, node); - setTextRange(invocation, node); - return invocation; - } - return visitEachChild(node, visitor, context); - } - function visitTaggedTemplateExpression(node) { - var _a; - if (isPrivateIdentifierPropertyAccessExpression(node.tag) && accessPrivateIdentifier2(node.tag.name)) { - var _t = factory2.createCallBinding(node.tag, hoistVariableDeclaration, languageVersion), thisArg = _t.thisArg, target = _t.target; - return factory2.updateTaggedTemplateExpression(node, factory2.createCallExpression(factory2.createPropertyAccessExpression(visitNode(target, visitor, isExpression), "bind"), - /*typeArguments*/ - void 0, [visitNode(thisArg, visitor, isExpression)]), - /*typeArguments*/ - void 0, visitNode(node.template, visitor, isTemplateLiteral)); - } - if (shouldTransformSuperInStaticInitializers && currentClassElement && isSuperProperty(node.tag) && isStaticPropertyDeclarationOrClassStaticBlock(currentClassElement) && ((_a = lexicalEnvironment == null ? void 0 : lexicalEnvironment.data) == null ? void 0 : _a.classConstructor)) { - var invocation = factory2.createFunctionBindCall(visitNode(node.tag, visitor, isExpression), lexicalEnvironment.data.classConstructor, []); - setOriginalNode(invocation, node); - setTextRange(invocation, node); - return factory2.updateTaggedTemplateExpression(node, invocation, - /*typeArguments*/ - void 0, visitNode(node.template, visitor, isTemplateLiteral)); - } - return visitEachChild(node, visitor, context); - } - function transformClassStaticBlockDeclaration(node) { - if (lexicalEnvironment) { - lexicalEnvironmentMap.set(getOriginalNode(node), lexicalEnvironment); - } - if (shouldTransformPrivateElementsOrClassStaticBlocks) { - if (isClassThisAssignmentBlock(node)) { - var result = visitNode(node.body.statements[0].expression, visitor, isExpression); - if (isAssignmentExpression(result, - /*excludeCompoundAssignment*/ - true) && result.left === result.right) { - return void 0; - } - return result; - } - if (isClassNamedEvaluationHelperBlock(node)) { - return visitNode(node.body.statements[0].expression, visitor, isExpression); - } - startLexicalEnvironment(); - var statements = setCurrentClassElementAnd(node, function (statements2) { return visitNodes2(statements2, visitor, isStatement); }, node.body.statements); - statements = factory2.mergeLexicalEnvironment(statements, endLexicalEnvironment()); - var iife = factory2.createImmediatelyInvokedArrowFunction(statements); - setOriginalNode(skipParentheses(iife.expression), node); - addEmitFlags(skipParentheses(iife.expression), 4 /* AdviseOnEmitNode */); - setOriginalNode(iife, node); - setTextRange(iife, node); - return iife; - } - } - function isAnonymousClassNeedingAssignedName(node) { - if (isClassExpression(node) && !node.name) { - var staticPropertiesOrClassStaticBlocks = getStaticPropertiesAndClassStaticBlock(node); - if (some(staticPropertiesOrClassStaticBlocks, isClassNamedEvaluationHelperBlock)) { - return false; - } - var hasTransformableStatics = (shouldTransformPrivateElementsOrClassStaticBlocks || !!(getInternalEmitFlags(node) && 32 /* TransformPrivateStaticElements */)) && some(staticPropertiesOrClassStaticBlocks, function (node2) { return isClassStaticBlockDeclaration(node2) || isPrivateIdentifierClassElementDeclaration(node2) || shouldTransformInitializers && isInitializedProperty(node2); }); - return hasTransformableStatics; - } - return false; - } - function visitBinaryExpression(node, discarded) { - if (isDestructuringAssignment(node)) { - var savedPendingExpressions = pendingExpressions; - pendingExpressions = void 0; - node = factory2.updateBinaryExpression(node, visitNode(node.left, assignmentTargetVisitor, isExpression), node.operatorToken, visitNode(node.right, visitor, isExpression)); - var expr = some(pendingExpressions) ? factory2.inlineExpressions(compact(__spreadArray(__spreadArray([], __read(pendingExpressions), false), [node], false))) : node; - pendingExpressions = savedPendingExpressions; - return expr; - } - if (isAssignmentExpression(node)) { - if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) { - node = transformNamedEvaluation(context, node); - Debug.assertNode(node, isAssignmentExpression); - } - var left = skipOuterExpressions(node.left, 8 /* PartiallyEmittedExpressions */ | 1 /* Parentheses */); - if (isPrivateIdentifierPropertyAccessExpression(left)) { - var info = accessPrivateIdentifier2(left.name); - if (info) { - return setTextRange(setOriginalNode(createPrivateIdentifierAssignment(info, left.expression, node.right, node.operatorToken.kind), node), node); - } - } - else if (shouldTransformSuperInStaticInitializers && currentClassElement && isSuperProperty(node.left) && isStaticPropertyDeclarationOrClassStaticBlock(currentClassElement) && (lexicalEnvironment == null ? void 0 : lexicalEnvironment.data)) { - var _t = lexicalEnvironment.data, classConstructor = _t.classConstructor, superClassReference = _t.superClassReference, facts = _t.facts; - if (facts & 1 /* ClassWasDecorated */) { - return factory2.updateBinaryExpression(node, visitInvalidSuperProperty(node.left), node.operatorToken, visitNode(node.right, visitor, isExpression)); - } - if (classConstructor && superClassReference) { - var setterName = isElementAccessExpression(node.left) ? visitNode(node.left.argumentExpression, visitor, isExpression) : isIdentifier(node.left.name) ? factory2.createStringLiteralFromNode(node.left.name) : void 0; - if (setterName) { - var expression = visitNode(node.right, visitor, isExpression); - if (isCompoundAssignment(node.operatorToken.kind)) { - var getterName = setterName; - if (!isSimpleInlineableExpression(setterName)) { - getterName = factory2.createTempVariable(hoistVariableDeclaration); - setterName = factory2.createAssignment(getterName, setterName); - } - var superPropertyGet = factory2.createReflectGetCall(superClassReference, getterName, classConstructor); - setOriginalNode(superPropertyGet, node.left); - setTextRange(superPropertyGet, node.left); - expression = factory2.createBinaryExpression(superPropertyGet, getNonAssignmentOperatorForCompoundAssignment(node.operatorToken.kind), expression); - setTextRange(expression, node); - } - var temp = discarded ? void 0 : factory2.createTempVariable(hoistVariableDeclaration); - if (temp) { - expression = factory2.createAssignment(temp, expression); - setTextRange(temp, node); - } - expression = factory2.createReflectSetCall(superClassReference, setterName, expression, classConstructor); - setOriginalNode(expression, node); - setTextRange(expression, node); - if (temp) { - expression = factory2.createComma(expression, temp); - setTextRange(expression, node); - } - return expression; - } - } - } - } - if (isPrivateIdentifierInExpression(node)) { - return transformPrivateIdentifierInInExpression(node); - } - return visitEachChild(node, visitor, context); - } - function visitCommaListExpression(node, discarded) { - var elements = discarded ? visitCommaListElements(node.elements, discardedValueVisitor) : visitCommaListElements(node.elements, visitor, discardedValueVisitor); - return factory2.updateCommaListExpression(node, elements); - } - function visitParenthesizedExpression(node, discarded) { - var visitorFunc = discarded ? discardedValueVisitor : visitor; - var expression = visitNode(node.expression, visitorFunc, isExpression); - return factory2.updateParenthesizedExpression(node, expression); - } - function createPrivateIdentifierAssignment(info, receiver, right, operator) { - receiver = visitNode(receiver, visitor, isExpression); - right = visitNode(right, visitor, isExpression); - ensureDynamicThisIfNeeded(receiver); - if (isCompoundAssignment(operator)) { - var _t = createCopiableReceiverExpr(receiver), readExpression = _t.readExpression, initializeExpression = _t.initializeExpression; - receiver = initializeExpression || readExpression; - right = factory2.createBinaryExpression(createPrivateIdentifierAccessHelper(info, readExpression), getNonAssignmentOperatorForCompoundAssignment(operator), right); - } - setCommentRange(receiver, moveRangePos(receiver, -1)); - switch (info.kind) { - case "a" /* Accessor */: - return emitHelpers().createClassPrivateFieldSetHelper(receiver, info.brandCheckIdentifier, right, info.kind, info.setterName); - case "m" /* Method */: - return emitHelpers().createClassPrivateFieldSetHelper(receiver, info.brandCheckIdentifier, right, info.kind, - /*f*/ - void 0); - case "f" /* Field */: - return emitHelpers().createClassPrivateFieldSetHelper(receiver, info.brandCheckIdentifier, right, info.kind, info.isStatic ? info.variableName : void 0); - case "untransformed": - return Debug.fail("Access helpers should not be created for untransformed private elements"); - default: - Debug.assertNever(info, "Unknown private element type"); - } - } - function getPrivateInstanceMethodsAndAccessors(node) { - return filter(node.members, isNonStaticMethodOrAccessorWithPrivateName); - } - function getClassFacts(node) { - var e_467, _t; - var _a; - var facts = 0 /* None */; - var original = getOriginalNode(node); - if (isClassDeclaration(original) && classOrConstructorParameterIsDecorated(legacyDecorators, original)) { - facts |= 1 /* ClassWasDecorated */; - } - if (shouldTransformPrivateElementsOrClassStaticBlocks && (classHasClassThisAssignment(node) || classHasExplicitlyAssignedName(node))) { - facts |= 2 /* NeedsClassConstructorReference */; - } - var containsPublicInstanceFields = false; - var containsInitializedPublicInstanceFields = false; - var containsInstancePrivateElements = false; - var containsInstanceAutoAccessors = false; - try { - for (var _u = __values(node.members), _v = _u.next(); !_v.done; _v = _u.next()) { - var member = _v.value; - if (isStatic(member)) { - if (member.name && (isPrivateIdentifier(member.name) || isAutoAccessorPropertyDeclaration(member)) && shouldTransformPrivateElementsOrClassStaticBlocks) { - facts |= 2 /* NeedsClassConstructorReference */; - } - else if (isAutoAccessorPropertyDeclaration(member) && shouldTransformAutoAccessors === -1 /* True */ && !node.name && !((_a = node.emitNode) == null ? void 0 : _a.classThis)) { - facts |= 2 /* NeedsClassConstructorReference */; - } - if (isPropertyDeclaration(member) || isClassStaticBlockDeclaration(member)) { - if (shouldTransformThisInStaticInitializers && member.transformFlags & 16384 /* ContainsLexicalThis */) { - facts |= 8 /* NeedsSubstitutionForThisInClassStaticField */; - if (!(facts & 1 /* ClassWasDecorated */)) { - facts |= 2 /* NeedsClassConstructorReference */; - } - } - if (shouldTransformSuperInStaticInitializers && member.transformFlags & 134217728 /* ContainsLexicalSuper */) { - if (!(facts & 1 /* ClassWasDecorated */)) { - facts |= 2 /* NeedsClassConstructorReference */ | 4 /* NeedsClassSuperReference */; - } - } - } - } - else if (!hasAbstractModifier(getOriginalNode(member))) { - if (isAutoAccessorPropertyDeclaration(member)) { - containsInstanceAutoAccessors = true; - containsInstancePrivateElements || (containsInstancePrivateElements = isPrivateIdentifierClassElementDeclaration(member)); - } - else if (isPrivateIdentifierClassElementDeclaration(member)) { - containsInstancePrivateElements = true; - if (resolver.getNodeCheckFlags(member) & 262144 /* ContainsConstructorReference */) { - facts |= 2 /* NeedsClassConstructorReference */; - } - } - else if (isPropertyDeclaration(member)) { - containsPublicInstanceFields = true; - containsInitializedPublicInstanceFields || (containsInitializedPublicInstanceFields = !!member.initializer); - } - } - } - } - catch (e_467_1) { e_467 = { error: e_467_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_467) throw e_467.error; } - } - var willHoistInitializersToConstructor = shouldTransformInitializersUsingDefine && containsPublicInstanceFields || shouldTransformInitializersUsingSet && containsInitializedPublicInstanceFields || shouldTransformPrivateElementsOrClassStaticBlocks && containsInstancePrivateElements || shouldTransformPrivateElementsOrClassStaticBlocks && containsInstanceAutoAccessors && shouldTransformAutoAccessors === -1 /* True */; - if (willHoistInitializersToConstructor) { - facts |= 16 /* WillHoistInitializersToConstructor */; - } - return facts; - } - function visitExpressionWithTypeArgumentsInHeritageClause(node) { - var _a; - var facts = ((_a = lexicalEnvironment == null ? void 0 : lexicalEnvironment.data) == null ? void 0 : _a.facts) || 0 /* None */; - if (facts & 4 /* NeedsClassSuperReference */) { - var temp = factory2.createTempVariable(hoistVariableDeclaration, - /*reservedInNestedScopes*/ - true); - getClassLexicalEnvironment().superClassReference = temp; - return factory2.updateExpressionWithTypeArguments(node, factory2.createAssignment(temp, visitNode(node.expression, visitor, isExpression)), - /*typeArguments*/ - void 0); - } - return visitEachChild(node, visitor, context); - } - function visitInNewClassLexicalEnvironment(node, visitor2) { - var _a; - var savedCurrentClassContainer = currentClassContainer; - var savedPendingExpressions = pendingExpressions; - var savedLexicalEnvironment = lexicalEnvironment; - currentClassContainer = node; - pendingExpressions = void 0; - startClassLexicalEnvironment(); - var shouldAlwaysTransformPrivateStaticElements = getInternalEmitFlags(node) & 32 /* TransformPrivateStaticElements */; - if (shouldTransformPrivateElementsOrClassStaticBlocks || shouldAlwaysTransformPrivateStaticElements) { - var name_80 = getNameOfDeclaration(node); - if (name_80 && isIdentifier(name_80)) { - getPrivateIdentifierEnvironment().data.className = name_80; - } - else if ((_a = node.emitNode) == null ? void 0 : _a.assignedName) { - if (isStringLiteral(node.emitNode.assignedName)) { - if (node.emitNode.assignedName.textSourceNode && isIdentifier(node.emitNode.assignedName.textSourceNode)) { - getPrivateIdentifierEnvironment().data.className = node.emitNode.assignedName.textSourceNode; - } - else if (isIdentifierText(node.emitNode.assignedName.text, languageVersion)) { - var prefixName = factory2.createIdentifier(node.emitNode.assignedName.text); - getPrivateIdentifierEnvironment().data.className = prefixName; - } - } - } - } - if (shouldTransformPrivateElementsOrClassStaticBlocks) { - var privateInstanceMethodsAndAccessors = getPrivateInstanceMethodsAndAccessors(node); - if (some(privateInstanceMethodsAndAccessors)) { - getPrivateIdentifierEnvironment().data.weakSetName = createHoistedVariableForClass("instances", privateInstanceMethodsAndAccessors[0].name); - } - } - var facts = getClassFacts(node); - if (facts) { - getClassLexicalEnvironment().facts = facts; - } - if (facts & 8 /* NeedsSubstitutionForThisInClassStaticField */) { - enableSubstitutionForClassStaticThisOrSuperReference(); - } - var result = visitor2(node, facts); - endClassLexicalEnvironment(); - Debug.assert(lexicalEnvironment === savedLexicalEnvironment); - currentClassContainer = savedCurrentClassContainer; - pendingExpressions = savedPendingExpressions; - return result; - } - function visitClassDeclaration(node) { - return visitInNewClassLexicalEnvironment(node, visitClassDeclarationInNewClassLexicalEnvironment); - } - function visitClassDeclarationInNewClassLexicalEnvironment(node, facts) { - var _a, _b; - var pendingClassReferenceAssignment; - if (facts & 2 /* NeedsClassConstructorReference */) { - if (shouldTransformPrivateElementsOrClassStaticBlocks && ((_a = node.emitNode) == null ? void 0 : _a.classThis)) { - getClassLexicalEnvironment().classConstructor = node.emitNode.classThis; - pendingClassReferenceAssignment = factory2.createAssignment(node.emitNode.classThis, factory2.getInternalName(node)); - } - else { - var temp = factory2.createTempVariable(hoistVariableDeclaration, - /*reservedInNestedScopes*/ - true); - getClassLexicalEnvironment().classConstructor = factory2.cloneNode(temp); - pendingClassReferenceAssignment = factory2.createAssignment(temp, factory2.getInternalName(node)); - } - } - if ((_b = node.emitNode) == null ? void 0 : _b.classThis) { - getClassLexicalEnvironment().classThis = node.emitNode.classThis; - } - var isClassWithConstructorReference = resolver.getNodeCheckFlags(node) & 262144 /* ContainsConstructorReference */; - var isExport = hasSyntacticModifier(node, 1 /* Export */); - var isDefault = hasSyntacticModifier(node, 1024 /* Default */); - var modifiers = visitNodes2(node.modifiers, modifierVisitor, isModifier); - var heritageClauses = visitNodes2(node.heritageClauses, heritageClauseVisitor, isHeritageClause); - var _t = transformClassMembers(node), members = _t.members, prologue = _t.prologue; - var statements = []; - if (pendingClassReferenceAssignment) { - getPendingExpressions().unshift(pendingClassReferenceAssignment); - } - if (some(pendingExpressions)) { - statements.push(factory2.createExpressionStatement(factory2.inlineExpressions(pendingExpressions))); - } - if (shouldTransformInitializersUsingSet || shouldTransformPrivateElementsOrClassStaticBlocks || getInternalEmitFlags(node) & 32 /* TransformPrivateStaticElements */) { - var staticProperties = getStaticPropertiesAndClassStaticBlock(node); - if (some(staticProperties)) { - addPropertyOrClassStaticBlockStatements(statements, staticProperties, factory2.getInternalName(node)); - } - } - if (statements.length > 0 && isExport && isDefault) { - modifiers = visitNodes2(modifiers, function (node2) { return isExportOrDefaultModifier(node2) ? void 0 : node2; }, isModifier); - statements.push(factory2.createExportAssignment( - /*modifiers*/ - void 0, - /*isExportEquals*/ - false, factory2.getLocalName(node, - /*allowComments*/ - false, - /*allowSourceMaps*/ - true))); - } - var alias = getClassLexicalEnvironment().classConstructor; - if (isClassWithConstructorReference && alias) { - enableSubstitutionForClassAliases(); - classAliases[getOriginalNodeId(node)] = alias; - } - var classDecl = factory2.updateClassDeclaration(node, modifiers, node.name, - /*typeParameters*/ - void 0, heritageClauses, members); - statements.unshift(classDecl); - if (prologue) { - statements.unshift(factory2.createExpressionStatement(prologue)); - } - return statements; - } - function visitClassExpression(node) { - return visitInNewClassLexicalEnvironment(node, visitClassExpressionInNewClassLexicalEnvironment); - } - function visitClassExpressionInNewClassLexicalEnvironment(node, facts) { - var _t; - var _a, _b, _c; - var isDecoratedClassDeclaration = !!(facts & 1 /* ClassWasDecorated */); - var staticPropertiesOrClassStaticBlocks = getStaticPropertiesAndClassStaticBlock(node); - var classCheckFlags = resolver.getNodeCheckFlags(node); - var isClassWithConstructorReference = classCheckFlags & 262144 /* ContainsConstructorReference */; - var temp; - function createClassTempVar() { - var _a2; - if (shouldTransformPrivateElementsOrClassStaticBlocks && ((_a2 = node.emitNode) == null ? void 0 : _a2.classThis)) { - return getClassLexicalEnvironment().classConstructor = node.emitNode.classThis; - } - var requiresBlockScopedVar = classCheckFlags & 32768 /* BlockScopedBindingInLoop */; - var temp2 = factory2.createTempVariable(requiresBlockScopedVar ? addBlockScopedVariable : hoistVariableDeclaration, - /*reservedInNestedScopes*/ - true); - getClassLexicalEnvironment().classConstructor = factory2.cloneNode(temp2); - return temp2; - } - if ((_a = node.emitNode) == null ? void 0 : _a.classThis) { - getClassLexicalEnvironment().classThis = node.emitNode.classThis; - } - if (facts & 2 /* NeedsClassConstructorReference */) { - temp !== null && temp !== void 0 ? temp : (temp = createClassTempVar()); - } - var modifiers = visitNodes2(node.modifiers, modifierVisitor, isModifier); - var heritageClauses = visitNodes2(node.heritageClauses, heritageClauseVisitor, isHeritageClause); - var _u = transformClassMembers(node), members = _u.members, prologue = _u.prologue; - var classExpression = factory2.updateClassExpression(node, modifiers, node.name, - /*typeParameters*/ - void 0, heritageClauses, members); - var expressions = []; - if (prologue) { - expressions.push(prologue); - } - var hasTransformableStatics = (shouldTransformPrivateElementsOrClassStaticBlocks || getInternalEmitFlags(node) & 32 /* TransformPrivateStaticElements */) && some(staticPropertiesOrClassStaticBlocks, function (node2) { return isClassStaticBlockDeclaration(node2) || isPrivateIdentifierClassElementDeclaration(node2) || shouldTransformInitializers && isInitializedProperty(node2); }); - if (hasTransformableStatics || some(pendingExpressions)) { - if (isDecoratedClassDeclaration) { - Debug.assertIsDefined(pendingStatements, "Decorated classes transformed by TypeScript are expected to be within a variable declaration."); - if (some(pendingExpressions)) { - addRange(pendingStatements, map(pendingExpressions, factory2.createExpressionStatement)); - } - if (some(staticPropertiesOrClassStaticBlocks)) { - addPropertyOrClassStaticBlockStatements(pendingStatements, staticPropertiesOrClassStaticBlocks, (_t = ((_b = node.emitNode) == null ? void 0 : _b.classThis)) !== null && _t !== void 0 ? _t : factory2.getInternalName(node)); - } - if (temp) { - expressions.push(factory2.createAssignment(temp, classExpression)); - } - else if (shouldTransformPrivateElementsOrClassStaticBlocks && ((_c = node.emitNode) == null ? void 0 : _c.classThis)) { - expressions.push(factory2.createAssignment(node.emitNode.classThis, classExpression)); - } - else { - expressions.push(classExpression); - } - } - else { - temp !== null && temp !== void 0 ? temp : (temp = createClassTempVar()); - if (isClassWithConstructorReference) { - enableSubstitutionForClassAliases(); - var alias = factory2.cloneNode(temp); - alias.emitNode.autoGenerate.flags &= ~8 /* ReservedInNestedScopes */; - classAliases[getOriginalNodeId(node)] = alias; - } - expressions.push(factory2.createAssignment(temp, classExpression)); - addRange(expressions, pendingExpressions); - addRange(expressions, generateInitializedPropertyExpressionsOrClassStaticBlock(staticPropertiesOrClassStaticBlocks, temp)); - expressions.push(factory2.cloneNode(temp)); - } - } - else { - expressions.push(classExpression); - } - if (expressions.length > 1) { - addEmitFlags(classExpression, 131072 /* Indented */); - expressions.forEach(startOnNewLine); - } - return factory2.inlineExpressions(expressions); - } - function visitClassStaticBlockDeclaration(node) { - if (!shouldTransformPrivateElementsOrClassStaticBlocks) { - return visitEachChild(node, visitor, context); - } - return void 0; - } - function visitThisExpression(node) { - var _t; - if (shouldTransformThisInStaticInitializers && currentClassElement && isClassStaticBlockDeclaration(currentClassElement) && (lexicalEnvironment == null ? void 0 : lexicalEnvironment.data)) { - var _u = lexicalEnvironment.data, classThis = _u.classThis, classConstructor = _u.classConstructor; - return (_t = classThis !== null && classThis !== void 0 ? classThis : classConstructor) !== null && _t !== void 0 ? _t : node; - } - return node; - } - function transformClassMembers(node) { - var e_468, _t, e_469, _u; - var shouldTransformPrivateStaticElementsInClass = !!(getInternalEmitFlags(node) & 32 /* TransformPrivateStaticElements */); - if (shouldTransformPrivateElementsOrClassStaticBlocks || shouldTransformPrivateStaticElementsInFile) { - try { - for (var _v = __values(node.members), _w = _v.next(); !_w.done; _w = _v.next()) { - var member = _w.value; - if (isPrivateIdentifierClassElementDeclaration(member)) { - if (shouldTransformClassElementToWeakMap(member)) { - addPrivateIdentifierToEnvironment(member, member.name, addPrivateIdentifierClassElementToEnvironment); - } - else { - var privateEnv = getPrivateIdentifierEnvironment(); - setPrivateIdentifier(privateEnv, member.name, { kind: "untransformed" }); - } - } - } - } - catch (e_468_1) { e_468 = { error: e_468_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_468) throw e_468.error; } - } - if (shouldTransformPrivateElementsOrClassStaticBlocks) { - if (some(getPrivateInstanceMethodsAndAccessors(node))) { - createBrandCheckWeakSetForPrivateMethods(); - } - } - if (shouldTransformAutoAccessorsInCurrentClass()) { - try { - for (var _x = __values(node.members), _y = _x.next(); !_y.done; _y = _x.next()) { - var member = _y.value; - if (isAutoAccessorPropertyDeclaration(member)) { - var storageName = factory2.getGeneratedPrivateNameForNode(member.name, - /*prefix*/ - void 0, "_accessor_storage"); - if (shouldTransformPrivateElementsOrClassStaticBlocks || shouldTransformPrivateStaticElementsInClass && hasStaticModifier(member)) { - addPrivateIdentifierToEnvironment(member, storageName, addPrivateIdentifierPropertyDeclarationToEnvironment); - } - else { - var privateEnv = getPrivateIdentifierEnvironment(); - setPrivateIdentifier(privateEnv, storageName, { kind: "untransformed" }); - } - } - } - } - catch (e_469_1) { e_469 = { error: e_469_1 }; } - finally { - try { - if (_y && !_y.done && (_u = _x.return)) _u.call(_x); - } - finally { if (e_469) throw e_469.error; } - } - } - } - var members = visitNodes2(node.members, classElementVisitor, isClassElement); - var syntheticConstructor; - if (!some(members, isConstructorDeclaration)) { - syntheticConstructor = transformConstructor( - /*constructor*/ - void 0, node); - } - var prologue; - var syntheticStaticBlock; - if (!shouldTransformPrivateElementsOrClassStaticBlocks && some(pendingExpressions)) { - var statement = factory2.createExpressionStatement(factory2.inlineExpressions(pendingExpressions)); - if (statement.transformFlags & 134234112 /* ContainsLexicalThisOrSuper */) { - var temp = factory2.createTempVariable(hoistVariableDeclaration); - var arrow = factory2.createArrowFunction( - /*modifiers*/ - void 0, - /*typeParameters*/ - void 0, - /*parameters*/ - [], - /*type*/ - void 0, - /*equalsGreaterThanToken*/ - void 0, factory2.createBlock([statement])); - prologue = factory2.createAssignment(temp, arrow); - statement = factory2.createExpressionStatement(factory2.createCallExpression(temp, - /*typeArguments*/ - void 0, [])); - } - var block = factory2.createBlock([statement]); - syntheticStaticBlock = factory2.createClassStaticBlockDeclaration(block); - pendingExpressions = void 0; - } - if (syntheticConstructor || syntheticStaticBlock) { - var membersArray = void 0; - var classThisAssignmentBlock_1 = find(members, isClassThisAssignmentBlock); - var classNamedEvaluationHelperBlock_1 = find(members, isClassNamedEvaluationHelperBlock); - membersArray = append(membersArray, classThisAssignmentBlock_1); - membersArray = append(membersArray, classNamedEvaluationHelperBlock_1); - membersArray = append(membersArray, syntheticConstructor); - membersArray = append(membersArray, syntheticStaticBlock); - var remainingMembers = classThisAssignmentBlock_1 || classNamedEvaluationHelperBlock_1 ? filter(members, function (member) { return member !== classThisAssignmentBlock_1 && member !== classNamedEvaluationHelperBlock_1; }) : members; - membersArray = addRange(membersArray, remainingMembers); - members = setTextRange(factory2.createNodeArray(membersArray), - /*location*/ - node.members); - } - return { members: members, prologue: prologue }; - } - function createBrandCheckWeakSetForPrivateMethods() { - var weakSetName = getPrivateIdentifierEnvironment().data.weakSetName; - Debug.assert(weakSetName, "weakSetName should be set in private identifier environment"); - getPendingExpressions().push(factory2.createAssignment(weakSetName, factory2.createNewExpression(factory2.createIdentifier("WeakSet"), - /*typeArguments*/ - void 0, []))); - } - function transformConstructor(constructor, container) { - constructor = visitNode(constructor, visitor, isConstructorDeclaration); - if (!(lexicalEnvironment == null ? void 0 : lexicalEnvironment.data) || !(lexicalEnvironment.data.facts & 16 /* WillHoistInitializersToConstructor */)) { - return constructor; - } - var extendsClauseElement = getEffectiveBaseTypeNode(container); - var isDerivedClass = !!(extendsClauseElement && skipOuterExpressions(extendsClauseElement.expression).kind !== 106 /* NullKeyword */); - var parameters = visitParameterList(constructor ? constructor.parameters : void 0, visitor, context); - var body = transformConstructorBody(container, constructor, isDerivedClass); - if (!body) { - return constructor; - } - if (constructor) { - Debug.assert(parameters); - return factory2.updateConstructorDeclaration(constructor, - /*modifiers*/ - void 0, parameters, body); - } - return startOnNewLine(setOriginalNode(setTextRange(factory2.createConstructorDeclaration( - /*modifiers*/ - void 0, parameters !== null && parameters !== void 0 ? parameters : [], body), constructor || container), constructor)); - } - function transformConstructorBodyWorker(statementsOut, statementsIn, statementOffset, superPath, superPathDepth, initializerStatements, constructor) { - var superStatementIndex = superPath[superPathDepth]; - var superStatement = statementsIn[superStatementIndex]; - addRange(statementsOut, visitNodes2(statementsIn, visitor, isStatement, statementOffset, superStatementIndex - statementOffset)); - statementOffset = superStatementIndex + 1; - if (isTryStatement(superStatement)) { - var tryBlockStatements = []; - transformConstructorBodyWorker(tryBlockStatements, superStatement.tryBlock.statements, - /*statementOffset*/ - 0, superPath, superPathDepth + 1, initializerStatements, constructor); - var tryBlockStatementsArray = factory2.createNodeArray(tryBlockStatements); - setTextRange(tryBlockStatementsArray, superStatement.tryBlock.statements); - statementsOut.push(factory2.updateTryStatement(superStatement, factory2.updateBlock(superStatement.tryBlock, tryBlockStatements), visitNode(superStatement.catchClause, visitor, isCatchClause), visitNode(superStatement.finallyBlock, visitor, isBlock))); - } - else { - addRange(statementsOut, visitNodes2(statementsIn, visitor, isStatement, superStatementIndex, 1)); - while (statementOffset < statementsIn.length) { - var statement = statementsIn[statementOffset]; - if (isParameterPropertyDeclaration(getOriginalNode(statement), constructor)) { - statementOffset++; - } - else { - break; - } - } - addRange(statementsOut, initializerStatements); - } - addRange(statementsOut, visitNodes2(statementsIn, visitor, isStatement, statementOffset)); - } - function transformConstructorBody(node, constructor, isDerivedClass) { - var _t; - var instanceProperties = getProperties(node, - /*requireInitializer*/ - false, - /*isStatic*/ - false); - var properties = instanceProperties; - if (!useDefineForClassFields) { - properties = filter(properties, function (property) { return !!property.initializer || isPrivateIdentifier(property.name) || hasAccessorModifier(property); }); - } - var privateMethodsAndAccessors = getPrivateInstanceMethodsAndAccessors(node); - var needsConstructorBody = some(properties) || some(privateMethodsAndAccessors); - if (!constructor && !needsConstructorBody) { - return visitFunctionBody( - /*node*/ - void 0, visitor, context); - } - resumeLexicalEnvironment(); - var needsSyntheticConstructor = !constructor && isDerivedClass; - var statementOffset = 0; - var statements = []; - var initializerStatements = []; - var receiver = factory2.createThis(); - addInstanceMethodStatements(initializerStatements, privateMethodsAndAccessors, receiver); - if (constructor) { - var parameterProperties = filter(instanceProperties, function (prop) { return isParameterPropertyDeclaration(getOriginalNode(prop), constructor); }); - var nonParameterProperties = filter(properties, function (prop) { return !isParameterPropertyDeclaration(getOriginalNode(prop), constructor); }); - addPropertyOrClassStaticBlockStatements(initializerStatements, parameterProperties, receiver); - addPropertyOrClassStaticBlockStatements(initializerStatements, nonParameterProperties, receiver); - } - else { - addPropertyOrClassStaticBlockStatements(initializerStatements, properties, receiver); - } - if (constructor == null ? void 0 : constructor.body) { - statementOffset = factory2.copyPrologue(constructor.body.statements, statements, - /*ensureUseStrict*/ - false, visitor); - var superStatementIndices = findSuperStatementIndexPath(constructor.body.statements, statementOffset); - if (superStatementIndices.length) { - transformConstructorBodyWorker(statements, constructor.body.statements, statementOffset, superStatementIndices, - /*superPathDepth*/ - 0, initializerStatements, constructor); - } - else { - while (statementOffset < constructor.body.statements.length) { - var statement = constructor.body.statements[statementOffset]; - if (isParameterPropertyDeclaration(getOriginalNode(statement), constructor)) { - statementOffset++; - } - else { - break; - } - } - addRange(statements, initializerStatements); - addRange(statements, visitNodes2(constructor.body.statements, visitor, isStatement, statementOffset)); - } - } - else { - if (needsSyntheticConstructor) { - statements.push(factory2.createExpressionStatement(factory2.createCallExpression(factory2.createSuper(), - /*typeArguments*/ - void 0, [factory2.createSpreadElement(factory2.createIdentifier("arguments"))]))); - } - addRange(statements, initializerStatements); - } - statements = factory2.mergeLexicalEnvironment(statements, endLexicalEnvironment()); - if (statements.length === 0 && !constructor) { - return void 0; - } - var multiLine = (constructor == null ? void 0 : constructor.body) && constructor.body.statements.length >= statements.length ? (_t = constructor.body.multiLine) !== null && _t !== void 0 ? _t : statements.length > 0 : statements.length > 0; - return setTextRange(factory2.createBlock(setTextRange(factory2.createNodeArray(statements), - /*location*/ - constructor ? constructor.body.statements : node.members), multiLine), - /*location*/ - constructor ? constructor.body : void 0); - } - function addPropertyOrClassStaticBlockStatements(statements, properties, receiver) { - var e_470, _t; - try { - for (var properties_5 = __values(properties), properties_5_1 = properties_5.next(); !properties_5_1.done; properties_5_1 = properties_5.next()) { - var property = properties_5_1.value; - if (isStatic(property) && !shouldTransformPrivateElementsOrClassStaticBlocks) { - continue; - } - var statement = transformPropertyOrClassStaticBlock(property, receiver); - if (!statement) { - continue; - } - statements.push(statement); - } - } - catch (e_470_1) { e_470 = { error: e_470_1 }; } - finally { - try { - if (properties_5_1 && !properties_5_1.done && (_t = properties_5.return)) _t.call(properties_5); - } - finally { if (e_470) throw e_470.error; } - } - } - function transformPropertyOrClassStaticBlock(property, receiver) { - var expression = isClassStaticBlockDeclaration(property) ? setCurrentClassElementAnd(property, transformClassStaticBlockDeclaration, property) : transformProperty(property, receiver); - if (!expression) { - return void 0; - } - var statement = factory2.createExpressionStatement(expression); - setOriginalNode(statement, property); - addEmitFlags(statement, getEmitFlags(property) & 3072 /* NoComments */); - setCommentRange(statement, property); - var propertyOriginalNode = getOriginalNode(property); - if (isParameter(propertyOriginalNode)) { - setSourceMapRange(statement, propertyOriginalNode); - removeAllComments(statement); - } - else { - setSourceMapRange(statement, moveRangePastModifiers(property)); - } - setSyntheticLeadingComments(expression, void 0); - setSyntheticTrailingComments(expression, void 0); - if (hasAccessorModifier(propertyOriginalNode)) { - addEmitFlags(statement, 3072 /* NoComments */); - } - return statement; - } - function generateInitializedPropertyExpressionsOrClassStaticBlock(propertiesOrClassStaticBlocks, receiver) { - var e_471, _t; - var expressions = []; - var _loop_38 = function (property) { - var expression = isClassStaticBlockDeclaration(property) ? setCurrentClassElementAnd(property, transformClassStaticBlockDeclaration, property) : setCurrentClassElementAnd(property, function () { return transformProperty(property, receiver); }, - /*arg*/ - void 0); - if (!expression) { - return "continue"; - } - startOnNewLine(expression); - setOriginalNode(expression, property); - addEmitFlags(expression, getEmitFlags(property) & 3072 /* NoComments */); - setSourceMapRange(expression, moveRangePastModifiers(property)); - setCommentRange(expression, property); - expressions.push(expression); - }; - try { - for (var propertiesOrClassStaticBlocks_1 = __values(propertiesOrClassStaticBlocks), propertiesOrClassStaticBlocks_1_1 = propertiesOrClassStaticBlocks_1.next(); !propertiesOrClassStaticBlocks_1_1.done; propertiesOrClassStaticBlocks_1_1 = propertiesOrClassStaticBlocks_1.next()) { - var property = propertiesOrClassStaticBlocks_1_1.value; - _loop_38(property); - } - } - catch (e_471_1) { e_471 = { error: e_471_1 }; } - finally { - try { - if (propertiesOrClassStaticBlocks_1_1 && !propertiesOrClassStaticBlocks_1_1.done && (_t = propertiesOrClassStaticBlocks_1.return)) _t.call(propertiesOrClassStaticBlocks_1); - } - finally { if (e_471) throw e_471.error; } - } - return expressions; - } - function transformProperty(property, receiver) { - var _a; - var savedCurrentClassElement = currentClassElement; - var transformed = transformPropertyWorker(property, receiver); - if (transformed && hasStaticModifier(property) && ((_a = lexicalEnvironment == null ? void 0 : lexicalEnvironment.data) == null ? void 0 : _a.facts)) { - setOriginalNode(transformed, property); - addEmitFlags(transformed, 4 /* AdviseOnEmitNode */); - setSourceMapRange(transformed, getSourceMapRange(property.name)); - lexicalEnvironmentMap.set(getOriginalNode(property), lexicalEnvironment); - } - currentClassElement = savedCurrentClassElement; - return transformed; - } - function transformPropertyWorker(property, receiver) { - var emitAssignment = !useDefineForClassFields; - if (isNamedEvaluation(property, isAnonymousClassNeedingAssignedName)) { - property = transformNamedEvaluation(context, property); - } - var propertyName = hasAccessorModifier(property) ? factory2.getGeneratedPrivateNameForNode(property.name) : isComputedPropertyName(property.name) && !isSimpleInlineableExpression(property.name.expression) ? factory2.updateComputedPropertyName(property.name, factory2.getGeneratedNameForNode(property.name)) : property.name; - if (hasStaticModifier(property)) { - currentClassElement = property; - } - if (isPrivateIdentifier(propertyName) && shouldTransformClassElementToWeakMap(property)) { - var privateIdentifierInfo = accessPrivateIdentifier2(propertyName); - if (privateIdentifierInfo) { - if (privateIdentifierInfo.kind === "f" /* Field */) { - if (!privateIdentifierInfo.isStatic) { - return createPrivateInstanceFieldInitializer(factory2, receiver, visitNode(property.initializer, visitor, isExpression), privateIdentifierInfo.brandCheckIdentifier); - } - else { - return createPrivateStaticFieldInitializer(factory2, privateIdentifierInfo.variableName, visitNode(property.initializer, visitor, isExpression)); - } - } - else { - return void 0; - } - } - else { - Debug.fail("Undeclared private name for property declaration."); - } - } - if ((isPrivateIdentifier(propertyName) || hasStaticModifier(property)) && !property.initializer) { - return void 0; - } - var propertyOriginalNode = getOriginalNode(property); - if (hasSyntacticModifier(propertyOriginalNode, 256 /* Abstract */)) { - return void 0; - } - var initializer = visitNode(property.initializer, visitor, isExpression); - if (isParameterPropertyDeclaration(propertyOriginalNode, propertyOriginalNode.parent) && isIdentifier(propertyName)) { - var localName = factory2.cloneNode(propertyName); - if (initializer) { - if (isParenthesizedExpression(initializer) && isCommaExpression(initializer.expression) && isCallToHelper(initializer.expression.left, "___runInitializers") && isVoidExpression(initializer.expression.right) && isNumericLiteral(initializer.expression.right.expression)) { - initializer = initializer.expression.left; - } - initializer = factory2.inlineExpressions([initializer, localName]); - } - else { - initializer = localName; - } - setEmitFlags(propertyName, 3072 /* NoComments */ | 96 /* NoSourceMap */); - setSourceMapRange(localName, propertyOriginalNode.name); - setEmitFlags(localName, 3072 /* NoComments */); - } - else { - initializer !== null && initializer !== void 0 ? initializer : (initializer = factory2.createVoidZero()); - } - if (emitAssignment || isPrivateIdentifier(propertyName)) { - var memberAccess = createMemberAccessForPropertyName(factory2, receiver, propertyName, - /*location*/ - propertyName); - addEmitFlags(memberAccess, 1024 /* NoLeadingComments */); - var expression = factory2.createAssignment(memberAccess, initializer); - return expression; - } - else { - var name_81 = isComputedPropertyName(propertyName) ? propertyName.expression : isIdentifier(propertyName) ? factory2.createStringLiteral(unescapeLeadingUnderscores(propertyName.escapedText)) : propertyName; - var descriptor = factory2.createPropertyDescriptor({ value: initializer, configurable: true, writable: true, enumerable: true }); - return factory2.createObjectDefinePropertyCall(receiver, name_81, descriptor); - } - } - function enableSubstitutionForClassAliases() { - if ((enabledSubstitutions & 1 /* ClassAliases */) === 0) { - enabledSubstitutions |= 1 /* ClassAliases */; - context.enableSubstitution(80 /* Identifier */); - classAliases = []; - } - } - function enableSubstitutionForClassStaticThisOrSuperReference() { - if ((enabledSubstitutions & 2 /* ClassStaticThisOrSuperReference */) === 0) { - enabledSubstitutions |= 2 /* ClassStaticThisOrSuperReference */; - context.enableSubstitution(110 /* ThisKeyword */); - context.enableEmitNotification(262 /* FunctionDeclaration */); - context.enableEmitNotification(218 /* FunctionExpression */); - context.enableEmitNotification(176 /* Constructor */); - context.enableEmitNotification(177 /* GetAccessor */); - context.enableEmitNotification(178 /* SetAccessor */); - context.enableEmitNotification(174 /* MethodDeclaration */); - context.enableEmitNotification(172 /* PropertyDeclaration */); - context.enableEmitNotification(167 /* ComputedPropertyName */); - } - } - function addInstanceMethodStatements(statements, methods, receiver) { - if (!shouldTransformPrivateElementsOrClassStaticBlocks || !some(methods)) { - return; - } - var weakSetName = getPrivateIdentifierEnvironment().data.weakSetName; - Debug.assert(weakSetName, "weakSetName should be set in private identifier environment"); - statements.push(factory2.createExpressionStatement(createPrivateInstanceMethodInitializer(factory2, receiver, weakSetName))); - } - function visitInvalidSuperProperty(node) { - return isPropertyAccessExpression(node) ? factory2.updatePropertyAccessExpression(node, factory2.createVoidZero(), node.name) : factory2.updateElementAccessExpression(node, factory2.createVoidZero(), visitNode(node.argumentExpression, visitor, isExpression)); - } - function getPropertyNameExpressionIfNeeded(name, shouldHoist) { - if (isComputedPropertyName(name)) { - var cacheAssignment = findComputedPropertyNameCacheAssignment(name); - var expression = visitNode(name.expression, visitor, isExpression); - var innerExpression = skipPartiallyEmittedExpressions(expression); - var inlinable = isSimpleInlineableExpression(innerExpression); - var alreadyTransformed = !!cacheAssignment || isAssignmentExpression(innerExpression) && isGeneratedIdentifier(innerExpression.left); - if (!alreadyTransformed && !inlinable && shouldHoist) { - var generatedName = factory2.getGeneratedNameForNode(name); - if (resolver.getNodeCheckFlags(name) & 32768 /* BlockScopedBindingInLoop */) { - addBlockScopedVariable(generatedName); - } - else { - hoistVariableDeclaration(generatedName); - } - return factory2.createAssignment(generatedName, expression); - } - return inlinable || isIdentifier(innerExpression) ? void 0 : expression; - } - } - function startClassLexicalEnvironment() { - lexicalEnvironment = { previous: lexicalEnvironment, data: void 0 }; - } - function endClassLexicalEnvironment() { - lexicalEnvironment = lexicalEnvironment == null ? void 0 : lexicalEnvironment.previous; - } - function getClassLexicalEnvironment() { - var _t; - Debug.assert(lexicalEnvironment); - return (_t = lexicalEnvironment.data) !== null && _t !== void 0 ? _t : (lexicalEnvironment.data = { - facts: 0 /* None */, - classConstructor: void 0, - classThis: void 0, - superClassReference: void 0 - // privateIdentifierEnvironment: undefined, - }); - } - function getPrivateIdentifierEnvironment() { - var _t; - Debug.assert(lexicalEnvironment); - return (_t = lexicalEnvironment.privateEnv) !== null && _t !== void 0 ? _t : (lexicalEnvironment.privateEnv = newPrivateEnvironment({ - className: void 0, - weakSetName: void 0 - })); - } - function getPendingExpressions() { - return pendingExpressions !== null && pendingExpressions !== void 0 ? pendingExpressions : (pendingExpressions = []); - } - function addPrivateIdentifierClassElementToEnvironment(node, name, lex, privateEnv, isStatic2, isValid, previousInfo) { - if (isAutoAccessorPropertyDeclaration(node)) { - addPrivateIdentifierAutoAccessorPropertyDeclarationToEnvironment(node, name, lex, privateEnv, isStatic2, isValid, previousInfo); - } - else if (isPropertyDeclaration(node)) { - addPrivateIdentifierPropertyDeclarationToEnvironment(node, name, lex, privateEnv, isStatic2, isValid, previousInfo); - } - else if (isMethodDeclaration(node)) { - addPrivateIdentifierMethodDeclarationToEnvironment(node, name, lex, privateEnv, isStatic2, isValid, previousInfo); - } - else if (isGetAccessorDeclaration(node)) { - addPrivateIdentifierGetAccessorDeclarationToEnvironment(node, name, lex, privateEnv, isStatic2, isValid, previousInfo); - } - else if (isSetAccessorDeclaration(node)) { - addPrivateIdentifierSetAccessorDeclarationToEnvironment(node, name, lex, privateEnv, isStatic2, isValid, previousInfo); - } - } - function addPrivateIdentifierPropertyDeclarationToEnvironment(_node, name, lex, privateEnv, isStatic2, isValid, _previousInfo) { - var _t; - if (isStatic2) { - var brandCheckIdentifier = Debug.checkDefined((_t = lex.classThis) !== null && _t !== void 0 ? _t : lex.classConstructor, "classConstructor should be set in private identifier environment"); - var variableName = createHoistedVariableForPrivateName(name); - setPrivateIdentifier(privateEnv, name, { - kind: "f" /* Field */, - isStatic: true, - brandCheckIdentifier: brandCheckIdentifier, - variableName: variableName, - isValid: isValid - }); - } - else { - var weakMapName = createHoistedVariableForPrivateName(name); - setPrivateIdentifier(privateEnv, name, { - kind: "f" /* Field */, - isStatic: false, - brandCheckIdentifier: weakMapName, - isValid: isValid - }); - getPendingExpressions().push(factory2.createAssignment(weakMapName, factory2.createNewExpression(factory2.createIdentifier("WeakMap"), - /*typeArguments*/ - void 0, []))); - } - } - function addPrivateIdentifierMethodDeclarationToEnvironment(_node, name, lex, privateEnv, isStatic2, isValid, _previousInfo) { - var _t; - var methodName = createHoistedVariableForPrivateName(name); - var brandCheckIdentifier = isStatic2 ? Debug.checkDefined((_t = lex.classThis) !== null && _t !== void 0 ? _t : lex.classConstructor, "classConstructor should be set in private identifier environment") : Debug.checkDefined(privateEnv.data.weakSetName, "weakSetName should be set in private identifier environment"); - setPrivateIdentifier(privateEnv, name, { - kind: "m" /* Method */, - methodName: methodName, - brandCheckIdentifier: brandCheckIdentifier, - isStatic: isStatic2, - isValid: isValid - }); - } - function addPrivateIdentifierGetAccessorDeclarationToEnvironment(_node, name, lex, privateEnv, isStatic2, isValid, previousInfo) { - var _t; - var getterName = createHoistedVariableForPrivateName(name, "_get"); - var brandCheckIdentifier = isStatic2 ? Debug.checkDefined((_t = lex.classThis) !== null && _t !== void 0 ? _t : lex.classConstructor, "classConstructor should be set in private identifier environment") : Debug.checkDefined(privateEnv.data.weakSetName, "weakSetName should be set in private identifier environment"); - if ((previousInfo == null ? void 0 : previousInfo.kind) === "a" /* Accessor */ && previousInfo.isStatic === isStatic2 && !previousInfo.getterName) { - previousInfo.getterName = getterName; - } - else { - setPrivateIdentifier(privateEnv, name, { - kind: "a" /* Accessor */, - getterName: getterName, - setterName: void 0, - brandCheckIdentifier: brandCheckIdentifier, - isStatic: isStatic2, - isValid: isValid - }); - } - } - function addPrivateIdentifierSetAccessorDeclarationToEnvironment(_node, name, lex, privateEnv, isStatic2, isValid, previousInfo) { - var _t; - var setterName = createHoistedVariableForPrivateName(name, "_set"); - var brandCheckIdentifier = isStatic2 ? Debug.checkDefined((_t = lex.classThis) !== null && _t !== void 0 ? _t : lex.classConstructor, "classConstructor should be set in private identifier environment") : Debug.checkDefined(privateEnv.data.weakSetName, "weakSetName should be set in private identifier environment"); - if ((previousInfo == null ? void 0 : previousInfo.kind) === "a" /* Accessor */ && previousInfo.isStatic === isStatic2 && !previousInfo.setterName) { - previousInfo.setterName = setterName; - } - else { - setPrivateIdentifier(privateEnv, name, { - kind: "a" /* Accessor */, - getterName: void 0, - setterName: setterName, - brandCheckIdentifier: brandCheckIdentifier, - isStatic: isStatic2, - isValid: isValid - }); - } - } - function addPrivateIdentifierAutoAccessorPropertyDeclarationToEnvironment(_node, name, lex, privateEnv, isStatic2, isValid, _previousInfo) { - var _t; - var getterName = createHoistedVariableForPrivateName(name, "_get"); - var setterName = createHoistedVariableForPrivateName(name, "_set"); - var brandCheckIdentifier = isStatic2 ? Debug.checkDefined((_t = lex.classThis) !== null && _t !== void 0 ? _t : lex.classConstructor, "classConstructor should be set in private identifier environment") : Debug.checkDefined(privateEnv.data.weakSetName, "weakSetName should be set in private identifier environment"); - setPrivateIdentifier(privateEnv, name, { - kind: "a" /* Accessor */, - getterName: getterName, - setterName: setterName, - brandCheckIdentifier: brandCheckIdentifier, - isStatic: isStatic2, - isValid: isValid - }); - } - function addPrivateIdentifierToEnvironment(node, name, addDeclaration) { - var lex = getClassLexicalEnvironment(); - var privateEnv = getPrivateIdentifierEnvironment(); - var previousInfo = getPrivateIdentifier(privateEnv, name); - var isStatic2 = hasStaticModifier(node); - var isValid = !isReservedPrivateName(name) && previousInfo === void 0; - addDeclaration(node, name, lex, privateEnv, isStatic2, isValid, previousInfo); - } - function createHoistedVariableForClass(name, node, suffix) { - var className = getPrivateIdentifierEnvironment().data.className; - var prefix = className ? { prefix: "_", node: className, suffix: "_" } : "_"; - var identifier = typeof name === "object" ? factory2.getGeneratedNameForNode(name, 16 /* Optimistic */ | 8 /* ReservedInNestedScopes */, prefix, suffix) : typeof name === "string" ? factory2.createUniqueName(name, 16 /* Optimistic */, prefix, suffix) : factory2.createTempVariable( - /*recordTempVariable*/ - void 0, - /*reservedInNestedScopes*/ - true, prefix, suffix); - if (resolver.getNodeCheckFlags(node) & 32768 /* BlockScopedBindingInLoop */) { - addBlockScopedVariable(identifier); - } - else { - hoistVariableDeclaration(identifier); - } - return identifier; - } - function createHoistedVariableForPrivateName(name, suffix) { - var _t; - var text = tryGetTextOfPropertyName(name); - return createHoistedVariableForClass((_t = (text == null ? void 0 : text.substring(1))) !== null && _t !== void 0 ? _t : name, name, suffix); - } - function accessPrivateIdentifier2(name) { - var info = accessPrivateIdentifier(lexicalEnvironment, name); - return (info == null ? void 0 : info.kind) === "untransformed" ? void 0 : info; - } - function wrapPrivateIdentifierForDestructuringTarget(node) { - var parameter = factory2.getGeneratedNameForNode(node); - var info = accessPrivateIdentifier2(node.name); - if (!info) { - return visitEachChild(node, visitor, context); - } - var receiver = node.expression; - if (isThisProperty(node) || isSuperProperty(node) || !isSimpleCopiableExpression(node.expression)) { - receiver = factory2.createTempVariable(hoistVariableDeclaration, - /*reservedInNestedScopes*/ - true); - getPendingExpressions().push(factory2.createBinaryExpression(receiver, 64 /* EqualsToken */, visitNode(node.expression, visitor, isExpression))); - } - return factory2.createAssignmentTargetWrapper(parameter, createPrivateIdentifierAssignment(info, receiver, parameter, 64 /* EqualsToken */)); - } - function visitDestructuringAssignmentTarget(node) { - if (isObjectLiteralExpression(node) || isArrayLiteralExpression(node)) { - return visitAssignmentPattern(node); - } - if (isPrivateIdentifierPropertyAccessExpression(node)) { - return wrapPrivateIdentifierForDestructuringTarget(node); - } - else if (shouldTransformSuperInStaticInitializers && currentClassElement && isSuperProperty(node) && isStaticPropertyDeclarationOrClassStaticBlock(currentClassElement) && (lexicalEnvironment == null ? void 0 : lexicalEnvironment.data)) { - var _t = lexicalEnvironment.data, classConstructor = _t.classConstructor, superClassReference = _t.superClassReference, facts = _t.facts; - if (facts & 1 /* ClassWasDecorated */) { - return visitInvalidSuperProperty(node); - } - else if (classConstructor && superClassReference) { - var name_82 = isElementAccessExpression(node) ? visitNode(node.argumentExpression, visitor, isExpression) : isIdentifier(node.name) ? factory2.createStringLiteralFromNode(node.name) : void 0; - if (name_82) { - var temp = factory2.createTempVariable( - /*recordTempVariable*/ - void 0); - return factory2.createAssignmentTargetWrapper(temp, factory2.createReflectSetCall(superClassReference, name_82, temp, classConstructor)); - } - } - } - return visitEachChild(node, visitor, context); - } - function visitAssignmentElement(node) { - if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) { - node = transformNamedEvaluation(context, node); - } - if (isAssignmentExpression(node, - /*excludeCompoundAssignment*/ - true)) { - var left = visitDestructuringAssignmentTarget(node.left); - var right = visitNode(node.right, visitor, isExpression); - return factory2.updateBinaryExpression(node, left, node.operatorToken, right); - } - return visitDestructuringAssignmentTarget(node); - } - function visitAssignmentRestElement(node) { - if (isLeftHandSideExpression(node.expression)) { - var expression = visitDestructuringAssignmentTarget(node.expression); - return factory2.updateSpreadElement(node, expression); - } - return visitEachChild(node, visitor, context); - } - function visitArrayAssignmentElement(node) { - if (isArrayBindingOrAssignmentElement(node)) { - if (isSpreadElement(node)) - return visitAssignmentRestElement(node); - if (!isOmittedExpression(node)) - return visitAssignmentElement(node); - } - return visitEachChild(node, visitor, context); - } - function visitAssignmentProperty(node) { - var name = visitNode(node.name, visitor, isPropertyName); - if (isAssignmentExpression(node.initializer, - /*excludeCompoundAssignment*/ - true)) { - var assignmentElement = visitAssignmentElement(node.initializer); - return factory2.updatePropertyAssignment(node, name, assignmentElement); - } - if (isLeftHandSideExpression(node.initializer)) { - var assignmentElement = visitDestructuringAssignmentTarget(node.initializer); - return factory2.updatePropertyAssignment(node, name, assignmentElement); - } - return visitEachChild(node, visitor, context); - } - function visitShorthandAssignmentProperty(node) { - if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) { - node = transformNamedEvaluation(context, node); - } - return visitEachChild(node, visitor, context); - } - function visitAssignmentRestProperty(node) { - if (isLeftHandSideExpression(node.expression)) { - var expression = visitDestructuringAssignmentTarget(node.expression); - return factory2.updateSpreadAssignment(node, expression); - } - return visitEachChild(node, visitor, context); - } - function visitObjectAssignmentElement(node) { - Debug.assertNode(node, isObjectBindingOrAssignmentElement); - if (isSpreadAssignment(node)) - return visitAssignmentRestProperty(node); - if (isShorthandPropertyAssignment(node)) - return visitShorthandAssignmentProperty(node); - if (isPropertyAssignment(node)) - return visitAssignmentProperty(node); - return visitEachChild(node, visitor, context); - } - function visitAssignmentPattern(node) { - if (isArrayLiteralExpression(node)) { - return factory2.updateArrayLiteralExpression(node, visitNodes2(node.elements, visitArrayAssignmentElement, isExpression)); - } - else { - return factory2.updateObjectLiteralExpression(node, visitNodes2(node.properties, visitObjectAssignmentElement, isObjectLiteralElementLike)); - } - } - function onEmitNode(hint, node, emitCallback) { - var original = getOriginalNode(node); - var lex = lexicalEnvironmentMap.get(original); - if (lex) { - var savedLexicalEnvironment = lexicalEnvironment; - var savedPreviousShouldSubstituteThisWithClassThis = previousShouldSubstituteThisWithClassThis; - lexicalEnvironment = lex; - previousShouldSubstituteThisWithClassThis = shouldSubstituteThisWithClassThis; - shouldSubstituteThisWithClassThis = !isClassStaticBlockDeclaration(original) || !(getInternalEmitFlags(original) & 32 /* TransformPrivateStaticElements */); - previousOnEmitNode(hint, node, emitCallback); - shouldSubstituteThisWithClassThis = previousShouldSubstituteThisWithClassThis; - previousShouldSubstituteThisWithClassThis = savedPreviousShouldSubstituteThisWithClassThis; - lexicalEnvironment = savedLexicalEnvironment; - return; - } - switch (node.kind) { - case 218 /* FunctionExpression */: - if (isArrowFunction(original) || getEmitFlags(node) & 524288 /* AsyncFunctionBody */) { - break; - } - case 262 /* FunctionDeclaration */: - case 176 /* Constructor */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - case 174 /* MethodDeclaration */: - case 172 /* PropertyDeclaration */: { - var savedLexicalEnvironment = lexicalEnvironment; - var savedPreviousShouldSubstituteThisWithClassThis = previousShouldSubstituteThisWithClassThis; - lexicalEnvironment = void 0; - previousShouldSubstituteThisWithClassThis = shouldSubstituteThisWithClassThis; - shouldSubstituteThisWithClassThis = false; - previousOnEmitNode(hint, node, emitCallback); - shouldSubstituteThisWithClassThis = previousShouldSubstituteThisWithClassThis; - previousShouldSubstituteThisWithClassThis = savedPreviousShouldSubstituteThisWithClassThis; - lexicalEnvironment = savedLexicalEnvironment; - return; - } - case 167 /* ComputedPropertyName */: { - var savedLexicalEnvironment = lexicalEnvironment; - var savedShouldSubstituteThisWithClassThis = shouldSubstituteThisWithClassThis; - lexicalEnvironment = lexicalEnvironment == null ? void 0 : lexicalEnvironment.previous; - shouldSubstituteThisWithClassThis = previousShouldSubstituteThisWithClassThis; - previousOnEmitNode(hint, node, emitCallback); - shouldSubstituteThisWithClassThis = savedShouldSubstituteThisWithClassThis; - lexicalEnvironment = savedLexicalEnvironment; - return; - } - } - previousOnEmitNode(hint, node, emitCallback); - } - function onSubstituteNode(hint, node) { - node = previousOnSubstituteNode(hint, node); - if (hint === 1 /* Expression */) { - return substituteExpression(node); - } - return node; - } - function substituteExpression(node) { - switch (node.kind) { - case 80 /* Identifier */: - return substituteExpressionIdentifier(node); - case 110 /* ThisKeyword */: - return substituteThisExpression(node); - } - return node; - } - function substituteThisExpression(node) { - if (enabledSubstitutions & 2 /* ClassStaticThisOrSuperReference */ && (lexicalEnvironment == null ? void 0 : lexicalEnvironment.data) && !noSubstitution.has(node)) { - var _t = lexicalEnvironment.data, facts = _t.facts, classConstructor = _t.classConstructor, classThis = _t.classThis; - var substituteThis = shouldSubstituteThisWithClassThis ? classThis !== null && classThis !== void 0 ? classThis : classConstructor : classConstructor; - if (substituteThis) { - return setTextRange(setOriginalNode(factory2.cloneNode(substituteThis), node), node); - } - if (facts & 1 /* ClassWasDecorated */ && legacyDecorators) { - return factory2.createParenthesizedExpression(factory2.createVoidZero()); - } - } - return node; - } - function substituteExpressionIdentifier(node) { - return trySubstituteClassAlias(node) || node; - } - function trySubstituteClassAlias(node) { - if (enabledSubstitutions & 1 /* ClassAliases */) { - if (resolver.getNodeCheckFlags(node) & 536870912 /* ConstructorReference */) { - var declaration = resolver.getReferencedValueDeclaration(node); - if (declaration) { - var classAlias = classAliases[declaration.id]; - if (classAlias) { - var clone2 = factory2.cloneNode(classAlias); - setSourceMapRange(clone2, node); - setCommentRange(clone2, node); - return clone2; - } - } - } - } - return void 0; - } -} -function createPrivateStaticFieldInitializer(factory2, variableName, initializer) { - return factory2.createAssignment(variableName, factory2.createObjectLiteralExpression([ - factory2.createPropertyAssignment("value", initializer || factory2.createVoidZero()) - ])); -} -function createPrivateInstanceFieldInitializer(factory2, receiver, initializer, weakMapName) { - return factory2.createCallExpression(factory2.createPropertyAccessExpression(weakMapName, "set"), - /*typeArguments*/ - void 0, [receiver, initializer || factory2.createVoidZero()]); -} -function createPrivateInstanceMethodInitializer(factory2, receiver, weakSetName) { - return factory2.createCallExpression(factory2.createPropertyAccessExpression(weakSetName, "add"), - /*typeArguments*/ - void 0, [receiver]); -} -function isReservedPrivateName(node) { - return !isGeneratedPrivateIdentifier(node) && node.escapedText === "#constructor"; -} -function isPrivateIdentifierInExpression(node) { - return isPrivateIdentifier(node.left) && node.operatorToken.kind === 103 /* InKeyword */; -} -function isStaticPropertyDeclaration2(node) { - return isPropertyDeclaration(node) && hasStaticModifier(node); -} -function isStaticPropertyDeclarationOrClassStaticBlock(node) { - return isClassStaticBlockDeclaration(node) || isStaticPropertyDeclaration2(node); -} -// src/compiler/transformers/typeSerializer.ts -function createRuntimeTypeSerializer(context) { - var factory2 = context.factory, hoistVariableDeclaration = context.hoistVariableDeclaration; - var resolver = context.getEmitResolver(); - var compilerOptions = context.getCompilerOptions(); - var languageVersion = getEmitScriptTarget(compilerOptions); - var strictNullChecks = getStrictOptionValue(compilerOptions, "strictNullChecks"); - var currentLexicalScope; - var currentNameScope; - return { - serializeTypeNode: function (serializerContext, node) { return setSerializerContextAnd(serializerContext, serializeTypeNode, node); }, - serializeTypeOfNode: function (serializerContext, node) { return setSerializerContextAnd(serializerContext, serializeTypeOfNode, node); }, - serializeParameterTypesOfNode: function (serializerContext, node, container) { return setSerializerContextAnd(serializerContext, serializeParameterTypesOfNode, node, container); }, - serializeReturnTypeOfNode: function (serializerContext, node) { return setSerializerContextAnd(serializerContext, serializeReturnTypeOfNode, node); } - }; - function setSerializerContextAnd(serializerContext, cb, node, arg) { - var savedCurrentLexicalScope = currentLexicalScope; - var savedCurrentNameScope = currentNameScope; - currentLexicalScope = serializerContext.currentLexicalScope; - currentNameScope = serializerContext.currentNameScope; - var result = arg === void 0 ? cb(node) : cb(node, arg); - currentLexicalScope = savedCurrentLexicalScope; - currentNameScope = savedCurrentNameScope; - return result; - } - function getAccessorTypeNode(node) { - var accessors = resolver.getAllAccessorDeclarations(node); - return accessors.setAccessor && getSetAccessorTypeAnnotationNode(accessors.setAccessor) || accessors.getAccessor && getEffectiveReturnTypeNode(accessors.getAccessor); - } - function serializeTypeOfNode(node) { - switch (node.kind) { - case 172 /* PropertyDeclaration */: - case 169 /* Parameter */: - return serializeTypeNode(node.type); - case 178 /* SetAccessor */: - case 177 /* GetAccessor */: - return serializeTypeNode(getAccessorTypeNode(node)); - case 263 /* ClassDeclaration */: - case 231 /* ClassExpression */: - case 174 /* MethodDeclaration */: - return factory2.createIdentifier("Function"); - default: - return factory2.createVoidZero(); - } - } - function serializeParameterTypesOfNode(node, container) { - var valueDeclaration = isClassLike(node) ? getFirstConstructorWithBody(node) : isFunctionLike(node) && nodeIsPresent(node.body) ? node : void 0; - var expressions = []; - if (valueDeclaration) { - var parameters = getParametersOfDecoratedDeclaration(valueDeclaration, container); - var numParameters = parameters.length; - for (var i = 0; i < numParameters; i++) { - var parameter = parameters[i]; - if (i === 0 && isIdentifier(parameter.name) && parameter.name.escapedText === "this") { - continue; - } - if (parameter.dotDotDotToken) { - expressions.push(serializeTypeNode(getRestParameterElementType(parameter.type))); - } - else { - expressions.push(serializeTypeOfNode(parameter)); - } - } - } - return factory2.createArrayLiteralExpression(expressions); - } - function getParametersOfDecoratedDeclaration(node, container) { - if (container && node.kind === 177 /* GetAccessor */) { - var setAccessor = getAllAccessorDeclarations(container.members, node).setAccessor; - if (setAccessor) { - return setAccessor.parameters; - } - } - return node.parameters; - } - function serializeReturnTypeOfNode(node) { - if (isFunctionLike(node) && node.type) { - return serializeTypeNode(node.type); - } - else if (isAsyncFunction(node)) { - return factory2.createIdentifier("Promise"); - } - return factory2.createVoidZero(); - } - function serializeTypeNode(node) { - if (node === void 0) { - return factory2.createIdentifier("Object"); - } - node = skipTypeParentheses(node); - switch (node.kind) { - case 116 /* VoidKeyword */: - case 157 /* UndefinedKeyword */: - case 146 /* NeverKeyword */: - return factory2.createVoidZero(); - case 184 /* FunctionType */: - case 185 /* ConstructorType */: - return factory2.createIdentifier("Function"); - case 188 /* ArrayType */: - case 189 /* TupleType */: - return factory2.createIdentifier("Array"); - case 182 /* TypePredicate */: - return node.assertsModifier ? factory2.createVoidZero() : factory2.createIdentifier("Boolean"); - case 136 /* BooleanKeyword */: - return factory2.createIdentifier("Boolean"); - case 203 /* TemplateLiteralType */: - case 154 /* StringKeyword */: - return factory2.createIdentifier("String"); - case 151 /* ObjectKeyword */: - return factory2.createIdentifier("Object"); - case 201 /* LiteralType */: - return serializeLiteralOfLiteralTypeNode(node.literal); - case 150 /* NumberKeyword */: - return factory2.createIdentifier("Number"); - case 163 /* BigIntKeyword */: - return getGlobalConstructor("BigInt", 7 /* ES2020 */); - case 155 /* SymbolKeyword */: - return getGlobalConstructor("Symbol", 2 /* ES2015 */); - case 183 /* TypeReference */: - return serializeTypeReferenceNode(node); - case 193 /* IntersectionType */: - return serializeUnionOrIntersectionConstituents(node.types, - /*isIntersection*/ - true); - case 192 /* UnionType */: - return serializeUnionOrIntersectionConstituents(node.types, - /*isIntersection*/ - false); - case 194 /* ConditionalType */: - return serializeUnionOrIntersectionConstituents([node.trueType, node.falseType], - /*isIntersection*/ - false); - case 198 /* TypeOperator */: - if (node.operator === 148 /* ReadonlyKeyword */) { - return serializeTypeNode(node.type); - } - break; - case 186 /* TypeQuery */: - case 199 /* IndexedAccessType */: - case 200 /* MappedType */: - case 187 /* TypeLiteral */: - case 133 /* AnyKeyword */: - case 159 /* UnknownKeyword */: - case 197 /* ThisType */: - case 205 /* ImportType */: - break; - case 319 /* JSDocAllType */: - case 320 /* JSDocUnknownType */: - case 324 /* JSDocFunctionType */: - case 325 /* JSDocVariadicType */: - case 326 /* JSDocNamepathType */: - break; - case 321 /* JSDocNullableType */: - case 322 /* JSDocNonNullableType */: - case 323 /* JSDocOptionalType */: - return serializeTypeNode(node.type); - default: - return Debug.failBadSyntaxKind(node); - } - return factory2.createIdentifier("Object"); - } - function serializeLiteralOfLiteralTypeNode(node) { - switch (node.kind) { - case 11 /* StringLiteral */: - case 15 /* NoSubstitutionTemplateLiteral */: - return factory2.createIdentifier("String"); - case 224 /* PrefixUnaryExpression */: { - var operand = node.operand; - switch (operand.kind) { - case 9 /* NumericLiteral */: - case 10 /* BigIntLiteral */: - return serializeLiteralOfLiteralTypeNode(operand); - default: - return Debug.failBadSyntaxKind(operand); - } - } - case 9 /* NumericLiteral */: - return factory2.createIdentifier("Number"); - case 10 /* BigIntLiteral */: - return getGlobalConstructor("BigInt", 7 /* ES2020 */); - case 112 /* TrueKeyword */: - case 97 /* FalseKeyword */: - return factory2.createIdentifier("Boolean"); - case 106 /* NullKeyword */: - return factory2.createVoidZero(); - default: - return Debug.failBadSyntaxKind(node); - } - } - function serializeUnionOrIntersectionConstituents(types, isIntersection) { - var e_472, _t; - var serializedType; - try { - for (var types_21 = __values(types), types_21_1 = types_21.next(); !types_21_1.done; types_21_1 = types_21.next()) { - var typeNode = types_21_1.value; - typeNode = skipTypeParentheses(typeNode); - if (typeNode.kind === 146 /* NeverKeyword */) { - if (isIntersection) - return factory2.createVoidZero(); - continue; - } - if (typeNode.kind === 159 /* UnknownKeyword */) { - if (!isIntersection) - return factory2.createIdentifier("Object"); - continue; - } - if (typeNode.kind === 133 /* AnyKeyword */) { - return factory2.createIdentifier("Object"); - } - if (!strictNullChecks && (isLiteralTypeNode(typeNode) && typeNode.literal.kind === 106 /* NullKeyword */ || typeNode.kind === 157 /* UndefinedKeyword */)) { - continue; - } - var serializedConstituent = serializeTypeNode(typeNode); - if (isIdentifier(serializedConstituent) && serializedConstituent.escapedText === "Object") { - return serializedConstituent; - } - if (serializedType) { - if (!equateSerializedTypeNodes(serializedType, serializedConstituent)) { - return factory2.createIdentifier("Object"); - } - } - else { - serializedType = serializedConstituent; - } - } - } - catch (e_472_1) { e_472 = { error: e_472_1 }; } - finally { - try { - if (types_21_1 && !types_21_1.done && (_t = types_21.return)) _t.call(types_21); - } - finally { if (e_472) throw e_472.error; } - } - return serializedType !== null && serializedType !== void 0 ? serializedType : factory2.createVoidZero(); - } - function equateSerializedTypeNodes(left, right) { - return ( - // temp vars used in fallback - isGeneratedIdentifier(left) ? isGeneratedIdentifier(right) : ( - // entity names - isIdentifier(left) ? isIdentifier(right) && left.escapedText === right.escapedText : isPropertyAccessExpression(left) ? isPropertyAccessExpression(right) && equateSerializedTypeNodes(left.expression, right.expression) && equateSerializedTypeNodes(left.name, right.name) : ( - // `void 0` - isVoidExpression(left) ? isVoidExpression(right) && isNumericLiteral(left.expression) && left.expression.text === "0" && isNumericLiteral(right.expression) && right.expression.text === "0" : ( - // `"undefined"` or `"function"` in `typeof` checks - isStringLiteral(left) ? isStringLiteral(right) && left.text === right.text : ( - // used in `typeof` checks for fallback - isTypeOfExpression(left) ? isTypeOfExpression(right) && equateSerializedTypeNodes(left.expression, right.expression) : ( - // parens in `typeof` checks with temps - isParenthesizedExpression(left) ? isParenthesizedExpression(right) && equateSerializedTypeNodes(left.expression, right.expression) : ( - // conditionals used in fallback - isConditionalExpression(left) ? isConditionalExpression(right) && equateSerializedTypeNodes(left.condition, right.condition) && equateSerializedTypeNodes(left.whenTrue, right.whenTrue) && equateSerializedTypeNodes(left.whenFalse, right.whenFalse) : ( - // logical binary and assignments used in fallback - isBinaryExpression(left) ? isBinaryExpression(right) && left.operatorToken.kind === right.operatorToken.kind && equateSerializedTypeNodes(left.left, right.left) && equateSerializedTypeNodes(left.right, right.right) : false)))))))); - } - function serializeTypeReferenceNode(node) { - var kind = resolver.getTypeReferenceSerializationKind(node.typeName, currentNameScope !== null && currentNameScope !== void 0 ? currentNameScope : currentLexicalScope); - switch (kind) { - case 0 /* Unknown */: - if (findAncestor(node, function (n) { return n.parent && isConditionalTypeNode(n.parent) && (n.parent.trueType === n || n.parent.falseType === n); })) { - return factory2.createIdentifier("Object"); - } - var serialized = serializeEntityNameAsExpressionFallback(node.typeName); - var temp = factory2.createTempVariable(hoistVariableDeclaration); - return factory2.createConditionalExpression(factory2.createTypeCheck(factory2.createAssignment(temp, serialized), "function"), - /*questionToken*/ - void 0, temp, - /*colonToken*/ - void 0, factory2.createIdentifier("Object")); - case 1 /* TypeWithConstructSignatureAndValue */: - return serializeEntityNameAsExpression(node.typeName); - case 2 /* VoidNullableOrNeverType */: - return factory2.createVoidZero(); - case 4 /* BigIntLikeType */: - return getGlobalConstructor("BigInt", 7 /* ES2020 */); - case 6 /* BooleanType */: - return factory2.createIdentifier("Boolean"); - case 3 /* NumberLikeType */: - return factory2.createIdentifier("Number"); - case 5 /* StringLikeType */: - return factory2.createIdentifier("String"); - case 7 /* ArrayLikeType */: - return factory2.createIdentifier("Array"); - case 8 /* ESSymbolType */: - return getGlobalConstructor("Symbol", 2 /* ES2015 */); - case 10 /* TypeWithCallSignature */: - return factory2.createIdentifier("Function"); - case 9 /* Promise */: - return factory2.createIdentifier("Promise"); - case 11 /* ObjectType */: - return factory2.createIdentifier("Object"); - default: - return Debug.assertNever(kind); - } - } - function createCheckedValue(left, right) { - return factory2.createLogicalAnd(factory2.createStrictInequality(factory2.createTypeOfExpression(left), factory2.createStringLiteral("undefined")), right); - } - function serializeEntityNameAsExpressionFallback(node) { - if (node.kind === 80 /* Identifier */) { - var copied = serializeEntityNameAsExpression(node); - return createCheckedValue(copied, copied); - } - if (node.left.kind === 80 /* Identifier */) { - return createCheckedValue(serializeEntityNameAsExpression(node.left), serializeEntityNameAsExpression(node)); - } - var left = serializeEntityNameAsExpressionFallback(node.left); - var temp = factory2.createTempVariable(hoistVariableDeclaration); - return factory2.createLogicalAnd(factory2.createLogicalAnd(left.left, factory2.createStrictInequality(factory2.createAssignment(temp, left.right), factory2.createVoidZero())), factory2.createPropertyAccessExpression(temp, node.right)); - } - function serializeEntityNameAsExpression(node) { - switch (node.kind) { - case 80 /* Identifier */: - var name_83 = setParent(setTextRange(parseNodeFactory.cloneNode(node), node), node.parent); - name_83.original = void 0; - setParent(name_83, getParseTreeNode(currentLexicalScope)); - return name_83; - case 166 /* QualifiedName */: - return serializeQualifiedNameAsExpression(node); - } - } - function serializeQualifiedNameAsExpression(node) { - return factory2.createPropertyAccessExpression(serializeEntityNameAsExpression(node.left), node.right); - } - function getGlobalConstructorWithFallback(name) { - return factory2.createConditionalExpression(factory2.createTypeCheck(factory2.createIdentifier(name), "function"), - /*questionToken*/ - void 0, factory2.createIdentifier(name), - /*colonToken*/ - void 0, factory2.createIdentifier("Object")); - } - function getGlobalConstructor(name, minLanguageVersion) { - return languageVersion < minLanguageVersion ? getGlobalConstructorWithFallback(name) : factory2.createIdentifier(name); - } -} -// src/compiler/transformers/legacyDecorators.ts -function transformLegacyDecorators(context) { - var factory2 = context.factory, emitHelpers = context.getEmitHelperFactory, hoistVariableDeclaration = context.hoistVariableDeclaration; - var resolver = context.getEmitResolver(); - var compilerOptions = context.getCompilerOptions(); - var languageVersion = getEmitScriptTarget(compilerOptions); - var previousOnSubstituteNode = context.onSubstituteNode; - context.onSubstituteNode = onSubstituteNode; - var classAliases; - return chainBundle(context, transformSourceFile); - function transformSourceFile(node) { - var visited = visitEachChild(node, visitor, context); - addEmitHelpers(visited, context.readEmitHelpers()); - return visited; - } - function modifierVisitor(node) { - return isDecorator(node) ? void 0 : node; - } - function visitor(node) { - if (!(node.transformFlags & 33554432 /* ContainsDecorators */)) { - return node; - } - switch (node.kind) { - case 170 /* Decorator */: - return void 0; - case 263 /* ClassDeclaration */: - return visitClassDeclaration(node); - case 231 /* ClassExpression */: - return visitClassExpression(node); - case 176 /* Constructor */: - return visitConstructorDeclaration(node); - case 174 /* MethodDeclaration */: - return visitMethodDeclaration(node); - case 178 /* SetAccessor */: - return visitSetAccessorDeclaration(node); - case 177 /* GetAccessor */: - return visitGetAccessorDeclaration(node); - case 172 /* PropertyDeclaration */: - return visitPropertyDeclaration(node); - case 169 /* Parameter */: - return visitParameterDeclaration(node); - default: - return visitEachChild(node, visitor, context); - } - } - function visitClassDeclaration(node) { - if (!(classOrConstructorParameterIsDecorated( - /*useLegacyDecorators*/ - true, node) || childIsDecorated( - /*useLegacyDecorators*/ - true, node))) { - return visitEachChild(node, visitor, context); - } - var statements = classOrConstructorParameterIsDecorated( - /*useLegacyDecorators*/ - true, node) ? transformClassDeclarationWithClassDecorators(node, node.name) : transformClassDeclarationWithoutClassDecorators(node, node.name); - return singleOrMany(statements); - } - function decoratorContainsPrivateIdentifierInExpression(decorator) { - return !!(decorator.transformFlags & 536870912 /* ContainsPrivateIdentifierInExpression */); - } - function parameterDecoratorsContainPrivateIdentifierInExpression(parameterDecorators) { - return some(parameterDecorators, decoratorContainsPrivateIdentifierInExpression); - } - function hasClassElementWithDecoratorContainingPrivateIdentifierInExpression(node) { - var e_473, _t; - try { - for (var _u = __values(node.members), _v = _u.next(); !_v.done; _v = _u.next()) { - var member = _v.value; - if (!canHaveDecorators(member)) - continue; - var allDecorators = getAllDecoratorsOfClassElement(member, node, - /*useLegacyDecorators*/ - true); - if (some(allDecorators == null ? void 0 : allDecorators.decorators, decoratorContainsPrivateIdentifierInExpression)) - return true; - if (some(allDecorators == null ? void 0 : allDecorators.parameters, parameterDecoratorsContainPrivateIdentifierInExpression)) - return true; - } - } - catch (e_473_1) { e_473 = { error: e_473_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_473) throw e_473.error; } - } - return false; - } - function transformDecoratorsOfClassElements(node, members) { - var decorationStatements = []; - addClassElementDecorationStatements(decorationStatements, node, - /*isStatic*/ - false); - addClassElementDecorationStatements(decorationStatements, node, - /*isStatic*/ - true); - if (hasClassElementWithDecoratorContainingPrivateIdentifierInExpression(node)) { - members = setTextRange(factory2.createNodeArray(__spreadArray(__spreadArray([], __read(members), false), [ - factory2.createClassStaticBlockDeclaration(factory2.createBlock(decorationStatements, - /*multiLine*/ - true)) - ], false)), members); - decorationStatements = void 0; - } - return { decorationStatements: decorationStatements, members: members }; - } - function transformClassDeclarationWithoutClassDecorators(node, name) { - var _t; - var modifiers = visitNodes2(node.modifiers, modifierVisitor, isModifier); - var heritageClauses = visitNodes2(node.heritageClauses, visitor, isHeritageClause); - var members = visitNodes2(node.members, visitor, isClassElement); - var decorationStatements = []; - (_t = transformDecoratorsOfClassElements(node, members), members = _t.members, decorationStatements = _t.decorationStatements); - var updated = factory2.updateClassDeclaration(node, modifiers, name, - /*typeParameters*/ - void 0, heritageClauses, members); - return addRange([updated], decorationStatements); - } - function transformClassDeclarationWithClassDecorators(node, name) { - var _t; - var isExport = hasSyntacticModifier(node, 1 /* Export */); - var isDefault = hasSyntacticModifier(node, 1024 /* Default */); - var modifiers = visitNodes2(node.modifiers, function (node2) { return isExportOrDefaultModifier(node2) || isDecorator(node2) ? void 0 : node2; }, isModifierLike); - var location = moveRangePastModifiers(node); - var classAlias = getClassAliasIfNeeded(node); - var declName = languageVersion < 2 /* ES2015 */ ? factory2.getInternalName(node, - /*allowComments*/ - false, - /*allowSourceMaps*/ - true) : factory2.getLocalName(node, - /*allowComments*/ - false, - /*allowSourceMaps*/ - true); - var heritageClauses = visitNodes2(node.heritageClauses, visitor, isHeritageClause); - var members = visitNodes2(node.members, visitor, isClassElement); - var decorationStatements = []; - (_t = transformDecoratorsOfClassElements(node, members), members = _t.members, decorationStatements = _t.decorationStatements); - var assignClassAliasInStaticBlock = languageVersion >= 9 /* ES2022 */ && !!classAlias && some(members, function (member) { return isPropertyDeclaration(member) && hasSyntacticModifier(member, 32 /* Static */) || isClassStaticBlockDeclaration(member); }); - if (assignClassAliasInStaticBlock) { - members = setTextRange(factory2.createNodeArray(__spreadArray([ - factory2.createClassStaticBlockDeclaration(factory2.createBlock([ - factory2.createExpressionStatement(factory2.createAssignment(classAlias, factory2.createThis())) - ])) - ], __read(members), false)), members); - } - var classExpression = factory2.createClassExpression(modifiers, name && isGeneratedIdentifier(name) ? void 0 : name, - /*typeParameters*/ - void 0, heritageClauses, members); - setOriginalNode(classExpression, node); - setTextRange(classExpression, location); - var varInitializer = classAlias && !assignClassAliasInStaticBlock ? factory2.createAssignment(classAlias, classExpression) : classExpression; - var varDecl = factory2.createVariableDeclaration(declName, - /*exclamationToken*/ - void 0, - /*type*/ - void 0, varInitializer); - setOriginalNode(varDecl, node); - var varDeclList = factory2.createVariableDeclarationList([varDecl], 1 /* Let */); - var varStatement = factory2.createVariableStatement( - /*modifiers*/ - void 0, varDeclList); - setOriginalNode(varStatement, node); - setTextRange(varStatement, location); - setCommentRange(varStatement, node); - var statements = [varStatement]; - addRange(statements, decorationStatements); - addConstructorDecorationStatement(statements, node); - if (isExport) { - if (isDefault) { - var exportStatement = factory2.createExportDefault(declName); - statements.push(exportStatement); - } - else { - var exportStatement = factory2.createExternalModuleExport(factory2.getDeclarationName(node)); - statements.push(exportStatement); - } - } - return statements; - } - function visitClassExpression(node) { - return factory2.updateClassExpression(node, visitNodes2(node.modifiers, modifierVisitor, isModifier), node.name, - /*typeParameters*/ - void 0, visitNodes2(node.heritageClauses, visitor, isHeritageClause), visitNodes2(node.members, visitor, isClassElement)); - } - function visitConstructorDeclaration(node) { - return factory2.updateConstructorDeclaration(node, visitNodes2(node.modifiers, modifierVisitor, isModifier), visitNodes2(node.parameters, visitor, isParameter), visitNode(node.body, visitor, isBlock)); - } - function finishClassElement(updated, original) { - if (updated !== original) { - setCommentRange(updated, original); - setSourceMapRange(updated, moveRangePastModifiers(original)); - } - return updated; - } - function visitMethodDeclaration(node) { - return finishClassElement(factory2.updateMethodDeclaration(node, visitNodes2(node.modifiers, modifierVisitor, isModifier), node.asteriskToken, Debug.checkDefined(visitNode(node.name, visitor, isPropertyName)), - /*questionToken*/ - void 0, - /*typeParameters*/ - void 0, visitNodes2(node.parameters, visitor, isParameter), - /*type*/ - void 0, visitNode(node.body, visitor, isBlock)), node); - } - function visitGetAccessorDeclaration(node) { - return finishClassElement(factory2.updateGetAccessorDeclaration(node, visitNodes2(node.modifiers, modifierVisitor, isModifier), Debug.checkDefined(visitNode(node.name, visitor, isPropertyName)), visitNodes2(node.parameters, visitor, isParameter), - /*type*/ - void 0, visitNode(node.body, visitor, isBlock)), node); - } - function visitSetAccessorDeclaration(node) { - return finishClassElement(factory2.updateSetAccessorDeclaration(node, visitNodes2(node.modifiers, modifierVisitor, isModifier), Debug.checkDefined(visitNode(node.name, visitor, isPropertyName)), visitNodes2(node.parameters, visitor, isParameter), visitNode(node.body, visitor, isBlock)), node); - } - function visitPropertyDeclaration(node) { - if (node.flags & 33554432 /* Ambient */ || hasSyntacticModifier(node, 2 /* Ambient */)) { - return void 0; - } - return finishClassElement(factory2.updatePropertyDeclaration(node, visitNodes2(node.modifiers, modifierVisitor, isModifier), Debug.checkDefined(visitNode(node.name, visitor, isPropertyName)), - /*questionOrExclamationToken*/ - void 0, - /*type*/ - void 0, visitNode(node.initializer, visitor, isExpression)), node); - } - function visitParameterDeclaration(node) { - var updated = factory2.updateParameterDeclaration(node, elideNodes(factory2, node.modifiers), node.dotDotDotToken, Debug.checkDefined(visitNode(node.name, visitor, isBindingName)), - /*questionToken*/ - void 0, - /*type*/ - void 0, visitNode(node.initializer, visitor, isExpression)); - if (updated !== node) { - setCommentRange(updated, node); - setTextRange(updated, moveRangePastModifiers(node)); - setSourceMapRange(updated, moveRangePastModifiers(node)); - setEmitFlags(updated.name, 64 /* NoTrailingSourceMap */); - } - return updated; - } - function isSyntheticMetadataDecorator(node) { - return isCallToHelper(node.expression, "___metadata"); - } - function transformAllDecoratorsOfDeclaration(allDecorators) { - if (!allDecorators) { - return void 0; - } - var _t = groupBy(allDecorators.decorators, isSyntheticMetadataDecorator), decorators = _t.false, metadata = _t.true; - var decoratorExpressions = []; - addRange(decoratorExpressions, map(decorators, transformDecorator)); - addRange(decoratorExpressions, flatMap(allDecorators.parameters, transformDecoratorsOfParameter)); - addRange(decoratorExpressions, map(metadata, transformDecorator)); - return decoratorExpressions; - } - function addClassElementDecorationStatements(statements, node, isStatic2) { - addRange(statements, map(generateClassElementDecorationExpressions(node, isStatic2), function (expr) { return factory2.createExpressionStatement(expr); })); - } - function isDecoratedClassElement(member, isStaticElement, parent2) { - return nodeOrChildIsDecorated( - /*useLegacyDecorators*/ - true, member, parent2) && isStaticElement === isStatic(member); - } - function getDecoratedClassElements(node, isStatic2) { - return filter(node.members, function (m) { return isDecoratedClassElement(m, isStatic2, node); }); - } - function generateClassElementDecorationExpressions(node, isStatic2) { - var e_474, _t; - var members = getDecoratedClassElements(node, isStatic2); - var expressions; - try { - for (var members_6 = __values(members), members_6_1 = members_6.next(); !members_6_1.done; members_6_1 = members_6.next()) { - var member = members_6_1.value; - expressions = append(expressions, generateClassElementDecorationExpression(node, member)); - } - } - catch (e_474_1) { e_474 = { error: e_474_1 }; } - finally { - try { - if (members_6_1 && !members_6_1.done && (_t = members_6.return)) _t.call(members_6); - } - finally { if (e_474) throw e_474.error; } - } - return expressions; - } - function generateClassElementDecorationExpression(node, member) { - var allDecorators = getAllDecoratorsOfClassElement(member, node, - /*useLegacyDecorators*/ - true); - var decoratorExpressions = transformAllDecoratorsOfDeclaration(allDecorators); - if (!decoratorExpressions) { - return void 0; - } - var prefix = getClassMemberPrefix(node, member); - var memberName = getExpressionForPropertyName(member, - /*generateNameForComputedPropertyName*/ - !hasSyntacticModifier(member, 2 /* Ambient */)); - var descriptor = languageVersion > 0 /* ES3 */ ? isPropertyDeclaration(member) && !hasAccessorModifier(member) ? factory2.createVoidZero() : factory2.createNull() : void 0; - var helper = emitHelpers().createDecorateHelper(decoratorExpressions, prefix, memberName, descriptor); - setEmitFlags(helper, 3072 /* NoComments */); - setSourceMapRange(helper, moveRangePastModifiers(member)); - return helper; - } - function addConstructorDecorationStatement(statements, node) { - var expression = generateConstructorDecorationExpression(node); - if (expression) { - statements.push(setOriginalNode(factory2.createExpressionStatement(expression), node)); - } - } - function generateConstructorDecorationExpression(node) { - var allDecorators = getAllDecoratorsOfClass(node); - var decoratorExpressions = transformAllDecoratorsOfDeclaration(allDecorators); - if (!decoratorExpressions) { - return void 0; - } - var classAlias = classAliases && classAliases[getOriginalNodeId(node)]; - var localName = languageVersion < 2 /* ES2015 */ ? factory2.getInternalName(node, - /*allowComments*/ - false, - /*allowSourceMaps*/ - true) : factory2.getDeclarationName(node, - /*allowComments*/ - false, - /*allowSourceMaps*/ - true); - var decorate = emitHelpers().createDecorateHelper(decoratorExpressions, localName); - var expression = factory2.createAssignment(localName, classAlias ? factory2.createAssignment(classAlias, decorate) : decorate); - setEmitFlags(expression, 3072 /* NoComments */); - setSourceMapRange(expression, moveRangePastModifiers(node)); - return expression; - } - function transformDecorator(decorator) { - return Debug.checkDefined(visitNode(decorator.expression, visitor, isExpression)); - } - function transformDecoratorsOfParameter(decorators, parameterOffset) { - var e_475, _t; - var expressions; - if (decorators) { - expressions = []; - try { - for (var decorators_1 = __values(decorators), decorators_1_1 = decorators_1.next(); !decorators_1_1.done; decorators_1_1 = decorators_1.next()) { - var decorator = decorators_1_1.value; - var helper = emitHelpers().createParamHelper(transformDecorator(decorator), parameterOffset); - setTextRange(helper, decorator.expression); - setEmitFlags(helper, 3072 /* NoComments */); - expressions.push(helper); - } - } - catch (e_475_1) { e_475 = { error: e_475_1 }; } - finally { - try { - if (decorators_1_1 && !decorators_1_1.done && (_t = decorators_1.return)) _t.call(decorators_1); - } - finally { if (e_475) throw e_475.error; } - } - } - return expressions; - } - function getExpressionForPropertyName(member, generateNameForComputedPropertyName) { - var name = member.name; - if (isPrivateIdentifier(name)) { - return factory2.createIdentifier(""); - } - else if (isComputedPropertyName(name)) { - return generateNameForComputedPropertyName && !isSimpleInlineableExpression(name.expression) ? factory2.getGeneratedNameForNode(name) : name.expression; - } - else if (isIdentifier(name)) { - return factory2.createStringLiteral(idText(name)); - } - else { - return factory2.cloneNode(name); - } - } - function enableSubstitutionForClassAliases() { - if (!classAliases) { - context.enableSubstitution(80 /* Identifier */); - classAliases = []; - } - } - function getClassAliasIfNeeded(node) { - if (resolver.getNodeCheckFlags(node) & 262144 /* ContainsConstructorReference */) { - enableSubstitutionForClassAliases(); - var classAlias = factory2.createUniqueName(node.name && !isGeneratedIdentifier(node.name) ? idText(node.name) : "default"); - classAliases[getOriginalNodeId(node)] = classAlias; - hoistVariableDeclaration(classAlias); - return classAlias; - } - } - function getClassPrototype(node) { - return factory2.createPropertyAccessExpression(factory2.getDeclarationName(node), "prototype"); - } - function getClassMemberPrefix(node, member) { - return isStatic(member) ? factory2.getDeclarationName(node) : getClassPrototype(node); - } - function onSubstituteNode(hint, node) { - node = previousOnSubstituteNode(hint, node); - if (hint === 1 /* Expression */) { - return substituteExpression(node); - } - return node; - } - function substituteExpression(node) { - switch (node.kind) { - case 80 /* Identifier */: - return substituteExpressionIdentifier(node); - } - return node; - } - function substituteExpressionIdentifier(node) { - var _t; - return (_t = trySubstituteClassAlias(node)) !== null && _t !== void 0 ? _t : node; - } - function trySubstituteClassAlias(node) { - if (classAliases) { - if (resolver.getNodeCheckFlags(node) & 536870912 /* ConstructorReference */) { - var declaration = resolver.getReferencedValueDeclaration(node); - if (declaration) { - var classAlias = classAliases[declaration.id]; - if (classAlias) { - var clone2 = factory2.cloneNode(classAlias); - setSourceMapRange(clone2, node); - setCommentRange(clone2, node); - return clone2; - } - } - } - } - return void 0; - } -} -// src/compiler/transformers/esDecorators.ts -function transformESDecorators(context) { - var factory2 = context.factory, emitHelpers = context.getEmitHelperFactory, startLexicalEnvironment = context.startLexicalEnvironment, endLexicalEnvironment = context.endLexicalEnvironment, hoistVariableDeclaration = context.hoistVariableDeclaration; - var languageVersion = getEmitScriptTarget(context.getCompilerOptions()); - var top; - var classInfo; - var classThis; - var classSuper; - var pendingExpressions; - var shouldTransformPrivateStaticElementsInFile; - return chainBundle(context, transformSourceFile); - function transformSourceFile(node) { - top = void 0; - shouldTransformPrivateStaticElementsInFile = false; - var visited = visitEachChild(node, visitor, context); - addEmitHelpers(visited, context.readEmitHelpers()); - if (shouldTransformPrivateStaticElementsInFile) { - addInternalEmitFlags(visited, 32 /* TransformPrivateStaticElements */); - shouldTransformPrivateStaticElementsInFile = false; - } - return visited; - } - function updateState() { - classInfo = void 0; - classThis = void 0; - classSuper = void 0; - switch (top == null ? void 0 : top.kind) { - case "class": - classInfo = top.classInfo; - break; - case "class-element": - classInfo = top.next.classInfo; - classThis = top.classThis; - classSuper = top.classSuper; - break; - case "name": - var grandparent = top.next.next.next; - if ((grandparent == null ? void 0 : grandparent.kind) === "class-element") { - classInfo = grandparent.next.classInfo; - classThis = grandparent.classThis; - classSuper = grandparent.classSuper; - } - break; - } - } - function enterClass(classInfo2) { - top = { kind: "class", next: top, classInfo: classInfo2, savedPendingExpressions: pendingExpressions }; - pendingExpressions = void 0; - updateState(); - } - function exitClass() { - Debug.assert((top == null ? void 0 : top.kind) === "class", "Incorrect value for top.kind.", function () { return "Expected top.kind to be 'class' but got '".concat(top == null ? void 0 : top.kind, "' instead."); }); - pendingExpressions = top.savedPendingExpressions; - top = top.next; - updateState(); - } - function enterClassElement(node) { - var _a, _b; - Debug.assert((top == null ? void 0 : top.kind) === "class", "Incorrect value for top.kind.", function () { return "Expected top.kind to be 'class' but got '".concat(top == null ? void 0 : top.kind, "' instead."); }); - top = { kind: "class-element", next: top }; - if (isClassStaticBlockDeclaration(node) || isPropertyDeclaration(node) && hasStaticModifier(node)) { - top.classThis = (_a = top.next.classInfo) == null ? void 0 : _a.classThis; - top.classSuper = (_b = top.next.classInfo) == null ? void 0 : _b.classSuper; - } - updateState(); - } - function exitClassElement() { - var _a; - Debug.assert((top == null ? void 0 : top.kind) === "class-element", "Incorrect value for top.kind.", function () { return "Expected top.kind to be 'class-element' but got '".concat(top == null ? void 0 : top.kind, "' instead."); }); - Debug.assert(((_a = top.next) == null ? void 0 : _a.kind) === "class", "Incorrect value for top.next.kind.", function () { - var _a2; - return "Expected top.next.kind to be 'class' but got '".concat((_a2 = top.next) == null ? void 0 : _a2.kind, "' instead."); - }); - top = top.next; - updateState(); - } - function enterName() { - Debug.assert((top == null ? void 0 : top.kind) === "class-element", "Incorrect value for top.kind.", function () { return "Expected top.kind to be 'class-element' but got '".concat(top == null ? void 0 : top.kind, "' instead."); }); - top = { kind: "name", next: top }; - updateState(); - } - function exitName() { - Debug.assert((top == null ? void 0 : top.kind) === "name", "Incorrect value for top.kind.", function () { return "Expected top.kind to be 'name' but got '".concat(top == null ? void 0 : top.kind, "' instead."); }); - top = top.next; - updateState(); - } - function enterOther() { - if ((top == null ? void 0 : top.kind) === "other") { - Debug.assert(!pendingExpressions); - top.depth++; - } - else { - top = { kind: "other", next: top, depth: 0, savedPendingExpressions: pendingExpressions }; - pendingExpressions = void 0; - updateState(); - } - } - function exitOther() { - Debug.assert((top == null ? void 0 : top.kind) === "other", "Incorrect value for top.kind.", function () { return "Expected top.kind to be 'other' but got '".concat(top == null ? void 0 : top.kind, "' instead."); }); - if (top.depth > 0) { - Debug.assert(!pendingExpressions); - top.depth--; - } - else { - pendingExpressions = top.savedPendingExpressions; - top = top.next; - updateState(); - } - } - function shouldVisitNode(node) { - return !!(node.transformFlags & 33554432 /* ContainsDecorators */) || !!classThis && !!(node.transformFlags & 16384 /* ContainsLexicalThis */) || !!classThis && !!classSuper && !!(node.transformFlags & 134217728 /* ContainsLexicalSuper */); - } - function visitor(node) { - if (!shouldVisitNode(node)) { - return node; - } - switch (node.kind) { - case 170 /* Decorator */: - return Debug.fail("Use `modifierVisitor` instead."); - case 263 /* ClassDeclaration */: - return visitClassDeclaration(node); - case 231 /* ClassExpression */: - return visitClassExpression(node); - case 176 /* Constructor */: - case 172 /* PropertyDeclaration */: - case 175 /* ClassStaticBlockDeclaration */: - return Debug.fail("Not supported outside of a class. Use 'classElementVisitor' instead."); - case 169 /* Parameter */: - return visitParameterDeclaration(node); - case 226 /* BinaryExpression */: - return visitBinaryExpression(node, - /*discarded*/ - false); - case 303 /* PropertyAssignment */: - return visitPropertyAssignment(node); - case 260 /* VariableDeclaration */: - return visitVariableDeclaration(node); - case 208 /* BindingElement */: - return visitBindingElement(node); - case 277 /* ExportAssignment */: - return visitExportAssignment(node); - case 110 /* ThisKeyword */: - return visitThisExpression(node); - case 248 /* ForStatement */: - return visitForStatement(node); - case 244 /* ExpressionStatement */: - return visitExpressionStatement(node); - case 361 /* CommaListExpression */: - return visitCommaListExpression(node, - /*discarded*/ - false); - case 217 /* ParenthesizedExpression */: - return visitParenthesizedExpression(node, - /*discarded*/ - false); - case 360 /* PartiallyEmittedExpression */: - return visitPartiallyEmittedExpression(node, - /*discarded*/ - false); - case 213 /* CallExpression */: - return visitCallExpression(node); - case 215 /* TaggedTemplateExpression */: - return visitTaggedTemplateExpression(node); - case 224 /* PrefixUnaryExpression */: - case 225 /* PostfixUnaryExpression */: - return visitPreOrPostfixUnaryExpression(node, - /*discarded*/ - false); - case 211 /* PropertyAccessExpression */: - return visitPropertyAccessExpression(node); - case 212 /* ElementAccessExpression */: - return visitElementAccessExpression(node); - case 167 /* ComputedPropertyName */: - return visitComputedPropertyName(node); - case 174 /* MethodDeclaration */: - case 178 /* SetAccessor */: - case 177 /* GetAccessor */: - case 218 /* FunctionExpression */: - case 262 /* FunctionDeclaration */: { - enterOther(); - var result = visitEachChild(node, fallbackVisitor, context); - exitOther(); - return result; - } - default: - return visitEachChild(node, fallbackVisitor, context); - } - } - function fallbackVisitor(node) { - switch (node.kind) { - case 170 /* Decorator */: - return void 0; - default: - return visitor(node); - } - } - function modifierVisitor(node) { - switch (node.kind) { - case 170 /* Decorator */: - return void 0; - default: - return node; - } - } - function classElementVisitor(node) { - switch (node.kind) { - case 176 /* Constructor */: - return visitConstructorDeclaration(node); - case 174 /* MethodDeclaration */: - return visitMethodDeclaration(node); - case 177 /* GetAccessor */: - return visitGetAccessorDeclaration(node); - case 178 /* SetAccessor */: - return visitSetAccessorDeclaration(node); - case 172 /* PropertyDeclaration */: - return visitPropertyDeclaration(node); - case 175 /* ClassStaticBlockDeclaration */: - return visitClassStaticBlockDeclaration(node); - default: - return visitor(node); - } - } - function discardedValueVisitor(node) { - switch (node.kind) { - case 224 /* PrefixUnaryExpression */: - case 225 /* PostfixUnaryExpression */: - return visitPreOrPostfixUnaryExpression(node, - /*discarded*/ - true); - case 226 /* BinaryExpression */: - return visitBinaryExpression(node, - /*discarded*/ - true); - case 361 /* CommaListExpression */: - return visitCommaListExpression(node, - /*discarded*/ - true); - case 217 /* ParenthesizedExpression */: - return visitParenthesizedExpression(node, - /*discarded*/ - true); - default: - return visitor(node); - } - } - function getHelperVariableName(node) { - var declarationName = node.name && isIdentifier(node.name) && !isGeneratedIdentifier(node.name) ? idText(node.name) : node.name && isPrivateIdentifier(node.name) && !isGeneratedIdentifier(node.name) ? idText(node.name).slice(1) : node.name && isStringLiteral(node.name) && isIdentifierText(node.name.text, 99 /* ESNext */) ? node.name.text : isClassLike(node) ? "class" : "member"; - if (isGetAccessor(node)) - declarationName = "get_".concat(declarationName); - if (isSetAccessor(node)) - declarationName = "set_".concat(declarationName); - if (node.name && isPrivateIdentifier(node.name)) - declarationName = "private_".concat(declarationName); - if (isStatic(node)) - declarationName = "static_".concat(declarationName); - return "_" + declarationName; - } - function createHelperVariable(node, suffix) { - return factory2.createUniqueName("".concat(getHelperVariableName(node), "_").concat(suffix), 16 /* Optimistic */ | 8 /* ReservedInNestedScopes */); - } - function createLet(name, initializer) { - return factory2.createVariableStatement( - /*modifiers*/ - void 0, factory2.createVariableDeclarationList([ - factory2.createVariableDeclaration(name, - /*exclamationToken*/ - void 0, - /*type*/ - void 0, initializer) - ], 1 /* Let */)); - } - function createClassInfo(node) { - var e_476, _t; - var metadataReference = factory2.createUniqueName("_metadata", 16 /* Optimistic */ | 32 /* FileLevel */); - var instanceExtraInitializersName; - var staticExtraInitializersName; - var hasStaticInitializers = false; - var hasNonAmbientInstanceFields = false; - var hasStaticPrivateClassElements = false; - try { - for (var _u = __values(node.members), _v = _u.next(); !_v.done; _v = _u.next()) { - var member = _v.value; - if (isNamedClassElement(member) && nodeOrChildIsDecorated( - /*useLegacyDecorators*/ - false, member, node)) { - if (hasStaticModifier(member)) { - staticExtraInitializersName !== null && staticExtraInitializersName !== void 0 ? staticExtraInitializersName : (staticExtraInitializersName = factory2.createUniqueName("_staticExtraInitializers", 16 /* Optimistic */ | 32 /* FileLevel */)); - } - else { - instanceExtraInitializersName !== null && instanceExtraInitializersName !== void 0 ? instanceExtraInitializersName : (instanceExtraInitializersName = factory2.createUniqueName("_instanceExtraInitializers", 16 /* Optimistic */ | 32 /* FileLevel */)); - } - } - if (isClassStaticBlockDeclaration(member)) { - if (!isClassNamedEvaluationHelperBlock(member)) { - hasStaticInitializers = true; - } - } - else if (isPropertyDeclaration(member)) { - if (hasStaticModifier(member)) { - hasStaticInitializers || (hasStaticInitializers = !!member.initializer || hasDecorators(member)); - } - else { - hasNonAmbientInstanceFields || (hasNonAmbientInstanceFields = !isAmbientPropertyDeclaration(member)); - } - } - if ((isPrivateIdentifierClassElementDeclaration(member) || isAutoAccessorPropertyDeclaration(member)) && hasStaticModifier(member)) { - hasStaticPrivateClassElements = true; - } - if (staticExtraInitializersName && instanceExtraInitializersName && hasStaticInitializers && hasNonAmbientInstanceFields && hasStaticPrivateClassElements) { - break; - } - } - } - catch (e_476_1) { e_476 = { error: e_476_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_476) throw e_476.error; } - } - return { - class: node, - metadataReference: metadataReference, - instanceExtraInitializersName: instanceExtraInitializersName, - staticExtraInitializersName: staticExtraInitializersName, - hasStaticInitializers: hasStaticInitializers, - hasNonAmbientInstanceFields: hasNonAmbientInstanceFields, - hasStaticPrivateClassElements: hasStaticPrivateClassElements - }; - } - function transformClassLike(node) { - var e_477, _t, e_478, _u; - var _v, _w, _x; - startLexicalEnvironment(); - if (!classHasDeclaredOrExplicitlyAssignedName(node) && classOrConstructorParameterIsDecorated( - /*useLegacyDecorators*/ - false, node)) { - node = injectClassNamedEvaluationHelperBlockIfMissing(context, node, factory2.createStringLiteral("")); - } - var classReference = factory2.getLocalName(node, - /*allowComments*/ - false, - /*allowSourceMaps*/ - false, - /*ignoreAssignedName*/ - true); - var classInfo2 = createClassInfo(node); - var classDefinitionStatements = []; - var leadingBlockStatements; - var trailingBlockStatements; - var syntheticConstructor; - var heritageClauses; - var shouldTransformPrivateStaticElementsInClass = false; - var classDecorators = transformAllDecoratorsOfDeclaration(getAllDecoratorsOfClass(node)); - if (classDecorators) { - classInfo2.classDecoratorsName = factory2.createUniqueName("_classDecorators", 16 /* Optimistic */ | 32 /* FileLevel */); - classInfo2.classDescriptorName = factory2.createUniqueName("_classDescriptor", 16 /* Optimistic */ | 32 /* FileLevel */); - classInfo2.classExtraInitializersName = factory2.createUniqueName("_classExtraInitializers", 16 /* Optimistic */ | 32 /* FileLevel */); - var needsUniqueClassThis = some(node.members, function (member) { return (isPrivateIdentifierClassElementDeclaration(member) || isAutoAccessorPropertyDeclaration(member)) && hasStaticModifier(member); }); - classInfo2.classThis = factory2.createUniqueName("_classThis", needsUniqueClassThis ? 16 /* Optimistic */ | 8 /* ReservedInNestedScopes */ : 16 /* Optimistic */ | 32 /* FileLevel */); - classDefinitionStatements.push(createLet(classInfo2.classDecoratorsName, factory2.createArrayLiteralExpression(classDecorators)), createLet(classInfo2.classDescriptorName), createLet(classInfo2.classExtraInitializersName, factory2.createArrayLiteralExpression()), createLet(classInfo2.classThis)); - if (classInfo2.hasStaticPrivateClassElements) { - shouldTransformPrivateStaticElementsInClass = true; - shouldTransformPrivateStaticElementsInFile = true; - } - } - var extendsClause = getHeritageClause(node.heritageClauses, 96 /* ExtendsKeyword */); - var extendsElement = extendsClause && firstOrUndefined(extendsClause.types); - var extendsExpression = extendsElement && visitNode(extendsElement.expression, visitor, isExpression); - if (extendsExpression) { - classInfo2.classSuper = factory2.createUniqueName("_classSuper", 16 /* Optimistic */ | 32 /* FileLevel */); - var unwrapped = skipOuterExpressions(extendsExpression); - var safeExtendsExpression = isClassExpression(unwrapped) && !unwrapped.name || isFunctionExpression(unwrapped) && !unwrapped.name || isArrowFunction(unwrapped) ? factory2.createComma(factory2.createNumericLiteral(0), extendsExpression) : extendsExpression; - classDefinitionStatements.push(createLet(classInfo2.classSuper, safeExtendsExpression)); - var updatedExtendsElement = factory2.updateExpressionWithTypeArguments(extendsElement, classInfo2.classSuper, - /*typeArguments*/ - void 0); - var updatedExtendsClause = factory2.updateHeritageClause(extendsClause, [updatedExtendsElement]); - heritageClauses = factory2.createNodeArray([updatedExtendsClause]); - } - var renamedClassThis = (_v = classInfo2.classThis) !== null && _v !== void 0 ? _v : factory2.createThis(); - enterClass(classInfo2); - leadingBlockStatements = append(leadingBlockStatements, createMetadata(classInfo2.metadataReference, classInfo2.classSuper)); - var members = visitNodes2(node.members, classElementVisitor, isClassElement); - if (pendingExpressions) { - var outerThis_1; - try { - for (var pendingExpressions_1 = __values(pendingExpressions), pendingExpressions_1_1 = pendingExpressions_1.next(); !pendingExpressions_1_1.done; pendingExpressions_1_1 = pendingExpressions_1.next()) { - var expression = pendingExpressions_1_1.value; - expression = visitNode(expression, function thisVisitor(node2) { - if (!(node2.transformFlags & 16384 /* ContainsLexicalThis */)) { - return node2; - } - switch (node2.kind) { - case 110 /* ThisKeyword */: - if (!outerThis_1) { - outerThis_1 = factory2.createUniqueName("_outerThis", 16 /* Optimistic */); - classDefinitionStatements.unshift(createLet(outerThis_1, factory2.createThis())); - } - return outerThis_1; - default: - return visitEachChild(node2, thisVisitor, context); - } - }, isExpression); - var statement = factory2.createExpressionStatement(expression); - leadingBlockStatements = append(leadingBlockStatements, statement); - } - } - catch (e_477_1) { e_477 = { error: e_477_1 }; } - finally { - try { - if (pendingExpressions_1_1 && !pendingExpressions_1_1.done && (_t = pendingExpressions_1.return)) _t.call(pendingExpressions_1); - } - finally { if (e_477) throw e_477.error; } - } - pendingExpressions = void 0; - } - exitClass(); - if (classInfo2.instanceExtraInitializersName && !getFirstConstructorWithBody(node)) { - var initializerStatements = prepareConstructor(node, classInfo2); - if (initializerStatements) { - var extendsClauseElement = getEffectiveBaseTypeNode(node); - var isDerivedClass = !!(extendsClauseElement && skipOuterExpressions(extendsClauseElement.expression).kind !== 106 /* NullKeyword */); - var constructorStatements = []; - if (isDerivedClass) { - var spreadArguments = factory2.createSpreadElement(factory2.createIdentifier("arguments")); - var superCall = factory2.createCallExpression(factory2.createSuper(), - /*typeArguments*/ - void 0, [spreadArguments]); - constructorStatements.push(factory2.createExpressionStatement(superCall)); - } - addRange(constructorStatements, initializerStatements); - var constructorBody = factory2.createBlock(constructorStatements, - /*multiLine*/ - true); - syntheticConstructor = factory2.createConstructorDeclaration( - /*modifiers*/ - void 0, [], constructorBody); - } - } - if (classInfo2.staticExtraInitializersName) { - classDefinitionStatements.push(createLet(classInfo2.staticExtraInitializersName, factory2.createArrayLiteralExpression())); - } - if (classInfo2.instanceExtraInitializersName) { - classDefinitionStatements.push(createLet(classInfo2.instanceExtraInitializersName, factory2.createArrayLiteralExpression())); - } - if (classInfo2.memberInfos) { - forEachEntry(classInfo2.memberInfos, function (memberInfo, member) { - if (isStatic(member)) { - classDefinitionStatements.push(createLet(memberInfo.memberDecoratorsName)); - if (memberInfo.memberInitializersName) { - classDefinitionStatements.push(createLet(memberInfo.memberInitializersName, factory2.createArrayLiteralExpression())); - } - if (memberInfo.memberDescriptorName) { - classDefinitionStatements.push(createLet(memberInfo.memberDescriptorName)); - } - } - }); - } - if (classInfo2.memberInfos) { - forEachEntry(classInfo2.memberInfos, function (memberInfo, member) { - if (!isStatic(member)) { - classDefinitionStatements.push(createLet(memberInfo.memberDecoratorsName)); - if (memberInfo.memberInitializersName) { - classDefinitionStatements.push(createLet(memberInfo.memberInitializersName, factory2.createArrayLiteralExpression())); - } - if (memberInfo.memberDescriptorName) { - classDefinitionStatements.push(createLet(memberInfo.memberDescriptorName)); - } - } - }); - } - leadingBlockStatements = addRange(leadingBlockStatements, classInfo2.staticNonFieldDecorationStatements); - leadingBlockStatements = addRange(leadingBlockStatements, classInfo2.nonStaticNonFieldDecorationStatements); - leadingBlockStatements = addRange(leadingBlockStatements, classInfo2.staticFieldDecorationStatements); - leadingBlockStatements = addRange(leadingBlockStatements, classInfo2.nonStaticFieldDecorationStatements); - if (classInfo2.classDescriptorName && classInfo2.classDecoratorsName && classInfo2.classExtraInitializersName && classInfo2.classThis) { - leadingBlockStatements !== null && leadingBlockStatements !== void 0 ? leadingBlockStatements : (leadingBlockStatements = []); - var valueProperty = factory2.createPropertyAssignment("value", renamedClassThis); - var classDescriptor = factory2.createObjectLiteralExpression([valueProperty]); - var classDescriptorAssignment = factory2.createAssignment(classInfo2.classDescriptorName, classDescriptor); - var classNameReference = factory2.createPropertyAccessExpression(renamedClassThis, "name"); - var esDecorateHelper2 = emitHelpers().createESDecorateHelper(factory2.createNull(), classDescriptorAssignment, classInfo2.classDecoratorsName, { kind: "class", name: classNameReference, metadata: classInfo2.metadataReference }, factory2.createNull(), classInfo2.classExtraInitializersName); - var esDecorateStatement = factory2.createExpressionStatement(esDecorateHelper2); - setSourceMapRange(esDecorateStatement, moveRangePastDecorators(node)); - leadingBlockStatements.push(esDecorateStatement); - var classDescriptorValueReference = factory2.createPropertyAccessExpression(classInfo2.classDescriptorName, "value"); - var classThisAssignment = factory2.createAssignment(classInfo2.classThis, classDescriptorValueReference); - var classReferenceAssignment = factory2.createAssignment(classReference, classThisAssignment); - leadingBlockStatements.push(factory2.createExpressionStatement(classReferenceAssignment)); - } - leadingBlockStatements.push(createSymbolMetadata(renamedClassThis, classInfo2.metadataReference)); - if (classInfo2.staticExtraInitializersName) { - var runStaticInitializersHelper = emitHelpers().createRunInitializersHelper(renamedClassThis, classInfo2.staticExtraInitializersName); - var runStaticInitializersStatement = factory2.createExpressionStatement(runStaticInitializersHelper); - setSourceMapRange(runStaticInitializersStatement, (_w = node.name) !== null && _w !== void 0 ? _w : moveRangePastDecorators(node)); - leadingBlockStatements = append(leadingBlockStatements, runStaticInitializersStatement); - } - if (classInfo2.classExtraInitializersName) { - var runClassInitializersHelper = emitHelpers().createRunInitializersHelper(renamedClassThis, classInfo2.classExtraInitializersName); - var runClassInitializersStatement = factory2.createExpressionStatement(runClassInitializersHelper); - setSourceMapRange(runClassInitializersStatement, (_x = node.name) !== null && _x !== void 0 ? _x : moveRangePastDecorators(node)); - trailingBlockStatements = append(trailingBlockStatements, runClassInitializersStatement); - } - if (leadingBlockStatements && trailingBlockStatements && !classInfo2.hasStaticInitializers) { - addRange(leadingBlockStatements, trailingBlockStatements); - trailingBlockStatements = void 0; - } - var leadingStaticBlock = leadingBlockStatements && factory2.createClassStaticBlockDeclaration(factory2.createBlock(leadingBlockStatements, - /*multiLine*/ - true)); - if (leadingStaticBlock && shouldTransformPrivateStaticElementsInClass) { - setInternalEmitFlags(leadingStaticBlock, 32 /* TransformPrivateStaticElements */); - } - var trailingStaticBlock = trailingBlockStatements && factory2.createClassStaticBlockDeclaration(factory2.createBlock(trailingBlockStatements, - /*multiLine*/ - true)); - if (leadingStaticBlock || syntheticConstructor || trailingStaticBlock) { - var newMembers = []; - var existingNamedEvaluationHelperBlockIndex = members.findIndex(isClassNamedEvaluationHelperBlock); - if (leadingStaticBlock) { - addRange(newMembers, members, 0, existingNamedEvaluationHelperBlockIndex + 1); - newMembers.push(leadingStaticBlock); - addRange(newMembers, members, existingNamedEvaluationHelperBlockIndex + 1); - } - else { - addRange(newMembers, members); - } - if (syntheticConstructor) { - newMembers.push(syntheticConstructor); - } - if (trailingStaticBlock) { - newMembers.push(trailingStaticBlock); - } - members = setTextRange(factory2.createNodeArray(newMembers), members); - } - var lexicalEnvironment = endLexicalEnvironment(); - var classExpression; - if (classDecorators) { - classExpression = factory2.createClassExpression( - /*modifiers*/ - void 0, - /*name*/ - void 0, - /*typeParameters*/ - void 0, heritageClauses, members); - if (classInfo2.classThis) { - classExpression = injectClassThisAssignmentIfMissing(factory2, classExpression, classInfo2.classThis); - } - var classReferenceDeclaration = factory2.createVariableDeclaration(classReference, - /*exclamationToken*/ - void 0, - /*type*/ - void 0, classExpression); - var classReferenceVarDeclList = factory2.createVariableDeclarationList([classReferenceDeclaration]); - var returnExpr = classInfo2.classThis ? factory2.createAssignment(classReference, classInfo2.classThis) : classReference; - classDefinitionStatements.push(factory2.createVariableStatement( - /*modifiers*/ - void 0, classReferenceVarDeclList), factory2.createReturnStatement(returnExpr)); - } - else { - classExpression = factory2.createClassExpression( - /*modifiers*/ - void 0, node.name, - /*typeParameters*/ - void 0, heritageClauses, members); - classDefinitionStatements.push(factory2.createReturnStatement(classExpression)); - } - if (shouldTransformPrivateStaticElementsInClass) { - addInternalEmitFlags(classExpression, 32 /* TransformPrivateStaticElements */); - try { - for (var _y = __values(classExpression.members), _z = _y.next(); !_z.done; _z = _y.next()) { - var member = _z.value; - if ((isPrivateIdentifierClassElementDeclaration(member) || isAutoAccessorPropertyDeclaration(member)) && hasStaticModifier(member)) { - addInternalEmitFlags(member, 32 /* TransformPrivateStaticElements */); - } - } - } - catch (e_478_1) { e_478 = { error: e_478_1 }; } - finally { - try { - if (_z && !_z.done && (_u = _y.return)) _u.call(_y); - } - finally { if (e_478) throw e_478.error; } - } - } - setOriginalNode(classExpression, node); - return factory2.createImmediatelyInvokedArrowFunction(factory2.mergeLexicalEnvironment(classDefinitionStatements, lexicalEnvironment)); - } - function isDecoratedClassLike(node) { - return classOrConstructorParameterIsDecorated( - /*useLegacyDecorators*/ - false, node) || childIsDecorated( - /*useLegacyDecorators*/ - false, node); - } - function visitClassDeclaration(node) { - var _t; - if (isDecoratedClassLike(node)) { - var statements = []; - var originalClass = (_t = getOriginalNode(node, isClassLike)) !== null && _t !== void 0 ? _t : node; - var className = originalClass.name ? factory2.createStringLiteralFromNode(originalClass.name) : factory2.createStringLiteral("default"); - var isExport = hasSyntacticModifier(node, 1 /* Export */); - var isDefault = hasSyntacticModifier(node, 1024 /* Default */); - if (!node.name) { - node = injectClassNamedEvaluationHelperBlockIfMissing(context, node, className); - } - if (isExport && isDefault) { - var iife = transformClassLike(node); - if (node.name) { - var varDecl = factory2.createVariableDeclaration(factory2.getLocalName(node), - /*exclamationToken*/ - void 0, - /*type*/ - void 0, iife); - setOriginalNode(varDecl, node); - var varDecls = factory2.createVariableDeclarationList([varDecl], 1 /* Let */); - var varStatement = factory2.createVariableStatement( - /*modifiers*/ - void 0, varDecls); - statements.push(varStatement); - var exportStatement = factory2.createExportDefault(factory2.getDeclarationName(node)); - setOriginalNode(exportStatement, node); - setCommentRange(exportStatement, getCommentRange(node)); - setSourceMapRange(exportStatement, moveRangePastDecorators(node)); - statements.push(exportStatement); - } - else { - var exportStatement = factory2.createExportDefault(iife); - setOriginalNode(exportStatement, node); - setCommentRange(exportStatement, getCommentRange(node)); - setSourceMapRange(exportStatement, moveRangePastDecorators(node)); - statements.push(exportStatement); - } - } - else { - Debug.assertIsDefined(node.name, "A class declaration that is not a default export must have a name."); - var iife = transformClassLike(node); - var modifierVisitorNoExport = isExport ? function (node2) { return isExportModifier(node2) ? void 0 : modifierVisitor(node2); } : modifierVisitor; - var modifiers = visitNodes2(node.modifiers, modifierVisitorNoExport, isModifier); - var declName = factory2.getLocalName(node, - /*allowComments*/ - false, - /*allowSourceMaps*/ - true); - var varDecl = factory2.createVariableDeclaration(declName, - /*exclamationToken*/ - void 0, - /*type*/ - void 0, iife); - setOriginalNode(varDecl, node); - var varDecls = factory2.createVariableDeclarationList([varDecl], 1 /* Let */); - var varStatement = factory2.createVariableStatement(modifiers, varDecls); - setOriginalNode(varStatement, node); - setCommentRange(varStatement, getCommentRange(node)); - statements.push(varStatement); - if (isExport) { - var exportStatement = factory2.createExternalModuleExport(declName); - setOriginalNode(exportStatement, node); - statements.push(exportStatement); - } - } - return singleOrMany(statements); - } - else { - var modifiers = visitNodes2(node.modifiers, modifierVisitor, isModifier); - var heritageClauses = visitNodes2(node.heritageClauses, visitor, isHeritageClause); - enterClass( - /*classInfo*/ - void 0); - var members = visitNodes2(node.members, classElementVisitor, isClassElement); - exitClass(); - return factory2.updateClassDeclaration(node, modifiers, node.name, - /*typeParameters*/ - void 0, heritageClauses, members); - } - } - function visitClassExpression(node) { - if (isDecoratedClassLike(node)) { - var iife = transformClassLike(node); - setOriginalNode(iife, node); - return iife; - } - else { - var modifiers = visitNodes2(node.modifiers, modifierVisitor, isModifier); - var heritageClauses = visitNodes2(node.heritageClauses, visitor, isHeritageClause); - enterClass( - /*classInfo*/ - void 0); - var members = visitNodes2(node.members, classElementVisitor, isClassElement); - exitClass(); - return factory2.updateClassExpression(node, modifiers, node.name, - /*typeParameters*/ - void 0, heritageClauses, members); - } - } - function prepareConstructor(_parent, classInfo2) { - if (classInfo2.instanceExtraInitializersName && !classInfo2.hasNonAmbientInstanceFields) { - var statements = []; - statements.push(factory2.createExpressionStatement(emitHelpers().createRunInitializersHelper(factory2.createThis(), classInfo2.instanceExtraInitializersName))); - return statements; - } - } - function transformConstructorBodyWorker(statementsOut, statementsIn, statementOffset, superPath, superPathDepth, initializerStatements) { - var superStatementIndex = superPath[superPathDepth]; - var superStatement = statementsIn[superStatementIndex]; - addRange(statementsOut, visitNodes2(statementsIn, visitor, isStatement, statementOffset, superStatementIndex - statementOffset)); - if (isTryStatement(superStatement)) { - var tryBlockStatements = []; - transformConstructorBodyWorker(tryBlockStatements, superStatement.tryBlock.statements, - /*statementOffset*/ - 0, superPath, superPathDepth + 1, initializerStatements); - var tryBlockStatementsArray = factory2.createNodeArray(tryBlockStatements); - setTextRange(tryBlockStatementsArray, superStatement.tryBlock.statements); - statementsOut.push(factory2.updateTryStatement(superStatement, factory2.updateBlock(superStatement.tryBlock, tryBlockStatements), visitNode(superStatement.catchClause, visitor, isCatchClause), visitNode(superStatement.finallyBlock, visitor, isBlock))); - } - else { - addRange(statementsOut, visitNodes2(statementsIn, visitor, isStatement, superStatementIndex, 1)); - addRange(statementsOut, initializerStatements); - } - addRange(statementsOut, visitNodes2(statementsIn, visitor, isStatement, superStatementIndex + 1)); - } - function visitConstructorDeclaration(node) { - enterClassElement(node); - var modifiers = visitNodes2(node.modifiers, modifierVisitor, isModifier); - var parameters = visitNodes2(node.parameters, visitor, isParameter); - var body; - if (node.body && classInfo) { - var initializerStatements = prepareConstructor(classInfo.class, classInfo); - if (initializerStatements) { - var statements = []; - var nonPrologueStart = factory2.copyPrologue(node.body.statements, statements, - /*ensureUseStrict*/ - false, visitor); - var superStatementIndices = findSuperStatementIndexPath(node.body.statements, nonPrologueStart); - if (superStatementIndices.length > 0) { - transformConstructorBodyWorker(statements, node.body.statements, nonPrologueStart, superStatementIndices, 0, initializerStatements); - } - else { - addRange(statements, initializerStatements); - addRange(statements, visitNodes2(node.body.statements, visitor, isStatement)); - } - body = factory2.createBlock(statements, - /*multiLine*/ - true); - setOriginalNode(body, node.body); - setTextRange(body, node.body); - } - } - body !== null && body !== void 0 ? body : (body = visitNode(node.body, visitor, isBlock)); - exitClassElement(); - return factory2.updateConstructorDeclaration(node, modifiers, parameters, body); - } - function finishClassElement(updated, original) { - if (updated !== original) { - setCommentRange(updated, original); - setSourceMapRange(updated, moveRangePastDecorators(original)); - } - return updated; - } - function partialTransformClassElement(member, classInfo2, createDescriptor) { - var _t; - var _u, _v, _w, _x, _y, _z, _10, _11; - var referencedName; - var name; - var initializersName; - var thisArg; - var descriptorName; - if (!classInfo2) { - var modifiers2 = visitNodes2(member.modifiers, modifierVisitor, isModifier); - enterName(); - name = visitPropertyName(member.name); - exitName(); - return { modifiers: modifiers2, referencedName: referencedName, name: name, initializersName: initializersName, descriptorName: descriptorName, thisArg: thisArg }; - } - var memberDecorators = transformAllDecoratorsOfDeclaration(getAllDecoratorsOfClassElement(member, classInfo2.class, - /*useLegacyDecorators*/ - false)); - var modifiers = visitNodes2(member.modifiers, modifierVisitor, isModifier); - if (memberDecorators) { - var memberDecoratorsName = createHelperVariable(member, "decorators"); - var memberDecoratorsArray = factory2.createArrayLiteralExpression(memberDecorators); - var memberDecoratorsAssignment = factory2.createAssignment(memberDecoratorsName, memberDecoratorsArray); - var memberInfo = { memberDecoratorsName: memberDecoratorsName }; - (_u = classInfo2.memberInfos) !== null && _u !== void 0 ? _u : (classInfo2.memberInfos = /* @__PURE__ */ new Map()); - classInfo2.memberInfos.set(member, memberInfo); - pendingExpressions !== null && pendingExpressions !== void 0 ? pendingExpressions : (pendingExpressions = []); - pendingExpressions.push(memberDecoratorsAssignment); - var statements = isMethodOrAccessor(member) || isAutoAccessorPropertyDeclaration(member) ? isStatic(member) ? (_v = classInfo2.staticNonFieldDecorationStatements) !== null && _v !== void 0 ? _v : (classInfo2.staticNonFieldDecorationStatements = []) : (_w = classInfo2.nonStaticNonFieldDecorationStatements) !== null && _w !== void 0 ? _w : (classInfo2.nonStaticNonFieldDecorationStatements = []) : isPropertyDeclaration(member) && !isAutoAccessorPropertyDeclaration(member) ? isStatic(member) ? (_x = classInfo2.staticFieldDecorationStatements) !== null && _x !== void 0 ? _x : (classInfo2.staticFieldDecorationStatements = []) : (_y = classInfo2.nonStaticFieldDecorationStatements) !== null && _y !== void 0 ? _y : (classInfo2.nonStaticFieldDecorationStatements = []) : Debug.fail(); - var kind = isGetAccessorDeclaration(member) ? "getter" : isSetAccessorDeclaration(member) ? "setter" : isMethodDeclaration(member) ? "method" : isAutoAccessorPropertyDeclaration(member) ? "accessor" : isPropertyDeclaration(member) ? "field" : Debug.fail(); - var propertyName = void 0; - if (isIdentifier(member.name) || isPrivateIdentifier(member.name)) { - propertyName = { computed: false, name: member.name }; - } - else if (isPropertyNameLiteral(member.name)) { - propertyName = { computed: true, name: factory2.createStringLiteralFromNode(member.name) }; - } - else { - var expression = member.name.expression; - if (isPropertyNameLiteral(expression) && !isIdentifier(expression)) { - propertyName = { computed: true, name: factory2.createStringLiteralFromNode(expression) }; - } - else { - enterName(); - (_t = visitReferencedPropertyName(member.name), referencedName = _t.referencedName, name = _t.name); - propertyName = { computed: true, name: referencedName }; - exitName(); - } - } - var context2 = { - kind: kind, - name: propertyName, - static: isStatic(member), - private: isPrivateIdentifier(member.name), - access: { - // 15.7.3 CreateDecoratorAccessObject (kind, name) - // 2. If _kind_ is ~field~, ~method~, ~accessor~, or ~getter~, then ... - get: isPropertyDeclaration(member) || isGetAccessorDeclaration(member) || isMethodDeclaration(member), - // 3. If _kind_ is ~field~, ~accessor~, or ~setter~, then ... - set: isPropertyDeclaration(member) || isSetAccessorDeclaration(member) - }, - metadata: classInfo2.metadataReference - }; - var extraInitializers = isStatic(member) ? (_z = classInfo2.staticExtraInitializersName) !== null && _z !== void 0 ? _z : (classInfo2.staticExtraInitializersName = factory2.createUniqueName("_staticExtraInitializers", 16 /* Optimistic */ | 32 /* FileLevel */)) : (_10 = classInfo2.instanceExtraInitializersName) !== null && _10 !== void 0 ? _10 : (classInfo2.instanceExtraInitializersName = factory2.createUniqueName("_instanceExtraInitializers", 16 /* Optimistic */ | 32 /* FileLevel */)); - if (isMethodOrAccessor(member)) { - var descriptor = void 0; - if (isPrivateIdentifierClassElementDeclaration(member) && createDescriptor) { - descriptor = createDescriptor(member, visitNodes2(modifiers, function (node) { return tryCast(node, isAsyncModifier); }, isModifier)); - memberInfo.memberDescriptorName = descriptorName = createHelperVariable(member, "descriptor"); - descriptor = factory2.createAssignment(descriptorName, descriptor); - } - var esDecorateExpression = emitHelpers().createESDecorateHelper(factory2.createThis(), descriptor !== null && descriptor !== void 0 ? descriptor : factory2.createNull(), memberDecoratorsName, context2, factory2.createNull(), extraInitializers); - var esDecorateStatement = factory2.createExpressionStatement(esDecorateExpression); - setSourceMapRange(esDecorateStatement, moveRangePastDecorators(member)); - statements.push(esDecorateStatement); - } - else if (isPropertyDeclaration(member)) { - initializersName = (_11 = memberInfo.memberInitializersName) !== null && _11 !== void 0 ? _11 : (memberInfo.memberInitializersName = createHelperVariable(member, "initializers")); - if (isStatic(member)) { - thisArg = classInfo2.classThis; - } - var descriptor = void 0; - if (isPrivateIdentifierClassElementDeclaration(member) && hasAccessorModifier(member) && createDescriptor) { - descriptor = createDescriptor(member, - /*modifiers*/ - void 0); - memberInfo.memberDescriptorName = descriptorName = createHelperVariable(member, "descriptor"); - descriptor = factory2.createAssignment(descriptorName, descriptor); - } - var esDecorateExpression = emitHelpers().createESDecorateHelper(isAutoAccessorPropertyDeclaration(member) ? factory2.createThis() : factory2.createNull(), descriptor !== null && descriptor !== void 0 ? descriptor : factory2.createNull(), memberDecoratorsName, context2, initializersName, extraInitializers); - var esDecorateStatement = factory2.createExpressionStatement(esDecorateExpression); - setSourceMapRange(esDecorateStatement, moveRangePastDecorators(member)); - statements.push(esDecorateStatement); - } - } - if (name === void 0) { - enterName(); - name = visitPropertyName(member.name); - exitName(); - } - if (!some(modifiers) && (isMethodDeclaration(member) || isPropertyDeclaration(member))) { - setEmitFlags(name, 1024 /* NoLeadingComments */); - } - return { modifiers: modifiers, referencedName: referencedName, name: name, initializersName: initializersName, descriptorName: descriptorName, thisArg: thisArg }; - } - function visitMethodDeclaration(node) { - enterClassElement(node); - var _t = partialTransformClassElement(node, classInfo, createMethodDescriptorObject), modifiers = _t.modifiers, name = _t.name, descriptorName = _t.descriptorName; - if (descriptorName) { - exitClassElement(); - return finishClassElement(createMethodDescriptorForwarder(modifiers, name, descriptorName), node); - } - else { - var parameters = visitNodes2(node.parameters, visitor, isParameter); - var body = visitNode(node.body, visitor, isBlock); - exitClassElement(); - return finishClassElement(factory2.updateMethodDeclaration(node, modifiers, node.asteriskToken, name, - /*questionToken*/ - void 0, - /*typeParameters*/ - void 0, parameters, - /*type*/ - void 0, body), node); - } - } - function visitGetAccessorDeclaration(node) { - enterClassElement(node); - var _t = partialTransformClassElement(node, classInfo, createGetAccessorDescriptorObject), modifiers = _t.modifiers, name = _t.name, descriptorName = _t.descriptorName; - if (descriptorName) { - exitClassElement(); - return finishClassElement(createGetAccessorDescriptorForwarder(modifiers, name, descriptorName), node); - } - else { - var parameters = visitNodes2(node.parameters, visitor, isParameter); - var body = visitNode(node.body, visitor, isBlock); - exitClassElement(); - return finishClassElement(factory2.updateGetAccessorDeclaration(node, modifiers, name, parameters, - /*type*/ - void 0, body), node); - } - } - function visitSetAccessorDeclaration(node) { - enterClassElement(node); - var _t = partialTransformClassElement(node, classInfo, createSetAccessorDescriptorObject), modifiers = _t.modifiers, name = _t.name, descriptorName = _t.descriptorName; - if (descriptorName) { - exitClassElement(); - return finishClassElement(createSetAccessorDescriptorForwarder(modifiers, name, descriptorName), node); - } - else { - var parameters = visitNodes2(node.parameters, visitor, isParameter); - var body = visitNode(node.body, visitor, isBlock); - exitClassElement(); - return finishClassElement(factory2.updateSetAccessorDeclaration(node, modifiers, name, parameters, body), node); - } - } - function visitClassStaticBlockDeclaration(node) { - enterClassElement(node); - var result; - if (isClassNamedEvaluationHelperBlock(node)) { - result = visitEachChild(node, visitor, context); - } - else if (isClassThisAssignmentBlock(node)) { - var savedClassThis = classThis; - classThis = void 0; - result = visitEachChild(node, visitor, context); - classThis = savedClassThis; - } - else { - if (classInfo) - classInfo.hasStaticInitializers = true; - result = visitEachChild(node, visitor, context); - } - exitClassElement(); - return result; - } - function visitPropertyDeclaration(node) { - if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) { - node = transformNamedEvaluation(context, node, canIgnoreEmptyStringLiteralInAssignedName(node.initializer)); - } - enterClassElement(node); - Debug.assert(!isAmbientPropertyDeclaration(node), "Not yet implemented."); - var _t = partialTransformClassElement(node, classInfo, hasAccessorModifier(node) ? createAccessorPropertyDescriptorObject : void 0), modifiers = _t.modifiers, name = _t.name, initializersName = _t.initializersName, descriptorName = _t.descriptorName, thisArg = _t.thisArg; - startLexicalEnvironment(); - var initializer = visitNode(node.initializer, visitor, isExpression); - if (initializersName) { - initializer = emitHelpers().createRunInitializersHelper(thisArg !== null && thisArg !== void 0 ? thisArg : factory2.createThis(), initializersName, initializer !== null && initializer !== void 0 ? initializer : factory2.createVoidZero()); - } - if (!isStatic(node) && (classInfo == null ? void 0 : classInfo.instanceExtraInitializersName) && !(classInfo == null ? void 0 : classInfo.hasInjectedInstanceInitializers)) { - classInfo.hasInjectedInstanceInitializers = true; - initializer !== null && initializer !== void 0 ? initializer : (initializer = factory2.createVoidZero()); - initializer = factory2.createParenthesizedExpression(factory2.createComma(emitHelpers().createRunInitializersHelper(factory2.createThis(), classInfo.instanceExtraInitializersName), initializer)); - } - if (isStatic(node) && classInfo && initializer) { - classInfo.hasStaticInitializers = true; - } - var declarations = endLexicalEnvironment(); - if (some(declarations)) { - initializer = factory2.createImmediatelyInvokedArrowFunction(__spreadArray(__spreadArray([], __read(declarations), false), [ - factory2.createReturnStatement(initializer) - ], false)); - } - exitClassElement(); - if (hasAccessorModifier(node) && descriptorName) { - var commentRange = getCommentRange(node); - var sourceMapRange = getSourceMapRange(node); - var name2 = node.name; - var getterName = name2; - var setterName = name2; - if (isComputedPropertyName(name2) && !isSimpleInlineableExpression(name2.expression)) { - var cacheAssignment = findComputedPropertyNameCacheAssignment(name2); - if (cacheAssignment) { - getterName = factory2.updateComputedPropertyName(name2, visitNode(name2.expression, visitor, isExpression)); - setterName = factory2.updateComputedPropertyName(name2, cacheAssignment.left); - } - else { - var temp = factory2.createTempVariable(hoistVariableDeclaration); - setSourceMapRange(temp, name2.expression); - var expression = visitNode(name2.expression, visitor, isExpression); - var assignment = factory2.createAssignment(temp, expression); - setSourceMapRange(assignment, name2.expression); - getterName = factory2.updateComputedPropertyName(name2, assignment); - setterName = factory2.updateComputedPropertyName(name2, temp); - } - } - var modifiersWithoutAccessor = visitNodes2(modifiers, function (node2) { return node2.kind !== 129 /* AccessorKeyword */ ? node2 : void 0; }, isModifier); - var backingField = createAccessorPropertyBackingField(factory2, node, modifiersWithoutAccessor, initializer); - setOriginalNode(backingField, node); - setEmitFlags(backingField, 3072 /* NoComments */); - setSourceMapRange(backingField, sourceMapRange); - setSourceMapRange(backingField.name, node.name); - var getter = createGetAccessorDescriptorForwarder(modifiersWithoutAccessor, getterName, descriptorName); - setOriginalNode(getter, node); - setCommentRange(getter, commentRange); - setSourceMapRange(getter, sourceMapRange); - var setter = createSetAccessorDescriptorForwarder(modifiersWithoutAccessor, setterName, descriptorName); - setOriginalNode(setter, node); - setEmitFlags(setter, 3072 /* NoComments */); - setSourceMapRange(setter, sourceMapRange); - return [backingField, getter, setter]; - } - return finishClassElement(factory2.updatePropertyDeclaration(node, modifiers, name, - /*questionOrExclamationToken*/ - void 0, - /*type*/ - void 0, initializer), node); - } - function visitThisExpression(node) { - return classThis !== null && classThis !== void 0 ? classThis : node; - } - function visitCallExpression(node) { - if (isSuperProperty(node.expression) && classThis) { - var expression = visitNode(node.expression, visitor, isExpression); - var argumentsList = visitNodes2(node.arguments, visitor, isExpression); - var invocation = factory2.createFunctionCallCall(expression, classThis, argumentsList); - setOriginalNode(invocation, node); - setTextRange(invocation, node); - return invocation; - } - return visitEachChild(node, visitor, context); - } - function visitTaggedTemplateExpression(node) { - if (isSuperProperty(node.tag) && classThis) { - var tag = visitNode(node.tag, visitor, isExpression); - var boundTag = factory2.createFunctionBindCall(tag, classThis, []); - setOriginalNode(boundTag, node); - setTextRange(boundTag, node); - var template = visitNode(node.template, visitor, isTemplateLiteral); - return factory2.updateTaggedTemplateExpression(node, boundTag, - /*typeArguments*/ - void 0, template); - } - return visitEachChild(node, visitor, context); - } - function visitPropertyAccessExpression(node) { - if (isSuperProperty(node) && isIdentifier(node.name) && classThis && classSuper) { - var propertyName = factory2.createStringLiteralFromNode(node.name); - var superProperty = factory2.createReflectGetCall(classSuper, propertyName, classThis); - setOriginalNode(superProperty, node.expression); - setTextRange(superProperty, node.expression); - return superProperty; - } - return visitEachChild(node, visitor, context); - } - function visitElementAccessExpression(node) { - if (isSuperProperty(node) && classThis && classSuper) { - var propertyName = visitNode(node.argumentExpression, visitor, isExpression); - var superProperty = factory2.createReflectGetCall(classSuper, propertyName, classThis); - setOriginalNode(superProperty, node.expression); - setTextRange(superProperty, node.expression); - return superProperty; - } - return visitEachChild(node, visitor, context); - } - function visitParameterDeclaration(node) { - if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) { - node = transformNamedEvaluation(context, node, canIgnoreEmptyStringLiteralInAssignedName(node.initializer)); - } - var updated = factory2.updateParameterDeclaration(node, - /*modifiers*/ - void 0, node.dotDotDotToken, visitNode(node.name, visitor, isBindingName), - /*questionToken*/ - void 0, - /*type*/ - void 0, visitNode(node.initializer, visitor, isExpression)); - if (updated !== node) { - setCommentRange(updated, node); - setTextRange(updated, moveRangePastModifiers(node)); - setSourceMapRange(updated, moveRangePastModifiers(node)); - setEmitFlags(updated.name, 64 /* NoTrailingSourceMap */); - } - return updated; - } - function isAnonymousClassNeedingAssignedName(node) { - return isClassExpression(node) && !node.name && isDecoratedClassLike(node); - } - function canIgnoreEmptyStringLiteralInAssignedName(node) { - var innerExpression = skipOuterExpressions(node); - return isClassExpression(innerExpression) && !innerExpression.name && !classOrConstructorParameterIsDecorated( - /*useLegacyDecorators*/ - false, innerExpression); - } - function visitForStatement(node) { - return factory2.updateForStatement(node, visitNode(node.initializer, discardedValueVisitor, isForInitializer), visitNode(node.condition, visitor, isExpression), visitNode(node.incrementor, discardedValueVisitor, isExpression), visitIterationBody(node.statement, visitor, context)); - } - function visitExpressionStatement(node) { - return visitEachChild(node, discardedValueVisitor, context); - } - function visitBinaryExpression(node, discarded) { - if (isDestructuringAssignment(node)) { - var left = visitAssignmentPattern(node.left); - var right = visitNode(node.right, visitor, isExpression); - return factory2.updateBinaryExpression(node, left, node.operatorToken, right); - } - if (isAssignmentExpression(node)) { - if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) { - node = transformNamedEvaluation(context, node, canIgnoreEmptyStringLiteralInAssignedName(node.right)); - return visitEachChild(node, visitor, context); - } - if (isSuperProperty(node.left) && classThis && classSuper) { - var setterName = isElementAccessExpression(node.left) ? visitNode(node.left.argumentExpression, visitor, isExpression) : isIdentifier(node.left.name) ? factory2.createStringLiteralFromNode(node.left.name) : void 0; - if (setterName) { - var expression = visitNode(node.right, visitor, isExpression); - if (isCompoundAssignment(node.operatorToken.kind)) { - var getterName = setterName; - if (!isSimpleInlineableExpression(setterName)) { - getterName = factory2.createTempVariable(hoistVariableDeclaration); - setterName = factory2.createAssignment(getterName, setterName); - } - var superPropertyGet = factory2.createReflectGetCall(classSuper, getterName, classThis); - setOriginalNode(superPropertyGet, node.left); - setTextRange(superPropertyGet, node.left); - expression = factory2.createBinaryExpression(superPropertyGet, getNonAssignmentOperatorForCompoundAssignment(node.operatorToken.kind), expression); - setTextRange(expression, node); - } - var temp = discarded ? void 0 : factory2.createTempVariable(hoistVariableDeclaration); - if (temp) { - expression = factory2.createAssignment(temp, expression); - setTextRange(temp, node); - } - expression = factory2.createReflectSetCall(classSuper, setterName, expression, classThis); - setOriginalNode(expression, node); - setTextRange(expression, node); - if (temp) { - expression = factory2.createComma(expression, temp); - setTextRange(expression, node); - } - return expression; - } - } - } - if (node.operatorToken.kind === 28 /* CommaToken */) { - var left = visitNode(node.left, discardedValueVisitor, isExpression); - var right = visitNode(node.right, discarded ? discardedValueVisitor : visitor, isExpression); - return factory2.updateBinaryExpression(node, left, node.operatorToken, right); - } - return visitEachChild(node, visitor, context); - } - function visitPreOrPostfixUnaryExpression(node, discarded) { - if (node.operator === 46 /* PlusPlusToken */ || node.operator === 47 /* MinusMinusToken */) { - var operand = skipParentheses(node.operand); - if (isSuperProperty(operand) && classThis && classSuper) { - var setterName = isElementAccessExpression(operand) ? visitNode(operand.argumentExpression, visitor, isExpression) : isIdentifier(operand.name) ? factory2.createStringLiteralFromNode(operand.name) : void 0; - if (setterName) { - var getterName = setterName; - if (!isSimpleInlineableExpression(setterName)) { - getterName = factory2.createTempVariable(hoistVariableDeclaration); - setterName = factory2.createAssignment(getterName, setterName); - } - var expression = factory2.createReflectGetCall(classSuper, getterName, classThis); - setOriginalNode(expression, node); - setTextRange(expression, node); - var temp = discarded ? void 0 : factory2.createTempVariable(hoistVariableDeclaration); - expression = expandPreOrPostfixIncrementOrDecrementExpression(factory2, node, expression, hoistVariableDeclaration, temp); - expression = factory2.createReflectSetCall(classSuper, setterName, expression, classThis); - setOriginalNode(expression, node); - setTextRange(expression, node); - if (temp) { - expression = factory2.createComma(expression, temp); - setTextRange(expression, node); - } - return expression; - } - } - } - return visitEachChild(node, visitor, context); - } - function visitCommaListExpression(node, discarded) { - var elements = discarded ? visitCommaListElements(node.elements, discardedValueVisitor) : visitCommaListElements(node.elements, visitor, discardedValueVisitor); - return factory2.updateCommaListExpression(node, elements); - } - function visitReferencedPropertyName(node) { - if (isPropertyNameLiteral(node) || isPrivateIdentifier(node)) { - var referencedName2 = factory2.createStringLiteralFromNode(node); - var name2 = visitNode(node, visitor, isPropertyName); - return { referencedName: referencedName2, name: name2 }; - } - if (isPropertyNameLiteral(node.expression) && !isIdentifier(node.expression)) { - var referencedName2 = factory2.createStringLiteralFromNode(node.expression); - var name2 = visitNode(node, visitor, isPropertyName); - return { referencedName: referencedName2, name: name2 }; - } - var referencedName = factory2.getGeneratedNameForNode(node); - hoistVariableDeclaration(referencedName); - var key = emitHelpers().createPropKeyHelper(visitNode(node.expression, visitor, isExpression)); - var assignment = factory2.createAssignment(referencedName, key); - var name = factory2.updateComputedPropertyName(node, injectPendingExpressions(assignment)); - return { referencedName: referencedName, name: name }; - } - function visitPropertyName(node) { - if (isComputedPropertyName(node)) { - return visitComputedPropertyName(node); - } - return visitNode(node, visitor, isPropertyName); - } - function visitComputedPropertyName(node) { - var expression = visitNode(node.expression, visitor, isExpression); - if (!isSimpleInlineableExpression(expression)) { - expression = injectPendingExpressions(expression); - } - return factory2.updateComputedPropertyName(node, expression); - } - function visitPropertyAssignment(node) { - if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) { - node = transformNamedEvaluation(context, node, canIgnoreEmptyStringLiteralInAssignedName(node.initializer)); - } - return visitEachChild(node, visitor, context); - } - function visitVariableDeclaration(node) { - if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) { - node = transformNamedEvaluation(context, node, canIgnoreEmptyStringLiteralInAssignedName(node.initializer)); - } - return visitEachChild(node, visitor, context); - } - function visitBindingElement(node) { - if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) { - node = transformNamedEvaluation(context, node, canIgnoreEmptyStringLiteralInAssignedName(node.initializer)); - } - return visitEachChild(node, visitor, context); - } - function visitDestructuringAssignmentTarget(node) { - if (isObjectLiteralExpression(node) || isArrayLiteralExpression(node)) { - return visitAssignmentPattern(node); - } - if (isSuperProperty(node) && classThis && classSuper) { - var propertyName = isElementAccessExpression(node) ? visitNode(node.argumentExpression, visitor, isExpression) : isIdentifier(node.name) ? factory2.createStringLiteralFromNode(node.name) : void 0; - if (propertyName) { - var paramName = factory2.createTempVariable( - /*recordTempVariable*/ - void 0); - var expression = factory2.createAssignmentTargetWrapper(paramName, factory2.createReflectSetCall(classSuper, propertyName, paramName, classThis)); - setOriginalNode(expression, node); - setTextRange(expression, node); - return expression; - } - } - return visitEachChild(node, visitor, context); - } - function visitAssignmentElement(node) { - if (isAssignmentExpression(node, - /*excludeCompoundAssignment*/ - true)) { - if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) { - node = transformNamedEvaluation(context, node, canIgnoreEmptyStringLiteralInAssignedName(node.right)); - } - var assignmentTarget = visitDestructuringAssignmentTarget(node.left); - var initializer = visitNode(node.right, visitor, isExpression); - return factory2.updateBinaryExpression(node, assignmentTarget, node.operatorToken, initializer); - } - else { - return visitDestructuringAssignmentTarget(node); - } - } - function visitAssignmentRestElement(node) { - if (isLeftHandSideExpression(node.expression)) { - var expression = visitDestructuringAssignmentTarget(node.expression); - return factory2.updateSpreadElement(node, expression); - } - return visitEachChild(node, visitor, context); - } - function visitArrayAssignmentElement(node) { - Debug.assertNode(node, isArrayBindingOrAssignmentElement); - if (isSpreadElement(node)) - return visitAssignmentRestElement(node); - if (!isOmittedExpression(node)) - return visitAssignmentElement(node); - return visitEachChild(node, visitor, context); - } - function visitAssignmentProperty(node) { - var name = visitNode(node.name, visitor, isPropertyName); - if (isAssignmentExpression(node.initializer, - /*excludeCompoundAssignment*/ - true)) { - var assignmentElement = visitAssignmentElement(node.initializer); - return factory2.updatePropertyAssignment(node, name, assignmentElement); - } - if (isLeftHandSideExpression(node.initializer)) { - var assignmentElement = visitDestructuringAssignmentTarget(node.initializer); - return factory2.updatePropertyAssignment(node, name, assignmentElement); - } - return visitEachChild(node, visitor, context); - } - function visitShorthandAssignmentProperty(node) { - if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) { - node = transformNamedEvaluation(context, node, canIgnoreEmptyStringLiteralInAssignedName(node.objectAssignmentInitializer)); - } - return visitEachChild(node, visitor, context); - } - function visitAssignmentRestProperty(node) { - if (isLeftHandSideExpression(node.expression)) { - var expression = visitDestructuringAssignmentTarget(node.expression); - return factory2.updateSpreadAssignment(node, expression); - } - return visitEachChild(node, visitor, context); - } - function visitObjectAssignmentElement(node) { - Debug.assertNode(node, isObjectBindingOrAssignmentElement); - if (isSpreadAssignment(node)) - return visitAssignmentRestProperty(node); - if (isShorthandPropertyAssignment(node)) - return visitShorthandAssignmentProperty(node); - if (isPropertyAssignment(node)) - return visitAssignmentProperty(node); - return visitEachChild(node, visitor, context); - } - function visitAssignmentPattern(node) { - if (isArrayLiteralExpression(node)) { - var elements = visitNodes2(node.elements, visitArrayAssignmentElement, isExpression); - return factory2.updateArrayLiteralExpression(node, elements); - } - else { - var properties = visitNodes2(node.properties, visitObjectAssignmentElement, isObjectLiteralElementLike); - return factory2.updateObjectLiteralExpression(node, properties); - } - } - function visitExportAssignment(node) { - if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) { - node = transformNamedEvaluation(context, node, canIgnoreEmptyStringLiteralInAssignedName(node.expression)); - } - return visitEachChild(node, visitor, context); - } - function visitParenthesizedExpression(node, discarded) { - var visitorFunc = discarded ? discardedValueVisitor : visitor; - var expression = visitNode(node.expression, visitorFunc, isExpression); - return factory2.updateParenthesizedExpression(node, expression); - } - function visitPartiallyEmittedExpression(node, discarded) { - var visitorFunc = discarded ? discardedValueVisitor : visitor; - var expression = visitNode(node.expression, visitorFunc, isExpression); - return factory2.updatePartiallyEmittedExpression(node, expression); - } - function injectPendingExpressions(expression) { - if (some(pendingExpressions)) { - if (isParenthesizedExpression(expression)) { - pendingExpressions.push(expression.expression); - expression = factory2.updateParenthesizedExpression(expression, factory2.inlineExpressions(pendingExpressions)); - } - else { - pendingExpressions.push(expression); - expression = factory2.inlineExpressions(pendingExpressions); - } - pendingExpressions = void 0; - } - return expression; - } - function transformAllDecoratorsOfDeclaration(allDecorators) { - if (!allDecorators) { - return void 0; - } - var decoratorExpressions = []; - addRange(decoratorExpressions, map(allDecorators.decorators, transformDecorator)); - return decoratorExpressions; - } - function transformDecorator(decorator) { - var expression = visitNode(decorator.expression, visitor, isExpression); - setEmitFlags(expression, 3072 /* NoComments */); - var innerExpression = skipOuterExpressions(expression); - if (isAccessExpression(innerExpression)) { - var _t = factory2.createCallBinding(expression, hoistVariableDeclaration, languageVersion, - /*cacheIdentifiers*/ - true), target = _t.target, thisArg = _t.thisArg; - return factory2.restoreOuterExpressions(expression, factory2.createFunctionBindCall(target, thisArg, [])); - } - return expression; - } - function createDescriptorMethod(original, name, modifiers, asteriskToken, kind, parameters, body) { - var func = factory2.createFunctionExpression(modifiers, asteriskToken, - /*name*/ - void 0, - /*typeParameters*/ - void 0, parameters, - /*type*/ - void 0, body !== null && body !== void 0 ? body : factory2.createBlock([])); - setOriginalNode(func, original); - setSourceMapRange(func, moveRangePastDecorators(original)); - setEmitFlags(func, 3072 /* NoComments */); - var prefix = kind === "get" || kind === "set" ? kind : void 0; - var functionName = factory2.createStringLiteralFromNode(name, - /*isSingleQuote*/ - void 0); - var namedFunction = emitHelpers().createSetFunctionNameHelper(func, functionName, prefix); - var method = factory2.createPropertyAssignment(factory2.createIdentifier(kind), namedFunction); - setOriginalNode(method, original); - setSourceMapRange(method, moveRangePastDecorators(original)); - setEmitFlags(method, 3072 /* NoComments */); - return method; - } - function createMethodDescriptorObject(node, modifiers) { - return factory2.createObjectLiteralExpression([ - createDescriptorMethod(node, node.name, modifiers, node.asteriskToken, "value", visitNodes2(node.parameters, visitor, isParameter), visitNode(node.body, visitor, isBlock)) - ]); - } - function createGetAccessorDescriptorObject(node, modifiers) { - return factory2.createObjectLiteralExpression([ - createDescriptorMethod(node, node.name, modifiers, - /*asteriskToken*/ - void 0, "get", [], visitNode(node.body, visitor, isBlock)) - ]); - } - function createSetAccessorDescriptorObject(node, modifiers) { - return factory2.createObjectLiteralExpression([ - createDescriptorMethod(node, node.name, modifiers, - /*asteriskToken*/ - void 0, "set", visitNodes2(node.parameters, visitor, isParameter), visitNode(node.body, visitor, isBlock)) - ]); - } - function createAccessorPropertyDescriptorObject(node, modifiers) { - return factory2.createObjectLiteralExpression([ - createDescriptorMethod(node, node.name, modifiers, - /*asteriskToken*/ - void 0, "get", [], factory2.createBlock([ - factory2.createReturnStatement(factory2.createPropertyAccessExpression(factory2.createThis(), factory2.getGeneratedPrivateNameForNode(node.name))) - ])), - createDescriptorMethod(node, node.name, modifiers, - /*asteriskToken*/ - void 0, "set", [factory2.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, "value")], factory2.createBlock([ - factory2.createExpressionStatement(factory2.createAssignment(factory2.createPropertyAccessExpression(factory2.createThis(), factory2.getGeneratedPrivateNameForNode(node.name)), factory2.createIdentifier("value"))) - ])) - ]); - } - function createMethodDescriptorForwarder(modifiers, name, descriptorName) { - modifiers = visitNodes2(modifiers, function (node) { return isStaticModifier(node) ? node : void 0; }, isModifier); - return factory2.createGetAccessorDeclaration(modifiers, name, [], - /*type*/ - void 0, factory2.createBlock([ - factory2.createReturnStatement(factory2.createPropertyAccessExpression(descriptorName, factory2.createIdentifier("value"))) - ])); - } - function createGetAccessorDescriptorForwarder(modifiers, name, descriptorName) { - modifiers = visitNodes2(modifiers, function (node) { return isStaticModifier(node) ? node : void 0; }, isModifier); - return factory2.createGetAccessorDeclaration(modifiers, name, [], - /*type*/ - void 0, factory2.createBlock([ - factory2.createReturnStatement(factory2.createFunctionCallCall(factory2.createPropertyAccessExpression(descriptorName, factory2.createIdentifier("get")), factory2.createThis(), [])) - ])); - } - function createSetAccessorDescriptorForwarder(modifiers, name, descriptorName) { - modifiers = visitNodes2(modifiers, function (node) { return isStaticModifier(node) ? node : void 0; }, isModifier); - return factory2.createSetAccessorDeclaration(modifiers, name, [factory2.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, "value")], factory2.createBlock([ - factory2.createReturnStatement(factory2.createFunctionCallCall(factory2.createPropertyAccessExpression(descriptorName, factory2.createIdentifier("set")), factory2.createThis(), [factory2.createIdentifier("value")])) - ])); - } - function createMetadata(name, classSuper2) { - var varDecl = factory2.createVariableDeclaration(name, - /*exclamationToken*/ - void 0, - /*type*/ - void 0, factory2.createConditionalExpression(factory2.createLogicalAnd(factory2.createTypeCheck(factory2.createIdentifier("Symbol"), "function"), factory2.createPropertyAccessExpression(factory2.createIdentifier("Symbol"), "metadata")), factory2.createToken(58 /* QuestionToken */), factory2.createCallExpression(factory2.createPropertyAccessExpression(factory2.createIdentifier("Object"), "create"), - /*typeArguments*/ - void 0, [classSuper2 ? createSymbolMetadataReference(classSuper2) : factory2.createNull()]), factory2.createToken(59 /* ColonToken */), factory2.createVoidZero())); - return factory2.createVariableStatement( - /*modifiers*/ - void 0, factory2.createVariableDeclarationList([varDecl], 2 /* Const */)); - } - function createSymbolMetadata(target, value) { - var defineProperty = factory2.createObjectDefinePropertyCall(target, factory2.createPropertyAccessExpression(factory2.createIdentifier("Symbol"), "metadata"), factory2.createPropertyDescriptor({ configurable: true, writable: true, enumerable: true, value: value }, - /*singleLine*/ - true)); - return setEmitFlags(factory2.createIfStatement(value, factory2.createExpressionStatement(defineProperty)), 1 /* SingleLine */); - } - function createSymbolMetadataReference(classSuper2) { - return factory2.createBinaryExpression(factory2.createElementAccessExpression(classSuper2, factory2.createPropertyAccessExpression(factory2.createIdentifier("Symbol"), "metadata")), 61 /* QuestionQuestionToken */, factory2.createNull()); - } -} -// src/compiler/transformers/es2017.ts -function transformES2017(context) { - var factory2 = context.factory, emitHelpers = context.getEmitHelperFactory, resumeLexicalEnvironment = context.resumeLexicalEnvironment, endLexicalEnvironment = context.endLexicalEnvironment, hoistVariableDeclaration = context.hoistVariableDeclaration; - var resolver = context.getEmitResolver(); - var compilerOptions = context.getCompilerOptions(); - var languageVersion = getEmitScriptTarget(compilerOptions); - var enabledSubstitutions; - var enclosingSuperContainerFlags = 0; - var enclosingFunctionParameterNames; - var capturedSuperProperties; - var hasSuperElementAccess; - var substitutedSuperAccessors = []; - var contextFlags = 0 /* None */; - var previousOnEmitNode = context.onEmitNode; - var previousOnSubstituteNode = context.onSubstituteNode; - context.onEmitNode = onEmitNode; - context.onSubstituteNode = onSubstituteNode; - return chainBundle(context, transformSourceFile); - function transformSourceFile(node) { - if (node.isDeclarationFile) { - return node; - } - setContextFlag(1 /* NonTopLevel */, false); - setContextFlag(2 /* HasLexicalThis */, !isEffectiveStrictModeSourceFile(node, compilerOptions)); - var visited = visitEachChild(node, visitor, context); - addEmitHelpers(visited, context.readEmitHelpers()); - return visited; - } - function setContextFlag(flag, val) { - contextFlags = val ? contextFlags | flag : contextFlags & ~flag; - } - function inContext(flags) { - return (contextFlags & flags) !== 0; - } - function inTopLevelContext() { - return !inContext(1 /* NonTopLevel */); - } - function inHasLexicalThisContext() { - return inContext(2 /* HasLexicalThis */); - } - function doWithContext(flags, cb, value) { - var contextFlagsToSet = flags & ~contextFlags; - if (contextFlagsToSet) { - setContextFlag(contextFlagsToSet, - /*val*/ - true); - var result = cb(value); - setContextFlag(contextFlagsToSet, - /*val*/ - false); - return result; - } - return cb(value); - } - function visitDefault(node) { - return visitEachChild(node, visitor, context); - } - function visitor(node) { - if ((node.transformFlags & 256 /* ContainsES2017 */) === 0) { - return node; - } - switch (node.kind) { - case 134 /* AsyncKeyword */: - return void 0; - case 223 /* AwaitExpression */: - return visitAwaitExpression(node); - case 174 /* MethodDeclaration */: - return doWithContext(1 /* NonTopLevel */ | 2 /* HasLexicalThis */, visitMethodDeclaration, node); - case 262 /* FunctionDeclaration */: - return doWithContext(1 /* NonTopLevel */ | 2 /* HasLexicalThis */, visitFunctionDeclaration, node); - case 218 /* FunctionExpression */: - return doWithContext(1 /* NonTopLevel */ | 2 /* HasLexicalThis */, visitFunctionExpression, node); - case 219 /* ArrowFunction */: - return doWithContext(1 /* NonTopLevel */, visitArrowFunction, node); - case 211 /* PropertyAccessExpression */: - if (capturedSuperProperties && isPropertyAccessExpression(node) && node.expression.kind === 108 /* SuperKeyword */) { - capturedSuperProperties.add(node.name.escapedText); - } - return visitEachChild(node, visitor, context); - case 212 /* ElementAccessExpression */: - if (capturedSuperProperties && node.expression.kind === 108 /* SuperKeyword */) { - hasSuperElementAccess = true; - } - return visitEachChild(node, visitor, context); - case 177 /* GetAccessor */: - return doWithContext(1 /* NonTopLevel */ | 2 /* HasLexicalThis */, visitGetAccessorDeclaration, node); - case 178 /* SetAccessor */: - return doWithContext(1 /* NonTopLevel */ | 2 /* HasLexicalThis */, visitSetAccessorDeclaration, node); - case 176 /* Constructor */: - return doWithContext(1 /* NonTopLevel */ | 2 /* HasLexicalThis */, visitConstructorDeclaration, node); - case 263 /* ClassDeclaration */: - case 231 /* ClassExpression */: - return doWithContext(1 /* NonTopLevel */ | 2 /* HasLexicalThis */, visitDefault, node); - default: - return visitEachChild(node, visitor, context); - } - } - function asyncBodyVisitor(node) { - if (isNodeWithPossibleHoistedDeclaration(node)) { - switch (node.kind) { - case 243 /* VariableStatement */: - return visitVariableStatementInAsyncBody(node); - case 248 /* ForStatement */: - return visitForStatementInAsyncBody(node); - case 249 /* ForInStatement */: - return visitForInStatementInAsyncBody(node); - case 250 /* ForOfStatement */: - return visitForOfStatementInAsyncBody(node); - case 299 /* CatchClause */: - return visitCatchClauseInAsyncBody(node); - case 241 /* Block */: - case 255 /* SwitchStatement */: - case 269 /* CaseBlock */: - case 296 /* CaseClause */: - case 297 /* DefaultClause */: - case 258 /* TryStatement */: - case 246 /* DoStatement */: - case 247 /* WhileStatement */: - case 245 /* IfStatement */: - case 254 /* WithStatement */: - case 256 /* LabeledStatement */: - return visitEachChild(node, asyncBodyVisitor, context); - default: - return Debug.assertNever(node, "Unhandled node."); - } - } - return visitor(node); - } - function visitCatchClauseInAsyncBody(node) { - var catchClauseNames = /* @__PURE__ */ new Set(); - recordDeclarationName(node.variableDeclaration, catchClauseNames); - var catchClauseUnshadowedNames; - catchClauseNames.forEach(function (_, escapedName) { - if (enclosingFunctionParameterNames.has(escapedName)) { - if (!catchClauseUnshadowedNames) { - catchClauseUnshadowedNames = new Set(enclosingFunctionParameterNames); - } - catchClauseUnshadowedNames.delete(escapedName); - } - }); - if (catchClauseUnshadowedNames) { - var savedEnclosingFunctionParameterNames = enclosingFunctionParameterNames; - enclosingFunctionParameterNames = catchClauseUnshadowedNames; - var result = visitEachChild(node, asyncBodyVisitor, context); - enclosingFunctionParameterNames = savedEnclosingFunctionParameterNames; - return result; - } - else { - return visitEachChild(node, asyncBodyVisitor, context); - } - } - function visitVariableStatementInAsyncBody(node) { - if (isVariableDeclarationListWithCollidingName(node.declarationList)) { - var expression = visitVariableDeclarationListWithCollidingNames(node.declarationList, - /*hasReceiver*/ - false); - return expression ? factory2.createExpressionStatement(expression) : void 0; - } - return visitEachChild(node, visitor, context); - } - function visitForInStatementInAsyncBody(node) { - return factory2.updateForInStatement(node, isVariableDeclarationListWithCollidingName(node.initializer) ? visitVariableDeclarationListWithCollidingNames(node.initializer, - /*hasReceiver*/ - true) : Debug.checkDefined(visitNode(node.initializer, visitor, isForInitializer)), Debug.checkDefined(visitNode(node.expression, visitor, isExpression)), visitIterationBody(node.statement, asyncBodyVisitor, context)); - } - function visitForOfStatementInAsyncBody(node) { - return factory2.updateForOfStatement(node, visitNode(node.awaitModifier, visitor, isAwaitKeyword), isVariableDeclarationListWithCollidingName(node.initializer) ? visitVariableDeclarationListWithCollidingNames(node.initializer, - /*hasReceiver*/ - true) : Debug.checkDefined(visitNode(node.initializer, visitor, isForInitializer)), Debug.checkDefined(visitNode(node.expression, visitor, isExpression)), visitIterationBody(node.statement, asyncBodyVisitor, context)); - } - function visitForStatementInAsyncBody(node) { - var initializer = node.initializer; - return factory2.updateForStatement(node, isVariableDeclarationListWithCollidingName(initializer) ? visitVariableDeclarationListWithCollidingNames(initializer, - /*hasReceiver*/ - false) : visitNode(node.initializer, visitor, isForInitializer), visitNode(node.condition, visitor, isExpression), visitNode(node.incrementor, visitor, isExpression), visitIterationBody(node.statement, asyncBodyVisitor, context)); - } - function visitAwaitExpression(node) { - if (inTopLevelContext()) { - return visitEachChild(node, visitor, context); - } - return setOriginalNode(setTextRange(factory2.createYieldExpression( - /*asteriskToken*/ - void 0, visitNode(node.expression, visitor, isExpression)), node), node); - } - function visitConstructorDeclaration(node) { - return factory2.updateConstructorDeclaration(node, visitNodes2(node.modifiers, visitor, isModifier), visitParameterList(node.parameters, visitor, context), transformMethodBody(node)); - } - function visitMethodDeclaration(node) { - return factory2.updateMethodDeclaration(node, visitNodes2(node.modifiers, visitor, isModifierLike), node.asteriskToken, node.name, - /*questionToken*/ - void 0, - /*typeParameters*/ - void 0, visitParameterList(node.parameters, visitor, context), - /*type*/ - void 0, getFunctionFlags(node) & 2 /* Async */ ? transformAsyncFunctionBody(node) : transformMethodBody(node)); - } - function visitGetAccessorDeclaration(node) { - return factory2.updateGetAccessorDeclaration(node, visitNodes2(node.modifiers, visitor, isModifierLike), node.name, visitParameterList(node.parameters, visitor, context), - /*type*/ - void 0, transformMethodBody(node)); - } - function visitSetAccessorDeclaration(node) { - return factory2.updateSetAccessorDeclaration(node, visitNodes2(node.modifiers, visitor, isModifierLike), node.name, visitParameterList(node.parameters, visitor, context), transformMethodBody(node)); - } - function visitFunctionDeclaration(node) { - return factory2.updateFunctionDeclaration(node, visitNodes2(node.modifiers, visitor, isModifierLike), node.asteriskToken, node.name, - /*typeParameters*/ - void 0, visitParameterList(node.parameters, visitor, context), - /*type*/ - void 0, getFunctionFlags(node) & 2 /* Async */ ? transformAsyncFunctionBody(node) : visitFunctionBody(node.body, visitor, context)); - } - function visitFunctionExpression(node) { - return factory2.updateFunctionExpression(node, visitNodes2(node.modifiers, visitor, isModifier), node.asteriskToken, node.name, - /*typeParameters*/ - void 0, visitParameterList(node.parameters, visitor, context), - /*type*/ - void 0, getFunctionFlags(node) & 2 /* Async */ ? transformAsyncFunctionBody(node) : visitFunctionBody(node.body, visitor, context)); - } - function visitArrowFunction(node) { - return factory2.updateArrowFunction(node, visitNodes2(node.modifiers, visitor, isModifier), - /*typeParameters*/ - void 0, visitParameterList(node.parameters, visitor, context), - /*type*/ - void 0, node.equalsGreaterThanToken, getFunctionFlags(node) & 2 /* Async */ ? transformAsyncFunctionBody(node) : visitFunctionBody(node.body, visitor, context)); - } - function recordDeclarationName(_t, names) { - var e_479, _u; - var name = _t.name; - if (isIdentifier(name)) { - names.add(name.escapedText); - } - else { - try { - for (var _v = __values(name.elements), _w = _v.next(); !_w.done; _w = _v.next()) { - var element = _w.value; - if (!isOmittedExpression(element)) { - recordDeclarationName(element, names); - } - } - } - catch (e_479_1) { e_479 = { error: e_479_1 }; } - finally { - try { - if (_w && !_w.done && (_u = _v.return)) _u.call(_v); - } - finally { if (e_479) throw e_479.error; } - } - } - } - function isVariableDeclarationListWithCollidingName(node) { - return !!node && isVariableDeclarationList(node) && !(node.flags & 7 /* BlockScoped */) && node.declarations.some(collidesWithParameterName); - } - function visitVariableDeclarationListWithCollidingNames(node, hasReceiver) { - hoistVariableDeclarationList(node); - var variables = getInitializedVariables(node); - if (variables.length === 0) { - if (hasReceiver) { - return visitNode(factory2.converters.convertToAssignmentElementTarget(node.declarations[0].name), visitor, isExpression); - } - return void 0; - } - return factory2.inlineExpressions(map(variables, transformInitializedVariable)); - } - function hoistVariableDeclarationList(node) { - forEach(node.declarations, hoistVariable); - } - function hoistVariable(_t) { - var e_480, _u; - var name = _t.name; - if (isIdentifier(name)) { - hoistVariableDeclaration(name); - } - else { - try { - for (var _v = __values(name.elements), _w = _v.next(); !_w.done; _w = _v.next()) { - var element = _w.value; - if (!isOmittedExpression(element)) { - hoistVariable(element); - } - } - } - catch (e_480_1) { e_480 = { error: e_480_1 }; } - finally { - try { - if (_w && !_w.done && (_u = _v.return)) _u.call(_v); - } - finally { if (e_480) throw e_480.error; } - } - } - } - function transformInitializedVariable(node) { - var converted = setSourceMapRange(factory2.createAssignment(factory2.converters.convertToAssignmentElementTarget(node.name), node.initializer), node); - return Debug.checkDefined(visitNode(converted, visitor, isExpression)); - } - function collidesWithParameterName(_t) { - var e_481, _u; - var name = _t.name; - if (isIdentifier(name)) { - return enclosingFunctionParameterNames.has(name.escapedText); - } - else { - try { - for (var _v = __values(name.elements), _w = _v.next(); !_w.done; _w = _v.next()) { - var element = _w.value; - if (!isOmittedExpression(element) && collidesWithParameterName(element)) { - return true; - } - } - } - catch (e_481_1) { e_481 = { error: e_481_1 }; } - finally { - try { - if (_w && !_w.done && (_u = _v.return)) _u.call(_v); - } - finally { if (e_481) throw e_481.error; } - } - } - return false; - } - function transformMethodBody(node) { - Debug.assertIsDefined(node.body); - var savedCapturedSuperProperties = capturedSuperProperties; - var savedHasSuperElementAccess = hasSuperElementAccess; - capturedSuperProperties = /* @__PURE__ */ new Set(); - hasSuperElementAccess = false; - var updated = visitFunctionBody(node.body, visitor, context); - var originalMethod = getOriginalNode(node, isFunctionLikeDeclaration); - var emitSuperHelpers = languageVersion >= 2 /* ES2015 */ && resolver.getNodeCheckFlags(node) & (256 /* MethodWithSuperPropertyAssignmentInAsync */ | 128 /* MethodWithSuperPropertyAccessInAsync */) && (getFunctionFlags(originalMethod) & 3 /* AsyncGenerator */) !== 3 /* AsyncGenerator */; - if (emitSuperHelpers) { - enableSubstitutionForAsyncMethodsWithSuper(); - if (capturedSuperProperties.size) { - var variableStatement = createSuperAccessVariableStatement(factory2, resolver, node, capturedSuperProperties); - substitutedSuperAccessors[getNodeId(variableStatement)] = true; - var statements = updated.statements.slice(); - insertStatementsAfterStandardPrologue(statements, [variableStatement]); - updated = factory2.updateBlock(updated, statements); - } - if (hasSuperElementAccess) { - if (resolver.getNodeCheckFlags(node) & 256 /* MethodWithSuperPropertyAssignmentInAsync */) { - addEmitHelper(updated, advancedAsyncSuperHelper); - } - else if (resolver.getNodeCheckFlags(node) & 128 /* MethodWithSuperPropertyAccessInAsync */) { - addEmitHelper(updated, asyncSuperHelper); - } - } - } - capturedSuperProperties = savedCapturedSuperProperties; - hasSuperElementAccess = savedHasSuperElementAccess; - return updated; - } - function transformAsyncFunctionBody(node) { - var e_482, _t; - resumeLexicalEnvironment(); - var original = getOriginalNode(node, isFunctionLike); - var nodeType = original.type; - var promiseConstructor = languageVersion < 2 /* ES2015 */ ? getPromiseConstructor(nodeType) : void 0; - var isArrowFunction2 = node.kind === 219 /* ArrowFunction */; - var hasLexicalArguments = (resolver.getNodeCheckFlags(node) & 512 /* CaptureArguments */) !== 0; - var savedEnclosingFunctionParameterNames = enclosingFunctionParameterNames; - enclosingFunctionParameterNames = /* @__PURE__ */ new Set(); - try { - for (var _u = __values(node.parameters), _v = _u.next(); !_v.done; _v = _u.next()) { - var parameter = _v.value; - recordDeclarationName(parameter, enclosingFunctionParameterNames); - } - } - catch (e_482_1) { e_482 = { error: e_482_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_482) throw e_482.error; } - } - var savedCapturedSuperProperties = capturedSuperProperties; - var savedHasSuperElementAccess = hasSuperElementAccess; - if (!isArrowFunction2) { - capturedSuperProperties = /* @__PURE__ */ new Set(); - hasSuperElementAccess = false; - } - var result; - if (!isArrowFunction2) { - var statements = []; - var statementOffset = factory2.copyPrologue(node.body.statements, statements, - /*ensureUseStrict*/ - false, visitor); - statements.push(factory2.createReturnStatement(emitHelpers().createAwaiterHelper(inHasLexicalThisContext(), hasLexicalArguments, promiseConstructor, transformAsyncFunctionBodyWorker(node.body, statementOffset)))); - insertStatementsAfterStandardPrologue(statements, endLexicalEnvironment()); - var emitSuperHelpers = languageVersion >= 2 /* ES2015 */ && resolver.getNodeCheckFlags(node) & (256 /* MethodWithSuperPropertyAssignmentInAsync */ | 128 /* MethodWithSuperPropertyAccessInAsync */); - if (emitSuperHelpers) { - enableSubstitutionForAsyncMethodsWithSuper(); - if (capturedSuperProperties.size) { - var variableStatement = createSuperAccessVariableStatement(factory2, resolver, node, capturedSuperProperties); - substitutedSuperAccessors[getNodeId(variableStatement)] = true; - insertStatementsAfterStandardPrologue(statements, [variableStatement]); - } - } - var block = factory2.createBlock(statements, - /*multiLine*/ - true); - setTextRange(block, node.body); - if (emitSuperHelpers && hasSuperElementAccess) { - if (resolver.getNodeCheckFlags(node) & 256 /* MethodWithSuperPropertyAssignmentInAsync */) { - addEmitHelper(block, advancedAsyncSuperHelper); - } - else if (resolver.getNodeCheckFlags(node) & 128 /* MethodWithSuperPropertyAccessInAsync */) { - addEmitHelper(block, asyncSuperHelper); - } - } - result = block; - } - else { - var expression = emitHelpers().createAwaiterHelper(inHasLexicalThisContext(), hasLexicalArguments, promiseConstructor, transformAsyncFunctionBodyWorker(node.body)); - var declarations = endLexicalEnvironment(); - if (some(declarations)) { - var block = factory2.converters.convertToFunctionBlock(expression); - result = factory2.updateBlock(block, setTextRange(factory2.createNodeArray(concatenate(declarations, block.statements)), block.statements)); - } - else { - result = expression; - } - } - enclosingFunctionParameterNames = savedEnclosingFunctionParameterNames; - if (!isArrowFunction2) { - capturedSuperProperties = savedCapturedSuperProperties; - hasSuperElementAccess = savedHasSuperElementAccess; - } - return result; - } - function transformAsyncFunctionBodyWorker(body, start2) { - if (isBlock(body)) { - return factory2.updateBlock(body, visitNodes2(body.statements, asyncBodyVisitor, isStatement, start2)); - } - else { - return factory2.converters.convertToFunctionBlock(Debug.checkDefined(visitNode(body, asyncBodyVisitor, isConciseBody))); - } - } - function getPromiseConstructor(type) { - var typeName = type && getEntityNameFromTypeNode(type); - if (typeName && isEntityName(typeName)) { - var serializationKind = resolver.getTypeReferenceSerializationKind(typeName); - if (serializationKind === 1 /* TypeWithConstructSignatureAndValue */ || serializationKind === 0 /* Unknown */) { - return typeName; - } - } - return void 0; - } - function enableSubstitutionForAsyncMethodsWithSuper() { - if ((enabledSubstitutions & 1 /* AsyncMethodsWithSuper */) === 0) { - enabledSubstitutions |= 1 /* AsyncMethodsWithSuper */; - context.enableSubstitution(213 /* CallExpression */); - context.enableSubstitution(211 /* PropertyAccessExpression */); - context.enableSubstitution(212 /* ElementAccessExpression */); - context.enableEmitNotification(263 /* ClassDeclaration */); - context.enableEmitNotification(174 /* MethodDeclaration */); - context.enableEmitNotification(177 /* GetAccessor */); - context.enableEmitNotification(178 /* SetAccessor */); - context.enableEmitNotification(176 /* Constructor */); - context.enableEmitNotification(243 /* VariableStatement */); - } - } - function onEmitNode(hint, node, emitCallback) { - if (enabledSubstitutions & 1 /* AsyncMethodsWithSuper */ && isSuperContainer(node)) { - var superContainerFlags = resolver.getNodeCheckFlags(node) & (128 /* MethodWithSuperPropertyAccessInAsync */ | 256 /* MethodWithSuperPropertyAssignmentInAsync */); - if (superContainerFlags !== enclosingSuperContainerFlags) { - var savedEnclosingSuperContainerFlags = enclosingSuperContainerFlags; - enclosingSuperContainerFlags = superContainerFlags; - previousOnEmitNode(hint, node, emitCallback); - enclosingSuperContainerFlags = savedEnclosingSuperContainerFlags; - return; - } - } - else if (enabledSubstitutions && substitutedSuperAccessors[getNodeId(node)]) { - var savedEnclosingSuperContainerFlags = enclosingSuperContainerFlags; - enclosingSuperContainerFlags = 0; - previousOnEmitNode(hint, node, emitCallback); - enclosingSuperContainerFlags = savedEnclosingSuperContainerFlags; - return; - } - previousOnEmitNode(hint, node, emitCallback); - } - function onSubstituteNode(hint, node) { - node = previousOnSubstituteNode(hint, node); - if (hint === 1 /* Expression */ && enclosingSuperContainerFlags) { - return substituteExpression(node); - } - return node; - } - function substituteExpression(node) { - switch (node.kind) { - case 211 /* PropertyAccessExpression */: - return substitutePropertyAccessExpression(node); - case 212 /* ElementAccessExpression */: - return substituteElementAccessExpression(node); - case 213 /* CallExpression */: - return substituteCallExpression(node); - } - return node; - } - function substitutePropertyAccessExpression(node) { - if (node.expression.kind === 108 /* SuperKeyword */) { - return setTextRange(factory2.createPropertyAccessExpression(factory2.createUniqueName("_super", 16 /* Optimistic */ | 32 /* FileLevel */), node.name), node); - } - return node; - } - function substituteElementAccessExpression(node) { - if (node.expression.kind === 108 /* SuperKeyword */) { - return createSuperElementAccessInAsyncMethod(node.argumentExpression, node); - } - return node; - } - function substituteCallExpression(node) { - var expression = node.expression; - if (isSuperProperty(expression)) { - var argumentExpression = isPropertyAccessExpression(expression) ? substitutePropertyAccessExpression(expression) : substituteElementAccessExpression(expression); - return factory2.createCallExpression(factory2.createPropertyAccessExpression(argumentExpression, "call"), - /*typeArguments*/ - void 0, __spreadArray([ - factory2.createThis() - ], __read(node.arguments), false)); - } - return node; - } - function isSuperContainer(node) { - var kind = node.kind; - return kind === 263 /* ClassDeclaration */ || kind === 176 /* Constructor */ || kind === 174 /* MethodDeclaration */ || kind === 177 /* GetAccessor */ || kind === 178 /* SetAccessor */; - } - function createSuperElementAccessInAsyncMethod(argumentExpression, location) { - if (enclosingSuperContainerFlags & 256 /* MethodWithSuperPropertyAssignmentInAsync */) { - return setTextRange(factory2.createPropertyAccessExpression(factory2.createCallExpression(factory2.createUniqueName("_superIndex", 16 /* Optimistic */ | 32 /* FileLevel */), - /*typeArguments*/ - void 0, [argumentExpression]), "value"), location); - } - else { - return setTextRange(factory2.createCallExpression(factory2.createUniqueName("_superIndex", 16 /* Optimistic */ | 32 /* FileLevel */), - /*typeArguments*/ - void 0, [argumentExpression]), location); - } - } -} -function createSuperAccessVariableStatement(factory2, resolver, node, names) { - var hasBinding = (resolver.getNodeCheckFlags(node) & 256 /* MethodWithSuperPropertyAssignmentInAsync */) !== 0; - var accessors = []; - names.forEach(function (_, key) { - var name = unescapeLeadingUnderscores(key); - var getterAndSetter = []; - getterAndSetter.push(factory2.createPropertyAssignment("get", factory2.createArrowFunction( - /*modifiers*/ - void 0, - /*typeParameters*/ - void 0, - /* parameters */ - [], - /*type*/ - void 0, - /*equalsGreaterThanToken*/ - void 0, setEmitFlags(factory2.createPropertyAccessExpression(setEmitFlags(factory2.createSuper(), 8 /* NoSubstitution */), name), 8 /* NoSubstitution */)))); - if (hasBinding) { - getterAndSetter.push(factory2.createPropertyAssignment("set", factory2.createArrowFunction( - /*modifiers*/ - void 0, - /*typeParameters*/ - void 0, - /* parameters */ - [ - factory2.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, "v", - /*questionToken*/ - void 0, - /*type*/ - void 0, - /*initializer*/ - void 0) - ], - /*type*/ - void 0, - /*equalsGreaterThanToken*/ - void 0, factory2.createAssignment(setEmitFlags(factory2.createPropertyAccessExpression(setEmitFlags(factory2.createSuper(), 8 /* NoSubstitution */), name), 8 /* NoSubstitution */), factory2.createIdentifier("v"))))); - } - accessors.push(factory2.createPropertyAssignment(name, factory2.createObjectLiteralExpression(getterAndSetter))); - }); - return factory2.createVariableStatement( - /*modifiers*/ - void 0, factory2.createVariableDeclarationList([ - factory2.createVariableDeclaration(factory2.createUniqueName("_super", 16 /* Optimistic */ | 32 /* FileLevel */), - /*exclamationToken*/ - void 0, - /*type*/ - void 0, factory2.createCallExpression(factory2.createPropertyAccessExpression(factory2.createIdentifier("Object"), "create"), - /*typeArguments*/ - void 0, [ - factory2.createNull(), - factory2.createObjectLiteralExpression(accessors, - /*multiLine*/ - true) - ])) - ], 2 /* Const */)); -} -// src/compiler/transformers/es2018.ts -function transformES2018(context) { - var factory2 = context.factory, emitHelpers = context.getEmitHelperFactory, resumeLexicalEnvironment = context.resumeLexicalEnvironment, endLexicalEnvironment = context.endLexicalEnvironment, hoistVariableDeclaration = context.hoistVariableDeclaration; - var resolver = context.getEmitResolver(); - var compilerOptions = context.getCompilerOptions(); - var languageVersion = getEmitScriptTarget(compilerOptions); - var previousOnEmitNode = context.onEmitNode; - context.onEmitNode = onEmitNode; - var previousOnSubstituteNode = context.onSubstituteNode; - context.onSubstituteNode = onSubstituteNode; - var exportedVariableStatement = false; - var enabledSubstitutions; - var enclosingFunctionFlags; - var parametersWithPrecedingObjectRestOrSpread; - var enclosingSuperContainerFlags = 0; - var hierarchyFacts = 0; - var currentSourceFile; - var taggedTemplateStringDeclarations; - var capturedSuperProperties; - var hasSuperElementAccess; - var substitutedSuperAccessors = []; - return chainBundle(context, transformSourceFile); - function affectsSubtree(excludeFacts, includeFacts) { - return hierarchyFacts !== (hierarchyFacts & ~excludeFacts | includeFacts); - } - function enterSubtree(excludeFacts, includeFacts) { - var ancestorFacts = hierarchyFacts; - hierarchyFacts = (hierarchyFacts & ~excludeFacts | includeFacts) & 3 /* AncestorFactsMask */; - return ancestorFacts; - } - function exitSubtree(ancestorFacts) { - hierarchyFacts = ancestorFacts; - } - function recordTaggedTemplateString(temp) { - taggedTemplateStringDeclarations = append(taggedTemplateStringDeclarations, factory2.createVariableDeclaration(temp)); - } - function transformSourceFile(node) { - if (node.isDeclarationFile) { - return node; - } - currentSourceFile = node; - var visited = visitSourceFile(node); - addEmitHelpers(visited, context.readEmitHelpers()); - currentSourceFile = void 0; - taggedTemplateStringDeclarations = void 0; - return visited; - } - function visitor(node) { - return visitorWorker(node, - /*expressionResultIsUnused*/ - false); - } - function visitorWithUnusedExpressionResult(node) { - return visitorWorker(node, - /*expressionResultIsUnused*/ - true); - } - function visitorNoAsyncModifier(node) { - if (node.kind === 134 /* AsyncKeyword */) { - return void 0; - } - return node; - } - function doWithHierarchyFacts(cb, value, excludeFacts, includeFacts) { - if (affectsSubtree(excludeFacts, includeFacts)) { - var ancestorFacts = enterSubtree(excludeFacts, includeFacts); - var result = cb(value); - exitSubtree(ancestorFacts); - return result; - } - return cb(value); - } - function visitDefault(node) { - return visitEachChild(node, visitor, context); - } - function visitorWorker(node, expressionResultIsUnused2) { - if ((node.transformFlags & 128 /* ContainsES2018 */) === 0) { - return node; - } - switch (node.kind) { - case 223 /* AwaitExpression */: - return visitAwaitExpression(node); - case 229 /* YieldExpression */: - return visitYieldExpression(node); - case 253 /* ReturnStatement */: - return visitReturnStatement(node); - case 256 /* LabeledStatement */: - return visitLabeledStatement(node); - case 210 /* ObjectLiteralExpression */: - return visitObjectLiteralExpression(node); - case 226 /* BinaryExpression */: - return visitBinaryExpression(node, expressionResultIsUnused2); - case 361 /* CommaListExpression */: - return visitCommaListExpression(node, expressionResultIsUnused2); - case 299 /* CatchClause */: - return visitCatchClause(node); - case 243 /* VariableStatement */: - return visitVariableStatement(node); - case 260 /* VariableDeclaration */: - return visitVariableDeclaration(node); - case 246 /* DoStatement */: - case 247 /* WhileStatement */: - case 249 /* ForInStatement */: - return doWithHierarchyFacts(visitDefault, node, 0 /* IterationStatementExcludes */, 2 /* IterationStatementIncludes */); - case 250 /* ForOfStatement */: - return visitForOfStatement(node, - /*outermostLabeledStatement*/ - void 0); - case 248 /* ForStatement */: - return doWithHierarchyFacts(visitForStatement, node, 0 /* IterationStatementExcludes */, 2 /* IterationStatementIncludes */); - case 222 /* VoidExpression */: - return visitVoidExpression(node); - case 176 /* Constructor */: - return doWithHierarchyFacts(visitConstructorDeclaration, node, 2 /* ClassOrFunctionExcludes */, 1 /* ClassOrFunctionIncludes */); - case 174 /* MethodDeclaration */: - return doWithHierarchyFacts(visitMethodDeclaration, node, 2 /* ClassOrFunctionExcludes */, 1 /* ClassOrFunctionIncludes */); - case 177 /* GetAccessor */: - return doWithHierarchyFacts(visitGetAccessorDeclaration, node, 2 /* ClassOrFunctionExcludes */, 1 /* ClassOrFunctionIncludes */); - case 178 /* SetAccessor */: - return doWithHierarchyFacts(visitSetAccessorDeclaration, node, 2 /* ClassOrFunctionExcludes */, 1 /* ClassOrFunctionIncludes */); - case 262 /* FunctionDeclaration */: - return doWithHierarchyFacts(visitFunctionDeclaration, node, 2 /* ClassOrFunctionExcludes */, 1 /* ClassOrFunctionIncludes */); - case 218 /* FunctionExpression */: - return doWithHierarchyFacts(visitFunctionExpression, node, 2 /* ClassOrFunctionExcludes */, 1 /* ClassOrFunctionIncludes */); - case 219 /* ArrowFunction */: - return doWithHierarchyFacts(visitArrowFunction, node, 2 /* ArrowFunctionExcludes */, 0 /* ArrowFunctionIncludes */); - case 169 /* Parameter */: - return visitParameter(node); - case 244 /* ExpressionStatement */: - return visitExpressionStatement(node); - case 217 /* ParenthesizedExpression */: - return visitParenthesizedExpression(node, expressionResultIsUnused2); - case 215 /* TaggedTemplateExpression */: - return visitTaggedTemplateExpression(node); - case 211 /* PropertyAccessExpression */: - if (capturedSuperProperties && isPropertyAccessExpression(node) && node.expression.kind === 108 /* SuperKeyword */) { - capturedSuperProperties.add(node.name.escapedText); - } - return visitEachChild(node, visitor, context); - case 212 /* ElementAccessExpression */: - if (capturedSuperProperties && node.expression.kind === 108 /* SuperKeyword */) { - hasSuperElementAccess = true; - } - return visitEachChild(node, visitor, context); - case 263 /* ClassDeclaration */: - case 231 /* ClassExpression */: - return doWithHierarchyFacts(visitDefault, node, 2 /* ClassOrFunctionExcludes */, 1 /* ClassOrFunctionIncludes */); - default: - return visitEachChild(node, visitor, context); - } - } - function visitAwaitExpression(node) { - if (enclosingFunctionFlags & 2 /* Async */ && enclosingFunctionFlags & 1 /* Generator */) { - return setOriginalNode(setTextRange(factory2.createYieldExpression( - /*asteriskToken*/ - void 0, emitHelpers().createAwaitHelper(visitNode(node.expression, visitor, isExpression))), - /*location*/ - node), node); - } - return visitEachChild(node, visitor, context); - } - function visitYieldExpression(node) { - if (enclosingFunctionFlags & 2 /* Async */ && enclosingFunctionFlags & 1 /* Generator */) { - if (node.asteriskToken) { - var expression = visitNode(Debug.checkDefined(node.expression), visitor, isExpression); - return setOriginalNode(setTextRange(factory2.createYieldExpression( - /*asteriskToken*/ - void 0, emitHelpers().createAwaitHelper(factory2.updateYieldExpression(node, node.asteriskToken, setTextRange(emitHelpers().createAsyncDelegatorHelper(setTextRange(emitHelpers().createAsyncValuesHelper(expression), expression)), expression)))), node), node); - } - return setOriginalNode(setTextRange(factory2.createYieldExpression( - /*asteriskToken*/ - void 0, createDownlevelAwait(node.expression ? visitNode(node.expression, visitor, isExpression) : factory2.createVoidZero())), node), node); - } - return visitEachChild(node, visitor, context); - } - function visitReturnStatement(node) { - if (enclosingFunctionFlags & 2 /* Async */ && enclosingFunctionFlags & 1 /* Generator */) { - return factory2.updateReturnStatement(node, createDownlevelAwait(node.expression ? visitNode(node.expression, visitor, isExpression) : factory2.createVoidZero())); - } - return visitEachChild(node, visitor, context); - } - function visitLabeledStatement(node) { - if (enclosingFunctionFlags & 2 /* Async */) { - var statement = unwrapInnermostStatementOfLabel(node); - if (statement.kind === 250 /* ForOfStatement */ && statement.awaitModifier) { - return visitForOfStatement(statement, node); - } - return factory2.restoreEnclosingLabel(visitNode(statement, visitor, isStatement, factory2.liftToBlock), node); - } - return visitEachChild(node, visitor, context); - } - function chunkObjectLiteralElements(elements) { - var e_483, _t; - var chunkObject; - var objects = []; - try { - for (var elements_5 = __values(elements), elements_5_1 = elements_5.next(); !elements_5_1.done; elements_5_1 = elements_5.next()) { - var e = elements_5_1.value; - if (e.kind === 305 /* SpreadAssignment */) { - if (chunkObject) { - objects.push(factory2.createObjectLiteralExpression(chunkObject)); - chunkObject = void 0; - } - var target = e.expression; - objects.push(visitNode(target, visitor, isExpression)); - } - else { - chunkObject = append(chunkObject, e.kind === 303 /* PropertyAssignment */ ? factory2.createPropertyAssignment(e.name, visitNode(e.initializer, visitor, isExpression)) : visitNode(e, visitor, isObjectLiteralElementLike)); - } - } - } - catch (e_483_1) { e_483 = { error: e_483_1 }; } - finally { - try { - if (elements_5_1 && !elements_5_1.done && (_t = elements_5.return)) _t.call(elements_5); - } - finally { if (e_483) throw e_483.error; } - } - if (chunkObject) { - objects.push(factory2.createObjectLiteralExpression(chunkObject)); - } - return objects; - } - function visitObjectLiteralExpression(node) { - if (node.transformFlags & 65536 /* ContainsObjectRestOrSpread */) { - var objects = chunkObjectLiteralElements(node.properties); - if (objects.length && objects[0].kind !== 210 /* ObjectLiteralExpression */) { - objects.unshift(factory2.createObjectLiteralExpression()); - } - var expression = objects[0]; - if (objects.length > 1) { - for (var i = 1; i < objects.length; i++) { - expression = emitHelpers().createAssignHelper([expression, objects[i]]); - } - return expression; - } - else { - return emitHelpers().createAssignHelper(objects); - } - } - return visitEachChild(node, visitor, context); - } - function visitExpressionStatement(node) { - return visitEachChild(node, visitorWithUnusedExpressionResult, context); - } - function visitParenthesizedExpression(node, expressionResultIsUnused2) { - return visitEachChild(node, expressionResultIsUnused2 ? visitorWithUnusedExpressionResult : visitor, context); - } - function visitSourceFile(node) { - var ancestorFacts = enterSubtree(2 /* SourceFileExcludes */, isEffectiveStrictModeSourceFile(node, compilerOptions) ? 0 /* StrictModeSourceFileIncludes */ : 1 /* SourceFileIncludes */); - exportedVariableStatement = false; - var visited = visitEachChild(node, visitor, context); - var statement = concatenate(visited.statements, taggedTemplateStringDeclarations && [ - factory2.createVariableStatement( - /*modifiers*/ - void 0, factory2.createVariableDeclarationList(taggedTemplateStringDeclarations)) - ]); - var result = factory2.updateSourceFile(visited, setTextRange(factory2.createNodeArray(statement), node.statements)); - exitSubtree(ancestorFacts); - return result; - } - function visitTaggedTemplateExpression(node) { - return processTaggedTemplateExpression(context, node, visitor, currentSourceFile, recordTaggedTemplateString, 0 /* LiftRestriction */); - } - function visitBinaryExpression(node, expressionResultIsUnused2) { - if (isDestructuringAssignment(node) && containsObjectRestOrSpread(node.left)) { - return flattenDestructuringAssignment(node, visitor, context, 1 /* ObjectRest */, !expressionResultIsUnused2); - } - if (node.operatorToken.kind === 28 /* CommaToken */) { - return factory2.updateBinaryExpression(node, visitNode(node.left, visitorWithUnusedExpressionResult, isExpression), node.operatorToken, visitNode(node.right, expressionResultIsUnused2 ? visitorWithUnusedExpressionResult : visitor, isExpression)); - } - return visitEachChild(node, visitor, context); - } - function visitCommaListExpression(node, expressionResultIsUnused2) { - if (expressionResultIsUnused2) { - return visitEachChild(node, visitorWithUnusedExpressionResult, context); - } - var result; - for (var i = 0; i < node.elements.length; i++) { - var element = node.elements[i]; - var visited = visitNode(element, i < node.elements.length - 1 ? visitorWithUnusedExpressionResult : visitor, isExpression); - if (result || visited !== element) { - result || (result = node.elements.slice(0, i)); - result.push(visited); - } - } - var elements = result ? setTextRange(factory2.createNodeArray(result), node.elements) : node.elements; - return factory2.updateCommaListExpression(node, elements); - } - function visitCatchClause(node) { - if (node.variableDeclaration && isBindingPattern(node.variableDeclaration.name) && node.variableDeclaration.name.transformFlags & 65536 /* ContainsObjectRestOrSpread */) { - var name_84 = factory2.getGeneratedNameForNode(node.variableDeclaration.name); - var updatedDecl = factory2.updateVariableDeclaration(node.variableDeclaration, node.variableDeclaration.name, - /*exclamationToken*/ - void 0, - /*type*/ - void 0, name_84); - var visitedBindings = flattenDestructuringBinding(updatedDecl, visitor, context, 1 /* ObjectRest */); - var block = visitNode(node.block, visitor, isBlock); - if (some(visitedBindings)) { - block = factory2.updateBlock(block, __spreadArray([ - factory2.createVariableStatement( - /*modifiers*/ - void 0, visitedBindings) - ], __read(block.statements), false)); - } - return factory2.updateCatchClause(node, factory2.updateVariableDeclaration(node.variableDeclaration, name_84, - /*exclamationToken*/ - void 0, - /*type*/ - void 0, - /*initializer*/ - void 0), block); - } - return visitEachChild(node, visitor, context); - } - function visitVariableStatement(node) { - if (hasSyntacticModifier(node, 1 /* Export */)) { - var savedExportedVariableStatement = exportedVariableStatement; - exportedVariableStatement = true; - var visited = visitEachChild(node, visitor, context); - exportedVariableStatement = savedExportedVariableStatement; - return visited; - } - return visitEachChild(node, visitor, context); - } - function visitVariableDeclaration(node) { - if (exportedVariableStatement) { - var savedExportedVariableStatement = exportedVariableStatement; - exportedVariableStatement = false; - var visited = visitVariableDeclarationWorker(node, - /*exportedVariableStatement*/ - true); - exportedVariableStatement = savedExportedVariableStatement; - return visited; - } - return visitVariableDeclarationWorker(node, - /*exportedVariableStatement*/ - false); - } - function visitVariableDeclarationWorker(node, exportedVariableStatement2) { - if (isBindingPattern(node.name) && node.name.transformFlags & 65536 /* ContainsObjectRestOrSpread */) { - return flattenDestructuringBinding(node, visitor, context, 1 /* ObjectRest */, - /*rval*/ - void 0, exportedVariableStatement2); - } - return visitEachChild(node, visitor, context); - } - function visitForStatement(node) { - return factory2.updateForStatement(node, visitNode(node.initializer, visitorWithUnusedExpressionResult, isForInitializer), visitNode(node.condition, visitor, isExpression), visitNode(node.incrementor, visitorWithUnusedExpressionResult, isExpression), visitIterationBody(node.statement, visitor, context)); - } - function visitVoidExpression(node) { - return visitEachChild(node, visitorWithUnusedExpressionResult, context); - } - function visitForOfStatement(node, outermostLabeledStatement) { - var ancestorFacts = enterSubtree(0 /* IterationStatementExcludes */, 2 /* IterationStatementIncludes */); - if (node.initializer.transformFlags & 65536 /* ContainsObjectRestOrSpread */ || isAssignmentPattern(node.initializer) && containsObjectRestOrSpread(node.initializer)) { - node = transformForOfStatementWithObjectRest(node); - } - var result = node.awaitModifier ? transformForAwaitOfStatement(node, outermostLabeledStatement, ancestorFacts) : factory2.restoreEnclosingLabel(visitEachChild(node, visitor, context), outermostLabeledStatement); - exitSubtree(ancestorFacts); - return result; - } - function transformForOfStatementWithObjectRest(node) { - var initializerWithoutParens = skipParentheses(node.initializer); - if (isVariableDeclarationList(initializerWithoutParens) || isAssignmentPattern(initializerWithoutParens)) { - var bodyLocation = void 0; - var statementsLocation = void 0; - var temp = factory2.createTempVariable( - /*recordTempVariable*/ - void 0); - var statements = [createForOfBindingStatement(factory2, initializerWithoutParens, temp)]; - if (isBlock(node.statement)) { - addRange(statements, node.statement.statements); - bodyLocation = node.statement; - statementsLocation = node.statement.statements; - } - else if (node.statement) { - append(statements, node.statement); - bodyLocation = node.statement; - statementsLocation = node.statement; - } - return factory2.updateForOfStatement(node, node.awaitModifier, setTextRange(factory2.createVariableDeclarationList([ - setTextRange(factory2.createVariableDeclaration(temp), node.initializer) - ], 1 /* Let */), node.initializer), node.expression, setTextRange(factory2.createBlock(setTextRange(factory2.createNodeArray(statements), statementsLocation), - /*multiLine*/ - true), bodyLocation)); - } - return node; - } - function convertForOfStatementHead(node, boundValue, nonUserCode) { - var value = factory2.createTempVariable(hoistVariableDeclaration); - var iteratorValueExpression = factory2.createAssignment(value, boundValue); - var iteratorValueStatement = factory2.createExpressionStatement(iteratorValueExpression); - setSourceMapRange(iteratorValueStatement, node.expression); - var exitNonUserCodeExpression = factory2.createAssignment(nonUserCode, factory2.createFalse()); - var exitNonUserCodeStatement = factory2.createExpressionStatement(exitNonUserCodeExpression); - setSourceMapRange(exitNonUserCodeStatement, node.expression); - var statements = [iteratorValueStatement, exitNonUserCodeStatement]; - var binding = createForOfBindingStatement(factory2, node.initializer, value); - statements.push(visitNode(binding, visitor, isStatement)); - var bodyLocation; - var statementsLocation; - var statement = visitIterationBody(node.statement, visitor, context); - if (isBlock(statement)) { - addRange(statements, statement.statements); - bodyLocation = statement; - statementsLocation = statement.statements; - } - else { - statements.push(statement); - } - return setTextRange(factory2.createBlock(setTextRange(factory2.createNodeArray(statements), statementsLocation), - /*multiLine*/ - true), bodyLocation); - } - function createDownlevelAwait(expression) { - return enclosingFunctionFlags & 1 /* Generator */ ? factory2.createYieldExpression( - /*asteriskToken*/ - void 0, emitHelpers().createAwaitHelper(expression)) : factory2.createAwaitExpression(expression); - } - function transformForAwaitOfStatement(node, outermostLabeledStatement, ancestorFacts) { - var expression = visitNode(node.expression, visitor, isExpression); - var iterator = isIdentifier(expression) ? factory2.getGeneratedNameForNode(expression) : factory2.createTempVariable( - /*recordTempVariable*/ - void 0); - var result = isIdentifier(expression) ? factory2.getGeneratedNameForNode(iterator) : factory2.createTempVariable( - /*recordTempVariable*/ - void 0); - var nonUserCode = factory2.createTempVariable( - /*recordTempVariable*/ - void 0); - var done = factory2.createTempVariable(hoistVariableDeclaration); - var errorRecord = factory2.createUniqueName("e"); - var catchVariable = factory2.getGeneratedNameForNode(errorRecord); - var returnMethod = factory2.createTempVariable( - /*recordTempVariable*/ - void 0); - var callValues = setTextRange(emitHelpers().createAsyncValuesHelper(expression), node.expression); - var callNext = factory2.createCallExpression(factory2.createPropertyAccessExpression(iterator, "next"), - /*typeArguments*/ - void 0, []); - var getDone = factory2.createPropertyAccessExpression(result, "done"); - var getValue = factory2.createPropertyAccessExpression(result, "value"); - var callReturn = factory2.createFunctionCallCall(returnMethod, iterator, []); - hoistVariableDeclaration(errorRecord); - hoistVariableDeclaration(returnMethod); - var initializer = ancestorFacts & 2 /* IterationContainer */ ? factory2.inlineExpressions([factory2.createAssignment(errorRecord, factory2.createVoidZero()), callValues]) : callValues; - var forStatement = setEmitFlags(setTextRange(factory2.createForStatement( - /*initializer*/ - setEmitFlags(setTextRange(factory2.createVariableDeclarationList([ - factory2.createVariableDeclaration(nonUserCode, - /*exclamationToken*/ - void 0, - /*type*/ - void 0, factory2.createTrue()), - setTextRange(factory2.createVariableDeclaration(iterator, - /*exclamationToken*/ - void 0, - /*type*/ - void 0, initializer), node.expression), - factory2.createVariableDeclaration(result) - ]), node.expression), 4194304 /* NoHoisting */), - /*condition*/ - factory2.inlineExpressions([ - factory2.createAssignment(result, createDownlevelAwait(callNext)), - factory2.createAssignment(done, getDone), - factory2.createLogicalNot(done) - ]), - /*incrementor*/ - factory2.createAssignment(nonUserCode, factory2.createTrue()), - /*statement*/ - convertForOfStatementHead(node, getValue, nonUserCode)), - /*location*/ - node), 512 /* NoTokenTrailingSourceMaps */); - setOriginalNode(forStatement, node); - return factory2.createTryStatement(factory2.createBlock([ - factory2.restoreEnclosingLabel(forStatement, outermostLabeledStatement) - ]), factory2.createCatchClause(factory2.createVariableDeclaration(catchVariable), setEmitFlags(factory2.createBlock([ - factory2.createExpressionStatement(factory2.createAssignment(errorRecord, factory2.createObjectLiteralExpression([ - factory2.createPropertyAssignment("error", catchVariable) - ]))) - ]), 1 /* SingleLine */)), factory2.createBlock([ - factory2.createTryStatement( - /*tryBlock*/ - factory2.createBlock([ - setEmitFlags(factory2.createIfStatement(factory2.createLogicalAnd(factory2.createLogicalAnd(factory2.createLogicalNot(nonUserCode), factory2.createLogicalNot(done)), factory2.createAssignment(returnMethod, factory2.createPropertyAccessExpression(iterator, "return"))), factory2.createExpressionStatement(createDownlevelAwait(callReturn))), 1 /* SingleLine */) - ]), - /*catchClause*/ - void 0, - /*finallyBlock*/ - setEmitFlags(factory2.createBlock([ - setEmitFlags(factory2.createIfStatement(errorRecord, factory2.createThrowStatement(factory2.createPropertyAccessExpression(errorRecord, "error"))), 1 /* SingleLine */) - ]), 1 /* SingleLine */)) - ])); - } - function parameterVisitor(node) { - Debug.assertNode(node, isParameter); - return visitParameter(node); - } - function visitParameter(node) { - if (parametersWithPrecedingObjectRestOrSpread == null ? void 0 : parametersWithPrecedingObjectRestOrSpread.has(node)) { - return factory2.updateParameterDeclaration(node, - /*modifiers*/ - void 0, node.dotDotDotToken, isBindingPattern(node.name) ? factory2.getGeneratedNameForNode(node) : node.name, - /*questionToken*/ - void 0, - /*type*/ - void 0, - /*initializer*/ - void 0); - } - if (node.transformFlags & 65536 /* ContainsObjectRestOrSpread */) { - return factory2.updateParameterDeclaration(node, - /*modifiers*/ - void 0, node.dotDotDotToken, factory2.getGeneratedNameForNode(node), - /*questionToken*/ - void 0, - /*type*/ - void 0, visitNode(node.initializer, visitor, isExpression)); - } - return visitEachChild(node, visitor, context); - } - function collectParametersWithPrecedingObjectRestOrSpread(node) { - var e_484, _t; - var parameters; - try { - for (var _u = __values(node.parameters), _v = _u.next(); !_v.done; _v = _u.next()) { - var parameter = _v.value; - if (parameters) { - parameters.add(parameter); - } - else if (parameter.transformFlags & 65536 /* ContainsObjectRestOrSpread */) { - parameters = /* @__PURE__ */ new Set(); - } - } - } - catch (e_484_1) { e_484 = { error: e_484_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_484) throw e_484.error; } - } - return parameters; - } - function visitConstructorDeclaration(node) { - var savedEnclosingFunctionFlags = enclosingFunctionFlags; - var savedParametersWithPrecedingObjectRestOrSpread = parametersWithPrecedingObjectRestOrSpread; - enclosingFunctionFlags = getFunctionFlags(node); - parametersWithPrecedingObjectRestOrSpread = collectParametersWithPrecedingObjectRestOrSpread(node); - var updated = factory2.updateConstructorDeclaration(node, node.modifiers, visitParameterList(node.parameters, parameterVisitor, context), transformFunctionBody2(node)); - enclosingFunctionFlags = savedEnclosingFunctionFlags; - parametersWithPrecedingObjectRestOrSpread = savedParametersWithPrecedingObjectRestOrSpread; - return updated; - } - function visitGetAccessorDeclaration(node) { - var savedEnclosingFunctionFlags = enclosingFunctionFlags; - var savedParametersWithPrecedingObjectRestOrSpread = parametersWithPrecedingObjectRestOrSpread; - enclosingFunctionFlags = getFunctionFlags(node); - parametersWithPrecedingObjectRestOrSpread = collectParametersWithPrecedingObjectRestOrSpread(node); - var updated = factory2.updateGetAccessorDeclaration(node, node.modifiers, visitNode(node.name, visitor, isPropertyName), visitParameterList(node.parameters, parameterVisitor, context), - /*type*/ - void 0, transformFunctionBody2(node)); - enclosingFunctionFlags = savedEnclosingFunctionFlags; - parametersWithPrecedingObjectRestOrSpread = savedParametersWithPrecedingObjectRestOrSpread; - return updated; - } - function visitSetAccessorDeclaration(node) { - var savedEnclosingFunctionFlags = enclosingFunctionFlags; - var savedParametersWithPrecedingObjectRestOrSpread = parametersWithPrecedingObjectRestOrSpread; - enclosingFunctionFlags = getFunctionFlags(node); - parametersWithPrecedingObjectRestOrSpread = collectParametersWithPrecedingObjectRestOrSpread(node); - var updated = factory2.updateSetAccessorDeclaration(node, node.modifiers, visitNode(node.name, visitor, isPropertyName), visitParameterList(node.parameters, parameterVisitor, context), transformFunctionBody2(node)); - enclosingFunctionFlags = savedEnclosingFunctionFlags; - parametersWithPrecedingObjectRestOrSpread = savedParametersWithPrecedingObjectRestOrSpread; - return updated; - } - function visitMethodDeclaration(node) { - var savedEnclosingFunctionFlags = enclosingFunctionFlags; - var savedParametersWithPrecedingObjectRestOrSpread = parametersWithPrecedingObjectRestOrSpread; - enclosingFunctionFlags = getFunctionFlags(node); - parametersWithPrecedingObjectRestOrSpread = collectParametersWithPrecedingObjectRestOrSpread(node); - var updated = factory2.updateMethodDeclaration(node, enclosingFunctionFlags & 1 /* Generator */ ? visitNodes2(node.modifiers, visitorNoAsyncModifier, isModifierLike) : node.modifiers, enclosingFunctionFlags & 2 /* Async */ ? void 0 : node.asteriskToken, visitNode(node.name, visitor, isPropertyName), visitNode( - /*node*/ - void 0, visitor, isQuestionToken), - /*typeParameters*/ - void 0, visitParameterList(node.parameters, parameterVisitor, context), - /*type*/ - void 0, enclosingFunctionFlags & 2 /* Async */ && enclosingFunctionFlags & 1 /* Generator */ ? transformAsyncGeneratorFunctionBody(node) : transformFunctionBody2(node)); - enclosingFunctionFlags = savedEnclosingFunctionFlags; - parametersWithPrecedingObjectRestOrSpread = savedParametersWithPrecedingObjectRestOrSpread; - return updated; - } - function visitFunctionDeclaration(node) { - var savedEnclosingFunctionFlags = enclosingFunctionFlags; - var savedParametersWithPrecedingObjectRestOrSpread = parametersWithPrecedingObjectRestOrSpread; - enclosingFunctionFlags = getFunctionFlags(node); - parametersWithPrecedingObjectRestOrSpread = collectParametersWithPrecedingObjectRestOrSpread(node); - var updated = factory2.updateFunctionDeclaration(node, enclosingFunctionFlags & 1 /* Generator */ ? visitNodes2(node.modifiers, visitorNoAsyncModifier, isModifier) : node.modifiers, enclosingFunctionFlags & 2 /* Async */ ? void 0 : node.asteriskToken, node.name, - /*typeParameters*/ - void 0, visitParameterList(node.parameters, parameterVisitor, context), - /*type*/ - void 0, enclosingFunctionFlags & 2 /* Async */ && enclosingFunctionFlags & 1 /* Generator */ ? transformAsyncGeneratorFunctionBody(node) : transformFunctionBody2(node)); - enclosingFunctionFlags = savedEnclosingFunctionFlags; - parametersWithPrecedingObjectRestOrSpread = savedParametersWithPrecedingObjectRestOrSpread; - return updated; - } - function visitArrowFunction(node) { - var savedEnclosingFunctionFlags = enclosingFunctionFlags; - var savedParametersWithPrecedingObjectRestOrSpread = parametersWithPrecedingObjectRestOrSpread; - enclosingFunctionFlags = getFunctionFlags(node); - parametersWithPrecedingObjectRestOrSpread = collectParametersWithPrecedingObjectRestOrSpread(node); - var updated = factory2.updateArrowFunction(node, node.modifiers, - /*typeParameters*/ - void 0, visitParameterList(node.parameters, parameterVisitor, context), - /*type*/ - void 0, node.equalsGreaterThanToken, transformFunctionBody2(node)); - enclosingFunctionFlags = savedEnclosingFunctionFlags; - parametersWithPrecedingObjectRestOrSpread = savedParametersWithPrecedingObjectRestOrSpread; - return updated; - } - function visitFunctionExpression(node) { - var savedEnclosingFunctionFlags = enclosingFunctionFlags; - var savedParametersWithPrecedingObjectRestOrSpread = parametersWithPrecedingObjectRestOrSpread; - enclosingFunctionFlags = getFunctionFlags(node); - parametersWithPrecedingObjectRestOrSpread = collectParametersWithPrecedingObjectRestOrSpread(node); - var updated = factory2.updateFunctionExpression(node, enclosingFunctionFlags & 1 /* Generator */ ? visitNodes2(node.modifiers, visitorNoAsyncModifier, isModifier) : node.modifiers, enclosingFunctionFlags & 2 /* Async */ ? void 0 : node.asteriskToken, node.name, - /*typeParameters*/ - void 0, visitParameterList(node.parameters, parameterVisitor, context), - /*type*/ - void 0, enclosingFunctionFlags & 2 /* Async */ && enclosingFunctionFlags & 1 /* Generator */ ? transformAsyncGeneratorFunctionBody(node) : transformFunctionBody2(node)); - enclosingFunctionFlags = savedEnclosingFunctionFlags; - parametersWithPrecedingObjectRestOrSpread = savedParametersWithPrecedingObjectRestOrSpread; - return updated; - } - function transformAsyncGeneratorFunctionBody(node) { - resumeLexicalEnvironment(); - var statements = []; - var statementOffset = factory2.copyPrologue(node.body.statements, statements, - /*ensureUseStrict*/ - false, visitor); - appendObjectRestAssignmentsIfNeeded(statements, node); - var savedCapturedSuperProperties = capturedSuperProperties; - var savedHasSuperElementAccess = hasSuperElementAccess; - capturedSuperProperties = /* @__PURE__ */ new Set(); - hasSuperElementAccess = false; - var returnStatement = factory2.createReturnStatement(emitHelpers().createAsyncGeneratorHelper(factory2.createFunctionExpression( - /*modifiers*/ - void 0, factory2.createToken(42 /* AsteriskToken */), node.name && factory2.getGeneratedNameForNode(node.name), - /*typeParameters*/ - void 0, - /*parameters*/ - [], - /*type*/ - void 0, factory2.updateBlock(node.body, visitLexicalEnvironment(node.body.statements, visitor, context, statementOffset))), !!(hierarchyFacts & 1 /* HasLexicalThis */))); - var emitSuperHelpers = languageVersion >= 2 /* ES2015 */ && resolver.getNodeCheckFlags(node) & (256 /* MethodWithSuperPropertyAssignmentInAsync */ | 128 /* MethodWithSuperPropertyAccessInAsync */); - if (emitSuperHelpers) { - enableSubstitutionForAsyncMethodsWithSuper(); - var variableStatement = createSuperAccessVariableStatement(factory2, resolver, node, capturedSuperProperties); - substitutedSuperAccessors[getNodeId(variableStatement)] = true; - insertStatementsAfterStandardPrologue(statements, [variableStatement]); - } - statements.push(returnStatement); - insertStatementsAfterStandardPrologue(statements, endLexicalEnvironment()); - var block = factory2.updateBlock(node.body, statements); - if (emitSuperHelpers && hasSuperElementAccess) { - if (resolver.getNodeCheckFlags(node) & 256 /* MethodWithSuperPropertyAssignmentInAsync */) { - addEmitHelper(block, advancedAsyncSuperHelper); - } - else if (resolver.getNodeCheckFlags(node) & 128 /* MethodWithSuperPropertyAccessInAsync */) { - addEmitHelper(block, asyncSuperHelper); - } - } - capturedSuperProperties = savedCapturedSuperProperties; - hasSuperElementAccess = savedHasSuperElementAccess; - return block; - } - function transformFunctionBody2(node) { - var _t; - resumeLexicalEnvironment(); - var statementOffset = 0; - var statements = []; - var body = (_t = visitNode(node.body, visitor, isConciseBody)) !== null && _t !== void 0 ? _t : factory2.createBlock([]); - if (isBlock(body)) { - statementOffset = factory2.copyPrologue(body.statements, statements, - /*ensureUseStrict*/ - false, visitor); - } - addRange(statements, appendObjectRestAssignmentsIfNeeded( - /*statements*/ - void 0, node)); - var leadingStatements = endLexicalEnvironment(); - if (statementOffset > 0 || some(statements) || some(leadingStatements)) { - var block = factory2.converters.convertToFunctionBlock(body, - /*multiLine*/ - true); - insertStatementsAfterStandardPrologue(statements, leadingStatements); - addRange(statements, block.statements.slice(statementOffset)); - return factory2.updateBlock(block, setTextRange(factory2.createNodeArray(statements), block.statements)); - } - return body; - } - function appendObjectRestAssignmentsIfNeeded(statements, node) { - var e_485, _t; - var containsPrecedingObjectRestOrSpread = false; - try { - for (var _u = __values(node.parameters), _v = _u.next(); !_v.done; _v = _u.next()) { - var parameter = _v.value; - if (containsPrecedingObjectRestOrSpread) { - if (isBindingPattern(parameter.name)) { - if (parameter.name.elements.length > 0) { - var declarations = flattenDestructuringBinding(parameter, visitor, context, 0 /* All */, factory2.getGeneratedNameForNode(parameter)); - if (some(declarations)) { - var declarationList = factory2.createVariableDeclarationList(declarations); - var statement = factory2.createVariableStatement( - /*modifiers*/ - void 0, declarationList); - setEmitFlags(statement, 2097152 /* CustomPrologue */); - statements = append(statements, statement); - } - } - else if (parameter.initializer) { - var name_85 = factory2.getGeneratedNameForNode(parameter); - var initializer = visitNode(parameter.initializer, visitor, isExpression); - var assignment = factory2.createAssignment(name_85, initializer); - var statement = factory2.createExpressionStatement(assignment); - setEmitFlags(statement, 2097152 /* CustomPrologue */); - statements = append(statements, statement); - } - } - else if (parameter.initializer) { - var name_86 = factory2.cloneNode(parameter.name); - setTextRange(name_86, parameter.name); - setEmitFlags(name_86, 96 /* NoSourceMap */); - var initializer = visitNode(parameter.initializer, visitor, isExpression); - addEmitFlags(initializer, 96 /* NoSourceMap */ | 3072 /* NoComments */); - var assignment = factory2.createAssignment(name_86, initializer); - setTextRange(assignment, parameter); - setEmitFlags(assignment, 3072 /* NoComments */); - var block = factory2.createBlock([factory2.createExpressionStatement(assignment)]); - setTextRange(block, parameter); - setEmitFlags(block, 1 /* SingleLine */ | 64 /* NoTrailingSourceMap */ | 768 /* NoTokenSourceMaps */ | 3072 /* NoComments */); - var typeCheck = factory2.createTypeCheck(factory2.cloneNode(parameter.name), "undefined"); - var statement = factory2.createIfStatement(typeCheck, block); - startOnNewLine(statement); - setTextRange(statement, parameter); - setEmitFlags(statement, 768 /* NoTokenSourceMaps */ | 64 /* NoTrailingSourceMap */ | 2097152 /* CustomPrologue */ | 3072 /* NoComments */); - statements = append(statements, statement); - } - } - else if (parameter.transformFlags & 65536 /* ContainsObjectRestOrSpread */) { - containsPrecedingObjectRestOrSpread = true; - var declarations = flattenDestructuringBinding(parameter, visitor, context, 1 /* ObjectRest */, factory2.getGeneratedNameForNode(parameter), - /*hoistTempVariables*/ - false, - /*skipInitializer*/ - true); - if (some(declarations)) { - var declarationList = factory2.createVariableDeclarationList(declarations); - var statement = factory2.createVariableStatement( - /*modifiers*/ - void 0, declarationList); - setEmitFlags(statement, 2097152 /* CustomPrologue */); - statements = append(statements, statement); - } - } - } - } - catch (e_485_1) { e_485 = { error: e_485_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_485) throw e_485.error; } - } - return statements; - } - function enableSubstitutionForAsyncMethodsWithSuper() { - if ((enabledSubstitutions & 1 /* AsyncMethodsWithSuper */) === 0) { - enabledSubstitutions |= 1 /* AsyncMethodsWithSuper */; - context.enableSubstitution(213 /* CallExpression */); - context.enableSubstitution(211 /* PropertyAccessExpression */); - context.enableSubstitution(212 /* ElementAccessExpression */); - context.enableEmitNotification(263 /* ClassDeclaration */); - context.enableEmitNotification(174 /* MethodDeclaration */); - context.enableEmitNotification(177 /* GetAccessor */); - context.enableEmitNotification(178 /* SetAccessor */); - context.enableEmitNotification(176 /* Constructor */); - context.enableEmitNotification(243 /* VariableStatement */); - } - } - function onEmitNode(hint, node, emitCallback) { - if (enabledSubstitutions & 1 /* AsyncMethodsWithSuper */ && isSuperContainer(node)) { - var superContainerFlags = resolver.getNodeCheckFlags(node) & (128 /* MethodWithSuperPropertyAccessInAsync */ | 256 /* MethodWithSuperPropertyAssignmentInAsync */); - if (superContainerFlags !== enclosingSuperContainerFlags) { - var savedEnclosingSuperContainerFlags = enclosingSuperContainerFlags; - enclosingSuperContainerFlags = superContainerFlags; - previousOnEmitNode(hint, node, emitCallback); - enclosingSuperContainerFlags = savedEnclosingSuperContainerFlags; - return; - } - } - else if (enabledSubstitutions && substitutedSuperAccessors[getNodeId(node)]) { - var savedEnclosingSuperContainerFlags = enclosingSuperContainerFlags; - enclosingSuperContainerFlags = 0; - previousOnEmitNode(hint, node, emitCallback); - enclosingSuperContainerFlags = savedEnclosingSuperContainerFlags; - return; - } - previousOnEmitNode(hint, node, emitCallback); - } - function onSubstituteNode(hint, node) { - node = previousOnSubstituteNode(hint, node); - if (hint === 1 /* Expression */ && enclosingSuperContainerFlags) { - return substituteExpression(node); - } - return node; - } - function substituteExpression(node) { - switch (node.kind) { - case 211 /* PropertyAccessExpression */: - return substitutePropertyAccessExpression(node); - case 212 /* ElementAccessExpression */: - return substituteElementAccessExpression(node); - case 213 /* CallExpression */: - return substituteCallExpression(node); - } - return node; - } - function substitutePropertyAccessExpression(node) { - if (node.expression.kind === 108 /* SuperKeyword */) { - return setTextRange(factory2.createPropertyAccessExpression(factory2.createUniqueName("_super", 16 /* Optimistic */ | 32 /* FileLevel */), node.name), node); - } - return node; - } - function substituteElementAccessExpression(node) { - if (node.expression.kind === 108 /* SuperKeyword */) { - return createSuperElementAccessInAsyncMethod(node.argumentExpression, node); - } - return node; - } - function substituteCallExpression(node) { - var expression = node.expression; - if (isSuperProperty(expression)) { - var argumentExpression = isPropertyAccessExpression(expression) ? substitutePropertyAccessExpression(expression) : substituteElementAccessExpression(expression); - return factory2.createCallExpression(factory2.createPropertyAccessExpression(argumentExpression, "call"), - /*typeArguments*/ - void 0, __spreadArray([ - factory2.createThis() - ], __read(node.arguments), false)); - } - return node; - } - function isSuperContainer(node) { - var kind = node.kind; - return kind === 263 /* ClassDeclaration */ || kind === 176 /* Constructor */ || kind === 174 /* MethodDeclaration */ || kind === 177 /* GetAccessor */ || kind === 178 /* SetAccessor */; - } - function createSuperElementAccessInAsyncMethod(argumentExpression, location) { - if (enclosingSuperContainerFlags & 256 /* MethodWithSuperPropertyAssignmentInAsync */) { - return setTextRange(factory2.createPropertyAccessExpression(factory2.createCallExpression(factory2.createIdentifier("_superIndex"), - /*typeArguments*/ - void 0, [argumentExpression]), "value"), location); - } - else { - return setTextRange(factory2.createCallExpression(factory2.createIdentifier("_superIndex"), - /*typeArguments*/ - void 0, [argumentExpression]), location); - } - } -} -// src/compiler/transformers/es2019.ts -function transformES2019(context) { - var factory2 = context.factory; - return chainBundle(context, transformSourceFile); - function transformSourceFile(node) { - if (node.isDeclarationFile) { - return node; - } - return visitEachChild(node, visitor, context); - } - function visitor(node) { - if ((node.transformFlags & 64 /* ContainsES2019 */) === 0) { - return node; - } - switch (node.kind) { - case 299 /* CatchClause */: - return visitCatchClause(node); - default: - return visitEachChild(node, visitor, context); - } - } - function visitCatchClause(node) { - if (!node.variableDeclaration) { - return factory2.updateCatchClause(node, factory2.createVariableDeclaration(factory2.createTempVariable( - /*recordTempVariable*/ - void 0)), visitNode(node.block, visitor, isBlock)); - } - return visitEachChild(node, visitor, context); - } -} -// src/compiler/transformers/es2020.ts -function transformES2020(context) { - var factory2 = context.factory, hoistVariableDeclaration = context.hoistVariableDeclaration; - return chainBundle(context, transformSourceFile); - function transformSourceFile(node) { - if (node.isDeclarationFile) { - return node; - } - return visitEachChild(node, visitor, context); - } - function visitor(node) { - if ((node.transformFlags & 32 /* ContainsES2020 */) === 0) { - return node; - } - switch (node.kind) { - case 213 /* CallExpression */: { - var updated = visitNonOptionalCallExpression(node, - /*captureThisArg*/ - false); - Debug.assertNotNode(updated, isSyntheticReference); - return updated; - } - case 211 /* PropertyAccessExpression */: - case 212 /* ElementAccessExpression */: - if (isOptionalChain(node)) { - var updated = visitOptionalExpression(node, - /*captureThisArg*/ - false, - /*isDelete*/ - false); - Debug.assertNotNode(updated, isSyntheticReference); - return updated; - } - return visitEachChild(node, visitor, context); - case 226 /* BinaryExpression */: - if (node.operatorToken.kind === 61 /* QuestionQuestionToken */) { - return transformNullishCoalescingExpression(node); - } - return visitEachChild(node, visitor, context); - case 220 /* DeleteExpression */: - return visitDeleteExpression(node); - default: - return visitEachChild(node, visitor, context); - } - } - function flattenChain(chain) { - Debug.assertNotNode(chain, isNonNullChain); - var links = [chain]; - while (!chain.questionDotToken && !isTaggedTemplateExpression(chain)) { - chain = cast(skipPartiallyEmittedExpressions(chain.expression), isOptionalChain); - Debug.assertNotNode(chain, isNonNullChain); - links.unshift(chain); - } - return { expression: chain.expression, chain: links }; - } - function visitNonOptionalParenthesizedExpression(node, captureThisArg, isDelete) { - var expression = visitNonOptionalExpression(node.expression, captureThisArg, isDelete); - if (isSyntheticReference(expression)) { - return factory2.createSyntheticReferenceExpression(factory2.updateParenthesizedExpression(node, expression.expression), expression.thisArg); - } - return factory2.updateParenthesizedExpression(node, expression); - } - function visitNonOptionalPropertyOrElementAccessExpression(node, captureThisArg, isDelete) { - if (isOptionalChain(node)) { - return visitOptionalExpression(node, captureThisArg, isDelete); - } - var expression = visitNode(node.expression, visitor, isExpression); - Debug.assertNotNode(expression, isSyntheticReference); - var thisArg; - if (captureThisArg) { - if (!isSimpleCopiableExpression(expression)) { - thisArg = factory2.createTempVariable(hoistVariableDeclaration); - expression = factory2.createAssignment(thisArg, expression); - } - else { - thisArg = expression; - } - } - expression = node.kind === 211 /* PropertyAccessExpression */ ? factory2.updatePropertyAccessExpression(node, expression, visitNode(node.name, visitor, isIdentifier)) : factory2.updateElementAccessExpression(node, expression, visitNode(node.argumentExpression, visitor, isExpression)); - return thisArg ? factory2.createSyntheticReferenceExpression(expression, thisArg) : expression; - } - function visitNonOptionalCallExpression(node, captureThisArg) { - if (isOptionalChain(node)) { - return visitOptionalExpression(node, captureThisArg, - /*isDelete*/ - false); - } - if (isParenthesizedExpression(node.expression) && isOptionalChain(skipParentheses(node.expression))) { - var expression = visitNonOptionalParenthesizedExpression(node.expression, - /*captureThisArg*/ - true, - /*isDelete*/ - false); - var args = visitNodes2(node.arguments, visitor, isExpression); - if (isSyntheticReference(expression)) { - return setTextRange(factory2.createFunctionCallCall(expression.expression, expression.thisArg, args), node); - } - return factory2.updateCallExpression(node, expression, - /*typeArguments*/ - void 0, args); - } - return visitEachChild(node, visitor, context); - } - function visitNonOptionalExpression(node, captureThisArg, isDelete) { - switch (node.kind) { - case 217 /* ParenthesizedExpression */: - return visitNonOptionalParenthesizedExpression(node, captureThisArg, isDelete); - case 211 /* PropertyAccessExpression */: - case 212 /* ElementAccessExpression */: - return visitNonOptionalPropertyOrElementAccessExpression(node, captureThisArg, isDelete); - case 213 /* CallExpression */: - return visitNonOptionalCallExpression(node, captureThisArg); - default: - return visitNode(node, visitor, isExpression); - } - } - function visitOptionalExpression(node, captureThisArg, isDelete) { - var _t = flattenChain(node), expression = _t.expression, chain = _t.chain; - var left = visitNonOptionalExpression(skipPartiallyEmittedExpressions(expression), isCallChain(chain[0]), - /*isDelete*/ - false); - var leftThisArg = isSyntheticReference(left) ? left.thisArg : void 0; - var capturedLeft = isSyntheticReference(left) ? left.expression : left; - var leftExpression = factory2.restoreOuterExpressions(expression, capturedLeft, 8 /* PartiallyEmittedExpressions */); - if (!isSimpleCopiableExpression(capturedLeft)) { - capturedLeft = factory2.createTempVariable(hoistVariableDeclaration); - leftExpression = factory2.createAssignment(capturedLeft, leftExpression); - } - var rightExpression = capturedLeft; - var thisArg; - for (var i = 0; i < chain.length; i++) { - var segment = chain[i]; - switch (segment.kind) { - case 211 /* PropertyAccessExpression */: - case 212 /* ElementAccessExpression */: - if (i === chain.length - 1 && captureThisArg) { - if (!isSimpleCopiableExpression(rightExpression)) { - thisArg = factory2.createTempVariable(hoistVariableDeclaration); - rightExpression = factory2.createAssignment(thisArg, rightExpression); - } - else { - thisArg = rightExpression; - } - } - rightExpression = segment.kind === 211 /* PropertyAccessExpression */ ? factory2.createPropertyAccessExpression(rightExpression, visitNode(segment.name, visitor, isIdentifier)) : factory2.createElementAccessExpression(rightExpression, visitNode(segment.argumentExpression, visitor, isExpression)); - break; - case 213 /* CallExpression */: - if (i === 0 && leftThisArg) { - if (!isGeneratedIdentifier(leftThisArg)) { - leftThisArg = factory2.cloneNode(leftThisArg); - addEmitFlags(leftThisArg, 3072 /* NoComments */); - } - rightExpression = factory2.createFunctionCallCall(rightExpression, leftThisArg.kind === 108 /* SuperKeyword */ ? factory2.createThis() : leftThisArg, visitNodes2(segment.arguments, visitor, isExpression)); - } - else { - rightExpression = factory2.createCallExpression(rightExpression, - /*typeArguments*/ - void 0, visitNodes2(segment.arguments, visitor, isExpression)); - } - break; - } - setOriginalNode(rightExpression, segment); - } - var target = isDelete ? factory2.createConditionalExpression(createNotNullCondition(leftExpression, capturedLeft, - /*invert*/ - true), - /*questionToken*/ - void 0, factory2.createTrue(), - /*colonToken*/ - void 0, factory2.createDeleteExpression(rightExpression)) : factory2.createConditionalExpression(createNotNullCondition(leftExpression, capturedLeft, - /*invert*/ - true), - /*questionToken*/ - void 0, factory2.createVoidZero(), - /*colonToken*/ - void 0, rightExpression); - setTextRange(target, node); - return thisArg ? factory2.createSyntheticReferenceExpression(target, thisArg) : target; - } - function createNotNullCondition(left, right, invert) { - return factory2.createBinaryExpression(factory2.createBinaryExpression(left, factory2.createToken(invert ? 37 /* EqualsEqualsEqualsToken */ : 38 /* ExclamationEqualsEqualsToken */), factory2.createNull()), factory2.createToken(invert ? 57 /* BarBarToken */ : 56 /* AmpersandAmpersandToken */), factory2.createBinaryExpression(right, factory2.createToken(invert ? 37 /* EqualsEqualsEqualsToken */ : 38 /* ExclamationEqualsEqualsToken */), factory2.createVoidZero())); - } - function transformNullishCoalescingExpression(node) { - var left = visitNode(node.left, visitor, isExpression); - var right = left; - if (!isSimpleCopiableExpression(left)) { - right = factory2.createTempVariable(hoistVariableDeclaration); - left = factory2.createAssignment(right, left); - } - return setTextRange(factory2.createConditionalExpression(createNotNullCondition(left, right), - /*questionToken*/ - void 0, right, - /*colonToken*/ - void 0, visitNode(node.right, visitor, isExpression)), node); - } - function visitDeleteExpression(node) { - return isOptionalChain(skipParentheses(node.expression)) ? setOriginalNode(visitNonOptionalExpression(node.expression, - /*captureThisArg*/ - false, - /*isDelete*/ - true), node) : factory2.updateDeleteExpression(node, visitNode(node.expression, visitor, isExpression)); - } -} -// src/compiler/transformers/es2021.ts -function transformES2021(context) { - var hoistVariableDeclaration = context.hoistVariableDeclaration, factory2 = context.factory; - return chainBundle(context, transformSourceFile); - function transformSourceFile(node) { - if (node.isDeclarationFile) { - return node; - } - return visitEachChild(node, visitor, context); - } - function visitor(node) { - if ((node.transformFlags & 16 /* ContainsES2021 */) === 0) { - return node; - } - if (isLogicalOrCoalescingAssignmentExpression(node)) { - return transformLogicalAssignment(node); - } - return visitEachChild(node, visitor, context); - } - function transformLogicalAssignment(binaryExpression) { - var operator = binaryExpression.operatorToken; - var nonAssignmentOperator = getNonAssignmentOperatorForCompoundAssignment(operator.kind); - var left = skipParentheses(visitNode(binaryExpression.left, visitor, isLeftHandSideExpression)); - var assignmentTarget = left; - var right = skipParentheses(visitNode(binaryExpression.right, visitor, isExpression)); - if (isAccessExpression(left)) { - var propertyAccessTargetSimpleCopiable = isSimpleCopiableExpression(left.expression); - var propertyAccessTarget = propertyAccessTargetSimpleCopiable ? left.expression : factory2.createTempVariable(hoistVariableDeclaration); - var propertyAccessTargetAssignment = propertyAccessTargetSimpleCopiable ? left.expression : factory2.createAssignment(propertyAccessTarget, left.expression); - if (isPropertyAccessExpression(left)) { - assignmentTarget = factory2.createPropertyAccessExpression(propertyAccessTarget, left.name); - left = factory2.createPropertyAccessExpression(propertyAccessTargetAssignment, left.name); - } - else { - var elementAccessArgumentSimpleCopiable = isSimpleCopiableExpression(left.argumentExpression); - var elementAccessArgument = elementAccessArgumentSimpleCopiable ? left.argumentExpression : factory2.createTempVariable(hoistVariableDeclaration); - assignmentTarget = factory2.createElementAccessExpression(propertyAccessTarget, elementAccessArgument); - left = factory2.createElementAccessExpression(propertyAccessTargetAssignment, elementAccessArgumentSimpleCopiable ? left.argumentExpression : factory2.createAssignment(elementAccessArgument, left.argumentExpression)); - } - } - return factory2.createBinaryExpression(left, nonAssignmentOperator, factory2.createParenthesizedExpression(factory2.createAssignment(assignmentTarget, right))); - } -} -// src/compiler/transformers/esnext.ts -function transformESNext(context) { - var factory2 = context.factory, emitHelpers = context.getEmitHelperFactory, hoistVariableDeclaration = context.hoistVariableDeclaration, startLexicalEnvironment = context.startLexicalEnvironment, endLexicalEnvironment = context.endLexicalEnvironment; - var exportBindings; - var exportVars; - var defaultExportBinding; - var exportEqualsBinding; - return chainBundle(context, transformSourceFile); - function transformSourceFile(node) { - if (node.isDeclarationFile) { - return node; - } - var visited = visitNode(node, visitor, isSourceFile); - addEmitHelpers(visited, context.readEmitHelpers()); - exportVars = void 0; - exportBindings = void 0; - defaultExportBinding = void 0; - return visited; - } - function visitor(node) { - if ((node.transformFlags & 4 /* ContainsESNext */) === 0) { - return node; - } - switch (node.kind) { - case 312 /* SourceFile */: - return visitSourceFile(node); - case 241 /* Block */: - return visitBlock(node); - case 248 /* ForStatement */: - return visitForStatement(node); - case 250 /* ForOfStatement */: - return visitForOfStatement(node); - case 255 /* SwitchStatement */: - return visitSwitchStatement(node); - default: - return visitEachChild(node, visitor, context); - } - } - function visitSourceFile(node) { - var usingKind = getUsingKindOfStatements(node.statements); - if (usingKind) { - startLexicalEnvironment(); - exportBindings = new IdentifierNameMap(); - exportVars = []; - var prologueCount = countPrologueStatements(node.statements); - var topLevelStatements = []; - addRange(topLevelStatements, visitArray(node.statements, visitor, isStatement, 0, prologueCount)); - var pos = prologueCount; - while (pos < node.statements.length) { - var statement = node.statements[pos]; - if (getUsingKind(statement) !== 0 /* None */) { - if (pos > prologueCount) { - addRange(topLevelStatements, visitNodes2(node.statements, visitor, isStatement, prologueCount, pos - prologueCount)); - } - break; - } - pos++; - } - Debug.assert(pos < node.statements.length, "Should have encountered at least one 'using' statement."); - var envBinding = createEnvBinding(); - var bodyStatements = transformUsingDeclarations(node.statements, pos, node.statements.length, envBinding, topLevelStatements); - if (exportBindings.size) { - append(topLevelStatements, factory2.createExportDeclaration( - /*modifiers*/ - void 0, - /*isTypeOnly*/ - false, factory2.createNamedExports(arrayFrom(exportBindings.values())))); - } - addRange(topLevelStatements, endLexicalEnvironment()); - if (exportVars.length) { - topLevelStatements.push(factory2.createVariableStatement(factory2.createModifiersFromModifierFlags(1 /* Export */), factory2.createVariableDeclarationList(exportVars, 1 /* Let */))); - } - addRange(topLevelStatements, createDownlevelUsingStatements(bodyStatements, envBinding, usingKind === 2 /* Async */)); - if (exportEqualsBinding) { - topLevelStatements.push(factory2.createExportAssignment( - /*modifiers*/ - void 0, - /*isExportEquals*/ - true, exportEqualsBinding)); - } - return factory2.updateSourceFile(node, topLevelStatements); - } - return visitEachChild(node, visitor, context); - } - function visitBlock(node) { - var usingKind = getUsingKindOfStatements(node.statements); - if (usingKind) { - var prologueCount = countPrologueStatements(node.statements); - var envBinding = createEnvBinding(); - return factory2.updateBlock(node, __spreadArray(__spreadArray([], __read(visitArray(node.statements, visitor, isStatement, 0, prologueCount)), false), __read(createDownlevelUsingStatements(transformUsingDeclarations(node.statements, prologueCount, node.statements.length, envBinding, - /*topLevelStatements*/ - void 0), envBinding, usingKind === 2 /* Async */)), false)); - } - return visitEachChild(node, visitor, context); - } - function visitForStatement(node) { - if (node.initializer && isUsingVariableDeclarationList(node.initializer)) { - return visitNode(factory2.createBlock([ - factory2.createVariableStatement( - /*modifiers*/ - void 0, node.initializer), - factory2.updateForStatement(node, - /*initializer*/ - void 0, node.condition, node.incrementor, node.statement) - ]), visitor, isStatement); - } - return visitEachChild(node, visitor, context); - } - function visitForOfStatement(node) { - if (isUsingVariableDeclarationList(node.initializer)) { - var forInitializer = node.initializer; - Debug.assertNode(forInitializer, isUsingVariableDeclarationList); - Debug.assert(forInitializer.declarations.length === 1, "ForInitializer may only have one declaration"); - var forDecl = forInitializer.declarations[0]; - Debug.assert(!forDecl.initializer, "ForInitializer may not have an initializer"); - var isAwaitUsing = getUsingKindOfVariableDeclarationList(forInitializer) === 2 /* Async */; - var temp = factory2.getGeneratedNameForNode(forDecl.name); - var usingVar = factory2.updateVariableDeclaration(forDecl, forDecl.name, - /*exclamationToken*/ - void 0, - /*type*/ - void 0, temp); - var usingVarList = factory2.createVariableDeclarationList([usingVar], isAwaitUsing ? 6 /* AwaitUsing */ : 4 /* Using */); - var usingVarStatement = factory2.createVariableStatement( - /*modifiers*/ - void 0, usingVarList); - return visitNode(factory2.updateForOfStatement(node, node.awaitModifier, factory2.createVariableDeclarationList([ - factory2.createVariableDeclaration(temp) - ], 2 /* Const */), node.expression, isBlock(node.statement) ? factory2.updateBlock(node.statement, __spreadArray([ - usingVarStatement - ], __read(node.statement.statements), false)) : factory2.createBlock([ - usingVarStatement, - node.statement - ], - /*multiLine*/ - true)), visitor, isStatement); - } - return visitEachChild(node, visitor, context); - } - function visitCaseOrDefaultClause(node, envBinding) { - if (getUsingKindOfStatements(node.statements) !== 0 /* None */) { - if (isCaseClause(node)) { - return factory2.updateCaseClause(node, visitNode(node.expression, visitor, isExpression), transformUsingDeclarations(node.statements, - /*start*/ - 0, node.statements.length, envBinding, - /*topLevelStatements*/ - void 0)); - } - else { - return factory2.updateDefaultClause(node, transformUsingDeclarations(node.statements, - /*start*/ - 0, node.statements.length, envBinding, - /*topLevelStatements*/ - void 0)); - } - } - return visitEachChild(node, visitor, context); - } - function visitSwitchStatement(node) { - var usingKind = getUsingKindOfCaseOrDefaultClauses(node.caseBlock.clauses); - if (usingKind) { - var envBinding_1 = createEnvBinding(); - return createDownlevelUsingStatements([ - factory2.updateSwitchStatement(node, visitNode(node.expression, visitor, isExpression), factory2.updateCaseBlock(node.caseBlock, node.caseBlock.clauses.map(function (clause) { return visitCaseOrDefaultClause(clause, envBinding_1); }))) - ], envBinding_1, usingKind === 2 /* Async */); - } - return visitEachChild(node, visitor, context); - } - function transformUsingDeclarations(statementsIn, start2, end, envBinding, topLevelStatements) { - var e_486, _t; - var _u; - var statements = []; - for (var i = start2; i < end; i++) { - var statement = statementsIn[i]; - var usingKind = getUsingKind(statement); - if (usingKind) { - Debug.assertNode(statement, isVariableStatement); - var declarations = []; - try { - for (var _v = (e_486 = void 0, __values(statement.declarationList.declarations)), _w = _v.next(); !_w.done; _w = _v.next()) { - var declaration = _w.value; - if (!isIdentifier(declaration.name)) { - declarations.length = 0; - break; - } - if (isNamedEvaluation(declaration)) { - declaration = transformNamedEvaluation(context, declaration); - } - var initializer = (_u = visitNode(declaration.initializer, visitor, isExpression)) !== null && _u !== void 0 ? _u : factory2.createVoidZero(); - declarations.push(factory2.updateVariableDeclaration(declaration, declaration.name, - /*exclamationToken*/ - void 0, - /*type*/ - void 0, emitHelpers().createAddDisposableResourceHelper(envBinding, initializer, usingKind === 2 /* Async */))); - } - } - catch (e_486_1) { e_486 = { error: e_486_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_486) throw e_486.error; } - } - if (declarations.length) { - var varList = factory2.createVariableDeclarationList(declarations, 2 /* Const */); - setOriginalNode(varList, statement.declarationList); - setTextRange(varList, statement.declarationList); - hoistOrAppendNode(factory2.updateVariableStatement(statement, - /*modifiers*/ - void 0, varList)); - continue; - } - } - var result = visitor(statement); - if (isArray(result)) { - result.forEach(hoistOrAppendNode); - } - else if (result) { - hoistOrAppendNode(result); - } - } - return statements; - function hoistOrAppendNode(node) { - Debug.assertNode(node, isStatement); - append(statements, hoist(node)); - } - function hoist(node) { - if (!topLevelStatements) - return node; - switch (node.kind) { - case 272 /* ImportDeclaration */: - case 271 /* ImportEqualsDeclaration */: - case 278 /* ExportDeclaration */: - case 262 /* FunctionDeclaration */: - return hoistImportOrExportOrHoistedDeclaration(node, topLevelStatements); - case 277 /* ExportAssignment */: - return hoistExportAssignment(node); - case 263 /* ClassDeclaration */: - return hoistClassDeclaration(node); - case 243 /* VariableStatement */: - return hoistVariableStatement(node); - } - return node; - } - } - function hoistImportOrExportOrHoistedDeclaration(node, topLevelStatements) { - topLevelStatements.push(node); - return void 0; - } - function hoistExportAssignment(node) { - return node.isExportEquals ? hoistExportEquals(node) : hoistExportDefault(node); - } - function hoistExportDefault(node) { - if (defaultExportBinding) { - return node; - } - defaultExportBinding = factory2.createUniqueName("_default", 8 /* ReservedInNestedScopes */ | 32 /* FileLevel */ | 16 /* Optimistic */); - hoistBindingIdentifier(defaultExportBinding, - /*isExport*/ - true, "default", node); - var expression = node.expression; - var innerExpression = skipOuterExpressions(expression); - if (isNamedEvaluation(innerExpression)) { - innerExpression = transformNamedEvaluation(context, innerExpression, - /*ignoreEmptyStringLiteral*/ - false, "default"); - expression = factory2.restoreOuterExpressions(expression, innerExpression); - } - var assignment = factory2.createAssignment(defaultExportBinding, expression); - return factory2.createExpressionStatement(assignment); - } - function hoistExportEquals(node) { - if (exportEqualsBinding) { - return node; - } - exportEqualsBinding = factory2.createUniqueName("_default", 8 /* ReservedInNestedScopes */ | 32 /* FileLevel */ | 16 /* Optimistic */); - hoistVariableDeclaration(exportEqualsBinding); - var assignment = factory2.createAssignment(exportEqualsBinding, node.expression); - return factory2.createExpressionStatement(assignment); - } - function hoistClassDeclaration(node) { - if (!node.name && defaultExportBinding) { - return node; - } - var isExported2 = hasSyntacticModifier(node, 1 /* Export */); - var isDefault = hasSyntacticModifier(node, 1024 /* Default */); - var expression = factory2.converters.convertToClassExpression(node); - if (node.name) { - hoistBindingIdentifier(factory2.getLocalName(node), isExported2 && !isDefault, - /*exportAlias*/ - void 0, node); - expression = factory2.createAssignment(factory2.getDeclarationName(node), expression); - if (isNamedEvaluation(expression)) { - expression = transformNamedEvaluation(context, expression, - /*ignoreEmptyStringLiteral*/ - false); - } - setOriginalNode(expression, node); - setSourceMapRange(expression, node); - setCommentRange(expression, node); - } - if (isDefault && !defaultExportBinding) { - defaultExportBinding = factory2.createUniqueName("_default", 8 /* ReservedInNestedScopes */ | 32 /* FileLevel */ | 16 /* Optimistic */); - hoistBindingIdentifier(defaultExportBinding, - /*isExport*/ - true, "default", node); - expression = factory2.createAssignment(defaultExportBinding, expression); - if (isNamedEvaluation(expression)) { - expression = transformNamedEvaluation(context, expression, - /*ignoreEmptyStringLiteral*/ - false, "default"); - } - setOriginalNode(expression, node); - } - return factory2.createExpressionStatement(expression); - } - function hoistVariableStatement(node) { - var e_487, _t; - var expressions; - var isExported2 = hasSyntacticModifier(node, 1 /* Export */); - try { - for (var _u = __values(node.declarationList.declarations), _v = _u.next(); !_v.done; _v = _u.next()) { - var variable = _v.value; - hoistBindingElement(variable, isExported2, variable); - if (variable.initializer) { - expressions = append(expressions, hoistInitializedVariable(variable)); - } - } - } - catch (e_487_1) { e_487 = { error: e_487_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_487) throw e_487.error; } - } - if (expressions) { - var statement = factory2.createExpressionStatement(factory2.inlineExpressions(expressions)); - setOriginalNode(statement, node); - setCommentRange(statement, node); - setSourceMapRange(statement, node); - return statement; - } - return void 0; - } - function hoistInitializedVariable(node) { - Debug.assertIsDefined(node.initializer); - var target; - if (isIdentifier(node.name)) { - target = factory2.cloneNode(node.name); - setEmitFlags(target, getEmitFlags(target) & ~(32768 /* LocalName */ | 16384 /* ExportName */ | 65536 /* InternalName */)); - } - else { - target = factory2.converters.convertToAssignmentPattern(node.name); - } - var assignment = factory2.createAssignment(target, node.initializer); - setOriginalNode(assignment, node); - setCommentRange(assignment, node); - setSourceMapRange(assignment, node); - return assignment; - } - function hoistBindingElement(node, isExportedDeclaration, original) { - var e_488, _t; - if (isBindingPattern(node.name)) { - try { - for (var _u = __values(node.name.elements), _v = _u.next(); !_v.done; _v = _u.next()) { - var element = _v.value; - if (!isOmittedExpression(element)) { - hoistBindingElement(element, isExportedDeclaration, original); - } - } - } - catch (e_488_1) { e_488 = { error: e_488_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_488) throw e_488.error; } - } - } - else { - hoistBindingIdentifier(node.name, isExportedDeclaration, - /*exportAlias*/ - void 0, original); - } - } - function hoistBindingIdentifier(node, isExport, exportAlias, original) { - var name = isGeneratedIdentifier(node) ? node : factory2.cloneNode(node); - if (isExport) { - if (exportAlias === void 0 && !isLocalName(name)) { - var varDecl = factory2.createVariableDeclaration(name); - if (original) { - setOriginalNode(varDecl, original); - } - exportVars.push(varDecl); - return; - } - var localName = exportAlias !== void 0 ? name : void 0; - var exportName = exportAlias !== void 0 ? exportAlias : name; - var specifier = factory2.createExportSpecifier( - /*isTypeOnly*/ - false, localName, exportName); - if (original) { - setOriginalNode(specifier, original); - } - exportBindings.set(name, specifier); - } - hoistVariableDeclaration(name); - } - function createEnvBinding() { - return factory2.createUniqueName("env"); - } - function createDownlevelUsingStatements(bodyStatements, envBinding, async) { - var statements = []; - var envObject = factory2.createObjectLiteralExpression([ - factory2.createPropertyAssignment("stack", factory2.createArrayLiteralExpression()), - factory2.createPropertyAssignment("error", factory2.createVoidZero()), - factory2.createPropertyAssignment("hasError", factory2.createFalse()) - ]); - var envVar = factory2.createVariableDeclaration(envBinding, - /*exclamationToken*/ - void 0, - /*type*/ - void 0, envObject); - var envVarList = factory2.createVariableDeclarationList([envVar], 2 /* Const */); - var envVarStatement = factory2.createVariableStatement( - /*modifiers*/ - void 0, envVarList); - statements.push(envVarStatement); - var tryBlock = factory2.createBlock(bodyStatements, - /*multiLine*/ - true); - var bodyCatchBinding = factory2.createUniqueName("e"); - var catchClause = factory2.createCatchClause(bodyCatchBinding, factory2.createBlock([ - factory2.createExpressionStatement(factory2.createAssignment(factory2.createPropertyAccessExpression(envBinding, "error"), bodyCatchBinding)), - factory2.createExpressionStatement(factory2.createAssignment(factory2.createPropertyAccessExpression(envBinding, "hasError"), factory2.createTrue())) - ], - /*multiLine*/ - true)); - var finallyBlock; - if (async) { - var result = factory2.createUniqueName("result"); - finallyBlock = factory2.createBlock([ - factory2.createVariableStatement( - /*modifiers*/ - void 0, factory2.createVariableDeclarationList([ - factory2.createVariableDeclaration(result, - /*exclamationToken*/ - void 0, - /*type*/ - void 0, emitHelpers().createDisposeResourcesHelper(envBinding)) - ], 2 /* Const */)), - factory2.createIfStatement(result, factory2.createExpressionStatement(factory2.createAwaitExpression(result))) - ], - /*multiLine*/ - true); - } - else { - finallyBlock = factory2.createBlock([ - factory2.createExpressionStatement(emitHelpers().createDisposeResourcesHelper(envBinding)) - ], - /*multiLine*/ - true); - } - var tryStatement = factory2.createTryStatement(tryBlock, catchClause, finallyBlock); - statements.push(tryStatement); - return statements; - } -} -function countPrologueStatements(statements) { - for (var i = 0; i < statements.length; i++) { - if (!isPrologueDirective(statements[i]) && !isCustomPrologue(statements[i])) { - return i; - } - } - return 0; -} -function isUsingVariableDeclarationList(node) { - return isVariableDeclarationList(node) && getUsingKindOfVariableDeclarationList(node) !== 0 /* None */; -} -function getUsingKindOfVariableDeclarationList(node) { - return (node.flags & 7 /* BlockScoped */) === 6 /* AwaitUsing */ ? 2 /* Async */ : (node.flags & 7 /* BlockScoped */) === 4 /* Using */ ? 1 /* Sync */ : 0 /* None */; -} -function getUsingKindOfVariableStatement(node) { - return getUsingKindOfVariableDeclarationList(node.declarationList); -} -function getUsingKind(statement) { - return isVariableStatement(statement) ? getUsingKindOfVariableStatement(statement) : 0 /* None */; -} -function getUsingKindOfStatements(statements) { - var e_489, _t; - var result = 0 /* None */; - try { - for (var statements_4 = __values(statements), statements_4_1 = statements_4.next(); !statements_4_1.done; statements_4_1 = statements_4.next()) { - var statement = statements_4_1.value; - var usingKind = getUsingKind(statement); - if (usingKind === 2 /* Async */) - return 2 /* Async */; - if (usingKind > result) - result = usingKind; - } - } - catch (e_489_1) { e_489 = { error: e_489_1 }; } - finally { - try { - if (statements_4_1 && !statements_4_1.done && (_t = statements_4.return)) _t.call(statements_4); - } - finally { if (e_489) throw e_489.error; } - } - return result; -} -function getUsingKindOfCaseOrDefaultClauses(clauses) { - var e_490, _t; - var result = 0 /* None */; - try { - for (var clauses_2 = __values(clauses), clauses_2_1 = clauses_2.next(); !clauses_2_1.done; clauses_2_1 = clauses_2.next()) { - var clause = clauses_2_1.value; - var usingKind = getUsingKindOfStatements(clause.statements); - if (usingKind === 2 /* Async */) - return 2 /* Async */; - if (usingKind > result) - result = usingKind; - } - } - catch (e_490_1) { e_490 = { error: e_490_1 }; } - finally { - try { - if (clauses_2_1 && !clauses_2_1.done && (_t = clauses_2.return)) _t.call(clauses_2); - } - finally { if (e_490) throw e_490.error; } - } - return result; -} -// src/compiler/transformers/jsx.ts -function transformJsx(context) { - var factory2 = context.factory, emitHelpers = context.getEmitHelperFactory; - var compilerOptions = context.getCompilerOptions(); - var currentSourceFile; - var currentFileState; - return chainBundle(context, transformSourceFile); - function getCurrentFileNameExpression() { - if (currentFileState.filenameDeclaration) { - return currentFileState.filenameDeclaration.name; - } - var declaration = factory2.createVariableDeclaration(factory2.createUniqueName("_jsxFileName", 16 /* Optimistic */ | 32 /* FileLevel */), - /*exclamationToken*/ - void 0, - /*type*/ - void 0, factory2.createStringLiteral(currentSourceFile.fileName)); - currentFileState.filenameDeclaration = declaration; - return currentFileState.filenameDeclaration.name; - } - function getJsxFactoryCalleePrimitive(isStaticChildren) { - return compilerOptions.jsx === 5 /* ReactJSXDev */ ? "jsxDEV" : isStaticChildren ? "jsxs" : "jsx"; - } - function getJsxFactoryCallee(isStaticChildren) { - var type = getJsxFactoryCalleePrimitive(isStaticChildren); - return getImplicitImportForName(type); - } - function getImplicitJsxFragmentReference() { - return getImplicitImportForName("Fragment"); - } - function getImplicitImportForName(name) { - var _a, _b; - var importSource = name === "createElement" ? currentFileState.importSpecifier : getJSXRuntimeImport(currentFileState.importSpecifier, compilerOptions); - var existing = (_b = (_a = currentFileState.utilizedImplicitRuntimeImports) == null ? void 0 : _a.get(importSource)) == null ? void 0 : _b.get(name); - if (existing) { - return existing.name; - } - if (!currentFileState.utilizedImplicitRuntimeImports) { - currentFileState.utilizedImplicitRuntimeImports = /* @__PURE__ */ new Map(); - } - var specifierSourceImports = currentFileState.utilizedImplicitRuntimeImports.get(importSource); - if (!specifierSourceImports) { - specifierSourceImports = /* @__PURE__ */ new Map(); - currentFileState.utilizedImplicitRuntimeImports.set(importSource, specifierSourceImports); - } - var generatedName = factory2.createUniqueName("_".concat(name), 16 /* Optimistic */ | 32 /* FileLevel */ | 64 /* AllowNameSubstitution */); - var specifier = factory2.createImportSpecifier( - /*isTypeOnly*/ - false, factory2.createIdentifier(name), generatedName); - setIdentifierGeneratedImportReference(generatedName, specifier); - specifierSourceImports.set(name, specifier); - return generatedName; - } - function transformSourceFile(node) { - var e_491, _t; - if (node.isDeclarationFile) { - return node; - } - currentSourceFile = node; - currentFileState = {}; - currentFileState.importSpecifier = getJSXImplicitImportBase(compilerOptions, node); - var visited = visitEachChild(node, visitor, context); - addEmitHelpers(visited, context.readEmitHelpers()); - var statements = visited.statements; - if (currentFileState.filenameDeclaration) { - statements = insertStatementAfterCustomPrologue(statements.slice(), factory2.createVariableStatement( - /*modifiers*/ - void 0, factory2.createVariableDeclarationList([currentFileState.filenameDeclaration], 2 /* Const */))); - } - if (currentFileState.utilizedImplicitRuntimeImports) { - try { - for (var _u = __values(arrayFrom(currentFileState.utilizedImplicitRuntimeImports.entries())), _v = _u.next(); !_v.done; _v = _u.next()) { - var _w = __read(_v.value, 2), importSource = _w[0], importSpecifiersMap = _w[1]; - if (isExternalModule(node)) { - var importStatement = factory2.createImportDeclaration( - /*modifiers*/ - void 0, factory2.createImportClause( - /*isTypeOnly*/ - false, - /*name*/ - void 0, factory2.createNamedImports(arrayFrom(importSpecifiersMap.values()))), factory2.createStringLiteral(importSource), - /*assertClause*/ - void 0); - setParentRecursive(importStatement, - /*incremental*/ - false); - statements = insertStatementAfterCustomPrologue(statements.slice(), importStatement); - } - else if (isExternalOrCommonJsModule(node)) { - var requireStatement = factory2.createVariableStatement( - /*modifiers*/ - void 0, factory2.createVariableDeclarationList([ - factory2.createVariableDeclaration(factory2.createObjectBindingPattern(arrayFrom(importSpecifiersMap.values(), function (s) { return factory2.createBindingElement( - /*dotDotDotToken*/ - void 0, s.propertyName, s.name); })), - /*exclamationToken*/ - void 0, - /*type*/ - void 0, factory2.createCallExpression(factory2.createIdentifier("require"), - /*typeArguments*/ - void 0, [factory2.createStringLiteral(importSource)])) - ], 2 /* Const */)); - setParentRecursive(requireStatement, - /*incremental*/ - false); - statements = insertStatementAfterCustomPrologue(statements.slice(), requireStatement); - } - else { - } - } - } - catch (e_491_1) { e_491 = { error: e_491_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_491) throw e_491.error; } - } - } - if (statements !== visited.statements) { - visited = factory2.updateSourceFile(visited, statements); - } - currentFileState = void 0; - return visited; - } - function visitor(node) { - if (node.transformFlags & 2 /* ContainsJsx */) { - return visitorWorker(node); - } - else { - return node; - } - } - function visitorWorker(node) { - switch (node.kind) { - case 284 /* JsxElement */: - return visitJsxElement(node, - /*isChild*/ - false); - case 285 /* JsxSelfClosingElement */: - return visitJsxSelfClosingElement(node, - /*isChild*/ - false); - case 288 /* JsxFragment */: - return visitJsxFragment(node, - /*isChild*/ - false); - case 294 /* JsxExpression */: - return visitJsxExpression(node); - default: - return visitEachChild(node, visitor, context); - } - } - function transformJsxChildToExpression(node) { - switch (node.kind) { - case 12 /* JsxText */: - return visitJsxText(node); - case 294 /* JsxExpression */: - return visitJsxExpression(node); - case 284 /* JsxElement */: - return visitJsxElement(node, - /*isChild*/ - true); - case 285 /* JsxSelfClosingElement */: - return visitJsxSelfClosingElement(node, - /*isChild*/ - true); - case 288 /* JsxFragment */: - return visitJsxFragment(node, - /*isChild*/ - true); - default: - return Debug.failBadSyntaxKind(node); - } - } - function hasProto(obj) { - return obj.properties.some(function (p) { return isPropertyAssignment(p) && (isIdentifier(p.name) && idText(p.name) === "__proto__" || isStringLiteral(p.name) && p.name.text === "__proto__"); }); - } - function hasKeyAfterPropsSpread(node) { - var e_492, _t; - var spread = false; - try { - for (var _u = __values(node.attributes.properties), _v = _u.next(); !_v.done; _v = _u.next()) { - var elem = _v.value; - if (isJsxSpreadAttribute(elem) && (!isObjectLiteralExpression(elem.expression) || elem.expression.properties.some(isSpreadAssignment))) { - spread = true; - } - else if (spread && isJsxAttribute(elem) && isIdentifier(elem.name) && elem.name.escapedText === "key") { - return true; - } - } - } - catch (e_492_1) { e_492 = { error: e_492_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_492) throw e_492.error; } - } - return false; - } - function shouldUseCreateElement(node) { - return currentFileState.importSpecifier === void 0 || hasKeyAfterPropsSpread(node); - } - function visitJsxElement(node, isChild) { - var tagTransform = shouldUseCreateElement(node.openingElement) ? visitJsxOpeningLikeElementCreateElement : visitJsxOpeningLikeElementJSX; - return tagTransform(node.openingElement, node.children, isChild, - /*location*/ - node); - } - function visitJsxSelfClosingElement(node, isChild) { - var tagTransform = shouldUseCreateElement(node) ? visitJsxOpeningLikeElementCreateElement : visitJsxOpeningLikeElementJSX; - return tagTransform(node, - /*children*/ - void 0, isChild, - /*location*/ - node); - } - function visitJsxFragment(node, isChild) { - var tagTransform = currentFileState.importSpecifier === void 0 ? visitJsxOpeningFragmentCreateElement : visitJsxOpeningFragmentJSX; - return tagTransform(node.openingFragment, node.children, isChild, - /*location*/ - node); - } - function convertJsxChildrenToChildrenPropObject(children) { - var prop = convertJsxChildrenToChildrenPropAssignment(children); - return prop && factory2.createObjectLiteralExpression([prop]); - } - function convertJsxChildrenToChildrenPropAssignment(children) { - var nonWhitespaceChildren = getSemanticJsxChildren(children); - if (length(nonWhitespaceChildren) === 1 && !nonWhitespaceChildren[0].dotDotDotToken) { - var result2 = transformJsxChildToExpression(nonWhitespaceChildren[0]); - return result2 && factory2.createPropertyAssignment("children", result2); - } - var result = mapDefined(children, transformJsxChildToExpression); - return length(result) ? factory2.createPropertyAssignment("children", factory2.createArrayLiteralExpression(result)) : void 0; - } - function visitJsxOpeningLikeElementJSX(node, children, isChild, location) { - var tagName = getTagName(node); - var childrenProp = children && children.length ? convertJsxChildrenToChildrenPropAssignment(children) : void 0; - var keyAttr = find(node.attributes.properties, function (p) { return !!p.name && isIdentifier(p.name) && p.name.escapedText === "key"; }); - var attrs = keyAttr ? filter(node.attributes.properties, function (p) { return p !== keyAttr; }) : node.attributes.properties; - var objectProperties = length(attrs) ? transformJsxAttributesToObjectProps(attrs, childrenProp) : factory2.createObjectLiteralExpression(childrenProp ? [childrenProp] : emptyArray); - return visitJsxOpeningLikeElementOrFragmentJSX(tagName, objectProperties, keyAttr, children || emptyArray, isChild, location); - } - function visitJsxOpeningLikeElementOrFragmentJSX(tagName, objectProperties, keyAttr, children, isChild, location) { - var _a; - var nonWhitespaceChildren = getSemanticJsxChildren(children); - var isStaticChildren = length(nonWhitespaceChildren) > 1 || !!((_a = nonWhitespaceChildren[0]) == null ? void 0 : _a.dotDotDotToken); - var args = [tagName, objectProperties]; - if (keyAttr) { - args.push(transformJsxAttributeInitializer(keyAttr.initializer)); - } - if (compilerOptions.jsx === 5 /* ReactJSXDev */) { - var originalFile = getOriginalNode(currentSourceFile); - if (originalFile && isSourceFile(originalFile)) { - if (keyAttr === void 0) { - args.push(factory2.createVoidZero()); - } - args.push(isStaticChildren ? factory2.createTrue() : factory2.createFalse()); - var lineCol = getLineAndCharacterOfPosition(originalFile, location.pos); - args.push(factory2.createObjectLiteralExpression([ - factory2.createPropertyAssignment("fileName", getCurrentFileNameExpression()), - factory2.createPropertyAssignment("lineNumber", factory2.createNumericLiteral(lineCol.line + 1)), - factory2.createPropertyAssignment("columnNumber", factory2.createNumericLiteral(lineCol.character + 1)) - ])); - args.push(factory2.createThis()); - } - } - var element = setTextRange(factory2.createCallExpression(getJsxFactoryCallee(isStaticChildren), - /*typeArguments*/ - void 0, args), location); - if (isChild) { - startOnNewLine(element); - } - return element; - } - function visitJsxOpeningLikeElementCreateElement(node, children, isChild, location) { - var tagName = getTagName(node); - var attrs = node.attributes.properties; - var objectProperties = length(attrs) ? transformJsxAttributesToObjectProps(attrs) : factory2.createNull(); - var callee = currentFileState.importSpecifier === void 0 ? createJsxFactoryExpression(factory2, context.getEmitResolver().getJsxFactoryEntity(currentSourceFile), compilerOptions.reactNamespace, - // TODO: GH#18217 - node) : getImplicitImportForName("createElement"); - var element = createExpressionForJsxElement(factory2, callee, tagName, objectProperties, mapDefined(children, transformJsxChildToExpression), location); - if (isChild) { - startOnNewLine(element); - } - return element; - } - function visitJsxOpeningFragmentJSX(_node, children, isChild, location) { - var childrenProps; - if (children && children.length) { - var result = convertJsxChildrenToChildrenPropObject(children); - if (result) { - childrenProps = result; - } - } - return visitJsxOpeningLikeElementOrFragmentJSX(getImplicitJsxFragmentReference(), childrenProps || factory2.createObjectLiteralExpression([]), - /*keyAttr*/ - void 0, children, isChild, location); - } - function visitJsxOpeningFragmentCreateElement(node, children, isChild, location) { - var element = createExpressionForJsxFragment(factory2, context.getEmitResolver().getJsxFactoryEntity(currentSourceFile), context.getEmitResolver().getJsxFragmentFactoryEntity(currentSourceFile), compilerOptions.reactNamespace, - // TODO: GH#18217 - mapDefined(children, transformJsxChildToExpression), node, location); - if (isChild) { - startOnNewLine(element); - } - return element; - } - function transformJsxSpreadAttributeToProps(node) { - if (isObjectLiteralExpression(node.expression) && !hasProto(node.expression)) { - return node.expression.properties; - } - return factory2.createSpreadAssignment(Debug.checkDefined(visitNode(node.expression, visitor, isExpression))); - } - function transformJsxAttributesToObjectProps(attrs, children) { - var target = getEmitScriptTarget(compilerOptions); - return target && target >= 5 /* ES2018 */ ? factory2.createObjectLiteralExpression(transformJsxAttributesToProps(attrs, children)) : transformJsxAttributesToExpression(attrs, children); - } - function transformJsxAttributesToProps(attrs, children) { - var props = flatten(spanMap(attrs, isJsxSpreadAttribute, function (attrs2, isSpread) { return flatten(map(attrs2, function (attr) { return isSpread ? transformJsxSpreadAttributeToProps(attr) : transformJsxAttributeToObjectLiteralElement(attr); })); })); - if (children) { - props.push(children); - } - return props; - } - function transformJsxAttributesToExpression(attrs, children) { - var e_493, _t, e_494, _u; - var expressions = []; - var properties = []; - try { - for (var attrs_1 = __values(attrs), attrs_1_1 = attrs_1.next(); !attrs_1_1.done; attrs_1_1 = attrs_1.next()) { - var attr = attrs_1_1.value; - if (isJsxSpreadAttribute(attr)) { - if (isObjectLiteralExpression(attr.expression) && !hasProto(attr.expression)) { - try { - for (var _v = (e_494 = void 0, __values(attr.expression.properties)), _w = _v.next(); !_w.done; _w = _v.next()) { - var prop = _w.value; - if (isSpreadAssignment(prop)) { - finishObjectLiteralIfNeeded(); - expressions.push(Debug.checkDefined(visitNode(prop.expression, visitor, isExpression))); - continue; - } - properties.push(Debug.checkDefined(visitNode(prop, visitor))); - } - } - catch (e_494_1) { e_494 = { error: e_494_1 }; } - finally { - try { - if (_w && !_w.done && (_u = _v.return)) _u.call(_v); - } - finally { if (e_494) throw e_494.error; } - } - continue; - } - finishObjectLiteralIfNeeded(); - expressions.push(Debug.checkDefined(visitNode(attr.expression, visitor, isExpression))); - continue; - } - properties.push(transformJsxAttributeToObjectLiteralElement(attr)); - } - } - catch (e_493_1) { e_493 = { error: e_493_1 }; } - finally { - try { - if (attrs_1_1 && !attrs_1_1.done && (_t = attrs_1.return)) _t.call(attrs_1); - } - finally { if (e_493) throw e_493.error; } - } - if (children) { - properties.push(children); - } - finishObjectLiteralIfNeeded(); - if (expressions.length && !isObjectLiteralExpression(expressions[0])) { - expressions.unshift(factory2.createObjectLiteralExpression()); - } - return singleOrUndefined(expressions) || emitHelpers().createAssignHelper(expressions); - function finishObjectLiteralIfNeeded() { - if (properties.length) { - expressions.push(factory2.createObjectLiteralExpression(properties)); - properties = []; - } - } - } - function transformJsxAttributeToObjectLiteralElement(node) { - var name = getAttributeName(node); - var expression = transformJsxAttributeInitializer(node.initializer); - return factory2.createPropertyAssignment(name, expression); - } - function transformJsxAttributeInitializer(node) { - if (node === void 0) { - return factory2.createTrue(); - } - if (node.kind === 11 /* StringLiteral */) { - var singleQuote = node.singleQuote !== void 0 ? node.singleQuote : !isStringDoubleQuoted(node, currentSourceFile); - var literal = factory2.createStringLiteral(tryDecodeEntities(node.text) || node.text, singleQuote); - return setTextRange(literal, node); - } - if (node.kind === 294 /* JsxExpression */) { - if (node.expression === void 0) { - return factory2.createTrue(); - } - return Debug.checkDefined(visitNode(node.expression, visitor, isExpression)); - } - if (isJsxElement(node)) { - return visitJsxElement(node, - /*isChild*/ - false); - } - if (isJsxSelfClosingElement(node)) { - return visitJsxSelfClosingElement(node, - /*isChild*/ - false); - } - if (isJsxFragment(node)) { - return visitJsxFragment(node, - /*isChild*/ - false); - } - return Debug.failBadSyntaxKind(node); - } - function visitJsxText(node) { - var fixed = fixupWhitespaceAndDecodeEntities(node.text); - return fixed === void 0 ? void 0 : factory2.createStringLiteral(fixed); - } - function fixupWhitespaceAndDecodeEntities(text) { - var acc; - var firstNonWhitespace = 0; - var lastNonWhitespace = -1; - for (var i = 0; i < text.length; i++) { - var c = text.charCodeAt(i); - if (isLineBreak(c)) { - if (firstNonWhitespace !== -1 && lastNonWhitespace !== -1) { - acc = addLineOfJsxText(acc, text.substr(firstNonWhitespace, lastNonWhitespace - firstNonWhitespace + 1)); - } - firstNonWhitespace = -1; - } - else if (!isWhiteSpaceSingleLine(c)) { - lastNonWhitespace = i; - if (firstNonWhitespace === -1) { - firstNonWhitespace = i; - } - } - } - return firstNonWhitespace !== -1 ? addLineOfJsxText(acc, text.substr(firstNonWhitespace)) : acc; - } - function addLineOfJsxText(acc, trimmedLine) { - var decoded = decodeEntities(trimmedLine); - return acc === void 0 ? decoded : acc + " " + decoded; - } - function decodeEntities(text) { - return text.replace(/&((#((\d+)|x([\da-fA-F]+)))|(\w+));/g, function (match, _all, _number, _digits, decimal, hex, word) { - if (decimal) { - return utf16EncodeAsString(parseInt(decimal, 10)); - } - else if (hex) { - return utf16EncodeAsString(parseInt(hex, 16)); - } - else { - var ch = entities.get(word); - return ch ? utf16EncodeAsString(ch) : match; - } - }); - } - function tryDecodeEntities(text) { - var decoded = decodeEntities(text); - return decoded === text ? void 0 : decoded; - } - function getTagName(node) { - if (node.kind === 284 /* JsxElement */) { - return getTagName(node.openingElement); - } - else { - var tagName = node.tagName; - if (isIdentifier(tagName) && isIntrinsicJsxName(tagName.escapedText)) { - return factory2.createStringLiteral(idText(tagName)); - } - else if (isJsxNamespacedName(tagName)) { - return factory2.createStringLiteral(idText(tagName.namespace) + ":" + idText(tagName.name)); - } - else { - return createExpressionFromEntityName(factory2, tagName); - } - } - } - function getAttributeName(node) { - var name = node.name; - if (isIdentifier(name)) { - var text = idText(name); - return /^[A-Za-z_]\w*$/.test(text) ? name : factory2.createStringLiteral(text); - } - return factory2.createStringLiteral(idText(name.namespace) + ":" + idText(name.name)); - } - function visitJsxExpression(node) { - var expression = visitNode(node.expression, visitor, isExpression); - return node.dotDotDotToken ? factory2.createSpreadElement(expression) : expression; - } -} -var entities = new Map(Object.entries({ - quot: 34, - amp: 38, - apos: 39, - lt: 60, - gt: 62, - nbsp: 160, - iexcl: 161, - cent: 162, - pound: 163, - curren: 164, - yen: 165, - brvbar: 166, - sect: 167, - uml: 168, - copy: 169, - ordf: 170, - laquo: 171, - not: 172, - shy: 173, - reg: 174, - macr: 175, - deg: 176, - plusmn: 177, - sup2: 178, - sup3: 179, - acute: 180, - micro: 181, - para: 182, - middot: 183, - cedil: 184, - sup1: 185, - ordm: 186, - raquo: 187, - frac14: 188, - frac12: 189, - frac34: 190, - iquest: 191, - Agrave: 192, - Aacute: 193, - Acirc: 194, - Atilde: 195, - Auml: 196, - Aring: 197, - AElig: 198, - Ccedil: 199, - Egrave: 200, - Eacute: 201, - Ecirc: 202, - Euml: 203, - Igrave: 204, - Iacute: 205, - Icirc: 206, - Iuml: 207, - ETH: 208, - Ntilde: 209, - Ograve: 210, - Oacute: 211, - Ocirc: 212, - Otilde: 213, - Ouml: 214, - times: 215, - Oslash: 216, - Ugrave: 217, - Uacute: 218, - Ucirc: 219, - Uuml: 220, - Yacute: 221, - THORN: 222, - szlig: 223, - agrave: 224, - aacute: 225, - acirc: 226, - atilde: 227, - auml: 228, - aring: 229, - aelig: 230, - ccedil: 231, - egrave: 232, - eacute: 233, - ecirc: 234, - euml: 235, - igrave: 236, - iacute: 237, - icirc: 238, - iuml: 239, - eth: 240, - ntilde: 241, - ograve: 242, - oacute: 243, - ocirc: 244, - otilde: 245, - ouml: 246, - divide: 247, - oslash: 248, - ugrave: 249, - uacute: 250, - ucirc: 251, - uuml: 252, - yacute: 253, - thorn: 254, - yuml: 255, - OElig: 338, - oelig: 339, - Scaron: 352, - scaron: 353, - Yuml: 376, - fnof: 402, - circ: 710, - tilde: 732, - Alpha: 913, - Beta: 914, - Gamma: 915, - Delta: 916, - Epsilon: 917, - Zeta: 918, - Eta: 919, - Theta: 920, - Iota: 921, - Kappa: 922, - Lambda: 923, - Mu: 924, - Nu: 925, - Xi: 926, - Omicron: 927, - Pi: 928, - Rho: 929, - Sigma: 931, - Tau: 932, - Upsilon: 933, - Phi: 934, - Chi: 935, - Psi: 936, - Omega: 937, - alpha: 945, - beta: 946, - gamma: 947, - delta: 948, - epsilon: 949, - zeta: 950, - eta: 951, - theta: 952, - iota: 953, - kappa: 954, - lambda: 955, - mu: 956, - nu: 957, - xi: 958, - omicron: 959, - pi: 960, - rho: 961, - sigmaf: 962, - sigma: 963, - tau: 964, - upsilon: 965, - phi: 966, - chi: 967, - psi: 968, - omega: 969, - thetasym: 977, - upsih: 978, - piv: 982, - ensp: 8194, - emsp: 8195, - thinsp: 8201, - zwnj: 8204, - zwj: 8205, - lrm: 8206, - rlm: 8207, - ndash: 8211, - mdash: 8212, - lsquo: 8216, - rsquo: 8217, - sbquo: 8218, - ldquo: 8220, - rdquo: 8221, - bdquo: 8222, - dagger: 8224, - Dagger: 8225, - bull: 8226, - hellip: 8230, - permil: 8240, - prime: 8242, - Prime: 8243, - lsaquo: 8249, - rsaquo: 8250, - oline: 8254, - frasl: 8260, - euro: 8364, - image: 8465, - weierp: 8472, - real: 8476, - trade: 8482, - alefsym: 8501, - larr: 8592, - uarr: 8593, - rarr: 8594, - darr: 8595, - harr: 8596, - crarr: 8629, - lArr: 8656, - uArr: 8657, - rArr: 8658, - dArr: 8659, - hArr: 8660, - forall: 8704, - part: 8706, - exist: 8707, - empty: 8709, - nabla: 8711, - isin: 8712, - notin: 8713, - ni: 8715, - prod: 8719, - sum: 8721, - minus: 8722, - lowast: 8727, - radic: 8730, - prop: 8733, - infin: 8734, - ang: 8736, - and: 8743, - or: 8744, - cap: 8745, - cup: 8746, - int: 8747, - there4: 8756, - sim: 8764, - cong: 8773, - asymp: 8776, - ne: 8800, - equiv: 8801, - le: 8804, - ge: 8805, - sub: 8834, - sup: 8835, - nsub: 8836, - sube: 8838, - supe: 8839, - oplus: 8853, - otimes: 8855, - perp: 8869, - sdot: 8901, - lceil: 8968, - rceil: 8969, - lfloor: 8970, - rfloor: 8971, - lang: 9001, - rang: 9002, - loz: 9674, - spades: 9824, - clubs: 9827, - hearts: 9829, - diams: 9830 -})); -// src/compiler/transformers/es2016.ts -function transformES2016(context) { - var factory2 = context.factory, hoistVariableDeclaration = context.hoistVariableDeclaration; - return chainBundle(context, transformSourceFile); - function transformSourceFile(node) { - if (node.isDeclarationFile) { - return node; - } - return visitEachChild(node, visitor, context); - } - function visitor(node) { - if ((node.transformFlags & 512 /* ContainsES2016 */) === 0) { - return node; - } - switch (node.kind) { - case 226 /* BinaryExpression */: - return visitBinaryExpression(node); - default: - return visitEachChild(node, visitor, context); - } - } - function visitBinaryExpression(node) { - switch (node.operatorToken.kind) { - case 68 /* AsteriskAsteriskEqualsToken */: - return visitExponentiationAssignmentExpression(node); - case 43 /* AsteriskAsteriskToken */: - return visitExponentiationExpression(node); - default: - return visitEachChild(node, visitor, context); - } - } - function visitExponentiationAssignmentExpression(node) { - var target; - var value; - var left = visitNode(node.left, visitor, isExpression); - var right = visitNode(node.right, visitor, isExpression); - if (isElementAccessExpression(left)) { - var expressionTemp = factory2.createTempVariable(hoistVariableDeclaration); - var argumentExpressionTemp = factory2.createTempVariable(hoistVariableDeclaration); - target = setTextRange(factory2.createElementAccessExpression(setTextRange(factory2.createAssignment(expressionTemp, left.expression), left.expression), setTextRange(factory2.createAssignment(argumentExpressionTemp, left.argumentExpression), left.argumentExpression)), left); - value = setTextRange(factory2.createElementAccessExpression(expressionTemp, argumentExpressionTemp), left); - } - else if (isPropertyAccessExpression(left)) { - var expressionTemp = factory2.createTempVariable(hoistVariableDeclaration); - target = setTextRange(factory2.createPropertyAccessExpression(setTextRange(factory2.createAssignment(expressionTemp, left.expression), left.expression), left.name), left); - value = setTextRange(factory2.createPropertyAccessExpression(expressionTemp, left.name), left); - } - else { - target = left; - value = left; - } - return setTextRange(factory2.createAssignment(target, setTextRange(factory2.createGlobalMethodCall("Math", "pow", [value, right]), node)), node); - } - function visitExponentiationExpression(node) { - var left = visitNode(node.left, visitor, isExpression); - var right = visitNode(node.right, visitor, isExpression); - return setTextRange(factory2.createGlobalMethodCall("Math", "pow", [left, right]), node); - } -} -// src/compiler/transformers/es2015.ts -function createSpreadSegment(kind, expression) { - return { kind: kind, expression: expression }; -} -function transformES2015(context) { - var factory2 = context.factory, emitHelpers = context.getEmitHelperFactory, startLexicalEnvironment = context.startLexicalEnvironment, resumeLexicalEnvironment = context.resumeLexicalEnvironment, endLexicalEnvironment = context.endLexicalEnvironment, hoistVariableDeclaration = context.hoistVariableDeclaration; - var compilerOptions = context.getCompilerOptions(); - var resolver = context.getEmitResolver(); - var previousOnSubstituteNode = context.onSubstituteNode; - var previousOnEmitNode = context.onEmitNode; - context.onEmitNode = onEmitNode; - context.onSubstituteNode = onSubstituteNode; - var currentSourceFile; - var currentText; - var hierarchyFacts; - var taggedTemplateStringDeclarations; - function recordTaggedTemplateString(temp) { - taggedTemplateStringDeclarations = append(taggedTemplateStringDeclarations, factory2.createVariableDeclaration(temp)); - } - var convertedLoopState; - var enabledSubstitutions; - return chainBundle(context, transformSourceFile); - function transformSourceFile(node) { - if (node.isDeclarationFile) { - return node; - } - currentSourceFile = node; - currentText = node.text; - var visited = visitSourceFile(node); - addEmitHelpers(visited, context.readEmitHelpers()); - currentSourceFile = void 0; - currentText = void 0; - taggedTemplateStringDeclarations = void 0; - hierarchyFacts = 0 /* None */; - return visited; - } - function enterSubtree(excludeFacts, includeFacts) { - var ancestorFacts = hierarchyFacts; - hierarchyFacts = (hierarchyFacts & ~excludeFacts | includeFacts) & 32767 /* AncestorFactsMask */; - return ancestorFacts; - } - function exitSubtree(ancestorFacts, excludeFacts, includeFacts) { - hierarchyFacts = (hierarchyFacts & ~excludeFacts | includeFacts) & -32768 /* SubtreeFactsMask */ | ancestorFacts; - } - function isReturnVoidStatementInConstructorWithCapturedSuper(node) { - return (hierarchyFacts & 8192 /* ConstructorWithCapturedSuper */) !== 0 && node.kind === 253 /* ReturnStatement */ && !node.expression; - } - function isOrMayContainReturnCompletion(node) { - return node.transformFlags & 4194304 /* ContainsHoistedDeclarationOrCompletion */ && (isReturnStatement(node) || isIfStatement(node) || isWithStatement(node) || isSwitchStatement(node) || isCaseBlock(node) || isCaseClause(node) || isDefaultClause(node) || isTryStatement(node) || isCatchClause(node) || isLabeledStatement(node) || isIterationStatement(node, - /*lookInLabeledStatements*/ - false) || isBlock(node)); - } - function shouldVisitNode(node) { - return (node.transformFlags & 1024 /* ContainsES2015 */) !== 0 || convertedLoopState !== void 0 || hierarchyFacts & 8192 /* ConstructorWithCapturedSuper */ && isOrMayContainReturnCompletion(node) || isIterationStatement(node, - /*lookInLabeledStatements*/ - false) && shouldConvertIterationStatement(node) || (getInternalEmitFlags(node) & 1 /* TypeScriptClassWrapper */) !== 0; - } - function visitor(node) { - return shouldVisitNode(node) ? visitorWorker(node, - /*expressionResultIsUnused*/ - false) : node; - } - function visitorWithUnusedExpressionResult(node) { - return shouldVisitNode(node) ? visitorWorker(node, - /*expressionResultIsUnused*/ - true) : node; - } - function classWrapperStatementVisitor(node) { - if (shouldVisitNode(node)) { - var original = getOriginalNode(node); - if (isPropertyDeclaration(original) && hasStaticModifier(original)) { - var ancestorFacts = enterSubtree(32670 /* StaticInitializerExcludes */, 16449 /* StaticInitializerIncludes */); - var result = visitorWorker(node, - /*expressionResultIsUnused*/ - false); - exitSubtree(ancestorFacts, 98304 /* FunctionSubtreeExcludes */, 0 /* None */); - return result; - } - return visitorWorker(node, - /*expressionResultIsUnused*/ - false); - } - return node; - } - function callExpressionVisitor(node) { - if (node.kind === 108 /* SuperKeyword */) { - return visitSuperKeyword( - /*isExpressionOfCall*/ - true); - } - return visitor(node); - } - function visitorWorker(node, expressionResultIsUnused2) { - switch (node.kind) { - case 126 /* StaticKeyword */: - return void 0; - case 263 /* ClassDeclaration */: - return visitClassDeclaration(node); - case 231 /* ClassExpression */: - return visitClassExpression(node); - case 169 /* Parameter */: - return visitParameter(node); - case 262 /* FunctionDeclaration */: - return visitFunctionDeclaration(node); - case 219 /* ArrowFunction */: - return visitArrowFunction(node); - case 218 /* FunctionExpression */: - return visitFunctionExpression(node); - case 260 /* VariableDeclaration */: - return visitVariableDeclaration(node); - case 80 /* Identifier */: - return visitIdentifier(node); - case 261 /* VariableDeclarationList */: - return visitVariableDeclarationList(node); - case 255 /* SwitchStatement */: - return visitSwitchStatement(node); - case 269 /* CaseBlock */: - return visitCaseBlock(node); - case 241 /* Block */: - return visitBlock(node, - /*isFunctionBody*/ - false); - case 252 /* BreakStatement */: - case 251 /* ContinueStatement */: - return visitBreakOrContinueStatement(node); - case 256 /* LabeledStatement */: - return visitLabeledStatement(node); - case 246 /* DoStatement */: - case 247 /* WhileStatement */: - return visitDoOrWhileStatement(node, - /*outermostLabeledStatement*/ - void 0); - case 248 /* ForStatement */: - return visitForStatement(node, - /*outermostLabeledStatement*/ - void 0); - case 249 /* ForInStatement */: - return visitForInStatement(node, - /*outermostLabeledStatement*/ - void 0); - case 250 /* ForOfStatement */: - return visitForOfStatement(node, - /*outermostLabeledStatement*/ - void 0); - case 244 /* ExpressionStatement */: - return visitExpressionStatement(node); - case 210 /* ObjectLiteralExpression */: - return visitObjectLiteralExpression(node); - case 299 /* CatchClause */: - return visitCatchClause(node); - case 304 /* ShorthandPropertyAssignment */: - return visitShorthandPropertyAssignment(node); - case 167 /* ComputedPropertyName */: - return visitComputedPropertyName(node); - case 209 /* ArrayLiteralExpression */: - return visitArrayLiteralExpression(node); - case 213 /* CallExpression */: - return visitCallExpression(node); - case 214 /* NewExpression */: - return visitNewExpression(node); - case 217 /* ParenthesizedExpression */: - return visitParenthesizedExpression(node, expressionResultIsUnused2); - case 226 /* BinaryExpression */: - return visitBinaryExpression(node, expressionResultIsUnused2); - case 361 /* CommaListExpression */: - return visitCommaListExpression(node, expressionResultIsUnused2); - case 15 /* NoSubstitutionTemplateLiteral */: - case 16 /* TemplateHead */: - case 17 /* TemplateMiddle */: - case 18 /* TemplateTail */: - return visitTemplateLiteral(node); - case 11 /* StringLiteral */: - return visitStringLiteral(node); - case 9 /* NumericLiteral */: - return visitNumericLiteral(node); - case 215 /* TaggedTemplateExpression */: - return visitTaggedTemplateExpression(node); - case 228 /* TemplateExpression */: - return visitTemplateExpression(node); - case 229 /* YieldExpression */: - return visitYieldExpression(node); - case 230 /* SpreadElement */: - return visitSpreadElement(node); - case 108 /* SuperKeyword */: - return visitSuperKeyword( - /*isExpressionOfCall*/ - false); - case 110 /* ThisKeyword */: - return visitThisKeyword(node); - case 236 /* MetaProperty */: - return visitMetaProperty(node); - case 174 /* MethodDeclaration */: - return visitMethodDeclaration(node); - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - return visitAccessorDeclaration(node); - case 243 /* VariableStatement */: - return visitVariableStatement(node); - case 253 /* ReturnStatement */: - return visitReturnStatement(node); - case 222 /* VoidExpression */: - return visitVoidExpression(node); - default: - return visitEachChild(node, visitor, context); - } - } - function visitSourceFile(node) { - var ancestorFacts = enterSubtree(8064 /* SourceFileExcludes */, 64 /* SourceFileIncludes */); - var prologue = []; - var statements = []; - startLexicalEnvironment(); - var statementOffset = factory2.copyPrologue(node.statements, prologue, - /*ensureUseStrict*/ - false, visitor); - addRange(statements, visitNodes2(node.statements, visitor, isStatement, statementOffset)); - if (taggedTemplateStringDeclarations) { - statements.push(factory2.createVariableStatement( - /*modifiers*/ - void 0, factory2.createVariableDeclarationList(taggedTemplateStringDeclarations))); - } - factory2.mergeLexicalEnvironment(prologue, endLexicalEnvironment()); - insertCaptureThisForNodeIfNeeded(prologue, node); - exitSubtree(ancestorFacts, 0 /* None */, 0 /* None */); - return factory2.updateSourceFile(node, setTextRange(factory2.createNodeArray(concatenate(prologue, statements)), node.statements)); - } - function visitSwitchStatement(node) { - if (convertedLoopState !== void 0) { - var savedAllowedNonLabeledJumps = convertedLoopState.allowedNonLabeledJumps; - convertedLoopState.allowedNonLabeledJumps |= 2 /* Break */; - var result = visitEachChild(node, visitor, context); - convertedLoopState.allowedNonLabeledJumps = savedAllowedNonLabeledJumps; - return result; - } - return visitEachChild(node, visitor, context); - } - function visitCaseBlock(node) { - var ancestorFacts = enterSubtree(7104 /* BlockScopeExcludes */, 0 /* BlockScopeIncludes */); - var updated = visitEachChild(node, visitor, context); - exitSubtree(ancestorFacts, 0 /* None */, 0 /* None */); - return updated; - } - function returnCapturedThis(node) { - return setOriginalNode(factory2.createReturnStatement(factory2.createUniqueName("_this", 16 /* Optimistic */ | 32 /* FileLevel */)), node); - } - function visitReturnStatement(node) { - if (convertedLoopState) { - convertedLoopState.nonLocalJumps |= 8 /* Return */; - if (isReturnVoidStatementInConstructorWithCapturedSuper(node)) { - node = returnCapturedThis(node); - } - return factory2.createReturnStatement(factory2.createObjectLiteralExpression([ - factory2.createPropertyAssignment(factory2.createIdentifier("value"), node.expression ? Debug.checkDefined(visitNode(node.expression, visitor, isExpression)) : factory2.createVoidZero()) - ])); - } - else if (isReturnVoidStatementInConstructorWithCapturedSuper(node)) { - return returnCapturedThis(node); - } - return visitEachChild(node, visitor, context); - } - function visitThisKeyword(node) { - if (hierarchyFacts & 2 /* ArrowFunction */ && !(hierarchyFacts & 16384 /* StaticInitializer */)) { - hierarchyFacts |= 65536 /* CapturedLexicalThis */; - } - if (convertedLoopState) { - if (hierarchyFacts & 2 /* ArrowFunction */) { - convertedLoopState.containsLexicalThis = true; - return node; - } - return convertedLoopState.thisName || (convertedLoopState.thisName = factory2.createUniqueName("this")); - } - return node; - } - function visitVoidExpression(node) { - return visitEachChild(node, visitorWithUnusedExpressionResult, context); - } - function visitIdentifier(node) { - if (convertedLoopState) { - if (resolver.isArgumentsLocalBinding(node)) { - return convertedLoopState.argumentsName || (convertedLoopState.argumentsName = factory2.createUniqueName("arguments")); - } - } - if (node.flags & 256 /* IdentifierHasExtendedUnicodeEscape */) { - return setOriginalNode(setTextRange(factory2.createIdentifier(unescapeLeadingUnderscores(node.escapedText)), node), node); - } - return node; - } - function visitBreakOrContinueStatement(node) { - if (convertedLoopState) { - var jump = node.kind === 252 /* BreakStatement */ ? 2 /* Break */ : 4 /* Continue */; - var canUseBreakOrContinue = node.label && convertedLoopState.labels && convertedLoopState.labels.get(idText(node.label)) || !node.label && convertedLoopState.allowedNonLabeledJumps & jump; - if (!canUseBreakOrContinue) { - var labelMarker = void 0; - var label = node.label; - if (!label) { - if (node.kind === 252 /* BreakStatement */) { - convertedLoopState.nonLocalJumps |= 2 /* Break */; - labelMarker = "break"; - } - else { - convertedLoopState.nonLocalJumps |= 4 /* Continue */; - labelMarker = "continue"; - } - } - else { - if (node.kind === 252 /* BreakStatement */) { - labelMarker = "break-".concat(label.escapedText); - setLabeledJump(convertedLoopState, - /*isBreak*/ - true, idText(label), labelMarker); - } - else { - labelMarker = "continue-".concat(label.escapedText); - setLabeledJump(convertedLoopState, - /*isBreak*/ - false, idText(label), labelMarker); - } - } - var returnExpression = factory2.createStringLiteral(labelMarker); - if (convertedLoopState.loopOutParameters.length) { - var outParams = convertedLoopState.loopOutParameters; - var expr = void 0; - for (var i = 0; i < outParams.length; i++) { - var copyExpr = copyOutParameter(outParams[i], 1 /* ToOutParameter */); - if (i === 0) { - expr = copyExpr; - } - else { - expr = factory2.createBinaryExpression(expr, 28 /* CommaToken */, copyExpr); - } - } - returnExpression = factory2.createBinaryExpression(expr, 28 /* CommaToken */, returnExpression); - } - return factory2.createReturnStatement(returnExpression); - } - } - return visitEachChild(node, visitor, context); - } - function visitClassDeclaration(node) { - var variable = factory2.createVariableDeclaration(factory2.getLocalName(node, - /*allowComments*/ - true), - /*exclamationToken*/ - void 0, - /*type*/ - void 0, transformClassLikeDeclarationToExpression(node)); - setOriginalNode(variable, node); - var statements = []; - var statement = factory2.createVariableStatement( - /*modifiers*/ - void 0, factory2.createVariableDeclarationList([variable])); - setOriginalNode(statement, node); - setTextRange(statement, node); - startOnNewLine(statement); - statements.push(statement); - if (hasSyntacticModifier(node, 1 /* Export */)) { - var exportStatement = hasSyntacticModifier(node, 1024 /* Default */) ? factory2.createExportDefault(factory2.getLocalName(node)) : factory2.createExternalModuleExport(factory2.getLocalName(node)); - setOriginalNode(exportStatement, statement); - statements.push(exportStatement); - } - return singleOrMany(statements); - } - function visitClassExpression(node) { - return transformClassLikeDeclarationToExpression(node); - } - function transformClassLikeDeclarationToExpression(node) { - if (node.name) { - enableSubstitutionsForBlockScopedBindings(); - } - var extendsClauseElement = getClassExtendsHeritageElement(node); - var classFunction = factory2.createFunctionExpression( - /*modifiers*/ - void 0, - /*asteriskToken*/ - void 0, - /*name*/ - void 0, - /*typeParameters*/ - void 0, extendsClauseElement ? [factory2.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, factory2.createUniqueName("_super", 16 /* Optimistic */ | 32 /* FileLevel */))] : [], - /*type*/ - void 0, transformClassBody(node, extendsClauseElement)); - setEmitFlags(classFunction, getEmitFlags(node) & 131072 /* Indented */ | 1048576 /* ReuseTempVariableScope */); - var inner = factory2.createPartiallyEmittedExpression(classFunction); - setTextRangeEnd(inner, node.end); - setEmitFlags(inner, 3072 /* NoComments */); - var outer = factory2.createPartiallyEmittedExpression(inner); - setTextRangeEnd(outer, skipTrivia(currentText, node.pos)); - setEmitFlags(outer, 3072 /* NoComments */); - var result = factory2.createParenthesizedExpression(factory2.createCallExpression(outer, - /*typeArguments*/ - void 0, extendsClauseElement ? [Debug.checkDefined(visitNode(extendsClauseElement.expression, visitor, isExpression))] : [])); - addSyntheticLeadingComment(result, 3 /* MultiLineCommentTrivia */, "* @class "); - return result; - } - function transformClassBody(node, extendsClauseElement) { - var statements = []; - var name = factory2.getInternalName(node); - var constructorLikeName = isIdentifierANonContextualKeyword(name) ? factory2.getGeneratedNameForNode(name) : name; - startLexicalEnvironment(); - addExtendsHelperIfNeeded(statements, node, extendsClauseElement); - addConstructor(statements, node, constructorLikeName, extendsClauseElement); - addClassMembers(statements, node); - var closingBraceLocation = createTokenRange(skipTrivia(currentText, node.members.end), 20 /* CloseBraceToken */); - var outer = factory2.createPartiallyEmittedExpression(constructorLikeName); - setTextRangeEnd(outer, closingBraceLocation.end); - setEmitFlags(outer, 3072 /* NoComments */); - var statement = factory2.createReturnStatement(outer); - setTextRangePos(statement, closingBraceLocation.pos); - setEmitFlags(statement, 3072 /* NoComments */ | 768 /* NoTokenSourceMaps */); - statements.push(statement); - insertStatementsAfterStandardPrologue(statements, endLexicalEnvironment()); - var block = factory2.createBlock(setTextRange(factory2.createNodeArray(statements), - /*location*/ - node.members), - /*multiLine*/ - true); - setEmitFlags(block, 3072 /* NoComments */); - return block; - } - function addExtendsHelperIfNeeded(statements, node, extendsClauseElement) { - if (extendsClauseElement) { - statements.push(setTextRange(factory2.createExpressionStatement(emitHelpers().createExtendsHelper(factory2.getInternalName(node))), - /*location*/ - extendsClauseElement)); - } - } - function addConstructor(statements, node, name, extendsClauseElement) { - var savedConvertedLoopState = convertedLoopState; - convertedLoopState = void 0; - var ancestorFacts = enterSubtree(32662 /* ConstructorExcludes */, 73 /* ConstructorIncludes */); - var constructor = getFirstConstructorWithBody(node); - var hasSynthesizedSuper = hasSynthesizedDefaultSuperCall(constructor, extendsClauseElement !== void 0); - var constructorFunction = factory2.createFunctionDeclaration( - /*modifiers*/ - void 0, - /*asteriskToken*/ - void 0, name, - /*typeParameters*/ - void 0, transformConstructorParameters(constructor, hasSynthesizedSuper), - /*type*/ - void 0, transformConstructorBody(constructor, node, extendsClauseElement, hasSynthesizedSuper)); - setTextRange(constructorFunction, constructor || node); - if (extendsClauseElement) { - setEmitFlags(constructorFunction, 16 /* CapturesThis */); - } - statements.push(constructorFunction); - exitSubtree(ancestorFacts, 98304 /* FunctionSubtreeExcludes */, 0 /* None */); - convertedLoopState = savedConvertedLoopState; - } - function transformConstructorParameters(constructor, hasSynthesizedSuper) { - return visitParameterList(constructor && !hasSynthesizedSuper ? constructor.parameters : void 0, visitor, context) || []; - } - function createDefaultConstructorBody(node, isDerivedClass) { - var statements = []; - resumeLexicalEnvironment(); - factory2.mergeLexicalEnvironment(statements, endLexicalEnvironment()); - if (isDerivedClass) { - statements.push(factory2.createReturnStatement(createDefaultSuperCallOrThis())); - } - var statementsArray = factory2.createNodeArray(statements); - setTextRange(statementsArray, node.members); - var block = factory2.createBlock(statementsArray, - /*multiLine*/ - true); - setTextRange(block, node); - setEmitFlags(block, 3072 /* NoComments */); - return block; - } - function transformConstructorBodyWorker(prologueOut, statementsOut, statementsIn, statementOffset, superPath, superPathDepth, constructor, isDerivedClass, hasSynthesizedSuper, isFirstStatement) { - var mayReplaceThis = false; - var superStatementIndex = superPathDepth < superPath.length ? superPath[superPathDepth] : -1; - var leadingStatementsEnd = superStatementIndex >= 0 ? superStatementIndex : statementsIn.length; - if (isFirstStatement && superStatementIndex >= 0) { - var firstMaterialIndex = statementOffset; - while (isFirstStatement && firstMaterialIndex < superStatementIndex) { - var statement = constructor.body.statements[firstMaterialIndex]; - if (!isUninitializedVariableStatement(statement) && !isUsingDeclarationStateVariableStatement(statement)) - break; - firstMaterialIndex++; - } - isFirstStatement = superStatementIndex === firstMaterialIndex; - } - addRange(statementsOut, visitNodes2(statementsIn, visitor, isStatement, statementOffset, leadingStatementsEnd - statementOffset)); - var superStatement = superStatementIndex >= 0 ? statementsIn[superStatementIndex] : void 0; - if (superStatement && isTryStatement(superStatement)) { - var tryBlockStatements = []; - mayReplaceThis = transformConstructorBodyWorker(prologueOut, tryBlockStatements, superStatement.tryBlock.statements, - /*statementOffset*/ - 0, superPath, superPathDepth + 1, constructor, isDerivedClass, hasSynthesizedSuper, isFirstStatement); - var tryBlockStatementsArray = factory2.createNodeArray(tryBlockStatements); - setTextRange(tryBlockStatementsArray, superStatement.tryBlock.statements); - statementsOut.push(factory2.updateTryStatement(superStatement, factory2.updateBlock(superStatement.tryBlock, tryBlockStatements), visitNode(superStatement.catchClause, visitor, isCatchClause), visitNode(superStatement.finallyBlock, visitor, isBlock))); - } - else { - var superCall = superStatement && getSuperCallFromStatement(superStatement); - var superCallExpression = void 0; - if (hasSynthesizedSuper) { - superCallExpression = createDefaultSuperCallOrThis(); - hierarchyFacts |= 8192 /* ConstructorWithCapturedSuper */; - } - else if (superCall) { - superCallExpression = visitSuperCallInBody(superCall); - hierarchyFacts |= 8192 /* ConstructorWithCapturedSuper */; - } - if (isDerivedClass || superCallExpression) { - if (superCallExpression && superStatementIndex === statementsIn.length - 1 && !(constructor.body.transformFlags & 16384 /* ContainsLexicalThis */)) { - var superCall2 = cast(cast(superCallExpression, isBinaryExpression).left, isCallExpression); - var returnStatement = factory2.createReturnStatement(superCallExpression); - setCommentRange(returnStatement, getCommentRange(superCall2)); - setEmitFlags(superCall2, 3072 /* NoComments */); - statementsOut.push(returnStatement); - return false; - } - else { - if (isFirstStatement) { - insertCaptureThisForNode(statementsOut, constructor, superCallExpression || createActualThis()); - } - else { - insertCaptureThisForNode(prologueOut, constructor, createActualThis()); - if (superCallExpression) { - addSuperThisCaptureThisForNode(statementsOut, superCallExpression); - } - } - mayReplaceThis = true; - } - } - else { - insertCaptureThisForNodeIfNeeded(prologueOut, constructor); - } - } - if (superStatementIndex >= 0) { - addRange(statementsOut, visitNodes2(statementsIn, visitor, isStatement, superStatementIndex + 1)); - } - return mayReplaceThis; - } - function isUninitializedVariableStatement(node) { - return isVariableStatement(node) && every(node.declarationList.declarations, function (decl) { return isIdentifier(decl.name) && !decl.initializer; }); - } - function isUsingDeclarationStateVariableStatement(node) { - if (!isVariableStatement(node) || node.declarationList.declarations.length !== 1) - return false; - var varDecl = node.declarationList.declarations[0]; - if (!isIdentifier(varDecl.name) || !varDecl.initializer) - return false; - var initializer = varDecl.initializer; - if (!isObjectLiteralExpression(initializer) || initializer.properties.length !== 3) - return false; - var _t = __read(initializer.properties, 3), stackProp = _t[0], errorProp = _t[1], hasErrorProp = _t[2]; - if (!isPropertyAssignment(stackProp) || !isIdentifier(stackProp.name) || idText(stackProp.name) !== "stack" || !isArrayLiteralExpression(stackProp.initializer)) - return false; - if (!isPropertyAssignment(errorProp) || !isIdentifier(errorProp.name) || idText(errorProp.name) !== "error" || !isVoidExpression(errorProp.initializer) || !isNumericLiteral(errorProp.initializer.expression)) - return false; - if (!isPropertyAssignment(hasErrorProp) || !isIdentifier(hasErrorProp.name) || idText(hasErrorProp.name) !== "hasError" || hasErrorProp.initializer.kind !== 97 /* FalseKeyword */) - return false; - return true; - } - function transformConstructorBody(constructor, node, extendsClauseElement, hasSynthesizedSuper) { - var isDerivedClass = !!extendsClauseElement && skipOuterExpressions(extendsClauseElement.expression).kind !== 106 /* NullKeyword */; - if (!constructor) - return createDefaultConstructorBody(node, isDerivedClass); - var prologue = []; - var statements = []; - resumeLexicalEnvironment(); - var standardPrologueEnd = factory2.copyStandardPrologue(constructor.body.statements, prologue, - /*statementOffset*/ - 0); - var superStatementIndices = findSuperStatementIndexPath(constructor.body.statements, standardPrologueEnd); - if (hasSynthesizedSuper || superStatementIndices.length > 0) { - hierarchyFacts |= 8192 /* ConstructorWithCapturedSuper */; - } - var mayReplaceThis = transformConstructorBodyWorker(prologue, statements, constructor.body.statements, standardPrologueEnd, superStatementIndices, - /*superPathDepth*/ - 0, constructor, isDerivedClass, hasSynthesizedSuper, - /*isFirstStatement*/ - true - // NOTE: this will be recalculated inside of transformConstructorBodyWorker - ); - addDefaultValueAssignmentsIfNeeded2(prologue, constructor); - addRestParameterIfNeeded(prologue, constructor, hasSynthesizedSuper); - insertCaptureNewTargetIfNeeded(prologue, constructor); - factory2.mergeLexicalEnvironment(prologue, endLexicalEnvironment()); - if (mayReplaceThis && !isSufficientlyCoveredByReturnStatements(constructor.body)) { - statements.push(factory2.createReturnStatement(factory2.createUniqueName("_this", 16 /* Optimistic */ | 32 /* FileLevel */))); - } - var body = factory2.createBlock(setTextRange(factory2.createNodeArray(__spreadArray(__spreadArray([], __read(prologue), false), __read(statements), false)), - /*location*/ - constructor.body.statements), - /*multiLine*/ - true); - setTextRange(body, constructor.body); - return body; - } - function isSufficientlyCoveredByReturnStatements(statement) { - if (statement.kind === 253 /* ReturnStatement */) { - return true; - } - else if (statement.kind === 245 /* IfStatement */) { - var ifStatement = statement; - if (ifStatement.elseStatement) { - return isSufficientlyCoveredByReturnStatements(ifStatement.thenStatement) && isSufficientlyCoveredByReturnStatements(ifStatement.elseStatement); - } - } - else if (statement.kind === 241 /* Block */) { - var lastStatement = lastOrUndefined(statement.statements); - if (lastStatement && isSufficientlyCoveredByReturnStatements(lastStatement)) { - return true; - } - } - return false; - } - function createActualThis() { - return setEmitFlags(factory2.createThis(), 8 /* NoSubstitution */); - } - function createDefaultSuperCallOrThis() { - return factory2.createLogicalOr(factory2.createLogicalAnd(factory2.createStrictInequality(factory2.createUniqueName("_super", 16 /* Optimistic */ | 32 /* FileLevel */), factory2.createNull()), factory2.createFunctionApplyCall(factory2.createUniqueName("_super", 16 /* Optimistic */ | 32 /* FileLevel */), createActualThis(), factory2.createIdentifier("arguments"))), createActualThis()); - } - function visitParameter(node) { - if (node.dotDotDotToken) { - return void 0; - } - else if (isBindingPattern(node.name)) { - return setOriginalNode(setTextRange(factory2.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, factory2.getGeneratedNameForNode(node), - /*questionToken*/ - void 0, - /*type*/ - void 0, - /*initializer*/ - void 0), - /*location*/ - node), - /*original*/ - node); - } - else if (node.initializer) { - return setOriginalNode(setTextRange(factory2.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, node.name, - /*questionToken*/ - void 0, - /*type*/ - void 0, - /*initializer*/ - void 0), - /*location*/ - node), - /*original*/ - node); - } - else { - return node; - } - } - function hasDefaultValueOrBindingPattern(node) { - return node.initializer !== void 0 || isBindingPattern(node.name); - } - function addDefaultValueAssignmentsIfNeeded2(statements, node) { - var e_495, _t; - if (!some(node.parameters, hasDefaultValueOrBindingPattern)) { - return false; - } - var added = false; - try { - for (var _u = __values(node.parameters), _v = _u.next(); !_v.done; _v = _u.next()) { - var parameter = _v.value; - var name_87 = parameter.name, initializer = parameter.initializer, dotDotDotToken = parameter.dotDotDotToken; - if (dotDotDotToken) { - continue; - } - if (isBindingPattern(name_87)) { - added = insertDefaultValueAssignmentForBindingPattern(statements, parameter, name_87, initializer) || added; - } - else if (initializer) { - insertDefaultValueAssignmentForInitializer(statements, parameter, name_87, initializer); - added = true; - } - } - } - catch (e_495_1) { e_495 = { error: e_495_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_495) throw e_495.error; } - } - return added; - } - function insertDefaultValueAssignmentForBindingPattern(statements, parameter, name, initializer) { - if (name.elements.length > 0) { - insertStatementAfterCustomPrologue(statements, setEmitFlags(factory2.createVariableStatement( - /*modifiers*/ - void 0, factory2.createVariableDeclarationList(flattenDestructuringBinding(parameter, visitor, context, 0 /* All */, factory2.getGeneratedNameForNode(parameter)))), 2097152 /* CustomPrologue */)); - return true; - } - else if (initializer) { - insertStatementAfterCustomPrologue(statements, setEmitFlags(factory2.createExpressionStatement(factory2.createAssignment(factory2.getGeneratedNameForNode(parameter), Debug.checkDefined(visitNode(initializer, visitor, isExpression)))), 2097152 /* CustomPrologue */)); - return true; - } - return false; - } - function insertDefaultValueAssignmentForInitializer(statements, parameter, name, initializer) { - initializer = Debug.checkDefined(visitNode(initializer, visitor, isExpression)); - var statement = factory2.createIfStatement(factory2.createTypeCheck(factory2.cloneNode(name), "undefined"), setEmitFlags(setTextRange(factory2.createBlock([ - factory2.createExpressionStatement(setEmitFlags(setTextRange(factory2.createAssignment( - // TODO(rbuckton): Does this need to be parented? - setEmitFlags(setParent(setTextRange(factory2.cloneNode(name), name), name.parent), 96 /* NoSourceMap */), setEmitFlags(initializer, 96 /* NoSourceMap */ | getEmitFlags(initializer) | 3072 /* NoComments */)), parameter), 3072 /* NoComments */)) - ]), parameter), 1 /* SingleLine */ | 64 /* NoTrailingSourceMap */ | 768 /* NoTokenSourceMaps */ | 3072 /* NoComments */)); - startOnNewLine(statement); - setTextRange(statement, parameter); - setEmitFlags(statement, 768 /* NoTokenSourceMaps */ | 64 /* NoTrailingSourceMap */ | 2097152 /* CustomPrologue */ | 3072 /* NoComments */); - insertStatementAfterCustomPrologue(statements, statement); - } - function shouldAddRestParameter(node, inConstructorWithSynthesizedSuper) { - return !!(node && node.dotDotDotToken && !inConstructorWithSynthesizedSuper); - } - function addRestParameterIfNeeded(statements, node, inConstructorWithSynthesizedSuper) { - var prologueStatements = []; - var parameter = lastOrUndefined(node.parameters); - if (!shouldAddRestParameter(parameter, inConstructorWithSynthesizedSuper)) { - return false; - } - var declarationName = parameter.name.kind === 80 /* Identifier */ ? setParent(setTextRange(factory2.cloneNode(parameter.name), parameter.name), parameter.name.parent) : factory2.createTempVariable( - /*recordTempVariable*/ - void 0); - setEmitFlags(declarationName, 96 /* NoSourceMap */); - var expressionName = parameter.name.kind === 80 /* Identifier */ ? factory2.cloneNode(parameter.name) : declarationName; - var restIndex = node.parameters.length - 1; - var temp = factory2.createLoopVariable(); - prologueStatements.push(setEmitFlags(setTextRange(factory2.createVariableStatement( - /*modifiers*/ - void 0, factory2.createVariableDeclarationList([ - factory2.createVariableDeclaration(declarationName, - /*exclamationToken*/ - void 0, - /*type*/ - void 0, factory2.createArrayLiteralExpression([])) - ])), - /*location*/ - parameter), 2097152 /* CustomPrologue */)); - var forStatement = factory2.createForStatement(setTextRange(factory2.createVariableDeclarationList([ - factory2.createVariableDeclaration(temp, - /*exclamationToken*/ - void 0, - /*type*/ - void 0, factory2.createNumericLiteral(restIndex)) - ]), parameter), setTextRange(factory2.createLessThan(temp, factory2.createPropertyAccessExpression(factory2.createIdentifier("arguments"), "length")), parameter), setTextRange(factory2.createPostfixIncrement(temp), parameter), factory2.createBlock([ - startOnNewLine(setTextRange(factory2.createExpressionStatement(factory2.createAssignment(factory2.createElementAccessExpression(expressionName, restIndex === 0 ? temp : factory2.createSubtract(temp, factory2.createNumericLiteral(restIndex))), factory2.createElementAccessExpression(factory2.createIdentifier("arguments"), temp))), - /*location*/ - parameter)) - ])); - setEmitFlags(forStatement, 2097152 /* CustomPrologue */); - startOnNewLine(forStatement); - prologueStatements.push(forStatement); - if (parameter.name.kind !== 80 /* Identifier */) { - prologueStatements.push(setEmitFlags(setTextRange(factory2.createVariableStatement( - /*modifiers*/ - void 0, factory2.createVariableDeclarationList(flattenDestructuringBinding(parameter, visitor, context, 0 /* All */, expressionName))), parameter), 2097152 /* CustomPrologue */)); - } - insertStatementsAfterCustomPrologue(statements, prologueStatements); - return true; - } - function insertCaptureThisForNodeIfNeeded(statements, node) { - if (hierarchyFacts & 65536 /* CapturedLexicalThis */ && node.kind !== 219 /* ArrowFunction */) { - insertCaptureThisForNode(statements, node, factory2.createThis()); - return true; - } - return false; - } - function addSuperThisCaptureThisForNode(statements, superExpression) { - enableSubstitutionsForCapturedThis(); - var assignSuperExpression = factory2.createExpressionStatement(factory2.createBinaryExpression(factory2.createThis(), 64 /* EqualsToken */, superExpression)); - statements.push(assignSuperExpression); - setCommentRange(assignSuperExpression, getOriginalNode(superExpression).parent); - } - function insertCaptureThisForNode(statements, node, initializer) { - enableSubstitutionsForCapturedThis(); - var captureThisStatement = factory2.createVariableStatement( - /*modifiers*/ - void 0, factory2.createVariableDeclarationList([ - factory2.createVariableDeclaration(factory2.createUniqueName("_this", 16 /* Optimistic */ | 32 /* FileLevel */), - /*exclamationToken*/ - void 0, - /*type*/ - void 0, initializer) - ])); - setEmitFlags(captureThisStatement, 3072 /* NoComments */ | 2097152 /* CustomPrologue */); - setSourceMapRange(captureThisStatement, node); - insertStatementAfterCustomPrologue(statements, captureThisStatement); - } - function insertCaptureNewTargetIfNeeded(statements, node) { - if (hierarchyFacts & 32768 /* NewTarget */) { - var newTarget = void 0; - switch (node.kind) { - case 219 /* ArrowFunction */: - return statements; - case 174 /* MethodDeclaration */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - newTarget = factory2.createVoidZero(); - break; - case 176 /* Constructor */: - newTarget = factory2.createPropertyAccessExpression(setEmitFlags(factory2.createThis(), 8 /* NoSubstitution */), "constructor"); - break; - case 262 /* FunctionDeclaration */: - case 218 /* FunctionExpression */: - newTarget = factory2.createConditionalExpression(factory2.createLogicalAnd(setEmitFlags(factory2.createThis(), 8 /* NoSubstitution */), factory2.createBinaryExpression(setEmitFlags(factory2.createThis(), 8 /* NoSubstitution */), 104 /* InstanceOfKeyword */, factory2.getLocalName(node))), - /*questionToken*/ - void 0, factory2.createPropertyAccessExpression(setEmitFlags(factory2.createThis(), 8 /* NoSubstitution */), "constructor"), - /*colonToken*/ - void 0, factory2.createVoidZero()); - break; - default: - return Debug.failBadSyntaxKind(node); - } - var captureNewTargetStatement = factory2.createVariableStatement( - /*modifiers*/ - void 0, factory2.createVariableDeclarationList([ - factory2.createVariableDeclaration(factory2.createUniqueName("_newTarget", 16 /* Optimistic */ | 32 /* FileLevel */), - /*exclamationToken*/ - void 0, - /*type*/ - void 0, newTarget) - ])); - setEmitFlags(captureNewTargetStatement, 3072 /* NoComments */ | 2097152 /* CustomPrologue */); - insertStatementAfterCustomPrologue(statements, captureNewTargetStatement); - } - return statements; - } - function addClassMembers(statements, node) { - var e_496, _t; - try { - for (var _u = __values(node.members), _v = _u.next(); !_v.done; _v = _u.next()) { - var member = _v.value; - switch (member.kind) { - case 240 /* SemicolonClassElement */: - statements.push(transformSemicolonClassElementToStatement(member)); - break; - case 174 /* MethodDeclaration */: - statements.push(transformClassMethodDeclarationToStatement(getClassMemberPrefix(node, member), member, node)); - break; - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - var accessors = getAllAccessorDeclarations(node.members, member); - if (member === accessors.firstAccessor) { - statements.push(transformAccessorsToStatement(getClassMemberPrefix(node, member), accessors, node)); - } - break; - case 176 /* Constructor */: - case 175 /* ClassStaticBlockDeclaration */: - break; - default: - Debug.failBadSyntaxKind(member, currentSourceFile && currentSourceFile.fileName); - break; - } - } - } - catch (e_496_1) { e_496 = { error: e_496_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_496) throw e_496.error; } - } - } - function transformSemicolonClassElementToStatement(member) { - return setTextRange(factory2.createEmptyStatement(), member); - } - function transformClassMethodDeclarationToStatement(receiver, member, container) { - var commentRange = getCommentRange(member); - var sourceMapRange = getSourceMapRange(member); - var memberFunction = transformFunctionLikeToExpression(member, - /*location*/ - member, - /*name*/ - void 0, container); - var propertyName = visitNode(member.name, visitor, isPropertyName); - Debug.assert(propertyName); - var e; - if (!isPrivateIdentifier(propertyName) && getUseDefineForClassFields(context.getCompilerOptions())) { - var name_88 = isComputedPropertyName(propertyName) ? propertyName.expression : isIdentifier(propertyName) ? factory2.createStringLiteral(unescapeLeadingUnderscores(propertyName.escapedText)) : propertyName; - e = factory2.createObjectDefinePropertyCall(receiver, name_88, factory2.createPropertyDescriptor({ value: memberFunction, enumerable: false, writable: true, configurable: true })); - } - else { - var memberName = createMemberAccessForPropertyName(factory2, receiver, propertyName, - /*location*/ - member.name); - e = factory2.createAssignment(memberName, memberFunction); - } - setEmitFlags(memberFunction, 3072 /* NoComments */); - setSourceMapRange(memberFunction, sourceMapRange); - var statement = setTextRange(factory2.createExpressionStatement(e), - /*location*/ - member); - setOriginalNode(statement, member); - setCommentRange(statement, commentRange); - setEmitFlags(statement, 96 /* NoSourceMap */); - return statement; - } - function transformAccessorsToStatement(receiver, accessors, container) { - var statement = factory2.createExpressionStatement(transformAccessorsToExpression(receiver, accessors, container, - /*startsOnNewLine*/ - false)); - setEmitFlags(statement, 3072 /* NoComments */); - setSourceMapRange(statement, getSourceMapRange(accessors.firstAccessor)); - return statement; - } - function transformAccessorsToExpression(receiver, _t, container, startsOnNewLine) { - var firstAccessor = _t.firstAccessor, getAccessor = _t.getAccessor, setAccessor = _t.setAccessor; - var target = setParent(setTextRange(factory2.cloneNode(receiver), receiver), receiver.parent); - setEmitFlags(target, 3072 /* NoComments */ | 64 /* NoTrailingSourceMap */); - setSourceMapRange(target, firstAccessor.name); - var visitedAccessorName = visitNode(firstAccessor.name, visitor, isPropertyName); - Debug.assert(visitedAccessorName); - if (isPrivateIdentifier(visitedAccessorName)) { - return Debug.failBadSyntaxKind(visitedAccessorName, "Encountered unhandled private identifier while transforming ES2015."); - } - var propertyName = createExpressionForPropertyName(factory2, visitedAccessorName); - setEmitFlags(propertyName, 3072 /* NoComments */ | 32 /* NoLeadingSourceMap */); - setSourceMapRange(propertyName, firstAccessor.name); - var properties = []; - if (getAccessor) { - var getterFunction = transformFunctionLikeToExpression(getAccessor, - /*location*/ - void 0, - /*name*/ - void 0, container); - setSourceMapRange(getterFunction, getSourceMapRange(getAccessor)); - setEmitFlags(getterFunction, 1024 /* NoLeadingComments */); - var getter = factory2.createPropertyAssignment("get", getterFunction); - setCommentRange(getter, getCommentRange(getAccessor)); - properties.push(getter); - } - if (setAccessor) { - var setterFunction = transformFunctionLikeToExpression(setAccessor, - /*location*/ - void 0, - /*name*/ - void 0, container); - setSourceMapRange(setterFunction, getSourceMapRange(setAccessor)); - setEmitFlags(setterFunction, 1024 /* NoLeadingComments */); - var setter = factory2.createPropertyAssignment("set", setterFunction); - setCommentRange(setter, getCommentRange(setAccessor)); - properties.push(setter); - } - properties.push(factory2.createPropertyAssignment("enumerable", getAccessor || setAccessor ? factory2.createFalse() : factory2.createTrue()), factory2.createPropertyAssignment("configurable", factory2.createTrue())); - var call = factory2.createCallExpression(factory2.createPropertyAccessExpression(factory2.createIdentifier("Object"), "defineProperty"), - /*typeArguments*/ - void 0, [ - target, - propertyName, - factory2.createObjectLiteralExpression(properties, - /*multiLine*/ - true) - ]); - if (startsOnNewLine) { - startOnNewLine(call); - } - return call; - } - function visitArrowFunction(node) { - if (node.transformFlags & 16384 /* ContainsLexicalThis */ && !(hierarchyFacts & 16384 /* StaticInitializer */)) { - hierarchyFacts |= 65536 /* CapturedLexicalThis */; - } - var savedConvertedLoopState = convertedLoopState; - convertedLoopState = void 0; - var ancestorFacts = enterSubtree(15232 /* ArrowFunctionExcludes */, 66 /* ArrowFunctionIncludes */); - var func = factory2.createFunctionExpression( - /*modifiers*/ - void 0, - /*asteriskToken*/ - void 0, - /*name*/ - void 0, - /*typeParameters*/ - void 0, visitParameterList(node.parameters, visitor, context), - /*type*/ - void 0, transformFunctionBody2(node)); - setTextRange(func, node); - setOriginalNode(func, node); - setEmitFlags(func, 16 /* CapturesThis */); - exitSubtree(ancestorFacts, 0 /* ArrowFunctionSubtreeExcludes */, 0 /* None */); - convertedLoopState = savedConvertedLoopState; - return func; - } - function visitFunctionExpression(node) { - var ancestorFacts = getEmitFlags(node) & 524288 /* AsyncFunctionBody */ ? enterSubtree(32662 /* AsyncFunctionBodyExcludes */, 69 /* AsyncFunctionBodyIncludes */) : enterSubtree(32670 /* FunctionExcludes */, 65 /* FunctionIncludes */); - var savedConvertedLoopState = convertedLoopState; - convertedLoopState = void 0; - var parameters = visitParameterList(node.parameters, visitor, context); - var body = transformFunctionBody2(node); - var name = hierarchyFacts & 32768 /* NewTarget */ ? factory2.getLocalName(node) : node.name; - exitSubtree(ancestorFacts, 98304 /* FunctionSubtreeExcludes */, 0 /* None */); - convertedLoopState = savedConvertedLoopState; - return factory2.updateFunctionExpression(node, - /*modifiers*/ - void 0, node.asteriskToken, name, - /*typeParameters*/ - void 0, parameters, - /*type*/ - void 0, body); - } - function visitFunctionDeclaration(node) { - var savedConvertedLoopState = convertedLoopState; - convertedLoopState = void 0; - var ancestorFacts = enterSubtree(32670 /* FunctionExcludes */, 65 /* FunctionIncludes */); - var parameters = visitParameterList(node.parameters, visitor, context); - var body = transformFunctionBody2(node); - var name = hierarchyFacts & 32768 /* NewTarget */ ? factory2.getLocalName(node) : node.name; - exitSubtree(ancestorFacts, 98304 /* FunctionSubtreeExcludes */, 0 /* None */); - convertedLoopState = savedConvertedLoopState; - return factory2.updateFunctionDeclaration(node, visitNodes2(node.modifiers, visitor, isModifier), node.asteriskToken, name, - /*typeParameters*/ - void 0, parameters, - /*type*/ - void 0, body); - } - function transformFunctionLikeToExpression(node, location, name, container) { - var savedConvertedLoopState = convertedLoopState; - convertedLoopState = void 0; - var ancestorFacts = container && isClassLike(container) && !isStatic(node) ? enterSubtree(32670 /* FunctionExcludes */, 65 /* FunctionIncludes */ | 8 /* NonStaticClassElement */) : enterSubtree(32670 /* FunctionExcludes */, 65 /* FunctionIncludes */); - var parameters = visitParameterList(node.parameters, visitor, context); - var body = transformFunctionBody2(node); - if (hierarchyFacts & 32768 /* NewTarget */ && !name && (node.kind === 262 /* FunctionDeclaration */ || node.kind === 218 /* FunctionExpression */)) { - name = factory2.getGeneratedNameForNode(node); - } - exitSubtree(ancestorFacts, 98304 /* FunctionSubtreeExcludes */, 0 /* None */); - convertedLoopState = savedConvertedLoopState; - return setOriginalNode(setTextRange(factory2.createFunctionExpression( - /*modifiers*/ - void 0, node.asteriskToken, name, - /*typeParameters*/ - void 0, parameters, - /*type*/ - void 0, body), location), - /*original*/ - node); - } - function transformFunctionBody2(node) { - var multiLine = false; - var singleLine = false; - var statementsLocation; - var closeBraceLocation; - var prologue = []; - var statements = []; - var body = node.body; - var statementOffset; - resumeLexicalEnvironment(); - if (isBlock(body)) { - statementOffset = factory2.copyStandardPrologue(body.statements, prologue, 0, - /*ensureUseStrict*/ - false); - statementOffset = factory2.copyCustomPrologue(body.statements, statements, statementOffset, visitor, isHoistedFunction); - statementOffset = factory2.copyCustomPrologue(body.statements, statements, statementOffset, visitor, isHoistedVariableStatement); - } - multiLine = addDefaultValueAssignmentsIfNeeded2(statements, node) || multiLine; - multiLine = addRestParameterIfNeeded(statements, node, - /*inConstructorWithSynthesizedSuper*/ - false) || multiLine; - if (isBlock(body)) { - statementOffset = factory2.copyCustomPrologue(body.statements, statements, statementOffset, visitor); - statementsLocation = body.statements; - addRange(statements, visitNodes2(body.statements, visitor, isStatement, statementOffset)); - if (!multiLine && body.multiLine) { - multiLine = true; - } - } - else { - Debug.assert(node.kind === 219 /* ArrowFunction */); - statementsLocation = moveRangeEnd(body, -1); - var equalsGreaterThanToken = node.equalsGreaterThanToken; - if (!nodeIsSynthesized(equalsGreaterThanToken) && !nodeIsSynthesized(body)) { - if (rangeEndIsOnSameLineAsRangeStart(equalsGreaterThanToken, body, currentSourceFile)) { - singleLine = true; - } - else { - multiLine = true; - } - } - var expression = visitNode(body, visitor, isExpression); - var returnStatement = factory2.createReturnStatement(expression); - setTextRange(returnStatement, body); - moveSyntheticComments(returnStatement, body); - setEmitFlags(returnStatement, 768 /* NoTokenSourceMaps */ | 64 /* NoTrailingSourceMap */ | 2048 /* NoTrailingComments */); - statements.push(returnStatement); - closeBraceLocation = body; - } - factory2.mergeLexicalEnvironment(prologue, endLexicalEnvironment()); - insertCaptureNewTargetIfNeeded(prologue, node); - insertCaptureThisForNodeIfNeeded(prologue, node); - if (some(prologue)) { - multiLine = true; - } - statements.unshift.apply(statements, __spreadArray([], __read(prologue), false)); - if (isBlock(body) && arrayIsEqualTo(statements, body.statements)) { - return body; - } - var block = factory2.createBlock(setTextRange(factory2.createNodeArray(statements), statementsLocation), multiLine); - setTextRange(block, node.body); - if (!multiLine && singleLine) { - setEmitFlags(block, 1 /* SingleLine */); - } - if (closeBraceLocation) { - setTokenSourceMapRange(block, 20 /* CloseBraceToken */, closeBraceLocation); - } - setOriginalNode(block, node.body); - return block; - } - function visitBlock(node, isFunctionBody2) { - if (isFunctionBody2) { - return visitEachChild(node, visitor, context); - } - var ancestorFacts = hierarchyFacts & 256 /* IterationStatement */ ? enterSubtree(7104 /* IterationStatementBlockExcludes */, 512 /* IterationStatementBlockIncludes */) : enterSubtree(6976 /* BlockExcludes */, 128 /* BlockIncludes */); - var updated = visitEachChild(node, visitor, context); - exitSubtree(ancestorFacts, 0 /* None */, 0 /* None */); - return updated; - } - function visitExpressionStatement(node) { - return visitEachChild(node, visitorWithUnusedExpressionResult, context); - } - function visitParenthesizedExpression(node, expressionResultIsUnused2) { - return visitEachChild(node, expressionResultIsUnused2 ? visitorWithUnusedExpressionResult : visitor, context); - } - function visitBinaryExpression(node, expressionResultIsUnused2) { - if (isDestructuringAssignment(node)) { - return flattenDestructuringAssignment(node, visitor, context, 0 /* All */, !expressionResultIsUnused2); - } - if (node.operatorToken.kind === 28 /* CommaToken */) { - return factory2.updateBinaryExpression(node, Debug.checkDefined(visitNode(node.left, visitorWithUnusedExpressionResult, isExpression)), node.operatorToken, Debug.checkDefined(visitNode(node.right, expressionResultIsUnused2 ? visitorWithUnusedExpressionResult : visitor, isExpression))); - } - return visitEachChild(node, visitor, context); - } - function visitCommaListExpression(node, expressionResultIsUnused2) { - if (expressionResultIsUnused2) { - return visitEachChild(node, visitorWithUnusedExpressionResult, context); - } - var result; - for (var i = 0; i < node.elements.length; i++) { - var element = node.elements[i]; - var visited = visitNode(element, i < node.elements.length - 1 ? visitorWithUnusedExpressionResult : visitor, isExpression); - if (result || visited !== element) { - result || (result = node.elements.slice(0, i)); - Debug.assert(visited); - result.push(visited); - } - } - var elements = result ? setTextRange(factory2.createNodeArray(result), node.elements) : node.elements; - return factory2.updateCommaListExpression(node, elements); - } - function isVariableStatementOfTypeScriptClassWrapper(node) { - return node.declarationList.declarations.length === 1 && !!node.declarationList.declarations[0].initializer && !!(getInternalEmitFlags(node.declarationList.declarations[0].initializer) & 1 /* TypeScriptClassWrapper */); - } - function visitVariableStatement(node) { - var e_497, _t; - var ancestorFacts = enterSubtree(0 /* None */, hasSyntacticModifier(node, 1 /* Export */) ? 32 /* ExportedVariableStatement */ : 0 /* None */); - var updated; - if (convertedLoopState && (node.declarationList.flags & 7 /* BlockScoped */) === 0 && !isVariableStatementOfTypeScriptClassWrapper(node)) { - var assignments = void 0; - try { - for (var _u = __values(node.declarationList.declarations), _v = _u.next(); !_v.done; _v = _u.next()) { - var decl = _v.value; - hoistVariableDeclarationDeclaredInConvertedLoop(convertedLoopState, decl); - if (decl.initializer) { - var assignment = void 0; - if (isBindingPattern(decl.name)) { - assignment = flattenDestructuringAssignment(decl, visitor, context, 0 /* All */); - } - else { - assignment = factory2.createBinaryExpression(decl.name, 64 /* EqualsToken */, Debug.checkDefined(visitNode(decl.initializer, visitor, isExpression))); - setTextRange(assignment, decl); - } - assignments = append(assignments, assignment); - } - } - } - catch (e_497_1) { e_497 = { error: e_497_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_497) throw e_497.error; } - } - if (assignments) { - updated = setTextRange(factory2.createExpressionStatement(factory2.inlineExpressions(assignments)), node); - } - else { - updated = void 0; - } - } - else { - updated = visitEachChild(node, visitor, context); - } - exitSubtree(ancestorFacts, 0 /* None */, 0 /* None */); - return updated; - } - function visitVariableDeclarationList(node) { - if (node.flags & 7 /* BlockScoped */ || node.transformFlags & 524288 /* ContainsBindingPattern */) { - if (node.flags & 7 /* BlockScoped */) { - enableSubstitutionsForBlockScopedBindings(); - } - var declarations = visitNodes2(node.declarations, node.flags & 1 /* Let */ ? visitVariableDeclarationInLetDeclarationList : visitVariableDeclaration, isVariableDeclaration); - var declarationList = factory2.createVariableDeclarationList(declarations); - setOriginalNode(declarationList, node); - setTextRange(declarationList, node); - setCommentRange(declarationList, node); - if (node.transformFlags & 524288 /* ContainsBindingPattern */ && (isBindingPattern(node.declarations[0].name) || isBindingPattern(last(node.declarations).name))) { - setSourceMapRange(declarationList, getRangeUnion(declarations)); - } - return declarationList; - } - return visitEachChild(node, visitor, context); - } - function getRangeUnion(declarations) { - var e_498, _t; - var pos = -1, end = -1; - try { - for (var declarations_11 = __values(declarations), declarations_11_1 = declarations_11.next(); !declarations_11_1.done; declarations_11_1 = declarations_11.next()) { - var node = declarations_11_1.value; - pos = pos === -1 ? node.pos : node.pos === -1 ? pos : Math.min(pos, node.pos); - end = Math.max(end, node.end); - } - } - catch (e_498_1) { e_498 = { error: e_498_1 }; } - finally { - try { - if (declarations_11_1 && !declarations_11_1.done && (_t = declarations_11.return)) _t.call(declarations_11); - } - finally { if (e_498) throw e_498.error; } - } - return createRange(pos, end); - } - function shouldEmitExplicitInitializerForLetDeclaration(node) { - var flags = resolver.getNodeCheckFlags(node); - var isCapturedInFunction = flags & 16384 /* CapturedBlockScopedBinding */; - var isDeclaredInLoop = flags & 32768 /* BlockScopedBindingInLoop */; - var emittedAsTopLevel = (hierarchyFacts & 64 /* TopLevel */) !== 0 || isCapturedInFunction && isDeclaredInLoop && (hierarchyFacts & 512 /* IterationStatementBlock */) !== 0; - var emitExplicitInitializer = !emittedAsTopLevel && (hierarchyFacts & 4096 /* ForInOrForOfStatement */) === 0 && (!resolver.isDeclarationWithCollidingName(node) || isDeclaredInLoop && !isCapturedInFunction && (hierarchyFacts & (2048 /* ForStatement */ | 4096 /* ForInOrForOfStatement */)) === 0); - return emitExplicitInitializer; - } - function visitVariableDeclarationInLetDeclarationList(node) { - var name = node.name; - if (isBindingPattern(name)) { - return visitVariableDeclaration(node); - } - if (!node.initializer && shouldEmitExplicitInitializerForLetDeclaration(node)) { - return factory2.updateVariableDeclaration(node, node.name, - /*exclamationToken*/ - void 0, - /*type*/ - void 0, factory2.createVoidZero()); - } - return visitEachChild(node, visitor, context); - } - function visitVariableDeclaration(node) { - var ancestorFacts = enterSubtree(32 /* ExportedVariableStatement */, 0 /* None */); - var updated; - if (isBindingPattern(node.name)) { - updated = flattenDestructuringBinding(node, visitor, context, 0 /* All */, - /*rval*/ - void 0, (ancestorFacts & 32 /* ExportedVariableStatement */) !== 0); - } - else { - updated = visitEachChild(node, visitor, context); - } - exitSubtree(ancestorFacts, 0 /* None */, 0 /* None */); - return updated; - } - function recordLabel(node) { - convertedLoopState.labels.set(idText(node.label), true); - } - function resetLabel(node) { - convertedLoopState.labels.set(idText(node.label), false); - } - function visitLabeledStatement(node) { - if (convertedLoopState && !convertedLoopState.labels) { - convertedLoopState.labels = /* @__PURE__ */ new Map(); - } - var statement = unwrapInnermostStatementOfLabel(node, convertedLoopState && recordLabel); - return isIterationStatement(statement, - /*lookInLabeledStatements*/ - false) ? visitIterationStatement(statement, - /*outermostLabeledStatement*/ - node) : factory2.restoreEnclosingLabel(Debug.checkDefined(visitNode(statement, visitor, isStatement, factory2.liftToBlock)), node, convertedLoopState && resetLabel); - } - function visitIterationStatement(node, outermostLabeledStatement) { - switch (node.kind) { - case 246 /* DoStatement */: - case 247 /* WhileStatement */: - return visitDoOrWhileStatement(node, outermostLabeledStatement); - case 248 /* ForStatement */: - return visitForStatement(node, outermostLabeledStatement); - case 249 /* ForInStatement */: - return visitForInStatement(node, outermostLabeledStatement); - case 250 /* ForOfStatement */: - return visitForOfStatement(node, outermostLabeledStatement); - } - } - function visitIterationStatementWithFacts(excludeFacts, includeFacts, node, outermostLabeledStatement, convert) { - var ancestorFacts = enterSubtree(excludeFacts, includeFacts); - var updated = convertIterationStatementBodyIfNecessary(node, outermostLabeledStatement, ancestorFacts, convert); - exitSubtree(ancestorFacts, 0 /* None */, 0 /* None */); - return updated; - } - function visitDoOrWhileStatement(node, outermostLabeledStatement) { - return visitIterationStatementWithFacts(0 /* DoOrWhileStatementExcludes */, 1280 /* DoOrWhileStatementIncludes */, node, outermostLabeledStatement); - } - function visitForStatement(node, outermostLabeledStatement) { - return visitIterationStatementWithFacts(5056 /* ForStatementExcludes */, 3328 /* ForStatementIncludes */, node, outermostLabeledStatement); - } - function visitEachChildOfForStatement2(node) { - return factory2.updateForStatement(node, visitNode(node.initializer, visitorWithUnusedExpressionResult, isForInitializer), visitNode(node.condition, visitor, isExpression), visitNode(node.incrementor, visitorWithUnusedExpressionResult, isExpression), Debug.checkDefined(visitNode(node.statement, visitor, isStatement, factory2.liftToBlock))); - } - function visitForInStatement(node, outermostLabeledStatement) { - return visitIterationStatementWithFacts(3008 /* ForInOrForOfStatementExcludes */, 5376 /* ForInOrForOfStatementIncludes */, node, outermostLabeledStatement); - } - function visitForOfStatement(node, outermostLabeledStatement) { - return visitIterationStatementWithFacts(3008 /* ForInOrForOfStatementExcludes */, 5376 /* ForInOrForOfStatementIncludes */, node, outermostLabeledStatement, compilerOptions.downlevelIteration ? convertForOfStatementForIterable : convertForOfStatementForArray); - } - function convertForOfStatementHead(node, boundValue, convertedLoopBodyStatements) { - var statements = []; - var initializer = node.initializer; - if (isVariableDeclarationList(initializer)) { - if (node.initializer.flags & 7 /* BlockScoped */) { - enableSubstitutionsForBlockScopedBindings(); - } - var firstOriginalDeclaration = firstOrUndefined(initializer.declarations); - if (firstOriginalDeclaration && isBindingPattern(firstOriginalDeclaration.name)) { - var declarations = flattenDestructuringBinding(firstOriginalDeclaration, visitor, context, 0 /* All */, boundValue); - var declarationList = setTextRange(factory2.createVariableDeclarationList(declarations), node.initializer); - setOriginalNode(declarationList, node.initializer); - setSourceMapRange(declarationList, createRange(declarations[0].pos, last(declarations).end)); - statements.push(factory2.createVariableStatement( - /*modifiers*/ - void 0, declarationList)); - } - else { - statements.push(setTextRange(factory2.createVariableStatement( - /*modifiers*/ - void 0, setOriginalNode(setTextRange(factory2.createVariableDeclarationList([ - factory2.createVariableDeclaration(firstOriginalDeclaration ? firstOriginalDeclaration.name : factory2.createTempVariable( - /*recordTempVariable*/ - void 0), - /*exclamationToken*/ - void 0, - /*type*/ - void 0, boundValue) - ]), moveRangePos(initializer, -1)), initializer)), moveRangeEnd(initializer, -1))); - } - } - else { - var assignment = factory2.createAssignment(initializer, boundValue); - if (isDestructuringAssignment(assignment)) { - statements.push(factory2.createExpressionStatement(visitBinaryExpression(assignment, - /*expressionResultIsUnused*/ - true))); - } - else { - setTextRangeEnd(assignment, initializer.end); - statements.push(setTextRange(factory2.createExpressionStatement(Debug.checkDefined(visitNode(assignment, visitor, isExpression))), moveRangeEnd(initializer, -1))); - } - } - if (convertedLoopBodyStatements) { - return createSyntheticBlockForConvertedStatements(addRange(statements, convertedLoopBodyStatements)); - } - else { - var statement = visitNode(node.statement, visitor, isStatement, factory2.liftToBlock); - Debug.assert(statement); - if (isBlock(statement)) { - return factory2.updateBlock(statement, setTextRange(factory2.createNodeArray(concatenate(statements, statement.statements)), statement.statements)); - } - else { - statements.push(statement); - return createSyntheticBlockForConvertedStatements(statements); - } - } - } - function createSyntheticBlockForConvertedStatements(statements) { - return setEmitFlags(factory2.createBlock(factory2.createNodeArray(statements), - /*multiLine*/ - true), 96 /* NoSourceMap */ | 768 /* NoTokenSourceMaps */); - } - function convertForOfStatementForArray(node, outermostLabeledStatement, convertedLoopBodyStatements) { - var expression = visitNode(node.expression, visitor, isExpression); - Debug.assert(expression); - var counter = factory2.createLoopVariable(); - var rhsReference = isIdentifier(expression) ? factory2.getGeneratedNameForNode(expression) : factory2.createTempVariable( - /*recordTempVariable*/ - void 0); - setEmitFlags(expression, 96 /* NoSourceMap */ | getEmitFlags(expression)); - var forStatement = setTextRange(factory2.createForStatement( - /*initializer*/ - setEmitFlags(setTextRange(factory2.createVariableDeclarationList([ - setTextRange(factory2.createVariableDeclaration(counter, - /*exclamationToken*/ - void 0, - /*type*/ - void 0, factory2.createNumericLiteral(0)), moveRangePos(node.expression, -1)), - setTextRange(factory2.createVariableDeclaration(rhsReference, - /*exclamationToken*/ - void 0, - /*type*/ - void 0, expression), node.expression) - ]), node.expression), 4194304 /* NoHoisting */), - /*condition*/ - setTextRange(factory2.createLessThan(counter, factory2.createPropertyAccessExpression(rhsReference, "length")), node.expression), - /*incrementor*/ - setTextRange(factory2.createPostfixIncrement(counter), node.expression), - /*statement*/ - convertForOfStatementHead(node, factory2.createElementAccessExpression(rhsReference, counter), convertedLoopBodyStatements)), - /*location*/ - node); - setEmitFlags(forStatement, 512 /* NoTokenTrailingSourceMaps */); - setTextRange(forStatement, node); - return factory2.restoreEnclosingLabel(forStatement, outermostLabeledStatement, convertedLoopState && resetLabel); - } - function convertForOfStatementForIterable(node, outermostLabeledStatement, convertedLoopBodyStatements, ancestorFacts) { - var expression = visitNode(node.expression, visitor, isExpression); - Debug.assert(expression); - var iterator = isIdentifier(expression) ? factory2.getGeneratedNameForNode(expression) : factory2.createTempVariable( - /*recordTempVariable*/ - void 0); - var result = isIdentifier(expression) ? factory2.getGeneratedNameForNode(iterator) : factory2.createTempVariable( - /*recordTempVariable*/ - void 0); - var errorRecord = factory2.createUniqueName("e"); - var catchVariable = factory2.getGeneratedNameForNode(errorRecord); - var returnMethod = factory2.createTempVariable( - /*recordTempVariable*/ - void 0); - var values = setTextRange(emitHelpers().createValuesHelper(expression), node.expression); - var next = factory2.createCallExpression(factory2.createPropertyAccessExpression(iterator, "next"), - /*typeArguments*/ - void 0, []); - hoistVariableDeclaration(errorRecord); - hoistVariableDeclaration(returnMethod); - var initializer = ancestorFacts & 1024 /* IterationContainer */ ? factory2.inlineExpressions([factory2.createAssignment(errorRecord, factory2.createVoidZero()), values]) : values; - var forStatement = setEmitFlags(setTextRange(factory2.createForStatement( - /*initializer*/ - setEmitFlags(setTextRange(factory2.createVariableDeclarationList([ - setTextRange(factory2.createVariableDeclaration(iterator, - /*exclamationToken*/ - void 0, - /*type*/ - void 0, initializer), node.expression), - factory2.createVariableDeclaration(result, - /*exclamationToken*/ - void 0, - /*type*/ - void 0, next) - ]), node.expression), 4194304 /* NoHoisting */), - /*condition*/ - factory2.createLogicalNot(factory2.createPropertyAccessExpression(result, "done")), - /*incrementor*/ - factory2.createAssignment(result, next), - /*statement*/ - convertForOfStatementHead(node, factory2.createPropertyAccessExpression(result, "value"), convertedLoopBodyStatements)), - /*location*/ - node), 512 /* NoTokenTrailingSourceMaps */); - return factory2.createTryStatement(factory2.createBlock([ - factory2.restoreEnclosingLabel(forStatement, outermostLabeledStatement, convertedLoopState && resetLabel) - ]), factory2.createCatchClause(factory2.createVariableDeclaration(catchVariable), setEmitFlags(factory2.createBlock([ - factory2.createExpressionStatement(factory2.createAssignment(errorRecord, factory2.createObjectLiteralExpression([ - factory2.createPropertyAssignment("error", catchVariable) - ]))) - ]), 1 /* SingleLine */)), factory2.createBlock([ - factory2.createTryStatement( - /*tryBlock*/ - factory2.createBlock([ - setEmitFlags(factory2.createIfStatement(factory2.createLogicalAnd(factory2.createLogicalAnd(result, factory2.createLogicalNot(factory2.createPropertyAccessExpression(result, "done"))), factory2.createAssignment(returnMethod, factory2.createPropertyAccessExpression(iterator, "return"))), factory2.createExpressionStatement(factory2.createFunctionCallCall(returnMethod, iterator, []))), 1 /* SingleLine */) - ]), - /*catchClause*/ - void 0, - /*finallyBlock*/ - setEmitFlags(factory2.createBlock([ - setEmitFlags(factory2.createIfStatement(errorRecord, factory2.createThrowStatement(factory2.createPropertyAccessExpression(errorRecord, "error"))), 1 /* SingleLine */) - ]), 1 /* SingleLine */)) - ])); - } - function visitObjectLiteralExpression(node) { - var properties = node.properties; - var numInitialProperties = -1, hasComputed = false; - for (var i = 0; i < properties.length; i++) { - var property = properties[i]; - if (property.transformFlags & 1048576 /* ContainsYield */ && hierarchyFacts & 4 /* AsyncFunctionBody */ || (hasComputed = Debug.checkDefined(property.name).kind === 167 /* ComputedPropertyName */)) { - numInitialProperties = i; - break; - } - } - if (numInitialProperties < 0) { - return visitEachChild(node, visitor, context); - } - var temp = factory2.createTempVariable(hoistVariableDeclaration); - var expressions = []; - var assignment = factory2.createAssignment(temp, setEmitFlags(factory2.createObjectLiteralExpression(visitNodes2(properties, visitor, isObjectLiteralElementLike, 0, numInitialProperties), node.multiLine), hasComputed ? 131072 /* Indented */ : 0)); - if (node.multiLine) { - startOnNewLine(assignment); - } - expressions.push(assignment); - addObjectLiteralMembers(expressions, node, temp, numInitialProperties); - expressions.push(node.multiLine ? startOnNewLine(setParent(setTextRange(factory2.cloneNode(temp), temp), temp.parent)) : temp); - return factory2.inlineExpressions(expressions); - } - function shouldConvertPartOfIterationStatement(node) { - return (resolver.getNodeCheckFlags(node) & 8192 /* ContainsCapturedBlockScopeBinding */) !== 0; - } - function shouldConvertInitializerOfForStatement(node) { - return isForStatement(node) && !!node.initializer && shouldConvertPartOfIterationStatement(node.initializer); - } - function shouldConvertConditionOfForStatement(node) { - return isForStatement(node) && !!node.condition && shouldConvertPartOfIterationStatement(node.condition); - } - function shouldConvertIncrementorOfForStatement(node) { - return isForStatement(node) && !!node.incrementor && shouldConvertPartOfIterationStatement(node.incrementor); - } - function shouldConvertIterationStatement(node) { - return shouldConvertBodyOfIterationStatement(node) || shouldConvertInitializerOfForStatement(node); - } - function shouldConvertBodyOfIterationStatement(node) { - return (resolver.getNodeCheckFlags(node) & 4096 /* LoopWithCapturedBlockScopedBinding */) !== 0; - } - function hoistVariableDeclarationDeclaredInConvertedLoop(state, node) { - if (!state.hoistedLocalVariables) { - state.hoistedLocalVariables = []; - } - visit(node.name); - function visit(node2) { - var e_499, _t; - if (node2.kind === 80 /* Identifier */) { - state.hoistedLocalVariables.push(node2); - } - else { - try { - for (var _u = __values(node2.elements), _v = _u.next(); !_v.done; _v = _u.next()) { - var element = _v.value; - if (!isOmittedExpression(element)) { - visit(element.name); - } - } - } - catch (e_499_1) { e_499 = { error: e_499_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_499) throw e_499.error; } - } - } - } - } - function convertIterationStatementBodyIfNecessary(node, outermostLabeledStatement, ancestorFacts, convert) { - if (!shouldConvertIterationStatement(node)) { - var saveAllowedNonLabeledJumps = void 0; - if (convertedLoopState) { - saveAllowedNonLabeledJumps = convertedLoopState.allowedNonLabeledJumps; - convertedLoopState.allowedNonLabeledJumps = 2 /* Break */ | 4 /* Continue */; - } - var result = convert ? convert(node, outermostLabeledStatement, - /*convertedLoopBodyStatements*/ - void 0, ancestorFacts) : factory2.restoreEnclosingLabel(isForStatement(node) ? visitEachChildOfForStatement2(node) : visitEachChild(node, visitor, context), outermostLabeledStatement, convertedLoopState && resetLabel); - if (convertedLoopState) { - convertedLoopState.allowedNonLabeledJumps = saveAllowedNonLabeledJumps; - } - return result; - } - var currentState = createConvertedLoopState(node); - var statements = []; - var outerConvertedLoopState = convertedLoopState; - convertedLoopState = currentState; - var initializerFunction = shouldConvertInitializerOfForStatement(node) ? createFunctionForInitializerOfForStatement(node, currentState) : void 0; - var bodyFunction = shouldConvertBodyOfIterationStatement(node) ? createFunctionForBodyOfIterationStatement(node, currentState, outerConvertedLoopState) : void 0; - convertedLoopState = outerConvertedLoopState; - if (initializerFunction) - statements.push(initializerFunction.functionDeclaration); - if (bodyFunction) - statements.push(bodyFunction.functionDeclaration); - addExtraDeclarationsForConvertedLoop(statements, currentState, outerConvertedLoopState); - if (initializerFunction) { - statements.push(generateCallToConvertedLoopInitializer(initializerFunction.functionName, initializerFunction.containsYield)); - } - var loop; - if (bodyFunction) { - if (convert) { - loop = convert(node, outermostLabeledStatement, bodyFunction.part, ancestorFacts); - } - else { - var clone2 = convertIterationStatementCore(node, initializerFunction, factory2.createBlock(bodyFunction.part, - /*multiLine*/ - true)); - loop = factory2.restoreEnclosingLabel(clone2, outermostLabeledStatement, convertedLoopState && resetLabel); - } - } - else { - var clone2 = convertIterationStatementCore(node, initializerFunction, Debug.checkDefined(visitNode(node.statement, visitor, isStatement, factory2.liftToBlock))); - loop = factory2.restoreEnclosingLabel(clone2, outermostLabeledStatement, convertedLoopState && resetLabel); - } - statements.push(loop); - return statements; - } - function convertIterationStatementCore(node, initializerFunction, convertedLoopBody) { - switch (node.kind) { - case 248 /* ForStatement */: - return convertForStatement(node, initializerFunction, convertedLoopBody); - case 249 /* ForInStatement */: - return convertForInStatement(node, convertedLoopBody); - case 250 /* ForOfStatement */: - return convertForOfStatement(node, convertedLoopBody); - case 246 /* DoStatement */: - return convertDoStatement(node, convertedLoopBody); - case 247 /* WhileStatement */: - return convertWhileStatement(node, convertedLoopBody); - default: - return Debug.failBadSyntaxKind(node, "IterationStatement expected"); - } - } - function convertForStatement(node, initializerFunction, convertedLoopBody) { - var shouldConvertCondition = node.condition && shouldConvertPartOfIterationStatement(node.condition); - var shouldConvertIncrementor = shouldConvertCondition || node.incrementor && shouldConvertPartOfIterationStatement(node.incrementor); - return factory2.updateForStatement(node, visitNode(initializerFunction ? initializerFunction.part : node.initializer, visitorWithUnusedExpressionResult, isForInitializer), visitNode(shouldConvertCondition ? void 0 : node.condition, visitor, isExpression), visitNode(shouldConvertIncrementor ? void 0 : node.incrementor, visitorWithUnusedExpressionResult, isExpression), convertedLoopBody); - } - function convertForOfStatement(node, convertedLoopBody) { - return factory2.updateForOfStatement(node, - /*awaitModifier*/ - void 0, Debug.checkDefined(visitNode(node.initializer, visitor, isForInitializer)), Debug.checkDefined(visitNode(node.expression, visitor, isExpression)), convertedLoopBody); - } - function convertForInStatement(node, convertedLoopBody) { - return factory2.updateForInStatement(node, Debug.checkDefined(visitNode(node.initializer, visitor, isForInitializer)), Debug.checkDefined(visitNode(node.expression, visitor, isExpression)), convertedLoopBody); - } - function convertDoStatement(node, convertedLoopBody) { - return factory2.updateDoStatement(node, convertedLoopBody, Debug.checkDefined(visitNode(node.expression, visitor, isExpression))); - } - function convertWhileStatement(node, convertedLoopBody) { - return factory2.updateWhileStatement(node, Debug.checkDefined(visitNode(node.expression, visitor, isExpression)), convertedLoopBody); - } - function createConvertedLoopState(node) { - var e_500, _t; - var loopInitializer; - switch (node.kind) { - case 248 /* ForStatement */: - case 249 /* ForInStatement */: - case 250 /* ForOfStatement */: - var initializer = node.initializer; - if (initializer && initializer.kind === 261 /* VariableDeclarationList */) { - loopInitializer = initializer; - } - break; - } - var loopParameters = []; - var loopOutParameters = []; - if (loopInitializer && getCombinedNodeFlags(loopInitializer) & 7 /* BlockScoped */) { - var hasCapturedBindingsInForHead = shouldConvertInitializerOfForStatement(node) || shouldConvertConditionOfForStatement(node) || shouldConvertIncrementorOfForStatement(node); - try { - for (var _u = __values(loopInitializer.declarations), _v = _u.next(); !_v.done; _v = _u.next()) { - var decl = _v.value; - processLoopVariableDeclaration(node, decl, loopParameters, loopOutParameters, hasCapturedBindingsInForHead); - } - } - catch (e_500_1) { e_500 = { error: e_500_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_500) throw e_500.error; } - } - } - var currentState = { loopParameters: loopParameters, loopOutParameters: loopOutParameters }; - if (convertedLoopState) { - if (convertedLoopState.argumentsName) { - currentState.argumentsName = convertedLoopState.argumentsName; - } - if (convertedLoopState.thisName) { - currentState.thisName = convertedLoopState.thisName; - } - if (convertedLoopState.hoistedLocalVariables) { - currentState.hoistedLocalVariables = convertedLoopState.hoistedLocalVariables; - } - } - return currentState; - } - function addExtraDeclarationsForConvertedLoop(statements, state, outerState) { - var e_501, _t, e_502, _u; - var extraVariableDeclarations; - if (state.argumentsName) { - if (outerState) { - outerState.argumentsName = state.argumentsName; - } - else { - (extraVariableDeclarations || (extraVariableDeclarations = [])).push(factory2.createVariableDeclaration(state.argumentsName, - /*exclamationToken*/ - void 0, - /*type*/ - void 0, factory2.createIdentifier("arguments"))); - } - } - if (state.thisName) { - if (outerState) { - outerState.thisName = state.thisName; - } - else { - (extraVariableDeclarations || (extraVariableDeclarations = [])).push(factory2.createVariableDeclaration(state.thisName, - /*exclamationToken*/ - void 0, - /*type*/ - void 0, factory2.createIdentifier("this"))); - } - } - if (state.hoistedLocalVariables) { - if (outerState) { - outerState.hoistedLocalVariables = state.hoistedLocalVariables; - } - else { - if (!extraVariableDeclarations) { - extraVariableDeclarations = []; - } - try { - for (var _v = __values(state.hoistedLocalVariables), _w = _v.next(); !_w.done; _w = _v.next()) { - var identifier = _w.value; - extraVariableDeclarations.push(factory2.createVariableDeclaration(identifier)); - } - } - catch (e_501_1) { e_501 = { error: e_501_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_501) throw e_501.error; } - } - } - } - if (state.loopOutParameters.length) { - if (!extraVariableDeclarations) { - extraVariableDeclarations = []; - } - try { - for (var _x = __values(state.loopOutParameters), _y = _x.next(); !_y.done; _y = _x.next()) { - var outParam = _y.value; - extraVariableDeclarations.push(factory2.createVariableDeclaration(outParam.outParamName)); - } - } - catch (e_502_1) { e_502 = { error: e_502_1 }; } - finally { - try { - if (_y && !_y.done && (_u = _x.return)) _u.call(_x); - } - finally { if (e_502) throw e_502.error; } - } - } - if (state.conditionVariable) { - if (!extraVariableDeclarations) { - extraVariableDeclarations = []; - } - extraVariableDeclarations.push(factory2.createVariableDeclaration(state.conditionVariable, - /*exclamationToken*/ - void 0, - /*type*/ - void 0, factory2.createFalse())); - } - if (extraVariableDeclarations) { - statements.push(factory2.createVariableStatement( - /*modifiers*/ - void 0, factory2.createVariableDeclarationList(extraVariableDeclarations))); - } - } - function createOutVariable(p) { - return factory2.createVariableDeclaration(p.originalName, - /*exclamationToken*/ - void 0, - /*type*/ - void 0, p.outParamName); - } - function createFunctionForInitializerOfForStatement(node, currentState) { - var functionName = factory2.createUniqueName("_loop_init"); - var containsYield = (node.initializer.transformFlags & 1048576 /* ContainsYield */) !== 0; - var emitFlags = 0 /* None */; - if (currentState.containsLexicalThis) - emitFlags |= 16 /* CapturesThis */; - if (containsYield && hierarchyFacts & 4 /* AsyncFunctionBody */) - emitFlags |= 524288 /* AsyncFunctionBody */; - var statements = []; - statements.push(factory2.createVariableStatement( - /*modifiers*/ - void 0, node.initializer)); - copyOutParameters(currentState.loopOutParameters, 2 /* Initializer */, 1 /* ToOutParameter */, statements); - var functionDeclaration = factory2.createVariableStatement( - /*modifiers*/ - void 0, setEmitFlags(factory2.createVariableDeclarationList([ - factory2.createVariableDeclaration(functionName, - /*exclamationToken*/ - void 0, - /*type*/ - void 0, setEmitFlags(factory2.createFunctionExpression( - /*modifiers*/ - void 0, containsYield ? factory2.createToken(42 /* AsteriskToken */) : void 0, - /*name*/ - void 0, - /*typeParameters*/ - void 0, - /*parameters*/ - void 0, - /*type*/ - void 0, Debug.checkDefined(visitNode(factory2.createBlock(statements, - /*multiLine*/ - true), visitor, isBlock))), emitFlags)) - ]), 4194304 /* NoHoisting */)); - var part = factory2.createVariableDeclarationList(map(currentState.loopOutParameters, createOutVariable)); - return { functionName: functionName, containsYield: containsYield, functionDeclaration: functionDeclaration, part: part }; - } - function createFunctionForBodyOfIterationStatement(node, currentState, outerState) { - var functionName = factory2.createUniqueName("_loop"); - startLexicalEnvironment(); - var statement = visitNode(node.statement, visitor, isStatement, factory2.liftToBlock); - var lexicalEnvironment = endLexicalEnvironment(); - var statements = []; - if (shouldConvertConditionOfForStatement(node) || shouldConvertIncrementorOfForStatement(node)) { - currentState.conditionVariable = factory2.createUniqueName("inc"); - if (node.incrementor) { - statements.push(factory2.createIfStatement(currentState.conditionVariable, factory2.createExpressionStatement(Debug.checkDefined(visitNode(node.incrementor, visitor, isExpression))), factory2.createExpressionStatement(factory2.createAssignment(currentState.conditionVariable, factory2.createTrue())))); - } - else { - statements.push(factory2.createIfStatement(factory2.createLogicalNot(currentState.conditionVariable), factory2.createExpressionStatement(factory2.createAssignment(currentState.conditionVariable, factory2.createTrue())))); - } - if (shouldConvertConditionOfForStatement(node)) { - statements.push(factory2.createIfStatement(factory2.createPrefixUnaryExpression(54 /* ExclamationToken */, Debug.checkDefined(visitNode(node.condition, visitor, isExpression))), Debug.checkDefined(visitNode(factory2.createBreakStatement(), visitor, isStatement)))); - } - } - Debug.assert(statement); - if (isBlock(statement)) { - addRange(statements, statement.statements); - } - else { - statements.push(statement); - } - copyOutParameters(currentState.loopOutParameters, 1 /* Body */, 1 /* ToOutParameter */, statements); - insertStatementsAfterStandardPrologue(statements, lexicalEnvironment); - var loopBody = factory2.createBlock(statements, - /*multiLine*/ - true); - if (isBlock(statement)) - setOriginalNode(loopBody, statement); - var containsYield = (node.statement.transformFlags & 1048576 /* ContainsYield */) !== 0; - var emitFlags = 1048576 /* ReuseTempVariableScope */; - if (currentState.containsLexicalThis) - emitFlags |= 16 /* CapturesThis */; - if (containsYield && (hierarchyFacts & 4 /* AsyncFunctionBody */) !== 0) - emitFlags |= 524288 /* AsyncFunctionBody */; - var functionDeclaration = factory2.createVariableStatement( - /*modifiers*/ - void 0, setEmitFlags(factory2.createVariableDeclarationList([ - factory2.createVariableDeclaration(functionName, - /*exclamationToken*/ - void 0, - /*type*/ - void 0, setEmitFlags(factory2.createFunctionExpression( - /*modifiers*/ - void 0, containsYield ? factory2.createToken(42 /* AsteriskToken */) : void 0, - /*name*/ - void 0, - /*typeParameters*/ - void 0, currentState.loopParameters, - /*type*/ - void 0, loopBody), emitFlags)) - ]), 4194304 /* NoHoisting */)); - var part = generateCallToConvertedLoop(functionName, currentState, outerState, containsYield); - return { functionName: functionName, containsYield: containsYield, functionDeclaration: functionDeclaration, part: part }; - } - function copyOutParameter(outParam, copyDirection) { - var source = copyDirection === 0 /* ToOriginal */ ? outParam.outParamName : outParam.originalName; - var target = copyDirection === 0 /* ToOriginal */ ? outParam.originalName : outParam.outParamName; - return factory2.createBinaryExpression(target, 64 /* EqualsToken */, source); - } - function copyOutParameters(outParams, partFlags, copyDirection, statements) { - var e_503, _t; - try { - for (var outParams_1 = __values(outParams), outParams_1_1 = outParams_1.next(); !outParams_1_1.done; outParams_1_1 = outParams_1.next()) { - var outParam = outParams_1_1.value; - if (outParam.flags & partFlags) { - statements.push(factory2.createExpressionStatement(copyOutParameter(outParam, copyDirection))); - } - } - } - catch (e_503_1) { e_503 = { error: e_503_1 }; } - finally { - try { - if (outParams_1_1 && !outParams_1_1.done && (_t = outParams_1.return)) _t.call(outParams_1); - } - finally { if (e_503) throw e_503.error; } - } - } - function generateCallToConvertedLoopInitializer(initFunctionExpressionName, containsYield) { - var call = factory2.createCallExpression(initFunctionExpressionName, - /*typeArguments*/ - void 0, []); - var callResult = containsYield ? factory2.createYieldExpression(factory2.createToken(42 /* AsteriskToken */), setEmitFlags(call, 8388608 /* Iterator */)) : call; - return factory2.createExpressionStatement(callResult); - } - function generateCallToConvertedLoop(loopFunctionExpressionName, state, outerState, containsYield) { - var statements = []; - var isSimpleLoop = !(state.nonLocalJumps & ~4 /* Continue */) && !state.labeledNonLocalBreaks && !state.labeledNonLocalContinues; - var call = factory2.createCallExpression(loopFunctionExpressionName, - /*typeArguments*/ - void 0, map(state.loopParameters, function (p) { return p.name; })); - var callResult = containsYield ? factory2.createYieldExpression(factory2.createToken(42 /* AsteriskToken */), setEmitFlags(call, 8388608 /* Iterator */)) : call; - if (isSimpleLoop) { - statements.push(factory2.createExpressionStatement(callResult)); - copyOutParameters(state.loopOutParameters, 1 /* Body */, 0 /* ToOriginal */, statements); - } - else { - var loopResultName = factory2.createUniqueName("state"); - var stateVariable = factory2.createVariableStatement( - /*modifiers*/ - void 0, factory2.createVariableDeclarationList([factory2.createVariableDeclaration(loopResultName, - /*exclamationToken*/ - void 0, - /*type*/ - void 0, callResult)])); - statements.push(stateVariable); - copyOutParameters(state.loopOutParameters, 1 /* Body */, 0 /* ToOriginal */, statements); - if (state.nonLocalJumps & 8 /* Return */) { - var returnStatement = void 0; - if (outerState) { - outerState.nonLocalJumps |= 8 /* Return */; - returnStatement = factory2.createReturnStatement(loopResultName); - } - else { - returnStatement = factory2.createReturnStatement(factory2.createPropertyAccessExpression(loopResultName, "value")); - } - statements.push(factory2.createIfStatement(factory2.createTypeCheck(loopResultName, "object"), returnStatement)); - } - if (state.nonLocalJumps & 2 /* Break */) { - statements.push(factory2.createIfStatement(factory2.createStrictEquality(loopResultName, factory2.createStringLiteral("break")), factory2.createBreakStatement())); - } - if (state.labeledNonLocalBreaks || state.labeledNonLocalContinues) { - var caseClauses = []; - processLabeledJumps(state.labeledNonLocalBreaks, - /*isBreak*/ - true, loopResultName, outerState, caseClauses); - processLabeledJumps(state.labeledNonLocalContinues, - /*isBreak*/ - false, loopResultName, outerState, caseClauses); - statements.push(factory2.createSwitchStatement(loopResultName, factory2.createCaseBlock(caseClauses))); - } - } - return statements; - } - function setLabeledJump(state, isBreak, labelText, labelMarker) { - if (isBreak) { - if (!state.labeledNonLocalBreaks) { - state.labeledNonLocalBreaks = /* @__PURE__ */ new Map(); - } - state.labeledNonLocalBreaks.set(labelText, labelMarker); - } - else { - if (!state.labeledNonLocalContinues) { - state.labeledNonLocalContinues = /* @__PURE__ */ new Map(); - } - state.labeledNonLocalContinues.set(labelText, labelMarker); - } - } - function processLabeledJumps(table, isBreak, loopResultName, outerLoop, caseClauses) { - if (!table) { - return; - } - table.forEach(function (labelMarker, labelText) { - var statements = []; - if (!outerLoop || outerLoop.labels && outerLoop.labels.get(labelText)) { - var label = factory2.createIdentifier(labelText); - statements.push(isBreak ? factory2.createBreakStatement(label) : factory2.createContinueStatement(label)); - } - else { - setLabeledJump(outerLoop, isBreak, labelText, labelMarker); - statements.push(factory2.createReturnStatement(loopResultName)); - } - caseClauses.push(factory2.createCaseClause(factory2.createStringLiteral(labelMarker), statements)); - }); - } - function processLoopVariableDeclaration(container, decl, loopParameters, loopOutParameters, hasCapturedBindingsInForHead) { - var e_504, _t; - var name = decl.name; - if (isBindingPattern(name)) { - try { - for (var _u = __values(name.elements), _v = _u.next(); !_v.done; _v = _u.next()) { - var element = _v.value; - if (!isOmittedExpression(element)) { - processLoopVariableDeclaration(container, element, loopParameters, loopOutParameters, hasCapturedBindingsInForHead); - } - } - } - catch (e_504_1) { e_504 = { error: e_504_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_504) throw e_504.error; } - } - } - else { - loopParameters.push(factory2.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, name)); - var checkFlags = resolver.getNodeCheckFlags(decl); - if (checkFlags & 65536 /* NeedsLoopOutParameter */ || hasCapturedBindingsInForHead) { - var outParamName = factory2.createUniqueName("out_" + idText(name)); - var flags = 0 /* None */; - if (checkFlags & 65536 /* NeedsLoopOutParameter */) { - flags |= 1 /* Body */; - } - if (isForStatement(container)) { - if (container.initializer && resolver.isBindingCapturedByNode(container.initializer, decl)) { - flags |= 2 /* Initializer */; - } - if (container.condition && resolver.isBindingCapturedByNode(container.condition, decl) || container.incrementor && resolver.isBindingCapturedByNode(container.incrementor, decl)) { - flags |= 1 /* Body */; - } - } - loopOutParameters.push({ flags: flags, originalName: name, outParamName: outParamName }); - } - } - } - function addObjectLiteralMembers(expressions, node, receiver, start2) { - var properties = node.properties; - var numProperties = properties.length; - for (var i = start2; i < numProperties; i++) { - var property = properties[i]; - switch (property.kind) { - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - var accessors = getAllAccessorDeclarations(node.properties, property); - if (property === accessors.firstAccessor) { - expressions.push(transformAccessorsToExpression(receiver, accessors, node, !!node.multiLine)); - } - break; - case 174 /* MethodDeclaration */: - expressions.push(transformObjectLiteralMethodDeclarationToExpression(property, receiver, node, node.multiLine)); - break; - case 303 /* PropertyAssignment */: - expressions.push(transformPropertyAssignmentToExpression(property, receiver, node.multiLine)); - break; - case 304 /* ShorthandPropertyAssignment */: - expressions.push(transformShorthandPropertyAssignmentToExpression(property, receiver, node.multiLine)); - break; - default: - Debug.failBadSyntaxKind(node); - break; - } - } - } - function transformPropertyAssignmentToExpression(property, receiver, startsOnNewLine) { - var expression = factory2.createAssignment(createMemberAccessForPropertyName(factory2, receiver, Debug.checkDefined(visitNode(property.name, visitor, isPropertyName))), Debug.checkDefined(visitNode(property.initializer, visitor, isExpression))); - setTextRange(expression, property); - if (startsOnNewLine) { - startOnNewLine(expression); - } - return expression; - } - function transformShorthandPropertyAssignmentToExpression(property, receiver, startsOnNewLine) { - var expression = factory2.createAssignment(createMemberAccessForPropertyName(factory2, receiver, Debug.checkDefined(visitNode(property.name, visitor, isPropertyName))), factory2.cloneNode(property.name)); - setTextRange(expression, property); - if (startsOnNewLine) { - startOnNewLine(expression); - } - return expression; - } - function transformObjectLiteralMethodDeclarationToExpression(method, receiver, container, startsOnNewLine) { - var expression = factory2.createAssignment(createMemberAccessForPropertyName(factory2, receiver, Debug.checkDefined(visitNode(method.name, visitor, isPropertyName))), transformFunctionLikeToExpression(method, - /*location*/ - method, - /*name*/ - void 0, container)); - setTextRange(expression, method); - if (startsOnNewLine) { - startOnNewLine(expression); - } - return expression; - } - function visitCatchClause(node) { - var ancestorFacts = enterSubtree(7104 /* BlockScopeExcludes */, 0 /* BlockScopeIncludes */); - var updated; - Debug.assert(!!node.variableDeclaration, "Catch clause variable should always be present when downleveling ES2015."); - if (isBindingPattern(node.variableDeclaration.name)) { - var temp = factory2.createTempVariable( - /*recordTempVariable*/ - void 0); - var newVariableDeclaration = factory2.createVariableDeclaration(temp); - setTextRange(newVariableDeclaration, node.variableDeclaration); - var vars = flattenDestructuringBinding(node.variableDeclaration, visitor, context, 0 /* All */, temp); - var list = factory2.createVariableDeclarationList(vars); - setTextRange(list, node.variableDeclaration); - var destructure = factory2.createVariableStatement( - /*modifiers*/ - void 0, list); - updated = factory2.updateCatchClause(node, newVariableDeclaration, addStatementToStartOfBlock(node.block, destructure)); - } - else { - updated = visitEachChild(node, visitor, context); - } - exitSubtree(ancestorFacts, 0 /* None */, 0 /* None */); - return updated; - } - function addStatementToStartOfBlock(block, statement) { - var transformedStatements = visitNodes2(block.statements, visitor, isStatement); - return factory2.updateBlock(block, __spreadArray([statement], __read(transformedStatements), false)); - } - function visitMethodDeclaration(node) { - Debug.assert(!isComputedPropertyName(node.name)); - var functionExpression = transformFunctionLikeToExpression(node, - /*location*/ - moveRangePos(node, -1), - /*name*/ - void 0, - /*container*/ - void 0); - setEmitFlags(functionExpression, 1024 /* NoLeadingComments */ | getEmitFlags(functionExpression)); - return setTextRange(factory2.createPropertyAssignment(node.name, functionExpression), - /*location*/ - node); - } - function visitAccessorDeclaration(node) { - Debug.assert(!isComputedPropertyName(node.name)); - var savedConvertedLoopState = convertedLoopState; - convertedLoopState = void 0; - var ancestorFacts = enterSubtree(32670 /* FunctionExcludes */, 65 /* FunctionIncludes */); - var updated; - var parameters = visitParameterList(node.parameters, visitor, context); - var body = transformFunctionBody2(node); - if (node.kind === 177 /* GetAccessor */) { - updated = factory2.updateGetAccessorDeclaration(node, node.modifiers, node.name, parameters, node.type, body); - } - else { - updated = factory2.updateSetAccessorDeclaration(node, node.modifiers, node.name, parameters, body); - } - exitSubtree(ancestorFacts, 98304 /* FunctionSubtreeExcludes */, 0 /* None */); - convertedLoopState = savedConvertedLoopState; - return updated; - } - function visitShorthandPropertyAssignment(node) { - return setTextRange(factory2.createPropertyAssignment(node.name, visitIdentifier(factory2.cloneNode(node.name))), - /*location*/ - node); - } - function visitComputedPropertyName(node) { - return visitEachChild(node, visitor, context); - } - function visitYieldExpression(node) { - return visitEachChild(node, visitor, context); - } - function visitArrayLiteralExpression(node) { - if (some(node.elements, isSpreadElement)) { - return transformAndSpreadElements(node.elements, - /*isArgumentList*/ - false, !!node.multiLine, - /*hasTrailingComma*/ - !!node.elements.hasTrailingComma); - } - return visitEachChild(node, visitor, context); - } - function visitCallExpression(node) { - if (getInternalEmitFlags(node) & 1 /* TypeScriptClassWrapper */) { - return visitTypeScriptClassWrapper(node); - } - var expression = skipOuterExpressions(node.expression); - if (expression.kind === 108 /* SuperKeyword */ || isSuperProperty(expression) || some(node.arguments, isSpreadElement)) { - return visitCallExpressionWithPotentialCapturedThisAssignment(node, - /*assignToCapturedThis*/ - true); - } - return factory2.updateCallExpression(node, Debug.checkDefined(visitNode(node.expression, callExpressionVisitor, isExpression)), - /*typeArguments*/ - void 0, visitNodes2(node.arguments, visitor, isExpression)); - } - function visitTypeScriptClassWrapper(node) { - var e_505, _t; - var body = cast(cast(skipOuterExpressions(node.expression), isArrowFunction).body, isBlock); - var isVariableStatementWithInitializer = function (stmt) { return isVariableStatement(stmt) && !!first(stmt.declarationList.declarations).initializer; }; - var savedConvertedLoopState = convertedLoopState; - convertedLoopState = void 0; - var bodyStatements = visitNodes2(body.statements, classWrapperStatementVisitor, isStatement); - convertedLoopState = savedConvertedLoopState; - var classStatements = filter(bodyStatements, isVariableStatementWithInitializer); - var remainingStatements = filter(bodyStatements, function (stmt) { return !isVariableStatementWithInitializer(stmt); }); - var varStatement = cast(first(classStatements), isVariableStatement); - var variable = varStatement.declarationList.declarations[0]; - var initializer = skipOuterExpressions(variable.initializer); - var aliasAssignment = tryCast(initializer, isAssignmentExpression); - if (!aliasAssignment && isBinaryExpression(initializer) && initializer.operatorToken.kind === 28 /* CommaToken */) { - aliasAssignment = tryCast(initializer.left, isAssignmentExpression); - } - var call = cast(aliasAssignment ? skipOuterExpressions(aliasAssignment.right) : initializer, isCallExpression); - var func = cast(skipOuterExpressions(call.expression), isFunctionExpression); - var funcStatements = func.body.statements; - var classBodyStart = 0; - var classBodyEnd = -1; - var statements = []; - if (aliasAssignment) { - var extendsCall = tryCast(funcStatements[classBodyStart], isExpressionStatement); - if (extendsCall) { - statements.push(extendsCall); - classBodyStart++; - } - statements.push(funcStatements[classBodyStart]); - classBodyStart++; - statements.push(factory2.createExpressionStatement(factory2.createAssignment(aliasAssignment.left, cast(variable.name, isIdentifier)))); - } - while (!isReturnStatement(elementAt(funcStatements, classBodyEnd))) { - classBodyEnd--; - } - addRange(statements, funcStatements, classBodyStart, classBodyEnd); - if (classBodyEnd < -1) { - addRange(statements, funcStatements, classBodyEnd + 1); - } - var returnStatement = tryCast(elementAt(funcStatements, classBodyEnd), isReturnStatement); - try { - for (var remainingStatements_1 = __values(remainingStatements), remainingStatements_1_1 = remainingStatements_1.next(); !remainingStatements_1_1.done; remainingStatements_1_1 = remainingStatements_1.next()) { - var statement = remainingStatements_1_1.value; - if (isReturnStatement(statement) && (returnStatement == null ? void 0 : returnStatement.expression) && !isIdentifier(returnStatement.expression)) { - statements.push(returnStatement); - } - else { - statements.push(statement); - } - } - } - catch (e_505_1) { e_505 = { error: e_505_1 }; } - finally { - try { - if (remainingStatements_1_1 && !remainingStatements_1_1.done && (_t = remainingStatements_1.return)) _t.call(remainingStatements_1); - } - finally { if (e_505) throw e_505.error; } - } - addRange(statements, classStatements, - /*start*/ - 1); - return factory2.restoreOuterExpressions(node.expression, factory2.restoreOuterExpressions(variable.initializer, factory2.restoreOuterExpressions(aliasAssignment && aliasAssignment.right, factory2.updateCallExpression(call, factory2.restoreOuterExpressions(call.expression, factory2.updateFunctionExpression(func, - /*modifiers*/ - void 0, - /*asteriskToken*/ - void 0, - /*name*/ - void 0, - /*typeParameters*/ - void 0, func.parameters, - /*type*/ - void 0, factory2.updateBlock(func.body, statements))), - /*typeArguments*/ - void 0, call.arguments)))); - } - function visitSuperCallInBody(node) { - return visitCallExpressionWithPotentialCapturedThisAssignment(node, - /*assignToCapturedThis*/ - false); - } - function visitCallExpressionWithPotentialCapturedThisAssignment(node, assignToCapturedThis) { - if (node.transformFlags & 32768 /* ContainsRestOrSpread */ || node.expression.kind === 108 /* SuperKeyword */ || isSuperProperty(skipOuterExpressions(node.expression))) { - var _t = factory2.createCallBinding(node.expression, hoistVariableDeclaration), target = _t.target, thisArg = _t.thisArg; - if (node.expression.kind === 108 /* SuperKeyword */) { - setEmitFlags(thisArg, 8 /* NoSubstitution */); - } - var resultingCall = void 0; - if (node.transformFlags & 32768 /* ContainsRestOrSpread */) { - resultingCall = factory2.createFunctionApplyCall(Debug.checkDefined(visitNode(target, callExpressionVisitor, isExpression)), node.expression.kind === 108 /* SuperKeyword */ ? thisArg : Debug.checkDefined(visitNode(thisArg, visitor, isExpression)), transformAndSpreadElements(node.arguments, - /*isArgumentList*/ - true, - /*multiLine*/ - false, - /*hasTrailingComma*/ - false)); - } - else { - resultingCall = setTextRange(factory2.createFunctionCallCall(Debug.checkDefined(visitNode(target, callExpressionVisitor, isExpression)), node.expression.kind === 108 /* SuperKeyword */ ? thisArg : Debug.checkDefined(visitNode(thisArg, visitor, isExpression)), visitNodes2(node.arguments, visitor, isExpression)), node); - } - if (node.expression.kind === 108 /* SuperKeyword */) { - var initializer = factory2.createLogicalOr(resultingCall, createActualThis()); - resultingCall = assignToCapturedThis ? factory2.createAssignment(factory2.createUniqueName("_this", 16 /* Optimistic */ | 32 /* FileLevel */), initializer) : initializer; - } - return setOriginalNode(resultingCall, node); - } - return visitEachChild(node, visitor, context); - } - function visitNewExpression(node) { - if (some(node.arguments, isSpreadElement)) { - var _t = factory2.createCallBinding(factory2.createPropertyAccessExpression(node.expression, "bind"), hoistVariableDeclaration), target = _t.target, thisArg = _t.thisArg; - return factory2.createNewExpression(factory2.createFunctionApplyCall(Debug.checkDefined(visitNode(target, visitor, isExpression)), thisArg, transformAndSpreadElements(factory2.createNodeArray(__spreadArray([factory2.createVoidZero()], __read(node.arguments), false)), - /*isArgumentList*/ - true, - /*multiLine*/ - false, - /*hasTrailingComma*/ - false)), - /*typeArguments*/ - void 0, []); - } - return visitEachChild(node, visitor, context); - } - function transformAndSpreadElements(elements, isArgumentList, multiLine, hasTrailingComma) { - var numElements = elements.length; - var segments = flatten( - // As we visit each element, we return one of two functions to use as the "key": - // - `visitSpanOfSpreads` for one or more contiguous `...` spread expressions, i.e. `...a, ...b` in `[1, 2, ...a, ...b]` - // - `visitSpanOfNonSpreads` for one or more contiguous non-spread elements, i.e. `1, 2`, in `[1, 2, ...a, ...b]` - spanMap(elements, partitionSpread, function (partition, visitPartition, _start, end) { return visitPartition(partition, multiLine, hasTrailingComma && end === numElements); })); - if (segments.length === 1) { - var firstSegment = segments[0]; - if (isArgumentList && !compilerOptions.downlevelIteration || isPackedArrayLiteral(firstSegment.expression) || isCallToHelper(firstSegment.expression, "___spreadArray")) { - return firstSegment.expression; - } - } - var helpers = emitHelpers(); - var startsWithSpread = segments[0].kind !== 0 /* None */; - var expression = startsWithSpread ? factory2.createArrayLiteralExpression() : segments[0].expression; - for (var i = startsWithSpread ? 0 : 1; i < segments.length; i++) { - var segment = segments[i]; - expression = helpers.createSpreadArrayHelper(expression, segment.expression, segment.kind === 1 /* UnpackedSpread */ && !isArgumentList); - } - return expression; - } - function partitionSpread(node) { - return isSpreadElement(node) ? visitSpanOfSpreads : visitSpanOfNonSpreads; - } - function visitSpanOfSpreads(chunk) { - return map(chunk, visitExpressionOfSpread); - } - function visitExpressionOfSpread(node) { - Debug.assertNode(node, isSpreadElement); - var expression = visitNode(node.expression, visitor, isExpression); - Debug.assert(expression); - var isCallToReadHelper = isCallToHelper(expression, "___read"); - var kind = isCallToReadHelper || isPackedArrayLiteral(expression) ? 2 /* PackedSpread */ : 1 /* UnpackedSpread */; - if (compilerOptions.downlevelIteration && kind === 1 /* UnpackedSpread */ && !isArrayLiteralExpression(expression) && !isCallToReadHelper) { - expression = emitHelpers().createReadHelper(expression, - /*count*/ - void 0); - kind = 2 /* PackedSpread */; - } - return createSpreadSegment(kind, expression); - } - function visitSpanOfNonSpreads(chunk, multiLine, hasTrailingComma) { - var expression = factory2.createArrayLiteralExpression(visitNodes2(factory2.createNodeArray(chunk, hasTrailingComma), visitor, isExpression), multiLine); - return createSpreadSegment(0 /* None */, expression); - } - function visitSpreadElement(node) { - return visitNode(node.expression, visitor, isExpression); - } - function visitTemplateLiteral(node) { - return setTextRange(factory2.createStringLiteral(node.text), node); - } - function visitStringLiteral(node) { - if (node.hasExtendedUnicodeEscape) { - return setTextRange(factory2.createStringLiteral(node.text), node); - } - return node; - } - function visitNumericLiteral(node) { - if (node.numericLiteralFlags & 384 /* BinaryOrOctalSpecifier */) { - return setTextRange(factory2.createNumericLiteral(node.text), node); - } - return node; - } - function visitTaggedTemplateExpression(node) { - return processTaggedTemplateExpression(context, node, visitor, currentSourceFile, recordTaggedTemplateString, 1 /* All */); - } - function visitTemplateExpression(node) { - var e_506, _t; - var expression = factory2.createStringLiteral(node.head.text); - try { - for (var _u = __values(node.templateSpans), _v = _u.next(); !_v.done; _v = _u.next()) { - var span = _v.value; - var args = [Debug.checkDefined(visitNode(span.expression, visitor, isExpression))]; - if (span.literal.text.length > 0) { - args.push(factory2.createStringLiteral(span.literal.text)); - } - expression = factory2.createCallExpression(factory2.createPropertyAccessExpression(expression, "concat"), - /*typeArguments*/ - void 0, args); - } - } - catch (e_506_1) { e_506 = { error: e_506_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_506) throw e_506.error; } - } - return setTextRange(expression, node); - } - function visitSuperKeyword(isExpressionOfCall) { - return hierarchyFacts & 8 /* NonStaticClassElement */ && !isExpressionOfCall ? factory2.createPropertyAccessExpression(factory2.createUniqueName("_super", 16 /* Optimistic */ | 32 /* FileLevel */), "prototype") : factory2.createUniqueName("_super", 16 /* Optimistic */ | 32 /* FileLevel */); - } - function visitMetaProperty(node) { - if (node.keywordToken === 105 /* NewKeyword */ && node.name.escapedText === "target") { - hierarchyFacts |= 32768 /* NewTarget */; - return factory2.createUniqueName("_newTarget", 16 /* Optimistic */ | 32 /* FileLevel */); - } - return node; - } - function onEmitNode(hint, node, emitCallback) { - if (enabledSubstitutions & 1 /* CapturedThis */ && isFunctionLike(node)) { - var ancestorFacts = enterSubtree(32670 /* FunctionExcludes */, getEmitFlags(node) & 16 /* CapturesThis */ ? 65 /* FunctionIncludes */ | 16 /* CapturesThis */ : 65 /* FunctionIncludes */); - previousOnEmitNode(hint, node, emitCallback); - exitSubtree(ancestorFacts, 0 /* None */, 0 /* None */); - return; - } - previousOnEmitNode(hint, node, emitCallback); - } - function enableSubstitutionsForBlockScopedBindings() { - if ((enabledSubstitutions & 2 /* BlockScopedBindings */) === 0) { - enabledSubstitutions |= 2 /* BlockScopedBindings */; - context.enableSubstitution(80 /* Identifier */); - } - } - function enableSubstitutionsForCapturedThis() { - if ((enabledSubstitutions & 1 /* CapturedThis */) === 0) { - enabledSubstitutions |= 1 /* CapturedThis */; - context.enableSubstitution(110 /* ThisKeyword */); - context.enableEmitNotification(176 /* Constructor */); - context.enableEmitNotification(174 /* MethodDeclaration */); - context.enableEmitNotification(177 /* GetAccessor */); - context.enableEmitNotification(178 /* SetAccessor */); - context.enableEmitNotification(219 /* ArrowFunction */); - context.enableEmitNotification(218 /* FunctionExpression */); - context.enableEmitNotification(262 /* FunctionDeclaration */); - } - } - function onSubstituteNode(hint, node) { - node = previousOnSubstituteNode(hint, node); - if (hint === 1 /* Expression */) { - return substituteExpression(node); - } - if (isIdentifier(node)) { - return substituteIdentifier(node); - } - return node; - } - function substituteIdentifier(node) { - if (enabledSubstitutions & 2 /* BlockScopedBindings */ && !isInternalName(node)) { - var original = getParseTreeNode(node, isIdentifier); - if (original && isNameOfDeclarationWithCollidingName(original)) { - return setTextRange(factory2.getGeneratedNameForNode(original), node); - } - } - return node; - } - function isNameOfDeclarationWithCollidingName(node) { - switch (node.parent.kind) { - case 208 /* BindingElement */: - case 263 /* ClassDeclaration */: - case 266 /* EnumDeclaration */: - case 260 /* VariableDeclaration */: - return node.parent.name === node && resolver.isDeclarationWithCollidingName(node.parent); - } - return false; - } - function substituteExpression(node) { - switch (node.kind) { - case 80 /* Identifier */: - return substituteExpressionIdentifier(node); - case 110 /* ThisKeyword */: - return substituteThisKeyword(node); - } - return node; - } - function substituteExpressionIdentifier(node) { - if (enabledSubstitutions & 2 /* BlockScopedBindings */ && !isInternalName(node)) { - var declaration = resolver.getReferencedDeclarationWithCollidingName(node); - if (declaration && !(isClassLike(declaration) && isPartOfClassBody(declaration, node))) { - return setTextRange(factory2.getGeneratedNameForNode(getNameOfDeclaration(declaration)), node); - } - } - return node; - } - function isPartOfClassBody(declaration, node) { - var currentNode = getParseTreeNode(node); - if (!currentNode || currentNode === declaration || currentNode.end <= declaration.pos || currentNode.pos >= declaration.end) { - return false; - } - var blockScope = getEnclosingBlockScopeContainer(declaration); - while (currentNode) { - if (currentNode === blockScope || currentNode === declaration) { - return false; - } - if (isClassElement(currentNode) && currentNode.parent === declaration) { - return true; - } - currentNode = currentNode.parent; - } - return false; - } - function substituteThisKeyword(node) { - if (enabledSubstitutions & 1 /* CapturedThis */ && hierarchyFacts & 16 /* CapturesThis */) { - return setTextRange(factory2.createUniqueName("_this", 16 /* Optimistic */ | 32 /* FileLevel */), node); - } - return node; - } - function getClassMemberPrefix(node, member) { - return isStatic(member) ? factory2.getInternalName(node) : factory2.createPropertyAccessExpression(factory2.getInternalName(node), "prototype"); - } - function hasSynthesizedDefaultSuperCall(constructor, hasExtendsClause) { - if (!constructor || !hasExtendsClause) { - return false; - } - if (some(constructor.parameters)) { - return false; - } - var statement = firstOrUndefined(constructor.body.statements); - if (!statement || !nodeIsSynthesized(statement) || statement.kind !== 244 /* ExpressionStatement */) { - return false; - } - var statementExpression = statement.expression; - if (!nodeIsSynthesized(statementExpression) || statementExpression.kind !== 213 /* CallExpression */) { - return false; - } - var callTarget = statementExpression.expression; - if (!nodeIsSynthesized(callTarget) || callTarget.kind !== 108 /* SuperKeyword */) { - return false; - } - var callArgument = singleOrUndefined(statementExpression.arguments); - if (!callArgument || !nodeIsSynthesized(callArgument) || callArgument.kind !== 230 /* SpreadElement */) { - return false; - } - var expression = callArgument.expression; - return isIdentifier(expression) && expression.escapedText === "arguments"; - } -} -// src/compiler/transformers/es5.ts -function transformES5(context) { - var factory2 = context.factory; - var compilerOptions = context.getCompilerOptions(); - var previousOnEmitNode; - var noSubstitution; - if (compilerOptions.jsx === 1 /* Preserve */ || compilerOptions.jsx === 3 /* ReactNative */) { - previousOnEmitNode = context.onEmitNode; - context.onEmitNode = onEmitNode; - context.enableEmitNotification(286 /* JsxOpeningElement */); - context.enableEmitNotification(287 /* JsxClosingElement */); - context.enableEmitNotification(285 /* JsxSelfClosingElement */); - noSubstitution = []; - } - var previousOnSubstituteNode = context.onSubstituteNode; - context.onSubstituteNode = onSubstituteNode; - context.enableSubstitution(211 /* PropertyAccessExpression */); - context.enableSubstitution(303 /* PropertyAssignment */); - return chainBundle(context, transformSourceFile); - function transformSourceFile(node) { - return node; - } - function onEmitNode(hint, node, emitCallback) { - switch (node.kind) { - case 286 /* JsxOpeningElement */: - case 287 /* JsxClosingElement */: - case 285 /* JsxSelfClosingElement */: - var tagName = node.tagName; - noSubstitution[getOriginalNodeId(tagName)] = true; - break; - } - previousOnEmitNode(hint, node, emitCallback); - } - function onSubstituteNode(hint, node) { - if (node.id && noSubstitution && noSubstitution[node.id]) { - return previousOnSubstituteNode(hint, node); - } - node = previousOnSubstituteNode(hint, node); - if (isPropertyAccessExpression(node)) { - return substitutePropertyAccessExpression(node); - } - else if (isPropertyAssignment(node)) { - return substitutePropertyAssignment(node); - } - return node; - } - function substitutePropertyAccessExpression(node) { - if (isPrivateIdentifier(node.name)) { - return node; - } - var literalName = trySubstituteReservedName(node.name); - if (literalName) { - return setTextRange(factory2.createElementAccessExpression(node.expression, literalName), node); - } - return node; - } - function substitutePropertyAssignment(node) { - var literalName = isIdentifier(node.name) && trySubstituteReservedName(node.name); - if (literalName) { - return factory2.updatePropertyAssignment(node, literalName, node.initializer); - } - return node; - } - function trySubstituteReservedName(name) { - var token = identifierToKeywordKind(name); - if (token !== void 0 && token >= 83 /* FirstReservedWord */ && token <= 118 /* LastReservedWord */) { - return setTextRange(factory2.createStringLiteralFromNode(name), name); - } - return void 0; - } -} -// src/compiler/transformers/generators.ts -function getInstructionName(instruction) { - switch (instruction) { - case 2 /* Return */: - return "return"; - case 3 /* Break */: - return "break"; - case 4 /* Yield */: - return "yield"; - case 5 /* YieldStar */: - return "yield*"; - case 7 /* Endfinally */: - return "endfinally"; - default: - return void 0; - } -} -function transformGenerators(context) { - var factory2 = context.factory, emitHelpers = context.getEmitHelperFactory, resumeLexicalEnvironment = context.resumeLexicalEnvironment, endLexicalEnvironment = context.endLexicalEnvironment, hoistFunctionDeclaration = context.hoistFunctionDeclaration, hoistVariableDeclaration = context.hoistVariableDeclaration; - var compilerOptions = context.getCompilerOptions(); - var languageVersion = getEmitScriptTarget(compilerOptions); - var resolver = context.getEmitResolver(); - var previousOnSubstituteNode = context.onSubstituteNode; - context.onSubstituteNode = onSubstituteNode; - var renamedCatchVariables; - var renamedCatchVariableDeclarations; - var inGeneratorFunctionBody; - var inStatementContainingYield; - var blocks; - var blockOffsets; - var blockActions; - var blockStack; - var labelOffsets; - var labelExpressions; - var nextLabelId = 1; - var operations; - var operationArguments; - var operationLocations; - var state; - var blockIndex = 0; - var labelNumber = 0; - var labelNumbers; - var lastOperationWasAbrupt; - var lastOperationWasCompletion; - var clauses; - var statements; - var exceptionBlockStack; - var currentExceptionBlock; - var withBlockStack; - return chainBundle(context, transformSourceFile); - function transformSourceFile(node) { - if (node.isDeclarationFile || (node.transformFlags & 2048 /* ContainsGenerator */) === 0) { - return node; - } - var visited = visitEachChild(node, visitor, context); - addEmitHelpers(visited, context.readEmitHelpers()); - return visited; - } - function visitor(node) { - var transformFlags = node.transformFlags; - if (inStatementContainingYield) { - return visitJavaScriptInStatementContainingYield(node); - } - else if (inGeneratorFunctionBody) { - return visitJavaScriptInGeneratorFunctionBody(node); - } - else if (isFunctionLikeDeclaration(node) && node.asteriskToken) { - return visitGenerator(node); - } - else if (transformFlags & 2048 /* ContainsGenerator */) { - return visitEachChild(node, visitor, context); - } - else { - return node; - } - } - function visitJavaScriptInStatementContainingYield(node) { - switch (node.kind) { - case 246 /* DoStatement */: - return visitDoStatement(node); - case 247 /* WhileStatement */: - return visitWhileStatement(node); - case 255 /* SwitchStatement */: - return visitSwitchStatement(node); - case 256 /* LabeledStatement */: - return visitLabeledStatement(node); - default: - return visitJavaScriptInGeneratorFunctionBody(node); - } - } - function visitJavaScriptInGeneratorFunctionBody(node) { - switch (node.kind) { - case 262 /* FunctionDeclaration */: - return visitFunctionDeclaration(node); - case 218 /* FunctionExpression */: - return visitFunctionExpression(node); - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - return visitAccessorDeclaration(node); - case 243 /* VariableStatement */: - return visitVariableStatement(node); - case 248 /* ForStatement */: - return visitForStatement(node); - case 249 /* ForInStatement */: - return visitForInStatement(node); - case 252 /* BreakStatement */: - return visitBreakStatement(node); - case 251 /* ContinueStatement */: - return visitContinueStatement(node); - case 253 /* ReturnStatement */: - return visitReturnStatement(node); - default: - if (node.transformFlags & 1048576 /* ContainsYield */) { - return visitJavaScriptContainingYield(node); - } - else if (node.transformFlags & (2048 /* ContainsGenerator */ | 4194304 /* ContainsHoistedDeclarationOrCompletion */)) { - return visitEachChild(node, visitor, context); - } - else { - return node; - } - } - } - function visitJavaScriptContainingYield(node) { - switch (node.kind) { - case 226 /* BinaryExpression */: - return visitBinaryExpression(node); - case 361 /* CommaListExpression */: - return visitCommaListExpression(node); - case 227 /* ConditionalExpression */: - return visitConditionalExpression(node); - case 229 /* YieldExpression */: - return visitYieldExpression(node); - case 209 /* ArrayLiteralExpression */: - return visitArrayLiteralExpression(node); - case 210 /* ObjectLiteralExpression */: - return visitObjectLiteralExpression(node); - case 212 /* ElementAccessExpression */: - return visitElementAccessExpression(node); - case 213 /* CallExpression */: - return visitCallExpression(node); - case 214 /* NewExpression */: - return visitNewExpression(node); - default: - return visitEachChild(node, visitor, context); - } - } - function visitGenerator(node) { - switch (node.kind) { - case 262 /* FunctionDeclaration */: - return visitFunctionDeclaration(node); - case 218 /* FunctionExpression */: - return visitFunctionExpression(node); - default: - return Debug.failBadSyntaxKind(node); - } - } - function visitFunctionDeclaration(node) { - if (node.asteriskToken) { - node = setOriginalNode(setTextRange(factory2.createFunctionDeclaration(node.modifiers, - /*asteriskToken*/ - void 0, node.name, - /*typeParameters*/ - void 0, visitParameterList(node.parameters, visitor, context), - /*type*/ - void 0, transformGeneratorFunctionBody(node.body)), - /*location*/ - node), node); - } - else { - var savedInGeneratorFunctionBody = inGeneratorFunctionBody; - var savedInStatementContainingYield = inStatementContainingYield; - inGeneratorFunctionBody = false; - inStatementContainingYield = false; - node = visitEachChild(node, visitor, context); - inGeneratorFunctionBody = savedInGeneratorFunctionBody; - inStatementContainingYield = savedInStatementContainingYield; - } - if (inGeneratorFunctionBody) { - hoistFunctionDeclaration(node); - return void 0; - } - else { - return node; - } - } - function visitFunctionExpression(node) { - if (node.asteriskToken) { - node = setOriginalNode(setTextRange(factory2.createFunctionExpression( - /*modifiers*/ - void 0, - /*asteriskToken*/ - void 0, node.name, - /*typeParameters*/ - void 0, visitParameterList(node.parameters, visitor, context), - /*type*/ - void 0, transformGeneratorFunctionBody(node.body)), - /*location*/ - node), node); - } - else { - var savedInGeneratorFunctionBody = inGeneratorFunctionBody; - var savedInStatementContainingYield = inStatementContainingYield; - inGeneratorFunctionBody = false; - inStatementContainingYield = false; - node = visitEachChild(node, visitor, context); - inGeneratorFunctionBody = savedInGeneratorFunctionBody; - inStatementContainingYield = savedInStatementContainingYield; - } - return node; - } - function visitAccessorDeclaration(node) { - var savedInGeneratorFunctionBody = inGeneratorFunctionBody; - var savedInStatementContainingYield = inStatementContainingYield; - inGeneratorFunctionBody = false; - inStatementContainingYield = false; - node = visitEachChild(node, visitor, context); - inGeneratorFunctionBody = savedInGeneratorFunctionBody; - inStatementContainingYield = savedInStatementContainingYield; - return node; - } - function transformGeneratorFunctionBody(body) { - var statements2 = []; - var savedInGeneratorFunctionBody = inGeneratorFunctionBody; - var savedInStatementContainingYield = inStatementContainingYield; - var savedBlocks = blocks; - var savedBlockOffsets = blockOffsets; - var savedBlockActions = blockActions; - var savedBlockStack = blockStack; - var savedLabelOffsets = labelOffsets; - var savedLabelExpressions = labelExpressions; - var savedNextLabelId = nextLabelId; - var savedOperations = operations; - var savedOperationArguments = operationArguments; - var savedOperationLocations = operationLocations; - var savedState = state; - inGeneratorFunctionBody = true; - inStatementContainingYield = false; - blocks = void 0; - blockOffsets = void 0; - blockActions = void 0; - blockStack = void 0; - labelOffsets = void 0; - labelExpressions = void 0; - nextLabelId = 1; - operations = void 0; - operationArguments = void 0; - operationLocations = void 0; - state = factory2.createTempVariable( - /*recordTempVariable*/ - void 0); - resumeLexicalEnvironment(); - var statementOffset = factory2.copyPrologue(body.statements, statements2, - /*ensureUseStrict*/ - false, visitor); - transformAndEmitStatements(body.statements, statementOffset); - var buildResult = build2(); - insertStatementsAfterStandardPrologue(statements2, endLexicalEnvironment()); - statements2.push(factory2.createReturnStatement(buildResult)); - inGeneratorFunctionBody = savedInGeneratorFunctionBody; - inStatementContainingYield = savedInStatementContainingYield; - blocks = savedBlocks; - blockOffsets = savedBlockOffsets; - blockActions = savedBlockActions; - blockStack = savedBlockStack; - labelOffsets = savedLabelOffsets; - labelExpressions = savedLabelExpressions; - nextLabelId = savedNextLabelId; - operations = savedOperations; - operationArguments = savedOperationArguments; - operationLocations = savedOperationLocations; - state = savedState; - return setTextRange(factory2.createBlock(statements2, body.multiLine), body); - } - function visitVariableStatement(node) { - var e_507, _t; - if (node.transformFlags & 1048576 /* ContainsYield */) { - transformAndEmitVariableDeclarationList(node.declarationList); - return void 0; - } - else { - if (getEmitFlags(node) & 2097152 /* CustomPrologue */) { - return node; - } - try { - for (var _u = __values(node.declarationList.declarations), _v = _u.next(); !_v.done; _v = _u.next()) { - var variable = _v.value; - hoistVariableDeclaration(variable.name); - } - } - catch (e_507_1) { e_507 = { error: e_507_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_507) throw e_507.error; } - } - var variables = getInitializedVariables(node.declarationList); - if (variables.length === 0) { - return void 0; - } - return setSourceMapRange(factory2.createExpressionStatement(factory2.inlineExpressions(map(variables, transformInitializedVariable))), node); - } - } - function visitBinaryExpression(node) { - var assoc = getExpressionAssociativity(node); - switch (assoc) { - case 0 /* Left */: - return visitLeftAssociativeBinaryExpression(node); - case 1 /* Right */: - return visitRightAssociativeBinaryExpression(node); - default: - return Debug.assertNever(assoc); - } - } - function visitRightAssociativeBinaryExpression(node) { - var left = node.left, right = node.right; - if (containsYield(right)) { - var target = void 0; - switch (left.kind) { - case 211 /* PropertyAccessExpression */: - target = factory2.updatePropertyAccessExpression(left, cacheExpression(Debug.checkDefined(visitNode(left.expression, visitor, isLeftHandSideExpression))), left.name); - break; - case 212 /* ElementAccessExpression */: - target = factory2.updateElementAccessExpression(left, cacheExpression(Debug.checkDefined(visitNode(left.expression, visitor, isLeftHandSideExpression))), cacheExpression(Debug.checkDefined(visitNode(left.argumentExpression, visitor, isExpression)))); - break; - default: - target = Debug.checkDefined(visitNode(left, visitor, isExpression)); - break; - } - var operator = node.operatorToken.kind; - if (isCompoundAssignment(operator)) { - return setTextRange(factory2.createAssignment(target, setTextRange(factory2.createBinaryExpression(cacheExpression(target), getNonAssignmentOperatorForCompoundAssignment(operator), Debug.checkDefined(visitNode(right, visitor, isExpression))), node)), node); - } - else { - return factory2.updateBinaryExpression(node, target, node.operatorToken, Debug.checkDefined(visitNode(right, visitor, isExpression))); - } - } - return visitEachChild(node, visitor, context); - } - function visitLeftAssociativeBinaryExpression(node) { - if (containsYield(node.right)) { - if (isLogicalOperator(node.operatorToken.kind)) { - return visitLogicalBinaryExpression(node); - } - else if (node.operatorToken.kind === 28 /* CommaToken */) { - return visitCommaExpression(node); - } - return factory2.updateBinaryExpression(node, cacheExpression(Debug.checkDefined(visitNode(node.left, visitor, isExpression))), node.operatorToken, Debug.checkDefined(visitNode(node.right, visitor, isExpression))); - } - return visitEachChild(node, visitor, context); - } - function visitCommaExpression(node) { - var pendingExpressions = []; - visit(node.left); - visit(node.right); - return factory2.inlineExpressions(pendingExpressions); - function visit(node2) { - if (isBinaryExpression(node2) && node2.operatorToken.kind === 28 /* CommaToken */) { - visit(node2.left); - visit(node2.right); - } - else { - if (containsYield(node2) && pendingExpressions.length > 0) { - emitWorker(1 /* Statement */, [factory2.createExpressionStatement(factory2.inlineExpressions(pendingExpressions))]); - pendingExpressions = []; - } - pendingExpressions.push(Debug.checkDefined(visitNode(node2, visitor, isExpression))); - } - } - } - function visitCommaListExpression(node) { - var e_508, _t; - var pendingExpressions = []; - try { - for (var _u = __values(node.elements), _v = _u.next(); !_v.done; _v = _u.next()) { - var elem = _v.value; - if (isBinaryExpression(elem) && elem.operatorToken.kind === 28 /* CommaToken */) { - pendingExpressions.push(visitCommaExpression(elem)); - } - else { - if (containsYield(elem) && pendingExpressions.length > 0) { - emitWorker(1 /* Statement */, [factory2.createExpressionStatement(factory2.inlineExpressions(pendingExpressions))]); - pendingExpressions = []; - } - pendingExpressions.push(Debug.checkDefined(visitNode(elem, visitor, isExpression))); - } - } - } - catch (e_508_1) { e_508 = { error: e_508_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_508) throw e_508.error; } - } - return factory2.inlineExpressions(pendingExpressions); - } - function visitLogicalBinaryExpression(node) { - var resultLabel = defineLabel(); - var resultLocal = declareLocal(); - emitAssignment(resultLocal, Debug.checkDefined(visitNode(node.left, visitor, isExpression)), - /*location*/ - node.left); - if (node.operatorToken.kind === 56 /* AmpersandAmpersandToken */) { - emitBreakWhenFalse(resultLabel, resultLocal, - /*location*/ - node.left); - } - else { - emitBreakWhenTrue(resultLabel, resultLocal, - /*location*/ - node.left); - } - emitAssignment(resultLocal, Debug.checkDefined(visitNode(node.right, visitor, isExpression)), - /*location*/ - node.right); - markLabel(resultLabel); - return resultLocal; - } - function visitConditionalExpression(node) { - if (containsYield(node.whenTrue) || containsYield(node.whenFalse)) { - var whenFalseLabel = defineLabel(); - var resultLabel = defineLabel(); - var resultLocal = declareLocal(); - emitBreakWhenFalse(whenFalseLabel, Debug.checkDefined(visitNode(node.condition, visitor, isExpression)), - /*location*/ - node.condition); - emitAssignment(resultLocal, Debug.checkDefined(visitNode(node.whenTrue, visitor, isExpression)), - /*location*/ - node.whenTrue); - emitBreak(resultLabel); - markLabel(whenFalseLabel); - emitAssignment(resultLocal, Debug.checkDefined(visitNode(node.whenFalse, visitor, isExpression)), - /*location*/ - node.whenFalse); - markLabel(resultLabel); - return resultLocal; - } - return visitEachChild(node, visitor, context); - } - function visitYieldExpression(node) { - var resumeLabel = defineLabel(); - var expression = visitNode(node.expression, visitor, isExpression); - if (node.asteriskToken) { - var iterator = (getEmitFlags(node.expression) & 8388608 /* Iterator */) === 0 ? setTextRange(emitHelpers().createValuesHelper(expression), node) : expression; - emitYieldStar(iterator, - /*location*/ - node); - } - else { - emitYield(expression, - /*location*/ - node); - } - markLabel(resumeLabel); - return createGeneratorResume( - /*location*/ - node); - } - function visitArrayLiteralExpression(node) { - return visitElements(node.elements, - /*leadingElement*/ - void 0, - /*location*/ - void 0, node.multiLine); - } - function visitElements(elements, leadingElement, location, multiLine) { - var numInitialElements = countInitialNodesWithoutYield(elements); - var temp; - if (numInitialElements > 0) { - temp = declareLocal(); - var initialElements = visitNodes2(elements, visitor, isExpression, 0, numInitialElements); - emitAssignment(temp, factory2.createArrayLiteralExpression(leadingElement ? __spreadArray([leadingElement], __read(initialElements), false) : initialElements)); - leadingElement = void 0; - } - var expressions = reduceLeft(elements, reduceElement, [], numInitialElements); - return temp ? factory2.createArrayConcatCall(temp, [factory2.createArrayLiteralExpression(expressions, multiLine)]) : setTextRange(factory2.createArrayLiteralExpression(leadingElement ? __spreadArray([leadingElement], __read(expressions), false) : expressions, multiLine), location); - function reduceElement(expressions2, element) { - if (containsYield(element) && expressions2.length > 0) { - var hasAssignedTemp = temp !== void 0; - if (!temp) { - temp = declareLocal(); - } - emitAssignment(temp, hasAssignedTemp ? factory2.createArrayConcatCall(temp, [factory2.createArrayLiteralExpression(expressions2, multiLine)]) : factory2.createArrayLiteralExpression(leadingElement ? __spreadArray([leadingElement], __read(expressions2), false) : expressions2, multiLine)); - leadingElement = void 0; - expressions2 = []; - } - expressions2.push(Debug.checkDefined(visitNode(element, visitor, isExpression))); - return expressions2; - } - } - function visitObjectLiteralExpression(node) { - var properties = node.properties; - var multiLine = node.multiLine; - var numInitialProperties = countInitialNodesWithoutYield(properties); - var temp = declareLocal(); - emitAssignment(temp, factory2.createObjectLiteralExpression(visitNodes2(properties, visitor, isObjectLiteralElementLike, 0, numInitialProperties), multiLine)); - var expressions = reduceLeft(properties, reduceProperty, [], numInitialProperties); - expressions.push(multiLine ? startOnNewLine(setParent(setTextRange(factory2.cloneNode(temp), temp), temp.parent)) : temp); - return factory2.inlineExpressions(expressions); - function reduceProperty(expressions2, property) { - if (containsYield(property) && expressions2.length > 0) { - emitStatement(factory2.createExpressionStatement(factory2.inlineExpressions(expressions2))); - expressions2 = []; - } - var expression = createExpressionForObjectLiteralElementLike(factory2, node, property, temp); - var visited = visitNode(expression, visitor, isExpression); - if (visited) { - if (multiLine) { - startOnNewLine(visited); - } - expressions2.push(visited); - } - return expressions2; - } - } - function visitElementAccessExpression(node) { - if (containsYield(node.argumentExpression)) { - return factory2.updateElementAccessExpression(node, cacheExpression(Debug.checkDefined(visitNode(node.expression, visitor, isLeftHandSideExpression))), Debug.checkDefined(visitNode(node.argumentExpression, visitor, isExpression))); - } - return visitEachChild(node, visitor, context); - } - function visitCallExpression(node) { - if (!isImportCall(node) && forEach(node.arguments, containsYield)) { - var _t = factory2.createCallBinding(node.expression, hoistVariableDeclaration, languageVersion, - /*cacheIdentifiers*/ - true), target = _t.target, thisArg = _t.thisArg; - return setOriginalNode(setTextRange(factory2.createFunctionApplyCall(cacheExpression(Debug.checkDefined(visitNode(target, visitor, isLeftHandSideExpression))), thisArg, visitElements(node.arguments)), node), node); - } - return visitEachChild(node, visitor, context); - } - function visitNewExpression(node) { - if (forEach(node.arguments, containsYield)) { - var _t = factory2.createCallBinding(factory2.createPropertyAccessExpression(node.expression, "bind"), hoistVariableDeclaration), target = _t.target, thisArg = _t.thisArg; - return setOriginalNode(setTextRange(factory2.createNewExpression(factory2.createFunctionApplyCall(cacheExpression(Debug.checkDefined(visitNode(target, visitor, isExpression))), thisArg, visitElements(node.arguments, - /*leadingElement*/ - factory2.createVoidZero())), - /*typeArguments*/ - void 0, []), node), node); - } - return visitEachChild(node, visitor, context); - } - function transformAndEmitStatements(statements2, start2) { - if (start2 === void 0) { start2 = 0; } - var numStatements = statements2.length; - for (var i = start2; i < numStatements; i++) { - transformAndEmitStatement(statements2[i]); - } - } - function transformAndEmitEmbeddedStatement(node) { - if (isBlock(node)) { - transformAndEmitStatements(node.statements); - } - else { - transformAndEmitStatement(node); - } - } - function transformAndEmitStatement(node) { - var savedInStatementContainingYield = inStatementContainingYield; - if (!inStatementContainingYield) { - inStatementContainingYield = containsYield(node); - } - transformAndEmitStatementWorker(node); - inStatementContainingYield = savedInStatementContainingYield; - } - function transformAndEmitStatementWorker(node) { - switch (node.kind) { - case 241 /* Block */: - return transformAndEmitBlock(node); - case 244 /* ExpressionStatement */: - return transformAndEmitExpressionStatement(node); - case 245 /* IfStatement */: - return transformAndEmitIfStatement(node); - case 246 /* DoStatement */: - return transformAndEmitDoStatement(node); - case 247 /* WhileStatement */: - return transformAndEmitWhileStatement(node); - case 248 /* ForStatement */: - return transformAndEmitForStatement(node); - case 249 /* ForInStatement */: - return transformAndEmitForInStatement(node); - case 251 /* ContinueStatement */: - return transformAndEmitContinueStatement(node); - case 252 /* BreakStatement */: - return transformAndEmitBreakStatement(node); - case 253 /* ReturnStatement */: - return transformAndEmitReturnStatement(node); - case 254 /* WithStatement */: - return transformAndEmitWithStatement(node); - case 255 /* SwitchStatement */: - return transformAndEmitSwitchStatement(node); - case 256 /* LabeledStatement */: - return transformAndEmitLabeledStatement(node); - case 257 /* ThrowStatement */: - return transformAndEmitThrowStatement(node); - case 258 /* TryStatement */: - return transformAndEmitTryStatement(node); - default: - return emitStatement(visitNode(node, visitor, isStatement)); - } - } - function transformAndEmitBlock(node) { - if (containsYield(node)) { - transformAndEmitStatements(node.statements); - } - else { - emitStatement(visitNode(node, visitor, isStatement)); - } - } - function transformAndEmitExpressionStatement(node) { - emitStatement(visitNode(node, visitor, isStatement)); - } - function transformAndEmitVariableDeclarationList(node) { - var e_509, _t; - try { - for (var _u = __values(node.declarations), _v = _u.next(); !_v.done; _v = _u.next()) { - var variable = _v.value; - var name_89 = factory2.cloneNode(variable.name); - setCommentRange(name_89, variable.name); - hoistVariableDeclaration(name_89); - } - } - catch (e_509_1) { e_509 = { error: e_509_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_509) throw e_509.error; } - } - var variables = getInitializedVariables(node); - var numVariables = variables.length; - var variablesWritten = 0; - var pendingExpressions = []; - while (variablesWritten < numVariables) { - for (var i = variablesWritten; i < numVariables; i++) { - var variable = variables[i]; - if (containsYield(variable.initializer) && pendingExpressions.length > 0) { - break; - } - pendingExpressions.push(transformInitializedVariable(variable)); - } - if (pendingExpressions.length) { - emitStatement(factory2.createExpressionStatement(factory2.inlineExpressions(pendingExpressions))); - variablesWritten += pendingExpressions.length; - pendingExpressions = []; - } - } - return void 0; - } - function transformInitializedVariable(node) { - return setSourceMapRange(factory2.createAssignment(setSourceMapRange(factory2.cloneNode(node.name), node.name), Debug.checkDefined(visitNode(node.initializer, visitor, isExpression))), node); - } - function transformAndEmitIfStatement(node) { - if (containsYield(node)) { - if (containsYield(node.thenStatement) || containsYield(node.elseStatement)) { - var endLabel = defineLabel(); - var elseLabel = node.elseStatement ? defineLabel() : void 0; - emitBreakWhenFalse(node.elseStatement ? elseLabel : endLabel, Debug.checkDefined(visitNode(node.expression, visitor, isExpression)), - /*location*/ - node.expression); - transformAndEmitEmbeddedStatement(node.thenStatement); - if (node.elseStatement) { - emitBreak(endLabel); - markLabel(elseLabel); - transformAndEmitEmbeddedStatement(node.elseStatement); - } - markLabel(endLabel); - } - else { - emitStatement(visitNode(node, visitor, isStatement)); - } - } - else { - emitStatement(visitNode(node, visitor, isStatement)); - } - } - function transformAndEmitDoStatement(node) { - if (containsYield(node)) { - var conditionLabel = defineLabel(); - var loopLabel = defineLabel(); - beginLoopBlock( - /*continueLabel*/ - conditionLabel); - markLabel(loopLabel); - transformAndEmitEmbeddedStatement(node.statement); - markLabel(conditionLabel); - emitBreakWhenTrue(loopLabel, Debug.checkDefined(visitNode(node.expression, visitor, isExpression))); - endLoopBlock(); - } - else { - emitStatement(visitNode(node, visitor, isStatement)); - } - } - function visitDoStatement(node) { - if (inStatementContainingYield) { - beginScriptLoopBlock(); - node = visitEachChild(node, visitor, context); - endLoopBlock(); - return node; - } - else { - return visitEachChild(node, visitor, context); - } - } - function transformAndEmitWhileStatement(node) { - if (containsYield(node)) { - var loopLabel = defineLabel(); - var endLabel = beginLoopBlock(loopLabel); - markLabel(loopLabel); - emitBreakWhenFalse(endLabel, Debug.checkDefined(visitNode(node.expression, visitor, isExpression))); - transformAndEmitEmbeddedStatement(node.statement); - emitBreak(loopLabel); - endLoopBlock(); - } - else { - emitStatement(visitNode(node, visitor, isStatement)); - } - } - function visitWhileStatement(node) { - if (inStatementContainingYield) { - beginScriptLoopBlock(); - node = visitEachChild(node, visitor, context); - endLoopBlock(); - return node; - } - else { - return visitEachChild(node, visitor, context); - } - } - function transformAndEmitForStatement(node) { - if (containsYield(node)) { - var conditionLabel = defineLabel(); - var incrementLabel = defineLabel(); - var endLabel = beginLoopBlock(incrementLabel); - if (node.initializer) { - var initializer = node.initializer; - if (isVariableDeclarationList(initializer)) { - transformAndEmitVariableDeclarationList(initializer); - } - else { - emitStatement(setTextRange(factory2.createExpressionStatement(Debug.checkDefined(visitNode(initializer, visitor, isExpression))), initializer)); - } - } - markLabel(conditionLabel); - if (node.condition) { - emitBreakWhenFalse(endLabel, Debug.checkDefined(visitNode(node.condition, visitor, isExpression))); - } - transformAndEmitEmbeddedStatement(node.statement); - markLabel(incrementLabel); - if (node.incrementor) { - emitStatement(setTextRange(factory2.createExpressionStatement(Debug.checkDefined(visitNode(node.incrementor, visitor, isExpression))), node.incrementor)); - } - emitBreak(conditionLabel); - endLoopBlock(); - } - else { - emitStatement(visitNode(node, visitor, isStatement)); - } - } - function visitForStatement(node) { - var e_510, _t; - if (inStatementContainingYield) { - beginScriptLoopBlock(); - } - var initializer = node.initializer; - if (initializer && isVariableDeclarationList(initializer)) { - try { - for (var _u = __values(initializer.declarations), _v = _u.next(); !_v.done; _v = _u.next()) { - var variable = _v.value; - hoistVariableDeclaration(variable.name); - } - } - catch (e_510_1) { e_510 = { error: e_510_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_510) throw e_510.error; } - } - var variables = getInitializedVariables(initializer); - node = factory2.updateForStatement(node, variables.length > 0 ? factory2.inlineExpressions(map(variables, transformInitializedVariable)) : void 0, visitNode(node.condition, visitor, isExpression), visitNode(node.incrementor, visitor, isExpression), visitIterationBody(node.statement, visitor, context)); - } - else { - node = visitEachChild(node, visitor, context); - } - if (inStatementContainingYield) { - endLoopBlock(); - } - return node; - } - function transformAndEmitForInStatement(node) { - var e_511, _t; - if (containsYield(node)) { - var obj = declareLocal(); - var keysArray = declareLocal(); - var key = declareLocal(); - var keysIndex = factory2.createLoopVariable(); - var initializer = node.initializer; - hoistVariableDeclaration(keysIndex); - emitAssignment(obj, Debug.checkDefined(visitNode(node.expression, visitor, isExpression))); - emitAssignment(keysArray, factory2.createArrayLiteralExpression()); - emitStatement(factory2.createForInStatement(key, obj, factory2.createExpressionStatement(factory2.createCallExpression(factory2.createPropertyAccessExpression(keysArray, "push"), - /*typeArguments*/ - void 0, [key])))); - emitAssignment(keysIndex, factory2.createNumericLiteral(0)); - var conditionLabel = defineLabel(); - var incrementLabel = defineLabel(); - var endLoopLabel = beginLoopBlock(incrementLabel); - markLabel(conditionLabel); - emitBreakWhenFalse(endLoopLabel, factory2.createLessThan(keysIndex, factory2.createPropertyAccessExpression(keysArray, "length"))); - emitAssignment(key, factory2.createElementAccessExpression(keysArray, keysIndex)); - emitBreakWhenFalse(incrementLabel, factory2.createBinaryExpression(key, 103 /* InKeyword */, obj)); - var variable = void 0; - if (isVariableDeclarationList(initializer)) { - try { - for (var _u = __values(initializer.declarations), _v = _u.next(); !_v.done; _v = _u.next()) { - var variable2 = _v.value; - hoistVariableDeclaration(variable2.name); - } - } - catch (e_511_1) { e_511 = { error: e_511_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_511) throw e_511.error; } - } - variable = factory2.cloneNode(initializer.declarations[0].name); - } - else { - variable = Debug.checkDefined(visitNode(initializer, visitor, isExpression)); - Debug.assert(isLeftHandSideExpression(variable)); - } - emitAssignment(variable, key); - transformAndEmitEmbeddedStatement(node.statement); - markLabel(incrementLabel); - emitStatement(factory2.createExpressionStatement(factory2.createPostfixIncrement(keysIndex))); - emitBreak(conditionLabel); - endLoopBlock(); - } - else { - emitStatement(visitNode(node, visitor, isStatement)); - } - } - function visitForInStatement(node) { - var e_512, _t; - if (inStatementContainingYield) { - beginScriptLoopBlock(); - } - var initializer = node.initializer; - if (isVariableDeclarationList(initializer)) { - try { - for (var _u = __values(initializer.declarations), _v = _u.next(); !_v.done; _v = _u.next()) { - var variable = _v.value; - hoistVariableDeclaration(variable.name); - } - } - catch (e_512_1) { e_512 = { error: e_512_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_512) throw e_512.error; } - } - node = factory2.updateForInStatement(node, initializer.declarations[0].name, Debug.checkDefined(visitNode(node.expression, visitor, isExpression)), Debug.checkDefined(visitNode(node.statement, visitor, isStatement, factory2.liftToBlock))); - } - else { - node = visitEachChild(node, visitor, context); - } - if (inStatementContainingYield) { - endLoopBlock(); - } - return node; - } - function transformAndEmitContinueStatement(node) { - var label = findContinueTarget(node.label ? idText(node.label) : void 0); - if (label > 0) { - emitBreak(label, - /*location*/ - node); - } - else { - emitStatement(node); - } - } - function visitContinueStatement(node) { - if (inStatementContainingYield) { - var label = findContinueTarget(node.label && idText(node.label)); - if (label > 0) { - return createInlineBreak(label, - /*location*/ - node); - } - } - return visitEachChild(node, visitor, context); - } - function transformAndEmitBreakStatement(node) { - var label = findBreakTarget(node.label ? idText(node.label) : void 0); - if (label > 0) { - emitBreak(label, - /*location*/ - node); - } - else { - emitStatement(node); - } - } - function visitBreakStatement(node) { - if (inStatementContainingYield) { - var label = findBreakTarget(node.label && idText(node.label)); - if (label > 0) { - return createInlineBreak(label, - /*location*/ - node); - } - } - return visitEachChild(node, visitor, context); - } - function transformAndEmitReturnStatement(node) { - emitReturn(visitNode(node.expression, visitor, isExpression), - /*location*/ - node); - } - function visitReturnStatement(node) { - return createInlineReturn(visitNode(node.expression, visitor, isExpression), - /*location*/ - node); - } - function transformAndEmitWithStatement(node) { - if (containsYield(node)) { - beginWithBlock(cacheExpression(Debug.checkDefined(visitNode(node.expression, visitor, isExpression)))); - transformAndEmitEmbeddedStatement(node.statement); - endWithBlock(); - } - else { - emitStatement(visitNode(node, visitor, isStatement)); - } - } - function transformAndEmitSwitchStatement(node) { - if (containsYield(node.caseBlock)) { - var caseBlock = node.caseBlock; - var numClauses = caseBlock.clauses.length; - var endLabel = beginSwitchBlock(); - var expression = cacheExpression(Debug.checkDefined(visitNode(node.expression, visitor, isExpression))); - var clauseLabels = []; - var defaultClauseIndex = -1; - for (var i = 0; i < numClauses; i++) { - var clause = caseBlock.clauses[i]; - clauseLabels.push(defineLabel()); - if (clause.kind === 297 /* DefaultClause */ && defaultClauseIndex === -1) { - defaultClauseIndex = i; - } - } - var clausesWritten = 0; - var pendingClauses = []; - while (clausesWritten < numClauses) { - var defaultClausesSkipped = 0; - for (var i = clausesWritten; i < numClauses; i++) { - var clause = caseBlock.clauses[i]; - if (clause.kind === 296 /* CaseClause */) { - if (containsYield(clause.expression) && pendingClauses.length > 0) { - break; - } - pendingClauses.push(factory2.createCaseClause(Debug.checkDefined(visitNode(clause.expression, visitor, isExpression)), [ - createInlineBreak(clauseLabels[i], - /*location*/ - clause.expression) - ])); - } - else { - defaultClausesSkipped++; - } - } - if (pendingClauses.length) { - emitStatement(factory2.createSwitchStatement(expression, factory2.createCaseBlock(pendingClauses))); - clausesWritten += pendingClauses.length; - pendingClauses = []; - } - if (defaultClausesSkipped > 0) { - clausesWritten += defaultClausesSkipped; - defaultClausesSkipped = 0; - } - } - if (defaultClauseIndex >= 0) { - emitBreak(clauseLabels[defaultClauseIndex]); - } - else { - emitBreak(endLabel); - } - for (var i = 0; i < numClauses; i++) { - markLabel(clauseLabels[i]); - transformAndEmitStatements(caseBlock.clauses[i].statements); - } - endSwitchBlock(); - } - else { - emitStatement(visitNode(node, visitor, isStatement)); - } - } - function visitSwitchStatement(node) { - if (inStatementContainingYield) { - beginScriptSwitchBlock(); - } - node = visitEachChild(node, visitor, context); - if (inStatementContainingYield) { - endSwitchBlock(); - } - return node; - } - function transformAndEmitLabeledStatement(node) { - if (containsYield(node)) { - beginLabeledBlock(idText(node.label)); - transformAndEmitEmbeddedStatement(node.statement); - endLabeledBlock(); - } - else { - emitStatement(visitNode(node, visitor, isStatement)); - } - } - function visitLabeledStatement(node) { - if (inStatementContainingYield) { - beginScriptLabeledBlock(idText(node.label)); - } - node = visitEachChild(node, visitor, context); - if (inStatementContainingYield) { - endLabeledBlock(); - } - return node; - } - function transformAndEmitThrowStatement(node) { - var _t; - emitThrow(Debug.checkDefined(visitNode((_t = node.expression) !== null && _t !== void 0 ? _t : factory2.createVoidZero(), visitor, isExpression)), - /*location*/ - node); - } - function transformAndEmitTryStatement(node) { - if (containsYield(node)) { - beginExceptionBlock(); - transformAndEmitEmbeddedStatement(node.tryBlock); - if (node.catchClause) { - beginCatchBlock(node.catchClause.variableDeclaration); - transformAndEmitEmbeddedStatement(node.catchClause.block); - } - if (node.finallyBlock) { - beginFinallyBlock(); - transformAndEmitEmbeddedStatement(node.finallyBlock); - } - endExceptionBlock(); - } - else { - emitStatement(visitEachChild(node, visitor, context)); - } - } - function containsYield(node) { - return !!node && (node.transformFlags & 1048576 /* ContainsYield */) !== 0; - } - function countInitialNodesWithoutYield(nodes) { - var numNodes = nodes.length; - for (var i = 0; i < numNodes; i++) { - if (containsYield(nodes[i])) { - return i; - } - } - return -1; - } - function onSubstituteNode(hint, node) { - node = previousOnSubstituteNode(hint, node); - if (hint === 1 /* Expression */) { - return substituteExpression(node); - } - return node; - } - function substituteExpression(node) { - if (isIdentifier(node)) { - return substituteExpressionIdentifier(node); - } - return node; - } - function substituteExpressionIdentifier(node) { - if (!isGeneratedIdentifier(node) && renamedCatchVariables && renamedCatchVariables.has(idText(node))) { - var original = getOriginalNode(node); - if (isIdentifier(original) && original.parent) { - var declaration = resolver.getReferencedValueDeclaration(original); - if (declaration) { - var name_90 = renamedCatchVariableDeclarations[getOriginalNodeId(declaration)]; - if (name_90) { - var clone2 = setParent(setTextRange(factory2.cloneNode(name_90), name_90), name_90.parent); - setSourceMapRange(clone2, node); - setCommentRange(clone2, node); - return clone2; - } - } - } - } - return node; - } - function cacheExpression(node) { - if (isGeneratedIdentifier(node) || getEmitFlags(node) & 8192 /* HelperName */) { - return node; - } - var temp = factory2.createTempVariable(hoistVariableDeclaration); - emitAssignment(temp, node, - /*location*/ - node); - return temp; - } - function declareLocal(name) { - var temp = name ? factory2.createUniqueName(name) : factory2.createTempVariable( - /*recordTempVariable*/ - void 0); - hoistVariableDeclaration(temp); - return temp; - } - function defineLabel() { - if (!labelOffsets) { - labelOffsets = []; - } - var label = nextLabelId; - nextLabelId++; - labelOffsets[label] = -1; - return label; - } - function markLabel(label) { - Debug.assert(labelOffsets !== void 0, "No labels were defined."); - labelOffsets[label] = operations ? operations.length : 0; - } - function beginBlock(block) { - if (!blocks) { - blocks = []; - blockActions = []; - blockOffsets = []; - blockStack = []; - } - var index = blockActions.length; - blockActions[index] = 0 /* Open */; - blockOffsets[index] = operations ? operations.length : 0; - blocks[index] = block; - blockStack.push(block); - return index; - } - function endBlock() { - var block = peekBlock(); - if (block === void 0) - return Debug.fail("beginBlock was never called."); - var index = blockActions.length; - blockActions[index] = 1 /* Close */; - blockOffsets[index] = operations ? operations.length : 0; - blocks[index] = block; - blockStack.pop(); - return block; - } - function peekBlock() { - return lastOrUndefined(blockStack); - } - function peekBlockKind() { - var block = peekBlock(); - return block && block.kind; - } - function beginWithBlock(expression) { - var startLabel = defineLabel(); - var endLabel = defineLabel(); - markLabel(startLabel); - beginBlock({ - kind: 1 /* With */, - expression: expression, - startLabel: startLabel, - endLabel: endLabel - }); - } - function endWithBlock() { - Debug.assert(peekBlockKind() === 1 /* With */); - var block = endBlock(); - markLabel(block.endLabel); - } - function beginExceptionBlock() { - var startLabel = defineLabel(); - var endLabel = defineLabel(); - markLabel(startLabel); - beginBlock({ - kind: 0 /* Exception */, - state: 0 /* Try */, - startLabel: startLabel, - endLabel: endLabel - }); - emitNop(); - return endLabel; - } - function beginCatchBlock(variable) { - Debug.assert(peekBlockKind() === 0 /* Exception */); - var name; - if (isGeneratedIdentifier(variable.name)) { - name = variable.name; - hoistVariableDeclaration(variable.name); - } - else { - var text = idText(variable.name); - name = declareLocal(text); - if (!renamedCatchVariables) { - renamedCatchVariables = /* @__PURE__ */ new Map(); - renamedCatchVariableDeclarations = []; - context.enableSubstitution(80 /* Identifier */); - } - renamedCatchVariables.set(text, true); - renamedCatchVariableDeclarations[getOriginalNodeId(variable)] = name; - } - var exception = peekBlock(); - Debug.assert(exception.state < 1 /* Catch */); - var endLabel = exception.endLabel; - emitBreak(endLabel); - var catchLabel = defineLabel(); - markLabel(catchLabel); - exception.state = 1 /* Catch */; - exception.catchVariable = name; - exception.catchLabel = catchLabel; - emitAssignment(name, factory2.createCallExpression(factory2.createPropertyAccessExpression(state, "sent"), - /*typeArguments*/ - void 0, [])); - emitNop(); - } - function beginFinallyBlock() { - Debug.assert(peekBlockKind() === 0 /* Exception */); - var exception = peekBlock(); - Debug.assert(exception.state < 2 /* Finally */); - var endLabel = exception.endLabel; - emitBreak(endLabel); - var finallyLabel = defineLabel(); - markLabel(finallyLabel); - exception.state = 2 /* Finally */; - exception.finallyLabel = finallyLabel; - } - function endExceptionBlock() { - Debug.assert(peekBlockKind() === 0 /* Exception */); - var exception = endBlock(); - var state2 = exception.state; - if (state2 < 2 /* Finally */) { - emitBreak(exception.endLabel); - } - else { - emitEndfinally(); - } - markLabel(exception.endLabel); - emitNop(); - exception.state = 3 /* Done */; - } - function beginScriptLoopBlock() { - beginBlock({ - kind: 3 /* Loop */, - isScript: true, - breakLabel: -1, - continueLabel: -1 - }); - } - function beginLoopBlock(continueLabel) { - var breakLabel = defineLabel(); - beginBlock({ - kind: 3 /* Loop */, - isScript: false, - breakLabel: breakLabel, - continueLabel: continueLabel - }); - return breakLabel; - } - function endLoopBlock() { - Debug.assert(peekBlockKind() === 3 /* Loop */); - var block = endBlock(); - var breakLabel = block.breakLabel; - if (!block.isScript) { - markLabel(breakLabel); - } - } - function beginScriptSwitchBlock() { - beginBlock({ - kind: 2 /* Switch */, - isScript: true, - breakLabel: -1 - }); - } - function beginSwitchBlock() { - var breakLabel = defineLabel(); - beginBlock({ - kind: 2 /* Switch */, - isScript: false, - breakLabel: breakLabel - }); - return breakLabel; - } - function endSwitchBlock() { - Debug.assert(peekBlockKind() === 2 /* Switch */); - var block = endBlock(); - var breakLabel = block.breakLabel; - if (!block.isScript) { - markLabel(breakLabel); - } - } - function beginScriptLabeledBlock(labelText) { - beginBlock({ - kind: 4 /* Labeled */, - isScript: true, - labelText: labelText, - breakLabel: -1 - }); - } - function beginLabeledBlock(labelText) { - var breakLabel = defineLabel(); - beginBlock({ - kind: 4 /* Labeled */, - isScript: false, - labelText: labelText, - breakLabel: breakLabel - }); - } - function endLabeledBlock() { - Debug.assert(peekBlockKind() === 4 /* Labeled */); - var block = endBlock(); - if (!block.isScript) { - markLabel(block.breakLabel); - } - } - function supportsUnlabeledBreak(block) { - return block.kind === 2 /* Switch */ || block.kind === 3 /* Loop */; - } - function supportsLabeledBreakOrContinue(block) { - return block.kind === 4 /* Labeled */; - } - function supportsUnlabeledContinue(block) { - return block.kind === 3 /* Loop */; - } - function hasImmediateContainingLabeledBlock(labelText, start2) { - for (var j = start2; j >= 0; j--) { - var containingBlock = blockStack[j]; - if (supportsLabeledBreakOrContinue(containingBlock)) { - if (containingBlock.labelText === labelText) { - return true; - } - } - else { - break; - } - } - return false; - } - function findBreakTarget(labelText) { - if (blockStack) { - if (labelText) { - for (var i = blockStack.length - 1; i >= 0; i--) { - var block = blockStack[i]; - if (supportsLabeledBreakOrContinue(block) && block.labelText === labelText) { - return block.breakLabel; - } - else if (supportsUnlabeledBreak(block) && hasImmediateContainingLabeledBlock(labelText, i - 1)) { - return block.breakLabel; - } - } - } - else { - for (var i = blockStack.length - 1; i >= 0; i--) { - var block = blockStack[i]; - if (supportsUnlabeledBreak(block)) { - return block.breakLabel; - } - } - } - } - return 0; - } - function findContinueTarget(labelText) { - if (blockStack) { - if (labelText) { - for (var i = blockStack.length - 1; i >= 0; i--) { - var block = blockStack[i]; - if (supportsUnlabeledContinue(block) && hasImmediateContainingLabeledBlock(labelText, i - 1)) { - return block.continueLabel; - } - } - } - else { - for (var i = blockStack.length - 1; i >= 0; i--) { - var block = blockStack[i]; - if (supportsUnlabeledContinue(block)) { - return block.continueLabel; - } - } - } - } - return 0; - } - function createLabel(label) { - if (label !== void 0 && label > 0) { - if (labelExpressions === void 0) { - labelExpressions = []; - } - var expression = factory2.createNumericLiteral(-1); - if (labelExpressions[label] === void 0) { - labelExpressions[label] = [expression]; - } - else { - labelExpressions[label].push(expression); - } - return expression; - } - return factory2.createOmittedExpression(); - } - function createInstruction(instruction) { - var literal = factory2.createNumericLiteral(instruction); - addSyntheticTrailingComment(literal, 3 /* MultiLineCommentTrivia */, getInstructionName(instruction)); - return literal; - } - function createInlineBreak(label, location) { - Debug.assertLessThan(0, label, "Invalid label"); - return setTextRange(factory2.createReturnStatement(factory2.createArrayLiteralExpression([ - createInstruction(3 /* Break */), - createLabel(label) - ])), location); - } - function createInlineReturn(expression, location) { - return setTextRange(factory2.createReturnStatement(factory2.createArrayLiteralExpression(expression ? [createInstruction(2 /* Return */), expression] : [createInstruction(2 /* Return */)])), location); - } - function createGeneratorResume(location) { - return setTextRange(factory2.createCallExpression(factory2.createPropertyAccessExpression(state, "sent"), - /*typeArguments*/ - void 0, []), location); - } - function emitNop() { - emitWorker(0 /* Nop */); - } - function emitStatement(node) { - if (node) { - emitWorker(1 /* Statement */, [node]); - } - else { - emitNop(); - } - } - function emitAssignment(left, right, location) { - emitWorker(2 /* Assign */, [left, right], location); - } - function emitBreak(label, location) { - emitWorker(3 /* Break */, [label], location); - } - function emitBreakWhenTrue(label, condition, location) { - emitWorker(4 /* BreakWhenTrue */, [label, condition], location); - } - function emitBreakWhenFalse(label, condition, location) { - emitWorker(5 /* BreakWhenFalse */, [label, condition], location); - } - function emitYieldStar(expression, location) { - emitWorker(7 /* YieldStar */, [expression], location); - } - function emitYield(expression, location) { - emitWorker(6 /* Yield */, [expression], location); - } - function emitReturn(expression, location) { - emitWorker(8 /* Return */, [expression], location); - } - function emitThrow(expression, location) { - emitWorker(9 /* Throw */, [expression], location); - } - function emitEndfinally() { - emitWorker(10 /* Endfinally */); - } - function emitWorker(code, args, location) { - if (operations === void 0) { - operations = []; - operationArguments = []; - operationLocations = []; - } - if (labelOffsets === void 0) { - markLabel(defineLabel()); - } - var operationIndex = operations.length; - operations[operationIndex] = code; - operationArguments[operationIndex] = args; - operationLocations[operationIndex] = location; - } - function build2() { - blockIndex = 0; - labelNumber = 0; - labelNumbers = void 0; - lastOperationWasAbrupt = false; - lastOperationWasCompletion = false; - clauses = void 0; - statements = void 0; - exceptionBlockStack = void 0; - currentExceptionBlock = void 0; - withBlockStack = void 0; - var buildResult = buildStatements(); - return emitHelpers().createGeneratorHelper(setEmitFlags(factory2.createFunctionExpression( - /*modifiers*/ - void 0, - /*asteriskToken*/ - void 0, - /*name*/ - void 0, - /*typeParameters*/ - void 0, [factory2.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, state)], - /*type*/ - void 0, factory2.createBlock(buildResult, - /*multiLine*/ - buildResult.length > 0)), 1048576 /* ReuseTempVariableScope */)); - } - function buildStatements() { - if (operations) { - for (var operationIndex = 0; operationIndex < operations.length; operationIndex++) { - writeOperation(operationIndex); - } - flushFinalLabel(operations.length); - } - else { - flushFinalLabel(0); - } - if (clauses) { - var labelExpression = factory2.createPropertyAccessExpression(state, "label"); - var switchStatement = factory2.createSwitchStatement(labelExpression, factory2.createCaseBlock(clauses)); - return [startOnNewLine(switchStatement)]; - } - if (statements) { - return statements; - } - return []; - } - function flushLabel() { - if (!statements) { - return; - } - appendLabel( - /*markLabelEnd*/ - !lastOperationWasAbrupt); - lastOperationWasAbrupt = false; - lastOperationWasCompletion = false; - labelNumber++; - } - function flushFinalLabel(operationIndex) { - if (isFinalLabelReachable(operationIndex)) { - tryEnterLabel(operationIndex); - withBlockStack = void 0; - writeReturn( - /*expression*/ - void 0, - /*operationLocation*/ - void 0); - } - if (statements && clauses) { - appendLabel( - /*markLabelEnd*/ - false); - } - updateLabelExpressions(); - } - function isFinalLabelReachable(operationIndex) { - if (!lastOperationWasCompletion) { - return true; - } - if (!labelOffsets || !labelExpressions) { - return false; - } - for (var label = 0; label < labelOffsets.length; label++) { - if (labelOffsets[label] === operationIndex && labelExpressions[label]) { - return true; - } - } - return false; - } - function appendLabel(markLabelEnd) { - if (!clauses) { - clauses = []; - } - if (statements) { - if (withBlockStack) { - for (var i = withBlockStack.length - 1; i >= 0; i--) { - var withBlock = withBlockStack[i]; - statements = [factory2.createWithStatement(withBlock.expression, factory2.createBlock(statements))]; - } - } - if (currentExceptionBlock) { - var startLabel = currentExceptionBlock.startLabel, catchLabel = currentExceptionBlock.catchLabel, finallyLabel = currentExceptionBlock.finallyLabel, endLabel = currentExceptionBlock.endLabel; - statements.unshift(factory2.createExpressionStatement(factory2.createCallExpression(factory2.createPropertyAccessExpression(factory2.createPropertyAccessExpression(state, "trys"), "push"), - /*typeArguments*/ - void 0, [ - factory2.createArrayLiteralExpression([ - createLabel(startLabel), - createLabel(catchLabel), - createLabel(finallyLabel), - createLabel(endLabel) - ]) - ]))); - currentExceptionBlock = void 0; - } - if (markLabelEnd) { - statements.push(factory2.createExpressionStatement(factory2.createAssignment(factory2.createPropertyAccessExpression(state, "label"), factory2.createNumericLiteral(labelNumber + 1)))); - } - } - clauses.push(factory2.createCaseClause(factory2.createNumericLiteral(labelNumber), statements || [])); - statements = void 0; - } - function tryEnterLabel(operationIndex) { - if (!labelOffsets) { - return; - } - for (var label = 0; label < labelOffsets.length; label++) { - if (labelOffsets[label] === operationIndex) { - flushLabel(); - if (labelNumbers === void 0) { - labelNumbers = []; - } - if (labelNumbers[labelNumber] === void 0) { - labelNumbers[labelNumber] = [label]; - } - else { - labelNumbers[labelNumber].push(label); - } - } - } - } - function updateLabelExpressions() { - var e_513, _t, e_514, _u; - if (labelExpressions !== void 0 && labelNumbers !== void 0) { - for (var labelNumber2 = 0; labelNumber2 < labelNumbers.length; labelNumber2++) { - var labels = labelNumbers[labelNumber2]; - if (labels !== void 0) { - try { - for (var labels_1 = (e_513 = void 0, __values(labels)), labels_1_1 = labels_1.next(); !labels_1_1.done; labels_1_1 = labels_1.next()) { - var label = labels_1_1.value; - var expressions = labelExpressions[label]; - if (expressions !== void 0) { - try { - for (var expressions_1 = (e_514 = void 0, __values(expressions)), expressions_1_1 = expressions_1.next(); !expressions_1_1.done; expressions_1_1 = expressions_1.next()) { - var expression = expressions_1_1.value; - expression.text = String(labelNumber2); - } - } - catch (e_514_1) { e_514 = { error: e_514_1 }; } - finally { - try { - if (expressions_1_1 && !expressions_1_1.done && (_u = expressions_1.return)) _u.call(expressions_1); - } - finally { if (e_514) throw e_514.error; } - } - } - } - } - catch (e_513_1) { e_513 = { error: e_513_1 }; } - finally { - try { - if (labels_1_1 && !labels_1_1.done && (_t = labels_1.return)) _t.call(labels_1); - } - finally { if (e_513) throw e_513.error; } - } - } - } - } - } - function tryEnterOrLeaveBlock(operationIndex) { - if (blocks) { - for (; blockIndex < blockActions.length && blockOffsets[blockIndex] <= operationIndex; blockIndex++) { - var block = blocks[blockIndex]; - var blockAction = blockActions[blockIndex]; - switch (block.kind) { - case 0 /* Exception */: - if (blockAction === 0 /* Open */) { - if (!exceptionBlockStack) { - exceptionBlockStack = []; - } - if (!statements) { - statements = []; - } - exceptionBlockStack.push(currentExceptionBlock); - currentExceptionBlock = block; - } - else if (blockAction === 1 /* Close */) { - currentExceptionBlock = exceptionBlockStack.pop(); - } - break; - case 1 /* With */: - if (blockAction === 0 /* Open */) { - if (!withBlockStack) { - withBlockStack = []; - } - withBlockStack.push(block); - } - else if (blockAction === 1 /* Close */) { - withBlockStack.pop(); - } - break; - } - } - } - } - function writeOperation(operationIndex) { - tryEnterLabel(operationIndex); - tryEnterOrLeaveBlock(operationIndex); - if (lastOperationWasAbrupt) { - return; - } - lastOperationWasAbrupt = false; - lastOperationWasCompletion = false; - var opcode = operations[operationIndex]; - if (opcode === 0 /* Nop */) { - return; - } - else if (opcode === 10 /* Endfinally */) { - return writeEndfinally(); - } - var args = operationArguments[operationIndex]; - if (opcode === 1 /* Statement */) { - return writeStatement(args[0]); - } - var location = operationLocations[operationIndex]; - switch (opcode) { - case 2 /* Assign */: - return writeAssign(args[0], args[1], location); - case 3 /* Break */: - return writeBreak(args[0], location); - case 4 /* BreakWhenTrue */: - return writeBreakWhenTrue(args[0], args[1], location); - case 5 /* BreakWhenFalse */: - return writeBreakWhenFalse(args[0], args[1], location); - case 6 /* Yield */: - return writeYield(args[0], location); - case 7 /* YieldStar */: - return writeYieldStar(args[0], location); - case 8 /* Return */: - return writeReturn(args[0], location); - case 9 /* Throw */: - return writeThrow(args[0], location); - } - } - function writeStatement(statement) { - if (statement) { - if (!statements) { - statements = [statement]; - } - else { - statements.push(statement); - } - } - } - function writeAssign(left, right, operationLocation) { - writeStatement(setTextRange(factory2.createExpressionStatement(factory2.createAssignment(left, right)), operationLocation)); - } - function writeThrow(expression, operationLocation) { - lastOperationWasAbrupt = true; - lastOperationWasCompletion = true; - writeStatement(setTextRange(factory2.createThrowStatement(expression), operationLocation)); - } - function writeReturn(expression, operationLocation) { - lastOperationWasAbrupt = true; - lastOperationWasCompletion = true; - writeStatement(setEmitFlags(setTextRange(factory2.createReturnStatement(factory2.createArrayLiteralExpression(expression ? [createInstruction(2 /* Return */), expression] : [createInstruction(2 /* Return */)])), operationLocation), 768 /* NoTokenSourceMaps */)); - } - function writeBreak(label, operationLocation) { - lastOperationWasAbrupt = true; - writeStatement(setEmitFlags(setTextRange(factory2.createReturnStatement(factory2.createArrayLiteralExpression([ - createInstruction(3 /* Break */), - createLabel(label) - ])), operationLocation), 768 /* NoTokenSourceMaps */)); - } - function writeBreakWhenTrue(label, condition, operationLocation) { - writeStatement(setEmitFlags(factory2.createIfStatement(condition, setEmitFlags(setTextRange(factory2.createReturnStatement(factory2.createArrayLiteralExpression([ - createInstruction(3 /* Break */), - createLabel(label) - ])), operationLocation), 768 /* NoTokenSourceMaps */)), 1 /* SingleLine */)); - } - function writeBreakWhenFalse(label, condition, operationLocation) { - writeStatement(setEmitFlags(factory2.createIfStatement(factory2.createLogicalNot(condition), setEmitFlags(setTextRange(factory2.createReturnStatement(factory2.createArrayLiteralExpression([ - createInstruction(3 /* Break */), - createLabel(label) - ])), operationLocation), 768 /* NoTokenSourceMaps */)), 1 /* SingleLine */)); - } - function writeYield(expression, operationLocation) { - lastOperationWasAbrupt = true; - writeStatement(setEmitFlags(setTextRange(factory2.createReturnStatement(factory2.createArrayLiteralExpression(expression ? [createInstruction(4 /* Yield */), expression] : [createInstruction(4 /* Yield */)])), operationLocation), 768 /* NoTokenSourceMaps */)); - } - function writeYieldStar(expression, operationLocation) { - lastOperationWasAbrupt = true; - writeStatement(setEmitFlags(setTextRange(factory2.createReturnStatement(factory2.createArrayLiteralExpression([ - createInstruction(5 /* YieldStar */), - expression - ])), operationLocation), 768 /* NoTokenSourceMaps */)); - } - function writeEndfinally() { - lastOperationWasAbrupt = true; - writeStatement(factory2.createReturnStatement(factory2.createArrayLiteralExpression([ - createInstruction(7 /* Endfinally */) - ]))); - } -} -// src/compiler/transformers/module/module.ts -function transformModule(context) { - function getTransformModuleDelegate(moduleKind2) { - switch (moduleKind2) { - case 2 /* AMD */: - return transformAMDModule; - case 3 /* UMD */: - return transformUMDModule; - default: - return transformCommonJSModule; - } - } - var factory2 = context.factory, emitHelpers = context.getEmitHelperFactory, startLexicalEnvironment = context.startLexicalEnvironment, endLexicalEnvironment = context.endLexicalEnvironment, hoistVariableDeclaration = context.hoistVariableDeclaration; - var compilerOptions = context.getCompilerOptions(); - var resolver = context.getEmitResolver(); - var host = context.getEmitHost(); - var languageVersion = getEmitScriptTarget(compilerOptions); - var moduleKind = getEmitModuleKind(compilerOptions); - var previousOnSubstituteNode = context.onSubstituteNode; - var previousOnEmitNode = context.onEmitNode; - context.onSubstituteNode = onSubstituteNode; - context.onEmitNode = onEmitNode; - context.enableSubstitution(213 /* CallExpression */); - context.enableSubstitution(215 /* TaggedTemplateExpression */); - context.enableSubstitution(80 /* Identifier */); - context.enableSubstitution(226 /* BinaryExpression */); - context.enableSubstitution(304 /* ShorthandPropertyAssignment */); - context.enableEmitNotification(312 /* SourceFile */); - var moduleInfoMap = []; - var currentSourceFile; - var currentModuleInfo; - var noSubstitution = []; - var needUMDDynamicImportHelper; - return chainBundle(context, transformSourceFile); - function transformSourceFile(node) { - if (node.isDeclarationFile || !(isEffectiveExternalModule(node, compilerOptions) || node.transformFlags & 8388608 /* ContainsDynamicImport */ || isJsonSourceFile(node) && hasJsonModuleEmitEnabled(compilerOptions) && outFile(compilerOptions))) { - return node; - } - currentSourceFile = node; - currentModuleInfo = collectExternalModuleInfo(context, node); - moduleInfoMap[getOriginalNodeId(node)] = currentModuleInfo; - var transformModule2 = getTransformModuleDelegate(moduleKind); - var updated = transformModule2(node); - currentSourceFile = void 0; - currentModuleInfo = void 0; - needUMDDynamicImportHelper = false; - return updated; - } - function shouldEmitUnderscoreUnderscoreESModule() { - if (!currentModuleInfo.exportEquals && isExternalModule(currentSourceFile)) { - return true; - } - return false; - } - function transformCommonJSModule(node) { - startLexicalEnvironment(); - var statements = []; - var ensureUseStrict = getStrictOptionValue(compilerOptions, "alwaysStrict") || !compilerOptions.noImplicitUseStrict && isExternalModule(currentSourceFile); - var statementOffset = factory2.copyPrologue(node.statements, statements, ensureUseStrict && !isJsonSourceFile(node), topLevelVisitor); - if (shouldEmitUnderscoreUnderscoreESModule()) { - append(statements, createUnderscoreUnderscoreESModule()); - } - if (length(currentModuleInfo.exportedNames)) { - var chunkSize = 50; - for (var i = 0; i < currentModuleInfo.exportedNames.length; i += chunkSize) { - append(statements, factory2.createExpressionStatement(reduceLeft(currentModuleInfo.exportedNames.slice(i, i + chunkSize), function (prev, nextId) { return factory2.createAssignment(factory2.createPropertyAccessExpression(factory2.createIdentifier("exports"), factory2.createIdentifier(idText(nextId))), prev); }, factory2.createVoidZero()))); - } - } - append(statements, visitNode(currentModuleInfo.externalHelpersImportDeclaration, topLevelVisitor, isStatement)); - addRange(statements, visitNodes2(node.statements, topLevelVisitor, isStatement, statementOffset)); - addExportEqualsIfNeeded(statements, - /*emitAsReturn*/ - false); - insertStatementsAfterStandardPrologue(statements, endLexicalEnvironment()); - var updated = factory2.updateSourceFile(node, setTextRange(factory2.createNodeArray(statements), node.statements)); - addEmitHelpers(updated, context.readEmitHelpers()); - return updated; - } - function transformAMDModule(node) { - var define = factory2.createIdentifier("define"); - var moduleName = tryGetModuleNameFromFile(factory2, node, host, compilerOptions); - var jsonSourceFile = isJsonSourceFile(node) && node; - var _t = collectAsynchronousDependencies(node, - /*includeNonAmdDependencies*/ - true), aliasedModuleNames = _t.aliasedModuleNames, unaliasedModuleNames = _t.unaliasedModuleNames, importAliasNames = _t.importAliasNames; - var updated = factory2.updateSourceFile(node, setTextRange(factory2.createNodeArray([ - factory2.createExpressionStatement(factory2.createCallExpression(define, - /*typeArguments*/ - void 0, __spreadArray(__spreadArray([], __read(moduleName ? [moduleName] : []), false), [ - // Add the dependency array argument: - // - // ["require", "exports", module1", "module2", ...] - factory2.createArrayLiteralExpression(jsonSourceFile ? emptyArray : __spreadArray(__spreadArray([ - factory2.createStringLiteral("require"), - factory2.createStringLiteral("exports") - ], __read(aliasedModuleNames), false), __read(unaliasedModuleNames), false)), - // Add the module body function argument: - // - // function (require, exports, module1, module2) ... - jsonSourceFile ? jsonSourceFile.statements.length ? jsonSourceFile.statements[0].expression : factory2.createObjectLiteralExpression() : factory2.createFunctionExpression( - /*modifiers*/ - void 0, - /*asteriskToken*/ - void 0, - /*name*/ - void 0, - /*typeParameters*/ - void 0, __spreadArray([ - factory2.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, "require"), - factory2.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, "exports") - ], __read(importAliasNames), false), - /*type*/ - void 0, transformAsynchronousModuleBody(node)) - ], false))) - ]), - /*location*/ - node.statements)); - addEmitHelpers(updated, context.readEmitHelpers()); - return updated; - } - function transformUMDModule(node) { - var _t = collectAsynchronousDependencies(node, - /*includeNonAmdDependencies*/ - false), aliasedModuleNames = _t.aliasedModuleNames, unaliasedModuleNames = _t.unaliasedModuleNames, importAliasNames = _t.importAliasNames; - var moduleName = tryGetModuleNameFromFile(factory2, node, host, compilerOptions); - var umdHeader = factory2.createFunctionExpression( - /*modifiers*/ - void 0, - /*asteriskToken*/ - void 0, - /*name*/ - void 0, - /*typeParameters*/ - void 0, [factory2.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, "factory")], - /*type*/ - void 0, setTextRange(factory2.createBlock([ - factory2.createIfStatement(factory2.createLogicalAnd(factory2.createTypeCheck(factory2.createIdentifier("module"), "object"), factory2.createTypeCheck(factory2.createPropertyAccessExpression(factory2.createIdentifier("module"), "exports"), "object")), factory2.createBlock([ - factory2.createVariableStatement( - /*modifiers*/ - void 0, [ - factory2.createVariableDeclaration("v", - /*exclamationToken*/ - void 0, - /*type*/ - void 0, factory2.createCallExpression(factory2.createIdentifier("factory"), - /*typeArguments*/ - void 0, [ - factory2.createIdentifier("require"), - factory2.createIdentifier("exports") - ])) - ]), - setEmitFlags(factory2.createIfStatement(factory2.createStrictInequality(factory2.createIdentifier("v"), factory2.createIdentifier("undefined")), factory2.createExpressionStatement(factory2.createAssignment(factory2.createPropertyAccessExpression(factory2.createIdentifier("module"), "exports"), factory2.createIdentifier("v")))), 1 /* SingleLine */) - ]), factory2.createIfStatement(factory2.createLogicalAnd(factory2.createTypeCheck(factory2.createIdentifier("define"), "function"), factory2.createPropertyAccessExpression(factory2.createIdentifier("define"), "amd")), factory2.createBlock([ - factory2.createExpressionStatement(factory2.createCallExpression(factory2.createIdentifier("define"), - /*typeArguments*/ - void 0, __spreadArray(__spreadArray([], __read(moduleName ? [moduleName] : []), false), [ - factory2.createArrayLiteralExpression(__spreadArray(__spreadArray([ - factory2.createStringLiteral("require"), - factory2.createStringLiteral("exports") - ], __read(aliasedModuleNames), false), __read(unaliasedModuleNames), false)), - factory2.createIdentifier("factory") - ], false))) - ]))) - ], - /*multiLine*/ - true), - /*location*/ - void 0)); - var updated = factory2.updateSourceFile(node, setTextRange(factory2.createNodeArray([ - factory2.createExpressionStatement(factory2.createCallExpression(umdHeader, - /*typeArguments*/ - void 0, [ - // Add the module body function argument: - // - // function (require, exports) ... - factory2.createFunctionExpression( - /*modifiers*/ - void 0, - /*asteriskToken*/ - void 0, - /*name*/ - void 0, - /*typeParameters*/ - void 0, __spreadArray([ - factory2.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, "require"), - factory2.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, "exports") - ], __read(importAliasNames), false), - /*type*/ - void 0, transformAsynchronousModuleBody(node)) - ])) - ]), - /*location*/ - node.statements)); - addEmitHelpers(updated, context.readEmitHelpers()); - return updated; - } - function collectAsynchronousDependencies(node, includeNonAmdDependencies) { - var e_515, _t, e_516, _u; - var aliasedModuleNames = []; - var unaliasedModuleNames = []; - var importAliasNames = []; - try { - for (var _v = __values(node.amdDependencies), _w = _v.next(); !_w.done; _w = _v.next()) { - var amdDependency = _w.value; - if (amdDependency.name) { - aliasedModuleNames.push(factory2.createStringLiteral(amdDependency.path)); - importAliasNames.push(factory2.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, amdDependency.name)); - } - else { - unaliasedModuleNames.push(factory2.createStringLiteral(amdDependency.path)); - } - } - } - catch (e_515_1) { e_515 = { error: e_515_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_515) throw e_515.error; } - } - try { - for (var _x = __values(currentModuleInfo.externalImports), _y = _x.next(); !_y.done; _y = _x.next()) { - var importNode = _y.value; - var externalModuleName = getExternalModuleNameLiteral(factory2, importNode, currentSourceFile, host, resolver, compilerOptions); - var importAliasName = getLocalNameForExternalImport(factory2, importNode, currentSourceFile); - if (externalModuleName) { - if (includeNonAmdDependencies && importAliasName) { - setEmitFlags(importAliasName, 8 /* NoSubstitution */); - aliasedModuleNames.push(externalModuleName); - importAliasNames.push(factory2.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, importAliasName)); - } - else { - unaliasedModuleNames.push(externalModuleName); - } - } - } - } - catch (e_516_1) { e_516 = { error: e_516_1 }; } - finally { - try { - if (_y && !_y.done && (_u = _x.return)) _u.call(_x); - } - finally { if (e_516) throw e_516.error; } - } - return { aliasedModuleNames: aliasedModuleNames, unaliasedModuleNames: unaliasedModuleNames, importAliasNames: importAliasNames }; - } - function getAMDImportExpressionForImport(node) { - if (isImportEqualsDeclaration(node) || isExportDeclaration(node) || !getExternalModuleNameLiteral(factory2, node, currentSourceFile, host, resolver, compilerOptions)) { - return void 0; - } - var name = getLocalNameForExternalImport(factory2, node, currentSourceFile); - var expr = getHelperExpressionForImport(node, name); - if (expr === name) { - return void 0; - } - return factory2.createExpressionStatement(factory2.createAssignment(name, expr)); - } - function transformAsynchronousModuleBody(node) { - startLexicalEnvironment(); - var statements = []; - var statementOffset = factory2.copyPrologue(node.statements, statements, - /*ensureUseStrict*/ - !compilerOptions.noImplicitUseStrict, topLevelVisitor); - if (shouldEmitUnderscoreUnderscoreESModule()) { - append(statements, createUnderscoreUnderscoreESModule()); - } - if (length(currentModuleInfo.exportedNames)) { - append(statements, factory2.createExpressionStatement(reduceLeft(currentModuleInfo.exportedNames, function (prev, nextId) { return factory2.createAssignment(factory2.createPropertyAccessExpression(factory2.createIdentifier("exports"), factory2.createIdentifier(idText(nextId))), prev); }, factory2.createVoidZero()))); - } - append(statements, visitNode(currentModuleInfo.externalHelpersImportDeclaration, topLevelVisitor, isStatement)); - if (moduleKind === 2 /* AMD */) { - addRange(statements, mapDefined(currentModuleInfo.externalImports, getAMDImportExpressionForImport)); - } - addRange(statements, visitNodes2(node.statements, topLevelVisitor, isStatement, statementOffset)); - addExportEqualsIfNeeded(statements, - /*emitAsReturn*/ - true); - insertStatementsAfterStandardPrologue(statements, endLexicalEnvironment()); - var body = factory2.createBlock(statements, - /*multiLine*/ - true); - if (needUMDDynamicImportHelper) { - addEmitHelper(body, dynamicImportUMDHelper); - } - return body; - } - function addExportEqualsIfNeeded(statements, emitAsReturn) { - if (currentModuleInfo.exportEquals) { - var expressionResult = visitNode(currentModuleInfo.exportEquals.expression, visitor, isExpression); - if (expressionResult) { - if (emitAsReturn) { - var statement = factory2.createReturnStatement(expressionResult); - setTextRange(statement, currentModuleInfo.exportEquals); - setEmitFlags(statement, 768 /* NoTokenSourceMaps */ | 3072 /* NoComments */); - statements.push(statement); - } - else { - var statement = factory2.createExpressionStatement(factory2.createAssignment(factory2.createPropertyAccessExpression(factory2.createIdentifier("module"), "exports"), expressionResult)); - setTextRange(statement, currentModuleInfo.exportEquals); - setEmitFlags(statement, 3072 /* NoComments */); - statements.push(statement); - } - } - } - } - function topLevelVisitor(node) { - switch (node.kind) { - case 272 /* ImportDeclaration */: - return visitTopLevelImportDeclaration(node); - case 271 /* ImportEqualsDeclaration */: - return visitTopLevelImportEqualsDeclaration(node); - case 278 /* ExportDeclaration */: - return visitTopLevelExportDeclaration(node); - case 277 /* ExportAssignment */: - return visitTopLevelExportAssignment(node); - default: - return topLevelNestedVisitor(node); - } - } - function topLevelNestedVisitor(node) { - switch (node.kind) { - case 243 /* VariableStatement */: - return visitVariableStatement(node); - case 262 /* FunctionDeclaration */: - return visitFunctionDeclaration(node); - case 263 /* ClassDeclaration */: - return visitClassDeclaration(node); - case 248 /* ForStatement */: - return visitForStatement(node, - /*isTopLevel*/ - true); - case 249 /* ForInStatement */: - return visitForInStatement(node); - case 250 /* ForOfStatement */: - return visitForOfStatement(node); - case 246 /* DoStatement */: - return visitDoStatement(node); - case 247 /* WhileStatement */: - return visitWhileStatement(node); - case 256 /* LabeledStatement */: - return visitLabeledStatement(node); - case 254 /* WithStatement */: - return visitWithStatement(node); - case 245 /* IfStatement */: - return visitIfStatement(node); - case 255 /* SwitchStatement */: - return visitSwitchStatement(node); - case 269 /* CaseBlock */: - return visitCaseBlock(node); - case 296 /* CaseClause */: - return visitCaseClause(node); - case 297 /* DefaultClause */: - return visitDefaultClause(node); - case 258 /* TryStatement */: - return visitTryStatement(node); - case 299 /* CatchClause */: - return visitCatchClause(node); - case 241 /* Block */: - return visitBlock(node); - default: - return visitor(node); - } - } - function visitorWorker(node, valueIsDiscarded) { - if (!(node.transformFlags & (8388608 /* ContainsDynamicImport */ | 4096 /* ContainsDestructuringAssignment */ | 268435456 /* ContainsUpdateExpressionForIdentifier */))) { - return node; - } - switch (node.kind) { - case 248 /* ForStatement */: - return visitForStatement(node, - /*isTopLevel*/ - false); - case 244 /* ExpressionStatement */: - return visitExpressionStatement(node); - case 217 /* ParenthesizedExpression */: - return visitParenthesizedExpression(node, valueIsDiscarded); - case 360 /* PartiallyEmittedExpression */: - return visitPartiallyEmittedExpression(node, valueIsDiscarded); - case 213 /* CallExpression */: - if (isImportCall(node) && currentSourceFile.impliedNodeFormat === void 0) { - return visitImportCallExpression(node); - } - break; - case 226 /* BinaryExpression */: - if (isDestructuringAssignment(node)) { - return visitDestructuringAssignment(node, valueIsDiscarded); - } - break; - case 224 /* PrefixUnaryExpression */: - case 225 /* PostfixUnaryExpression */: - return visitPreOrPostfixUnaryExpression(node, valueIsDiscarded); - } - return visitEachChild(node, visitor, context); - } - function visitor(node) { - return visitorWorker(node, - /*valueIsDiscarded*/ - false); - } - function discardedValueVisitor(node) { - return visitorWorker(node, - /*valueIsDiscarded*/ - true); - } - function destructuringNeedsFlattening(node) { - var e_517, _t, e_518, _u; - if (isObjectLiteralExpression(node)) { - try { - for (var _v = __values(node.properties), _w = _v.next(); !_w.done; _w = _v.next()) { - var elem = _w.value; - switch (elem.kind) { - case 303 /* PropertyAssignment */: - if (destructuringNeedsFlattening(elem.initializer)) { - return true; - } - break; - case 304 /* ShorthandPropertyAssignment */: - if (destructuringNeedsFlattening(elem.name)) { - return true; - } - break; - case 305 /* SpreadAssignment */: - if (destructuringNeedsFlattening(elem.expression)) { - return true; - } - break; - case 174 /* MethodDeclaration */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - return false; - default: - Debug.assertNever(elem, "Unhandled object member kind"); - } - } - } - catch (e_517_1) { e_517 = { error: e_517_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_517) throw e_517.error; } - } - } - else if (isArrayLiteralExpression(node)) { - try { - for (var _x = __values(node.elements), _y = _x.next(); !_y.done; _y = _x.next()) { - var elem = _y.value; - if (isSpreadElement(elem)) { - if (destructuringNeedsFlattening(elem.expression)) { - return true; - } - } - else if (destructuringNeedsFlattening(elem)) { - return true; - } - } - } - catch (e_518_1) { e_518 = { error: e_518_1 }; } - finally { - try { - if (_y && !_y.done && (_u = _x.return)) _u.call(_x); - } - finally { if (e_518) throw e_518.error; } - } - } - else if (isIdentifier(node)) { - return length(getExports(node)) > (isExportName(node) ? 1 : 0); - } - return false; - } - function visitDestructuringAssignment(node, valueIsDiscarded) { - if (destructuringNeedsFlattening(node.left)) { - return flattenDestructuringAssignment(node, visitor, context, 0 /* All */, !valueIsDiscarded, createAllExportExpressions); - } - return visitEachChild(node, visitor, context); - } - function visitForStatement(node, isTopLevel) { - if (isTopLevel && node.initializer && isVariableDeclarationList(node.initializer) && !(node.initializer.flags & 7 /* BlockScoped */)) { - var exportStatements = appendExportsOfVariableDeclarationList( - /*statements*/ - void 0, node.initializer, - /*isForInOrOfInitializer*/ - false); - if (exportStatements) { - var statements = []; - var varDeclList = visitNode(node.initializer, discardedValueVisitor, isVariableDeclarationList); - var varStatement = factory2.createVariableStatement( - /*modifiers*/ - void 0, varDeclList); - statements.push(varStatement); - addRange(statements, exportStatements); - var condition = visitNode(node.condition, visitor, isExpression); - var incrementor = visitNode(node.incrementor, discardedValueVisitor, isExpression); - var body = visitIterationBody(node.statement, isTopLevel ? topLevelNestedVisitor : visitor, context); - statements.push(factory2.updateForStatement(node, - /*initializer*/ - void 0, condition, incrementor, body)); - return statements; - } - } - return factory2.updateForStatement(node, visitNode(node.initializer, discardedValueVisitor, isForInitializer), visitNode(node.condition, visitor, isExpression), visitNode(node.incrementor, discardedValueVisitor, isExpression), visitIterationBody(node.statement, isTopLevel ? topLevelNestedVisitor : visitor, context)); - } - function visitForInStatement(node) { - if (isVariableDeclarationList(node.initializer) && !(node.initializer.flags & 7 /* BlockScoped */)) { - var exportStatements = appendExportsOfVariableDeclarationList( - /*statements*/ - void 0, node.initializer, - /*isForInOrOfInitializer*/ - true); - if (some(exportStatements)) { - var initializer = visitNode(node.initializer, discardedValueVisitor, isForInitializer); - var expression = visitNode(node.expression, visitor, isExpression); - var body = visitIterationBody(node.statement, topLevelNestedVisitor, context); - var mergedBody = isBlock(body) ? factory2.updateBlock(body, __spreadArray(__spreadArray([], __read(exportStatements), false), __read(body.statements), false)) : factory2.createBlock(__spreadArray(__spreadArray([], __read(exportStatements), false), [body], false), - /*multiLine*/ - true); - return factory2.updateForInStatement(node, initializer, expression, mergedBody); - } - } - return factory2.updateForInStatement(node, visitNode(node.initializer, discardedValueVisitor, isForInitializer), visitNode(node.expression, visitor, isExpression), visitIterationBody(node.statement, topLevelNestedVisitor, context)); - } - function visitForOfStatement(node) { - if (isVariableDeclarationList(node.initializer) && !(node.initializer.flags & 7 /* BlockScoped */)) { - var exportStatements = appendExportsOfVariableDeclarationList( - /*statements*/ - void 0, node.initializer, - /*isForInOrOfInitializer*/ - true); - var initializer = visitNode(node.initializer, discardedValueVisitor, isForInitializer); - var expression = visitNode(node.expression, visitor, isExpression); - var body = visitIterationBody(node.statement, topLevelNestedVisitor, context); - if (some(exportStatements)) { - body = isBlock(body) ? factory2.updateBlock(body, __spreadArray(__spreadArray([], __read(exportStatements), false), __read(body.statements), false)) : factory2.createBlock(__spreadArray(__spreadArray([], __read(exportStatements), false), [body], false), - /*multiLine*/ - true); - } - return factory2.updateForOfStatement(node, node.awaitModifier, initializer, expression, body); - } - return factory2.updateForOfStatement(node, node.awaitModifier, visitNode(node.initializer, discardedValueVisitor, isForInitializer), visitNode(node.expression, visitor, isExpression), visitIterationBody(node.statement, topLevelNestedVisitor, context)); - } - function visitDoStatement(node) { - return factory2.updateDoStatement(node, visitIterationBody(node.statement, topLevelNestedVisitor, context), visitNode(node.expression, visitor, isExpression)); - } - function visitWhileStatement(node) { - return factory2.updateWhileStatement(node, visitNode(node.expression, visitor, isExpression), visitIterationBody(node.statement, topLevelNestedVisitor, context)); - } - function visitLabeledStatement(node) { - return factory2.updateLabeledStatement(node, node.label, Debug.checkDefined(visitNode(node.statement, topLevelNestedVisitor, isStatement, factory2.liftToBlock))); - } - function visitWithStatement(node) { - return factory2.updateWithStatement(node, visitNode(node.expression, visitor, isExpression), Debug.checkDefined(visitNode(node.statement, topLevelNestedVisitor, isStatement, factory2.liftToBlock))); - } - function visitIfStatement(node) { - return factory2.updateIfStatement(node, visitNode(node.expression, visitor, isExpression), Debug.checkDefined(visitNode(node.thenStatement, topLevelNestedVisitor, isStatement, factory2.liftToBlock)), visitNode(node.elseStatement, topLevelNestedVisitor, isStatement, factory2.liftToBlock)); - } - function visitSwitchStatement(node) { - return factory2.updateSwitchStatement(node, visitNode(node.expression, visitor, isExpression), Debug.checkDefined(visitNode(node.caseBlock, topLevelNestedVisitor, isCaseBlock))); - } - function visitCaseBlock(node) { - return factory2.updateCaseBlock(node, visitNodes2(node.clauses, topLevelNestedVisitor, isCaseOrDefaultClause)); - } - function visitCaseClause(node) { - return factory2.updateCaseClause(node, visitNode(node.expression, visitor, isExpression), visitNodes2(node.statements, topLevelNestedVisitor, isStatement)); - } - function visitDefaultClause(node) { - return visitEachChild(node, topLevelNestedVisitor, context); - } - function visitTryStatement(node) { - return visitEachChild(node, topLevelNestedVisitor, context); - } - function visitCatchClause(node) { - return factory2.updateCatchClause(node, node.variableDeclaration, Debug.checkDefined(visitNode(node.block, topLevelNestedVisitor, isBlock))); - } - function visitBlock(node) { - node = visitEachChild(node, topLevelNestedVisitor, context); - return node; - } - function visitExpressionStatement(node) { - return factory2.updateExpressionStatement(node, visitNode(node.expression, discardedValueVisitor, isExpression)); - } - function visitParenthesizedExpression(node, valueIsDiscarded) { - return factory2.updateParenthesizedExpression(node, visitNode(node.expression, valueIsDiscarded ? discardedValueVisitor : visitor, isExpression)); - } - function visitPartiallyEmittedExpression(node, valueIsDiscarded) { - return factory2.updatePartiallyEmittedExpression(node, visitNode(node.expression, valueIsDiscarded ? discardedValueVisitor : visitor, isExpression)); - } - function visitPreOrPostfixUnaryExpression(node, valueIsDiscarded) { - var e_519, _t; - if ((node.operator === 46 /* PlusPlusToken */ || node.operator === 47 /* MinusMinusToken */) && isIdentifier(node.operand) && !isGeneratedIdentifier(node.operand) && !isLocalName(node.operand) && !isDeclarationNameOfEnumOrNamespace(node.operand)) { - var exportedNames = getExports(node.operand); - if (exportedNames) { - var temp = void 0; - var expression = visitNode(node.operand, visitor, isExpression); - if (isPrefixUnaryExpression(node)) { - expression = factory2.updatePrefixUnaryExpression(node, expression); - } - else { - expression = factory2.updatePostfixUnaryExpression(node, expression); - if (!valueIsDiscarded) { - temp = factory2.createTempVariable(hoistVariableDeclaration); - expression = factory2.createAssignment(temp, expression); - setTextRange(expression, node); - } - expression = factory2.createComma(expression, factory2.cloneNode(node.operand)); - setTextRange(expression, node); - } - try { - for (var exportedNames_1 = __values(exportedNames), exportedNames_1_1 = exportedNames_1.next(); !exportedNames_1_1.done; exportedNames_1_1 = exportedNames_1.next()) { - var exportName = exportedNames_1_1.value; - noSubstitution[getNodeId(expression)] = true; - expression = createExportExpression(exportName, expression); - setTextRange(expression, node); - } - } - catch (e_519_1) { e_519 = { error: e_519_1 }; } - finally { - try { - if (exportedNames_1_1 && !exportedNames_1_1.done && (_t = exportedNames_1.return)) _t.call(exportedNames_1); - } - finally { if (e_519) throw e_519.error; } - } - if (temp) { - noSubstitution[getNodeId(expression)] = true; - expression = factory2.createComma(expression, temp); - setTextRange(expression, node); - } - return expression; - } - } - return visitEachChild(node, visitor, context); - } - function visitImportCallExpression(node) { - if (moduleKind === 0 /* None */ && languageVersion >= 7 /* ES2020 */) { - return visitEachChild(node, visitor, context); - } - var externalModuleName = getExternalModuleNameLiteral(factory2, node, currentSourceFile, host, resolver, compilerOptions); - var firstArgument = visitNode(firstOrUndefined(node.arguments), visitor, isExpression); - var argument = externalModuleName && (!firstArgument || !isStringLiteral(firstArgument) || firstArgument.text !== externalModuleName.text) ? externalModuleName : firstArgument; - var containsLexicalThis = !!(node.transformFlags & 16384 /* ContainsLexicalThis */); - switch (compilerOptions.module) { - case 2 /* AMD */: - return createImportCallExpressionAMD(argument, containsLexicalThis); - case 3 /* UMD */: - return createImportCallExpressionUMD(argument !== null && argument !== void 0 ? argument : factory2.createVoidZero(), containsLexicalThis); - case 1 /* CommonJS */: - default: - return createImportCallExpressionCommonJS(argument); - } - } - function createImportCallExpressionUMD(arg, containsLexicalThis) { - needUMDDynamicImportHelper = true; - if (isSimpleCopiableExpression(arg)) { - var argClone = isGeneratedIdentifier(arg) ? arg : isStringLiteral(arg) ? factory2.createStringLiteralFromNode(arg) : setEmitFlags(setTextRange(factory2.cloneNode(arg), arg), 3072 /* NoComments */); - return factory2.createConditionalExpression( - /*condition*/ - factory2.createIdentifier("__syncRequire"), - /*questionToken*/ - void 0, - /*whenTrue*/ - createImportCallExpressionCommonJS(arg), - /*colonToken*/ - void 0, - /*whenFalse*/ - createImportCallExpressionAMD(argClone, containsLexicalThis)); - } - else { - var temp = factory2.createTempVariable(hoistVariableDeclaration); - return factory2.createComma(factory2.createAssignment(temp, arg), factory2.createConditionalExpression( - /*condition*/ - factory2.createIdentifier("__syncRequire"), - /*questionToken*/ - void 0, - /*whenTrue*/ - createImportCallExpressionCommonJS(temp, - /*isInlineable*/ - true), - /*colonToken*/ - void 0, - /*whenFalse*/ - createImportCallExpressionAMD(temp, containsLexicalThis))); - } - } - function createImportCallExpressionAMD(arg, containsLexicalThis) { - var resolve = factory2.createUniqueName("resolve"); - var reject = factory2.createUniqueName("reject"); - var parameters = [ - factory2.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, - /*name*/ - resolve), - factory2.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, - /*name*/ - reject) - ]; - var body = factory2.createBlock([ - factory2.createExpressionStatement(factory2.createCallExpression(factory2.createIdentifier("require"), - /*typeArguments*/ - void 0, [factory2.createArrayLiteralExpression([arg || factory2.createOmittedExpression()]), resolve, reject])) - ]); - var func; - if (languageVersion >= 2 /* ES2015 */) { - func = factory2.createArrowFunction( - /*modifiers*/ - void 0, - /*typeParameters*/ - void 0, parameters, - /*type*/ - void 0, - /*equalsGreaterThanToken*/ - void 0, body); - } - else { - func = factory2.createFunctionExpression( - /*modifiers*/ - void 0, - /*asteriskToken*/ - void 0, - /*name*/ - void 0, - /*typeParameters*/ - void 0, parameters, - /*type*/ - void 0, body); - if (containsLexicalThis) { - setEmitFlags(func, 16 /* CapturesThis */); - } - } - var promise = factory2.createNewExpression(factory2.createIdentifier("Promise"), - /*typeArguments*/ - void 0, [func]); - if (getESModuleInterop(compilerOptions)) { - return factory2.createCallExpression(factory2.createPropertyAccessExpression(promise, factory2.createIdentifier("then")), - /*typeArguments*/ - void 0, [emitHelpers().createImportStarCallbackHelper()]); - } - return promise; - } - function createImportCallExpressionCommonJS(arg, isInlineable) { - var needSyncEval = arg && !isSimpleInlineableExpression(arg) && !isInlineable; - var promiseResolveCall = factory2.createCallExpression(factory2.createPropertyAccessExpression(factory2.createIdentifier("Promise"), "resolve"), - /*typeArguments*/ - void 0, - /*argumentsArray*/ - needSyncEval ? languageVersion >= 2 /* ES2015 */ ? [ - factory2.createTemplateExpression(factory2.createTemplateHead(""), [ - factory2.createTemplateSpan(arg, factory2.createTemplateTail("")) - ]) - ] : [ - factory2.createCallExpression(factory2.createPropertyAccessExpression(factory2.createStringLiteral(""), "concat"), - /*typeArguments*/ - void 0, [arg]) - ] : []); - var requireCall = factory2.createCallExpression(factory2.createIdentifier("require"), - /*typeArguments*/ - void 0, needSyncEval ? [factory2.createIdentifier("s")] : arg ? [arg] : []); - if (getESModuleInterop(compilerOptions)) { - requireCall = emitHelpers().createImportStarHelper(requireCall); - } - var parameters = needSyncEval ? [ - factory2.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, - /*name*/ - "s") - ] : []; - var func; - if (languageVersion >= 2 /* ES2015 */) { - func = factory2.createArrowFunction( - /*modifiers*/ - void 0, - /*typeParameters*/ - void 0, - /*parameters*/ - parameters, - /*type*/ - void 0, - /*equalsGreaterThanToken*/ - void 0, requireCall); - } - else { - func = factory2.createFunctionExpression( - /*modifiers*/ - void 0, - /*asteriskToken*/ - void 0, - /*name*/ - void 0, - /*typeParameters*/ - void 0, - /*parameters*/ - parameters, - /*type*/ - void 0, factory2.createBlock([factory2.createReturnStatement(requireCall)])); - } - var downleveledImport = factory2.createCallExpression(factory2.createPropertyAccessExpression(promiseResolveCall, "then"), - /*typeArguments*/ - void 0, [func]); - return downleveledImport; - } - function getHelperExpressionForExport(node, innerExpr) { - if (!getESModuleInterop(compilerOptions) || getInternalEmitFlags(node) & 2 /* NeverApplyImportHelper */) { - return innerExpr; - } - if (getExportNeedsImportStarHelper(node)) { - return emitHelpers().createImportStarHelper(innerExpr); - } - return innerExpr; - } - function getHelperExpressionForImport(node, innerExpr) { - if (!getESModuleInterop(compilerOptions) || getInternalEmitFlags(node) & 2 /* NeverApplyImportHelper */) { - return innerExpr; - } - if (getImportNeedsImportStarHelper(node)) { - return emitHelpers().createImportStarHelper(innerExpr); - } - if (getImportNeedsImportDefaultHelper(node)) { - return emitHelpers().createImportDefaultHelper(innerExpr); - } - return innerExpr; - } - function visitTopLevelImportDeclaration(node) { - var statements; - var namespaceDeclaration = getNamespaceDeclarationNode(node); - if (moduleKind !== 2 /* AMD */) { - if (!node.importClause) { - return setOriginalNode(setTextRange(factory2.createExpressionStatement(createRequireCall2(node)), node), node); - } - else { - var variables = []; - if (namespaceDeclaration && !isDefaultImport(node)) { - variables.push(factory2.createVariableDeclaration(factory2.cloneNode(namespaceDeclaration.name), - /*exclamationToken*/ - void 0, - /*type*/ - void 0, getHelperExpressionForImport(node, createRequireCall2(node)))); - } - else { - variables.push(factory2.createVariableDeclaration(factory2.getGeneratedNameForNode(node), - /*exclamationToken*/ - void 0, - /*type*/ - void 0, getHelperExpressionForImport(node, createRequireCall2(node)))); - if (namespaceDeclaration && isDefaultImport(node)) { - variables.push(factory2.createVariableDeclaration(factory2.cloneNode(namespaceDeclaration.name), - /*exclamationToken*/ - void 0, - /*type*/ - void 0, factory2.getGeneratedNameForNode(node))); - } - } - statements = append(statements, setOriginalNode(setTextRange(factory2.createVariableStatement( - /*modifiers*/ - void 0, factory2.createVariableDeclarationList(variables, languageVersion >= 2 /* ES2015 */ ? 2 /* Const */ : 0 /* None */)), - /*location*/ - node), - /*original*/ - node)); - } - } - else if (namespaceDeclaration && isDefaultImport(node)) { - statements = append(statements, factory2.createVariableStatement( - /*modifiers*/ - void 0, factory2.createVariableDeclarationList([ - setOriginalNode(setTextRange(factory2.createVariableDeclaration(factory2.cloneNode(namespaceDeclaration.name), - /*exclamationToken*/ - void 0, - /*type*/ - void 0, factory2.getGeneratedNameForNode(node)), - /*location*/ - node), - /*original*/ - node) - ], languageVersion >= 2 /* ES2015 */ ? 2 /* Const */ : 0 /* None */))); - } - statements = appendExportsOfImportDeclaration(statements, node); - return singleOrMany(statements); - } - function createRequireCall2(importNode) { - var moduleName = getExternalModuleNameLiteral(factory2, importNode, currentSourceFile, host, resolver, compilerOptions); - var args = []; - if (moduleName) { - args.push(moduleName); - } - return factory2.createCallExpression(factory2.createIdentifier("require"), - /*typeArguments*/ - void 0, args); - } - function visitTopLevelImportEqualsDeclaration(node) { - Debug.assert(isExternalModuleImportEqualsDeclaration(node), "import= for internal module references should be handled in an earlier transformer."); - var statements; - if (moduleKind !== 2 /* AMD */) { - if (hasSyntacticModifier(node, 1 /* Export */)) { - statements = append(statements, setOriginalNode(setTextRange(factory2.createExpressionStatement(createExportExpression(node.name, createRequireCall2(node))), node), node)); - } - else { - statements = append(statements, setOriginalNode(setTextRange(factory2.createVariableStatement( - /*modifiers*/ - void 0, factory2.createVariableDeclarationList([ - factory2.createVariableDeclaration(factory2.cloneNode(node.name), - /*exclamationToken*/ - void 0, - /*type*/ - void 0, createRequireCall2(node)) - ], - /*flags*/ - languageVersion >= 2 /* ES2015 */ ? 2 /* Const */ : 0 /* None */)), node), node)); - } - } - else { - if (hasSyntacticModifier(node, 1 /* Export */)) { - statements = append(statements, setOriginalNode(setTextRange(factory2.createExpressionStatement(createExportExpression(factory2.getExportName(node), factory2.getLocalName(node))), node), node)); - } - } - statements = appendExportsOfImportEqualsDeclaration(statements, node); - return singleOrMany(statements); - } - function visitTopLevelExportDeclaration(node) { - var e_520, _t; - if (!node.moduleSpecifier) { - return void 0; - } - var generatedName = factory2.getGeneratedNameForNode(node); - if (node.exportClause && isNamedExports(node.exportClause)) { - var statements = []; - if (moduleKind !== 2 /* AMD */) { - statements.push(setOriginalNode(setTextRange(factory2.createVariableStatement( - /*modifiers*/ - void 0, factory2.createVariableDeclarationList([ - factory2.createVariableDeclaration(generatedName, - /*exclamationToken*/ - void 0, - /*type*/ - void 0, createRequireCall2(node)) - ])), - /*location*/ - node), - /* original */ - node)); - } - try { - for (var _u = __values(node.exportClause.elements), _v = _u.next(); !_v.done; _v = _u.next()) { - var specifier = _v.value; - if (languageVersion === 0 /* ES3 */) { - statements.push(setOriginalNode(setTextRange(factory2.createExpressionStatement(emitHelpers().createCreateBindingHelper(generatedName, factory2.createStringLiteralFromNode(specifier.propertyName || specifier.name), specifier.propertyName ? factory2.createStringLiteralFromNode(specifier.name) : void 0)), specifier), specifier)); - } - else { - var exportNeedsImportDefault = !!getESModuleInterop(compilerOptions) && !(getInternalEmitFlags(node) & 2 /* NeverApplyImportHelper */) && idText(specifier.propertyName || specifier.name) === "default"; - var exportedValue = factory2.createPropertyAccessExpression(exportNeedsImportDefault ? emitHelpers().createImportDefaultHelper(generatedName) : generatedName, specifier.propertyName || specifier.name); - statements.push(setOriginalNode(setTextRange(factory2.createExpressionStatement(createExportExpression(factory2.getExportName(specifier), exportedValue, - /*location*/ - void 0, - /*liveBinding*/ - true)), specifier), specifier)); - } - } - } - catch (e_520_1) { e_520 = { error: e_520_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_520) throw e_520.error; } - } - return singleOrMany(statements); - } - else if (node.exportClause) { - var statements = []; - statements.push(setOriginalNode(setTextRange(factory2.createExpressionStatement(createExportExpression(factory2.cloneNode(node.exportClause.name), getHelperExpressionForExport(node, moduleKind !== 2 /* AMD */ ? createRequireCall2(node) : isExportNamespaceAsDefaultDeclaration(node) ? generatedName : factory2.createIdentifier(idText(node.exportClause.name))))), node), node)); - return singleOrMany(statements); - } - else { - return setOriginalNode(setTextRange(factory2.createExpressionStatement(emitHelpers().createExportStarHelper(moduleKind !== 2 /* AMD */ ? createRequireCall2(node) : generatedName)), node), node); - } - } - function visitTopLevelExportAssignment(node) { - if (node.isExportEquals) { - return void 0; - } - return createExportStatement(factory2.createIdentifier("default"), visitNode(node.expression, visitor, isExpression), - /*location*/ - node, - /*allowComments*/ - true); - } - function visitFunctionDeclaration(node) { - var statements; - if (hasSyntacticModifier(node, 1 /* Export */)) { - statements = append(statements, setOriginalNode(setTextRange(factory2.createFunctionDeclaration(visitNodes2(node.modifiers, modifierVisitor, isModifier), node.asteriskToken, factory2.getDeclarationName(node, - /*allowComments*/ - true, - /*allowSourceMaps*/ - true), - /*typeParameters*/ - void 0, visitNodes2(node.parameters, visitor, isParameter), - /*type*/ - void 0, visitEachChild(node.body, visitor, context)), - /*location*/ - node), - /*original*/ - node)); - } - else { - statements = append(statements, visitEachChild(node, visitor, context)); - } - statements = appendExportsOfHoistedDeclaration(statements, node); - return singleOrMany(statements); - } - function visitClassDeclaration(node) { - var statements; - if (hasSyntacticModifier(node, 1 /* Export */)) { - statements = append(statements, setOriginalNode(setTextRange(factory2.createClassDeclaration(visitNodes2(node.modifiers, modifierVisitor, isModifierLike), factory2.getDeclarationName(node, - /*allowComments*/ - true, - /*allowSourceMaps*/ - true), - /*typeParameters*/ - void 0, visitNodes2(node.heritageClauses, visitor, isHeritageClause), visitNodes2(node.members, visitor, isClassElement)), node), node)); - } - else { - statements = append(statements, visitEachChild(node, visitor, context)); - } - statements = appendExportsOfHoistedDeclaration(statements, node); - return singleOrMany(statements); - } - function visitVariableStatement(node) { - var e_521, _t; - var statements; - var variables; - var expressions; - if (hasSyntacticModifier(node, 1 /* Export */)) { - var modifiers = void 0; - var removeCommentsOnExpressions = false; - try { - for (var _u = __values(node.declarationList.declarations), _v = _u.next(); !_v.done; _v = _u.next()) { - var variable = _v.value; - if (isIdentifier(variable.name) && isLocalName(variable.name)) { - if (!modifiers) { - modifiers = visitNodes2(node.modifiers, modifierVisitor, isModifier); - } - if (variable.initializer) { - var updatedVariable = factory2.updateVariableDeclaration(variable, variable.name, - /*exclamationToken*/ - void 0, - /*type*/ - void 0, createExportExpression(variable.name, visitNode(variable.initializer, visitor, isExpression))); - variables = append(variables, updatedVariable); - } - else { - variables = append(variables, variable); - } - } - else if (variable.initializer) { - if (!isBindingPattern(variable.name) && (isArrowFunction(variable.initializer) || isFunctionExpression(variable.initializer) || isClassExpression(variable.initializer))) { - var expression = factory2.createAssignment(setTextRange(factory2.createPropertyAccessExpression(factory2.createIdentifier("exports"), variable.name), - /*location*/ - variable.name), factory2.createIdentifier(getTextOfIdentifierOrLiteral(variable.name))); - var updatedVariable = factory2.createVariableDeclaration(variable.name, variable.exclamationToken, variable.type, visitNode(variable.initializer, visitor, isExpression)); - variables = append(variables, updatedVariable); - expressions = append(expressions, expression); - removeCommentsOnExpressions = true; - } - else { - expressions = append(expressions, transformInitializedVariable(variable)); - } - } - } - } - catch (e_521_1) { e_521 = { error: e_521_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_521) throw e_521.error; } - } - if (variables) { - statements = append(statements, factory2.updateVariableStatement(node, modifiers, factory2.updateVariableDeclarationList(node.declarationList, variables))); - } - if (expressions) { - var statement = setOriginalNode(setTextRange(factory2.createExpressionStatement(factory2.inlineExpressions(expressions)), node), node); - if (removeCommentsOnExpressions) { - removeAllComments(statement); - } - statements = append(statements, statement); - } - } - else { - statements = append(statements, visitEachChild(node, visitor, context)); - } - statements = appendExportsOfVariableStatement(statements, node); - return singleOrMany(statements); - } - function createAllExportExpressions(name, value, location) { - var e_522, _t; - var exportedNames = getExports(name); - if (exportedNames) { - var expression = isExportName(name) ? value : factory2.createAssignment(name, value); - try { - for (var exportedNames_2 = __values(exportedNames), exportedNames_2_1 = exportedNames_2.next(); !exportedNames_2_1.done; exportedNames_2_1 = exportedNames_2.next()) { - var exportName = exportedNames_2_1.value; - setEmitFlags(expression, 8 /* NoSubstitution */); - expression = createExportExpression(exportName, expression, - /*location*/ - location); - } - } - catch (e_522_1) { e_522 = { error: e_522_1 }; } - finally { - try { - if (exportedNames_2_1 && !exportedNames_2_1.done && (_t = exportedNames_2.return)) _t.call(exportedNames_2); - } - finally { if (e_522) throw e_522.error; } - } - return expression; - } - return factory2.createAssignment(name, value); - } - function transformInitializedVariable(node) { - if (isBindingPattern(node.name)) { - return flattenDestructuringAssignment(visitNode(node, visitor, isInitializedVariable), visitor, context, 0 /* All */, - /*needsValue*/ - false, createAllExportExpressions); - } - else { - return factory2.createAssignment(setTextRange(factory2.createPropertyAccessExpression(factory2.createIdentifier("exports"), node.name), - /*location*/ - node.name), node.initializer ? visitNode(node.initializer, visitor, isExpression) : factory2.createVoidZero()); - } - } - function appendExportsOfImportDeclaration(statements, decl) { - var e_523, _t; - if (currentModuleInfo.exportEquals) { - return statements; - } - var importClause = decl.importClause; - if (!importClause) { - return statements; - } - var seen = new IdentifierNameMap(); - if (importClause.name) { - statements = appendExportsOfDeclaration(statements, seen, importClause); - } - var namedBindings = importClause.namedBindings; - if (namedBindings) { - switch (namedBindings.kind) { - case 274 /* NamespaceImport */: - statements = appendExportsOfDeclaration(statements, seen, namedBindings); - break; - case 275 /* NamedImports */: - try { - for (var _u = __values(namedBindings.elements), _v = _u.next(); !_v.done; _v = _u.next()) { - var importBinding = _v.value; - statements = appendExportsOfDeclaration(statements, seen, importBinding, - /*liveBinding*/ - true); - } - } - catch (e_523_1) { e_523 = { error: e_523_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_523) throw e_523.error; } - } - break; - } - } - return statements; - } - function appendExportsOfImportEqualsDeclaration(statements, decl) { - if (currentModuleInfo.exportEquals) { - return statements; - } - return appendExportsOfDeclaration(statements, new IdentifierNameMap(), decl); - } - function appendExportsOfVariableStatement(statements, node) { - return appendExportsOfVariableDeclarationList(statements, node.declarationList, - /*isForInOrOfInitializer*/ - false); - } - function appendExportsOfVariableDeclarationList(statements, node, isForInOrOfInitializer) { - var e_524, _t; - if (currentModuleInfo.exportEquals) { - return statements; - } - try { - for (var _u = __values(node.declarations), _v = _u.next(); !_v.done; _v = _u.next()) { - var decl = _v.value; - statements = appendExportsOfBindingElement(statements, decl, isForInOrOfInitializer); - } - } - catch (e_524_1) { e_524 = { error: e_524_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_524) throw e_524.error; } - } - return statements; - } - function appendExportsOfBindingElement(statements, decl, isForInOrOfInitializer) { - var e_525, _t; - if (currentModuleInfo.exportEquals) { - return statements; - } - if (isBindingPattern(decl.name)) { - try { - for (var _u = __values(decl.name.elements), _v = _u.next(); !_v.done; _v = _u.next()) { - var element = _v.value; - if (!isOmittedExpression(element)) { - statements = appendExportsOfBindingElement(statements, element, isForInOrOfInitializer); - } - } - } - catch (e_525_1) { e_525 = { error: e_525_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_525) throw e_525.error; } - } - } - else if (!isGeneratedIdentifier(decl.name) && (!isVariableDeclaration(decl) || decl.initializer || isForInOrOfInitializer)) { - statements = appendExportsOfDeclaration(statements, new IdentifierNameMap(), decl); - } - return statements; - } - function appendExportsOfHoistedDeclaration(statements, decl) { - if (currentModuleInfo.exportEquals) { - return statements; - } - var seen = new IdentifierNameMap(); - if (hasSyntacticModifier(decl, 1 /* Export */)) { - var exportName = hasSyntacticModifier(decl, 1024 /* Default */) ? factory2.createIdentifier("default") : factory2.getDeclarationName(decl); - statements = appendExportStatement(statements, seen, exportName, factory2.getLocalName(decl), - /*location*/ - decl); - } - if (decl.name) { - statements = appendExportsOfDeclaration(statements, seen, decl); - } - return statements; - } - function appendExportsOfDeclaration(statements, seen, decl, liveBinding) { - var e_526, _t; - var name = factory2.getDeclarationName(decl); - var exportSpecifiers = currentModuleInfo.exportSpecifiers.get(name); - if (exportSpecifiers) { - try { - for (var exportSpecifiers_1 = __values(exportSpecifiers), exportSpecifiers_1_1 = exportSpecifiers_1.next(); !exportSpecifiers_1_1.done; exportSpecifiers_1_1 = exportSpecifiers_1.next()) { - var exportSpecifier = exportSpecifiers_1_1.value; - statements = appendExportStatement(statements, seen, exportSpecifier.name, name, - /*location*/ - exportSpecifier.name, - /*allowComments*/ - void 0, liveBinding); - } - } - catch (e_526_1) { e_526 = { error: e_526_1 }; } - finally { - try { - if (exportSpecifiers_1_1 && !exportSpecifiers_1_1.done && (_t = exportSpecifiers_1.return)) _t.call(exportSpecifiers_1); - } - finally { if (e_526) throw e_526.error; } - } - } - return statements; - } - function appendExportStatement(statements, seen, exportName, expression, location, allowComments, liveBinding) { - if (!seen.has(exportName)) { - seen.set(exportName, true); - statements = append(statements, createExportStatement(exportName, expression, location, allowComments, liveBinding)); - } - return statements; - } - function createUnderscoreUnderscoreESModule() { - var statement; - if (languageVersion === 0 /* ES3 */) { - statement = factory2.createExpressionStatement(createExportExpression(factory2.createIdentifier("__esModule"), factory2.createTrue())); - } - else { - statement = factory2.createExpressionStatement(factory2.createCallExpression(factory2.createPropertyAccessExpression(factory2.createIdentifier("Object"), "defineProperty"), - /*typeArguments*/ - void 0, [ - factory2.createIdentifier("exports"), - factory2.createStringLiteral("__esModule"), - factory2.createObjectLiteralExpression([ - factory2.createPropertyAssignment("value", factory2.createTrue()) - ]) - ])); - } - setEmitFlags(statement, 2097152 /* CustomPrologue */); - return statement; - } - function createExportStatement(name, value, location, allowComments, liveBinding) { - var statement = setTextRange(factory2.createExpressionStatement(createExportExpression(name, value, - /*location*/ - void 0, liveBinding)), location); - startOnNewLine(statement); - if (!allowComments) { - setEmitFlags(statement, 3072 /* NoComments */); - } - return statement; - } - function createExportExpression(name, value, location, liveBinding) { - return setTextRange(liveBinding && languageVersion !== 0 /* ES3 */ ? factory2.createCallExpression(factory2.createPropertyAccessExpression(factory2.createIdentifier("Object"), "defineProperty"), - /*typeArguments*/ - void 0, [ - factory2.createIdentifier("exports"), - factory2.createStringLiteralFromNode(name), - factory2.createObjectLiteralExpression([ - factory2.createPropertyAssignment("enumerable", factory2.createTrue()), - factory2.createPropertyAssignment("get", factory2.createFunctionExpression( - /*modifiers*/ - void 0, - /*asteriskToken*/ - void 0, - /*name*/ - void 0, - /*typeParameters*/ - void 0, - /*parameters*/ - [], - /*type*/ - void 0, factory2.createBlock([factory2.createReturnStatement(value)]))) - ]) - ]) : factory2.createAssignment(factory2.createPropertyAccessExpression(factory2.createIdentifier("exports"), factory2.cloneNode(name)), value), location); - } - function modifierVisitor(node) { - switch (node.kind) { - case 95 /* ExportKeyword */: - case 90 /* DefaultKeyword */: - return void 0; - } - return node; - } - function onEmitNode(hint, node, emitCallback) { - if (node.kind === 312 /* SourceFile */) { - currentSourceFile = node; - currentModuleInfo = moduleInfoMap[getOriginalNodeId(currentSourceFile)]; - previousOnEmitNode(hint, node, emitCallback); - currentSourceFile = void 0; - currentModuleInfo = void 0; - } - else { - previousOnEmitNode(hint, node, emitCallback); - } - } - function onSubstituteNode(hint, node) { - node = previousOnSubstituteNode(hint, node); - if (node.id && noSubstitution[node.id]) { - return node; - } - if (hint === 1 /* Expression */) { - return substituteExpression(node); - } - else if (isShorthandPropertyAssignment(node)) { - return substituteShorthandPropertyAssignment(node); - } - return node; - } - function substituteShorthandPropertyAssignment(node) { - var name = node.name; - var exportedOrImportedName = substituteExpressionIdentifier(name); - if (exportedOrImportedName !== name) { - if (node.objectAssignmentInitializer) { - var initializer = factory2.createAssignment(exportedOrImportedName, node.objectAssignmentInitializer); - return setTextRange(factory2.createPropertyAssignment(name, initializer), node); - } - return setTextRange(factory2.createPropertyAssignment(name, exportedOrImportedName), node); - } - return node; - } - function substituteExpression(node) { - switch (node.kind) { - case 80 /* Identifier */: - return substituteExpressionIdentifier(node); - case 213 /* CallExpression */: - return substituteCallExpression(node); - case 215 /* TaggedTemplateExpression */: - return substituteTaggedTemplateExpression(node); - case 226 /* BinaryExpression */: - return substituteBinaryExpression(node); - } - return node; - } - function substituteCallExpression(node) { - if (isIdentifier(node.expression)) { - var expression = substituteExpressionIdentifier(node.expression); - noSubstitution[getNodeId(expression)] = true; - if (!isIdentifier(expression) && !(getEmitFlags(node.expression) & 8192 /* HelperName */)) { - return addInternalEmitFlags(factory2.updateCallExpression(node, expression, - /*typeArguments*/ - void 0, node.arguments), 16 /* IndirectCall */); - } - } - return node; - } - function substituteTaggedTemplateExpression(node) { - if (isIdentifier(node.tag)) { - var tag = substituteExpressionIdentifier(node.tag); - noSubstitution[getNodeId(tag)] = true; - if (!isIdentifier(tag) && !(getEmitFlags(node.tag) & 8192 /* HelperName */)) { - return addInternalEmitFlags(factory2.updateTaggedTemplateExpression(node, tag, - /*typeArguments*/ - void 0, node.template), 16 /* IndirectCall */); - } - } - return node; - } - function substituteExpressionIdentifier(node) { - var _a, _b; - if (getEmitFlags(node) & 8192 /* HelperName */) { - var externalHelpersModuleName = getExternalHelpersModuleName(currentSourceFile); - if (externalHelpersModuleName) { - return factory2.createPropertyAccessExpression(externalHelpersModuleName, node); - } - return node; - } - else if (!(isGeneratedIdentifier(node) && !(node.emitNode.autoGenerate.flags & 64 /* AllowNameSubstitution */)) && !isLocalName(node)) { - var exportContainer = resolver.getReferencedExportContainer(node, isExportName(node)); - if (exportContainer && exportContainer.kind === 312 /* SourceFile */) { - return setTextRange(factory2.createPropertyAccessExpression(factory2.createIdentifier("exports"), factory2.cloneNode(node)), - /*location*/ - node); - } - var importDeclaration = resolver.getReferencedImportDeclaration(node); - if (importDeclaration) { - if (isImportClause(importDeclaration)) { - return setTextRange(factory2.createPropertyAccessExpression(factory2.getGeneratedNameForNode(importDeclaration.parent), factory2.createIdentifier("default")), - /*location*/ - node); - } - else if (isImportSpecifier(importDeclaration)) { - var name_91 = importDeclaration.propertyName || importDeclaration.name; - return setTextRange(factory2.createPropertyAccessExpression(factory2.getGeneratedNameForNode(((_b = (_a = importDeclaration.parent) == null ? void 0 : _a.parent) == null ? void 0 : _b.parent) || importDeclaration), factory2.cloneNode(name_91)), - /*location*/ - node); - } - } - } - return node; - } - function substituteBinaryExpression(node) { - var e_527, _t; - if (isAssignmentOperator(node.operatorToken.kind) && isIdentifier(node.left) && (!isGeneratedIdentifier(node.left) || isFileLevelReservedGeneratedIdentifier(node.left)) && !isLocalName(node.left)) { - var exportedNames = getExports(node.left); - if (exportedNames) { - var expression = node; - try { - for (var exportedNames_3 = __values(exportedNames), exportedNames_3_1 = exportedNames_3.next(); !exportedNames_3_1.done; exportedNames_3_1 = exportedNames_3.next()) { - var exportName = exportedNames_3_1.value; - noSubstitution[getNodeId(expression)] = true; - expression = createExportExpression(exportName, expression, - /*location*/ - node); - } - } - catch (e_527_1) { e_527 = { error: e_527_1 }; } - finally { - try { - if (exportedNames_3_1 && !exportedNames_3_1.done && (_t = exportedNames_3.return)) _t.call(exportedNames_3); - } - finally { if (e_527) throw e_527.error; } - } - return expression; - } - } - return node; - } - function getExports(name) { - var e_528, _t, e_529, _u, e_530, _v; - if (!isGeneratedIdentifier(name)) { - var importDeclaration = resolver.getReferencedImportDeclaration(name); - if (importDeclaration) { - return currentModuleInfo == null ? void 0 : currentModuleInfo.exportedBindings[getOriginalNodeId(importDeclaration)]; - } - var bindingsSet = /* @__PURE__ */ new Set(); - var declarations = resolver.getReferencedValueDeclarations(name); - if (declarations) { - try { - for (var declarations_12 = __values(declarations), declarations_12_1 = declarations_12.next(); !declarations_12_1.done; declarations_12_1 = declarations_12.next()) { - var declaration = declarations_12_1.value; - var bindings = currentModuleInfo == null ? void 0 : currentModuleInfo.exportedBindings[getOriginalNodeId(declaration)]; - if (bindings) { - try { - for (var bindings_1 = (e_529 = void 0, __values(bindings)), bindings_1_1 = bindings_1.next(); !bindings_1_1.done; bindings_1_1 = bindings_1.next()) { - var binding = bindings_1_1.value; - bindingsSet.add(binding); - } - } - catch (e_529_1) { e_529 = { error: e_529_1 }; } - finally { - try { - if (bindings_1_1 && !bindings_1_1.done && (_u = bindings_1.return)) _u.call(bindings_1); - } - finally { if (e_529) throw e_529.error; } - } - } - } - } - catch (e_528_1) { e_528 = { error: e_528_1 }; } - finally { - try { - if (declarations_12_1 && !declarations_12_1.done && (_t = declarations_12.return)) _t.call(declarations_12); - } - finally { if (e_528) throw e_528.error; } - } - if (bindingsSet.size) { - return arrayFrom(bindingsSet); - } - } - } - else if (isFileLevelReservedGeneratedIdentifier(name)) { - var exportSpecifiers = currentModuleInfo == null ? void 0 : currentModuleInfo.exportSpecifiers.get(name); - if (exportSpecifiers) { - var exportedNames = []; - try { - for (var exportSpecifiers_2 = __values(exportSpecifiers), exportSpecifiers_2_1 = exportSpecifiers_2.next(); !exportSpecifiers_2_1.done; exportSpecifiers_2_1 = exportSpecifiers_2.next()) { - var exportSpecifier = exportSpecifiers_2_1.value; - exportedNames.push(exportSpecifier.name); - } - } - catch (e_530_1) { e_530 = { error: e_530_1 }; } - finally { - try { - if (exportSpecifiers_2_1 && !exportSpecifiers_2_1.done && (_v = exportSpecifiers_2.return)) _v.call(exportSpecifiers_2); - } - finally { if (e_530) throw e_530.error; } - } - return exportedNames; - } - } - } -} -var dynamicImportUMDHelper = { - name: "typescript:dynamicimport-sync-require", - scoped: true, - text: "\n var __syncRequire = typeof module === \"object\" && typeof module.exports === \"object\";" -}; -// src/compiler/transformers/module/system.ts -function transformSystemModule(context) { - var factory2 = context.factory, startLexicalEnvironment = context.startLexicalEnvironment, endLexicalEnvironment = context.endLexicalEnvironment, hoistVariableDeclaration = context.hoistVariableDeclaration; - var compilerOptions = context.getCompilerOptions(); - var resolver = context.getEmitResolver(); - var host = context.getEmitHost(); - var previousOnSubstituteNode = context.onSubstituteNode; - var previousOnEmitNode = context.onEmitNode; - context.onSubstituteNode = onSubstituteNode; - context.onEmitNode = onEmitNode; - context.enableSubstitution(80 /* Identifier */); - context.enableSubstitution(304 /* ShorthandPropertyAssignment */); - context.enableSubstitution(226 /* BinaryExpression */); - context.enableSubstitution(236 /* MetaProperty */); - context.enableEmitNotification(312 /* SourceFile */); - var moduleInfoMap = []; - var exportFunctionsMap = []; - var noSubstitutionMap = []; - var contextObjectMap = []; - var currentSourceFile; - var moduleInfo; - var exportFunction; - var contextObject; - var hoistedStatements; - var enclosingBlockScopedContainer; - var noSubstitution; - return chainBundle(context, transformSourceFile); - function transformSourceFile(node) { - if (node.isDeclarationFile || !(isEffectiveExternalModule(node, compilerOptions) || node.transformFlags & 8388608 /* ContainsDynamicImport */)) { - return node; - } - var id = getOriginalNodeId(node); - currentSourceFile = node; - enclosingBlockScopedContainer = node; - moduleInfo = moduleInfoMap[id] = collectExternalModuleInfo(context, node); - exportFunction = factory2.createUniqueName("exports"); - exportFunctionsMap[id] = exportFunction; - contextObject = contextObjectMap[id] = factory2.createUniqueName("context"); - var dependencyGroups = collectDependencyGroups(moduleInfo.externalImports); - var moduleBodyBlock = createSystemModuleBody(node, dependencyGroups); - var moduleBodyFunction = factory2.createFunctionExpression( - /*modifiers*/ - void 0, - /*asteriskToken*/ - void 0, - /*name*/ - void 0, - /*typeParameters*/ - void 0, [ - factory2.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, exportFunction), - factory2.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, contextObject) - ], - /*type*/ - void 0, moduleBodyBlock); - var moduleName = tryGetModuleNameFromFile(factory2, node, host, compilerOptions); - var dependencies = factory2.createArrayLiteralExpression(map(dependencyGroups, function (dependencyGroup) { return dependencyGroup.name; })); - var updated = setEmitFlags(factory2.updateSourceFile(node, setTextRange(factory2.createNodeArray([ - factory2.createExpressionStatement(factory2.createCallExpression(factory2.createPropertyAccessExpression(factory2.createIdentifier("System"), "register"), - /*typeArguments*/ - void 0, moduleName ? [moduleName, dependencies, moduleBodyFunction] : [dependencies, moduleBodyFunction])) - ]), node.statements)), 2048 /* NoTrailingComments */); - if (!outFile(compilerOptions)) { - moveEmitHelpers(updated, moduleBodyBlock, function (helper) { return !helper.scoped; }); - } - if (noSubstitution) { - noSubstitutionMap[id] = noSubstitution; - noSubstitution = void 0; - } - currentSourceFile = void 0; - moduleInfo = void 0; - exportFunction = void 0; - contextObject = void 0; - hoistedStatements = void 0; - enclosingBlockScopedContainer = void 0; - return updated; - } - function collectDependencyGroups(externalImports) { - var e_531, _t; - var groupIndices = /* @__PURE__ */ new Map(); - var dependencyGroups = []; - try { - for (var externalImports_1 = __values(externalImports), externalImports_1_1 = externalImports_1.next(); !externalImports_1_1.done; externalImports_1_1 = externalImports_1.next()) { - var externalImport = externalImports_1_1.value; - var externalModuleName = getExternalModuleNameLiteral(factory2, externalImport, currentSourceFile, host, resolver, compilerOptions); - if (externalModuleName) { - var text = externalModuleName.text; - var groupIndex = groupIndices.get(text); - if (groupIndex !== void 0) { - dependencyGroups[groupIndex].externalImports.push(externalImport); - } - else { - groupIndices.set(text, dependencyGroups.length); - dependencyGroups.push({ - name: externalModuleName, - externalImports: [externalImport] - }); - } - } - } - } - catch (e_531_1) { e_531 = { error: e_531_1 }; } - finally { - try { - if (externalImports_1_1 && !externalImports_1_1.done && (_t = externalImports_1.return)) _t.call(externalImports_1); - } - finally { if (e_531) throw e_531.error; } - } - return dependencyGroups; - } - function createSystemModuleBody(node, dependencyGroups) { - var statements = []; - startLexicalEnvironment(); - var ensureUseStrict = getStrictOptionValue(compilerOptions, "alwaysStrict") || !compilerOptions.noImplicitUseStrict && isExternalModule(currentSourceFile); - var statementOffset = factory2.copyPrologue(node.statements, statements, ensureUseStrict, topLevelVisitor); - statements.push(factory2.createVariableStatement( - /*modifiers*/ - void 0, factory2.createVariableDeclarationList([ - factory2.createVariableDeclaration("__moduleName", - /*exclamationToken*/ - void 0, - /*type*/ - void 0, factory2.createLogicalAnd(contextObject, factory2.createPropertyAccessExpression(contextObject, "id"))) - ]))); - visitNode(moduleInfo.externalHelpersImportDeclaration, topLevelVisitor, isStatement); - var executeStatements = visitNodes2(node.statements, topLevelVisitor, isStatement, statementOffset); - addRange(statements, hoistedStatements); - insertStatementsAfterStandardPrologue(statements, endLexicalEnvironment()); - var exportStarFunction = addExportStarIfNeeded(statements); - var modifiers = node.transformFlags & 2097152 /* ContainsAwait */ ? factory2.createModifiersFromModifierFlags(512 /* Async */) : void 0; - var moduleObject = factory2.createObjectLiteralExpression([ - factory2.createPropertyAssignment("setters", createSettersArray(exportStarFunction, dependencyGroups)), - factory2.createPropertyAssignment("execute", factory2.createFunctionExpression(modifiers, - /*asteriskToken*/ - void 0, - /*name*/ - void 0, - /*typeParameters*/ - void 0, - /*parameters*/ - [], - /*type*/ - void 0, factory2.createBlock(executeStatements, - /*multiLine*/ - true))) - ], - /*multiLine*/ - true); - statements.push(factory2.createReturnStatement(moduleObject)); - return factory2.createBlock(statements, - /*multiLine*/ - true); - } - function addExportStarIfNeeded(statements) { - var e_532, _t, e_533, _u; - if (!moduleInfo.hasExportStarsToExportValues) { - return; - } - if (!moduleInfo.exportedNames && moduleInfo.exportSpecifiers.size === 0) { - var hasExportDeclarationWithExportClause = false; - try { - for (var _v = __values(moduleInfo.externalImports), _w = _v.next(); !_w.done; _w = _v.next()) { - var externalImport = _w.value; - if (externalImport.kind === 278 /* ExportDeclaration */ && externalImport.exportClause) { - hasExportDeclarationWithExportClause = true; - break; - } - } - } - catch (e_532_1) { e_532 = { error: e_532_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_532) throw e_532.error; } - } - if (!hasExportDeclarationWithExportClause) { - var exportStarFunction2 = createExportStarFunction( - /*localNames*/ - void 0); - statements.push(exportStarFunction2); - return exportStarFunction2.name; - } - } - var exportedNames = []; - if (moduleInfo.exportedNames) { - try { - for (var _x = __values(moduleInfo.exportedNames), _y = _x.next(); !_y.done; _y = _x.next()) { - var exportedLocalName = _y.value; - if (exportedLocalName.escapedText === "default") { - continue; - } - exportedNames.push(factory2.createPropertyAssignment(factory2.createStringLiteralFromNode(exportedLocalName), factory2.createTrue())); - } - } - catch (e_533_1) { e_533 = { error: e_533_1 }; } - finally { - try { - if (_y && !_y.done && (_u = _x.return)) _u.call(_x); - } - finally { if (e_533) throw e_533.error; } - } - } - var exportedNamesStorageRef = factory2.createUniqueName("exportedNames"); - statements.push(factory2.createVariableStatement( - /*modifiers*/ - void 0, factory2.createVariableDeclarationList([ - factory2.createVariableDeclaration(exportedNamesStorageRef, - /*exclamationToken*/ - void 0, - /*type*/ - void 0, factory2.createObjectLiteralExpression(exportedNames, - /*multiLine*/ - true)) - ]))); - var exportStarFunction = createExportStarFunction(exportedNamesStorageRef); - statements.push(exportStarFunction); - return exportStarFunction.name; - } - function createExportStarFunction(localNames) { - var exportStarFunction = factory2.createUniqueName("exportStar"); - var m = factory2.createIdentifier("m"); - var n = factory2.createIdentifier("n"); - var exports = factory2.createIdentifier("exports"); - var condition = factory2.createStrictInequality(n, factory2.createStringLiteral("default")); - if (localNames) { - condition = factory2.createLogicalAnd(condition, factory2.createLogicalNot(factory2.createCallExpression(factory2.createPropertyAccessExpression(localNames, "hasOwnProperty"), - /*typeArguments*/ - void 0, [n]))); - } - return factory2.createFunctionDeclaration( - /*modifiers*/ - void 0, - /*asteriskToken*/ - void 0, exportStarFunction, - /*typeParameters*/ - void 0, [factory2.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, m)], - /*type*/ - void 0, factory2.createBlock([ - factory2.createVariableStatement( - /*modifiers*/ - void 0, factory2.createVariableDeclarationList([ - factory2.createVariableDeclaration(exports, - /*exclamationToken*/ - void 0, - /*type*/ - void 0, factory2.createObjectLiteralExpression([])) - ])), - factory2.createForInStatement(factory2.createVariableDeclarationList([ - factory2.createVariableDeclaration(n) - ]), m, factory2.createBlock([ - setEmitFlags(factory2.createIfStatement(condition, factory2.createExpressionStatement(factory2.createAssignment(factory2.createElementAccessExpression(exports, n), factory2.createElementAccessExpression(m, n)))), 1 /* SingleLine */) - ])), - factory2.createExpressionStatement(factory2.createCallExpression(exportFunction, - /*typeArguments*/ - void 0, [exports])) - ], - /*multiLine*/ - true)); - } - function createSettersArray(exportStarFunction, dependencyGroups) { - var e_534, _t, e_535, _u, e_536, _v; - var setters = []; - try { - for (var dependencyGroups_1 = __values(dependencyGroups), dependencyGroups_1_1 = dependencyGroups_1.next(); !dependencyGroups_1_1.done; dependencyGroups_1_1 = dependencyGroups_1.next()) { - var group2 = dependencyGroups_1_1.value; - var localName = forEach(group2.externalImports, function (i) { return getLocalNameForExternalImport(factory2, i, currentSourceFile); }); - var parameterName = localName ? factory2.getGeneratedNameForNode(localName) : factory2.createUniqueName(""); - var statements = []; - try { - for (var _w = (e_535 = void 0, __values(group2.externalImports)), _x = _w.next(); !_x.done; _x = _w.next()) { - var entry = _x.value; - var importVariableName = getLocalNameForExternalImport(factory2, entry, currentSourceFile); - switch (entry.kind) { - case 272 /* ImportDeclaration */: - if (!entry.importClause) { - break; - } - case 271 /* ImportEqualsDeclaration */: - Debug.assert(importVariableName !== void 0); - statements.push(factory2.createExpressionStatement(factory2.createAssignment(importVariableName, parameterName))); - if (hasSyntacticModifier(entry, 1 /* Export */)) { - statements.push(factory2.createExpressionStatement(factory2.createCallExpression(exportFunction, - /*typeArguments*/ - void 0, [ - factory2.createStringLiteral(idText(importVariableName)), - parameterName - ]))); - } - break; - case 278 /* ExportDeclaration */: - Debug.assert(importVariableName !== void 0); - if (entry.exportClause) { - if (isNamedExports(entry.exportClause)) { - var properties = []; - try { - for (var _y = (e_536 = void 0, __values(entry.exportClause.elements)), _z = _y.next(); !_z.done; _z = _y.next()) { - var e = _z.value; - properties.push(factory2.createPropertyAssignment(factory2.createStringLiteral(idText(e.name)), factory2.createElementAccessExpression(parameterName, factory2.createStringLiteral(idText(e.propertyName || e.name))))); - } - } - catch (e_536_1) { e_536 = { error: e_536_1 }; } - finally { - try { - if (_z && !_z.done && (_v = _y.return)) _v.call(_y); - } - finally { if (e_536) throw e_536.error; } - } - statements.push(factory2.createExpressionStatement(factory2.createCallExpression(exportFunction, - /*typeArguments*/ - void 0, [factory2.createObjectLiteralExpression(properties, - /*multiLine*/ - true)]))); - } - else { - statements.push(factory2.createExpressionStatement(factory2.createCallExpression(exportFunction, - /*typeArguments*/ - void 0, [ - factory2.createStringLiteral(idText(entry.exportClause.name)), - parameterName - ]))); - } - } - else { - statements.push(factory2.createExpressionStatement(factory2.createCallExpression(exportStarFunction, - /*typeArguments*/ - void 0, [parameterName]))); - } - break; - } - } - } - catch (e_535_1) { e_535 = { error: e_535_1 }; } - finally { - try { - if (_x && !_x.done && (_u = _w.return)) _u.call(_w); - } - finally { if (e_535) throw e_535.error; } - } - setters.push(factory2.createFunctionExpression( - /*modifiers*/ - void 0, - /*asteriskToken*/ - void 0, - /*name*/ - void 0, - /*typeParameters*/ - void 0, [factory2.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, parameterName)], - /*type*/ - void 0, factory2.createBlock(statements, - /*multiLine*/ - true))); - } - } - catch (e_534_1) { e_534 = { error: e_534_1 }; } - finally { - try { - if (dependencyGroups_1_1 && !dependencyGroups_1_1.done && (_t = dependencyGroups_1.return)) _t.call(dependencyGroups_1); - } - finally { if (e_534) throw e_534.error; } - } - return factory2.createArrayLiteralExpression(setters, - /*multiLine*/ - true); - } - function topLevelVisitor(node) { - switch (node.kind) { - case 272 /* ImportDeclaration */: - return visitImportDeclaration(node); - case 271 /* ImportEqualsDeclaration */: - return visitImportEqualsDeclaration(node); - case 278 /* ExportDeclaration */: - return visitExportDeclaration(node); - case 277 /* ExportAssignment */: - return visitExportAssignment(node); - default: - return topLevelNestedVisitor(node); - } - } - function visitImportDeclaration(node) { - var statements; - if (node.importClause) { - hoistVariableDeclaration(getLocalNameForExternalImport(factory2, node, currentSourceFile)); - } - return singleOrMany(appendExportsOfImportDeclaration(statements, node)); - } - function visitExportDeclaration(node) { - Debug.assertIsDefined(node); - return void 0; - } - function visitImportEqualsDeclaration(node) { - Debug.assert(isExternalModuleImportEqualsDeclaration(node), "import= for internal module references should be handled in an earlier transformer."); - var statements; - hoistVariableDeclaration(getLocalNameForExternalImport(factory2, node, currentSourceFile)); - return singleOrMany(appendExportsOfImportEqualsDeclaration(statements, node)); - } - function visitExportAssignment(node) { - if (node.isExportEquals) { - return void 0; - } - var expression = visitNode(node.expression, visitor, isExpression); - return createExportStatement(factory2.createIdentifier("default"), expression, - /*allowComments*/ - true); - } - function visitFunctionDeclaration(node) { - if (hasSyntacticModifier(node, 1 /* Export */)) { - hoistedStatements = append(hoistedStatements, factory2.updateFunctionDeclaration(node, visitNodes2(node.modifiers, modifierVisitor, isModifierLike), node.asteriskToken, factory2.getDeclarationName(node, - /*allowComments*/ - true, - /*allowSourceMaps*/ - true), - /*typeParameters*/ - void 0, visitNodes2(node.parameters, visitor, isParameter), - /*type*/ - void 0, visitNode(node.body, visitor, isBlock))); - } - else { - hoistedStatements = append(hoistedStatements, visitEachChild(node, visitor, context)); - } - hoistedStatements = appendExportsOfHoistedDeclaration(hoistedStatements, node); - return void 0; - } - function visitClassDeclaration(node) { - var statements; - var name = factory2.getLocalName(node); - hoistVariableDeclaration(name); - statements = append(statements, setTextRange(factory2.createExpressionStatement(factory2.createAssignment(name, setTextRange(factory2.createClassExpression(visitNodes2(node.modifiers, modifierVisitor, isModifierLike), node.name, - /*typeParameters*/ - void 0, visitNodes2(node.heritageClauses, visitor, isHeritageClause), visitNodes2(node.members, visitor, isClassElement)), node))), node)); - statements = appendExportsOfHoistedDeclaration(statements, node); - return singleOrMany(statements); - } - function visitVariableStatement(node) { - var e_537, _t, e_538, _u; - if (!shouldHoistVariableDeclarationList(node.declarationList)) { - return visitNode(node, visitor, isStatement); - } - var statements; - if (isVarUsing(node.declarationList) || isVarAwaitUsing(node.declarationList)) { - var modifiers = visitNodes2(node.modifiers, modifierVisitor, isModifierLike); - var declarations = []; - try { - for (var _v = __values(node.declarationList.declarations), _w = _v.next(); !_w.done; _w = _v.next()) { - var variable = _w.value; - declarations.push(factory2.updateVariableDeclaration(variable, factory2.getGeneratedNameForNode(variable.name), - /*exclamationToken*/ - void 0, - /*type*/ - void 0, transformInitializedVariable(variable, - /*isExportedDeclaration*/ - false))); - } - } - catch (e_537_1) { e_537 = { error: e_537_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_537) throw e_537.error; } - } - var declarationList = factory2.updateVariableDeclarationList(node.declarationList, declarations); - statements = append(statements, factory2.updateVariableStatement(node, modifiers, declarationList)); - } - else { - var expressions = void 0; - var isExportedDeclaration = hasSyntacticModifier(node, 1 /* Export */); - try { - for (var _x = __values(node.declarationList.declarations), _y = _x.next(); !_y.done; _y = _x.next()) { - var variable = _y.value; - if (variable.initializer) { - expressions = append(expressions, transformInitializedVariable(variable, isExportedDeclaration)); - } - else { - hoistBindingElement(variable); - } - } - } - catch (e_538_1) { e_538 = { error: e_538_1 }; } - finally { - try { - if (_y && !_y.done && (_u = _x.return)) _u.call(_x); - } - finally { if (e_538) throw e_538.error; } - } - if (expressions) { - statements = append(statements, setTextRange(factory2.createExpressionStatement(factory2.inlineExpressions(expressions)), node)); - } - } - statements = appendExportsOfVariableStatement(statements, node, - /*exportSelf*/ - false); - return singleOrMany(statements); - } - function hoistBindingElement(node) { - var e_539, _t; - if (isBindingPattern(node.name)) { - try { - for (var _u = __values(node.name.elements), _v = _u.next(); !_v.done; _v = _u.next()) { - var element = _v.value; - if (!isOmittedExpression(element)) { - hoistBindingElement(element); - } - } - } - catch (e_539_1) { e_539 = { error: e_539_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_539) throw e_539.error; } - } - } - else { - hoistVariableDeclaration(factory2.cloneNode(node.name)); - } - } - function shouldHoistVariableDeclarationList(node) { - return (getEmitFlags(node) & 4194304 /* NoHoisting */) === 0 && (enclosingBlockScopedContainer.kind === 312 /* SourceFile */ || (getOriginalNode(node).flags & 7 /* BlockScoped */) === 0); - } - function transformInitializedVariable(node, isExportedDeclaration) { - var createAssignment = isExportedDeclaration ? createExportedVariableAssignment : createNonExportedVariableAssignment; - return isBindingPattern(node.name) ? flattenDestructuringAssignment(node, visitor, context, 0 /* All */, - /*needsValue*/ - false, createAssignment) : node.initializer ? createAssignment(node.name, visitNode(node.initializer, visitor, isExpression)) : node.name; - } - function createExportedVariableAssignment(name, value, location) { - return createVariableAssignment(name, value, location, - /*isExportedDeclaration*/ - true); - } - function createNonExportedVariableAssignment(name, value, location) { - return createVariableAssignment(name, value, location, - /*isExportedDeclaration*/ - false); - } - function createVariableAssignment(name, value, location, isExportedDeclaration) { - hoistVariableDeclaration(factory2.cloneNode(name)); - return isExportedDeclaration ? createExportExpression(name, preventSubstitution(setTextRange(factory2.createAssignment(name, value), location))) : preventSubstitution(setTextRange(factory2.createAssignment(name, value), location)); - } - function appendExportsOfImportDeclaration(statements, decl) { - var e_540, _t; - if (moduleInfo.exportEquals) { - return statements; - } - var importClause = decl.importClause; - if (!importClause) { - return statements; - } - if (importClause.name) { - statements = appendExportsOfDeclaration(statements, importClause); - } - var namedBindings = importClause.namedBindings; - if (namedBindings) { - switch (namedBindings.kind) { - case 274 /* NamespaceImport */: - statements = appendExportsOfDeclaration(statements, namedBindings); - break; - case 275 /* NamedImports */: - try { - for (var _u = __values(namedBindings.elements), _v = _u.next(); !_v.done; _v = _u.next()) { - var importBinding = _v.value; - statements = appendExportsOfDeclaration(statements, importBinding); - } - } - catch (e_540_1) { e_540 = { error: e_540_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_540) throw e_540.error; } - } - break; - } - } - return statements; - } - function appendExportsOfImportEqualsDeclaration(statements, decl) { - if (moduleInfo.exportEquals) { - return statements; - } - return appendExportsOfDeclaration(statements, decl); - } - function appendExportsOfVariableStatement(statements, node, exportSelf) { - var e_541, _t; - if (moduleInfo.exportEquals) { - return statements; - } - try { - for (var _u = __values(node.declarationList.declarations), _v = _u.next(); !_v.done; _v = _u.next()) { - var decl = _v.value; - if (decl.initializer || exportSelf) { - statements = appendExportsOfBindingElement(statements, decl, exportSelf); - } - } - } - catch (e_541_1) { e_541 = { error: e_541_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_541) throw e_541.error; } - } - return statements; - } - function appendExportsOfBindingElement(statements, decl, exportSelf) { - var e_542, _t; - if (moduleInfo.exportEquals) { - return statements; - } - if (isBindingPattern(decl.name)) { - try { - for (var _u = __values(decl.name.elements), _v = _u.next(); !_v.done; _v = _u.next()) { - var element = _v.value; - if (!isOmittedExpression(element)) { - statements = appendExportsOfBindingElement(statements, element, exportSelf); - } - } - } - catch (e_542_1) { e_542 = { error: e_542_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_542) throw e_542.error; } - } - } - else if (!isGeneratedIdentifier(decl.name)) { - var excludeName = void 0; - if (exportSelf) { - statements = appendExportStatement(statements, decl.name, factory2.getLocalName(decl)); - excludeName = idText(decl.name); - } - statements = appendExportsOfDeclaration(statements, decl, excludeName); - } - return statements; - } - function appendExportsOfHoistedDeclaration(statements, decl) { - if (moduleInfo.exportEquals) { - return statements; - } - var excludeName; - if (hasSyntacticModifier(decl, 1 /* Export */)) { - var exportName = hasSyntacticModifier(decl, 1024 /* Default */) ? factory2.createStringLiteral("default") : decl.name; - statements = appendExportStatement(statements, exportName, factory2.getLocalName(decl)); - excludeName = getTextOfIdentifierOrLiteral(exportName); - } - if (decl.name) { - statements = appendExportsOfDeclaration(statements, decl, excludeName); - } - return statements; - } - function appendExportsOfDeclaration(statements, decl, excludeName) { - var e_543, _t; - if (moduleInfo.exportEquals) { - return statements; - } - var name = factory2.getDeclarationName(decl); - var exportSpecifiers = moduleInfo.exportSpecifiers.get(name); - if (exportSpecifiers) { - try { - for (var exportSpecifiers_3 = __values(exportSpecifiers), exportSpecifiers_3_1 = exportSpecifiers_3.next(); !exportSpecifiers_3_1.done; exportSpecifiers_3_1 = exportSpecifiers_3.next()) { - var exportSpecifier = exportSpecifiers_3_1.value; - if (exportSpecifier.name.escapedText !== excludeName) { - statements = appendExportStatement(statements, exportSpecifier.name, name); - } - } - } - catch (e_543_1) { e_543 = { error: e_543_1 }; } - finally { - try { - if (exportSpecifiers_3_1 && !exportSpecifiers_3_1.done && (_t = exportSpecifiers_3.return)) _t.call(exportSpecifiers_3); - } - finally { if (e_543) throw e_543.error; } - } - } - return statements; - } - function appendExportStatement(statements, exportName, expression, allowComments) { - statements = append(statements, createExportStatement(exportName, expression, allowComments)); - return statements; - } - function createExportStatement(name, value, allowComments) { - var statement = factory2.createExpressionStatement(createExportExpression(name, value)); - startOnNewLine(statement); - if (!allowComments) { - setEmitFlags(statement, 3072 /* NoComments */); - } - return statement; - } - function createExportExpression(name, value) { - var exportName = isIdentifier(name) ? factory2.createStringLiteralFromNode(name) : name; - setEmitFlags(value, getEmitFlags(value) | 3072 /* NoComments */); - return setCommentRange(factory2.createCallExpression(exportFunction, - /*typeArguments*/ - void 0, [exportName, value]), value); - } - function topLevelNestedVisitor(node) { - switch (node.kind) { - case 243 /* VariableStatement */: - return visitVariableStatement(node); - case 262 /* FunctionDeclaration */: - return visitFunctionDeclaration(node); - case 263 /* ClassDeclaration */: - return visitClassDeclaration(node); - case 248 /* ForStatement */: - return visitForStatement(node, - /*isTopLevel*/ - true); - case 249 /* ForInStatement */: - return visitForInStatement(node); - case 250 /* ForOfStatement */: - return visitForOfStatement(node); - case 246 /* DoStatement */: - return visitDoStatement(node); - case 247 /* WhileStatement */: - return visitWhileStatement(node); - case 256 /* LabeledStatement */: - return visitLabeledStatement(node); - case 254 /* WithStatement */: - return visitWithStatement(node); - case 245 /* IfStatement */: - return visitIfStatement(node); - case 255 /* SwitchStatement */: - return visitSwitchStatement(node); - case 269 /* CaseBlock */: - return visitCaseBlock(node); - case 296 /* CaseClause */: - return visitCaseClause(node); - case 297 /* DefaultClause */: - return visitDefaultClause(node); - case 258 /* TryStatement */: - return visitTryStatement(node); - case 299 /* CatchClause */: - return visitCatchClause(node); - case 241 /* Block */: - return visitBlock(node); - default: - return visitor(node); - } - } - function visitForStatement(node, isTopLevel) { - var savedEnclosingBlockScopedContainer = enclosingBlockScopedContainer; - enclosingBlockScopedContainer = node; - node = factory2.updateForStatement(node, visitNode(node.initializer, isTopLevel ? visitForInitializer : discardedValueVisitor, isForInitializer), visitNode(node.condition, visitor, isExpression), visitNode(node.incrementor, discardedValueVisitor, isExpression), visitIterationBody(node.statement, isTopLevel ? topLevelNestedVisitor : visitor, context)); - enclosingBlockScopedContainer = savedEnclosingBlockScopedContainer; - return node; - } - function visitForInStatement(node) { - var savedEnclosingBlockScopedContainer = enclosingBlockScopedContainer; - enclosingBlockScopedContainer = node; - node = factory2.updateForInStatement(node, visitForInitializer(node.initializer), visitNode(node.expression, visitor, isExpression), visitIterationBody(node.statement, topLevelNestedVisitor, context)); - enclosingBlockScopedContainer = savedEnclosingBlockScopedContainer; - return node; - } - function visitForOfStatement(node) { - var savedEnclosingBlockScopedContainer = enclosingBlockScopedContainer; - enclosingBlockScopedContainer = node; - node = factory2.updateForOfStatement(node, node.awaitModifier, visitForInitializer(node.initializer), visitNode(node.expression, visitor, isExpression), visitIterationBody(node.statement, topLevelNestedVisitor, context)); - enclosingBlockScopedContainer = savedEnclosingBlockScopedContainer; - return node; - } - function shouldHoistForInitializer(node) { - return isVariableDeclarationList(node) && shouldHoistVariableDeclarationList(node); - } - function visitForInitializer(node) { - var e_544, _t; - if (shouldHoistForInitializer(node)) { - var expressions = void 0; - try { - for (var _u = __values(node.declarations), _v = _u.next(); !_v.done; _v = _u.next()) { - var variable = _v.value; - expressions = append(expressions, transformInitializedVariable(variable, - /*isExportedDeclaration*/ - false)); - if (!variable.initializer) { - hoistBindingElement(variable); - } - } - } - catch (e_544_1) { e_544 = { error: e_544_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_544) throw e_544.error; } - } - return expressions ? factory2.inlineExpressions(expressions) : factory2.createOmittedExpression(); - } - else { - return visitNode(node, discardedValueVisitor, isForInitializer); - } - } - function visitDoStatement(node) { - return factory2.updateDoStatement(node, visitIterationBody(node.statement, topLevelNestedVisitor, context), visitNode(node.expression, visitor, isExpression)); - } - function visitWhileStatement(node) { - return factory2.updateWhileStatement(node, visitNode(node.expression, visitor, isExpression), visitIterationBody(node.statement, topLevelNestedVisitor, context)); - } - function visitLabeledStatement(node) { - return factory2.updateLabeledStatement(node, node.label, Debug.checkDefined(visitNode(node.statement, topLevelNestedVisitor, isStatement, factory2.liftToBlock))); - } - function visitWithStatement(node) { - return factory2.updateWithStatement(node, visitNode(node.expression, visitor, isExpression), Debug.checkDefined(visitNode(node.statement, topLevelNestedVisitor, isStatement, factory2.liftToBlock))); - } - function visitIfStatement(node) { - return factory2.updateIfStatement(node, visitNode(node.expression, visitor, isExpression), Debug.checkDefined(visitNode(node.thenStatement, topLevelNestedVisitor, isStatement, factory2.liftToBlock)), visitNode(node.elseStatement, topLevelNestedVisitor, isStatement, factory2.liftToBlock)); - } - function visitSwitchStatement(node) { - return factory2.updateSwitchStatement(node, visitNode(node.expression, visitor, isExpression), Debug.checkDefined(visitNode(node.caseBlock, topLevelNestedVisitor, isCaseBlock))); - } - function visitCaseBlock(node) { - var savedEnclosingBlockScopedContainer = enclosingBlockScopedContainer; - enclosingBlockScopedContainer = node; - node = factory2.updateCaseBlock(node, visitNodes2(node.clauses, topLevelNestedVisitor, isCaseOrDefaultClause)); - enclosingBlockScopedContainer = savedEnclosingBlockScopedContainer; - return node; - } - function visitCaseClause(node) { - return factory2.updateCaseClause(node, visitNode(node.expression, visitor, isExpression), visitNodes2(node.statements, topLevelNestedVisitor, isStatement)); - } - function visitDefaultClause(node) { - return visitEachChild(node, topLevelNestedVisitor, context); - } - function visitTryStatement(node) { - return visitEachChild(node, topLevelNestedVisitor, context); - } - function visitCatchClause(node) { - var savedEnclosingBlockScopedContainer = enclosingBlockScopedContainer; - enclosingBlockScopedContainer = node; - node = factory2.updateCatchClause(node, node.variableDeclaration, Debug.checkDefined(visitNode(node.block, topLevelNestedVisitor, isBlock))); - enclosingBlockScopedContainer = savedEnclosingBlockScopedContainer; - return node; - } - function visitBlock(node) { - var savedEnclosingBlockScopedContainer = enclosingBlockScopedContainer; - enclosingBlockScopedContainer = node; - node = visitEachChild(node, topLevelNestedVisitor, context); - enclosingBlockScopedContainer = savedEnclosingBlockScopedContainer; - return node; - } - function visitorWorker(node, valueIsDiscarded) { - if (!(node.transformFlags & (4096 /* ContainsDestructuringAssignment */ | 8388608 /* ContainsDynamicImport */ | 268435456 /* ContainsUpdateExpressionForIdentifier */))) { - return node; - } - switch (node.kind) { - case 248 /* ForStatement */: - return visitForStatement(node, - /*isTopLevel*/ - false); - case 244 /* ExpressionStatement */: - return visitExpressionStatement(node); - case 217 /* ParenthesizedExpression */: - return visitParenthesizedExpression(node, valueIsDiscarded); - case 360 /* PartiallyEmittedExpression */: - return visitPartiallyEmittedExpression(node, valueIsDiscarded); - case 226 /* BinaryExpression */: - if (isDestructuringAssignment(node)) { - return visitDestructuringAssignment(node, valueIsDiscarded); - } - break; - case 213 /* CallExpression */: - if (isImportCall(node)) { - return visitImportCallExpression(node); - } - break; - case 224 /* PrefixUnaryExpression */: - case 225 /* PostfixUnaryExpression */: - return visitPrefixOrPostfixUnaryExpression(node, valueIsDiscarded); - } - return visitEachChild(node, visitor, context); - } - function visitor(node) { - return visitorWorker(node, - /*valueIsDiscarded*/ - false); - } - function discardedValueVisitor(node) { - return visitorWorker(node, - /*valueIsDiscarded*/ - true); - } - function visitExpressionStatement(node) { - return factory2.updateExpressionStatement(node, visitNode(node.expression, discardedValueVisitor, isExpression)); - } - function visitParenthesizedExpression(node, valueIsDiscarded) { - return factory2.updateParenthesizedExpression(node, visitNode(node.expression, valueIsDiscarded ? discardedValueVisitor : visitor, isExpression)); - } - function visitPartiallyEmittedExpression(node, valueIsDiscarded) { - return factory2.updatePartiallyEmittedExpression(node, visitNode(node.expression, valueIsDiscarded ? discardedValueVisitor : visitor, isExpression)); - } - function visitImportCallExpression(node) { - var externalModuleName = getExternalModuleNameLiteral(factory2, node, currentSourceFile, host, resolver, compilerOptions); - var firstArgument = visitNode(firstOrUndefined(node.arguments), visitor, isExpression); - var argument = externalModuleName && (!firstArgument || !isStringLiteral(firstArgument) || firstArgument.text !== externalModuleName.text) ? externalModuleName : firstArgument; - return factory2.createCallExpression(factory2.createPropertyAccessExpression(contextObject, factory2.createIdentifier("import")), - /*typeArguments*/ - void 0, argument ? [argument] : []); - } - function visitDestructuringAssignment(node, valueIsDiscarded) { - if (hasExportedReferenceInDestructuringTarget(node.left)) { - return flattenDestructuringAssignment(node, visitor, context, 0 /* All */, !valueIsDiscarded); - } - return visitEachChild(node, visitor, context); - } - function hasExportedReferenceInDestructuringTarget(node) { - if (isAssignmentExpression(node, - /*excludeCompoundAssignment*/ - true)) { - return hasExportedReferenceInDestructuringTarget(node.left); - } - else if (isSpreadElement(node)) { - return hasExportedReferenceInDestructuringTarget(node.expression); - } - else if (isObjectLiteralExpression(node)) { - return some(node.properties, hasExportedReferenceInDestructuringTarget); - } - else if (isArrayLiteralExpression(node)) { - return some(node.elements, hasExportedReferenceInDestructuringTarget); - } - else if (isShorthandPropertyAssignment(node)) { - return hasExportedReferenceInDestructuringTarget(node.name); - } - else if (isPropertyAssignment(node)) { - return hasExportedReferenceInDestructuringTarget(node.initializer); - } - else if (isIdentifier(node)) { - var container = resolver.getReferencedExportContainer(node); - return container !== void 0 && container.kind === 312 /* SourceFile */; - } - else { - return false; - } - } - function visitPrefixOrPostfixUnaryExpression(node, valueIsDiscarded) { - var e_545, _t; - if ((node.operator === 46 /* PlusPlusToken */ || node.operator === 47 /* MinusMinusToken */) && isIdentifier(node.operand) && !isGeneratedIdentifier(node.operand) && !isLocalName(node.operand) && !isDeclarationNameOfEnumOrNamespace(node.operand)) { - var exportedNames = getExports(node.operand); - if (exportedNames) { - var temp = void 0; - var expression = visitNode(node.operand, visitor, isExpression); - if (isPrefixUnaryExpression(node)) { - expression = factory2.updatePrefixUnaryExpression(node, expression); - } - else { - expression = factory2.updatePostfixUnaryExpression(node, expression); - if (!valueIsDiscarded) { - temp = factory2.createTempVariable(hoistVariableDeclaration); - expression = factory2.createAssignment(temp, expression); - setTextRange(expression, node); - } - expression = factory2.createComma(expression, factory2.cloneNode(node.operand)); - setTextRange(expression, node); - } - try { - for (var exportedNames_4 = __values(exportedNames), exportedNames_4_1 = exportedNames_4.next(); !exportedNames_4_1.done; exportedNames_4_1 = exportedNames_4.next()) { - var exportName = exportedNames_4_1.value; - expression = createExportExpression(exportName, preventSubstitution(expression)); - } - } - catch (e_545_1) { e_545 = { error: e_545_1 }; } - finally { - try { - if (exportedNames_4_1 && !exportedNames_4_1.done && (_t = exportedNames_4.return)) _t.call(exportedNames_4); - } - finally { if (e_545) throw e_545.error; } - } - if (temp) { - expression = factory2.createComma(expression, temp); - setTextRange(expression, node); - } - return expression; - } - } - return visitEachChild(node, visitor, context); - } - function modifierVisitor(node) { - switch (node.kind) { - case 95 /* ExportKeyword */: - case 90 /* DefaultKeyword */: - return void 0; - } - return node; - } - function onEmitNode(hint, node, emitCallback) { - if (node.kind === 312 /* SourceFile */) { - var id = getOriginalNodeId(node); - currentSourceFile = node; - moduleInfo = moduleInfoMap[id]; - exportFunction = exportFunctionsMap[id]; - noSubstitution = noSubstitutionMap[id]; - contextObject = contextObjectMap[id]; - if (noSubstitution) { - delete noSubstitutionMap[id]; - } - previousOnEmitNode(hint, node, emitCallback); - currentSourceFile = void 0; - moduleInfo = void 0; - exportFunction = void 0; - contextObject = void 0; - noSubstitution = void 0; - } - else { - previousOnEmitNode(hint, node, emitCallback); - } - } - function onSubstituteNode(hint, node) { - node = previousOnSubstituteNode(hint, node); - if (isSubstitutionPrevented(node)) { - return node; - } - if (hint === 1 /* Expression */) { - return substituteExpression(node); - } - else if (hint === 4 /* Unspecified */) { - return substituteUnspecified(node); - } - return node; - } - function substituteUnspecified(node) { - switch (node.kind) { - case 304 /* ShorthandPropertyAssignment */: - return substituteShorthandPropertyAssignment(node); - } - return node; - } - function substituteShorthandPropertyAssignment(node) { - var _a, _b; - var name = node.name; - if (!isGeneratedIdentifier(name) && !isLocalName(name)) { - var importDeclaration = resolver.getReferencedImportDeclaration(name); - if (importDeclaration) { - if (isImportClause(importDeclaration)) { - return setTextRange(factory2.createPropertyAssignment(factory2.cloneNode(name), factory2.createPropertyAccessExpression(factory2.getGeneratedNameForNode(importDeclaration.parent), factory2.createIdentifier("default"))), - /*location*/ - node); - } - else if (isImportSpecifier(importDeclaration)) { - return setTextRange(factory2.createPropertyAssignment(factory2.cloneNode(name), factory2.createPropertyAccessExpression(factory2.getGeneratedNameForNode(((_b = (_a = importDeclaration.parent) == null ? void 0 : _a.parent) == null ? void 0 : _b.parent) || importDeclaration), factory2.cloneNode(importDeclaration.propertyName || importDeclaration.name))), - /*location*/ - node); - } - } - } - return node; - } - function substituteExpression(node) { - switch (node.kind) { - case 80 /* Identifier */: - return substituteExpressionIdentifier(node); - case 226 /* BinaryExpression */: - return substituteBinaryExpression(node); - case 236 /* MetaProperty */: - return substituteMetaProperty(node); - } - return node; - } - function substituteExpressionIdentifier(node) { - var _a, _b; - if (getEmitFlags(node) & 8192 /* HelperName */) { - var externalHelpersModuleName = getExternalHelpersModuleName(currentSourceFile); - if (externalHelpersModuleName) { - return factory2.createPropertyAccessExpression(externalHelpersModuleName, node); - } - return node; - } - if (!isGeneratedIdentifier(node) && !isLocalName(node)) { - var importDeclaration = resolver.getReferencedImportDeclaration(node); - if (importDeclaration) { - if (isImportClause(importDeclaration)) { - return setTextRange(factory2.createPropertyAccessExpression(factory2.getGeneratedNameForNode(importDeclaration.parent), factory2.createIdentifier("default")), - /*location*/ - node); - } - else if (isImportSpecifier(importDeclaration)) { - return setTextRange(factory2.createPropertyAccessExpression(factory2.getGeneratedNameForNode(((_b = (_a = importDeclaration.parent) == null ? void 0 : _a.parent) == null ? void 0 : _b.parent) || importDeclaration), factory2.cloneNode(importDeclaration.propertyName || importDeclaration.name)), - /*location*/ - node); - } - } - } - return node; - } - function substituteBinaryExpression(node) { - var e_546, _t; - if (isAssignmentOperator(node.operatorToken.kind) && isIdentifier(node.left) && (!isGeneratedIdentifier(node.left) || isFileLevelReservedGeneratedIdentifier(node.left)) && !isLocalName(node.left)) { - var exportedNames = getExports(node.left); - if (exportedNames) { - var expression = node; - try { - for (var exportedNames_5 = __values(exportedNames), exportedNames_5_1 = exportedNames_5.next(); !exportedNames_5_1.done; exportedNames_5_1 = exportedNames_5.next()) { - var exportName = exportedNames_5_1.value; - expression = createExportExpression(exportName, preventSubstitution(expression)); - } - } - catch (e_546_1) { e_546 = { error: e_546_1 }; } - finally { - try { - if (exportedNames_5_1 && !exportedNames_5_1.done && (_t = exportedNames_5.return)) _t.call(exportedNames_5); - } - finally { if (e_546) throw e_546.error; } - } - return expression; - } - } - return node; - } - function substituteMetaProperty(node) { - if (isImportMeta(node)) { - return factory2.createPropertyAccessExpression(contextObject, factory2.createIdentifier("meta")); - } - return node; - } - function getExports(name) { - var e_547, _t; - var exportedNames; - var valueDeclaration = getReferencedDeclaration(name); - if (valueDeclaration) { - var exportContainer = resolver.getReferencedExportContainer(name, - /*prefixLocals*/ - false); - if (exportContainer && exportContainer.kind === 312 /* SourceFile */) { - exportedNames = append(exportedNames, factory2.getDeclarationName(valueDeclaration)); - } - exportedNames = addRange(exportedNames, moduleInfo == null ? void 0 : moduleInfo.exportedBindings[getOriginalNodeId(valueDeclaration)]); - } - else if (isGeneratedIdentifier(name) && isFileLevelReservedGeneratedIdentifier(name)) { - var exportSpecifiers = moduleInfo == null ? void 0 : moduleInfo.exportSpecifiers.get(name); - if (exportSpecifiers) { - var exportedNames2 = []; - try { - for (var exportSpecifiers_4 = __values(exportSpecifiers), exportSpecifiers_4_1 = exportSpecifiers_4.next(); !exportSpecifiers_4_1.done; exportSpecifiers_4_1 = exportSpecifiers_4.next()) { - var exportSpecifier = exportSpecifiers_4_1.value; - exportedNames2.push(exportSpecifier.name); - } - } - catch (e_547_1) { e_547 = { error: e_547_1 }; } - finally { - try { - if (exportSpecifiers_4_1 && !exportSpecifiers_4_1.done && (_t = exportSpecifiers_4.return)) _t.call(exportSpecifiers_4); - } - finally { if (e_547) throw e_547.error; } - } - return exportedNames2; - } - } - return exportedNames; - } - function getReferencedDeclaration(name) { - var e_548, _t; - if (!isGeneratedIdentifier(name)) { - var importDeclaration = resolver.getReferencedImportDeclaration(name); - if (importDeclaration) - return importDeclaration; - var valueDeclaration = resolver.getReferencedValueDeclaration(name); - if (valueDeclaration && (moduleInfo == null ? void 0 : moduleInfo.exportedBindings[getOriginalNodeId(valueDeclaration)])) - return valueDeclaration; - var declarations = resolver.getReferencedValueDeclarations(name); - if (declarations) { - try { - for (var declarations_13 = __values(declarations), declarations_13_1 = declarations_13.next(); !declarations_13_1.done; declarations_13_1 = declarations_13.next()) { - var declaration = declarations_13_1.value; - if (declaration !== valueDeclaration && (moduleInfo == null ? void 0 : moduleInfo.exportedBindings[getOriginalNodeId(declaration)])) - return declaration; - } - } - catch (e_548_1) { e_548 = { error: e_548_1 }; } - finally { - try { - if (declarations_13_1 && !declarations_13_1.done && (_t = declarations_13.return)) _t.call(declarations_13); - } - finally { if (e_548) throw e_548.error; } - } - } - return valueDeclaration; - } - } - function preventSubstitution(node) { - if (noSubstitution === void 0) - noSubstitution = []; - noSubstitution[getNodeId(node)] = true; - return node; - } - function isSubstitutionPrevented(node) { - return noSubstitution && node.id && noSubstitution[node.id]; - } -} -// src/compiler/transformers/module/esnextAnd2015.ts -function transformECMAScriptModule(context) { - var factory2 = context.factory, emitHelpers = context.getEmitHelperFactory; - var host = context.getEmitHost(); - var resolver = context.getEmitResolver(); - var compilerOptions = context.getCompilerOptions(); - var languageVersion = getEmitScriptTarget(compilerOptions); - var previousOnEmitNode = context.onEmitNode; - var previousOnSubstituteNode = context.onSubstituteNode; - context.onEmitNode = onEmitNode; - context.onSubstituteNode = onSubstituteNode; - context.enableEmitNotification(312 /* SourceFile */); - context.enableSubstitution(80 /* Identifier */); - var helperNameSubstitutions; - var currentSourceFile; - var importRequireStatements; - return chainBundle(context, transformSourceFile); - function transformSourceFile(node) { - if (node.isDeclarationFile) { - return node; - } - if (isExternalModule(node) || getIsolatedModules(compilerOptions)) { - currentSourceFile = node; - importRequireStatements = void 0; - var result = updateExternalModule(node); - currentSourceFile = void 0; - if (importRequireStatements) { - result = factory2.updateSourceFile(result, setTextRange(factory2.createNodeArray(insertStatementsAfterCustomPrologue(result.statements.slice(), importRequireStatements)), result.statements)); - } - if (!isExternalModule(node) || some(result.statements, isExternalModuleIndicator)) { - return result; - } - return factory2.updateSourceFile(result, setTextRange(factory2.createNodeArray(__spreadArray(__spreadArray([], __read(result.statements), false), [createEmptyExports(factory2)], false)), result.statements)); - } - return node; - } - function updateExternalModule(node) { - var externalHelpersImportDeclaration = createExternalHelpersImportDeclarationIfNeeded(factory2, emitHelpers(), node, compilerOptions); - if (externalHelpersImportDeclaration) { - var statements = []; - var statementOffset = factory2.copyPrologue(node.statements, statements); - append(statements, externalHelpersImportDeclaration); - addRange(statements, visitNodes2(node.statements, visitor, isStatement, statementOffset)); - return factory2.updateSourceFile(node, setTextRange(factory2.createNodeArray(statements), node.statements)); - } - else { - return visitEachChild(node, visitor, context); - } - } - function visitor(node) { - switch (node.kind) { - case 271 /* ImportEqualsDeclaration */: - return getEmitModuleKind(compilerOptions) >= 100 /* Node16 */ ? visitImportEqualsDeclaration(node) : void 0; - case 277 /* ExportAssignment */: - return visitExportAssignment(node); - case 278 /* ExportDeclaration */: - var exportDecl = node; - return visitExportDeclaration(exportDecl); - } - return node; - } - function createRequireCall2(importNode) { - var moduleName = getExternalModuleNameLiteral(factory2, importNode, Debug.checkDefined(currentSourceFile), host, resolver, compilerOptions); - var args = []; - if (moduleName) { - args.push(moduleName); - } - if (!importRequireStatements) { - var createRequireName = factory2.createUniqueName("_createRequire", 16 /* Optimistic */ | 32 /* FileLevel */); - var importStatement = factory2.createImportDeclaration( - /*modifiers*/ - void 0, factory2.createImportClause( - /*isTypeOnly*/ - false, - /*name*/ - void 0, factory2.createNamedImports([ - factory2.createImportSpecifier( - /*isTypeOnly*/ - false, factory2.createIdentifier("createRequire"), createRequireName) - ])), factory2.createStringLiteral("module")); - var requireHelperName = factory2.createUniqueName("__require", 16 /* Optimistic */ | 32 /* FileLevel */); - var requireStatement = factory2.createVariableStatement( - /*modifiers*/ - void 0, factory2.createVariableDeclarationList([ - factory2.createVariableDeclaration(requireHelperName, - /*exclamationToken*/ - void 0, - /*type*/ - void 0, factory2.createCallExpression(factory2.cloneNode(createRequireName), - /*typeArguments*/ - void 0, [ - factory2.createPropertyAccessExpression(factory2.createMetaProperty(102 /* ImportKeyword */, factory2.createIdentifier("meta")), factory2.createIdentifier("url")) - ])) - ], - /*flags*/ - languageVersion >= 2 /* ES2015 */ ? 2 /* Const */ : 0 /* None */)); - importRequireStatements = [importStatement, requireStatement]; - } - var name = importRequireStatements[1].declarationList.declarations[0].name; - Debug.assertNode(name, isIdentifier); - return factory2.createCallExpression(factory2.cloneNode(name), - /*typeArguments*/ - void 0, args); - } - function visitImportEqualsDeclaration(node) { - Debug.assert(isExternalModuleImportEqualsDeclaration(node), "import= for internal module references should be handled in an earlier transformer."); - var statements; - statements = append(statements, setOriginalNode(setTextRange(factory2.createVariableStatement( - /*modifiers*/ - void 0, factory2.createVariableDeclarationList([ - factory2.createVariableDeclaration(factory2.cloneNode(node.name), - /*exclamationToken*/ - void 0, - /*type*/ - void 0, createRequireCall2(node)) - ], - /*flags*/ - languageVersion >= 2 /* ES2015 */ ? 2 /* Const */ : 0 /* None */)), node), node)); - statements = appendExportsOfImportEqualsDeclaration(statements, node); - return singleOrMany(statements); - } - function appendExportsOfImportEqualsDeclaration(statements, node) { - if (hasSyntacticModifier(node, 1 /* Export */)) { - statements = append(statements, factory2.createExportDeclaration( - /*modifiers*/ - void 0, node.isTypeOnly, factory2.createNamedExports([factory2.createExportSpecifier( - /*isTypeOnly*/ - false, - /*propertyName*/ - void 0, idText(node.name))]))); - } - return statements; - } - function visitExportAssignment(node) { - return node.isExportEquals ? void 0 : node; - } - function visitExportDeclaration(node) { - if (compilerOptions.module !== void 0 && compilerOptions.module > 5 /* ES2015 */) { - return node; - } - if (!node.exportClause || !isNamespaceExport(node.exportClause) || !node.moduleSpecifier) { - return node; - } - var oldIdentifier = node.exportClause.name; - var synthName = factory2.getGeneratedNameForNode(oldIdentifier); - var importDecl = factory2.createImportDeclaration( - /*modifiers*/ - void 0, factory2.createImportClause( - /*isTypeOnly*/ - false, - /*name*/ - void 0, factory2.createNamespaceImport(synthName)), node.moduleSpecifier, node.assertClause); - setOriginalNode(importDecl, node.exportClause); - var exportDecl = isExportNamespaceAsDefaultDeclaration(node) ? factory2.createExportDefault(synthName) : factory2.createExportDeclaration( - /*modifiers*/ - void 0, - /*isTypeOnly*/ - false, factory2.createNamedExports([factory2.createExportSpecifier( - /*isTypeOnly*/ - false, synthName, oldIdentifier)])); - setOriginalNode(exportDecl, node); - return [importDecl, exportDecl]; - } - function onEmitNode(hint, node, emitCallback) { - if (isSourceFile(node)) { - if ((isExternalModule(node) || getIsolatedModules(compilerOptions)) && compilerOptions.importHelpers) { - helperNameSubstitutions = /* @__PURE__ */ new Map(); - } - previousOnEmitNode(hint, node, emitCallback); - helperNameSubstitutions = void 0; - } - else { - previousOnEmitNode(hint, node, emitCallback); - } - } - function onSubstituteNode(hint, node) { - node = previousOnSubstituteNode(hint, node); - if (helperNameSubstitutions && isIdentifier(node) && getEmitFlags(node) & 8192 /* HelperName */) { - return substituteHelperName(node); - } - return node; - } - function substituteHelperName(node) { - var name = idText(node); - var substitution = helperNameSubstitutions.get(name); - if (!substitution) { - helperNameSubstitutions.set(name, substitution = factory2.createUniqueName(name, 16 /* Optimistic */ | 32 /* FileLevel */)); - } - return substitution; - } -} -// src/compiler/transformers/module/node.ts -function transformNodeModule(context) { - var previousOnSubstituteNode = context.onSubstituteNode; - var previousOnEmitNode = context.onEmitNode; - var esmTransform = transformECMAScriptModule(context); - var esmOnSubstituteNode = context.onSubstituteNode; - var esmOnEmitNode = context.onEmitNode; - context.onSubstituteNode = previousOnSubstituteNode; - context.onEmitNode = previousOnEmitNode; - var cjsTransform = transformModule(context); - var cjsOnSubstituteNode = context.onSubstituteNode; - var cjsOnEmitNode = context.onEmitNode; - context.onSubstituteNode = onSubstituteNode; - context.onEmitNode = onEmitNode; - context.enableSubstitution(312 /* SourceFile */); - context.enableEmitNotification(312 /* SourceFile */); - var currentSourceFile; - return transformSourceFileOrBundle; - function onSubstituteNode(hint, node) { - if (isSourceFile(node)) { - currentSourceFile = node; - return previousOnSubstituteNode(hint, node); - } - else { - if (!currentSourceFile) { - return previousOnSubstituteNode(hint, node); - } - if (currentSourceFile.impliedNodeFormat === 99 /* ESNext */) { - return esmOnSubstituteNode(hint, node); - } - return cjsOnSubstituteNode(hint, node); - } - } - function onEmitNode(hint, node, emitCallback) { - if (isSourceFile(node)) { - currentSourceFile = node; - } - if (!currentSourceFile) { - return previousOnEmitNode(hint, node, emitCallback); - } - if (currentSourceFile.impliedNodeFormat === 99 /* ESNext */) { - return esmOnEmitNode(hint, node, emitCallback); - } - return cjsOnEmitNode(hint, node, emitCallback); - } - function getModuleTransformForFile(file) { - return file.impliedNodeFormat === 99 /* ESNext */ ? esmTransform : cjsTransform; - } - function transformSourceFile(node) { - if (node.isDeclarationFile) { - return node; - } - currentSourceFile = node; - var result = getModuleTransformForFile(node)(node); - currentSourceFile = void 0; - Debug.assert(isSourceFile(result)); - return result; - } - function transformSourceFileOrBundle(node) { - return node.kind === 312 /* SourceFile */ ? transformSourceFile(node) : transformBundle(node); - } - function transformBundle(node) { - return context.factory.createBundle(map(node.sourceFiles, transformSourceFile), node.prepends); - } -} -// src/compiler/transformers/declarations/diagnostics.ts -function canProduceDiagnostics(node) { - return isVariableDeclaration(node) || isPropertyDeclaration(node) || isPropertySignature(node) || isBindingElement(node) || isSetAccessor(node) || isGetAccessor(node) || isConstructSignatureDeclaration(node) || isCallSignatureDeclaration(node) || isMethodDeclaration(node) || isMethodSignature(node) || isFunctionDeclaration(node) || isParameter(node) || isTypeParameterDeclaration(node) || isExpressionWithTypeArguments(node) || isImportEqualsDeclaration(node) || isTypeAliasDeclaration(node) || isConstructorDeclaration(node) || isIndexSignatureDeclaration(node) || isPropertyAccessExpression(node) || isElementAccessExpression(node) || isBinaryExpression(node) || isJSDocTypeAlias(node); -} -function createGetSymbolAccessibilityDiagnosticForNodeName(node) { - if (isSetAccessor(node) || isGetAccessor(node)) { - return getAccessorNameVisibilityError; - } - else if (isMethodSignature(node) || isMethodDeclaration(node)) { - return getMethodNameVisibilityError; - } - else { - return createGetSymbolAccessibilityDiagnosticForNode(node); - } - function getAccessorNameVisibilityError(symbolAccessibilityResult) { - var diagnosticMessage = getAccessorNameVisibilityDiagnosticMessage(symbolAccessibilityResult); - return diagnosticMessage !== void 0 ? { - diagnosticMessage: diagnosticMessage, - errorNode: node, - typeName: node.name - } : void 0; - } - function getAccessorNameVisibilityDiagnosticMessage(symbolAccessibilityResult) { - if (isStatic(node)) { - return symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_private_name_1; - } - else if (node.parent.kind === 263 /* ClassDeclaration */) { - return symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Public_property_0_of_exported_class_has_or_is_using_private_name_1; - } - else { - return symbolAccessibilityResult.errorModuleName ? Diagnostics.Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Property_0_of_exported_interface_has_or_is_using_private_name_1; - } - } - function getMethodNameVisibilityError(symbolAccessibilityResult) { - var diagnosticMessage = getMethodNameVisibilityDiagnosticMessage(symbolAccessibilityResult); - return diagnosticMessage !== void 0 ? { - diagnosticMessage: diagnosticMessage, - errorNode: node, - typeName: node.name - } : void 0; - } - function getMethodNameVisibilityDiagnosticMessage(symbolAccessibilityResult) { - if (isStatic(node)) { - return symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Public_static_method_0_of_exported_class_has_or_is_using_private_name_1; - } - else if (node.parent.kind === 263 /* ClassDeclaration */) { - return symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Public_method_0_of_exported_class_has_or_is_using_private_name_1; - } - else { - return symbolAccessibilityResult.errorModuleName ? Diagnostics.Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Method_0_of_exported_interface_has_or_is_using_private_name_1; - } - } -} -function createGetSymbolAccessibilityDiagnosticForNode(node) { - if (isVariableDeclaration(node) || isPropertyDeclaration(node) || isPropertySignature(node) || isPropertyAccessExpression(node) || isElementAccessExpression(node) || isBinaryExpression(node) || isBindingElement(node) || isConstructorDeclaration(node)) { - return getVariableDeclarationTypeVisibilityError; - } - else if (isSetAccessor(node) || isGetAccessor(node)) { - return getAccessorDeclarationTypeVisibilityError; - } - else if (isConstructSignatureDeclaration(node) || isCallSignatureDeclaration(node) || isMethodDeclaration(node) || isMethodSignature(node) || isFunctionDeclaration(node) || isIndexSignatureDeclaration(node)) { - return getReturnTypeVisibilityError; - } - else if (isParameter(node)) { - if (isParameterPropertyDeclaration(node, node.parent) && hasSyntacticModifier(node.parent, 8 /* Private */)) { - return getVariableDeclarationTypeVisibilityError; - } - return getParameterDeclarationTypeVisibilityError; - } - else if (isTypeParameterDeclaration(node)) { - return getTypeParameterConstraintVisibilityError; - } - else if (isExpressionWithTypeArguments(node)) { - return getHeritageClauseVisibilityError; - } - else if (isImportEqualsDeclaration(node)) { - return getImportEntityNameVisibilityError; - } - else if (isTypeAliasDeclaration(node) || isJSDocTypeAlias(node)) { - return getTypeAliasDeclarationVisibilityError; - } - else { - return Debug.assertNever(node, "Attempted to set a declaration diagnostic context for unhandled node kind: ".concat(Debug.formatSyntaxKind(node.kind))); - } - function getVariableDeclarationTypeVisibilityDiagnosticMessage(symbolAccessibilityResult) { - if (node.kind === 260 /* VariableDeclaration */ || node.kind === 208 /* BindingElement */) { - return symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Exported_variable_0_has_or_is_using_private_name_1; - } - else if (node.kind === 172 /* PropertyDeclaration */ || node.kind === 211 /* PropertyAccessExpression */ || node.kind === 212 /* ElementAccessExpression */ || node.kind === 226 /* BinaryExpression */ || node.kind === 171 /* PropertySignature */ || node.kind === 169 /* Parameter */ && hasSyntacticModifier(node.parent, 8 /* Private */)) { - if (isStatic(node)) { - return symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_private_name_1; - } - else if (node.parent.kind === 263 /* ClassDeclaration */ || node.kind === 169 /* Parameter */) { - return symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Public_property_0_of_exported_class_has_or_is_using_private_name_1; - } - else { - return symbolAccessibilityResult.errorModuleName ? Diagnostics.Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Property_0_of_exported_interface_has_or_is_using_private_name_1; - } - } - } - function getVariableDeclarationTypeVisibilityError(symbolAccessibilityResult) { - var diagnosticMessage = getVariableDeclarationTypeVisibilityDiagnosticMessage(symbolAccessibilityResult); - return diagnosticMessage !== void 0 ? { - diagnosticMessage: diagnosticMessage, - errorNode: node, - typeName: node.name - } : void 0; - } - function getAccessorDeclarationTypeVisibilityError(symbolAccessibilityResult) { - var diagnosticMessage; - if (node.kind === 178 /* SetAccessor */) { - if (isStatic(node)) { - diagnosticMessage = symbolAccessibilityResult.errorModuleName ? Diagnostics.Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1; - } - else { - diagnosticMessage = symbolAccessibilityResult.errorModuleName ? Diagnostics.Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1; - } - } - else { - if (isStatic(node)) { - diagnosticMessage = symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1; - } - else { - diagnosticMessage = symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1; - } - } - return { - diagnosticMessage: diagnosticMessage, - errorNode: node.name, - typeName: node.name - }; - } - function getReturnTypeVisibilityError(symbolAccessibilityResult) { - var diagnosticMessage; - switch (node.kind) { - case 180 /* ConstructSignature */: - diagnosticMessage = symbolAccessibilityResult.errorModuleName ? Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0; - break; - case 179 /* CallSignature */: - diagnosticMessage = symbolAccessibilityResult.errorModuleName ? Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0; - break; - case 181 /* IndexSignature */: - diagnosticMessage = symbolAccessibilityResult.errorModuleName ? Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0; - break; - case 174 /* MethodDeclaration */: - case 173 /* MethodSignature */: - if (isStatic(node)) { - diagnosticMessage = symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1 : Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0; - } - else if (node.parent.kind === 263 /* ClassDeclaration */) { - diagnosticMessage = symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1 : Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0; - } - else { - diagnosticMessage = symbolAccessibilityResult.errorModuleName ? Diagnostics.Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : Diagnostics.Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0; - } - break; - case 262 /* FunctionDeclaration */: - diagnosticMessage = symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1 : Diagnostics.Return_type_of_exported_function_has_or_is_using_private_name_0; - break; - default: - return Debug.fail("This is unknown kind for signature: " + node.kind); - } - return { - diagnosticMessage: diagnosticMessage, - errorNode: node.name || node - }; - } - function getParameterDeclarationTypeVisibilityError(symbolAccessibilityResult) { - var diagnosticMessage = getParameterDeclarationTypeVisibilityDiagnosticMessage(symbolAccessibilityResult); - return diagnosticMessage !== void 0 ? { - diagnosticMessage: diagnosticMessage, - errorNode: node, - typeName: node.name - } : void 0; - } - function getParameterDeclarationTypeVisibilityDiagnosticMessage(symbolAccessibilityResult) { - switch (node.parent.kind) { - case 176 /* Constructor */: - return symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1; - case 180 /* ConstructSignature */: - case 185 /* ConstructorType */: - return symbolAccessibilityResult.errorModuleName ? Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1; - case 179 /* CallSignature */: - return symbolAccessibilityResult.errorModuleName ? Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1; - case 181 /* IndexSignature */: - return symbolAccessibilityResult.errorModuleName ? Diagnostics.Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1; - case 174 /* MethodDeclaration */: - case 173 /* MethodSignature */: - if (isStatic(node.parent)) { - return symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1; - } - else if (node.parent.parent.kind === 263 /* ClassDeclaration */) { - return symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1; - } - else { - return symbolAccessibilityResult.errorModuleName ? Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1; - } - case 262 /* FunctionDeclaration */: - case 184 /* FunctionType */: - return symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Parameter_0_of_exported_function_has_or_is_using_private_name_1; - case 178 /* SetAccessor */: - case 177 /* GetAccessor */: - return symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Parameter_0_of_accessor_has_or_is_using_private_name_1; - default: - return Debug.fail("Unknown parent for parameter: ".concat(Debug.formatSyntaxKind(node.parent.kind))); - } - } - function getTypeParameterConstraintVisibilityError() { - var diagnosticMessage; - switch (node.parent.kind) { - case 263 /* ClassDeclaration */: - diagnosticMessage = Diagnostics.Type_parameter_0_of_exported_class_has_or_is_using_private_name_1; - break; - case 264 /* InterfaceDeclaration */: - diagnosticMessage = Diagnostics.Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1; - break; - case 200 /* MappedType */: - diagnosticMessage = Diagnostics.Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1; - break; - case 185 /* ConstructorType */: - case 180 /* ConstructSignature */: - diagnosticMessage = Diagnostics.Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1; - break; - case 179 /* CallSignature */: - diagnosticMessage = Diagnostics.Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1; - break; - case 174 /* MethodDeclaration */: - case 173 /* MethodSignature */: - if (isStatic(node.parent)) { - diagnosticMessage = Diagnostics.Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1; - } - else if (node.parent.parent.kind === 263 /* ClassDeclaration */) { - diagnosticMessage = Diagnostics.Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1; - } - else { - diagnosticMessage = Diagnostics.Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1; - } - break; - case 184 /* FunctionType */: - case 262 /* FunctionDeclaration */: - diagnosticMessage = Diagnostics.Type_parameter_0_of_exported_function_has_or_is_using_private_name_1; - break; - case 195 /* InferType */: - diagnosticMessage = Diagnostics.Extends_clause_for_inferred_type_0_has_or_is_using_private_name_1; - break; - case 265 /* TypeAliasDeclaration */: - diagnosticMessage = Diagnostics.Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1; - break; - default: - return Debug.fail("This is unknown parent for type parameter: " + node.parent.kind); - } - return { - diagnosticMessage: diagnosticMessage, - errorNode: node, - typeName: node.name - }; - } - function getHeritageClauseVisibilityError() { - var diagnosticMessage; - if (isClassDeclaration(node.parent.parent)) { - diagnosticMessage = isHeritageClause(node.parent) && node.parent.token === 119 /* ImplementsKeyword */ ? Diagnostics.Implements_clause_of_exported_class_0_has_or_is_using_private_name_1 : node.parent.parent.name ? Diagnostics.extends_clause_of_exported_class_0_has_or_is_using_private_name_1 : Diagnostics.extends_clause_of_exported_class_has_or_is_using_private_name_0; - } - else { - diagnosticMessage = Diagnostics.extends_clause_of_exported_interface_0_has_or_is_using_private_name_1; - } - return { - diagnosticMessage: diagnosticMessage, - errorNode: node, - typeName: getNameOfDeclaration(node.parent.parent) - }; - } - function getImportEntityNameVisibilityError() { - return { - diagnosticMessage: Diagnostics.Import_declaration_0_is_using_private_name_1, - errorNode: node, - typeName: node.name - }; - } - function getTypeAliasDeclarationVisibilityError(symbolAccessibilityResult) { - return { - diagnosticMessage: symbolAccessibilityResult.errorModuleName ? Diagnostics.Exported_type_alias_0_has_or_is_using_private_name_1_from_module_2 : Diagnostics.Exported_type_alias_0_has_or_is_using_private_name_1, - errorNode: isJSDocTypeAlias(node) ? Debug.checkDefined(node.typeExpression) : node.type, - typeName: isJSDocTypeAlias(node) ? getNameOfDeclaration(node) : node.name - }; - } -} -// src/compiler/transformers/declarations.ts -function getDeclarationDiagnostics(host, resolver, file) { - var compilerOptions = host.getCompilerOptions(); - var result = transformNodes(resolver, host, factory, compilerOptions, file ? [file] : filter(host.getSourceFiles(), isSourceFileNotJson), [transformDeclarations], - /*allowDtsFiles*/ - false); - return result.diagnostics; -} -function hasInternalAnnotation(range, currentSourceFile) { - var comment = currentSourceFile.text.substring(range.pos, range.end); - return stringContains(comment, "@internal"); -} -function isInternalDeclaration(node, currentSourceFile) { - var parseTreeNode = getParseTreeNode(node); - if (parseTreeNode && parseTreeNode.kind === 169 /* Parameter */) { - var paramIdx = parseTreeNode.parent.parameters.indexOf(parseTreeNode); - var previousSibling = paramIdx > 0 ? parseTreeNode.parent.parameters[paramIdx - 1] : void 0; - var text = currentSourceFile.text; - var commentRanges = previousSibling ? concatenate( - // to handle - // ... parameters, /** @internal */ - // public param: string - getTrailingCommentRanges(text, skipTrivia(text, previousSibling.end + 1, - /*stopAfterLineBreak*/ - false, - /*stopAtComments*/ - true)), getLeadingCommentRanges(text, node.pos)) : getTrailingCommentRanges(text, skipTrivia(text, node.pos, - /*stopAfterLineBreak*/ - false, - /*stopAtComments*/ - true)); - return commentRanges && commentRanges.length && hasInternalAnnotation(last(commentRanges), currentSourceFile); - } - var leadingCommentRanges = parseTreeNode && getLeadingCommentRangesOfNode(parseTreeNode, currentSourceFile); - return !!forEach(leadingCommentRanges, function (range) { - return hasInternalAnnotation(range, currentSourceFile); - }); -} -var declarationEmitNodeBuilderFlags = 1024 /* MultilineObjectLiterals */ | 2048 /* WriteClassExpressionAsTypeLiteral */ | 4096 /* UseTypeOfFunction */ | 8 /* UseStructuralFallback */ | 524288 /* AllowEmptyTuple */ | 4 /* GenerateNamesForShadowedTypeParams */ | 1 /* NoTruncation */; -function transformDeclarations(context) { - var throwDiagnostic = function () { return Debug.fail("Diagnostic emitted without context"); }; - var getSymbolAccessibilityDiagnostic = throwDiagnostic; - var needsDeclare = true; - var isBundledEmit = false; - var resultHasExternalModuleIndicator = false; - var needsScopeFixMarker = false; - var resultHasScopeMarker = false; - var enclosingDeclaration; - var necessaryTypeReferences; - var lateMarkedStatements; - var lateStatementReplacementMap; - var suppressNewDiagnosticContexts; - var exportedModulesFromDeclarationEmit; - var factory2 = context.factory; - var host = context.getEmitHost(); - var symbolTracker = { - trackSymbol: trackSymbol, - reportInaccessibleThisError: reportInaccessibleThisError, - reportInaccessibleUniqueSymbolError: reportInaccessibleUniqueSymbolError, - reportCyclicStructureError: reportCyclicStructureError, - reportPrivateInBaseOfClassExpression: reportPrivateInBaseOfClassExpression, - reportLikelyUnsafeImportRequiredError: reportLikelyUnsafeImportRequiredError, - reportTruncationError: reportTruncationError, - moduleResolverHost: host, - trackReferencedAmbientModule: trackReferencedAmbientModule, - trackExternalModuleSymbolOfImportTypeNode: trackExternalModuleSymbolOfImportTypeNode, - reportNonlocalAugmentation: reportNonlocalAugmentation, - reportNonSerializableProperty: reportNonSerializableProperty, - reportImportTypeNodeResolutionModeOverride: reportImportTypeNodeResolutionModeOverride - }; - var errorNameNode; - var errorFallbackNode; - var currentSourceFile; - var refs; - var libs2; - var emittedImports; - var resolver = context.getEmitResolver(); - var options = context.getCompilerOptions(); - var noResolve = options.noResolve, stripInternal = options.stripInternal; - return transformRoot; - function recordTypeReferenceDirectivesIfNecessary(typeReferenceDirectives) { - var e_549, _t; - if (!typeReferenceDirectives) { - return; - } - necessaryTypeReferences = necessaryTypeReferences || /* @__PURE__ */ new Set(); - try { - for (var typeReferenceDirectives_2 = __values(typeReferenceDirectives), typeReferenceDirectives_2_1 = typeReferenceDirectives_2.next(); !typeReferenceDirectives_2_1.done; typeReferenceDirectives_2_1 = typeReferenceDirectives_2.next()) { - var ref = typeReferenceDirectives_2_1.value; - necessaryTypeReferences.add(ref); - } - } - catch (e_549_1) { e_549 = { error: e_549_1 }; } - finally { - try { - if (typeReferenceDirectives_2_1 && !typeReferenceDirectives_2_1.done && (_t = typeReferenceDirectives_2.return)) _t.call(typeReferenceDirectives_2); - } - finally { if (e_549) throw e_549.error; } - } - } - function trackReferencedAmbientModule(node, symbol) { - var directives = resolver.getTypeReferenceDirectivesForSymbol(symbol, 67108863 /* All */); - if (length(directives)) { - return recordTypeReferenceDirectivesIfNecessary(directives); - } - var container = getSourceFileOfNode(node); - refs.set(getOriginalNodeId(container), container); - } - function handleSymbolAccessibilityError(symbolAccessibilityResult) { - var e_550, _t; - if (symbolAccessibilityResult.accessibility === 0 /* Accessible */) { - if (symbolAccessibilityResult && symbolAccessibilityResult.aliasesToMakeVisible) { - if (!lateMarkedStatements) { - lateMarkedStatements = symbolAccessibilityResult.aliasesToMakeVisible; - } - else { - try { - for (var _u = __values(symbolAccessibilityResult.aliasesToMakeVisible), _v = _u.next(); !_v.done; _v = _u.next()) { - var ref = _v.value; - pushIfUnique(lateMarkedStatements, ref); - } - } - catch (e_550_1) { e_550 = { error: e_550_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_550) throw e_550.error; } - } - } - } - } - else { - var errorInfo = getSymbolAccessibilityDiagnostic(symbolAccessibilityResult); - if (errorInfo) { - if (errorInfo.typeName) { - context.addDiagnostic(createDiagnosticForNode(symbolAccessibilityResult.errorNode || errorInfo.errorNode, errorInfo.diagnosticMessage, getTextOfNode(errorInfo.typeName), symbolAccessibilityResult.errorSymbolName, symbolAccessibilityResult.errorModuleName)); - } - else { - context.addDiagnostic(createDiagnosticForNode(symbolAccessibilityResult.errorNode || errorInfo.errorNode, errorInfo.diagnosticMessage, symbolAccessibilityResult.errorSymbolName, symbolAccessibilityResult.errorModuleName)); - } - return true; - } - } - return false; - } - function trackExternalModuleSymbolOfImportTypeNode(symbol) { - if (!isBundledEmit) { - (exportedModulesFromDeclarationEmit || (exportedModulesFromDeclarationEmit = [])).push(symbol); - } - } - function trackSymbol(symbol, enclosingDeclaration2, meaning) { - if (symbol.flags & 262144 /* TypeParameter */) - return false; - var issuedDiagnostic = handleSymbolAccessibilityError(resolver.isSymbolAccessible(symbol, enclosingDeclaration2, meaning, - /*shouldComputeAliasToMarkVisible*/ - true)); - recordTypeReferenceDirectivesIfNecessary(resolver.getTypeReferenceDirectivesForSymbol(symbol, meaning)); - return issuedDiagnostic; - } - function reportPrivateInBaseOfClassExpression(propertyName) { - if (errorNameNode || errorFallbackNode) { - context.addDiagnostic(createDiagnosticForNode(errorNameNode || errorFallbackNode, Diagnostics.Property_0_of_exported_class_expression_may_not_be_private_or_protected, propertyName)); - } - } - function errorDeclarationNameWithFallback() { - return errorNameNode ? declarationNameToString(errorNameNode) : errorFallbackNode && getNameOfDeclaration(errorFallbackNode) ? declarationNameToString(getNameOfDeclaration(errorFallbackNode)) : errorFallbackNode && isExportAssignment(errorFallbackNode) ? errorFallbackNode.isExportEquals ? "export=" : "default" : "(Missing)"; - } - function reportInaccessibleUniqueSymbolError() { - if (errorNameNode || errorFallbackNode) { - context.addDiagnostic(createDiagnosticForNode(errorNameNode || errorFallbackNode, Diagnostics.The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary, errorDeclarationNameWithFallback(), "unique symbol")); - } - } - function reportCyclicStructureError() { - if (errorNameNode || errorFallbackNode) { - context.addDiagnostic(createDiagnosticForNode(errorNameNode || errorFallbackNode, Diagnostics.The_inferred_type_of_0_references_a_type_with_a_cyclic_structure_which_cannot_be_trivially_serialized_A_type_annotation_is_necessary, errorDeclarationNameWithFallback())); - } - } - function reportInaccessibleThisError() { - if (errorNameNode || errorFallbackNode) { - context.addDiagnostic(createDiagnosticForNode(errorNameNode || errorFallbackNode, Diagnostics.The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary, errorDeclarationNameWithFallback(), "this")); - } - } - function reportLikelyUnsafeImportRequiredError(specifier) { - if (errorNameNode || errorFallbackNode) { - context.addDiagnostic(createDiagnosticForNode(errorNameNode || errorFallbackNode, Diagnostics.The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_annotation_is_necessary, errorDeclarationNameWithFallback(), specifier)); - } - } - function reportTruncationError() { - if (errorNameNode || errorFallbackNode) { - context.addDiagnostic(createDiagnosticForNode(errorNameNode || errorFallbackNode, Diagnostics.The_inferred_type_of_this_node_exceeds_the_maximum_length_the_compiler_will_serialize_An_explicit_type_annotation_is_needed)); - } - } - function reportNonlocalAugmentation(containingFile, parentSymbol, symbol) { - var e_551, _t; - var _a; - var primaryDeclaration = (_a = parentSymbol.declarations) == null ? void 0 : _a.find(function (d) { return getSourceFileOfNode(d) === containingFile; }); - var augmentingDeclarations = filter(symbol.declarations, function (d) { return getSourceFileOfNode(d) !== containingFile; }); - if (primaryDeclaration && augmentingDeclarations) { - try { - for (var augmentingDeclarations_1 = __values(augmentingDeclarations), augmentingDeclarations_1_1 = augmentingDeclarations_1.next(); !augmentingDeclarations_1_1.done; augmentingDeclarations_1_1 = augmentingDeclarations_1.next()) { - var augmentations = augmentingDeclarations_1_1.value; - context.addDiagnostic(addRelatedInfo(createDiagnosticForNode(augmentations, Diagnostics.Declaration_augments_declaration_in_another_file_This_cannot_be_serialized), createDiagnosticForNode(primaryDeclaration, Diagnostics.This_is_the_declaration_being_augmented_Consider_moving_the_augmenting_declaration_into_the_same_file))); - } - } - catch (e_551_1) { e_551 = { error: e_551_1 }; } - finally { - try { - if (augmentingDeclarations_1_1 && !augmentingDeclarations_1_1.done && (_t = augmentingDeclarations_1.return)) _t.call(augmentingDeclarations_1); - } - finally { if (e_551) throw e_551.error; } - } - } - } - function reportNonSerializableProperty(propertyName) { - if (errorNameNode || errorFallbackNode) { - context.addDiagnostic(createDiagnosticForNode(errorNameNode || errorFallbackNode, Diagnostics.The_type_of_this_node_cannot_be_serialized_because_its_property_0_cannot_be_serialized, propertyName)); - } - } - function reportImportTypeNodeResolutionModeOverride() { - if (!isNightly() && (errorNameNode || errorFallbackNode)) { - context.addDiagnostic(createDiagnosticForNode(errorNameNode || errorFallbackNode, Diagnostics.The_type_of_this_expression_cannot_be_named_without_a_resolution_mode_assertion_which_is_an_unstable_feature_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next)); - } - } - function transformDeclarationsForJS(sourceFile, bundled) { - var oldDiag = getSymbolAccessibilityDiagnostic; - getSymbolAccessibilityDiagnostic = function (s) { return s.errorNode && canProduceDiagnostics(s.errorNode) ? createGetSymbolAccessibilityDiagnosticForNode(s.errorNode)(s) : { - diagnosticMessage: s.errorModuleName ? Diagnostics.Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotation_may_unblock_declaration_emit : Diagnostics.Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_declaration_emit, - errorNode: s.errorNode || sourceFile - }; }; - var result = resolver.getDeclarationStatementsForSourceFile(sourceFile, declarationEmitNodeBuilderFlags, symbolTracker, bundled); - getSymbolAccessibilityDiagnostic = oldDiag; - return result; - } - function transformRoot(node) { - if (node.kind === 312 /* SourceFile */ && node.isDeclarationFile) { - return node; - } - if (node.kind === 313 /* Bundle */) { - isBundledEmit = true; - refs = /* @__PURE__ */ new Map(); - libs2 = /* @__PURE__ */ new Map(); - var hasNoDefaultLib_1 = false; - var bundle = factory2.createBundle(map(node.sourceFiles, function (sourceFile) { - if (sourceFile.isDeclarationFile) - return void 0; - hasNoDefaultLib_1 = hasNoDefaultLib_1 || sourceFile.hasNoDefaultLib; - currentSourceFile = sourceFile; - enclosingDeclaration = sourceFile; - lateMarkedStatements = void 0; - suppressNewDiagnosticContexts = false; - lateStatementReplacementMap = /* @__PURE__ */ new Map(); - getSymbolAccessibilityDiagnostic = throwDiagnostic; - needsScopeFixMarker = false; - resultHasScopeMarker = false; - collectReferences(sourceFile, refs); - collectLibs(sourceFile, libs2); - if (isExternalOrCommonJsModule(sourceFile) || isJsonSourceFile(sourceFile)) { - resultHasExternalModuleIndicator = false; - needsDeclare = false; - var statements = isSourceFileJS(sourceFile) ? factory2.createNodeArray(transformDeclarationsForJS(sourceFile, - /*bundled*/ - true)) : visitNodes2(sourceFile.statements, visitDeclarationStatements, isStatement); - var newFile = factory2.updateSourceFile(sourceFile, [factory2.createModuleDeclaration([factory2.createModifier(138 /* DeclareKeyword */)], factory2.createStringLiteral(getResolvedExternalModuleName(context.getEmitHost(), sourceFile)), factory2.createModuleBlock(setTextRange(factory2.createNodeArray(transformAndReplaceLatePaintedStatements(statements)), sourceFile.statements)))], - /*isDeclarationFile*/ - true, - /*referencedFiles*/ - [], - /*typeReferences*/ - [], - /*hasNoDefaultLib*/ - false, - /*libReferences*/ - []); - return newFile; - } - needsDeclare = true; - var updated2 = isSourceFileJS(sourceFile) ? factory2.createNodeArray(transformDeclarationsForJS(sourceFile)) : visitNodes2(sourceFile.statements, visitDeclarationStatements, isStatement); - return factory2.updateSourceFile(sourceFile, transformAndReplaceLatePaintedStatements(updated2), - /*isDeclarationFile*/ - true, - /*referencedFiles*/ - [], - /*typeReferences*/ - [], - /*hasNoDefaultLib*/ - false, - /*libReferences*/ - []); - }), mapDefined(node.prepends, function (prepend) { - if (prepend.kind === 315 /* InputFiles */) { - var sourceFile = createUnparsedSourceFile(prepend, "dts", stripInternal); - hasNoDefaultLib_1 = hasNoDefaultLib_1 || !!sourceFile.hasNoDefaultLib; - collectReferences(sourceFile, refs); - recordTypeReferenceDirectivesIfNecessary(map(sourceFile.typeReferenceDirectives, function (ref) { return [ref.fileName, ref.resolutionMode]; })); - collectLibs(sourceFile, libs2); - return sourceFile; - } - return prepend; - })); - bundle.syntheticFileReferences = []; - bundle.syntheticTypeReferences = getFileReferencesForUsedTypeReferences(); - bundle.syntheticLibReferences = getLibReferences(); - bundle.hasNoDefaultLib = hasNoDefaultLib_1; - var outputFilePath2 = getDirectoryPath(normalizeSlashes(getOutputPathsFor(node, host, - /*forceDtsPaths*/ - true).declarationFilePath)); - var referenceVisitor2 = mapReferencesIntoArray(bundle.syntheticFileReferences, outputFilePath2); - refs.forEach(referenceVisitor2); - return bundle; - } - needsDeclare = true; - needsScopeFixMarker = false; - resultHasScopeMarker = false; - enclosingDeclaration = node; - currentSourceFile = node; - getSymbolAccessibilityDiagnostic = throwDiagnostic; - isBundledEmit = false; - resultHasExternalModuleIndicator = false; - suppressNewDiagnosticContexts = false; - lateMarkedStatements = void 0; - lateStatementReplacementMap = /* @__PURE__ */ new Map(); - necessaryTypeReferences = void 0; - refs = collectReferences(currentSourceFile, /* @__PURE__ */ new Map()); - libs2 = collectLibs(currentSourceFile, /* @__PURE__ */ new Map()); - var references = []; - var outputFilePath = getDirectoryPath(normalizeSlashes(getOutputPathsFor(node, host, - /*forceDtsPaths*/ - true).declarationFilePath)); - var referenceVisitor = mapReferencesIntoArray(references, outputFilePath); - var combinedStatements; - if (isSourceFileJS(currentSourceFile)) { - combinedStatements = factory2.createNodeArray(transformDeclarationsForJS(node)); - refs.forEach(referenceVisitor); - emittedImports = filter(combinedStatements, isAnyImportSyntax); - } - else { - var statements = visitNodes2(node.statements, visitDeclarationStatements, isStatement); - combinedStatements = setTextRange(factory2.createNodeArray(transformAndReplaceLatePaintedStatements(statements)), node.statements); - refs.forEach(referenceVisitor); - emittedImports = filter(combinedStatements, isAnyImportSyntax); - if (isExternalModule(node) && (!resultHasExternalModuleIndicator || needsScopeFixMarker && !resultHasScopeMarker)) { - combinedStatements = setTextRange(factory2.createNodeArray(__spreadArray(__spreadArray([], __read(combinedStatements), false), [createEmptyExports(factory2)], false)), combinedStatements); - } - } - var updated = factory2.updateSourceFile(node, combinedStatements, - /*isDeclarationFile*/ - true, references, getFileReferencesForUsedTypeReferences(), node.hasNoDefaultLib, getLibReferences()); - updated.exportedModulesFromDeclarationEmit = exportedModulesFromDeclarationEmit; - return updated; - function getLibReferences() { - return arrayFrom(libs2.keys(), function (lib) { return ({ fileName: lib, pos: -1, end: -1 }); }); - } - function getFileReferencesForUsedTypeReferences() { - return necessaryTypeReferences ? mapDefined(arrayFrom(necessaryTypeReferences.keys()), getFileReferenceForSpecifierModeTuple) : []; - } - function getFileReferenceForSpecifierModeTuple(_t) { - var e_552, _u; - var _v = __read(_t, 2), typeName = _v[0], mode = _v[1]; - if (emittedImports) { - try { - for (var emittedImports_1 = __values(emittedImports), emittedImports_1_1 = emittedImports_1.next(); !emittedImports_1_1.done; emittedImports_1_1 = emittedImports_1.next()) { - var importStatement = emittedImports_1_1.value; - if (isImportEqualsDeclaration(importStatement) && isExternalModuleReference(importStatement.moduleReference)) { - var expr = importStatement.moduleReference.expression; - if (isStringLiteralLike(expr) && expr.text === typeName) { - return void 0; - } - } - else if (isImportDeclaration(importStatement) && isStringLiteral(importStatement.moduleSpecifier) && importStatement.moduleSpecifier.text === typeName) { - return void 0; - } - } - } - catch (e_552_1) { e_552 = { error: e_552_1 }; } - finally { - try { - if (emittedImports_1_1 && !emittedImports_1_1.done && (_u = emittedImports_1.return)) _u.call(emittedImports_1); - } - finally { if (e_552) throw e_552.error; } - } - } - return __assign({ fileName: typeName, pos: -1, end: -1 }, mode ? { resolutionMode: mode } : void 0); - } - function mapReferencesIntoArray(references2, outputFilePath2) { - return function (file) { - var declFileName; - if (file.isDeclarationFile) { - declFileName = file.fileName; - } - else { - if (isBundledEmit && contains(node.sourceFiles, file)) - return; - var paths = getOutputPathsFor(file, host, - /*forceDtsPaths*/ - true); - declFileName = paths.declarationFilePath || paths.jsFilePath || file.fileName; - } - if (declFileName) { - var specifier = getModuleSpecifier(options, currentSourceFile, toPath(outputFilePath2, host.getCurrentDirectory(), host.getCanonicalFileName), toPath(declFileName, host.getCurrentDirectory(), host.getCanonicalFileName), host); - if (!pathIsRelative(specifier)) { - recordTypeReferenceDirectivesIfNecessary([[ - specifier, - /*mode*/ - void 0 - ]]); - return; - } - var fileName = getRelativePathToDirectoryOrUrl(outputFilePath2, declFileName, host.getCurrentDirectory(), host.getCanonicalFileName, - /*isAbsolutePathAnUrl*/ - false); - if (startsWith(fileName, "./") && hasExtension(fileName)) { - fileName = fileName.substring(2); - } - if (startsWith(fileName, "node_modules/") || pathContainsNodeModules(fileName)) { - return; - } - references2.push({ pos: -1, end: -1, fileName: fileName }); - } - }; - } - } - function collectReferences(sourceFile, ret) { - if (noResolve || !isUnparsedSource(sourceFile) && isSourceFileJS(sourceFile)) - return ret; - forEach(sourceFile.referencedFiles, function (f) { - var elem = host.getSourceFileFromReference(sourceFile, f); - if (elem) { - ret.set(getOriginalNodeId(elem), elem); - } - }); - return ret; - } - function collectLibs(sourceFile, ret) { - forEach(sourceFile.libReferenceDirectives, function (ref) { - var lib = host.getLibFileFromReference(ref); - if (lib) { - ret.set(toFileNameLowerCase(ref.fileName), true); - } - }); - return ret; - } - function filterBindingPatternInitializersAndRenamings(name) { - if (name.kind === 80 /* Identifier */) { - return name; - } - else { - if (name.kind === 207 /* ArrayBindingPattern */) { - return factory2.updateArrayBindingPattern(name, visitNodes2(name.elements, visitBindingElement, isArrayBindingElement)); - } - else { - return factory2.updateObjectBindingPattern(name, visitNodes2(name.elements, visitBindingElement, isBindingElement)); - } - } - function visitBindingElement(elem) { - if (elem.kind === 232 /* OmittedExpression */) { - return elem; - } - if (elem.propertyName && isIdentifier(elem.propertyName) && isIdentifier(elem.name) && !elem.symbol.isReferenced && !isIdentifierANonContextualKeyword(elem.propertyName)) { - return factory2.updateBindingElement(elem, elem.dotDotDotToken, - /*propertyName*/ - void 0, elem.propertyName, shouldPrintWithInitializer(elem) ? elem.initializer : void 0); - } - return factory2.updateBindingElement(elem, elem.dotDotDotToken, elem.propertyName, filterBindingPatternInitializersAndRenamings(elem.name), shouldPrintWithInitializer(elem) ? elem.initializer : void 0); - } - } - function ensureParameter(p, modifierMask, type) { - var oldDiag; - if (!suppressNewDiagnosticContexts) { - oldDiag = getSymbolAccessibilityDiagnostic; - getSymbolAccessibilityDiagnostic = createGetSymbolAccessibilityDiagnosticForNode(p); - } - var newParam = factory2.updateParameterDeclaration(p, maskModifiers(factory2, p, modifierMask), p.dotDotDotToken, filterBindingPatternInitializersAndRenamings(p.name), resolver.isOptionalParameter(p) ? p.questionToken || factory2.createToken(58 /* QuestionToken */) : void 0, ensureType(p, type || p.type, - /*ignorePrivate*/ - true), - // Ignore private param props, since this type is going straight back into a param - ensureNoInitializer(p)); - if (!suppressNewDiagnosticContexts) { - getSymbolAccessibilityDiagnostic = oldDiag; - } - return newParam; - } - function shouldPrintWithInitializer(node) { - return canHaveLiteralInitializer(node) && resolver.isLiteralConstDeclaration(getParseTreeNode(node)); - } - function ensureNoInitializer(node) { - if (shouldPrintWithInitializer(node)) { - return resolver.createLiteralConstValue(getParseTreeNode(node), symbolTracker); - } - return void 0; - } - function ensureType(node, type, ignorePrivate) { - if (!ignorePrivate && hasEffectiveModifier(node, 8 /* Private */)) { - return; - } - if (shouldPrintWithInitializer(node)) { - return; - } - var shouldUseResolverType = node.kind === 169 /* Parameter */ && (resolver.isRequiredInitializedParameter(node) || resolver.isOptionalUninitializedParameterProperty(node)); - if (type && !shouldUseResolverType) { - return visitNode(type, visitDeclarationSubtree, isTypeNode); - } - if (!getParseTreeNode(node)) { - return type ? visitNode(type, visitDeclarationSubtree, isTypeNode) : factory2.createKeywordTypeNode(133 /* AnyKeyword */); - } - if (node.kind === 178 /* SetAccessor */) { - return factory2.createKeywordTypeNode(133 /* AnyKeyword */); - } - errorNameNode = node.name; - var oldDiag; - if (!suppressNewDiagnosticContexts) { - oldDiag = getSymbolAccessibilityDiagnostic; - getSymbolAccessibilityDiagnostic = createGetSymbolAccessibilityDiagnosticForNode(node); - } - if (node.kind === 260 /* VariableDeclaration */ || node.kind === 208 /* BindingElement */) { - return cleanup(resolver.createTypeOfDeclaration(node, enclosingDeclaration, declarationEmitNodeBuilderFlags, symbolTracker)); - } - if (node.kind === 169 /* Parameter */ || node.kind === 172 /* PropertyDeclaration */ || node.kind === 171 /* PropertySignature */) { - if (isPropertySignature(node) || !node.initializer) - return cleanup(resolver.createTypeOfDeclaration(node, enclosingDeclaration, declarationEmitNodeBuilderFlags, symbolTracker, shouldUseResolverType)); - return cleanup(resolver.createTypeOfDeclaration(node, enclosingDeclaration, declarationEmitNodeBuilderFlags, symbolTracker, shouldUseResolverType) || resolver.createTypeOfExpression(node.initializer, enclosingDeclaration, declarationEmitNodeBuilderFlags, symbolTracker)); - } - return cleanup(resolver.createReturnTypeOfSignatureDeclaration(node, enclosingDeclaration, declarationEmitNodeBuilderFlags, symbolTracker)); - function cleanup(returnValue) { - errorNameNode = void 0; - if (!suppressNewDiagnosticContexts) { - getSymbolAccessibilityDiagnostic = oldDiag; - } - return returnValue || factory2.createKeywordTypeNode(133 /* AnyKeyword */); - } - } - function isDeclarationAndNotVisible(node) { - node = getParseTreeNode(node); - switch (node.kind) { - case 262 /* FunctionDeclaration */: - case 267 /* ModuleDeclaration */: - case 264 /* InterfaceDeclaration */: - case 263 /* ClassDeclaration */: - case 265 /* TypeAliasDeclaration */: - case 266 /* EnumDeclaration */: - return !resolver.isDeclarationVisible(node); - case 260 /* VariableDeclaration */: - return !getBindingNameVisible(node); - case 271 /* ImportEqualsDeclaration */: - case 272 /* ImportDeclaration */: - case 278 /* ExportDeclaration */: - case 277 /* ExportAssignment */: - return false; - case 175 /* ClassStaticBlockDeclaration */: - return true; - } - return false; - } - function shouldEmitFunctionProperties(input) { - var _a; - if (input.body) { - return true; - } - var overloadSignatures = (_a = input.symbol.declarations) == null ? void 0 : _a.filter(function (decl) { return isFunctionDeclaration(decl) && !decl.body; }); - return !overloadSignatures || overloadSignatures.indexOf(input) === overloadSignatures.length - 1; - } - function getBindingNameVisible(elem) { - if (isOmittedExpression(elem)) { - return false; - } - if (isBindingPattern(elem.name)) { - return some(elem.name.elements, getBindingNameVisible); - } - else { - return resolver.isDeclarationVisible(elem); - } - } - function updateParamsList(node, params, modifierMask) { - if (hasEffectiveModifier(node, 8 /* Private */)) { - return factory2.createNodeArray(); - } - var newParams = map(params, function (p) { return ensureParameter(p, modifierMask); }); - if (!newParams) { - return factory2.createNodeArray(); - } - return factory2.createNodeArray(newParams, params.hasTrailingComma); - } - function updateAccessorParamsList(input, isPrivate) { - var newParams; - if (!isPrivate) { - var thisParameter = getThisParameter(input); - if (thisParameter) { - newParams = [ensureParameter(thisParameter)]; - } - } - if (isSetAccessorDeclaration(input)) { - var newValueParameter = void 0; - if (!isPrivate) { - var valueParameter = getSetAccessorValueParameter(input); - if (valueParameter) { - var accessorType = getTypeAnnotationFromAllAccessorDeclarations(input, resolver.getAllAccessorDeclarations(input)); - newValueParameter = ensureParameter(valueParameter, - /*modifierMask*/ - void 0, accessorType); - } - } - if (!newValueParameter) { - newValueParameter = factory2.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, "value"); - } - newParams = append(newParams, newValueParameter); - } - return factory2.createNodeArray(newParams || emptyArray); - } - function ensureTypeParams(node, params) { - return hasEffectiveModifier(node, 8 /* Private */) ? void 0 : visitNodes2(params, visitDeclarationSubtree, isTypeParameterDeclaration); - } - function isEnclosingDeclaration(node) { - return isSourceFile(node) || isTypeAliasDeclaration(node) || isModuleDeclaration(node) || isClassDeclaration(node) || isInterfaceDeclaration(node) || isFunctionLike(node) || isIndexSignatureDeclaration(node) || isMappedTypeNode(node); - } - function checkEntityNameVisibility(entityName, enclosingDeclaration2) { - var visibilityResult = resolver.isEntityNameVisible(entityName, enclosingDeclaration2); - handleSymbolAccessibilityError(visibilityResult); - recordTypeReferenceDirectivesIfNecessary(resolver.getTypeReferenceDirectivesForEntityName(entityName)); - } - function preserveJsDoc(updated, original) { - if (hasJSDocNodes(updated) && hasJSDocNodes(original)) { - updated.jsDoc = original.jsDoc; - } - return setCommentRange(updated, getCommentRange(original)); - } - function rewriteModuleSpecifier(parent2, input) { - if (!input) - return void 0; - resultHasExternalModuleIndicator = resultHasExternalModuleIndicator || parent2.kind !== 267 /* ModuleDeclaration */ && parent2.kind !== 205 /* ImportType */; - if (isStringLiteralLike(input)) { - if (isBundledEmit) { - var newName = getExternalModuleNameFromDeclaration(context.getEmitHost(), resolver, parent2); - if (newName) { - return factory2.createStringLiteral(newName); - } - } - else { - var symbol = resolver.getSymbolOfExternalModuleSpecifier(input); - if (symbol) { - (exportedModulesFromDeclarationEmit || (exportedModulesFromDeclarationEmit = [])).push(symbol); - } - } - } - return input; - } - function transformImportEqualsDeclaration(decl) { - if (!resolver.isDeclarationVisible(decl)) - return; - if (decl.moduleReference.kind === 283 /* ExternalModuleReference */) { - var specifier = getExternalModuleImportEqualsDeclarationExpression(decl); - return factory2.updateImportEqualsDeclaration(decl, decl.modifiers, decl.isTypeOnly, decl.name, factory2.updateExternalModuleReference(decl.moduleReference, rewriteModuleSpecifier(decl, specifier))); - } - else { - var oldDiag = getSymbolAccessibilityDiagnostic; - getSymbolAccessibilityDiagnostic = createGetSymbolAccessibilityDiagnosticForNode(decl); - checkEntityNameVisibility(decl.moduleReference, enclosingDeclaration); - getSymbolAccessibilityDiagnostic = oldDiag; - return decl; - } - } - function transformImportDeclaration(decl) { - if (!decl.importClause) { - return factory2.updateImportDeclaration(decl, decl.modifiers, decl.importClause, rewriteModuleSpecifier(decl, decl.moduleSpecifier), getResolutionModeOverrideForClauseInNightly(decl.assertClause)); - } - var visibleDefaultBinding = decl.importClause && decl.importClause.name && resolver.isDeclarationVisible(decl.importClause) ? decl.importClause.name : void 0; - if (!decl.importClause.namedBindings) { - return visibleDefaultBinding && factory2.updateImportDeclaration(decl, decl.modifiers, factory2.updateImportClause(decl.importClause, decl.importClause.isTypeOnly, visibleDefaultBinding, - /*namedBindings*/ - void 0), rewriteModuleSpecifier(decl, decl.moduleSpecifier), getResolutionModeOverrideForClauseInNightly(decl.assertClause)); - } - if (decl.importClause.namedBindings.kind === 274 /* NamespaceImport */) { - var namedBindings = resolver.isDeclarationVisible(decl.importClause.namedBindings) ? decl.importClause.namedBindings : ( - /*namedBindings*/ - void 0); - return visibleDefaultBinding || namedBindings ? factory2.updateImportDeclaration(decl, decl.modifiers, factory2.updateImportClause(decl.importClause, decl.importClause.isTypeOnly, visibleDefaultBinding, namedBindings), rewriteModuleSpecifier(decl, decl.moduleSpecifier), getResolutionModeOverrideForClauseInNightly(decl.assertClause)) : void 0; - } - var bindingList = mapDefined(decl.importClause.namedBindings.elements, function (b) { return resolver.isDeclarationVisible(b) ? b : void 0; }); - if (bindingList && bindingList.length || visibleDefaultBinding) { - return factory2.updateImportDeclaration(decl, decl.modifiers, factory2.updateImportClause(decl.importClause, decl.importClause.isTypeOnly, visibleDefaultBinding, bindingList && bindingList.length ? factory2.updateNamedImports(decl.importClause.namedBindings, bindingList) : void 0), rewriteModuleSpecifier(decl, decl.moduleSpecifier), getResolutionModeOverrideForClauseInNightly(decl.assertClause)); - } - if (resolver.isImportRequiredByAugmentation(decl)) { - return factory2.updateImportDeclaration(decl, decl.modifiers, - /*importClause*/ - void 0, rewriteModuleSpecifier(decl, decl.moduleSpecifier), getResolutionModeOverrideForClauseInNightly(decl.assertClause)); - } - } - function getResolutionModeOverrideForClauseInNightly(assertClause) { - var mode = getResolutionModeOverrideForClause(assertClause); - if (mode !== void 0) { - if (!isNightly()) { - context.addDiagnostic(createDiagnosticForNode(assertClause, Diagnostics.resolution_mode_assertions_are_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next)); - } - return assertClause; - } - return void 0; - } - function transformAndReplaceLatePaintedStatements(statements) { - while (length(lateMarkedStatements)) { - var i = lateMarkedStatements.shift(); - if (!isLateVisibilityPaintedStatement(i)) { - return Debug.fail("Late replaced statement was found which is not handled by the declaration transformer!: ".concat(Debug.formatSyntaxKind(i.kind))); - } - var priorNeedsDeclare = needsDeclare; - needsDeclare = i.parent && isSourceFile(i.parent) && !(isExternalModule(i.parent) && isBundledEmit); - var result = transformTopLevelDeclaration(i); - needsDeclare = priorNeedsDeclare; - lateStatementReplacementMap.set(getOriginalNodeId(i), result); - } - return visitNodes2(statements, visitLateVisibilityMarkedStatements, isStatement); - function visitLateVisibilityMarkedStatements(statement) { - if (isLateVisibilityPaintedStatement(statement)) { - var key = getOriginalNodeId(statement); - if (lateStatementReplacementMap.has(key)) { - var result = lateStatementReplacementMap.get(key); - lateStatementReplacementMap.delete(key); - if (result) { - if (isArray(result) ? some(result, needsScopeMarker) : needsScopeMarker(result)) { - needsScopeFixMarker = true; - } - if (isSourceFile(statement.parent) && (isArray(result) ? some(result, isExternalModuleIndicator) : isExternalModuleIndicator(result))) { - resultHasExternalModuleIndicator = true; - } - } - return result; - } - } - return statement; - } - } - function visitDeclarationSubtree(input) { - if (shouldStripInternal(input)) - return; - if (isDeclaration(input)) { - if (isDeclarationAndNotVisible(input)) - return; - if (hasDynamicName(input) && !resolver.isLateBound(getParseTreeNode(input))) { - return; - } - } - if (isFunctionLike(input) && resolver.isImplementationOfOverload(input)) - return; - if (isSemicolonClassElement(input)) - return; - var previousEnclosingDeclaration; - if (isEnclosingDeclaration(input)) { - previousEnclosingDeclaration = enclosingDeclaration; - enclosingDeclaration = input; - } - var oldDiag = getSymbolAccessibilityDiagnostic; - var canProduceDiagnostic = canProduceDiagnostics(input); - var oldWithinObjectLiteralType = suppressNewDiagnosticContexts; - var shouldEnterSuppressNewDiagnosticsContextContext = (input.kind === 187 /* TypeLiteral */ || input.kind === 200 /* MappedType */) && input.parent.kind !== 265 /* TypeAliasDeclaration */; - if (isMethodDeclaration(input) || isMethodSignature(input)) { - if (hasEffectiveModifier(input, 8 /* Private */)) { - if (input.symbol && input.symbol.declarations && input.symbol.declarations[0] !== input) - return; - return cleanup(factory2.createPropertyDeclaration(ensureModifiers(input), input.name, - /*questionOrExclamationToken*/ - void 0, - /*type*/ - void 0, - /*initializer*/ - void 0)); - } - } - if (canProduceDiagnostic && !suppressNewDiagnosticContexts) { - getSymbolAccessibilityDiagnostic = createGetSymbolAccessibilityDiagnosticForNode(input); - } - if (isTypeQueryNode(input)) { - checkEntityNameVisibility(input.exprName, enclosingDeclaration); - } - if (shouldEnterSuppressNewDiagnosticsContextContext) { - suppressNewDiagnosticContexts = true; - } - if (isProcessedComponent(input)) { - switch (input.kind) { - case 233 /* ExpressionWithTypeArguments */: { - if (isEntityName(input.expression) || isEntityNameExpression(input.expression)) { - checkEntityNameVisibility(input.expression, enclosingDeclaration); - } - var node = visitEachChild(input, visitDeclarationSubtree, context); - return cleanup(factory2.updateExpressionWithTypeArguments(node, node.expression, node.typeArguments)); - } - case 183 /* TypeReference */: { - checkEntityNameVisibility(input.typeName, enclosingDeclaration); - var node = visitEachChild(input, visitDeclarationSubtree, context); - return cleanup(factory2.updateTypeReferenceNode(node, node.typeName, node.typeArguments)); - } - case 180 /* ConstructSignature */: - return cleanup(factory2.updateConstructSignature(input, ensureTypeParams(input, input.typeParameters), updateParamsList(input, input.parameters), ensureType(input, input.type))); - case 176 /* Constructor */: { - var ctor = factory2.createConstructorDeclaration( - /*modifiers*/ - ensureModifiers(input), updateParamsList(input, input.parameters, 0 /* None */), - /*body*/ - void 0); - return cleanup(ctor); - } - case 174 /* MethodDeclaration */: { - if (isPrivateIdentifier(input.name)) { - return cleanup( - /*returnValue*/ - void 0); - } - var sig = factory2.createMethodDeclaration(ensureModifiers(input), - /*asteriskToken*/ - void 0, input.name, input.questionToken, ensureTypeParams(input, input.typeParameters), updateParamsList(input, input.parameters), ensureType(input, input.type), - /*body*/ - void 0); - return cleanup(sig); - } - case 177 /* GetAccessor */: { - if (isPrivateIdentifier(input.name)) { - return cleanup( - /*returnValue*/ - void 0); - } - var accessorType = getTypeAnnotationFromAllAccessorDeclarations(input, resolver.getAllAccessorDeclarations(input)); - return cleanup(factory2.updateGetAccessorDeclaration(input, ensureModifiers(input), input.name, updateAccessorParamsList(input, hasEffectiveModifier(input, 8 /* Private */)), ensureType(input, accessorType), - /*body*/ - void 0)); - } - case 178 /* SetAccessor */: { - if (isPrivateIdentifier(input.name)) { - return cleanup( - /*returnValue*/ - void 0); - } - return cleanup(factory2.updateSetAccessorDeclaration(input, ensureModifiers(input), input.name, updateAccessorParamsList(input, hasEffectiveModifier(input, 8 /* Private */)), - /*body*/ - void 0)); - } - case 172 /* PropertyDeclaration */: - if (isPrivateIdentifier(input.name)) { - return cleanup( - /*returnValue*/ - void 0); - } - return cleanup(factory2.updatePropertyDeclaration(input, ensureModifiers(input), input.name, input.questionToken, ensureType(input, input.type), ensureNoInitializer(input))); - case 171 /* PropertySignature */: - if (isPrivateIdentifier(input.name)) { - return cleanup( - /*returnValue*/ - void 0); - } - return cleanup(factory2.updatePropertySignature(input, ensureModifiers(input), input.name, input.questionToken, ensureType(input, input.type))); - case 173 /* MethodSignature */: { - if (isPrivateIdentifier(input.name)) { - return cleanup( - /*returnValue*/ - void 0); - } - return cleanup(factory2.updateMethodSignature(input, ensureModifiers(input), input.name, input.questionToken, ensureTypeParams(input, input.typeParameters), updateParamsList(input, input.parameters), ensureType(input, input.type))); - } - case 179 /* CallSignature */: { - return cleanup(factory2.updateCallSignature(input, ensureTypeParams(input, input.typeParameters), updateParamsList(input, input.parameters), ensureType(input, input.type))); - } - case 181 /* IndexSignature */: { - return cleanup(factory2.updateIndexSignature(input, ensureModifiers(input), updateParamsList(input, input.parameters), visitNode(input.type, visitDeclarationSubtree, isTypeNode) || factory2.createKeywordTypeNode(133 /* AnyKeyword */))); - } - case 260 /* VariableDeclaration */: { - if (isBindingPattern(input.name)) { - return recreateBindingPattern(input.name); - } - shouldEnterSuppressNewDiagnosticsContextContext = true; - suppressNewDiagnosticContexts = true; - return cleanup(factory2.updateVariableDeclaration(input, input.name, - /*exclamationToken*/ - void 0, ensureType(input, input.type), ensureNoInitializer(input))); - } - case 168 /* TypeParameter */: { - if (isPrivateMethodTypeParameter(input) && (input.default || input.constraint)) { - return cleanup(factory2.updateTypeParameterDeclaration(input, input.modifiers, input.name, - /*constraint*/ - void 0, - /*defaultType*/ - void 0)); - } - return cleanup(visitEachChild(input, visitDeclarationSubtree, context)); - } - case 194 /* ConditionalType */: { - var checkType = visitNode(input.checkType, visitDeclarationSubtree, isTypeNode); - var extendsType = visitNode(input.extendsType, visitDeclarationSubtree, isTypeNode); - var oldEnclosingDecl = enclosingDeclaration; - enclosingDeclaration = input.trueType; - var trueType = visitNode(input.trueType, visitDeclarationSubtree, isTypeNode); - enclosingDeclaration = oldEnclosingDecl; - var falseType = visitNode(input.falseType, visitDeclarationSubtree, isTypeNode); - Debug.assert(checkType); - Debug.assert(extendsType); - Debug.assert(trueType); - Debug.assert(falseType); - return cleanup(factory2.updateConditionalTypeNode(input, checkType, extendsType, trueType, falseType)); - } - case 184 /* FunctionType */: { - return cleanup(factory2.updateFunctionTypeNode(input, visitNodes2(input.typeParameters, visitDeclarationSubtree, isTypeParameterDeclaration), updateParamsList(input, input.parameters), Debug.checkDefined(visitNode(input.type, visitDeclarationSubtree, isTypeNode)))); - } - case 185 /* ConstructorType */: { - return cleanup(factory2.updateConstructorTypeNode(input, ensureModifiers(input), visitNodes2(input.typeParameters, visitDeclarationSubtree, isTypeParameterDeclaration), updateParamsList(input, input.parameters), Debug.checkDefined(visitNode(input.type, visitDeclarationSubtree, isTypeNode)))); - } - case 205 /* ImportType */: { - if (!isLiteralImportTypeNode(input)) - return cleanup(input); - return cleanup(factory2.updateImportTypeNode(input, factory2.updateLiteralTypeNode(input.argument, rewriteModuleSpecifier(input, input.argument.literal)), input.assertions, input.qualifier, visitNodes2(input.typeArguments, visitDeclarationSubtree, isTypeNode), input.isTypeOf)); - } - default: - Debug.assertNever(input, "Attempted to process unhandled node kind: ".concat(Debug.formatSyntaxKind(input.kind))); - } - } - if (isTupleTypeNode(input) && getLineAndCharacterOfPosition(currentSourceFile, input.pos).line === getLineAndCharacterOfPosition(currentSourceFile, input.end).line) { - setEmitFlags(input, 1 /* SingleLine */); - } - return cleanup(visitEachChild(input, visitDeclarationSubtree, context)); - function cleanup(returnValue) { - if (returnValue && canProduceDiagnostic && hasDynamicName(input)) { - checkName(input); - } - if (isEnclosingDeclaration(input)) { - enclosingDeclaration = previousEnclosingDeclaration; - } - if (canProduceDiagnostic && !suppressNewDiagnosticContexts) { - getSymbolAccessibilityDiagnostic = oldDiag; - } - if (shouldEnterSuppressNewDiagnosticsContextContext) { - suppressNewDiagnosticContexts = oldWithinObjectLiteralType; - } - if (returnValue === input) { - return returnValue; - } - return returnValue && setOriginalNode(preserveJsDoc(returnValue, input), input); - } - } - function isPrivateMethodTypeParameter(node) { - return node.parent.kind === 174 /* MethodDeclaration */ && hasEffectiveModifier(node.parent, 8 /* Private */); - } - function visitDeclarationStatements(input) { - if (!isPreservedDeclarationStatement(input)) { - return; - } - if (shouldStripInternal(input)) - return; - switch (input.kind) { - case 278 /* ExportDeclaration */: { - if (isSourceFile(input.parent)) { - resultHasExternalModuleIndicator = true; - } - resultHasScopeMarker = true; - return factory2.updateExportDeclaration(input, input.modifiers, input.isTypeOnly, input.exportClause, rewriteModuleSpecifier(input, input.moduleSpecifier), getResolutionModeOverrideForClause(input.assertClause) ? input.assertClause : void 0); - } - case 277 /* ExportAssignment */: { - if (isSourceFile(input.parent)) { - resultHasExternalModuleIndicator = true; - } - resultHasScopeMarker = true; - if (input.expression.kind === 80 /* Identifier */) { - return input; - } - else { - var newId = factory2.createUniqueName("_default", 16 /* Optimistic */); - getSymbolAccessibilityDiagnostic = function () { return ({ - diagnosticMessage: Diagnostics.Default_export_of_the_module_has_or_is_using_private_name_0, - errorNode: input - }); }; - errorFallbackNode = input; - var varDecl = factory2.createVariableDeclaration(newId, - /*exclamationToken*/ - void 0, resolver.createTypeOfExpression(input.expression, input, declarationEmitNodeBuilderFlags, symbolTracker), - /*initializer*/ - void 0); - errorFallbackNode = void 0; - var statement = factory2.createVariableStatement(needsDeclare ? [factory2.createModifier(138 /* DeclareKeyword */)] : [], factory2.createVariableDeclarationList([varDecl], 2 /* Const */)); - preserveJsDoc(statement, input); - removeAllComments(input); - return [statement, factory2.updateExportAssignment(input, input.modifiers, newId)]; - } - } - } - var result = transformTopLevelDeclaration(input); - lateStatementReplacementMap.set(getOriginalNodeId(input), result); - return input; - } - function stripExportModifiers(statement) { - if (isImportEqualsDeclaration(statement) || hasEffectiveModifier(statement, 1024 /* Default */) || !canHaveModifiers(statement)) { - return statement; - } - var modifiers = factory2.createModifiersFromModifierFlags(getEffectiveModifierFlags(statement) & (258047 /* All */ ^ 1 /* Export */)); - return factory2.updateModifiers(statement, modifiers); - } - function updateModuleDeclarationAndKeyword(node, modifiers, name, body) { - var updated = factory2.updateModuleDeclaration(node, modifiers, name, body); - if (isAmbientModule(updated) || updated.flags & 32 /* Namespace */) { - return updated; - } - var fixed = factory2.createModuleDeclaration(updated.modifiers, updated.name, updated.body, updated.flags | 32 /* Namespace */); - setOriginalNode(fixed, updated); - setTextRange(fixed, updated); - return fixed; - } - function transformTopLevelDeclaration(input) { - if (lateMarkedStatements) { - while (orderedRemoveItem(lateMarkedStatements, input)) - ; - } - if (shouldStripInternal(input)) - return; - switch (input.kind) { - case 271 /* ImportEqualsDeclaration */: { - return transformImportEqualsDeclaration(input); - } - case 272 /* ImportDeclaration */: { - return transformImportDeclaration(input); - } - } - if (isDeclaration(input) && isDeclarationAndNotVisible(input)) - return; - if (isFunctionLike(input) && resolver.isImplementationOfOverload(input)) - return; - var previousEnclosingDeclaration; - if (isEnclosingDeclaration(input)) { - previousEnclosingDeclaration = enclosingDeclaration; - enclosingDeclaration = input; - } - var canProdiceDiagnostic = canProduceDiagnostics(input); - var oldDiag = getSymbolAccessibilityDiagnostic; - if (canProdiceDiagnostic) { - getSymbolAccessibilityDiagnostic = createGetSymbolAccessibilityDiagnosticForNode(input); - } - var previousNeedsDeclare = needsDeclare; - switch (input.kind) { - case 265 /* TypeAliasDeclaration */: { - needsDeclare = false; - var clean2 = cleanup(factory2.updateTypeAliasDeclaration(input, ensureModifiers(input), input.name, visitNodes2(input.typeParameters, visitDeclarationSubtree, isTypeParameterDeclaration), Debug.checkDefined(visitNode(input.type, visitDeclarationSubtree, isTypeNode)))); - needsDeclare = previousNeedsDeclare; - return clean2; - } - case 264 /* InterfaceDeclaration */: { - return cleanup(factory2.updateInterfaceDeclaration(input, ensureModifiers(input), input.name, ensureTypeParams(input, input.typeParameters), transformHeritageClauses(input.heritageClauses), visitNodes2(input.members, visitDeclarationSubtree, isTypeElement))); - } - case 262 /* FunctionDeclaration */: { - var clean2 = cleanup(factory2.updateFunctionDeclaration(input, ensureModifiers(input), - /*asteriskToken*/ - void 0, input.name, ensureTypeParams(input, input.typeParameters), updateParamsList(input, input.parameters), ensureType(input, input.type), - /*body*/ - void 0)); - if (clean2 && resolver.isExpandoFunctionDeclaration(input) && shouldEmitFunctionProperties(input)) { - var props = resolver.getPropertiesOfContainerFunction(input); - var fakespace_1 = parseNodeFactory.createModuleDeclaration( - /*modifiers*/ - void 0, clean2.name || factory2.createIdentifier("_default"), factory2.createModuleBlock([]), 32 /* Namespace */); - setParent(fakespace_1, enclosingDeclaration); - fakespace_1.locals = createSymbolTable(props); - fakespace_1.symbol = props[0].parent; - var exportMappings_1 = []; - var declarations = mapDefined(props, function (p) { - if (!p.valueDeclaration || !(isPropertyAccessExpression(p.valueDeclaration) || isElementAccessExpression(p.valueDeclaration) || isBinaryExpression(p.valueDeclaration))) { - return void 0; - } - var nameStr = unescapeLeadingUnderscores(p.escapedName); - if (!isIdentifierText(nameStr, 99 /* ESNext */)) { - return void 0; - } - getSymbolAccessibilityDiagnostic = createGetSymbolAccessibilityDiagnosticForNode(p.valueDeclaration); - var type = resolver.createTypeOfDeclaration(p.valueDeclaration, fakespace_1, declarationEmitNodeBuilderFlags, symbolTracker); - getSymbolAccessibilityDiagnostic = oldDiag; - var isNonContextualKeywordName = isStringANonContextualKeyword(nameStr); - var name = isNonContextualKeywordName ? factory2.getGeneratedNameForNode(p.valueDeclaration) : factory2.createIdentifier(nameStr); - if (isNonContextualKeywordName) { - exportMappings_1.push([name, nameStr]); - } - var varDecl = factory2.createVariableDeclaration(name, - /*exclamationToken*/ - void 0, type, - /*initializer*/ - void 0); - return factory2.createVariableStatement(isNonContextualKeywordName ? void 0 : [factory2.createToken(95 /* ExportKeyword */)], factory2.createVariableDeclarationList([varDecl])); - }); - if (!exportMappings_1.length) { - declarations = mapDefined(declarations, function (declaration) { return factory2.updateModifiers(declaration, 0 /* None */); }); - } - else { - declarations.push(factory2.createExportDeclaration( - /*modifiers*/ - void 0, - /*isTypeOnly*/ - false, factory2.createNamedExports(map(exportMappings_1, function (_t) { - var _u = __read(_t, 2), gen = _u[0], exp = _u[1]; - return factory2.createExportSpecifier( - /*isTypeOnly*/ - false, gen, exp); - })))); - } - var namespaceDecl = factory2.createModuleDeclaration(ensureModifiers(input), input.name, factory2.createModuleBlock(declarations), 32 /* Namespace */); - if (!hasEffectiveModifier(clean2, 1024 /* Default */)) { - return [clean2, namespaceDecl]; - } - var modifiers = factory2.createModifiersFromModifierFlags(getEffectiveModifierFlags(clean2) & ~1025 /* ExportDefault */ | 2 /* Ambient */); - var cleanDeclaration = factory2.updateFunctionDeclaration(clean2, modifiers, - /*asteriskToken*/ - void 0, clean2.name, clean2.typeParameters, clean2.parameters, clean2.type, - /*body*/ - void 0); - var namespaceDeclaration = factory2.updateModuleDeclaration(namespaceDecl, modifiers, namespaceDecl.name, namespaceDecl.body); - var exportDefaultDeclaration = factory2.createExportAssignment( - /*modifiers*/ - void 0, - /*isExportEquals*/ - false, namespaceDecl.name); - if (isSourceFile(input.parent)) { - resultHasExternalModuleIndicator = true; - } - resultHasScopeMarker = true; - return [cleanDeclaration, namespaceDeclaration, exportDefaultDeclaration]; - } - else { - return clean2; - } - } - case 267 /* ModuleDeclaration */: { - needsDeclare = false; - var inner = input.body; - if (inner && inner.kind === 268 /* ModuleBlock */) { - var oldNeedsScopeFix = needsScopeFixMarker; - var oldHasScopeFix = resultHasScopeMarker; - resultHasScopeMarker = false; - needsScopeFixMarker = false; - var statements = visitNodes2(inner.statements, visitDeclarationStatements, isStatement); - var lateStatements = transformAndReplaceLatePaintedStatements(statements); - if (input.flags & 33554432 /* Ambient */) { - needsScopeFixMarker = false; - } - if (!isGlobalScopeAugmentation(input) && !hasScopeMarker2(lateStatements) && !resultHasScopeMarker) { - if (needsScopeFixMarker) { - lateStatements = factory2.createNodeArray(__spreadArray(__spreadArray([], __read(lateStatements), false), [createEmptyExports(factory2)], false)); - } - else { - lateStatements = visitNodes2(lateStatements, stripExportModifiers, isStatement); - } - } - var body = factory2.updateModuleBlock(inner, lateStatements); - needsDeclare = previousNeedsDeclare; - needsScopeFixMarker = oldNeedsScopeFix; - resultHasScopeMarker = oldHasScopeFix; - var mods = ensureModifiers(input); - return cleanup(updateModuleDeclarationAndKeyword(input, mods, isExternalModuleAugmentation(input) ? rewriteModuleSpecifier(input, input.name) : input.name, body)); - } - else { - needsDeclare = previousNeedsDeclare; - var mods = ensureModifiers(input); - needsDeclare = false; - visitNode(inner, visitDeclarationStatements); - var id = getOriginalNodeId(inner); - var body = lateStatementReplacementMap.get(id); - lateStatementReplacementMap.delete(id); - return cleanup(updateModuleDeclarationAndKeyword(input, mods, input.name, body)); - } - } - case 263 /* ClassDeclaration */: { - errorNameNode = input.name; - errorFallbackNode = input; - var modifiers = factory2.createNodeArray(ensureModifiers(input)); - var typeParameters = ensureTypeParams(input, input.typeParameters); - var ctor = getFirstConstructorWithBody(input); - var parameterProperties = void 0; - if (ctor) { - var oldDiag2 = getSymbolAccessibilityDiagnostic; - parameterProperties = compact(flatMap(ctor.parameters, function (param) { - if (!hasSyntacticModifier(param, 16476 /* ParameterPropertyModifier */) || shouldStripInternal(param)) - return; - getSymbolAccessibilityDiagnostic = createGetSymbolAccessibilityDiagnosticForNode(param); - if (param.name.kind === 80 /* Identifier */) { - return preserveJsDoc(factory2.createPropertyDeclaration(ensureModifiers(param), param.name, param.questionToken, ensureType(param, param.type), ensureNoInitializer(param)), param); - } - else { - return walkBindingPattern(param.name); - } - function walkBindingPattern(pattern) { - var e_553, _t; - var elems; - try { - for (var _u = __values(pattern.elements), _v = _u.next(); !_v.done; _v = _u.next()) { - var elem = _v.value; - if (isOmittedExpression(elem)) - continue; - if (isBindingPattern(elem.name)) { - elems = concatenate(elems, walkBindingPattern(elem.name)); - } - elems = elems || []; - elems.push(factory2.createPropertyDeclaration(ensureModifiers(param), elem.name, - /*questionOrExclamationToken*/ - void 0, ensureType(elem, - /*type*/ - void 0), - /*initializer*/ - void 0)); - } - } - catch (e_553_1) { e_553 = { error: e_553_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_553) throw e_553.error; } - } - return elems; - } - })); - getSymbolAccessibilityDiagnostic = oldDiag2; - } - var hasPrivateIdentifier = some(input.members, function (member) { return !!member.name && isPrivateIdentifier(member.name); }); - var privateIdentifier = hasPrivateIdentifier ? [ - factory2.createPropertyDeclaration( - /*modifiers*/ - void 0, factory2.createPrivateIdentifier("#private"), - /*questionOrExclamationToken*/ - void 0, - /*type*/ - void 0, - /*initializer*/ - void 0) - ] : void 0; - var memberNodes = concatenate(concatenate(privateIdentifier, parameterProperties), visitNodes2(input.members, visitDeclarationSubtree, isClassElement)); - var members = factory2.createNodeArray(memberNodes); - var extendsClause_1 = getEffectiveBaseTypeNode(input); - if (extendsClause_1 && !isEntityNameExpression(extendsClause_1.expression) && extendsClause_1.expression.kind !== 106 /* NullKeyword */) { - var oldId = input.name ? unescapeLeadingUnderscores(input.name.escapedText) : "default"; - var newId_1 = factory2.createUniqueName("".concat(oldId, "_base"), 16 /* Optimistic */); - getSymbolAccessibilityDiagnostic = function () { return ({ - diagnosticMessage: Diagnostics.extends_clause_of_exported_class_0_has_or_is_using_private_name_1, - errorNode: extendsClause_1, - typeName: input.name - }); }; - var varDecl = factory2.createVariableDeclaration(newId_1, - /*exclamationToken*/ - void 0, resolver.createTypeOfExpression(extendsClause_1.expression, input, declarationEmitNodeBuilderFlags, symbolTracker), - /*initializer*/ - void 0); - var statement = factory2.createVariableStatement(needsDeclare ? [factory2.createModifier(138 /* DeclareKeyword */)] : [], factory2.createVariableDeclarationList([varDecl], 2 /* Const */)); - var heritageClauses = factory2.createNodeArray(map(input.heritageClauses, function (clause) { - if (clause.token === 96 /* ExtendsKeyword */) { - var oldDiag2 = getSymbolAccessibilityDiagnostic; - getSymbolAccessibilityDiagnostic = createGetSymbolAccessibilityDiagnosticForNode(clause.types[0]); - var newClause = factory2.updateHeritageClause(clause, map(clause.types, function (t) { return factory2.updateExpressionWithTypeArguments(t, newId_1, visitNodes2(t.typeArguments, visitDeclarationSubtree, isTypeNode)); })); - getSymbolAccessibilityDiagnostic = oldDiag2; - return newClause; - } - return factory2.updateHeritageClause(clause, visitNodes2(factory2.createNodeArray(filter(clause.types, function (t) { return isEntityNameExpression(t.expression) || t.expression.kind === 106; } /* NullKeyword */)), visitDeclarationSubtree, isExpressionWithTypeArguments)); - })); - return [statement, cleanup(factory2.updateClassDeclaration(input, modifiers, input.name, typeParameters, heritageClauses, members))]; - } - else { - var heritageClauses = transformHeritageClauses(input.heritageClauses); - return cleanup(factory2.updateClassDeclaration(input, modifiers, input.name, typeParameters, heritageClauses, members)); - } - } - case 243 /* VariableStatement */: { - return cleanup(transformVariableStatement(input)); - } - case 266 /* EnumDeclaration */: { - return cleanup(factory2.updateEnumDeclaration(input, factory2.createNodeArray(ensureModifiers(input)), input.name, factory2.createNodeArray(mapDefined(input.members, function (m) { - if (shouldStripInternal(m)) - return; - var constValue = resolver.getConstantValue(m); - return preserveJsDoc(factory2.updateEnumMember(m, m.name, constValue !== void 0 ? typeof constValue === "string" ? factory2.createStringLiteral(constValue) : factory2.createNumericLiteral(constValue) : void 0), m); - })))); - } - } - return Debug.assertNever(input, "Unhandled top-level node in declaration emit: ".concat(Debug.formatSyntaxKind(input.kind))); - function cleanup(node) { - if (isEnclosingDeclaration(input)) { - enclosingDeclaration = previousEnclosingDeclaration; - } - if (canProdiceDiagnostic) { - getSymbolAccessibilityDiagnostic = oldDiag; - } - if (input.kind === 267 /* ModuleDeclaration */) { - needsDeclare = previousNeedsDeclare; - } - if (node === input) { - return node; - } - errorFallbackNode = void 0; - errorNameNode = void 0; - return node && setOriginalNode(preserveJsDoc(node, input), input); - } - } - function transformVariableStatement(input) { - if (!forEach(input.declarationList.declarations, getBindingNameVisible)) - return; - var nodes = visitNodes2(input.declarationList.declarations, visitDeclarationSubtree, isVariableDeclaration); - if (!length(nodes)) - return; - var modifiers = factory2.createNodeArray(ensureModifiers(input)); - var declList; - if (isVarUsing(input.declarationList) || isVarAwaitUsing(input.declarationList)) { - declList = factory2.createVariableDeclarationList(nodes, 2 /* Const */); - setOriginalNode(declList, input.declarationList); - setTextRange(declList, input.declarationList); - setCommentRange(declList, input.declarationList); - } - else { - declList = factory2.updateVariableDeclarationList(input.declarationList, nodes); - } - return factory2.updateVariableStatement(input, modifiers, declList); - } - function recreateBindingPattern(d) { - return flatten(mapDefined(d.elements, function (e) { return recreateBindingElement(e); })); - } - function recreateBindingElement(e) { - if (e.kind === 232 /* OmittedExpression */) { - return; - } - if (e.name) { - if (!getBindingNameVisible(e)) - return; - if (isBindingPattern(e.name)) { - return recreateBindingPattern(e.name); - } - else { - return factory2.createVariableDeclaration(e.name, - /*exclamationToken*/ - void 0, ensureType(e, - /*type*/ - void 0), - /*initializer*/ - void 0); - } - } - } - function checkName(node) { - var oldDiag; - if (!suppressNewDiagnosticContexts) { - oldDiag = getSymbolAccessibilityDiagnostic; - getSymbolAccessibilityDiagnostic = createGetSymbolAccessibilityDiagnosticForNodeName(node); - } - errorNameNode = node.name; - Debug.assert(resolver.isLateBound(getParseTreeNode(node))); - var decl = node; - var entityName = decl.name.expression; - checkEntityNameVisibility(entityName, enclosingDeclaration); - if (!suppressNewDiagnosticContexts) { - getSymbolAccessibilityDiagnostic = oldDiag; - } - errorNameNode = void 0; - } - function shouldStripInternal(node) { - return !!stripInternal && !!node && isInternalDeclaration(node, currentSourceFile); - } - function isScopeMarker2(node) { - return isExportAssignment(node) || isExportDeclaration(node); - } - function hasScopeMarker2(statements) { - return some(statements, isScopeMarker2); - } - function ensureModifiers(node) { - var currentFlags = getEffectiveModifierFlags(node); - var newFlags = ensureModifierFlags(node); - if (currentFlags === newFlags) { - return visitArray(node.modifiers, function (n) { return tryCast(n, isModifier); }, isModifier); - } - return factory2.createModifiersFromModifierFlags(newFlags); - } - function ensureModifierFlags(node) { - var mask2 = 258047 /* All */ ^ (4 /* Public */ | 512 /* Async */ | 16384 /* Override */); - var additions = needsDeclare && !isAlwaysType(node) ? 2 /* Ambient */ : 0 /* None */; - var parentIsFile = node.parent.kind === 312 /* SourceFile */; - if (!parentIsFile || isBundledEmit && parentIsFile && isExternalModule(node.parent)) { - mask2 ^= 2 /* Ambient */; - additions = 0 /* None */; - } - return maskModifierFlags(node, mask2, additions); - } - function getTypeAnnotationFromAllAccessorDeclarations(node, accessors) { - var accessorType = getTypeAnnotationFromAccessor(node); - if (!accessorType && node !== accessors.firstAccessor) { - accessorType = getTypeAnnotationFromAccessor(accessors.firstAccessor); - getSymbolAccessibilityDiagnostic = createGetSymbolAccessibilityDiagnosticForNode(accessors.firstAccessor); - } - if (!accessorType && accessors.secondAccessor && node !== accessors.secondAccessor) { - accessorType = getTypeAnnotationFromAccessor(accessors.secondAccessor); - getSymbolAccessibilityDiagnostic = createGetSymbolAccessibilityDiagnosticForNode(accessors.secondAccessor); - } - return accessorType; - } - function transformHeritageClauses(nodes) { - return factory2.createNodeArray(filter(map(nodes, function (clause) { return factory2.updateHeritageClause(clause, visitNodes2(factory2.createNodeArray(filter(clause.types, function (t) { - return isEntityNameExpression(t.expression) || clause.token === 96 /* ExtendsKeyword */ && t.expression.kind === 106 /* NullKeyword */; - })), visitDeclarationSubtree, isExpressionWithTypeArguments)); }), function (clause) { return clause.types && !!clause.types.length; })); - } -} -function isAlwaysType(node) { - if (node.kind === 264 /* InterfaceDeclaration */) { - return true; - } - return false; -} -function maskModifiers(factory2, node, modifierMask, modifierAdditions) { - return factory2.createModifiersFromModifierFlags(maskModifierFlags(node, modifierMask, modifierAdditions)); -} -function maskModifierFlags(node, modifierMask /* Public */, modifierAdditions /* None */) { - if (modifierMask === void 0) { modifierMask = 258047 /* All */ ^ 4; } - if (modifierAdditions === void 0) { modifierAdditions = 0; } - var flags = getEffectiveModifierFlags(node) & modifierMask | modifierAdditions; - if (flags & 1024 /* Default */ && !(flags & 1 /* Export */)) { - flags ^= 1 /* Export */; - } - if (flags & 1024 /* Default */ && flags & 2 /* Ambient */) { - flags ^= 2 /* Ambient */; - } - return flags; -} -function getTypeAnnotationFromAccessor(accessor) { - if (accessor) { - return accessor.kind === 177 /* GetAccessor */ ? accessor.type : accessor.parameters.length > 0 ? accessor.parameters[0].type : void 0; - } -} -function canHaveLiteralInitializer(node) { - switch (node.kind) { - case 172 /* PropertyDeclaration */: - case 171 /* PropertySignature */: - return !hasEffectiveModifier(node, 8 /* Private */); - case 169 /* Parameter */: - case 260 /* VariableDeclaration */: - return true; - } - return false; -} -function isPreservedDeclarationStatement(node) { - switch (node.kind) { - case 262 /* FunctionDeclaration */: - case 267 /* ModuleDeclaration */: - case 271 /* ImportEqualsDeclaration */: - case 264 /* InterfaceDeclaration */: - case 263 /* ClassDeclaration */: - case 265 /* TypeAliasDeclaration */: - case 266 /* EnumDeclaration */: - case 243 /* VariableStatement */: - case 272 /* ImportDeclaration */: - case 278 /* ExportDeclaration */: - case 277 /* ExportAssignment */: - return true; - } - return false; -} -function isProcessedComponent(node) { - switch (node.kind) { - case 180 /* ConstructSignature */: - case 176 /* Constructor */: - case 174 /* MethodDeclaration */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - case 172 /* PropertyDeclaration */: - case 171 /* PropertySignature */: - case 173 /* MethodSignature */: - case 179 /* CallSignature */: - case 181 /* IndexSignature */: - case 260 /* VariableDeclaration */: - case 168 /* TypeParameter */: - case 233 /* ExpressionWithTypeArguments */: - case 183 /* TypeReference */: - case 194 /* ConditionalType */: - case 184 /* FunctionType */: - case 185 /* ConstructorType */: - case 205 /* ImportType */: - return true; - } - return false; -} -// src/compiler/transformer.ts -function getModuleTransformer(moduleKind) { - switch (moduleKind) { - case 99 /* ESNext */: - case 7 /* ES2022 */: - case 6 /* ES2020 */: - case 5 /* ES2015 */: - return transformECMAScriptModule; - case 4 /* System */: - return transformSystemModule; - case 100 /* Node16 */: - case 199 /* NodeNext */: - return transformNodeModule; - default: - return transformModule; - } -} -var noTransformers = { scriptTransformers: emptyArray, declarationTransformers: emptyArray }; -function getTransformers(compilerOptions, customTransformers, emitOnly) { - return { - scriptTransformers: getScriptTransformers(compilerOptions, customTransformers, emitOnly), - declarationTransformers: getDeclarationTransformers(customTransformers) - }; -} -function getScriptTransformers(compilerOptions, customTransformers, emitOnly) { - if (emitOnly) - return emptyArray; - var languageVersion = getEmitScriptTarget(compilerOptions); - var moduleKind = getEmitModuleKind(compilerOptions); - var useDefineForClassFields = getUseDefineForClassFields(compilerOptions); - var transformers = []; - addRange(transformers, customTransformers && map(customTransformers.before, wrapScriptTransformerFactory)); - transformers.push(transformTypeScript); - if (compilerOptions.experimentalDecorators) { - transformers.push(transformLegacyDecorators); - } - if (getJSXTransformEnabled(compilerOptions)) { - transformers.push(transformJsx); - } - if (languageVersion < 99 /* ESNext */) { - transformers.push(transformESNext); - } - if (!compilerOptions.experimentalDecorators && (languageVersion < 99 /* ESNext */ || !useDefineForClassFields)) { - transformers.push(transformESDecorators); - } - transformers.push(transformClassFields); - if (languageVersion < 8 /* ES2021 */) { - transformers.push(transformES2021); - } - if (languageVersion < 7 /* ES2020 */) { - transformers.push(transformES2020); - } - if (languageVersion < 6 /* ES2019 */) { - transformers.push(transformES2019); - } - if (languageVersion < 5 /* ES2018 */) { - transformers.push(transformES2018); - } - if (languageVersion < 4 /* ES2017 */) { - transformers.push(transformES2017); - } - if (languageVersion < 3 /* ES2016 */) { - transformers.push(transformES2016); - } - if (languageVersion < 2 /* ES2015 */) { - transformers.push(transformES2015); - transformers.push(transformGenerators); - } - transformers.push(getModuleTransformer(moduleKind)); - if (languageVersion < 1 /* ES5 */) { - transformers.push(transformES5); - } - addRange(transformers, customTransformers && map(customTransformers.after, wrapScriptTransformerFactory)); - return transformers; -} -function getDeclarationTransformers(customTransformers) { - var transformers = []; - transformers.push(transformDeclarations); - addRange(transformers, customTransformers && map(customTransformers.afterDeclarations, wrapDeclarationTransformerFactory)); - return transformers; -} -function wrapCustomTransformer(transformer) { - return function (node) { return isBundle(node) ? transformer.transformBundle(node) : transformer.transformSourceFile(node); }; -} -function wrapCustomTransformerFactory(transformer, handleDefault) { - return function (context) { - var customTransformer = transformer(context); - return typeof customTransformer === "function" ? handleDefault(context, customTransformer) : wrapCustomTransformer(customTransformer); - }; -} -function wrapScriptTransformerFactory(transformer) { - return wrapCustomTransformerFactory(transformer, chainBundle); -} -function wrapDeclarationTransformerFactory(transformer) { - return wrapCustomTransformerFactory(transformer, function (_, node) { return node; }); -} -function noEmitSubstitution(_hint, node) { - return node; -} -function noEmitNotification(hint, node, callback) { - callback(hint, node); -} -function transformNodes(resolver, host, factory2, options, nodes, transformers, allowDtsFiles) { - var e_554, _t, e_555, _u; - var _a, _b; - var enabledSyntaxKindFeatures = new Array(363 /* Count */); - var lexicalEnvironmentVariableDeclarations; - var lexicalEnvironmentFunctionDeclarations; - var lexicalEnvironmentStatements; - var lexicalEnvironmentFlags = 0 /* None */; - var lexicalEnvironmentVariableDeclarationsStack = []; - var lexicalEnvironmentFunctionDeclarationsStack = []; - var lexicalEnvironmentStatementsStack = []; - var lexicalEnvironmentFlagsStack = []; - var lexicalEnvironmentStackOffset = 0; - var lexicalEnvironmentSuspended = false; - var blockScopedVariableDeclarationsStack = []; - var blockScopeStackOffset = 0; - var blockScopedVariableDeclarations; - var emitHelpers; - var onSubstituteNode = noEmitSubstitution; - var onEmitNode = noEmitNotification; - var state = 0 /* Uninitialized */; - var diagnostics = []; - var context = { - factory: factory2, - getCompilerOptions: function () { return options; }, - getEmitResolver: function () { return resolver; }, - // TODO: GH#18217 - getEmitHost: function () { return host; }, - // TODO: GH#18217 - getEmitHelperFactory: memoize(function () { return createEmitHelperFactory(context); }), - startLexicalEnvironment: startLexicalEnvironment, - suspendLexicalEnvironment: suspendLexicalEnvironment, - resumeLexicalEnvironment: resumeLexicalEnvironment, - endLexicalEnvironment: endLexicalEnvironment, - setLexicalEnvironmentFlags: setLexicalEnvironmentFlags, - getLexicalEnvironmentFlags: getLexicalEnvironmentFlags, - hoistVariableDeclaration: hoistVariableDeclaration, - hoistFunctionDeclaration: hoistFunctionDeclaration, - addInitializationStatement: addInitializationStatement, - startBlockScope: startBlockScope, - endBlockScope: endBlockScope, - addBlockScopedVariable: addBlockScopedVariable, - requestEmitHelper: requestEmitHelper, - readEmitHelpers: readEmitHelpers, - enableSubstitution: enableSubstitution, - enableEmitNotification: enableEmitNotification, - isSubstitutionEnabled: isSubstitutionEnabled, - isEmitNotificationEnabled: isEmitNotificationEnabled, - get onSubstituteNode() { - return onSubstituteNode; - }, - set onSubstituteNode(value) { - Debug.assert(state < 1 /* Initialized */, "Cannot modify transformation hooks after initialization has completed."); - Debug.assert(value !== void 0, "Value must not be 'undefined'"); - onSubstituteNode = value; - }, - get onEmitNode() { - return onEmitNode; - }, - set onEmitNode(value) { - Debug.assert(state < 1 /* Initialized */, "Cannot modify transformation hooks after initialization has completed."); - Debug.assert(value !== void 0, "Value must not be 'undefined'"); - onEmitNode = value; - }, - addDiagnostic: function (diag2) { - diagnostics.push(diag2); - } - }; - try { - for (var nodes_5 = __values(nodes), nodes_5_1 = nodes_5.next(); !nodes_5_1.done; nodes_5_1 = nodes_5.next()) { - var node = nodes_5_1.value; - disposeEmitNodes(getSourceFileOfNode(getParseTreeNode(node))); - } - } - catch (e_554_1) { e_554 = { error: e_554_1 }; } - finally { - try { - if (nodes_5_1 && !nodes_5_1.done && (_t = nodes_5.return)) _t.call(nodes_5); - } - finally { if (e_554) throw e_554.error; } - } - mark("beforeTransform"); - var transformersWithContext = transformers.map(function (t) { return t(context); }); - var transformation = function (node) { - var e_556, _t; - try { - for (var transformersWithContext_1 = __values(transformersWithContext), transformersWithContext_1_1 = transformersWithContext_1.next(); !transformersWithContext_1_1.done; transformersWithContext_1_1 = transformersWithContext_1.next()) { - var transform2 = transformersWithContext_1_1.value; - node = transform2(node); - } - } - catch (e_556_1) { e_556 = { error: e_556_1 }; } - finally { - try { - if (transformersWithContext_1_1 && !transformersWithContext_1_1.done && (_t = transformersWithContext_1.return)) _t.call(transformersWithContext_1); - } - finally { if (e_556) throw e_556.error; } - } - return node; - }; - state = 1 /* Initialized */; - var transformed = []; - try { - for (var nodes_6 = __values(nodes), nodes_6_1 = nodes_6.next(); !nodes_6_1.done; nodes_6_1 = nodes_6.next()) { - var node = nodes_6_1.value; - (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Emit, "transformNodes", node.kind === 312 /* SourceFile */ ? { path: node.path } : { kind: node.kind, pos: node.pos, end: node.end }); - transformed.push((allowDtsFiles ? transformation : transformRoot)(node)); - (_b = tracing) == null ? void 0 : _b.pop(); - } - } - catch (e_555_1) { e_555 = { error: e_555_1 }; } - finally { - try { - if (nodes_6_1 && !nodes_6_1.done && (_u = nodes_6.return)) _u.call(nodes_6); - } - finally { if (e_555) throw e_555.error; } - } - state = 2 /* Completed */; - mark("afterTransform"); - measure("transformTime", "beforeTransform", "afterTransform"); - return { - transformed: transformed, - substituteNode: substituteNode, - emitNodeWithNotification: emitNodeWithNotification, - isEmitNotificationEnabled: isEmitNotificationEnabled, - dispose: dispose, - diagnostics: diagnostics - }; - function transformRoot(node) { - return node && (!isSourceFile(node) || !node.isDeclarationFile) ? transformation(node) : node; - } - function enableSubstitution(kind) { - Debug.assert(state < 2 /* Completed */, "Cannot modify the transformation context after transformation has completed."); - enabledSyntaxKindFeatures[kind] |= 1 /* Substitution */; - } - function isSubstitutionEnabled(node) { - return (enabledSyntaxKindFeatures[node.kind] & 1 /* Substitution */) !== 0 && (getEmitFlags(node) & 8 /* NoSubstitution */) === 0; - } - function substituteNode(hint, node) { - Debug.assert(state < 3 /* Disposed */, "Cannot substitute a node after the result is disposed."); - return node && isSubstitutionEnabled(node) && onSubstituteNode(hint, node) || node; - } - function enableEmitNotification(kind) { - Debug.assert(state < 2 /* Completed */, "Cannot modify the transformation context after transformation has completed."); - enabledSyntaxKindFeatures[kind] |= 2 /* EmitNotifications */; - } - function isEmitNotificationEnabled(node) { - return (enabledSyntaxKindFeatures[node.kind] & 2 /* EmitNotifications */) !== 0 || (getEmitFlags(node) & 4 /* AdviseOnEmitNode */) !== 0; - } - function emitNodeWithNotification(hint, node, emitCallback) { - Debug.assert(state < 3 /* Disposed */, "Cannot invoke TransformationResult callbacks after the result is disposed."); - if (node) { - if (isEmitNotificationEnabled(node)) { - onEmitNode(hint, node, emitCallback); - } - else { - emitCallback(hint, node); - } - } - } - function hoistVariableDeclaration(name) { - Debug.assert(state > 0 /* Uninitialized */, "Cannot modify the lexical environment during initialization."); - Debug.assert(state < 2 /* Completed */, "Cannot modify the lexical environment after transformation has completed."); - var decl = setEmitFlags(factory2.createVariableDeclaration(name), 128 /* NoNestedSourceMaps */); - if (!lexicalEnvironmentVariableDeclarations) { - lexicalEnvironmentVariableDeclarations = [decl]; - } - else { - lexicalEnvironmentVariableDeclarations.push(decl); - } - if (lexicalEnvironmentFlags & 1 /* InParameters */) { - lexicalEnvironmentFlags |= 2 /* VariablesHoistedInParameters */; - } - } - function hoistFunctionDeclaration(func) { - Debug.assert(state > 0 /* Uninitialized */, "Cannot modify the lexical environment during initialization."); - Debug.assert(state < 2 /* Completed */, "Cannot modify the lexical environment after transformation has completed."); - setEmitFlags(func, 2097152 /* CustomPrologue */); - if (!lexicalEnvironmentFunctionDeclarations) { - lexicalEnvironmentFunctionDeclarations = [func]; - } - else { - lexicalEnvironmentFunctionDeclarations.push(func); - } - } - function addInitializationStatement(node) { - Debug.assert(state > 0 /* Uninitialized */, "Cannot modify the lexical environment during initialization."); - Debug.assert(state < 2 /* Completed */, "Cannot modify the lexical environment after transformation has completed."); - setEmitFlags(node, 2097152 /* CustomPrologue */); - if (!lexicalEnvironmentStatements) { - lexicalEnvironmentStatements = [node]; - } - else { - lexicalEnvironmentStatements.push(node); - } - } - function startLexicalEnvironment() { - Debug.assert(state > 0 /* Uninitialized */, "Cannot modify the lexical environment during initialization."); - Debug.assert(state < 2 /* Completed */, "Cannot modify the lexical environment after transformation has completed."); - Debug.assert(!lexicalEnvironmentSuspended, "Lexical environment is suspended."); - lexicalEnvironmentVariableDeclarationsStack[lexicalEnvironmentStackOffset] = lexicalEnvironmentVariableDeclarations; - lexicalEnvironmentFunctionDeclarationsStack[lexicalEnvironmentStackOffset] = lexicalEnvironmentFunctionDeclarations; - lexicalEnvironmentStatementsStack[lexicalEnvironmentStackOffset] = lexicalEnvironmentStatements; - lexicalEnvironmentFlagsStack[lexicalEnvironmentStackOffset] = lexicalEnvironmentFlags; - lexicalEnvironmentStackOffset++; - lexicalEnvironmentVariableDeclarations = void 0; - lexicalEnvironmentFunctionDeclarations = void 0; - lexicalEnvironmentStatements = void 0; - lexicalEnvironmentFlags = 0 /* None */; - } - function suspendLexicalEnvironment() { - Debug.assert(state > 0 /* Uninitialized */, "Cannot modify the lexical environment during initialization."); - Debug.assert(state < 2 /* Completed */, "Cannot modify the lexical environment after transformation has completed."); - Debug.assert(!lexicalEnvironmentSuspended, "Lexical environment is already suspended."); - lexicalEnvironmentSuspended = true; - } - function resumeLexicalEnvironment() { - Debug.assert(state > 0 /* Uninitialized */, "Cannot modify the lexical environment during initialization."); - Debug.assert(state < 2 /* Completed */, "Cannot modify the lexical environment after transformation has completed."); - Debug.assert(lexicalEnvironmentSuspended, "Lexical environment is not suspended."); - lexicalEnvironmentSuspended = false; - } - function endLexicalEnvironment() { - Debug.assert(state > 0 /* Uninitialized */, "Cannot modify the lexical environment during initialization."); - Debug.assert(state < 2 /* Completed */, "Cannot modify the lexical environment after transformation has completed."); - Debug.assert(!lexicalEnvironmentSuspended, "Lexical environment is suspended."); - var statements; - if (lexicalEnvironmentVariableDeclarations || lexicalEnvironmentFunctionDeclarations || lexicalEnvironmentStatements) { - if (lexicalEnvironmentFunctionDeclarations) { - statements = __spreadArray([], __read(lexicalEnvironmentFunctionDeclarations), false); - } - if (lexicalEnvironmentVariableDeclarations) { - var statement = factory2.createVariableStatement( - /*modifiers*/ - void 0, factory2.createVariableDeclarationList(lexicalEnvironmentVariableDeclarations)); - setEmitFlags(statement, 2097152 /* CustomPrologue */); - if (!statements) { - statements = [statement]; - } - else { - statements.push(statement); - } - } - if (lexicalEnvironmentStatements) { - if (!statements) { - statements = __spreadArray([], __read(lexicalEnvironmentStatements), false); - } - else { - statements = __spreadArray(__spreadArray([], __read(statements), false), __read(lexicalEnvironmentStatements), false); - } - } - } - lexicalEnvironmentStackOffset--; - lexicalEnvironmentVariableDeclarations = lexicalEnvironmentVariableDeclarationsStack[lexicalEnvironmentStackOffset]; - lexicalEnvironmentFunctionDeclarations = lexicalEnvironmentFunctionDeclarationsStack[lexicalEnvironmentStackOffset]; - lexicalEnvironmentStatements = lexicalEnvironmentStatementsStack[lexicalEnvironmentStackOffset]; - lexicalEnvironmentFlags = lexicalEnvironmentFlagsStack[lexicalEnvironmentStackOffset]; - if (lexicalEnvironmentStackOffset === 0) { - lexicalEnvironmentVariableDeclarationsStack = []; - lexicalEnvironmentFunctionDeclarationsStack = []; - lexicalEnvironmentStatementsStack = []; - lexicalEnvironmentFlagsStack = []; - } - return statements; - } - function setLexicalEnvironmentFlags(flags, value) { - lexicalEnvironmentFlags = value ? lexicalEnvironmentFlags | flags : lexicalEnvironmentFlags & ~flags; - } - function getLexicalEnvironmentFlags() { - return lexicalEnvironmentFlags; - } - function startBlockScope() { - Debug.assert(state > 0 /* Uninitialized */, "Cannot start a block scope during initialization."); - Debug.assert(state < 2 /* Completed */, "Cannot start a block scope after transformation has completed."); - blockScopedVariableDeclarationsStack[blockScopeStackOffset] = blockScopedVariableDeclarations; - blockScopeStackOffset++; - blockScopedVariableDeclarations = void 0; - } - function endBlockScope() { - Debug.assert(state > 0 /* Uninitialized */, "Cannot end a block scope during initialization."); - Debug.assert(state < 2 /* Completed */, "Cannot end a block scope after transformation has completed."); - var statements = some(blockScopedVariableDeclarations) ? [ - factory2.createVariableStatement( - /*modifiers*/ - void 0, factory2.createVariableDeclarationList(blockScopedVariableDeclarations.map(function (identifier) { return factory2.createVariableDeclaration(identifier); }), 1 /* Let */)) - ] : void 0; - blockScopeStackOffset--; - blockScopedVariableDeclarations = blockScopedVariableDeclarationsStack[blockScopeStackOffset]; - if (blockScopeStackOffset === 0) { - blockScopedVariableDeclarationsStack = []; - } - return statements; - } - function addBlockScopedVariable(name) { - Debug.assert(blockScopeStackOffset > 0, "Cannot add a block scoped variable outside of an iteration body."); - (blockScopedVariableDeclarations || (blockScopedVariableDeclarations = [])).push(name); - } - function requestEmitHelper(helper) { - var e_557, _t; - Debug.assert(state > 0 /* Uninitialized */, "Cannot modify the transformation context during initialization."); - Debug.assert(state < 2 /* Completed */, "Cannot modify the transformation context after transformation has completed."); - Debug.assert(!helper.scoped, "Cannot request a scoped emit helper."); - if (helper.dependencies) { - try { - for (var _u = __values(helper.dependencies), _v = _u.next(); !_v.done; _v = _u.next()) { - var h = _v.value; - requestEmitHelper(h); - } - } - catch (e_557_1) { e_557 = { error: e_557_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_557) throw e_557.error; } - } - } - emitHelpers = append(emitHelpers, helper); - } - function readEmitHelpers() { - Debug.assert(state > 0 /* Uninitialized */, "Cannot modify the transformation context during initialization."); - Debug.assert(state < 2 /* Completed */, "Cannot modify the transformation context after transformation has completed."); - var helpers = emitHelpers; - emitHelpers = void 0; - return helpers; - } - function dispose() { - var e_558, _t; - if (state < 3 /* Disposed */) { - try { - for (var nodes_7 = __values(nodes), nodes_7_1 = nodes_7.next(); !nodes_7_1.done; nodes_7_1 = nodes_7.next()) { - var node = nodes_7_1.value; - disposeEmitNodes(getSourceFileOfNode(getParseTreeNode(node))); - } - } - catch (e_558_1) { e_558 = { error: e_558_1 }; } - finally { - try { - if (nodes_7_1 && !nodes_7_1.done && (_t = nodes_7.return)) _t.call(nodes_7); - } - finally { if (e_558) throw e_558.error; } - } - lexicalEnvironmentVariableDeclarations = void 0; - lexicalEnvironmentVariableDeclarationsStack = void 0; - lexicalEnvironmentFunctionDeclarations = void 0; - lexicalEnvironmentFunctionDeclarationsStack = void 0; - onSubstituteNode = void 0; - onEmitNode = void 0; - emitHelpers = void 0; - state = 3 /* Disposed */; - } - } -} -var nullTransformationContext = { - factory: factory, - // eslint-disable-line object-shorthand - getCompilerOptions: function () { return ({}); }, - getEmitResolver: notImplemented, - getEmitHost: notImplemented, - getEmitHelperFactory: notImplemented, - startLexicalEnvironment: noop, - resumeLexicalEnvironment: noop, - suspendLexicalEnvironment: noop, - endLexicalEnvironment: returnUndefined, - setLexicalEnvironmentFlags: noop, - getLexicalEnvironmentFlags: function () { return 0; }, - hoistVariableDeclaration: noop, - hoistFunctionDeclaration: noop, - addInitializationStatement: noop, - startBlockScope: noop, - endBlockScope: returnUndefined, - addBlockScopedVariable: noop, - requestEmitHelper: noop, - readEmitHelpers: notImplemented, - enableSubstitution: noop, - enableEmitNotification: noop, - isSubstitutionEnabled: notImplemented, - isEmitNotificationEnabled: notImplemented, - onSubstituteNode: noEmitSubstitution, - onEmitNode: noEmitNotification, - addDiagnostic: noop -}; -// src/compiler/emitter.ts -var brackets = createBracketsMap(); -function isBuildInfoFile(file) { - return fileExtensionIs(file, ".tsbuildinfo" /* TsBuildInfo */); -} -function forEachEmittedFile(host, action, sourceFilesOrTargetSourceFile, forceDtsEmit, onlyBuildInfo, includeBuildInfo) { - var e_559, _t; - if (forceDtsEmit === void 0) { forceDtsEmit = false; } - var sourceFiles = isArray(sourceFilesOrTargetSourceFile) ? sourceFilesOrTargetSourceFile : getSourceFilesToEmit(host, sourceFilesOrTargetSourceFile, forceDtsEmit); - var options = host.getCompilerOptions(); - if (outFile(options)) { - var prepends = host.getPrependNodes(); - if (sourceFiles.length || prepends.length) { - var bundle = factory.createBundle(sourceFiles, prepends); - var result = action(getOutputPathsFor(bundle, host, forceDtsEmit), bundle); - if (result) { - return result; - } - } - } - else { - if (!onlyBuildInfo) { - try { - for (var sourceFiles_1 = __values(sourceFiles), sourceFiles_1_1 = sourceFiles_1.next(); !sourceFiles_1_1.done; sourceFiles_1_1 = sourceFiles_1.next()) { - var sourceFile = sourceFiles_1_1.value; - var result = action(getOutputPathsFor(sourceFile, host, forceDtsEmit), sourceFile); - if (result) { - return result; - } - } - } - catch (e_559_1) { e_559 = { error: e_559_1 }; } - finally { - try { - if (sourceFiles_1_1 && !sourceFiles_1_1.done && (_t = sourceFiles_1.return)) _t.call(sourceFiles_1); - } - finally { if (e_559) throw e_559.error; } - } - } - if (includeBuildInfo) { - var buildInfoPath = getTsBuildInfoEmitOutputFilePath(options); - if (buildInfoPath) - return action({ buildInfoPath: buildInfoPath }, - /*sourceFileOrBundle*/ - void 0); - } - } -} -function getTsBuildInfoEmitOutputFilePath(options) { - var configFile = options.configFilePath; - if (!isIncrementalCompilation(options)) - return void 0; - if (options.tsBuildInfoFile) - return options.tsBuildInfoFile; - var outPath = outFile(options); - var buildInfoExtensionLess; - if (outPath) { - buildInfoExtensionLess = removeFileExtension(outPath); - } - else { - if (!configFile) - return void 0; - var configFileExtensionLess = removeFileExtension(configFile); - buildInfoExtensionLess = options.outDir ? options.rootDir ? resolvePath(options.outDir, getRelativePathFromDirectory(options.rootDir, configFileExtensionLess, - /*ignoreCase*/ - true)) : combinePaths(options.outDir, getBaseFileName(configFileExtensionLess)) : configFileExtensionLess; - } - return buildInfoExtensionLess + ".tsbuildinfo" /* TsBuildInfo */; -} -function getOutputPathsForBundle(options, forceDtsPaths) { - var outPath = outFile(options); - var jsFilePath = options.emitDeclarationOnly ? void 0 : outPath; - var sourceMapFilePath = jsFilePath && getSourceMapFilePath(jsFilePath, options); - var declarationFilePath = forceDtsPaths || getEmitDeclarations(options) ? removeFileExtension(outPath) + ".d.ts" /* Dts */ : void 0; - var declarationMapPath = declarationFilePath && getAreDeclarationMapsEnabled(options) ? declarationFilePath + ".map" : void 0; - var buildInfoPath = getTsBuildInfoEmitOutputFilePath(options); - return { jsFilePath: jsFilePath, sourceMapFilePath: sourceMapFilePath, declarationFilePath: declarationFilePath, declarationMapPath: declarationMapPath, buildInfoPath: buildInfoPath }; -} -function getOutputPathsFor(sourceFile, host, forceDtsPaths) { - var options = host.getCompilerOptions(); - if (sourceFile.kind === 313 /* Bundle */) { - return getOutputPathsForBundle(options, forceDtsPaths); - } - else { - var ownOutputFilePath = getOwnEmitOutputFilePath(sourceFile.fileName, host, getOutputExtension(sourceFile.fileName, options)); - var isJsonFile = isJsonSourceFile(sourceFile); - var isJsonEmittedToSameLocation = isJsonFile && comparePaths(sourceFile.fileName, ownOutputFilePath, host.getCurrentDirectory(), !host.useCaseSensitiveFileNames()) === 0 /* EqualTo */; - var jsFilePath = options.emitDeclarationOnly || isJsonEmittedToSameLocation ? void 0 : ownOutputFilePath; - var sourceMapFilePath = !jsFilePath || isJsonSourceFile(sourceFile) ? void 0 : getSourceMapFilePath(jsFilePath, options); - var declarationFilePath = forceDtsPaths || getEmitDeclarations(options) && !isJsonFile ? getDeclarationEmitOutputFilePath(sourceFile.fileName, host) : void 0; - var declarationMapPath = declarationFilePath && getAreDeclarationMapsEnabled(options) ? declarationFilePath + ".map" : void 0; - return { jsFilePath: jsFilePath, sourceMapFilePath: sourceMapFilePath, declarationFilePath: declarationFilePath, declarationMapPath: declarationMapPath, buildInfoPath: void 0 }; - } -} -function getSourceMapFilePath(jsFilePath, options) { - return options.sourceMap && !options.inlineSourceMap ? jsFilePath + ".map" : void 0; -} -function getOutputExtension(fileName, options) { - return fileExtensionIs(fileName, ".json" /* Json */) ? ".json" /* Json */ : options.jsx === 1 /* Preserve */ && fileExtensionIsOneOf(fileName, [".jsx" /* Jsx */, ".tsx" /* Tsx */]) ? ".jsx" /* Jsx */ : fileExtensionIsOneOf(fileName, [".mts" /* Mts */, ".mjs" /* Mjs */]) ? ".mjs" /* Mjs */ : fileExtensionIsOneOf(fileName, [".cts" /* Cts */, ".cjs" /* Cjs */]) ? ".cjs" /* Cjs */ : ".js" /* Js */; -} -function getOutputPathWithoutChangingExt(inputFileName, configFile, ignoreCase, outputDir, getCommonSourceDirectory2) { - return outputDir ? resolvePath(outputDir, getRelativePathFromDirectory(getCommonSourceDirectory2 ? getCommonSourceDirectory2() : getCommonSourceDirectoryOfConfig(configFile, ignoreCase), inputFileName, ignoreCase)) : inputFileName; -} -function getOutputDeclarationFileName(inputFileName, configFile, ignoreCase, getCommonSourceDirectory2) { - return changeExtension(getOutputPathWithoutChangingExt(inputFileName, configFile, ignoreCase, configFile.options.declarationDir || configFile.options.outDir, getCommonSourceDirectory2), getDeclarationEmitExtensionForPath(inputFileName)); -} -function getOutputJSFileName(inputFileName, configFile, ignoreCase, getCommonSourceDirectory2) { - if (configFile.options.emitDeclarationOnly) - return void 0; - var isJsonFile = fileExtensionIs(inputFileName, ".json" /* Json */); - var outputFileName = changeExtension(getOutputPathWithoutChangingExt(inputFileName, configFile, ignoreCase, configFile.options.outDir, getCommonSourceDirectory2), getOutputExtension(inputFileName, configFile.options)); - return !isJsonFile || comparePaths(inputFileName, outputFileName, Debug.checkDefined(configFile.options.configFilePath), ignoreCase) !== 0 /* EqualTo */ ? outputFileName : void 0; -} -function createAddOutput() { - var outputs; - return { addOutput: addOutput, getOutputs: getOutputs }; - function addOutput(path) { - if (path) { - (outputs || (outputs = [])).push(path); - } - } - function getOutputs() { - return outputs || emptyArray; - } -} -function getSingleOutputFileNames(configFile, addOutput) { - var _t = getOutputPathsForBundle(configFile.options, - /*forceDtsPaths*/ - false), jsFilePath = _t.jsFilePath, sourceMapFilePath = _t.sourceMapFilePath, declarationFilePath = _t.declarationFilePath, declarationMapPath = _t.declarationMapPath, buildInfoPath = _t.buildInfoPath; - addOutput(jsFilePath); - addOutput(sourceMapFilePath); - addOutput(declarationFilePath); - addOutput(declarationMapPath); - addOutput(buildInfoPath); -} -function getOwnOutputFileNames(configFile, inputFileName, ignoreCase, addOutput, getCommonSourceDirectory2) { - if (isDeclarationFileName(inputFileName)) - return; - var js = getOutputJSFileName(inputFileName, configFile, ignoreCase, getCommonSourceDirectory2); - addOutput(js); - if (fileExtensionIs(inputFileName, ".json" /* Json */)) - return; - if (js && configFile.options.sourceMap) { - addOutput("".concat(js, ".map")); - } - if (getEmitDeclarations(configFile.options)) { - var dts = getOutputDeclarationFileName(inputFileName, configFile, ignoreCase, getCommonSourceDirectory2); - addOutput(dts); - if (configFile.options.declarationMap) { - addOutput("".concat(dts, ".map")); - } - } -} -function getCommonSourceDirectory(options, emittedFiles, currentDirectory, getCanonicalFileName, checkSourceFilesBelongToPath) { - var commonSourceDirectory; - if (options.rootDir) { - commonSourceDirectory = getNormalizedAbsolutePath(options.rootDir, currentDirectory); - checkSourceFilesBelongToPath == null ? void 0 : checkSourceFilesBelongToPath(options.rootDir); - } - else if (options.composite && options.configFilePath) { - commonSourceDirectory = getDirectoryPath(normalizeSlashes(options.configFilePath)); - checkSourceFilesBelongToPath == null ? void 0 : checkSourceFilesBelongToPath(commonSourceDirectory); - } - else { - commonSourceDirectory = computeCommonSourceDirectoryOfFilenames(emittedFiles(), currentDirectory, getCanonicalFileName); - } - if (commonSourceDirectory && commonSourceDirectory[commonSourceDirectory.length - 1] !== directorySeparator) { - commonSourceDirectory += directorySeparator; - } - return commonSourceDirectory; -} -function getCommonSourceDirectoryOfConfig(_t, ignoreCase) { - var options = _t.options, fileNames = _t.fileNames; - return getCommonSourceDirectory(options, function () { return filter(fileNames, function (file) { return !(options.noEmitForJsFiles && fileExtensionIsOneOf(file, supportedJSExtensionsFlat)) && !isDeclarationFileName(file); }); }, getDirectoryPath(normalizeSlashes(Debug.checkDefined(options.configFilePath))), createGetCanonicalFileName(!ignoreCase)); -} -function getAllProjectOutputs(configFile, ignoreCase) { - var e_560, _t; - var _u = createAddOutput(), addOutput = _u.addOutput, getOutputs = _u.getOutputs; - if (outFile(configFile.options)) { - getSingleOutputFileNames(configFile, addOutput); - } - else { - var getCommonSourceDirectory2 = memoize(function () { return getCommonSourceDirectoryOfConfig(configFile, ignoreCase); }); - try { - for (var _v = __values(configFile.fileNames), _w = _v.next(); !_w.done; _w = _v.next()) { - var inputFileName = _w.value; - getOwnOutputFileNames(configFile, inputFileName, ignoreCase, addOutput, getCommonSourceDirectory2); - } - } - catch (e_560_1) { e_560 = { error: e_560_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_560) throw e_560.error; } - } - addOutput(getTsBuildInfoEmitOutputFilePath(configFile.options)); - } - return getOutputs(); -} -function getOutputFileNames(commandLine, inputFileName, ignoreCase) { - inputFileName = normalizePath(inputFileName); - Debug.assert(contains(commandLine.fileNames, inputFileName), "Expected fileName to be present in command line"); - var _t = createAddOutput(), addOutput = _t.addOutput, getOutputs = _t.getOutputs; - if (outFile(commandLine.options)) { - getSingleOutputFileNames(commandLine, addOutput); - } - else { - getOwnOutputFileNames(commandLine, inputFileName, ignoreCase, addOutput); - } - return getOutputs(); -} -function getFirstProjectOutput(configFile, ignoreCase) { - var e_561, _t; - if (outFile(configFile.options)) { - var _u = getOutputPathsForBundle(configFile.options, - /*forceDtsPaths*/ - false), jsFilePath = _u.jsFilePath, declarationFilePath = _u.declarationFilePath; - return Debug.checkDefined(jsFilePath || declarationFilePath, "project ".concat(configFile.options.configFilePath, " expected to have at least one output")); - } - var getCommonSourceDirectory2 = memoize(function () { return getCommonSourceDirectoryOfConfig(configFile, ignoreCase); }); - try { - for (var _v = __values(configFile.fileNames), _w = _v.next(); !_w.done; _w = _v.next()) { - var inputFileName = _w.value; - if (isDeclarationFileName(inputFileName)) - continue; - var jsFilePath = getOutputJSFileName(inputFileName, configFile, ignoreCase, getCommonSourceDirectory2); - if (jsFilePath) - return jsFilePath; - if (fileExtensionIs(inputFileName, ".json" /* Json */)) - continue; - if (getEmitDeclarations(configFile.options)) { - return getOutputDeclarationFileName(inputFileName, configFile, ignoreCase, getCommonSourceDirectory2); - } - } - } - catch (e_561_1) { e_561 = { error: e_561_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_561) throw e_561.error; } - } - var buildInfoPath = getTsBuildInfoEmitOutputFilePath(configFile.options); - if (buildInfoPath) - return buildInfoPath; - return Debug.fail("project ".concat(configFile.options.configFilePath, " expected to have at least one output")); -} -function emitFiles(resolver, host, targetSourceFile, _t, emitOnly, onlyBuildInfo, forceDtsEmit) { - var scriptTransformers = _t.scriptTransformers, declarationTransformers = _t.declarationTransformers; - var compilerOptions = host.getCompilerOptions(); - var sourceMapDataList = compilerOptions.sourceMap || compilerOptions.inlineSourceMap || getAreDeclarationMapsEnabled(compilerOptions) ? [] : void 0; - var emittedFilesList = compilerOptions.listEmittedFiles ? [] : void 0; - var emitterDiagnostics = createDiagnosticCollection(); - var newLine = getNewLineCharacter(compilerOptions); - var writer = createTextWriter(newLine); - var _u = createTimer("printTime", "beforePrint", "afterPrint"), enter = _u.enter, exit = _u.exit; - var bundleBuildInfo; - var emitSkipped = false; - enter(); - forEachEmittedFile(host, emitSourceFileOrBundle, getSourceFilesToEmit(host, targetSourceFile, forceDtsEmit), forceDtsEmit, onlyBuildInfo, !targetSourceFile); - exit(); - return { - emitSkipped: emitSkipped, - diagnostics: emitterDiagnostics.getDiagnostics(), - emittedFiles: emittedFilesList, - sourceMaps: sourceMapDataList - }; - function emitSourceFileOrBundle(_t, sourceFileOrBundle) { - var jsFilePath = _t.jsFilePath, sourceMapFilePath = _t.sourceMapFilePath, declarationFilePath = _t.declarationFilePath, declarationMapPath = _t.declarationMapPath, buildInfoPath = _t.buildInfoPath; - var _a, _b, _c, _d, _e, _f; - var buildInfoDirectory; - if (buildInfoPath && sourceFileOrBundle && isBundle(sourceFileOrBundle)) { - buildInfoDirectory = getDirectoryPath(getNormalizedAbsolutePath(buildInfoPath, host.getCurrentDirectory())); - bundleBuildInfo = { - commonSourceDirectory: relativeToBuildInfo(host.getCommonSourceDirectory()), - sourceFiles: sourceFileOrBundle.sourceFiles.map(function (file) { return relativeToBuildInfo(getNormalizedAbsolutePath(file.fileName, host.getCurrentDirectory())); }) - }; - } - (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Emit, "emitJsFileOrBundle", { jsFilePath: jsFilePath }); - emitJsFileOrBundle(sourceFileOrBundle, jsFilePath, sourceMapFilePath, relativeToBuildInfo); - (_b = tracing) == null ? void 0 : _b.pop(); - (_c = tracing) == null ? void 0 : _c.push(tracing.Phase.Emit, "emitDeclarationFileOrBundle", { declarationFilePath: declarationFilePath }); - emitDeclarationFileOrBundle(sourceFileOrBundle, declarationFilePath, declarationMapPath, relativeToBuildInfo); - (_d = tracing) == null ? void 0 : _d.pop(); - (_e = tracing) == null ? void 0 : _e.push(tracing.Phase.Emit, "emitBuildInfo", { buildInfoPath: buildInfoPath }); - emitBuildInfo(bundleBuildInfo, buildInfoPath); - (_f = tracing) == null ? void 0 : _f.pop(); - if (!emitSkipped && emittedFilesList) { - if (!emitOnly) { - if (jsFilePath) { - emittedFilesList.push(jsFilePath); - } - if (sourceMapFilePath) { - emittedFilesList.push(sourceMapFilePath); - } - if (buildInfoPath) { - emittedFilesList.push(buildInfoPath); - } - } - if (emitOnly !== 0 /* Js */) { - if (declarationFilePath) { - emittedFilesList.push(declarationFilePath); - } - if (declarationMapPath) { - emittedFilesList.push(declarationMapPath); - } - } - } - function relativeToBuildInfo(path) { - return ensurePathIsNonModuleName(getRelativePathFromDirectory(buildInfoDirectory, path, host.getCanonicalFileName)); - } - } - function emitBuildInfo(bundle, buildInfoPath) { - if (!buildInfoPath || targetSourceFile || emitSkipped) - return; - if (host.isEmitBlocked(buildInfoPath)) { - emitSkipped = true; - return; - } - var buildInfo = host.getBuildInfo(bundle) || createBuildInfo( - /*program*/ - void 0, bundle); - writeFile(host, emitterDiagnostics, buildInfoPath, getBuildInfoText(buildInfo), - /*writeByteOrderMark*/ - false, - /*sourceFiles*/ - void 0, { buildInfo: buildInfo }); - } - function emitJsFileOrBundle(sourceFileOrBundle, jsFilePath, sourceMapFilePath, relativeToBuildInfo) { - if (!sourceFileOrBundle || emitOnly || !jsFilePath) { - return; - } - if (host.isEmitBlocked(jsFilePath) || compilerOptions.noEmit) { - emitSkipped = true; - return; - } - var transform2 = transformNodes(resolver, host, factory, compilerOptions, [sourceFileOrBundle], scriptTransformers, - /*allowDtsFiles*/ - false); - var printerOptions = { - removeComments: compilerOptions.removeComments, - newLine: compilerOptions.newLine, - noEmitHelpers: compilerOptions.noEmitHelpers, - module: compilerOptions.module, - target: compilerOptions.target, - sourceMap: compilerOptions.sourceMap, - inlineSourceMap: compilerOptions.inlineSourceMap, - inlineSources: compilerOptions.inlineSources, - extendedDiagnostics: compilerOptions.extendedDiagnostics, - writeBundleFileInfo: !!bundleBuildInfo, - relativeToBuildInfo: relativeToBuildInfo - }; - var printer = createPrinter(printerOptions, { - // resolver hooks - hasGlobalName: resolver.hasGlobalName, - // transform hooks - onEmitNode: transform2.emitNodeWithNotification, - isEmitNotificationEnabled: transform2.isEmitNotificationEnabled, - substituteNode: transform2.substituteNode - }); - Debug.assert(transform2.transformed.length === 1, "Should only see one output from the transform"); - printSourceFileOrBundle(jsFilePath, sourceMapFilePath, transform2, printer, compilerOptions); - transform2.dispose(); - if (bundleBuildInfo) - bundleBuildInfo.js = printer.bundleFileInfo; - } - function emitDeclarationFileOrBundle(sourceFileOrBundle, declarationFilePath, declarationMapPath, relativeToBuildInfo) { - var e_562, _t; - if (!sourceFileOrBundle || emitOnly === 0 /* Js */) - return; - if (!declarationFilePath) { - if (emitOnly || compilerOptions.emitDeclarationOnly) - emitSkipped = true; - return; - } - var sourceFiles = isSourceFile(sourceFileOrBundle) ? [sourceFileOrBundle] : sourceFileOrBundle.sourceFiles; - var filesForEmit = forceDtsEmit ? sourceFiles : filter(sourceFiles, isSourceFileNotJson); - var inputListOrBundle = outFile(compilerOptions) ? [factory.createBundle(filesForEmit, !isSourceFile(sourceFileOrBundle) ? sourceFileOrBundle.prepends : void 0)] : filesForEmit; - if (emitOnly && !getEmitDeclarations(compilerOptions)) { - filesForEmit.forEach(collectLinkedAliases); - } - var declarationTransform = transformNodes(resolver, host, factory, compilerOptions, inputListOrBundle, declarationTransformers, - /*allowDtsFiles*/ - false); - if (length(declarationTransform.diagnostics)) { - try { - for (var _u = __values(declarationTransform.diagnostics), _v = _u.next(); !_v.done; _v = _u.next()) { - var diagnostic = _v.value; - emitterDiagnostics.add(diagnostic); - } - } - catch (e_562_1) { e_562 = { error: e_562_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_562) throw e_562.error; } - } - } - var printerOptions = { - removeComments: compilerOptions.removeComments, - newLine: compilerOptions.newLine, - noEmitHelpers: true, - module: compilerOptions.module, - target: compilerOptions.target, - sourceMap: !forceDtsEmit && compilerOptions.declarationMap, - inlineSourceMap: compilerOptions.inlineSourceMap, - extendedDiagnostics: compilerOptions.extendedDiagnostics, - onlyPrintJsDocStyle: true, - writeBundleFileInfo: !!bundleBuildInfo, - recordInternalSection: !!bundleBuildInfo, - relativeToBuildInfo: relativeToBuildInfo - }; - var declarationPrinter = createPrinter(printerOptions, { - // resolver hooks - hasGlobalName: resolver.hasGlobalName, - // transform hooks - onEmitNode: declarationTransform.emitNodeWithNotification, - isEmitNotificationEnabled: declarationTransform.isEmitNotificationEnabled, - substituteNode: declarationTransform.substituteNode - }); - var declBlocked = !!declarationTransform.diagnostics && !!declarationTransform.diagnostics.length || !!host.isEmitBlocked(declarationFilePath) || !!compilerOptions.noEmit; - emitSkipped = emitSkipped || declBlocked; - if (!declBlocked || forceDtsEmit) { - Debug.assert(declarationTransform.transformed.length === 1, "Should only see one output from the decl transform"); - printSourceFileOrBundle(declarationFilePath, declarationMapPath, declarationTransform, declarationPrinter, { - sourceMap: printerOptions.sourceMap, - sourceRoot: compilerOptions.sourceRoot, - mapRoot: compilerOptions.mapRoot, - extendedDiagnostics: compilerOptions.extendedDiagnostics - // Explicitly do not passthru either `inline` option - }); - } - declarationTransform.dispose(); - if (bundleBuildInfo) - bundleBuildInfo.dts = declarationPrinter.bundleFileInfo; - } - function collectLinkedAliases(node) { - if (isExportAssignment(node)) { - if (node.expression.kind === 80 /* Identifier */) { - resolver.collectLinkedAliases(node.expression, - /*setVisibility*/ - true); - } - return; - } - else if (isExportSpecifier(node)) { - resolver.collectLinkedAliases(node.propertyName || node.name, - /*setVisibility*/ - true); - return; - } - forEachChild(node, collectLinkedAliases); - } - function printSourceFileOrBundle(jsFilePath, sourceMapFilePath, transform2, printer, mapOptions) { - var sourceFileOrBundle = transform2.transformed[0]; - var bundle = sourceFileOrBundle.kind === 313 /* Bundle */ ? sourceFileOrBundle : void 0; - var sourceFile = sourceFileOrBundle.kind === 312 /* SourceFile */ ? sourceFileOrBundle : void 0; - var sourceFiles = bundle ? bundle.sourceFiles : [sourceFile]; - var sourceMapGenerator; - if (shouldEmitSourceMaps(mapOptions, sourceFileOrBundle)) { - sourceMapGenerator = createSourceMapGenerator(host, getBaseFileName(normalizeSlashes(jsFilePath)), getSourceRoot(mapOptions), getSourceMapDirectory(mapOptions, jsFilePath, sourceFile), mapOptions); - } - if (bundle) { - printer.writeBundle(bundle, writer, sourceMapGenerator); - } - else { - printer.writeFile(sourceFile, writer, sourceMapGenerator); - } - var sourceMapUrlPos; - if (sourceMapGenerator) { - if (sourceMapDataList) { - sourceMapDataList.push({ - inputSourceFileNames: sourceMapGenerator.getSources(), - sourceMap: sourceMapGenerator.toJSON() - }); - } - var sourceMappingURL = getSourceMappingURL(mapOptions, sourceMapGenerator, jsFilePath, sourceMapFilePath, sourceFile); - if (sourceMappingURL) { - if (!writer.isAtStartOfLine()) - writer.rawWrite(newLine); - sourceMapUrlPos = writer.getTextPos(); - writer.writeComment("//# ".concat("sourceMappingURL", "=").concat(sourceMappingURL)); - } - if (sourceMapFilePath) { - var sourceMap = sourceMapGenerator.toString(); - writeFile(host, emitterDiagnostics, sourceMapFilePath, sourceMap, - /*writeByteOrderMark*/ - false, sourceFiles); - if (printer.bundleFileInfo) - printer.bundleFileInfo.mapHash = computeSignature(sourceMap, host); - } - } - else { - writer.writeLine(); - } - var text = writer.getText(); - writeFile(host, emitterDiagnostics, jsFilePath, text, !!compilerOptions.emitBOM, sourceFiles, { sourceMapUrlPos: sourceMapUrlPos, diagnostics: transform2.diagnostics }); - if (printer.bundleFileInfo) - printer.bundleFileInfo.hash = computeSignature(text, host); - writer.clear(); - } - function shouldEmitSourceMaps(mapOptions, sourceFileOrBundle) { - return (mapOptions.sourceMap || mapOptions.inlineSourceMap) && (sourceFileOrBundle.kind !== 312 /* SourceFile */ || !fileExtensionIs(sourceFileOrBundle.fileName, ".json" /* Json */)); - } - function getSourceRoot(mapOptions) { - var sourceRoot = normalizeSlashes(mapOptions.sourceRoot || ""); - return sourceRoot ? ensureTrailingDirectorySeparator(sourceRoot) : sourceRoot; - } - function getSourceMapDirectory(mapOptions, filePath, sourceFile) { - if (mapOptions.sourceRoot) - return host.getCommonSourceDirectory(); - if (mapOptions.mapRoot) { - var sourceMapDir = normalizeSlashes(mapOptions.mapRoot); - if (sourceFile) { - sourceMapDir = getDirectoryPath(getSourceFilePathInNewDir(sourceFile.fileName, host, sourceMapDir)); - } - if (getRootLength(sourceMapDir) === 0) { - sourceMapDir = combinePaths(host.getCommonSourceDirectory(), sourceMapDir); - } - return sourceMapDir; - } - return getDirectoryPath(normalizePath(filePath)); - } - function getSourceMappingURL(mapOptions, sourceMapGenerator, filePath, sourceMapFilePath, sourceFile) { - if (mapOptions.inlineSourceMap) { - var sourceMapText = sourceMapGenerator.toString(); - var base64SourceMapText = base64encode(sys, sourceMapText); - return "data:application/json;base64,".concat(base64SourceMapText); - } - var sourceMapFile = getBaseFileName(normalizeSlashes(Debug.checkDefined(sourceMapFilePath))); - if (mapOptions.mapRoot) { - var sourceMapDir = normalizeSlashes(mapOptions.mapRoot); - if (sourceFile) { - sourceMapDir = getDirectoryPath(getSourceFilePathInNewDir(sourceFile.fileName, host, sourceMapDir)); - } - if (getRootLength(sourceMapDir) === 0) { - sourceMapDir = combinePaths(host.getCommonSourceDirectory(), sourceMapDir); - return encodeURI(getRelativePathToDirectoryOrUrl(getDirectoryPath(normalizePath(filePath)), - // get the relative sourceMapDir path based on jsFilePath - combinePaths(sourceMapDir, sourceMapFile), - // this is where user expects to see sourceMap - host.getCurrentDirectory(), host.getCanonicalFileName, - /*isAbsolutePathAnUrl*/ - true)); - } - else { - return encodeURI(combinePaths(sourceMapDir, sourceMapFile)); - } - } - return encodeURI(sourceMapFile); - } -} -function createBuildInfo(program, bundle) { - return { bundle: bundle, program: program, version: version }; -} -function getBuildInfoText(buildInfo) { - return JSON.stringify(buildInfo); -} -function getBuildInfo(buildInfoFile, buildInfoText) { - return readJsonOrUndefined(buildInfoFile, buildInfoText); -} -var notImplementedResolver = { - hasGlobalName: notImplemented, - getReferencedExportContainer: notImplemented, - getReferencedImportDeclaration: notImplemented, - getReferencedDeclarationWithCollidingName: notImplemented, - isDeclarationWithCollidingName: notImplemented, - isValueAliasDeclaration: notImplemented, - isReferencedAliasDeclaration: notImplemented, - isTopLevelValueImportEqualsWithEntityName: notImplemented, - getNodeCheckFlags: notImplemented, - isDeclarationVisible: notImplemented, - isLateBound: function (_node) { return false; }, - collectLinkedAliases: notImplemented, - isImplementationOfOverload: notImplemented, - isRequiredInitializedParameter: notImplemented, - isOptionalUninitializedParameterProperty: notImplemented, - isExpandoFunctionDeclaration: notImplemented, - getPropertiesOfContainerFunction: notImplemented, - createTypeOfDeclaration: notImplemented, - createReturnTypeOfSignatureDeclaration: notImplemented, - createTypeOfExpression: notImplemented, - createLiteralConstValue: notImplemented, - isSymbolAccessible: notImplemented, - isEntityNameVisible: notImplemented, - // Returns the constant value this property access resolves to: notImplemented, or 'undefined' for a non-constant - getConstantValue: notImplemented, - getReferencedValueDeclaration: notImplemented, - getReferencedValueDeclarations: notImplemented, - getTypeReferenceSerializationKind: notImplemented, - isOptionalParameter: notImplemented, - moduleExportsSomeValue: notImplemented, - isArgumentsLocalBinding: notImplemented, - getExternalModuleFileFromDeclaration: notImplemented, - getTypeReferenceDirectivesForEntityName: notImplemented, - getTypeReferenceDirectivesForSymbol: notImplemented, - isLiteralConstDeclaration: notImplemented, - getJsxFactoryEntity: notImplemented, - getJsxFragmentFactoryEntity: notImplemented, - getAllAccessorDeclarations: notImplemented, - getSymbolOfExternalModuleSpecifier: notImplemented, - isBindingCapturedByNode: notImplemented, - getDeclarationStatementsForSourceFile: notImplemented, - isImportRequiredByAugmentation: notImplemented -}; -function createSourceFilesFromBundleBuildInfo(bundle, buildInfoDirectory, host) { - var _a; - var jsBundle = Debug.checkDefined(bundle.js); - var prologueMap = ((_a = jsBundle.sources) == null ? void 0 : _a.prologues) && arrayToMap(jsBundle.sources.prologues, function (prologueInfo) { return prologueInfo.file; }); - return bundle.sourceFiles.map(function (fileName, index) { - var _t, _u; - var prologueInfo = prologueMap == null ? void 0 : prologueMap.get(index); - var statements = prologueInfo == null ? void 0 : prologueInfo.directives.map(function (directive) { - var literal = setTextRange(factory.createStringLiteral(directive.expression.text), directive.expression); - var statement = setTextRange(factory.createExpressionStatement(literal), directive); - setParent(literal, statement); - return statement; - }); - var eofToken = factory.createToken(1 /* EndOfFileToken */); - var sourceFile = factory.createSourceFile(statements !== null && statements !== void 0 ? statements : [], eofToken, 0 /* None */); - sourceFile.fileName = getRelativePathFromDirectory(host.getCurrentDirectory(), getNormalizedAbsolutePath(fileName, buildInfoDirectory), !host.useCaseSensitiveFileNames()); - sourceFile.text = (_t = (prologueInfo == null ? void 0 : prologueInfo.text)) !== null && _t !== void 0 ? _t : ""; - setTextRangePosWidth(sourceFile, 0, (_u = (prologueInfo == null ? void 0 : prologueInfo.text.length)) !== null && _u !== void 0 ? _u : 0); - setEachParent(sourceFile.statements, sourceFile); - setTextRangePosWidth(eofToken, sourceFile.end, 0); - setParent(eofToken, sourceFile); - return sourceFile; - }); -} -function emitUsingBuildInfo(config, host, getCommandLine, customTransformers) { - var _a, _b; - (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Emit, "emitUsingBuildInfo", {}, - /*separateBeginAndEnd*/ - true); - mark("beforeEmit"); - var result = emitUsingBuildInfoWorker(config, host, getCommandLine, customTransformers); - mark("afterEmit"); - measure("Emit", "beforeEmit", "afterEmit"); - (_b = tracing) == null ? void 0 : _b.pop(); - return result; -} -function emitUsingBuildInfoWorker(config, host, getCommandLine, customTransformers) { - var _t = getOutputPathsForBundle(config.options, - /*forceDtsPaths*/ - false), buildInfoPath = _t.buildInfoPath, jsFilePath = _t.jsFilePath, sourceMapFilePath = _t.sourceMapFilePath, declarationFilePath = _t.declarationFilePath, declarationMapPath = _t.declarationMapPath; - var buildInfo = host.getBuildInfo(buildInfoPath, config.options.configFilePath); - if (!buildInfo) - return buildInfoPath; - if (!buildInfo.bundle || !buildInfo.bundle.js || declarationFilePath && !buildInfo.bundle.dts) - return buildInfoPath; - var jsFileText = host.readFile(Debug.checkDefined(jsFilePath)); - if (!jsFileText) - return jsFilePath; - if (computeSignature(jsFileText, host) !== buildInfo.bundle.js.hash) - return jsFilePath; - var sourceMapText = sourceMapFilePath && host.readFile(sourceMapFilePath); - if (sourceMapFilePath && !sourceMapText || config.options.inlineSourceMap) - return sourceMapFilePath || "inline sourcemap decoding"; - if (sourceMapFilePath && computeSignature(sourceMapText, host) !== buildInfo.bundle.js.mapHash) - return sourceMapFilePath; - var declarationText = declarationFilePath && host.readFile(declarationFilePath); - if (declarationFilePath && !declarationText) - return declarationFilePath; - if (declarationFilePath && computeSignature(declarationText, host) !== buildInfo.bundle.dts.hash) - return declarationFilePath; - var declarationMapText = declarationMapPath && host.readFile(declarationMapPath); - if (declarationMapPath && !declarationMapText || config.options.inlineSourceMap) - return declarationMapPath || "inline sourcemap decoding"; - if (declarationMapPath && computeSignature(declarationMapText, host) !== buildInfo.bundle.dts.mapHash) - return declarationMapPath; - var buildInfoDirectory = getDirectoryPath(getNormalizedAbsolutePath(buildInfoPath, host.getCurrentDirectory())); - var ownPrependInput = createInputFilesWithFileTexts(jsFilePath, jsFileText, sourceMapFilePath, sourceMapText, declarationFilePath, declarationText, declarationMapPath, declarationMapText, buildInfoPath, buildInfo, - /*oldFileOfCurrentEmit*/ - true); - var outputFiles = []; - var prependNodes = createPrependNodes(config.projectReferences, getCommandLine, function (f) { return host.readFile(f); }, host); - var sourceFilesForJsEmit = createSourceFilesFromBundleBuildInfo(buildInfo.bundle, buildInfoDirectory, host); - var changedDtsText; - var changedDtsData; - var emitHost = { - getPrependNodes: memoize(function () { return __spreadArray(__spreadArray([], __read(prependNodes), false), [ownPrependInput], false); }), - getCanonicalFileName: host.getCanonicalFileName, - getCommonSourceDirectory: function () { return getNormalizedAbsolutePath(buildInfo.bundle.commonSourceDirectory, buildInfoDirectory); }, - getCompilerOptions: function () { return config.options; }, - getCurrentDirectory: function () { return host.getCurrentDirectory(); }, - getSourceFile: returnUndefined, - getSourceFileByPath: returnUndefined, - getSourceFiles: function () { return sourceFilesForJsEmit; }, - getLibFileFromReference: notImplemented, - isSourceFileFromExternalLibrary: returnFalse, - getResolvedProjectReferenceToRedirect: returnUndefined, - getProjectReferenceRedirect: returnUndefined, - isSourceOfProjectReferenceRedirect: returnFalse, - writeFile: function (name, text, writeByteOrderMark, _onError, _sourceFiles, data) { - switch (name) { - case jsFilePath: - if (jsFileText === text) - return; - break; - case sourceMapFilePath: - if (sourceMapText === text) - return; - break; - case buildInfoPath: - break; - case declarationFilePath: - if (declarationText === text) - return; - changedDtsText = text; - changedDtsData = data; - break; - case declarationMapPath: - if (declarationMapText === text) - return; - break; - default: - Debug.fail("Unexpected path: ".concat(name)); - } - outputFiles.push({ name: name, text: text, writeByteOrderMark: writeByteOrderMark, data: data }); - }, - isEmitBlocked: returnFalse, - readFile: function (f) { return host.readFile(f); }, - fileExists: function (f) { return host.fileExists(f); }, - useCaseSensitiveFileNames: function () { return host.useCaseSensitiveFileNames(); }, - getBuildInfo: function (bundle) { - var program = buildInfo.program; - if (program && changedDtsText !== void 0 && config.options.composite) { - program.outSignature = computeSignature(changedDtsText, host, changedDtsData); - } - var _t = buildInfo.bundle, js = _t.js, dts = _t.dts, sourceFiles = _t.sourceFiles; - bundle.js.sources = js.sources; - if (dts) { - bundle.dts.sources = dts.sources; - } - bundle.sourceFiles = sourceFiles; - return createBuildInfo(program, bundle); - }, - getSourceFileFromReference: returnUndefined, - redirectTargetsMap: createMultiMap(), - getFileIncludeReasons: notImplemented, - createHash: maybeBind(host, host.createHash) - }; - emitFiles(notImplementedResolver, emitHost, - /*targetSourceFile*/ - void 0, getTransformers(config.options, customTransformers)); - return outputFiles; -} -var createPrinterWithDefaults = /* @__PURE__ */ memoize(function () { return createPrinter({}); }); -var createPrinterWithRemoveComments = /* @__PURE__ */ memoize(function () { return createPrinter({ removeComments: true }); }); -var createPrinterWithRemoveCommentsNeverAsciiEscape = /* @__PURE__ */ memoize(function () { return createPrinter({ removeComments: true, neverAsciiEscape: true }); }); -var createPrinterWithRemoveCommentsOmitTrailingSemicolon = /* @__PURE__ */ memoize(function () { return createPrinter({ removeComments: true, omitTrailingSemicolon: true }); }); -function createPrinter(printerOptions, handlers) { - if (printerOptions === void 0) { printerOptions = {}; } - if (handlers === void 0) { handlers = {}; } - var hasGlobalName = handlers.hasGlobalName, _t = handlers.onEmitNode, onEmitNode = _t === void 0 ? noEmitNotification : _t, isEmitNotificationEnabled = handlers.isEmitNotificationEnabled, _u = handlers.substituteNode, substituteNode = _u === void 0 ? noEmitSubstitution : _u, onBeforeEmitNode = handlers.onBeforeEmitNode, onAfterEmitNode = handlers.onAfterEmitNode, onBeforeEmitNodeArray = handlers.onBeforeEmitNodeArray, onAfterEmitNodeArray = handlers.onAfterEmitNodeArray, onBeforeEmitToken = handlers.onBeforeEmitToken, onAfterEmitToken = handlers.onAfterEmitToken; - var extendedDiagnostics = !!printerOptions.extendedDiagnostics; - var newLine = getNewLineCharacter(printerOptions); - var moduleKind = getEmitModuleKind(printerOptions); - var bundledHelpers = /* @__PURE__ */ new Map(); - var currentSourceFile; - var nodeIdToGeneratedName; - var nodeIdToGeneratedPrivateName; - var autoGeneratedIdToGeneratedName; - var generatedNames; - var formattedNameTempFlagsStack; - var formattedNameTempFlags; - var privateNameTempFlagsStack; - var privateNameTempFlags; - var tempFlagsStack; - var tempFlags; - var reservedNamesStack; - var reservedNames; - var reservedPrivateNamesStack; - var reservedPrivateNames; - var preserveSourceNewlines = printerOptions.preserveSourceNewlines; - var nextListElementPos; - var writer; - var ownWriter; - var write = writeBase; - var isOwnFileEmit; - var bundleFileInfo = printerOptions.writeBundleFileInfo ? { sections: [] } : void 0; - var relativeToBuildInfo = bundleFileInfo ? Debug.checkDefined(printerOptions.relativeToBuildInfo) : void 0; - var recordInternalSection = printerOptions.recordInternalSection; - var sourceFileTextPos = 0; - var sourceFileTextKind = "text" /* Text */; - var sourceMapsDisabled = true; - var sourceMapGenerator; - var sourceMapSource; - var sourceMapSourceIndex = -1; - var mostRecentlyAddedSourceMapSource; - var mostRecentlyAddedSourceMapSourceIndex = -1; - var containerPos = -1; - var containerEnd = -1; - var declarationListContainerEnd = -1; - var currentLineMap; - var detachedCommentsInfo; - var hasWrittenComment = false; - var commentsDisabled = !!printerOptions.removeComments; - var lastSubstitution; - var currentParenthesizerRule; - var _v = createTimerIf(extendedDiagnostics, "commentTime", "beforeComment", "afterComment"), enterComment = _v.enter, exitComment = _v.exit; - var parenthesizer = factory.parenthesizer; - var typeArgumentParenthesizerRuleSelector = { - select: function (index) { return index === 0 ? parenthesizer.parenthesizeLeadingTypeArgument : void 0; } - }; - var emitBinaryExpression = createEmitBinaryExpression(); - reset2(); - return { - // public API - printNode: printNode, - printList: printList, - printFile: printFile, - printBundle: printBundle, - // internal API - writeNode: writeNode, - writeList: writeList, - writeFile: writeFile2, - writeBundle: writeBundle, - bundleFileInfo: bundleFileInfo - }; - function printNode(hint, node, sourceFile) { - switch (hint) { - case 0 /* SourceFile */: - Debug.assert(isSourceFile(node), "Expected a SourceFile node."); - break; - case 2 /* IdentifierName */: - Debug.assert(isIdentifier(node), "Expected an Identifier node."); - break; - case 1 /* Expression */: - Debug.assert(isExpression(node), "Expected an Expression node."); - break; - } - switch (node.kind) { - case 312 /* SourceFile */: - return printFile(node); - case 313 /* Bundle */: - return printBundle(node); - case 314 /* UnparsedSource */: - return printUnparsedSource(node); - } - writeNode(hint, node, sourceFile, beginPrint()); - return endPrint(); - } - function printList(format, nodes, sourceFile) { - writeList(format, nodes, sourceFile, beginPrint()); - return endPrint(); - } - function printBundle(bundle) { - writeBundle(bundle, beginPrint(), - /*sourceMapGenerator*/ - void 0); - return endPrint(); - } - function printFile(sourceFile) { - writeFile2(sourceFile, beginPrint(), - /*sourceMapGenerator*/ - void 0); - return endPrint(); - } - function printUnparsedSource(unparsed) { - writeUnparsedSource(unparsed, beginPrint()); - return endPrint(); - } - function writeNode(hint, node, sourceFile, output) { - var previousWriter = writer; - setWriter(output, - /*_sourceMapGenerator*/ - void 0); - print(hint, node, sourceFile); - reset2(); - writer = previousWriter; - } - function writeList(format, nodes, sourceFile, output) { - var previousWriter = writer; - setWriter(output, - /*_sourceMapGenerator*/ - void 0); - if (sourceFile) { - setSourceFile(sourceFile); - } - emitList( - /*parentNode*/ - void 0, nodes, format); - reset2(); - writer = previousWriter; - } - function getTextPosWithWriteLine() { - return writer.getTextPosWithWriteLine ? writer.getTextPosWithWriteLine() : writer.getTextPos(); - } - function updateOrPushBundleFileTextLike(pos, end, kind) { - var last2 = lastOrUndefined(bundleFileInfo.sections); - if (last2 && last2.kind === kind) { - last2.end = end; - } - else { - bundleFileInfo.sections.push({ pos: pos, end: end, kind: kind }); - } - } - function recordBundleFileInternalSectionStart(node) { - if (recordInternalSection && bundleFileInfo && currentSourceFile && (isDeclaration(node) || isVariableStatement(node)) && isInternalDeclaration(node, currentSourceFile) && sourceFileTextKind !== "internal" /* Internal */) { - var prevSourceFileTextKind = sourceFileTextKind; - recordBundleFileTextLikeSection(writer.getTextPos()); - sourceFileTextPos = getTextPosWithWriteLine(); - sourceFileTextKind = "internal" /* Internal */; - return prevSourceFileTextKind; - } - return void 0; - } - function recordBundleFileInternalSectionEnd(prevSourceFileTextKind) { - if (prevSourceFileTextKind) { - recordBundleFileTextLikeSection(writer.getTextPos()); - sourceFileTextPos = getTextPosWithWriteLine(); - sourceFileTextKind = prevSourceFileTextKind; - } - } - function recordBundleFileTextLikeSection(end) { - if (sourceFileTextPos < end) { - updateOrPushBundleFileTextLike(sourceFileTextPos, end, sourceFileTextKind); - return true; - } - return false; - } - function writeBundle(bundle, output, sourceMapGenerator2) { - var e_563, _t, _u, e_564, _v; - isOwnFileEmit = false; - var previousWriter = writer; - setWriter(output, sourceMapGenerator2); - emitShebangIfNeeded(bundle); - emitPrologueDirectivesIfNeeded(bundle); - emitHelpers(bundle); - emitSyntheticTripleSlashReferencesIfNeeded(bundle); - try { - for (var _w = __values(bundle.prepends), _x = _w.next(); !_x.done; _x = _w.next()) { - var prepend = _x.value; - writeLine(); - var pos = writer.getTextPos(); - var savedSections = bundleFileInfo && bundleFileInfo.sections; - if (savedSections) - bundleFileInfo.sections = []; - print(4 /* Unspecified */, prepend, - /*sourceFile*/ - void 0); - if (bundleFileInfo) { - var newSections = bundleFileInfo.sections; - bundleFileInfo.sections = savedSections; - if (prepend.oldFileOfCurrentEmit) - (_u = bundleFileInfo.sections).push.apply(_u, __spreadArray([], __read(newSections), false)); - else { - newSections.forEach(function (section) { return Debug.assert(isBundleFileTextLike(section)); }); - bundleFileInfo.sections.push({ - pos: pos, - end: writer.getTextPos(), - kind: "prepend" /* Prepend */, - data: relativeToBuildInfo(prepend.fileName), - texts: newSections - }); - } - } - } - } - catch (e_563_1) { e_563 = { error: e_563_1 }; } - finally { - try { - if (_x && !_x.done && (_t = _w.return)) _t.call(_w); - } - finally { if (e_563) throw e_563.error; } - } - sourceFileTextPos = getTextPosWithWriteLine(); - try { - for (var _y = __values(bundle.sourceFiles), _z = _y.next(); !_z.done; _z = _y.next()) { - var sourceFile = _z.value; - print(0 /* SourceFile */, sourceFile, sourceFile); - } - } - catch (e_564_1) { e_564 = { error: e_564_1 }; } - finally { - try { - if (_z && !_z.done && (_v = _y.return)) _v.call(_y); - } - finally { if (e_564) throw e_564.error; } - } - if (bundleFileInfo && bundle.sourceFiles.length) { - var end = writer.getTextPos(); - if (recordBundleFileTextLikeSection(end)) { - var prologues = getPrologueDirectivesFromBundledSourceFiles(bundle); - if (prologues) { - if (!bundleFileInfo.sources) - bundleFileInfo.sources = {}; - bundleFileInfo.sources.prologues = prologues; - } - var helpers = getHelpersFromBundledSourceFiles(bundle); - if (helpers) { - if (!bundleFileInfo.sources) - bundleFileInfo.sources = {}; - bundleFileInfo.sources.helpers = helpers; - } - } - } - reset2(); - writer = previousWriter; - } - function writeUnparsedSource(unparsed, output) { - var previousWriter = writer; - setWriter(output, - /*_sourceMapGenerator*/ - void 0); - print(4 /* Unspecified */, unparsed, - /*sourceFile*/ - void 0); - reset2(); - writer = previousWriter; - } - function writeFile2(sourceFile, output, sourceMapGenerator2) { - isOwnFileEmit = true; - var previousWriter = writer; - setWriter(output, sourceMapGenerator2); - emitShebangIfNeeded(sourceFile); - emitPrologueDirectivesIfNeeded(sourceFile); - print(0 /* SourceFile */, sourceFile, sourceFile); - reset2(); - writer = previousWriter; - } - function beginPrint() { - return ownWriter || (ownWriter = createTextWriter(newLine)); - } - function endPrint() { - var text = ownWriter.getText(); - ownWriter.clear(); - return text; - } - function print(hint, node, sourceFile) { - if (sourceFile) { - setSourceFile(sourceFile); - } - pipelineEmit(hint, node, - /*parenthesizerRule*/ - void 0); - } - function setSourceFile(sourceFile) { - currentSourceFile = sourceFile; - currentLineMap = void 0; - detachedCommentsInfo = void 0; - if (sourceFile) { - setSourceMapSource(sourceFile); - } - } - function setWriter(_writer, _sourceMapGenerator) { - if (_writer && printerOptions.omitTrailingSemicolon) { - _writer = getTrailingSemicolonDeferringWriter(_writer); - } - writer = _writer; - sourceMapGenerator = _sourceMapGenerator; - sourceMapsDisabled = !writer || !sourceMapGenerator; - } - function reset2() { - nodeIdToGeneratedName = []; - nodeIdToGeneratedPrivateName = []; - autoGeneratedIdToGeneratedName = []; - generatedNames = /* @__PURE__ */ new Set(); - formattedNameTempFlagsStack = []; - formattedNameTempFlags = /* @__PURE__ */ new Map(); - privateNameTempFlagsStack = []; - privateNameTempFlags = 0 /* Auto */; - tempFlagsStack = []; - tempFlags = 0 /* Auto */; - reservedNamesStack = []; - reservedNames = void 0; - reservedPrivateNamesStack = []; - reservedPrivateNames = void 0; - currentSourceFile = void 0; - currentLineMap = void 0; - detachedCommentsInfo = void 0; - setWriter( - /*output*/ - void 0, - /*_sourceMapGenerator*/ - void 0); - } - function getCurrentLineMap() { - return currentLineMap || (currentLineMap = getLineStarts(Debug.checkDefined(currentSourceFile))); - } - function emit(node, parenthesizerRule) { - if (node === void 0) - return; - var prevSourceFileTextKind = recordBundleFileInternalSectionStart(node); - pipelineEmit(4 /* Unspecified */, node, parenthesizerRule); - recordBundleFileInternalSectionEnd(prevSourceFileTextKind); - } - function emitIdentifierName(node) { - if (node === void 0) - return; - pipelineEmit(2 /* IdentifierName */, node, - /*parenthesizerRule*/ - void 0); - } - function emitExpression(node, parenthesizerRule) { - if (node === void 0) - return; - pipelineEmit(1 /* Expression */, node, parenthesizerRule); - } - function emitJsxAttributeValue(node) { - pipelineEmit(isStringLiteral(node) ? 6 /* JsxAttributeValue */ : 4 /* Unspecified */, node); - } - function beforeEmitNode(node) { - if (preserveSourceNewlines && getInternalEmitFlags(node) & 4 /* IgnoreSourceNewlines */) { - preserveSourceNewlines = false; - } - } - function afterEmitNode(savedPreserveSourceNewlines) { - preserveSourceNewlines = savedPreserveSourceNewlines; - } - function pipelineEmit(emitHint, node, parenthesizerRule) { - currentParenthesizerRule = parenthesizerRule; - var pipelinePhase = getPipelinePhase(0 /* Notification */, emitHint, node); - pipelinePhase(emitHint, node); - currentParenthesizerRule = void 0; - } - function shouldEmitComments(node) { - return !commentsDisabled && !isSourceFile(node); - } - function shouldEmitSourceMaps(node) { - return !sourceMapsDisabled && !isSourceFile(node) && !isInJsonFile(node) && !isUnparsedSource(node) && !isUnparsedPrepend(node); - } - function getPipelinePhase(phase, emitHint, node) { - switch (phase) { - case 0 /* Notification */: - if (onEmitNode !== noEmitNotification && (!isEmitNotificationEnabled || isEmitNotificationEnabled(node))) { - return pipelineEmitWithNotification; - } - case 1 /* Substitution */: - if (substituteNode !== noEmitSubstitution && (lastSubstitution = substituteNode(emitHint, node) || node) !== node) { - if (currentParenthesizerRule) { - lastSubstitution = currentParenthesizerRule(lastSubstitution); - } - return pipelineEmitWithSubstitution; - } - case 2 /* Comments */: - if (shouldEmitComments(node)) { - return pipelineEmitWithComments; - } - case 3 /* SourceMaps */: - if (shouldEmitSourceMaps(node)) { - return pipelineEmitWithSourceMaps; - } - case 4 /* Emit */: - return pipelineEmitWithHint; - default: - return Debug.assertNever(phase); - } - } - function getNextPipelinePhase(currentPhase, emitHint, node) { - return getPipelinePhase(currentPhase + 1, emitHint, node); - } - function pipelineEmitWithNotification(hint, node) { - var pipelinePhase = getNextPipelinePhase(0 /* Notification */, hint, node); - onEmitNode(hint, node, pipelinePhase); - } - function pipelineEmitWithHint(hint, node) { - onBeforeEmitNode == null ? void 0 : onBeforeEmitNode(node); - if (preserveSourceNewlines) { - var savedPreserveSourceNewlines = preserveSourceNewlines; - beforeEmitNode(node); - pipelineEmitWithHintWorker(hint, node); - afterEmitNode(savedPreserveSourceNewlines); - } - else { - pipelineEmitWithHintWorker(hint, node); - } - onAfterEmitNode == null ? void 0 : onAfterEmitNode(node); - currentParenthesizerRule = void 0; - } - function pipelineEmitWithHintWorker(hint, node, allowSnippets) { - if (allowSnippets === void 0) { allowSnippets = true; } - if (allowSnippets) { - var snippet = getSnippetElement(node); - if (snippet) { - return emitSnippetNode(hint, node, snippet); - } - } - if (hint === 0 /* SourceFile */) - return emitSourceFile(cast(node, isSourceFile)); - if (hint === 2 /* IdentifierName */) - return emitIdentifier(cast(node, isIdentifier)); - if (hint === 6 /* JsxAttributeValue */) - return emitLiteral(cast(node, isStringLiteral), - /*jsxAttributeEscape*/ - true); - if (hint === 3 /* MappedTypeParameter */) - return emitMappedTypeParameter(cast(node, isTypeParameterDeclaration)); - if (hint === 5 /* EmbeddedStatement */) { - Debug.assertNode(node, isEmptyStatement); - return emitEmptyStatement( - /*isEmbeddedStatement*/ - true); - } - if (hint === 4 /* Unspecified */) { - switch (node.kind) { - case 16 /* TemplateHead */: - case 17 /* TemplateMiddle */: - case 18 /* TemplateTail */: - return emitLiteral(node, - /*jsxAttributeEscape*/ - false); - case 80 /* Identifier */: - return emitIdentifier(node); - case 81 /* PrivateIdentifier */: - return emitPrivateIdentifier(node); - case 166 /* QualifiedName */: - return emitQualifiedName(node); - case 167 /* ComputedPropertyName */: - return emitComputedPropertyName(node); - case 168 /* TypeParameter */: - return emitTypeParameter(node); - case 169 /* Parameter */: - return emitParameter(node); - case 170 /* Decorator */: - return emitDecorator(node); - case 171 /* PropertySignature */: - return emitPropertySignature(node); - case 172 /* PropertyDeclaration */: - return emitPropertyDeclaration(node); - case 173 /* MethodSignature */: - return emitMethodSignature(node); - case 174 /* MethodDeclaration */: - return emitMethodDeclaration(node); - case 175 /* ClassStaticBlockDeclaration */: - return emitClassStaticBlockDeclaration(node); - case 176 /* Constructor */: - return emitConstructor(node); - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - return emitAccessorDeclaration(node); - case 179 /* CallSignature */: - return emitCallSignature(node); - case 180 /* ConstructSignature */: - return emitConstructSignature(node); - case 181 /* IndexSignature */: - return emitIndexSignature(node); - case 182 /* TypePredicate */: - return emitTypePredicate(node); - case 183 /* TypeReference */: - return emitTypeReference(node); - case 184 /* FunctionType */: - return emitFunctionType(node); - case 185 /* ConstructorType */: - return emitConstructorType(node); - case 186 /* TypeQuery */: - return emitTypeQuery(node); - case 187 /* TypeLiteral */: - return emitTypeLiteral(node); - case 188 /* ArrayType */: - return emitArrayType(node); - case 189 /* TupleType */: - return emitTupleType(node); - case 190 /* OptionalType */: - return emitOptionalType(node); - case 192 /* UnionType */: - return emitUnionType(node); - case 193 /* IntersectionType */: - return emitIntersectionType(node); - case 194 /* ConditionalType */: - return emitConditionalType(node); - case 195 /* InferType */: - return emitInferType(node); - case 196 /* ParenthesizedType */: - return emitParenthesizedType(node); - case 233 /* ExpressionWithTypeArguments */: - return emitExpressionWithTypeArguments(node); - case 197 /* ThisType */: - return emitThisType(); - case 198 /* TypeOperator */: - return emitTypeOperator(node); - case 199 /* IndexedAccessType */: - return emitIndexedAccessType(node); - case 200 /* MappedType */: - return emitMappedType(node); - case 201 /* LiteralType */: - return emitLiteralType(node); - case 202 /* NamedTupleMember */: - return emitNamedTupleMember(node); - case 203 /* TemplateLiteralType */: - return emitTemplateType(node); - case 204 /* TemplateLiteralTypeSpan */: - return emitTemplateTypeSpan(node); - case 205 /* ImportType */: - return emitImportTypeNode(node); - case 206 /* ObjectBindingPattern */: - return emitObjectBindingPattern(node); - case 207 /* ArrayBindingPattern */: - return emitArrayBindingPattern(node); - case 208 /* BindingElement */: - return emitBindingElement(node); - case 239 /* TemplateSpan */: - return emitTemplateSpan(node); - case 240 /* SemicolonClassElement */: - return emitSemicolonClassElement(); - case 241 /* Block */: - return emitBlock(node); - case 243 /* VariableStatement */: - return emitVariableStatement(node); - case 242 /* EmptyStatement */: - return emitEmptyStatement( - /*isEmbeddedStatement*/ - false); - case 244 /* ExpressionStatement */: - return emitExpressionStatement(node); - case 245 /* IfStatement */: - return emitIfStatement(node); - case 246 /* DoStatement */: - return emitDoStatement(node); - case 247 /* WhileStatement */: - return emitWhileStatement(node); - case 248 /* ForStatement */: - return emitForStatement(node); - case 249 /* ForInStatement */: - return emitForInStatement(node); - case 250 /* ForOfStatement */: - return emitForOfStatement(node); - case 251 /* ContinueStatement */: - return emitContinueStatement(node); - case 252 /* BreakStatement */: - return emitBreakStatement(node); - case 253 /* ReturnStatement */: - return emitReturnStatement(node); - case 254 /* WithStatement */: - return emitWithStatement(node); - case 255 /* SwitchStatement */: - return emitSwitchStatement(node); - case 256 /* LabeledStatement */: - return emitLabeledStatement(node); - case 257 /* ThrowStatement */: - return emitThrowStatement(node); - case 258 /* TryStatement */: - return emitTryStatement(node); - case 259 /* DebuggerStatement */: - return emitDebuggerStatement(node); - case 260 /* VariableDeclaration */: - return emitVariableDeclaration(node); - case 261 /* VariableDeclarationList */: - return emitVariableDeclarationList(node); - case 262 /* FunctionDeclaration */: - return emitFunctionDeclaration(node); - case 263 /* ClassDeclaration */: - return emitClassDeclaration(node); - case 264 /* InterfaceDeclaration */: - return emitInterfaceDeclaration(node); - case 265 /* TypeAliasDeclaration */: - return emitTypeAliasDeclaration(node); - case 266 /* EnumDeclaration */: - return emitEnumDeclaration(node); - case 267 /* ModuleDeclaration */: - return emitModuleDeclaration(node); - case 268 /* ModuleBlock */: - return emitModuleBlock(node); - case 269 /* CaseBlock */: - return emitCaseBlock(node); - case 270 /* NamespaceExportDeclaration */: - return emitNamespaceExportDeclaration(node); - case 271 /* ImportEqualsDeclaration */: - return emitImportEqualsDeclaration(node); - case 272 /* ImportDeclaration */: - return emitImportDeclaration(node); - case 273 /* ImportClause */: - return emitImportClause(node); - case 274 /* NamespaceImport */: - return emitNamespaceImport(node); - case 280 /* NamespaceExport */: - return emitNamespaceExport(node); - case 275 /* NamedImports */: - return emitNamedImports(node); - case 276 /* ImportSpecifier */: - return emitImportSpecifier(node); - case 277 /* ExportAssignment */: - return emitExportAssignment(node); - case 278 /* ExportDeclaration */: - return emitExportDeclaration(node); - case 279 /* NamedExports */: - return emitNamedExports(node); - case 281 /* ExportSpecifier */: - return emitExportSpecifier(node); - case 300 /* AssertClause */: - return emitAssertClause(node); - case 301 /* AssertEntry */: - return emitAssertEntry(node); - case 282 /* MissingDeclaration */: - return; - case 283 /* ExternalModuleReference */: - return emitExternalModuleReference(node); - case 12 /* JsxText */: - return emitJsxText(node); - case 286 /* JsxOpeningElement */: - case 289 /* JsxOpeningFragment */: - return emitJsxOpeningElementOrFragment(node); - case 287 /* JsxClosingElement */: - case 290 /* JsxClosingFragment */: - return emitJsxClosingElementOrFragment(node); - case 291 /* JsxAttribute */: - return emitJsxAttribute(node); - case 292 /* JsxAttributes */: - return emitJsxAttributes(node); - case 293 /* JsxSpreadAttribute */: - return emitJsxSpreadAttribute(node); - case 294 /* JsxExpression */: - return emitJsxExpression(node); - case 295 /* JsxNamespacedName */: - return emitJsxNamespacedName(node); - case 296 /* CaseClause */: - return emitCaseClause(node); - case 297 /* DefaultClause */: - return emitDefaultClause(node); - case 298 /* HeritageClause */: - return emitHeritageClause(node); - case 299 /* CatchClause */: - return emitCatchClause(node); - case 303 /* PropertyAssignment */: - return emitPropertyAssignment(node); - case 304 /* ShorthandPropertyAssignment */: - return emitShorthandPropertyAssignment(node); - case 305 /* SpreadAssignment */: - return emitSpreadAssignment(node); - case 306 /* EnumMember */: - return emitEnumMember(node); - case 307 /* UnparsedPrologue */: - return writeUnparsedNode(node); - case 314 /* UnparsedSource */: - case 308 /* UnparsedPrepend */: - return emitUnparsedSourceOrPrepend(node); - case 309 /* UnparsedText */: - case 310 /* UnparsedInternalText */: - return emitUnparsedTextLike(node); - case 311 /* UnparsedSyntheticReference */: - return emitUnparsedSyntheticReference(node); - case 312 /* SourceFile */: - return emitSourceFile(node); - case 313 /* Bundle */: - return Debug.fail("Bundles should be printed using printBundle"); - case 315 /* InputFiles */: - return Debug.fail("InputFiles should not be printed"); - case 316 /* JSDocTypeExpression */: - return emitJSDocTypeExpression(node); - case 317 /* JSDocNameReference */: - return emitJSDocNameReference(node); - case 319 /* JSDocAllType */: - return writePunctuation("*"); - case 320 /* JSDocUnknownType */: - return writePunctuation("?"); - case 321 /* JSDocNullableType */: - return emitJSDocNullableType(node); - case 322 /* JSDocNonNullableType */: - return emitJSDocNonNullableType(node); - case 323 /* JSDocOptionalType */: - return emitJSDocOptionalType(node); - case 324 /* JSDocFunctionType */: - return emitJSDocFunctionType(node); - case 191 /* RestType */: - case 325 /* JSDocVariadicType */: - return emitRestOrJSDocVariadicType(node); - case 326 /* JSDocNamepathType */: - return; - case 327 /* JSDoc */: - return emitJSDoc(node); - case 329 /* JSDocTypeLiteral */: - return emitJSDocTypeLiteral(node); - case 330 /* JSDocSignature */: - return emitJSDocSignature(node); - case 334 /* JSDocTag */: - case 339 /* JSDocClassTag */: - case 344 /* JSDocOverrideTag */: - return emitJSDocSimpleTag(node); - case 335 /* JSDocAugmentsTag */: - case 336 /* JSDocImplementsTag */: - return emitJSDocHeritageTag(node); - case 337 /* JSDocAuthorTag */: - case 338 /* JSDocDeprecatedTag */: - return; - case 340 /* JSDocPublicTag */: - case 341 /* JSDocPrivateTag */: - case 342 /* JSDocProtectedTag */: - case 343 /* JSDocReadonlyTag */: - return; - case 345 /* JSDocCallbackTag */: - return emitJSDocCallbackTag(node); - case 346 /* JSDocOverloadTag */: - return emitJSDocOverloadTag(node); - case 348 /* JSDocParameterTag */: - case 355 /* JSDocPropertyTag */: - return emitJSDocPropertyLikeTag(node); - case 347 /* JSDocEnumTag */: - case 349 /* JSDocReturnTag */: - case 350 /* JSDocThisTag */: - case 351 /* JSDocTypeTag */: - case 356 /* JSDocThrowsTag */: - case 357 /* JSDocSatisfiesTag */: - return emitJSDocSimpleTypedTag(node); - case 352 /* JSDocTemplateTag */: - return emitJSDocTemplateTag(node); - case 353 /* JSDocTypedefTag */: - return emitJSDocTypedefTag(node); - case 354 /* JSDocSeeTag */: - return emitJSDocSeeTag(node); - case 359 /* NotEmittedStatement */: - return; - } - if (isExpression(node)) { - hint = 1 /* Expression */; - if (substituteNode !== noEmitSubstitution) { - var substitute = substituteNode(hint, node) || node; - if (substitute !== node) { - node = substitute; - if (currentParenthesizerRule) { - node = currentParenthesizerRule(node); - } - } - } - } - } - if (hint === 1 /* Expression */) { - switch (node.kind) { - case 9 /* NumericLiteral */: - case 10 /* BigIntLiteral */: - return emitNumericOrBigIntLiteral(node); - case 11 /* StringLiteral */: - case 14 /* RegularExpressionLiteral */: - case 15 /* NoSubstitutionTemplateLiteral */: - return emitLiteral(node, - /*jsxAttributeEscape*/ - false); - case 80 /* Identifier */: - return emitIdentifier(node); - case 81 /* PrivateIdentifier */: - return emitPrivateIdentifier(node); - case 209 /* ArrayLiteralExpression */: - return emitArrayLiteralExpression(node); - case 210 /* ObjectLiteralExpression */: - return emitObjectLiteralExpression(node); - case 211 /* PropertyAccessExpression */: - return emitPropertyAccessExpression(node); - case 212 /* ElementAccessExpression */: - return emitElementAccessExpression(node); - case 213 /* CallExpression */: - return emitCallExpression(node); - case 214 /* NewExpression */: - return emitNewExpression(node); - case 215 /* TaggedTemplateExpression */: - return emitTaggedTemplateExpression(node); - case 216 /* TypeAssertionExpression */: - return emitTypeAssertionExpression(node); - case 217 /* ParenthesizedExpression */: - return emitParenthesizedExpression(node); - case 218 /* FunctionExpression */: - return emitFunctionExpression(node); - case 219 /* ArrowFunction */: - return emitArrowFunction(node); - case 220 /* DeleteExpression */: - return emitDeleteExpression(node); - case 221 /* TypeOfExpression */: - return emitTypeOfExpression(node); - case 222 /* VoidExpression */: - return emitVoidExpression(node); - case 223 /* AwaitExpression */: - return emitAwaitExpression(node); - case 224 /* PrefixUnaryExpression */: - return emitPrefixUnaryExpression(node); - case 225 /* PostfixUnaryExpression */: - return emitPostfixUnaryExpression(node); - case 226 /* BinaryExpression */: - return emitBinaryExpression(node); - case 227 /* ConditionalExpression */: - return emitConditionalExpression(node); - case 228 /* TemplateExpression */: - return emitTemplateExpression(node); - case 229 /* YieldExpression */: - return emitYieldExpression(node); - case 230 /* SpreadElement */: - return emitSpreadElement(node); - case 231 /* ClassExpression */: - return emitClassExpression(node); - case 232 /* OmittedExpression */: - return; - case 234 /* AsExpression */: - return emitAsExpression(node); - case 235 /* NonNullExpression */: - return emitNonNullExpression(node); - case 233 /* ExpressionWithTypeArguments */: - return emitExpressionWithTypeArguments(node); - case 238 /* SatisfiesExpression */: - return emitSatisfiesExpression(node); - case 236 /* MetaProperty */: - return emitMetaProperty(node); - case 237 /* SyntheticExpression */: - return Debug.fail("SyntheticExpression should never be printed."); - case 282 /* MissingDeclaration */: - return; - case 284 /* JsxElement */: - return emitJsxElement(node); - case 285 /* JsxSelfClosingElement */: - return emitJsxSelfClosingElement(node); - case 288 /* JsxFragment */: - return emitJsxFragment(node); - case 358 /* SyntaxList */: - return Debug.fail("SyntaxList should not be printed"); - case 359 /* NotEmittedStatement */: - return; - case 360 /* PartiallyEmittedExpression */: - return emitPartiallyEmittedExpression(node); - case 361 /* CommaListExpression */: - return emitCommaList(node); - case 362 /* SyntheticReferenceExpression */: - return Debug.fail("SyntheticReferenceExpression should not be printed"); - } - } - if (isKeyword(node.kind)) - return writeTokenNode(node, writeKeyword); - if (isTokenKind(node.kind)) - return writeTokenNode(node, writePunctuation); - Debug.fail("Unhandled SyntaxKind: ".concat(Debug.formatSyntaxKind(node.kind), ".")); - } - function emitMappedTypeParameter(node) { - emit(node.name); - writeSpace(); - writeKeyword("in"); - writeSpace(); - emit(node.constraint); - } - function pipelineEmitWithSubstitution(hint, node) { - var pipelinePhase = getNextPipelinePhase(1 /* Substitution */, hint, node); - Debug.assertIsDefined(lastSubstitution); - node = lastSubstitution; - lastSubstitution = void 0; - pipelinePhase(hint, node); - } - function getHelpersFromBundledSourceFiles(bundle) { - var e_565, _t, e_566, _u; - var result; - if (moduleKind === 0 /* None */ || printerOptions.noEmitHelpers) { - return void 0; - } - var bundledHelpers2 = /* @__PURE__ */ new Map(); - try { - for (var _v = __values(bundle.sourceFiles), _w = _v.next(); !_w.done; _w = _v.next()) { - var sourceFile = _w.value; - var shouldSkip = getExternalHelpersModuleName(sourceFile) !== void 0; - var helpers = getSortedEmitHelpers(sourceFile); - if (!helpers) - continue; - try { - for (var helpers_5 = (e_566 = void 0, __values(helpers)), helpers_5_1 = helpers_5.next(); !helpers_5_1.done; helpers_5_1 = helpers_5.next()) { - var helper = helpers_5_1.value; - if (!helper.scoped && !shouldSkip && !bundledHelpers2.get(helper.name)) { - bundledHelpers2.set(helper.name, true); - (result || (result = [])).push(helper.name); - } - } - } - catch (e_566_1) { e_566 = { error: e_566_1 }; } - finally { - try { - if (helpers_5_1 && !helpers_5_1.done && (_u = helpers_5.return)) _u.call(helpers_5); - } - finally { if (e_566) throw e_566.error; } - } - } - } - catch (e_565_1) { e_565 = { error: e_565_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_565) throw e_565.error; } - } - return result; - } - function emitHelpers(node) { - var e_567, _t; - var helpersEmitted = false; - var bundle = node.kind === 313 /* Bundle */ ? node : void 0; - if (bundle && moduleKind === 0 /* None */) { - return; - } - var numPrepends = bundle ? bundle.prepends.length : 0; - var numNodes = bundle ? bundle.sourceFiles.length + numPrepends : 1; - for (var i = 0; i < numNodes; i++) { - var currentNode = bundle ? i < numPrepends ? bundle.prepends[i] : bundle.sourceFiles[i - numPrepends] : node; - var sourceFile = isSourceFile(currentNode) ? currentNode : isUnparsedSource(currentNode) ? void 0 : currentSourceFile; - var shouldSkip = printerOptions.noEmitHelpers || !!sourceFile && hasRecordedExternalHelpers(sourceFile); - var shouldBundle = (isSourceFile(currentNode) || isUnparsedSource(currentNode)) && !isOwnFileEmit; - var helpers = isUnparsedSource(currentNode) ? currentNode.helpers : getSortedEmitHelpers(currentNode); - if (helpers) { - try { - for (var helpers_6 = (e_567 = void 0, __values(helpers)), helpers_6_1 = helpers_6.next(); !helpers_6_1.done; helpers_6_1 = helpers_6.next()) { - var helper = helpers_6_1.value; - if (!helper.scoped) { - if (shouldSkip) - continue; - if (shouldBundle) { - if (bundledHelpers.get(helper.name)) { - continue; - } - bundledHelpers.set(helper.name, true); - } - } - else if (bundle) { - continue; - } - var pos = getTextPosWithWriteLine(); - if (typeof helper.text === "string") { - writeLines(helper.text); - } - else { - writeLines(helper.text(makeFileLevelOptimisticUniqueName)); - } - if (bundleFileInfo) - bundleFileInfo.sections.push({ pos: pos, end: writer.getTextPos(), kind: "emitHelpers" /* EmitHelpers */, data: helper.name }); - helpersEmitted = true; - } - } - catch (e_567_1) { e_567 = { error: e_567_1 }; } - finally { - try { - if (helpers_6_1 && !helpers_6_1.done && (_t = helpers_6.return)) _t.call(helpers_6); - } - finally { if (e_567) throw e_567.error; } - } - } - } - return helpersEmitted; - } - function getSortedEmitHelpers(node) { - var helpers = getEmitHelpers(node); - return helpers && stableSort(helpers, compareEmitHelpers); - } - function emitNumericOrBigIntLiteral(node) { - emitLiteral(node, - /*jsxAttributeEscape*/ - false); - } - function emitLiteral(node, jsxAttributeEscape) { - var text = getLiteralTextOfNode(node, printerOptions.neverAsciiEscape, jsxAttributeEscape); - if ((printerOptions.sourceMap || printerOptions.inlineSourceMap) && (node.kind === 11 /* StringLiteral */ || isTemplateLiteralKind(node.kind))) { - writeLiteral(text); - } - else { - writeStringLiteral(text); - } - } - function emitUnparsedSourceOrPrepend(unparsed) { - var e_568, _t; - try { - for (var _u = __values(unparsed.texts), _v = _u.next(); !_v.done; _v = _u.next()) { - var text = _v.value; - writeLine(); - emit(text); - } - } - catch (e_568_1) { e_568 = { error: e_568_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_568) throw e_568.error; } - } - } - function writeUnparsedNode(unparsed) { - writer.rawWrite(unparsed.parent.text.substring(unparsed.pos, unparsed.end)); - } - function emitUnparsedTextLike(unparsed) { - var pos = getTextPosWithWriteLine(); - writeUnparsedNode(unparsed); - if (bundleFileInfo) { - updateOrPushBundleFileTextLike(pos, writer.getTextPos(), unparsed.kind === 309 /* UnparsedText */ ? "text" /* Text */ : "internal" /* Internal */); - } - } - function emitUnparsedSyntheticReference(unparsed) { - var pos = getTextPosWithWriteLine(); - writeUnparsedNode(unparsed); - if (bundleFileInfo) { - var section = clone(unparsed.section); - section.pos = pos; - section.end = writer.getTextPos(); - bundleFileInfo.sections.push(section); - } - } - function emitSnippetNode(hint, node, snippet) { - switch (snippet.kind) { - case 1 /* Placeholder */: - emitPlaceholder(hint, node, snippet); - break; - case 0 /* TabStop */: - emitTabStop(hint, node, snippet); - break; - } - } - function emitPlaceholder(hint, node, snippet) { - nonEscapingWrite("${".concat(snippet.order, ":")); - pipelineEmitWithHintWorker(hint, node, - /*allowSnippets*/ - false); - nonEscapingWrite("}"); - } - function emitTabStop(hint, node, snippet) { - Debug.assert(node.kind === 242 /* EmptyStatement */, "A tab stop cannot be attached to a node of kind ".concat(Debug.formatSyntaxKind(node.kind), ".")); - Debug.assert(hint !== 5 /* EmbeddedStatement */, "A tab stop cannot be attached to an embedded statement."); - nonEscapingWrite("$".concat(snippet.order)); - } - function emitIdentifier(node) { - var writeText = node.symbol ? writeSymbol : write; - writeText(getTextOfNode2(node, - /*includeTrivia*/ - false), node.symbol); - emitList(node, getIdentifierTypeArguments(node), 53776 /* TypeParameters */); - } - function emitPrivateIdentifier(node) { - write(getTextOfNode2(node, - /*includeTrivia*/ - false)); - } - function emitQualifiedName(node) { - emitEntityName(node.left); - writePunctuation("."); - emit(node.right); - } - function emitEntityName(node) { - if (node.kind === 80 /* Identifier */) { - emitExpression(node); - } - else { - emit(node); - } - } - function emitComputedPropertyName(node) { - var savedPrivateNameTempFlags = privateNameTempFlags; - var savedReservedMemberNames = reservedPrivateNames; - popPrivateNameGenerationScope(); - writePunctuation("["); - emitExpression(node.expression, parenthesizer.parenthesizeExpressionOfComputedPropertyName); - writePunctuation("]"); - pushPrivateNameGenerationScope(savedPrivateNameTempFlags, savedReservedMemberNames); - } - function emitTypeParameter(node) { - emitModifierList(node, node.modifiers); - emit(node.name); - if (node.constraint) { - writeSpace(); - writeKeyword("extends"); - writeSpace(); - emit(node.constraint); - } - if (node.default) { - writeSpace(); - writeOperator("="); - writeSpace(); - emit(node.default); - } - } - function emitParameter(node) { - emitDecoratorsAndModifiers(node, node.modifiers, - /*allowDecorators*/ - true); - emit(node.dotDotDotToken); - emitNodeWithWriter(node.name, writeParameter); - emit(node.questionToken); - if (node.parent && node.parent.kind === 324 /* JSDocFunctionType */ && !node.name) { - emit(node.type); - } - else { - emitTypeAnnotation(node.type); - } - emitInitializer(node.initializer, node.type ? node.type.end : node.questionToken ? node.questionToken.end : node.name ? node.name.end : node.modifiers ? node.modifiers.end : node.pos, node, parenthesizer.parenthesizeExpressionForDisallowedComma); - } - function emitDecorator(decorator) { - writePunctuation("@"); - emitExpression(decorator.expression, parenthesizer.parenthesizeLeftSideOfAccess); - } - function emitPropertySignature(node) { - emitModifierList(node, node.modifiers); - emitNodeWithWriter(node.name, writeProperty); - emit(node.questionToken); - emitTypeAnnotation(node.type); - writeTrailingSemicolon(); - } - function emitPropertyDeclaration(node) { - emitDecoratorsAndModifiers(node, node.modifiers, - /*allowDecorators*/ - true); - emit(node.name); - emit(node.questionToken); - emit(node.exclamationToken); - emitTypeAnnotation(node.type); - emitInitializer(node.initializer, node.type ? node.type.end : node.questionToken ? node.questionToken.end : node.name.end, node); - writeTrailingSemicolon(); - } - function emitMethodSignature(node) { - pushNameGenerationScope(node); - emitModifierList(node, node.modifiers); - emit(node.name); - emit(node.questionToken); - emitTypeParameters(node, node.typeParameters); - emitParameters(node, node.parameters); - emitTypeAnnotation(node.type); - writeTrailingSemicolon(); - popNameGenerationScope(node); - } - function emitMethodDeclaration(node) { - emitDecoratorsAndModifiers(node, node.modifiers, - /*allowDecorators*/ - true); - emit(node.asteriskToken); - emit(node.name); - emit(node.questionToken); - emitSignatureAndBody(node, emitSignatureHead); - } - function emitClassStaticBlockDeclaration(node) { - writeKeyword("static"); - emitBlockFunctionBody(node.body); - } - function emitConstructor(node) { - emitDecoratorsAndModifiers(node, node.modifiers, - /*allowDecorators*/ - false); - writeKeyword("constructor"); - emitSignatureAndBody(node, emitSignatureHead); - } - function emitAccessorDeclaration(node) { - var pos = emitDecoratorsAndModifiers(node, node.modifiers, - /*allowDecorators*/ - true); - var token = node.kind === 177 /* GetAccessor */ ? 139 /* GetKeyword */ : 153 /* SetKeyword */; - emitTokenWithComment(token, pos, writeKeyword, node); - writeSpace(); - emit(node.name); - emitSignatureAndBody(node, emitSignatureHead); - } - function emitCallSignature(node) { - pushNameGenerationScope(node); - emitTypeParameters(node, node.typeParameters); - emitParameters(node, node.parameters); - emitTypeAnnotation(node.type); - writeTrailingSemicolon(); - popNameGenerationScope(node); - } - function emitConstructSignature(node) { - pushNameGenerationScope(node); - writeKeyword("new"); - writeSpace(); - emitTypeParameters(node, node.typeParameters); - emitParameters(node, node.parameters); - emitTypeAnnotation(node.type); - writeTrailingSemicolon(); - popNameGenerationScope(node); - } - function emitIndexSignature(node) { - emitDecoratorsAndModifiers(node, node.modifiers, - /*allowDecorators*/ - false); - emitParametersForIndexSignature(node, node.parameters); - emitTypeAnnotation(node.type); - writeTrailingSemicolon(); - } - function emitTemplateTypeSpan(node) { - emit(node.type); - emit(node.literal); - } - function emitSemicolonClassElement() { - writeTrailingSemicolon(); - } - function emitTypePredicate(node) { - if (node.assertsModifier) { - emit(node.assertsModifier); - writeSpace(); - } - emit(node.parameterName); - if (node.type) { - writeSpace(); - writeKeyword("is"); - writeSpace(); - emit(node.type); - } - } - function emitTypeReference(node) { - emit(node.typeName); - emitTypeArguments(node, node.typeArguments); - } - function emitFunctionType(node) { - pushNameGenerationScope(node); - emitTypeParameters(node, node.typeParameters); - emitParametersForArrow(node, node.parameters); - writeSpace(); - writePunctuation("=>"); - writeSpace(); - emit(node.type); - popNameGenerationScope(node); - } - function emitJSDocFunctionType(node) { - writeKeyword("function"); - emitParameters(node, node.parameters); - writePunctuation(":"); - emit(node.type); - } - function emitJSDocNullableType(node) { - writePunctuation("?"); - emit(node.type); - } - function emitJSDocNonNullableType(node) { - writePunctuation("!"); - emit(node.type); - } - function emitJSDocOptionalType(node) { - emit(node.type); - writePunctuation("="); - } - function emitConstructorType(node) { - pushNameGenerationScope(node); - emitModifierList(node, node.modifiers); - writeKeyword("new"); - writeSpace(); - emitTypeParameters(node, node.typeParameters); - emitParameters(node, node.parameters); - writeSpace(); - writePunctuation("=>"); - writeSpace(); - emit(node.type); - popNameGenerationScope(node); - } - function emitTypeQuery(node) { - writeKeyword("typeof"); - writeSpace(); - emit(node.exprName); - emitTypeArguments(node, node.typeArguments); - } - function emitTypeLiteral(node) { - pushPrivateNameGenerationScope(0 /* Auto */, - /*newReservedMemberNames*/ - void 0); - writePunctuation("{"); - var flags = getEmitFlags(node) & 1 /* SingleLine */ ? 768 /* SingleLineTypeLiteralMembers */ : 32897 /* MultiLineTypeLiteralMembers */; - emitList(node, node.members, flags | 524288 /* NoSpaceIfEmpty */); - writePunctuation("}"); - popPrivateNameGenerationScope(); - } - function emitArrayType(node) { - emit(node.elementType, parenthesizer.parenthesizeNonArrayTypeOfPostfixType); - writePunctuation("["); - writePunctuation("]"); - } - function emitRestOrJSDocVariadicType(node) { - writePunctuation("..."); - emit(node.type); - } - function emitTupleType(node) { - emitTokenWithComment(23 /* OpenBracketToken */, node.pos, writePunctuation, node); - var flags = getEmitFlags(node) & 1 /* SingleLine */ ? 528 /* SingleLineTupleTypeElements */ : 657 /* MultiLineTupleTypeElements */; - emitList(node, node.elements, flags | 524288 /* NoSpaceIfEmpty */, parenthesizer.parenthesizeElementTypeOfTupleType); - emitTokenWithComment(24 /* CloseBracketToken */, node.elements.end, writePunctuation, node); - } - function emitNamedTupleMember(node) { - emit(node.dotDotDotToken); - emit(node.name); - emit(node.questionToken); - emitTokenWithComment(59 /* ColonToken */, node.name.end, writePunctuation, node); - writeSpace(); - emit(node.type); - } - function emitOptionalType(node) { - emit(node.type, parenthesizer.parenthesizeTypeOfOptionalType); - writePunctuation("?"); - } - function emitUnionType(node) { - emitList(node, node.types, 516 /* UnionTypeConstituents */, parenthesizer.parenthesizeConstituentTypeOfUnionType); - } - function emitIntersectionType(node) { - emitList(node, node.types, 520 /* IntersectionTypeConstituents */, parenthesizer.parenthesizeConstituentTypeOfIntersectionType); - } - function emitConditionalType(node) { - emit(node.checkType, parenthesizer.parenthesizeCheckTypeOfConditionalType); - writeSpace(); - writeKeyword("extends"); - writeSpace(); - emit(node.extendsType, parenthesizer.parenthesizeExtendsTypeOfConditionalType); - writeSpace(); - writePunctuation("?"); - writeSpace(); - emit(node.trueType); - writeSpace(); - writePunctuation(":"); - writeSpace(); - emit(node.falseType); - } - function emitInferType(node) { - writeKeyword("infer"); - writeSpace(); - emit(node.typeParameter); - } - function emitParenthesizedType(node) { - writePunctuation("("); - emit(node.type); - writePunctuation(")"); - } - function emitThisType() { - writeKeyword("this"); - } - function emitTypeOperator(node) { - writeTokenText(node.operator, writeKeyword); - writeSpace(); - var parenthesizerRule = node.operator === 148 /* ReadonlyKeyword */ ? parenthesizer.parenthesizeOperandOfReadonlyTypeOperator : parenthesizer.parenthesizeOperandOfTypeOperator; - emit(node.type, parenthesizerRule); - } - function emitIndexedAccessType(node) { - emit(node.objectType, parenthesizer.parenthesizeNonArrayTypeOfPostfixType); - writePunctuation("["); - emit(node.indexType); - writePunctuation("]"); - } - function emitMappedType(node) { - var emitFlags = getEmitFlags(node); - writePunctuation("{"); - if (emitFlags & 1 /* SingleLine */) { - writeSpace(); - } - else { - writeLine(); - increaseIndent(); - } - if (node.readonlyToken) { - emit(node.readonlyToken); - if (node.readonlyToken.kind !== 148 /* ReadonlyKeyword */) { - writeKeyword("readonly"); - } - writeSpace(); - } - writePunctuation("["); - pipelineEmit(3 /* MappedTypeParameter */, node.typeParameter); - if (node.nameType) { - writeSpace(); - writeKeyword("as"); - writeSpace(); - emit(node.nameType); - } - writePunctuation("]"); - if (node.questionToken) { - emit(node.questionToken); - if (node.questionToken.kind !== 58 /* QuestionToken */) { - writePunctuation("?"); - } - } - writePunctuation(":"); - writeSpace(); - emit(node.type); - writeTrailingSemicolon(); - if (emitFlags & 1 /* SingleLine */) { - writeSpace(); - } - else { - writeLine(); - decreaseIndent(); - } - emitList(node, node.members, 2 /* PreserveLines */); - writePunctuation("}"); - } - function emitLiteralType(node) { - emitExpression(node.literal); - } - function emitTemplateType(node) { - emit(node.head); - emitList(node, node.templateSpans, 262144 /* TemplateExpressionSpans */); - } - function emitImportTypeNode(node) { - if (node.isTypeOf) { - writeKeyword("typeof"); - writeSpace(); - } - writeKeyword("import"); - writePunctuation("("); - emit(node.argument); - if (node.assertions) { - writePunctuation(","); - writeSpace(); - writePunctuation("{"); - writeSpace(); - writeKeyword("assert"); - writePunctuation(":"); - writeSpace(); - var elements = node.assertions.assertClause.elements; - emitList(node.assertions.assertClause, elements, 526226 /* ImportClauseEntries */); - writeSpace(); - writePunctuation("}"); - } - writePunctuation(")"); - if (node.qualifier) { - writePunctuation("."); - emit(node.qualifier); - } - emitTypeArguments(node, node.typeArguments); - } - function emitObjectBindingPattern(node) { - writePunctuation("{"); - emitList(node, node.elements, 525136 /* ObjectBindingPatternElements */); - writePunctuation("}"); - } - function emitArrayBindingPattern(node) { - writePunctuation("["); - emitList(node, node.elements, 524880 /* ArrayBindingPatternElements */); - writePunctuation("]"); - } - function emitBindingElement(node) { - emit(node.dotDotDotToken); - if (node.propertyName) { - emit(node.propertyName); - writePunctuation(":"); - writeSpace(); - } - emit(node.name); - emitInitializer(node.initializer, node.name.end, node, parenthesizer.parenthesizeExpressionForDisallowedComma); - } - function emitArrayLiteralExpression(node) { - var elements = node.elements; - var preferNewLine = node.multiLine ? 65536 /* PreferNewLine */ : 0 /* None */; - emitExpressionList(node, elements, 8914 /* ArrayLiteralExpressionElements */ | preferNewLine, parenthesizer.parenthesizeExpressionForDisallowedComma); - } - function emitObjectLiteralExpression(node) { - pushPrivateNameGenerationScope(0 /* Auto */, - /*newReservedMemberNames*/ - void 0); - forEach(node.properties, generateMemberNames); - var indentedFlag = getEmitFlags(node) & 131072 /* Indented */; - if (indentedFlag) { - increaseIndent(); - } - var preferNewLine = node.multiLine ? 65536 /* PreferNewLine */ : 0 /* None */; - var allowTrailingComma = currentSourceFile && currentSourceFile.languageVersion >= 1 /* ES5 */ && !isJsonSourceFile(currentSourceFile) ? 64 /* AllowTrailingComma */ : 0 /* None */; - emitList(node, node.properties, 526226 /* ObjectLiteralExpressionProperties */ | allowTrailingComma | preferNewLine); - if (indentedFlag) { - decreaseIndent(); - } - popPrivateNameGenerationScope(); - } - function emitPropertyAccessExpression(node) { - emitExpression(node.expression, parenthesizer.parenthesizeLeftSideOfAccess); - var token = node.questionDotToken || setTextRangePosEnd(factory.createToken(25 /* DotToken */), node.expression.end, node.name.pos); - var linesBeforeDot = getLinesBetweenNodes(node, node.expression, token); - var linesAfterDot = getLinesBetweenNodes(node, token, node.name); - writeLinesAndIndent(linesBeforeDot, - /*writeSpaceIfNotIndenting*/ - false); - var shouldEmitDotDot = token.kind !== 29 /* QuestionDotToken */ && mayNeedDotDotForPropertyAccess(node.expression) && !writer.hasTrailingComment() && !writer.hasTrailingWhitespace(); - if (shouldEmitDotDot) { - writePunctuation("."); - } - if (node.questionDotToken) { - emit(token); - } - else { - emitTokenWithComment(token.kind, node.expression.end, writePunctuation, node); - } - writeLinesAndIndent(linesAfterDot, - /*writeSpaceIfNotIndenting*/ - false); - emit(node.name); - decreaseIndentIf(linesBeforeDot, linesAfterDot); - } - function mayNeedDotDotForPropertyAccess(expression) { - expression = skipPartiallyEmittedExpressions(expression); - if (isNumericLiteral(expression)) { - var text = getLiteralTextOfNode(expression, - /*neverAsciiEscape*/ - true, - /*jsxAttributeEscape*/ - false); - return !(expression.numericLiteralFlags & 448 /* WithSpecifier */) && !stringContains(text, tokenToString(25 /* DotToken */)) && !stringContains(text, String.fromCharCode(69 /* E */)) && !stringContains(text, String.fromCharCode(101 /* e */)); - } - else if (isAccessExpression(expression)) { - var constantValue = getConstantValue(expression); - return typeof constantValue === "number" && isFinite(constantValue) && constantValue >= 0 && Math.floor(constantValue) === constantValue; - } - } - function emitElementAccessExpression(node) { - emitExpression(node.expression, parenthesizer.parenthesizeLeftSideOfAccess); - emit(node.questionDotToken); - emitTokenWithComment(23 /* OpenBracketToken */, node.expression.end, writePunctuation, node); - emitExpression(node.argumentExpression); - emitTokenWithComment(24 /* CloseBracketToken */, node.argumentExpression.end, writePunctuation, node); - } - function emitCallExpression(node) { - var indirectCall = getInternalEmitFlags(node) & 16 /* IndirectCall */; - if (indirectCall) { - writePunctuation("("); - writeLiteral("0"); - writePunctuation(","); - writeSpace(); - } - emitExpression(node.expression, parenthesizer.parenthesizeLeftSideOfAccess); - if (indirectCall) { - writePunctuation(")"); - } - emit(node.questionDotToken); - emitTypeArguments(node, node.typeArguments); - emitExpressionList(node, node.arguments, 2576 /* CallExpressionArguments */, parenthesizer.parenthesizeExpressionForDisallowedComma); - } - function emitNewExpression(node) { - emitTokenWithComment(105 /* NewKeyword */, node.pos, writeKeyword, node); - writeSpace(); - emitExpression(node.expression, parenthesizer.parenthesizeExpressionOfNew); - emitTypeArguments(node, node.typeArguments); - emitExpressionList(node, node.arguments, 18960 /* NewExpressionArguments */, parenthesizer.parenthesizeExpressionForDisallowedComma); - } - function emitTaggedTemplateExpression(node) { - var indirectCall = getInternalEmitFlags(node) & 16 /* IndirectCall */; - if (indirectCall) { - writePunctuation("("); - writeLiteral("0"); - writePunctuation(","); - writeSpace(); - } - emitExpression(node.tag, parenthesizer.parenthesizeLeftSideOfAccess); - if (indirectCall) { - writePunctuation(")"); - } - emitTypeArguments(node, node.typeArguments); - writeSpace(); - emitExpression(node.template); - } - function emitTypeAssertionExpression(node) { - writePunctuation("<"); - emit(node.type); - writePunctuation(">"); - emitExpression(node.expression, parenthesizer.parenthesizeOperandOfPrefixUnary); - } - function emitParenthesizedExpression(node) { - var openParenPos = emitTokenWithComment(21 /* OpenParenToken */, node.pos, writePunctuation, node); - var indented = writeLineSeparatorsAndIndentBefore(node.expression, node); - emitExpression(node.expression, - /*parenthesizerRule*/ - void 0); - writeLineSeparatorsAfter(node.expression, node); - decreaseIndentIf(indented); - emitTokenWithComment(22 /* CloseParenToken */, node.expression ? node.expression.end : openParenPos, writePunctuation, node); - } - function emitFunctionExpression(node) { - generateNameIfNeeded(node.name); - emitFunctionDeclarationOrExpression(node); - } - function emitArrowFunction(node) { - emitModifierList(node, node.modifiers); - emitSignatureAndBody(node, emitArrowFunctionHead); - } - function emitArrowFunctionHead(node) { - emitTypeParameters(node, node.typeParameters); - emitParametersForArrow(node, node.parameters); - emitTypeAnnotation(node.type); - writeSpace(); - emit(node.equalsGreaterThanToken); - } - function emitDeleteExpression(node) { - emitTokenWithComment(91 /* DeleteKeyword */, node.pos, writeKeyword, node); - writeSpace(); - emitExpression(node.expression, parenthesizer.parenthesizeOperandOfPrefixUnary); - } - function emitTypeOfExpression(node) { - emitTokenWithComment(114 /* TypeOfKeyword */, node.pos, writeKeyword, node); - writeSpace(); - emitExpression(node.expression, parenthesizer.parenthesizeOperandOfPrefixUnary); - } - function emitVoidExpression(node) { - emitTokenWithComment(116 /* VoidKeyword */, node.pos, writeKeyword, node); - writeSpace(); - emitExpression(node.expression, parenthesizer.parenthesizeOperandOfPrefixUnary); - } - function emitAwaitExpression(node) { - emitTokenWithComment(135 /* AwaitKeyword */, node.pos, writeKeyword, node); - writeSpace(); - emitExpression(node.expression, parenthesizer.parenthesizeOperandOfPrefixUnary); - } - function emitPrefixUnaryExpression(node) { - writeTokenText(node.operator, writeOperator); - if (shouldEmitWhitespaceBeforeOperand(node)) { - writeSpace(); - } - emitExpression(node.operand, parenthesizer.parenthesizeOperandOfPrefixUnary); - } - function shouldEmitWhitespaceBeforeOperand(node) { - var operand = node.operand; - return operand.kind === 224 /* PrefixUnaryExpression */ && (node.operator === 40 /* PlusToken */ && (operand.operator === 40 /* PlusToken */ || operand.operator === 46 /* PlusPlusToken */) || node.operator === 41 /* MinusToken */ && (operand.operator === 41 /* MinusToken */ || operand.operator === 47 /* MinusMinusToken */)); - } - function emitPostfixUnaryExpression(node) { - emitExpression(node.operand, parenthesizer.parenthesizeOperandOfPostfixUnary); - writeTokenText(node.operator, writeOperator); - } - function createEmitBinaryExpression() { - return createBinaryExpressionTrampoline(onEnter, onLeft, onOperator, onRight, onExit, - /*foldState*/ - void 0); - function onEnter(node, state) { - if (state) { - state.stackIndex++; - state.preserveSourceNewlinesStack[state.stackIndex] = preserveSourceNewlines; - state.containerPosStack[state.stackIndex] = containerPos; - state.containerEndStack[state.stackIndex] = containerEnd; - state.declarationListContainerEndStack[state.stackIndex] = declarationListContainerEnd; - var emitComments2 = state.shouldEmitCommentsStack[state.stackIndex] = shouldEmitComments(node); - var emitSourceMaps = state.shouldEmitSourceMapsStack[state.stackIndex] = shouldEmitSourceMaps(node); - onBeforeEmitNode == null ? void 0 : onBeforeEmitNode(node); - if (emitComments2) - emitCommentsBeforeNode(node); - if (emitSourceMaps) - emitSourceMapsBeforeNode(node); - beforeEmitNode(node); - } - else { - state = { - stackIndex: 0, - preserveSourceNewlinesStack: [void 0], - containerPosStack: [-1], - containerEndStack: [-1], - declarationListContainerEndStack: [-1], - shouldEmitCommentsStack: [false], - shouldEmitSourceMapsStack: [false] - }; - } - return state; - } - function onLeft(next, _workArea, parent2) { - return maybeEmitExpression(next, parent2, "left"); - } - function onOperator(operatorToken, _state, node) { - var isCommaOperator = operatorToken.kind !== 28 /* CommaToken */; - var linesBeforeOperator = getLinesBetweenNodes(node, node.left, operatorToken); - var linesAfterOperator = getLinesBetweenNodes(node, operatorToken, node.right); - writeLinesAndIndent(linesBeforeOperator, isCommaOperator); - emitLeadingCommentsOfPosition(operatorToken.pos); - writeTokenNode(operatorToken, operatorToken.kind === 103 /* InKeyword */ ? writeKeyword : writeOperator); - emitTrailingCommentsOfPosition(operatorToken.end, - /*prefixSpace*/ - true); - writeLinesAndIndent(linesAfterOperator, - /*writeSpaceIfNotIndenting*/ - true); - } - function onRight(next, _workArea, parent2) { - return maybeEmitExpression(next, parent2, "right"); - } - function onExit(node, state) { - var linesBeforeOperator = getLinesBetweenNodes(node, node.left, node.operatorToken); - var linesAfterOperator = getLinesBetweenNodes(node, node.operatorToken, node.right); - decreaseIndentIf(linesBeforeOperator, linesAfterOperator); - if (state.stackIndex > 0) { - var savedPreserveSourceNewlines = state.preserveSourceNewlinesStack[state.stackIndex]; - var savedContainerPos = state.containerPosStack[state.stackIndex]; - var savedContainerEnd = state.containerEndStack[state.stackIndex]; - var savedDeclarationListContainerEnd = state.declarationListContainerEndStack[state.stackIndex]; - var shouldEmitComments2 = state.shouldEmitCommentsStack[state.stackIndex]; - var shouldEmitSourceMaps2 = state.shouldEmitSourceMapsStack[state.stackIndex]; - afterEmitNode(savedPreserveSourceNewlines); - if (shouldEmitSourceMaps2) - emitSourceMapsAfterNode(node); - if (shouldEmitComments2) - emitCommentsAfterNode(node, savedContainerPos, savedContainerEnd, savedDeclarationListContainerEnd); - onAfterEmitNode == null ? void 0 : onAfterEmitNode(node); - state.stackIndex--; - } - } - function maybeEmitExpression(next, parent2, side) { - var parenthesizerRule = side === "left" ? parenthesizer.getParenthesizeLeftSideOfBinaryForOperator(parent2.operatorToken.kind) : parenthesizer.getParenthesizeRightSideOfBinaryForOperator(parent2.operatorToken.kind); - var pipelinePhase = getPipelinePhase(0 /* Notification */, 1 /* Expression */, next); - if (pipelinePhase === pipelineEmitWithSubstitution) { - Debug.assertIsDefined(lastSubstitution); - next = parenthesizerRule(cast(lastSubstitution, isExpression)); - pipelinePhase = getNextPipelinePhase(1 /* Substitution */, 1 /* Expression */, next); - lastSubstitution = void 0; - } - if (pipelinePhase === pipelineEmitWithComments || pipelinePhase === pipelineEmitWithSourceMaps || pipelinePhase === pipelineEmitWithHint) { - if (isBinaryExpression(next)) { - return next; - } - } - currentParenthesizerRule = parenthesizerRule; - pipelinePhase(1 /* Expression */, next); - } - } - function emitConditionalExpression(node) { - var linesBeforeQuestion = getLinesBetweenNodes(node, node.condition, node.questionToken); - var linesAfterQuestion = getLinesBetweenNodes(node, node.questionToken, node.whenTrue); - var linesBeforeColon = getLinesBetweenNodes(node, node.whenTrue, node.colonToken); - var linesAfterColon = getLinesBetweenNodes(node, node.colonToken, node.whenFalse); - emitExpression(node.condition, parenthesizer.parenthesizeConditionOfConditionalExpression); - writeLinesAndIndent(linesBeforeQuestion, - /*writeSpaceIfNotIndenting*/ - true); - emit(node.questionToken); - writeLinesAndIndent(linesAfterQuestion, - /*writeSpaceIfNotIndenting*/ - true); - emitExpression(node.whenTrue, parenthesizer.parenthesizeBranchOfConditionalExpression); - decreaseIndentIf(linesBeforeQuestion, linesAfterQuestion); - writeLinesAndIndent(linesBeforeColon, - /*writeSpaceIfNotIndenting*/ - true); - emit(node.colonToken); - writeLinesAndIndent(linesAfterColon, - /*writeSpaceIfNotIndenting*/ - true); - emitExpression(node.whenFalse, parenthesizer.parenthesizeBranchOfConditionalExpression); - decreaseIndentIf(linesBeforeColon, linesAfterColon); - } - function emitTemplateExpression(node) { - emit(node.head); - emitList(node, node.templateSpans, 262144 /* TemplateExpressionSpans */); - } - function emitYieldExpression(node) { - emitTokenWithComment(127 /* YieldKeyword */, node.pos, writeKeyword, node); - emit(node.asteriskToken); - emitExpressionWithLeadingSpace(node.expression && parenthesizeExpressionForNoAsi(node.expression), parenthesizeExpressionForNoAsiAndDisallowedComma); - } - function emitSpreadElement(node) { - emitTokenWithComment(26 /* DotDotDotToken */, node.pos, writePunctuation, node); - emitExpression(node.expression, parenthesizer.parenthesizeExpressionForDisallowedComma); - } - function emitClassExpression(node) { - generateNameIfNeeded(node.name); - emitClassDeclarationOrExpression(node); - } - function emitExpressionWithTypeArguments(node) { - emitExpression(node.expression, parenthesizer.parenthesizeLeftSideOfAccess); - emitTypeArguments(node, node.typeArguments); - } - function emitAsExpression(node) { - emitExpression(node.expression, - /*parenthesizerRule*/ - void 0); - if (node.type) { - writeSpace(); - writeKeyword("as"); - writeSpace(); - emit(node.type); - } - } - function emitNonNullExpression(node) { - emitExpression(node.expression, parenthesizer.parenthesizeLeftSideOfAccess); - writeOperator("!"); - } - function emitSatisfiesExpression(node) { - emitExpression(node.expression, - /*parenthesizerRule*/ - void 0); - if (node.type) { - writeSpace(); - writeKeyword("satisfies"); - writeSpace(); - emit(node.type); - } - } - function emitMetaProperty(node) { - writeToken(node.keywordToken, node.pos, writePunctuation); - writePunctuation("."); - emit(node.name); - } - function emitTemplateSpan(node) { - emitExpression(node.expression); - emit(node.literal); - } - function emitBlock(node) { - emitBlockStatements(node, - /*forceSingleLine*/ - !node.multiLine && isEmptyBlock(node)); - } - function emitBlockStatements(node, forceSingleLine) { - emitTokenWithComment(19 /* OpenBraceToken */, node.pos, writePunctuation, - /*contextNode*/ - node); - var format = forceSingleLine || getEmitFlags(node) & 1 /* SingleLine */ ? 768 /* SingleLineBlockStatements */ : 129 /* MultiLineBlockStatements */; - emitList(node, node.statements, format); - emitTokenWithComment(20 /* CloseBraceToken */, node.statements.end, writePunctuation, - /*contextNode*/ - node, - /*indentLeading*/ - !!(format & 1 /* MultiLine */)); - } - function emitVariableStatement(node) { - emitDecoratorsAndModifiers(node, node.modifiers, - /*allowDecorators*/ - false); - emit(node.declarationList); - writeTrailingSemicolon(); - } - function emitEmptyStatement(isEmbeddedStatement) { - if (isEmbeddedStatement) { - writePunctuation(";"); - } - else { - writeTrailingSemicolon(); - } - } - function emitExpressionStatement(node) { - emitExpression(node.expression, parenthesizer.parenthesizeExpressionOfExpressionStatement); - if (!currentSourceFile || !isJsonSourceFile(currentSourceFile) || nodeIsSynthesized(node.expression)) { - writeTrailingSemicolon(); - } - } - function emitIfStatement(node) { - var openParenPos = emitTokenWithComment(101 /* IfKeyword */, node.pos, writeKeyword, node); - writeSpace(); - emitTokenWithComment(21 /* OpenParenToken */, openParenPos, writePunctuation, node); - emitExpression(node.expression); - emitTokenWithComment(22 /* CloseParenToken */, node.expression.end, writePunctuation, node); - emitEmbeddedStatement(node, node.thenStatement); - if (node.elseStatement) { - writeLineOrSpace(node, node.thenStatement, node.elseStatement); - emitTokenWithComment(93 /* ElseKeyword */, node.thenStatement.end, writeKeyword, node); - if (node.elseStatement.kind === 245 /* IfStatement */) { - writeSpace(); - emit(node.elseStatement); - } - else { - emitEmbeddedStatement(node, node.elseStatement); - } - } - } - function emitWhileClause(node, startPos) { - var openParenPos = emitTokenWithComment(117 /* WhileKeyword */, startPos, writeKeyword, node); - writeSpace(); - emitTokenWithComment(21 /* OpenParenToken */, openParenPos, writePunctuation, node); - emitExpression(node.expression); - emitTokenWithComment(22 /* CloseParenToken */, node.expression.end, writePunctuation, node); - } - function emitDoStatement(node) { - emitTokenWithComment(92 /* DoKeyword */, node.pos, writeKeyword, node); - emitEmbeddedStatement(node, node.statement); - if (isBlock(node.statement) && !preserveSourceNewlines) { - writeSpace(); - } - else { - writeLineOrSpace(node, node.statement, node.expression); - } - emitWhileClause(node, node.statement.end); - writeTrailingSemicolon(); - } - function emitWhileStatement(node) { - emitWhileClause(node, node.pos); - emitEmbeddedStatement(node, node.statement); - } - function emitForStatement(node) { - var openParenPos = emitTokenWithComment(99 /* ForKeyword */, node.pos, writeKeyword, node); - writeSpace(); - var pos = emitTokenWithComment(21 /* OpenParenToken */, openParenPos, writePunctuation, - /*contextNode*/ - node); - emitForBinding(node.initializer); - pos = emitTokenWithComment(27 /* SemicolonToken */, node.initializer ? node.initializer.end : pos, writePunctuation, node); - emitExpressionWithLeadingSpace(node.condition); - pos = emitTokenWithComment(27 /* SemicolonToken */, node.condition ? node.condition.end : pos, writePunctuation, node); - emitExpressionWithLeadingSpace(node.incrementor); - emitTokenWithComment(22 /* CloseParenToken */, node.incrementor ? node.incrementor.end : pos, writePunctuation, node); - emitEmbeddedStatement(node, node.statement); - } - function emitForInStatement(node) { - var openParenPos = emitTokenWithComment(99 /* ForKeyword */, node.pos, writeKeyword, node); - writeSpace(); - emitTokenWithComment(21 /* OpenParenToken */, openParenPos, writePunctuation, node); - emitForBinding(node.initializer); - writeSpace(); - emitTokenWithComment(103 /* InKeyword */, node.initializer.end, writeKeyword, node); - writeSpace(); - emitExpression(node.expression); - emitTokenWithComment(22 /* CloseParenToken */, node.expression.end, writePunctuation, node); - emitEmbeddedStatement(node, node.statement); - } - function emitForOfStatement(node) { - var openParenPos = emitTokenWithComment(99 /* ForKeyword */, node.pos, writeKeyword, node); - writeSpace(); - emitWithTrailingSpace(node.awaitModifier); - emitTokenWithComment(21 /* OpenParenToken */, openParenPos, writePunctuation, node); - emitForBinding(node.initializer); - writeSpace(); - emitTokenWithComment(165 /* OfKeyword */, node.initializer.end, writeKeyword, node); - writeSpace(); - emitExpression(node.expression); - emitTokenWithComment(22 /* CloseParenToken */, node.expression.end, writePunctuation, node); - emitEmbeddedStatement(node, node.statement); - } - function emitForBinding(node) { - if (node !== void 0) { - if (node.kind === 261 /* VariableDeclarationList */) { - emit(node); - } - else { - emitExpression(node); - } - } - } - function emitContinueStatement(node) { - emitTokenWithComment(88 /* ContinueKeyword */, node.pos, writeKeyword, node); - emitWithLeadingSpace(node.label); - writeTrailingSemicolon(); - } - function emitBreakStatement(node) { - emitTokenWithComment(83 /* BreakKeyword */, node.pos, writeKeyword, node); - emitWithLeadingSpace(node.label); - writeTrailingSemicolon(); - } - function emitTokenWithComment(token, pos, writer2, contextNode, indentLeading) { - var node = getParseTreeNode(contextNode); - var isSimilarNode = node && node.kind === contextNode.kind; - var startPos = pos; - if (isSimilarNode && currentSourceFile) { - pos = skipTrivia(currentSourceFile.text, pos); - } - if (isSimilarNode && contextNode.pos !== startPos) { - var needsIndent = indentLeading && currentSourceFile && !positionsAreOnSameLine(startPos, pos, currentSourceFile); - if (needsIndent) { - increaseIndent(); - } - emitLeadingCommentsOfPosition(startPos); - if (needsIndent) { - decreaseIndent(); - } - } - pos = writeTokenText(token, writer2, pos); - if (isSimilarNode && contextNode.end !== pos) { - var isJsxExprContext = contextNode.kind === 294 /* JsxExpression */; - emitTrailingCommentsOfPosition(pos, - /*prefixSpace*/ - !isJsxExprContext, - /*forceNoNewline*/ - isJsxExprContext); - } - return pos; - } - function commentWillEmitNewLine(node) { - return node.kind === 2 /* SingleLineCommentTrivia */ || !!node.hasTrailingNewLine; - } - function willEmitLeadingNewLine(node) { - if (!currentSourceFile) - return false; - if (some(getLeadingCommentRanges(currentSourceFile.text, node.pos), commentWillEmitNewLine)) - return true; - if (some(getSyntheticLeadingComments(node), commentWillEmitNewLine)) - return true; - if (isPartiallyEmittedExpression(node)) { - if (node.pos !== node.expression.pos) { - if (some(getTrailingCommentRanges(currentSourceFile.text, node.expression.pos), commentWillEmitNewLine)) - return true; - } - return willEmitLeadingNewLine(node.expression); - } - return false; - } - function parenthesizeExpressionForNoAsi(node) { - if (!commentsDisabled && isPartiallyEmittedExpression(node) && willEmitLeadingNewLine(node)) { - var parseNode = getParseTreeNode(node); - if (parseNode && isParenthesizedExpression(parseNode)) { - var parens = factory.createParenthesizedExpression(node.expression); - setOriginalNode(parens, node); - setTextRange(parens, parseNode); - return parens; - } - return factory.createParenthesizedExpression(node); - } - return node; - } - function parenthesizeExpressionForNoAsiAndDisallowedComma(node) { - return parenthesizeExpressionForNoAsi(parenthesizer.parenthesizeExpressionForDisallowedComma(node)); - } - function emitReturnStatement(node) { - emitTokenWithComment(107 /* ReturnKeyword */, node.pos, writeKeyword, - /*contextNode*/ - node); - emitExpressionWithLeadingSpace(node.expression && parenthesizeExpressionForNoAsi(node.expression), parenthesizeExpressionForNoAsi); - writeTrailingSemicolon(); - } - function emitWithStatement(node) { - var openParenPos = emitTokenWithComment(118 /* WithKeyword */, node.pos, writeKeyword, node); - writeSpace(); - emitTokenWithComment(21 /* OpenParenToken */, openParenPos, writePunctuation, node); - emitExpression(node.expression); - emitTokenWithComment(22 /* CloseParenToken */, node.expression.end, writePunctuation, node); - emitEmbeddedStatement(node, node.statement); - } - function emitSwitchStatement(node) { - var openParenPos = emitTokenWithComment(109 /* SwitchKeyword */, node.pos, writeKeyword, node); - writeSpace(); - emitTokenWithComment(21 /* OpenParenToken */, openParenPos, writePunctuation, node); - emitExpression(node.expression); - emitTokenWithComment(22 /* CloseParenToken */, node.expression.end, writePunctuation, node); - writeSpace(); - emit(node.caseBlock); - } - function emitLabeledStatement(node) { - emit(node.label); - emitTokenWithComment(59 /* ColonToken */, node.label.end, writePunctuation, node); - writeSpace(); - emit(node.statement); - } - function emitThrowStatement(node) { - emitTokenWithComment(111 /* ThrowKeyword */, node.pos, writeKeyword, node); - emitExpressionWithLeadingSpace(parenthesizeExpressionForNoAsi(node.expression), parenthesizeExpressionForNoAsi); - writeTrailingSemicolon(); - } - function emitTryStatement(node) { - emitTokenWithComment(113 /* TryKeyword */, node.pos, writeKeyword, node); - writeSpace(); - emit(node.tryBlock); - if (node.catchClause) { - writeLineOrSpace(node, node.tryBlock, node.catchClause); - emit(node.catchClause); - } - if (node.finallyBlock) { - writeLineOrSpace(node, node.catchClause || node.tryBlock, node.finallyBlock); - emitTokenWithComment(98 /* FinallyKeyword */, (node.catchClause || node.tryBlock).end, writeKeyword, node); - writeSpace(); - emit(node.finallyBlock); - } - } - function emitDebuggerStatement(node) { - writeToken(89 /* DebuggerKeyword */, node.pos, writeKeyword); - writeTrailingSemicolon(); - } - function emitVariableDeclaration(node) { - var _t, _u; - var _a, _b, _c; - emit(node.name); - emit(node.exclamationToken); - emitTypeAnnotation(node.type); - emitInitializer(node.initializer, (_u = (_t = ((_a = node.type) == null ? void 0 : _a.end)) !== null && _t !== void 0 ? _t : ((_c = (_b = node.name.emitNode) == null ? void 0 : _b.typeNode) == null ? void 0 : _c.end)) !== null && _u !== void 0 ? _u : node.name.end, node, parenthesizer.parenthesizeExpressionForDisallowedComma); - } - function emitVariableDeclarationList(node) { - if (isVarAwaitUsing(node)) { - writeKeyword("await"); - writeSpace(); - writeKeyword("using"); - } - else { - var head = isLet(node) ? "let" : isVarConst(node) ? "const" : isVarUsing(node) ? "using" : "var"; - writeKeyword(head); - } - writeSpace(); - emitList(node, node.declarations, 528 /* VariableDeclarationList */); - } - function emitFunctionDeclaration(node) { - emitFunctionDeclarationOrExpression(node); - } - function emitFunctionDeclarationOrExpression(node) { - emitDecoratorsAndModifiers(node, node.modifiers, - /*allowDecorators*/ - false); - writeKeyword("function"); - emit(node.asteriskToken); - writeSpace(); - emitIdentifierName(node.name); - emitSignatureAndBody(node, emitSignatureHead); - } - function emitSignatureAndBody(node, emitSignatureHead2) { - var body = node.body; - if (body) { - if (isBlock(body)) { - var indentedFlag = getEmitFlags(node) & 131072 /* Indented */; - if (indentedFlag) { - increaseIndent(); - } - pushNameGenerationScope(node); - forEach(node.parameters, generateNames); - generateNames(node.body); - emitSignatureHead2(node); - emitBlockFunctionBody(body); - popNameGenerationScope(node); - if (indentedFlag) { - decreaseIndent(); - } - } - else { - emitSignatureHead2(node); - writeSpace(); - emitExpression(body, parenthesizer.parenthesizeConciseBodyOfArrowFunction); - } - } - else { - emitSignatureHead2(node); - writeTrailingSemicolon(); - } - } - function emitSignatureHead(node) { - emitTypeParameters(node, node.typeParameters); - emitParameters(node, node.parameters); - emitTypeAnnotation(node.type); - } - function shouldEmitBlockFunctionBodyOnSingleLine(body) { - var e_569, _t; - if (getEmitFlags(body) & 1 /* SingleLine */) { - return true; - } - if (body.multiLine) { - return false; - } - if (!nodeIsSynthesized(body) && currentSourceFile && !rangeIsOnSingleLine(body, currentSourceFile)) { - return false; - } - if (getLeadingLineTerminatorCount(body, firstOrUndefined(body.statements), 2 /* PreserveLines */) || getClosingLineTerminatorCount(body, lastOrUndefined(body.statements), 2 /* PreserveLines */, body.statements)) { - return false; - } - var previousStatement; - try { - for (var _u = __values(body.statements), _v = _u.next(); !_v.done; _v = _u.next()) { - var statement = _v.value; - if (getSeparatingLineTerminatorCount(previousStatement, statement, 2 /* PreserveLines */) > 0) { - return false; - } - previousStatement = statement; - } - } - catch (e_569_1) { e_569 = { error: e_569_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_569) throw e_569.error; } - } - return true; - } - function emitBlockFunctionBody(body) { - onBeforeEmitNode == null ? void 0 : onBeforeEmitNode(body); - writeSpace(); - writePunctuation("{"); - increaseIndent(); - var emitBlockFunctionBody2 = shouldEmitBlockFunctionBodyOnSingleLine(body) ? emitBlockFunctionBodyOnSingleLine : emitBlockFunctionBodyWorker; - emitBodyWithDetachedComments(body, body.statements, emitBlockFunctionBody2); - decreaseIndent(); - writeToken(20 /* CloseBraceToken */, body.statements.end, writePunctuation, body); - onAfterEmitNode == null ? void 0 : onAfterEmitNode(body); - } - function emitBlockFunctionBodyOnSingleLine(body) { - emitBlockFunctionBodyWorker(body, - /*emitBlockFunctionBodyOnSingleLine*/ - true); - } - function emitBlockFunctionBodyWorker(body, emitBlockFunctionBodyOnSingleLine2) { - var statementOffset = emitPrologueDirectives(body.statements); - var pos = writer.getTextPos(); - emitHelpers(body); - if (statementOffset === 0 && pos === writer.getTextPos() && emitBlockFunctionBodyOnSingleLine2) { - decreaseIndent(); - emitList(body, body.statements, 768 /* SingleLineFunctionBodyStatements */); - increaseIndent(); - } - else { - emitList(body, body.statements, 1 /* MultiLineFunctionBodyStatements */, - /*parenthesizerRule*/ - void 0, statementOffset); - } - } - function emitClassDeclaration(node) { - emitClassDeclarationOrExpression(node); - } - function emitClassDeclarationOrExpression(node) { - pushPrivateNameGenerationScope(0 /* Auto */, - /*newReservedMemberNames*/ - void 0); - forEach(node.members, generateMemberNames); - emitDecoratorsAndModifiers(node, node.modifiers, - /*allowDecorators*/ - true); - emitTokenWithComment(86 /* ClassKeyword */, moveRangePastModifiers(node).pos, writeKeyword, node); - if (node.name) { - writeSpace(); - emitIdentifierName(node.name); - } - var indentedFlag = getEmitFlags(node) & 131072 /* Indented */; - if (indentedFlag) { - increaseIndent(); - } - emitTypeParameters(node, node.typeParameters); - emitList(node, node.heritageClauses, 0 /* ClassHeritageClauses */); - writeSpace(); - writePunctuation("{"); - emitList(node, node.members, 129 /* ClassMembers */); - writePunctuation("}"); - if (indentedFlag) { - decreaseIndent(); - } - popPrivateNameGenerationScope(); - } - function emitInterfaceDeclaration(node) { - pushPrivateNameGenerationScope(0 /* Auto */, - /*newReservedMemberNames*/ - void 0); - emitDecoratorsAndModifiers(node, node.modifiers, - /*allowDecorators*/ - false); - writeKeyword("interface"); - writeSpace(); - emit(node.name); - emitTypeParameters(node, node.typeParameters); - emitList(node, node.heritageClauses, 512 /* HeritageClauses */); - writeSpace(); - writePunctuation("{"); - emitList(node, node.members, 129 /* InterfaceMembers */); - writePunctuation("}"); - popPrivateNameGenerationScope(); - } - function emitTypeAliasDeclaration(node) { - emitDecoratorsAndModifiers(node, node.modifiers, - /*allowDecorators*/ - false); - writeKeyword("type"); - writeSpace(); - emit(node.name); - emitTypeParameters(node, node.typeParameters); - writeSpace(); - writePunctuation("="); - writeSpace(); - emit(node.type); - writeTrailingSemicolon(); - } - function emitEnumDeclaration(node) { - emitDecoratorsAndModifiers(node, node.modifiers, - /*allowDecorators*/ - false); - writeKeyword("enum"); - writeSpace(); - emit(node.name); - writeSpace(); - writePunctuation("{"); - emitList(node, node.members, 145 /* EnumMembers */); - writePunctuation("}"); - } - function emitModuleDeclaration(node) { - emitDecoratorsAndModifiers(node, node.modifiers, - /*allowDecorators*/ - false); - if (~node.flags & 2048 /* GlobalAugmentation */) { - writeKeyword(node.flags & 32 /* Namespace */ ? "namespace" : "module"); - writeSpace(); - } - emit(node.name); - var body = node.body; - if (!body) - return writeTrailingSemicolon(); - while (body && isModuleDeclaration(body)) { - writePunctuation("."); - emit(body.name); - body = body.body; - } - writeSpace(); - emit(body); - } - function emitModuleBlock(node) { - pushNameGenerationScope(node); - forEach(node.statements, generateNames); - emitBlockStatements(node, - /*forceSingleLine*/ - isEmptyBlock(node)); - popNameGenerationScope(node); - } - function emitCaseBlock(node) { - emitTokenWithComment(19 /* OpenBraceToken */, node.pos, writePunctuation, node); - emitList(node, node.clauses, 129 /* CaseBlockClauses */); - emitTokenWithComment(20 /* CloseBraceToken */, node.clauses.end, writePunctuation, node, - /*indentLeading*/ - true); - } - function emitImportEqualsDeclaration(node) { - emitDecoratorsAndModifiers(node, node.modifiers, - /*allowDecorators*/ - false); - emitTokenWithComment(102 /* ImportKeyword */, node.modifiers ? node.modifiers.end : node.pos, writeKeyword, node); - writeSpace(); - if (node.isTypeOnly) { - emitTokenWithComment(156 /* TypeKeyword */, node.pos, writeKeyword, node); - writeSpace(); - } - emit(node.name); - writeSpace(); - emitTokenWithComment(64 /* EqualsToken */, node.name.end, writePunctuation, node); - writeSpace(); - emitModuleReference(node.moduleReference); - writeTrailingSemicolon(); - } - function emitModuleReference(node) { - if (node.kind === 80 /* Identifier */) { - emitExpression(node); - } - else { - emit(node); - } - } - function emitImportDeclaration(node) { - emitDecoratorsAndModifiers(node, node.modifiers, - /*allowDecorators*/ - false); - emitTokenWithComment(102 /* ImportKeyword */, node.modifiers ? node.modifiers.end : node.pos, writeKeyword, node); - writeSpace(); - if (node.importClause) { - emit(node.importClause); - writeSpace(); - emitTokenWithComment(161 /* FromKeyword */, node.importClause.end, writeKeyword, node); - writeSpace(); - } - emitExpression(node.moduleSpecifier); - if (node.assertClause) { - emitWithLeadingSpace(node.assertClause); - } - writeTrailingSemicolon(); - } - function emitImportClause(node) { - if (node.isTypeOnly) { - emitTokenWithComment(156 /* TypeKeyword */, node.pos, writeKeyword, node); - writeSpace(); - } - emit(node.name); - if (node.name && node.namedBindings) { - emitTokenWithComment(28 /* CommaToken */, node.name.end, writePunctuation, node); - writeSpace(); - } - emit(node.namedBindings); - } - function emitNamespaceImport(node) { - var asPos = emitTokenWithComment(42 /* AsteriskToken */, node.pos, writePunctuation, node); - writeSpace(); - emitTokenWithComment(130 /* AsKeyword */, asPos, writeKeyword, node); - writeSpace(); - emit(node.name); - } - function emitNamedImports(node) { - emitNamedImportsOrExports(node); - } - function emitImportSpecifier(node) { - emitImportOrExportSpecifier(node); - } - function emitExportAssignment(node) { - var nextPos = emitTokenWithComment(95 /* ExportKeyword */, node.pos, writeKeyword, node); - writeSpace(); - if (node.isExportEquals) { - emitTokenWithComment(64 /* EqualsToken */, nextPos, writeOperator, node); - } - else { - emitTokenWithComment(90 /* DefaultKeyword */, nextPos, writeKeyword, node); - } - writeSpace(); - emitExpression(node.expression, node.isExportEquals ? parenthesizer.getParenthesizeRightSideOfBinaryForOperator(64 /* EqualsToken */) : parenthesizer.parenthesizeExpressionOfExportDefault); - writeTrailingSemicolon(); - } - function emitExportDeclaration(node) { - emitDecoratorsAndModifiers(node, node.modifiers, - /*allowDecorators*/ - false); - var nextPos = emitTokenWithComment(95 /* ExportKeyword */, node.pos, writeKeyword, node); - writeSpace(); - if (node.isTypeOnly) { - nextPos = emitTokenWithComment(156 /* TypeKeyword */, nextPos, writeKeyword, node); - writeSpace(); - } - if (node.exportClause) { - emit(node.exportClause); - } - else { - nextPos = emitTokenWithComment(42 /* AsteriskToken */, nextPos, writePunctuation, node); - } - if (node.moduleSpecifier) { - writeSpace(); - var fromPos = node.exportClause ? node.exportClause.end : nextPos; - emitTokenWithComment(161 /* FromKeyword */, fromPos, writeKeyword, node); - writeSpace(); - emitExpression(node.moduleSpecifier); - } - if (node.assertClause) { - emitWithLeadingSpace(node.assertClause); - } - writeTrailingSemicolon(); - } - function emitAssertClause(node) { - emitTokenWithComment(132 /* AssertKeyword */, node.pos, writeKeyword, node); - writeSpace(); - var elements = node.elements; - emitList(node, elements, 526226 /* ImportClauseEntries */); - } - function emitAssertEntry(node) { - emit(node.name); - writePunctuation(":"); - writeSpace(); - var value = node.value; - if ((getEmitFlags(value) & 1024 /* NoLeadingComments */) === 0) { - var commentRange = getCommentRange(value); - emitTrailingCommentsOfPosition(commentRange.pos); - } - emit(value); - } - function emitNamespaceExportDeclaration(node) { - var nextPos = emitTokenWithComment(95 /* ExportKeyword */, node.pos, writeKeyword, node); - writeSpace(); - nextPos = emitTokenWithComment(130 /* AsKeyword */, nextPos, writeKeyword, node); - writeSpace(); - nextPos = emitTokenWithComment(145 /* NamespaceKeyword */, nextPos, writeKeyword, node); - writeSpace(); - emit(node.name); - writeTrailingSemicolon(); - } - function emitNamespaceExport(node) { - var asPos = emitTokenWithComment(42 /* AsteriskToken */, node.pos, writePunctuation, node); - writeSpace(); - emitTokenWithComment(130 /* AsKeyword */, asPos, writeKeyword, node); - writeSpace(); - emit(node.name); - } - function emitNamedExports(node) { - emitNamedImportsOrExports(node); - } - function emitExportSpecifier(node) { - emitImportOrExportSpecifier(node); - } - function emitNamedImportsOrExports(node) { - writePunctuation("{"); - emitList(node, node.elements, 525136 /* NamedImportsOrExportsElements */); - writePunctuation("}"); - } - function emitImportOrExportSpecifier(node) { - if (node.isTypeOnly) { - writeKeyword("type"); - writeSpace(); - } - if (node.propertyName) { - emit(node.propertyName); - writeSpace(); - emitTokenWithComment(130 /* AsKeyword */, node.propertyName.end, writeKeyword, node); - writeSpace(); - } - emit(node.name); - } - function emitExternalModuleReference(node) { - writeKeyword("require"); - writePunctuation("("); - emitExpression(node.expression); - writePunctuation(")"); - } - function emitJsxElement(node) { - emit(node.openingElement); - emitList(node, node.children, 262144 /* JsxElementOrFragmentChildren */); - emit(node.closingElement); - } - function emitJsxSelfClosingElement(node) { - writePunctuation("<"); - emitJsxTagName(node.tagName); - emitTypeArguments(node, node.typeArguments); - writeSpace(); - emit(node.attributes); - writePunctuation("/>"); - } - function emitJsxFragment(node) { - emit(node.openingFragment); - emitList(node, node.children, 262144 /* JsxElementOrFragmentChildren */); - emit(node.closingFragment); - } - function emitJsxOpeningElementOrFragment(node) { - writePunctuation("<"); - if (isJsxOpeningElement(node)) { - var indented = writeLineSeparatorsAndIndentBefore(node.tagName, node); - emitJsxTagName(node.tagName); - emitTypeArguments(node, node.typeArguments); - if (node.attributes.properties && node.attributes.properties.length > 0) { - writeSpace(); - } - emit(node.attributes); - writeLineSeparatorsAfter(node.attributes, node); - decreaseIndentIf(indented); - } - writePunctuation(">"); - } - function emitJsxText(node) { - writer.writeLiteral(node.text); - } - function emitJsxClosingElementOrFragment(node) { - writePunctuation(""); - } - function emitJsxAttributes(node) { - emitList(node, node.properties, 262656 /* JsxElementAttributes */); - } - function emitJsxAttribute(node) { - emit(node.name); - emitNodeWithPrefix("=", writePunctuation, node.initializer, emitJsxAttributeValue); - } - function emitJsxSpreadAttribute(node) { - writePunctuation("{..."); - emitExpression(node.expression); - writePunctuation("}"); - } - function hasTrailingCommentsAtPosition(pos) { - var result = false; - forEachTrailingCommentRange((currentSourceFile == null ? void 0 : currentSourceFile.text) || "", pos + 1, function () { return result = true; }); - return result; - } - function hasLeadingCommentsAtPosition(pos) { - var result = false; - forEachLeadingCommentRange((currentSourceFile == null ? void 0 : currentSourceFile.text) || "", pos + 1, function () { return result = true; }); - return result; - } - function hasCommentsAtPosition(pos) { - return hasTrailingCommentsAtPosition(pos) || hasLeadingCommentsAtPosition(pos); - } - function emitJsxExpression(node) { - var _a; - if (node.expression || !commentsDisabled && !nodeIsSynthesized(node) && hasCommentsAtPosition(node.pos)) { - var isMultiline = currentSourceFile && !nodeIsSynthesized(node) && getLineAndCharacterOfPosition(currentSourceFile, node.pos).line !== getLineAndCharacterOfPosition(currentSourceFile, node.end).line; - if (isMultiline) { - writer.increaseIndent(); - } - var end = emitTokenWithComment(19 /* OpenBraceToken */, node.pos, writePunctuation, node); - emit(node.dotDotDotToken); - emitExpression(node.expression); - emitTokenWithComment(20 /* CloseBraceToken */, ((_a = node.expression) == null ? void 0 : _a.end) || end, writePunctuation, node); - if (isMultiline) { - writer.decreaseIndent(); - } - } - } - function emitJsxNamespacedName(node) { - emitIdentifierName(node.namespace); - writePunctuation(":"); - emitIdentifierName(node.name); - } - function emitJsxTagName(node) { - if (node.kind === 80 /* Identifier */) { - emitExpression(node); - } - else { - emit(node); - } - } - function emitCaseClause(node) { - emitTokenWithComment(84 /* CaseKeyword */, node.pos, writeKeyword, node); - writeSpace(); - emitExpression(node.expression, parenthesizer.parenthesizeExpressionForDisallowedComma); - emitCaseOrDefaultClauseRest(node, node.statements, node.expression.end); - } - function emitDefaultClause(node) { - var pos = emitTokenWithComment(90 /* DefaultKeyword */, node.pos, writeKeyword, node); - emitCaseOrDefaultClauseRest(node, node.statements, pos); - } - function emitCaseOrDefaultClauseRest(parentNode, statements, colonPos) { - var emitAsSingleStatement = statements.length === 1 && // treat synthesized nodes as located on the same line for emit purposes - (!currentSourceFile || nodeIsSynthesized(parentNode) || nodeIsSynthesized(statements[0]) || rangeStartPositionsAreOnSameLine(parentNode, statements[0], currentSourceFile)); - var format = 163969 /* CaseOrDefaultClauseStatements */; - if (emitAsSingleStatement) { - writeToken(59 /* ColonToken */, colonPos, writePunctuation, parentNode); - writeSpace(); - format &= ~(1 /* MultiLine */ | 128 /* Indented */); - } - else { - emitTokenWithComment(59 /* ColonToken */, colonPos, writePunctuation, parentNode); - } - emitList(parentNode, statements, format); - } - function emitHeritageClause(node) { - writeSpace(); - writeTokenText(node.token, writeKeyword); - writeSpace(); - emitList(node, node.types, 528 /* HeritageClauseTypes */); - } - function emitCatchClause(node) { - var openParenPos = emitTokenWithComment(85 /* CatchKeyword */, node.pos, writeKeyword, node); - writeSpace(); - if (node.variableDeclaration) { - emitTokenWithComment(21 /* OpenParenToken */, openParenPos, writePunctuation, node); - emit(node.variableDeclaration); - emitTokenWithComment(22 /* CloseParenToken */, node.variableDeclaration.end, writePunctuation, node); - writeSpace(); - } - emit(node.block); - } - function emitPropertyAssignment(node) { - emit(node.name); - writePunctuation(":"); - writeSpace(); - var initializer = node.initializer; - if ((getEmitFlags(initializer) & 1024 /* NoLeadingComments */) === 0) { - var commentRange = getCommentRange(initializer); - emitTrailingCommentsOfPosition(commentRange.pos); - } - emitExpression(initializer, parenthesizer.parenthesizeExpressionForDisallowedComma); - } - function emitShorthandPropertyAssignment(node) { - emit(node.name); - if (node.objectAssignmentInitializer) { - writeSpace(); - writePunctuation("="); - writeSpace(); - emitExpression(node.objectAssignmentInitializer, parenthesizer.parenthesizeExpressionForDisallowedComma); - } - } - function emitSpreadAssignment(node) { - if (node.expression) { - emitTokenWithComment(26 /* DotDotDotToken */, node.pos, writePunctuation, node); - emitExpression(node.expression, parenthesizer.parenthesizeExpressionForDisallowedComma); - } - } - function emitEnumMember(node) { - emit(node.name); - emitInitializer(node.initializer, node.name.end, node, parenthesizer.parenthesizeExpressionForDisallowedComma); - } - function emitJSDoc(node) { - var e_570, _t; - write("/**"); - if (node.comment) { - var text = getTextOfJSDocComment(node.comment); - if (text) { - var lines = text.split(/\r\n?|\n/g); - try { - for (var lines_2 = __values(lines), lines_2_1 = lines_2.next(); !lines_2_1.done; lines_2_1 = lines_2.next()) { - var line = lines_2_1.value; - writeLine(); - writeSpace(); - writePunctuation("*"); - writeSpace(); - write(line); - } - } - catch (e_570_1) { e_570 = { error: e_570_1 }; } - finally { - try { - if (lines_2_1 && !lines_2_1.done && (_t = lines_2.return)) _t.call(lines_2); - } - finally { if (e_570) throw e_570.error; } - } - } - } - if (node.tags) { - if (node.tags.length === 1 && node.tags[0].kind === 351 /* JSDocTypeTag */ && !node.comment) { - writeSpace(); - emit(node.tags[0]); - } - else { - emitList(node, node.tags, 33 /* JSDocComment */); - } - } - writeSpace(); - write("*/"); - } - function emitJSDocSimpleTypedTag(tag) { - emitJSDocTagName(tag.tagName); - emitJSDocTypeExpression(tag.typeExpression); - emitJSDocComment(tag.comment); - } - function emitJSDocSeeTag(tag) { - emitJSDocTagName(tag.tagName); - emit(tag.name); - emitJSDocComment(tag.comment); - } - function emitJSDocNameReference(node) { - writeSpace(); - writePunctuation("{"); - emit(node.name); - writePunctuation("}"); - } - function emitJSDocHeritageTag(tag) { - emitJSDocTagName(tag.tagName); - writeSpace(); - writePunctuation("{"); - emit(tag.class); - writePunctuation("}"); - emitJSDocComment(tag.comment); - } - function emitJSDocTemplateTag(tag) { - emitJSDocTagName(tag.tagName); - emitJSDocTypeExpression(tag.constraint); - writeSpace(); - emitList(tag, tag.typeParameters, 528 /* CommaListElements */); - emitJSDocComment(tag.comment); - } - function emitJSDocTypedefTag(tag) { - emitJSDocTagName(tag.tagName); - if (tag.typeExpression) { - if (tag.typeExpression.kind === 316 /* JSDocTypeExpression */) { - emitJSDocTypeExpression(tag.typeExpression); - } - else { - writeSpace(); - writePunctuation("{"); - write("Object"); - if (tag.typeExpression.isArrayType) { - writePunctuation("["); - writePunctuation("]"); - } - writePunctuation("}"); - } - } - if (tag.fullName) { - writeSpace(); - emit(tag.fullName); - } - emitJSDocComment(tag.comment); - if (tag.typeExpression && tag.typeExpression.kind === 329 /* JSDocTypeLiteral */) { - emitJSDocTypeLiteral(tag.typeExpression); - } - } - function emitJSDocCallbackTag(tag) { - emitJSDocTagName(tag.tagName); - if (tag.name) { - writeSpace(); - emit(tag.name); - } - emitJSDocComment(tag.comment); - emitJSDocSignature(tag.typeExpression); - } - function emitJSDocOverloadTag(tag) { - emitJSDocComment(tag.comment); - emitJSDocSignature(tag.typeExpression); - } - function emitJSDocSimpleTag(tag) { - emitJSDocTagName(tag.tagName); - emitJSDocComment(tag.comment); - } - function emitJSDocTypeLiteral(lit) { - emitList(lit, factory.createNodeArray(lit.jsDocPropertyTags), 33 /* JSDocComment */); - } - function emitJSDocSignature(sig) { - if (sig.typeParameters) { - emitList(sig, factory.createNodeArray(sig.typeParameters), 33 /* JSDocComment */); - } - if (sig.parameters) { - emitList(sig, factory.createNodeArray(sig.parameters), 33 /* JSDocComment */); - } - if (sig.type) { - writeLine(); - writeSpace(); - writePunctuation("*"); - writeSpace(); - emit(sig.type); - } - } - function emitJSDocPropertyLikeTag(param) { - emitJSDocTagName(param.tagName); - emitJSDocTypeExpression(param.typeExpression); - writeSpace(); - if (param.isBracketed) { - writePunctuation("["); - } - emit(param.name); - if (param.isBracketed) { - writePunctuation("]"); - } - emitJSDocComment(param.comment); - } - function emitJSDocTagName(tagName) { - writePunctuation("@"); - emit(tagName); - } - function emitJSDocComment(comment) { - var text = getTextOfJSDocComment(comment); - if (text) { - writeSpace(); - write(text); - } - } - function emitJSDocTypeExpression(typeExpression) { - if (typeExpression) { - writeSpace(); - writePunctuation("{"); - emit(typeExpression.type); - writePunctuation("}"); - } - } - function emitSourceFile(node) { - writeLine(); - var statements = node.statements; - var shouldEmitDetachedComment = statements.length === 0 || !isPrologueDirective(statements[0]) || nodeIsSynthesized(statements[0]); - if (shouldEmitDetachedComment) { - emitBodyWithDetachedComments(node, statements, emitSourceFileWorker); - return; - } - emitSourceFileWorker(node); - } - function emitSyntheticTripleSlashReferencesIfNeeded(node) { - var e_571, _t, e_572, _u; - emitTripleSlashDirectives(!!node.hasNoDefaultLib, node.syntheticFileReferences || [], node.syntheticTypeReferences || [], node.syntheticLibReferences || []); - try { - for (var _v = __values(node.prepends), _w = _v.next(); !_w.done; _w = _v.next()) { - var prepend = _w.value; - if (isUnparsedSource(prepend) && prepend.syntheticReferences) { - try { - for (var _x = (e_572 = void 0, __values(prepend.syntheticReferences)), _y = _x.next(); !_y.done; _y = _x.next()) { - var ref = _y.value; - emit(ref); - writeLine(); - } - } - catch (e_572_1) { e_572 = { error: e_572_1 }; } - finally { - try { - if (_y && !_y.done && (_u = _x.return)) _u.call(_x); - } - finally { if (e_572) throw e_572.error; } - } - } - } - } - catch (e_571_1) { e_571 = { error: e_571_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_571) throw e_571.error; } - } - } - function emitTripleSlashDirectivesIfNeeded(node) { - if (node.isDeclarationFile) - emitTripleSlashDirectives(node.hasNoDefaultLib, node.referencedFiles, node.typeReferenceDirectives, node.libReferenceDirectives); - } - function emitTripleSlashDirectives(hasNoDefaultLib, files, types, libs2) { - var e_573, _t, e_574, _u, e_575, _v, e_576, _w; - if (hasNoDefaultLib) { - var pos = writer.getTextPos(); - writeComment("/// "); - if (bundleFileInfo) - bundleFileInfo.sections.push({ pos: pos, end: writer.getTextPos(), kind: "no-default-lib" /* NoDefaultLib */ }); - writeLine(); - } - if (currentSourceFile && currentSourceFile.moduleName) { - writeComment("/// ")); - writeLine(); - } - if (currentSourceFile && currentSourceFile.amdDependencies) { - try { - for (var _x = __values(currentSourceFile.amdDependencies), _y = _x.next(); !_y.done; _y = _x.next()) { - var dep = _y.value; - if (dep.name) { - writeComment("/// ")); - } - else { - writeComment("/// ")); - } - writeLine(); - } - } - catch (e_573_1) { e_573 = { error: e_573_1 }; } - finally { - try { - if (_y && !_y.done && (_t = _x.return)) _t.call(_x); - } - finally { if (e_573) throw e_573.error; } - } - } - try { - for (var files_2 = __values(files), files_2_1 = files_2.next(); !files_2_1.done; files_2_1 = files_2.next()) { - var directive = files_2_1.value; - var pos = writer.getTextPos(); - writeComment("/// ")); - if (bundleFileInfo) - bundleFileInfo.sections.push({ pos: pos, end: writer.getTextPos(), kind: "reference" /* Reference */, data: directive.fileName }); - writeLine(); - } - } - catch (e_574_1) { e_574 = { error: e_574_1 }; } - finally { - try { - if (files_2_1 && !files_2_1.done && (_u = files_2.return)) _u.call(files_2); - } - finally { if (e_574) throw e_574.error; } - } - try { - for (var types_22 = __values(types), types_22_1 = types_22.next(); !types_22_1.done; types_22_1 = types_22.next()) { - var directive = types_22_1.value; - var pos = writer.getTextPos(); - var resolutionMode = directive.resolutionMode && directive.resolutionMode !== (currentSourceFile == null ? void 0 : currentSourceFile.impliedNodeFormat) ? "resolution-mode=\"".concat(directive.resolutionMode === 99 /* ESNext */ ? "import" : "require", "\"") : ""; - writeComment("/// ")); - if (bundleFileInfo) - bundleFileInfo.sections.push({ pos: pos, end: writer.getTextPos(), kind: !directive.resolutionMode ? "type" /* Type */ : directive.resolutionMode === 99 /* ESNext */ ? "type-import" /* TypeResolutionModeImport */ : "type-require" /* TypeResolutionModeRequire */, data: directive.fileName }); - writeLine(); - } - } - catch (e_575_1) { e_575 = { error: e_575_1 }; } - finally { - try { - if (types_22_1 && !types_22_1.done && (_v = types_22.return)) _v.call(types_22); - } - finally { if (e_575) throw e_575.error; } - } - try { - for (var libs2_1 = __values(libs2), libs2_1_1 = libs2_1.next(); !libs2_1_1.done; libs2_1_1 = libs2_1.next()) { - var directive = libs2_1_1.value; - var pos = writer.getTextPos(); - writeComment("/// ")); - if (bundleFileInfo) - bundleFileInfo.sections.push({ pos: pos, end: writer.getTextPos(), kind: "lib" /* Lib */, data: directive.fileName }); - writeLine(); - } - } - catch (e_576_1) { e_576 = { error: e_576_1 }; } - finally { - try { - if (libs2_1_1 && !libs2_1_1.done && (_w = libs2_1.return)) _w.call(libs2_1); - } - finally { if (e_576) throw e_576.error; } - } - } - function emitSourceFileWorker(node) { - var statements = node.statements; - pushNameGenerationScope(node); - forEach(node.statements, generateNames); - emitHelpers(node); - var index = findIndex(statements, function (statement) { return !isPrologueDirective(statement); }); - emitTripleSlashDirectivesIfNeeded(node); - emitList(node, statements, 1 /* MultiLine */, - /*parenthesizerRule*/ - void 0, index === -1 ? statements.length : index); - popNameGenerationScope(node); - } - function emitPartiallyEmittedExpression(node) { - var emitFlags = getEmitFlags(node); - if (!(emitFlags & 1024 /* NoLeadingComments */) && node.pos !== node.expression.pos) { - emitTrailingCommentsOfPosition(node.expression.pos); - } - emitExpression(node.expression); - if (!(emitFlags & 2048 /* NoTrailingComments */) && node.end !== node.expression.end) { - emitLeadingCommentsOfPosition(node.expression.end); - } - } - function emitCommaList(node) { - emitExpressionList(node, node.elements, 528 /* CommaListElements */, - /*parenthesizerRule*/ - void 0); - } - function emitPrologueDirectives(statements, sourceFile, seenPrologueDirectives, recordBundleFileSection) { - var needsToSetSourceFile = !!sourceFile; - for (var i = 0; i < statements.length; i++) { - var statement = statements[i]; - if (isPrologueDirective(statement)) { - var shouldEmitPrologueDirective = seenPrologueDirectives ? !seenPrologueDirectives.has(statement.expression.text) : true; - if (shouldEmitPrologueDirective) { - if (needsToSetSourceFile) { - needsToSetSourceFile = false; - setSourceFile(sourceFile); - } - writeLine(); - var pos = writer.getTextPos(); - emit(statement); - if (recordBundleFileSection && bundleFileInfo) - bundleFileInfo.sections.push({ pos: pos, end: writer.getTextPos(), kind: "prologue" /* Prologue */, data: statement.expression.text }); - if (seenPrologueDirectives) { - seenPrologueDirectives.add(statement.expression.text); - } - } - } - else { - return i; - } - } - return statements.length; - } - function emitUnparsedPrologues(prologues, seenPrologueDirectives) { - var e_577, _t; - try { - for (var prologues_1 = __values(prologues), prologues_1_1 = prologues_1.next(); !prologues_1_1.done; prologues_1_1 = prologues_1.next()) { - var prologue = prologues_1_1.value; - if (!seenPrologueDirectives.has(prologue.data)) { - writeLine(); - var pos = writer.getTextPos(); - emit(prologue); - if (bundleFileInfo) - bundleFileInfo.sections.push({ pos: pos, end: writer.getTextPos(), kind: "prologue" /* Prologue */, data: prologue.data }); - if (seenPrologueDirectives) { - seenPrologueDirectives.add(prologue.data); - } - } - } - } - catch (e_577_1) { e_577 = { error: e_577_1 }; } - finally { - try { - if (prologues_1_1 && !prologues_1_1.done && (_t = prologues_1.return)) _t.call(prologues_1); - } - finally { if (e_577) throw e_577.error; } - } - } - function emitPrologueDirectivesIfNeeded(sourceFileOrBundle) { - var e_578, _t, e_579, _u; - if (isSourceFile(sourceFileOrBundle)) { - emitPrologueDirectives(sourceFileOrBundle.statements, sourceFileOrBundle); - } - else { - var seenPrologueDirectives = /* @__PURE__ */ new Set(); - try { - for (var _v = __values(sourceFileOrBundle.prepends), _w = _v.next(); !_w.done; _w = _v.next()) { - var prepend = _w.value; - emitUnparsedPrologues(prepend.prologues, seenPrologueDirectives); - } - } - catch (e_578_1) { e_578 = { error: e_578_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_578) throw e_578.error; } - } - try { - for (var _x = __values(sourceFileOrBundle.sourceFiles), _y = _x.next(); !_y.done; _y = _x.next()) { - var sourceFile = _y.value; - emitPrologueDirectives(sourceFile.statements, sourceFile, seenPrologueDirectives, - /*recordBundleFileSection*/ - true); - } - } - catch (e_579_1) { e_579 = { error: e_579_1 }; } - finally { - try { - if (_y && !_y.done && (_u = _x.return)) _u.call(_x); - } - finally { if (e_579) throw e_579.error; } - } - setSourceFile(void 0); - } - } - function getPrologueDirectivesFromBundledSourceFiles(bundle) { - var e_580, _t; - var seenPrologueDirectives = /* @__PURE__ */ new Set(); - var prologues; - for (var index = 0; index < bundle.sourceFiles.length; index++) { - var sourceFile = bundle.sourceFiles[index]; - var directives = void 0; - var end = 0; - try { - for (var _u = (e_580 = void 0, __values(sourceFile.statements)), _v = _u.next(); !_v.done; _v = _u.next()) { - var statement = _v.value; - if (!isPrologueDirective(statement)) - break; - if (seenPrologueDirectives.has(statement.expression.text)) - continue; - seenPrologueDirectives.add(statement.expression.text); - (directives || (directives = [])).push({ - pos: statement.pos, - end: statement.end, - expression: { - pos: statement.expression.pos, - end: statement.expression.end, - text: statement.expression.text - } - }); - end = end < statement.end ? statement.end : end; - } - } - catch (e_580_1) { e_580 = { error: e_580_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_580) throw e_580.error; } - } - if (directives) - (prologues || (prologues = [])).push({ file: index, text: sourceFile.text.substring(0, end), directives: directives }); - } - return prologues; - } - function emitShebangIfNeeded(sourceFileOrBundle) { - var e_581, _t, e_582, _u; - if (isSourceFile(sourceFileOrBundle) || isUnparsedSource(sourceFileOrBundle)) { - var shebang = getShebang(sourceFileOrBundle.text); - if (shebang) { - writeComment(shebang); - writeLine(); - return true; - } - } - else { - try { - for (var _v = __values(sourceFileOrBundle.prepends), _w = _v.next(); !_w.done; _w = _v.next()) { - var prepend = _w.value; - Debug.assertNode(prepend, isUnparsedSource); - if (emitShebangIfNeeded(prepend)) { - return true; - } - } - } - catch (e_581_1) { e_581 = { error: e_581_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_581) throw e_581.error; } - } - try { - for (var _x = __values(sourceFileOrBundle.sourceFiles), _y = _x.next(); !_y.done; _y = _x.next()) { - var sourceFile = _y.value; - if (emitShebangIfNeeded(sourceFile)) { - return true; - } - } - } - catch (e_582_1) { e_582 = { error: e_582_1 }; } - finally { - try { - if (_y && !_y.done && (_u = _x.return)) _u.call(_x); - } - finally { if (e_582) throw e_582.error; } - } - } - } - function emitNodeWithWriter(node, writer2) { - if (!node) - return; - var savedWrite = write; - write = writer2; - emit(node); - write = savedWrite; - } - function emitDecoratorsAndModifiers(node, modifiers, allowDecorators) { - if (modifiers == null ? void 0 : modifiers.length) { - if (every(modifiers, isModifier)) { - return emitModifierList(node, modifiers); - } - if (every(modifiers, isDecorator)) { - if (allowDecorators) { - return emitDecoratorList(node, modifiers); - } - return node.pos; - } - onBeforeEmitNodeArray == null ? void 0 : onBeforeEmitNodeArray(modifiers); - var lastMode = void 0; - var mode = void 0; - var start2 = 0; - var pos = 0; - var lastModifier = void 0; - while (start2 < modifiers.length) { - while (pos < modifiers.length) { - lastModifier = modifiers[pos]; - mode = isDecorator(lastModifier) ? "decorators" : "modifiers"; - if (lastMode === void 0) { - lastMode = mode; - } - else if (mode !== lastMode) { - break; - } - pos++; - } - var textRange = { pos: -1, end: -1 }; - if (start2 === 0) - textRange.pos = modifiers.pos; - if (pos === modifiers.length - 1) - textRange.end = modifiers.end; - if (lastMode === "modifiers" || allowDecorators) { - emitNodeListItems(emit, node, modifiers, lastMode === "modifiers" ? 2359808 /* Modifiers */ : 2146305 /* Decorators */, - /*parenthesizerRule*/ - void 0, start2, pos - start2, - /*hasTrailingComma*/ - false, textRange); - } - start2 = pos; - lastMode = mode; - pos++; - } - onAfterEmitNodeArray == null ? void 0 : onAfterEmitNodeArray(modifiers); - if (lastModifier && !positionIsSynthesized(lastModifier.end)) { - return lastModifier.end; - } - } - return node.pos; - } - function emitModifierList(node, modifiers) { - emitList(node, modifiers, 2359808 /* Modifiers */); - var lastModifier = lastOrUndefined(modifiers); - return lastModifier && !positionIsSynthesized(lastModifier.end) ? lastModifier.end : node.pos; - } - function emitTypeAnnotation(node) { - if (node) { - writePunctuation(":"); - writeSpace(); - emit(node); - } - } - function emitInitializer(node, equalCommentStartPos, container, parenthesizerRule) { - if (node) { - writeSpace(); - emitTokenWithComment(64 /* EqualsToken */, equalCommentStartPos, writeOperator, container); - writeSpace(); - emitExpression(node, parenthesizerRule); - } - } - function emitNodeWithPrefix(prefix, prefixWriter, node, emit2) { - if (node) { - prefixWriter(prefix); - emit2(node); - } - } - function emitWithLeadingSpace(node) { - if (node) { - writeSpace(); - emit(node); - } - } - function emitExpressionWithLeadingSpace(node, parenthesizerRule) { - if (node) { - writeSpace(); - emitExpression(node, parenthesizerRule); - } - } - function emitWithTrailingSpace(node) { - if (node) { - emit(node); - writeSpace(); - } - } - function emitEmbeddedStatement(parent2, node) { - if (isBlock(node) || getEmitFlags(parent2) & 1 /* SingleLine */ || preserveSourceNewlines && !getLeadingLineTerminatorCount(parent2, node, 0 /* None */)) { - writeSpace(); - emit(node); - } - else { - writeLine(); - increaseIndent(); - if (isEmptyStatement(node)) { - pipelineEmit(5 /* EmbeddedStatement */, node); - } - else { - emit(node); - } - decreaseIndent(); - } - } - function emitDecoratorList(parentNode, decorators) { - emitList(parentNode, decorators, 2146305 /* Decorators */); - var lastDecorator = lastOrUndefined(decorators); - return lastDecorator && !positionIsSynthesized(lastDecorator.end) ? lastDecorator.end : parentNode.pos; - } - function emitTypeArguments(parentNode, typeArguments) { - emitList(parentNode, typeArguments, 53776 /* TypeArguments */, typeArgumentParenthesizerRuleSelector); - } - function emitTypeParameters(parentNode, typeParameters) { - if (isFunctionLike(parentNode) && parentNode.typeArguments) { - return emitTypeArguments(parentNode, parentNode.typeArguments); - } - emitList(parentNode, typeParameters, 53776 /* TypeParameters */); - } - function emitParameters(parentNode, parameters) { - emitList(parentNode, parameters, 2576 /* Parameters */); - } - function canEmitSimpleArrowHead(parentNode, parameters) { - var parameter = singleOrUndefined(parameters); - return parameter && parameter.pos === parentNode.pos && isArrowFunction(parentNode) && !parentNode.type && !some(parentNode.modifiers) && !some(parentNode.typeParameters) && !some(parameter.modifiers) && !parameter.dotDotDotToken && !parameter.questionToken && !parameter.type && !parameter.initializer && isIdentifier(parameter.name); - } - function emitParametersForArrow(parentNode, parameters) { - if (canEmitSimpleArrowHead(parentNode, parameters)) { - emitList(parentNode, parameters, 2576 /* Parameters */ & ~2048 /* Parenthesis */); - } - else { - emitParameters(parentNode, parameters); - } - } - function emitParametersForIndexSignature(parentNode, parameters) { - emitList(parentNode, parameters, 8848 /* IndexSignatureParameters */); - } - function writeDelimiter(format) { - switch (format & 60 /* DelimitersMask */) { - case 0 /* None */: - break; - case 16 /* CommaDelimited */: - writePunctuation(","); - break; - case 4 /* BarDelimited */: - writeSpace(); - writePunctuation("|"); - break; - case 32 /* AsteriskDelimited */: - writeSpace(); - writePunctuation("*"); - writeSpace(); - break; - case 8 /* AmpersandDelimited */: - writeSpace(); - writePunctuation("&"); - break; - } - } - function emitList(parentNode, children, format, parenthesizerRule, start2, count) { - emitNodeList(emit, parentNode, children, format | (parentNode && getEmitFlags(parentNode) & 2 /* MultiLine */ ? 65536 /* PreferNewLine */ : 0), parenthesizerRule, start2, count); - } - function emitExpressionList(parentNode, children, format, parenthesizerRule, start2, count) { - emitNodeList(emitExpression, parentNode, children, format, parenthesizerRule, start2, count); - } - function emitNodeList(emit2, parentNode, children, format, parenthesizerRule, start2, count) { - if (start2 === void 0) { start2 = 0; } - if (count === void 0) { count = children ? children.length - start2 : 0; } - var isUndefined = children === void 0; - if (isUndefined && format & 16384 /* OptionalIfUndefined */) { - return; - } - var isEmpty = children === void 0 || start2 >= children.length || count === 0; - if (isEmpty && format & 32768 /* OptionalIfEmpty */) { - onBeforeEmitNodeArray == null ? void 0 : onBeforeEmitNodeArray(children); - onAfterEmitNodeArray == null ? void 0 : onAfterEmitNodeArray(children); - return; - } - if (format & 15360 /* BracketsMask */) { - writePunctuation(getOpeningBracket(format)); - if (isEmpty && children) { - emitTrailingCommentsOfPosition(children.pos, - /*prefixSpace*/ - true); - } - } - onBeforeEmitNodeArray == null ? void 0 : onBeforeEmitNodeArray(children); - if (isEmpty) { - if (format & 1 /* MultiLine */ && !(preserveSourceNewlines && (!parentNode || currentSourceFile && rangeIsOnSingleLine(parentNode, currentSourceFile)))) { - writeLine(); - } - else if (format & 256 /* SpaceBetweenBraces */ && !(format & 524288 /* NoSpaceIfEmpty */)) { - writeSpace(); - } - } - else { - emitNodeListItems(emit2, parentNode, children, format, parenthesizerRule, start2, count, children.hasTrailingComma, children); - } - onAfterEmitNodeArray == null ? void 0 : onAfterEmitNodeArray(children); - if (format & 15360 /* BracketsMask */) { - if (isEmpty && children) { - emitLeadingCommentsOfPosition(children.end); - } - writePunctuation(getClosingBracket(format)); - } - } - function emitNodeListItems(emit2, parentNode, children, format, parenthesizerRule, start2, count, hasTrailingComma, childrenTextRange) { - var mayEmitInterveningComments = (format & 262144 /* NoInterveningComments */) === 0; - var shouldEmitInterveningComments = mayEmitInterveningComments; - var leadingLineTerminatorCount = getLeadingLineTerminatorCount(parentNode, children[start2], format); - if (leadingLineTerminatorCount) { - writeLine(leadingLineTerminatorCount); - shouldEmitInterveningComments = false; - } - else if (format & 256 /* SpaceBetweenBraces */) { - writeSpace(); - } - if (format & 128 /* Indented */) { - increaseIndent(); - } - var emitListItem = getEmitListItem(emit2, parenthesizerRule); - var previousSibling; - var previousSourceFileTextKind; - var shouldDecreaseIndentAfterEmit = false; - for (var i = 0; i < count; i++) { - var child = children[start2 + i]; - if (format & 32 /* AsteriskDelimited */) { - writeLine(); - writeDelimiter(format); - } - else if (previousSibling) { - if (format & 60 /* DelimitersMask */ && previousSibling.end !== (parentNode ? parentNode.end : -1)) { - var previousSiblingEmitFlags = getEmitFlags(previousSibling); - if (!(previousSiblingEmitFlags & 2048 /* NoTrailingComments */)) { - emitLeadingCommentsOfPosition(previousSibling.end); - } - } - writeDelimiter(format); - recordBundleFileInternalSectionEnd(previousSourceFileTextKind); - var separatingLineTerminatorCount = getSeparatingLineTerminatorCount(previousSibling, child, format); - if (separatingLineTerminatorCount > 0) { - if ((format & (3 /* LinesMask */ | 128 /* Indented */)) === 0 /* SingleLine */) { - increaseIndent(); - shouldDecreaseIndentAfterEmit = true; - } - writeLine(separatingLineTerminatorCount); - shouldEmitInterveningComments = false; - } - else if (previousSibling && format & 512 /* SpaceBetweenSiblings */) { - writeSpace(); - } - } - previousSourceFileTextKind = recordBundleFileInternalSectionStart(child); - if (shouldEmitInterveningComments) { - var commentRange = getCommentRange(child); - emitTrailingCommentsOfPosition(commentRange.pos); - } - else { - shouldEmitInterveningComments = mayEmitInterveningComments; - } - nextListElementPos = child.pos; - emitListItem(child, emit2, parenthesizerRule, i); - if (shouldDecreaseIndentAfterEmit) { - decreaseIndent(); - shouldDecreaseIndentAfterEmit = false; - } - previousSibling = child; - } - var emitFlags = previousSibling ? getEmitFlags(previousSibling) : 0; - var skipTrailingComments = commentsDisabled || !!(emitFlags & 2048 /* NoTrailingComments */); - var emitTrailingComma = hasTrailingComma && format & 64 /* AllowTrailingComma */ && format & 16 /* CommaDelimited */; - if (emitTrailingComma) { - if (previousSibling && !skipTrailingComments) { - emitTokenWithComment(28 /* CommaToken */, previousSibling.end, writePunctuation, previousSibling); - } - else { - writePunctuation(","); - } - } - if (previousSibling && (parentNode ? parentNode.end : -1) !== previousSibling.end && format & 60 /* DelimitersMask */ && !skipTrailingComments) { - emitLeadingCommentsOfPosition(emitTrailingComma && (childrenTextRange == null ? void 0 : childrenTextRange.end) ? childrenTextRange.end : previousSibling.end); - } - if (format & 128 /* Indented */) { - decreaseIndent(); - } - recordBundleFileInternalSectionEnd(previousSourceFileTextKind); - var closingLineTerminatorCount = getClosingLineTerminatorCount(parentNode, children[start2 + count - 1], format, childrenTextRange); - if (closingLineTerminatorCount) { - writeLine(closingLineTerminatorCount); - } - else if (format & (2097152 /* SpaceAfterList */ | 256 /* SpaceBetweenBraces */)) { - writeSpace(); - } - } - function writeLiteral(s) { - writer.writeLiteral(s); - } - function writeStringLiteral(s) { - writer.writeStringLiteral(s); - } - function writeBase(s) { - writer.write(s); - } - function writeSymbol(s, sym) { - writer.writeSymbol(s, sym); - } - function writePunctuation(s) { - writer.writePunctuation(s); - } - function writeTrailingSemicolon() { - writer.writeTrailingSemicolon(";"); - } - function writeKeyword(s) { - writer.writeKeyword(s); - } - function writeOperator(s) { - writer.writeOperator(s); - } - function writeParameter(s) { - writer.writeParameter(s); - } - function writeComment(s) { - writer.writeComment(s); - } - function writeSpace() { - writer.writeSpace(" "); - } - function writeProperty(s) { - writer.writeProperty(s); - } - function nonEscapingWrite(s) { - if (writer.nonEscapingWrite) { - writer.nonEscapingWrite(s); - } - else { - writer.write(s); - } - } - function writeLine(count) { - if (count === void 0) { count = 1; } - for (var i = 0; i < count; i++) { - writer.writeLine(i > 0); - } - } - function increaseIndent() { - writer.increaseIndent(); - } - function decreaseIndent() { - writer.decreaseIndent(); - } - function writeToken(token, pos, writer2, contextNode) { - return !sourceMapsDisabled ? emitTokenWithSourceMap(contextNode, token, writer2, pos, writeTokenText) : writeTokenText(token, writer2, pos); - } - function writeTokenNode(node, writer2) { - if (onBeforeEmitToken) { - onBeforeEmitToken(node); - } - writer2(tokenToString(node.kind)); - if (onAfterEmitToken) { - onAfterEmitToken(node); - } - } - function writeTokenText(token, writer2, pos) { - var tokenString = tokenToString(token); - writer2(tokenString); - return pos < 0 ? pos : pos + tokenString.length; - } - function writeLineOrSpace(parentNode, prevChildNode, nextChildNode) { - if (getEmitFlags(parentNode) & 1 /* SingleLine */) { - writeSpace(); - } - else if (preserveSourceNewlines) { - var lines = getLinesBetweenNodes(parentNode, prevChildNode, nextChildNode); - if (lines) { - writeLine(lines); - } - else { - writeSpace(); - } - } - else { - writeLine(); - } - } - function writeLines(text) { - var e_583, _t; - var lines = text.split(/\r\n?|\n/g); - var indentation = guessIndentation(lines); - try { - for (var lines_3 = __values(lines), lines_3_1 = lines_3.next(); !lines_3_1.done; lines_3_1 = lines_3.next()) { - var lineText = lines_3_1.value; - var line = indentation ? lineText.slice(indentation) : lineText; - if (line.length) { - writeLine(); - write(line); - } - } - } - catch (e_583_1) { e_583 = { error: e_583_1 }; } - finally { - try { - if (lines_3_1 && !lines_3_1.done && (_t = lines_3.return)) _t.call(lines_3); - } - finally { if (e_583) throw e_583.error; } - } - } - function writeLinesAndIndent(lineCount, writeSpaceIfNotIndenting) { - if (lineCount) { - increaseIndent(); - writeLine(lineCount); - } - else if (writeSpaceIfNotIndenting) { - writeSpace(); - } - } - function decreaseIndentIf(value1, value2) { - if (value1) { - decreaseIndent(); - } - if (value2) { - decreaseIndent(); - } - } - function getLeadingLineTerminatorCount(parentNode, firstChild, format) { - if (format & 2 /* PreserveLines */ || preserveSourceNewlines) { - if (format & 65536 /* PreferNewLine */) { - return 1; - } - if (firstChild === void 0) { - return !parentNode || currentSourceFile && rangeIsOnSingleLine(parentNode, currentSourceFile) ? 0 : 1; - } - if (firstChild.pos === nextListElementPos) { - return 0; - } - if (firstChild.kind === 12 /* JsxText */) { - return 0; - } - if (currentSourceFile && parentNode && !positionIsSynthesized(parentNode.pos) && !nodeIsSynthesized(firstChild) && (!firstChild.parent || getOriginalNode(firstChild.parent) === getOriginalNode(parentNode))) { - if (preserveSourceNewlines) { - return getEffectiveLines(function (includeComments) { return getLinesBetweenPositionAndPrecedingNonWhitespaceCharacter(firstChild.pos, parentNode.pos, currentSourceFile, includeComments); }); - } - return rangeStartPositionsAreOnSameLine(parentNode, firstChild, currentSourceFile) ? 0 : 1; - } - if (synthesizedNodeStartsOnNewLine(firstChild, format)) { - return 1; - } - } - return format & 1 /* MultiLine */ ? 1 : 0; - } - function getSeparatingLineTerminatorCount(previousNode, nextNode, format) { - if (format & 2 /* PreserveLines */ || preserveSourceNewlines) { - if (previousNode === void 0 || nextNode === void 0) { - return 0; - } - if (nextNode.kind === 12 /* JsxText */) { - return 0; - } - else if (currentSourceFile && !nodeIsSynthesized(previousNode) && !nodeIsSynthesized(nextNode)) { - if (preserveSourceNewlines && siblingNodePositionsAreComparable(previousNode, nextNode)) { - return getEffectiveLines(function (includeComments) { return getLinesBetweenRangeEndAndRangeStart(previousNode, nextNode, currentSourceFile, includeComments); }); - } - else if (!preserveSourceNewlines && originalNodesHaveSameParent(previousNode, nextNode)) { - return rangeEndIsOnSameLineAsRangeStart(previousNode, nextNode, currentSourceFile) ? 0 : 1; - } - return format & 65536 /* PreferNewLine */ ? 1 : 0; - } - else if (synthesizedNodeStartsOnNewLine(previousNode, format) || synthesizedNodeStartsOnNewLine(nextNode, format)) { - return 1; - } - } - else if (getStartsOnNewLine(nextNode)) { - return 1; - } - return format & 1 /* MultiLine */ ? 1 : 0; - } - function getClosingLineTerminatorCount(parentNode, lastChild, format, childrenTextRange) { - if (format & 2 /* PreserveLines */ || preserveSourceNewlines) { - if (format & 65536 /* PreferNewLine */) { - return 1; - } - if (lastChild === void 0) { - return !parentNode || currentSourceFile && rangeIsOnSingleLine(parentNode, currentSourceFile) ? 0 : 1; - } - if (currentSourceFile && parentNode && !positionIsSynthesized(parentNode.pos) && !nodeIsSynthesized(lastChild) && (!lastChild.parent || lastChild.parent === parentNode)) { - if (preserveSourceNewlines) { - var end_1 = childrenTextRange && !positionIsSynthesized(childrenTextRange.end) ? childrenTextRange.end : lastChild.end; - return getEffectiveLines(function (includeComments) { return getLinesBetweenPositionAndNextNonWhitespaceCharacter(end_1, parentNode.end, currentSourceFile, includeComments); }); - } - return rangeEndPositionsAreOnSameLine(parentNode, lastChild, currentSourceFile) ? 0 : 1; - } - if (synthesizedNodeStartsOnNewLine(lastChild, format)) { - return 1; - } - } - if (format & 1 /* MultiLine */ && !(format & 131072 /* NoTrailingNewLine */)) { - return 1; - } - return 0; - } - function getEffectiveLines(getLineDifference) { - Debug.assert(!!preserveSourceNewlines); - var lines = getLineDifference( - /*includeComments*/ - true); - if (lines === 0) { - return getLineDifference( - /*includeComments*/ - false); - } - return lines; - } - function writeLineSeparatorsAndIndentBefore(node, parent2) { - var leadingNewlines = preserveSourceNewlines && getLeadingLineTerminatorCount(parent2, node, 0 /* None */); - if (leadingNewlines) { - writeLinesAndIndent(leadingNewlines, - /*writeSpaceIfNotIndenting*/ - false); - } - return !!leadingNewlines; - } - function writeLineSeparatorsAfter(node, parent2) { - var trailingNewlines = preserveSourceNewlines && getClosingLineTerminatorCount(parent2, node, 0 /* None */, - /*childrenTextRange*/ - void 0); - if (trailingNewlines) { - writeLine(trailingNewlines); - } - } - function synthesizedNodeStartsOnNewLine(node, format) { - if (nodeIsSynthesized(node)) { - var startsOnNewLine = getStartsOnNewLine(node); - if (startsOnNewLine === void 0) { - return (format & 65536 /* PreferNewLine */) !== 0; - } - return startsOnNewLine; - } - return (format & 65536 /* PreferNewLine */) !== 0; - } - function getLinesBetweenNodes(parent2, node1, node2) { - if (getEmitFlags(parent2) & 262144 /* NoIndentation */) { - return 0; - } - parent2 = skipSynthesizedParentheses(parent2); - node1 = skipSynthesizedParentheses(node1); - node2 = skipSynthesizedParentheses(node2); - if (getStartsOnNewLine(node2)) { - return 1; - } - if (currentSourceFile && !nodeIsSynthesized(parent2) && !nodeIsSynthesized(node1) && !nodeIsSynthesized(node2)) { - if (preserveSourceNewlines) { - return getEffectiveLines(function (includeComments) { return getLinesBetweenRangeEndAndRangeStart(node1, node2, currentSourceFile, includeComments); }); - } - return rangeEndIsOnSameLineAsRangeStart(node1, node2, currentSourceFile) ? 0 : 1; - } - return 0; - } - function isEmptyBlock(block) { - return block.statements.length === 0 && (!currentSourceFile || rangeEndIsOnSameLineAsRangeStart(block, block, currentSourceFile)); - } - function skipSynthesizedParentheses(node) { - while (node.kind === 217 /* ParenthesizedExpression */ && nodeIsSynthesized(node)) { - node = node.expression; - } - return node; - } - function getTextOfNode2(node, includeTrivia) { - if (isGeneratedIdentifier(node) || isGeneratedPrivateIdentifier(node)) { - return generateName(node); - } - if (isStringLiteral(node) && node.textSourceNode) { - return getTextOfNode2(node.textSourceNode, includeTrivia); - } - var sourceFile = currentSourceFile; - var canUseSourceFile = !!sourceFile && !!node.parent && !nodeIsSynthesized(node); - if (isMemberName(node)) { - if (!canUseSourceFile || getSourceFileOfNode(node) !== getOriginalNode(sourceFile)) { - return idText(node); - } - } - else if (isJsxNamespacedName(node)) { - if (!canUseSourceFile || getSourceFileOfNode(node) !== getOriginalNode(sourceFile)) { - return getTextOfJsxNamespacedName(node); - } - } - else { - Debug.assertNode(node, isLiteralExpression); - if (!canUseSourceFile) { - return node.text; - } - } - return getSourceTextOfNodeFromSourceFile(sourceFile, node, includeTrivia); - } - function getLiteralTextOfNode(node, neverAsciiEscape, jsxAttributeEscape) { - if (node.kind === 11 /* StringLiteral */ && node.textSourceNode) { - var textSourceNode = node.textSourceNode; - if (isIdentifier(textSourceNode) || isPrivateIdentifier(textSourceNode) || isNumericLiteral(textSourceNode) || isJsxNamespacedName(textSourceNode)) { - var text = isNumericLiteral(textSourceNode) ? textSourceNode.text : getTextOfNode2(textSourceNode); - return jsxAttributeEscape ? "\"".concat(escapeJsxAttributeString(text), "\"") : neverAsciiEscape || getEmitFlags(node) & 16777216 /* NoAsciiEscaping */ ? "\"".concat(escapeString(text), "\"") : "\"".concat(escapeNonAsciiString(text), "\""); - } - else { - return getLiteralTextOfNode(textSourceNode, neverAsciiEscape, jsxAttributeEscape); - } - } - var flags = (neverAsciiEscape ? 1 /* NeverAsciiEscape */ : 0) | (jsxAttributeEscape ? 2 /* JsxAttributeEscape */ : 0) | (printerOptions.terminateUnterminatedLiterals ? 4 /* TerminateUnterminatedLiterals */ : 0) | (printerOptions.target && printerOptions.target === 99 /* ESNext */ ? 8 /* AllowNumericSeparator */ : 0); - return getLiteralText(node, currentSourceFile, flags); - } - function pushNameGenerationScope(node) { - if (node && getEmitFlags(node) & 1048576 /* ReuseTempVariableScope */) { - return; - } - tempFlagsStack.push(tempFlags); - tempFlags = 0 /* Auto */; - formattedNameTempFlagsStack.push(formattedNameTempFlags); - formattedNameTempFlags = void 0; - reservedNamesStack.push(reservedNames); - } - function popNameGenerationScope(node) { - if (node && getEmitFlags(node) & 1048576 /* ReuseTempVariableScope */) { - return; - } - tempFlags = tempFlagsStack.pop(); - formattedNameTempFlags = formattedNameTempFlagsStack.pop(); - reservedNames = reservedNamesStack.pop(); - } - function reserveNameInNestedScopes(name) { - if (!reservedNames || reservedNames === lastOrUndefined(reservedNamesStack)) { - reservedNames = /* @__PURE__ */ new Set(); - } - reservedNames.add(name); - } - function pushPrivateNameGenerationScope(newPrivateNameTempFlags, newReservedMemberNames) { - privateNameTempFlagsStack.push(privateNameTempFlags); - privateNameTempFlags = newPrivateNameTempFlags; - reservedPrivateNamesStack.push(reservedNames); - reservedPrivateNames = newReservedMemberNames; - } - function popPrivateNameGenerationScope() { - privateNameTempFlags = privateNameTempFlagsStack.pop(); - reservedPrivateNames = reservedPrivateNamesStack.pop(); - } - function reservePrivateNameInNestedScopes(name) { - if (!reservedPrivateNames || reservedPrivateNames === lastOrUndefined(reservedPrivateNamesStack)) { - reservedPrivateNames = /* @__PURE__ */ new Set(); - } - reservedPrivateNames.add(name); - } - function generateNames(node) { - if (!node) - return; - switch (node.kind) { - case 241 /* Block */: - forEach(node.statements, generateNames); - break; - case 256 /* LabeledStatement */: - case 254 /* WithStatement */: - case 246 /* DoStatement */: - case 247 /* WhileStatement */: - generateNames(node.statement); - break; - case 245 /* IfStatement */: - generateNames(node.thenStatement); - generateNames(node.elseStatement); - break; - case 248 /* ForStatement */: - case 250 /* ForOfStatement */: - case 249 /* ForInStatement */: - generateNames(node.initializer); - generateNames(node.statement); - break; - case 255 /* SwitchStatement */: - generateNames(node.caseBlock); - break; - case 269 /* CaseBlock */: - forEach(node.clauses, generateNames); - break; - case 296 /* CaseClause */: - case 297 /* DefaultClause */: - forEach(node.statements, generateNames); - break; - case 258 /* TryStatement */: - generateNames(node.tryBlock); - generateNames(node.catchClause); - generateNames(node.finallyBlock); - break; - case 299 /* CatchClause */: - generateNames(node.variableDeclaration); - generateNames(node.block); - break; - case 243 /* VariableStatement */: - generateNames(node.declarationList); - break; - case 261 /* VariableDeclarationList */: - forEach(node.declarations, generateNames); - break; - case 260 /* VariableDeclaration */: - case 169 /* Parameter */: - case 208 /* BindingElement */: - case 263 /* ClassDeclaration */: - generateNameIfNeeded(node.name); - break; - case 262 /* FunctionDeclaration */: - generateNameIfNeeded(node.name); - if (getEmitFlags(node) & 1048576 /* ReuseTempVariableScope */) { - forEach(node.parameters, generateNames); - generateNames(node.body); - } - break; - case 206 /* ObjectBindingPattern */: - case 207 /* ArrayBindingPattern */: - forEach(node.elements, generateNames); - break; - case 272 /* ImportDeclaration */: - generateNames(node.importClause); - break; - case 273 /* ImportClause */: - generateNameIfNeeded(node.name); - generateNames(node.namedBindings); - break; - case 274 /* NamespaceImport */: - generateNameIfNeeded(node.name); - break; - case 280 /* NamespaceExport */: - generateNameIfNeeded(node.name); - break; - case 275 /* NamedImports */: - forEach(node.elements, generateNames); - break; - case 276 /* ImportSpecifier */: - generateNameIfNeeded(node.propertyName || node.name); - break; - } - } - function generateMemberNames(node) { - if (!node) - return; - switch (node.kind) { - case 303 /* PropertyAssignment */: - case 304 /* ShorthandPropertyAssignment */: - case 172 /* PropertyDeclaration */: - case 174 /* MethodDeclaration */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - generateNameIfNeeded(node.name); - break; - } - } - function generateNameIfNeeded(name) { - if (name) { - if (isGeneratedIdentifier(name) || isGeneratedPrivateIdentifier(name)) { - generateName(name); - } - else if (isBindingPattern(name)) { - generateNames(name); - } - } - } - function generateName(name) { - var autoGenerate = name.emitNode.autoGenerate; - if ((autoGenerate.flags & 7 /* KindMask */) === 4 /* Node */) { - return generateNameCached(getNodeForGeneratedName(name), isPrivateIdentifier(name), autoGenerate.flags, autoGenerate.prefix, autoGenerate.suffix); - } - else { - var autoGenerateId = autoGenerate.id; - return autoGeneratedIdToGeneratedName[autoGenerateId] || (autoGeneratedIdToGeneratedName[autoGenerateId] = makeName(name)); - } - } - function generateNameCached(node, privateName, flags, prefix, suffix) { - var nodeId = getNodeId(node); - var cache = privateName ? nodeIdToGeneratedPrivateName : nodeIdToGeneratedName; - return cache[nodeId] || (cache[nodeId] = generateNameForNode(node, privateName, flags !== null && flags !== void 0 ? flags : 0 /* None */, formatGeneratedNamePart(prefix, generateName), formatGeneratedNamePart(suffix))); - } - function isUniqueName(name, privateName) { - return isFileLevelUniqueNameInCurrentFile(name, privateName) && !isReservedName(name, privateName) && !generatedNames.has(name); - } - function isReservedName(name, privateName) { - return privateName ? !!(reservedPrivateNames == null ? void 0 : reservedPrivateNames.has(name)) : !!(reservedNames == null ? void 0 : reservedNames.has(name)); - } - function isFileLevelUniqueNameInCurrentFile(name, _isPrivate) { - return currentSourceFile ? isFileLevelUniqueName(currentSourceFile, name, hasGlobalName) : true; - } - function isUniqueLocalName(name, container) { - for (var node = container; node && isNodeDescendantOf(node, container); node = node.nextContainer) { - if (canHaveLocals(node) && node.locals) { - var local = node.locals.get(escapeLeadingUnderscores(name)); - if (local && local.flags & (111551 /* Value */ | 1048576 /* ExportValue */ | 2097152 /* Alias */)) { - return false; - } - } - } - return true; - } - function getTempFlags(formattedNameKey) { - var _t; - switch (formattedNameKey) { - case "": - return tempFlags; - case "#": - return privateNameTempFlags; - default: - return (_t = (formattedNameTempFlags == null ? void 0 : formattedNameTempFlags.get(formattedNameKey))) !== null && _t !== void 0 ? _t : 0 /* Auto */; - } - } - function setTempFlags(formattedNameKey, flags) { - switch (formattedNameKey) { - case "": - tempFlags = flags; - break; - case "#": - privateNameTempFlags = flags; - break; - default: - formattedNameTempFlags !== null && formattedNameTempFlags !== void 0 ? formattedNameTempFlags : (formattedNameTempFlags = /* @__PURE__ */ new Map()); - formattedNameTempFlags.set(formattedNameKey, flags); - break; - } - } - function makeTempVariableName(flags, reservedInNestedScopes, privateName, prefix, suffix) { - if (prefix.length > 0 && prefix.charCodeAt(0) === 35 /* hash */) { - prefix = prefix.slice(1); - } - var key = formatGeneratedName(privateName, prefix, "", suffix); - var tempFlags2 = getTempFlags(key); - if (flags && !(tempFlags2 & flags)) { - var name_92 = flags === 268435456 /* _i */ ? "_i" : "_n"; - var fullName = formatGeneratedName(privateName, prefix, name_92, suffix); - if (isUniqueName(fullName, privateName)) { - tempFlags2 |= flags; - if (privateName) { - reservePrivateNameInNestedScopes(fullName); - } - else if (reservedInNestedScopes) { - reserveNameInNestedScopes(fullName); - } - setTempFlags(key, tempFlags2); - return fullName; - } - } - while (true) { - var count = tempFlags2 & 268435455 /* CountMask */; - tempFlags2++; - if (count !== 8 && count !== 13) { - var name_93 = count < 26 ? "_" + String.fromCharCode(97 /* a */ + count) : "_" + (count - 26); - var fullName = formatGeneratedName(privateName, prefix, name_93, suffix); - if (isUniqueName(fullName, privateName)) { - if (privateName) { - reservePrivateNameInNestedScopes(fullName); - } - else if (reservedInNestedScopes) { - reserveNameInNestedScopes(fullName); - } - setTempFlags(key, tempFlags2); - return fullName; - } - } - } - } - function makeUniqueName2(baseName, checkFn, optimistic, scoped, privateName, prefix, suffix) { - if (checkFn === void 0) { checkFn = isUniqueName; } - if (baseName.length > 0 && baseName.charCodeAt(0) === 35 /* hash */) { - baseName = baseName.slice(1); - } - if (prefix.length > 0 && prefix.charCodeAt(0) === 35 /* hash */) { - prefix = prefix.slice(1); - } - if (optimistic) { - var fullName = formatGeneratedName(privateName, prefix, baseName, suffix); - if (checkFn(fullName, privateName)) { - if (privateName) { - reservePrivateNameInNestedScopes(fullName); - } - else if (scoped) { - reserveNameInNestedScopes(fullName); - } - else { - generatedNames.add(fullName); - } - return fullName; - } - } - if (baseName.charCodeAt(baseName.length - 1) !== 95 /* _ */) { - baseName += "_"; - } - var i = 1; - while (true) { - var fullName = formatGeneratedName(privateName, prefix, baseName + i, suffix); - if (checkFn(fullName, privateName)) { - if (privateName) { - reservePrivateNameInNestedScopes(fullName); - } - else if (scoped) { - reserveNameInNestedScopes(fullName); - } - else { - generatedNames.add(fullName); - } - return fullName; - } - i++; - } - } - function makeFileLevelOptimisticUniqueName(name) { - return makeUniqueName2(name, isFileLevelUniqueNameInCurrentFile, - /*optimistic*/ - true, - /*scoped*/ - false, - /*privateName*/ - false, - /*prefix*/ - "", - /*suffix*/ - ""); - } - function generateNameForModuleOrEnum(node) { - var name = getTextOfNode2(node.name); - return isUniqueLocalName(name, tryCast(node, canHaveLocals)) ? name : makeUniqueName2(name, isUniqueName, - /*optimistic*/ - false, - /*scoped*/ - false, - /*privateName*/ - false, - /*prefix*/ - "", - /*suffix*/ - ""); - } - function generateNameForImportOrExportDeclaration(node) { - var expr = getExternalModuleName(node); - var baseName = isStringLiteral(expr) ? makeIdentifierFromModuleName(expr.text) : "module"; - return makeUniqueName2(baseName, isUniqueName, - /*optimistic*/ - false, - /*scoped*/ - false, - /*privateName*/ - false, - /*prefix*/ - "", - /*suffix*/ - ""); - } - function generateNameForExportDefault() { - return makeUniqueName2("default", isUniqueName, - /*optimistic*/ - false, - /*scoped*/ - false, - /*privateName*/ - false, - /*prefix*/ - "", - /*suffix*/ - ""); - } - function generateNameForClassExpression() { - return makeUniqueName2("class", isUniqueName, - /*optimistic*/ - false, - /*scoped*/ - false, - /*privateName*/ - false, - /*prefix*/ - "", - /*suffix*/ - ""); - } - function generateNameForMethodOrAccessor(node, privateName, prefix, suffix) { - if (isIdentifier(node.name)) { - return generateNameCached(node.name, privateName); - } - return makeTempVariableName(0 /* Auto */, - /*reservedInNestedScopes*/ - false, privateName, prefix, suffix); - } - function generateNameForNode(node, privateName, flags, prefix, suffix) { - switch (node.kind) { - case 80 /* Identifier */: - case 81 /* PrivateIdentifier */: - return makeUniqueName2(getTextOfNode2(node), isUniqueName, !!(flags & 16 /* Optimistic */), !!(flags & 8 /* ReservedInNestedScopes */), privateName, prefix, suffix); - case 267 /* ModuleDeclaration */: - case 266 /* EnumDeclaration */: - Debug.assert(!prefix && !suffix && !privateName); - return generateNameForModuleOrEnum(node); - case 272 /* ImportDeclaration */: - case 278 /* ExportDeclaration */: - Debug.assert(!prefix && !suffix && !privateName); - return generateNameForImportOrExportDeclaration(node); - case 262 /* FunctionDeclaration */: - case 263 /* ClassDeclaration */: { - Debug.assert(!prefix && !suffix && !privateName); - var name_94 = node.name; - if (name_94 && !isGeneratedIdentifier(name_94)) { - return generateNameForNode(name_94, - /*privateName*/ - false, flags, prefix, suffix); - } - return generateNameForExportDefault(); - } - case 277 /* ExportAssignment */: - Debug.assert(!prefix && !suffix && !privateName); - return generateNameForExportDefault(); - case 231 /* ClassExpression */: - Debug.assert(!prefix && !suffix && !privateName); - return generateNameForClassExpression(); - case 174 /* MethodDeclaration */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - return generateNameForMethodOrAccessor(node, privateName, prefix, suffix); - case 167 /* ComputedPropertyName */: - return makeTempVariableName(0 /* Auto */, - /*reservedInNestedScopes*/ - true, privateName, prefix, suffix); - default: - return makeTempVariableName(0 /* Auto */, - /*reservedInNestedScopes*/ - false, privateName, prefix, suffix); - } - } - function makeName(name) { - var autoGenerate = name.emitNode.autoGenerate; - var prefix = formatGeneratedNamePart(autoGenerate.prefix, generateName); - var suffix = formatGeneratedNamePart(autoGenerate.suffix); - switch (autoGenerate.flags & 7 /* KindMask */) { - case 1 /* Auto */: - return makeTempVariableName(0 /* Auto */, !!(autoGenerate.flags & 8 /* ReservedInNestedScopes */), isPrivateIdentifier(name), prefix, suffix); - case 2 /* Loop */: - Debug.assertNode(name, isIdentifier); - return makeTempVariableName(268435456 /* _i */, !!(autoGenerate.flags & 8 /* ReservedInNestedScopes */), - /*privateName*/ - false, prefix, suffix); - case 3 /* Unique */: - return makeUniqueName2(idText(name), autoGenerate.flags & 32 /* FileLevel */ ? isFileLevelUniqueNameInCurrentFile : isUniqueName, !!(autoGenerate.flags & 16 /* Optimistic */), !!(autoGenerate.flags & 8 /* ReservedInNestedScopes */), isPrivateIdentifier(name), prefix, suffix); - } - return Debug.fail("Unsupported GeneratedIdentifierKind: ".concat(Debug.formatEnum(autoGenerate.flags & 7 /* KindMask */, GeneratedIdentifierFlags, - /*isFlags*/ - true), ".")); - } - function pipelineEmitWithComments(hint, node) { - var pipelinePhase = getNextPipelinePhase(2 /* Comments */, hint, node); - var savedContainerPos = containerPos; - var savedContainerEnd = containerEnd; - var savedDeclarationListContainerEnd = declarationListContainerEnd; - emitCommentsBeforeNode(node); - pipelinePhase(hint, node); - emitCommentsAfterNode(node, savedContainerPos, savedContainerEnd, savedDeclarationListContainerEnd); - } - function emitCommentsBeforeNode(node) { - var emitFlags = getEmitFlags(node); - var commentRange = getCommentRange(node); - emitLeadingCommentsOfNode(node, emitFlags, commentRange.pos, commentRange.end); - if (emitFlags & 4096 /* NoNestedComments */) { - commentsDisabled = true; - } - } - function emitCommentsAfterNode(node, savedContainerPos, savedContainerEnd, savedDeclarationListContainerEnd) { - var emitFlags = getEmitFlags(node); - var commentRange = getCommentRange(node); - if (emitFlags & 4096 /* NoNestedComments */) { - commentsDisabled = false; - } - emitTrailingCommentsOfNode(node, emitFlags, commentRange.pos, commentRange.end, savedContainerPos, savedContainerEnd, savedDeclarationListContainerEnd); - var typeNode = getTypeNode(node); - if (typeNode) { - emitTrailingCommentsOfNode(node, emitFlags, typeNode.pos, typeNode.end, savedContainerPos, savedContainerEnd, savedDeclarationListContainerEnd); - } - } - function emitLeadingCommentsOfNode(node, emitFlags, pos, end) { - enterComment(); - hasWrittenComment = false; - var skipLeadingComments = pos < 0 || (emitFlags & 1024 /* NoLeadingComments */) !== 0 || node.kind === 12 /* JsxText */; - var skipTrailingComments = end < 0 || (emitFlags & 2048 /* NoTrailingComments */) !== 0 || node.kind === 12 /* JsxText */; - if ((pos > 0 || end > 0) && pos !== end) { - if (!skipLeadingComments) { - emitLeadingComments(pos, - /*isEmittedNode*/ - node.kind !== 359 /* NotEmittedStatement */); - } - if (!skipLeadingComments || pos >= 0 && (emitFlags & 1024 /* NoLeadingComments */) !== 0) { - containerPos = pos; - } - if (!skipTrailingComments || end >= 0 && (emitFlags & 2048 /* NoTrailingComments */) !== 0) { - containerEnd = end; - if (node.kind === 261 /* VariableDeclarationList */) { - declarationListContainerEnd = end; - } - } - } - forEach(getSyntheticLeadingComments(node), emitLeadingSynthesizedComment); - exitComment(); - } - function emitTrailingCommentsOfNode(node, emitFlags, pos, end, savedContainerPos, savedContainerEnd, savedDeclarationListContainerEnd) { - enterComment(); - var skipTrailingComments = end < 0 || (emitFlags & 2048 /* NoTrailingComments */) !== 0 || node.kind === 12 /* JsxText */; - forEach(getSyntheticTrailingComments(node), emitTrailingSynthesizedComment); - if ((pos > 0 || end > 0) && pos !== end) { - containerPos = savedContainerPos; - containerEnd = savedContainerEnd; - declarationListContainerEnd = savedDeclarationListContainerEnd; - if (!skipTrailingComments && node.kind !== 359 /* NotEmittedStatement */) { - emitTrailingComments(end); - } - } - exitComment(); - } - function emitLeadingSynthesizedComment(comment) { - if (comment.hasLeadingNewline || comment.kind === 2 /* SingleLineCommentTrivia */) { - writer.writeLine(); - } - writeSynthesizedComment(comment); - if (comment.hasTrailingNewLine || comment.kind === 2 /* SingleLineCommentTrivia */) { - writer.writeLine(); - } - else { - writer.writeSpace(" "); - } - } - function emitTrailingSynthesizedComment(comment) { - if (!writer.isAtStartOfLine()) { - writer.writeSpace(" "); - } - writeSynthesizedComment(comment); - if (comment.hasTrailingNewLine) { - writer.writeLine(); - } - } - function writeSynthesizedComment(comment) { - var text = formatSynthesizedComment(comment); - var lineMap = comment.kind === 3 /* MultiLineCommentTrivia */ ? computeLineStarts(text) : void 0; - writeCommentRange(text, lineMap, writer, 0, text.length, newLine); - } - function formatSynthesizedComment(comment) { - return comment.kind === 3 /* MultiLineCommentTrivia */ ? "/*".concat(comment.text, "*/") : "//".concat(comment.text); - } - function emitBodyWithDetachedComments(node, detachedRange, emitCallback) { - enterComment(); - var pos = detachedRange.pos, end = detachedRange.end; - var emitFlags = getEmitFlags(node); - var skipLeadingComments = pos < 0 || (emitFlags & 1024 /* NoLeadingComments */) !== 0; - var skipTrailingComments = commentsDisabled || end < 0 || (emitFlags & 2048 /* NoTrailingComments */) !== 0; - if (!skipLeadingComments) { - emitDetachedCommentsAndUpdateCommentsInfo(detachedRange); - } - exitComment(); - if (emitFlags & 4096 /* NoNestedComments */ && !commentsDisabled) { - commentsDisabled = true; - emitCallback(node); - commentsDisabled = false; - } - else { - emitCallback(node); - } - enterComment(); - if (!skipTrailingComments) { - emitLeadingComments(detachedRange.end, - /*isEmittedNode*/ - true); - if (hasWrittenComment && !writer.isAtStartOfLine()) { - writer.writeLine(); - } - } - exitComment(); - } - function originalNodesHaveSameParent(nodeA, nodeB) { - nodeA = getOriginalNode(nodeA); - return nodeA.parent && nodeA.parent === getOriginalNode(nodeB).parent; - } - function siblingNodePositionsAreComparable(previousNode, nextNode) { - if (nextNode.pos < previousNode.end) { - return false; - } - previousNode = getOriginalNode(previousNode); - nextNode = getOriginalNode(nextNode); - var parent2 = previousNode.parent; - if (!parent2 || parent2 !== nextNode.parent) { - return false; - } - var parentNodeArray = getContainingNodeArray(previousNode); - var prevNodeIndex = parentNodeArray == null ? void 0 : parentNodeArray.indexOf(previousNode); - return prevNodeIndex !== void 0 && prevNodeIndex > -1 && parentNodeArray.indexOf(nextNode) === prevNodeIndex + 1; - } - function emitLeadingComments(pos, isEmittedNode) { - hasWrittenComment = false; - if (isEmittedNode) { - if (pos === 0 && (currentSourceFile == null ? void 0 : currentSourceFile.isDeclarationFile)) { - forEachLeadingCommentToEmit(pos, emitNonTripleSlashLeadingComment); - } - else { - forEachLeadingCommentToEmit(pos, emitLeadingComment); - } - } - else if (pos === 0) { - forEachLeadingCommentToEmit(pos, emitTripleSlashLeadingComment); - } - } - function emitTripleSlashLeadingComment(commentPos, commentEnd, kind, hasTrailingNewLine, rangePos) { - if (isTripleSlashComment(commentPos, commentEnd)) { - emitLeadingComment(commentPos, commentEnd, kind, hasTrailingNewLine, rangePos); - } - } - function emitNonTripleSlashLeadingComment(commentPos, commentEnd, kind, hasTrailingNewLine, rangePos) { - if (!isTripleSlashComment(commentPos, commentEnd)) { - emitLeadingComment(commentPos, commentEnd, kind, hasTrailingNewLine, rangePos); - } - } - function shouldWriteComment(text, pos) { - if (printerOptions.onlyPrintJsDocStyle) { - return isJSDocLikeText(text, pos) || isPinnedComment(text, pos); - } - return true; - } - function emitLeadingComment(commentPos, commentEnd, kind, hasTrailingNewLine, rangePos) { - if (!currentSourceFile || !shouldWriteComment(currentSourceFile.text, commentPos)) - return; - if (!hasWrittenComment) { - emitNewLineBeforeLeadingCommentOfPosition(getCurrentLineMap(), writer, rangePos, commentPos); - hasWrittenComment = true; - } - emitPos(commentPos); - writeCommentRange(currentSourceFile.text, getCurrentLineMap(), writer, commentPos, commentEnd, newLine); - emitPos(commentEnd); - if (hasTrailingNewLine) { - writer.writeLine(); - } - else if (kind === 3 /* MultiLineCommentTrivia */) { - writer.writeSpace(" "); - } - } - function emitLeadingCommentsOfPosition(pos) { - if (commentsDisabled || pos === -1) { - return; - } - emitLeadingComments(pos, - /*isEmittedNode*/ - true); - } - function emitTrailingComments(pos) { - forEachTrailingCommentToEmit(pos, emitTrailingComment); - } - function emitTrailingComment(commentPos, commentEnd, _kind, hasTrailingNewLine) { - if (!currentSourceFile || !shouldWriteComment(currentSourceFile.text, commentPos)) - return; - if (!writer.isAtStartOfLine()) { - writer.writeSpace(" "); - } - emitPos(commentPos); - writeCommentRange(currentSourceFile.text, getCurrentLineMap(), writer, commentPos, commentEnd, newLine); - emitPos(commentEnd); - if (hasTrailingNewLine) { - writer.writeLine(); - } - } - function emitTrailingCommentsOfPosition(pos, prefixSpace, forceNoNewline) { - if (commentsDisabled) { - return; - } - enterComment(); - forEachTrailingCommentToEmit(pos, prefixSpace ? emitTrailingComment : forceNoNewline ? emitTrailingCommentOfPositionNoNewline : emitTrailingCommentOfPosition); - exitComment(); - } - function emitTrailingCommentOfPositionNoNewline(commentPos, commentEnd, kind) { - if (!currentSourceFile) - return; - emitPos(commentPos); - writeCommentRange(currentSourceFile.text, getCurrentLineMap(), writer, commentPos, commentEnd, newLine); - emitPos(commentEnd); - if (kind === 2 /* SingleLineCommentTrivia */) { - writer.writeLine(); - } - } - function emitTrailingCommentOfPosition(commentPos, commentEnd, _kind, hasTrailingNewLine) { - if (!currentSourceFile) - return; - emitPos(commentPos); - writeCommentRange(currentSourceFile.text, getCurrentLineMap(), writer, commentPos, commentEnd, newLine); - emitPos(commentEnd); - if (hasTrailingNewLine) { - writer.writeLine(); - } - else { - writer.writeSpace(" "); - } - } - function forEachLeadingCommentToEmit(pos, cb) { - if (currentSourceFile && (containerPos === -1 || pos !== containerPos)) { - if (hasDetachedComments(pos)) { - forEachLeadingCommentWithoutDetachedComments(cb); - } - else { - forEachLeadingCommentRange(currentSourceFile.text, pos, cb, - /*state*/ - pos); - } - } - } - function forEachTrailingCommentToEmit(end, cb) { - if (currentSourceFile && (containerEnd === -1 || end !== containerEnd && end !== declarationListContainerEnd)) { - forEachTrailingCommentRange(currentSourceFile.text, end, cb); - } - } - function hasDetachedComments(pos) { - return detachedCommentsInfo !== void 0 && last(detachedCommentsInfo).nodePos === pos; - } - function forEachLeadingCommentWithoutDetachedComments(cb) { - if (!currentSourceFile) - return; - var pos = last(detachedCommentsInfo).detachedCommentEndPos; - if (detachedCommentsInfo.length - 1) { - detachedCommentsInfo.pop(); - } - else { - detachedCommentsInfo = void 0; - } - forEachLeadingCommentRange(currentSourceFile.text, pos, cb, - /*state*/ - pos); - } - function emitDetachedCommentsAndUpdateCommentsInfo(range) { - var currentDetachedCommentInfo = currentSourceFile && emitDetachedComments(currentSourceFile.text, getCurrentLineMap(), writer, emitComment, range, newLine, commentsDisabled); - if (currentDetachedCommentInfo) { - if (detachedCommentsInfo) { - detachedCommentsInfo.push(currentDetachedCommentInfo); - } - else { - detachedCommentsInfo = [currentDetachedCommentInfo]; - } - } - } - function emitComment(text, lineMap, writer2, commentPos, commentEnd, newLine2) { - if (!currentSourceFile || !shouldWriteComment(currentSourceFile.text, commentPos)) - return; - emitPos(commentPos); - writeCommentRange(text, lineMap, writer2, commentPos, commentEnd, newLine2); - emitPos(commentEnd); - } - function isTripleSlashComment(commentPos, commentEnd) { - return !!currentSourceFile && isRecognizedTripleSlashComment(currentSourceFile.text, commentPos, commentEnd); - } - function getParsedSourceMap(node) { - if (node.parsedSourceMap === void 0 && node.sourceMapText !== void 0) { - node.parsedSourceMap = tryParseRawSourceMap(node.sourceMapText) || false; - } - return node.parsedSourceMap || void 0; - } - function pipelineEmitWithSourceMaps(hint, node) { - var pipelinePhase = getNextPipelinePhase(3 /* SourceMaps */, hint, node); - emitSourceMapsBeforeNode(node); - pipelinePhase(hint, node); - emitSourceMapsAfterNode(node); - } - function emitSourceMapsBeforeNode(node) { - var emitFlags = getEmitFlags(node); - var sourceMapRange = getSourceMapRange(node); - if (isUnparsedNode(node)) { - Debug.assertIsDefined(node.parent, "UnparsedNodes must have parent pointers"); - var parsed = getParsedSourceMap(node.parent); - if (parsed && sourceMapGenerator) { - sourceMapGenerator.appendSourceMap(writer.getLine(), writer.getColumn(), parsed, node.parent.sourceMapPath, node.parent.getLineAndCharacterOfPosition(node.pos), node.parent.getLineAndCharacterOfPosition(node.end)); - } - } - else { - var source = sourceMapRange.source || sourceMapSource; - if (node.kind !== 359 /* NotEmittedStatement */ && (emitFlags & 32 /* NoLeadingSourceMap */) === 0 && sourceMapRange.pos >= 0) { - emitSourcePos(sourceMapRange.source || sourceMapSource, skipSourceTrivia(source, sourceMapRange.pos)); - } - if (emitFlags & 128 /* NoNestedSourceMaps */) { - sourceMapsDisabled = true; - } - } - } - function emitSourceMapsAfterNode(node) { - var emitFlags = getEmitFlags(node); - var sourceMapRange = getSourceMapRange(node); - if (!isUnparsedNode(node)) { - if (emitFlags & 128 /* NoNestedSourceMaps */) { - sourceMapsDisabled = false; - } - if (node.kind !== 359 /* NotEmittedStatement */ && (emitFlags & 64 /* NoTrailingSourceMap */) === 0 && sourceMapRange.end >= 0) { - emitSourcePos(sourceMapRange.source || sourceMapSource, sourceMapRange.end); - } - } - } - function skipSourceTrivia(source, pos) { - return source.skipTrivia ? source.skipTrivia(pos) : skipTrivia(source.text, pos); - } - function emitPos(pos) { - if (sourceMapsDisabled || positionIsSynthesized(pos) || isJsonSourceMapSource(sourceMapSource)) { - return; - } - var _t = getLineAndCharacterOfPosition(sourceMapSource, pos), sourceLine = _t.line, sourceCharacter = _t.character; - sourceMapGenerator.addMapping(writer.getLine(), writer.getColumn(), sourceMapSourceIndex, sourceLine, sourceCharacter, - /*nameIndex*/ - void 0); - } - function emitSourcePos(source, pos) { - if (source !== sourceMapSource) { - var savedSourceMapSource = sourceMapSource; - var savedSourceMapSourceIndex = sourceMapSourceIndex; - setSourceMapSource(source); - emitPos(pos); - resetSourceMapSource(savedSourceMapSource, savedSourceMapSourceIndex); - } - else { - emitPos(pos); - } - } - function emitTokenWithSourceMap(node, token, writer2, tokenPos, emitCallback) { - if (sourceMapsDisabled || node && isInJsonFile(node)) { - return emitCallback(token, writer2, tokenPos); - } - var emitNode = node && node.emitNode; - var emitFlags = emitNode && emitNode.flags || 0 /* None */; - var range = emitNode && emitNode.tokenSourceMapRanges && emitNode.tokenSourceMapRanges[token]; - var source = range && range.source || sourceMapSource; - tokenPos = skipSourceTrivia(source, range ? range.pos : tokenPos); - if ((emitFlags & 256 /* NoTokenLeadingSourceMaps */) === 0 && tokenPos >= 0) { - emitSourcePos(source, tokenPos); - } - tokenPos = emitCallback(token, writer2, tokenPos); - if (range) - tokenPos = range.end; - if ((emitFlags & 512 /* NoTokenTrailingSourceMaps */) === 0 && tokenPos >= 0) { - emitSourcePos(source, tokenPos); - } - return tokenPos; - } - function setSourceMapSource(source) { - if (sourceMapsDisabled) { - return; - } - sourceMapSource = source; - if (source === mostRecentlyAddedSourceMapSource) { - sourceMapSourceIndex = mostRecentlyAddedSourceMapSourceIndex; - return; - } - if (isJsonSourceMapSource(source)) { - return; - } - sourceMapSourceIndex = sourceMapGenerator.addSource(source.fileName); - if (printerOptions.inlineSources) { - sourceMapGenerator.setSourceContent(sourceMapSourceIndex, source.text); - } - mostRecentlyAddedSourceMapSource = source; - mostRecentlyAddedSourceMapSourceIndex = sourceMapSourceIndex; - } - function resetSourceMapSource(source, sourceIndex) { - sourceMapSource = source; - sourceMapSourceIndex = sourceIndex; - } - function isJsonSourceMapSource(sourceFile) { - return fileExtensionIs(sourceFile.fileName, ".json" /* Json */); - } -} -function createBracketsMap() { - var brackets2 = []; - brackets2[1024 /* Braces */] = ["{", "}"]; - brackets2[2048 /* Parenthesis */] = ["(", ")"]; - brackets2[4096 /* AngleBrackets */] = ["<", ">"]; - brackets2[8192 /* SquareBrackets */] = ["[", "]"]; - return brackets2; -} -function getOpeningBracket(format) { - return brackets[format & 15360 /* BracketsMask */][0]; -} -function getClosingBracket(format) { - return brackets[format & 15360 /* BracketsMask */][1]; -} -function emitListItemNoParenthesizer(node, emit, _parenthesizerRule, _index) { - emit(node); -} -function emitListItemWithParenthesizerRuleSelector(node, emit, parenthesizerRuleSelector, index) { - emit(node, parenthesizerRuleSelector.select(index)); -} -function emitListItemWithParenthesizerRule(node, emit, parenthesizerRule, _index) { - emit(node, parenthesizerRule); -} -function getEmitListItem(emit, parenthesizerRule) { - return emit.length === 1 ? emitListItemNoParenthesizer : typeof parenthesizerRule === "object" ? emitListItemWithParenthesizerRuleSelector : emitListItemWithParenthesizerRule; -} -// src/compiler/watchUtilities.ts -function createCachedDirectoryStructureHost(host, currentDirectory, useCaseSensitiveFileNames2) { - if (!host.getDirectories || !host.readDirectory) { - return void 0; - } - var cachedReadDirectoryResult = /* @__PURE__ */ new Map(); - var getCanonicalFileName = createGetCanonicalFileName(useCaseSensitiveFileNames2); - return { - useCaseSensitiveFileNames: useCaseSensitiveFileNames2, - fileExists: fileExists, - readFile: function (path, encoding) { return host.readFile(path, encoding); }, - directoryExists: host.directoryExists && directoryExists, - getDirectories: getDirectories, - readDirectory: readDirectory, - createDirectory: host.createDirectory && createDirectory, - writeFile: host.writeFile && writeFile2, - addOrDeleteFileOrDirectory: addOrDeleteFileOrDirectory, - addOrDeleteFile: addOrDeleteFile, - clearCache: clearCache, - realpath: host.realpath && realpath - }; - function toPath3(fileName) { - return toPath(fileName, currentDirectory, getCanonicalFileName); - } - function getCachedFileSystemEntries(rootDirPath) { - return cachedReadDirectoryResult.get(ensureTrailingDirectorySeparator(rootDirPath)); - } - function getCachedFileSystemEntriesForBaseDir(path) { - var entries = getCachedFileSystemEntries(getDirectoryPath(path)); - if (!entries) { - return entries; - } - if (!entries.sortedAndCanonicalizedFiles) { - entries.sortedAndCanonicalizedFiles = entries.files.map(getCanonicalFileName).sort(); - entries.sortedAndCanonicalizedDirectories = entries.directories.map(getCanonicalFileName).sort(); - } - return entries; - } - function getBaseNameOfFileName(fileName) { - return getBaseFileName(normalizePath(fileName)); - } - function createCachedFileSystemEntries(rootDir, rootDirPath) { - var _a; - if (!host.realpath || ensureTrailingDirectorySeparator(toPath3(host.realpath(rootDir))) === rootDirPath) { - var resultFromHost = { - files: map(host.readDirectory(rootDir, - /*extensions*/ - void 0, - /*exclude*/ - void 0, - /*include*/ - ["*.*"]), getBaseNameOfFileName) || [], - directories: host.getDirectories(rootDir) || [] - }; - cachedReadDirectoryResult.set(ensureTrailingDirectorySeparator(rootDirPath), resultFromHost); - return resultFromHost; - } - if ((_a = host.directoryExists) == null ? void 0 : _a.call(host, rootDir)) { - cachedReadDirectoryResult.set(rootDirPath, false); - return false; - } - return void 0; - } - function tryReadDirectory2(rootDir, rootDirPath) { - rootDirPath = ensureTrailingDirectorySeparator(rootDirPath); - var cachedResult = getCachedFileSystemEntries(rootDirPath); - if (cachedResult) { - return cachedResult; - } - try { - return createCachedFileSystemEntries(rootDir, rootDirPath); - } - catch (_e) { - Debug.assert(!cachedReadDirectoryResult.has(ensureTrailingDirectorySeparator(rootDirPath))); - return void 0; - } - } - function hasEntry(entries, name) { - var index = binarySearch(entries, name, identity, compareStringsCaseSensitive); - return index >= 0; - } - function writeFile2(fileName, data, writeByteOrderMark) { - var path = toPath3(fileName); - var result = getCachedFileSystemEntriesForBaseDir(path); - if (result) { - updateFilesOfFileSystemEntry(result, getBaseNameOfFileName(fileName), - /*fileExists*/ - true); - } - return host.writeFile(fileName, data, writeByteOrderMark); - } - function fileExists(fileName) { - var path = toPath3(fileName); - var result = getCachedFileSystemEntriesForBaseDir(path); - return result && hasEntry(result.sortedAndCanonicalizedFiles, getCanonicalFileName(getBaseNameOfFileName(fileName))) || host.fileExists(fileName); - } - function directoryExists(dirPath) { - var path = toPath3(dirPath); - return cachedReadDirectoryResult.has(ensureTrailingDirectorySeparator(path)) || host.directoryExists(dirPath); - } - function createDirectory(dirPath) { - var path = toPath3(dirPath); - var result = getCachedFileSystemEntriesForBaseDir(path); - if (result) { - var baseName = getBaseNameOfFileName(dirPath); - var canonicalizedBaseName = getCanonicalFileName(baseName); - var canonicalizedDirectories = result.sortedAndCanonicalizedDirectories; - if (insertSorted(canonicalizedDirectories, canonicalizedBaseName, compareStringsCaseSensitive)) { - result.directories.push(baseName); - } - } - host.createDirectory(dirPath); - } - function getDirectories(rootDir) { - var rootDirPath = toPath3(rootDir); - var result = tryReadDirectory2(rootDir, rootDirPath); - if (result) { - return result.directories.slice(); - } - return host.getDirectories(rootDir); - } - function readDirectory(rootDir, extensions, excludes, includes, depth) { - var rootDirPath = toPath3(rootDir); - var rootResult = tryReadDirectory2(rootDir, rootDirPath); - var rootSymLinkResult; - if (rootResult !== void 0) { - return matchFiles(rootDir, extensions, excludes, includes, useCaseSensitiveFileNames2, currentDirectory, depth, getFileSystemEntries, realpath); - } - return host.readDirectory(rootDir, extensions, excludes, includes, depth); - function getFileSystemEntries(dir) { - var path = toPath3(dir); - if (path === rootDirPath) { - return rootResult || getFileSystemEntriesFromHost(dir, path); - } - var result = tryReadDirectory2(dir, path); - return result !== void 0 ? result || getFileSystemEntriesFromHost(dir, path) : emptyFileSystemEntries; - } - function getFileSystemEntriesFromHost(dir, path) { - if (rootSymLinkResult && path === rootDirPath) - return rootSymLinkResult; - var result = { - files: map(host.readDirectory(dir, - /*extensions*/ - void 0, - /*exclude*/ - void 0, - /*include*/ - ["*.*"]), getBaseNameOfFileName) || emptyArray, - directories: host.getDirectories(dir) || emptyArray - }; - if (path === rootDirPath) - rootSymLinkResult = result; - return result; - } - } - function realpath(s) { - return host.realpath ? host.realpath(s) : s; - } - function addOrDeleteFileOrDirectory(fileOrDirectory, fileOrDirectoryPath) { - var existingResult = getCachedFileSystemEntries(fileOrDirectoryPath); - if (existingResult !== void 0) { - clearCache(); - return void 0; - } - var parentResult = getCachedFileSystemEntriesForBaseDir(fileOrDirectoryPath); - if (!parentResult) { - return void 0; - } - if (!host.directoryExists) { - clearCache(); - return void 0; - } - var baseName = getBaseNameOfFileName(fileOrDirectory); - var fsQueryResult = { - fileExists: host.fileExists(fileOrDirectoryPath), - directoryExists: host.directoryExists(fileOrDirectoryPath) - }; - if (fsQueryResult.directoryExists || hasEntry(parentResult.sortedAndCanonicalizedDirectories, getCanonicalFileName(baseName))) { - clearCache(); - } - else { - updateFilesOfFileSystemEntry(parentResult, baseName, fsQueryResult.fileExists); - } - return fsQueryResult; - } - function addOrDeleteFile(fileName, filePath, eventKind) { - if (eventKind === 1 /* Changed */) { - return; - } - var parentResult = getCachedFileSystemEntriesForBaseDir(filePath); - if (parentResult) { - updateFilesOfFileSystemEntry(parentResult, getBaseNameOfFileName(fileName), eventKind === 0 /* Created */); - } - } - function updateFilesOfFileSystemEntry(parentResult, baseName, fileExists2) { - var canonicalizedFiles = parentResult.sortedAndCanonicalizedFiles; - var canonicalizedBaseName = getCanonicalFileName(baseName); - if (fileExists2) { - if (insertSorted(canonicalizedFiles, canonicalizedBaseName, compareStringsCaseSensitive)) { - parentResult.files.push(baseName); - } - } - else { - var sortedIndex = binarySearch(canonicalizedFiles, canonicalizedBaseName, identity, compareStringsCaseSensitive); - if (sortedIndex >= 0) { - canonicalizedFiles.splice(sortedIndex, 1); - var unsortedIndex = parentResult.files.findIndex(function (entry) { return getCanonicalFileName(entry) === canonicalizedBaseName; }); - parentResult.files.splice(unsortedIndex, 1); - } - } - } - function clearCache() { - cachedReadDirectoryResult.clear(); - } -} -var ConfigFileProgramReloadLevel = /* @__PURE__ */ (function (ConfigFileProgramReloadLevel2) { - ConfigFileProgramReloadLevel2[ConfigFileProgramReloadLevel2["None"] = 0] = "None"; - ConfigFileProgramReloadLevel2[ConfigFileProgramReloadLevel2["Partial"] = 1] = "Partial"; - ConfigFileProgramReloadLevel2[ConfigFileProgramReloadLevel2["Full"] = 2] = "Full"; - return ConfigFileProgramReloadLevel2; -})(ConfigFileProgramReloadLevel || {}); -function updateSharedExtendedConfigFileWatcher(projectPath, options, extendedConfigFilesMap, createExtendedConfigFileWatch, toPath3) { - var _a; - var extendedConfigs = arrayToMap(((_a = options == null ? void 0 : options.configFile) == null ? void 0 : _a.extendedSourceFiles) || emptyArray, toPath3); - extendedConfigFilesMap.forEach(function (watcher, extendedConfigFilePath) { - if (!extendedConfigs.has(extendedConfigFilePath)) { - watcher.projects.delete(projectPath); - watcher.close(); - } - }); - extendedConfigs.forEach(function (extendedConfigFileName, extendedConfigFilePath) { - var existing = extendedConfigFilesMap.get(extendedConfigFilePath); - if (existing) { - existing.projects.add(projectPath); - } - else { - extendedConfigFilesMap.set(extendedConfigFilePath, { - projects: /* @__PURE__ */ new Set([projectPath]), - watcher: createExtendedConfigFileWatch(extendedConfigFileName, extendedConfigFilePath), - close: function () { - var existing2 = extendedConfigFilesMap.get(extendedConfigFilePath); - if (!existing2 || existing2.projects.size !== 0) - return; - existing2.watcher.close(); - extendedConfigFilesMap.delete(extendedConfigFilePath); - } - }); - } - }); -} -function clearSharedExtendedConfigFileWatcher(projectPath, extendedConfigFilesMap) { - extendedConfigFilesMap.forEach(function (watcher) { - if (watcher.projects.delete(projectPath)) - watcher.close(); - }); -} -function cleanExtendedConfigCache(extendedConfigCache, extendedConfigFilePath, toPath3) { - if (!extendedConfigCache.delete(extendedConfigFilePath)) - return; - extendedConfigCache.forEach(function (_t, key) { - var extendedResult = _t.extendedResult; - var _a; - if ((_a = extendedResult.extendedSourceFiles) == null ? void 0 : _a.some(function (extendedFile) { return toPath3(extendedFile) === extendedConfigFilePath; })) { - cleanExtendedConfigCache(extendedConfigCache, key, toPath3); - } - }); -} -function updatePackageJsonWatch(lookups, packageJsonWatches, createPackageJsonWatch) { - var newMap = new Map(lookups); - mutateMap(packageJsonWatches, newMap, { - createNewValue: createPackageJsonWatch, - onDeleteValue: closeFileWatcher - }); -} -function updateMissingFilePathsWatch(program, missingFileWatches, createMissingFileWatch) { - var missingFilePaths = program.getMissingFilePaths(); - var newMissingFilePathMap = arrayToMap(missingFilePaths, identity, returnTrue); - mutateMap(missingFileWatches, newMissingFilePathMap, { - // Watch the missing files - createNewValue: createMissingFileWatch, - // Files that are no longer missing (e.g. because they are no longer required) - // should no longer be watched. - onDeleteValue: closeFileWatcher - }); -} -function updateWatchingWildcardDirectories(existingWatchedForWildcards, wildcardDirectories, watchDirectory) { - mutateMap(existingWatchedForWildcards, wildcardDirectories, { - // Create new watch and recursive info - createNewValue: createWildcardDirectoryWatcher, - // Close existing watch thats not needed any more - onDeleteValue: closeFileWatcherOf, - // Close existing watch that doesnt match in the flags - onExistingValue: updateWildcardDirectoryWatcher - }); - function createWildcardDirectoryWatcher(directory, flags) { - return { - watcher: watchDirectory(directory, flags), - flags: flags - }; - } - function updateWildcardDirectoryWatcher(existingWatcher, flags, directory) { - if (existingWatcher.flags === flags) { - return; - } - existingWatcher.watcher.close(); - existingWatchedForWildcards.set(directory, createWildcardDirectoryWatcher(directory, flags)); - } -} -function isIgnoredFileFromWildCardWatching(_t) { - var watchedDirPath = _t.watchedDirPath, fileOrDirectory = _t.fileOrDirectory, fileOrDirectoryPath = _t.fileOrDirectoryPath, configFileName = _t.configFileName, options = _t.options, program = _t.program, extraFileExtensions = _t.extraFileExtensions, currentDirectory = _t.currentDirectory, useCaseSensitiveFileNames2 = _t.useCaseSensitiveFileNames, writeLog = _t.writeLog, toPath3 = _t.toPath; - var newPath = removeIgnoredPath(fileOrDirectoryPath); - if (!newPath) { - writeLog("Project: ".concat(configFileName, " Detected ignored path: ").concat(fileOrDirectory)); - return true; - } - fileOrDirectoryPath = newPath; - if (fileOrDirectoryPath === watchedDirPath) - return false; - if (hasExtension(fileOrDirectoryPath) && !isSupportedSourceFileName(fileOrDirectory, options, extraFileExtensions)) { - writeLog("Project: ".concat(configFileName, " Detected file add/remove of non supported extension: ").concat(fileOrDirectory)); - return true; - } - if (isExcludedFile(fileOrDirectory, options.configFile.configFileSpecs, getNormalizedAbsolutePath(getDirectoryPath(configFileName), currentDirectory), useCaseSensitiveFileNames2, currentDirectory)) { - writeLog("Project: ".concat(configFileName, " Detected excluded file: ").concat(fileOrDirectory)); - return true; - } - if (!program) - return false; - if (outFile(options) || options.outDir) - return false; - if (isDeclarationFileName(fileOrDirectoryPath)) { - if (options.declarationDir) - return false; - } - else if (!fileExtensionIsOneOf(fileOrDirectoryPath, supportedJSExtensionsFlat)) { - return false; - } - var filePathWithoutExtension = removeFileExtension(fileOrDirectoryPath); - var realProgram = isArray(program) ? void 0 : isBuilderProgram(program) ? program.getProgramOrUndefined() : program; - var builderProgram = !realProgram && !isArray(program) ? program : void 0; - if (hasSourceFile(filePathWithoutExtension + ".ts" /* Ts */) || hasSourceFile(filePathWithoutExtension + ".tsx" /* Tsx */)) { - writeLog("Project: ".concat(configFileName, " Detected output file: ").concat(fileOrDirectory)); - return true; - } - return false; - function hasSourceFile(file) { - return realProgram ? !!realProgram.getSourceFileByPath(file) : builderProgram ? builderProgram.getState().fileInfos.has(file) : !!find(program, function (rootFile) { return toPath3(rootFile) === file; }); - } -} -function isBuilderProgram(program) { - return !!program.getState; -} -function isEmittedFileOfProgram(program, file) { - if (!program) { - return false; - } - return program.isEmittedFile(file); -} -var WatchLogLevel = /* @__PURE__ */ (function (WatchLogLevel2) { - WatchLogLevel2[WatchLogLevel2["None"] = 0] = "None"; - WatchLogLevel2[WatchLogLevel2["TriggerOnly"] = 1] = "TriggerOnly"; - WatchLogLevel2[WatchLogLevel2["Verbose"] = 2] = "Verbose"; - return WatchLogLevel2; -})(WatchLogLevel || {}); -function getWatchFactory(host, watchLogLevel, log, getDetailWatchInfo2) { - setSysLog(watchLogLevel === 2 /* Verbose */ ? log : noop); - var plainInvokeFactory = { - watchFile: function (file, callback, pollingInterval, options) { return host.watchFile(file, callback, pollingInterval, options); }, - watchDirectory: function (directory, callback, flags, options) { return host.watchDirectory(directory, callback, (flags & 1 /* Recursive */) !== 0, options); } - }; - var triggerInvokingFactory = watchLogLevel !== 0 /* None */ ? { - watchFile: createTriggerLoggingAddWatch("watchFile"), - watchDirectory: createTriggerLoggingAddWatch("watchDirectory") - } : void 0; - var factory2 = watchLogLevel === 2 /* Verbose */ ? { - watchFile: createFileWatcherWithLogging, - watchDirectory: createDirectoryWatcherWithLogging - } : triggerInvokingFactory || plainInvokeFactory; - var excludeWatcherFactory = watchLogLevel === 2 /* Verbose */ ? createExcludeWatcherWithLogging : returnNoopFileWatcher; - return { - watchFile: createExcludeHandlingAddWatch("watchFile"), - watchDirectory: createExcludeHandlingAddWatch("watchDirectory") - }; - function createExcludeHandlingAddWatch(key) { - return function (file, cb, flags, options, detailInfo1, detailInfo2) { - var _a; - return !matchesExclude(file, key === "watchFile" ? options == null ? void 0 : options.excludeFiles : options == null ? void 0 : options.excludeDirectories, useCaseSensitiveFileNames2(), ((_a = host.getCurrentDirectory) == null ? void 0 : _a.call(host)) || "") ? factory2[key].call( - /*thisArgs*/ - void 0, file, cb, flags, options, detailInfo1, detailInfo2) : excludeWatcherFactory(file, flags, options, detailInfo1, detailInfo2); - }; - } - function useCaseSensitiveFileNames2() { - return typeof host.useCaseSensitiveFileNames === "boolean" ? host.useCaseSensitiveFileNames : host.useCaseSensitiveFileNames(); - } - function createExcludeWatcherWithLogging(file, flags, options, detailInfo1, detailInfo2) { - log("ExcludeWatcher:: Added:: ".concat(getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo2))); - return { - close: function () { return log("ExcludeWatcher:: Close:: ".concat(getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo2))); } - }; - } - function createFileWatcherWithLogging(file, cb, flags, options, detailInfo1, detailInfo2) { - log("FileWatcher:: Added:: ".concat(getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo2))); - var watcher = triggerInvokingFactory.watchFile(file, cb, flags, options, detailInfo1, detailInfo2); - return { - close: function () { - log("FileWatcher:: Close:: ".concat(getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo2))); - watcher.close(); - } - }; - } - function createDirectoryWatcherWithLogging(file, cb, flags, options, detailInfo1, detailInfo2) { - var watchInfo = "DirectoryWatcher:: Added:: ".concat(getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo2)); - log(watchInfo); - var start2 = timestamp(); - var watcher = triggerInvokingFactory.watchDirectory(file, cb, flags, options, detailInfo1, detailInfo2); - var elapsed = timestamp() - start2; - log("Elapsed:: ".concat(elapsed, "ms ").concat(watchInfo)); - return { - close: function () { - var watchInfo2 = "DirectoryWatcher:: Close:: ".concat(getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo2)); - log(watchInfo2); - var start3 = timestamp(); - watcher.close(); - var elapsed2 = timestamp() - start3; - log("Elapsed:: ".concat(elapsed2, "ms ").concat(watchInfo2)); - } - }; - } - function createTriggerLoggingAddWatch(key) { - return function (file, cb, flags, options, detailInfo1, detailInfo2) { return plainInvokeFactory[key].call( - /*thisArgs*/ - void 0, file, function () { - var args = []; - for (var _t = 0; _t < arguments.length; _t++) { - args[_t] = arguments[_t]; - } - var triggerredInfo = "".concat(key === "watchFile" ? "FileWatcher" : "DirectoryWatcher", ":: Triggered with ").concat(args[0], " ").concat(args[1] !== void 0 ? args[1] : "", ":: ").concat(getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo2)); - log(triggerredInfo); - var start2 = timestamp(); - cb.call.apply(cb, __spreadArray([ - /*thisArg*/ - void 0], __read(args), false)); - var elapsed = timestamp() - start2; - log("Elapsed:: ".concat(elapsed, "ms ").concat(triggerredInfo)); - }, flags, options, detailInfo1, detailInfo2); }; - } - function getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo3) { - return "WatchInfo: ".concat(file, " ").concat(flags, " ").concat(JSON.stringify(options), " ").concat(getDetailWatchInfo3 ? getDetailWatchInfo3(detailInfo1, detailInfo2) : detailInfo2 === void 0 ? detailInfo1 : "".concat(detailInfo1, " ").concat(detailInfo2)); - } -} -function getFallbackOptions(options) { - var fallbackPolling = options == null ? void 0 : options.fallbackPolling; - return { - watchFile: fallbackPolling !== void 0 ? fallbackPolling : 1 /* PriorityPollingInterval */ - }; -} -function closeFileWatcherOf(objWithWatcher) { - objWithWatcher.watcher.close(); -} -// src/compiler/program.ts -function findConfigFile(searchPath, fileExists, configName) { - if (configName === void 0) { configName = "tsconfig.json"; } - return forEachAncestorDirectory(searchPath, function (ancestor) { - var fileName = combinePaths(ancestor, configName); - return fileExists(fileName) ? fileName : void 0; - }); -} -function resolveTripleslashReference(moduleName, containingFile) { - var basePath = getDirectoryPath(containingFile); - var referencedFileName = isRootedDiskPath(moduleName) ? moduleName : combinePaths(basePath, moduleName); - return normalizePath(referencedFileName); -} -function computeCommonSourceDirectoryOfFilenames(fileNames, currentDirectory, getCanonicalFileName) { - var commonPathComponents; - var failed = forEach(fileNames, function (sourceFile) { - var sourcePathComponents = getNormalizedPathComponents(sourceFile, currentDirectory); - sourcePathComponents.pop(); - if (!commonPathComponents) { - commonPathComponents = sourcePathComponents; - return; - } - var n = Math.min(commonPathComponents.length, sourcePathComponents.length); - for (var i = 0; i < n; i++) { - if (getCanonicalFileName(commonPathComponents[i]) !== getCanonicalFileName(sourcePathComponents[i])) { - if (i === 0) { - return true; - } - commonPathComponents.length = i; - break; - } - } - if (sourcePathComponents.length < commonPathComponents.length) { - commonPathComponents.length = sourcePathComponents.length; - } - }); - if (failed) { - return ""; - } - if (!commonPathComponents) { - return currentDirectory; - } - return getPathFromPathComponents(commonPathComponents); -} -function createCompilerHost(options, setParentNodes) { - return createCompilerHostWorker(options, setParentNodes); -} -function createGetSourceFile(readFile, getCompilerOptions, setParentNodes) { - return function (fileName, languageVersionOrOptions, onError) { - var text; - try { - mark("beforeIORead"); - text = readFile(fileName, getCompilerOptions().charset); - mark("afterIORead"); - measure("I/O Read", "beforeIORead", "afterIORead"); - } - catch (e) { - if (onError) { - onError(e.message); - } - text = ""; - } - return text !== void 0 ? createSourceFile(fileName, text, languageVersionOrOptions, setParentNodes) : void 0; - }; -} -function createWriteFileMeasuringIO(actualWriteFile, createDirectory, directoryExists) { - return function (fileName, data, writeByteOrderMark, onError) { - try { - mark("beforeIOWrite"); - writeFileEnsuringDirectories(fileName, data, writeByteOrderMark, actualWriteFile, createDirectory, directoryExists); - mark("afterIOWrite"); - measure("I/O Write", "beforeIOWrite", "afterIOWrite"); - } - catch (e) { - if (onError) { - onError(e.message); - } - } - }; -} -function createCompilerHostWorker(options, setParentNodes, system) { - if (system === void 0) { system = sys; } - var existingDirectories = /* @__PURE__ */ new Map(); - var getCanonicalFileName = createGetCanonicalFileName(system.useCaseSensitiveFileNames); - function directoryExists(directoryPath) { - if (existingDirectories.has(directoryPath)) { - return true; - } - if ((compilerHost.directoryExists || system.directoryExists)(directoryPath)) { - existingDirectories.set(directoryPath, true); - return true; - } - return false; - } - function getDefaultLibLocation() { - return getDirectoryPath(normalizePath(system.getExecutingFilePath())); - } - var newLine = getNewLineCharacter(options); - var realpath = system.realpath && (function (path) { return system.realpath(path); }); - var compilerHost = { - getSourceFile: createGetSourceFile(function (fileName) { return compilerHost.readFile(fileName); }, function () { return options; }, setParentNodes), - getDefaultLibLocation: getDefaultLibLocation, - getDefaultLibFileName: function (options2) { return combinePaths(getDefaultLibLocation(), getDefaultLibFileName(options2)); }, - writeFile: createWriteFileMeasuringIO(function (path, data, writeByteOrderMark) { return system.writeFile(path, data, writeByteOrderMark); }, function (path) { return (compilerHost.createDirectory || system.createDirectory)(path); }, function (path) { return directoryExists(path); }), - getCurrentDirectory: memoize(function () { return system.getCurrentDirectory(); }), - useCaseSensitiveFileNames: function () { return system.useCaseSensitiveFileNames; }, - getCanonicalFileName: getCanonicalFileName, - getNewLine: function () { return newLine; }, - fileExists: function (fileName) { return system.fileExists(fileName); }, - readFile: function (fileName) { return system.readFile(fileName); }, - trace: function (s) { return system.write(s + newLine); }, - directoryExists: function (directoryName) { return system.directoryExists(directoryName); }, - getEnvironmentVariable: function (name) { return system.getEnvironmentVariable ? system.getEnvironmentVariable(name) : ""; }, - getDirectories: function (path) { return system.getDirectories(path); }, - realpath: realpath, - readDirectory: function (path, extensions, include, exclude, depth) { return system.readDirectory(path, extensions, include, exclude, depth); }, - createDirectory: function (d) { return system.createDirectory(d); }, - createHash: maybeBind(system, system.createHash) - }; - return compilerHost; -} -function changeCompilerHostLikeToUseCache(host, toPath3, getSourceFile) { - var originalReadFile = host.readFile; - var originalFileExists = host.fileExists; - var originalDirectoryExists = host.directoryExists; - var originalCreateDirectory = host.createDirectory; - var originalWriteFile = host.writeFile; - var readFileCache = /* @__PURE__ */ new Map(); - var fileExistsCache = /* @__PURE__ */ new Map(); - var directoryExistsCache = /* @__PURE__ */ new Map(); - var sourceFileCache = /* @__PURE__ */ new Map(); - var readFileWithCache = function (fileName) { - var key = toPath3(fileName); - var value = readFileCache.get(key); - if (value !== void 0) - return value !== false ? value : void 0; - return setReadFileCache(key, fileName); - }; - var setReadFileCache = function (key, fileName) { - var newValue = originalReadFile.call(host, fileName); - readFileCache.set(key, newValue !== void 0 ? newValue : false); - return newValue; - }; - host.readFile = function (fileName) { - var key = toPath3(fileName); - var value = readFileCache.get(key); - if (value !== void 0) - return value !== false ? value : void 0; - if (!fileExtensionIs(fileName, ".json" /* Json */) && !isBuildInfoFile(fileName)) { - return originalReadFile.call(host, fileName); - } - return setReadFileCache(key, fileName); - }; - var getSourceFileWithCache = getSourceFile ? function (fileName, languageVersionOrOptions, onError, shouldCreateNewSourceFile) { - var key = toPath3(fileName); - var impliedNodeFormat = typeof languageVersionOrOptions === "object" ? languageVersionOrOptions.impliedNodeFormat : void 0; - var forImpliedNodeFormat = sourceFileCache.get(impliedNodeFormat); - var value = forImpliedNodeFormat == null ? void 0 : forImpliedNodeFormat.get(key); - if (value) - return value; - var sourceFile = getSourceFile(fileName, languageVersionOrOptions, onError, shouldCreateNewSourceFile); - if (sourceFile && (isDeclarationFileName(fileName) || fileExtensionIs(fileName, ".json" /* Json */))) { - sourceFileCache.set(impliedNodeFormat, (forImpliedNodeFormat || /* @__PURE__ */ new Map()).set(key, sourceFile)); - } - return sourceFile; - } : void 0; - host.fileExists = function (fileName) { - var key = toPath3(fileName); - var value = fileExistsCache.get(key); - if (value !== void 0) - return value; - var newValue = originalFileExists.call(host, fileName); - fileExistsCache.set(key, !!newValue); - return newValue; - }; - if (originalWriteFile) { - host.writeFile = function (fileName, data) { - var rest = []; - for (var _t = 2; _t < arguments.length; _t++) { - rest[_t - 2] = arguments[_t]; - } - var key = toPath3(fileName); - fileExistsCache.delete(key); - var value = readFileCache.get(key); - if (value !== void 0 && value !== data) { - readFileCache.delete(key); - sourceFileCache.forEach(function (map2) { return map2.delete(key); }); - } - else if (getSourceFileWithCache) { - sourceFileCache.forEach(function (map2) { - var sourceFile = map2.get(key); - if (sourceFile && sourceFile.text !== data) { - map2.delete(key); - } - }); - } - originalWriteFile.call.apply(originalWriteFile, __spreadArray([host, fileName, data], __read(rest), false)); - }; - } - if (originalDirectoryExists) { - host.directoryExists = function (directory) { - var key = toPath3(directory); - var value = directoryExistsCache.get(key); - if (value !== void 0) - return value; - var newValue = originalDirectoryExists.call(host, directory); - directoryExistsCache.set(key, !!newValue); - return newValue; - }; - if (originalCreateDirectory) { - host.createDirectory = function (directory) { - var key = toPath3(directory); - directoryExistsCache.delete(key); - originalCreateDirectory.call(host, directory); - }; - } - } - return { - originalReadFile: originalReadFile, - originalFileExists: originalFileExists, - originalDirectoryExists: originalDirectoryExists, - originalCreateDirectory: originalCreateDirectory, - originalWriteFile: originalWriteFile, - getSourceFileWithCache: getSourceFileWithCache, - readFileWithCache: readFileWithCache - }; -} -function getPreEmitDiagnostics(program, sourceFile, cancellationToken) { - var diagnostics; - diagnostics = addRange(diagnostics, program.getConfigFileParsingDiagnostics()); - diagnostics = addRange(diagnostics, program.getOptionsDiagnostics(cancellationToken)); - diagnostics = addRange(diagnostics, program.getSyntacticDiagnostics(sourceFile, cancellationToken)); - diagnostics = addRange(diagnostics, program.getGlobalDiagnostics(cancellationToken)); - diagnostics = addRange(diagnostics, program.getSemanticDiagnostics(sourceFile, cancellationToken)); - if (getEmitDeclarations(program.getCompilerOptions())) { - diagnostics = addRange(diagnostics, program.getDeclarationDiagnostics(sourceFile, cancellationToken)); - } - return sortAndDeduplicateDiagnostics(diagnostics || emptyArray); -} -function formatDiagnostics(diagnostics, host) { - var e_584, _t; - var output = ""; - try { - for (var diagnostics_2 = __values(diagnostics), diagnostics_2_1 = diagnostics_2.next(); !diagnostics_2_1.done; diagnostics_2_1 = diagnostics_2.next()) { - var diagnostic = diagnostics_2_1.value; - output += formatDiagnostic(diagnostic, host); - } - } - catch (e_584_1) { e_584 = { error: e_584_1 }; } - finally { - try { - if (diagnostics_2_1 && !diagnostics_2_1.done && (_t = diagnostics_2.return)) _t.call(diagnostics_2); - } - finally { if (e_584) throw e_584.error; } - } - return output; -} -function formatDiagnostic(diagnostic, host) { - var errorMessage = "".concat(diagnosticCategoryName(diagnostic), " TS").concat(diagnostic.code, ": ").concat(flattenDiagnosticMessageText(diagnostic.messageText, host.getNewLine())).concat(host.getNewLine()); - if (diagnostic.file) { - var _t = getLineAndCharacterOfPosition(diagnostic.file, diagnostic.start), line = _t.line, character = _t.character; - var fileName = diagnostic.file.fileName; - var relativeFileName = convertToRelativePath(fileName, host.getCurrentDirectory(), function (fileName2) { return host.getCanonicalFileName(fileName2); }); - return "".concat(relativeFileName, "(").concat(line + 1, ",").concat(character + 1, "): ") + errorMessage; - } - return errorMessage; -} -var ForegroundColorEscapeSequences = /* @__PURE__ */ (function (ForegroundColorEscapeSequences2) { - ForegroundColorEscapeSequences2["Grey"] = "\x1B[90m"; - ForegroundColorEscapeSequences2["Red"] = "\x1B[91m"; - ForegroundColorEscapeSequences2["Yellow"] = "\x1B[93m"; - ForegroundColorEscapeSequences2["Blue"] = "\x1B[94m"; - ForegroundColorEscapeSequences2["Cyan"] = "\x1B[96m"; - return ForegroundColorEscapeSequences2; -})(ForegroundColorEscapeSequences || {}); -var gutterStyleSequence = "\x1B[7m"; -var gutterSeparator = " "; -var resetEscapeSequence = "\x1B[0m"; -var ellipsis = "..."; -var halfIndent = " "; -var indent = " "; -function getCategoryFormat(category) { - switch (category) { - case 1 /* Error */: - return "\x1B[91m" /* Red */; - case 0 /* Warning */: - return "\x1B[93m" /* Yellow */; - case 2 /* Suggestion */: - return Debug.fail("Should never get an Info diagnostic on the command line."); - case 3 /* Message */: - return "\x1B[94m" /* Blue */; - } -} -function formatColorAndReset(text, formatStyle) { - return formatStyle + text + resetEscapeSequence; -} -function formatCodeSpan(file, start2, length2, indent3, squiggleColor, host) { - var _t = getLineAndCharacterOfPosition(file, start2), firstLine = _t.line, firstLineChar = _t.character; - var _u = getLineAndCharacterOfPosition(file, start2 + length2), lastLine = _u.line, lastLineChar = _u.character; - var lastLineInFile = getLineAndCharacterOfPosition(file, file.text.length).line; - var hasMoreThanFiveLines = lastLine - firstLine >= 4; - var gutterWidth = (lastLine + 1 + "").length; - if (hasMoreThanFiveLines) { - gutterWidth = Math.max(ellipsis.length, gutterWidth); - } - var context = ""; - for (var i = firstLine; i <= lastLine; i++) { - context += host.getNewLine(); - if (hasMoreThanFiveLines && firstLine + 1 < i && i < lastLine - 1) { - context += indent3 + formatColorAndReset(padLeft(ellipsis, gutterWidth), gutterStyleSequence) + gutterSeparator + host.getNewLine(); - i = lastLine - 1; - } - var lineStart = getPositionOfLineAndCharacter(file, i, 0); - var lineEnd = i < lastLineInFile ? getPositionOfLineAndCharacter(file, i + 1, 0) : file.text.length; - var lineContent = file.text.slice(lineStart, lineEnd); - lineContent = trimStringEnd(lineContent); - lineContent = lineContent.replace(/\t/g, " "); - context += indent3 + formatColorAndReset(padLeft(i + 1 + "", gutterWidth), gutterStyleSequence) + gutterSeparator; - context += lineContent + host.getNewLine(); - context += indent3 + formatColorAndReset(padLeft("", gutterWidth), gutterStyleSequence) + gutterSeparator; - context += squiggleColor; - if (i === firstLine) { - var lastCharForLine = i === lastLine ? lastLineChar : void 0; - context += lineContent.slice(0, firstLineChar).replace(/\S/g, " "); - context += lineContent.slice(firstLineChar, lastCharForLine).replace(/./g, "~"); - } - else if (i === lastLine) { - context += lineContent.slice(0, lastLineChar).replace(/./g, "~"); - } - else { - context += lineContent.replace(/./g, "~"); - } - context += resetEscapeSequence; - } - return context; -} -function formatLocation(file, start2, host, color) { - if (color === void 0) { color = formatColorAndReset; } - var _t = getLineAndCharacterOfPosition(file, start2), firstLine = _t.line, firstLineChar = _t.character; - var relativeFileName = host ? convertToRelativePath(file.fileName, host.getCurrentDirectory(), function (fileName) { return host.getCanonicalFileName(fileName); }) : file.fileName; - var output = ""; - output += color(relativeFileName, "\x1B[96m" /* Cyan */); - output += ":"; - output += color("".concat(firstLine + 1), "\x1B[93m" /* Yellow */); - output += ":"; - output += color("".concat(firstLineChar + 1), "\x1B[93m" /* Yellow */); - return output; -} -function formatDiagnosticsWithColorAndContext(diagnostics, host) { - var e_585, _t, e_586, _u; - var output = ""; - try { - for (var diagnostics_3 = __values(diagnostics), diagnostics_3_1 = diagnostics_3.next(); !diagnostics_3_1.done; diagnostics_3_1 = diagnostics_3.next()) { - var diagnostic = diagnostics_3_1.value; - if (diagnostic.file) { - var file = diagnostic.file, start2 = diagnostic.start; - output += formatLocation(file, start2, host); - output += " - "; - } - output += formatColorAndReset(diagnosticCategoryName(diagnostic), getCategoryFormat(diagnostic.category)); - output += formatColorAndReset(" TS".concat(diagnostic.code, ": "), "\x1B[90m" /* Grey */); - output += flattenDiagnosticMessageText(diagnostic.messageText, host.getNewLine()); - if (diagnostic.file && diagnostic.code !== Diagnostics.File_appears_to_be_binary.code) { - output += host.getNewLine(); - output += formatCodeSpan(diagnostic.file, diagnostic.start, diagnostic.length, "", getCategoryFormat(diagnostic.category), host); - } - if (diagnostic.relatedInformation) { - output += host.getNewLine(); - try { - for (var _v = (e_586 = void 0, __values(diagnostic.relatedInformation)), _w = _v.next(); !_w.done; _w = _v.next()) { - var _x = _w.value, file = _x.file, start2 = _x.start, length2 = _x.length, messageText = _x.messageText; - if (file) { - output += host.getNewLine(); - output += halfIndent + formatLocation(file, start2, host); - output += formatCodeSpan(file, start2, length2, indent, "\x1B[96m" /* Cyan */, host); - } - output += host.getNewLine(); - output += indent + flattenDiagnosticMessageText(messageText, host.getNewLine()); - } - } - catch (e_586_1) { e_586 = { error: e_586_1 }; } - finally { - try { - if (_w && !_w.done && (_u = _v.return)) _u.call(_v); - } - finally { if (e_586) throw e_586.error; } - } - } - output += host.getNewLine(); - } - } - catch (e_585_1) { e_585 = { error: e_585_1 }; } - finally { - try { - if (diagnostics_3_1 && !diagnostics_3_1.done && (_t = diagnostics_3.return)) _t.call(diagnostics_3); - } - finally { if (e_585) throw e_585.error; } - } - return output; -} -function flattenDiagnosticMessageText(diag2, newLine, indent3) { - var e_587, _t; - if (indent3 === void 0) { indent3 = 0; } - if (isString(diag2)) { - return diag2; - } - else if (diag2 === void 0) { - return ""; - } - var result = ""; - if (indent3) { - result += newLine; - for (var i = 0; i < indent3; i++) { - result += " "; - } - } - result += diag2.messageText; - indent3++; - if (diag2.next) { - try { - for (var _u = __values(diag2.next), _v = _u.next(); !_v.done; _v = _u.next()) { - var kid = _v.value; - result += flattenDiagnosticMessageText(kid, newLine, indent3); - } - } - catch (e_587_1) { e_587 = { error: e_587_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_587) throw e_587.error; } - } - } - return result; -} -function getModeForFileReference(ref, containingFileMode) { - return (isString(ref) ? containingFileMode : ref.resolutionMode) || containingFileMode; -} -function getModeForResolutionAtIndex(file, index) { - if (file.impliedNodeFormat === void 0) - return void 0; - return getModeForUsageLocation(file, getModuleNameStringLiteralAt(file, index)); -} -function isExclusivelyTypeOnlyImportOrExport(decl) { - var _a; - if (isExportDeclaration(decl)) { - return decl.isTypeOnly; - } - if ((_a = decl.importClause) == null ? void 0 : _a.isTypeOnly) { - return true; - } - return false; -} -function getModeForUsageLocation(file, usage) { - var _a, _b; - if (file.impliedNodeFormat === void 0) - return void 0; - if (isImportDeclaration(usage.parent) || isExportDeclaration(usage.parent)) { - var isTypeOnly = isExclusivelyTypeOnlyImportOrExport(usage.parent); - if (isTypeOnly) { - var override = getResolutionModeOverrideForClause(usage.parent.assertClause); - if (override) { - return override; - } - } - } - if (usage.parent.parent && isImportTypeNode(usage.parent.parent)) { - var override = getResolutionModeOverrideForClause((_a = usage.parent.parent.assertions) == null ? void 0 : _a.assertClause); - if (override) { - return override; - } - } - if (file.impliedNodeFormat !== 99 /* ESNext */) { - return isImportCall(walkUpParenthesizedExpressions(usage.parent)) ? 99 /* ESNext */ : 1 /* CommonJS */; - } - var exprParentParent = (_b = walkUpParenthesizedExpressions(usage.parent)) == null ? void 0 : _b.parent; - return exprParentParent && isImportEqualsDeclaration(exprParentParent) ? 1 /* CommonJS */ : 99 /* ESNext */; -} -function getResolutionModeOverrideForClause(clause, grammarErrorOnNode) { - if (!clause) - return void 0; - if (length(clause.elements) !== 1) { - grammarErrorOnNode == null ? void 0 : grammarErrorOnNode(clause, Diagnostics.Type_import_assertions_should_have_exactly_one_key_resolution_mode_with_value_import_or_require); - return void 0; - } - var elem = clause.elements[0]; - if (!isStringLiteralLike(elem.name)) - return void 0; - if (elem.name.text !== "resolution-mode") { - grammarErrorOnNode == null ? void 0 : grammarErrorOnNode(elem.name, Diagnostics.resolution_mode_is_the_only_valid_key_for_type_import_assertions); - return void 0; - } - if (!isStringLiteralLike(elem.value)) - return void 0; - if (elem.value.text !== "import" && elem.value.text !== "require") { - grammarErrorOnNode == null ? void 0 : grammarErrorOnNode(elem.value, Diagnostics.resolution_mode_should_be_either_require_or_import); - return void 0; - } - return elem.value.text === "import" ? 99 /* ESNext */ : 1 /* CommonJS */; -} -var emptyResolution = { - resolvedModule: void 0, - resolvedTypeReferenceDirective: void 0 -}; -function getModuleResolutionName(literal) { - return literal.text; -} -var moduleResolutionNameAndModeGetter = { - getName: getModuleResolutionName, - getMode: function (entry, file) { return getModeForUsageLocation(file, entry); } -}; -function createModuleResolutionLoader(containingFile, redirectedReference, options, host, cache) { - return { - nameAndMode: moduleResolutionNameAndModeGetter, - resolve: function (moduleName, resolutionMode) { return resolveModuleName(moduleName, containingFile, options, host, cache, redirectedReference, resolutionMode); } - }; -} -function getTypeReferenceResolutionName(entry) { - return !isString(entry) ? toFileNameLowerCase(entry.fileName) : entry; -} -var typeReferenceResolutionNameAndModeGetter = { - getName: getTypeReferenceResolutionName, - getMode: function (entry, file) { return getModeForFileReference(entry, file == null ? void 0 : file.impliedNodeFormat); } -}; -function createTypeReferenceResolutionLoader(containingFile, redirectedReference, options, host, cache) { - return { - nameAndMode: typeReferenceResolutionNameAndModeGetter, - resolve: function (typeRef, resoluionMode) { return resolveTypeReferenceDirective(typeRef, containingFile, options, host, redirectedReference, cache, resoluionMode); } - }; -} -function loadWithModeAwareCache(entries, containingFile, redirectedReference, options, containingSourceFile, host, resolutionCache, createLoader) { - var e_588, _t; - if (entries.length === 0) - return emptyArray; - var resolutions = []; - var cache = /* @__PURE__ */ new Map(); - var loader = createLoader(containingFile, redirectedReference, options, host, resolutionCache); - try { - for (var entries_3 = __values(entries), entries_3_1 = entries_3.next(); !entries_3_1.done; entries_3_1 = entries_3.next()) { - var entry = entries_3_1.value; - var name_95 = loader.nameAndMode.getName(entry); - var mode = loader.nameAndMode.getMode(entry, containingSourceFile); - var key = createModeAwareCacheKey(name_95, mode); - var result = cache.get(key); - if (!result) { - cache.set(key, result = loader.resolve(name_95, mode)); - } - resolutions.push(result); - } - } - catch (e_588_1) { e_588 = { error: e_588_1 }; } - finally { - try { - if (entries_3_1 && !entries_3_1.done && (_t = entries_3.return)) _t.call(entries_3); - } - finally { if (e_588) throw e_588.error; } - } - return resolutions; -} -function forEachResolvedProjectReference(resolvedProjectReferences, cb) { - return forEachProjectReference( - /*projectReferences*/ - void 0, resolvedProjectReferences, function (resolvedRef, parent2) { return resolvedRef && cb(resolvedRef, parent2); }); -} -function forEachProjectReference(projectReferences, resolvedProjectReferences, cbResolvedRef, cbRef) { - var seenResolvedRefs; - return worker(projectReferences, resolvedProjectReferences, - /*parent*/ - void 0); - function worker(projectReferences2, resolvedProjectReferences2, parent2) { - if (cbRef) { - var result = cbRef(projectReferences2, parent2); - if (result) - return result; - } - return forEach(resolvedProjectReferences2, function (resolvedRef, index) { - if (resolvedRef && (seenResolvedRefs == null ? void 0 : seenResolvedRefs.has(resolvedRef.sourceFile.path))) { - return void 0; - } - var result = cbResolvedRef(resolvedRef, parent2, index); - if (result || !resolvedRef) - return result; - (seenResolvedRefs || (seenResolvedRefs = /* @__PURE__ */ new Set())).add(resolvedRef.sourceFile.path); - return worker(resolvedRef.commandLine.projectReferences, resolvedRef.references, resolvedRef); - }); - } -} -var inferredTypesContainingFile = "__inferred type names__.ts"; -function getInferredLibraryNameResolveFrom(options, currentDirectory, libFileName) { - var containingDirectory = options.configFilePath ? getDirectoryPath(options.configFilePath) : currentDirectory; - return combinePaths(containingDirectory, "__lib_node_modules_lookup_".concat(libFileName, "__.ts")); -} -function getLibraryNameFromLibFileName(libFileName) { - var components = libFileName.split("."); - var path = components[1]; - var i = 2; - while (components[i] && components[i] !== "d") { - path += (i === 2 ? "/" : "-") + components[i]; - i++; - } - return "@typescript/lib-" + path; -} -function getLibFileNameFromLibReference(libReference) { - var libName = toFileNameLowerCase(libReference.fileName); - var libFileName = libMap.get(libName); - return { libName: libName, libFileName: libFileName }; -} -function isReferencedFile(reason) { - switch (reason == null ? void 0 : reason.kind) { - case 3 /* Import */: - case 4 /* ReferenceFile */: - case 5 /* TypeReferenceDirective */: - case 7 /* LibReferenceDirective */: - return true; - default: - return false; - } -} -function isReferenceFileLocation(location) { - return location.pos !== void 0; -} -function getReferencedFileLocation(getSourceFileByPath, ref) { - var _t, _u, _v; - var _a, _b, _c, _d, _e, _f; - var file = Debug.checkDefined(getSourceFileByPath(ref.file)); - var kind = ref.kind, index = ref.index; - var pos, end, packageId, resolutionMode; - switch (kind) { - case 3 /* Import */: - var importLiteral = getModuleNameStringLiteralAt(file, index); - packageId = (_c = (_b = (_a = file.resolvedModules) == null ? void 0 : _a.get(importLiteral.text, getModeForResolutionAtIndex(file, index))) == null ? void 0 : _b.resolvedModule) == null ? void 0 : _c.packageId; - if (importLiteral.pos === -1) - return { file: file, packageId: packageId, text: importLiteral.text }; - pos = skipTrivia(file.text, importLiteral.pos); - end = importLiteral.end; - break; - case 4 /* ReferenceFile */: - (_t = file.referencedFiles[index], pos = _t.pos, end = _t.end); - break; - case 5 /* TypeReferenceDirective */: - (_u = file.typeReferenceDirectives[index], pos = _u.pos, end = _u.end, resolutionMode = _u.resolutionMode); - packageId = (_f = (_e = (_d = file.resolvedTypeReferenceDirectiveNames) == null ? void 0 : _d.get(toFileNameLowerCase(file.typeReferenceDirectives[index].fileName), resolutionMode || file.impliedNodeFormat)) == null ? void 0 : _e.resolvedTypeReferenceDirective) == null ? void 0 : _f.packageId; - break; - case 7 /* LibReferenceDirective */: - (_v = file.libReferenceDirectives[index], pos = _v.pos, end = _v.end); - break; - default: - return Debug.assertNever(kind); - } - return { file: file, pos: pos, end: end, packageId: packageId }; -} -function isProgramUptoDate(program, rootFileNames, newOptions, getSourceVersion, fileExists, hasInvalidatedResolutions, hasInvalidatedLibResolutions, hasChangedAutomaticTypeDirectiveNames, getParsedCommandLine, projectReferences) { - if (!program || (hasChangedAutomaticTypeDirectiveNames == null ? void 0 : hasChangedAutomaticTypeDirectiveNames())) - return false; - if (!arrayIsEqualTo(program.getRootFileNames(), rootFileNames)) - return false; - var seenResolvedRefs; - if (!arrayIsEqualTo(program.getProjectReferences(), projectReferences, projectReferenceUptoDate)) - return false; - if (program.getSourceFiles().some(sourceFileNotUptoDate)) - return false; - if (program.getMissingFilePaths().some(fileExists)) - return false; - var currentOptions = program.getCompilerOptions(); - if (!compareDataObjects(currentOptions, newOptions)) - return false; - if (program.resolvedLibReferences && forEachEntry(program.resolvedLibReferences, function (_value, libFileName) { return hasInvalidatedLibResolutions(libFileName); })) - return false; - if (currentOptions.configFile && newOptions.configFile) - return currentOptions.configFile.text === newOptions.configFile.text; - return true; - function sourceFileNotUptoDate(sourceFile) { - return !sourceFileVersionUptoDate(sourceFile) || hasInvalidatedResolutions(sourceFile.path); - } - function sourceFileVersionUptoDate(sourceFile) { - return sourceFile.version === getSourceVersion(sourceFile.resolvedPath, sourceFile.fileName); - } - function projectReferenceUptoDate(oldRef, newRef, index) { - return projectReferenceIsEqualTo(oldRef, newRef) && resolvedProjectReferenceUptoDate(program.getResolvedProjectReferences()[index], oldRef); - } - function resolvedProjectReferenceUptoDate(oldResolvedRef, oldRef) { - if (oldResolvedRef) { - if (contains(seenResolvedRefs, oldResolvedRef)) - return true; - var refPath2 = resolveProjectReferencePath(oldRef); - var newParsedCommandLine = getParsedCommandLine(refPath2); - if (!newParsedCommandLine) - return false; - if (oldResolvedRef.commandLine.options.configFile !== newParsedCommandLine.options.configFile) - return false; - if (!arrayIsEqualTo(oldResolvedRef.commandLine.fileNames, newParsedCommandLine.fileNames)) - return false; - (seenResolvedRefs || (seenResolvedRefs = [])).push(oldResolvedRef); - return !forEach(oldResolvedRef.references, function (childResolvedRef, index) { return !resolvedProjectReferenceUptoDate(childResolvedRef, oldResolvedRef.commandLine.projectReferences[index]); }); - } - var refPath = resolveProjectReferencePath(oldRef); - return !getParsedCommandLine(refPath); - } -} -function getConfigFileParsingDiagnostics(configFileParseResult) { - return configFileParseResult.options.configFile ? __spreadArray(__spreadArray([], __read(configFileParseResult.options.configFile.parseDiagnostics), false), __read(configFileParseResult.errors), false) : configFileParseResult.errors; -} -function getImpliedNodeFormatForFile(fileName, packageJsonInfoCache, host, options) { - var result = getImpliedNodeFormatForFileWorker(fileName, packageJsonInfoCache, host, options); - return typeof result === "object" ? result.impliedNodeFormat : result; -} -function getImpliedNodeFormatForFileWorker(fileName, packageJsonInfoCache, host, options) { - switch (getEmitModuleResolutionKind(options)) { - case 3 /* Node16 */: - case 99 /* NodeNext */: - return fileExtensionIsOneOf(fileName, [".d.mts" /* Dmts */, ".mts" /* Mts */, ".mjs" /* Mjs */]) ? 99 /* ESNext */ : fileExtensionIsOneOf(fileName, [".d.cts" /* Dcts */, ".cts" /* Cts */, ".cjs" /* Cjs */]) ? 1 /* CommonJS */ : fileExtensionIsOneOf(fileName, [".d.ts" /* Dts */, ".ts" /* Ts */, ".tsx" /* Tsx */, ".js" /* Js */, ".jsx" /* Jsx */]) ? lookupFromPackageJson() : void 0; - default: - return void 0; - } - function lookupFromPackageJson() { - var state = getTemporaryModuleResolutionState(packageJsonInfoCache, host, options); - var packageJsonLocations = []; - state.failedLookupLocations = packageJsonLocations; - state.affectingLocations = packageJsonLocations; - var packageJsonScope = getPackageScopeForPath(fileName, state); - var impliedNodeFormat = (packageJsonScope == null ? void 0 : packageJsonScope.contents.packageJsonContent.type) === "module" ? 99 /* ESNext */ : 1 /* CommonJS */; - return { impliedNodeFormat: impliedNodeFormat, packageJsonLocations: packageJsonLocations, packageJsonScope: packageJsonScope }; - } -} -var plainJSErrors = /* @__PURE__ */ new Set([ - // binder errors - Diagnostics.Cannot_redeclare_block_scoped_variable_0.code, - Diagnostics.A_module_cannot_have_multiple_default_exports.code, - Diagnostics.Another_export_default_is_here.code, - Diagnostics.The_first_export_default_is_here.code, - Diagnostics.Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module.code, - Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode.code, - Diagnostics.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here.code, - Diagnostics.constructor_is_a_reserved_word.code, - Diagnostics.delete_cannot_be_called_on_an_identifier_in_strict_mode.code, - Diagnostics.Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of_0_For_more_information_see_https_Colon_Slash_Slashdeveloper_mozilla_org_Slashen_US_Slashdocs_SlashWeb_SlashJavaScript_SlashReference_SlashStrict_mode.code, - Diagnostics.Invalid_use_of_0_Modules_are_automatically_in_strict_mode.code, - Diagnostics.Invalid_use_of_0_in_strict_mode.code, - Diagnostics.A_label_is_not_allowed_here.code, - Diagnostics.with_statements_are_not_allowed_in_strict_mode.code, - // grammar errors - Diagnostics.A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement.code, - Diagnostics.A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement.code, - Diagnostics.A_class_declaration_without_the_default_modifier_must_have_a_name.code, - Diagnostics.A_class_member_cannot_have_the_0_keyword.code, - Diagnostics.A_comma_expression_is_not_allowed_in_a_computed_property_name.code, - Diagnostics.A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement.code, - Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement.code, - Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement.code, - Diagnostics.A_default_clause_cannot_appear_more_than_once_in_a_switch_statement.code, - Diagnostics.A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration.code, - Diagnostics.A_definite_assignment_assertion_is_not_permitted_in_this_context.code, - Diagnostics.A_destructuring_declaration_must_have_an_initializer.code, - Diagnostics.A_get_accessor_cannot_have_parameters.code, - Diagnostics.A_rest_element_cannot_contain_a_binding_pattern.code, - Diagnostics.A_rest_element_cannot_have_a_property_name.code, - Diagnostics.A_rest_element_cannot_have_an_initializer.code, - Diagnostics.A_rest_element_must_be_last_in_a_destructuring_pattern.code, - Diagnostics.A_rest_parameter_cannot_have_an_initializer.code, - Diagnostics.A_rest_parameter_must_be_last_in_a_parameter_list.code, - Diagnostics.A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma.code, - Diagnostics.A_return_statement_cannot_be_used_inside_a_class_static_block.code, - Diagnostics.A_set_accessor_cannot_have_rest_parameter.code, - Diagnostics.A_set_accessor_must_have_exactly_one_parameter.code, - Diagnostics.An_export_declaration_can_only_be_used_at_the_top_level_of_a_module.code, - Diagnostics.An_export_declaration_cannot_have_modifiers.code, - Diagnostics.An_import_declaration_can_only_be_used_at_the_top_level_of_a_module.code, - Diagnostics.An_import_declaration_cannot_have_modifiers.code, - Diagnostics.An_object_member_cannot_be_declared_optional.code, - Diagnostics.Argument_of_dynamic_import_cannot_be_spread_element.code, - Diagnostics.Cannot_assign_to_private_method_0_Private_methods_are_not_writable.code, - Diagnostics.Cannot_redeclare_identifier_0_in_catch_clause.code, - Diagnostics.Catch_clause_variable_cannot_have_an_initializer.code, - Diagnostics.Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_decorator.code, - Diagnostics.Classes_can_only_extend_a_single_class.code, - Diagnostics.Classes_may_not_have_a_field_named_constructor.code, - Diagnostics.Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_part_of_a_destructuring_pattern.code, - Diagnostics.Duplicate_label_0.code, - Diagnostics.Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_assertion_as_arguments.code, - Diagnostics.for_await_loops_cannot_be_used_inside_a_class_static_block.code, - Diagnostics.JSX_attributes_must_only_be_assigned_a_non_empty_expression.code, - Diagnostics.JSX_elements_cannot_have_multiple_attributes_with_the_same_name.code, - Diagnostics.JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array.code, - Diagnostics.JSX_property_access_expressions_cannot_include_JSX_namespace_names.code, - Diagnostics.Jump_target_cannot_cross_function_boundary.code, - Diagnostics.Line_terminator_not_permitted_before_arrow.code, - Diagnostics.Modifiers_cannot_appear_here.code, - Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement.code, - Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement.code, - Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies.code, - Diagnostics.Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member_declaration_property_access_or_on_the_left_hand_side_of_an_in_expression.code, - Diagnostics.Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier.code, - Diagnostics.Tagged_template_expressions_are_not_permitted_in_an_optional_chain.code, - Diagnostics.The_left_hand_side_of_a_for_of_statement_may_not_be_async.code, - Diagnostics.The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer.code, - Diagnostics.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer.code, - Diagnostics.Trailing_comma_not_allowed.code, - Diagnostics.Variable_declaration_list_cannot_be_empty.code, - Diagnostics._0_and_1_operations_cannot_be_mixed_without_parentheses.code, - Diagnostics._0_expected.code, - Diagnostics._0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2.code, - Diagnostics._0_list_cannot_be_empty.code, - Diagnostics._0_modifier_already_seen.code, - Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration.code, - Diagnostics._0_modifier_cannot_appear_on_a_module_or_namespace_element.code, - Diagnostics._0_modifier_cannot_appear_on_a_parameter.code, - Diagnostics._0_modifier_cannot_appear_on_class_elements_of_this_kind.code, - Diagnostics._0_modifier_cannot_be_used_here.code, - Diagnostics._0_modifier_must_precede_1_modifier.code, - Diagnostics._0_declarations_can_only_be_declared_inside_a_block.code, - Diagnostics._0_declarations_must_be_initialized.code, - Diagnostics.extends_clause_already_seen.code, - Diagnostics.let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations.code, - Diagnostics.Class_constructor_may_not_be_a_generator.code, - Diagnostics.Class_constructor_may_not_be_an_accessor.code, - Diagnostics.await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules.code, - Diagnostics.await_using_statements_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules.code, - Diagnostics.Private_field_0_must_be_declared_in_an_enclosing_class.code, - // Type errors - Diagnostics.This_condition_will_always_return_0_since_JavaScript_compares_objects_by_reference_not_value.code -]); -function shouldProgramCreateNewSourceFiles(program, newOptions) { - if (!program) - return false; - return optionsHaveChanges(program.getCompilerOptions(), newOptions, sourceFileAffectingCompilerOptions); -} -function createCreateProgramOptions(rootNames, options, host, oldProgram, configFileParsingDiagnostics, typeScriptVersion3) { - return { - rootNames: rootNames, - options: options, - host: host, - oldProgram: oldProgram, - configFileParsingDiagnostics: configFileParsingDiagnostics, - typeScriptVersion: typeScriptVersion3 - }; -} -function createProgram(rootNamesOrOptions, _options, _host, _oldProgram, _configFileParsingDiagnostics) { - var e_589, _t; - var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p; - var createProgramOptions = isArray(rootNamesOrOptions) ? createCreateProgramOptions(rootNamesOrOptions, _options, _host, _oldProgram, _configFileParsingDiagnostics) : rootNamesOrOptions; - var rootNames = createProgramOptions.rootNames, options = createProgramOptions.options, configFileParsingDiagnostics = createProgramOptions.configFileParsingDiagnostics, projectReferences = createProgramOptions.projectReferences, typeScriptVersion3 = createProgramOptions.typeScriptVersion; - var oldProgram = createProgramOptions.oldProgram; - var reportInvalidIgnoreDeprecations = memoize(function () { return createOptionValueDiagnostic("ignoreDeprecations", Diagnostics.Invalid_value_for_ignoreDeprecations); }); - var processingDefaultLibFiles; - var processingOtherFiles; - var files; - var symlinks; - var commonSourceDirectory; - var typeChecker; - var classifiableNames; - var ambientModuleNameToUnmodifiedFileName = /* @__PURE__ */ new Map(); - var fileReasons = createMultiMap(); - var cachedBindAndCheckDiagnosticsForFile = {}; - var cachedDeclarationDiagnosticsForFile = {}; - var resolvedTypeReferenceDirectives = createModeAwareCache(); - var fileProcessingDiagnostics; - var automaticTypeDirectiveNames; - var automaticTypeDirectiveResolutions; - var resolvedLibReferences; - var resolvedLibProcessing; - var packageMap; - var maxNodeModuleJsDepth = typeof options.maxNodeModuleJsDepth === "number" ? options.maxNodeModuleJsDepth : 0; - var currentNodeModulesDepth = 0; - var modulesWithElidedImports = /* @__PURE__ */ new Map(); - var sourceFilesFoundSearchingNodeModules = /* @__PURE__ */ new Map(); - (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Program, "createProgram", { configFilePath: options.configFilePath, rootDir: options.rootDir }, - /*separateBeginAndEnd*/ - true); - mark("beforeProgram"); - var host = createProgramOptions.host || createCompilerHost(options); - var configParsingHost = parseConfigHostFromCompilerHostLike(host); - var skipDefaultLib = options.noLib; - var getDefaultLibraryFileName = memoize(function () { return host.getDefaultLibFileName(options); }); - var defaultLibraryPath = host.getDefaultLibLocation ? host.getDefaultLibLocation() : getDirectoryPath(getDefaultLibraryFileName()); - var programDiagnostics = createDiagnosticCollection(); - var currentDirectory = host.getCurrentDirectory(); - var supportedExtensions = getSupportedExtensions(options); - var supportedExtensionsWithJsonIfResolveJsonModule = getSupportedExtensionsWithJsonIfResolveJsonModule(options, supportedExtensions); - var hasEmitBlockingDiagnostics = /* @__PURE__ */ new Map(); - var _compilerOptionsObjectLiteralSyntax; - var moduleResolutionCache; - var actualResolveModuleNamesWorker; - var hasInvalidatedResolutions = host.hasInvalidatedResolutions || returnFalse; - if (host.resolveModuleNameLiterals) { - actualResolveModuleNamesWorker = host.resolveModuleNameLiterals.bind(host); - moduleResolutionCache = (_b = host.getModuleResolutionCache) == null ? void 0 : _b.call(host); - } - else if (host.resolveModuleNames) { - actualResolveModuleNamesWorker = function (moduleNames, containingFile, redirectedReference, options2, containingSourceFile, reusedNames) { return host.resolveModuleNames(moduleNames.map(getModuleResolutionName), containingFile, reusedNames == null ? void 0 : reusedNames.map(getModuleResolutionName), redirectedReference, options2, containingSourceFile).map(function (resolved) { return resolved ? resolved.extension !== void 0 ? { resolvedModule: resolved } : ( - // An older host may have omitted extension, in which case we should infer it from the file extension of resolvedFileName. - { resolvedModule: __assign(__assign({}, resolved), { extension: extensionFromPath(resolved.resolvedFileName) }) }) : emptyResolution; }); }; - moduleResolutionCache = (_c = host.getModuleResolutionCache) == null ? void 0 : _c.call(host); - } - else { - moduleResolutionCache = createModuleResolutionCache(currentDirectory, getCanonicalFileName, options); - actualResolveModuleNamesWorker = function (moduleNames, containingFile, redirectedReference, options2, containingSourceFile) { return loadWithModeAwareCache(moduleNames, containingFile, redirectedReference, options2, containingSourceFile, host, moduleResolutionCache, createModuleResolutionLoader); }; - } - var actualResolveTypeReferenceDirectiveNamesWorker; - if (host.resolveTypeReferenceDirectiveReferences) { - actualResolveTypeReferenceDirectiveNamesWorker = host.resolveTypeReferenceDirectiveReferences.bind(host); - } - else if (host.resolveTypeReferenceDirectives) { - actualResolveTypeReferenceDirectiveNamesWorker = function (typeDirectiveNames, containingFile, redirectedReference, options2, containingSourceFile) { return host.resolveTypeReferenceDirectives(typeDirectiveNames.map(getTypeReferenceResolutionName), containingFile, redirectedReference, options2, containingSourceFile == null ? void 0 : containingSourceFile.impliedNodeFormat).map(function (resolvedTypeReferenceDirective) { return ({ resolvedTypeReferenceDirective: resolvedTypeReferenceDirective }); }); }; - } - else { - var typeReferenceDirectiveResolutionCache_1 = createTypeReferenceDirectiveResolutionCache(currentDirectory, getCanonicalFileName, - /*options*/ - void 0, moduleResolutionCache == null ? void 0 : moduleResolutionCache.getPackageJsonInfoCache()); - actualResolveTypeReferenceDirectiveNamesWorker = function (typeDirectiveNames, containingFile, redirectedReference, options2, containingSourceFile) { return loadWithModeAwareCache(typeDirectiveNames, containingFile, redirectedReference, options2, containingSourceFile, host, typeReferenceDirectiveResolutionCache_1, createTypeReferenceResolutionLoader); }; - } - var hasInvalidatedLibResolutions = host.hasInvalidatedLibResolutions || returnFalse; - var actualResolveLibrary; - if (host.resolveLibrary) { - actualResolveLibrary = host.resolveLibrary.bind(host); - } - else { - var libraryResolutionCache_1 = createModuleResolutionCache(currentDirectory, getCanonicalFileName, options, moduleResolutionCache == null ? void 0 : moduleResolutionCache.getPackageJsonInfoCache()); - actualResolveLibrary = function (libraryName, resolveFrom, options2) { return resolveLibrary(libraryName, resolveFrom, options2, host, libraryResolutionCache_1); }; - } - var packageIdToSourceFile = /* @__PURE__ */ new Map(); - var sourceFileToPackageName = /* @__PURE__ */ new Map(); - var redirectTargetsMap = createMultiMap(); - var usesUriStyleNodeCoreModules = false; - var filesByName = /* @__PURE__ */ new Map(); - var missingFilePaths; - var filesByNameIgnoreCase = host.useCaseSensitiveFileNames() ? /* @__PURE__ */ new Map() : void 0; - var resolvedProjectReferences; - var projectReferenceRedirects; - var mapFromFileToProjectReferenceRedirects; - var mapFromToProjectReferenceRedirectSource; - var useSourceOfProjectReferenceRedirect = !!((_d = host.useSourceOfProjectReferenceRedirect) == null ? void 0 : _d.call(host)) && !options.disableSourceOfProjectReferenceRedirect; - var _u = updateHostForUseSourceOfProjectReferenceRedirect({ - compilerHost: host, - getSymlinkCache: getSymlinkCache, - useSourceOfProjectReferenceRedirect: useSourceOfProjectReferenceRedirect, - toPath: toPath3, - getResolvedProjectReferences: getResolvedProjectReferences, - getSourceOfProjectReferenceRedirect: getSourceOfProjectReferenceRedirect, - forEachResolvedProjectReference: forEachResolvedProjectReference2 - }), onProgramCreateComplete = _u.onProgramCreateComplete, fileExists = _u.fileExists, directoryExists = _u.directoryExists; - var readFile = host.readFile.bind(host); - (_e = tracing) == null ? void 0 : _e.push(tracing.Phase.Program, "shouldProgramCreateNewSourceFiles", { hasOldProgram: !!oldProgram }); - var shouldCreateNewSourceFile = shouldProgramCreateNewSourceFiles(oldProgram, options); - (_f = tracing) == null ? void 0 : _f.pop(); - var structureIsReused; - (_g = tracing) == null ? void 0 : _g.push(tracing.Phase.Program, "tryReuseStructureFromOldProgram", {}); - structureIsReused = tryReuseStructureFromOldProgram(); - (_h = tracing) == null ? void 0 : _h.pop(); - if (structureIsReused !== 2 /* Completely */) { - processingDefaultLibFiles = []; - processingOtherFiles = []; - if (projectReferences) { - if (!resolvedProjectReferences) { - resolvedProjectReferences = projectReferences.map(parseProjectReferenceConfigFile); - } - if (rootNames.length) { - resolvedProjectReferences == null ? void 0 : resolvedProjectReferences.forEach(function (parsedRef, index) { - var e_590, _t, e_591, _u; - if (!parsedRef) - return; - var out = outFile(parsedRef.commandLine.options); - if (useSourceOfProjectReferenceRedirect) { - if (out || getEmitModuleKind(parsedRef.commandLine.options) === 0 /* None */) { - try { - for (var _v = __values(parsedRef.commandLine.fileNames), _w = _v.next(); !_w.done; _w = _v.next()) { - var fileName = _w.value; - processProjectReferenceFile(fileName, { kind: 1 /* SourceFromProjectReference */, index: index }); - } - } - catch (e_590_1) { e_590 = { error: e_590_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_590) throw e_590.error; } - } - } - } - else { - if (out) { - processProjectReferenceFile(changeExtension(out, ".d.ts"), { kind: 2 /* OutputFromProjectReference */, index: index }); - } - else if (getEmitModuleKind(parsedRef.commandLine.options) === 0 /* None */) { - var getCommonSourceDirectory3 = memoize(function () { return getCommonSourceDirectoryOfConfig(parsedRef.commandLine, !host.useCaseSensitiveFileNames()); }); - try { - for (var _x = __values(parsedRef.commandLine.fileNames), _y = _x.next(); !_y.done; _y = _x.next()) { - var fileName = _y.value; - if (!isDeclarationFileName(fileName) && !fileExtensionIs(fileName, ".json" /* Json */)) { - processProjectReferenceFile(getOutputDeclarationFileName(fileName, parsedRef.commandLine, !host.useCaseSensitiveFileNames(), getCommonSourceDirectory3), { kind: 2 /* OutputFromProjectReference */, index: index }); - } - } - } - catch (e_591_1) { e_591 = { error: e_591_1 }; } - finally { - try { - if (_y && !_y.done && (_u = _x.return)) _u.call(_x); - } - finally { if (e_591) throw e_591.error; } - } - } - } - }); - } - } - (_i = tracing) == null ? void 0 : _i.push(tracing.Phase.Program, "processRootFiles", { count: rootNames.length }); - forEach(rootNames, function (name, index) { return processRootFile(name, - /*isDefaultLib*/ - false, - /*ignoreNoDefaultLib*/ - false, { kind: 0 /* RootFile */, index: index }); }); - (_j = tracing) == null ? void 0 : _j.pop(); - automaticTypeDirectiveNames !== null && automaticTypeDirectiveNames !== void 0 ? automaticTypeDirectiveNames : (automaticTypeDirectiveNames = rootNames.length ? getAutomaticTypeDirectiveNames(options, host) : emptyArray); - automaticTypeDirectiveResolutions = createModeAwareCache(); - if (automaticTypeDirectiveNames.length) { - (_k = tracing) == null ? void 0 : _k.push(tracing.Phase.Program, "processTypeReferences", { count: automaticTypeDirectiveNames.length }); - var containingDirectory = options.configFilePath ? getDirectoryPath(options.configFilePath) : currentDirectory; - var containingFilename = combinePaths(containingDirectory, inferredTypesContainingFile); - var resolutions = resolveTypeReferenceDirectiveNamesReusingOldState(automaticTypeDirectiveNames, containingFilename); - for (var i = 0; i < automaticTypeDirectiveNames.length; i++) { - automaticTypeDirectiveResolutions.set(automaticTypeDirectiveNames[i], - /*mode*/ - void 0, resolutions[i]); - processTypeReferenceDirective(automaticTypeDirectiveNames[i], - /*mode*/ - void 0, resolutions[i], { - kind: 8 /* AutomaticTypeDirectiveFile */, - typeReference: automaticTypeDirectiveNames[i], - packageId: (_m = (_l = resolutions[i]) == null ? void 0 : _l.resolvedTypeReferenceDirective) == null ? void 0 : _m.packageId - }); - } - (_n = tracing) == null ? void 0 : _n.pop(); - } - if (rootNames.length && !skipDefaultLib) { - var defaultLibraryFileName = getDefaultLibraryFileName(); - if (!options.lib && defaultLibraryFileName) { - processRootFile(defaultLibraryFileName, - /*isDefaultLib*/ - true, - /*ignoreNoDefaultLib*/ - false, { kind: 6 /* LibFile */ }); - } - else { - forEach(options.lib, function (libFileName, index) { - processRootFile(pathForLibFile(libFileName), - /*isDefaultLib*/ - true, - /*ignoreNoDefaultLib*/ - false, { kind: 6 /* LibFile */, index: index }); - }); - } - } - missingFilePaths = arrayFrom(mapDefinedIterator(filesByName.entries(), function (_t) { - var _u = __read(_t, 2), path = _u[0], file = _u[1]; - return file === void 0 ? path : void 0; - })); - files = stableSort(processingDefaultLibFiles, compareDefaultLibFiles).concat(processingOtherFiles); - processingDefaultLibFiles = void 0; - processingOtherFiles = void 0; - } - Debug.assert(!!missingFilePaths); - if (oldProgram && host.onReleaseOldSourceFile) { - var oldSourceFiles = oldProgram.getSourceFiles(); - try { - for (var oldSourceFiles_1 = __values(oldSourceFiles), oldSourceFiles_1_1 = oldSourceFiles_1.next(); !oldSourceFiles_1_1.done; oldSourceFiles_1_1 = oldSourceFiles_1.next()) { - var oldSourceFile = oldSourceFiles_1_1.value; - var newFile = getSourceFileByPath(oldSourceFile.resolvedPath); - if (shouldCreateNewSourceFile || !newFile || newFile.impliedNodeFormat !== oldSourceFile.impliedNodeFormat || // old file wasn't redirect but new file is - oldSourceFile.resolvedPath === oldSourceFile.path && newFile.resolvedPath !== oldSourceFile.path) { - host.onReleaseOldSourceFile(oldSourceFile, oldProgram.getCompilerOptions(), !!getSourceFileByPath(oldSourceFile.path)); - } - } - } - catch (e_589_1) { e_589 = { error: e_589_1 }; } - finally { - try { - if (oldSourceFiles_1_1 && !oldSourceFiles_1_1.done && (_t = oldSourceFiles_1.return)) _t.call(oldSourceFiles_1); - } - finally { if (e_589) throw e_589.error; } - } - if (!host.getParsedCommandLine) { - oldProgram.forEachResolvedProjectReference(function (resolvedProjectReference) { - if (!getResolvedProjectReferenceByPath(resolvedProjectReference.sourceFile.path)) { - host.onReleaseOldSourceFile(resolvedProjectReference.sourceFile, oldProgram.getCompilerOptions(), - /*hasSourceFileByPath*/ - false); - } - }); - } - } - if (oldProgram && host.onReleaseParsedCommandLine) { - forEachProjectReference(oldProgram.getProjectReferences(), oldProgram.getResolvedProjectReferences(), function (oldResolvedRef, parent2, index) { - var oldReference = (parent2 == null ? void 0 : parent2.commandLine.projectReferences[index]) || oldProgram.getProjectReferences()[index]; - var oldRefPath = resolveProjectReferencePath(oldReference); - if (!(projectReferenceRedirects == null ? void 0 : projectReferenceRedirects.has(toPath3(oldRefPath)))) { - host.onReleaseParsedCommandLine(oldRefPath, oldResolvedRef, oldProgram.getCompilerOptions()); - } - }); - } - oldProgram = void 0; - resolvedLibProcessing = void 0; - var program = { - getRootFileNames: function () { return rootNames; }, - getSourceFile: getSourceFile, - getSourceFileByPath: getSourceFileByPath, - getSourceFiles: function () { return files; }, - getMissingFilePaths: function () { return missingFilePaths; }, - // TODO: GH#18217 - getModuleResolutionCache: function () { return moduleResolutionCache; }, - getFilesByNameMap: function () { return filesByName; }, - getCompilerOptions: function () { return options; }, - getSyntacticDiagnostics: getSyntacticDiagnostics, - getOptionsDiagnostics: getOptionsDiagnostics, - getGlobalDiagnostics: getGlobalDiagnostics, - getSemanticDiagnostics: getSemanticDiagnostics, - getCachedSemanticDiagnostics: getCachedSemanticDiagnostics, - getSuggestionDiagnostics: getSuggestionDiagnostics, - getDeclarationDiagnostics: getDeclarationDiagnostics2, - getBindAndCheckDiagnostics: getBindAndCheckDiagnostics, - getProgramDiagnostics: getProgramDiagnostics, - getTypeChecker: getTypeChecker, - getClassifiableNames: getClassifiableNames, - getCommonSourceDirectory: getCommonSourceDirectory2, - emit: emit, - getCurrentDirectory: function () { return currentDirectory; }, - getNodeCount: function () { return getTypeChecker().getNodeCount(); }, - getIdentifierCount: function () { return getTypeChecker().getIdentifierCount(); }, - getSymbolCount: function () { return getTypeChecker().getSymbolCount(); }, - getTypeCount: function () { return getTypeChecker().getTypeCount(); }, - getInstantiationCount: function () { return getTypeChecker().getInstantiationCount(); }, - getRelationCacheSizes: function () { return getTypeChecker().getRelationCacheSizes(); }, - getFileProcessingDiagnostics: function () { return fileProcessingDiagnostics; }, - getResolvedTypeReferenceDirectives: function () { return resolvedTypeReferenceDirectives; }, - getAutomaticTypeDirectiveNames: function () { return automaticTypeDirectiveNames; }, - getAutomaticTypeDirectiveResolutions: function () { return automaticTypeDirectiveResolutions; }, - isSourceFileFromExternalLibrary: isSourceFileFromExternalLibrary, - isSourceFileDefaultLibrary: isSourceFileDefaultLibrary, - getSourceFileFromReference: getSourceFileFromReference, - getLibFileFromReference: getLibFileFromReference, - sourceFileToPackageName: sourceFileToPackageName, - redirectTargetsMap: redirectTargetsMap, - usesUriStyleNodeCoreModules: usesUriStyleNodeCoreModules, - resolvedLibReferences: resolvedLibReferences, - getCurrentPackagesMap: function () { return packageMap; }, - typesPackageExists: typesPackageExists, - packageBundlesTypes: packageBundlesTypes, - isEmittedFile: isEmittedFile, - getConfigFileParsingDiagnostics: getConfigFileParsingDiagnostics2, - getProjectReferences: getProjectReferences, - getResolvedProjectReferences: getResolvedProjectReferences, - getProjectReferenceRedirect: getProjectReferenceRedirect, - getResolvedProjectReferenceToRedirect: getResolvedProjectReferenceToRedirect, - getResolvedProjectReferenceByPath: getResolvedProjectReferenceByPath, - forEachResolvedProjectReference: forEachResolvedProjectReference2, - isSourceOfProjectReferenceRedirect: isSourceOfProjectReferenceRedirect, - emitBuildInfo: emitBuildInfo, - fileExists: fileExists, - readFile: readFile, - directoryExists: directoryExists, - getSymlinkCache: getSymlinkCache, - realpath: (_o = host.realpath) == null ? void 0 : _o.bind(host), - useCaseSensitiveFileNames: function () { return host.useCaseSensitiveFileNames(); }, - getCanonicalFileName: getCanonicalFileName, - getFileIncludeReasons: function () { return fileReasons; }, - structureIsReused: structureIsReused, - writeFile: writeFile2 - }; - onProgramCreateComplete(); - fileProcessingDiagnostics == null ? void 0 : fileProcessingDiagnostics.forEach(function (diagnostic) { - switch (diagnostic.kind) { - case 1 /* FilePreprocessingFileExplainingDiagnostic */: - return programDiagnostics.add(createDiagnosticExplainingFile(diagnostic.file && getSourceFileByPath(diagnostic.file), diagnostic.fileProcessingReason, diagnostic.diagnostic, diagnostic.args || emptyArray)); - case 0 /* FilePreprocessingReferencedDiagnostic */: - var _t = getReferencedFileLocation(getSourceFileByPath, diagnostic.reason), file = _t.file, pos = _t.pos, end = _t.end; - return programDiagnostics.add(createFileDiagnostic.apply(void 0, __spreadArray([file, Debug.checkDefined(pos), Debug.checkDefined(end) - pos, diagnostic.diagnostic], __read(diagnostic.args || emptyArray), false))); - case 2 /* ResolutionDiagnostics */: - return diagnostic.diagnostics.forEach(function (d) { return programDiagnostics.add(d); }); - default: - Debug.assertNever(diagnostic); - } - }); - verifyCompilerOptions(); - mark("afterProgram"); - measure("Program", "beforeProgram", "afterProgram"); - (_p = tracing) == null ? void 0 : _p.pop(); - return program; - function getPackagesMap() { - if (packageMap) - return packageMap; - packageMap = /* @__PURE__ */ new Map(); - files.forEach(function (sf) { - if (!sf.resolvedModules) - return; - sf.resolvedModules.forEach(function (_t) { - var resolvedModule = _t.resolvedModule; - if (resolvedModule == null ? void 0 : resolvedModule.packageId) - packageMap.set(resolvedModule.packageId.name, resolvedModule.extension === ".d.ts" /* Dts */ || !!packageMap.get(resolvedModule.packageId.name)); - }); - }); - return packageMap; - } - function typesPackageExists(packageName) { - return getPackagesMap().has(getTypesPackageName(packageName)); - } - function packageBundlesTypes(packageName) { - return !!getPackagesMap().get(packageName); - } - function addResolutionDiagnostics(resolution) { - var _a2; - if (!((_a2 = resolution.resolutionDiagnostics) == null ? void 0 : _a2.length)) - return; - (fileProcessingDiagnostics !== null && fileProcessingDiagnostics !== void 0 ? fileProcessingDiagnostics : (fileProcessingDiagnostics = [])).push({ - kind: 2 /* ResolutionDiagnostics */, - diagnostics: resolution.resolutionDiagnostics - }); - } - function addResolutionDiagnosticsFromResolutionOrCache(containingFile, name, resolution, mode) { - if (host.resolveModuleNameLiterals || !host.resolveModuleNames) - return addResolutionDiagnostics(resolution); - if (!moduleResolutionCache || isExternalModuleNameRelative(name)) - return; - var containingFileName = getNormalizedAbsolutePath(containingFile.originalFileName, currentDirectory); - var containingDir = getDirectoryPath(containingFileName); - var redirectedReference = getRedirectReferenceForResolution(containingFile); - var fromCache = moduleResolutionCache.getFromNonRelativeNameCache(name, mode, containingDir, redirectedReference); - if (fromCache) - addResolutionDiagnostics(fromCache); - } - function resolveModuleNamesWorker(moduleNames, containingFile, reusedNames) { - var _a2, _b2; - if (!moduleNames.length) - return emptyArray; - var containingFileName = getNormalizedAbsolutePath(containingFile.originalFileName, currentDirectory); - var redirectedReference = getRedirectReferenceForResolution(containingFile); - (_a2 = tracing) == null ? void 0 : _a2.push(tracing.Phase.Program, "resolveModuleNamesWorker", { containingFileName: containingFileName }); - mark("beforeResolveModule"); - var result = actualResolveModuleNamesWorker(moduleNames, containingFileName, redirectedReference, options, containingFile, reusedNames); - mark("afterResolveModule"); - measure("ResolveModule", "beforeResolveModule", "afterResolveModule"); - (_b2 = tracing) == null ? void 0 : _b2.pop(); - return result; - } - function resolveTypeReferenceDirectiveNamesWorker(typeDirectiveNames, containingFile, reusedNames) { - var _a2, _b2; - if (!typeDirectiveNames.length) - return []; - var containingSourceFile = !isString(containingFile) ? containingFile : void 0; - var containingFileName = !isString(containingFile) ? getNormalizedAbsolutePath(containingFile.originalFileName, currentDirectory) : containingFile; - var redirectedReference = containingSourceFile && getRedirectReferenceForResolution(containingSourceFile); - (_a2 = tracing) == null ? void 0 : _a2.push(tracing.Phase.Program, "resolveTypeReferenceDirectiveNamesWorker", { containingFileName: containingFileName }); - mark("beforeResolveTypeReference"); - var result = actualResolveTypeReferenceDirectiveNamesWorker(typeDirectiveNames, containingFileName, redirectedReference, options, containingSourceFile, reusedNames); - mark("afterResolveTypeReference"); - measure("ResolveTypeReference", "beforeResolveTypeReference", "afterResolveTypeReference"); - (_b2 = tracing) == null ? void 0 : _b2.pop(); - return result; - } - function getRedirectReferenceForResolution(file) { - var redirect = getResolvedProjectReferenceToRedirect(file.originalFileName); - if (redirect || !isDeclarationFileName(file.originalFileName)) - return redirect; - var resultFromDts = getRedirectReferenceForResolutionFromSourceOfProject(file.path); - if (resultFromDts) - return resultFromDts; - if (!host.realpath || !options.preserveSymlinks || !stringContains(file.originalFileName, nodeModulesPathPart)) - return void 0; - var realDeclarationPath = toPath3(host.realpath(file.originalFileName)); - return realDeclarationPath === file.path ? void 0 : getRedirectReferenceForResolutionFromSourceOfProject(realDeclarationPath); - } - function getRedirectReferenceForResolutionFromSourceOfProject(filePath) { - var source = getSourceOfProjectReferenceRedirect(filePath); - if (isString(source)) - return getResolvedProjectReferenceToRedirect(source); - if (!source) - return void 0; - return forEachResolvedProjectReference2(function (resolvedRef) { - var out = outFile(resolvedRef.commandLine.options); - if (!out) - return void 0; - return toPath3(out) === filePath ? resolvedRef : void 0; - }); - } - function compareDefaultLibFiles(a, b) { - return compareValues(getDefaultLibFilePriority(a), getDefaultLibFilePriority(b)); - } - function getDefaultLibFilePriority(a) { - if (containsPath(defaultLibraryPath, a.fileName, - /*ignoreCase*/ - false)) { - var basename = getBaseFileName(a.fileName); - if (basename === "lib.d.ts" || basename === "lib.es6.d.ts") - return 0; - var name_96 = removeSuffix(removePrefix(basename, "lib."), ".d.ts"); - var index = libs.indexOf(name_96); - if (index !== -1) - return index + 1; - } - return libs.length + 2; - } - function toPath3(fileName) { - return toPath(fileName, currentDirectory, getCanonicalFileName); - } - function getCommonSourceDirectory2() { - if (commonSourceDirectory === void 0) { - var emittedFiles_1 = filter(files, function (file) { return sourceFileMayBeEmitted(file, program); }); - commonSourceDirectory = getCommonSourceDirectory(options, function () { return mapDefined(emittedFiles_1, function (file) { return file.isDeclarationFile ? void 0 : file.fileName; }); }, currentDirectory, getCanonicalFileName, function (commonSourceDirectory2) { return checkSourceFilesBelongToPath(emittedFiles_1, commonSourceDirectory2); }); - } - return commonSourceDirectory; - } - function getClassifiableNames() { - var e_592, _t; - var _a2; - if (!classifiableNames) { - getTypeChecker(); - classifiableNames = /* @__PURE__ */ new Set(); - try { - for (var files_3 = __values(files), files_3_1 = files_3.next(); !files_3_1.done; files_3_1 = files_3.next()) { - var sourceFile = files_3_1.value; - (_a2 = sourceFile.classifiableNames) == null ? void 0 : _a2.forEach(function (value) { return classifiableNames.add(value); }); - } - } - catch (e_592_1) { e_592 = { error: e_592_1 }; } - finally { - try { - if (files_3_1 && !files_3_1.done && (_t = files_3.return)) _t.call(files_3); - } - finally { if (e_592) throw e_592.error; } - } - } - return classifiableNames; - } - function resolveModuleNamesReusingOldState(moduleNames, file) { - var e_593, _t; - var _a2; - if (structureIsReused === 0 /* Not */ && !file.ambientModuleNames.length) { - return resolveModuleNamesWorker(moduleNames, file, - /*reusedNames*/ - void 0); - } - var oldSourceFile = oldProgram && oldProgram.getSourceFile(file.fileName); - if (oldSourceFile !== file && file.resolvedModules) { - var result2 = []; - try { - for (var moduleNames_1 = __values(moduleNames), moduleNames_1_1 = moduleNames_1.next(); !moduleNames_1_1.done; moduleNames_1_1 = moduleNames_1.next()) { - var moduleName = moduleNames_1_1.value; - var resolvedModule = file.resolvedModules.get(moduleName.text, getModeForUsageLocation(file, moduleName)); - result2.push(resolvedModule); - } - } - catch (e_593_1) { e_593 = { error: e_593_1 }; } - finally { - try { - if (moduleNames_1_1 && !moduleNames_1_1.done && (_t = moduleNames_1.return)) _t.call(moduleNames_1); - } - finally { if (e_593) throw e_593.error; } - } - return result2; - } - var unknownModuleNames; - var result; - var reusedNames; - var predictedToResolveToAmbientModuleMarker = emptyResolution; - for (var i = 0; i < moduleNames.length; i++) { - var moduleName = moduleNames[i]; - if (file === oldSourceFile && !hasInvalidatedResolutions(oldSourceFile.path)) { - var mode = getModeForUsageLocation(file, moduleName); - var oldResolution = (_a2 = oldSourceFile.resolvedModules) == null ? void 0 : _a2.get(moduleName.text, mode); - if (oldResolution == null ? void 0 : oldResolution.resolvedModule) { - if (isTraceEnabled(options, host)) { - trace(host, oldResolution.resolvedModule.packageId ? Diagnostics.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3 : Diagnostics.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2, moduleName.text, getNormalizedAbsolutePath(file.originalFileName, currentDirectory), oldResolution.resolvedModule.resolvedFileName, oldResolution.resolvedModule.packageId && packageIdToString(oldResolution.resolvedModule.packageId)); - } - (result !== null && result !== void 0 ? result : (result = new Array(moduleNames.length)))[i] = oldResolution; - (reusedNames !== null && reusedNames !== void 0 ? reusedNames : (reusedNames = [])).push(moduleName); - continue; - } - } - var resolvesToAmbientModuleInNonModifiedFile = false; - if (contains(file.ambientModuleNames, moduleName.text)) { - resolvesToAmbientModuleInNonModifiedFile = true; - if (isTraceEnabled(options, host)) { - trace(host, Diagnostics.Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1, moduleName.text, getNormalizedAbsolutePath(file.originalFileName, currentDirectory)); - } - } - else { - resolvesToAmbientModuleInNonModifiedFile = moduleNameResolvesToAmbientModuleInNonModifiedFile(moduleName); - } - if (resolvesToAmbientModuleInNonModifiedFile) { - (result || (result = new Array(moduleNames.length)))[i] = predictedToResolveToAmbientModuleMarker; - } - else { - (unknownModuleNames !== null && unknownModuleNames !== void 0 ? unknownModuleNames : (unknownModuleNames = [])).push(moduleName); - } - } - var resolutions = unknownModuleNames && unknownModuleNames.length ? resolveModuleNamesWorker(unknownModuleNames, file, reusedNames) : emptyArray; - if (!result) { - Debug.assert(resolutions.length === moduleNames.length); - return resolutions; - } - var j = 0; - for (var i = 0; i < result.length; i++) { - if (!result[i]) { - result[i] = resolutions[j]; - j++; - } - } - Debug.assert(j === resolutions.length); - return result; - function moduleNameResolvesToAmbientModuleInNonModifiedFile(moduleName) { - var resolutionToFile = getResolvedModule(oldSourceFile, moduleName.text, getModeForUsageLocation(file, moduleName)); - var resolvedFile = resolutionToFile && oldProgram.getSourceFile(resolutionToFile.resolvedFileName); - if (resolutionToFile && resolvedFile) { - return false; - } - var unmodifiedFile = ambientModuleNameToUnmodifiedFileName.get(moduleName.text); - if (!unmodifiedFile) { - return false; - } - if (isTraceEnabled(options, host)) { - trace(host, Diagnostics.Module_0_was_resolved_as_ambient_module_declared_in_1_since_this_file_was_not_modified, moduleName.text, unmodifiedFile); - } - return true; - } - } - function resolveTypeReferenceDirectiveNamesReusingOldState(typeDirectiveNames, containingFile) { - var e_594, _t; - var _a2; - if (structureIsReused === 0 /* Not */) { - return resolveTypeReferenceDirectiveNamesWorker(typeDirectiveNames, containingFile, - /*reusedNames*/ - void 0); - } - var oldSourceFile = !isString(containingFile) ? oldProgram && oldProgram.getSourceFile(containingFile.fileName) : void 0; - if (!isString(containingFile)) { - if (oldSourceFile !== containingFile && containingFile.resolvedTypeReferenceDirectiveNames) { - var result2 = []; - try { - for (var typeDirectiveNames_1 = __values(typeDirectiveNames), typeDirectiveNames_1_1 = typeDirectiveNames_1.next(); !typeDirectiveNames_1_1.done; typeDirectiveNames_1_1 = typeDirectiveNames_1.next()) { - var typeDirectiveName = typeDirectiveNames_1_1.value; - var resolvedTypeReferenceDirective = containingFile.resolvedTypeReferenceDirectiveNames.get(getTypeReferenceResolutionName(typeDirectiveName), getModeForFileReference(typeDirectiveName, containingFile.impliedNodeFormat)); - result2.push(resolvedTypeReferenceDirective); - } - } - catch (e_594_1) { e_594 = { error: e_594_1 }; } - finally { - try { - if (typeDirectiveNames_1_1 && !typeDirectiveNames_1_1.done && (_t = typeDirectiveNames_1.return)) _t.call(typeDirectiveNames_1); - } - finally { if (e_594) throw e_594.error; } - } - return result2; - } - } - var unknownTypeReferenceDirectiveNames; - var result; - var reusedNames; - var containingSourceFile = !isString(containingFile) ? containingFile : void 0; - var canReuseResolutions = !isString(containingFile) ? containingFile === oldSourceFile && !hasInvalidatedResolutions(oldSourceFile.path) : !hasInvalidatedResolutions(toPath3(containingFile)); - for (var i = 0; i < typeDirectiveNames.length; i++) { - var entry = typeDirectiveNames[i]; - if (canReuseResolutions) { - var typeDirectiveName = getTypeReferenceResolutionName(entry); - var mode = getModeForFileReference(entry, containingSourceFile == null ? void 0 : containingSourceFile.impliedNodeFormat); - var oldResolution = (_a2 = !isString(containingFile) ? oldSourceFile == null ? void 0 : oldSourceFile.resolvedTypeReferenceDirectiveNames : oldProgram == null ? void 0 : oldProgram.getAutomaticTypeDirectiveResolutions()) == null ? void 0 : _a2.get(typeDirectiveName, mode); - if (oldResolution == null ? void 0 : oldResolution.resolvedTypeReferenceDirective) { - if (isTraceEnabled(options, host)) { - trace(host, oldResolution.resolvedTypeReferenceDirective.packageId ? Diagnostics.Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3 : Diagnostics.Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2, typeDirectiveName, !isString(containingFile) ? getNormalizedAbsolutePath(containingFile.originalFileName, currentDirectory) : containingFile, oldResolution.resolvedTypeReferenceDirective.resolvedFileName, oldResolution.resolvedTypeReferenceDirective.packageId && packageIdToString(oldResolution.resolvedTypeReferenceDirective.packageId)); - } - (result !== null && result !== void 0 ? result : (result = new Array(typeDirectiveNames.length)))[i] = oldResolution; - (reusedNames !== null && reusedNames !== void 0 ? reusedNames : (reusedNames = [])).push(entry); - continue; - } - } - (unknownTypeReferenceDirectiveNames !== null && unknownTypeReferenceDirectiveNames !== void 0 ? unknownTypeReferenceDirectiveNames : (unknownTypeReferenceDirectiveNames = [])).push(entry); - } - if (!unknownTypeReferenceDirectiveNames) - return result || emptyArray; - var resolutions = resolveTypeReferenceDirectiveNamesWorker(unknownTypeReferenceDirectiveNames, containingFile, reusedNames); - if (!result) { - Debug.assert(resolutions.length === typeDirectiveNames.length); - return resolutions; - } - var j = 0; - for (var i = 0; i < result.length; i++) { - if (!result[i]) { - result[i] = resolutions[j]; - j++; - } - } - Debug.assert(j === resolutions.length); - return result; - } - function canReuseProjectReferences() { - return !forEachProjectReference(oldProgram.getProjectReferences(), oldProgram.getResolvedProjectReferences(), function (oldResolvedRef, parent2, index) { - var newRef = (parent2 ? parent2.commandLine.projectReferences : projectReferences)[index]; - var newResolvedRef = parseProjectReferenceConfigFile(newRef); - if (oldResolvedRef) { - return !newResolvedRef || newResolvedRef.sourceFile !== oldResolvedRef.sourceFile || !arrayIsEqualTo(oldResolvedRef.commandLine.fileNames, newResolvedRef.commandLine.fileNames); - } - else { - return newResolvedRef !== void 0; - } - }, function (oldProjectReferences, parent2) { - var newReferences = parent2 ? getResolvedProjectReferenceByPath(parent2.sourceFile.path).commandLine.projectReferences : projectReferences; - return !arrayIsEqualTo(oldProjectReferences, newReferences, projectReferenceIsEqualTo); - }); - } - function tryReuseStructureFromOldProgram() { - var e_595, _t, e_596, _u, e_597, _v, e_598, _w, e_599, _x; - var _a2; - if (!oldProgram) { - return 0 /* Not */; - } - var oldOptions = oldProgram.getCompilerOptions(); - if (changesAffectModuleResolution(oldOptions, options)) { - return 0 /* Not */; - } - var oldRootNames = oldProgram.getRootFileNames(); - if (!arrayIsEqualTo(oldRootNames, rootNames)) { - return 0 /* Not */; - } - if (!canReuseProjectReferences()) { - return 0 /* Not */; - } - if (projectReferences) { - resolvedProjectReferences = projectReferences.map(parseProjectReferenceConfigFile); - } - var newSourceFiles = []; - var modifiedSourceFiles = []; - structureIsReused = 2 /* Completely */; - if (oldProgram.getMissingFilePaths().some(function (missingFilePath) { return host.fileExists(missingFilePath); })) { - return 0 /* Not */; - } - var oldSourceFiles = oldProgram.getSourceFiles(); - var SeenPackageName; - (function (SeenPackageName2) { - SeenPackageName2[SeenPackageName2["Exists"] = 0] = "Exists"; - SeenPackageName2[SeenPackageName2["Modified"] = 1] = "Modified"; - })(SeenPackageName || (SeenPackageName = {})); - var seenPackageNames = /* @__PURE__ */ new Map(); - try { - for (var oldSourceFiles_2 = __values(oldSourceFiles), oldSourceFiles_2_1 = oldSourceFiles_2.next(); !oldSourceFiles_2_1.done; oldSourceFiles_2_1 = oldSourceFiles_2.next()) { - var oldSourceFile = oldSourceFiles_2_1.value; - var sourceFileOptions = getCreateSourceFileOptions(oldSourceFile.fileName, moduleResolutionCache, host, options); - var newSourceFile = host.getSourceFileByPath ? host.getSourceFileByPath(oldSourceFile.fileName, oldSourceFile.resolvedPath, sourceFileOptions, - /*onError*/ - void 0, shouldCreateNewSourceFile) : host.getSourceFile(oldSourceFile.fileName, sourceFileOptions, - /*onError*/ - void 0, shouldCreateNewSourceFile); - if (!newSourceFile) { - return 0 /* Not */; - } - newSourceFile.packageJsonLocations = ((_a2 = sourceFileOptions.packageJsonLocations) == null ? void 0 : _a2.length) ? sourceFileOptions.packageJsonLocations : void 0; - newSourceFile.packageJsonScope = sourceFileOptions.packageJsonScope; - Debug.assert(!newSourceFile.redirectInfo, "Host should not return a redirect source file from `getSourceFile`"); - var fileChanged = void 0; - if (oldSourceFile.redirectInfo) { - if (newSourceFile !== oldSourceFile.redirectInfo.unredirected) { - return 0 /* Not */; - } - fileChanged = false; - newSourceFile = oldSourceFile; - } - else if (oldProgram.redirectTargetsMap.has(oldSourceFile.path)) { - if (newSourceFile !== oldSourceFile) { - return 0 /* Not */; - } - fileChanged = false; - } - else { - fileChanged = newSourceFile !== oldSourceFile; - } - newSourceFile.path = oldSourceFile.path; - newSourceFile.originalFileName = oldSourceFile.originalFileName; - newSourceFile.resolvedPath = oldSourceFile.resolvedPath; - newSourceFile.fileName = oldSourceFile.fileName; - var packageName = oldProgram.sourceFileToPackageName.get(oldSourceFile.path); - if (packageName !== void 0) { - var prevKind = seenPackageNames.get(packageName); - var newKind = fileChanged ? 1 /* Modified */ : 0 /* Exists */; - if (prevKind !== void 0 && newKind === 1 /* Modified */ || prevKind === 1 /* Modified */) { - return 0 /* Not */; - } - seenPackageNames.set(packageName, newKind); - } - if (fileChanged) { - if (oldSourceFile.impliedNodeFormat !== newSourceFile.impliedNodeFormat) { - structureIsReused = 1 /* SafeModules */; - } - else if (!arrayIsEqualTo(oldSourceFile.libReferenceDirectives, newSourceFile.libReferenceDirectives, fileReferenceIsEqualTo)) { - structureIsReused = 1 /* SafeModules */; - } - else if (oldSourceFile.hasNoDefaultLib !== newSourceFile.hasNoDefaultLib) { - structureIsReused = 1 /* SafeModules */; - } - else if (!arrayIsEqualTo(oldSourceFile.referencedFiles, newSourceFile.referencedFiles, fileReferenceIsEqualTo)) { - structureIsReused = 1 /* SafeModules */; - } - else { - collectExternalModuleReferences(newSourceFile); - if (!arrayIsEqualTo(oldSourceFile.imports, newSourceFile.imports, moduleNameIsEqualTo)) { - structureIsReused = 1 /* SafeModules */; - } - else if (!arrayIsEqualTo(oldSourceFile.moduleAugmentations, newSourceFile.moduleAugmentations, moduleNameIsEqualTo)) { - structureIsReused = 1 /* SafeModules */; - } - else if ((oldSourceFile.flags & 12582912 /* PermanentlySetIncrementalFlags */) !== (newSourceFile.flags & 12582912 /* PermanentlySetIncrementalFlags */)) { - structureIsReused = 1 /* SafeModules */; - } - else if (!arrayIsEqualTo(oldSourceFile.typeReferenceDirectives, newSourceFile.typeReferenceDirectives, fileReferenceIsEqualTo)) { - structureIsReused = 1 /* SafeModules */; - } - } - modifiedSourceFiles.push({ oldFile: oldSourceFile, newFile: newSourceFile }); - } - else if (hasInvalidatedResolutions(oldSourceFile.path)) { - structureIsReused = 1 /* SafeModules */; - modifiedSourceFiles.push({ oldFile: oldSourceFile, newFile: newSourceFile }); - } - newSourceFiles.push(newSourceFile); - } - } - catch (e_595_1) { e_595 = { error: e_595_1 }; } - finally { - try { - if (oldSourceFiles_2_1 && !oldSourceFiles_2_1.done && (_t = oldSourceFiles_2.return)) _t.call(oldSourceFiles_2); - } - finally { if (e_595) throw e_595.error; } - } - if (structureIsReused !== 2 /* Completely */) { - return structureIsReused; - } - var modifiedFiles = modifiedSourceFiles.map(function (f) { return f.oldFile; }); - try { - for (var oldSourceFiles_3 = __values(oldSourceFiles), oldSourceFiles_3_1 = oldSourceFiles_3.next(); !oldSourceFiles_3_1.done; oldSourceFiles_3_1 = oldSourceFiles_3.next()) { - var oldFile = oldSourceFiles_3_1.value; - if (!contains(modifiedFiles, oldFile)) { - try { - for (var _y = (e_597 = void 0, __values(oldFile.ambientModuleNames)), _z = _y.next(); !_z.done; _z = _y.next()) { - var moduleName = _z.value; - ambientModuleNameToUnmodifiedFileName.set(moduleName, oldFile.fileName); - } - } - catch (e_597_1) { e_597 = { error: e_597_1 }; } - finally { - try { - if (_z && !_z.done && (_v = _y.return)) _v.call(_y); - } - finally { if (e_597) throw e_597.error; } - } - } - } - } - catch (e_596_1) { e_596 = { error: e_596_1 }; } - finally { - try { - if (oldSourceFiles_3_1 && !oldSourceFiles_3_1.done && (_u = oldSourceFiles_3.return)) _u.call(oldSourceFiles_3); - } - finally { if (e_596) throw e_596.error; } - } - try { - for (var modifiedSourceFiles_1 = __values(modifiedSourceFiles), modifiedSourceFiles_1_1 = modifiedSourceFiles_1.next(); !modifiedSourceFiles_1_1.done; modifiedSourceFiles_1_1 = modifiedSourceFiles_1.next()) { - var _10 = modifiedSourceFiles_1_1.value, oldSourceFile = _10.oldFile, newSourceFile = _10.newFile; - var moduleNames = getModuleNames(newSourceFile); - var resolutions = resolveModuleNamesReusingOldState(moduleNames, newSourceFile); - var resolutionsChanged = hasChangesInResolutions(moduleNames, newSourceFile, resolutions, oldSourceFile.resolvedModules, moduleResolutionIsEqualTo, moduleResolutionNameAndModeGetter); - if (resolutionsChanged) { - structureIsReused = 1 /* SafeModules */; - newSourceFile.resolvedModules = zipToModeAwareCache(newSourceFile, moduleNames, resolutions, moduleResolutionNameAndModeGetter); - } - else { - newSourceFile.resolvedModules = oldSourceFile.resolvedModules; - } - var typesReferenceDirectives = newSourceFile.typeReferenceDirectives; - var typeReferenceResolutions = resolveTypeReferenceDirectiveNamesReusingOldState(typesReferenceDirectives, newSourceFile); - var typeReferenceResolutionsChanged = hasChangesInResolutions(typesReferenceDirectives, newSourceFile, typeReferenceResolutions, oldSourceFile.resolvedTypeReferenceDirectiveNames, typeDirectiveIsEqualTo, typeReferenceResolutionNameAndModeGetter); - if (typeReferenceResolutionsChanged) { - structureIsReused = 1 /* SafeModules */; - newSourceFile.resolvedTypeReferenceDirectiveNames = zipToModeAwareCache(newSourceFile, typesReferenceDirectives, typeReferenceResolutions, typeReferenceResolutionNameAndModeGetter); - } - else { - newSourceFile.resolvedTypeReferenceDirectiveNames = oldSourceFile.resolvedTypeReferenceDirectiveNames; - } - } - } - catch (e_598_1) { e_598 = { error: e_598_1 }; } - finally { - try { - if (modifiedSourceFiles_1_1 && !modifiedSourceFiles_1_1.done && (_w = modifiedSourceFiles_1.return)) _w.call(modifiedSourceFiles_1); - } - finally { if (e_598) throw e_598.error; } - } - if (structureIsReused !== 2 /* Completely */) { - return structureIsReused; - } - if (changesAffectingProgramStructure(oldOptions, options)) { - return 1 /* SafeModules */; - } - if (oldProgram.resolvedLibReferences && forEachEntry(oldProgram.resolvedLibReferences, function (resolution, libFileName) { return pathForLibFileWorker(libFileName).actual !== resolution.actual; })) { - return 1 /* SafeModules */; - } - if (host.hasChangedAutomaticTypeDirectiveNames) { - if (host.hasChangedAutomaticTypeDirectiveNames()) - return 1 /* SafeModules */; - } - else { - automaticTypeDirectiveNames = getAutomaticTypeDirectiveNames(options, host); - if (!arrayIsEqualTo(oldProgram.getAutomaticTypeDirectiveNames(), automaticTypeDirectiveNames)) - return 1 /* SafeModules */; - } - missingFilePaths = oldProgram.getMissingFilePaths(); - Debug.assert(newSourceFiles.length === oldProgram.getSourceFiles().length); - try { - for (var newSourceFiles_1 = __values(newSourceFiles), newSourceFiles_1_1 = newSourceFiles_1.next(); !newSourceFiles_1_1.done; newSourceFiles_1_1 = newSourceFiles_1.next()) { - var newSourceFile = newSourceFiles_1_1.value; - filesByName.set(newSourceFile.path, newSourceFile); - } - } - catch (e_599_1) { e_599 = { error: e_599_1 }; } - finally { - try { - if (newSourceFiles_1_1 && !newSourceFiles_1_1.done && (_x = newSourceFiles_1.return)) _x.call(newSourceFiles_1); - } - finally { if (e_599) throw e_599.error; } - } - var oldFilesByNameMap = oldProgram.getFilesByNameMap(); - oldFilesByNameMap.forEach(function (oldFile, path) { - if (!oldFile) { - filesByName.set(path, oldFile); - return; - } - if (oldFile.path === path) { - if (oldProgram.isSourceFileFromExternalLibrary(oldFile)) { - sourceFilesFoundSearchingNodeModules.set(oldFile.path, true); - } - return; - } - filesByName.set(path, filesByName.get(oldFile.path)); - }); - files = newSourceFiles; - fileReasons = oldProgram.getFileIncludeReasons(); - fileProcessingDiagnostics = oldProgram.getFileProcessingDiagnostics(); - resolvedTypeReferenceDirectives = oldProgram.getResolvedTypeReferenceDirectives(); - automaticTypeDirectiveNames = oldProgram.getAutomaticTypeDirectiveNames(); - automaticTypeDirectiveResolutions = oldProgram.getAutomaticTypeDirectiveResolutions(); - sourceFileToPackageName = oldProgram.sourceFileToPackageName; - redirectTargetsMap = oldProgram.redirectTargetsMap; - usesUriStyleNodeCoreModules = oldProgram.usesUriStyleNodeCoreModules; - resolvedLibReferences = oldProgram.resolvedLibReferences; - packageMap = oldProgram.getCurrentPackagesMap(); - return 2 /* Completely */; - } - function getEmitHost(writeFileCallback) { - return { - getPrependNodes: getPrependNodes, - getCanonicalFileName: getCanonicalFileName, - getCommonSourceDirectory: program.getCommonSourceDirectory, - getCompilerOptions: program.getCompilerOptions, - getCurrentDirectory: function () { return currentDirectory; }, - getSourceFile: program.getSourceFile, - getSourceFileByPath: program.getSourceFileByPath, - getSourceFiles: program.getSourceFiles, - getLibFileFromReference: program.getLibFileFromReference, - isSourceFileFromExternalLibrary: isSourceFileFromExternalLibrary, - getResolvedProjectReferenceToRedirect: getResolvedProjectReferenceToRedirect, - getProjectReferenceRedirect: getProjectReferenceRedirect, - isSourceOfProjectReferenceRedirect: isSourceOfProjectReferenceRedirect, - getSymlinkCache: getSymlinkCache, - writeFile: writeFileCallback || writeFile2, - isEmitBlocked: isEmitBlocked, - readFile: function (f) { return host.readFile(f); }, - fileExists: function (f) { - var path = toPath3(f); - if (getSourceFileByPath(path)) - return true; - if (contains(missingFilePaths, path)) - return false; - return host.fileExists(f); - }, - useCaseSensitiveFileNames: function () { return host.useCaseSensitiveFileNames(); }, - getBuildInfo: function (bundle) { - var _a2; - return (_a2 = program.getBuildInfo) == null ? void 0 : _a2.call(program, bundle); - }, - getSourceFileFromReference: function (file, ref) { return program.getSourceFileFromReference(file, ref); }, - redirectTargetsMap: redirectTargetsMap, - getFileIncludeReasons: program.getFileIncludeReasons, - createHash: maybeBind(host, host.createHash) - }; - } - function writeFile2(fileName, text, writeByteOrderMark, onError, sourceFiles, data) { - host.writeFile(fileName, text, writeByteOrderMark, onError, sourceFiles, data); - } - function emitBuildInfo(writeFileCallback) { - var _a2, _b2; - Debug.assert(!outFile(options)); - (_a2 = tracing) == null ? void 0 : _a2.push(tracing.Phase.Emit, "emitBuildInfo", {}, - /*separateBeginAndEnd*/ - true); - mark("beforeEmit"); - var emitResult = emitFiles(notImplementedResolver, getEmitHost(writeFileCallback), - /*targetSourceFile*/ - void 0, - /*transformers*/ - noTransformers, - /*emitOnly*/ - false, - /*onlyBuildInfo*/ - true); - mark("afterEmit"); - measure("Emit", "beforeEmit", "afterEmit"); - (_b2 = tracing) == null ? void 0 : _b2.pop(); - return emitResult; - } - function getResolvedProjectReferences() { - return resolvedProjectReferences; - } - function getProjectReferences() { - return projectReferences; - } - function getPrependNodes() { - return createPrependNodes(projectReferences, function (_ref, index) { - var _a2; - return (_a2 = resolvedProjectReferences[index]) == null ? void 0 : _a2.commandLine; - }, function (fileName) { - var path = toPath3(fileName); - var sourceFile = getSourceFileByPath(path); - return sourceFile ? sourceFile.text : filesByName.has(path) ? void 0 : host.readFile(path); - }, host); - } - function isSourceFileFromExternalLibrary(file) { - return !!sourceFilesFoundSearchingNodeModules.get(file.path); - } - function isSourceFileDefaultLibrary(file) { - if (!file.isDeclarationFile) { - return false; - } - if (file.hasNoDefaultLib) { - return true; - } - if (!options.noLib) { - return false; - } - var equalityComparer = host.useCaseSensitiveFileNames() ? equateStringsCaseSensitive : equateStringsCaseInsensitive; - if (!options.lib) { - return equalityComparer(file.fileName, getDefaultLibraryFileName()); - } - else { - return some(options.lib, function (libFileName) { return equalityComparer(file.fileName, resolvedLibReferences.get(libFileName).actual); }); - } - } - function getTypeChecker() { - return typeChecker || (typeChecker = createTypeChecker(program)); - } - function emit(sourceFile, writeFileCallback, cancellationToken, emitOnly, transformers, forceDtsEmit) { - var _a2, _b2; - (_a2 = tracing) == null ? void 0 : _a2.push(tracing.Phase.Emit, "emit", { path: sourceFile == null ? void 0 : sourceFile.path }, - /*separateBeginAndEnd*/ - true); - var result = runWithCancellationToken(function () { return emitWorker(program, sourceFile, writeFileCallback, cancellationToken, emitOnly, transformers, forceDtsEmit); }); - (_b2 = tracing) == null ? void 0 : _b2.pop(); - return result; - } - function isEmitBlocked(emitFileName) { - return hasEmitBlockingDiagnostics.has(toPath3(emitFileName)); - } - function emitWorker(program2, sourceFile, writeFileCallback, cancellationToken, emitOnly, customTransformers, forceDtsEmit) { - if (!forceDtsEmit) { - var result = handleNoEmitOptions(program2, sourceFile, writeFileCallback, cancellationToken); - if (result) - return result; - } - var emitResolver = getTypeChecker().getEmitResolver(outFile(options) ? void 0 : sourceFile, cancellationToken); - mark("beforeEmit"); - var emitResult = emitFiles(emitResolver, getEmitHost(writeFileCallback), sourceFile, getTransformers(options, customTransformers, emitOnly), emitOnly, - /*onlyBuildInfo*/ - false, forceDtsEmit); - mark("afterEmit"); - measure("Emit", "beforeEmit", "afterEmit"); - return emitResult; - } - function getSourceFile(fileName) { - return getSourceFileByPath(toPath3(fileName)); - } - function getSourceFileByPath(path) { - return filesByName.get(path) || void 0; - } - function getDiagnosticsHelper(sourceFile, getDiagnostics2, cancellationToken) { - if (sourceFile) { - return sortAndDeduplicateDiagnostics(getDiagnostics2(sourceFile, cancellationToken)); - } - return sortAndDeduplicateDiagnostics(flatMap(program.getSourceFiles(), function (sourceFile2) { - if (cancellationToken) { - cancellationToken.throwIfCancellationRequested(); - } - return getDiagnostics2(sourceFile2, cancellationToken); - })); - } - function getSyntacticDiagnostics(sourceFile, cancellationToken) { - return getDiagnosticsHelper(sourceFile, getSyntacticDiagnosticsForFile, cancellationToken); - } - function getSemanticDiagnostics(sourceFile, cancellationToken) { - return getDiagnosticsHelper(sourceFile, getSemanticDiagnosticsForFile, cancellationToken); - } - function getCachedSemanticDiagnostics(sourceFile) { - var _a2; - return sourceFile ? (_a2 = cachedBindAndCheckDiagnosticsForFile.perFile) == null ? void 0 : _a2.get(sourceFile.path) : cachedBindAndCheckDiagnosticsForFile.allDiagnostics; - } - function getBindAndCheckDiagnostics(sourceFile, cancellationToken) { - return getBindAndCheckDiagnosticsForFile(sourceFile, cancellationToken); - } - function getProgramDiagnostics(sourceFile) { - var _a2; - if (skipTypeChecking(sourceFile, options, program)) { - return emptyArray; - } - var programDiagnosticsInFile = programDiagnostics.getDiagnostics(sourceFile.fileName); - if (!((_a2 = sourceFile.commentDirectives) == null ? void 0 : _a2.length)) { - return programDiagnosticsInFile; - } - return getDiagnosticsWithPrecedingDirectives(sourceFile, sourceFile.commentDirectives, programDiagnosticsInFile).diagnostics; - } - function getDeclarationDiagnostics2(sourceFile, cancellationToken) { - var options2 = program.getCompilerOptions(); - if (!sourceFile || outFile(options2)) { - return getDeclarationDiagnosticsWorker(sourceFile, cancellationToken); - } - else { - return getDiagnosticsHelper(sourceFile, getDeclarationDiagnosticsForFile, cancellationToken); - } - } - function getSyntacticDiagnosticsForFile(sourceFile) { - if (isSourceFileJS(sourceFile)) { - if (!sourceFile.additionalSyntacticDiagnostics) { - sourceFile.additionalSyntacticDiagnostics = getJSSyntacticDiagnosticsForFile(sourceFile); - } - return concatenate(sourceFile.additionalSyntacticDiagnostics, sourceFile.parseDiagnostics); - } - return sourceFile.parseDiagnostics; - } - function runWithCancellationToken(func) { - try { - return func(); - } - catch (e) { - if (e instanceof OperationCanceledException) { - typeChecker = void 0; - } - throw e; - } - } - function getSemanticDiagnosticsForFile(sourceFile, cancellationToken) { - return concatenate(filterSemanticDiagnostics(getBindAndCheckDiagnosticsForFile(sourceFile, cancellationToken), options), getProgramDiagnostics(sourceFile)); - } - function getBindAndCheckDiagnosticsForFile(sourceFile, cancellationToken) { - return getAndCacheDiagnostics(sourceFile, cancellationToken, cachedBindAndCheckDiagnosticsForFile, getBindAndCheckDiagnosticsForFileNoCache); - } - function getBindAndCheckDiagnosticsForFileNoCache(sourceFile, cancellationToken) { - return runWithCancellationToken(function () { - if (skipTypeChecking(sourceFile, options, program)) { - return emptyArray; - } - var typeChecker2 = getTypeChecker(); - Debug.assert(!!sourceFile.bindDiagnostics); - var isJs = sourceFile.scriptKind === 1 /* JS */ || sourceFile.scriptKind === 2 /* JSX */; - var isCheckJs = isJs && isCheckJsEnabledForFile(sourceFile, options); - var isPlainJs = isPlainJsFile(sourceFile, options.checkJs); - var isTsNoCheck = !!sourceFile.checkJsDirective && sourceFile.checkJsDirective.enabled === false; - var includeBindAndCheckDiagnostics = !isTsNoCheck && (sourceFile.scriptKind === 3 /* TS */ || sourceFile.scriptKind === 4 /* TSX */ || sourceFile.scriptKind === 5 /* External */ || isPlainJs || isCheckJs || sourceFile.scriptKind === 7 /* Deferred */); - var bindDiagnostics = includeBindAndCheckDiagnostics ? sourceFile.bindDiagnostics : emptyArray; - var checkDiagnostics = includeBindAndCheckDiagnostics ? typeChecker2.getDiagnostics(sourceFile, cancellationToken) : emptyArray; - if (isPlainJs) { - bindDiagnostics = filter(bindDiagnostics, function (d) { return plainJSErrors.has(d.code); }); - checkDiagnostics = filter(checkDiagnostics, function (d) { return plainJSErrors.has(d.code); }); - } - return getMergedBindAndCheckDiagnostics(sourceFile, includeBindAndCheckDiagnostics && !isPlainJs, bindDiagnostics, checkDiagnostics, isCheckJs ? sourceFile.jsDocDiagnostics : void 0); - }); - } - function getMergedBindAndCheckDiagnostics(sourceFile, includeBindAndCheckDiagnostics) { - var e_600, _t; - var allDiagnostics = []; - for (var _u = 2; _u < arguments.length; _u++) { - allDiagnostics[_u - 2] = arguments[_u]; - } - var _a2; - var flatDiagnostics = flatten(allDiagnostics); - if (!includeBindAndCheckDiagnostics || !((_a2 = sourceFile.commentDirectives) == null ? void 0 : _a2.length)) { - return flatDiagnostics; - } - var _v = getDiagnosticsWithPrecedingDirectives(sourceFile, sourceFile.commentDirectives, flatDiagnostics), diagnostics = _v.diagnostics, directives = _v.directives; - try { - for (var _w = __values(directives.getUnusedExpectations()), _x = _w.next(); !_x.done; _x = _w.next()) { - var errorExpectation = _x.value; - diagnostics.push(createDiagnosticForRange(sourceFile, errorExpectation.range, Diagnostics.Unused_ts_expect_error_directive)); - } - } - catch (e_600_1) { e_600 = { error: e_600_1 }; } - finally { - try { - if (_x && !_x.done && (_t = _w.return)) _t.call(_w); - } - finally { if (e_600) throw e_600.error; } - } - return diagnostics; - } - function getDiagnosticsWithPrecedingDirectives(sourceFile, commentDirectives, flatDiagnostics) { - var directives = createCommentDirectivesMap(sourceFile, commentDirectives); - var diagnostics = flatDiagnostics.filter(function (diagnostic) { return markPrecedingCommentDirectiveLine(diagnostic, directives) === -1; }); - return { diagnostics: diagnostics, directives: directives }; - } - function getSuggestionDiagnostics(sourceFile, cancellationToken) { - return runWithCancellationToken(function () { - return getTypeChecker().getSuggestionDiagnostics(sourceFile, cancellationToken); - }); - } - function markPrecedingCommentDirectiveLine(diagnostic, directives) { - var file = diagnostic.file, start2 = diagnostic.start; - if (!file) { - return -1; - } - var lineStarts = getLineStarts(file); - var line = computeLineAndCharacterOfPosition(lineStarts, start2).line - 1; - while (line >= 0) { - if (directives.markUsed(line)) { - return line; - } - var lineText = file.text.slice(lineStarts[line], lineStarts[line + 1]).trim(); - if (lineText !== "" && !/^(\s*)\/\/(.*)$/.test(lineText)) { - return -1; - } - line--; - } - return -1; - } - function getJSSyntacticDiagnosticsForFile(sourceFile) { - return runWithCancellationToken(function () { - var diagnostics = []; - walk(sourceFile, sourceFile); - forEachChildRecursively(sourceFile, walk, walkArray); - return diagnostics; - function walk(node, parent2) { - switch (parent2.kind) { - case 169 /* Parameter */: - case 172 /* PropertyDeclaration */: - case 174 /* MethodDeclaration */: - if (parent2.questionToken === node) { - diagnostics.push(createDiagnosticForNode2(node, Diagnostics.The_0_modifier_can_only_be_used_in_TypeScript_files, "?")); - return "skip"; - } - case 173 /* MethodSignature */: - case 176 /* Constructor */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - case 218 /* FunctionExpression */: - case 262 /* FunctionDeclaration */: - case 219 /* ArrowFunction */: - case 260 /* VariableDeclaration */: - if (parent2.type === node) { - diagnostics.push(createDiagnosticForNode2(node, Diagnostics.Type_annotations_can_only_be_used_in_TypeScript_files)); - return "skip"; - } - } - switch (node.kind) { - case 273 /* ImportClause */: - if (node.isTypeOnly) { - diagnostics.push(createDiagnosticForNode2(parent2, Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files, "import type")); - return "skip"; - } - break; - case 278 /* ExportDeclaration */: - if (node.isTypeOnly) { - diagnostics.push(createDiagnosticForNode2(node, Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files, "export type")); - return "skip"; - } - break; - case 276 /* ImportSpecifier */: - case 281 /* ExportSpecifier */: - if (node.isTypeOnly) { - diagnostics.push(createDiagnosticForNode2(node, Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files, isImportSpecifier(node) ? "import...type" : "export...type")); - return "skip"; - } - break; - case 271 /* ImportEqualsDeclaration */: - diagnostics.push(createDiagnosticForNode2(node, Diagnostics.import_can_only_be_used_in_TypeScript_files)); - return "skip"; - case 277 /* ExportAssignment */: - if (node.isExportEquals) { - diagnostics.push(createDiagnosticForNode2(node, Diagnostics.export_can_only_be_used_in_TypeScript_files)); - return "skip"; - } - break; - case 298 /* HeritageClause */: - var heritageClause = node; - if (heritageClause.token === 119 /* ImplementsKeyword */) { - diagnostics.push(createDiagnosticForNode2(node, Diagnostics.implements_clauses_can_only_be_used_in_TypeScript_files)); - return "skip"; - } - break; - case 264 /* InterfaceDeclaration */: - var interfaceKeyword = tokenToString(120 /* InterfaceKeyword */); - Debug.assertIsDefined(interfaceKeyword); - diagnostics.push(createDiagnosticForNode2(node, Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files, interfaceKeyword)); - return "skip"; - case 267 /* ModuleDeclaration */: - var moduleKeyword = node.flags & 32 /* Namespace */ ? tokenToString(145 /* NamespaceKeyword */) : tokenToString(144 /* ModuleKeyword */); - Debug.assertIsDefined(moduleKeyword); - diagnostics.push(createDiagnosticForNode2(node, Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files, moduleKeyword)); - return "skip"; - case 265 /* TypeAliasDeclaration */: - diagnostics.push(createDiagnosticForNode2(node, Diagnostics.Type_aliases_can_only_be_used_in_TypeScript_files)); - return "skip"; - case 176 /* Constructor */: - case 174 /* MethodDeclaration */: - case 262 /* FunctionDeclaration */: - if (!node.body) { - diagnostics.push(createDiagnosticForNode2(node, Diagnostics.Signature_declarations_can_only_be_used_in_TypeScript_files)); - return "skip"; - } - return; - case 266 /* EnumDeclaration */: - var enumKeyword = Debug.checkDefined(tokenToString(94 /* EnumKeyword */)); - diagnostics.push(createDiagnosticForNode2(node, Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files, enumKeyword)); - return "skip"; - case 235 /* NonNullExpression */: - diagnostics.push(createDiagnosticForNode2(node, Diagnostics.Non_null_assertions_can_only_be_used_in_TypeScript_files)); - return "skip"; - case 234 /* AsExpression */: - diagnostics.push(createDiagnosticForNode2(node.type, Diagnostics.Type_assertion_expressions_can_only_be_used_in_TypeScript_files)); - return "skip"; - case 238 /* SatisfiesExpression */: - diagnostics.push(createDiagnosticForNode2(node.type, Diagnostics.Type_satisfaction_expressions_can_only_be_used_in_TypeScript_files)); - return "skip"; - case 216 /* TypeAssertionExpression */: - Debug.fail(); - } - } - function walkArray(nodes, parent2) { - var e_601, _t; - if (canHaveIllegalDecorators(parent2)) { - var decorator = find(parent2.modifiers, isDecorator); - if (decorator) { - diagnostics.push(createDiagnosticForNode2(decorator, Diagnostics.Decorators_are_not_valid_here)); - } - } - else if (canHaveDecorators(parent2) && parent2.modifiers) { - var decoratorIndex = findIndex(parent2.modifiers, isDecorator); - if (decoratorIndex >= 0) { - if (isParameter(parent2) && !options.experimentalDecorators) { - diagnostics.push(createDiagnosticForNode2(parent2.modifiers[decoratorIndex], Diagnostics.Decorators_are_not_valid_here)); - } - else if (isClassDeclaration(parent2)) { - var exportIndex = findIndex(parent2.modifiers, isExportModifier); - if (exportIndex >= 0) { - var defaultIndex = findIndex(parent2.modifiers, isDefaultModifier); - if (decoratorIndex > exportIndex && defaultIndex >= 0 && decoratorIndex < defaultIndex) { - diagnostics.push(createDiagnosticForNode2(parent2.modifiers[decoratorIndex], Diagnostics.Decorators_are_not_valid_here)); - } - else if (exportIndex >= 0 && decoratorIndex < exportIndex) { - var trailingDecoratorIndex = findIndex(parent2.modifiers, isDecorator, exportIndex); - if (trailingDecoratorIndex >= 0) { - diagnostics.push(addRelatedInfo(createDiagnosticForNode2(parent2.modifiers[trailingDecoratorIndex], Diagnostics.Decorators_may_not_appear_after_export_or_export_default_if_they_also_appear_before_export), createDiagnosticForNode2(parent2.modifiers[decoratorIndex], Diagnostics.Decorator_used_before_export_here))); - } - } - } - } - } - } - switch (parent2.kind) { - case 263 /* ClassDeclaration */: - case 231 /* ClassExpression */: - case 174 /* MethodDeclaration */: - case 176 /* Constructor */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - case 218 /* FunctionExpression */: - case 262 /* FunctionDeclaration */: - case 219 /* ArrowFunction */: - if (nodes === parent2.typeParameters) { - diagnostics.push(createDiagnosticForNodeArray2(nodes, Diagnostics.Type_parameter_declarations_can_only_be_used_in_TypeScript_files)); - return "skip"; - } - case 243 /* VariableStatement */: - if (nodes === parent2.modifiers) { - checkModifiers(parent2.modifiers, parent2.kind === 243 /* VariableStatement */); - return "skip"; - } - break; - case 172 /* PropertyDeclaration */: - if (nodes === parent2.modifiers) { - try { - for (var nodes_8 = __values(nodes), nodes_8_1 = nodes_8.next(); !nodes_8_1.done; nodes_8_1 = nodes_8.next()) { - var modifier = nodes_8_1.value; - if (isModifier(modifier) && modifier.kind !== 126 /* StaticKeyword */ && modifier.kind !== 129 /* AccessorKeyword */) { - diagnostics.push(createDiagnosticForNode2(modifier, Diagnostics.The_0_modifier_can_only_be_used_in_TypeScript_files, tokenToString(modifier.kind))); - } - } - } - catch (e_601_1) { e_601 = { error: e_601_1 }; } - finally { - try { - if (nodes_8_1 && !nodes_8_1.done && (_t = nodes_8.return)) _t.call(nodes_8); - } - finally { if (e_601) throw e_601.error; } - } - return "skip"; - } - break; - case 169 /* Parameter */: - if (nodes === parent2.modifiers && some(nodes, isModifier)) { - diagnostics.push(createDiagnosticForNodeArray2(nodes, Diagnostics.Parameter_modifiers_can_only_be_used_in_TypeScript_files)); - return "skip"; - } - break; - case 213 /* CallExpression */: - case 214 /* NewExpression */: - case 233 /* ExpressionWithTypeArguments */: - case 285 /* JsxSelfClosingElement */: - case 286 /* JsxOpeningElement */: - case 215 /* TaggedTemplateExpression */: - if (nodes === parent2.typeArguments) { - diagnostics.push(createDiagnosticForNodeArray2(nodes, Diagnostics.Type_arguments_can_only_be_used_in_TypeScript_files)); - return "skip"; - } - break; - } - } - function checkModifiers(modifiers, isConstValid) { - var e_602, _t; - try { - for (var modifiers_4 = __values(modifiers), modifiers_4_1 = modifiers_4.next(); !modifiers_4_1.done; modifiers_4_1 = modifiers_4.next()) { - var modifier = modifiers_4_1.value; - switch (modifier.kind) { - case 87 /* ConstKeyword */: - if (isConstValid) { - continue; - } - case 125 /* PublicKeyword */: - case 123 /* PrivateKeyword */: - case 124 /* ProtectedKeyword */: - case 148 /* ReadonlyKeyword */: - case 138 /* DeclareKeyword */: - case 128 /* AbstractKeyword */: - case 164 /* OverrideKeyword */: - case 103 /* InKeyword */: - case 147 /* OutKeyword */: - diagnostics.push(createDiagnosticForNode2(modifier, Diagnostics.The_0_modifier_can_only_be_used_in_TypeScript_files, tokenToString(modifier.kind))); - break; - case 126 /* StaticKeyword */: - case 95 /* ExportKeyword */: - case 90 /* DefaultKeyword */: - case 129 /* AccessorKeyword */: - } - } - } - catch (e_602_1) { e_602 = { error: e_602_1 }; } - finally { - try { - if (modifiers_4_1 && !modifiers_4_1.done && (_t = modifiers_4.return)) _t.call(modifiers_4); - } - finally { if (e_602) throw e_602.error; } - } - } - function createDiagnosticForNodeArray2(nodes, message) { - var args = []; - for (var _t = 2; _t < arguments.length; _t++) { - args[_t - 2] = arguments[_t]; - } - var start2 = nodes.pos; - return createFileDiagnostic.apply(void 0, __spreadArray([sourceFile, start2, nodes.end - start2, message], __read(args), false)); - } - function createDiagnosticForNode2(node, message) { - var args = []; - for (var _t = 2; _t < arguments.length; _t++) { - args[_t - 2] = arguments[_t]; - } - return createDiagnosticForNodeInSourceFile.apply(void 0, __spreadArray([sourceFile, node, message], __read(args), false)); - } - }); - } - function getDeclarationDiagnosticsWorker(sourceFile, cancellationToken) { - return getAndCacheDiagnostics(sourceFile, cancellationToken, cachedDeclarationDiagnosticsForFile, getDeclarationDiagnosticsForFileNoCache); - } - function getDeclarationDiagnosticsForFileNoCache(sourceFile, cancellationToken) { - return runWithCancellationToken(function () { - var resolver = getTypeChecker().getEmitResolver(sourceFile, cancellationToken); - return getDeclarationDiagnostics(getEmitHost(noop), resolver, sourceFile) || emptyArray; - }); - } - function getAndCacheDiagnostics(sourceFile, cancellationToken, cache, getDiagnostics2) { - var _a2; - var cachedResult = sourceFile ? (_a2 = cache.perFile) == null ? void 0 : _a2.get(sourceFile.path) : cache.allDiagnostics; - if (cachedResult) { - return cachedResult; - } - var result = getDiagnostics2(sourceFile, cancellationToken); - if (sourceFile) { - (cache.perFile || (cache.perFile = /* @__PURE__ */ new Map())).set(sourceFile.path, result); - } - else { - cache.allDiagnostics = result; - } - return result; - } - function getDeclarationDiagnosticsForFile(sourceFile, cancellationToken) { - return sourceFile.isDeclarationFile ? [] : getDeclarationDiagnosticsWorker(sourceFile, cancellationToken); - } - function getOptionsDiagnostics() { - return sortAndDeduplicateDiagnostics(concatenate(programDiagnostics.getGlobalDiagnostics(), getOptionsDiagnosticsOfConfigFile())); - } - function getOptionsDiagnosticsOfConfigFile() { - if (!options.configFile) - return emptyArray; - var diagnostics = programDiagnostics.getDiagnostics(options.configFile.fileName); - forEachResolvedProjectReference2(function (resolvedRef) { - diagnostics = concatenate(diagnostics, programDiagnostics.getDiagnostics(resolvedRef.sourceFile.fileName)); - }); - return diagnostics; - } - function getGlobalDiagnostics() { - return rootNames.length ? sortAndDeduplicateDiagnostics(getTypeChecker().getGlobalDiagnostics().slice()) : emptyArray; - } - function getConfigFileParsingDiagnostics2() { - return configFileParsingDiagnostics || emptyArray; - } - function processRootFile(fileName, isDefaultLib, ignoreNoDefaultLib, reason) { - processSourceFile(normalizePath(fileName), isDefaultLib, ignoreNoDefaultLib, - /*packageId*/ - void 0, reason); - } - function fileReferenceIsEqualTo(a, b) { - return a.fileName === b.fileName; - } - function moduleNameIsEqualTo(a, b) { - return a.kind === 80 /* Identifier */ ? b.kind === 80 /* Identifier */ && a.escapedText === b.escapedText : b.kind === 11 /* StringLiteral */ && a.text === b.text; - } - function createSyntheticImport(text, file) { - var externalHelpersModuleReference = factory.createStringLiteral(text); - var importDecl = factory.createImportDeclaration( - /*modifiers*/ - void 0, - /*importClause*/ - void 0, externalHelpersModuleReference, - /*assertClause*/ - void 0); - addInternalEmitFlags(importDecl, 2 /* NeverApplyImportHelper */); - setParent(externalHelpersModuleReference, importDecl); - setParent(importDecl, file); - externalHelpersModuleReference.flags &= ~16 /* Synthesized */; - importDecl.flags &= ~16 /* Synthesized */; - return externalHelpersModuleReference; - } - function collectExternalModuleReferences(file) { - var e_603, _t; - if (file.imports) { - return; - } - var isJavaScriptFile = isSourceFileJS(file); - var isExternalModuleFile = isExternalModule(file); - var imports; - var moduleAugmentations; - var ambientModules; - if ((getIsolatedModules(options) || isExternalModuleFile) && !file.isDeclarationFile) { - if (options.importHelpers) { - imports = [createSyntheticImport(externalHelpersModuleNameText, file)]; - } - var jsxImport = getJSXRuntimeImport(getJSXImplicitImportBase(options, file), options); - if (jsxImport) { - (imports || (imports = [])).push(createSyntheticImport(jsxImport, file)); - } - } - try { - for (var _u = __values(file.statements), _v = _u.next(); !_v.done; _v = _u.next()) { - var node = _v.value; - collectModuleReferences(node, - /*inAmbientModule*/ - false); - } - } - catch (e_603_1) { e_603 = { error: e_603_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_603) throw e_603.error; } - } - var shouldProcessRequires = isJavaScriptFile && shouldResolveJsRequire(options); - if (file.flags & 4194304 /* PossiblyContainsDynamicImport */ || shouldProcessRequires) { - collectDynamicImportOrRequireCalls(file); - } - file.imports = imports || emptyArray; - file.moduleAugmentations = moduleAugmentations || emptyArray; - file.ambientModuleNames = ambientModules || emptyArray; - return; - function collectModuleReferences(node, inAmbientModule) { - var e_604, _t; - if (isAnyImportOrReExport(node)) { - var moduleNameExpr = getExternalModuleName(node); - if (moduleNameExpr && isStringLiteral(moduleNameExpr) && moduleNameExpr.text && (!inAmbientModule || !isExternalModuleNameRelative(moduleNameExpr.text))) { - setParentRecursive(node, - /*incremental*/ - false); - imports = append(imports, moduleNameExpr); - if (!usesUriStyleNodeCoreModules && currentNodeModulesDepth === 0 && !file.isDeclarationFile) { - usesUriStyleNodeCoreModules = startsWith(moduleNameExpr.text, "node:"); - } - } - } - else if (isModuleDeclaration(node)) { - if (isAmbientModule(node) && (inAmbientModule || hasSyntacticModifier(node, 2 /* Ambient */) || file.isDeclarationFile)) { - node.name.parent = node; - var nameText = getTextOfIdentifierOrLiteral(node.name); - if (isExternalModuleFile || inAmbientModule && !isExternalModuleNameRelative(nameText)) { - (moduleAugmentations || (moduleAugmentations = [])).push(node.name); - } - else if (!inAmbientModule) { - if (file.isDeclarationFile) { - (ambientModules || (ambientModules = [])).push(nameText); - } - var body = node.body; - if (body) { - try { - for (var _u = __values(body.statements), _v = _u.next(); !_v.done; _v = _u.next()) { - var statement = _v.value; - collectModuleReferences(statement, - /*inAmbientModule*/ - true); - } - } - catch (e_604_1) { e_604 = { error: e_604_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_604) throw e_604.error; } - } - } - } - } - } - } - function collectDynamicImportOrRequireCalls(file2) { - var r = /import|require/g; - while (r.exec(file2.text) !== null) { - var node = getNodeAtPosition(file2, r.lastIndex); - if (shouldProcessRequires && isRequireCall(node, - /*requireStringLiteralLikeArgument*/ - true)) { - setParentRecursive(node, - /*incremental*/ - false); - imports = append(imports, node.arguments[0]); - } - else if (isImportCall(node) && node.arguments.length >= 1 && isStringLiteralLike(node.arguments[0])) { - setParentRecursive(node, - /*incremental*/ - false); - imports = append(imports, node.arguments[0]); - } - else if (isLiteralImportTypeNode(node)) { - setParentRecursive(node, - /*incremental*/ - false); - imports = append(imports, node.argument.literal); - } - } - } - function getNodeAtPosition(sourceFile, position) { - var current = sourceFile; - var getContainingChild = function (child) { - if (child.pos <= position && (position < child.end || position === child.end && child.kind === 1 /* EndOfFileToken */)) { - return child; - } - }; - while (true) { - var child = isJavaScriptFile && hasJSDocNodes(current) && forEach(current.jsDoc, getContainingChild) || forEachChild(current, getContainingChild); - if (!child) { - return current; - } - current = child; - } - } - } - function getLibFileFromReference(ref) { - var _a2; - var libFileName = getLibFileNameFromLibReference(ref).libFileName; - var actualFileName = libFileName && ((_a2 = resolvedLibReferences == null ? void 0 : resolvedLibReferences.get(libFileName)) == null ? void 0 : _a2.actual); - return actualFileName !== void 0 ? getSourceFile(actualFileName) : void 0; - } - function getSourceFileFromReference(referencingFile, ref) { - return getSourceFileFromReferenceWorker(resolveTripleslashReference(ref.fileName, referencingFile.fileName), getSourceFile); - } - function getSourceFileFromReferenceWorker(fileName, getSourceFile2, fail, reason) { - if (hasExtension(fileName)) { - var canonicalFileName_1 = host.getCanonicalFileName(fileName); - if (!options.allowNonTsExtensions && !forEach(flatten(supportedExtensionsWithJsonIfResolveJsonModule), function (extension) { return fileExtensionIs(canonicalFileName_1, extension); })) { - if (fail) { - if (hasJSFileExtension(canonicalFileName_1)) { - fail(Diagnostics.File_0_is_a_JavaScript_file_Did_you_mean_to_enable_the_allowJs_option, fileName); - } - else { - fail(Diagnostics.File_0_has_an_unsupported_extension_The_only_supported_extensions_are_1, fileName, "'" + flatten(supportedExtensions).join("', '") + "'"); - } - } - return void 0; - } - var sourceFile = getSourceFile2(fileName); - if (fail) { - if (!sourceFile) { - var redirect = getProjectReferenceRedirect(fileName); - if (redirect) { - fail(Diagnostics.Output_file_0_has_not_been_built_from_source_file_1, redirect, fileName); - } - else { - fail(Diagnostics.File_0_not_found, fileName); - } - } - else if (isReferencedFile(reason) && canonicalFileName_1 === host.getCanonicalFileName(getSourceFileByPath(reason.file).fileName)) { - fail(Diagnostics.A_file_cannot_have_a_reference_to_itself); - } - } - return sourceFile; - } - else { - var sourceFileNoExtension = options.allowNonTsExtensions && getSourceFile2(fileName); - if (sourceFileNoExtension) - return sourceFileNoExtension; - if (fail && options.allowNonTsExtensions) { - fail(Diagnostics.File_0_not_found, fileName); - return void 0; - } - var sourceFileWithAddedExtension = forEach(supportedExtensions[0], function (extension) { return getSourceFile2(fileName + extension); }); - if (fail && !sourceFileWithAddedExtension) - fail(Diagnostics.Could_not_resolve_the_path_0_with_the_extensions_Colon_1, fileName, "'" + flatten(supportedExtensions).join("', '") + "'"); - return sourceFileWithAddedExtension; - } - } - function processSourceFile(fileName, isDefaultLib, ignoreNoDefaultLib, packageId, reason) { - getSourceFileFromReferenceWorker(fileName, function (fileName2) { return findSourceFile(fileName2, isDefaultLib, ignoreNoDefaultLib, reason, packageId); }, - // TODO: GH#18217 - function (diagnostic) { - var args = []; - for (var _t = 1; _t < arguments.length; _t++) { - args[_t - 1] = arguments[_t]; - } - return addFilePreprocessingFileExplainingDiagnostic( - /*file*/ - void 0, reason, diagnostic, args); - }, reason); - } - function processProjectReferenceFile(fileName, reason) { - return processSourceFile(fileName, - /*isDefaultLib*/ - false, - /*ignoreNoDefaultLib*/ - false, - /*packageId*/ - void 0, reason); - } - function reportFileNamesDifferOnlyInCasingError(fileName, existingFile, reason) { - var hasExistingReasonToReportErrorOn = !isReferencedFile(reason) && some(fileReasons.get(existingFile.path), isReferencedFile); - if (hasExistingReasonToReportErrorOn) { - addFilePreprocessingFileExplainingDiagnostic(existingFile, reason, Diagnostics.Already_included_file_name_0_differs_from_file_name_1_only_in_casing, [existingFile.fileName, fileName]); - } - else { - addFilePreprocessingFileExplainingDiagnostic(existingFile, reason, Diagnostics.File_name_0_differs_from_already_included_file_name_1_only_in_casing, [fileName, existingFile.fileName]); - } - } - function createRedirectedSourceFile(redirectTarget, unredirected, fileName, path, resolvedPath, originalFileName, sourceFileOptions) { - var _a2; - var redirect = parseNodeFactory.createRedirectedSourceFile({ redirectTarget: redirectTarget, unredirected: unredirected }); - redirect.fileName = fileName; - redirect.path = path; - redirect.resolvedPath = resolvedPath; - redirect.originalFileName = originalFileName; - redirect.packageJsonLocations = ((_a2 = sourceFileOptions.packageJsonLocations) == null ? void 0 : _a2.length) ? sourceFileOptions.packageJsonLocations : void 0; - redirect.packageJsonScope = sourceFileOptions.packageJsonScope; - sourceFilesFoundSearchingNodeModules.set(path, currentNodeModulesDepth > 0); - return redirect; - } - function findSourceFile(fileName, isDefaultLib, ignoreNoDefaultLib, reason, packageId) { - var _a2, _b2; - (_a2 = tracing) == null ? void 0 : _a2.push(tracing.Phase.Program, "findSourceFile", { - fileName: fileName, - isDefaultLib: isDefaultLib || void 0, - fileIncludeKind: FileIncludeKind[reason.kind] - }); - var result = findSourceFileWorker(fileName, isDefaultLib, ignoreNoDefaultLib, reason, packageId); - (_b2 = tracing) == null ? void 0 : _b2.pop(); - return result; - } - function getCreateSourceFileOptions(fileName, moduleResolutionCache2, host2, options2) { - var result = getImpliedNodeFormatForFileWorker(getNormalizedAbsolutePath(fileName, currentDirectory), moduleResolutionCache2 == null ? void 0 : moduleResolutionCache2.getPackageJsonInfoCache(), host2, options2); - var languageVersion = getEmitScriptTarget(options2); - var setExternalModuleIndicator2 = getSetExternalModuleIndicator(options2); - return typeof result === "object" ? __assign(__assign({}, result), { languageVersion: languageVersion, setExternalModuleIndicator: setExternalModuleIndicator2 }) : { languageVersion: languageVersion, impliedNodeFormat: result, setExternalModuleIndicator: setExternalModuleIndicator2 }; - } - function findSourceFileWorker(fileName, isDefaultLib, ignoreNoDefaultLib, reason, packageId) { - var _a2; - var path = toPath3(fileName); - if (useSourceOfProjectReferenceRedirect) { - var source = getSourceOfProjectReferenceRedirect(path); - if (!source && host.realpath && options.preserveSymlinks && isDeclarationFileName(fileName) && stringContains(fileName, nodeModulesPathPart)) { - var realPath2 = toPath3(host.realpath(fileName)); - if (realPath2 !== path) - source = getSourceOfProjectReferenceRedirect(realPath2); - } - if (source) { - var file2 = isString(source) ? findSourceFile(source, isDefaultLib, ignoreNoDefaultLib, reason, packageId) : void 0; - if (file2) - addFileToFilesByName(file2, path, - /*redirectedPath*/ - void 0); - return file2; - } - } - var originalFileName = fileName; - if (filesByName.has(path)) { - var file2 = filesByName.get(path); - addFileIncludeReason(file2 || void 0, reason); - if (file2 && !(options.forceConsistentCasingInFileNames === false)) { - var checkedName = file2.fileName; - var isRedirect = toPath3(checkedName) !== toPath3(fileName); - if (isRedirect) { - fileName = getProjectReferenceRedirect(fileName) || fileName; - } - var checkedAbsolutePath = getNormalizedAbsolutePathWithoutRoot(checkedName, currentDirectory); - var inputAbsolutePath = getNormalizedAbsolutePathWithoutRoot(fileName, currentDirectory); - if (checkedAbsolutePath !== inputAbsolutePath) { - reportFileNamesDifferOnlyInCasingError(fileName, file2, reason); - } - } - if (file2 && sourceFilesFoundSearchingNodeModules.get(file2.path) && currentNodeModulesDepth === 0) { - sourceFilesFoundSearchingNodeModules.set(file2.path, false); - if (!options.noResolve) { - processReferencedFiles(file2, isDefaultLib); - processTypeReferenceDirectives(file2); - } - if (!options.noLib) { - processLibReferenceDirectives(file2); - } - modulesWithElidedImports.set(file2.path, false); - processImportedModules(file2); - } - else if (file2 && modulesWithElidedImports.get(file2.path)) { - if (currentNodeModulesDepth < maxNodeModuleJsDepth) { - modulesWithElidedImports.set(file2.path, false); - processImportedModules(file2); - } - } - return file2 || void 0; - } - var redirectedPath; - if (isReferencedFile(reason) && !useSourceOfProjectReferenceRedirect) { - var redirectProject = getProjectReferenceRedirectProject(fileName); - if (redirectProject) { - if (outFile(redirectProject.commandLine.options)) { - return void 0; - } - var redirect = getProjectReferenceOutputName(redirectProject, fileName); - fileName = redirect; - redirectedPath = toPath3(redirect); - } - } - var sourceFileOptions = getCreateSourceFileOptions(fileName, moduleResolutionCache, host, options); - var file = host.getSourceFile(fileName, sourceFileOptions, function (hostErrorMessage) { return addFilePreprocessingFileExplainingDiagnostic( - /*file*/ - void 0, reason, Diagnostics.Cannot_read_file_0_Colon_1, [fileName, hostErrorMessage]); }, shouldCreateNewSourceFile); - if (packageId) { - var packageIdKey = packageIdToString(packageId); - var fileFromPackageId = packageIdToSourceFile.get(packageIdKey); - if (fileFromPackageId) { - var dupFile = createRedirectedSourceFile(fileFromPackageId, file, fileName, path, toPath3(fileName), originalFileName, sourceFileOptions); - redirectTargetsMap.add(fileFromPackageId.path, fileName); - addFileToFilesByName(dupFile, path, redirectedPath); - addFileIncludeReason(dupFile, reason); - sourceFileToPackageName.set(path, packageIdToPackageName(packageId)); - processingOtherFiles.push(dupFile); - return dupFile; - } - else if (file) { - packageIdToSourceFile.set(packageIdKey, file); - sourceFileToPackageName.set(path, packageIdToPackageName(packageId)); - } - } - addFileToFilesByName(file, path, redirectedPath); - if (file) { - sourceFilesFoundSearchingNodeModules.set(path, currentNodeModulesDepth > 0); - file.fileName = fileName; - file.path = path; - file.resolvedPath = toPath3(fileName); - file.originalFileName = originalFileName; - file.packageJsonLocations = ((_a2 = sourceFileOptions.packageJsonLocations) == null ? void 0 : _a2.length) ? sourceFileOptions.packageJsonLocations : void 0; - file.packageJsonScope = sourceFileOptions.packageJsonScope; - addFileIncludeReason(file, reason); - if (host.useCaseSensitiveFileNames()) { - var pathLowerCase = toFileNameLowerCase(path); - var existingFile = filesByNameIgnoreCase.get(pathLowerCase); - if (existingFile) { - reportFileNamesDifferOnlyInCasingError(fileName, existingFile, reason); - } - else { - filesByNameIgnoreCase.set(pathLowerCase, file); - } - } - skipDefaultLib = skipDefaultLib || file.hasNoDefaultLib && !ignoreNoDefaultLib; - if (!options.noResolve) { - processReferencedFiles(file, isDefaultLib); - processTypeReferenceDirectives(file); - } - if (!options.noLib) { - processLibReferenceDirectives(file); - } - processImportedModules(file); - if (isDefaultLib) { - processingDefaultLibFiles.push(file); - } - else { - processingOtherFiles.push(file); - } - } - return file; - } - function addFileIncludeReason(file, reason) { - if (file) - fileReasons.add(file.path, reason); - } - function addFileToFilesByName(file, path, redirectedPath) { - if (redirectedPath) { - filesByName.set(redirectedPath, file); - filesByName.set(path, file || false); - } - else { - filesByName.set(path, file); - } - } - function getProjectReferenceRedirect(fileName) { - var referencedProject = getProjectReferenceRedirectProject(fileName); - return referencedProject && getProjectReferenceOutputName(referencedProject, fileName); - } - function getProjectReferenceRedirectProject(fileName) { - if (!resolvedProjectReferences || !resolvedProjectReferences.length || isDeclarationFileName(fileName) || fileExtensionIs(fileName, ".json" /* Json */)) { - return void 0; - } - return getResolvedProjectReferenceToRedirect(fileName); - } - function getProjectReferenceOutputName(referencedProject, fileName) { - var out = outFile(referencedProject.commandLine.options); - return out ? changeExtension(out, ".d.ts" /* Dts */) : getOutputDeclarationFileName(fileName, referencedProject.commandLine, !host.useCaseSensitiveFileNames()); - } - function getResolvedProjectReferenceToRedirect(fileName) { - if (mapFromFileToProjectReferenceRedirects === void 0) { - mapFromFileToProjectReferenceRedirects = /* @__PURE__ */ new Map(); - forEachResolvedProjectReference2(function (referencedProject) { - if (toPath3(options.configFilePath) !== referencedProject.sourceFile.path) { - referencedProject.commandLine.fileNames.forEach(function (f) { return mapFromFileToProjectReferenceRedirects.set(toPath3(f), referencedProject.sourceFile.path); }); - } - }); - } - var referencedProjectPath = mapFromFileToProjectReferenceRedirects.get(toPath3(fileName)); - return referencedProjectPath && getResolvedProjectReferenceByPath(referencedProjectPath); - } - function forEachResolvedProjectReference2(cb) { - return forEachResolvedProjectReference(resolvedProjectReferences, cb); - } - function getSourceOfProjectReferenceRedirect(path) { - if (!isDeclarationFileName(path)) - return void 0; - if (mapFromToProjectReferenceRedirectSource === void 0) { - mapFromToProjectReferenceRedirectSource = /* @__PURE__ */ new Map(); - forEachResolvedProjectReference2(function (resolvedRef) { - var out = outFile(resolvedRef.commandLine.options); - if (out) { - var outputDts = changeExtension(out, ".d.ts" /* Dts */); - mapFromToProjectReferenceRedirectSource.set(toPath3(outputDts), true); - } - else { - var getCommonSourceDirectory3_1 = memoize(function () { return getCommonSourceDirectoryOfConfig(resolvedRef.commandLine, !host.useCaseSensitiveFileNames()); }); - forEach(resolvedRef.commandLine.fileNames, function (fileName) { - if (!isDeclarationFileName(fileName) && !fileExtensionIs(fileName, ".json" /* Json */)) { - var outputDts = getOutputDeclarationFileName(fileName, resolvedRef.commandLine, !host.useCaseSensitiveFileNames(), getCommonSourceDirectory3_1); - mapFromToProjectReferenceRedirectSource.set(toPath3(outputDts), fileName); - } - }); - } - }); - } - return mapFromToProjectReferenceRedirectSource.get(path); - } - function isSourceOfProjectReferenceRedirect(fileName) { - return useSourceOfProjectReferenceRedirect && !!getResolvedProjectReferenceToRedirect(fileName); - } - function getResolvedProjectReferenceByPath(projectReferencePath) { - if (!projectReferenceRedirects) { - return void 0; - } - return projectReferenceRedirects.get(projectReferencePath) || void 0; - } - function processReferencedFiles(file, isDefaultLib) { - forEach(file.referencedFiles, function (ref, index) { - processSourceFile(resolveTripleslashReference(ref.fileName, file.fileName), isDefaultLib, - /*ignoreNoDefaultLib*/ - false, - /*packageId*/ - void 0, { kind: 4 /* ReferenceFile */, file: file.path, index: index }); - }); - } - function processTypeReferenceDirectives(file) { - var typeDirectives = file.typeReferenceDirectives; - if (!typeDirectives.length) { - file.resolvedTypeReferenceDirectiveNames = void 0; - return; - } - var resolutions = resolveTypeReferenceDirectiveNamesReusingOldState(typeDirectives, file); - for (var index = 0; index < typeDirectives.length; index++) { - var ref = file.typeReferenceDirectives[index]; - var resolvedTypeReferenceDirective = resolutions[index]; - var fileName = toFileNameLowerCase(ref.fileName); - setResolvedTypeReferenceDirective(file, fileName, resolvedTypeReferenceDirective, getModeForFileReference(ref, file.impliedNodeFormat)); - var mode = ref.resolutionMode || file.impliedNodeFormat; - if (mode && getEmitModuleResolutionKind(options) !== 3 /* Node16 */ && getEmitModuleResolutionKind(options) !== 99 /* NodeNext */) { - (fileProcessingDiagnostics !== null && fileProcessingDiagnostics !== void 0 ? fileProcessingDiagnostics : (fileProcessingDiagnostics = [])).push({ - kind: 2 /* ResolutionDiagnostics */, - diagnostics: [ - createDiagnosticForRange(file, ref, Diagnostics.resolution_mode_assertions_are_only_supported_when_moduleResolution_is_node16_or_nodenext) - ] - }); - } - processTypeReferenceDirective(fileName, mode, resolvedTypeReferenceDirective, { kind: 5 /* TypeReferenceDirective */, file: file.path, index: index }); - } - } - function processTypeReferenceDirective(typeReferenceDirective, mode, resolution, reason) { - var _a2, _b2; - (_a2 = tracing) == null ? void 0 : _a2.push(tracing.Phase.Program, "processTypeReferenceDirective", { directive: typeReferenceDirective, hasResolved: !!resolution.resolvedTypeReferenceDirective, refKind: reason.kind, refPath: isReferencedFile(reason) ? reason.file : void 0 }); - processTypeReferenceDirectiveWorker(typeReferenceDirective, mode, resolution, reason); - (_b2 = tracing) == null ? void 0 : _b2.pop(); - } - function processTypeReferenceDirectiveWorker(typeReferenceDirective, mode, resolution, reason) { - var _a2; - addResolutionDiagnostics(resolution); - var previousResolution = (_a2 = resolvedTypeReferenceDirectives.get(typeReferenceDirective, mode)) == null ? void 0 : _a2.resolvedTypeReferenceDirective; - if (previousResolution && previousResolution.primary) { - return; - } - var saveResolution = true; - var resolvedTypeReferenceDirective = resolution.resolvedTypeReferenceDirective; - if (resolvedTypeReferenceDirective) { - if (resolvedTypeReferenceDirective.isExternalLibraryImport) - currentNodeModulesDepth++; - if (resolvedTypeReferenceDirective.primary) { - processSourceFile(resolvedTypeReferenceDirective.resolvedFileName, - /*isDefaultLib*/ - false, - /*ignoreNoDefaultLib*/ - false, resolvedTypeReferenceDirective.packageId, reason); - } - else { - if (previousResolution) { - if (resolvedTypeReferenceDirective.resolvedFileName !== previousResolution.resolvedFileName) { - var otherFileText = host.readFile(resolvedTypeReferenceDirective.resolvedFileName); - var existingFile = getSourceFile(previousResolution.resolvedFileName); - if (otherFileText !== existingFile.text) { - addFilePreprocessingFileExplainingDiagnostic(existingFile, reason, Diagnostics.Conflicting_definitions_for_0_found_at_1_and_2_Consider_installing_a_specific_version_of_this_library_to_resolve_the_conflict, [typeReferenceDirective, resolvedTypeReferenceDirective.resolvedFileName, previousResolution.resolvedFileName]); - } - } - saveResolution = false; - } - else { - processSourceFile(resolvedTypeReferenceDirective.resolvedFileName, - /*isDefaultLib*/ - false, - /*ignoreNoDefaultLib*/ - false, resolvedTypeReferenceDirective.packageId, reason); - } - } - if (resolvedTypeReferenceDirective.isExternalLibraryImport) - currentNodeModulesDepth--; - } - else { - addFilePreprocessingFileExplainingDiagnostic( - /*file*/ - void 0, reason, Diagnostics.Cannot_find_type_definition_file_for_0, [typeReferenceDirective]); - } - if (saveResolution) { - resolvedTypeReferenceDirectives.set(typeReferenceDirective, mode, resolution); - } - } - function pathForLibFile(libFileName) { - var existing = resolvedLibReferences == null ? void 0 : resolvedLibReferences.get(libFileName); - if (existing) - return existing.actual; - var result = pathForLibFileWorker(libFileName); - (resolvedLibReferences !== null && resolvedLibReferences !== void 0 ? resolvedLibReferences : (resolvedLibReferences = /* @__PURE__ */ new Map())).set(libFileName, result); - return result.actual; - } - function pathForLibFileWorker(libFileName) { - var _a2, _b2, _c2, _d2, _e2; - var existing = resolvedLibProcessing == null ? void 0 : resolvedLibProcessing.get(libFileName); - if (existing) - return existing; - if (structureIsReused !== 0 /* Not */ && oldProgram && !hasInvalidatedLibResolutions(libFileName)) { - var oldResolution = (_a2 = oldProgram.resolvedLibReferences) == null ? void 0 : _a2.get(libFileName); - if (oldResolution) { - if (oldResolution.resolution && isTraceEnabled(options, host)) { - var libraryName2 = getLibraryNameFromLibFileName(libFileName); - var resolveFrom2 = getInferredLibraryNameResolveFrom(options, currentDirectory, libFileName); - trace(host, oldResolution.resolution.resolvedModule ? oldResolution.resolution.resolvedModule.packageId ? Diagnostics.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3 : Diagnostics.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2 : Diagnostics.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_not_resolved, libraryName2, getNormalizedAbsolutePath(resolveFrom2, currentDirectory), (_b2 = oldResolution.resolution.resolvedModule) == null ? void 0 : _b2.resolvedFileName, ((_c2 = oldResolution.resolution.resolvedModule) == null ? void 0 : _c2.packageId) && packageIdToString(oldResolution.resolution.resolvedModule.packageId)); - } - (resolvedLibProcessing !== null && resolvedLibProcessing !== void 0 ? resolvedLibProcessing : (resolvedLibProcessing = /* @__PURE__ */ new Map())).set(libFileName, oldResolution); - return oldResolution; - } - } - var libraryName = getLibraryNameFromLibFileName(libFileName); - var resolveFrom = getInferredLibraryNameResolveFrom(options, currentDirectory, libFileName); - (_d2 = tracing) == null ? void 0 : _d2.push(tracing.Phase.Program, "resolveLibrary", { resolveFrom: resolveFrom }); - mark("beforeResolveLibrary"); - var resolution = actualResolveLibrary(libraryName, resolveFrom, options, libFileName); - mark("afterResolveLibrary"); - measure("ResolveLibrary", "beforeResolveLibrary", "afterResolveLibrary"); - (_e2 = tracing) == null ? void 0 : _e2.pop(); - var result = { - resolution: resolution, - actual: resolution.resolvedModule ? resolution.resolvedModule.resolvedFileName : combinePaths(defaultLibraryPath, libFileName) - }; - (resolvedLibProcessing !== null && resolvedLibProcessing !== void 0 ? resolvedLibProcessing : (resolvedLibProcessing = /* @__PURE__ */ new Map())).set(libFileName, result); - return result; - } - function processLibReferenceDirectives(file) { - forEach(file.libReferenceDirectives, function (libReference, index) { - var _t = getLibFileNameFromLibReference(libReference), libName = _t.libName, libFileName = _t.libFileName; - if (libFileName) { - processRootFile(pathForLibFile(libFileName), - /*isDefaultLib*/ - true, - /*ignoreNoDefaultLib*/ - true, { kind: 7 /* LibReferenceDirective */, file: file.path, index: index }); - } - else { - var unqualifiedLibName = removeSuffix(removePrefix(libName, "lib."), ".d.ts"); - var suggestion = getSpellingSuggestion(unqualifiedLibName, libs, identity); - var diagnostic = suggestion ? Diagnostics.Cannot_find_lib_definition_for_0_Did_you_mean_1 : Diagnostics.Cannot_find_lib_definition_for_0; - var args = suggestion ? [libName, suggestion] : [libName]; - (fileProcessingDiagnostics || (fileProcessingDiagnostics = [])).push({ - kind: 0 /* FilePreprocessingReferencedDiagnostic */, - reason: { kind: 7 /* LibReferenceDirective */, file: file.path, index: index }, - diagnostic: diagnostic, - args: args - }); - } - }); - } - function getCanonicalFileName(fileName) { - return host.getCanonicalFileName(fileName); - } - function processImportedModules(file) { - var _a2; - collectExternalModuleReferences(file); - if (file.imports.length || file.moduleAugmentations.length) { - var moduleNames = getModuleNames(file); - var resolutions = resolveModuleNamesReusingOldState(moduleNames, file); - Debug.assert(resolutions.length === moduleNames.length); - var optionsForFile = (useSourceOfProjectReferenceRedirect ? (_a2 = getRedirectReferenceForResolution(file)) == null ? void 0 : _a2.commandLine.options : void 0) || options; - for (var index = 0; index < moduleNames.length; index++) { - var resolution = resolutions[index].resolvedModule; - var moduleName = moduleNames[index].text; - var mode = getModeForUsageLocation(file, moduleNames[index]); - setResolvedModule(file, moduleName, resolutions[index], mode); - addResolutionDiagnosticsFromResolutionOrCache(file, moduleName, resolutions[index], mode); - if (!resolution) { - continue; - } - var isFromNodeModulesSearch = resolution.isExternalLibraryImport; - var isJsFile = !resolutionExtensionIsTSOrJson(resolution.extension); - var isJsFileFromNodeModules = isFromNodeModulesSearch && isJsFile; - var resolvedFileName = resolution.resolvedFileName; - if (isFromNodeModulesSearch) { - currentNodeModulesDepth++; - } - var elideImport = isJsFileFromNodeModules && currentNodeModulesDepth > maxNodeModuleJsDepth; - var shouldAddFile = resolvedFileName && !getResolutionDiagnostic(optionsForFile, resolution, file) && !optionsForFile.noResolve && index < file.imports.length && !elideImport && !(isJsFile && !getAllowJSCompilerOption(optionsForFile)) && (isInJSFile(file.imports[index]) || !(file.imports[index].flags & 16777216 /* JSDoc */)); - if (elideImport) { - modulesWithElidedImports.set(file.path, true); - } - else if (shouldAddFile) { - findSourceFile(resolvedFileName, - /*isDefaultLib*/ - false, - /*ignoreNoDefaultLib*/ - false, { kind: 3 /* Import */, file: file.path, index: index }, resolution.packageId); - } - if (isFromNodeModulesSearch) { - currentNodeModulesDepth--; - } - } - } - else { - file.resolvedModules = void 0; - } - } - function checkSourceFilesBelongToPath(sourceFiles, rootDirectory) { - var e_605, _t; - var allFilesBelongToPath = true; - var absoluteRootDirectoryPath = host.getCanonicalFileName(getNormalizedAbsolutePath(rootDirectory, currentDirectory)); - try { - for (var sourceFiles_2 = __values(sourceFiles), sourceFiles_2_1 = sourceFiles_2.next(); !sourceFiles_2_1.done; sourceFiles_2_1 = sourceFiles_2.next()) { - var sourceFile = sourceFiles_2_1.value; - if (!sourceFile.isDeclarationFile) { - var absoluteSourceFilePath = host.getCanonicalFileName(getNormalizedAbsolutePath(sourceFile.fileName, currentDirectory)); - if (absoluteSourceFilePath.indexOf(absoluteRootDirectoryPath) !== 0) { - addProgramDiagnosticExplainingFile(sourceFile, Diagnostics.File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files, [sourceFile.fileName, rootDirectory]); - allFilesBelongToPath = false; - } - } - } - } - catch (e_605_1) { e_605 = { error: e_605_1 }; } - finally { - try { - if (sourceFiles_2_1 && !sourceFiles_2_1.done && (_t = sourceFiles_2.return)) _t.call(sourceFiles_2); - } - finally { if (e_605) throw e_605.error; } - } - return allFilesBelongToPath; - } - function parseProjectReferenceConfigFile(ref) { - if (!projectReferenceRedirects) { - projectReferenceRedirects = /* @__PURE__ */ new Map(); - } - var refPath = resolveProjectReferencePath(ref); - var sourceFilePath = toPath3(refPath); - var fromCache = projectReferenceRedirects.get(sourceFilePath); - if (fromCache !== void 0) { - return fromCache || void 0; - } - var commandLine; - var sourceFile; - if (host.getParsedCommandLine) { - commandLine = host.getParsedCommandLine(refPath); - if (!commandLine) { - addFileToFilesByName( - /*file*/ - void 0, sourceFilePath, - /*redirectedPath*/ - void 0); - projectReferenceRedirects.set(sourceFilePath, false); - return void 0; - } - sourceFile = Debug.checkDefined(commandLine.options.configFile); - Debug.assert(!sourceFile.path || sourceFile.path === sourceFilePath); - addFileToFilesByName(sourceFile, sourceFilePath, - /*redirectedPath*/ - void 0); - } - else { - var basePath = getNormalizedAbsolutePath(getDirectoryPath(refPath), currentDirectory); - sourceFile = host.getSourceFile(refPath, 100 /* JSON */); - addFileToFilesByName(sourceFile, sourceFilePath, - /*redirectedPath*/ - void 0); - if (sourceFile === void 0) { - projectReferenceRedirects.set(sourceFilePath, false); - return void 0; - } - commandLine = parseJsonSourceFileConfigFileContent(sourceFile, configParsingHost, basePath, - /*existingOptions*/ - void 0, refPath); - } - sourceFile.fileName = refPath; - sourceFile.path = sourceFilePath; - sourceFile.resolvedPath = sourceFilePath; - sourceFile.originalFileName = refPath; - var resolvedRef = { commandLine: commandLine, sourceFile: sourceFile }; - projectReferenceRedirects.set(sourceFilePath, resolvedRef); - if (commandLine.projectReferences) { - resolvedRef.references = commandLine.projectReferences.map(parseProjectReferenceConfigFile); - } - return resolvedRef; - } - function verifyCompilerOptions() { - var e_606, _t; - if (options.strictPropertyInitialization && !getStrictOptionValue(options, "strictNullChecks")) { - createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, "strictPropertyInitialization", "strictNullChecks"); - } - if (options.exactOptionalPropertyTypes && !getStrictOptionValue(options, "strictNullChecks")) { - createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, "exactOptionalPropertyTypes", "strictNullChecks"); - } - if (options.isolatedModules || options.verbatimModuleSyntax) { - if (options.out) { - createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_with_option_1, "out", options.verbatimModuleSyntax ? "verbatimModuleSyntax" : "isolatedModules"); - } - if (options.outFile) { - createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_with_option_1, "outFile", options.verbatimModuleSyntax ? "verbatimModuleSyntax" : "isolatedModules"); - } - } - if (options.inlineSourceMap) { - if (options.sourceMap) { - createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_with_option_1, "sourceMap", "inlineSourceMap"); - } - if (options.mapRoot) { - createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_with_option_1, "mapRoot", "inlineSourceMap"); - } - } - if (options.composite) { - if (options.declaration === false) { - createDiagnosticForOptionName(Diagnostics.Composite_projects_may_not_disable_declaration_emit, "declaration"); - } - if (options.incremental === false) { - createDiagnosticForOptionName(Diagnostics.Composite_projects_may_not_disable_incremental_compilation, "declaration"); - } - } - var outputFile = outFile(options); - if (options.tsBuildInfoFile) { - if (!isIncrementalCompilation(options)) { - createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2, "tsBuildInfoFile", "incremental", "composite"); - } - } - else if (options.incremental && !outputFile && !options.configFilePath) { - programDiagnostics.add(createCompilerDiagnostic(Diagnostics.Option_incremental_can_only_be_specified_using_tsconfig_emitting_to_single_file_or_when_option_tsBuildInfoFile_is_specified)); - } - verifyDeprecatedCompilerOptions(); - verifyProjectReferences(); - if (options.composite) { - var rootPaths = new Set(rootNames.map(toPath3)); - try { - for (var files_4 = __values(files), files_4_1 = files_4.next(); !files_4_1.done; files_4_1 = files_4.next()) { - var file = files_4_1.value; - if (sourceFileMayBeEmitted(file, program) && !rootPaths.has(file.path)) { - addProgramDiagnosticExplainingFile(file, Diagnostics.File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_include_pattern, [file.fileName, options.configFilePath || ""]); - } - } - } - catch (e_606_1) { e_606 = { error: e_606_1 }; } - finally { - try { - if (files_4_1 && !files_4_1.done && (_t = files_4.return)) _t.call(files_4); - } - finally { if (e_606) throw e_606.error; } - } - } - if (options.paths) { - for (var key in options.paths) { - if (!hasProperty(options.paths, key)) { - continue; - } - if (!hasZeroOrOneAsteriskCharacter(key)) { - createDiagnosticForOptionPaths( - /*onKey*/ - true, key, Diagnostics.Pattern_0_can_have_at_most_one_Asterisk_character, key); - } - if (isArray(options.paths[key])) { - var len = options.paths[key].length; - if (len === 0) { - createDiagnosticForOptionPaths( - /*onKey*/ - false, key, Diagnostics.Substitutions_for_pattern_0_shouldn_t_be_an_empty_array, key); - } - for (var i = 0; i < len; i++) { - var subst = options.paths[key][i]; - var typeOfSubst = typeof subst; - if (typeOfSubst === "string") { - if (!hasZeroOrOneAsteriskCharacter(subst)) { - createDiagnosticForOptionPathKeyValue(key, i, Diagnostics.Substitution_0_in_pattern_1_can_have_at_most_one_Asterisk_character, subst, key); - } - if (!options.baseUrl && !pathIsRelative(subst) && !pathIsAbsolute(subst)) { - createDiagnosticForOptionPathKeyValue(key, i, Diagnostics.Non_relative_paths_are_not_allowed_when_baseUrl_is_not_set_Did_you_forget_a_leading_Slash); - } - } - else { - createDiagnosticForOptionPathKeyValue(key, i, Diagnostics.Substitution_0_for_pattern_1_has_incorrect_type_expected_string_got_2, subst, key, typeOfSubst); - } - } - } - else { - createDiagnosticForOptionPaths( - /*onKey*/ - false, key, Diagnostics.Substitutions_for_pattern_0_should_be_an_array, key); - } - } - } - if (!options.sourceMap && !options.inlineSourceMap) { - if (options.inlineSources) { - createDiagnosticForOptionName(Diagnostics.Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided, "inlineSources"); - } - if (options.sourceRoot) { - createDiagnosticForOptionName(Diagnostics.Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided, "sourceRoot"); - } - } - if (options.out && options.outFile) { - createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_with_option_1, "out", "outFile"); - } - if (options.mapRoot && !(options.sourceMap || options.declarationMap)) { - createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2, "mapRoot", "sourceMap", "declarationMap"); - } - if (options.declarationDir) { - if (!getEmitDeclarations(options)) { - createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2, "declarationDir", "declaration", "composite"); - } - if (outputFile) { - createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_with_option_1, "declarationDir", options.out ? "out" : "outFile"); - } - } - if (options.declarationMap && !getEmitDeclarations(options)) { - createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2, "declarationMap", "declaration", "composite"); - } - if (options.lib && options.noLib) { - createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_with_option_1, "lib", "noLib"); - } - if (options.noImplicitUseStrict && getStrictOptionValue(options, "alwaysStrict")) { - createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_with_option_1, "noImplicitUseStrict", "alwaysStrict"); - } - var languageVersion = getEmitScriptTarget(options); - var firstNonAmbientExternalModuleSourceFile = find(files, function (f) { return isExternalModule(f) && !f.isDeclarationFile; }); - if (options.isolatedModules || options.verbatimModuleSyntax) { - if (options.module === 0 /* None */ && languageVersion < 2 /* ES2015 */ && options.isolatedModules) { - createDiagnosticForOptionName(Diagnostics.Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES2015_or_higher, "isolatedModules", "target"); - } - if (options.preserveConstEnums === false) { - createDiagnosticForOptionName(Diagnostics.Option_preserveConstEnums_cannot_be_disabled_when_0_is_enabled, options.verbatimModuleSyntax ? "verbatimModuleSyntax" : "isolatedModules", "preserveConstEnums"); - } - } - else if (firstNonAmbientExternalModuleSourceFile && languageVersion < 2 /* ES2015 */ && options.module === 0 /* None */) { - var span = getErrorSpanForNode(firstNonAmbientExternalModuleSourceFile, typeof firstNonAmbientExternalModuleSourceFile.externalModuleIndicator === "boolean" ? firstNonAmbientExternalModuleSourceFile : firstNonAmbientExternalModuleSourceFile.externalModuleIndicator); - programDiagnostics.add(createFileDiagnostic(firstNonAmbientExternalModuleSourceFile, span.start, span.length, Diagnostics.Cannot_use_imports_exports_or_module_augmentations_when_module_is_none)); - } - if (outputFile && !options.emitDeclarationOnly) { - if (options.module && !(options.module === 2 /* AMD */ || options.module === 4 /* System */)) { - createDiagnosticForOptionName(Diagnostics.Only_amd_and_system_modules_are_supported_alongside_0, options.out ? "out" : "outFile", "module"); - } - else if (options.module === void 0 && firstNonAmbientExternalModuleSourceFile) { - var span = getErrorSpanForNode(firstNonAmbientExternalModuleSourceFile, typeof firstNonAmbientExternalModuleSourceFile.externalModuleIndicator === "boolean" ? firstNonAmbientExternalModuleSourceFile : firstNonAmbientExternalModuleSourceFile.externalModuleIndicator); - programDiagnostics.add(createFileDiagnostic(firstNonAmbientExternalModuleSourceFile, span.start, span.length, Diagnostics.Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system, options.out ? "out" : "outFile")); - } - } - if (getResolveJsonModule(options)) { - if (getEmitModuleResolutionKind(options) === 1 /* Classic */) { - createDiagnosticForOptionName(Diagnostics.Option_resolveJsonModule_cannot_be_specified_when_moduleResolution_is_set_to_classic, "resolveJsonModule"); - } - else if (!hasJsonModuleEmitEnabled(options)) { - createDiagnosticForOptionName(Diagnostics.Option_resolveJsonModule_can_only_be_specified_when_module_code_generation_is_commonjs_amd_es2015_or_esNext, "resolveJsonModule", "module"); - } - } - if (options.outDir || // there is --outDir specified - options.rootDir || // there is --rootDir specified - options.sourceRoot || // there is --sourceRoot specified - options.mapRoot) { - var dir = getCommonSourceDirectory2(); - if (options.outDir && dir === "" && files.some(function (file) { return getRootLength(file.fileName) > 1; })) { - createDiagnosticForOptionName(Diagnostics.Cannot_find_the_common_subdirectory_path_for_the_input_files, "outDir"); - } - } - if (options.useDefineForClassFields && languageVersion === 0 /* ES3 */) { - createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_when_option_target_is_ES3, "useDefineForClassFields"); - } - if (options.checkJs && !getAllowJSCompilerOption(options)) { - programDiagnostics.add(createCompilerDiagnostic(Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, "checkJs", "allowJs")); - } - if (options.emitDeclarationOnly) { - if (!getEmitDeclarations(options)) { - createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2, "emitDeclarationOnly", "declaration", "composite"); - } - if (options.noEmit) { - createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_with_option_1, "emitDeclarationOnly", "noEmit"); - } - } - if (options.emitDecoratorMetadata && !options.experimentalDecorators) { - createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, "emitDecoratorMetadata", "experimentalDecorators"); - } - if (options.jsxFactory) { - if (options.reactNamespace) { - createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_with_option_1, "reactNamespace", "jsxFactory"); - } - if (options.jsx === 4 /* ReactJSX */ || options.jsx === 5 /* ReactJSXDev */) { - createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_when_option_jsx_is_1, "jsxFactory", inverseJsxOptionMap.get("" + options.jsx)); - } - if (!parseIsolatedEntityName(options.jsxFactory, languageVersion)) { - createOptionValueDiagnostic("jsxFactory", Diagnostics.Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name, options.jsxFactory); - } - } - else if (options.reactNamespace && !isIdentifierText(options.reactNamespace, languageVersion)) { - createOptionValueDiagnostic("reactNamespace", Diagnostics.Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier, options.reactNamespace); - } - if (options.jsxFragmentFactory) { - if (!options.jsxFactory) { - createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, "jsxFragmentFactory", "jsxFactory"); - } - if (options.jsx === 4 /* ReactJSX */ || options.jsx === 5 /* ReactJSXDev */) { - createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_when_option_jsx_is_1, "jsxFragmentFactory", inverseJsxOptionMap.get("" + options.jsx)); - } - if (!parseIsolatedEntityName(options.jsxFragmentFactory, languageVersion)) { - createOptionValueDiagnostic("jsxFragmentFactory", Diagnostics.Invalid_value_for_jsxFragmentFactory_0_is_not_a_valid_identifier_or_qualified_name, options.jsxFragmentFactory); - } - } - if (options.reactNamespace) { - if (options.jsx === 4 /* ReactJSX */ || options.jsx === 5 /* ReactJSXDev */) { - createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_when_option_jsx_is_1, "reactNamespace", inverseJsxOptionMap.get("" + options.jsx)); - } - } - if (options.jsxImportSource) { - if (options.jsx === 2 /* React */) { - createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_when_option_jsx_is_1, "jsxImportSource", inverseJsxOptionMap.get("" + options.jsx)); - } - } - if (options.preserveValueImports && getEmitModuleKind(options) < 5 /* ES2015 */) { - createDiagnosticForOptionName(Diagnostics.Option_0_can_only_be_used_when_module_is_set_to_es2015_or_later, "preserveValueImports"); - } - var moduleKind = getEmitModuleKind(options); - if (options.verbatimModuleSyntax) { - if (moduleKind === 2 /* AMD */ || moduleKind === 3 /* UMD */ || moduleKind === 4 /* System */) { - createDiagnosticForOptionName(Diagnostics.Option_verbatimModuleSyntax_cannot_be_used_when_module_is_set_to_UMD_AMD_or_System, "verbatimModuleSyntax"); - } - if (options.preserveValueImports) { - createRedundantOptionDiagnostic("preserveValueImports", "verbatimModuleSyntax"); - } - if (options.importsNotUsedAsValues) { - createRedundantOptionDiagnostic("importsNotUsedAsValues", "verbatimModuleSyntax"); - } - } - if (options.allowImportingTsExtensions && !(options.noEmit || options.emitDeclarationOnly)) { - createOptionValueDiagnostic("allowImportingTsExtensions", Diagnostics.Option_allowImportingTsExtensions_can_only_be_used_when_either_noEmit_or_emitDeclarationOnly_is_set); - } - var moduleResolution = getEmitModuleResolutionKind(options); - if (options.resolvePackageJsonExports && !moduleResolutionSupportsPackageJsonExportsAndImports(moduleResolution)) { - createDiagnosticForOptionName(Diagnostics.Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler, "resolvePackageJsonExports"); - } - if (options.resolvePackageJsonImports && !moduleResolutionSupportsPackageJsonExportsAndImports(moduleResolution)) { - createDiagnosticForOptionName(Diagnostics.Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler, "resolvePackageJsonImports"); - } - if (options.customConditions && !moduleResolutionSupportsPackageJsonExportsAndImports(moduleResolution)) { - createDiagnosticForOptionName(Diagnostics.Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler, "customConditions"); - } - if (moduleResolution === 100 /* Bundler */ && !emitModuleKindIsNonNodeESM(moduleKind)) { - createOptionValueDiagnostic("moduleResolution", Diagnostics.Option_0_can_only_be_used_when_module_is_set_to_es2015_or_later, "bundler"); - } - if (ModuleKind[moduleKind] && (100 /* Node16 */ <= moduleKind && moduleKind <= 199 /* NodeNext */) && !(3 /* Node16 */ <= moduleResolution && moduleResolution <= 99 /* NodeNext */)) { - var moduleKindName = ModuleKind[moduleKind]; - createOptionValueDiagnostic("moduleResolution", Diagnostics.Option_moduleResolution_must_be_set_to_0_or_left_unspecified_when_option_module_is_set_to_1, moduleKindName, moduleKindName); - } - else if (ModuleResolutionKind[moduleResolution] && (3 /* Node16 */ <= moduleResolution && moduleResolution <= 99 /* NodeNext */) && !(100 /* Node16 */ <= moduleKind && moduleKind <= 199 /* NodeNext */)) { - var moduleResolutionName = ModuleResolutionKind[moduleResolution]; - createOptionValueDiagnostic("module", Diagnostics.Option_module_must_be_set_to_0_when_option_moduleResolution_is_set_to_1, moduleResolutionName, moduleResolutionName); - } - if (!options.noEmit && !options.suppressOutputPathCheck) { - var emitHost = getEmitHost(); - var emitFilesSeen_1 = /* @__PURE__ */ new Set(); - forEachEmittedFile(emitHost, function (emitFileNames) { - if (!options.emitDeclarationOnly) { - verifyEmitFilePath(emitFileNames.jsFilePath, emitFilesSeen_1); - } - verifyEmitFilePath(emitFileNames.declarationFilePath, emitFilesSeen_1); - }); - } - function verifyEmitFilePath(emitFileName, emitFilesSeen) { - if (emitFileName) { - var emitFilePath = toPath3(emitFileName); - if (filesByName.has(emitFilePath)) { - var chain = void 0; - if (!options.configFilePath) { - chain = chainDiagnosticMessages( - /*details*/ - void 0, Diagnostics.Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript_files_Learn_more_at_https_Colon_Slash_Slashaka_ms_Slashtsconfig); - } - chain = chainDiagnosticMessages(chain, Diagnostics.Cannot_write_file_0_because_it_would_overwrite_input_file, emitFileName); - blockEmittingOfFile(emitFileName, createCompilerDiagnosticFromMessageChain(chain)); - } - var emitFileKey = !host.useCaseSensitiveFileNames() ? toFileNameLowerCase(emitFilePath) : emitFilePath; - if (emitFilesSeen.has(emitFileKey)) { - blockEmittingOfFile(emitFileName, createCompilerDiagnostic(Diagnostics.Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files, emitFileName)); - } - else { - emitFilesSeen.add(emitFileKey); - } - } - } - } - function getIgnoreDeprecationsVersion() { - var ignoreDeprecations = options.ignoreDeprecations; - if (ignoreDeprecations) { - if (ignoreDeprecations === "5.0") { - return new Version(ignoreDeprecations); - } - reportInvalidIgnoreDeprecations(); - } - return Version.zero; - } - function checkDeprecations(deprecatedIn, removedIn, createDiagnostic, fn) { - var deprecatedInVersion = new Version(deprecatedIn); - var removedInVersion = new Version(removedIn); - var typescriptVersion = new Version(typeScriptVersion3 || versionMajorMinor); - var ignoreDeprecationsVersion = getIgnoreDeprecationsVersion(); - var mustBeRemoved = !(removedInVersion.compareTo(typescriptVersion) === 1 /* GreaterThan */); - var canBeSilenced = !mustBeRemoved && ignoreDeprecationsVersion.compareTo(deprecatedInVersion) === -1 /* LessThan */; - if (mustBeRemoved || canBeSilenced) { - fn(function (name, value, useInstead) { - if (mustBeRemoved) { - if (value === void 0) { - createDiagnostic(name, value, useInstead, Diagnostics.Option_0_has_been_removed_Please_remove_it_from_your_configuration, name); - } - else { - createDiagnostic(name, value, useInstead, Diagnostics.Option_0_1_has_been_removed_Please_remove_it_from_your_configuration, name, value); - } - } - else { - if (value === void 0) { - createDiagnostic(name, value, useInstead, Diagnostics.Option_0_is_deprecated_and_will_stop_functioning_in_TypeScript_1_Specify_compilerOption_ignoreDeprecations_Colon_2_to_silence_this_error, name, removedIn, deprecatedIn); - } - else { - createDiagnostic(name, value, useInstead, Diagnostics.Option_0_1_is_deprecated_and_will_stop_functioning_in_TypeScript_2_Specify_compilerOption_ignoreDeprecations_Colon_3_to_silence_this_error, name, value, removedIn, deprecatedIn); - } - } - }); - } - } - function verifyDeprecatedCompilerOptions() { - function createDiagnostic(name, value, useInstead, message) { - var args = []; - for (var _t = 4; _t < arguments.length; _t++) { - args[_t - 4] = arguments[_t]; - } - if (useInstead) { - var details = chainDiagnosticMessages( - /*details*/ - void 0, Diagnostics.Use_0_instead, useInstead); - var chain = chainDiagnosticMessages.apply(void 0, __spreadArray([details, message], __read(args), false)); - createDiagnosticForOption( - /*onKey*/ - !value, name, - /*option2*/ - void 0, chain); - } - else { - createDiagnosticForOption.apply(void 0, __spreadArray([ - /*onKey*/ - !value, - name, - /*option2*/ - void 0, - message], __read(args), false)); - } - } - checkDeprecations("5.0", "5.5", createDiagnostic, function (createDeprecatedDiagnostic) { - if (options.target === 0 /* ES3 */) { - createDeprecatedDiagnostic("target", "ES3"); - } - if (options.noImplicitUseStrict) { - createDeprecatedDiagnostic("noImplicitUseStrict"); - } - if (options.keyofStringsOnly) { - createDeprecatedDiagnostic("keyofStringsOnly"); - } - if (options.suppressExcessPropertyErrors) { - createDeprecatedDiagnostic("suppressExcessPropertyErrors"); - } - if (options.suppressImplicitAnyIndexErrors) { - createDeprecatedDiagnostic("suppressImplicitAnyIndexErrors"); - } - if (options.noStrictGenericChecks) { - createDeprecatedDiagnostic("noStrictGenericChecks"); - } - if (options.charset) { - createDeprecatedDiagnostic("charset"); - } - if (options.out) { - createDeprecatedDiagnostic("out", - /*value*/ - void 0, "outFile"); - } - if (options.importsNotUsedAsValues) { - createDeprecatedDiagnostic("importsNotUsedAsValues", - /*value*/ - void 0, "verbatimModuleSyntax"); - } - if (options.preserveValueImports) { - createDeprecatedDiagnostic("preserveValueImports", - /*value*/ - void 0, "verbatimModuleSyntax"); - } - }); - } - function verifyDeprecatedProjectReference(ref, parentFile, index) { - function createDiagnostic(_name, _value, _useInstead, message) { - var args = []; - for (var _t = 4; _t < arguments.length; _t++) { - args[_t - 4] = arguments[_t]; - } - createDiagnosticForReference.apply(void 0, __spreadArray([parentFile, index, message], __read(args), false)); - } - checkDeprecations("5.0", "5.5", createDiagnostic, function (createDeprecatedDiagnostic) { - if (ref.prepend) { - createDeprecatedDiagnostic("prepend"); - } - }); - } - function createDiagnosticExplainingFile(file, fileProcessingReason, diagnostic, args) { - var _a2; - var fileIncludeReasons; - var relatedInfo; - var locationReason = isReferencedFile(fileProcessingReason) ? fileProcessingReason : void 0; - if (file) - (_a2 = fileReasons.get(file.path)) == null ? void 0 : _a2.forEach(processReason); - if (fileProcessingReason) - processReason(fileProcessingReason); - if (locationReason && (fileIncludeReasons == null ? void 0 : fileIncludeReasons.length) === 1) - fileIncludeReasons = void 0; - var location = locationReason && getReferencedFileLocation(getSourceFileByPath, locationReason); - var fileIncludeReasonDetails = fileIncludeReasons && chainDiagnosticMessages(fileIncludeReasons, Diagnostics.The_file_is_in_the_program_because_Colon); - var redirectInfo = file && explainIfFileIsRedirectAndImpliedFormat(file); - var chain = chainDiagnosticMessages.apply(void 0, __spreadArray([redirectInfo ? fileIncludeReasonDetails ? __spreadArray([fileIncludeReasonDetails], __read(redirectInfo), false) : redirectInfo : fileIncludeReasonDetails, diagnostic], __read(args || emptyArray), false)); - return location && isReferenceFileLocation(location) ? createFileDiagnosticFromMessageChain(location.file, location.pos, location.end - location.pos, chain, relatedInfo) : createCompilerDiagnosticFromMessageChain(chain, relatedInfo); - function processReason(reason) { - (fileIncludeReasons || (fileIncludeReasons = [])).push(fileIncludeReasonToDiagnostics(program, reason)); - if (!locationReason && isReferencedFile(reason)) { - locationReason = reason; - } - else if (locationReason !== reason) { - relatedInfo = append(relatedInfo, fileIncludeReasonToRelatedInformation(reason)); - } - if (reason === fileProcessingReason) - fileProcessingReason = void 0; - } - } - function addFilePreprocessingFileExplainingDiagnostic(file, fileProcessingReason, diagnostic, args) { - (fileProcessingDiagnostics || (fileProcessingDiagnostics = [])).push({ - kind: 1 /* FilePreprocessingFileExplainingDiagnostic */, - file: file && file.path, - fileProcessingReason: fileProcessingReason, - diagnostic: diagnostic, - args: args - }); - } - function addProgramDiagnosticExplainingFile(file, diagnostic, args) { - programDiagnostics.add(createDiagnosticExplainingFile(file, - /*fileProcessingReason*/ - void 0, diagnostic, args)); - } - function fileIncludeReasonToRelatedInformation(reason) { - if (isReferencedFile(reason)) { - var referenceLocation = getReferencedFileLocation(getSourceFileByPath, reason); - var message2 = void 0; - switch (reason.kind) { - case 3 /* Import */: - message2 = Diagnostics.File_is_included_via_import_here; - break; - case 4 /* ReferenceFile */: - message2 = Diagnostics.File_is_included_via_reference_here; - break; - case 5 /* TypeReferenceDirective */: - message2 = Diagnostics.File_is_included_via_type_library_reference_here; - break; - case 7 /* LibReferenceDirective */: - message2 = Diagnostics.File_is_included_via_library_reference_here; - break; - default: - Debug.assertNever(reason); - } - return isReferenceFileLocation(referenceLocation) ? createFileDiagnostic(referenceLocation.file, referenceLocation.pos, referenceLocation.end - referenceLocation.pos, message2) : void 0; - } - if (!options.configFile) - return void 0; - var configFileNode; - var message; - switch (reason.kind) { - case 0 /* RootFile */: - if (!options.configFile.configFileSpecs) - return void 0; - var fileName = getNormalizedAbsolutePath(rootNames[reason.index], currentDirectory); - var matchedByFiles = getMatchedFileSpec(program, fileName); - if (matchedByFiles) { - configFileNode = getTsConfigPropArrayElementValue(options.configFile, "files", matchedByFiles); - message = Diagnostics.File_is_matched_by_files_list_specified_here; - break; - } - var matchedByInclude = getMatchedIncludeSpec(program, fileName); - if (!matchedByInclude || !isString(matchedByInclude)) - return void 0; - configFileNode = getTsConfigPropArrayElementValue(options.configFile, "include", matchedByInclude); - message = Diagnostics.File_is_matched_by_include_pattern_specified_here; - break; - case 1 /* SourceFromProjectReference */: - case 2 /* OutputFromProjectReference */: - var referencedResolvedRef_1 = Debug.checkDefined(resolvedProjectReferences == null ? void 0 : resolvedProjectReferences[reason.index]); - var referenceInfo = forEachProjectReference(projectReferences, resolvedProjectReferences, function (resolvedRef, parent2, index2) { return resolvedRef === referencedResolvedRef_1 ? { sourceFile: (parent2 == null ? void 0 : parent2.sourceFile) || options.configFile, index: index2 } : void 0; }); - if (!referenceInfo) - return void 0; - var sourceFile = referenceInfo.sourceFile, index = referenceInfo.index; - var referencesSyntax = forEachTsConfigPropArray(sourceFile, "references", function (property) { return isArrayLiteralExpression(property.initializer) ? property.initializer : void 0; }); - return referencesSyntax && referencesSyntax.elements.length > index ? createDiagnosticForNodeInSourceFile(sourceFile, referencesSyntax.elements[index], reason.kind === 2 /* OutputFromProjectReference */ ? Diagnostics.File_is_output_from_referenced_project_specified_here : Diagnostics.File_is_source_from_referenced_project_specified_here) : void 0; - case 8 /* AutomaticTypeDirectiveFile */: - if (!options.types) - return void 0; - configFileNode = getOptionsSyntaxByArrayElementValue("types", reason.typeReference); - message = Diagnostics.File_is_entry_point_of_type_library_specified_here; - break; - case 6 /* LibFile */: - if (reason.index !== void 0) { - configFileNode = getOptionsSyntaxByArrayElementValue("lib", options.lib[reason.index]); - message = Diagnostics.File_is_library_specified_here; - break; - } - var target = forEachEntry(targetOptionDeclaration.type, function (value, key) { return value === getEmitScriptTarget(options) ? key : void 0; }); - configFileNode = target ? getOptionsSyntaxByValue("target", target) : void 0; - message = Diagnostics.File_is_default_library_for_target_specified_here; - break; - default: - Debug.assertNever(reason); - } - return configFileNode && createDiagnosticForNodeInSourceFile(options.configFile, configFileNode, message); - } - function verifyProjectReferences() { - var buildInfoPath = !options.suppressOutputPathCheck ? getTsBuildInfoEmitOutputFilePath(options) : void 0; - forEachProjectReference(projectReferences, resolvedProjectReferences, function (resolvedRef, parent2, index) { - var ref = (parent2 ? parent2.commandLine.projectReferences : projectReferences)[index]; - var parentFile = parent2 && parent2.sourceFile; - verifyDeprecatedProjectReference(ref, parentFile, index); - if (!resolvedRef) { - createDiagnosticForReference(parentFile, index, Diagnostics.File_0_not_found, ref.path); - return; - } - var options2 = resolvedRef.commandLine.options; - if (!options2.composite || options2.noEmit) { - var inputs = parent2 ? parent2.commandLine.fileNames : rootNames; - if (inputs.length) { - if (!options2.composite) - createDiagnosticForReference(parentFile, index, Diagnostics.Referenced_project_0_must_have_setting_composite_Colon_true, ref.path); - if (options2.noEmit) - createDiagnosticForReference(parentFile, index, Diagnostics.Referenced_project_0_may_not_disable_emit, ref.path); - } - } - if (ref.prepend) { - var out = outFile(options2); - if (out) { - if (!host.fileExists(out)) { - createDiagnosticForReference(parentFile, index, Diagnostics.Output_file_0_from_project_1_does_not_exist, out, ref.path); - } - } - else { - createDiagnosticForReference(parentFile, index, Diagnostics.Cannot_prepend_project_0_because_it_does_not_have_outFile_set, ref.path); - } - } - if (!parent2 && buildInfoPath && buildInfoPath === getTsBuildInfoEmitOutputFilePath(options2)) { - createDiagnosticForReference(parentFile, index, Diagnostics.Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1, buildInfoPath, ref.path); - hasEmitBlockingDiagnostics.set(toPath3(buildInfoPath), true); - } - }); - } - function createDiagnosticForOptionPathKeyValue(key, valueIndex, message) { - var args = []; - for (var _t = 3; _t < arguments.length; _t++) { - args[_t - 3] = arguments[_t]; - } - var needCompilerDiagnostic = true; - forEachOptionPathsSyntax(function (pathProp) { - if (isObjectLiteralExpression(pathProp.initializer)) { - forEachPropertyAssignment(pathProp.initializer, key, function (keyProps) { - var initializer = keyProps.initializer; - if (isArrayLiteralExpression(initializer) && initializer.elements.length > valueIndex) { - programDiagnostics.add(createDiagnosticForNodeInSourceFile.apply(void 0, __spreadArray([options.configFile, initializer.elements[valueIndex], message], __read(args), false))); - needCompilerDiagnostic = false; - } - }); - } - }); - if (needCompilerDiagnostic) { - programDiagnostics.add(createCompilerDiagnostic.apply(void 0, __spreadArray([message], __read(args), false))); - } - } - function createDiagnosticForOptionPaths(onKey, key, message) { - var args = []; - for (var _t = 3; _t < arguments.length; _t++) { - args[_t - 3] = arguments[_t]; - } - var needCompilerDiagnostic = true; - forEachOptionPathsSyntax(function (pathProp) { - if (isObjectLiteralExpression(pathProp.initializer) && createOptionDiagnosticInObjectLiteralSyntax.apply(void 0, __spreadArray([pathProp.initializer, - onKey, - key, - /*key2*/ - void 0, - message], __read(args), false))) { - needCompilerDiagnostic = false; - } - }); - if (needCompilerDiagnostic) { - programDiagnostics.add(createCompilerDiagnostic.apply(void 0, __spreadArray([message], __read(args), false))); - } - } - function forEachOptionsSyntaxByName(name, callback) { - return forEachPropertyAssignment(getCompilerOptionsObjectLiteralSyntax(), name, callback); - } - function forEachOptionPathsSyntax(callback) { - return forEachOptionsSyntaxByName("paths", callback); - } - function getOptionsSyntaxByValue(name, value) { - return forEachOptionsSyntaxByName(name, function (property) { return isStringLiteral(property.initializer) && property.initializer.text === value ? property.initializer : void 0; }); - } - function getOptionsSyntaxByArrayElementValue(name, value) { - var compilerOptionsObjectLiteralSyntax = getCompilerOptionsObjectLiteralSyntax(); - return compilerOptionsObjectLiteralSyntax && getPropertyArrayElementValue(compilerOptionsObjectLiteralSyntax, name, value); - } - function createDiagnosticForOptionName(message, option1, option2, option3) { - createDiagnosticForOption( - /*onKey*/ - true, option1, option2, message, option1, option2, option3); - } - function createOptionValueDiagnostic(option1, message) { - var args = []; - for (var _t = 2; _t < arguments.length; _t++) { - args[_t - 2] = arguments[_t]; - } - createDiagnosticForOption.apply(void 0, __spreadArray([ - /*onKey*/ - false, - option1, - /*option2*/ - void 0, - message], __read(args), false)); - } - function createDiagnosticForReference(sourceFile, index, message) { - var args = []; - for (var _t = 3; _t < arguments.length; _t++) { - args[_t - 3] = arguments[_t]; - } - var referencesSyntax = forEachTsConfigPropArray(sourceFile || options.configFile, "references", function (property) { return isArrayLiteralExpression(property.initializer) ? property.initializer : void 0; }); - if (referencesSyntax && referencesSyntax.elements.length > index) { - programDiagnostics.add(createDiagnosticForNodeInSourceFile.apply(void 0, __spreadArray([sourceFile || options.configFile, referencesSyntax.elements[index], message], __read(args), false))); - } - else { - programDiagnostics.add(createCompilerDiagnostic.apply(void 0, __spreadArray([message], __read(args), false))); - } - } - function createDiagnosticForOption(onKey, option1, option2, message) { - var args = []; - for (var _t = 4; _t < arguments.length; _t++) { - args[_t - 4] = arguments[_t]; - } - var compilerOptionsObjectLiteralSyntax = getCompilerOptionsObjectLiteralSyntax(); - var needCompilerDiagnostic = !compilerOptionsObjectLiteralSyntax || !createOptionDiagnosticInObjectLiteralSyntax.apply(void 0, __spreadArray([compilerOptionsObjectLiteralSyntax, onKey, option1, option2, message], __read(args), false)); - if (needCompilerDiagnostic) { - if ("messageText" in message) { - programDiagnostics.add(createCompilerDiagnosticFromMessageChain(message)); - } - else { - programDiagnostics.add(createCompilerDiagnostic.apply(void 0, __spreadArray([message], __read(args), false))); - } - } - } - function getCompilerOptionsObjectLiteralSyntax() { - if (_compilerOptionsObjectLiteralSyntax === void 0) { - _compilerOptionsObjectLiteralSyntax = forEachPropertyAssignment(getTsConfigObjectLiteralExpression(options.configFile), "compilerOptions", function (prop) { return isObjectLiteralExpression(prop.initializer) ? prop.initializer : void 0; }) || false; - } - return _compilerOptionsObjectLiteralSyntax || void 0; - } - function createOptionDiagnosticInObjectLiteralSyntax(objectLiteral, onKey, key1, key2, message) { - var args = []; - for (var _t = 5; _t < arguments.length; _t++) { - args[_t - 5] = arguments[_t]; - } - var needsCompilerDiagnostic = false; - forEachPropertyAssignment(objectLiteral, key1, function (prop) { - if ("messageText" in message) { - programDiagnostics.add(createDiagnosticForNodeFromMessageChain(options.configFile, onKey ? prop.name : prop.initializer, message)); - } - else { - programDiagnostics.add(createDiagnosticForNodeInSourceFile.apply(void 0, __spreadArray([options.configFile, onKey ? prop.name : prop.initializer, message], __read(args), false))); - } - needsCompilerDiagnostic = true; - }, key2); - return needsCompilerDiagnostic; - } - function createRedundantOptionDiagnostic(errorOnOption, redundantWithOption) { - var compilerOptionsObjectLiteralSyntax = getCompilerOptionsObjectLiteralSyntax(); - if (compilerOptionsObjectLiteralSyntax) { - createOptionDiagnosticInObjectLiteralSyntax(compilerOptionsObjectLiteralSyntax, - /*onKey*/ - true, errorOnOption, - /*key2*/ - void 0, Diagnostics.Option_0_is_redundant_and_cannot_be_specified_with_option_1, errorOnOption, redundantWithOption); - } - else { - createDiagnosticForOptionName(Diagnostics.Option_0_is_redundant_and_cannot_be_specified_with_option_1, errorOnOption, redundantWithOption); - } - } - function blockEmittingOfFile(emitFileName, diag2) { - hasEmitBlockingDiagnostics.set(toPath3(emitFileName), true); - programDiagnostics.add(diag2); - } - function isEmittedFile(file) { - if (options.noEmit) { - return false; - } - var filePath = toPath3(file); - if (getSourceFileByPath(filePath)) { - return false; - } - var out = outFile(options); - if (out) { - return isSameFile(filePath, out) || isSameFile(filePath, removeFileExtension(out) + ".d.ts" /* Dts */); - } - if (options.declarationDir && containsPath(options.declarationDir, filePath, currentDirectory, !host.useCaseSensitiveFileNames())) { - return true; - } - if (options.outDir) { - return containsPath(options.outDir, filePath, currentDirectory, !host.useCaseSensitiveFileNames()); - } - if (fileExtensionIsOneOf(filePath, supportedJSExtensionsFlat) || isDeclarationFileName(filePath)) { - var filePathWithoutExtension = removeFileExtension(filePath); - return !!getSourceFileByPath(filePathWithoutExtension + ".ts" /* Ts */) || !!getSourceFileByPath(filePathWithoutExtension + ".tsx" /* Tsx */); - } - return false; - } - function isSameFile(file1, file2) { - return comparePaths(file1, file2, currentDirectory, !host.useCaseSensitiveFileNames()) === 0 /* EqualTo */; - } - function getSymlinkCache() { - if (host.getSymlinkCache) { - return host.getSymlinkCache(); - } - if (!symlinks) { - symlinks = createSymlinkCache(currentDirectory, getCanonicalFileName); - } - if (files && automaticTypeDirectiveResolutions && !symlinks.hasProcessedResolutions()) { - symlinks.setSymlinksFromResolutions(files, automaticTypeDirectiveResolutions); - } - return symlinks; - } -} -function updateHostForUseSourceOfProjectReferenceRedirect(host) { - var setOfDeclarationDirectories; - var originalFileExists = host.compilerHost.fileExists; - var originalDirectoryExists = host.compilerHost.directoryExists; - var originalGetDirectories = host.compilerHost.getDirectories; - var originalRealpath = host.compilerHost.realpath; - if (!host.useSourceOfProjectReferenceRedirect) - return { onProgramCreateComplete: noop, fileExists: fileExists }; - host.compilerHost.fileExists = fileExists; - var directoryExists; - if (originalDirectoryExists) { - directoryExists = host.compilerHost.directoryExists = function (path) { - if (originalDirectoryExists.call(host.compilerHost, path)) { - handleDirectoryCouldBeSymlink(path); - return true; - } - if (!host.getResolvedProjectReferences()) - return false; - if (!setOfDeclarationDirectories) { - setOfDeclarationDirectories = /* @__PURE__ */ new Set(); - host.forEachResolvedProjectReference(function (ref) { - var out = outFile(ref.commandLine.options); - if (out) { - setOfDeclarationDirectories.add(getDirectoryPath(host.toPath(out))); - } - else { - var declarationDir = ref.commandLine.options.declarationDir || ref.commandLine.options.outDir; - if (declarationDir) { - setOfDeclarationDirectories.add(host.toPath(declarationDir)); - } - } - }); - } - return fileOrDirectoryExistsUsingSource(path, - /*isFile*/ - false); - }; - } - if (originalGetDirectories) { - host.compilerHost.getDirectories = function (path) { return !host.getResolvedProjectReferences() || originalDirectoryExists && originalDirectoryExists.call(host.compilerHost, path) ? originalGetDirectories.call(host.compilerHost, path) : []; }; - } - if (originalRealpath) { - host.compilerHost.realpath = function (s) { - var _a; - return ((_a = host.getSymlinkCache().getSymlinkedFiles()) == null ? void 0 : _a.get(host.toPath(s))) || originalRealpath.call(host.compilerHost, s); - }; - } - return { onProgramCreateComplete: onProgramCreateComplete, fileExists: fileExists, directoryExists: directoryExists }; - function onProgramCreateComplete() { - host.compilerHost.fileExists = originalFileExists; - host.compilerHost.directoryExists = originalDirectoryExists; - host.compilerHost.getDirectories = originalGetDirectories; - } - function fileExists(file) { - if (originalFileExists.call(host.compilerHost, file)) - return true; - if (!host.getResolvedProjectReferences()) - return false; - if (!isDeclarationFileName(file)) - return false; - return fileOrDirectoryExistsUsingSource(file, - /*isFile*/ - true); - } - function fileExistsIfProjectReferenceDts(file) { - var source = host.getSourceOfProjectReferenceRedirect(host.toPath(file)); - return source !== void 0 ? isString(source) ? originalFileExists.call(host.compilerHost, source) : true : void 0; - } - function directoryExistsIfProjectReferenceDeclDir(dir) { - var dirPath = host.toPath(dir); - var dirPathWithTrailingDirectorySeparator = "".concat(dirPath).concat(directorySeparator); - return forEachKey(setOfDeclarationDirectories, function (declDirPath) { return dirPath === declDirPath || // Any parent directory of declaration dir - startsWith(declDirPath, dirPathWithTrailingDirectorySeparator) || // Any directory inside declaration dir - startsWith(dirPath, "".concat(declDirPath, "/")); }); - } - function handleDirectoryCouldBeSymlink(directory) { - var _a; - if (!host.getResolvedProjectReferences() || containsIgnoredPath(directory)) - return; - if (!originalRealpath || !stringContains(directory, nodeModulesPathPart)) - return; - var symlinkCache = host.getSymlinkCache(); - var directoryPath = ensureTrailingDirectorySeparator(host.toPath(directory)); - if ((_a = symlinkCache.getSymlinkedDirectories()) == null ? void 0 : _a.has(directoryPath)) - return; - var real = normalizePath(originalRealpath.call(host.compilerHost, directory)); - var realPath2; - if (real === directory || (realPath2 = ensureTrailingDirectorySeparator(host.toPath(real))) === directoryPath) { - symlinkCache.setSymlinkedDirectory(directoryPath, false); - return; - } - symlinkCache.setSymlinkedDirectory(directory, { - real: ensureTrailingDirectorySeparator(real), - realPath: realPath2 - }); - } - function fileOrDirectoryExistsUsingSource(fileOrDirectory, isFile) { - var _a; - var fileOrDirectoryExistsUsingSource2 = isFile ? function (file) { return fileExistsIfProjectReferenceDts(file); } : function (dir) { return directoryExistsIfProjectReferenceDeclDir(dir); }; - var result = fileOrDirectoryExistsUsingSource2(fileOrDirectory); - if (result !== void 0) - return result; - var symlinkCache = host.getSymlinkCache(); - var symlinkedDirectories = symlinkCache.getSymlinkedDirectories(); - if (!symlinkedDirectories) - return false; - var fileOrDirectoryPath = host.toPath(fileOrDirectory); - if (!stringContains(fileOrDirectoryPath, nodeModulesPathPart)) - return false; - if (isFile && ((_a = symlinkCache.getSymlinkedFiles()) == null ? void 0 : _a.has(fileOrDirectoryPath))) - return true; - return firstDefinedIterator(symlinkedDirectories.entries(), function (_t) { - var _u = __read(_t, 2), directoryPath = _u[0], symlinkedDirectory = _u[1]; - if (!symlinkedDirectory || !startsWith(fileOrDirectoryPath, directoryPath)) - return void 0; - var result2 = fileOrDirectoryExistsUsingSource2(fileOrDirectoryPath.replace(directoryPath, symlinkedDirectory.realPath)); - if (isFile && result2) { - var absolutePath = getNormalizedAbsolutePath(fileOrDirectory, host.compilerHost.getCurrentDirectory()); - symlinkCache.setSymlinkedFile(fileOrDirectoryPath, "".concat(symlinkedDirectory.real).concat(absolutePath.replace(new RegExp(directoryPath, "i"), ""))); - } - return result2; - }) || false; - } -} -var emitSkippedWithNoDiagnostics = { diagnostics: emptyArray, sourceMaps: void 0, emittedFiles: void 0, emitSkipped: true }; -function handleNoEmitOptions(program, sourceFile, writeFile2, cancellationToken) { - var options = program.getCompilerOptions(); - if (options.noEmit) { - program.getSemanticDiagnostics(sourceFile, cancellationToken); - return sourceFile || outFile(options) ? emitSkippedWithNoDiagnostics : program.emitBuildInfo(writeFile2, cancellationToken); - } - if (!options.noEmitOnError) - return void 0; - var diagnostics = __spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read(program.getOptionsDiagnostics(cancellationToken)), false), __read(program.getSyntacticDiagnostics(sourceFile, cancellationToken)), false), __read(program.getGlobalDiagnostics(cancellationToken)), false), __read(program.getSemanticDiagnostics(sourceFile, cancellationToken)), false); - if (diagnostics.length === 0 && getEmitDeclarations(program.getCompilerOptions())) { - diagnostics = program.getDeclarationDiagnostics( - /*sourceFile*/ - void 0, cancellationToken); - } - if (!diagnostics.length) - return void 0; - var emittedFiles; - if (!sourceFile && !outFile(options)) { - var emitResult = program.emitBuildInfo(writeFile2, cancellationToken); - if (emitResult.diagnostics) - diagnostics = __spreadArray(__spreadArray([], __read(diagnostics), false), __read(emitResult.diagnostics), false); - emittedFiles = emitResult.emittedFiles; - } - return { diagnostics: diagnostics, sourceMaps: void 0, emittedFiles: emittedFiles, emitSkipped: true }; -} -function filterSemanticDiagnostics(diagnostic, option) { - return filter(diagnostic, function (d) { return !d.skippedOn || !option[d.skippedOn]; }); -} -function parseConfigHostFromCompilerHostLike(host, directoryStructureHost) { - if (directoryStructureHost === void 0) { directoryStructureHost = host; } - return { - fileExists: function (f) { return directoryStructureHost.fileExists(f); }, - readDirectory: function (root, extensions, excludes, includes, depth) { - Debug.assertIsDefined(directoryStructureHost.readDirectory, "'CompilerHost.readDirectory' must be implemented to correctly process 'projectReferences'"); - return directoryStructureHost.readDirectory(root, extensions, excludes, includes, depth); - }, - readFile: function (f) { return directoryStructureHost.readFile(f); }, - directoryExists: maybeBind(directoryStructureHost, directoryStructureHost.directoryExists), - getDirectories: maybeBind(directoryStructureHost, directoryStructureHost.getDirectories), - realpath: maybeBind(directoryStructureHost, directoryStructureHost.realpath), - useCaseSensitiveFileNames: host.useCaseSensitiveFileNames(), - getCurrentDirectory: function () { return host.getCurrentDirectory(); }, - onUnRecoverableConfigFileDiagnostic: host.onUnRecoverableConfigFileDiagnostic || returnUndefined, - trace: host.trace ? function (s) { return host.trace(s); } : void 0 - }; -} -function createPrependNodes(projectReferences, getCommandLine, readFile, host) { - if (!projectReferences) - return emptyArray; - var nodes; - for (var i = 0; i < projectReferences.length; i++) { - var ref = projectReferences[i]; - var resolvedRefOpts = getCommandLine(ref, i); - if (ref.prepend && resolvedRefOpts && resolvedRefOpts.options) { - var out = outFile(resolvedRefOpts.options); - if (!out) - continue; - var _t = getOutputPathsForBundle(resolvedRefOpts.options, - /*forceDtsPaths*/ - true), jsFilePath = _t.jsFilePath, sourceMapFilePath = _t.sourceMapFilePath, declarationFilePath = _t.declarationFilePath, declarationMapPath = _t.declarationMapPath, buildInfoPath = _t.buildInfoPath; - var node = createInputFilesWithFilePaths(readFile, jsFilePath, sourceMapFilePath, declarationFilePath, declarationMapPath, buildInfoPath, host, resolvedRefOpts.options); - (nodes || (nodes = [])).push(node); - } - } - return nodes || emptyArray; -} -function resolveProjectReferencePath(ref) { - return resolveConfigFileProjectName(ref.path); -} -function getResolutionDiagnostic(options, _t, _u) { - var extension = _t.extension; - var isDeclarationFile = _u.isDeclarationFile; - switch (extension) { - case ".ts" /* Ts */: - case ".d.ts" /* Dts */: - case ".mts" /* Mts */: - case ".d.mts" /* Dmts */: - case ".cts" /* Cts */: - case ".d.cts" /* Dcts */: - return void 0; - case ".tsx" /* Tsx */: - return needJsx(); - case ".jsx" /* Jsx */: - return needJsx() || needAllowJs(); - case ".js" /* Js */: - case ".mjs" /* Mjs */: - case ".cjs" /* Cjs */: - return needAllowJs(); - case ".json" /* Json */: - return needResolveJsonModule(); - default: - return needAllowArbitraryExtensions(); - } - function needJsx() { - return options.jsx ? void 0 : Diagnostics.Module_0_was_resolved_to_1_but_jsx_is_not_set; - } - function needAllowJs() { - return getAllowJSCompilerOption(options) || !getStrictOptionValue(options, "noImplicitAny") ? void 0 : Diagnostics.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type; - } - function needResolveJsonModule() { - return getResolveJsonModule(options) ? void 0 : Diagnostics.Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used; - } - function needAllowArbitraryExtensions() { - return isDeclarationFile || options.allowArbitraryExtensions ? void 0 : Diagnostics.Module_0_was_resolved_to_1_but_allowArbitraryExtensions_is_not_set; - } -} -function getModuleNames(_t) { - var e_607, _u; - var imports = _t.imports, moduleAugmentations = _t.moduleAugmentations; - var res = imports.map(function (i) { return i; }); - try { - for (var moduleAugmentations_1 = __values(moduleAugmentations), moduleAugmentations_1_1 = moduleAugmentations_1.next(); !moduleAugmentations_1_1.done; moduleAugmentations_1_1 = moduleAugmentations_1.next()) { - var aug = moduleAugmentations_1_1.value; - if (aug.kind === 11 /* StringLiteral */) { - res.push(aug); - } - } - } - catch (e_607_1) { e_607 = { error: e_607_1 }; } - finally { - try { - if (moduleAugmentations_1_1 && !moduleAugmentations_1_1.done && (_u = moduleAugmentations_1.return)) _u.call(moduleAugmentations_1); - } - finally { if (e_607) throw e_607.error; } - } - return res; -} -function getModuleNameStringLiteralAt(_t, index) { - var e_608, _u; - var imports = _t.imports, moduleAugmentations = _t.moduleAugmentations; - if (index < imports.length) - return imports[index]; - var augIndex = imports.length; - try { - for (var moduleAugmentations_2 = __values(moduleAugmentations), moduleAugmentations_2_1 = moduleAugmentations_2.next(); !moduleAugmentations_2_1.done; moduleAugmentations_2_1 = moduleAugmentations_2.next()) { - var aug = moduleAugmentations_2_1.value; - if (aug.kind === 11 /* StringLiteral */) { - if (index === augIndex) - return aug; - augIndex++; - } - } - } - catch (e_608_1) { e_608 = { error: e_608_1 }; } - finally { - try { - if (moduleAugmentations_2_1 && !moduleAugmentations_2_1.done && (_u = moduleAugmentations_2.return)) _u.call(moduleAugmentations_2); - } - finally { if (e_608) throw e_608.error; } - } - Debug.fail("should never ask for module name at index higher than possible module name"); -} -// src/compiler/builderState.ts -function getFileEmitOutput(program, sourceFile, emitOnlyDtsFiles, cancellationToken, customTransformers, forceDtsEmit) { - var outputFiles = []; - var _t = program.emit(sourceFile, writeFile2, cancellationToken, emitOnlyDtsFiles, customTransformers, forceDtsEmit), emitSkipped = _t.emitSkipped, diagnostics = _t.diagnostics; - return { outputFiles: outputFiles, emitSkipped: emitSkipped, diagnostics: diagnostics }; - function writeFile2(fileName, text, writeByteOrderMark) { - outputFiles.push({ name: fileName, writeByteOrderMark: writeByteOrderMark, text: text }); - } -} -var BuilderState; -(function (BuilderState2) { - function createManyToManyPathMap() { - function create2(forward, reverse, deleted) { - var map2 = { - getKeys: function (v) { return reverse.get(v); }, - getValues: function (k) { return forward.get(k); }, - keys: function () { return forward.keys(); }, - deleteKey: function (k) { - (deleted || (deleted = /* @__PURE__ */ new Set())).add(k); - var set = forward.get(k); - if (!set) { - return false; - } - set.forEach(function (v) { return deleteFromMultimap(reverse, v, k); }); - forward.delete(k); - return true; - }, - set: function (k, vSet) { - deleted == null ? void 0 : deleted.delete(k); - var existingVSet = forward.get(k); - forward.set(k, vSet); - existingVSet == null ? void 0 : existingVSet.forEach(function (v) { - if (!vSet.has(v)) { - deleteFromMultimap(reverse, v, k); - } - }); - vSet.forEach(function (v) { - if (!(existingVSet == null ? void 0 : existingVSet.has(v))) { - addToMultimap(reverse, v, k); - } - }); - return map2; - } - }; - return map2; - } - return create2( - /* @__PURE__ */ new Map(), - /* @__PURE__ */ new Map(), - /*deleted*/ - void 0); - } - BuilderState2.createManyToManyPathMap = createManyToManyPathMap; - function addToMultimap(map2, k, v) { - var set = map2.get(k); - if (!set) { - set = /* @__PURE__ */ new Set(); - map2.set(k, set); - } - set.add(v); - } - function deleteFromMultimap(map2, k, v) { - var set = map2.get(k); - if (set == null ? void 0 : set.delete(v)) { - if (!set.size) { - map2.delete(k); - } - return true; - } - return false; - } - function getReferencedFilesFromImportedModuleSymbol(symbol) { - return mapDefined(symbol.declarations, function (declaration) { - var _a; - return (_a = getSourceFileOfNode(declaration)) == null ? void 0 : _a.resolvedPath; - }); - } - function getReferencedFilesFromImportLiteral(checker, importName) { - var symbol = checker.getSymbolAtLocation(importName); - return symbol && getReferencedFilesFromImportedModuleSymbol(symbol); - } - function getReferencedFileFromFileName(program, fileName, sourceFileDirectory, getCanonicalFileName) { - return toPath(program.getProjectReferenceRedirect(fileName) || fileName, sourceFileDirectory, getCanonicalFileName); - } - function getReferencedFiles(program, sourceFile, getCanonicalFileName) { - var e_609, _t, e_610, _u, e_611, _v, e_612, _w; - var referencedFiles; - if (sourceFile.imports && sourceFile.imports.length > 0) { - var checker = program.getTypeChecker(); - try { - for (var _x = __values(sourceFile.imports), _y = _x.next(); !_y.done; _y = _x.next()) { - var importName = _y.value; - var declarationSourceFilePaths = getReferencedFilesFromImportLiteral(checker, importName); - declarationSourceFilePaths == null ? void 0 : declarationSourceFilePaths.forEach(addReferencedFile); - } - } - catch (e_609_1) { e_609 = { error: e_609_1 }; } - finally { - try { - if (_y && !_y.done && (_t = _x.return)) _t.call(_x); - } - finally { if (e_609) throw e_609.error; } - } - } - var sourceFileDirectory = getDirectoryPath(sourceFile.resolvedPath); - if (sourceFile.referencedFiles && sourceFile.referencedFiles.length > 0) { - try { - for (var _z = __values(sourceFile.referencedFiles), _10 = _z.next(); !_10.done; _10 = _z.next()) { - var referencedFile = _10.value; - var referencedPath = getReferencedFileFromFileName(program, referencedFile.fileName, sourceFileDirectory, getCanonicalFileName); - addReferencedFile(referencedPath); - } - } - catch (e_610_1) { e_610 = { error: e_610_1 }; } - finally { - try { - if (_10 && !_10.done && (_u = _z.return)) _u.call(_z); - } - finally { if (e_610) throw e_610.error; } - } - } - if (sourceFile.resolvedTypeReferenceDirectiveNames) { - sourceFile.resolvedTypeReferenceDirectiveNames.forEach(function (_t) { - var resolvedTypeReferenceDirective = _t.resolvedTypeReferenceDirective; - if (!resolvedTypeReferenceDirective) { - return; - } - var fileName = resolvedTypeReferenceDirective.resolvedFileName; - var typeFilePath = getReferencedFileFromFileName(program, fileName, sourceFileDirectory, getCanonicalFileName); - addReferencedFile(typeFilePath); - }); - } - if (sourceFile.moduleAugmentations.length) { - var checker = program.getTypeChecker(); - try { - for (var _11 = __values(sourceFile.moduleAugmentations), _12 = _11.next(); !_12.done; _12 = _11.next()) { - var moduleName = _12.value; - if (!isStringLiteral(moduleName)) - continue; - var symbol = checker.getSymbolAtLocation(moduleName); - if (!symbol) - continue; - addReferenceFromAmbientModule(symbol); - } - } - catch (e_611_1) { e_611 = { error: e_611_1 }; } - finally { - try { - if (_12 && !_12.done && (_v = _11.return)) _v.call(_11); - } - finally { if (e_611) throw e_611.error; } - } - } - try { - for (var _13 = __values(program.getTypeChecker().getAmbientModules()), _14 = _13.next(); !_14.done; _14 = _13.next()) { - var ambientModule = _14.value; - if (ambientModule.declarations && ambientModule.declarations.length > 1) { - addReferenceFromAmbientModule(ambientModule); - } - } - } - catch (e_612_1) { e_612 = { error: e_612_1 }; } - finally { - try { - if (_14 && !_14.done && (_w = _13.return)) _w.call(_13); - } - finally { if (e_612) throw e_612.error; } - } - return referencedFiles; - function addReferenceFromAmbientModule(symbol) { - var e_613, _t; - if (!symbol.declarations) { - return; - } - try { - for (var _u = __values(symbol.declarations), _v = _u.next(); !_v.done; _v = _u.next()) { - var declaration = _v.value; - var declarationSourceFile = getSourceFileOfNode(declaration); - if (declarationSourceFile && declarationSourceFile !== sourceFile) { - addReferencedFile(declarationSourceFile.resolvedPath); - } - } - } - catch (e_613_1) { e_613 = { error: e_613_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_613) throw e_613.error; } - } - } - function addReferencedFile(referencedPath) { - (referencedFiles || (referencedFiles = /* @__PURE__ */ new Set())).add(referencedPath); - } - } - function canReuseOldState(newReferencedMap, oldState) { - return oldState && !oldState.referencedMap === !newReferencedMap; - } - BuilderState2.canReuseOldState = canReuseOldState; - function create(newProgram, oldState, disableUseFileVersionAsSignature) { - var e_614, _t; - var _a, _b, _c; - var fileInfos = /* @__PURE__ */ new Map(); - var options = newProgram.getCompilerOptions(); - var isOutFile = outFile(options); - var referencedMap = options.module !== 0 /* None */ && !isOutFile ? createManyToManyPathMap() : void 0; - var exportedModulesMap = referencedMap ? createManyToManyPathMap() : void 0; - var useOldState = canReuseOldState(referencedMap, oldState); - newProgram.getTypeChecker(); - try { - for (var _u = __values(newProgram.getSourceFiles()), _v = _u.next(); !_v.done; _v = _u.next()) { - var sourceFile = _v.value; - var version2 = Debug.checkDefined(sourceFile.version, "Program intended to be used with Builder should have source files with versions set"); - var oldUncommittedSignature = useOldState ? (_a = oldState.oldSignatures) == null ? void 0 : _a.get(sourceFile.resolvedPath) : void 0; - var signature = oldUncommittedSignature === void 0 ? useOldState ? (_b = oldState.fileInfos.get(sourceFile.resolvedPath)) == null ? void 0 : _b.signature : void 0 : oldUncommittedSignature || void 0; - if (referencedMap) { - var newReferences = getReferencedFiles(newProgram, sourceFile, newProgram.getCanonicalFileName); - if (newReferences) { - referencedMap.set(sourceFile.resolvedPath, newReferences); - } - if (useOldState) { - var oldUncommittedExportedModules = (_c = oldState.oldExportedModulesMap) == null ? void 0 : _c.get(sourceFile.resolvedPath); - var exportedModules = oldUncommittedExportedModules === void 0 ? oldState.exportedModulesMap.getValues(sourceFile.resolvedPath) : oldUncommittedExportedModules || void 0; - if (exportedModules) { - exportedModulesMap.set(sourceFile.resolvedPath, exportedModules); - } - } - } - fileInfos.set(sourceFile.resolvedPath, { - version: version2, - signature: signature, - // No need to calculate affectsGlobalScope with --out since its not used at all - affectsGlobalScope: !isOutFile ? isFileAffectingGlobalScope(sourceFile) || void 0 : void 0, - impliedFormat: sourceFile.impliedNodeFormat - }); - } - } - catch (e_614_1) { e_614 = { error: e_614_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_614) throw e_614.error; } - } - return { - fileInfos: fileInfos, - referencedMap: referencedMap, - exportedModulesMap: exportedModulesMap, - useFileVersionAsSignature: !disableUseFileVersionAsSignature && !useOldState - }; - } - BuilderState2.create = create; - function releaseCache2(state) { - state.allFilesExcludingDefaultLibraryFile = void 0; - state.allFileNames = void 0; - } - BuilderState2.releaseCache = releaseCache2; - function getFilesAffectedBy(state, programOfThisState, path, cancellationToken, host) { - var _a, _b; - var result = getFilesAffectedByWithOldState(state, programOfThisState, path, cancellationToken, host); - (_a = state.oldSignatures) == null ? void 0 : _a.clear(); - (_b = state.oldExportedModulesMap) == null ? void 0 : _b.clear(); - return result; - } - BuilderState2.getFilesAffectedBy = getFilesAffectedBy; - function getFilesAffectedByWithOldState(state, programOfThisState, path, cancellationToken, host) { - var sourceFile = programOfThisState.getSourceFileByPath(path); - if (!sourceFile) { - return emptyArray; - } - if (!updateShapeSignature(state, programOfThisState, sourceFile, cancellationToken, host)) { - return [sourceFile]; - } - return (state.referencedMap ? getFilesAffectedByUpdatedShapeWhenModuleEmit : getFilesAffectedByUpdatedShapeWhenNonModuleEmit)(state, programOfThisState, sourceFile, cancellationToken, host); - } - BuilderState2.getFilesAffectedByWithOldState = getFilesAffectedByWithOldState; - function updateSignatureOfFile(state, signature, path) { - state.fileInfos.get(path).signature = signature; - (state.hasCalledUpdateShapeSignature || (state.hasCalledUpdateShapeSignature = /* @__PURE__ */ new Set())).add(path); - } - BuilderState2.updateSignatureOfFile = updateSignatureOfFile; - function computeDtsSignature(programOfThisState, sourceFile, cancellationToken, host, onNewSignature) { - programOfThisState.emit(sourceFile, function (fileName, text, _writeByteOrderMark, _onError, sourceFiles, data) { - Debug.assert(isDeclarationFileName(fileName), "File extension for signature expected to be dts: Got:: ".concat(fileName)); - onNewSignature(computeSignatureWithDiagnostics(programOfThisState, sourceFile, text, host, data), sourceFiles); - }, cancellationToken, - /*emitOnly*/ - true, - /*customTransformers*/ - void 0, - /*forceDtsEmit*/ - true); - } - BuilderState2.computeDtsSignature = computeDtsSignature; - function updateShapeSignature(state, programOfThisState, sourceFile, cancellationToken, host, useFileVersionAsSignature) { - if (useFileVersionAsSignature === void 0) { useFileVersionAsSignature = state.useFileVersionAsSignature; } - var _a; - if ((_a = state.hasCalledUpdateShapeSignature) == null ? void 0 : _a.has(sourceFile.resolvedPath)) - return false; - var info = state.fileInfos.get(sourceFile.resolvedPath); - var prevSignature = info.signature; - var latestSignature; - if (!sourceFile.isDeclarationFile && !useFileVersionAsSignature) { - computeDtsSignature(programOfThisState, sourceFile, cancellationToken, host, function (signature, sourceFiles) { - latestSignature = signature; - if (latestSignature !== prevSignature) { - updateExportedModules(state, sourceFile, sourceFiles[0].exportedModulesFromDeclarationEmit); - } - }); - } - if (latestSignature === void 0) { - latestSignature = sourceFile.version; - if (state.exportedModulesMap && latestSignature !== prevSignature) { - (state.oldExportedModulesMap || (state.oldExportedModulesMap = /* @__PURE__ */ new Map())).set(sourceFile.resolvedPath, state.exportedModulesMap.getValues(sourceFile.resolvedPath) || false); - var references = state.referencedMap ? state.referencedMap.getValues(sourceFile.resolvedPath) : void 0; - if (references) { - state.exportedModulesMap.set(sourceFile.resolvedPath, references); - } - else { - state.exportedModulesMap.deleteKey(sourceFile.resolvedPath); - } - } - } - (state.oldSignatures || (state.oldSignatures = /* @__PURE__ */ new Map())).set(sourceFile.resolvedPath, prevSignature || false); - (state.hasCalledUpdateShapeSignature || (state.hasCalledUpdateShapeSignature = /* @__PURE__ */ new Set())).add(sourceFile.resolvedPath); - info.signature = latestSignature; - return latestSignature !== prevSignature; - } - BuilderState2.updateShapeSignature = updateShapeSignature; - function updateExportedModules(state, sourceFile, exportedModulesFromDeclarationEmit) { - if (!state.exportedModulesMap) - return; - (state.oldExportedModulesMap || (state.oldExportedModulesMap = /* @__PURE__ */ new Map())).set(sourceFile.resolvedPath, state.exportedModulesMap.getValues(sourceFile.resolvedPath) || false); - var exportedModules = getExportedModules(exportedModulesFromDeclarationEmit); - if (exportedModules) { - state.exportedModulesMap.set(sourceFile.resolvedPath, exportedModules); - } - else { - state.exportedModulesMap.deleteKey(sourceFile.resolvedPath); - } - } - BuilderState2.updateExportedModules = updateExportedModules; - function getExportedModules(exportedModulesFromDeclarationEmit) { - var exportedModules; - exportedModulesFromDeclarationEmit == null ? void 0 : exportedModulesFromDeclarationEmit.forEach(function (symbol) { return getReferencedFilesFromImportedModuleSymbol(symbol).forEach(function (path) { return (exportedModules !== null && exportedModules !== void 0 ? exportedModules : (exportedModules = /* @__PURE__ */ new Set())).add(path); }); }); - return exportedModules; - } - BuilderState2.getExportedModules = getExportedModules; - function getAllDependencies(state, programOfThisState, sourceFile) { - var e_615, _t; - var compilerOptions = programOfThisState.getCompilerOptions(); - if (outFile(compilerOptions)) { - return getAllFileNames(state, programOfThisState); - } - if (!state.referencedMap || isFileAffectingGlobalScope(sourceFile)) { - return getAllFileNames(state, programOfThisState); - } - var seenMap = /* @__PURE__ */ new Set(); - var queue = [sourceFile.resolvedPath]; - while (queue.length) { - var path = queue.pop(); - if (!seenMap.has(path)) { - seenMap.add(path); - var references = state.referencedMap.getValues(path); - if (references) { - try { - for (var _u = (e_615 = void 0, __values(references.keys())), _v = _u.next(); !_v.done; _v = _u.next()) { - var key = _v.value; - queue.push(key); - } - } - catch (e_615_1) { e_615 = { error: e_615_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_615) throw e_615.error; } - } - } - } - } - return arrayFrom(mapDefinedIterator(seenMap.keys(), function (path) { - var _t; - var _a; - return (_t = ((_a = programOfThisState.getSourceFileByPath(path)) == null ? void 0 : _a.fileName)) !== null && _t !== void 0 ? _t : path; - })); - } - BuilderState2.getAllDependencies = getAllDependencies; - function getAllFileNames(state, programOfThisState) { - if (!state.allFileNames) { - var sourceFiles = programOfThisState.getSourceFiles(); - state.allFileNames = sourceFiles === emptyArray ? emptyArray : sourceFiles.map(function (file) { return file.fileName; }); - } - return state.allFileNames; - } - function getReferencedByPaths(state, referencedFilePath) { - var keys = state.referencedMap.getKeys(referencedFilePath); - return keys ? arrayFrom(keys.keys()) : []; - } - BuilderState2.getReferencedByPaths = getReferencedByPaths; - function containsOnlyAmbientModules(sourceFile) { - var e_616, _t; - try { - for (var _u = __values(sourceFile.statements), _v = _u.next(); !_v.done; _v = _u.next()) { - var statement = _v.value; - if (!isModuleWithStringLiteralName(statement)) { - return false; - } - } - } - catch (e_616_1) { e_616 = { error: e_616_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_616) throw e_616.error; } - } - return true; - } - function containsGlobalScopeAugmentation(sourceFile) { - return some(sourceFile.moduleAugmentations, function (augmentation) { return isGlobalScopeAugmentation(augmentation.parent); }); - } - function isFileAffectingGlobalScope(sourceFile) { - return containsGlobalScopeAugmentation(sourceFile) || !isExternalOrCommonJsModule(sourceFile) && !isJsonSourceFile(sourceFile) && !containsOnlyAmbientModules(sourceFile); - } - function getAllFilesExcludingDefaultLibraryFile(state, programOfThisState, firstSourceFile) { - var e_617, _t; - if (state.allFilesExcludingDefaultLibraryFile) { - return state.allFilesExcludingDefaultLibraryFile; - } - var result; - if (firstSourceFile) - addSourceFile(firstSourceFile); - try { - for (var _u = __values(programOfThisState.getSourceFiles()), _v = _u.next(); !_v.done; _v = _u.next()) { - var sourceFile = _v.value; - if (sourceFile !== firstSourceFile) { - addSourceFile(sourceFile); - } - } - } - catch (e_617_1) { e_617 = { error: e_617_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_617) throw e_617.error; } - } - state.allFilesExcludingDefaultLibraryFile = result || emptyArray; - return state.allFilesExcludingDefaultLibraryFile; - function addSourceFile(sourceFile) { - if (!programOfThisState.isSourceFileDefaultLibrary(sourceFile)) { - (result || (result = [])).push(sourceFile); - } - } - } - BuilderState2.getAllFilesExcludingDefaultLibraryFile = getAllFilesExcludingDefaultLibraryFile; - function getFilesAffectedByUpdatedShapeWhenNonModuleEmit(state, programOfThisState, sourceFileWithUpdatedShape) { - var compilerOptions = programOfThisState.getCompilerOptions(); - if (compilerOptions && outFile(compilerOptions)) { - return [sourceFileWithUpdatedShape]; - } - return getAllFilesExcludingDefaultLibraryFile(state, programOfThisState, sourceFileWithUpdatedShape); - } - function getFilesAffectedByUpdatedShapeWhenModuleEmit(state, programOfThisState, sourceFileWithUpdatedShape, cancellationToken, host) { - if (isFileAffectingGlobalScope(sourceFileWithUpdatedShape)) { - return getAllFilesExcludingDefaultLibraryFile(state, programOfThisState, sourceFileWithUpdatedShape); - } - var compilerOptions = programOfThisState.getCompilerOptions(); - if (compilerOptions && (getIsolatedModules(compilerOptions) || outFile(compilerOptions))) { - return [sourceFileWithUpdatedShape]; - } - var seenFileNamesMap = /* @__PURE__ */ new Map(); - seenFileNamesMap.set(sourceFileWithUpdatedShape.resolvedPath, sourceFileWithUpdatedShape); - var queue = getReferencedByPaths(state, sourceFileWithUpdatedShape.resolvedPath); - while (queue.length > 0) { - var currentPath = queue.pop(); - if (!seenFileNamesMap.has(currentPath)) { - var currentSourceFile = programOfThisState.getSourceFileByPath(currentPath); - seenFileNamesMap.set(currentPath, currentSourceFile); - if (currentSourceFile && updateShapeSignature(state, programOfThisState, currentSourceFile, cancellationToken, host)) { - queue.push.apply(queue, __spreadArray([], __read(getReferencedByPaths(state, currentSourceFile.resolvedPath)), false)); - } - } - } - return arrayFrom(mapDefinedIterator(seenFileNamesMap.values(), function (value) { return value; })); - } -})(BuilderState || (BuilderState = {})); -// src/compiler/builder.ts -var BuilderFileEmit = /* @__PURE__ */ (function (BuilderFileEmit2) { - BuilderFileEmit2[BuilderFileEmit2["None"] = 0] = "None"; - BuilderFileEmit2[BuilderFileEmit2["Js"] = 1] = "Js"; - BuilderFileEmit2[BuilderFileEmit2["JsMap"] = 2] = "JsMap"; - BuilderFileEmit2[BuilderFileEmit2["JsInlineMap"] = 4] = "JsInlineMap"; - BuilderFileEmit2[BuilderFileEmit2["Dts"] = 8] = "Dts"; - BuilderFileEmit2[BuilderFileEmit2["DtsMap"] = 16] = "DtsMap"; - BuilderFileEmit2[BuilderFileEmit2["AllJs"] = 7] = "AllJs"; - BuilderFileEmit2[BuilderFileEmit2["AllDts"] = 24] = "AllDts"; - BuilderFileEmit2[BuilderFileEmit2["All"] = 31] = "All"; - return BuilderFileEmit2; -})(BuilderFileEmit || {}); -function getBuilderFileEmit(options) { - var result = 1 /* Js */; - if (options.sourceMap) - result = result | 2 /* JsMap */; - if (options.inlineSourceMap) - result = result | 4 /* JsInlineMap */; - if (getEmitDeclarations(options)) - result = result | 8 /* Dts */; - if (options.declarationMap) - result = result | 16 /* DtsMap */; - if (options.emitDeclarationOnly) - result = result & 24 /* AllDts */; - return result; -} -function getPendingEmitKind(optionsOrEmitKind, oldOptionsOrEmitKind) { - var oldEmitKind = oldOptionsOrEmitKind && (isNumber(oldOptionsOrEmitKind) ? oldOptionsOrEmitKind : getBuilderFileEmit(oldOptionsOrEmitKind)); - var emitKind = isNumber(optionsOrEmitKind) ? optionsOrEmitKind : getBuilderFileEmit(optionsOrEmitKind); - if (oldEmitKind === emitKind) - return 0 /* None */; - if (!oldEmitKind || !emitKind) - return emitKind; - var diff = oldEmitKind ^ emitKind; - var result = 0 /* None */; - if (diff & 7 /* AllJs */) - result = emitKind & 7 /* AllJs */; - if (diff & 24 /* AllDts */) - result = result | emitKind & 24 /* AllDts */; - return result; -} -function hasSameKeys(map1, map2) { - return map1 === map2 || map1 !== void 0 && map2 !== void 0 && map1.size === map2.size && !forEachKey(map1, function (key) { return !map2.has(key); }); -} -function createBuilderProgramState(newProgram, oldState) { - var _a, _b; - var state = BuilderState.create(newProgram, oldState, - /*disableUseFileVersionAsSignature*/ - false); - state.program = newProgram; - var compilerOptions = newProgram.getCompilerOptions(); - state.compilerOptions = compilerOptions; - var outFilePath = outFile(compilerOptions); - if (!outFilePath) { - state.semanticDiagnosticsPerFile = /* @__PURE__ */ new Map(); - } - else if (compilerOptions.composite && (oldState == null ? void 0 : oldState.outSignature) && outFilePath === outFile(oldState == null ? void 0 : oldState.compilerOptions)) { - state.outSignature = oldState.outSignature && getEmitSignatureFromOldSignature(compilerOptions, oldState.compilerOptions, oldState.outSignature); - } - state.changedFilesSet = /* @__PURE__ */ new Set(); - state.latestChangedDtsFile = compilerOptions.composite ? oldState == null ? void 0 : oldState.latestChangedDtsFile : void 0; - var useOldState = BuilderState.canReuseOldState(state.referencedMap, oldState); - var oldCompilerOptions = useOldState ? oldState.compilerOptions : void 0; - var canCopySemanticDiagnostics = useOldState && oldState.semanticDiagnosticsPerFile && !!state.semanticDiagnosticsPerFile && !compilerOptionsAffectSemanticDiagnostics(compilerOptions, oldCompilerOptions); - var canCopyEmitSignatures = compilerOptions.composite && (oldState == null ? void 0 : oldState.emitSignatures) && !outFilePath && !compilerOptionsAffectDeclarationPath(compilerOptions, oldState.compilerOptions); - if (useOldState) { - (_a = oldState.changedFilesSet) == null ? void 0 : _a.forEach(function (value) { return state.changedFilesSet.add(value); }); - if (!outFilePath && ((_b = oldState.affectedFilesPendingEmit) == null ? void 0 : _b.size)) { - state.affectedFilesPendingEmit = new Map(oldState.affectedFilesPendingEmit); - state.seenAffectedFiles = /* @__PURE__ */ new Set(); - } - state.programEmitPending = oldState.programEmitPending; - } - else { - state.buildInfoEmitPending = true; - } - var referencedMap = state.referencedMap; - var oldReferencedMap = useOldState ? oldState.referencedMap : void 0; - var copyDeclarationFileDiagnostics = canCopySemanticDiagnostics && !compilerOptions.skipLibCheck === !oldCompilerOptions.skipLibCheck; - var copyLibFileDiagnostics = copyDeclarationFileDiagnostics && !compilerOptions.skipDefaultLibCheck === !oldCompilerOptions.skipDefaultLibCheck; - state.fileInfos.forEach(function (info, sourceFilePath) { - var _t; - var oldInfo; - var newReferences; - if (!useOldState || // File wasn't present in old state - !(oldInfo = oldState.fileInfos.get(sourceFilePath)) || // versions dont match - oldInfo.version !== info.version || // Implied formats dont match - oldInfo.impliedFormat !== info.impliedFormat || // Referenced files changed - !hasSameKeys(newReferences = referencedMap && referencedMap.getValues(sourceFilePath), oldReferencedMap && oldReferencedMap.getValues(sourceFilePath)) || // Referenced file was deleted in the new program - newReferences && forEachKey(newReferences, function (path) { return !state.fileInfos.has(path) && oldState.fileInfos.has(path); })) { - addFileToChangeSet(state, sourceFilePath); - } - else if (canCopySemanticDiagnostics) { - var sourceFile = newProgram.getSourceFileByPath(sourceFilePath); - if (sourceFile.isDeclarationFile && !copyDeclarationFileDiagnostics) - return; - if (sourceFile.hasNoDefaultLib && !copyLibFileDiagnostics) - return; - var diagnostics = oldState.semanticDiagnosticsPerFile.get(sourceFilePath); - if (diagnostics) { - state.semanticDiagnosticsPerFile.set(sourceFilePath, oldState.hasReusableDiagnostic ? convertToDiagnostics(diagnostics, newProgram) : repopulateDiagnostics(diagnostics, newProgram)); - if (!state.semanticDiagnosticsFromOldState) { - state.semanticDiagnosticsFromOldState = /* @__PURE__ */ new Set(); - } - state.semanticDiagnosticsFromOldState.add(sourceFilePath); - } - } - if (canCopyEmitSignatures) { - var oldEmitSignature = oldState.emitSignatures.get(sourceFilePath); - if (oldEmitSignature) { - ((_t = state.emitSignatures) !== null && _t !== void 0 ? _t : (state.emitSignatures = /* @__PURE__ */ new Map())).set(sourceFilePath, getEmitSignatureFromOldSignature(compilerOptions, oldState.compilerOptions, oldEmitSignature)); - } - } - }); - if (useOldState && forEachEntry(oldState.fileInfos, function (info, sourceFilePath) { - if (state.fileInfos.has(sourceFilePath)) - return false; - if (outFilePath || info.affectsGlobalScope) - return true; - state.buildInfoEmitPending = true; - return false; - })) { - BuilderState.getAllFilesExcludingDefaultLibraryFile(state, newProgram, - /*firstSourceFile*/ - void 0).forEach(function (file) { return addFileToChangeSet(state, file.resolvedPath); }); - } - else if (oldCompilerOptions) { - var pendingEmitKind_1 = compilerOptionsAffectEmit(compilerOptions, oldCompilerOptions) ? getBuilderFileEmit(compilerOptions) : getPendingEmitKind(compilerOptions, oldCompilerOptions); - if (pendingEmitKind_1 !== 0 /* None */) { - if (!outFilePath) { - newProgram.getSourceFiles().forEach(function (f) { - if (!state.changedFilesSet.has(f.resolvedPath)) { - addToAffectedFilesPendingEmit(state, f.resolvedPath, pendingEmitKind_1); - } - }); - Debug.assert(!state.seenAffectedFiles || !state.seenAffectedFiles.size); - state.seenAffectedFiles = state.seenAffectedFiles || /* @__PURE__ */ new Set(); - state.buildInfoEmitPending = true; - } - else { - state.programEmitPending = state.programEmitPending ? state.programEmitPending | pendingEmitKind_1 : pendingEmitKind_1; - } - } - } - if (outFilePath && !state.changedFilesSet.size) { - if (useOldState) - state.bundle = oldState.bundle; - if (some(newProgram.getProjectReferences(), function (ref) { return !!ref.prepend; })) - state.programEmitPending = getBuilderFileEmit(compilerOptions); - } - return state; -} -function addFileToChangeSet(state, path) { - state.changedFilesSet.add(path); - state.buildInfoEmitPending = true; - state.programEmitPending = void 0; -} -function getEmitSignatureFromOldSignature(options, oldOptions, oldEmitSignature) { - return !!options.declarationMap === !!oldOptions.declarationMap ? ( - // Use same format of signature - oldEmitSignature) : ( - // Convert to different format - isString(oldEmitSignature) ? [oldEmitSignature] : oldEmitSignature[0]); -} -function repopulateDiagnostics(diagnostics, newProgram) { - if (!diagnostics.length) - return diagnostics; - return sameMap(diagnostics, function (diag2) { - if (isString(diag2.messageText)) - return diag2; - var repopulatedChain = convertOrRepopulateDiagnosticMessageChain(diag2.messageText, diag2.file, newProgram, function (chain) { - var _a; - return (_a = chain.repopulateInfo) == null ? void 0 : _a.call(chain); - }); - return repopulatedChain === diag2.messageText ? diag2 : __assign(__assign({}, diag2), { messageText: repopulatedChain }); - }); -} -function convertOrRepopulateDiagnosticMessageChain(chain, sourceFile, newProgram, repopulateInfo) { - var info = repopulateInfo(chain); - if (info) { - return __assign(__assign({}, createModuleNotFoundChain(sourceFile, newProgram, info.moduleReference, info.mode, info.packageName || info.moduleReference)), { next: convertOrRepopulateDiagnosticMessageChainArray(chain.next, sourceFile, newProgram, repopulateInfo) }); - } - var next = convertOrRepopulateDiagnosticMessageChainArray(chain.next, sourceFile, newProgram, repopulateInfo); - return next === chain.next ? chain : __assign(__assign({}, chain), { next: next }); -} -function convertOrRepopulateDiagnosticMessageChainArray(array, sourceFile, newProgram, repopulateInfo) { - return sameMap(array, function (chain) { return convertOrRepopulateDiagnosticMessageChain(chain, sourceFile, newProgram, repopulateInfo); }); -} -function convertToDiagnostics(diagnostics, newProgram) { - if (!diagnostics.length) - return emptyArray; - var buildInfoDirectory; - return diagnostics.map(function (diagnostic) { - var result = convertToDiagnosticRelatedInformation(diagnostic, newProgram, toPathInBuildInfoDirectory); - result.reportsUnnecessary = diagnostic.reportsUnnecessary; - result.reportsDeprecated = diagnostic.reportDeprecated; - result.source = diagnostic.source; - result.skippedOn = diagnostic.skippedOn; - var relatedInformation = diagnostic.relatedInformation; - result.relatedInformation = relatedInformation ? relatedInformation.length ? relatedInformation.map(function (r) { return convertToDiagnosticRelatedInformation(r, newProgram, toPathInBuildInfoDirectory); }) : [] : void 0; - return result; - }); - function toPathInBuildInfoDirectory(path) { - buildInfoDirectory !== null && buildInfoDirectory !== void 0 ? buildInfoDirectory : (buildInfoDirectory = getDirectoryPath(getNormalizedAbsolutePath(getTsBuildInfoEmitOutputFilePath(newProgram.getCompilerOptions()), newProgram.getCurrentDirectory()))); - return toPath(path, buildInfoDirectory, newProgram.getCanonicalFileName); - } -} -function convertToDiagnosticRelatedInformation(diagnostic, newProgram, toPath3) { - var file = diagnostic.file; - var sourceFile = file ? newProgram.getSourceFileByPath(toPath3(file)) : void 0; - return __assign(__assign({}, diagnostic), { file: sourceFile, messageText: isString(diagnostic.messageText) ? diagnostic.messageText : convertOrRepopulateDiagnosticMessageChain(diagnostic.messageText, sourceFile, newProgram, function (chain) { return chain.info; }) }); -} -function releaseCache(state) { - BuilderState.releaseCache(state); - state.program = void 0; -} -function backupBuilderProgramEmitState(state) { - var outFilePath = outFile(state.compilerOptions); - Debug.assert(!state.changedFilesSet.size || outFilePath); - return { - affectedFilesPendingEmit: state.affectedFilesPendingEmit && new Map(state.affectedFilesPendingEmit), - seenEmittedFiles: state.seenEmittedFiles && new Map(state.seenEmittedFiles), - programEmitPending: state.programEmitPending, - emitSignatures: state.emitSignatures && new Map(state.emitSignatures), - outSignature: state.outSignature, - latestChangedDtsFile: state.latestChangedDtsFile, - hasChangedEmitSignature: state.hasChangedEmitSignature, - changedFilesSet: outFilePath ? new Set(state.changedFilesSet) : void 0 - }; -} -function restoreBuilderProgramEmitState(state, savedEmitState) { - state.affectedFilesPendingEmit = savedEmitState.affectedFilesPendingEmit; - state.seenEmittedFiles = savedEmitState.seenEmittedFiles; - state.programEmitPending = savedEmitState.programEmitPending; - state.emitSignatures = savedEmitState.emitSignatures; - state.outSignature = savedEmitState.outSignature; - state.latestChangedDtsFile = savedEmitState.latestChangedDtsFile; - state.hasChangedEmitSignature = savedEmitState.hasChangedEmitSignature; - if (savedEmitState.changedFilesSet) - state.changedFilesSet = savedEmitState.changedFilesSet; -} -function assertSourceFileOkWithoutNextAffectedCall(state, sourceFile) { - Debug.assert(!sourceFile || !state.affectedFiles || state.affectedFiles[state.affectedFilesIndex - 1] !== sourceFile || !state.semanticDiagnosticsPerFile.has(sourceFile.resolvedPath)); -} -function getNextAffectedFile(state, cancellationToken, host) { - var _a, _b; - while (true) { - var affectedFiles = state.affectedFiles; - if (affectedFiles) { - var seenAffectedFiles = state.seenAffectedFiles; - var affectedFilesIndex = state.affectedFilesIndex; - while (affectedFilesIndex < affectedFiles.length) { - var affectedFile = affectedFiles[affectedFilesIndex]; - if (!seenAffectedFiles.has(affectedFile.resolvedPath)) { - state.affectedFilesIndex = affectedFilesIndex; - addToAffectedFilesPendingEmit(state, affectedFile.resolvedPath, getBuilderFileEmit(state.compilerOptions)); - handleDtsMayChangeOfAffectedFile(state, affectedFile, cancellationToken, host); - return affectedFile; - } - affectedFilesIndex++; - } - state.changedFilesSet.delete(state.currentChangedFilePath); - state.currentChangedFilePath = void 0; - (_a = state.oldSignatures) == null ? void 0 : _a.clear(); - (_b = state.oldExportedModulesMap) == null ? void 0 : _b.clear(); - state.affectedFiles = void 0; - } - var nextKey = state.changedFilesSet.keys().next(); - if (nextKey.done) { - return void 0; - } - var program = Debug.checkDefined(state.program); - var compilerOptions = program.getCompilerOptions(); - if (outFile(compilerOptions)) { - Debug.assert(!state.semanticDiagnosticsPerFile); - return program; - } - state.affectedFiles = BuilderState.getFilesAffectedByWithOldState(state, program, nextKey.value, cancellationToken, host); - state.currentChangedFilePath = nextKey.value; - state.affectedFilesIndex = 0; - if (!state.seenAffectedFiles) - state.seenAffectedFiles = /* @__PURE__ */ new Set(); - } -} -function clearAffectedFilesPendingEmit(state, emitOnlyDtsFiles) { - var _a; - if (!((_a = state.affectedFilesPendingEmit) == null ? void 0 : _a.size)) - return; - if (!emitOnlyDtsFiles) - return state.affectedFilesPendingEmit = void 0; - state.affectedFilesPendingEmit.forEach(function (emitKind, path) { - var pending = emitKind & 7 /* AllJs */; - if (!pending) - state.affectedFilesPendingEmit.delete(path); - else - state.affectedFilesPendingEmit.set(path, pending); - }); -} -function getNextAffectedFilePendingEmit(state, emitOnlyDtsFiles) { - var _a; - if (!((_a = state.affectedFilesPendingEmit) == null ? void 0 : _a.size)) - return void 0; - return forEachEntry(state.affectedFilesPendingEmit, function (emitKind, path) { - var _a2; - var affectedFile = state.program.getSourceFileByPath(path); - if (!affectedFile || !sourceFileMayBeEmitted(affectedFile, state.program)) { - state.affectedFilesPendingEmit.delete(path); - return void 0; - } - var seenKind = (_a2 = state.seenEmittedFiles) == null ? void 0 : _a2.get(affectedFile.resolvedPath); - var pendingKind = getPendingEmitKind(emitKind, seenKind); - if (emitOnlyDtsFiles) - pendingKind = pendingKind & 24 /* AllDts */; - if (pendingKind) - return { affectedFile: affectedFile, emitKind: pendingKind }; - }); -} -function removeDiagnosticsOfLibraryFiles(state) { - if (!state.cleanedDiagnosticsOfLibFiles) { - state.cleanedDiagnosticsOfLibFiles = true; - var program_1 = Debug.checkDefined(state.program); - var options_1 = program_1.getCompilerOptions(); - forEach(program_1.getSourceFiles(), function (f) { return program_1.isSourceFileDefaultLibrary(f) && !skipTypeChecking(f, options_1, program_1) && removeSemanticDiagnosticsOf(state, f.resolvedPath); }); - } -} -function handleDtsMayChangeOfAffectedFile(state, affectedFile, cancellationToken, host) { - removeSemanticDiagnosticsOf(state, affectedFile.resolvedPath); - if (state.allFilesExcludingDefaultLibraryFile === state.affectedFiles) { - removeDiagnosticsOfLibraryFiles(state); - BuilderState.updateShapeSignature(state, Debug.checkDefined(state.program), affectedFile, cancellationToken, host); - return; - } - if (state.compilerOptions.assumeChangesOnlyAffectDirectDependencies) - return; - handleDtsMayChangeOfReferencingExportOfAffectedFile(state, affectedFile, cancellationToken, host); -} -function handleDtsMayChangeOf(state, path, cancellationToken, host) { - removeSemanticDiagnosticsOf(state, path); - if (!state.changedFilesSet.has(path)) { - var program = Debug.checkDefined(state.program); - var sourceFile = program.getSourceFileByPath(path); - if (sourceFile) { - BuilderState.updateShapeSignature(state, program, sourceFile, cancellationToken, host, - /*useFileVersionAsSignature*/ - true); - if (getEmitDeclarations(state.compilerOptions)) { - addToAffectedFilesPendingEmit(state, path, state.compilerOptions.declarationMap ? 24 /* AllDts */ : 8 /* Dts */); - } - } - } -} -function removeSemanticDiagnosticsOf(state, path) { - if (!state.semanticDiagnosticsFromOldState) { - return true; - } - state.semanticDiagnosticsFromOldState.delete(path); - state.semanticDiagnosticsPerFile.delete(path); - return !state.semanticDiagnosticsFromOldState.size; -} -function isChangedSignature(state, path) { - var oldSignature = Debug.checkDefined(state.oldSignatures).get(path) || void 0; - var newSignature = Debug.checkDefined(state.fileInfos.get(path)).signature; - return newSignature !== oldSignature; -} -function handleDtsMayChangeOfGlobalScope(state, filePath, cancellationToken, host) { - var _a; - if (!((_a = state.fileInfos.get(filePath)) == null ? void 0 : _a.affectsGlobalScope)) - return false; - BuilderState.getAllFilesExcludingDefaultLibraryFile(state, state.program, - /*firstSourceFile*/ - void 0).forEach(function (file) { return handleDtsMayChangeOf(state, file.resolvedPath, cancellationToken, host); }); - removeDiagnosticsOfLibraryFiles(state); - return true; -} -function handleDtsMayChangeOfReferencingExportOfAffectedFile(state, affectedFile, cancellationToken, host) { - var _a; - if (!state.exportedModulesMap || !state.changedFilesSet.has(affectedFile.resolvedPath)) - return; - if (!isChangedSignature(state, affectedFile.resolvedPath)) - return; - if (getIsolatedModules(state.compilerOptions)) { - var seenFileNamesMap = /* @__PURE__ */ new Map(); - seenFileNamesMap.set(affectedFile.resolvedPath, true); - var queue = BuilderState.getReferencedByPaths(state, affectedFile.resolvedPath); - while (queue.length > 0) { - var currentPath = queue.pop(); - if (!seenFileNamesMap.has(currentPath)) { - seenFileNamesMap.set(currentPath, true); - if (handleDtsMayChangeOfGlobalScope(state, currentPath, cancellationToken, host)) - return; - handleDtsMayChangeOf(state, currentPath, cancellationToken, host); - if (isChangedSignature(state, currentPath)) { - var currentSourceFile = Debug.checkDefined(state.program).getSourceFileByPath(currentPath); - queue.push.apply(queue, __spreadArray([], __read(BuilderState.getReferencedByPaths(state, currentSourceFile.resolvedPath)), false)); - } - } - } - } - var seenFileAndExportsOfFile = /* @__PURE__ */ new Set(); - (_a = state.exportedModulesMap.getKeys(affectedFile.resolvedPath)) == null ? void 0 : _a.forEach(function (exportedFromPath) { - if (handleDtsMayChangeOfGlobalScope(state, exportedFromPath, cancellationToken, host)) - return true; - var references = state.referencedMap.getKeys(exportedFromPath); - return references && forEachKey(references, function (filePath) { return handleDtsMayChangeOfFileAndExportsOfFile(state, filePath, seenFileAndExportsOfFile, cancellationToken, host); }); - }); -} -function handleDtsMayChangeOfFileAndExportsOfFile(state, filePath, seenFileAndExportsOfFile, cancellationToken, host) { - var _a, _b; - if (!tryAddToSet(seenFileAndExportsOfFile, filePath)) - return void 0; - if (handleDtsMayChangeOfGlobalScope(state, filePath, cancellationToken, host)) - return true; - handleDtsMayChangeOf(state, filePath, cancellationToken, host); - (_a = state.exportedModulesMap.getKeys(filePath)) == null ? void 0 : _a.forEach(function (exportedFromPath) { return handleDtsMayChangeOfFileAndExportsOfFile(state, exportedFromPath, seenFileAndExportsOfFile, cancellationToken, host); }); - (_b = state.referencedMap.getKeys(filePath)) == null ? void 0 : _b.forEach(function (referencingFilePath) { return !seenFileAndExportsOfFile.has(referencingFilePath) && // Not already removed diagnostic file - handleDtsMayChangeOf( - // Dont add to seen since this is not yet done with the export removal - state, referencingFilePath, cancellationToken, host); }); - return void 0; -} -function getSemanticDiagnosticsOfFile(state, sourceFile, cancellationToken) { - return concatenate(getBinderAndCheckerDiagnosticsOfFile(state, sourceFile, cancellationToken), Debug.checkDefined(state.program).getProgramDiagnostics(sourceFile)); -} -function getBinderAndCheckerDiagnosticsOfFile(state, sourceFile, cancellationToken) { - var path = sourceFile.resolvedPath; - if (state.semanticDiagnosticsPerFile) { - var cachedDiagnostics = state.semanticDiagnosticsPerFile.get(path); - if (cachedDiagnostics) { - return filterSemanticDiagnostics(cachedDiagnostics, state.compilerOptions); - } - } - var diagnostics = Debug.checkDefined(state.program).getBindAndCheckDiagnostics(sourceFile, cancellationToken); - if (state.semanticDiagnosticsPerFile) { - state.semanticDiagnosticsPerFile.set(path, diagnostics); - } - return filterSemanticDiagnostics(diagnostics, state.compilerOptions); -} -function isProgramBundleEmitBuildInfo(info) { - return !!outFile(info.options || {}); -} -function getBuildInfo2(state, bundle) { - var e_618, _t, e_619, _u, e_620, _v; - var _a, _b, _c; - var currentDirectory = Debug.checkDefined(state.program).getCurrentDirectory(); - var buildInfoDirectory = getDirectoryPath(getNormalizedAbsolutePath(getTsBuildInfoEmitOutputFilePath(state.compilerOptions), currentDirectory)); - var latestChangedDtsFile = state.latestChangedDtsFile ? relativeToBuildInfoEnsuringAbsolutePath(state.latestChangedDtsFile) : void 0; - var fileNames = []; - var fileNameToFileId = /* @__PURE__ */ new Map(); - var root = []; - if (outFile(state.compilerOptions)) { - var fileInfos2 = arrayFrom(state.fileInfos.entries(), function (_t) { - var _u = __read(_t, 2), key = _u[0], value = _u[1]; - var fileId = toFileId(key); - tryAddRoot(key, fileId); - return value.impliedFormat ? { version: value.version, impliedFormat: value.impliedFormat, signature: void 0, affectsGlobalScope: void 0 } : value.version; - }); - var program2 = { - fileNames: fileNames, - fileInfos: fileInfos2, - root: root, - options: convertToProgramBuildInfoCompilerOptions(state.compilerOptions), - outSignature: state.outSignature, - latestChangedDtsFile: latestChangedDtsFile, - pendingEmit: !state.programEmitPending ? void 0 : ( - // Pending is undefined or None is encoded as undefined - state.programEmitPending === getBuilderFileEmit(state.compilerOptions) ? false : ( - // Pending emit is same as deteremined by compilerOptions - state.programEmitPending)) - // Actual value - }; - var js = bundle.js, dts = bundle.dts, commonSourceDirectory = bundle.commonSourceDirectory, sourceFiles = bundle.sourceFiles; - state.bundle = bundle = { - commonSourceDirectory: commonSourceDirectory, - sourceFiles: sourceFiles, - js: js || (!state.compilerOptions.emitDeclarationOnly ? (_a = state.bundle) == null ? void 0 : _a.js : void 0), - dts: dts || (getEmitDeclarations(state.compilerOptions) ? (_b = state.bundle) == null ? void 0 : _b.dts : void 0) - }; - return createBuildInfo(program2, bundle); - } - var fileIdsList; - var fileNamesToFileIdListId; - var emitSignatures; - var fileInfos = arrayFrom(state.fileInfos.entries(), function (_t) { - var _u = __read(_t, 2), key = _u[0], value = _u[1]; - var _a2, _b2; - var fileId = toFileId(key); - tryAddRoot(key, fileId); - Debug.assert(fileNames[fileId - 1] === relativeToBuildInfo(key)); - var oldSignature = (_a2 = state.oldSignatures) == null ? void 0 : _a2.get(key); - var actualSignature = oldSignature !== void 0 ? oldSignature || void 0 : value.signature; - if (state.compilerOptions.composite) { - var file = state.program.getSourceFileByPath(key); - if (!isJsonSourceFile(file) && sourceFileMayBeEmitted(file, state.program)) { - var emitSignature = (_b2 = state.emitSignatures) == null ? void 0 : _b2.get(key); - if (emitSignature !== actualSignature) { - (emitSignatures || (emitSignatures = [])).push(emitSignature === void 0 ? fileId : ( - // There is no emit, encode as false - // fileId, signature: emptyArray if signature only differs in dtsMap option than our own compilerOptions otherwise EmitSignature - [fileId, !isString(emitSignature) && emitSignature[0] === actualSignature ? emptyArray : emitSignature])); - } - } - } - return value.version === actualSignature ? value.affectsGlobalScope || value.impliedFormat ? ( - // If file version is same as signature, dont serialize signature - { version: value.version, signature: void 0, affectsGlobalScope: value.affectsGlobalScope, impliedFormat: value.impliedFormat }) : ( - // If file info only contains version and signature and both are same we can just write string - value.version) : actualSignature !== void 0 ? ( - // If signature is not same as version, encode signature in the fileInfo - oldSignature === void 0 ? ( - // If we havent computed signature, use fileInfo as is - value) : ( - // Serialize fileInfo with new updated signature - { version: value.version, signature: actualSignature, affectsGlobalScope: value.affectsGlobalScope, impliedFormat: value.impliedFormat })) : ( - // Signature of the FileInfo is undefined, serialize it as false - { version: value.version, signature: false, affectsGlobalScope: value.affectsGlobalScope, impliedFormat: value.impliedFormat }); - }); - var referencedMap; - if (state.referencedMap) { - referencedMap = arrayFrom(state.referencedMap.keys()).sort(compareStringsCaseSensitive).map(function (key) { return [ - toFileId(key), - toFileIdListId(state.referencedMap.getValues(key)) - ]; }); - } - var exportedModulesMap; - if (state.exportedModulesMap) { - exportedModulesMap = mapDefined(arrayFrom(state.exportedModulesMap.keys()).sort(compareStringsCaseSensitive), function (key) { - var _a2; - var oldValue = (_a2 = state.oldExportedModulesMap) == null ? void 0 : _a2.get(key); - if (oldValue === void 0) - return [toFileId(key), toFileIdListId(state.exportedModulesMap.getValues(key))]; - if (oldValue) - return [toFileId(key), toFileIdListId(oldValue)]; - return void 0; - }); - } - var semanticDiagnosticsPerFile; - if (state.semanticDiagnosticsPerFile) { - try { - for (var _w = __values(arrayFrom(state.semanticDiagnosticsPerFile.keys()).sort(compareStringsCaseSensitive)), _x = _w.next(); !_x.done; _x = _w.next()) { - var key = _x.value; - var value = state.semanticDiagnosticsPerFile.get(key); - (semanticDiagnosticsPerFile || (semanticDiagnosticsPerFile = [])).push(value.length ? [ - toFileId(key), - convertToReusableDiagnostics(value, relativeToBuildInfo) - ] : toFileId(key)); - } - } - catch (e_618_1) { e_618 = { error: e_618_1 }; } - finally { - try { - if (_x && !_x.done && (_t = _w.return)) _t.call(_w); - } - finally { if (e_618) throw e_618.error; } - } - } - var affectedFilesPendingEmit; - if ((_c = state.affectedFilesPendingEmit) == null ? void 0 : _c.size) { - var fullEmitForOptions = getBuilderFileEmit(state.compilerOptions); - var seenFiles = /* @__PURE__ */ new Set(); - try { - for (var _y = __values(arrayFrom(state.affectedFilesPendingEmit.keys()).sort(compareStringsCaseSensitive)), _z = _y.next(); !_z.done; _z = _y.next()) { - var path = _z.value; - if (tryAddToSet(seenFiles, path)) { - var file = state.program.getSourceFileByPath(path); - if (!file || !sourceFileMayBeEmitted(file, state.program)) - continue; - var fileId = toFileId(path), pendingEmit = state.affectedFilesPendingEmit.get(path); - (affectedFilesPendingEmit || (affectedFilesPendingEmit = [])).push(pendingEmit === fullEmitForOptions ? fileId : ( - // Pending full emit per options - pendingEmit === 8 /* Dts */ ? [fileId] : ( - // Pending on Dts only - [fileId, pendingEmit])) - // Anything else - ); - } - } - } - catch (e_619_1) { e_619 = { error: e_619_1 }; } - finally { - try { - if (_z && !_z.done && (_u = _y.return)) _u.call(_y); - } - finally { if (e_619) throw e_619.error; } - } - } - var changeFileSet; - if (state.changedFilesSet.size) { - try { - for (var _10 = __values(arrayFrom(state.changedFilesSet.keys()).sort(compareStringsCaseSensitive)), _11 = _10.next(); !_11.done; _11 = _10.next()) { - var path = _11.value; - (changeFileSet || (changeFileSet = [])).push(toFileId(path)); - } - } - catch (e_620_1) { e_620 = { error: e_620_1 }; } - finally { - try { - if (_11 && !_11.done && (_v = _10.return)) _v.call(_10); - } - finally { if (e_620) throw e_620.error; } - } - } - var program = { - fileNames: fileNames, - fileInfos: fileInfos, - root: root, - options: convertToProgramBuildInfoCompilerOptions(state.compilerOptions), - fileIdsList: fileIdsList, - referencedMap: referencedMap, - exportedModulesMap: exportedModulesMap, - semanticDiagnosticsPerFile: semanticDiagnosticsPerFile, - affectedFilesPendingEmit: affectedFilesPendingEmit, - changeFileSet: changeFileSet, - emitSignatures: emitSignatures, - latestChangedDtsFile: latestChangedDtsFile - }; - return createBuildInfo(program, bundle); - function relativeToBuildInfoEnsuringAbsolutePath(path) { - return relativeToBuildInfo(getNormalizedAbsolutePath(path, currentDirectory)); - } - function relativeToBuildInfo(path) { - return ensurePathIsNonModuleName(getRelativePathFromDirectory(buildInfoDirectory, path, state.program.getCanonicalFileName)); - } - function toFileId(path) { - var fileId = fileNameToFileId.get(path); - if (fileId === void 0) { - fileNames.push(relativeToBuildInfo(path)); - fileNameToFileId.set(path, fileId = fileNames.length); - } - return fileId; - } - function toFileIdListId(set) { - var fileIds = arrayFrom(set.keys(), toFileId).sort(compareValues); - var key = fileIds.join(); - var fileIdListId = fileNamesToFileIdListId == null ? void 0 : fileNamesToFileIdListId.get(key); - if (fileIdListId === void 0) { - (fileIdsList || (fileIdsList = [])).push(fileIds); - (fileNamesToFileIdListId || (fileNamesToFileIdListId = /* @__PURE__ */ new Map())).set(key, fileIdListId = fileIdsList.length); - } - return fileIdListId; - } - function tryAddRoot(path, fileId) { - var file = state.program.getSourceFile(path); - if (!state.program.getFileIncludeReasons().get(file.path).some(function (r) { return r.kind === 0; } /* RootFile */)) - return; - if (!root.length) - return root.push(fileId); - var last2 = root[root.length - 1]; - var isLastStartEnd = isArray(last2); - if (isLastStartEnd && last2[1] === fileId - 1) - return last2[1] = fileId; - if (isLastStartEnd || root.length === 1 || last2 !== fileId - 1) - return root.push(fileId); - var lastButOne = root[root.length - 2]; - if (!isNumber(lastButOne) || lastButOne !== last2 - 1) - return root.push(fileId); - root[root.length - 2] = [lastButOne, fileId]; - return root.length = root.length - 1; - } - function convertToProgramBuildInfoCompilerOptions(options) { - var e_621, _t; - var result; - var optionsNameMap = getOptionsNameMap().optionsNameMap; - try { - for (var _u = __values(getOwnKeys(options).sort(compareStringsCaseSensitive)), _v = _u.next(); !_v.done; _v = _u.next()) { - var name_97 = _v.value; - var optionInfo = optionsNameMap.get(name_97.toLowerCase()); - if (optionInfo == null ? void 0 : optionInfo.affectsBuildInfo) { - (result || (result = {}))[name_97] = convertToReusableCompilerOptionValue(optionInfo, options[name_97], relativeToBuildInfoEnsuringAbsolutePath); - } - } - } - catch (e_621_1) { e_621 = { error: e_621_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_621) throw e_621.error; } - } - return result; - } -} -function convertToReusableCompilerOptionValue(option, value, relativeToBuildInfo) { - if (option) { - Debug.assert(option.type !== "listOrElement"); - if (option.type === "list") { - var values = value; - if (option.element.isFilePath && values.length) { - return values.map(relativeToBuildInfo); - } - } - else if (option.isFilePath) { - return relativeToBuildInfo(value); - } - } - return value; -} -function convertToReusableDiagnostics(diagnostics, relativeToBuildInfo) { - Debug.assert(!!diagnostics.length); - return diagnostics.map(function (diagnostic) { - var result = convertToReusableDiagnosticRelatedInformation(diagnostic, relativeToBuildInfo); - result.reportsUnnecessary = diagnostic.reportsUnnecessary; - result.reportDeprecated = diagnostic.reportsDeprecated; - result.source = diagnostic.source; - result.skippedOn = diagnostic.skippedOn; - var relatedInformation = diagnostic.relatedInformation; - result.relatedInformation = relatedInformation ? relatedInformation.length ? relatedInformation.map(function (r) { return convertToReusableDiagnosticRelatedInformation(r, relativeToBuildInfo); }) : [] : void 0; - return result; - }); -} -function convertToReusableDiagnosticRelatedInformation(diagnostic, relativeToBuildInfo) { - var file = diagnostic.file; - return __assign(__assign({}, diagnostic), { file: file ? relativeToBuildInfo(file.resolvedPath) : void 0, messageText: isString(diagnostic.messageText) ? diagnostic.messageText : convertToReusableDiagnosticMessageChain(diagnostic.messageText) }); -} -function convertToReusableDiagnosticMessageChain(chain) { - if (chain.repopulateInfo) { - return { - info: chain.repopulateInfo(), - next: convertToReusableDiagnosticMessageChainArray(chain.next) - }; - } - var next = convertToReusableDiagnosticMessageChainArray(chain.next); - return next === chain.next ? chain : __assign(__assign({}, chain), { next: next }); -} -function convertToReusableDiagnosticMessageChainArray(array) { - if (!array) - return array; - return forEach(array, function (chain, index) { - var reusable = convertToReusableDiagnosticMessageChain(chain); - if (chain === reusable) - return void 0; - var result = index > 0 ? array.slice(0, index - 1) : []; - result.push(reusable); - for (var i = index + 1; i < array.length; i++) { - result.push(convertToReusableDiagnosticMessageChain(array[i])); - } - return result; - }) || array; -} -var BuilderProgramKind = /* @__PURE__ */ (function (BuilderProgramKind2) { - BuilderProgramKind2[BuilderProgramKind2["SemanticDiagnosticsBuilderProgram"] = 0] = "SemanticDiagnosticsBuilderProgram"; - BuilderProgramKind2[BuilderProgramKind2["EmitAndSemanticDiagnosticsBuilderProgram"] = 1] = "EmitAndSemanticDiagnosticsBuilderProgram"; - return BuilderProgramKind2; -})(BuilderProgramKind || {}); -function getBuilderCreationParameters(newProgramOrRootNames, hostOrOptions, oldProgramOrHost, configFileParsingDiagnosticsOrOldProgram, configFileParsingDiagnostics, projectReferences) { - var host; - var newProgram; - var oldProgram; - if (newProgramOrRootNames === void 0) { - Debug.assert(hostOrOptions === void 0); - host = oldProgramOrHost; - oldProgram = configFileParsingDiagnosticsOrOldProgram; - Debug.assert(!!oldProgram); - newProgram = oldProgram.getProgram(); - } - else if (isArray(newProgramOrRootNames)) { - oldProgram = configFileParsingDiagnosticsOrOldProgram; - newProgram = createProgram({ - rootNames: newProgramOrRootNames, - options: hostOrOptions, - host: oldProgramOrHost, - oldProgram: oldProgram && oldProgram.getProgramOrUndefined(), - configFileParsingDiagnostics: configFileParsingDiagnostics, - projectReferences: projectReferences - }); - host = oldProgramOrHost; - } - else { - newProgram = newProgramOrRootNames; - host = hostOrOptions; - oldProgram = oldProgramOrHost; - configFileParsingDiagnostics = configFileParsingDiagnosticsOrOldProgram; - } - return { host: host, newProgram: newProgram, oldProgram: oldProgram, configFileParsingDiagnostics: configFileParsingDiagnostics || emptyArray }; -} -function getTextHandlingSourceMapForSignature(text, data) { - return (data == null ? void 0 : data.sourceMapUrlPos) !== void 0 ? text.substring(0, data.sourceMapUrlPos) : text; -} -function computeSignatureWithDiagnostics(program, sourceFile, text, host, data) { - var _t; - var _a; - text = getTextHandlingSourceMapForSignature(text, data); - var sourceFileDirectory; - if ((_a = data == null ? void 0 : data.diagnostics) == null ? void 0 : _a.length) { - text += data.diagnostics.map(function (diagnostic) { return "".concat(locationInfo(diagnostic)).concat(DiagnosticCategory[diagnostic.category]).concat(diagnostic.code, ": ").concat(flattenDiagnosticMessageText2(diagnostic.messageText)); }).join("\n"); - } - return ((_t = host.createHash) !== null && _t !== void 0 ? _t : generateDjb2Hash)(text); - function flattenDiagnosticMessageText2(diagnostic) { - return isString(diagnostic) ? diagnostic : diagnostic === void 0 ? "" : !diagnostic.next ? diagnostic.messageText : diagnostic.messageText + diagnostic.next.map(flattenDiagnosticMessageText2).join("\n"); - } - function locationInfo(diagnostic) { - if (diagnostic.file.resolvedPath === sourceFile.resolvedPath) - return "(".concat(diagnostic.start, ",").concat(diagnostic.length, ")"); - if (sourceFileDirectory === void 0) - sourceFileDirectory = getDirectoryPath(sourceFile.resolvedPath); - return "".concat(ensurePathIsNonModuleName(getRelativePathFromDirectory(sourceFileDirectory, diagnostic.file.resolvedPath, program.getCanonicalFileName)), "(").concat(diagnostic.start, ",").concat(diagnostic.length, ")"); - } -} -function computeSignature(text, host, data) { - var _t; - return ((_t = host.createHash) !== null && _t !== void 0 ? _t : generateDjb2Hash)(getTextHandlingSourceMapForSignature(text, data)); -} -function createBuilderProgram(kind, _t) { - var newProgram = _t.newProgram, host = _t.host, oldProgram = _t.oldProgram, configFileParsingDiagnostics = _t.configFileParsingDiagnostics; - var oldState = oldProgram && oldProgram.getState(); - if (oldState && newProgram === oldState.program && configFileParsingDiagnostics === newProgram.getConfigFileParsingDiagnostics()) { - newProgram = void 0; - oldState = void 0; - return oldProgram; - } - var state = createBuilderProgramState(newProgram, oldState); - newProgram.getBuildInfo = function (bundle) { return getBuildInfo2(state, bundle); }; - newProgram = void 0; - oldProgram = void 0; - oldState = void 0; - var getState = function () { return state; }; - var builderProgram = createRedirectedBuilderProgram(getState, configFileParsingDiagnostics); - builderProgram.getState = getState; - builderProgram.saveEmitState = function () { return backupBuilderProgramEmitState(state); }; - builderProgram.restoreEmitState = function (saved) { return restoreBuilderProgramEmitState(state, saved); }; - builderProgram.hasChangedEmitSignature = function () { return !!state.hasChangedEmitSignature; }; - builderProgram.getAllDependencies = function (sourceFile) { return BuilderState.getAllDependencies(state, Debug.checkDefined(state.program), sourceFile); }; - builderProgram.getSemanticDiagnostics = getSemanticDiagnostics; - builderProgram.emit = emit; - builderProgram.releaseProgram = function () { return releaseCache(state); }; - if (kind === 0 /* SemanticDiagnosticsBuilderProgram */) { - builderProgram.getSemanticDiagnosticsOfNextAffectedFile = getSemanticDiagnosticsOfNextAffectedFile; - } - else if (kind === 1 /* EmitAndSemanticDiagnosticsBuilderProgram */) { - builderProgram.getSemanticDiagnosticsOfNextAffectedFile = getSemanticDiagnosticsOfNextAffectedFile; - builderProgram.emitNextAffectedFile = emitNextAffectedFile; - builderProgram.emitBuildInfo = emitBuildInfo; - } - else { - notImplemented(); - } - return builderProgram; - function emitBuildInfo(writeFile2, cancellationToken) { - if (state.buildInfoEmitPending) { - var result = Debug.checkDefined(state.program).emitBuildInfo(writeFile2 || maybeBind(host, host.writeFile), cancellationToken); - state.buildInfoEmitPending = false; - return result; - } - return emitSkippedWithNoDiagnostics; - } - function emitNextAffectedFile(writeFile2, cancellationToken, emitOnlyDtsFiles, customTransformers) { - var _t, _u; - var _a, _b, _c; - var affected = getNextAffectedFile(state, cancellationToken, host); - var programEmitKind = getBuilderFileEmit(state.compilerOptions); - var emitKind = emitOnlyDtsFiles ? programEmitKind & 24 /* AllDts */ : programEmitKind; - if (!affected) { - if (!outFile(state.compilerOptions)) { - var pendingAffectedFile = getNextAffectedFilePendingEmit(state, emitOnlyDtsFiles); - if (!pendingAffectedFile) { - if (!state.buildInfoEmitPending) - return void 0; - var affected2 = state.program; - var result2 = affected2.emitBuildInfo(writeFile2 || maybeBind(host, host.writeFile), cancellationToken); - state.buildInfoEmitPending = false; - return { result: result2, affected: affected2 }; - } - (affected = pendingAffectedFile.affectedFile, emitKind = pendingAffectedFile.emitKind); - } - else { - if (!state.programEmitPending) - return void 0; - emitKind = state.programEmitPending; - if (emitOnlyDtsFiles) - emitKind = emitKind & 24 /* AllDts */; - if (!emitKind) - return void 0; - affected = state.program; - } - } - var emitOnly; - if (emitKind & 7 /* AllJs */) - emitOnly = 0 /* Js */; - if (emitKind & 24 /* AllDts */) - emitOnly = emitOnly === void 0 ? 1 /* Dts */ : void 0; - if (affected === state.program) { - state.programEmitPending = state.changedFilesSet.size ? getPendingEmitKind(programEmitKind, emitKind) : state.programEmitPending ? getPendingEmitKind(state.programEmitPending, emitKind) : void 0; - } - var result = state.program.emit(affected === state.program ? void 0 : affected, getWriteFileCallback(writeFile2, customTransformers), cancellationToken, emitOnly, customTransformers); - if (affected !== state.program) { - var affectedSourceFile = affected; - state.seenAffectedFiles.add(affectedSourceFile.resolvedPath); - if (state.affectedFilesIndex !== void 0) - state.affectedFilesIndex++; - state.buildInfoEmitPending = true; - var existing = ((_a = state.seenEmittedFiles) == null ? void 0 : _a.get(affectedSourceFile.resolvedPath)) || 0 /* None */; - ((_t = state.seenEmittedFiles) !== null && _t !== void 0 ? _t : (state.seenEmittedFiles = /* @__PURE__ */ new Map())).set(affectedSourceFile.resolvedPath, emitKind | existing); - var existingPending = ((_b = state.affectedFilesPendingEmit) == null ? void 0 : _b.get(affectedSourceFile.resolvedPath)) || programEmitKind; - var pendingKind = getPendingEmitKind(existingPending, emitKind | existing); - if (pendingKind) - ((_u = state.affectedFilesPendingEmit) !== null && _u !== void 0 ? _u : (state.affectedFilesPendingEmit = /* @__PURE__ */ new Map())).set(affectedSourceFile.resolvedPath, pendingKind); - else - (_c = state.affectedFilesPendingEmit) == null ? void 0 : _c.delete(affectedSourceFile.resolvedPath); - } - else { - state.changedFilesSet.clear(); - } - return { result: result, affected: affected }; - } - function getWriteFileCallback(writeFile2, customTransformers) { - if (!getEmitDeclarations(state.compilerOptions)) - return writeFile2 || maybeBind(host, host.writeFile); - return function (fileName, text, writeByteOrderMark, onError, sourceFiles, data) { - var _t, _u, _v; - var _a, _b, _c, _d; - if (isDeclarationFileName(fileName)) { - if (!outFile(state.compilerOptions)) { - Debug.assert((sourceFiles == null ? void 0 : sourceFiles.length) === 1); - var emitSignature = void 0; - if (!customTransformers) { - var file = sourceFiles[0]; - var info = state.fileInfos.get(file.resolvedPath); - if (info.signature === file.version) { - var signature = computeSignatureWithDiagnostics(state.program, file, text, host, data); - if (!((_a = data == null ? void 0 : data.diagnostics) == null ? void 0 : _a.length)) - emitSignature = signature; - if (signature !== file.version) { - if (host.storeFilesChangingSignatureDuringEmit) - ((_t = state.filesChangingSignature) !== null && _t !== void 0 ? _t : (state.filesChangingSignature = /* @__PURE__ */ new Set())).add(file.resolvedPath); - if (state.exportedModulesMap) - BuilderState.updateExportedModules(state, file, file.exportedModulesFromDeclarationEmit); - if (state.affectedFiles) { - var existing = (_b = state.oldSignatures) == null ? void 0 : _b.get(file.resolvedPath); - if (existing === void 0) - ((_u = state.oldSignatures) !== null && _u !== void 0 ? _u : (state.oldSignatures = /* @__PURE__ */ new Map())).set(file.resolvedPath, info.signature || false); - info.signature = signature; - } - else { - info.signature = signature; - (_c = state.oldExportedModulesMap) == null ? void 0 : _c.clear(); - } - } - } - } - if (state.compilerOptions.composite) { - var filePath = sourceFiles[0].resolvedPath; - emitSignature = handleNewSignature((_d = state.emitSignatures) == null ? void 0 : _d.get(filePath), emitSignature); - if (!emitSignature) - return; - ((_v = state.emitSignatures) !== null && _v !== void 0 ? _v : (state.emitSignatures = /* @__PURE__ */ new Map())).set(filePath, emitSignature); - } - } - else if (state.compilerOptions.composite) { - var newSignature = handleNewSignature(state.outSignature, - /*newSignature*/ - void 0); - if (!newSignature) - return; - state.outSignature = newSignature; - } - } - if (writeFile2) - writeFile2(fileName, text, writeByteOrderMark, onError, sourceFiles, data); - else if (host.writeFile) - host.writeFile(fileName, text, writeByteOrderMark, onError, sourceFiles, data); - else - state.program.writeFile(fileName, text, writeByteOrderMark, onError, sourceFiles, data); - function handleNewSignature(oldSignatureFormat, newSignature) { - var oldSignature = !oldSignatureFormat || isString(oldSignatureFormat) ? oldSignatureFormat : oldSignatureFormat[0]; - newSignature !== null && newSignature !== void 0 ? newSignature : (newSignature = computeSignature(text, host, data)); - if (newSignature === oldSignature) { - if (oldSignatureFormat === oldSignature) - return void 0; - else if (data) - data.differsOnlyInMap = true; - else - data = { differsOnlyInMap: true }; - } - else { - state.hasChangedEmitSignature = true; - state.latestChangedDtsFile = fileName; - } - return newSignature; - } - }; - } - function emit(targetSourceFile, writeFile2, cancellationToken, emitOnlyDtsFiles, customTransformers) { - if (kind === 1 /* EmitAndSemanticDiagnosticsBuilderProgram */) { - assertSourceFileOkWithoutNextAffectedCall(state, targetSourceFile); - } - var result = handleNoEmitOptions(builderProgram, targetSourceFile, writeFile2, cancellationToken); - if (result) - return result; - if (!targetSourceFile) { - if (kind === 1 /* EmitAndSemanticDiagnosticsBuilderProgram */) { - var sourceMaps = []; - var emitSkipped = false; - var diagnostics = void 0; - var emittedFiles = []; - var affectedEmitResult = void 0; - while (affectedEmitResult = emitNextAffectedFile(writeFile2, cancellationToken, emitOnlyDtsFiles, customTransformers)) { - emitSkipped = emitSkipped || affectedEmitResult.result.emitSkipped; - diagnostics = addRange(diagnostics, affectedEmitResult.result.diagnostics); - emittedFiles = addRange(emittedFiles, affectedEmitResult.result.emittedFiles); - sourceMaps = addRange(sourceMaps, affectedEmitResult.result.sourceMaps); - } - return { - emitSkipped: emitSkipped, - diagnostics: diagnostics || emptyArray, - emittedFiles: emittedFiles, - sourceMaps: sourceMaps - }; - } - else { - clearAffectedFilesPendingEmit(state, emitOnlyDtsFiles); - } - } - return Debug.checkDefined(state.program).emit(targetSourceFile, getWriteFileCallback(writeFile2, customTransformers), cancellationToken, emitOnlyDtsFiles, customTransformers); - } - function getSemanticDiagnosticsOfNextAffectedFile(cancellationToken, ignoreSourceFile) { - while (true) { - var affected = getNextAffectedFile(state, cancellationToken, host); - var result = void 0; - if (!affected) - return void 0; - else if (affected !== state.program) { - var affectedSourceFile = affected; - if (!ignoreSourceFile || !ignoreSourceFile(affectedSourceFile)) { - result = getSemanticDiagnosticsOfFile(state, affectedSourceFile, cancellationToken); - } - state.seenAffectedFiles.add(affectedSourceFile.resolvedPath); - state.affectedFilesIndex++; - state.buildInfoEmitPending = true; - if (!result) - continue; - } - else { - result = state.program.getSemanticDiagnostics( - /*sourceFile*/ - void 0, cancellationToken); - state.changedFilesSet.clear(); - state.programEmitPending = getBuilderFileEmit(state.compilerOptions); - } - return { result: result, affected: affected }; - } - } - function getSemanticDiagnostics(sourceFile, cancellationToken) { - var e_622, _t; - assertSourceFileOkWithoutNextAffectedCall(state, sourceFile); - var compilerOptions = Debug.checkDefined(state.program).getCompilerOptions(); - if (outFile(compilerOptions)) { - Debug.assert(!state.semanticDiagnosticsPerFile); - return Debug.checkDefined(state.program).getSemanticDiagnostics(sourceFile, cancellationToken); - } - if (sourceFile) { - return getSemanticDiagnosticsOfFile(state, sourceFile, cancellationToken); - } - while (getSemanticDiagnosticsOfNextAffectedFile(cancellationToken)) { - } - var diagnostics; - try { - for (var _u = __values(Debug.checkDefined(state.program).getSourceFiles()), _v = _u.next(); !_v.done; _v = _u.next()) { - var sourceFile2 = _v.value; - diagnostics = addRange(diagnostics, getSemanticDiagnosticsOfFile(state, sourceFile2, cancellationToken)); - } - } - catch (e_622_1) { e_622 = { error: e_622_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_622) throw e_622.error; } - } - return diagnostics || emptyArray; - } -} -function addToAffectedFilesPendingEmit(state, affectedFilePendingEmit, kind) { - var _t; - var _a; - var existingKind = ((_a = state.affectedFilesPendingEmit) == null ? void 0 : _a.get(affectedFilePendingEmit)) || 0 /* None */; - ((_t = state.affectedFilesPendingEmit) !== null && _t !== void 0 ? _t : (state.affectedFilesPendingEmit = /* @__PURE__ */ new Map())).set(affectedFilePendingEmit, existingKind | kind); -} -function toBuilderStateFileInfoForMultiEmit(fileInfo) { - return isString(fileInfo) ? { version: fileInfo, signature: fileInfo, affectsGlobalScope: void 0, impliedFormat: void 0 } : isString(fileInfo.signature) ? fileInfo : { version: fileInfo.version, signature: fileInfo.signature === false ? void 0 : fileInfo.version, affectsGlobalScope: fileInfo.affectsGlobalScope, impliedFormat: fileInfo.impliedFormat }; -} -function toBuilderFileEmit(value, fullEmitForOptions) { - return isNumber(value) ? fullEmitForOptions : value[1] || 8 /* Dts */; -} -function toProgramEmitPending(value, options) { - return !value ? getBuilderFileEmit(options || {}) : value; -} -function createBuilderProgramUsingProgramBuildInfo(buildInfo, buildInfoPath, host) { - var _a, _b, _c, _d; - var program = buildInfo.program; - var buildInfoDirectory = getDirectoryPath(getNormalizedAbsolutePath(buildInfoPath, host.getCurrentDirectory())); - var getCanonicalFileName = createGetCanonicalFileName(host.useCaseSensitiveFileNames()); - var state; - var filePaths = (_a = program.fileNames) == null ? void 0 : _a.map(toPathInBuildInfoDirectory); - var filePathsSetList; - var latestChangedDtsFile = program.latestChangedDtsFile ? toAbsolutePath(program.latestChangedDtsFile) : void 0; - if (isProgramBundleEmitBuildInfo(program)) { - var fileInfos_1 = /* @__PURE__ */ new Map(); - program.fileInfos.forEach(function (fileInfo, index) { - var path = toFilePath(index + 1); - fileInfos_1.set(path, isString(fileInfo) ? { version: fileInfo, signature: void 0, affectsGlobalScope: void 0, impliedFormat: void 0 } : fileInfo); - }); - state = { - fileInfos: fileInfos_1, - compilerOptions: program.options ? convertToOptionsWithAbsolutePaths(program.options, toAbsolutePath) : {}, - latestChangedDtsFile: latestChangedDtsFile, - outSignature: program.outSignature, - programEmitPending: program.pendingEmit === void 0 ? void 0 : toProgramEmitPending(program.pendingEmit, program.options), - bundle: buildInfo.bundle - }; - } - else { - filePathsSetList = (_b = program.fileIdsList) == null ? void 0 : _b.map(function (fileIds) { return new Set(fileIds.map(toFilePath)); }); - var fileInfos_2 = /* @__PURE__ */ new Map(); - var emitSignatures_1 = ((_c = program.options) == null ? void 0 : _c.composite) && !outFile(program.options) ? /* @__PURE__ */ new Map() : void 0; - program.fileInfos.forEach(function (fileInfo, index) { - var path = toFilePath(index + 1); - var stateFileInfo = toBuilderStateFileInfoForMultiEmit(fileInfo); - fileInfos_2.set(path, stateFileInfo); - if (emitSignatures_1 && stateFileInfo.signature) - emitSignatures_1.set(path, stateFileInfo.signature); - }); - (_d = program.emitSignatures) == null ? void 0 : _d.forEach(function (value) { - if (isNumber(value)) - emitSignatures_1.delete(toFilePath(value)); - else { - var key = toFilePath(value[0]); - emitSignatures_1.set(key, !isString(value[1]) && !value[1].length ? ( - // File signature is emit signature but differs in map - [emitSignatures_1.get(key)]) : value[1]); - } - }); - var fullEmitForOptions_1 = program.affectedFilesPendingEmit ? getBuilderFileEmit(program.options || {}) : void 0; - state = { - fileInfos: fileInfos_2, - compilerOptions: program.options ? convertToOptionsWithAbsolutePaths(program.options, toAbsolutePath) : {}, - referencedMap: toManyToManyPathMap(program.referencedMap), - exportedModulesMap: toManyToManyPathMap(program.exportedModulesMap), - semanticDiagnosticsPerFile: program.semanticDiagnosticsPerFile && arrayToMap(program.semanticDiagnosticsPerFile, function (value) { return toFilePath(isNumber(value) ? value : value[0]); }, function (value) { return isNumber(value) ? emptyArray : value[1]; }), - hasReusableDiagnostic: true, - affectedFilesPendingEmit: program.affectedFilesPendingEmit && arrayToMap(program.affectedFilesPendingEmit, function (value) { return toFilePath(isNumber(value) ? value : value[0]); }, function (value) { return toBuilderFileEmit(value, fullEmitForOptions_1); }), - changedFilesSet: new Set(map(program.changeFileSet, toFilePath)), - latestChangedDtsFile: latestChangedDtsFile, - emitSignatures: (emitSignatures_1 == null ? void 0 : emitSignatures_1.size) ? emitSignatures_1 : void 0 - }; - } - return { - getState: function () { return state; }, - saveEmitState: noop, - restoreEmitState: noop, - getProgram: notImplemented, - getProgramOrUndefined: returnUndefined, - releaseProgram: noop, - getCompilerOptions: function () { return state.compilerOptions; }, - getSourceFile: notImplemented, - getSourceFiles: notImplemented, - getOptionsDiagnostics: notImplemented, - getGlobalDiagnostics: notImplemented, - getConfigFileParsingDiagnostics: notImplemented, - getSyntacticDiagnostics: notImplemented, - getDeclarationDiagnostics: notImplemented, - getSemanticDiagnostics: notImplemented, - emit: notImplemented, - getAllDependencies: notImplemented, - getCurrentDirectory: notImplemented, - emitNextAffectedFile: notImplemented, - getSemanticDiagnosticsOfNextAffectedFile: notImplemented, - emitBuildInfo: notImplemented, - close: noop, - hasChangedEmitSignature: returnFalse - }; - function toPathInBuildInfoDirectory(path) { - return toPath(path, buildInfoDirectory, getCanonicalFileName); - } - function toAbsolutePath(path) { - return getNormalizedAbsolutePath(path, buildInfoDirectory); - } - function toFilePath(fileId) { - return filePaths[fileId - 1]; - } - function toFilePathsSet(fileIdsListId) { - return filePathsSetList[fileIdsListId - 1]; - } - function toManyToManyPathMap(referenceMap) { - if (!referenceMap) { - return void 0; - } - var map2 = BuilderState.createManyToManyPathMap(); - referenceMap.forEach(function (_t) { - var _u = __read(_t, 2), fileId = _u[0], fileIdListId = _u[1]; - return map2.set(toFilePath(fileId), toFilePathsSet(fileIdListId)); - }); - return map2; - } -} -function getBuildInfoFileVersionMap(program, buildInfoPath, host) { - var buildInfoDirectory = getDirectoryPath(getNormalizedAbsolutePath(buildInfoPath, host.getCurrentDirectory())); - var getCanonicalFileName = createGetCanonicalFileName(host.useCaseSensitiveFileNames()); - var fileInfos = /* @__PURE__ */ new Map(); - var rootIndex = 0; - var roots = []; - program.fileInfos.forEach(function (fileInfo, index) { - var path = toPath(program.fileNames[index], buildInfoDirectory, getCanonicalFileName); - var version2 = isString(fileInfo) ? fileInfo : fileInfo.version; - fileInfos.set(path, version2); - if (rootIndex < program.root.length) { - var current = program.root[rootIndex]; - var fileId = index + 1; - if (isArray(current)) { - if (current[0] <= fileId && fileId <= current[1]) { - roots.push(path); - if (current[1] === fileId) - rootIndex++; - } - } - else if (current === fileId) { - roots.push(path); - rootIndex++; - } - } - }); - return { fileInfos: fileInfos, roots: roots }; -} -function createRedirectedBuilderProgram(getState, configFileParsingDiagnostics) { - return { - getState: notImplemented, - saveEmitState: noop, - restoreEmitState: noop, - getProgram: getProgram, - getProgramOrUndefined: function () { return getState().program; }, - releaseProgram: function () { return getState().program = void 0; }, - getCompilerOptions: function () { return getState().compilerOptions; }, - getSourceFile: function (fileName) { return getProgram().getSourceFile(fileName); }, - getSourceFiles: function () { return getProgram().getSourceFiles(); }, - getOptionsDiagnostics: function (cancellationToken) { return getProgram().getOptionsDiagnostics(cancellationToken); }, - getGlobalDiagnostics: function (cancellationToken) { return getProgram().getGlobalDiagnostics(cancellationToken); }, - getConfigFileParsingDiagnostics: function () { return configFileParsingDiagnostics; }, - getSyntacticDiagnostics: function (sourceFile, cancellationToken) { return getProgram().getSyntacticDiagnostics(sourceFile, cancellationToken); }, - getDeclarationDiagnostics: function (sourceFile, cancellationToken) { return getProgram().getDeclarationDiagnostics(sourceFile, cancellationToken); }, - getSemanticDiagnostics: function (sourceFile, cancellationToken) { return getProgram().getSemanticDiagnostics(sourceFile, cancellationToken); }, - emit: function (sourceFile, writeFile2, cancellationToken, emitOnlyDts, customTransformers) { return getProgram().emit(sourceFile, writeFile2, cancellationToken, emitOnlyDts, customTransformers); }, - emitBuildInfo: function (writeFile2, cancellationToken) { return getProgram().emitBuildInfo(writeFile2, cancellationToken); }, - getAllDependencies: notImplemented, - getCurrentDirectory: function () { return getProgram().getCurrentDirectory(); }, - close: noop - }; - function getProgram() { - return Debug.checkDefined(getState().program); - } -} -// src/compiler/builderPublic.ts -function createSemanticDiagnosticsBuilderProgram(newProgramOrRootNames, hostOrOptions, oldProgramOrHost, configFileParsingDiagnosticsOrOldProgram, configFileParsingDiagnostics, projectReferences) { - return createBuilderProgram(0 /* SemanticDiagnosticsBuilderProgram */, getBuilderCreationParameters(newProgramOrRootNames, hostOrOptions, oldProgramOrHost, configFileParsingDiagnosticsOrOldProgram, configFileParsingDiagnostics, projectReferences)); -} -function createEmitAndSemanticDiagnosticsBuilderProgram(newProgramOrRootNames, hostOrOptions, oldProgramOrHost, configFileParsingDiagnosticsOrOldProgram, configFileParsingDiagnostics, projectReferences) { - return createBuilderProgram(1 /* EmitAndSemanticDiagnosticsBuilderProgram */, getBuilderCreationParameters(newProgramOrRootNames, hostOrOptions, oldProgramOrHost, configFileParsingDiagnosticsOrOldProgram, configFileParsingDiagnostics, projectReferences)); -} -function createAbstractBuilder(newProgramOrRootNames, hostOrOptions, oldProgramOrHost, configFileParsingDiagnosticsOrOldProgram, configFileParsingDiagnostics, projectReferences) { - var _t = getBuilderCreationParameters(newProgramOrRootNames, hostOrOptions, oldProgramOrHost, configFileParsingDiagnosticsOrOldProgram, configFileParsingDiagnostics, projectReferences), newProgram = _t.newProgram, newConfigFileParsingDiagnostics = _t.configFileParsingDiagnostics; - return createRedirectedBuilderProgram(function () { return ({ program: newProgram, compilerOptions: newProgram.getCompilerOptions() }); }, newConfigFileParsingDiagnostics); -} -// src/compiler/resolutionCache.ts -function removeIgnoredPath(path) { - if (endsWith(path, "/node_modules/.staging")) { - return removeSuffix(path, "/.staging"); - } - return some(ignoredPaths, function (searchPath) { return stringContains(path, searchPath); }) ? void 0 : path; -} -function perceivedOsRootLengthForWatching(pathComponents2, length2) { - if (length2 <= 1) - return 1; - var userCheckIndex = 1; - var isDosStyle = pathComponents2[0].search(/[a-zA-Z]:/) === 0; - if (pathComponents2[0] !== directorySeparator && !isDosStyle && // Non dos style paths - pathComponents2[1].search(/[a-zA-Z]\$$/) === 0) { - if (length2 === 2) - return 2; - userCheckIndex = 2; - isDosStyle = true; - } - if (isDosStyle && !pathComponents2[userCheckIndex].match(/^users$/i)) { - return userCheckIndex; - } - return userCheckIndex + 2; -} -function canWatchDirectoryOrFile(pathComponents2, length2) { - if (length2 === void 0) - length2 = pathComponents2.length; - if (length2 <= 2) - return false; - var perceivedOsRootLength = perceivedOsRootLengthForWatching(pathComponents2, length2); - return length2 > perceivedOsRootLength + 1; -} -function canWatchAtTypes(atTypes) { - return canWatchAffectedPackageJsonOrNodeModulesOfAtTypes(getDirectoryPath(atTypes)); -} -function isInDirectoryPath(dirComponents, fileOrDirComponents) { - if (fileOrDirComponents.length < fileOrDirComponents.length) - return false; - for (var i = 0; i < dirComponents.length; i++) { - if (fileOrDirComponents[i] !== dirComponents[i]) - return false; - } - return true; -} -function canWatchAffectedPackageJsonOrNodeModulesOfAtTypes(fileOrDirPath) { - return canWatchDirectoryOrFile(getPathComponents(fileOrDirPath)); -} -function canWatchAffectingLocation(filePath) { - return canWatchAffectedPackageJsonOrNodeModulesOfAtTypes(filePath); -} -function getDirectoryToWatchFailedLookupLocation(failedLookupLocation, failedLookupLocationPath, rootDir, rootPath, rootPathComponents, getCurrentDirectory) { - var failedLookupPathComponents = getPathComponents(failedLookupLocationPath); - failedLookupLocation = isRootedDiskPath(failedLookupLocation) ? normalizePath(failedLookupLocation) : getNormalizedAbsolutePath(failedLookupLocation, getCurrentDirectory()); - var failedLookupComponents = getPathComponents(failedLookupLocation); - var perceivedOsRootLength = perceivedOsRootLengthForWatching(failedLookupPathComponents, failedLookupPathComponents.length); - if (failedLookupPathComponents.length <= perceivedOsRootLength + 1) - return void 0; - var nodeModulesIndex = failedLookupPathComponents.indexOf("node_modules"); - if (nodeModulesIndex !== -1 && nodeModulesIndex + 1 <= perceivedOsRootLength + 1) - return void 0; - if (isInDirectoryPath(rootPathComponents, failedLookupPathComponents)) { - if (failedLookupPathComponents.length > rootPathComponents.length + 1) { - return getDirectoryOfFailedLookupWatch(failedLookupComponents, failedLookupPathComponents, Math.max(rootPathComponents.length + 1, perceivedOsRootLength + 1)); - } - else { - return { - dir: rootDir, - dirPath: rootPath, - nonRecursive: true - }; - } - } - return getDirectoryToWatchFromFailedLookupLocationDirectory(failedLookupComponents, failedLookupPathComponents, failedLookupPathComponents.length - 1, perceivedOsRootLength, nodeModulesIndex, rootPathComponents); -} -function getDirectoryToWatchFromFailedLookupLocationDirectory(dirComponents, dirPathComponents, dirPathComponentsLength, perceivedOsRootLength, nodeModulesIndex, rootPathComponents) { - if (nodeModulesIndex !== -1) { - return getDirectoryOfFailedLookupWatch(dirComponents, dirPathComponents, nodeModulesIndex + 1); - } - var nonRecursive = true; - var length2 = dirPathComponentsLength; - for (var i = 0; i < dirPathComponentsLength; i++) { - if (dirPathComponents[i] !== rootPathComponents[i]) { - nonRecursive = false; - length2 = Math.max(i + 1, perceivedOsRootLength + 1); - break; - } - } - return getDirectoryOfFailedLookupWatch(dirComponents, dirPathComponents, length2, nonRecursive); -} -function getDirectoryOfFailedLookupWatch(dirComponents, dirPathComponents, length2, nonRecursive) { - return { - dir: getPathFromPathComponents(dirComponents, length2), - dirPath: getPathFromPathComponents(dirPathComponents, length2), - nonRecursive: nonRecursive - }; -} -function getDirectoryToWatchFailedLookupLocationFromTypeRoot(typeRoot, typeRootPath, rootPath, rootPathComponents, getCurrentDirectory, filterCustomPath) { - var typeRootPathComponents = getPathComponents(typeRootPath); - if (isInDirectoryPath(rootPathComponents, typeRootPathComponents)) { - return rootPath; - } - typeRoot = isRootedDiskPath(typeRoot) ? normalizePath(typeRoot) : getNormalizedAbsolutePath(typeRoot, getCurrentDirectory()); - var toWatch = getDirectoryToWatchFromFailedLookupLocationDirectory(getPathComponents(typeRoot), typeRootPathComponents, typeRootPathComponents.length, perceivedOsRootLengthForWatching(typeRootPathComponents, typeRootPathComponents.length), typeRootPathComponents.indexOf("node_modules"), rootPathComponents); - return toWatch && filterCustomPath(toWatch.dirPath) ? toWatch.dirPath : void 0; -} -function getRootDirectoryOfResolutionCache(rootDirForResolution, getCurrentDirectory) { - var normalized = getNormalizedAbsolutePath(rootDirForResolution, getCurrentDirectory()); - return !isDiskPathRoot(normalized) ? removeTrailingDirectorySeparator(normalized) : normalized; -} -function getRootPathSplitLength(rootPath) { - return rootPath.split(directorySeparator).length - (hasTrailingDirectorySeparator(rootPath) ? 1 : 0); -} -function createResolutionCache(resolutionHost, rootDirForResolution, logChangesWhenResolvingModule) { - var filesWithChangedSetOfUnresolvedImports; - var filesWithInvalidatedResolutions; - var filesWithInvalidatedNonRelativeUnresolvedImports; - var nonRelativeExternalModuleResolutions = createMultiMap(); - var resolutionsWithFailedLookups = /* @__PURE__ */ new Set(); - var resolutionsWithOnlyAffectingLocations = /* @__PURE__ */ new Set(); - var resolvedFileToResolution = /* @__PURE__ */ new Map(); - var impliedFormatPackageJsons = /* @__PURE__ */ new Map(); - var hasChangedAutomaticTypeDirectiveNames = false; - var affectingPathChecksForFile; - var affectingPathChecks; - var failedLookupChecks; - var startsWithPathChecks; - var isInDirectoryChecks; - var allModuleAndTypeResolutionsAreInvalidated = false; - var getCurrentDirectory = memoize(function () { return resolutionHost.getCurrentDirectory(); }); - var cachedDirectoryStructureHost = resolutionHost.getCachedDirectoryStructureHost(); - var resolvedModuleNames = /* @__PURE__ */ new Map(); - var moduleResolutionCache = createModuleResolutionCache(getCurrentDirectory(), resolutionHost.getCanonicalFileName, resolutionHost.getCompilationSettings()); - var resolvedTypeReferenceDirectives = /* @__PURE__ */ new Map(); - var typeReferenceDirectiveResolutionCache = createTypeReferenceDirectiveResolutionCache(getCurrentDirectory(), resolutionHost.getCanonicalFileName, resolutionHost.getCompilationSettings(), moduleResolutionCache.getPackageJsonInfoCache()); - var resolvedLibraries = /* @__PURE__ */ new Map(); - var libraryResolutionCache = createModuleResolutionCache(getCurrentDirectory(), resolutionHost.getCanonicalFileName, getOptionsForLibraryResolution(resolutionHost.getCompilationSettings()), moduleResolutionCache.getPackageJsonInfoCache()); - var directoryWatchesOfFailedLookups = /* @__PURE__ */ new Map(); - var fileWatchesOfAffectingLocations = /* @__PURE__ */ new Map(); - var rootDir = getRootDirectoryOfResolutionCache(rootDirForResolution, getCurrentDirectory); - var rootPath = resolutionHost.toPath(rootDir); - var rootPathComponents = getPathComponents(rootPath); - var typeRootsWatches = /* @__PURE__ */ new Map(); - return { - getModuleResolutionCache: function () { return moduleResolutionCache; }, - startRecordingFilesWithChangedResolutions: startRecordingFilesWithChangedResolutions, - finishRecordingFilesWithChangedResolutions: finishRecordingFilesWithChangedResolutions, - // perDirectoryResolvedModuleNames and perDirectoryResolvedTypeReferenceDirectives could be non empty if there was exception during program update - // (between startCachingPerDirectoryResolution and finishCachingPerDirectoryResolution) - startCachingPerDirectoryResolution: startCachingPerDirectoryResolution, - finishCachingPerDirectoryResolution: finishCachingPerDirectoryResolution, - resolveModuleNameLiterals: resolveModuleNameLiterals, - resolveTypeReferenceDirectiveReferences: resolveTypeReferenceDirectiveReferences, - resolveLibrary: resolveLibrary2, - resolveSingleModuleNameWithoutWatching: resolveSingleModuleNameWithoutWatching, - removeResolutionsFromProjectReferenceRedirects: removeResolutionsFromProjectReferenceRedirects, - removeResolutionsOfFile: removeResolutionsOfFile, - hasChangedAutomaticTypeDirectiveNames: function () { return hasChangedAutomaticTypeDirectiveNames; }, - invalidateResolutionOfFile: invalidateResolutionOfFile, - invalidateResolutionsOfFailedLookupLocations: invalidateResolutionsOfFailedLookupLocations, - setFilesWithInvalidatedNonRelativeUnresolvedImports: setFilesWithInvalidatedNonRelativeUnresolvedImports, - createHasInvalidatedResolutions: createHasInvalidatedResolutions, - isFileWithInvalidatedNonRelativeUnresolvedImports: isFileWithInvalidatedNonRelativeUnresolvedImports, - updateTypeRootsWatch: updateTypeRootsWatch, - closeTypeRootsWatch: closeTypeRootsWatch, - clear: clear2, - onChangesAffectModuleResolution: onChangesAffectModuleResolution - }; - function getResolvedModule2(resolution) { - return resolution.resolvedModule; - } - function getResolvedTypeReferenceDirective2(resolution) { - return resolution.resolvedTypeReferenceDirective; - } - function clear2() { - clearMap(directoryWatchesOfFailedLookups, closeFileWatcherOf); - clearMap(fileWatchesOfAffectingLocations, closeFileWatcherOf); - nonRelativeExternalModuleResolutions.clear(); - closeTypeRootsWatch(); - resolvedModuleNames.clear(); - resolvedTypeReferenceDirectives.clear(); - resolvedFileToResolution.clear(); - resolutionsWithFailedLookups.clear(); - resolutionsWithOnlyAffectingLocations.clear(); - failedLookupChecks = void 0; - startsWithPathChecks = void 0; - isInDirectoryChecks = void 0; - affectingPathChecks = void 0; - affectingPathChecksForFile = void 0; - allModuleAndTypeResolutionsAreInvalidated = false; - moduleResolutionCache.clear(); - typeReferenceDirectiveResolutionCache.clear(); - moduleResolutionCache.update(resolutionHost.getCompilationSettings()); - typeReferenceDirectiveResolutionCache.update(resolutionHost.getCompilationSettings()); - libraryResolutionCache.clear(); - impliedFormatPackageJsons.clear(); - resolvedLibraries.clear(); - hasChangedAutomaticTypeDirectiveNames = false; - } - function onChangesAffectModuleResolution() { - allModuleAndTypeResolutionsAreInvalidated = true; - moduleResolutionCache.clearAllExceptPackageJsonInfoCache(); - typeReferenceDirectiveResolutionCache.clearAllExceptPackageJsonInfoCache(); - moduleResolutionCache.update(resolutionHost.getCompilationSettings()); - typeReferenceDirectiveResolutionCache.update(resolutionHost.getCompilationSettings()); - } - function startRecordingFilesWithChangedResolutions() { - filesWithChangedSetOfUnresolvedImports = []; - } - function finishRecordingFilesWithChangedResolutions() { - var collected = filesWithChangedSetOfUnresolvedImports; - filesWithChangedSetOfUnresolvedImports = void 0; - return collected; - } - function isFileWithInvalidatedNonRelativeUnresolvedImports(path) { - if (!filesWithInvalidatedNonRelativeUnresolvedImports) { - return false; - } - var value = filesWithInvalidatedNonRelativeUnresolvedImports.get(path); - return !!value && !!value.length; - } - function createHasInvalidatedResolutions(customHasInvalidatedResolutions, customHasInvalidatedLibResolutions) { - invalidateResolutionsOfFailedLookupLocations(); - var collected = filesWithInvalidatedResolutions; - filesWithInvalidatedResolutions = void 0; - return { - hasInvalidatedResolutions: function (path) { return customHasInvalidatedResolutions(path) || allModuleAndTypeResolutionsAreInvalidated || !!(collected == null ? void 0 : collected.has(path)) || isFileWithInvalidatedNonRelativeUnresolvedImports(path); }, - hasInvalidatedLibResolutions: function (libFileName) { - var _a; - return customHasInvalidatedLibResolutions(libFileName) || !!((_a = resolvedLibraries == null ? void 0 : resolvedLibraries.get(libFileName)) == null ? void 0 : _a.isInvalidated); - } - }; - } - function startCachingPerDirectoryResolution() { - moduleResolutionCache.clearAllExceptPackageJsonInfoCache(); - typeReferenceDirectiveResolutionCache.clearAllExceptPackageJsonInfoCache(); - libraryResolutionCache.clearAllExceptPackageJsonInfoCache(); - nonRelativeExternalModuleResolutions.forEach(watchFailedLookupLocationOfNonRelativeModuleResolutions); - nonRelativeExternalModuleResolutions.clear(); - } - function cleanupLibResolutionWatching(newProgram) { - resolvedLibraries.forEach(function (resolution, libFileName) { - var _a; - if (!((_a = newProgram == null ? void 0 : newProgram.resolvedLibReferences) == null ? void 0 : _a.has(libFileName))) { - stopWatchFailedLookupLocationOfResolution(resolution, resolutionHost.toPath(getInferredLibraryNameResolveFrom(newProgram.getCompilerOptions(), getCurrentDirectory(), libFileName)), getResolvedModule2); - resolvedLibraries.delete(libFileName); - } - }); - } - function finishCachingPerDirectoryResolution(newProgram, oldProgram) { - filesWithInvalidatedNonRelativeUnresolvedImports = void 0; - allModuleAndTypeResolutionsAreInvalidated = false; - nonRelativeExternalModuleResolutions.forEach(watchFailedLookupLocationOfNonRelativeModuleResolutions); - nonRelativeExternalModuleResolutions.clear(); - if (newProgram !== oldProgram) { - cleanupLibResolutionWatching(newProgram); - newProgram == null ? void 0 : newProgram.getSourceFiles().forEach(function (newFile) { - var _t, _u; - var _a; - var expected = isExternalOrCommonJsModule(newFile) ? (_t = ((_a = newFile.packageJsonLocations) == null ? void 0 : _a.length)) !== null && _t !== void 0 ? _t : 0 : 0; - var existing = (_u = impliedFormatPackageJsons.get(newFile.path)) !== null && _u !== void 0 ? _u : emptyArray; - for (var i = existing.length; i < expected; i++) { - createFileWatcherOfAffectingLocation(newFile.packageJsonLocations[i], - /*forResolution*/ - false); - } - if (existing.length > expected) { - for (var i = expected; i < existing.length; i++) { - fileWatchesOfAffectingLocations.get(existing[i]).files--; - } - } - if (expected) - impliedFormatPackageJsons.set(newFile.path, newFile.packageJsonLocations); - else - impliedFormatPackageJsons.delete(newFile.path); - }); - impliedFormatPackageJsons.forEach(function (existing, path) { - if (!(newProgram == null ? void 0 : newProgram.getSourceFileByPath(path))) { - existing.forEach(function (location) { return fileWatchesOfAffectingLocations.get(location).files--; }); - impliedFormatPackageJsons.delete(path); - } - }); - } - directoryWatchesOfFailedLookups.forEach(function (watcher, path) { - if (watcher.refCount === 0) { - directoryWatchesOfFailedLookups.delete(path); - watcher.watcher.close(); - } - }); - fileWatchesOfAffectingLocations.forEach(function (watcher, path) { - if (watcher.files === 0 && watcher.resolutions === 0) { - fileWatchesOfAffectingLocations.delete(path); - watcher.watcher.close(); - } - }); - hasChangedAutomaticTypeDirectiveNames = false; - } - function resolveModuleName2(moduleName, containingFile, compilerOptions, redirectedReference, mode) { - var _a; - var host = ((_a = resolutionHost.getCompilerHost) == null ? void 0 : _a.call(resolutionHost)) || resolutionHost; - var primaryResult = resolveModuleName(moduleName, containingFile, compilerOptions, host, moduleResolutionCache, redirectedReference, mode); - if (!resolutionHost.getGlobalCache) { - return primaryResult; - } - var globalCache = resolutionHost.getGlobalCache(); - if (globalCache !== void 0 && !isExternalModuleNameRelative(moduleName) && !(primaryResult.resolvedModule && extensionIsTS(primaryResult.resolvedModule.extension))) { - var _t = loadModuleFromGlobalCache(Debug.checkDefined(resolutionHost.globalCacheResolutionModuleName)(moduleName), resolutionHost.projectName, compilerOptions, host, globalCache, moduleResolutionCache), resolvedModule = _t.resolvedModule, failedLookupLocations = _t.failedLookupLocations, affectingLocations = _t.affectingLocations, resolutionDiagnostics = _t.resolutionDiagnostics; - if (resolvedModule) { - primaryResult.resolvedModule = resolvedModule; - primaryResult.failedLookupLocations = updateResolutionField(primaryResult.failedLookupLocations, failedLookupLocations); - primaryResult.affectingLocations = updateResolutionField(primaryResult.affectingLocations, affectingLocations); - primaryResult.resolutionDiagnostics = updateResolutionField(primaryResult.resolutionDiagnostics, resolutionDiagnostics); - return primaryResult; - } - } - return primaryResult; - } - function createModuleResolutionLoader2(containingFile, redirectedReference, options) { - return { - nameAndMode: moduleResolutionNameAndModeGetter, - resolve: function (moduleName, resoluionMode) { return resolveModuleName2(moduleName, containingFile, options, redirectedReference, resoluionMode); } - }; - } - function resolveNamesWithLocalCache(_t) { - var e_623, _u; - var entries = _t.entries, containingFile = _t.containingFile, containingSourceFile = _t.containingSourceFile, redirectedReference = _t.redirectedReference, options = _t.options, perFileCache = _t.perFileCache, reusedNames = _t.reusedNames, loader = _t.loader, getResolutionWithResolvedFileName = _t.getResolutionWithResolvedFileName, deferWatchingNonRelativeResolution = _t.deferWatchingNonRelativeResolution, shouldRetryResolution = _t.shouldRetryResolution, logChanges = _t.logChanges; - var _a; - var path = resolutionHost.toPath(containingFile); - var resolutionsInFile = perFileCache.get(path) || perFileCache.set(path, createModeAwareCache()).get(path); - var resolvedModules = []; - var hasInvalidatedNonRelativeUnresolvedImport = logChanges && isFileWithInvalidatedNonRelativeUnresolvedImports(path); - var program = resolutionHost.getCurrentProgram(); - var oldRedirect = program && program.getResolvedProjectReferenceToRedirect(containingFile); - var unmatchedRedirects = oldRedirect ? !redirectedReference || redirectedReference.sourceFile.path !== oldRedirect.sourceFile.path : !!redirectedReference; - var seenNamesInFile = createModeAwareCache(); - try { - for (var entries_4 = __values(entries), entries_4_1 = entries_4.next(); !entries_4_1.done; entries_4_1 = entries_4.next()) { - var entry = entries_4_1.value; - var name_98 = loader.nameAndMode.getName(entry); - var mode = loader.nameAndMode.getMode(entry, containingSourceFile); - var resolution = resolutionsInFile.get(name_98, mode); - if (!seenNamesInFile.has(name_98, mode) && (allModuleAndTypeResolutionsAreInvalidated || unmatchedRedirects || !resolution || resolution.isInvalidated || // If the name is unresolved import that was invalidated, recalculate - hasInvalidatedNonRelativeUnresolvedImport && !isExternalModuleNameRelative(name_98) && shouldRetryResolution(resolution))) { - var existingResolution = resolution; - resolution = loader.resolve(name_98, mode); - if (resolutionHost.onDiscoveredSymlink && resolutionIsSymlink(resolution)) { - resolutionHost.onDiscoveredSymlink(); - } - resolutionsInFile.set(name_98, mode, resolution); - watchFailedLookupLocationsOfExternalModuleResolutions(name_98, resolution, path, getResolutionWithResolvedFileName, deferWatchingNonRelativeResolution); - if (existingResolution) { - stopWatchFailedLookupLocationOfResolution(existingResolution, path, getResolutionWithResolvedFileName); - } - if (logChanges && filesWithChangedSetOfUnresolvedImports && !resolutionIsEqualTo(existingResolution, resolution)) { - filesWithChangedSetOfUnresolvedImports.push(path); - logChanges = false; - } - } - else { - var host = ((_a = resolutionHost.getCompilerHost) == null ? void 0 : _a.call(resolutionHost)) || resolutionHost; - if (isTraceEnabled(options, host) && !seenNamesInFile.has(name_98, mode)) { - var resolved = getResolutionWithResolvedFileName(resolution); - trace(host, perFileCache === resolvedModuleNames ? (resolved == null ? void 0 : resolved.resolvedFileName) ? resolved.packageId ? Diagnostics.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3 : Diagnostics.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2 : Diagnostics.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_not_resolved : (resolved == null ? void 0 : resolved.resolvedFileName) ? resolved.packageId ? Diagnostics.Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3 : Diagnostics.Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2 : Diagnostics.Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_not_resolved, name_98, containingFile, resolved == null ? void 0 : resolved.resolvedFileName, (resolved == null ? void 0 : resolved.packageId) && packageIdToString(resolved.packageId)); - } - } - Debug.assert(resolution !== void 0 && !resolution.isInvalidated); - seenNamesInFile.set(name_98, mode, true); - resolvedModules.push(resolution); - } - } - catch (e_623_1) { e_623 = { error: e_623_1 }; } - finally { - try { - if (entries_4_1 && !entries_4_1.done && (_u = entries_4.return)) _u.call(entries_4); - } - finally { if (e_623) throw e_623.error; } - } - reusedNames == null ? void 0 : reusedNames.forEach(function (entry) { return seenNamesInFile.set(loader.nameAndMode.getName(entry), loader.nameAndMode.getMode(entry, containingSourceFile), true); }); - if (resolutionsInFile.size() !== seenNamesInFile.size()) { - resolutionsInFile.forEach(function (resolution, name, mode) { - if (!seenNamesInFile.has(name, mode)) { - stopWatchFailedLookupLocationOfResolution(resolution, path, getResolutionWithResolvedFileName); - resolutionsInFile.delete(name, mode); - } - }); - } - return resolvedModules; - function resolutionIsEqualTo(oldResolution, newResolution) { - if (oldResolution === newResolution) { - return true; - } - if (!oldResolution || !newResolution) { - return false; - } - var oldResult = getResolutionWithResolvedFileName(oldResolution); - var newResult = getResolutionWithResolvedFileName(newResolution); - if (oldResult === newResult) { - return true; - } - if (!oldResult || !newResult) { - return false; - } - return oldResult.resolvedFileName === newResult.resolvedFileName; - } - } - function resolveTypeReferenceDirectiveReferences(typeDirectiveReferences, containingFile, redirectedReference, options, containingSourceFile, reusedNames) { - var _a; - return resolveNamesWithLocalCache({ - entries: typeDirectiveReferences, - containingFile: containingFile, - containingSourceFile: containingSourceFile, - redirectedReference: redirectedReference, - options: options, - reusedNames: reusedNames, - perFileCache: resolvedTypeReferenceDirectives, - loader: createTypeReferenceResolutionLoader(containingFile, redirectedReference, options, ((_a = resolutionHost.getCompilerHost) == null ? void 0 : _a.call(resolutionHost)) || resolutionHost, typeReferenceDirectiveResolutionCache), - getResolutionWithResolvedFileName: getResolvedTypeReferenceDirective2, - shouldRetryResolution: function (resolution) { return resolution.resolvedTypeReferenceDirective === void 0; }, - deferWatchingNonRelativeResolution: false - }); - } - function resolveModuleNameLiterals(moduleLiterals, containingFile, redirectedReference, options, containingSourceFile, reusedNames) { - return resolveNamesWithLocalCache({ - entries: moduleLiterals, - containingFile: containingFile, - containingSourceFile: containingSourceFile, - redirectedReference: redirectedReference, - options: options, - reusedNames: reusedNames, - perFileCache: resolvedModuleNames, - loader: createModuleResolutionLoader2(containingFile, redirectedReference, options), - getResolutionWithResolvedFileName: getResolvedModule2, - shouldRetryResolution: function (resolution) { return !resolution.resolvedModule || !resolutionExtensionIsTSOrJson(resolution.resolvedModule.extension); }, - logChanges: logChangesWhenResolvingModule, - deferWatchingNonRelativeResolution: true - // Defer non relative resolution watch because we could be using ambient modules - }); - } - function resolveLibrary2(libraryName, resolveFrom, options, libFileName) { - var _a; - var host = ((_a = resolutionHost.getCompilerHost) == null ? void 0 : _a.call(resolutionHost)) || resolutionHost; - var resolution = resolvedLibraries == null ? void 0 : resolvedLibraries.get(libFileName); - if (!resolution || resolution.isInvalidated) { - var existingResolution = resolution; - resolution = resolveLibrary(libraryName, resolveFrom, options, host, libraryResolutionCache); - var path = resolutionHost.toPath(resolveFrom); - watchFailedLookupLocationsOfExternalModuleResolutions(libraryName, resolution, path, getResolvedModule2, - /*deferWatchingNonRelativeResolution*/ - false); - resolvedLibraries.set(libFileName, resolution); - if (existingResolution) { - stopWatchFailedLookupLocationOfResolution(existingResolution, path, getResolvedModule2); - } - } - else { - if (isTraceEnabled(options, host)) { - var resolved = getResolvedModule2(resolution); - trace(host, (resolved == null ? void 0 : resolved.resolvedFileName) ? resolved.packageId ? Diagnostics.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3 : Diagnostics.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2 : Diagnostics.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_not_resolved, libraryName, resolveFrom, resolved == null ? void 0 : resolved.resolvedFileName, (resolved == null ? void 0 : resolved.packageId) && packageIdToString(resolved.packageId)); - } - } - return resolution; - } - function resolveSingleModuleNameWithoutWatching(moduleName, containingFile) { - var path = resolutionHost.toPath(containingFile); - var resolutionsInFile = resolvedModuleNames.get(path); - var resolution = resolutionsInFile == null ? void 0 : resolutionsInFile.get(moduleName, - /*mode*/ - void 0); - if (resolution && !resolution.isInvalidated) - return resolution; - return resolveModuleName2(moduleName, containingFile, resolutionHost.getCompilationSettings()); - } - function isNodeModulesAtTypesDirectory(dirPath) { - return endsWith(dirPath, "/node_modules/@types"); - } - function watchFailedLookupLocationsOfExternalModuleResolutions(name, resolution, filePath, getResolutionWithResolvedFileName, deferWatchingNonRelativeResolution) { - var _t; - var _a; - if (resolution.refCount) { - resolution.refCount++; - Debug.assertIsDefined(resolution.files); - } - else { - resolution.refCount = 1; - Debug.assert(!((_a = resolution.files) == null ? void 0 : _a.size)); - if (!deferWatchingNonRelativeResolution || isExternalModuleNameRelative(name)) { - watchFailedLookupLocationOfResolution(resolution); - } - else { - nonRelativeExternalModuleResolutions.add(name, resolution); - } - var resolved = getResolutionWithResolvedFileName(resolution); - if (resolved && resolved.resolvedFileName) { - var key = resolutionHost.toPath(resolved.resolvedFileName); - var resolutions = resolvedFileToResolution.get(key); - if (!resolutions) - resolvedFileToResolution.set(key, resolutions = /* @__PURE__ */ new Set()); - resolutions.add(resolution); - } - } - ((_t = resolution.files) !== null && _t !== void 0 ? _t : (resolution.files = /* @__PURE__ */ new Set())).add(filePath); - } - function watchFailedLookupLocation(failedLookupLocation, setAtRoot) { - var failedLookupLocationPath = resolutionHost.toPath(failedLookupLocation); - var toWatch = getDirectoryToWatchFailedLookupLocation(failedLookupLocation, failedLookupLocationPath, rootDir, rootPath, rootPathComponents, getCurrentDirectory); - if (toWatch) { - var dir = toWatch.dir, dirPath = toWatch.dirPath, nonRecursive = toWatch.nonRecursive; - if (dirPath === rootPath) { - Debug.assert(nonRecursive); - setAtRoot = true; - } - else { - setDirectoryWatcher(dir, dirPath, nonRecursive); - } - } - return setAtRoot; - } - function watchFailedLookupLocationOfResolution(resolution) { - var e_624, _t; - Debug.assert(!!resolution.refCount); - var failedLookupLocations = resolution.failedLookupLocations, affectingLocations = resolution.affectingLocations, node10Result = resolution.node10Result; - if (!(failedLookupLocations == null ? void 0 : failedLookupLocations.length) && !(affectingLocations == null ? void 0 : affectingLocations.length) && !node10Result) - return; - if ((failedLookupLocations == null ? void 0 : failedLookupLocations.length) || node10Result) - resolutionsWithFailedLookups.add(resolution); - var setAtRoot = false; - if (failedLookupLocations) { - try { - for (var failedLookupLocations_1 = __values(failedLookupLocations), failedLookupLocations_1_1 = failedLookupLocations_1.next(); !failedLookupLocations_1_1.done; failedLookupLocations_1_1 = failedLookupLocations_1.next()) { - var failedLookupLocation = failedLookupLocations_1_1.value; - setAtRoot = watchFailedLookupLocation(failedLookupLocation, setAtRoot); - } - } - catch (e_624_1) { e_624 = { error: e_624_1 }; } - finally { - try { - if (failedLookupLocations_1_1 && !failedLookupLocations_1_1.done && (_t = failedLookupLocations_1.return)) _t.call(failedLookupLocations_1); - } - finally { if (e_624) throw e_624.error; } - } - } - if (node10Result) - setAtRoot = watchFailedLookupLocation(node10Result, setAtRoot); - if (setAtRoot) { - setDirectoryWatcher(rootDir, rootPath, - /*nonRecursive*/ - true); - } - watchAffectingLocationsOfResolution(resolution, !(failedLookupLocations == null ? void 0 : failedLookupLocations.length) && !node10Result); - } - function watchAffectingLocationsOfResolution(resolution, addToResolutionsWithOnlyAffectingLocations) { - var e_625, _t; - Debug.assert(!!resolution.refCount); - var affectingLocations = resolution.affectingLocations; - if (!(affectingLocations == null ? void 0 : affectingLocations.length)) - return; - if (addToResolutionsWithOnlyAffectingLocations) - resolutionsWithOnlyAffectingLocations.add(resolution); - try { - for (var affectingLocations_1 = __values(affectingLocations), affectingLocations_1_1 = affectingLocations_1.next(); !affectingLocations_1_1.done; affectingLocations_1_1 = affectingLocations_1.next()) { - var affectingLocation = affectingLocations_1_1.value; - createFileWatcherOfAffectingLocation(affectingLocation, - /*forResolution*/ - true); - } - } - catch (e_625_1) { e_625 = { error: e_625_1 }; } - finally { - try { - if (affectingLocations_1_1 && !affectingLocations_1_1.done && (_t = affectingLocations_1.return)) _t.call(affectingLocations_1); - } - finally { if (e_625) throw e_625.error; } - } - } - function createFileWatcherOfAffectingLocation(affectingLocation, forResolution) { - var fileWatcher = fileWatchesOfAffectingLocations.get(affectingLocation); - if (fileWatcher) { - if (forResolution) - fileWatcher.resolutions++; - else - fileWatcher.files++; - return; - } - var locationToWatch = affectingLocation; - if (resolutionHost.realpath) { - locationToWatch = resolutionHost.realpath(affectingLocation); - if (affectingLocation !== locationToWatch) { - var fileWatcher2 = fileWatchesOfAffectingLocations.get(locationToWatch); - if (fileWatcher2) { - if (forResolution) - fileWatcher2.resolutions++; - else - fileWatcher2.files++; - fileWatcher2.paths.add(affectingLocation); - fileWatchesOfAffectingLocations.set(affectingLocation, fileWatcher2); - return; - } - } - } - var paths = /* @__PURE__ */ new Set(); - paths.add(locationToWatch); - var actualWatcher = canWatchAffectingLocation(resolutionHost.toPath(locationToWatch)) ? resolutionHost.watchAffectingFileLocation(locationToWatch, function (fileName, eventKind) { - cachedDirectoryStructureHost == null ? void 0 : cachedDirectoryStructureHost.addOrDeleteFile(fileName, resolutionHost.toPath(locationToWatch), eventKind); - var packageJsonMap = moduleResolutionCache.getPackageJsonInfoCache().getInternalMap(); - paths.forEach(function (path) { - if (watcher.resolutions) - (affectingPathChecks !== null && affectingPathChecks !== void 0 ? affectingPathChecks : (affectingPathChecks = /* @__PURE__ */ new Set())).add(path); - if (watcher.files) - (affectingPathChecksForFile !== null && affectingPathChecksForFile !== void 0 ? affectingPathChecksForFile : (affectingPathChecksForFile = /* @__PURE__ */ new Set())).add(path); - packageJsonMap == null ? void 0 : packageJsonMap.delete(resolutionHost.toPath(path)); - }); - resolutionHost.scheduleInvalidateResolutionsOfFailedLookupLocations(); - }) : noopFileWatcher; - var watcher = { - watcher: actualWatcher !== noopFileWatcher ? { - close: function () { - actualWatcher.close(); - actualWatcher = noopFileWatcher; - } - } : actualWatcher, - resolutions: forResolution ? 1 : 0, - files: forResolution ? 0 : 1, - paths: paths - }; - fileWatchesOfAffectingLocations.set(locationToWatch, watcher); - if (affectingLocation !== locationToWatch) { - fileWatchesOfAffectingLocations.set(affectingLocation, watcher); - paths.add(affectingLocation); - } - } - function watchFailedLookupLocationOfNonRelativeModuleResolutions(resolutions, name) { - var program = resolutionHost.getCurrentProgram(); - if (!program || !program.getTypeChecker().tryFindAmbientModuleWithoutAugmentations(name)) { - resolutions.forEach(watchFailedLookupLocationOfResolution); - } - else { - resolutions.forEach(function (resolution) { return watchAffectingLocationsOfResolution(resolution, - /*addToResolutionsWithOnlyAffectingLocations*/ - true); }); - } - } - function setDirectoryWatcher(dir, dirPath, nonRecursive) { - var dirWatcher = directoryWatchesOfFailedLookups.get(dirPath); - if (dirWatcher) { - Debug.assert(!!nonRecursive === !!dirWatcher.nonRecursive); - dirWatcher.refCount++; - } - else { - directoryWatchesOfFailedLookups.set(dirPath, { watcher: createDirectoryWatcher(dir, dirPath, nonRecursive), refCount: 1, nonRecursive: nonRecursive }); - } - } - function stopWatchFailedLookupLocation(failedLookupLocation, removeAtRoot) { - var failedLookupLocationPath = resolutionHost.toPath(failedLookupLocation); - var toWatch = getDirectoryToWatchFailedLookupLocation(failedLookupLocation, failedLookupLocationPath, rootDir, rootPath, rootPathComponents, getCurrentDirectory); - if (toWatch) { - var dirPath = toWatch.dirPath; - if (dirPath === rootPath) { - removeAtRoot = true; - } - else { - removeDirectoryWatcher(dirPath); - } - } - return removeAtRoot; - } - function stopWatchFailedLookupLocationOfResolution(resolution, filePath, getResolutionWithResolvedFileName) { - var e_626, _t, e_627, _u; - Debug.checkDefined(resolution.files).delete(filePath); - resolution.refCount--; - if (resolution.refCount) { - return; - } - var resolved = getResolutionWithResolvedFileName(resolution); - if (resolved && resolved.resolvedFileName) { - var key = resolutionHost.toPath(resolved.resolvedFileName); - var resolutions = resolvedFileToResolution.get(key); - if ((resolutions == null ? void 0 : resolutions.delete(resolution)) && !resolutions.size) - resolvedFileToResolution.delete(key); - } - var failedLookupLocations = resolution.failedLookupLocations, affectingLocations = resolution.affectingLocations, node10Result = resolution.node10Result; - if (resolutionsWithFailedLookups.delete(resolution)) { - var removeAtRoot = false; - if (failedLookupLocations) { - try { - for (var failedLookupLocations_2 = __values(failedLookupLocations), failedLookupLocations_2_1 = failedLookupLocations_2.next(); !failedLookupLocations_2_1.done; failedLookupLocations_2_1 = failedLookupLocations_2.next()) { - var failedLookupLocation = failedLookupLocations_2_1.value; - removeAtRoot = stopWatchFailedLookupLocation(failedLookupLocation, removeAtRoot); - } - } - catch (e_626_1) { e_626 = { error: e_626_1 }; } - finally { - try { - if (failedLookupLocations_2_1 && !failedLookupLocations_2_1.done && (_t = failedLookupLocations_2.return)) _t.call(failedLookupLocations_2); - } - finally { if (e_626) throw e_626.error; } - } - } - if (node10Result) - removeAtRoot = stopWatchFailedLookupLocation(node10Result, removeAtRoot); - if (removeAtRoot) - removeDirectoryWatcher(rootPath); - } - else if (affectingLocations == null ? void 0 : affectingLocations.length) { - resolutionsWithOnlyAffectingLocations.delete(resolution); - } - if (affectingLocations) { - try { - for (var affectingLocations_2 = __values(affectingLocations), affectingLocations_2_1 = affectingLocations_2.next(); !affectingLocations_2_1.done; affectingLocations_2_1 = affectingLocations_2.next()) { - var affectingLocation = affectingLocations_2_1.value; - var watcher = fileWatchesOfAffectingLocations.get(affectingLocation); - watcher.resolutions--; - } - } - catch (e_627_1) { e_627 = { error: e_627_1 }; } - finally { - try { - if (affectingLocations_2_1 && !affectingLocations_2_1.done && (_u = affectingLocations_2.return)) _u.call(affectingLocations_2); - } - finally { if (e_627) throw e_627.error; } - } - } - } - function removeDirectoryWatcher(dirPath) { - var dirWatcher = directoryWatchesOfFailedLookups.get(dirPath); - dirWatcher.refCount--; - } - function createDirectoryWatcher(directory, dirPath, nonRecursive) { - return resolutionHost.watchDirectoryOfFailedLookupLocation(directory, function (fileOrDirectory) { - var fileOrDirectoryPath = resolutionHost.toPath(fileOrDirectory); - if (cachedDirectoryStructureHost) { - cachedDirectoryStructureHost.addOrDeleteFileOrDirectory(fileOrDirectory, fileOrDirectoryPath); - } - scheduleInvalidateResolutionOfFailedLookupLocation(fileOrDirectoryPath, dirPath === fileOrDirectoryPath); - }, nonRecursive ? 0 /* None */ : 1 /* Recursive */); - } - function removeResolutionsOfFileFromCache(cache, filePath, getResolutionWithResolvedFileName) { - var resolutions = cache.get(filePath); - if (resolutions) { - resolutions.forEach(function (resolution) { return stopWatchFailedLookupLocationOfResolution(resolution, filePath, getResolutionWithResolvedFileName); }); - cache.delete(filePath); - } - } - function removeResolutionsFromProjectReferenceRedirects(filePath) { - if (!fileExtensionIs(filePath, ".json" /* Json */)) - return; - var program = resolutionHost.getCurrentProgram(); - if (!program) - return; - var resolvedProjectReference = program.getResolvedProjectReferenceByPath(filePath); - if (!resolvedProjectReference) - return; - resolvedProjectReference.commandLine.fileNames.forEach(function (f) { return removeResolutionsOfFile(resolutionHost.toPath(f)); }); - } - function removeResolutionsOfFile(filePath) { - removeResolutionsOfFileFromCache(resolvedModuleNames, filePath, getResolvedModule2); - removeResolutionsOfFileFromCache(resolvedTypeReferenceDirectives, filePath, getResolvedTypeReferenceDirective2); - } - function invalidateResolutions(resolutions, canInvalidate) { - if (!resolutions) - return false; - var invalidated = false; - resolutions.forEach(function (resolution) { - var e_628, _t; - if (resolution.isInvalidated || !canInvalidate(resolution)) - return; - resolution.isInvalidated = invalidated = true; - try { - for (var _u = __values(Debug.checkDefined(resolution.files)), _v = _u.next(); !_v.done; _v = _u.next()) { - var containingFilePath = _v.value; - (filesWithInvalidatedResolutions !== null && filesWithInvalidatedResolutions !== void 0 ? filesWithInvalidatedResolutions : (filesWithInvalidatedResolutions = /* @__PURE__ */ new Set())).add(containingFilePath); - hasChangedAutomaticTypeDirectiveNames = hasChangedAutomaticTypeDirectiveNames || endsWith(containingFilePath, inferredTypesContainingFile); - } - } - catch (e_628_1) { e_628 = { error: e_628_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_628) throw e_628.error; } - } - }); - return invalidated; - } - function invalidateResolutionOfFile(filePath) { - removeResolutionsOfFile(filePath); - var prevHasChangedAutomaticTypeDirectiveNames = hasChangedAutomaticTypeDirectiveNames; - if (invalidateResolutions(resolvedFileToResolution.get(filePath), returnTrue) && hasChangedAutomaticTypeDirectiveNames && !prevHasChangedAutomaticTypeDirectiveNames) { - resolutionHost.onChangedAutomaticTypeDirectiveNames(); - } - } - function setFilesWithInvalidatedNonRelativeUnresolvedImports(filesMap) { - Debug.assert(filesWithInvalidatedNonRelativeUnresolvedImports === filesMap || filesWithInvalidatedNonRelativeUnresolvedImports === void 0); - filesWithInvalidatedNonRelativeUnresolvedImports = filesMap; - } - function scheduleInvalidateResolutionOfFailedLookupLocation(fileOrDirectoryPath, isCreatingWatchedDirectory) { - if (isCreatingWatchedDirectory) { - (isInDirectoryChecks || (isInDirectoryChecks = /* @__PURE__ */ new Set())).add(fileOrDirectoryPath); - } - else { - var updatedPath = removeIgnoredPath(fileOrDirectoryPath); - if (!updatedPath) - return false; - fileOrDirectoryPath = updatedPath; - if (resolutionHost.fileIsOpen(fileOrDirectoryPath)) { - return false; - } - var dirOfFileOrDirectory = getDirectoryPath(fileOrDirectoryPath); - if (isNodeModulesAtTypesDirectory(fileOrDirectoryPath) || isNodeModulesDirectory(fileOrDirectoryPath) || isNodeModulesAtTypesDirectory(dirOfFileOrDirectory) || isNodeModulesDirectory(dirOfFileOrDirectory)) { - (failedLookupChecks || (failedLookupChecks = /* @__PURE__ */ new Set())).add(fileOrDirectoryPath); - (startsWithPathChecks || (startsWithPathChecks = /* @__PURE__ */ new Set())).add(fileOrDirectoryPath); - } - else { - if (isEmittedFileOfProgram(resolutionHost.getCurrentProgram(), fileOrDirectoryPath)) { - return false; - } - if (fileExtensionIs(fileOrDirectoryPath, ".map")) { - return false; - } - (failedLookupChecks || (failedLookupChecks = /* @__PURE__ */ new Set())).add(fileOrDirectoryPath); - var packagePath = parseNodeModuleFromPath(fileOrDirectoryPath, - /*isFolder*/ - true); - if (packagePath) - (startsWithPathChecks || (startsWithPathChecks = /* @__PURE__ */ new Set())).add(packagePath); - } - } - resolutionHost.scheduleInvalidateResolutionsOfFailedLookupLocations(); - } - function invalidatePackageJsonMap() { - var packageJsonMap = moduleResolutionCache.getPackageJsonInfoCache().getInternalMap(); - if (packageJsonMap && (failedLookupChecks || startsWithPathChecks || isInDirectoryChecks)) { - packageJsonMap.forEach(function (_value, path) { return isInvalidatedFailedLookup(path) ? packageJsonMap.delete(path) : void 0; }); - } - } - function invalidateResolutionsOfFailedLookupLocations() { - var _a; - if (allModuleAndTypeResolutionsAreInvalidated) { - affectingPathChecksForFile = void 0; - invalidatePackageJsonMap(); - if (failedLookupChecks || startsWithPathChecks || isInDirectoryChecks || affectingPathChecks) { - invalidateResolutions(resolvedLibraries, canInvalidateFailedLookupResolution); - } - failedLookupChecks = void 0; - startsWithPathChecks = void 0; - isInDirectoryChecks = void 0; - affectingPathChecks = void 0; - return true; - } - var invalidated = false; - if (affectingPathChecksForFile) { - (_a = resolutionHost.getCurrentProgram()) == null ? void 0 : _a.getSourceFiles().forEach(function (f) { - if (some(f.packageJsonLocations, function (location) { return affectingPathChecksForFile.has(location); })) { - (filesWithInvalidatedResolutions !== null && filesWithInvalidatedResolutions !== void 0 ? filesWithInvalidatedResolutions : (filesWithInvalidatedResolutions = /* @__PURE__ */ new Set())).add(f.path); - invalidated = true; - } - }); - affectingPathChecksForFile = void 0; - } - if (!failedLookupChecks && !startsWithPathChecks && !isInDirectoryChecks && !affectingPathChecks) { - return invalidated; - } - invalidated = invalidateResolutions(resolutionsWithFailedLookups, canInvalidateFailedLookupResolution) || invalidated; - invalidatePackageJsonMap(); - failedLookupChecks = void 0; - startsWithPathChecks = void 0; - isInDirectoryChecks = void 0; - invalidated = invalidateResolutions(resolutionsWithOnlyAffectingLocations, canInvalidatedFailedLookupResolutionWithAffectingLocation) || invalidated; - affectingPathChecks = void 0; - return invalidated; - } - function canInvalidateFailedLookupResolution(resolution) { - var _a; - if (canInvalidatedFailedLookupResolutionWithAffectingLocation(resolution)) - return true; - if (!failedLookupChecks && !startsWithPathChecks && !isInDirectoryChecks) - return false; - return ((_a = resolution.failedLookupLocations) == null ? void 0 : _a.some(function (location) { return isInvalidatedFailedLookup(resolutionHost.toPath(location)); })) || !!resolution.node10Result && isInvalidatedFailedLookup(resolutionHost.toPath(resolution.node10Result)); - } - function isInvalidatedFailedLookup(locationPath) { - return (failedLookupChecks == null ? void 0 : failedLookupChecks.has(locationPath)) || firstDefinedIterator((startsWithPathChecks == null ? void 0 : startsWithPathChecks.keys()) || [], function (fileOrDirectoryPath) { return startsWith(locationPath, fileOrDirectoryPath) ? true : void 0; }) || firstDefinedIterator((isInDirectoryChecks == null ? void 0 : isInDirectoryChecks.keys()) || [], function (dirPath) { return locationPath.length > dirPath.length && startsWith(locationPath, dirPath) && (isDiskPathRoot(dirPath) || locationPath[dirPath.length] === directorySeparator) ? true : void 0; }); - } - function canInvalidatedFailedLookupResolutionWithAffectingLocation(resolution) { - var _a; - return !!affectingPathChecks && ((_a = resolution.affectingLocations) == null ? void 0 : _a.some(function (location) { return affectingPathChecks.has(location); })); - } - function closeTypeRootsWatch() { - clearMap(typeRootsWatches, closeFileWatcher); - } - function createTypeRootsWatch(typeRootPath, typeRoot) { - return canWatchTypeRootPath(typeRootPath) ? resolutionHost.watchTypeRootsDirectory(typeRoot, function (fileOrDirectory) { - var fileOrDirectoryPath = resolutionHost.toPath(fileOrDirectory); - if (cachedDirectoryStructureHost) { - cachedDirectoryStructureHost.addOrDeleteFileOrDirectory(fileOrDirectory, fileOrDirectoryPath); - } - hasChangedAutomaticTypeDirectiveNames = true; - resolutionHost.onChangedAutomaticTypeDirectiveNames(); - var dirPath = getDirectoryToWatchFailedLookupLocationFromTypeRoot(typeRoot, typeRootPath, rootPath, rootPathComponents, getCurrentDirectory, function (dirPath2) { return directoryWatchesOfFailedLookups.has(dirPath2); }); - if (dirPath) { - scheduleInvalidateResolutionOfFailedLookupLocation(fileOrDirectoryPath, dirPath === fileOrDirectoryPath); - } - }, 1 /* Recursive */) : noopFileWatcher; - } - function updateTypeRootsWatch() { - var options = resolutionHost.getCompilationSettings(); - if (options.types) { - closeTypeRootsWatch(); - return; - } - var typeRoots = getEffectiveTypeRoots(options, { getCurrentDirectory: getCurrentDirectory }); - if (typeRoots) { - mutateMap(typeRootsWatches, arrayToMap(typeRoots, function (tr) { return resolutionHost.toPath(tr); }), { - createNewValue: createTypeRootsWatch, - onDeleteValue: closeFileWatcher - }); - } - else { - closeTypeRootsWatch(); - } - } - function canWatchTypeRootPath(typeRoot) { - if (resolutionHost.getCompilationSettings().typeRoots) - return true; - return canWatchAtTypes(resolutionHost.toPath(typeRoot)); - } -} -function resolutionIsSymlink(resolution) { - var _a, _b; - return !!(((_a = resolution.resolvedModule) == null ? void 0 : _a.originalPath) || ((_b = resolution.resolvedTypeReferenceDirective) == null ? void 0 : _b.originalPath)); -} -// src/compiler/watch.ts -var sysFormatDiagnosticsHost = sys ? { - getCurrentDirectory: function () { return sys.getCurrentDirectory(); }, - getNewLine: function () { return sys.newLine; }, - getCanonicalFileName: createGetCanonicalFileName(sys.useCaseSensitiveFileNames) -} : void 0; -function createDiagnosticReporter(system, pretty) { - var host = system === sys && sysFormatDiagnosticsHost ? sysFormatDiagnosticsHost : { - getCurrentDirectory: function () { return system.getCurrentDirectory(); }, - getNewLine: function () { return system.newLine; }, - getCanonicalFileName: createGetCanonicalFileName(system.useCaseSensitiveFileNames) - }; - if (!pretty) { - return function (diagnostic) { return system.write(formatDiagnostic(diagnostic, host)); }; - } - var diagnostics = new Array(1); - return function (diagnostic) { - diagnostics[0] = diagnostic; - system.write(formatDiagnosticsWithColorAndContext(diagnostics, host) + host.getNewLine()); - diagnostics[0] = void 0; - }; -} -function clearScreenIfNotWatchingForFileChanges(system, diagnostic, options) { - if (system.clearScreen && !options.preserveWatchOutput && !options.extendedDiagnostics && !options.diagnostics && contains(screenStartingMessageCodes, diagnostic.code)) { - system.clearScreen(); - return true; - } - return false; -} -var screenStartingMessageCodes = [ - Diagnostics.Starting_compilation_in_watch_mode.code, - Diagnostics.File_change_detected_Starting_incremental_compilation.code -]; -function getPlainDiagnosticFollowingNewLines(diagnostic, newLine) { - return contains(screenStartingMessageCodes, diagnostic.code) ? newLine + newLine : newLine; -} -function getLocaleTimeString(system) { - return !system.now ? ( /* @__PURE__ */new Date()).toLocaleTimeString() : ( - // On some systems / builds of Node, there's a non-breaking space between the time and AM/PM. - // This branch is solely for testing, so just switch it to a normal space for baseline stability. - // See: - // - https://github.com/nodejs/node/issues/45171 - // - https://github.com/nodejs/node/issues/45753 - system.now().toLocaleTimeString("en-US", { timeZone: "UTC" }).replace("\u202F", " ")); -} -function createWatchStatusReporter(system, pretty) { - return pretty ? function (diagnostic, newLine, options) { - clearScreenIfNotWatchingForFileChanges(system, diagnostic, options); - var output = "[".concat(formatColorAndReset(getLocaleTimeString(system), "\x1B[90m" /* Grey */), "] "); - output += "".concat(flattenDiagnosticMessageText(diagnostic.messageText, system.newLine)).concat(newLine + newLine); - system.write(output); - } : function (diagnostic, newLine, options) { - var output = ""; - if (!clearScreenIfNotWatchingForFileChanges(system, diagnostic, options)) { - output += newLine; - } - output += "".concat(getLocaleTimeString(system), " - "); - output += "".concat(flattenDiagnosticMessageText(diagnostic.messageText, system.newLine)).concat(getPlainDiagnosticFollowingNewLines(diagnostic, newLine)); - system.write(output); - }; -} -function parseConfigFileWithSystem(configFileName, optionsToExtend, extendedConfigCache, watchOptionsToExtend, system, reportDiagnostic) { - var host = system; - host.onUnRecoverableConfigFileDiagnostic = function (diagnostic) { return reportUnrecoverableDiagnostic(system, reportDiagnostic, diagnostic); }; - var result = getParsedCommandLineOfConfigFile(configFileName, optionsToExtend, host, extendedConfigCache, watchOptionsToExtend); - host.onUnRecoverableConfigFileDiagnostic = void 0; - return result; -} -function getErrorCountForSummary(diagnostics) { - return countWhere(diagnostics, function (diagnostic) { return diagnostic.category === 1; } /* Error */); -} -function getFilesInErrorForSummary(diagnostics) { - var filesInError = filter(diagnostics, function (diagnostic) { return diagnostic.category === 1; } /* Error */).map(function (errorDiagnostic) { - if (errorDiagnostic.file === void 0) - return; - return "".concat(errorDiagnostic.file.fileName); - }); - return filesInError.map(function (fileName) { - if (fileName === void 0) { - return void 0; - } - var diagnosticForFileName = find(diagnostics, function (diagnostic) { return diagnostic.file !== void 0 && diagnostic.file.fileName === fileName; }); - if (diagnosticForFileName !== void 0) { - var line = getLineAndCharacterOfPosition(diagnosticForFileName.file, diagnosticForFileName.start).line; - return { - fileName: fileName, - line: line + 1 - }; - } - }); -} -function getWatchErrorSummaryDiagnosticMessage(errorCount) { - return errorCount === 1 ? Diagnostics.Found_1_error_Watching_for_file_changes : Diagnostics.Found_0_errors_Watching_for_file_changes; -} -function prettyPathForFileError(error2, cwd) { - var line = formatColorAndReset(":" + error2.line, "\x1B[90m" /* Grey */); - if (pathIsAbsolute(error2.fileName) && pathIsAbsolute(cwd)) { - return getRelativePathFromDirectory(cwd, error2.fileName, - /*ignoreCase*/ - false) + line; - } - return error2.fileName + line; -} -function getErrorSummaryText(errorCount, filesInError, newLine, host) { - if (errorCount === 0) - return ""; - var nonNilFiles = filesInError.filter(function (fileInError) { return fileInError !== void 0; }); - var distinctFileNamesWithLines = nonNilFiles.map(function (fileInError) { return "".concat(fileInError.fileName, ":").concat(fileInError.line); }).filter(function (value, index, self) { return self.indexOf(value) === index; }); - var firstFileReference = nonNilFiles[0] && prettyPathForFileError(nonNilFiles[0], host.getCurrentDirectory()); - var messageAndArgs; - if (errorCount === 1) { - messageAndArgs = filesInError[0] !== void 0 ? [Diagnostics.Found_1_error_in_0, firstFileReference] : [Diagnostics.Found_1_error]; - } - else { - messageAndArgs = distinctFileNamesWithLines.length === 0 ? [Diagnostics.Found_0_errors, errorCount] : distinctFileNamesWithLines.length === 1 ? [Diagnostics.Found_0_errors_in_the_same_file_starting_at_Colon_1, errorCount, firstFileReference] : [Diagnostics.Found_0_errors_in_1_files, errorCount, distinctFileNamesWithLines.length]; - } - var d = createCompilerDiagnostic.apply(void 0, __spreadArray([], __read(messageAndArgs), false)); - var suffix = distinctFileNamesWithLines.length > 1 ? createTabularErrorsDisplay(nonNilFiles, host) : ""; - return "".concat(newLine).concat(flattenDiagnosticMessageText(d.messageText, newLine)).concat(newLine).concat(newLine).concat(suffix); -} -function createTabularErrorsDisplay(filesInError, host) { - var distinctFiles = filesInError.filter(function (value, index, self) { return index === self.findIndex(function (file) { return (file == null ? void 0 : file.fileName) === (value == null ? void 0 : value.fileName); }); }); - if (distinctFiles.length === 0) - return ""; - var numberLength = function (num) { return Math.log(num) * Math.LOG10E + 1; }; - var fileToErrorCount = distinctFiles.map(function (file) { return [file, countWhere(filesInError, function (fileInError) { return fileInError.fileName === file.fileName; })]; }); - var maxErrors = fileToErrorCount.reduce(function (acc, value) { return Math.max(acc, value[1] || 0); }, 0); - var headerRow = Diagnostics.Errors_Files.message; - var leftColumnHeadingLength = headerRow.split(" ")[0].length; - var leftPaddingGoal = Math.max(leftColumnHeadingLength, numberLength(maxErrors)); - var headerPadding = Math.max(numberLength(maxErrors) - leftColumnHeadingLength, 0); - var tabularData = ""; - tabularData += " ".repeat(headerPadding) + headerRow + "\n"; - fileToErrorCount.forEach(function (row) { - var _t = __read(row, 2), file = _t[0], errorCount = _t[1]; - var errorCountDigitsLength = Math.log(errorCount) * Math.LOG10E + 1 | 0; - var leftPadding = errorCountDigitsLength < leftPaddingGoal ? " ".repeat(leftPaddingGoal - errorCountDigitsLength) : ""; - var fileRef = prettyPathForFileError(file, host.getCurrentDirectory()); - tabularData += "".concat(leftPadding).concat(errorCount, " ").concat(fileRef, "\n"); - }); - return tabularData; -} -function isBuilderProgram2(program) { - return !!program.getState; -} -function listFiles(program, write) { - var options = program.getCompilerOptions(); - if (options.explainFiles) { - explainFiles(isBuilderProgram2(program) ? program.getProgram() : program, write); - } - else if (options.listFiles || options.listFilesOnly) { - forEach(program.getSourceFiles(), function (file) { - write(file.fileName); - }); - } -} -function explainFiles(program, write) { - var e_629, _t; - var _a, _b; - var reasons = program.getFileIncludeReasons(); - var relativeFileName = function (fileName) { return convertToRelativePath(fileName, program.getCurrentDirectory(), program.getCanonicalFileName); }; - try { - for (var _u = __values(program.getSourceFiles()), _v = _u.next(); !_v.done; _v = _u.next()) { - var file = _v.value; - write("".concat(toFileName(file, relativeFileName))); - (_a = reasons.get(file.path)) == null ? void 0 : _a.forEach(function (reason) { return write(" ".concat(fileIncludeReasonToDiagnostics(program, reason, relativeFileName).messageText)); }); - (_b = explainIfFileIsRedirectAndImpliedFormat(file, relativeFileName)) == null ? void 0 : _b.forEach(function (d) { return write(" ".concat(d.messageText)); }); - } - } - catch (e_629_1) { e_629 = { error: e_629_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_629) throw e_629.error; } - } -} -function explainIfFileIsRedirectAndImpliedFormat(file, fileNameConvertor) { - var _a; - var result; - if (file.path !== file.resolvedPath) { - (result !== null && result !== void 0 ? result : (result = [])).push(chainDiagnosticMessages( - /*details*/ - void 0, Diagnostics.File_is_output_of_project_reference_source_0, toFileName(file.originalFileName, fileNameConvertor))); - } - if (file.redirectInfo) { - (result !== null && result !== void 0 ? result : (result = [])).push(chainDiagnosticMessages( - /*details*/ - void 0, Diagnostics.File_redirects_to_file_0, toFileName(file.redirectInfo.redirectTarget, fileNameConvertor))); - } - if (isExternalOrCommonJsModule(file)) { - switch (file.impliedNodeFormat) { - case 99 /* ESNext */: - if (file.packageJsonScope) { - (result !== null && result !== void 0 ? result : (result = [])).push(chainDiagnosticMessages( - /*details*/ - void 0, Diagnostics.File_is_ECMAScript_module_because_0_has_field_type_with_value_module, toFileName(last(file.packageJsonLocations), fileNameConvertor))); - } - break; - case 1 /* CommonJS */: - if (file.packageJsonScope) { - (result !== null && result !== void 0 ? result : (result = [])).push(chainDiagnosticMessages( - /*details*/ - void 0, file.packageJsonScope.contents.packageJsonContent.type ? Diagnostics.File_is_CommonJS_module_because_0_has_field_type_whose_value_is_not_module : Diagnostics.File_is_CommonJS_module_because_0_does_not_have_field_type, toFileName(last(file.packageJsonLocations), fileNameConvertor))); - } - else if ((_a = file.packageJsonLocations) == null ? void 0 : _a.length) { - (result !== null && result !== void 0 ? result : (result = [])).push(chainDiagnosticMessages( - /*details*/ - void 0, Diagnostics.File_is_CommonJS_module_because_package_json_was_not_found)); - } - break; - } - } - return result; -} -function getMatchedFileSpec(program, fileName) { - var _a; - var configFile = program.getCompilerOptions().configFile; - if (!((_a = configFile == null ? void 0 : configFile.configFileSpecs) == null ? void 0 : _a.validatedFilesSpec)) - return void 0; - var filePath = program.getCanonicalFileName(fileName); - var basePath = getDirectoryPath(getNormalizedAbsolutePath(configFile.fileName, program.getCurrentDirectory())); - return find(configFile.configFileSpecs.validatedFilesSpec, function (fileSpec) { return program.getCanonicalFileName(getNormalizedAbsolutePath(fileSpec, basePath)) === filePath; }); -} -function getMatchedIncludeSpec(program, fileName) { - var _a, _b; - var configFile = program.getCompilerOptions().configFile; - if (!((_a = configFile == null ? void 0 : configFile.configFileSpecs) == null ? void 0 : _a.validatedIncludeSpecs)) - return void 0; - if (configFile.configFileSpecs.isDefaultIncludeSpec) - return true; - var isJsonFile = fileExtensionIs(fileName, ".json" /* Json */); - var basePath = getDirectoryPath(getNormalizedAbsolutePath(configFile.fileName, program.getCurrentDirectory())); - var useCaseSensitiveFileNames2 = program.useCaseSensitiveFileNames(); - return find((_b = configFile == null ? void 0 : configFile.configFileSpecs) == null ? void 0 : _b.validatedIncludeSpecs, function (includeSpec) { - if (isJsonFile && !endsWith(includeSpec, ".json" /* Json */)) - return false; - var pattern = getPatternFromSpec(includeSpec, basePath, "files"); - return !!pattern && getRegexFromPattern("(".concat(pattern, ")$"), useCaseSensitiveFileNames2).test(fileName); - }); -} -function fileIncludeReasonToDiagnostics(program, reason, fileNameConvertor) { - var _a, _b; - var options = program.getCompilerOptions(); - if (isReferencedFile(reason)) { - var referenceLocation = getReferencedFileLocation(function (path) { return program.getSourceFileByPath(path); }, reason); - var referenceText = isReferenceFileLocation(referenceLocation) ? referenceLocation.file.text.substring(referenceLocation.pos, referenceLocation.end) : "\"".concat(referenceLocation.text, "\""); - var message = void 0; - Debug.assert(isReferenceFileLocation(referenceLocation) || reason.kind === 3 /* Import */, "Only synthetic references are imports"); - switch (reason.kind) { - case 3 /* Import */: - if (isReferenceFileLocation(referenceLocation)) { - message = referenceLocation.packageId ? Diagnostics.Imported_via_0_from_file_1_with_packageId_2 : Diagnostics.Imported_via_0_from_file_1; - } - else if (referenceLocation.text === externalHelpersModuleNameText) { - message = referenceLocation.packageId ? Diagnostics.Imported_via_0_from_file_1_with_packageId_2_to_import_importHelpers_as_specified_in_compilerOptions : Diagnostics.Imported_via_0_from_file_1_to_import_importHelpers_as_specified_in_compilerOptions; - } - else { - message = referenceLocation.packageId ? Diagnostics.Imported_via_0_from_file_1_with_packageId_2_to_import_jsx_and_jsxs_factory_functions : Diagnostics.Imported_via_0_from_file_1_to_import_jsx_and_jsxs_factory_functions; - } - break; - case 4 /* ReferenceFile */: - Debug.assert(!referenceLocation.packageId); - message = Diagnostics.Referenced_via_0_from_file_1; - break; - case 5 /* TypeReferenceDirective */: - message = referenceLocation.packageId ? Diagnostics.Type_library_referenced_via_0_from_file_1_with_packageId_2 : Diagnostics.Type_library_referenced_via_0_from_file_1; - break; - case 7 /* LibReferenceDirective */: - Debug.assert(!referenceLocation.packageId); - message = Diagnostics.Library_referenced_via_0_from_file_1; - break; - default: - Debug.assertNever(reason); - } - return chainDiagnosticMessages( - /*details*/ - void 0, message, referenceText, toFileName(referenceLocation.file, fileNameConvertor), referenceLocation.packageId && packageIdToString(referenceLocation.packageId)); - } - switch (reason.kind) { - case 0 /* RootFile */: - if (!((_a = options.configFile) == null ? void 0 : _a.configFileSpecs)) - return chainDiagnosticMessages( - /*details*/ - void 0, Diagnostics.Root_file_specified_for_compilation); - var fileName = getNormalizedAbsolutePath(program.getRootFileNames()[reason.index], program.getCurrentDirectory()); - var matchedByFiles = getMatchedFileSpec(program, fileName); - if (matchedByFiles) - return chainDiagnosticMessages( - /*details*/ - void 0, Diagnostics.Part_of_files_list_in_tsconfig_json); - var matchedByInclude = getMatchedIncludeSpec(program, fileName); - return isString(matchedByInclude) ? chainDiagnosticMessages( - /*details*/ - void 0, Diagnostics.Matched_by_include_pattern_0_in_1, matchedByInclude, toFileName(options.configFile, fileNameConvertor)) : ( - // Could be additional files specified as roots or matched by default include - chainDiagnosticMessages( - /*details*/ - void 0, matchedByInclude ? Diagnostics.Matched_by_default_include_pattern_Asterisk_Asterisk_Slash_Asterisk : Diagnostics.Root_file_specified_for_compilation)); - case 1 /* SourceFromProjectReference */: - case 2 /* OutputFromProjectReference */: - var isOutput = reason.kind === 2 /* OutputFromProjectReference */; - var referencedResolvedRef = Debug.checkDefined((_b = program.getResolvedProjectReferences()) == null ? void 0 : _b[reason.index]); - return chainDiagnosticMessages( - /*details*/ - void 0, outFile(options) ? isOutput ? Diagnostics.Output_from_referenced_project_0_included_because_1_specified : Diagnostics.Source_from_referenced_project_0_included_because_1_specified : isOutput ? Diagnostics.Output_from_referenced_project_0_included_because_module_is_specified_as_none : Diagnostics.Source_from_referenced_project_0_included_because_module_is_specified_as_none, toFileName(referencedResolvedRef.sourceFile.fileName, fileNameConvertor), options.outFile ? "--outFile" : "--out"); - case 8 /* AutomaticTypeDirectiveFile */: { - var messageAndArgs = options.types ? reason.packageId ? [Diagnostics.Entry_point_of_type_library_0_specified_in_compilerOptions_with_packageId_1, reason.typeReference, packageIdToString(reason.packageId)] : [Diagnostics.Entry_point_of_type_library_0_specified_in_compilerOptions, reason.typeReference] : reason.packageId ? [Diagnostics.Entry_point_for_implicit_type_library_0_with_packageId_1, reason.typeReference, packageIdToString(reason.packageId)] : [Diagnostics.Entry_point_for_implicit_type_library_0, reason.typeReference]; - return chainDiagnosticMessages.apply(void 0, __spreadArray([ - /*details*/ - void 0], __read(messageAndArgs), false)); - } - case 6 /* LibFile */: { - if (reason.index !== void 0) - return chainDiagnosticMessages( - /*details*/ - void 0, Diagnostics.Library_0_specified_in_compilerOptions, options.lib[reason.index]); - var target = forEachEntry(targetOptionDeclaration.type, function (value, key) { return value === getEmitScriptTarget(options) ? key : void 0; }); - var messageAndArgs = target ? [Diagnostics.Default_library_for_target_0, target] : [Diagnostics.Default_library]; - return chainDiagnosticMessages.apply(void 0, __spreadArray([ - /*details*/ - void 0], __read(messageAndArgs), false)); - } - default: - Debug.assertNever(reason); - } -} -function toFileName(file, fileNameConvertor) { - var fileName = isString(file) ? file : file.fileName; - return fileNameConvertor ? fileNameConvertor(fileName) : fileName; -} -function emitFilesAndReportErrors(program, reportDiagnostic, write, reportSummary, writeFile2, cancellationToken, emitOnlyDtsFiles, customTransformers) { - var isListFilesOnly = !!program.getCompilerOptions().listFilesOnly; - var allDiagnostics = program.getConfigFileParsingDiagnostics().slice(); - var configFileParsingDiagnosticsLength = allDiagnostics.length; - addRange(allDiagnostics, program.getSyntacticDiagnostics( - /*sourceFile*/ - void 0, cancellationToken)); - if (allDiagnostics.length === configFileParsingDiagnosticsLength) { - addRange(allDiagnostics, program.getOptionsDiagnostics(cancellationToken)); - if (!isListFilesOnly) { - addRange(allDiagnostics, program.getGlobalDiagnostics(cancellationToken)); - if (allDiagnostics.length === configFileParsingDiagnosticsLength) { - addRange(allDiagnostics, program.getSemanticDiagnostics( - /*sourceFile*/ - void 0, cancellationToken)); - } - } - } - var emitResult = isListFilesOnly ? { emitSkipped: true, diagnostics: emptyArray } : program.emit( - /*targetSourceFile*/ - void 0, writeFile2, cancellationToken, emitOnlyDtsFiles, customTransformers); - var emittedFiles = emitResult.emittedFiles, emitDiagnostics = emitResult.diagnostics; - addRange(allDiagnostics, emitDiagnostics); - var diagnostics = sortAndDeduplicateDiagnostics(allDiagnostics); - diagnostics.forEach(reportDiagnostic); - if (write) { - var currentDir_1 = program.getCurrentDirectory(); - forEach(emittedFiles, function (file) { - var filepath = getNormalizedAbsolutePath(file, currentDir_1); - write("TSFILE: ".concat(filepath)); - }); - listFiles(program, write); - } - if (reportSummary) { - reportSummary(getErrorCountForSummary(diagnostics), getFilesInErrorForSummary(diagnostics)); - } - return { - emitResult: emitResult, - diagnostics: diagnostics - }; -} -function emitFilesAndReportErrorsAndGetExitStatus(program, reportDiagnostic, write, reportSummary, writeFile2, cancellationToken, emitOnlyDtsFiles, customTransformers) { - var _t = emitFilesAndReportErrors(program, reportDiagnostic, write, reportSummary, writeFile2, cancellationToken, emitOnlyDtsFiles, customTransformers), emitResult = _t.emitResult, diagnostics = _t.diagnostics; - if (emitResult.emitSkipped && diagnostics.length > 0) { - return 1 /* DiagnosticsPresent_OutputsSkipped */; - } - else if (diagnostics.length > 0) { - return 2 /* DiagnosticsPresent_OutputsGenerated */; - } - return 0 /* Success */; -} -var noopFileWatcher = { close: noop }; -var returnNoopFileWatcher = function () { return noopFileWatcher; }; -function createWatchHost(system, reportWatchStatus2) { - if (system === void 0) { system = sys; } - var onWatchStatusChange = reportWatchStatus2 || createWatchStatusReporter(system); - return { - onWatchStatusChange: onWatchStatusChange, - watchFile: maybeBind(system, system.watchFile) || returnNoopFileWatcher, - watchDirectory: maybeBind(system, system.watchDirectory) || returnNoopFileWatcher, - setTimeout: maybeBind(system, system.setTimeout) || noop, - clearTimeout: maybeBind(system, system.clearTimeout) || noop - }; -} -var WatchType = { - ConfigFile: "Config file", - ExtendedConfigFile: "Extended config file", - SourceFile: "Source file", - MissingFile: "Missing file", - WildcardDirectory: "Wild card directory", - FailedLookupLocations: "Failed Lookup Locations", - AffectingFileLocation: "File location affecting resolution", - TypeRoots: "Type roots", - ConfigFileOfReferencedProject: "Config file of referened project", - ExtendedConfigOfReferencedProject: "Extended config file of referenced project", - WildcardDirectoryOfReferencedProject: "Wild card directory of referenced project", - PackageJson: "package.json file", - ClosedScriptInfo: "Closed Script info", - ConfigFileForInferredRoot: "Config file for the inferred project root", - NodeModules: "node_modules for closed script infos and package.jsons affecting module specifier cache", - MissingSourceMapFile: "Missing source map file", - NoopConfigFileForInferredRoot: "Noop Config file for the inferred project root", - MissingGeneratedFile: "Missing generated file", - NodeModulesForModuleSpecifierCache: "node_modules for module specifier cache invalidation", - TypingInstallerLocationFile: "File location for typing installer", - TypingInstallerLocationDirectory: "Directory location for typing installer" -}; -function createWatchFactory(host, options) { - var watchLogLevel = host.trace ? options.extendedDiagnostics ? 2 /* Verbose */ : options.diagnostics ? 1 /* TriggerOnly */ : 0 /* None */ : 0 /* None */; - var writeLog = watchLogLevel !== 0 /* None */ ? function (s) { return host.trace(s); } : noop; - var result = getWatchFactory(host, watchLogLevel, writeLog); - result.writeLog = writeLog; - return result; -} -function createCompilerHostFromProgramHost(host, getCompilerOptions, directoryStructureHost) { - if (directoryStructureHost === void 0) { directoryStructureHost = host; } - var useCaseSensitiveFileNames2 = host.useCaseSensitiveFileNames(); - var compilerHost = { - getSourceFile: createGetSourceFile(function (fileName, encoding) { return !encoding ? compilerHost.readFile(fileName) : host.readFile(fileName, encoding); }, getCompilerOptions, - /*setParentNodes*/ - void 0), - getDefaultLibLocation: maybeBind(host, host.getDefaultLibLocation), - getDefaultLibFileName: function (options) { return host.getDefaultLibFileName(options); }, - writeFile: createWriteFileMeasuringIO(function (path, data, writeByteOrderMark) { return host.writeFile(path, data, writeByteOrderMark); }, function (path) { return host.createDirectory(path); }, function (path) { return host.directoryExists(path); }), - getCurrentDirectory: memoize(function () { return host.getCurrentDirectory(); }), - useCaseSensitiveFileNames: function () { return useCaseSensitiveFileNames2; }, - getCanonicalFileName: createGetCanonicalFileName(useCaseSensitiveFileNames2), - getNewLine: function () { return getNewLineCharacter(getCompilerOptions()); }, - fileExists: function (f) { return host.fileExists(f); }, - readFile: function (f) { return host.readFile(f); }, - trace: maybeBind(host, host.trace), - directoryExists: maybeBind(directoryStructureHost, directoryStructureHost.directoryExists), - getDirectories: maybeBind(directoryStructureHost, directoryStructureHost.getDirectories), - realpath: maybeBind(host, host.realpath), - getEnvironmentVariable: maybeBind(host, host.getEnvironmentVariable) || (function () { return ""; }), - createHash: maybeBind(host, host.createHash), - readDirectory: maybeBind(host, host.readDirectory), - storeFilesChangingSignatureDuringEmit: host.storeFilesChangingSignatureDuringEmit - }; - return compilerHost; -} -function getSourceFileVersionAsHashFromText(host, text) { - if (text.match(sourceMapCommentRegExpDontCareLineStart)) { - var lineEnd = text.length; - var lineStart = lineEnd; - for (var pos = lineEnd - 1; pos >= 0; pos--) { - var ch = text.charCodeAt(pos); - switch (ch) { - case 10 /* lineFeed */: - if (pos && text.charCodeAt(pos - 1) === 13 /* carriageReturn */) { - pos--; - } - case 13 /* carriageReturn */: - break; - default: - if (ch < 127 /* maxAsciiCharacter */ || !isLineBreak(ch)) { - lineStart = pos; - continue; - } - break; - } - var line = text.substring(lineStart, lineEnd); - if (line.match(sourceMapCommentRegExp)) { - text = text.substring(0, lineStart); - break; - } - else if (!line.match(whitespaceOrMapCommentRegExp)) { - break; - } - lineEnd = lineStart; - } - } - return (host.createHash || generateDjb2Hash)(text); -} -function setGetSourceFileAsHashVersioned(compilerHost) { - var originalGetSourceFile = compilerHost.getSourceFile; - compilerHost.getSourceFile = function () { - var args = []; - for (var _t = 0; _t < arguments.length; _t++) { - args[_t] = arguments[_t]; - } - var result = originalGetSourceFile.call.apply(originalGetSourceFile, __spreadArray([compilerHost], __read(args), false)); - if (result) { - result.version = getSourceFileVersionAsHashFromText(compilerHost, result.text); - } - return result; - }; -} -function createProgramHost(system, createProgram2) { - var getDefaultLibLocation = memoize(function () { return getDirectoryPath(normalizePath(system.getExecutingFilePath())); }); - return { - useCaseSensitiveFileNames: function () { return system.useCaseSensitiveFileNames; }, - getNewLine: function () { return system.newLine; }, - getCurrentDirectory: memoize(function () { return system.getCurrentDirectory(); }), - getDefaultLibLocation: getDefaultLibLocation, - getDefaultLibFileName: function (options) { return combinePaths(getDefaultLibLocation(), getDefaultLibFileName(options)); }, - fileExists: function (path) { return system.fileExists(path); }, - readFile: function (path, encoding) { return system.readFile(path, encoding); }, - directoryExists: function (path) { return system.directoryExists(path); }, - getDirectories: function (path) { return system.getDirectories(path); }, - readDirectory: function (path, extensions, exclude, include, depth) { return system.readDirectory(path, extensions, exclude, include, depth); }, - realpath: maybeBind(system, system.realpath), - getEnvironmentVariable: maybeBind(system, system.getEnvironmentVariable), - trace: function (s) { return system.write(s + system.newLine); }, - createDirectory: function (path) { return system.createDirectory(path); }, - writeFile: function (path, data, writeByteOrderMark) { return system.writeFile(path, data, writeByteOrderMark); }, - createHash: maybeBind(system, system.createHash), - createProgram: createProgram2 || createEmitAndSemanticDiagnosticsBuilderProgram, - storeFilesChangingSignatureDuringEmit: system.storeFilesChangingSignatureDuringEmit, - now: maybeBind(system, system.now) - }; -} -function createWatchCompilerHost(system, createProgram2, reportDiagnostic, reportWatchStatus2) { - if (system === void 0) { system = sys; } - var write = function (s) { return system.write(s + system.newLine); }; - var result = createProgramHost(system, createProgram2); - copyProperties(result, createWatchHost(system, reportWatchStatus2)); - result.afterProgramCreate = function (builderProgram) { - var compilerOptions = builderProgram.getCompilerOptions(); - var newLine = getNewLineCharacter(compilerOptions); - emitFilesAndReportErrors(builderProgram, reportDiagnostic, write, function (errorCount) { return result.onWatchStatusChange(createCompilerDiagnostic(getWatchErrorSummaryDiagnosticMessage(errorCount), errorCount), newLine, compilerOptions, errorCount); }); - }; - return result; -} -function reportUnrecoverableDiagnostic(system, reportDiagnostic, diagnostic) { - reportDiagnostic(diagnostic); - system.exit(1 /* DiagnosticsPresent_OutputsSkipped */); -} -function createWatchCompilerHostOfConfigFile(_t) { - var configFileName = _t.configFileName, optionsToExtend = _t.optionsToExtend, watchOptionsToExtend = _t.watchOptionsToExtend, extraFileExtensions = _t.extraFileExtensions, system = _t.system, createProgram2 = _t.createProgram, reportDiagnostic = _t.reportDiagnostic, reportWatchStatus2 = _t.reportWatchStatus; - var diagnosticReporter = reportDiagnostic || createDiagnosticReporter(system); - var host = createWatchCompilerHost(system, createProgram2, diagnosticReporter, reportWatchStatus2); - host.onUnRecoverableConfigFileDiagnostic = function (diagnostic) { return reportUnrecoverableDiagnostic(system, diagnosticReporter, diagnostic); }; - host.configFileName = configFileName; - host.optionsToExtend = optionsToExtend; - host.watchOptionsToExtend = watchOptionsToExtend; - host.extraFileExtensions = extraFileExtensions; - return host; -} -function createWatchCompilerHostOfFilesAndCompilerOptions(_t) { - var rootFiles = _t.rootFiles, options = _t.options, watchOptions = _t.watchOptions, projectReferences = _t.projectReferences, system = _t.system, createProgram2 = _t.createProgram, reportDiagnostic = _t.reportDiagnostic, reportWatchStatus2 = _t.reportWatchStatus; - var host = createWatchCompilerHost(system, createProgram2, reportDiagnostic || createDiagnosticReporter(system), reportWatchStatus2); - host.rootFiles = rootFiles; - host.options = options; - host.watchOptions = watchOptions; - host.projectReferences = projectReferences; - return host; -} -function performIncrementalCompilation(input) { - var system = input.system || sys; - var host = input.host || (input.host = createIncrementalCompilerHost(input.options, system)); - var builderProgram = createIncrementalProgram(input); - var exitStatus = emitFilesAndReportErrorsAndGetExitStatus(builderProgram, input.reportDiagnostic || createDiagnosticReporter(system), function (s) { return host.trace && host.trace(s); }, input.reportErrorSummary || input.options.pretty ? function (errorCount, filesInError) { return system.write(getErrorSummaryText(errorCount, filesInError, system.newLine, host)); } : void 0); - if (input.afterProgramEmitAndDiagnostics) - input.afterProgramEmitAndDiagnostics(builderProgram); - return exitStatus; -} -// src/compiler/watchPublic.ts -function readBuilderProgram(compilerOptions, host) { - var buildInfoPath = getTsBuildInfoEmitOutputFilePath(compilerOptions); - if (!buildInfoPath) - return void 0; - var buildInfo; - if (host.getBuildInfo) { - buildInfo = host.getBuildInfo(buildInfoPath, compilerOptions.configFilePath); - } - else { - var content = host.readFile(buildInfoPath); - if (!content) - return void 0; - buildInfo = getBuildInfo(buildInfoPath, content); - } - if (!buildInfo || buildInfo.version !== version || !buildInfo.program) - return void 0; - return createBuilderProgramUsingProgramBuildInfo(buildInfo, buildInfoPath, host); -} -function createIncrementalCompilerHost(options, system) { - if (system === void 0) { system = sys; } - var host = createCompilerHostWorker(options, - /*setParentNodes*/ - void 0, system); - host.createHash = maybeBind(system, system.createHash); - host.storeFilesChangingSignatureDuringEmit = system.storeFilesChangingSignatureDuringEmit; - setGetSourceFileAsHashVersioned(host); - changeCompilerHostLikeToUseCache(host, function (fileName) { return toPath(fileName, host.getCurrentDirectory(), host.getCanonicalFileName); }); - return host; -} -function createIncrementalProgram(_t) { - var rootNames = _t.rootNames, options = _t.options, configFileParsingDiagnostics = _t.configFileParsingDiagnostics, projectReferences = _t.projectReferences, host = _t.host, createProgram2 = _t.createProgram; - host = host || createIncrementalCompilerHost(options); - createProgram2 = createProgram2 || createEmitAndSemanticDiagnosticsBuilderProgram; - var oldProgram = readBuilderProgram(options, host); - return createProgram2(rootNames, options, host, oldProgram, configFileParsingDiagnostics, projectReferences); -} -function createWatchCompilerHost2(rootFilesOrConfigFileName, options, system, createProgram2, reportDiagnostic, reportWatchStatus2, projectReferencesOrWatchOptionsToExtend, watchOptionsOrExtraFileExtensions) { - if (isArray(rootFilesOrConfigFileName)) { - return createWatchCompilerHostOfFilesAndCompilerOptions({ - rootFiles: rootFilesOrConfigFileName, - options: options, - watchOptions: watchOptionsOrExtraFileExtensions, - projectReferences: projectReferencesOrWatchOptionsToExtend, - system: system, - createProgram: createProgram2, - reportDiagnostic: reportDiagnostic, - reportWatchStatus: reportWatchStatus2 - }); - } - else { - return createWatchCompilerHostOfConfigFile({ - configFileName: rootFilesOrConfigFileName, - optionsToExtend: options, - watchOptionsToExtend: projectReferencesOrWatchOptionsToExtend, - extraFileExtensions: watchOptionsOrExtraFileExtensions, - system: system, - createProgram: createProgram2, - reportDiagnostic: reportDiagnostic, - reportWatchStatus: reportWatchStatus2 - }); - } -} -function createWatchProgram(host) { - var builderProgram; - var reloadLevel; - var missingFilesMap; - var watchedWildcardDirectories; - var timerToUpdateProgram; - var timerToInvalidateFailedLookupResolutions; - var parsedConfigs; - var sharedExtendedConfigFileWatchers; - var extendedConfigCache = host.extendedConfigCache; - var reportFileChangeDetectedOnCreateProgram = false; - var sourceFilesCache = /* @__PURE__ */ new Map(); - var missingFilePathsRequestedForRelease; - var hasChangedCompilerOptions = false; - var useCaseSensitiveFileNames2 = host.useCaseSensitiveFileNames(); - var currentDirectory = host.getCurrentDirectory(); - var configFileName = host.configFileName, _t = host.optionsToExtend, optionsToExtendForConfigFile = _t === void 0 ? {} : _t, watchOptionsToExtend = host.watchOptionsToExtend, extraFileExtensions = host.extraFileExtensions, createProgram2 = host.createProgram; - var rootFileNames = host.rootFiles, compilerOptions = host.options, watchOptions = host.watchOptions, projectReferences = host.projectReferences; - var wildcardDirectories; - var configFileParsingDiagnostics; - var canConfigFileJsonReportNoInputFiles = false; - var hasChangedConfigFileParsingErrors = false; - var cachedDirectoryStructureHost = configFileName === void 0 ? void 0 : createCachedDirectoryStructureHost(host, currentDirectory, useCaseSensitiveFileNames2); - var directoryStructureHost = cachedDirectoryStructureHost || host; - var parseConfigFileHost = parseConfigHostFromCompilerHostLike(host, directoryStructureHost); - var newLine = updateNewLine(); - if (configFileName && host.configFileParsingResult) { - setConfigFileParsingResult(host.configFileParsingResult); - newLine = updateNewLine(); - } - reportWatchDiagnostic(Diagnostics.Starting_compilation_in_watch_mode); - if (configFileName && !host.configFileParsingResult) { - newLine = getNewLineCharacter(optionsToExtendForConfigFile); - Debug.assert(!rootFileNames); - parseConfigFile2(); - newLine = updateNewLine(); - } - Debug.assert(compilerOptions); - Debug.assert(rootFileNames); - var _u = createWatchFactory(host, compilerOptions), watchFile2 = _u.watchFile, watchDirectory = _u.watchDirectory, writeLog = _u.writeLog; - var getCanonicalFileName = createGetCanonicalFileName(useCaseSensitiveFileNames2); - writeLog("Current directory: ".concat(currentDirectory, " CaseSensitiveFileNames: ").concat(useCaseSensitiveFileNames2)); - var configFileWatcher; - if (configFileName) { - configFileWatcher = watchFile2(configFileName, scheduleProgramReload, 2e3 /* High */, watchOptions, WatchType.ConfigFile); - } - var compilerHost = createCompilerHostFromProgramHost(host, function () { return compilerOptions; }, directoryStructureHost); - setGetSourceFileAsHashVersioned(compilerHost); - var getNewSourceFile = compilerHost.getSourceFile; - compilerHost.getSourceFile = function (fileName) { - var args = []; - for (var _t = 1; _t < arguments.length; _t++) { - args[_t - 1] = arguments[_t]; - } - return getVersionedSourceFileByPath.apply(void 0, __spreadArray([fileName, toPath3(fileName)], __read(args), false)); - }; - compilerHost.getSourceFileByPath = getVersionedSourceFileByPath; - compilerHost.getNewLine = function () { return newLine; }; - compilerHost.fileExists = fileExists; - compilerHost.onReleaseOldSourceFile = onReleaseOldSourceFile; - compilerHost.onReleaseParsedCommandLine = onReleaseParsedCommandLine; - compilerHost.toPath = toPath3; - compilerHost.getCompilationSettings = function () { return compilerOptions; }; - compilerHost.useSourceOfProjectReferenceRedirect = maybeBind(host, host.useSourceOfProjectReferenceRedirect); - compilerHost.watchDirectoryOfFailedLookupLocation = function (dir, cb, flags) { return watchDirectory(dir, cb, flags, watchOptions, WatchType.FailedLookupLocations); }; - compilerHost.watchAffectingFileLocation = function (file, cb) { return watchFile2(file, cb, 2e3 /* High */, watchOptions, WatchType.AffectingFileLocation); }; - compilerHost.watchTypeRootsDirectory = function (dir, cb, flags) { return watchDirectory(dir, cb, flags, watchOptions, WatchType.TypeRoots); }; - compilerHost.getCachedDirectoryStructureHost = function () { return cachedDirectoryStructureHost; }; - compilerHost.scheduleInvalidateResolutionsOfFailedLookupLocations = scheduleInvalidateResolutionsOfFailedLookupLocations; - compilerHost.onInvalidatedResolution = scheduleProgramUpdate; - compilerHost.onChangedAutomaticTypeDirectiveNames = scheduleProgramUpdate; - compilerHost.fileIsOpen = returnFalse; - compilerHost.getCurrentProgram = getCurrentProgram; - compilerHost.writeLog = writeLog; - compilerHost.getParsedCommandLine = getParsedCommandLine; - var resolutionCache = createResolutionCache(compilerHost, configFileName ? getDirectoryPath(getNormalizedAbsolutePath(configFileName, currentDirectory)) : currentDirectory, - /*logChangesWhenResolvingModule*/ - false); - compilerHost.resolveModuleNameLiterals = maybeBind(host, host.resolveModuleNameLiterals); - compilerHost.resolveModuleNames = maybeBind(host, host.resolveModuleNames); - if (!compilerHost.resolveModuleNameLiterals && !compilerHost.resolveModuleNames) { - compilerHost.resolveModuleNameLiterals = resolutionCache.resolveModuleNameLiterals.bind(resolutionCache); - } - compilerHost.resolveTypeReferenceDirectiveReferences = maybeBind(host, host.resolveTypeReferenceDirectiveReferences); - compilerHost.resolveTypeReferenceDirectives = maybeBind(host, host.resolveTypeReferenceDirectives); - if (!compilerHost.resolveTypeReferenceDirectiveReferences && !compilerHost.resolveTypeReferenceDirectives) { - compilerHost.resolveTypeReferenceDirectiveReferences = resolutionCache.resolveTypeReferenceDirectiveReferences.bind(resolutionCache); - } - compilerHost.resolveLibrary = !host.resolveLibrary ? resolutionCache.resolveLibrary.bind(resolutionCache) : host.resolveLibrary.bind(host); - compilerHost.getModuleResolutionCache = host.resolveModuleNameLiterals || host.resolveModuleNames ? maybeBind(host, host.getModuleResolutionCache) : function () { return resolutionCache.getModuleResolutionCache(); }; - var userProvidedResolution = !!host.resolveModuleNameLiterals || !!host.resolveTypeReferenceDirectiveReferences || !!host.resolveModuleNames || !!host.resolveTypeReferenceDirectives; - var customHasInvalidatedResolutions = userProvidedResolution ? maybeBind(host, host.hasInvalidatedResolutions) || returnTrue : returnFalse; - var customHasInvalidLibResolutions = host.resolveLibrary ? maybeBind(host, host.hasInvalidatedLibResolutions) || returnTrue : returnFalse; - builderProgram = readBuilderProgram(compilerOptions, compilerHost); - synchronizeProgram(); - watchConfigFileWildCardDirectories(); - if (configFileName) - updateExtendedConfigFilesWatches(toPath3(configFileName), compilerOptions, watchOptions, WatchType.ExtendedConfigFile); - return configFileName ? { getCurrentProgram: getCurrentBuilderProgram, getProgram: updateProgram, close: close } : { getCurrentProgram: getCurrentBuilderProgram, getProgram: updateProgram, updateRootFileNames: updateRootFileNames, close: close }; - function close() { - clearInvalidateResolutionsOfFailedLookupLocations(); - resolutionCache.clear(); - clearMap(sourceFilesCache, function (value) { - if (value && value.fileWatcher) { - value.fileWatcher.close(); - value.fileWatcher = void 0; - } - }); - if (configFileWatcher) { - configFileWatcher.close(); - configFileWatcher = void 0; - } - extendedConfigCache == null ? void 0 : extendedConfigCache.clear(); - extendedConfigCache = void 0; - if (sharedExtendedConfigFileWatchers) { - clearMap(sharedExtendedConfigFileWatchers, closeFileWatcherOf); - sharedExtendedConfigFileWatchers = void 0; - } - if (watchedWildcardDirectories) { - clearMap(watchedWildcardDirectories, closeFileWatcherOf); - watchedWildcardDirectories = void 0; - } - if (missingFilesMap) { - clearMap(missingFilesMap, closeFileWatcher); - missingFilesMap = void 0; - } - if (parsedConfigs) { - clearMap(parsedConfigs, function (config) { - var _a; - (_a = config.watcher) == null ? void 0 : _a.close(); - config.watcher = void 0; - if (config.watchedDirectories) - clearMap(config.watchedDirectories, closeFileWatcherOf); - config.watchedDirectories = void 0; - }); - parsedConfigs = void 0; - } - } - function getCurrentBuilderProgram() { - return builderProgram; - } - function getCurrentProgram() { - return builderProgram && builderProgram.getProgramOrUndefined(); - } - function synchronizeProgram() { - writeLog("Synchronizing program"); - Debug.assert(compilerOptions); - Debug.assert(rootFileNames); - clearInvalidateResolutionsOfFailedLookupLocations(); - var program = getCurrentBuilderProgram(); - if (hasChangedCompilerOptions) { - newLine = updateNewLine(); - if (program && changesAffectModuleResolution(program.getCompilerOptions(), compilerOptions)) { - resolutionCache.onChangesAffectModuleResolution(); - } - } - var _t = resolutionCache.createHasInvalidatedResolutions(customHasInvalidatedResolutions, customHasInvalidLibResolutions), hasInvalidatedResolutions = _t.hasInvalidatedResolutions, hasInvalidatedLibResolutions = _t.hasInvalidatedLibResolutions; - var _u = changeCompilerHostLikeToUseCache(compilerHost, toPath3), originalReadFile = _u.originalReadFile, originalFileExists = _u.originalFileExists, originalDirectoryExists = _u.originalDirectoryExists, originalCreateDirectory = _u.originalCreateDirectory, originalWriteFile = _u.originalWriteFile, readFileWithCache = _u.readFileWithCache; - if (isProgramUptoDate(getCurrentProgram(), rootFileNames, compilerOptions, function (path) { return getSourceVersion(path, readFileWithCache); }, function (fileName) { return compilerHost.fileExists(fileName); }, hasInvalidatedResolutions, hasInvalidatedLibResolutions, hasChangedAutomaticTypeDirectiveNames, getParsedCommandLine, projectReferences)) { - if (hasChangedConfigFileParsingErrors) { - if (reportFileChangeDetectedOnCreateProgram) { - reportWatchDiagnostic(Diagnostics.File_change_detected_Starting_incremental_compilation); - } - builderProgram = createProgram2( - /*rootNames*/ - void 0, - /*options*/ - void 0, compilerHost, builderProgram, configFileParsingDiagnostics, projectReferences); - hasChangedConfigFileParsingErrors = false; - } - } - else { - if (reportFileChangeDetectedOnCreateProgram) { - reportWatchDiagnostic(Diagnostics.File_change_detected_Starting_incremental_compilation); - } - createNewProgram(hasInvalidatedResolutions, hasInvalidatedLibResolutions); - } - reportFileChangeDetectedOnCreateProgram = false; - if (host.afterProgramCreate && program !== builderProgram) { - host.afterProgramCreate(builderProgram); - } - compilerHost.readFile = originalReadFile; - compilerHost.fileExists = originalFileExists; - compilerHost.directoryExists = originalDirectoryExists; - compilerHost.createDirectory = originalCreateDirectory; - compilerHost.writeFile = originalWriteFile; - return builderProgram; - } - function createNewProgram(hasInvalidatedResolutions, hasInvalidatedLibResolutions) { - var e_630, _t; - writeLog("CreatingProgramWith::"); - writeLog(" roots: ".concat(JSON.stringify(rootFileNames))); - writeLog(" options: ".concat(JSON.stringify(compilerOptions))); - if (projectReferences) - writeLog(" projectReferences: ".concat(JSON.stringify(projectReferences))); - var needsUpdateInTypeRootWatch = hasChangedCompilerOptions || !getCurrentProgram(); - hasChangedCompilerOptions = false; - hasChangedConfigFileParsingErrors = false; - resolutionCache.startCachingPerDirectoryResolution(); - compilerHost.hasInvalidatedResolutions = hasInvalidatedResolutions; - compilerHost.hasInvalidatedLibResolutions = hasInvalidatedLibResolutions; - compilerHost.hasChangedAutomaticTypeDirectiveNames = hasChangedAutomaticTypeDirectiveNames; - var oldProgram = getCurrentProgram(); - builderProgram = createProgram2(rootFileNames, compilerOptions, compilerHost, builderProgram, configFileParsingDiagnostics, projectReferences); - resolutionCache.finishCachingPerDirectoryResolution(builderProgram.getProgram(), oldProgram); - updateMissingFilePathsWatch(builderProgram.getProgram(), missingFilesMap || (missingFilesMap = /* @__PURE__ */ new Map()), watchMissingFilePath); - if (needsUpdateInTypeRootWatch) { - resolutionCache.updateTypeRootsWatch(); - } - if (missingFilePathsRequestedForRelease) { - try { - for (var missingFilePathsRequestedForRelease_1 = __values(missingFilePathsRequestedForRelease), missingFilePathsRequestedForRelease_1_1 = missingFilePathsRequestedForRelease_1.next(); !missingFilePathsRequestedForRelease_1_1.done; missingFilePathsRequestedForRelease_1_1 = missingFilePathsRequestedForRelease_1.next()) { - var missingFilePath = missingFilePathsRequestedForRelease_1_1.value; - if (!missingFilesMap.has(missingFilePath)) { - sourceFilesCache.delete(missingFilePath); - } - } - } - catch (e_630_1) { e_630 = { error: e_630_1 }; } - finally { - try { - if (missingFilePathsRequestedForRelease_1_1 && !missingFilePathsRequestedForRelease_1_1.done && (_t = missingFilePathsRequestedForRelease_1.return)) _t.call(missingFilePathsRequestedForRelease_1); - } - finally { if (e_630) throw e_630.error; } - } - missingFilePathsRequestedForRelease = void 0; - } - } - function updateRootFileNames(files) { - Debug.assert(!configFileName, "Cannot update root file names with config file watch mode"); - rootFileNames = files; - scheduleProgramUpdate(); - } - function updateNewLine() { - return getNewLineCharacter(compilerOptions || optionsToExtendForConfigFile); - } - function toPath3(fileName) { - return toPath(fileName, currentDirectory, getCanonicalFileName); - } - function isFileMissingOnHost(hostSourceFile) { - return typeof hostSourceFile === "boolean"; - } - function isFilePresenceUnknownOnHost(hostSourceFile) { - return typeof hostSourceFile.version === "boolean"; - } - function fileExists(fileName) { - var path = toPath3(fileName); - if (isFileMissingOnHost(sourceFilesCache.get(path))) { - return false; - } - return directoryStructureHost.fileExists(fileName); - } - function getVersionedSourceFileByPath(fileName, path, languageVersionOrOptions, onError, shouldCreateNewSourceFile) { - var hostSourceFile = sourceFilesCache.get(path); - if (isFileMissingOnHost(hostSourceFile)) { - return void 0; - } - var impliedNodeFormat = typeof languageVersionOrOptions === "object" ? languageVersionOrOptions.impliedNodeFormat : void 0; - if (hostSourceFile === void 0 || shouldCreateNewSourceFile || isFilePresenceUnknownOnHost(hostSourceFile) || hostSourceFile.sourceFile.impliedNodeFormat !== impliedNodeFormat) { - var sourceFile = getNewSourceFile(fileName, languageVersionOrOptions, onError); - if (hostSourceFile) { - if (sourceFile) { - hostSourceFile.sourceFile = sourceFile; - hostSourceFile.version = sourceFile.version; - if (!hostSourceFile.fileWatcher) { - hostSourceFile.fileWatcher = watchFilePath(path, fileName, onSourceFileChange, 250 /* Low */, watchOptions, WatchType.SourceFile); - } - } - else { - if (hostSourceFile.fileWatcher) { - hostSourceFile.fileWatcher.close(); - } - sourceFilesCache.set(path, false); - } - } - else { - if (sourceFile) { - var fileWatcher = watchFilePath(path, fileName, onSourceFileChange, 250 /* Low */, watchOptions, WatchType.SourceFile); - sourceFilesCache.set(path, { sourceFile: sourceFile, version: sourceFile.version, fileWatcher: fileWatcher }); - } - else { - sourceFilesCache.set(path, false); - } - } - return sourceFile; - } - return hostSourceFile.sourceFile; - } - function nextSourceFileVersion(path) { - var hostSourceFile = sourceFilesCache.get(path); - if (hostSourceFile !== void 0) { - if (isFileMissingOnHost(hostSourceFile)) { - sourceFilesCache.set(path, { version: false }); - } - else { - hostSourceFile.version = false; - } - } - } - function getSourceVersion(path, readFileWithCache) { - var hostSourceFile = sourceFilesCache.get(path); - if (!hostSourceFile) - return void 0; - if (hostSourceFile.version) - return hostSourceFile.version; - var text = readFileWithCache(path); - return text !== void 0 ? getSourceFileVersionAsHashFromText(compilerHost, text) : void 0; - } - function onReleaseOldSourceFile(oldSourceFile, _oldOptions, hasSourceFileByPath) { - var hostSourceFileInfo = sourceFilesCache.get(oldSourceFile.resolvedPath); - if (hostSourceFileInfo !== void 0) { - if (isFileMissingOnHost(hostSourceFileInfo)) { - (missingFilePathsRequestedForRelease || (missingFilePathsRequestedForRelease = [])).push(oldSourceFile.path); - } - else if (hostSourceFileInfo.sourceFile === oldSourceFile) { - if (hostSourceFileInfo.fileWatcher) { - hostSourceFileInfo.fileWatcher.close(); - } - sourceFilesCache.delete(oldSourceFile.resolvedPath); - if (!hasSourceFileByPath) { - resolutionCache.removeResolutionsOfFile(oldSourceFile.path); - } - } - } - } - function reportWatchDiagnostic(message) { - if (host.onWatchStatusChange) { - host.onWatchStatusChange(createCompilerDiagnostic(message), newLine, compilerOptions || optionsToExtendForConfigFile); - } - } - function hasChangedAutomaticTypeDirectiveNames() { - return resolutionCache.hasChangedAutomaticTypeDirectiveNames(); - } - function clearInvalidateResolutionsOfFailedLookupLocations() { - if (!timerToInvalidateFailedLookupResolutions) - return false; - host.clearTimeout(timerToInvalidateFailedLookupResolutions); - timerToInvalidateFailedLookupResolutions = void 0; - return true; - } - function scheduleInvalidateResolutionsOfFailedLookupLocations() { - if (!host.setTimeout || !host.clearTimeout) { - return resolutionCache.invalidateResolutionsOfFailedLookupLocations(); - } - var pending = clearInvalidateResolutionsOfFailedLookupLocations(); - writeLog("Scheduling invalidateFailedLookup".concat(pending ? ", Cancelled earlier one" : "")); - timerToInvalidateFailedLookupResolutions = host.setTimeout(invalidateResolutionsOfFailedLookup, 250, "timerToInvalidateFailedLookupResolutions"); - } - function invalidateResolutionsOfFailedLookup() { - timerToInvalidateFailedLookupResolutions = void 0; - if (resolutionCache.invalidateResolutionsOfFailedLookupLocations()) { - scheduleProgramUpdate(); - } - } - function scheduleProgramUpdate() { - if (!host.setTimeout || !host.clearTimeout) { - return; - } - if (timerToUpdateProgram) { - host.clearTimeout(timerToUpdateProgram); - } - writeLog("Scheduling update"); - timerToUpdateProgram = host.setTimeout(updateProgramWithWatchStatus, 250, "timerToUpdateProgram"); - } - function scheduleProgramReload() { - Debug.assert(!!configFileName); - reloadLevel = 2 /* Full */; - scheduleProgramUpdate(); - } - function updateProgramWithWatchStatus() { - timerToUpdateProgram = void 0; - reportFileChangeDetectedOnCreateProgram = true; - updateProgram(); - } - function updateProgram() { - var _a, _b, _c, _d; - switch (reloadLevel) { - case 1 /* Partial */: - (_a = perfLogger) == null ? void 0 : _a.logStartUpdateProgram("PartialConfigReload"); - reloadFileNamesFromConfigFile(); - break; - case 2 /* Full */: - (_b = perfLogger) == null ? void 0 : _b.logStartUpdateProgram("FullConfigReload"); - reloadConfigFile(); - break; - default: - (_c = perfLogger) == null ? void 0 : _c.logStartUpdateProgram("SynchronizeProgram"); - synchronizeProgram(); - break; - } - (_d = perfLogger) == null ? void 0 : _d.logStopUpdateProgram("Done"); - return getCurrentBuilderProgram(); - } - function reloadFileNamesFromConfigFile() { - writeLog("Reloading new file names and options"); - Debug.assert(compilerOptions); - Debug.assert(configFileName); - reloadLevel = 0 /* None */; - rootFileNames = getFileNamesFromConfigSpecs(compilerOptions.configFile.configFileSpecs, getNormalizedAbsolutePath(getDirectoryPath(configFileName), currentDirectory), compilerOptions, parseConfigFileHost, extraFileExtensions); - if (updateErrorForNoInputFiles(rootFileNames, getNormalizedAbsolutePath(configFileName, currentDirectory), compilerOptions.configFile.configFileSpecs, configFileParsingDiagnostics, canConfigFileJsonReportNoInputFiles)) { - hasChangedConfigFileParsingErrors = true; - } - synchronizeProgram(); - } - function reloadConfigFile() { - Debug.assert(configFileName); - writeLog("Reloading config file: ".concat(configFileName)); - reloadLevel = 0 /* None */; - if (cachedDirectoryStructureHost) { - cachedDirectoryStructureHost.clearCache(); - } - parseConfigFile2(); - hasChangedCompilerOptions = true; - synchronizeProgram(); - watchConfigFileWildCardDirectories(); - updateExtendedConfigFilesWatches(toPath3(configFileName), compilerOptions, watchOptions, WatchType.ExtendedConfigFile); - } - function parseConfigFile2() { - Debug.assert(configFileName); - setConfigFileParsingResult(getParsedCommandLineOfConfigFile(configFileName, optionsToExtendForConfigFile, parseConfigFileHost, extendedConfigCache || (extendedConfigCache = /* @__PURE__ */ new Map()), watchOptionsToExtend, extraFileExtensions)); - } - function setConfigFileParsingResult(configFileParseResult) { - rootFileNames = configFileParseResult.fileNames; - compilerOptions = configFileParseResult.options; - watchOptions = configFileParseResult.watchOptions; - projectReferences = configFileParseResult.projectReferences; - wildcardDirectories = configFileParseResult.wildcardDirectories; - configFileParsingDiagnostics = getConfigFileParsingDiagnostics(configFileParseResult).slice(); - canConfigFileJsonReportNoInputFiles = canJsonReportNoInputFiles(configFileParseResult.raw); - hasChangedConfigFileParsingErrors = true; - } - function getParsedCommandLine(configFileName2) { - var configPath = toPath3(configFileName2); - var config = parsedConfigs == null ? void 0 : parsedConfigs.get(configPath); - if (config) { - if (!config.reloadLevel) - return config.parsedCommandLine; - if (config.parsedCommandLine && config.reloadLevel === 1 /* Partial */ && !host.getParsedCommandLine) { - writeLog("Reloading new file names and options"); - Debug.assert(compilerOptions); - var fileNames = getFileNamesFromConfigSpecs(config.parsedCommandLine.options.configFile.configFileSpecs, getNormalizedAbsolutePath(getDirectoryPath(configFileName2), currentDirectory), compilerOptions, parseConfigFileHost); - config.parsedCommandLine = __assign(__assign({}, config.parsedCommandLine), { fileNames: fileNames }); - config.reloadLevel = void 0; - return config.parsedCommandLine; - } - } - writeLog("Loading config file: ".concat(configFileName2)); - var parsedCommandLine = host.getParsedCommandLine ? host.getParsedCommandLine(configFileName2) : getParsedCommandLineFromConfigFileHost(configFileName2); - if (config) { - config.parsedCommandLine = parsedCommandLine; - config.reloadLevel = void 0; - } - else { - (parsedConfigs || (parsedConfigs = /* @__PURE__ */ new Map())).set(configPath, config = { parsedCommandLine: parsedCommandLine }); - } - watchReferencedProject(configFileName2, configPath, config); - return parsedCommandLine; - } - function getParsedCommandLineFromConfigFileHost(configFileName2) { - var onUnRecoverableConfigFileDiagnostic = parseConfigFileHost.onUnRecoverableConfigFileDiagnostic; - parseConfigFileHost.onUnRecoverableConfigFileDiagnostic = noop; - var parsedCommandLine = getParsedCommandLineOfConfigFile(configFileName2, - /*optionsToExtend*/ - void 0, parseConfigFileHost, extendedConfigCache || (extendedConfigCache = /* @__PURE__ */ new Map()), watchOptionsToExtend); - parseConfigFileHost.onUnRecoverableConfigFileDiagnostic = onUnRecoverableConfigFileDiagnostic; - return parsedCommandLine; - } - function onReleaseParsedCommandLine(fileName) { - var _a; - var path = toPath3(fileName); - var config = parsedConfigs == null ? void 0 : parsedConfigs.get(path); - if (!config) - return; - parsedConfigs.delete(path); - if (config.watchedDirectories) - clearMap(config.watchedDirectories, closeFileWatcherOf); - (_a = config.watcher) == null ? void 0 : _a.close(); - clearSharedExtendedConfigFileWatcher(path, sharedExtendedConfigFileWatchers); - } - function watchFilePath(path, file, callback, pollingInterval, options, watchType) { - return watchFile2(file, function (fileName, eventKind) { return callback(fileName, eventKind, path); }, pollingInterval, options, watchType); - } - function onSourceFileChange(fileName, eventKind, path) { - updateCachedSystemWithFile(fileName, path, eventKind); - if (eventKind === 2 /* Deleted */ && sourceFilesCache.has(path)) { - resolutionCache.invalidateResolutionOfFile(path); - } - nextSourceFileVersion(path); - scheduleProgramUpdate(); - } - function updateCachedSystemWithFile(fileName, path, eventKind) { - if (cachedDirectoryStructureHost) { - cachedDirectoryStructureHost.addOrDeleteFile(fileName, path, eventKind); - } - } - function watchMissingFilePath(missingFilePath) { - return (parsedConfigs == null ? void 0 : parsedConfigs.has(missingFilePath)) ? noopFileWatcher : watchFilePath(missingFilePath, missingFilePath, onMissingFileChange, 500 /* Medium */, watchOptions, WatchType.MissingFile); - } - function onMissingFileChange(fileName, eventKind, missingFilePath) { - updateCachedSystemWithFile(fileName, missingFilePath, eventKind); - if (eventKind === 0 /* Created */ && missingFilesMap.has(missingFilePath)) { - missingFilesMap.get(missingFilePath).close(); - missingFilesMap.delete(missingFilePath); - nextSourceFileVersion(missingFilePath); - scheduleProgramUpdate(); - } - } - function watchConfigFileWildCardDirectories() { - if (wildcardDirectories) { - updateWatchingWildcardDirectories(watchedWildcardDirectories || (watchedWildcardDirectories = /* @__PURE__ */ new Map()), new Map(Object.entries(wildcardDirectories)), watchWildcardDirectory); - } - else if (watchedWildcardDirectories) { - clearMap(watchedWildcardDirectories, closeFileWatcherOf); - } - } - function watchWildcardDirectory(directory, flags) { - return watchDirectory(directory, function (fileOrDirectory) { - Debug.assert(configFileName); - Debug.assert(compilerOptions); - var fileOrDirectoryPath = toPath3(fileOrDirectory); - if (cachedDirectoryStructureHost) { - cachedDirectoryStructureHost.addOrDeleteFileOrDirectory(fileOrDirectory, fileOrDirectoryPath); - } - nextSourceFileVersion(fileOrDirectoryPath); - if (isIgnoredFileFromWildCardWatching({ - watchedDirPath: toPath3(directory), - fileOrDirectory: fileOrDirectory, - fileOrDirectoryPath: fileOrDirectoryPath, - configFileName: configFileName, - extraFileExtensions: extraFileExtensions, - options: compilerOptions, - program: getCurrentBuilderProgram() || rootFileNames, - currentDirectory: currentDirectory, - useCaseSensitiveFileNames: useCaseSensitiveFileNames2, - writeLog: writeLog, - toPath: toPath3 - })) - return; - if (reloadLevel !== 2 /* Full */) { - reloadLevel = 1 /* Partial */; - scheduleProgramUpdate(); - } - }, flags, watchOptions, WatchType.WildcardDirectory); - } - function updateExtendedConfigFilesWatches(forProjectPath, options, watchOptions2, watchType) { - updateSharedExtendedConfigFileWatcher(forProjectPath, options, sharedExtendedConfigFileWatchers || (sharedExtendedConfigFileWatchers = /* @__PURE__ */ new Map()), function (extendedConfigFileName, extendedConfigFilePath) { return watchFile2(extendedConfigFileName, function (_fileName, eventKind) { - var _a; - updateCachedSystemWithFile(extendedConfigFileName, extendedConfigFilePath, eventKind); - if (extendedConfigCache) - cleanExtendedConfigCache(extendedConfigCache, extendedConfigFilePath, toPath3); - var projects = (_a = sharedExtendedConfigFileWatchers.get(extendedConfigFilePath)) == null ? void 0 : _a.projects; - if (!(projects == null ? void 0 : projects.size)) - return; - projects.forEach(function (projectPath) { - if (configFileName && toPath3(configFileName) === projectPath) { - reloadLevel = 2 /* Full */; - } - else { - var config = parsedConfigs == null ? void 0 : parsedConfigs.get(projectPath); - if (config) - config.reloadLevel = 2 /* Full */; - resolutionCache.removeResolutionsFromProjectReferenceRedirects(projectPath); - } - scheduleProgramUpdate(); - }); - }, 2e3 /* High */, watchOptions2, watchType); }, toPath3); - } - function watchReferencedProject(configFileName2, configPath, commandLine) { - var _a, _b, _c, _d, _e; - commandLine.watcher || (commandLine.watcher = watchFile2(configFileName2, function (_fileName, eventKind) { - updateCachedSystemWithFile(configFileName2, configPath, eventKind); - var config = parsedConfigs == null ? void 0 : parsedConfigs.get(configPath); - if (config) - config.reloadLevel = 2 /* Full */; - resolutionCache.removeResolutionsFromProjectReferenceRedirects(configPath); - scheduleProgramUpdate(); - }, 2e3 /* High */, ((_a = commandLine.parsedCommandLine) == null ? void 0 : _a.watchOptions) || watchOptions, WatchType.ConfigFileOfReferencedProject)); - if ((_b = commandLine.parsedCommandLine) == null ? void 0 : _b.wildcardDirectories) { - updateWatchingWildcardDirectories(commandLine.watchedDirectories || (commandLine.watchedDirectories = /* @__PURE__ */ new Map()), new Map(Object.entries((_c = commandLine.parsedCommandLine) == null ? void 0 : _c.wildcardDirectories)), function (directory, flags) { - var _a2; - return watchDirectory(directory, function (fileOrDirectory) { - var fileOrDirectoryPath = toPath3(fileOrDirectory); - if (cachedDirectoryStructureHost) { - cachedDirectoryStructureHost.addOrDeleteFileOrDirectory(fileOrDirectory, fileOrDirectoryPath); - } - nextSourceFileVersion(fileOrDirectoryPath); - var config = parsedConfigs == null ? void 0 : parsedConfigs.get(configPath); - if (!(config == null ? void 0 : config.parsedCommandLine)) - return; - if (isIgnoredFileFromWildCardWatching({ - watchedDirPath: toPath3(directory), - fileOrDirectory: fileOrDirectory, - fileOrDirectoryPath: fileOrDirectoryPath, - configFileName: configFileName2, - options: config.parsedCommandLine.options, - program: config.parsedCommandLine.fileNames, - currentDirectory: currentDirectory, - useCaseSensitiveFileNames: useCaseSensitiveFileNames2, - writeLog: writeLog, - toPath: toPath3 - })) - return; - if (config.reloadLevel !== 2 /* Full */) { - config.reloadLevel = 1 /* Partial */; - scheduleProgramUpdate(); - } - }, flags, ((_a2 = commandLine.parsedCommandLine) == null ? void 0 : _a2.watchOptions) || watchOptions, WatchType.WildcardDirectoryOfReferencedProject); - }); - } - else if (commandLine.watchedDirectories) { - clearMap(commandLine.watchedDirectories, closeFileWatcherOf); - commandLine.watchedDirectories = void 0; - } - updateExtendedConfigFilesWatches(configPath, (_d = commandLine.parsedCommandLine) == null ? void 0 : _d.options, ((_e = commandLine.parsedCommandLine) == null ? void 0 : _e.watchOptions) || watchOptions, WatchType.ExtendedConfigOfReferencedProject); - } -} -// src/compiler/tsbuild.ts -var UpToDateStatusType = /* @__PURE__ */ (function (UpToDateStatusType2) { - UpToDateStatusType2[UpToDateStatusType2["Unbuildable"] = 0] = "Unbuildable"; - UpToDateStatusType2[UpToDateStatusType2["UpToDate"] = 1] = "UpToDate"; - UpToDateStatusType2[UpToDateStatusType2["UpToDateWithUpstreamTypes"] = 2] = "UpToDateWithUpstreamTypes"; - UpToDateStatusType2[UpToDateStatusType2["OutOfDateWithPrepend"] = 3] = "OutOfDateWithPrepend"; - UpToDateStatusType2[UpToDateStatusType2["OutputMissing"] = 4] = "OutputMissing"; - UpToDateStatusType2[UpToDateStatusType2["ErrorReadingFile"] = 5] = "ErrorReadingFile"; - UpToDateStatusType2[UpToDateStatusType2["OutOfDateWithSelf"] = 6] = "OutOfDateWithSelf"; - UpToDateStatusType2[UpToDateStatusType2["OutOfDateWithUpstream"] = 7] = "OutOfDateWithUpstream"; - UpToDateStatusType2[UpToDateStatusType2["OutOfDateBuildInfo"] = 8] = "OutOfDateBuildInfo"; - UpToDateStatusType2[UpToDateStatusType2["OutOfDateOptions"] = 9] = "OutOfDateOptions"; - UpToDateStatusType2[UpToDateStatusType2["OutOfDateRoots"] = 10] = "OutOfDateRoots"; - UpToDateStatusType2[UpToDateStatusType2["UpstreamOutOfDate"] = 11] = "UpstreamOutOfDate"; - UpToDateStatusType2[UpToDateStatusType2["UpstreamBlocked"] = 12] = "UpstreamBlocked"; - UpToDateStatusType2[UpToDateStatusType2["ComputingUpstream"] = 13] = "ComputingUpstream"; - UpToDateStatusType2[UpToDateStatusType2["TsVersionOutputOfDate"] = 14] = "TsVersionOutputOfDate"; - UpToDateStatusType2[UpToDateStatusType2["UpToDateWithInputFileText"] = 15] = "UpToDateWithInputFileText"; - UpToDateStatusType2[UpToDateStatusType2["ContainerOnly"] = 16] = "ContainerOnly"; - UpToDateStatusType2[UpToDateStatusType2["ForceBuild"] = 17] = "ForceBuild"; - return UpToDateStatusType2; -})(UpToDateStatusType || {}); -function resolveConfigFileProjectName(project) { - if (fileExtensionIs(project, ".json" /* Json */)) { - return project; - } - return combinePaths(project, "tsconfig.json"); -} -// src/compiler/tsbuildPublic.ts -var minimumDate = /* @__PURE__ */ new Date(-864e13); -var maximumDate = /* @__PURE__ */ new Date(864e13); -function getOrCreateValueFromConfigFileMap(configFileMap, resolved, createT) { - var existingValue = configFileMap.get(resolved); - var newValue; - if (!existingValue) { - newValue = createT(); - configFileMap.set(resolved, newValue); - } - return existingValue || newValue; -} -function getOrCreateValueMapFromConfigFileMap(configFileMap, resolved) { - return getOrCreateValueFromConfigFileMap(configFileMap, resolved, function () { /* @__PURE__ */ return new Map(); }); -} -function getCurrentTime(host) { - return host.now ? host.now() : /* @__PURE__ */ new Date(); -} -function isCircularBuildOrder(buildOrder) { - return !!buildOrder && !!buildOrder.buildOrder; -} -function getBuildOrderFromAnyBuildOrder(anyBuildOrder) { - return isCircularBuildOrder(anyBuildOrder) ? anyBuildOrder.buildOrder : anyBuildOrder; -} -function createBuilderStatusReporter(system, pretty) { - return function (diagnostic) { - var output = pretty ? "[".concat(formatColorAndReset(getLocaleTimeString(system), "\x1B[90m" /* Grey */), "] ") : "".concat(getLocaleTimeString(system), " - "); - output += "".concat(flattenDiagnosticMessageText(diagnostic.messageText, system.newLine)).concat(system.newLine + system.newLine); - system.write(output); - }; -} -function createSolutionBuilderHostBase(system, createProgram2, reportDiagnostic, reportSolutionBuilderStatus) { - var host = createProgramHost(system, createProgram2); - host.getModifiedTime = system.getModifiedTime ? function (path) { return system.getModifiedTime(path); } : returnUndefined; - host.setModifiedTime = system.setModifiedTime ? function (path, date) { return system.setModifiedTime(path, date); } : noop; - host.deleteFile = system.deleteFile ? function (path) { return system.deleteFile(path); } : noop; - host.reportDiagnostic = reportDiagnostic || createDiagnosticReporter(system); - host.reportSolutionBuilderStatus = reportSolutionBuilderStatus || createBuilderStatusReporter(system); - host.now = maybeBind(system, system.now); - return host; -} -function createSolutionBuilderHost(system, createProgram2, reportDiagnostic, reportSolutionBuilderStatus, reportErrorSummary2) { - if (system === void 0) { system = sys; } - var host = createSolutionBuilderHostBase(system, createProgram2, reportDiagnostic, reportSolutionBuilderStatus); - host.reportErrorSummary = reportErrorSummary2; - return host; -} -function createSolutionBuilderWithWatchHost(system, createProgram2, reportDiagnostic, reportSolutionBuilderStatus, reportWatchStatus2) { - if (system === void 0) { system = sys; } - var host = createSolutionBuilderHostBase(system, createProgram2, reportDiagnostic, reportSolutionBuilderStatus); - var watchHost = createWatchHost(system, reportWatchStatus2); - copyProperties(host, watchHost); - return host; -} -function getCompilerOptionsOfBuildOptions(buildOptions) { - var result = {}; - commonOptionsWithBuild.forEach(function (option) { - if (hasProperty(buildOptions, option.name)) - result[option.name] = buildOptions[option.name]; - }); - return result; -} -function createSolutionBuilder(host, rootNames, defaultOptions) { - return createSolutionBuilderWorker( - /*watch*/ - false, host, rootNames, defaultOptions); -} -function createSolutionBuilderWithWatch(host, rootNames, defaultOptions, baseWatchOptions) { - return createSolutionBuilderWorker( - /*watch*/ - true, host, rootNames, defaultOptions, baseWatchOptions); -} -function createSolutionBuilderState(watch, hostOrHostWithWatch, rootNames, options, baseWatchOptions) { - var host = hostOrHostWithWatch; - var hostWithWatch = hostOrHostWithWatch; - var baseCompilerOptions = getCompilerOptionsOfBuildOptions(options); - var compilerHost = createCompilerHostFromProgramHost(host, function () { return state.projectCompilerOptions; }); - setGetSourceFileAsHashVersioned(compilerHost); - compilerHost.getParsedCommandLine = function (fileName) { return parseConfigFile(state, fileName, toResolvedConfigFilePath(state, fileName)); }; - compilerHost.resolveModuleNameLiterals = maybeBind(host, host.resolveModuleNameLiterals); - compilerHost.resolveTypeReferenceDirectiveReferences = maybeBind(host, host.resolveTypeReferenceDirectiveReferences); - compilerHost.resolveLibrary = maybeBind(host, host.resolveLibrary); - compilerHost.resolveModuleNames = maybeBind(host, host.resolveModuleNames); - compilerHost.resolveTypeReferenceDirectives = maybeBind(host, host.resolveTypeReferenceDirectives); - compilerHost.getModuleResolutionCache = maybeBind(host, host.getModuleResolutionCache); - var moduleResolutionCache, typeReferenceDirectiveResolutionCache; - if (!compilerHost.resolveModuleNameLiterals && !compilerHost.resolveModuleNames) { - moduleResolutionCache = createModuleResolutionCache(compilerHost.getCurrentDirectory(), compilerHost.getCanonicalFileName); - compilerHost.resolveModuleNameLiterals = function (moduleNames, containingFile, redirectedReference, options2, containingSourceFile) { return loadWithModeAwareCache(moduleNames, containingFile, redirectedReference, options2, containingSourceFile, host, moduleResolutionCache, createModuleResolutionLoader); }; - compilerHost.getModuleResolutionCache = function () { return moduleResolutionCache; }; - } - if (!compilerHost.resolveTypeReferenceDirectiveReferences && !compilerHost.resolveTypeReferenceDirectives) { - typeReferenceDirectiveResolutionCache = createTypeReferenceDirectiveResolutionCache(compilerHost.getCurrentDirectory(), compilerHost.getCanonicalFileName, - /*options*/ - void 0, moduleResolutionCache == null ? void 0 : moduleResolutionCache.getPackageJsonInfoCache()); - compilerHost.resolveTypeReferenceDirectiveReferences = function (typeDirectiveNames, containingFile, redirectedReference, options2, containingSourceFile) { return loadWithModeAwareCache(typeDirectiveNames, containingFile, redirectedReference, options2, containingSourceFile, host, typeReferenceDirectiveResolutionCache, createTypeReferenceResolutionLoader); }; - } - var libraryResolutionCache; - if (!compilerHost.resolveLibrary) { - libraryResolutionCache = createModuleResolutionCache(compilerHost.getCurrentDirectory(), compilerHost.getCanonicalFileName, - /*options*/ - void 0, moduleResolutionCache == null ? void 0 : moduleResolutionCache.getPackageJsonInfoCache()); - compilerHost.resolveLibrary = function (libraryName, resolveFrom, options2) { return resolveLibrary(libraryName, resolveFrom, options2, host, libraryResolutionCache); }; - } - compilerHost.getBuildInfo = function (fileName, configFilePath) { return getBuildInfo3(state, fileName, toResolvedConfigFilePath(state, configFilePath), - /*modifiedTime*/ - void 0); }; - var _t = createWatchFactory(hostWithWatch, options), watchFile2 = _t.watchFile, watchDirectory = _t.watchDirectory, writeLog = _t.writeLog; - var state = { - host: host, - hostWithWatch: hostWithWatch, - parseConfigFileHost: parseConfigHostFromCompilerHostLike(host), - write: maybeBind(host, host.trace), - // State of solution - options: options, - baseCompilerOptions: baseCompilerOptions, - rootNames: rootNames, - baseWatchOptions: baseWatchOptions, - resolvedConfigFilePaths: /* @__PURE__ */ new Map(), - configFileCache: /* @__PURE__ */ new Map(), - projectStatus: /* @__PURE__ */ new Map(), - extendedConfigCache: /* @__PURE__ */ new Map(), - buildInfoCache: /* @__PURE__ */ new Map(), - outputTimeStamps: /* @__PURE__ */ new Map(), - builderPrograms: /* @__PURE__ */ new Map(), - diagnostics: /* @__PURE__ */ new Map(), - projectPendingBuild: /* @__PURE__ */ new Map(), - projectErrorsReported: /* @__PURE__ */ new Map(), - compilerHost: compilerHost, - moduleResolutionCache: moduleResolutionCache, - typeReferenceDirectiveResolutionCache: typeReferenceDirectiveResolutionCache, - libraryResolutionCache: libraryResolutionCache, - // Mutable state - buildOrder: void 0, - readFileWithCache: function (f) { return host.readFile(f); }, - projectCompilerOptions: baseCompilerOptions, - cache: void 0, - allProjectBuildPending: true, - needsSummary: true, - watchAllProjectsPending: watch, - // Watch state - watch: watch, - allWatchedWildcardDirectories: /* @__PURE__ */ new Map(), - allWatchedInputFiles: /* @__PURE__ */ new Map(), - allWatchedConfigFiles: /* @__PURE__ */ new Map(), - allWatchedExtendedConfigFiles: /* @__PURE__ */ new Map(), - allWatchedPackageJsonFiles: /* @__PURE__ */ new Map(), - filesWatched: /* @__PURE__ */ new Map(), - lastCachedPackageJsonLookups: /* @__PURE__ */ new Map(), - timerToBuildInvalidatedProject: void 0, - reportFileChangeDetected: false, - watchFile: watchFile2, - watchDirectory: watchDirectory, - writeLog: writeLog - }; - return state; -} -function toPath2(state, fileName) { - return toPath(fileName, state.compilerHost.getCurrentDirectory(), state.compilerHost.getCanonicalFileName); -} -function toResolvedConfigFilePath(state, fileName) { - var resolvedConfigFilePaths = state.resolvedConfigFilePaths; - var path = resolvedConfigFilePaths.get(fileName); - if (path !== void 0) - return path; - var resolvedPath = toPath2(state, fileName); - resolvedConfigFilePaths.set(fileName, resolvedPath); - return resolvedPath; -} -function isParsedCommandLine(entry) { - return !!entry.options; -} -function getCachedParsedConfigFile(state, configFilePath) { - var value = state.configFileCache.get(configFilePath); - return value && isParsedCommandLine(value) ? value : void 0; -} -function parseConfigFile(state, configFileName, configFilePath) { - var configFileCache = state.configFileCache; - var value = configFileCache.get(configFilePath); - if (value) { - return isParsedCommandLine(value) ? value : void 0; - } - mark("SolutionBuilder::beforeConfigFileParsing"); - var diagnostic; - var parseConfigFileHost = state.parseConfigFileHost, baseCompilerOptions = state.baseCompilerOptions, baseWatchOptions = state.baseWatchOptions, extendedConfigCache = state.extendedConfigCache, host = state.host; - var parsed; - if (host.getParsedCommandLine) { - parsed = host.getParsedCommandLine(configFileName); - if (!parsed) - diagnostic = createCompilerDiagnostic(Diagnostics.File_0_not_found, configFileName); - } - else { - parseConfigFileHost.onUnRecoverableConfigFileDiagnostic = function (d) { return diagnostic = d; }; - parsed = getParsedCommandLineOfConfigFile(configFileName, baseCompilerOptions, parseConfigFileHost, extendedConfigCache, baseWatchOptions); - parseConfigFileHost.onUnRecoverableConfigFileDiagnostic = noop; - } - configFileCache.set(configFilePath, parsed || diagnostic); - mark("SolutionBuilder::afterConfigFileParsing"); - measure("SolutionBuilder::Config file parsing", "SolutionBuilder::beforeConfigFileParsing", "SolutionBuilder::afterConfigFileParsing"); - return parsed; -} -function resolveProjectName(state, name) { - return resolveConfigFileProjectName(resolvePath(state.compilerHost.getCurrentDirectory(), name)); -} -function createBuildOrder(state, roots) { - var e_631, _t; - var temporaryMarks = /* @__PURE__ */ new Map(); - var permanentMarks = /* @__PURE__ */ new Map(); - var circularityReportStack = []; - var buildOrder; - var circularDiagnostics; - try { - for (var roots_1 = __values(roots), roots_1_1 = roots_1.next(); !roots_1_1.done; roots_1_1 = roots_1.next()) { - var root = roots_1_1.value; - visit(root); - } - } - catch (e_631_1) { e_631 = { error: e_631_1 }; } - finally { - try { - if (roots_1_1 && !roots_1_1.done && (_t = roots_1.return)) _t.call(roots_1); - } - finally { if (e_631) throw e_631.error; } - } - return circularDiagnostics ? { buildOrder: buildOrder || emptyArray, circularDiagnostics: circularDiagnostics } : buildOrder || emptyArray; - function visit(configFileName, inCircularContext) { - var e_632, _t; - var projPath = toResolvedConfigFilePath(state, configFileName); - if (permanentMarks.has(projPath)) - return; - if (temporaryMarks.has(projPath)) { - if (!inCircularContext) { - (circularDiagnostics || (circularDiagnostics = [])).push(createCompilerDiagnostic(Diagnostics.Project_references_may_not_form_a_circular_graph_Cycle_detected_Colon_0, circularityReportStack.join("\r\n"))); - } - return; - } - temporaryMarks.set(projPath, true); - circularityReportStack.push(configFileName); - var parsed = parseConfigFile(state, configFileName, projPath); - if (parsed && parsed.projectReferences) { - try { - for (var _u = __values(parsed.projectReferences), _v = _u.next(); !_v.done; _v = _u.next()) { - var ref = _v.value; - var resolvedRefPath = resolveProjectName(state, ref.path); - visit(resolvedRefPath, inCircularContext || ref.circular); - } - } - catch (e_632_1) { e_632 = { error: e_632_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_632) throw e_632.error; } - } - } - circularityReportStack.pop(); - permanentMarks.set(projPath, true); - (buildOrder || (buildOrder = [])).push(configFileName); - } -} -function getBuildOrder(state) { - return state.buildOrder || createStateBuildOrder(state); -} -function createStateBuildOrder(state) { - var buildOrder = createBuildOrder(state, state.rootNames.map(function (f) { return resolveProjectName(state, f); })); - state.resolvedConfigFilePaths.clear(); - var currentProjects = new Map(getBuildOrderFromAnyBuildOrder(buildOrder).map(function (resolved) { return [toResolvedConfigFilePath(state, resolved), true]; })); - var noopOnDelete = { onDeleteValue: noop }; - mutateMapSkippingNewValues(state.configFileCache, currentProjects, noopOnDelete); - mutateMapSkippingNewValues(state.projectStatus, currentProjects, noopOnDelete); - mutateMapSkippingNewValues(state.builderPrograms, currentProjects, noopOnDelete); - mutateMapSkippingNewValues(state.diagnostics, currentProjects, noopOnDelete); - mutateMapSkippingNewValues(state.projectPendingBuild, currentProjects, noopOnDelete); - mutateMapSkippingNewValues(state.projectErrorsReported, currentProjects, noopOnDelete); - mutateMapSkippingNewValues(state.buildInfoCache, currentProjects, noopOnDelete); - mutateMapSkippingNewValues(state.outputTimeStamps, currentProjects, noopOnDelete); - if (state.watch) { - mutateMapSkippingNewValues(state.allWatchedConfigFiles, currentProjects, { onDeleteValue: closeFileWatcher }); - state.allWatchedExtendedConfigFiles.forEach(function (watcher) { - watcher.projects.forEach(function (project) { - if (!currentProjects.has(project)) { - watcher.projects.delete(project); - } - }); - watcher.close(); - }); - mutateMapSkippingNewValues(state.allWatchedWildcardDirectories, currentProjects, { onDeleteValue: function (existingMap) { return existingMap.forEach(closeFileWatcherOf); } }); - mutateMapSkippingNewValues(state.allWatchedInputFiles, currentProjects, { onDeleteValue: function (existingMap) { return existingMap.forEach(closeFileWatcher); } }); - mutateMapSkippingNewValues(state.allWatchedPackageJsonFiles, currentProjects, { onDeleteValue: function (existingMap) { return existingMap.forEach(closeFileWatcher); } }); - } - return state.buildOrder = buildOrder; -} -function getBuildOrderFor(state, project, onlyReferences) { - var resolvedProject = project && resolveProjectName(state, project); - var buildOrderFromState = getBuildOrder(state); - if (isCircularBuildOrder(buildOrderFromState)) - return buildOrderFromState; - if (resolvedProject) { - var projectPath_1 = toResolvedConfigFilePath(state, resolvedProject); - var projectIndex = findIndex(buildOrderFromState, function (configFileName) { return toResolvedConfigFilePath(state, configFileName) === projectPath_1; }); - if (projectIndex === -1) - return void 0; - } - var buildOrder = resolvedProject ? createBuildOrder(state, [resolvedProject]) : buildOrderFromState; - Debug.assert(!isCircularBuildOrder(buildOrder)); - Debug.assert(!onlyReferences || resolvedProject !== void 0); - Debug.assert(!onlyReferences || buildOrder[buildOrder.length - 1] === resolvedProject); - return onlyReferences ? buildOrder.slice(0, buildOrder.length - 1) : buildOrder; -} -function enableCache(state) { - if (state.cache) { - disableCache(state); - } - var compilerHost = state.compilerHost, host = state.host; - var originalReadFileWithCache = state.readFileWithCache; - var originalGetSourceFile = compilerHost.getSourceFile; - var _t = changeCompilerHostLikeToUseCache(host, function (fileName) { return toPath2(state, fileName); }, function () { - var args = []; - for (var _t = 0; _t < arguments.length; _t++) { - args[_t] = arguments[_t]; - } - return originalGetSourceFile.call.apply(originalGetSourceFile, __spreadArray([compilerHost], __read(args), false)); - }), originalReadFile = _t.originalReadFile, originalFileExists = _t.originalFileExists, originalDirectoryExists = _t.originalDirectoryExists, originalCreateDirectory = _t.originalCreateDirectory, originalWriteFile = _t.originalWriteFile, getSourceFileWithCache = _t.getSourceFileWithCache, readFileWithCache = _t.readFileWithCache; - state.readFileWithCache = readFileWithCache; - compilerHost.getSourceFile = getSourceFileWithCache; - state.cache = { - originalReadFile: originalReadFile, - originalFileExists: originalFileExists, - originalDirectoryExists: originalDirectoryExists, - originalCreateDirectory: originalCreateDirectory, - originalWriteFile: originalWriteFile, - originalReadFileWithCache: originalReadFileWithCache, - originalGetSourceFile: originalGetSourceFile - }; -} -function disableCache(state) { - if (!state.cache) - return; - var cache = state.cache, host = state.host, compilerHost = state.compilerHost, extendedConfigCache = state.extendedConfigCache, moduleResolutionCache = state.moduleResolutionCache, typeReferenceDirectiveResolutionCache = state.typeReferenceDirectiveResolutionCache, libraryResolutionCache = state.libraryResolutionCache; - host.readFile = cache.originalReadFile; - host.fileExists = cache.originalFileExists; - host.directoryExists = cache.originalDirectoryExists; - host.createDirectory = cache.originalCreateDirectory; - host.writeFile = cache.originalWriteFile; - compilerHost.getSourceFile = cache.originalGetSourceFile; - state.readFileWithCache = cache.originalReadFileWithCache; - extendedConfigCache.clear(); - moduleResolutionCache == null ? void 0 : moduleResolutionCache.clear(); - typeReferenceDirectiveResolutionCache == null ? void 0 : typeReferenceDirectiveResolutionCache.clear(); - libraryResolutionCache == null ? void 0 : libraryResolutionCache.clear(); - state.cache = void 0; -} -function clearProjectStatus(state, resolved) { - state.projectStatus.delete(resolved); - state.diagnostics.delete(resolved); -} -function addProjToQueue(_t, proj, reloadLevel) { - var projectPendingBuild = _t.projectPendingBuild; - var value = projectPendingBuild.get(proj); - if (value === void 0) { - projectPendingBuild.set(proj, reloadLevel); - } - else if (value < reloadLevel) { - projectPendingBuild.set(proj, reloadLevel); - } -} -function setupInitialBuild(state, cancellationToken) { - if (!state.allProjectBuildPending) - return; - state.allProjectBuildPending = false; - if (state.options.watch) - reportWatchStatus(state, Diagnostics.Starting_compilation_in_watch_mode); - enableCache(state); - var buildOrder = getBuildOrderFromAnyBuildOrder(getBuildOrder(state)); - buildOrder.forEach(function (configFileName) { return state.projectPendingBuild.set(toResolvedConfigFilePath(state, configFileName), 0 /* None */); }); - if (cancellationToken) { - cancellationToken.throwIfCancellationRequested(); - } -} -var InvalidatedProjectKind = /* @__PURE__ */ (function (InvalidatedProjectKind2) { - InvalidatedProjectKind2[InvalidatedProjectKind2["Build"] = 0] = "Build"; - InvalidatedProjectKind2[InvalidatedProjectKind2["UpdateBundle"] = 1] = "UpdateBundle"; - InvalidatedProjectKind2[InvalidatedProjectKind2["UpdateOutputFileStamps"] = 2] = "UpdateOutputFileStamps"; - return InvalidatedProjectKind2; -})(InvalidatedProjectKind || {}); -function doneInvalidatedProject(state, projectPath) { - state.projectPendingBuild.delete(projectPath); - return state.diagnostics.has(projectPath) ? 1 /* DiagnosticsPresent_OutputsSkipped */ : 0 /* Success */; -} -function createUpdateOutputFileStampsProject(state, project, projectPath, config, buildOrder) { - var updateOutputFileStampsPending = true; - return { - kind: 2 /* UpdateOutputFileStamps */, - project: project, - projectPath: projectPath, - buildOrder: buildOrder, - getCompilerOptions: function () { return config.options; }, - getCurrentDirectory: function () { return state.compilerHost.getCurrentDirectory(); }, - updateOutputFileStatmps: function () { - updateOutputTimestamps(state, config, projectPath); - updateOutputFileStampsPending = false; - }, - done: function () { - if (updateOutputFileStampsPending) { - updateOutputTimestamps(state, config, projectPath); - } - mark("SolutionBuilder::Timestamps only updates"); - return doneInvalidatedProject(state, projectPath); - } - }; -} -function createBuildOrUpdateInvalidedProject(kind, state, project, projectPath, projectIndex, config, buildOrder) { - var step = kind === 0 /* Build */ ? 0 /* CreateProgram */ : 4 /* EmitBundle */; - var program; - var buildResult; - var invalidatedProjectOfBundle; - return kind === 0 /* Build */ ? { - kind: kind, - project: project, - projectPath: projectPath, - buildOrder: buildOrder, - getCompilerOptions: function () { return config.options; }, - getCurrentDirectory: function () { return state.compilerHost.getCurrentDirectory(); }, - getBuilderProgram: function () { return withProgramOrUndefined(identity); }, - getProgram: function () { return withProgramOrUndefined(function (program2) { return program2.getProgramOrUndefined(); }); }, - getSourceFile: function (fileName) { return withProgramOrUndefined(function (program2) { return program2.getSourceFile(fileName); }); }, - getSourceFiles: function () { return withProgramOrEmptyArray(function (program2) { return program2.getSourceFiles(); }); }, - getOptionsDiagnostics: function (cancellationToken) { return withProgramOrEmptyArray(function (program2) { return program2.getOptionsDiagnostics(cancellationToken); }); }, - getGlobalDiagnostics: function (cancellationToken) { return withProgramOrEmptyArray(function (program2) { return program2.getGlobalDiagnostics(cancellationToken); }); }, - getConfigFileParsingDiagnostics: function () { return withProgramOrEmptyArray(function (program2) { return program2.getConfigFileParsingDiagnostics(); }); }, - getSyntacticDiagnostics: function (sourceFile, cancellationToken) { return withProgramOrEmptyArray(function (program2) { return program2.getSyntacticDiagnostics(sourceFile, cancellationToken); }); }, - getAllDependencies: function (sourceFile) { return withProgramOrEmptyArray(function (program2) { return program2.getAllDependencies(sourceFile); }); }, - getSemanticDiagnostics: function (sourceFile, cancellationToken) { return withProgramOrEmptyArray(function (program2) { return program2.getSemanticDiagnostics(sourceFile, cancellationToken); }); }, - getSemanticDiagnosticsOfNextAffectedFile: function (cancellationToken, ignoreSourceFile) { return withProgramOrUndefined(function (program2) { return program2.getSemanticDiagnosticsOfNextAffectedFile && program2.getSemanticDiagnosticsOfNextAffectedFile(cancellationToken, ignoreSourceFile); }); }, - emit: function (targetSourceFile, writeFile2, cancellationToken, emitOnlyDtsFiles, customTransformers) { - if (targetSourceFile || emitOnlyDtsFiles) { - return withProgramOrUndefined(function (program2) { - var _a, _b; - return program2.emit(targetSourceFile, writeFile2, cancellationToken, emitOnlyDtsFiles, customTransformers || ((_b = (_a = state.host).getCustomTransformers) == null ? void 0 : _b.call(_a, project))); - }); - } - executeSteps(2 /* SemanticDiagnostics */, cancellationToken); - if (step === 5 /* EmitBuildInfo */) { - return emitBuildInfo(writeFile2, cancellationToken); - } - if (step !== 3 /* Emit */) - return void 0; - return emit(writeFile2, cancellationToken, customTransformers); - }, - done: done - } : { - kind: kind, - project: project, - projectPath: projectPath, - buildOrder: buildOrder, - getCompilerOptions: function () { return config.options; }, - getCurrentDirectory: function () { return state.compilerHost.getCurrentDirectory(); }, - emit: function (writeFile2, customTransformers) { - if (step !== 4 /* EmitBundle */) - return invalidatedProjectOfBundle; - return emitBundle(writeFile2, customTransformers); - }, - done: done - }; - function done(cancellationToken, writeFile2, customTransformers) { - executeSteps(8 /* Done */, cancellationToken, writeFile2, customTransformers); - if (kind === 0 /* Build */) - mark("SolutionBuilder::Projects built"); - else - mark("SolutionBuilder::Bundles updated"); - return doneInvalidatedProject(state, projectPath); - } - function withProgramOrUndefined(action) { - executeSteps(0 /* CreateProgram */); - return program && action(program); - } - function withProgramOrEmptyArray(action) { - return withProgramOrUndefined(action) || emptyArray; - } - function createProgram2() { - var _a, _b; - Debug.assert(program === void 0); - if (state.options.dry) { - reportStatus(state, Diagnostics.A_non_dry_build_would_build_project_0, project); - buildResult = 1 /* Success */; - step = 7 /* QueueReferencingProjects */; - return; - } - if (state.options.verbose) - reportStatus(state, Diagnostics.Building_project_0, project); - if (config.fileNames.length === 0) { - reportAndStoreErrors(state, projectPath, getConfigFileParsingDiagnostics(config)); - buildResult = 0 /* None */; - step = 7 /* QueueReferencingProjects */; - return; - } - var host = state.host, compilerHost = state.compilerHost; - state.projectCompilerOptions = config.options; - (_a = state.moduleResolutionCache) == null ? void 0 : _a.update(config.options); - (_b = state.typeReferenceDirectiveResolutionCache) == null ? void 0 : _b.update(config.options); - program = host.createProgram(config.fileNames, config.options, compilerHost, getOldProgram(state, projectPath, config), getConfigFileParsingDiagnostics(config), config.projectReferences); - if (state.watch) { - state.lastCachedPackageJsonLookups.set(projectPath, state.moduleResolutionCache && map(state.moduleResolutionCache.getPackageJsonInfoCache().entries(), function (_t) { - var _u = __read(_t, 2), path = _u[0], data = _u[1]; - return [state.host.realpath && data ? toPath2(state, state.host.realpath(path)) : path, data]; - })); - state.builderPrograms.set(projectPath, program); - } - step++; - } - function handleDiagnostics(diagnostics, errorFlags, errorType) { - var _t; - if (diagnostics.length) { - (_t = buildErrors(state, projectPath, program, config, diagnostics, errorFlags, errorType), buildResult = _t.buildResult, step = _t.step); - } - else { - step++; - } - } - function getSyntaxDiagnostics(cancellationToken) { - Debug.assertIsDefined(program); - handleDiagnostics(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read(program.getConfigFileParsingDiagnostics()), false), __read(program.getOptionsDiagnostics(cancellationToken)), false), __read(program.getGlobalDiagnostics(cancellationToken)), false), __read(program.getSyntacticDiagnostics( - /*sourceFile*/ - void 0, cancellationToken)), false), 8 /* SyntaxErrors */, "Syntactic"); - } - function getSemanticDiagnostics(cancellationToken) { - handleDiagnostics(Debug.checkDefined(program).getSemanticDiagnostics( - /*sourceFile*/ - void 0, cancellationToken), 16 /* TypeErrors */, "Semantic"); - } - function emit(writeFileCallback, cancellationToken, customTransformers) { - var _t; - var _a, _b, _c; - Debug.assertIsDefined(program); - Debug.assert(step === 3 /* Emit */); - var saved = program.saveEmitState(); - var declDiagnostics; - var reportDeclarationDiagnostics = function (d) { return (declDiagnostics || (declDiagnostics = [])).push(d); }; - var outputFiles = []; - var emitResult = emitFilesAndReportErrors(program, reportDeclarationDiagnostics, - /*write*/ - void 0, - /*reportSummary*/ - void 0, function (name, text, writeByteOrderMark, _onError, _sourceFiles, data) { return outputFiles.push({ name: name, text: text, writeByteOrderMark: writeByteOrderMark, data: data }); }, cancellationToken, - /*emitOnlyDtsFiles*/ - false, customTransformers || ((_b = (_a = state.host).getCustomTransformers) == null ? void 0 : _b.call(_a, project))).emitResult; - if (declDiagnostics) { - program.restoreEmitState(saved); - (_t = buildErrors(state, projectPath, program, config, declDiagnostics, 32 /* DeclarationEmitErrors */, "Declaration file"), buildResult = _t.buildResult, step = _t.step); - return { - emitSkipped: true, - diagnostics: emitResult.diagnostics - }; - } - var host = state.host, compilerHost = state.compilerHost; - var resultFlags = ((_c = program.hasChangedEmitSignature) == null ? void 0 : _c.call(program)) ? 0 /* None */ : 2 /* DeclarationOutputUnchanged */; - var emitterDiagnostics = createDiagnosticCollection(); - var emittedOutputs = /* @__PURE__ */ new Map(); - var options = program.getCompilerOptions(); - var isIncremental = isIncrementalCompilation(options); - var outputTimeStampMap; - var now; - outputFiles.forEach(function (_t) { - var name = _t.name, text = _t.text, writeByteOrderMark = _t.writeByteOrderMark, data = _t.data; - var path = toPath2(state, name); - emittedOutputs.set(toPath2(state, name), name); - if (data == null ? void 0 : data.buildInfo) - setBuildInfo(state, data.buildInfo, projectPath, options, resultFlags); - var modifiedTime = (data == null ? void 0 : data.differsOnlyInMap) ? getModifiedTime(state.host, name) : void 0; - writeFile(writeFileCallback ? { writeFile: writeFileCallback } : compilerHost, emitterDiagnostics, name, text, writeByteOrderMark); - if (data == null ? void 0 : data.differsOnlyInMap) - state.host.setModifiedTime(name, modifiedTime); - else if (!isIncremental && state.watch) { - (outputTimeStampMap || (outputTimeStampMap = getOutputTimeStampMap(state, projectPath))).set(path, now || (now = getCurrentTime(state.host))); - } - }); - finishEmit(emitterDiagnostics, emittedOutputs, outputFiles.length ? outputFiles[0].name : getFirstProjectOutput(config, !host.useCaseSensitiveFileNames()), resultFlags); - return emitResult; - } - function emitBuildInfo(writeFileCallback, cancellationToken) { - Debug.assertIsDefined(program); - Debug.assert(step === 5 /* EmitBuildInfo */); - var emitResult = program.emitBuildInfo(function (name, text, writeByteOrderMark, onError, sourceFiles, data) { - if (data == null ? void 0 : data.buildInfo) - setBuildInfo(state, data.buildInfo, projectPath, program.getCompilerOptions(), 2 /* DeclarationOutputUnchanged */); - if (writeFileCallback) - writeFileCallback(name, text, writeByteOrderMark, onError, sourceFiles, data); - else - state.compilerHost.writeFile(name, text, writeByteOrderMark, onError, sourceFiles, data); - }, cancellationToken); - if (emitResult.diagnostics.length) { - reportErrors(state, emitResult.diagnostics); - state.diagnostics.set(projectPath, __spreadArray(__spreadArray([], __read(state.diagnostics.get(projectPath)), false), __read(emitResult.diagnostics), false)); - buildResult = 64 /* EmitErrors */ & buildResult; - } - if (emitResult.emittedFiles && state.write) { - emitResult.emittedFiles.forEach(function (name) { return listEmittedFile(state, config, name); }); - } - afterProgramDone(state, program, config); - step = 7 /* QueueReferencingProjects */; - return emitResult; - } - function finishEmit(emitterDiagnostics, emittedOutputs, oldestOutputFileName, resultFlags) { - var _t; - var emitDiagnostics = emitterDiagnostics.getDiagnostics(); - if (emitDiagnostics.length) { - (_t = buildErrors(state, projectPath, program, config, emitDiagnostics, 64 /* EmitErrors */, "Emit"), buildResult = _t.buildResult, step = _t.step); - return emitDiagnostics; - } - if (state.write) { - emittedOutputs.forEach(function (name) { return listEmittedFile(state, config, name); }); - } - updateOutputTimestampsWorker(state, config, projectPath, Diagnostics.Updating_unchanged_output_timestamps_of_project_0, emittedOutputs); - state.diagnostics.delete(projectPath); - state.projectStatus.set(projectPath, { - type: 1 /* UpToDate */, - oldestOutputFileName: oldestOutputFileName - }); - afterProgramDone(state, program, config); - step = 7 /* QueueReferencingProjects */; - buildResult = resultFlags; - return emitDiagnostics; - } - function emitBundle(writeFileCallback, customTransformers) { - var _a, _b, _c, _d; - Debug.assert(kind === 1 /* UpdateBundle */); - if (state.options.dry) { - reportStatus(state, Diagnostics.A_non_dry_build_would_update_output_of_project_0, project); - buildResult = 1 /* Success */; - step = 7 /* QueueReferencingProjects */; - return void 0; - } - if (state.options.verbose) - reportStatus(state, Diagnostics.Updating_output_of_project_0, project); - var compilerHost = state.compilerHost; - state.projectCompilerOptions = config.options; - (_b = (_a = state.host).beforeEmitBundle) == null ? void 0 : _b.call(_a, config); - var outputFiles = emitUsingBuildInfo(config, compilerHost, function (ref) { - var refName = resolveProjectName(state, ref.path); - return parseConfigFile(state, refName, toResolvedConfigFilePath(state, refName)); - }, customTransformers || ((_d = (_c = state.host).getCustomTransformers) == null ? void 0 : _d.call(_c, project))); - if (isString(outputFiles)) { - reportStatus(state, Diagnostics.Cannot_update_output_of_project_0_because_there_was_error_reading_file_1, project, relName(state, outputFiles)); - step = 6 /* BuildInvalidatedProjectOfBundle */; - return invalidatedProjectOfBundle = createBuildOrUpdateInvalidedProject(0 /* Build */, state, project, projectPath, projectIndex, config, buildOrder); - } - Debug.assert(!!outputFiles.length); - var emitterDiagnostics = createDiagnosticCollection(); - var emittedOutputs = /* @__PURE__ */ new Map(); - var resultFlags = 2 /* DeclarationOutputUnchanged */; - var existingBuildInfo = state.buildInfoCache.get(projectPath).buildInfo || void 0; - outputFiles.forEach(function (_t) { - var name = _t.name, text = _t.text, writeByteOrderMark = _t.writeByteOrderMark, data = _t.data; - var _a2, _b2; - emittedOutputs.set(toPath2(state, name), name); - if (data == null ? void 0 : data.buildInfo) { - if (((_a2 = data.buildInfo.program) == null ? void 0 : _a2.outSignature) !== ((_b2 = existingBuildInfo == null ? void 0 : existingBuildInfo.program) == null ? void 0 : _b2.outSignature)) { - resultFlags &= ~2 /* DeclarationOutputUnchanged */; - } - setBuildInfo(state, data.buildInfo, projectPath, config.options, resultFlags); - } - writeFile(writeFileCallback ? { writeFile: writeFileCallback } : compilerHost, emitterDiagnostics, name, text, writeByteOrderMark); - }); - var emitDiagnostics = finishEmit(emitterDiagnostics, emittedOutputs, outputFiles[0].name, resultFlags); - return { emitSkipped: false, diagnostics: emitDiagnostics }; - } - function executeSteps(till, cancellationToken, writeFile2, customTransformers) { - while (step <= till && step < 8 /* Done */) { - var currentStep = step; - switch (step) { - case 0 /* CreateProgram */: - createProgram2(); - break; - case 1 /* SyntaxDiagnostics */: - getSyntaxDiagnostics(cancellationToken); - break; - case 2 /* SemanticDiagnostics */: - getSemanticDiagnostics(cancellationToken); - break; - case 3 /* Emit */: - emit(writeFile2, cancellationToken, customTransformers); - break; - case 5 /* EmitBuildInfo */: - emitBuildInfo(writeFile2, cancellationToken); - break; - case 4 /* EmitBundle */: - emitBundle(writeFile2, customTransformers); - break; - case 6 /* BuildInvalidatedProjectOfBundle */: - Debug.checkDefined(invalidatedProjectOfBundle).done(cancellationToken, writeFile2, customTransformers); - step = 8 /* Done */; - break; - case 7 /* QueueReferencingProjects */: - queueReferencingProjects(state, project, projectPath, projectIndex, config, buildOrder, Debug.checkDefined(buildResult)); - step++; - break; - case 8 /* Done */: - default: - assertType(step); - } - Debug.assert(step > currentStep); - } - } -} -function needsBuild(_t, status, config) { - var options = _t.options; - if (status.type !== 3 /* OutOfDateWithPrepend */ || options.force) - return true; - return config.fileNames.length === 0 || !!getConfigFileParsingDiagnostics(config).length || !isIncrementalCompilation(config.options); -} -function getNextInvalidatedProjectCreateInfo(state, buildOrder, reportQueue) { - if (!state.projectPendingBuild.size) - return void 0; - if (isCircularBuildOrder(buildOrder)) - return void 0; - var options = state.options, projectPendingBuild = state.projectPendingBuild; - for (var projectIndex = 0; projectIndex < buildOrder.length; projectIndex++) { - var project = buildOrder[projectIndex]; - var projectPath = toResolvedConfigFilePath(state, project); - var reloadLevel = state.projectPendingBuild.get(projectPath); - if (reloadLevel === void 0) - continue; - if (reportQueue) { - reportQueue = false; - reportBuildQueue(state, buildOrder); - } - var config = parseConfigFile(state, project, projectPath); - if (!config) { - reportParseConfigFileDiagnostic(state, projectPath); - projectPendingBuild.delete(projectPath); - continue; - } - if (reloadLevel === 2 /* Full */) { - watchConfigFile(state, project, projectPath, config); - watchExtendedConfigFiles(state, projectPath, config); - watchWildCardDirectories(state, project, projectPath, config); - watchInputFiles(state, project, projectPath, config); - watchPackageJsonFiles(state, project, projectPath, config); - } - else if (reloadLevel === 1 /* Partial */) { - config.fileNames = getFileNamesFromConfigSpecs(config.options.configFile.configFileSpecs, getDirectoryPath(project), config.options, state.parseConfigFileHost); - updateErrorForNoInputFiles(config.fileNames, project, config.options.configFile.configFileSpecs, config.errors, canJsonReportNoInputFiles(config.raw)); - watchInputFiles(state, project, projectPath, config); - watchPackageJsonFiles(state, project, projectPath, config); - } - var status_2 = getUpToDateStatus(state, config, projectPath); - if (!options.force) { - if (status_2.type === 1 /* UpToDate */) { - verboseReportProjectStatus(state, project, status_2); - reportAndStoreErrors(state, projectPath, getConfigFileParsingDiagnostics(config)); - projectPendingBuild.delete(projectPath); - if (options.dry) { - reportStatus(state, Diagnostics.Project_0_is_up_to_date, project); - } - continue; - } - if (status_2.type === 2 /* UpToDateWithUpstreamTypes */ || status_2.type === 15 /* UpToDateWithInputFileText */) { - reportAndStoreErrors(state, projectPath, getConfigFileParsingDiagnostics(config)); - return { - kind: 2 /* UpdateOutputFileStamps */, - status: status_2, - project: project, - projectPath: projectPath, - projectIndex: projectIndex, - config: config - }; - } - } - if (status_2.type === 12 /* UpstreamBlocked */) { - verboseReportProjectStatus(state, project, status_2); - reportAndStoreErrors(state, projectPath, getConfigFileParsingDiagnostics(config)); - projectPendingBuild.delete(projectPath); - if (options.verbose) { - reportStatus(state, status_2.upstreamProjectBlocked ? Diagnostics.Skipping_build_of_project_0_because_its_dependency_1_was_not_built : Diagnostics.Skipping_build_of_project_0_because_its_dependency_1_has_errors, project, status_2.upstreamProjectName); - } - continue; - } - if (status_2.type === 16 /* ContainerOnly */) { - verboseReportProjectStatus(state, project, status_2); - reportAndStoreErrors(state, projectPath, getConfigFileParsingDiagnostics(config)); - projectPendingBuild.delete(projectPath); - continue; - } - return { - kind: needsBuild(state, status_2, config) ? 0 /* Build */ : 1 /* UpdateBundle */, - status: status_2, - project: project, - projectPath: projectPath, - projectIndex: projectIndex, - config: config - }; - } - return void 0; -} -function createInvalidatedProjectWithInfo(state, info, buildOrder) { - verboseReportProjectStatus(state, info.project, info.status); - return info.kind !== 2 /* UpdateOutputFileStamps */ ? createBuildOrUpdateInvalidedProject(info.kind, state, info.project, info.projectPath, info.projectIndex, info.config, buildOrder) : createUpdateOutputFileStampsProject(state, info.project, info.projectPath, info.config, buildOrder); -} -function getNextInvalidatedProject(state, buildOrder, reportQueue) { - var info = getNextInvalidatedProjectCreateInfo(state, buildOrder, reportQueue); - if (!info) - return info; - return createInvalidatedProjectWithInfo(state, info, buildOrder); -} -function listEmittedFile(_t, proj, file) { - var write = _t.write; - if (write && proj.options.listEmittedFiles) { - write("TSFILE: ".concat(file)); - } -} -function getOldProgram(_t, proj, parsed) { - var options = _t.options, builderPrograms = _t.builderPrograms, compilerHost = _t.compilerHost; - if (options.force) - return void 0; - var value = builderPrograms.get(proj); - if (value) - return value; - return readBuilderProgram(parsed.options, compilerHost); -} -function afterProgramDone(state, program, config) { - if (program) { - if (state.write) - listFiles(program, state.write); - if (state.host.afterProgramEmitAndDiagnostics) { - state.host.afterProgramEmitAndDiagnostics(program); - } - program.releaseProgram(); - } - else if (state.host.afterEmitBundle) { - state.host.afterEmitBundle(config); - } - state.projectCompilerOptions = state.baseCompilerOptions; -} -function buildErrors(state, resolvedPath, program, config, diagnostics, buildResult, errorType) { - var canEmitBuildInfo = program && !outFile(program.getCompilerOptions()); - reportAndStoreErrors(state, resolvedPath, diagnostics); - state.projectStatus.set(resolvedPath, { type: 0 /* Unbuildable */, reason: "".concat(errorType, " errors") }); - if (canEmitBuildInfo) - return { buildResult: buildResult, step: 5 /* EmitBuildInfo */ }; - afterProgramDone(state, program, config); - return { buildResult: buildResult, step: 7 /* QueueReferencingProjects */ }; -} -function isFileWatcherWithModifiedTime(value) { - return !!value.watcher; -} -function getModifiedTime2(state, fileName) { - var path = toPath2(state, fileName); - var existing = state.filesWatched.get(path); - if (state.watch && !!existing) { - if (!isFileWatcherWithModifiedTime(existing)) - return existing; - if (existing.modifiedTime) - return existing.modifiedTime; - } - var result = getModifiedTime(state.host, fileName); - if (state.watch) { - if (existing) - existing.modifiedTime = result; - else - state.filesWatched.set(path, result); - } - return result; -} -function watchFile(state, file, callback, pollingInterval, options, watchType, project) { - var path = toPath2(state, file); - var existing = state.filesWatched.get(path); - if (existing && isFileWatcherWithModifiedTime(existing)) { - existing.callbacks.push(callback); - } - else { - var watcher = state.watchFile(file, function (fileName, eventKind, modifiedTime) { - var existing2 = Debug.checkDefined(state.filesWatched.get(path)); - Debug.assert(isFileWatcherWithModifiedTime(existing2)); - existing2.modifiedTime = modifiedTime; - existing2.callbacks.forEach(function (cb) { return cb(fileName, eventKind, modifiedTime); }); - }, pollingInterval, options, watchType, project); - state.filesWatched.set(path, { callbacks: [callback], watcher: watcher, modifiedTime: existing }); - } - return { - close: function () { - var existing2 = Debug.checkDefined(state.filesWatched.get(path)); - Debug.assert(isFileWatcherWithModifiedTime(existing2)); - if (existing2.callbacks.length === 1) { - state.filesWatched.delete(path); - closeFileWatcherOf(existing2); - } - else { - unorderedRemoveItem(existing2.callbacks, callback); - } - } - }; -} -function getOutputTimeStampMap(state, resolvedConfigFilePath) { - if (!state.watch) - return void 0; - var result = state.outputTimeStamps.get(resolvedConfigFilePath); - if (!result) - state.outputTimeStamps.set(resolvedConfigFilePath, result = /* @__PURE__ */ new Map()); - return result; -} -function setBuildInfo(state, buildInfo, resolvedConfigPath, options, resultFlags) { - var buildInfoPath = getTsBuildInfoEmitOutputFilePath(options); - var existing = getBuildInfoCacheEntry(state, buildInfoPath, resolvedConfigPath); - var modifiedTime = getCurrentTime(state.host); - if (existing) { - existing.buildInfo = buildInfo; - existing.modifiedTime = modifiedTime; - if (!(resultFlags & 2 /* DeclarationOutputUnchanged */)) - existing.latestChangedDtsTime = modifiedTime; - } - else { - state.buildInfoCache.set(resolvedConfigPath, { - path: toPath2(state, buildInfoPath), - buildInfo: buildInfo, - modifiedTime: modifiedTime, - latestChangedDtsTime: resultFlags & 2 /* DeclarationOutputUnchanged */ ? void 0 : modifiedTime - }); - } -} -function getBuildInfoCacheEntry(state, buildInfoPath, resolvedConfigPath) { - var path = toPath2(state, buildInfoPath); - var existing = state.buildInfoCache.get(resolvedConfigPath); - return (existing == null ? void 0 : existing.path) === path ? existing : void 0; -} -function getBuildInfo3(state, buildInfoPath, resolvedConfigPath, modifiedTime) { - var path = toPath2(state, buildInfoPath); - var existing = state.buildInfoCache.get(resolvedConfigPath); - if (existing !== void 0 && existing.path === path) { - return existing.buildInfo || void 0; - } - var value = state.readFileWithCache(buildInfoPath); - var buildInfo = value ? getBuildInfo(buildInfoPath, value) : void 0; - state.buildInfoCache.set(resolvedConfigPath, { path: path, buildInfo: buildInfo || false, modifiedTime: modifiedTime || missingFileModifiedTime }); - return buildInfo; -} -function checkConfigFileUpToDateStatus(state, configFile, oldestOutputFileTime, oldestOutputFileName) { - var tsconfigTime = getModifiedTime2(state, configFile); - if (oldestOutputFileTime < tsconfigTime) { - return { - type: 6 /* OutOfDateWithSelf */, - outOfDateOutputFileName: oldestOutputFileName, - newerInputFileName: configFile - }; - } -} -function getUpToDateStatusWorker(state, project, resolvedPath) { - var e_633, _t, e_634, _u, e_635, _v, e_636, _w, e_637, _x; - var _a, _b; - if (!project.fileNames.length && !canJsonReportNoInputFiles(project.raw)) { - return { - type: 16 /* ContainerOnly */ - }; - } - var referenceStatuses; - var force = !!state.options.force; - if (project.projectReferences) { - state.projectStatus.set(resolvedPath, { type: 13 /* ComputingUpstream */ }); - try { - for (var _y = __values(project.projectReferences), _z = _y.next(); !_z.done; _z = _y.next()) { - var ref = _z.value; - var resolvedRef = resolveProjectReferencePath(ref); - var resolvedRefPath = toResolvedConfigFilePath(state, resolvedRef); - var resolvedConfig = parseConfigFile(state, resolvedRef, resolvedRefPath); - var refStatus = getUpToDateStatus(state, resolvedConfig, resolvedRefPath); - if (refStatus.type === 13 /* ComputingUpstream */ || refStatus.type === 16 /* ContainerOnly */) { - continue; - } - if (refStatus.type === 0 /* Unbuildable */ || refStatus.type === 12 /* UpstreamBlocked */) { - return { - type: 12 /* UpstreamBlocked */, - upstreamProjectName: ref.path, - upstreamProjectBlocked: refStatus.type === 12 /* UpstreamBlocked */ - }; - } - if (refStatus.type !== 1 /* UpToDate */) { - return { - type: 11 /* UpstreamOutOfDate */, - upstreamProjectName: ref.path - }; - } - if (!force) - (referenceStatuses || (referenceStatuses = [])).push({ ref: ref, refStatus: refStatus, resolvedRefPath: resolvedRefPath, resolvedConfig: resolvedConfig }); - } - } - catch (e_633_1) { e_633 = { error: e_633_1 }; } - finally { - try { - if (_z && !_z.done && (_t = _y.return)) _t.call(_y); - } - finally { if (e_633) throw e_633.error; } - } - } - if (force) - return { type: 17 /* ForceBuild */ }; - var host = state.host; - var buildInfoPath = getTsBuildInfoEmitOutputFilePath(project.options); - var oldestOutputFileName; - var oldestOutputFileTime = maximumDate; - var buildInfoTime; - var buildInfoProgram; - var buildInfoVersionMap; - if (buildInfoPath) { - var buildInfoCacheEntry2 = getBuildInfoCacheEntry(state, buildInfoPath, resolvedPath); - buildInfoTime = (buildInfoCacheEntry2 == null ? void 0 : buildInfoCacheEntry2.modifiedTime) || getModifiedTime(host, buildInfoPath); - if (buildInfoTime === missingFileModifiedTime) { - if (!buildInfoCacheEntry2) { - state.buildInfoCache.set(resolvedPath, { - path: toPath2(state, buildInfoPath), - buildInfo: false, - modifiedTime: buildInfoTime - }); - } - return { - type: 4 /* OutputMissing */, - missingOutputFileName: buildInfoPath - }; - } - var buildInfo = getBuildInfo3(state, buildInfoPath, resolvedPath, buildInfoTime); - if (!buildInfo) { - return { - type: 5 /* ErrorReadingFile */, - fileName: buildInfoPath - }; - } - if ((buildInfo.bundle || buildInfo.program) && buildInfo.version !== version) { - return { - type: 14 /* TsVersionOutputOfDate */, - version: buildInfo.version - }; - } - if (buildInfo.program) { - if (((_a = buildInfo.program.changeFileSet) == null ? void 0 : _a.length) || (!project.options.noEmit ? (_b = buildInfo.program.affectedFilesPendingEmit) == null ? void 0 : _b.length : some(buildInfo.program.semanticDiagnosticsPerFile, isArray))) { - return { - type: 8 /* OutOfDateBuildInfo */, - buildInfoFile: buildInfoPath - }; - } - if (!project.options.noEmit && getPendingEmitKind(project.options, buildInfo.program.options || {})) { - return { - type: 9 /* OutOfDateOptions */, - buildInfoFile: buildInfoPath - }; - } - buildInfoProgram = buildInfo.program; - } - oldestOutputFileTime = buildInfoTime; - oldestOutputFileName = buildInfoPath; - } - var newestInputFileName = void 0; - var newestInputFileTime = minimumDate; - var pseudoInputUpToDate = false; - var seenRoots = /* @__PURE__ */ new Set(); - try { - for (var _10 = __values(project.fileNames), _11 = _10.next(); !_11.done; _11 = _10.next()) { - var inputFile = _11.value; - var inputTime = getModifiedTime2(state, inputFile); - if (inputTime === missingFileModifiedTime) { - return { - type: 0 /* Unbuildable */, - reason: "".concat(inputFile, " does not exist") - }; - } - if (buildInfoTime && buildInfoTime < inputTime) { - var version2 = void 0; - var currentVersion = void 0; - if (buildInfoProgram) { - if (!buildInfoVersionMap) - buildInfoVersionMap = getBuildInfoFileVersionMap(buildInfoProgram, buildInfoPath, host); - version2 = buildInfoVersionMap.fileInfos.get(toPath2(state, inputFile)); - var text = version2 ? state.readFileWithCache(inputFile) : void 0; - currentVersion = text !== void 0 ? getSourceFileVersionAsHashFromText(host, text) : void 0; - if (version2 && version2 === currentVersion) - pseudoInputUpToDate = true; - } - if (!version2 || version2 !== currentVersion) { - return { - type: 6 /* OutOfDateWithSelf */, - outOfDateOutputFileName: buildInfoPath, - newerInputFileName: inputFile - }; - } - } - if (inputTime > newestInputFileTime) { - newestInputFileName = inputFile; - newestInputFileTime = inputTime; - } - if (buildInfoProgram) - seenRoots.add(toPath2(state, inputFile)); - } - } - catch (e_634_1) { e_634 = { error: e_634_1 }; } - finally { - try { - if (_11 && !_11.done && (_u = _10.return)) _u.call(_10); - } - finally { if (e_634) throw e_634.error; } - } - if (buildInfoProgram) { - if (!buildInfoVersionMap) - buildInfoVersionMap = getBuildInfoFileVersionMap(buildInfoProgram, buildInfoPath, host); - try { - for (var _12 = __values(buildInfoVersionMap.roots), _13 = _12.next(); !_13.done; _13 = _12.next()) { - var existingRoot = _13.value; - if (!seenRoots.has(existingRoot)) { - return { - type: 10 /* OutOfDateRoots */, - buildInfoFile: buildInfoPath, - inputFile: existingRoot - }; - } - } - } - catch (e_635_1) { e_635 = { error: e_635_1 }; } - finally { - try { - if (_13 && !_13.done && (_v = _12.return)) _v.call(_12); - } - finally { if (e_635) throw e_635.error; } - } - } - if (!buildInfoPath) { - var outputs = getAllProjectOutputs(project, !host.useCaseSensitiveFileNames()); - var outputTimeStampMap = getOutputTimeStampMap(state, resolvedPath); - try { - for (var outputs_1 = __values(outputs), outputs_1_1 = outputs_1.next(); !outputs_1_1.done; outputs_1_1 = outputs_1.next()) { - var output = outputs_1_1.value; - var path = toPath2(state, output); - var outputTime = outputTimeStampMap == null ? void 0 : outputTimeStampMap.get(path); - if (!outputTime) { - outputTime = getModifiedTime(state.host, output); - outputTimeStampMap == null ? void 0 : outputTimeStampMap.set(path, outputTime); - } - if (outputTime === missingFileModifiedTime) { - return { - type: 4 /* OutputMissing */, - missingOutputFileName: output - }; - } - if (outputTime < newestInputFileTime) { - return { - type: 6 /* OutOfDateWithSelf */, - outOfDateOutputFileName: output, - newerInputFileName: newestInputFileName - }; - } - if (outputTime < oldestOutputFileTime) { - oldestOutputFileTime = outputTime; - oldestOutputFileName = output; - } - } - } - catch (e_636_1) { e_636 = { error: e_636_1 }; } - finally { - try { - if (outputs_1_1 && !outputs_1_1.done && (_w = outputs_1.return)) _w.call(outputs_1); - } - finally { if (e_636) throw e_636.error; } - } - } - var buildInfoCacheEntry = state.buildInfoCache.get(resolvedPath); - var pseudoUpToDate = false; - var usesPrepend = false; - var upstreamChangedProject; - if (referenceStatuses) { - try { - for (var referenceStatuses_1 = __values(referenceStatuses), referenceStatuses_1_1 = referenceStatuses_1.next(); !referenceStatuses_1_1.done; referenceStatuses_1_1 = referenceStatuses_1.next()) { - var _14 = referenceStatuses_1_1.value, ref = _14.ref, refStatus = _14.refStatus, resolvedConfig = _14.resolvedConfig, resolvedRefPath = _14.resolvedRefPath; - usesPrepend = usesPrepend || !!ref.prepend; - if (refStatus.newestInputFileTime && refStatus.newestInputFileTime <= oldestOutputFileTime) { - continue; - } - if (buildInfoCacheEntry && hasSameBuildInfo(state, buildInfoCacheEntry, resolvedRefPath)) { - return { - type: 7 /* OutOfDateWithUpstream */, - outOfDateOutputFileName: buildInfoPath, - newerProjectName: ref.path - }; - } - var newestDeclarationFileContentChangedTime = getLatestChangedDtsTime(state, resolvedConfig.options, resolvedRefPath); - if (newestDeclarationFileContentChangedTime && newestDeclarationFileContentChangedTime <= oldestOutputFileTime) { - pseudoUpToDate = true; - upstreamChangedProject = ref.path; - continue; - } - Debug.assert(oldestOutputFileName !== void 0, "Should have an oldest output filename here"); - return { - type: 7 /* OutOfDateWithUpstream */, - outOfDateOutputFileName: oldestOutputFileName, - newerProjectName: ref.path - }; - } - } - catch (e_637_1) { e_637 = { error: e_637_1 }; } - finally { - try { - if (referenceStatuses_1_1 && !referenceStatuses_1_1.done && (_x = referenceStatuses_1.return)) _x.call(referenceStatuses_1); - } - finally { if (e_637) throw e_637.error; } - } - } - var configStatus = checkConfigFileUpToDateStatus(state, project.options.configFilePath, oldestOutputFileTime, oldestOutputFileName); - if (configStatus) - return configStatus; - var extendedConfigStatus = forEach(project.options.configFile.extendedSourceFiles || emptyArray, function (configFile) { return checkConfigFileUpToDateStatus(state, configFile, oldestOutputFileTime, oldestOutputFileName); }); - if (extendedConfigStatus) - return extendedConfigStatus; - var dependentPackageFileStatus = forEach(state.lastCachedPackageJsonLookups.get(resolvedPath) || emptyArray, function (_t) { - var _u = __read(_t, 1), path = _u[0]; - return checkConfigFileUpToDateStatus(state, path, oldestOutputFileTime, oldestOutputFileName); - }); - if (dependentPackageFileStatus) - return dependentPackageFileStatus; - if (usesPrepend && pseudoUpToDate) { - return { - type: 3 /* OutOfDateWithPrepend */, - outOfDateOutputFileName: oldestOutputFileName, - newerProjectName: upstreamChangedProject - }; - } - return { - type: pseudoUpToDate ? 2 /* UpToDateWithUpstreamTypes */ : pseudoInputUpToDate ? 15 /* UpToDateWithInputFileText */ : 1 /* UpToDate */, - newestInputFileTime: newestInputFileTime, - newestInputFileName: newestInputFileName, - oldestOutputFileName: oldestOutputFileName - }; -} -function hasSameBuildInfo(state, buildInfoCacheEntry, resolvedRefPath) { - var refBuildInfo = state.buildInfoCache.get(resolvedRefPath); - return refBuildInfo.path === buildInfoCacheEntry.path; -} -function getUpToDateStatus(state, project, resolvedPath) { - if (project === void 0) { - return { type: 0 /* Unbuildable */, reason: "File deleted mid-build" }; - } - var prior = state.projectStatus.get(resolvedPath); - if (prior !== void 0) { - return prior; - } - mark("SolutionBuilder::beforeUpToDateCheck"); - var actual = getUpToDateStatusWorker(state, project, resolvedPath); - mark("SolutionBuilder::afterUpToDateCheck"); - measure("SolutionBuilder::Up-to-date check", "SolutionBuilder::beforeUpToDateCheck", "SolutionBuilder::afterUpToDateCheck"); - state.projectStatus.set(resolvedPath, actual); - return actual; -} -function updateOutputTimestampsWorker(state, proj, projectPath, verboseMessage, skipOutputs) { - var e_638, _t; - if (proj.options.noEmit) - return; - var now; - var buildInfoPath = getTsBuildInfoEmitOutputFilePath(proj.options); - if (buildInfoPath) { - if (!(skipOutputs == null ? void 0 : skipOutputs.has(toPath2(state, buildInfoPath)))) { - if (!!state.options.verbose) - reportStatus(state, verboseMessage, proj.options.configFilePath); - state.host.setModifiedTime(buildInfoPath, now = getCurrentTime(state.host)); - getBuildInfoCacheEntry(state, buildInfoPath, projectPath).modifiedTime = now; - } - state.outputTimeStamps.delete(projectPath); - return; - } - var host = state.host; - var outputs = getAllProjectOutputs(proj, !host.useCaseSensitiveFileNames()); - var outputTimeStampMap = getOutputTimeStampMap(state, projectPath); - var modifiedOutputs = outputTimeStampMap ? /* @__PURE__ */ new Set() : void 0; - if (!skipOutputs || outputs.length !== skipOutputs.size) { - var reportVerbose = !!state.options.verbose; - try { - for (var outputs_2 = __values(outputs), outputs_2_1 = outputs_2.next(); !outputs_2_1.done; outputs_2_1 = outputs_2.next()) { - var file = outputs_2_1.value; - var path = toPath2(state, file); - if (skipOutputs == null ? void 0 : skipOutputs.has(path)) - continue; - if (reportVerbose) { - reportVerbose = false; - reportStatus(state, verboseMessage, proj.options.configFilePath); - } - host.setModifiedTime(file, now || (now = getCurrentTime(state.host))); - if (outputTimeStampMap) { - outputTimeStampMap.set(path, now); - modifiedOutputs.add(path); - } - } - } - catch (e_638_1) { e_638 = { error: e_638_1 }; } - finally { - try { - if (outputs_2_1 && !outputs_2_1.done && (_t = outputs_2.return)) _t.call(outputs_2); - } - finally { if (e_638) throw e_638.error; } - } - } - outputTimeStampMap == null ? void 0 : outputTimeStampMap.forEach(function (_value, key) { - if (!(skipOutputs == null ? void 0 : skipOutputs.has(key)) && !modifiedOutputs.has(key)) - outputTimeStampMap.delete(key); - }); -} -function getLatestChangedDtsTime(state, options, resolvedConfigPath) { - if (!options.composite) - return void 0; - var entry = Debug.checkDefined(state.buildInfoCache.get(resolvedConfigPath)); - if (entry.latestChangedDtsTime !== void 0) - return entry.latestChangedDtsTime || void 0; - var latestChangedDtsTime = entry.buildInfo && entry.buildInfo.program && entry.buildInfo.program.latestChangedDtsFile ? state.host.getModifiedTime(getNormalizedAbsolutePath(entry.buildInfo.program.latestChangedDtsFile, getDirectoryPath(entry.path))) : void 0; - entry.latestChangedDtsTime = latestChangedDtsTime || false; - return latestChangedDtsTime; -} -function updateOutputTimestamps(state, proj, resolvedPath) { - if (state.options.dry) { - return reportStatus(state, Diagnostics.A_non_dry_build_would_update_timestamps_for_output_of_project_0, proj.options.configFilePath); - } - updateOutputTimestampsWorker(state, proj, resolvedPath, Diagnostics.Updating_output_timestamps_of_project_0); - state.projectStatus.set(resolvedPath, { - type: 1 /* UpToDate */, - oldestOutputFileName: getFirstProjectOutput(proj, !state.host.useCaseSensitiveFileNames()) - }); -} -function queueReferencingProjects(state, project, projectPath, projectIndex, config, buildOrder, buildResult) { - var e_639, _t; - if (buildResult & 124 /* AnyErrors */) - return; - if (!config.options.composite) - return; - for (var index = projectIndex + 1; index < buildOrder.length; index++) { - var nextProject = buildOrder[index]; - var nextProjectPath = toResolvedConfigFilePath(state, nextProject); - if (state.projectPendingBuild.has(nextProjectPath)) - continue; - var nextProjectConfig = parseConfigFile(state, nextProject, nextProjectPath); - if (!nextProjectConfig || !nextProjectConfig.projectReferences) - continue; - try { - for (var _u = (e_639 = void 0, __values(nextProjectConfig.projectReferences)), _v = _u.next(); !_v.done; _v = _u.next()) { - var ref = _v.value; - var resolvedRefPath = resolveProjectName(state, ref.path); - if (toResolvedConfigFilePath(state, resolvedRefPath) !== projectPath) - continue; - var status_3 = state.projectStatus.get(nextProjectPath); - if (status_3) { - switch (status_3.type) { - case 1 /* UpToDate */: - if (buildResult & 2 /* DeclarationOutputUnchanged */) { - if (ref.prepend) { - state.projectStatus.set(nextProjectPath, { - type: 3 /* OutOfDateWithPrepend */, - outOfDateOutputFileName: status_3.oldestOutputFileName, - newerProjectName: project - }); - } - else { - status_3.type = 2 /* UpToDateWithUpstreamTypes */; - } - break; - } - case 15 /* UpToDateWithInputFileText */: - case 2 /* UpToDateWithUpstreamTypes */: - case 3 /* OutOfDateWithPrepend */: - if (!(buildResult & 2 /* DeclarationOutputUnchanged */)) { - state.projectStatus.set(nextProjectPath, { - type: 7 /* OutOfDateWithUpstream */, - outOfDateOutputFileName: status_3.type === 3 /* OutOfDateWithPrepend */ ? status_3.outOfDateOutputFileName : status_3.oldestOutputFileName, - newerProjectName: project - }); - } - break; - case 12 /* UpstreamBlocked */: - if (toResolvedConfigFilePath(state, resolveProjectName(state, status_3.upstreamProjectName)) === projectPath) { - clearProjectStatus(state, nextProjectPath); - } - break; - } - } - addProjToQueue(state, nextProjectPath, 0 /* None */); - break; - } - } - catch (e_639_1) { e_639 = { error: e_639_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_639) throw e_639.error; } - } - } -} -function build(state, project, cancellationToken, writeFile2, getCustomTransformers, onlyReferences) { - mark("SolutionBuilder::beforeBuild"); - var result = buildWorker(state, project, cancellationToken, writeFile2, getCustomTransformers, onlyReferences); - mark("SolutionBuilder::afterBuild"); - measure("SolutionBuilder::Build", "SolutionBuilder::beforeBuild", "SolutionBuilder::afterBuild"); - return result; -} -function buildWorker(state, project, cancellationToken, writeFile2, getCustomTransformers, onlyReferences) { - var buildOrder = getBuildOrderFor(state, project, onlyReferences); - if (!buildOrder) - return 3 /* InvalidProject_OutputsSkipped */; - setupInitialBuild(state, cancellationToken); - var reportQueue = true; - var successfulProjects = 0; - while (true) { - var invalidatedProject = getNextInvalidatedProject(state, buildOrder, reportQueue); - if (!invalidatedProject) - break; - reportQueue = false; - invalidatedProject.done(cancellationToken, writeFile2, getCustomTransformers == null ? void 0 : getCustomTransformers(invalidatedProject.project)); - if (!state.diagnostics.has(invalidatedProject.projectPath)) - successfulProjects++; - } - disableCache(state); - reportErrorSummary(state, buildOrder); - startWatching(state, buildOrder); - return isCircularBuildOrder(buildOrder) ? 4 /* ProjectReferenceCycle_OutputsSkipped */ : !buildOrder.some(function (p) { return state.diagnostics.has(toResolvedConfigFilePath(state, p)); }) ? 0 /* Success */ : successfulProjects ? 2 /* DiagnosticsPresent_OutputsGenerated */ : 1 /* DiagnosticsPresent_OutputsSkipped */; -} -function clean(state, project, onlyReferences) { - mark("SolutionBuilder::beforeClean"); - var result = cleanWorker(state, project, onlyReferences); - mark("SolutionBuilder::afterClean"); - measure("SolutionBuilder::Clean", "SolutionBuilder::beforeClean", "SolutionBuilder::afterClean"); - return result; -} -function cleanWorker(state, project, onlyReferences) { - var e_640, _t, e_641, _u; - var buildOrder = getBuildOrderFor(state, project, onlyReferences); - if (!buildOrder) - return 3 /* InvalidProject_OutputsSkipped */; - if (isCircularBuildOrder(buildOrder)) { - reportErrors(state, buildOrder.circularDiagnostics); - return 4 /* ProjectReferenceCycle_OutputsSkipped */; - } - var options = state.options, host = state.host; - var filesToDelete = options.dry ? [] : void 0; - try { - for (var buildOrder_1 = __values(buildOrder), buildOrder_1_1 = buildOrder_1.next(); !buildOrder_1_1.done; buildOrder_1_1 = buildOrder_1.next()) { - var proj = buildOrder_1_1.value; - var resolvedPath = toResolvedConfigFilePath(state, proj); - var parsed = parseConfigFile(state, proj, resolvedPath); - if (parsed === void 0) { - reportParseConfigFileDiagnostic(state, resolvedPath); - continue; - } - var outputs = getAllProjectOutputs(parsed, !host.useCaseSensitiveFileNames()); - if (!outputs.length) - continue; - var inputFileNames = new Set(parsed.fileNames.map(function (f) { return toPath2(state, f); })); - try { - for (var outputs_3 = (e_641 = void 0, __values(outputs)), outputs_3_1 = outputs_3.next(); !outputs_3_1.done; outputs_3_1 = outputs_3.next()) { - var output = outputs_3_1.value; - if (inputFileNames.has(toPath2(state, output))) - continue; - if (host.fileExists(output)) { - if (filesToDelete) { - filesToDelete.push(output); - } - else { - host.deleteFile(output); - invalidateProject(state, resolvedPath, 0 /* None */); - } - } - } - } - catch (e_641_1) { e_641 = { error: e_641_1 }; } - finally { - try { - if (outputs_3_1 && !outputs_3_1.done && (_u = outputs_3.return)) _u.call(outputs_3); - } - finally { if (e_641) throw e_641.error; } - } - } - } - catch (e_640_1) { e_640 = { error: e_640_1 }; } - finally { - try { - if (buildOrder_1_1 && !buildOrder_1_1.done && (_t = buildOrder_1.return)) _t.call(buildOrder_1); - } - finally { if (e_640) throw e_640.error; } - } - if (filesToDelete) { - reportStatus(state, Diagnostics.A_non_dry_build_would_delete_the_following_files_Colon_0, filesToDelete.map(function (f) { return "\r\n * ".concat(f); }).join("")); - } - return 0 /* Success */; -} -function invalidateProject(state, resolved, reloadLevel) { - if (state.host.getParsedCommandLine && reloadLevel === 1 /* Partial */) { - reloadLevel = 2 /* Full */; - } - if (reloadLevel === 2 /* Full */) { - state.configFileCache.delete(resolved); - state.buildOrder = void 0; - } - state.needsSummary = true; - clearProjectStatus(state, resolved); - addProjToQueue(state, resolved, reloadLevel); - enableCache(state); -} -function invalidateProjectAndScheduleBuilds(state, resolvedPath, reloadLevel) { - state.reportFileChangeDetected = true; - invalidateProject(state, resolvedPath, reloadLevel); - scheduleBuildInvalidatedProject(state, 250, - /*changeDetected*/ - true); -} -function scheduleBuildInvalidatedProject(state, time, changeDetected) { - var hostWithWatch = state.hostWithWatch; - if (!hostWithWatch.setTimeout || !hostWithWatch.clearTimeout) { - return; - } - if (state.timerToBuildInvalidatedProject) { - hostWithWatch.clearTimeout(state.timerToBuildInvalidatedProject); - } - state.timerToBuildInvalidatedProject = hostWithWatch.setTimeout(buildNextInvalidatedProject, time, "timerToBuildInvalidatedProject", state, changeDetected); -} -function buildNextInvalidatedProject(_timeoutType, state, changeDetected) { - mark("SolutionBuilder::beforeBuild"); - var buildOrder = buildNextInvalidatedProjectWorker(state, changeDetected); - mark("SolutionBuilder::afterBuild"); - measure("SolutionBuilder::Build", "SolutionBuilder::beforeBuild", "SolutionBuilder::afterBuild"); - if (buildOrder) - reportErrorSummary(state, buildOrder); -} -function buildNextInvalidatedProjectWorker(state, changeDetected) { - state.timerToBuildInvalidatedProject = void 0; - if (state.reportFileChangeDetected) { - state.reportFileChangeDetected = false; - state.projectErrorsReported.clear(); - reportWatchStatus(state, Diagnostics.File_change_detected_Starting_incremental_compilation); - } - var projectsBuilt = 0; - var buildOrder = getBuildOrder(state); - var invalidatedProject = getNextInvalidatedProject(state, buildOrder, - /*reportQueue*/ - false); - if (invalidatedProject) { - invalidatedProject.done(); - projectsBuilt++; - while (state.projectPendingBuild.size) { - if (state.timerToBuildInvalidatedProject) - return; - var info = getNextInvalidatedProjectCreateInfo(state, buildOrder, - /*reportQueue*/ - false); - if (!info) - break; - if (info.kind !== 2 /* UpdateOutputFileStamps */ && (changeDetected || projectsBuilt === 5)) { - scheduleBuildInvalidatedProject(state, 100, - /*changeDetected*/ - false); - return; - } - var project = createInvalidatedProjectWithInfo(state, info, buildOrder); - project.done(); - if (info.kind !== 2 /* UpdateOutputFileStamps */) - projectsBuilt++; - } - } - disableCache(state); - return buildOrder; -} -function watchConfigFile(state, resolved, resolvedPath, parsed) { - if (!state.watch || state.allWatchedConfigFiles.has(resolvedPath)) - return; - state.allWatchedConfigFiles.set(resolvedPath, watchFile(state, resolved, function () { return invalidateProjectAndScheduleBuilds(state, resolvedPath, 2 /* Full */); }, 2e3 /* High */, parsed == null ? void 0 : parsed.watchOptions, WatchType.ConfigFile, resolved)); -} -function watchExtendedConfigFiles(state, resolvedPath, parsed) { - updateSharedExtendedConfigFileWatcher(resolvedPath, parsed == null ? void 0 : parsed.options, state.allWatchedExtendedConfigFiles, function (extendedConfigFileName, extendedConfigFilePath) { return watchFile(state, extendedConfigFileName, function () { - var _a; - return (_a = state.allWatchedExtendedConfigFiles.get(extendedConfigFilePath)) == null ? void 0 : _a.projects.forEach(function (projectConfigFilePath) { return invalidateProjectAndScheduleBuilds(state, projectConfigFilePath, 2 /* Full */); }); - }, 2e3 /* High */, parsed == null ? void 0 : parsed.watchOptions, WatchType.ExtendedConfigFile); }, function (fileName) { return toPath2(state, fileName); }); -} -function watchWildCardDirectories(state, resolved, resolvedPath, parsed) { - if (!state.watch) - return; - updateWatchingWildcardDirectories(getOrCreateValueMapFromConfigFileMap(state.allWatchedWildcardDirectories, resolvedPath), new Map(Object.entries(parsed.wildcardDirectories)), function (dir, flags) { return state.watchDirectory(dir, function (fileOrDirectory) { - var _a; - if (isIgnoredFileFromWildCardWatching({ - watchedDirPath: toPath2(state, dir), - fileOrDirectory: fileOrDirectory, - fileOrDirectoryPath: toPath2(state, fileOrDirectory), - configFileName: resolved, - currentDirectory: state.compilerHost.getCurrentDirectory(), - options: parsed.options, - program: state.builderPrograms.get(resolvedPath) || ((_a = getCachedParsedConfigFile(state, resolvedPath)) == null ? void 0 : _a.fileNames), - useCaseSensitiveFileNames: state.parseConfigFileHost.useCaseSensitiveFileNames, - writeLog: function (s) { return state.writeLog(s); }, - toPath: function (fileName) { return toPath2(state, fileName); } - })) - return; - invalidateProjectAndScheduleBuilds(state, resolvedPath, 1 /* Partial */); - }, flags, parsed == null ? void 0 : parsed.watchOptions, WatchType.WildcardDirectory, resolved); }); -} -function watchInputFiles(state, resolved, resolvedPath, parsed) { - if (!state.watch) - return; - mutateMap(getOrCreateValueMapFromConfigFileMap(state.allWatchedInputFiles, resolvedPath), arrayToMap(parsed.fileNames, function (fileName) { return toPath2(state, fileName); }), { - createNewValue: function (_path, input) { return watchFile(state, input, function () { return invalidateProjectAndScheduleBuilds(state, resolvedPath, 0 /* None */); }, 250 /* Low */, parsed == null ? void 0 : parsed.watchOptions, WatchType.SourceFile, resolved); }, - onDeleteValue: closeFileWatcher - }); -} -function watchPackageJsonFiles(state, resolved, resolvedPath, parsed) { - if (!state.watch || !state.lastCachedPackageJsonLookups) - return; - mutateMap(getOrCreateValueMapFromConfigFileMap(state.allWatchedPackageJsonFiles, resolvedPath), new Map(state.lastCachedPackageJsonLookups.get(resolvedPath)), { - createNewValue: function (path, _input) { return watchFile(state, path, function () { return invalidateProjectAndScheduleBuilds(state, resolvedPath, 0 /* None */); }, 2e3 /* High */, parsed == null ? void 0 : parsed.watchOptions, WatchType.PackageJson, resolved); }, - onDeleteValue: closeFileWatcher - }); -} -function startWatching(state, buildOrder) { - var e_642, _t; - if (!state.watchAllProjectsPending) - return; - mark("SolutionBuilder::beforeWatcherCreation"); - state.watchAllProjectsPending = false; - try { - for (var _u = __values(getBuildOrderFromAnyBuildOrder(buildOrder)), _v = _u.next(); !_v.done; _v = _u.next()) { - var resolved = _v.value; - var resolvedPath = toResolvedConfigFilePath(state, resolved); - var cfg = parseConfigFile(state, resolved, resolvedPath); - watchConfigFile(state, resolved, resolvedPath, cfg); - watchExtendedConfigFiles(state, resolvedPath, cfg); - if (cfg) { - watchWildCardDirectories(state, resolved, resolvedPath, cfg); - watchInputFiles(state, resolved, resolvedPath, cfg); - watchPackageJsonFiles(state, resolved, resolvedPath, cfg); - } - } - } - catch (e_642_1) { e_642 = { error: e_642_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_642) throw e_642.error; } - } - mark("SolutionBuilder::afterWatcherCreation"); - measure("SolutionBuilder::Watcher creation", "SolutionBuilder::beforeWatcherCreation", "SolutionBuilder::afterWatcherCreation"); -} -function stopWatching(state) { - clearMap(state.allWatchedConfigFiles, closeFileWatcher); - clearMap(state.allWatchedExtendedConfigFiles, closeFileWatcherOf); - clearMap(state.allWatchedWildcardDirectories, function (watchedWildcardDirectories) { return clearMap(watchedWildcardDirectories, closeFileWatcherOf); }); - clearMap(state.allWatchedInputFiles, function (watchedWildcardDirectories) { return clearMap(watchedWildcardDirectories, closeFileWatcher); }); - clearMap(state.allWatchedPackageJsonFiles, function (watchedPacageJsonFiles) { return clearMap(watchedPacageJsonFiles, closeFileWatcher); }); -} -function createSolutionBuilderWorker(watch, hostOrHostWithWatch, rootNames, options, baseWatchOptions) { - var state = createSolutionBuilderState(watch, hostOrHostWithWatch, rootNames, options, baseWatchOptions); - return { - build: function (project, cancellationToken, writeFile2, getCustomTransformers) { return build(state, project, cancellationToken, writeFile2, getCustomTransformers); }, - clean: function (project) { return clean(state, project); }, - buildReferences: function (project, cancellationToken, writeFile2, getCustomTransformers) { return build(state, project, cancellationToken, writeFile2, getCustomTransformers, - /*onlyReferences*/ - true); }, - cleanReferences: function (project) { return clean(state, project, - /*onlyReferences*/ - true); }, - getNextInvalidatedProject: function (cancellationToken) { - setupInitialBuild(state, cancellationToken); - return getNextInvalidatedProject(state, getBuildOrder(state), - /*reportQueue*/ - false); - }, - getBuildOrder: function () { return getBuildOrder(state); }, - getUpToDateStatusOfProject: function (project) { - var configFileName = resolveProjectName(state, project); - var configFilePath = toResolvedConfigFilePath(state, configFileName); - return getUpToDateStatus(state, parseConfigFile(state, configFileName, configFilePath), configFilePath); - }, - invalidateProject: function (configFilePath, reloadLevel) { return invalidateProject(state, configFilePath, reloadLevel || 0 /* None */); }, - close: function () { return stopWatching(state); } - }; -} -function relName(state, path) { - return convertToRelativePath(path, state.compilerHost.getCurrentDirectory(), state.compilerHost.getCanonicalFileName); -} -function reportStatus(state, message) { - var args = []; - for (var _t = 2; _t < arguments.length; _t++) { - args[_t - 2] = arguments[_t]; - } - state.host.reportSolutionBuilderStatus(createCompilerDiagnostic.apply(void 0, __spreadArray([message], __read(args), false))); -} -function reportWatchStatus(state, message) { - var args = []; - for (var _t = 2; _t < arguments.length; _t++) { - args[_t - 2] = arguments[_t]; - } - var _a, _b; - (_b = (_a = state.hostWithWatch).onWatchStatusChange) == null ? void 0 : _b.call(_a, createCompilerDiagnostic.apply(void 0, __spreadArray([message], __read(args), false)), state.host.getNewLine(), state.baseCompilerOptions); -} -function reportErrors(_t, errors) { - var host = _t.host; - errors.forEach(function (err) { return host.reportDiagnostic(err); }); -} -function reportAndStoreErrors(state, proj, errors) { - reportErrors(state, errors); - state.projectErrorsReported.set(proj, true); - if (errors.length) { - state.diagnostics.set(proj, errors); - } -} -function reportParseConfigFileDiagnostic(state, proj) { - reportAndStoreErrors(state, proj, [state.configFileCache.get(proj)]); -} -function reportErrorSummary(state, buildOrder) { - if (!state.needsSummary) - return; - state.needsSummary = false; - var canReportSummary = state.watch || !!state.host.reportErrorSummary; - var diagnostics = state.diagnostics; - var totalErrors = 0; - var filesInError = []; - if (isCircularBuildOrder(buildOrder)) { - reportBuildQueue(state, buildOrder.buildOrder); - reportErrors(state, buildOrder.circularDiagnostics); - if (canReportSummary) - totalErrors += getErrorCountForSummary(buildOrder.circularDiagnostics); - if (canReportSummary) - filesInError = __spreadArray(__spreadArray([], __read(filesInError), false), __read(getFilesInErrorForSummary(buildOrder.circularDiagnostics)), false); - } - else { - buildOrder.forEach(function (project) { - var projectPath = toResolvedConfigFilePath(state, project); - if (!state.projectErrorsReported.has(projectPath)) { - reportErrors(state, diagnostics.get(projectPath) || emptyArray); - } - }); - if (canReportSummary) - diagnostics.forEach(function (singleProjectErrors) { return totalErrors += getErrorCountForSummary(singleProjectErrors); }); - if (canReportSummary) - diagnostics.forEach(function (singleProjectErrors) { return __spreadArray(__spreadArray([], __read(filesInError), false), __read(getFilesInErrorForSummary(singleProjectErrors)), false); }); - } - if (state.watch) { - reportWatchStatus(state, getWatchErrorSummaryDiagnosticMessage(totalErrors), totalErrors); - } - else if (state.host.reportErrorSummary) { - state.host.reportErrorSummary(totalErrors, filesInError); - } -} -function reportBuildQueue(state, buildQueue) { - if (state.options.verbose) { - reportStatus(state, Diagnostics.Projects_in_this_build_Colon_0, buildQueue.map(function (s) { return "\r\n * " + relName(state, s); }).join("")); - } -} -function reportUpToDateStatus(state, configFileName, status) { - switch (status.type) { - case 6 /* OutOfDateWithSelf */: - return reportStatus(state, Diagnostics.Project_0_is_out_of_date_because_output_1_is_older_than_input_2, relName(state, configFileName), relName(state, status.outOfDateOutputFileName), relName(state, status.newerInputFileName)); - case 7 /* OutOfDateWithUpstream */: - return reportStatus(state, Diagnostics.Project_0_is_out_of_date_because_output_1_is_older_than_input_2, relName(state, configFileName), relName(state, status.outOfDateOutputFileName), relName(state, status.newerProjectName)); - case 4 /* OutputMissing */: - return reportStatus(state, Diagnostics.Project_0_is_out_of_date_because_output_file_1_does_not_exist, relName(state, configFileName), relName(state, status.missingOutputFileName)); - case 5 /* ErrorReadingFile */: - return reportStatus(state, Diagnostics.Project_0_is_out_of_date_because_there_was_error_reading_file_1, relName(state, configFileName), relName(state, status.fileName)); - case 8 /* OutOfDateBuildInfo */: - return reportStatus(state, Diagnostics.Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_some_of_the_changes_were_not_emitted, relName(state, configFileName), relName(state, status.buildInfoFile)); - case 9 /* OutOfDateOptions */: - return reportStatus(state, Diagnostics.Project_0_is_out_of_date_because_buildinfo_file_1_indicates_there_is_change_in_compilerOptions, relName(state, configFileName), relName(state, status.buildInfoFile)); - case 10 /* OutOfDateRoots */: - return reportStatus(state, Diagnostics.Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_file_2_was_root_file_of_compilation_but_not_any_more, relName(state, configFileName), relName(state, status.buildInfoFile), relName(state, status.inputFile)); - case 1 /* UpToDate */: - if (status.newestInputFileTime !== void 0) { - return reportStatus(state, Diagnostics.Project_0_is_up_to_date_because_newest_input_1_is_older_than_output_2, relName(state, configFileName), relName(state, status.newestInputFileName || ""), relName(state, status.oldestOutputFileName || "")); - } - break; - case 3 /* OutOfDateWithPrepend */: - return reportStatus(state, Diagnostics.Project_0_is_out_of_date_because_output_of_its_dependency_1_has_changed, relName(state, configFileName), relName(state, status.newerProjectName)); - case 2 /* UpToDateWithUpstreamTypes */: - return reportStatus(state, Diagnostics.Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies, relName(state, configFileName)); - case 15 /* UpToDateWithInputFileText */: - return reportStatus(state, Diagnostics.Project_0_is_up_to_date_but_needs_to_update_timestamps_of_output_files_that_are_older_than_input_files, relName(state, configFileName)); - case 11 /* UpstreamOutOfDate */: - return reportStatus(state, Diagnostics.Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date, relName(state, configFileName), relName(state, status.upstreamProjectName)); - case 12 /* UpstreamBlocked */: - return reportStatus(state, status.upstreamProjectBlocked ? Diagnostics.Project_0_can_t_be_built_because_its_dependency_1_was_not_built : Diagnostics.Project_0_can_t_be_built_because_its_dependency_1_has_errors, relName(state, configFileName), relName(state, status.upstreamProjectName)); - case 0 /* Unbuildable */: - return reportStatus(state, Diagnostics.Failed_to_parse_file_0_Colon_1, relName(state, configFileName), status.reason); - case 14 /* TsVersionOutputOfDate */: - return reportStatus(state, Diagnostics.Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_current_version_2, relName(state, configFileName), status.version, version); - case 17 /* ForceBuild */: - return reportStatus(state, Diagnostics.Project_0_is_being_forcibly_rebuilt, relName(state, configFileName)); - case 16 /* ContainerOnly */: - case 13 /* ComputingUpstream */: - break; - default: - assertType(status); - } -} -function verboseReportProjectStatus(state, configFileName, status) { - if (state.options.verbose) { - reportUpToDateStatus(state, configFileName, status); - } -} -// src/jsTyping/_namespaces/ts.JsTyping.ts -var ts_JsTyping_exports = {}; -__export(ts_JsTyping_exports, { - NameValidationResult: function () { return NameValidationResult; }, - discoverTypings: function () { return discoverTypings; }, - isTypingUpToDate: function () { return isTypingUpToDate; }, - loadSafeList: function () { return loadSafeList; }, - loadTypesMap: function () { return loadTypesMap; }, - nodeCoreModuleList: function () { return nodeCoreModuleList; }, - nodeCoreModules: function () { return nodeCoreModules; }, - nonRelativeModuleNameForTypingCache: function () { return nonRelativeModuleNameForTypingCache; }, - prefixedNodeCoreModuleList: function () { return prefixedNodeCoreModuleList; }, - renderPackageNameValidationFailure: function () { return renderPackageNameValidationFailure; }, - validatePackageName: function () { return validatePackageName; } -}); -// src/jsTyping/jsTyping.ts -function isTypingUpToDate(cachedTyping, availableTypingVersions) { - var availableVersion = new Version(getProperty(availableTypingVersions, "ts".concat(versionMajorMinor)) || getProperty(availableTypingVersions, "latest")); - return availableVersion.compareTo(cachedTyping.version) <= 0; -} -var unprefixedNodeCoreModuleList = [ - "assert", - "assert/strict", - "async_hooks", - "buffer", - "child_process", - "cluster", - "console", - "constants", - "crypto", - "dgram", - "diagnostics_channel", - "dns", - "dns/promises", - "domain", - "events", - "fs", - "fs/promises", - "http", - "https", - "http2", - "inspector", - "module", - "net", - "os", - "path", - "perf_hooks", - "process", - "punycode", - "querystring", - "readline", - "repl", - "stream", - "stream/promises", - "string_decoder", - "timers", - "timers/promises", - "tls", - "trace_events", - "tty", - "url", - "util", - "util/types", - "v8", - "vm", - "wasi", - "worker_threads", - "zlib" -]; -var prefixedNodeCoreModuleList = unprefixedNodeCoreModuleList.map(function (name) { return "node:".concat(name); }); -var nodeCoreModuleList = __spreadArray(__spreadArray([], __read(unprefixedNodeCoreModuleList), false), __read(prefixedNodeCoreModuleList), false); -var nodeCoreModules = new Set(nodeCoreModuleList); -function nonRelativeModuleNameForTypingCache(moduleName) { - return nodeCoreModules.has(moduleName) ? "node" : moduleName; -} -function loadSafeList(host, safeListPath) { - var result = readConfigFile(safeListPath, function (path) { return host.readFile(path); }); - return new Map(Object.entries(result.config)); -} -function loadTypesMap(host, typesMapPath) { - var _a; - var result = readConfigFile(typesMapPath, function (path) { return host.readFile(path); }); - if ((_a = result.config) == null ? void 0 : _a.simpleMap) { - return new Map(Object.entries(result.config.simpleMap)); - } - return void 0; -} -function discoverTypings(host, log, fileNames, projectRootPath, safeList, packageNameToTypingLocation, typeAcquisition, unresolvedImports, typesRegistry, compilerOptions) { - var e_643, _t; - if (!typeAcquisition || !typeAcquisition.enable) { - return { cachedTypingPaths: [], newTypingNames: [], filesToWatch: [] }; - } - var inferredTypings = /* @__PURE__ */ new Map(); - fileNames = mapDefined(fileNames, function (fileName) { - var path = normalizePath(fileName); - if (hasJSFileExtension(path)) { - return path; - } - }); - var filesToWatch = []; - if (typeAcquisition.include) - addInferredTypings(typeAcquisition.include, "Explicitly included types"); - var exclude = typeAcquisition.exclude || []; - if (!compilerOptions.types) { - var possibleSearchDirs = new Set(fileNames.map(getDirectoryPath)); - possibleSearchDirs.add(projectRootPath); - possibleSearchDirs.forEach(function (searchDir) { - getTypingNames(searchDir, "bower.json", "bower_components", filesToWatch); - getTypingNames(searchDir, "package.json", "node_modules", filesToWatch); - }); - } - if (!typeAcquisition.disableFilenameBasedTypeAcquisition) { - getTypingNamesFromSourceFileNames(fileNames); - } - if (unresolvedImports) { - var module2 = deduplicate(unresolvedImports.map(nonRelativeModuleNameForTypingCache), equateStringsCaseSensitive, compareStringsCaseSensitive); - addInferredTypings(module2, "Inferred typings from unresolved imports"); - } - packageNameToTypingLocation.forEach(function (typing, name) { - var registryEntry = typesRegistry.get(name); - if (inferredTypings.has(name) && inferredTypings.get(name) === void 0 && registryEntry !== void 0 && isTypingUpToDate(typing, registryEntry)) { - inferredTypings.set(name, typing.typingLocation); - } - }); - try { - for (var exclude_1 = __values(exclude), exclude_1_1 = exclude_1.next(); !exclude_1_1.done; exclude_1_1 = exclude_1.next()) { - var excludeTypingName = exclude_1_1.value; - var didDelete = inferredTypings.delete(excludeTypingName); - if (didDelete && log) - log("Typing for ".concat(excludeTypingName, " is in exclude list, will be ignored.")); - } - } - catch (e_643_1) { e_643 = { error: e_643_1 }; } - finally { - try { - if (exclude_1_1 && !exclude_1_1.done && (_t = exclude_1.return)) _t.call(exclude_1); - } - finally { if (e_643) throw e_643.error; } - } - var newTypingNames = []; - var cachedTypingPaths = []; - inferredTypings.forEach(function (inferred, typing) { - if (inferred !== void 0) { - cachedTypingPaths.push(inferred); - } - else { - newTypingNames.push(typing); - } - }); - var result = { cachedTypingPaths: cachedTypingPaths, newTypingNames: newTypingNames, filesToWatch: filesToWatch }; - if (log) - log("Result: ".concat(JSON.stringify(result))); - return result; - function addInferredTyping(typingName) { - if (!inferredTypings.has(typingName)) { - inferredTypings.set(typingName, void 0); - } - } - function addInferredTypings(typingNames, message) { - if (log) - log("".concat(message, ": ").concat(JSON.stringify(typingNames))); - forEach(typingNames, addInferredTyping); - } - function getTypingNames(projectRootPath2, manifestName, modulesDirName, filesToWatch2) { - var e_644, _t; - var manifestPath = combinePaths(projectRootPath2, manifestName); - var manifest; - var manifestTypingNames; - if (host.fileExists(manifestPath)) { - filesToWatch2.push(manifestPath); - manifest = readConfigFile(manifestPath, function (path) { return host.readFile(path); }).config; - manifestTypingNames = flatMap([manifest.dependencies, manifest.devDependencies, manifest.optionalDependencies, manifest.peerDependencies], getOwnKeys); - addInferredTypings(manifestTypingNames, "Typing names in '".concat(manifestPath, "' dependencies")); - } - var packagesFolderPath = combinePaths(projectRootPath2, modulesDirName); - filesToWatch2.push(packagesFolderPath); - if (!host.directoryExists(packagesFolderPath)) { - return; - } - var packageNames = []; - var dependencyManifestNames = manifestTypingNames ? manifestTypingNames.map(function (typingName) { return combinePaths(packagesFolderPath, typingName, manifestName); }) : host.readDirectory(packagesFolderPath, [".json" /* Json */], - /*excludes*/ - void 0, - /*includes*/ - void 0, - /*depth*/ - 3).filter(function (manifestPath2) { - if (getBaseFileName(manifestPath2) !== manifestName) { - return false; - } - var pathComponents2 = getPathComponents(normalizePath(manifestPath2)); - var isScoped = pathComponents2[pathComponents2.length - 3][0] === "@"; - return isScoped && toFileNameLowerCase(pathComponents2[pathComponents2.length - 4]) === modulesDirName || // `node_modules/@foo/bar` - !isScoped && toFileNameLowerCase(pathComponents2[pathComponents2.length - 3]) === modulesDirName; - }); - if (log) - log("Searching for typing names in ".concat(packagesFolderPath, "; all files: ").concat(JSON.stringify(dependencyManifestNames))); - try { - for (var dependencyManifestNames_1 = __values(dependencyManifestNames), dependencyManifestNames_1_1 = dependencyManifestNames_1.next(); !dependencyManifestNames_1_1.done; dependencyManifestNames_1_1 = dependencyManifestNames_1.next()) { - var manifestPath2 = dependencyManifestNames_1_1.value; - var normalizedFileName = normalizePath(manifestPath2); - var result2 = readConfigFile(normalizedFileName, function (path) { return host.readFile(path); }); - var manifest2 = result2.config; - if (!manifest2.name) { - continue; - } - var ownTypes = manifest2.types || manifest2.typings; - if (ownTypes) { - var absolutePath = getNormalizedAbsolutePath(ownTypes, getDirectoryPath(normalizedFileName)); - if (host.fileExists(absolutePath)) { - if (log) - log(" Package '".concat(manifest2.name, "' provides its own types.")); - inferredTypings.set(manifest2.name, absolutePath); - } - else { - if (log) - log(" Package '".concat(manifest2.name, "' provides its own types but they are missing.")); - } - } - else { - packageNames.push(manifest2.name); - } - } - } - catch (e_644_1) { e_644 = { error: e_644_1 }; } - finally { - try { - if (dependencyManifestNames_1_1 && !dependencyManifestNames_1_1.done && (_t = dependencyManifestNames_1.return)) _t.call(dependencyManifestNames_1); - } - finally { if (e_644) throw e_644.error; } - } - addInferredTypings(packageNames, " Found package names"); - } - function getTypingNamesFromSourceFileNames(fileNames2) { - var fromFileNames = mapDefined(fileNames2, function (j) { - if (!hasJSFileExtension(j)) - return void 0; - var inferredTypingName = removeFileExtension(toFileNameLowerCase(getBaseFileName(j))); - var cleanedTypingName = removeMinAndVersionNumbers(inferredTypingName); - return safeList.get(cleanedTypingName); - }); - if (fromFileNames.length) { - addInferredTypings(fromFileNames, "Inferred typings from file names"); - } - var hasJsxFile = some(fileNames2, function (f) { return fileExtensionIs(f, ".jsx" /* Jsx */); }); - if (hasJsxFile) { - if (log) - log("Inferred 'react' typings due to presence of '.jsx' extension"); - addInferredTyping("react"); - } - } -} -var NameValidationResult = /* @__PURE__ */ (function (NameValidationResult2) { - NameValidationResult2[NameValidationResult2["Ok"] = 0] = "Ok"; - NameValidationResult2[NameValidationResult2["EmptyName"] = 1] = "EmptyName"; - NameValidationResult2[NameValidationResult2["NameTooLong"] = 2] = "NameTooLong"; - NameValidationResult2[NameValidationResult2["NameStartsWithDot"] = 3] = "NameStartsWithDot"; - NameValidationResult2[NameValidationResult2["NameStartsWithUnderscore"] = 4] = "NameStartsWithUnderscore"; - NameValidationResult2[NameValidationResult2["NameContainsNonURISafeCharacters"] = 5] = "NameContainsNonURISafeCharacters"; - return NameValidationResult2; -})(NameValidationResult || {}); -var maxPackageNameLength = 214; -function validatePackageName(packageName) { - return validatePackageNameWorker(packageName, - /*supportScopedPackage*/ - true); -} -function validatePackageNameWorker(packageName, supportScopedPackage) { - if (!packageName) { - return 1 /* EmptyName */; - } - if (packageName.length > maxPackageNameLength) { - return 2 /* NameTooLong */; - } - if (packageName.charCodeAt(0) === 46 /* dot */) { - return 3 /* NameStartsWithDot */; - } - if (packageName.charCodeAt(0) === 95 /* _ */) { - return 4 /* NameStartsWithUnderscore */; - } - if (supportScopedPackage) { - var matches = /^@([^/]+)\/([^/]+)$/.exec(packageName); - if (matches) { - var scopeResult = validatePackageNameWorker(matches[1], - /*supportScopedPackage*/ - false); - if (scopeResult !== 0 /* Ok */) { - return { name: matches[1], isScopeName: true, result: scopeResult }; - } - var packageResult = validatePackageNameWorker(matches[2], - /*supportScopedPackage*/ - false); - if (packageResult !== 0 /* Ok */) { - return { name: matches[2], isScopeName: false, result: packageResult }; - } - return 0 /* Ok */; - } - } - if (encodeURIComponent(packageName) !== packageName) { - return 5 /* NameContainsNonURISafeCharacters */; - } - return 0 /* Ok */; -} -function renderPackageNameValidationFailure(result, typing) { - return typeof result === "object" ? renderPackageNameValidationFailureWorker(typing, result.result, result.name, result.isScopeName) : renderPackageNameValidationFailureWorker(typing, result, typing, - /*isScopeName*/ - false); -} -function renderPackageNameValidationFailureWorker(typing, result, name, isScopeName) { - var kind = isScopeName ? "Scope" : "Package"; - switch (result) { - case 1 /* EmptyName */: - return "'".concat(typing, "':: ").concat(kind, " name '").concat(name, "' cannot be empty"); - case 2 /* NameTooLong */: - return "'".concat(typing, "':: ").concat(kind, " name '").concat(name, "' should be less than ").concat(maxPackageNameLength, " characters"); - case 3 /* NameStartsWithDot */: - return "'".concat(typing, "':: ").concat(kind, " name '").concat(name, "' cannot start with '.'"); - case 4 /* NameStartsWithUnderscore */: - return "'".concat(typing, "':: ").concat(kind, " name '").concat(name, "' cannot start with '_'"); - case 5 /* NameContainsNonURISafeCharacters */: - return "'".concat(typing, "':: ").concat(kind, " name '").concat(name, "' contains non URI safe characters"); - case 0 /* Ok */: - return Debug.fail(); - default: - Debug.assertNever(result); - } -} -// src/jsTyping/shared.ts -var ActionSet = "action::set"; -var ActionInvalidate = "action::invalidate"; -var ActionPackageInstalled = "action::packageInstalled"; -var EventTypesRegistry = "event::typesRegistry"; -var EventBeginInstallTypes = "event::beginInstallTypes"; -var EventEndInstallTypes = "event::endInstallTypes"; -var EventInitializationFailed = "event::initializationFailed"; -var ActionWatchTypingLocations = "action::watchTypingLocations"; -var Arguments; -(function (Arguments2) { - Arguments2.GlobalCacheLocation = "--globalTypingsCacheLocation"; - Arguments2.LogFile = "--logFile"; - Arguments2.EnableTelemetry = "--enableTelemetry"; - Arguments2.TypingSafeListLocation = "--typingSafeListLocation"; - Arguments2.TypesMapLocation = "--typesMapLocation"; - Arguments2.NpmLocation = "--npmLocation"; - Arguments2.ValidateDefaultNpmLocation = "--validateDefaultNpmLocation"; -})(Arguments || (Arguments = {})); -function hasArgument(argumentName) { - return sys.args.indexOf(argumentName) >= 0; -} -function findArgument(argumentName) { - var index = sys.args.indexOf(argumentName); - return index >= 0 && index < sys.args.length - 1 ? sys.args[index + 1] : void 0; -} -function nowString() { - var d = /* @__PURE__ */ new Date(); - return "".concat(padLeft(d.getHours().toString(), 2, "0"), ":").concat(padLeft(d.getMinutes().toString(), 2, "0"), ":").concat(padLeft(d.getSeconds().toString(), 2, "0"), ".").concat(padLeft(d.getMilliseconds().toString(), 3, "0")); -} -// src/services/types.ts -var ScriptSnapshot; -(function (ScriptSnapshot2) { - var StringScriptSnapshot = /** @class */ (function () { - function StringScriptSnapshot(text) { - this.text = text; - } - StringScriptSnapshot.prototype.getText = function (start2, end) { - return start2 === 0 && end === this.text.length ? this.text : this.text.substring(start2, end); - }; - StringScriptSnapshot.prototype.getLength = function () { - return this.text.length; - }; - StringScriptSnapshot.prototype.getChangeRange = function () { - return void 0; - }; - return StringScriptSnapshot; - }()); - function fromString(text) { - return new StringScriptSnapshot(text); - } - ScriptSnapshot2.fromString = fromString; -})(ScriptSnapshot || (ScriptSnapshot = {})); -var PackageJsonDependencyGroup = /* @__PURE__ */ (function (PackageJsonDependencyGroup2) { - PackageJsonDependencyGroup2[PackageJsonDependencyGroup2["Dependencies"] = 1] = "Dependencies"; - PackageJsonDependencyGroup2[PackageJsonDependencyGroup2["DevDependencies"] = 2] = "DevDependencies"; - PackageJsonDependencyGroup2[PackageJsonDependencyGroup2["PeerDependencies"] = 4] = "PeerDependencies"; - PackageJsonDependencyGroup2[PackageJsonDependencyGroup2["OptionalDependencies"] = 8] = "OptionalDependencies"; - PackageJsonDependencyGroup2[PackageJsonDependencyGroup2["All"] = 15] = "All"; - return PackageJsonDependencyGroup2; -})(PackageJsonDependencyGroup || {}); -var PackageJsonAutoImportPreference = /* @__PURE__ */ (function (PackageJsonAutoImportPreference2) { - PackageJsonAutoImportPreference2[PackageJsonAutoImportPreference2["Off"] = 0] = "Off"; - PackageJsonAutoImportPreference2[PackageJsonAutoImportPreference2["On"] = 1] = "On"; - PackageJsonAutoImportPreference2[PackageJsonAutoImportPreference2["Auto"] = 2] = "Auto"; - return PackageJsonAutoImportPreference2; -})(PackageJsonAutoImportPreference || {}); -var LanguageServiceMode = /* @__PURE__ */ (function (LanguageServiceMode2) { - LanguageServiceMode2[LanguageServiceMode2["Semantic"] = 0] = "Semantic"; - LanguageServiceMode2[LanguageServiceMode2["PartialSemantic"] = 1] = "PartialSemantic"; - LanguageServiceMode2[LanguageServiceMode2["Syntactic"] = 2] = "Syntactic"; - return LanguageServiceMode2; -})(LanguageServiceMode || {}); -var emptyOptions = {}; -var SemanticClassificationFormat = /* @__PURE__ */ (function (SemanticClassificationFormat3) { - SemanticClassificationFormat3["Original"] = "original"; - SemanticClassificationFormat3["TwentyTwenty"] = "2020"; - return SemanticClassificationFormat3; -})(SemanticClassificationFormat || {}); -var OrganizeImportsMode = /* @__PURE__ */ (function (OrganizeImportsMode3) { - OrganizeImportsMode3["All"] = "All"; - OrganizeImportsMode3["SortAndCombine"] = "SortAndCombine"; - OrganizeImportsMode3["RemoveUnused"] = "RemoveUnused"; - return OrganizeImportsMode3; -})(OrganizeImportsMode || {}); -var CompletionTriggerKind = /* @__PURE__ */ (function (CompletionTriggerKind4) { - CompletionTriggerKind4[CompletionTriggerKind4["Invoked"] = 1] = "Invoked"; - CompletionTriggerKind4[CompletionTriggerKind4["TriggerCharacter"] = 2] = "TriggerCharacter"; - CompletionTriggerKind4[CompletionTriggerKind4["TriggerForIncompleteCompletions"] = 3] = "TriggerForIncompleteCompletions"; - return CompletionTriggerKind4; -})(CompletionTriggerKind || {}); -var InlayHintKind = /* @__PURE__ */ (function (InlayHintKind2) { - InlayHintKind2["Type"] = "Type"; - InlayHintKind2["Parameter"] = "Parameter"; - InlayHintKind2["Enum"] = "Enum"; - return InlayHintKind2; -})(InlayHintKind || {}); -var HighlightSpanKind = /* @__PURE__ */ (function (HighlightSpanKind2) { - HighlightSpanKind2["none"] = "none"; - HighlightSpanKind2["definition"] = "definition"; - HighlightSpanKind2["reference"] = "reference"; - HighlightSpanKind2["writtenReference"] = "writtenReference"; - return HighlightSpanKind2; -})(HighlightSpanKind || {}); -var IndentStyle = /* @__PURE__ */ (function (IndentStyle3) { - IndentStyle3[IndentStyle3["None"] = 0] = "None"; - IndentStyle3[IndentStyle3["Block"] = 1] = "Block"; - IndentStyle3[IndentStyle3["Smart"] = 2] = "Smart"; - return IndentStyle3; -})(IndentStyle || {}); -var SemicolonPreference = /* @__PURE__ */ (function (SemicolonPreference3) { - SemicolonPreference3["Ignore"] = "ignore"; - SemicolonPreference3["Insert"] = "insert"; - SemicolonPreference3["Remove"] = "remove"; - return SemicolonPreference3; -})(SemicolonPreference || {}); -function getDefaultFormatCodeSettings(newLineCharacter) { - return { - indentSize: 4, - tabSize: 4, - newLineCharacter: newLineCharacter || "\n", - convertTabsToSpaces: true, - indentStyle: 2 /* Smart */, - insertSpaceAfterConstructor: false, - insertSpaceAfterCommaDelimiter: true, - insertSpaceAfterSemicolonInForStatements: true, - insertSpaceBeforeAndAfterBinaryOperators: true, - insertSpaceAfterKeywordsInControlFlowStatements: true, - insertSpaceAfterFunctionKeywordForAnonymousFunctions: false, - insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis: false, - insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets: false, - insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces: true, - insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces: false, - insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces: false, - insertSpaceBeforeFunctionParenthesis: false, - placeOpenBraceOnNewLineForFunctions: false, - placeOpenBraceOnNewLineForControlBlocks: false, - semicolons: "ignore" /* Ignore */, - trimTrailingWhitespace: true, - indentSwitchCase: true - }; -} -var testFormatSettings = getDefaultFormatCodeSettings("\n"); -var SymbolDisplayPartKind = /* @__PURE__ */ (function (SymbolDisplayPartKind2) { - SymbolDisplayPartKind2[SymbolDisplayPartKind2["aliasName"] = 0] = "aliasName"; - SymbolDisplayPartKind2[SymbolDisplayPartKind2["className"] = 1] = "className"; - SymbolDisplayPartKind2[SymbolDisplayPartKind2["enumName"] = 2] = "enumName"; - SymbolDisplayPartKind2[SymbolDisplayPartKind2["fieldName"] = 3] = "fieldName"; - SymbolDisplayPartKind2[SymbolDisplayPartKind2["interfaceName"] = 4] = "interfaceName"; - SymbolDisplayPartKind2[SymbolDisplayPartKind2["keyword"] = 5] = "keyword"; - SymbolDisplayPartKind2[SymbolDisplayPartKind2["lineBreak"] = 6] = "lineBreak"; - SymbolDisplayPartKind2[SymbolDisplayPartKind2["numericLiteral"] = 7] = "numericLiteral"; - SymbolDisplayPartKind2[SymbolDisplayPartKind2["stringLiteral"] = 8] = "stringLiteral"; - SymbolDisplayPartKind2[SymbolDisplayPartKind2["localName"] = 9] = "localName"; - SymbolDisplayPartKind2[SymbolDisplayPartKind2["methodName"] = 10] = "methodName"; - SymbolDisplayPartKind2[SymbolDisplayPartKind2["moduleName"] = 11] = "moduleName"; - SymbolDisplayPartKind2[SymbolDisplayPartKind2["operator"] = 12] = "operator"; - SymbolDisplayPartKind2[SymbolDisplayPartKind2["parameterName"] = 13] = "parameterName"; - SymbolDisplayPartKind2[SymbolDisplayPartKind2["propertyName"] = 14] = "propertyName"; - SymbolDisplayPartKind2[SymbolDisplayPartKind2["punctuation"] = 15] = "punctuation"; - SymbolDisplayPartKind2[SymbolDisplayPartKind2["space"] = 16] = "space"; - SymbolDisplayPartKind2[SymbolDisplayPartKind2["text"] = 17] = "text"; - SymbolDisplayPartKind2[SymbolDisplayPartKind2["typeParameterName"] = 18] = "typeParameterName"; - SymbolDisplayPartKind2[SymbolDisplayPartKind2["enumMemberName"] = 19] = "enumMemberName"; - SymbolDisplayPartKind2[SymbolDisplayPartKind2["functionName"] = 20] = "functionName"; - SymbolDisplayPartKind2[SymbolDisplayPartKind2["regularExpressionLiteral"] = 21] = "regularExpressionLiteral"; - SymbolDisplayPartKind2[SymbolDisplayPartKind2["link"] = 22] = "link"; - SymbolDisplayPartKind2[SymbolDisplayPartKind2["linkName"] = 23] = "linkName"; - SymbolDisplayPartKind2[SymbolDisplayPartKind2["linkText"] = 24] = "linkText"; - return SymbolDisplayPartKind2; -})(SymbolDisplayPartKind || {}); -var CompletionInfoFlags = /* @__PURE__ */ (function (CompletionInfoFlags2) { - CompletionInfoFlags2[CompletionInfoFlags2["None"] = 0] = "None"; - CompletionInfoFlags2[CompletionInfoFlags2["MayIncludeAutoImports"] = 1] = "MayIncludeAutoImports"; - CompletionInfoFlags2[CompletionInfoFlags2["IsImportStatementCompletion"] = 2] = "IsImportStatementCompletion"; - CompletionInfoFlags2[CompletionInfoFlags2["IsContinuation"] = 4] = "IsContinuation"; - CompletionInfoFlags2[CompletionInfoFlags2["ResolvedModuleSpecifiers"] = 8] = "ResolvedModuleSpecifiers"; - CompletionInfoFlags2[CompletionInfoFlags2["ResolvedModuleSpecifiersBeyondLimit"] = 16] = "ResolvedModuleSpecifiersBeyondLimit"; - CompletionInfoFlags2[CompletionInfoFlags2["MayIncludeMethodSnippets"] = 32] = "MayIncludeMethodSnippets"; - return CompletionInfoFlags2; -})(CompletionInfoFlags || {}); -var OutliningSpanKind = /* @__PURE__ */ (function (OutliningSpanKind2) { - OutliningSpanKind2["Comment"] = "comment"; - OutliningSpanKind2["Region"] = "region"; - OutliningSpanKind2["Code"] = "code"; - OutliningSpanKind2["Imports"] = "imports"; - return OutliningSpanKind2; -})(OutliningSpanKind || {}); -var OutputFileType = /* @__PURE__ */ (function (OutputFileType2) { - OutputFileType2[OutputFileType2["JavaScript"] = 0] = "JavaScript"; - OutputFileType2[OutputFileType2["SourceMap"] = 1] = "SourceMap"; - OutputFileType2[OutputFileType2["Declaration"] = 2] = "Declaration"; - return OutputFileType2; -})(OutputFileType || {}); -var EndOfLineState = /* @__PURE__ */ (function (EndOfLineState3) { - EndOfLineState3[EndOfLineState3["None"] = 0] = "None"; - EndOfLineState3[EndOfLineState3["InMultiLineCommentTrivia"] = 1] = "InMultiLineCommentTrivia"; - EndOfLineState3[EndOfLineState3["InSingleQuoteStringLiteral"] = 2] = "InSingleQuoteStringLiteral"; - EndOfLineState3[EndOfLineState3["InDoubleQuoteStringLiteral"] = 3] = "InDoubleQuoteStringLiteral"; - EndOfLineState3[EndOfLineState3["InTemplateHeadOrNoSubstitutionTemplate"] = 4] = "InTemplateHeadOrNoSubstitutionTemplate"; - EndOfLineState3[EndOfLineState3["InTemplateMiddleOrTail"] = 5] = "InTemplateMiddleOrTail"; - EndOfLineState3[EndOfLineState3["InTemplateSubstitutionPosition"] = 6] = "InTemplateSubstitutionPosition"; - return EndOfLineState3; -})(EndOfLineState || {}); -var TokenClass = /* @__PURE__ */ (function (TokenClass2) { - TokenClass2[TokenClass2["Punctuation"] = 0] = "Punctuation"; - TokenClass2[TokenClass2["Keyword"] = 1] = "Keyword"; - TokenClass2[TokenClass2["Operator"] = 2] = "Operator"; - TokenClass2[TokenClass2["Comment"] = 3] = "Comment"; - TokenClass2[TokenClass2["Whitespace"] = 4] = "Whitespace"; - TokenClass2[TokenClass2["Identifier"] = 5] = "Identifier"; - TokenClass2[TokenClass2["NumberLiteral"] = 6] = "NumberLiteral"; - TokenClass2[TokenClass2["BigIntLiteral"] = 7] = "BigIntLiteral"; - TokenClass2[TokenClass2["StringLiteral"] = 8] = "StringLiteral"; - TokenClass2[TokenClass2["RegExpLiteral"] = 9] = "RegExpLiteral"; - return TokenClass2; -})(TokenClass || {}); -var ScriptElementKind = /* @__PURE__ */ (function (ScriptElementKind2) { - ScriptElementKind2["unknown"] = ""; - ScriptElementKind2["warning"] = "warning"; - ScriptElementKind2["keyword"] = "keyword"; - ScriptElementKind2["scriptElement"] = "script"; - ScriptElementKind2["moduleElement"] = "module"; - ScriptElementKind2["classElement"] = "class"; - ScriptElementKind2["localClassElement"] = "local class"; - ScriptElementKind2["interfaceElement"] = "interface"; - ScriptElementKind2["typeElement"] = "type"; - ScriptElementKind2["enumElement"] = "enum"; - ScriptElementKind2["enumMemberElement"] = "enum member"; - ScriptElementKind2["variableElement"] = "var"; - ScriptElementKind2["localVariableElement"] = "local var"; - ScriptElementKind2["variableUsingElement"] = "using"; - ScriptElementKind2["variableAwaitUsingElement"] = "await using"; - ScriptElementKind2["functionElement"] = "function"; - ScriptElementKind2["localFunctionElement"] = "local function"; - ScriptElementKind2["memberFunctionElement"] = "method"; - ScriptElementKind2["memberGetAccessorElement"] = "getter"; - ScriptElementKind2["memberSetAccessorElement"] = "setter"; - ScriptElementKind2["memberVariableElement"] = "property"; - ScriptElementKind2["memberAccessorVariableElement"] = "accessor"; - ScriptElementKind2["constructorImplementationElement"] = "constructor"; - ScriptElementKind2["callSignatureElement"] = "call"; - ScriptElementKind2["indexSignatureElement"] = "index"; - ScriptElementKind2["constructSignatureElement"] = "construct"; - ScriptElementKind2["parameterElement"] = "parameter"; - ScriptElementKind2["typeParameterElement"] = "type parameter"; - ScriptElementKind2["primitiveType"] = "primitive type"; - ScriptElementKind2["label"] = "label"; - ScriptElementKind2["alias"] = "alias"; - ScriptElementKind2["constElement"] = "const"; - ScriptElementKind2["letElement"] = "let"; - ScriptElementKind2["directory"] = "directory"; - ScriptElementKind2["externalModuleName"] = "external module name"; - ScriptElementKind2["jsxAttribute"] = "JSX attribute"; - ScriptElementKind2["string"] = "string"; - ScriptElementKind2["link"] = "link"; - ScriptElementKind2["linkName"] = "link name"; - ScriptElementKind2["linkText"] = "link text"; - return ScriptElementKind2; -})(ScriptElementKind || {}); -var ScriptElementKindModifier = /* @__PURE__ */ (function (ScriptElementKindModifier2) { - ScriptElementKindModifier2["none"] = ""; - ScriptElementKindModifier2["publicMemberModifier"] = "public"; - ScriptElementKindModifier2["privateMemberModifier"] = "private"; - ScriptElementKindModifier2["protectedMemberModifier"] = "protected"; - ScriptElementKindModifier2["exportedModifier"] = "export"; - ScriptElementKindModifier2["ambientModifier"] = "declare"; - ScriptElementKindModifier2["staticModifier"] = "static"; - ScriptElementKindModifier2["abstractModifier"] = "abstract"; - ScriptElementKindModifier2["optionalModifier"] = "optional"; - ScriptElementKindModifier2["deprecatedModifier"] = "deprecated"; - ScriptElementKindModifier2["dtsModifier"] = ".d.ts"; - ScriptElementKindModifier2["tsModifier"] = ".ts"; - ScriptElementKindModifier2["tsxModifier"] = ".tsx"; - ScriptElementKindModifier2["jsModifier"] = ".js"; - ScriptElementKindModifier2["jsxModifier"] = ".jsx"; - ScriptElementKindModifier2["jsonModifier"] = ".json"; - ScriptElementKindModifier2["dmtsModifier"] = ".d.mts"; - ScriptElementKindModifier2["mtsModifier"] = ".mts"; - ScriptElementKindModifier2["mjsModifier"] = ".mjs"; - ScriptElementKindModifier2["dctsModifier"] = ".d.cts"; - ScriptElementKindModifier2["ctsModifier"] = ".cts"; - ScriptElementKindModifier2["cjsModifier"] = ".cjs"; - return ScriptElementKindModifier2; -})(ScriptElementKindModifier || {}); -var ClassificationTypeNames = /* @__PURE__ */ (function (ClassificationTypeNames2) { - ClassificationTypeNames2["comment"] = "comment"; - ClassificationTypeNames2["identifier"] = "identifier"; - ClassificationTypeNames2["keyword"] = "keyword"; - ClassificationTypeNames2["numericLiteral"] = "number"; - ClassificationTypeNames2["bigintLiteral"] = "bigint"; - ClassificationTypeNames2["operator"] = "operator"; - ClassificationTypeNames2["stringLiteral"] = "string"; - ClassificationTypeNames2["whiteSpace"] = "whitespace"; - ClassificationTypeNames2["text"] = "text"; - ClassificationTypeNames2["punctuation"] = "punctuation"; - ClassificationTypeNames2["className"] = "class name"; - ClassificationTypeNames2["enumName"] = "enum name"; - ClassificationTypeNames2["interfaceName"] = "interface name"; - ClassificationTypeNames2["moduleName"] = "module name"; - ClassificationTypeNames2["typeParameterName"] = "type parameter name"; - ClassificationTypeNames2["typeAliasName"] = "type alias name"; - ClassificationTypeNames2["parameterName"] = "parameter name"; - ClassificationTypeNames2["docCommentTagName"] = "doc comment tag name"; - ClassificationTypeNames2["jsxOpenTagName"] = "jsx open tag name"; - ClassificationTypeNames2["jsxCloseTagName"] = "jsx close tag name"; - ClassificationTypeNames2["jsxSelfClosingTagName"] = "jsx self closing tag name"; - ClassificationTypeNames2["jsxAttribute"] = "jsx attribute"; - ClassificationTypeNames2["jsxText"] = "jsx text"; - ClassificationTypeNames2["jsxAttributeStringLiteralValue"] = "jsx attribute string literal value"; - return ClassificationTypeNames2; -})(ClassificationTypeNames || {}); -var ClassificationType = /* @__PURE__ */ (function (ClassificationType3) { - ClassificationType3[ClassificationType3["comment"] = 1] = "comment"; - ClassificationType3[ClassificationType3["identifier"] = 2] = "identifier"; - ClassificationType3[ClassificationType3["keyword"] = 3] = "keyword"; - ClassificationType3[ClassificationType3["numericLiteral"] = 4] = "numericLiteral"; - ClassificationType3[ClassificationType3["operator"] = 5] = "operator"; - ClassificationType3[ClassificationType3["stringLiteral"] = 6] = "stringLiteral"; - ClassificationType3[ClassificationType3["regularExpressionLiteral"] = 7] = "regularExpressionLiteral"; - ClassificationType3[ClassificationType3["whiteSpace"] = 8] = "whiteSpace"; - ClassificationType3[ClassificationType3["text"] = 9] = "text"; - ClassificationType3[ClassificationType3["punctuation"] = 10] = "punctuation"; - ClassificationType3[ClassificationType3["className"] = 11] = "className"; - ClassificationType3[ClassificationType3["enumName"] = 12] = "enumName"; - ClassificationType3[ClassificationType3["interfaceName"] = 13] = "interfaceName"; - ClassificationType3[ClassificationType3["moduleName"] = 14] = "moduleName"; - ClassificationType3[ClassificationType3["typeParameterName"] = 15] = "typeParameterName"; - ClassificationType3[ClassificationType3["typeAliasName"] = 16] = "typeAliasName"; - ClassificationType3[ClassificationType3["parameterName"] = 17] = "parameterName"; - ClassificationType3[ClassificationType3["docCommentTagName"] = 18] = "docCommentTagName"; - ClassificationType3[ClassificationType3["jsxOpenTagName"] = 19] = "jsxOpenTagName"; - ClassificationType3[ClassificationType3["jsxCloseTagName"] = 20] = "jsxCloseTagName"; - ClassificationType3[ClassificationType3["jsxSelfClosingTagName"] = 21] = "jsxSelfClosingTagName"; - ClassificationType3[ClassificationType3["jsxAttribute"] = 22] = "jsxAttribute"; - ClassificationType3[ClassificationType3["jsxText"] = 23] = "jsxText"; - ClassificationType3[ClassificationType3["jsxAttributeStringLiteralValue"] = 24] = "jsxAttributeStringLiteralValue"; - ClassificationType3[ClassificationType3["bigintLiteral"] = 25] = "bigintLiteral"; - return ClassificationType3; -})(ClassificationType || {}); -// src/services/utilities.ts -var scanner = createScanner(99 /* Latest */, -/*skipTrivia*/ -true); -var SemanticMeaning = /* @__PURE__ */ (function (SemanticMeaning3) { - SemanticMeaning3[SemanticMeaning3["None"] = 0] = "None"; - SemanticMeaning3[SemanticMeaning3["Value"] = 1] = "Value"; - SemanticMeaning3[SemanticMeaning3["Type"] = 2] = "Type"; - SemanticMeaning3[SemanticMeaning3["Namespace"] = 4] = "Namespace"; - SemanticMeaning3[SemanticMeaning3["All"] = 7] = "All"; - return SemanticMeaning3; -})(SemanticMeaning || {}); -function getMeaningFromDeclaration(node) { - switch (node.kind) { - case 260 /* VariableDeclaration */: - return isInJSFile(node) && getJSDocEnumTag(node) ? 7 /* All */ : 1 /* Value */; - case 169 /* Parameter */: - case 208 /* BindingElement */: - case 172 /* PropertyDeclaration */: - case 171 /* PropertySignature */: - case 303 /* PropertyAssignment */: - case 304 /* ShorthandPropertyAssignment */: - case 174 /* MethodDeclaration */: - case 173 /* MethodSignature */: - case 176 /* Constructor */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - case 262 /* FunctionDeclaration */: - case 218 /* FunctionExpression */: - case 219 /* ArrowFunction */: - case 299 /* CatchClause */: - case 291 /* JsxAttribute */: - return 1 /* Value */; - case 168 /* TypeParameter */: - case 264 /* InterfaceDeclaration */: - case 265 /* TypeAliasDeclaration */: - case 187 /* TypeLiteral */: - return 2 /* Type */; - case 353 /* JSDocTypedefTag */: - return node.name === void 0 ? 1 /* Value */ | 2 /* Type */ : 2 /* Type */; - case 306 /* EnumMember */: - case 263 /* ClassDeclaration */: - return 1 /* Value */ | 2 /* Type */; - case 267 /* ModuleDeclaration */: - if (isAmbientModule(node)) { - return 4 /* Namespace */ | 1 /* Value */; - } - else if (getModuleInstanceState(node) === 1 /* Instantiated */) { - return 4 /* Namespace */ | 1 /* Value */; - } - else { - return 4 /* Namespace */; - } - case 266 /* EnumDeclaration */: - case 275 /* NamedImports */: - case 276 /* ImportSpecifier */: - case 271 /* ImportEqualsDeclaration */: - case 272 /* ImportDeclaration */: - case 277 /* ExportAssignment */: - case 278 /* ExportDeclaration */: - return 7 /* All */; - case 312 /* SourceFile */: - return 4 /* Namespace */ | 1 /* Value */; - } - return 7 /* All */; -} -function getMeaningFromLocation(node) { - node = getAdjustedReferenceLocation(node); - var parent2 = node.parent; - if (node.kind === 312 /* SourceFile */) { - return 1 /* Value */; - } - else if (isExportAssignment(parent2) || isExportSpecifier(parent2) || isExternalModuleReference(parent2) || isImportSpecifier(parent2) || isImportClause(parent2) || isImportEqualsDeclaration(parent2) && node === parent2.name) { - return 7 /* All */; - } - else if (isInRightSideOfInternalImportEqualsDeclaration(node)) { - return getMeaningFromRightHandSideOfImportEquals(node); - } - else if (isDeclarationName(node)) { - return getMeaningFromDeclaration(parent2); - } - else if (isEntityName(node) && findAncestor(node, or(isJSDocNameReference, isJSDocLinkLike, isJSDocMemberName))) { - return 7 /* All */; - } - else if (isTypeReference(node)) { - return 2 /* Type */; - } - else if (isNamespaceReference(node)) { - return 4 /* Namespace */; - } - else if (isTypeParameterDeclaration(parent2)) { - Debug.assert(isJSDocTemplateTag(parent2.parent)); - return 2 /* Type */; - } - else if (isLiteralTypeNode(parent2)) { - return 2 /* Type */ | 1 /* Value */; - } - else { - return 1 /* Value */; - } -} -function getMeaningFromRightHandSideOfImportEquals(node) { - var name = node.kind === 166 /* QualifiedName */ ? node : isQualifiedName(node.parent) && node.parent.right === node ? node.parent : void 0; - return name && name.parent.kind === 271 /* ImportEqualsDeclaration */ ? 7 /* All */ : 4 /* Namespace */; -} -function isInRightSideOfInternalImportEqualsDeclaration(node) { - while (node.parent.kind === 166 /* QualifiedName */) { - node = node.parent; - } - return isInternalModuleImportEqualsDeclaration(node.parent) && node.parent.moduleReference === node; -} -function isNamespaceReference(node) { - return isQualifiedNameNamespaceReference(node) || isPropertyAccessNamespaceReference(node); -} -function isQualifiedNameNamespaceReference(node) { - var root = node; - var isLastClause = true; - if (root.parent.kind === 166 /* QualifiedName */) { - while (root.parent && root.parent.kind === 166 /* QualifiedName */) { - root = root.parent; - } - isLastClause = root.right === node; - } - return root.parent.kind === 183 /* TypeReference */ && !isLastClause; -} -function isPropertyAccessNamespaceReference(node) { - var root = node; - var isLastClause = true; - if (root.parent.kind === 211 /* PropertyAccessExpression */) { - while (root.parent && root.parent.kind === 211 /* PropertyAccessExpression */) { - root = root.parent; - } - isLastClause = root.name === node; - } - if (!isLastClause && root.parent.kind === 233 /* ExpressionWithTypeArguments */ && root.parent.parent.kind === 298 /* HeritageClause */) { - var decl = root.parent.parent.parent; - return decl.kind === 263 /* ClassDeclaration */ && root.parent.parent.token === 119 /* ImplementsKeyword */ || decl.kind === 264 /* InterfaceDeclaration */ && root.parent.parent.token === 96 /* ExtendsKeyword */; - } - return false; -} -function isTypeReference(node) { - if (isRightSideOfQualifiedNameOrPropertyAccess(node)) { - node = node.parent; - } - switch (node.kind) { - case 110 /* ThisKeyword */: - return !isExpressionNode(node); - case 197 /* ThisType */: - return true; - } - switch (node.parent.kind) { - case 183 /* TypeReference */: - return true; - case 205 /* ImportType */: - return !node.parent.isTypeOf; - case 233 /* ExpressionWithTypeArguments */: - return isPartOfTypeNode(node.parent); - } - return false; -} -function isCallExpressionTarget(node, includeElementAccess, skipPastOuterExpressions) { - if (includeElementAccess === void 0) { includeElementAccess = false; } - if (skipPastOuterExpressions === void 0) { skipPastOuterExpressions = false; } - return isCalleeWorker(node, isCallExpression, selectExpressionOfCallOrNewExpressionOrDecorator, includeElementAccess, skipPastOuterExpressions); -} -function isNewExpressionTarget(node, includeElementAccess, skipPastOuterExpressions) { - if (includeElementAccess === void 0) { includeElementAccess = false; } - if (skipPastOuterExpressions === void 0) { skipPastOuterExpressions = false; } - return isCalleeWorker(node, isNewExpression, selectExpressionOfCallOrNewExpressionOrDecorator, includeElementAccess, skipPastOuterExpressions); -} -function isCallOrNewExpressionTarget(node, includeElementAccess, skipPastOuterExpressions) { - if (includeElementAccess === void 0) { includeElementAccess = false; } - if (skipPastOuterExpressions === void 0) { skipPastOuterExpressions = false; } - return isCalleeWorker(node, isCallOrNewExpression, selectExpressionOfCallOrNewExpressionOrDecorator, includeElementAccess, skipPastOuterExpressions); -} -function isTaggedTemplateTag(node, includeElementAccess, skipPastOuterExpressions) { - if (includeElementAccess === void 0) { includeElementAccess = false; } - if (skipPastOuterExpressions === void 0) { skipPastOuterExpressions = false; } - return isCalleeWorker(node, isTaggedTemplateExpression, selectTagOfTaggedTemplateExpression, includeElementAccess, skipPastOuterExpressions); -} -function isDecoratorTarget(node, includeElementAccess, skipPastOuterExpressions) { - if (includeElementAccess === void 0) { includeElementAccess = false; } - if (skipPastOuterExpressions === void 0) { skipPastOuterExpressions = false; } - return isCalleeWorker(node, isDecorator, selectExpressionOfCallOrNewExpressionOrDecorator, includeElementAccess, skipPastOuterExpressions); -} -function isJsxOpeningLikeElementTagName(node, includeElementAccess, skipPastOuterExpressions) { - if (includeElementAccess === void 0) { includeElementAccess = false; } - if (skipPastOuterExpressions === void 0) { skipPastOuterExpressions = false; } - return isCalleeWorker(node, isJsxOpeningLikeElement, selectTagNameOfJsxOpeningLikeElement, includeElementAccess, skipPastOuterExpressions); -} -function selectExpressionOfCallOrNewExpressionOrDecorator(node) { - return node.expression; -} -function selectTagOfTaggedTemplateExpression(node) { - return node.tag; -} -function selectTagNameOfJsxOpeningLikeElement(node) { - return node.tagName; -} -function isCalleeWorker(node, pred, calleeSelector, includeElementAccess, skipPastOuterExpressions) { - var target = includeElementAccess ? climbPastPropertyOrElementAccess(node) : climbPastPropertyAccess(node); - if (skipPastOuterExpressions) { - target = skipOuterExpressions(target); - } - return !!target && !!target.parent && pred(target.parent) && calleeSelector(target.parent) === target; -} -function climbPastPropertyAccess(node) { - return isRightSideOfPropertyAccess(node) ? node.parent : node; -} -function climbPastPropertyOrElementAccess(node) { - return isRightSideOfPropertyAccess(node) || isArgumentExpressionOfElementAccess(node) ? node.parent : node; -} -function getTargetLabel(referenceNode, labelName) { - while (referenceNode) { - if (referenceNode.kind === 256 /* LabeledStatement */ && referenceNode.label.escapedText === labelName) { - return referenceNode.label; - } - referenceNode = referenceNode.parent; - } - return void 0; -} -function hasPropertyAccessExpressionWithName(node, funcName) { - if (!isPropertyAccessExpression(node.expression)) { - return false; - } - return node.expression.name.text === funcName; -} -function isJumpStatementTarget(node) { - var _a; - return isIdentifier(node) && ((_a = tryCast(node.parent, isBreakOrContinueStatement)) == null ? void 0 : _a.label) === node; -} -function isLabelOfLabeledStatement(node) { - var _a; - return isIdentifier(node) && ((_a = tryCast(node.parent, isLabeledStatement)) == null ? void 0 : _a.label) === node; -} -function isLabelName(node) { - return isLabelOfLabeledStatement(node) || isJumpStatementTarget(node); -} -function isTagName(node) { - var _a; - return ((_a = tryCast(node.parent, isJSDocTag)) == null ? void 0 : _a.tagName) === node; -} -function isRightSideOfQualifiedName(node) { - var _a; - return ((_a = tryCast(node.parent, isQualifiedName)) == null ? void 0 : _a.right) === node; -} -function isRightSideOfPropertyAccess(node) { - var _a; - return ((_a = tryCast(node.parent, isPropertyAccessExpression)) == null ? void 0 : _a.name) === node; -} -function isArgumentExpressionOfElementAccess(node) { - var _a; - return ((_a = tryCast(node.parent, isElementAccessExpression)) == null ? void 0 : _a.argumentExpression) === node; -} -function isNameOfModuleDeclaration(node) { - var _a; - return ((_a = tryCast(node.parent, isModuleDeclaration)) == null ? void 0 : _a.name) === node; -} -function isNameOfFunctionDeclaration(node) { - var _a; - return isIdentifier(node) && ((_a = tryCast(node.parent, isFunctionLike)) == null ? void 0 : _a.name) === node; -} -function isLiteralNameOfPropertyDeclarationOrIndexAccess(node) { - switch (node.parent.kind) { - case 172 /* PropertyDeclaration */: - case 171 /* PropertySignature */: - case 303 /* PropertyAssignment */: - case 306 /* EnumMember */: - case 174 /* MethodDeclaration */: - case 173 /* MethodSignature */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - case 267 /* ModuleDeclaration */: - return getNameOfDeclaration(node.parent) === node; - case 212 /* ElementAccessExpression */: - return node.parent.argumentExpression === node; - case 167 /* ComputedPropertyName */: - return true; - case 201 /* LiteralType */: - return node.parent.parent.kind === 199 /* IndexedAccessType */; - default: - return false; - } -} -function isExpressionOfExternalModuleImportEqualsDeclaration(node) { - return isExternalModuleImportEqualsDeclaration(node.parent.parent) && getExternalModuleImportEqualsDeclarationExpression(node.parent.parent) === node; -} -function getContainerNode(node) { - if (isJSDocTypeAlias(node)) { - node = node.parent.parent; - } - while (true) { - node = node.parent; - if (!node) { - return void 0; - } - switch (node.kind) { - case 312 /* SourceFile */: - case 174 /* MethodDeclaration */: - case 173 /* MethodSignature */: - case 262 /* FunctionDeclaration */: - case 218 /* FunctionExpression */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - case 263 /* ClassDeclaration */: - case 264 /* InterfaceDeclaration */: - case 266 /* EnumDeclaration */: - case 267 /* ModuleDeclaration */: - return node; - } - } -} -function getNodeKind(node) { - switch (node.kind) { - case 312 /* SourceFile */: - return isExternalModule(node) ? "module" /* moduleElement */ : "script" /* scriptElement */; - case 267 /* ModuleDeclaration */: - return "module" /* moduleElement */; - case 263 /* ClassDeclaration */: - case 231 /* ClassExpression */: - return "class" /* classElement */; - case 264 /* InterfaceDeclaration */: - return "interface" /* interfaceElement */; - case 265 /* TypeAliasDeclaration */: - case 345 /* JSDocCallbackTag */: - case 353 /* JSDocTypedefTag */: - return "type" /* typeElement */; - case 266 /* EnumDeclaration */: - return "enum" /* enumElement */; - case 260 /* VariableDeclaration */: - return getKindOfVariableDeclaration(node); - case 208 /* BindingElement */: - return getKindOfVariableDeclaration(getRootDeclaration(node)); - case 219 /* ArrowFunction */: - case 262 /* FunctionDeclaration */: - case 218 /* FunctionExpression */: - return "function" /* functionElement */; - case 177 /* GetAccessor */: - return "getter" /* memberGetAccessorElement */; - case 178 /* SetAccessor */: - return "setter" /* memberSetAccessorElement */; - case 174 /* MethodDeclaration */: - case 173 /* MethodSignature */: - return "method" /* memberFunctionElement */; - case 303 /* PropertyAssignment */: - var initializer = node.initializer; - return isFunctionLike(initializer) ? "method" /* memberFunctionElement */ : "property" /* memberVariableElement */; - case 172 /* PropertyDeclaration */: - case 171 /* PropertySignature */: - case 304 /* ShorthandPropertyAssignment */: - case 305 /* SpreadAssignment */: - return "property" /* memberVariableElement */; - case 181 /* IndexSignature */: - return "index" /* indexSignatureElement */; - case 180 /* ConstructSignature */: - return "construct" /* constructSignatureElement */; - case 179 /* CallSignature */: - return "call" /* callSignatureElement */; - case 176 /* Constructor */: - case 175 /* ClassStaticBlockDeclaration */: - return "constructor" /* constructorImplementationElement */; - case 168 /* TypeParameter */: - return "type parameter" /* typeParameterElement */; - case 306 /* EnumMember */: - return "enum member" /* enumMemberElement */; - case 169 /* Parameter */: - return hasSyntacticModifier(node, 16476 /* ParameterPropertyModifier */) ? "property" /* memberVariableElement */ : "parameter" /* parameterElement */; - case 271 /* ImportEqualsDeclaration */: - case 276 /* ImportSpecifier */: - case 281 /* ExportSpecifier */: - case 274 /* NamespaceImport */: - case 280 /* NamespaceExport */: - return "alias" /* alias */; - case 226 /* BinaryExpression */: - var kind = getAssignmentDeclarationKind(node); - var right = node.right; - switch (kind) { - case 7 /* ObjectDefinePropertyValue */: - case 8 /* ObjectDefinePropertyExports */: - case 9 /* ObjectDefinePrototypeProperty */: - case 0 /* None */: - return "" /* unknown */; - case 1 /* ExportsProperty */: - case 2 /* ModuleExports */: - var rightKind = getNodeKind(right); - return rightKind === "" /* unknown */ ? "const" /* constElement */ : rightKind; - case 3 /* PrototypeProperty */: - return isFunctionExpression(right) ? "method" /* memberFunctionElement */ : "property" /* memberVariableElement */; - case 4 /* ThisProperty */: - return "property" /* memberVariableElement */; - case 5 /* Property */: - return isFunctionExpression(right) ? "method" /* memberFunctionElement */ : "property" /* memberVariableElement */; - case 6 /* Prototype */: - return "local class" /* localClassElement */; - default: { - assertType(kind); - return "" /* unknown */; - } - } - case 80 /* Identifier */: - return isImportClause(node.parent) ? "alias" /* alias */ : "" /* unknown */; - case 277 /* ExportAssignment */: - var scriptKind = getNodeKind(node.expression); - return scriptKind === "" /* unknown */ ? "const" /* constElement */ : scriptKind; - default: - return "" /* unknown */; - } - function getKindOfVariableDeclaration(v) { - return isVarConst(v) ? "const" /* constElement */ : isLet(v) ? "let" /* letElement */ : "var" /* variableElement */; - } -} -function isThis(node) { - switch (node.kind) { - case 110 /* ThisKeyword */: - return true; - case 80 /* Identifier */: - return identifierIsThisKeyword(node) && node.parent.kind === 169 /* Parameter */; - default: - return false; - } -} -var tripleSlashDirectivePrefixRegex = /^\/\/\/\s*= range.end; -} -function rangeContainsStartEnd(range, start2, end) { - return range.pos <= start2 && range.end >= end; -} -function rangeOverlapsWithStartEnd(r1, start2, end) { - return startEndOverlapsWithStartEnd(r1.pos, r1.end, start2, end); -} -function nodeOverlapsWithStartEnd(node, sourceFile, start2, end) { - return startEndOverlapsWithStartEnd(node.getStart(sourceFile), node.end, start2, end); -} -function startEndOverlapsWithStartEnd(start1, end1, start2, end2) { - var start3 = Math.max(start1, start2); - var end = Math.min(end1, end2); - return start3 < end; -} -function positionBelongsToNode(candidate, position, sourceFile) { - Debug.assert(candidate.pos <= position); - return position < candidate.end || !isCompletedNode(candidate, sourceFile); -} -function isCompletedNode(n, sourceFile) { - if (n === void 0 || nodeIsMissing(n)) { - return false; - } - switch (n.kind) { - case 263 /* ClassDeclaration */: - case 264 /* InterfaceDeclaration */: - case 266 /* EnumDeclaration */: - case 210 /* ObjectLiteralExpression */: - case 206 /* ObjectBindingPattern */: - case 187 /* TypeLiteral */: - case 241 /* Block */: - case 268 /* ModuleBlock */: - case 269 /* CaseBlock */: - case 275 /* NamedImports */: - case 279 /* NamedExports */: - return nodeEndsWith(n, 20 /* CloseBraceToken */, sourceFile); - case 299 /* CatchClause */: - return isCompletedNode(n.block, sourceFile); - case 214 /* NewExpression */: - if (!n.arguments) { - return true; - } - case 213 /* CallExpression */: - case 217 /* ParenthesizedExpression */: - case 196 /* ParenthesizedType */: - return nodeEndsWith(n, 22 /* CloseParenToken */, sourceFile); - case 184 /* FunctionType */: - case 185 /* ConstructorType */: - return isCompletedNode(n.type, sourceFile); - case 176 /* Constructor */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - case 262 /* FunctionDeclaration */: - case 218 /* FunctionExpression */: - case 174 /* MethodDeclaration */: - case 173 /* MethodSignature */: - case 180 /* ConstructSignature */: - case 179 /* CallSignature */: - case 219 /* ArrowFunction */: - if (n.body) { - return isCompletedNode(n.body, sourceFile); - } - if (n.type) { - return isCompletedNode(n.type, sourceFile); - } - return hasChildOfKind(n, 22 /* CloseParenToken */, sourceFile); - case 267 /* ModuleDeclaration */: - return !!n.body && isCompletedNode(n.body, sourceFile); - case 245 /* IfStatement */: - if (n.elseStatement) { - return isCompletedNode(n.elseStatement, sourceFile); - } - return isCompletedNode(n.thenStatement, sourceFile); - case 244 /* ExpressionStatement */: - return isCompletedNode(n.expression, sourceFile) || hasChildOfKind(n, 27 /* SemicolonToken */, sourceFile); - case 209 /* ArrayLiteralExpression */: - case 207 /* ArrayBindingPattern */: - case 212 /* ElementAccessExpression */: - case 167 /* ComputedPropertyName */: - case 189 /* TupleType */: - return nodeEndsWith(n, 24 /* CloseBracketToken */, sourceFile); - case 181 /* IndexSignature */: - if (n.type) { - return isCompletedNode(n.type, sourceFile); - } - return hasChildOfKind(n, 24 /* CloseBracketToken */, sourceFile); - case 296 /* CaseClause */: - case 297 /* DefaultClause */: - return false; - case 248 /* ForStatement */: - case 249 /* ForInStatement */: - case 250 /* ForOfStatement */: - case 247 /* WhileStatement */: - return isCompletedNode(n.statement, sourceFile); - case 246 /* DoStatement */: - return hasChildOfKind(n, 117 /* WhileKeyword */, sourceFile) ? nodeEndsWith(n, 22 /* CloseParenToken */, sourceFile) : isCompletedNode(n.statement, sourceFile); - case 186 /* TypeQuery */: - return isCompletedNode(n.exprName, sourceFile); - case 221 /* TypeOfExpression */: - case 220 /* DeleteExpression */: - case 222 /* VoidExpression */: - case 229 /* YieldExpression */: - case 230 /* SpreadElement */: - var unaryWordExpression = n; - return isCompletedNode(unaryWordExpression.expression, sourceFile); - case 215 /* TaggedTemplateExpression */: - return isCompletedNode(n.template, sourceFile); - case 228 /* TemplateExpression */: - var lastSpan = lastOrUndefined(n.templateSpans); - return isCompletedNode(lastSpan, sourceFile); - case 239 /* TemplateSpan */: - return nodeIsPresent(n.literal); - case 278 /* ExportDeclaration */: - case 272 /* ImportDeclaration */: - return nodeIsPresent(n.moduleSpecifier); - case 224 /* PrefixUnaryExpression */: - return isCompletedNode(n.operand, sourceFile); - case 226 /* BinaryExpression */: - return isCompletedNode(n.right, sourceFile); - case 227 /* ConditionalExpression */: - return isCompletedNode(n.whenFalse, sourceFile); - default: - return true; - } -} -function nodeEndsWith(n, expectedLastToken, sourceFile) { - var children = n.getChildren(sourceFile); - if (children.length) { - var lastChild = last(children); - if (lastChild.kind === expectedLastToken) { - return true; - } - else if (lastChild.kind === 27 /* SemicolonToken */ && children.length !== 1) { - return children[children.length - 2].kind === expectedLastToken; - } - } - return false; -} -function findListItemInfo(node) { - var list = findContainingList(node); - if (!list) { - return void 0; - } - var children = list.getChildren(); - var listItemIndex = indexOfNode(children, node); - return { - listItemIndex: listItemIndex, - list: list - }; -} -function hasChildOfKind(n, kind, sourceFile) { - return !!findChildOfKind(n, kind, sourceFile); -} -function findChildOfKind(n, kind, sourceFile) { - return find(n.getChildren(sourceFile), function (c) { return c.kind === kind; }); -} -function findContainingList(node) { - var syntaxList = find(node.parent.getChildren(), function (c) { return isSyntaxList(c) && rangeContainsRange(c, node); }); - Debug.assert(!syntaxList || contains(syntaxList.getChildren(), node)); - return syntaxList; -} -function isDefaultModifier2(node) { - return node.kind === 90 /* DefaultKeyword */; -} -function isClassKeyword(node) { - return node.kind === 86 /* ClassKeyword */; -} -function isFunctionKeyword(node) { - return node.kind === 100 /* FunctionKeyword */; -} -function getAdjustedLocationForClass(node) { - if (isNamedDeclaration(node)) { - return node.name; - } - if (isClassDeclaration(node)) { - var defaultModifier = node.modifiers && find(node.modifiers, isDefaultModifier2); - if (defaultModifier) - return defaultModifier; - } - if (isClassExpression(node)) { - var classKeyword = find(node.getChildren(), isClassKeyword); - if (classKeyword) - return classKeyword; - } -} -function getAdjustedLocationForFunction(node) { - if (isNamedDeclaration(node)) { - return node.name; - } - if (isFunctionDeclaration(node)) { - var defaultModifier = find(node.modifiers, isDefaultModifier2); - if (defaultModifier) - return defaultModifier; - } - if (isFunctionExpression(node)) { - var functionKeyword = find(node.getChildren(), isFunctionKeyword); - if (functionKeyword) - return functionKeyword; - } -} -function getAncestorTypeNode(node) { - var lastTypeNode; - findAncestor(node, function (a) { - if (isTypeNode(a)) { - lastTypeNode = a; - } - return !isQualifiedName(a.parent) && !isTypeNode(a.parent) && !isTypeElement(a.parent); - }); - return lastTypeNode; -} -function getContextualTypeFromParentOrAncestorTypeNode(node, checker) { - if (node.flags & (16777216 /* JSDoc */ & ~524288 /* JavaScriptFile */)) - return void 0; - var contextualType = getContextualTypeFromParent(node, checker); - if (contextualType) - return contextualType; - var ancestorTypeNode = getAncestorTypeNode(node); - return ancestorTypeNode && checker.getTypeAtLocation(ancestorTypeNode); -} -function getAdjustedLocationForDeclaration(node, forRename) { - if (!forRename) { - switch (node.kind) { - case 263 /* ClassDeclaration */: - case 231 /* ClassExpression */: - return getAdjustedLocationForClass(node); - case 262 /* FunctionDeclaration */: - case 218 /* FunctionExpression */: - return getAdjustedLocationForFunction(node); - case 176 /* Constructor */: - return node; - } - } - if (isNamedDeclaration(node)) { - return node.name; - } -} -function getAdjustedLocationForImportDeclaration(node, forRename) { - if (node.importClause) { - if (node.importClause.name && node.importClause.namedBindings) { - return; - } - if (node.importClause.name) { - return node.importClause.name; - } - if (node.importClause.namedBindings) { - if (isNamedImports(node.importClause.namedBindings)) { - var onlyBinding = singleOrUndefined(node.importClause.namedBindings.elements); - if (!onlyBinding) { - return; - } - return onlyBinding.name; - } - else if (isNamespaceImport(node.importClause.namedBindings)) { - return node.importClause.namedBindings.name; - } - } - } - if (!forRename) { - return node.moduleSpecifier; - } -} -function getAdjustedLocationForExportDeclaration(node, forRename) { - if (node.exportClause) { - if (isNamedExports(node.exportClause)) { - var onlyBinding = singleOrUndefined(node.exportClause.elements); - if (!onlyBinding) { - return; - } - return node.exportClause.elements[0].name; - } - else if (isNamespaceExport(node.exportClause)) { - return node.exportClause.name; - } - } - if (!forRename) { - return node.moduleSpecifier; - } -} -function getAdjustedLocationForHeritageClause(node) { - if (node.types.length === 1) { - return node.types[0].expression; - } -} -function getAdjustedLocation(node, forRename) { - var parent2 = node.parent; - if (isModifier(node) && (forRename || node.kind !== 90 /* DefaultKeyword */) ? canHaveModifiers(parent2) && contains(parent2.modifiers, node) : node.kind === 86 /* ClassKeyword */ ? isClassDeclaration(parent2) || isClassExpression(node) : node.kind === 100 /* FunctionKeyword */ ? isFunctionDeclaration(parent2) || isFunctionExpression(node) : node.kind === 120 /* InterfaceKeyword */ ? isInterfaceDeclaration(parent2) : node.kind === 94 /* EnumKeyword */ ? isEnumDeclaration(parent2) : node.kind === 156 /* TypeKeyword */ ? isTypeAliasDeclaration(parent2) : node.kind === 145 /* NamespaceKeyword */ || node.kind === 144 /* ModuleKeyword */ ? isModuleDeclaration(parent2) : node.kind === 102 /* ImportKeyword */ ? isImportEqualsDeclaration(parent2) : node.kind === 139 /* GetKeyword */ ? isGetAccessorDeclaration(parent2) : node.kind === 153 /* SetKeyword */ && isSetAccessorDeclaration(parent2)) { - var location_5 = getAdjustedLocationForDeclaration(parent2, forRename); - if (location_5) { - return location_5; - } - } - if ((node.kind === 115 /* VarKeyword */ || node.kind === 87 /* ConstKeyword */ || node.kind === 121 /* LetKeyword */) && isVariableDeclarationList(parent2) && parent2.declarations.length === 1) { - var decl = parent2.declarations[0]; - if (isIdentifier(decl.name)) { - return decl.name; - } - } - if (node.kind === 156 /* TypeKeyword */) { - if (isImportClause(parent2) && parent2.isTypeOnly) { - var location_6 = getAdjustedLocationForImportDeclaration(parent2.parent, forRename); - if (location_6) { - return location_6; - } - } - if (isExportDeclaration(parent2) && parent2.isTypeOnly) { - var location_7 = getAdjustedLocationForExportDeclaration(parent2, forRename); - if (location_7) { - return location_7; - } - } - } - if (node.kind === 130 /* AsKeyword */) { - if (isImportSpecifier(parent2) && parent2.propertyName || isExportSpecifier(parent2) && parent2.propertyName || isNamespaceImport(parent2) || isNamespaceExport(parent2)) { - return parent2.name; - } - if (isExportDeclaration(parent2) && parent2.exportClause && isNamespaceExport(parent2.exportClause)) { - return parent2.exportClause.name; - } - } - if (node.kind === 102 /* ImportKeyword */ && isImportDeclaration(parent2)) { - var location_8 = getAdjustedLocationForImportDeclaration(parent2, forRename); - if (location_8) { - return location_8; - } - } - if (node.kind === 95 /* ExportKeyword */) { - if (isExportDeclaration(parent2)) { - var location_9 = getAdjustedLocationForExportDeclaration(parent2, forRename); - if (location_9) { - return location_9; - } - } - if (isExportAssignment(parent2)) { - return skipOuterExpressions(parent2.expression); - } - } - if (node.kind === 149 /* RequireKeyword */ && isExternalModuleReference(parent2)) { - return parent2.expression; - } - if (node.kind === 161 /* FromKeyword */ && (isImportDeclaration(parent2) || isExportDeclaration(parent2)) && parent2.moduleSpecifier) { - return parent2.moduleSpecifier; - } - if ((node.kind === 96 /* ExtendsKeyword */ || node.kind === 119 /* ImplementsKeyword */) && isHeritageClause(parent2) && parent2.token === node.kind) { - var location_10 = getAdjustedLocationForHeritageClause(parent2); - if (location_10) { - return location_10; - } - } - if (node.kind === 96 /* ExtendsKeyword */) { - if (isTypeParameterDeclaration(parent2) && parent2.constraint && isTypeReferenceNode(parent2.constraint)) { - return parent2.constraint.typeName; - } - if (isConditionalTypeNode(parent2) && isTypeReferenceNode(parent2.extendsType)) { - return parent2.extendsType.typeName; - } - } - if (node.kind === 140 /* InferKeyword */ && isInferTypeNode(parent2)) { - return parent2.typeParameter.name; - } - if (node.kind === 103 /* InKeyword */ && isTypeParameterDeclaration(parent2) && isMappedTypeNode(parent2.parent)) { - return parent2.name; - } - if (node.kind === 143 /* KeyOfKeyword */ && isTypeOperatorNode(parent2) && parent2.operator === 143 /* KeyOfKeyword */ && isTypeReferenceNode(parent2.type)) { - return parent2.type.typeName; - } - if (node.kind === 148 /* ReadonlyKeyword */ && isTypeOperatorNode(parent2) && parent2.operator === 148 /* ReadonlyKeyword */ && isArrayTypeNode(parent2.type) && isTypeReferenceNode(parent2.type.elementType)) { - return parent2.type.elementType.typeName; - } - if (!forRename) { - if (node.kind === 105 /* NewKeyword */ && isNewExpression(parent2) || node.kind === 116 /* VoidKeyword */ && isVoidExpression(parent2) || node.kind === 114 /* TypeOfKeyword */ && isTypeOfExpression(parent2) || node.kind === 135 /* AwaitKeyword */ && isAwaitExpression(parent2) || node.kind === 127 /* YieldKeyword */ && isYieldExpression(parent2) || node.kind === 91 /* DeleteKeyword */ && isDeleteExpression(parent2)) { - if (parent2.expression) { - return skipOuterExpressions(parent2.expression); - } - } - if ((node.kind === 103 /* InKeyword */ || node.kind === 104 /* InstanceOfKeyword */) && isBinaryExpression(parent2) && parent2.operatorToken === node) { - return skipOuterExpressions(parent2.right); - } - if (node.kind === 130 /* AsKeyword */ && isAsExpression(parent2) && isTypeReferenceNode(parent2.type)) { - return parent2.type.typeName; - } - if (node.kind === 103 /* InKeyword */ && isForInStatement(parent2) || node.kind === 165 /* OfKeyword */ && isForOfStatement(parent2)) { - return skipOuterExpressions(parent2.expression); - } - } - return node; -} -function getAdjustedReferenceLocation(node) { - return getAdjustedLocation(node, - /*forRename*/ - false); -} -function getAdjustedRenameLocation(node) { - return getAdjustedLocation(node, - /*forRename*/ - true); -} -function getTouchingPropertyName(sourceFile, position) { - return getTouchingToken(sourceFile, position, function (n) { return isPropertyNameLiteral(n) || isKeyword(n.kind) || isPrivateIdentifier(n); }); -} -function getTouchingToken(sourceFile, position, includePrecedingTokenAtEndPosition) { - return getTokenAtPositionWorker(sourceFile, position, - /*allowPositionInLeadingTrivia*/ - false, includePrecedingTokenAtEndPosition, - /*includeEndPosition*/ - false); -} -function getTokenAtPosition(sourceFile, position) { - return getTokenAtPositionWorker(sourceFile, position, - /*allowPositionInLeadingTrivia*/ - true, - /*includePrecedingTokenAtEndPosition*/ - void 0, - /*includeEndPosition*/ - false); -} -function getTokenAtPositionWorker(sourceFile, position, allowPositionInLeadingTrivia, includePrecedingTokenAtEndPosition, includeEndPosition) { - var current = sourceFile; - var foundToken; - var _loop_39 = function () { - var children = current.getChildren(sourceFile); - var i = binarySearchKey(children, position, function (_, i2) { return i2; }, function (middle, _) { - var end = children[middle].getEnd(); - if (end < position) { - return -1 /* LessThan */; - } - var start2 = allowPositionInLeadingTrivia ? children[middle].getFullStart() : children[middle].getStart(sourceFile, - /*includeJsDocComment*/ - true); - if (start2 > position) { - return 1 /* GreaterThan */; - } - if (nodeContainsPosition(children[middle], start2, end)) { - if (children[middle - 1]) { - if (nodeContainsPosition(children[middle - 1])) { - return 1 /* GreaterThan */; - } - } - return 0 /* EqualTo */; - } - if (includePrecedingTokenAtEndPosition && start2 === position && children[middle - 1] && children[middle - 1].getEnd() === position && nodeContainsPosition(children[middle - 1])) { - return 1 /* GreaterThan */; - } - return -1 /* LessThan */; - }); - if (foundToken) { - return { value: foundToken }; - } - if (i >= 0 && children[i]) { - current = children[i]; - return "continue-outer"; - } - return { value: current }; - }; - outer: while (true) { - var state_14 = _loop_39(); - if (typeof state_14 === "object") - return state_14.value; - switch (state_14) { - case "continue-outer": continue outer; - } - } - function nodeContainsPosition(node, start2, end) { - end !== null && end !== void 0 ? end : (end = node.getEnd()); - if (end < position) { - return false; - } - start2 !== null && start2 !== void 0 ? start2 : (start2 = allowPositionInLeadingTrivia ? node.getFullStart() : node.getStart(sourceFile, - /*includeJsDocComment*/ - true)); - if (start2 > position) { - return false; - } - if (position < end || position === end && (node.kind === 1 /* EndOfFileToken */ || includeEndPosition)) { - return true; - } - else if (includePrecedingTokenAtEndPosition && end === position) { - var previousToken = findPrecedingToken(position, sourceFile, node); - if (previousToken && includePrecedingTokenAtEndPosition(previousToken)) { - foundToken = previousToken; - return true; - } - } - return false; - } -} -function findFirstNonJsxWhitespaceToken(sourceFile, position) { - var tokenAtPosition = getTokenAtPosition(sourceFile, position); - while (isWhiteSpaceOnlyJsxText(tokenAtPosition)) { - var nextToken = findNextToken(tokenAtPosition, tokenAtPosition.parent, sourceFile); - if (!nextToken) - return; - tokenAtPosition = nextToken; - } - return tokenAtPosition; -} -function findTokenOnLeftOfPosition(file, position) { - var tokenAtPosition = getTokenAtPosition(file, position); - if (isToken(tokenAtPosition) && position > tokenAtPosition.getStart(file) && position < tokenAtPosition.getEnd()) { - return tokenAtPosition; - } - return findPrecedingToken(position, file); -} -function findNextToken(previousToken, parent2, sourceFile) { - return find2(parent2); - function find2(n) { - if (isToken(n) && n.pos === previousToken.end) { - return n; - } - return firstDefined(n.getChildren(sourceFile), function (child) { - var shouldDiveInChildNode = ( - // previous token is enclosed somewhere in the child - child.pos <= previousToken.pos && child.end > previousToken.end || // previous token ends exactly at the beginning of child - child.pos === previousToken.end); - return shouldDiveInChildNode && nodeHasTokens(child, sourceFile) ? find2(child) : void 0; - }); - } -} -function findPrecedingToken(position, sourceFile, startNode2, excludeJsdoc) { - var result = find2(startNode2 || sourceFile); - Debug.assert(!(result && isWhiteSpaceOnlyJsxText(result))); - return result; - function find2(n) { - if (isNonWhitespaceToken(n) && n.kind !== 1 /* EndOfFileToken */) { - return n; - } - var children = n.getChildren(sourceFile); - var i = binarySearchKey(children, position, function (_, i2) { return i2; }, function (middle, _) { - if (position < children[middle].end) { - if (!children[middle - 1] || position >= children[middle - 1].end) { - return 0 /* EqualTo */; - } - return 1 /* GreaterThan */; - } - return -1 /* LessThan */; - }); - if (i >= 0 && children[i]) { - var child = children[i]; - if (position < child.end) { - var start2 = child.getStart(sourceFile, - /*includeJsDoc*/ - !excludeJsdoc); - var lookInPreviousChild = start2 >= position || // cursor in the leading trivia - !nodeHasTokens(child, sourceFile) || isWhiteSpaceOnlyJsxText(child); - if (lookInPreviousChild) { - var candidate2 = findRightmostChildNodeWithTokens(children, - /*exclusiveStartPosition*/ - i, sourceFile, n.kind); - if (candidate2) { - if (!excludeJsdoc && isJSDocCommentContainingNode(candidate2) && candidate2.getChildren(sourceFile).length) { - return find2(candidate2); - } - return findRightmostToken(candidate2, sourceFile); - } - return void 0; - } - else { - return find2(child); - } - } - } - Debug.assert(startNode2 !== void 0 || n.kind === 312 /* SourceFile */ || n.kind === 1 /* EndOfFileToken */ || isJSDocCommentContainingNode(n)); - var candidate = findRightmostChildNodeWithTokens(children, - /*exclusiveStartPosition*/ - children.length, sourceFile, n.kind); - return candidate && findRightmostToken(candidate, sourceFile); - } -} -function isNonWhitespaceToken(n) { - return isToken(n) && !isWhiteSpaceOnlyJsxText(n); -} -function findRightmostToken(n, sourceFile) { - if (isNonWhitespaceToken(n)) { - return n; - } - var children = n.getChildren(sourceFile); - if (children.length === 0) { - return n; - } - var candidate = findRightmostChildNodeWithTokens(children, - /*exclusiveStartPosition*/ - children.length, sourceFile, n.kind); - return candidate && findRightmostToken(candidate, sourceFile); -} -function findRightmostChildNodeWithTokens(children, exclusiveStartPosition, sourceFile, parentKind) { - for (var i = exclusiveStartPosition - 1; i >= 0; i--) { - var child = children[i]; - if (isWhiteSpaceOnlyJsxText(child)) { - if (i === 0 && (parentKind === 12 /* JsxText */ || parentKind === 285 /* JsxSelfClosingElement */)) { - Debug.fail("`JsxText` tokens should not be the first child of `JsxElement | JsxSelfClosingElement`"); - } - } - else if (nodeHasTokens(children[i], sourceFile)) { - return children[i]; - } - } -} -function isInString(sourceFile, position, previousToken) { - if (previousToken === void 0) { previousToken = findPrecedingToken(position, sourceFile); } - if (previousToken && isStringTextContainingNode(previousToken)) { - var start2 = previousToken.getStart(sourceFile); - var end = previousToken.getEnd(); - if (start2 < position && position < end) { - return true; - } - if (position === end) { - return !!previousToken.isUnterminated; - } - } - return false; -} -function isInsideJsxElementOrAttribute(sourceFile, position) { - var token = getTokenAtPosition(sourceFile, position); - if (!token) { - return false; - } - if (token.kind === 12 /* JsxText */) { - return true; - } - if (token.kind === 30 /* LessThanToken */ && token.parent.kind === 12 /* JsxText */) { - return true; - } - if (token.kind === 30 /* LessThanToken */ && token.parent.kind === 294 /* JsxExpression */) { - return true; - } - if (token && token.kind === 20 /* CloseBraceToken */ && token.parent.kind === 294 /* JsxExpression */) { - return true; - } - if (token.kind === 30 /* LessThanToken */ && token.parent.kind === 287 /* JsxClosingElement */) { - return true; - } - return false; -} -function isWhiteSpaceOnlyJsxText(node) { - return isJsxText(node) && node.containsOnlyTriviaWhiteSpaces; -} -function isInTemplateString(sourceFile, position) { - var token = getTokenAtPosition(sourceFile, position); - return isTemplateLiteralKind(token.kind) && position > token.getStart(sourceFile); -} -function isInJSXText(sourceFile, position) { - var token = getTokenAtPosition(sourceFile, position); - if (isJsxText(token)) { - return true; - } - if (token.kind === 19 /* OpenBraceToken */ && isJsxExpression(token.parent) && isJsxElement(token.parent.parent)) { - return true; - } - if (token.kind === 30 /* LessThanToken */ && isJsxOpeningLikeElement(token.parent) && isJsxElement(token.parent.parent)) { - return true; - } - return false; -} -function isInsideJsxElement(sourceFile, position) { - function isInsideJsxElementTraversal(node) { - while (node) { - if (node.kind >= 285 /* JsxSelfClosingElement */ && node.kind <= 294 /* JsxExpression */ || node.kind === 12 /* JsxText */ || node.kind === 30 /* LessThanToken */ || node.kind === 32 /* GreaterThanToken */ || node.kind === 80 /* Identifier */ || node.kind === 20 /* CloseBraceToken */ || node.kind === 19 /* OpenBraceToken */ || node.kind === 44 /* SlashToken */) { - node = node.parent; - } - else if (node.kind === 284 /* JsxElement */) { - if (position > node.getStart(sourceFile)) - return true; - node = node.parent; - } - else { - return false; - } - } - return false; - } - return isInsideJsxElementTraversal(getTokenAtPosition(sourceFile, position)); -} -function findPrecedingMatchingToken(token, matchingTokenKind, sourceFile) { - var closeTokenText = tokenToString(token.kind); - var matchingTokenText = tokenToString(matchingTokenKind); - var tokenFullStart = token.getFullStart(); - var bestGuessIndex = sourceFile.text.lastIndexOf(matchingTokenText, tokenFullStart); - if (bestGuessIndex === -1) { - return void 0; - } - if (sourceFile.text.lastIndexOf(closeTokenText, tokenFullStart - 1) < bestGuessIndex) { - var nodeAtGuess = findPrecedingToken(bestGuessIndex + 1, sourceFile); - if (nodeAtGuess && nodeAtGuess.kind === matchingTokenKind) { - return nodeAtGuess; - } - } - var tokenKind = token.kind; - var remainingMatchingTokens = 0; - while (true) { - var preceding = findPrecedingToken(token.getFullStart(), sourceFile); - if (!preceding) { - return void 0; - } - token = preceding; - if (token.kind === matchingTokenKind) { - if (remainingMatchingTokens === 0) { - return token; - } - remainingMatchingTokens--; - } - else if (token.kind === tokenKind) { - remainingMatchingTokens++; - } - } -} -function removeOptionality(type, isOptionalExpression, isOptionalChain2) { - return isOptionalExpression ? type.getNonNullableType() : isOptionalChain2 ? type.getNonOptionalType() : type; -} -function isPossiblyTypeArgumentPosition(token, sourceFile, checker) { - var info = getPossibleTypeArgumentsInfo(token, sourceFile); - return info !== void 0 && (isPartOfTypeNode(info.called) || getPossibleGenericSignatures(info.called, info.nTypeArguments, checker).length !== 0 || isPossiblyTypeArgumentPosition(info.called, sourceFile, checker)); -} -function getPossibleGenericSignatures(called, typeArgumentCount, checker) { - var type = checker.getTypeAtLocation(called); - if (isOptionalChain(called.parent)) { - type = removeOptionality(type, isOptionalChainRoot(called.parent), - /*isOptionalChain*/ - true); - } - var signatures = isNewExpression(called.parent) ? type.getConstructSignatures() : type.getCallSignatures(); - return signatures.filter(function (candidate) { return !!candidate.typeParameters && candidate.typeParameters.length >= typeArgumentCount; }); -} -function getPossibleTypeArgumentsInfo(tokenIn, sourceFile) { - if (sourceFile.text.lastIndexOf("<", tokenIn ? tokenIn.pos : sourceFile.text.length) === -1) { - return void 0; - } - var token = tokenIn; - var remainingLessThanTokens = 0; - var nTypeArguments = 0; - while (token) { - switch (token.kind) { - case 30 /* LessThanToken */: - token = findPrecedingToken(token.getFullStart(), sourceFile); - if (token && token.kind === 29 /* QuestionDotToken */) { - token = findPrecedingToken(token.getFullStart(), sourceFile); - } - if (!token || !isIdentifier(token)) - return void 0; - if (!remainingLessThanTokens) { - return isDeclarationName(token) ? void 0 : { called: token, nTypeArguments: nTypeArguments }; - } - remainingLessThanTokens--; - break; - case 50 /* GreaterThanGreaterThanGreaterThanToken */: - remainingLessThanTokens = 3; - break; - case 49 /* GreaterThanGreaterThanToken */: - remainingLessThanTokens = 2; - break; - case 32 /* GreaterThanToken */: - remainingLessThanTokens++; - break; - case 20 /* CloseBraceToken */: - token = findPrecedingMatchingToken(token, 19 /* OpenBraceToken */, sourceFile); - if (!token) - return void 0; - break; - case 22 /* CloseParenToken */: - token = findPrecedingMatchingToken(token, 21 /* OpenParenToken */, sourceFile); - if (!token) - return void 0; - break; - case 24 /* CloseBracketToken */: - token = findPrecedingMatchingToken(token, 23 /* OpenBracketToken */, sourceFile); - if (!token) - return void 0; - break; - case 28 /* CommaToken */: - nTypeArguments++; - break; - case 39 /* EqualsGreaterThanToken */: - case 80 /* Identifier */: - case 11 /* StringLiteral */: - case 9 /* NumericLiteral */: - case 10 /* BigIntLiteral */: - case 112 /* TrueKeyword */: - case 97 /* FalseKeyword */: - case 114 /* TypeOfKeyword */: - case 96 /* ExtendsKeyword */: - case 143 /* KeyOfKeyword */: - case 25 /* DotToken */: - case 52 /* BarToken */: - case 58 /* QuestionToken */: - case 59 /* ColonToken */: - break; - default: - if (isTypeNode(token)) { - break; - } - return void 0; - } - token = findPrecedingToken(token.getFullStart(), sourceFile); - } - return void 0; -} -function isInComment(sourceFile, position, tokenAtPosition) { - return ts_formatting_exports.getRangeOfEnclosingComment(sourceFile, position, - /*precedingToken*/ - void 0, tokenAtPosition); -} -function hasDocComment(sourceFile, position) { - var token = getTokenAtPosition(sourceFile, position); - return !!findAncestor(token, isJSDoc); -} -function nodeHasTokens(n, sourceFile) { - return n.kind === 1 /* EndOfFileToken */ ? !!n.jsDoc : n.getWidth(sourceFile) !== 0; -} -function getNodeModifiers(node, excludeFlags /* None */) { - if (excludeFlags === void 0) { excludeFlags = 0; } - var result = []; - var flags = isDeclaration(node) ? getCombinedNodeFlagsAlwaysIncludeJSDoc(node) & ~excludeFlags : 0 /* None */; - if (flags & 8 /* Private */) - result.push("private" /* privateMemberModifier */); - if (flags & 16 /* Protected */) - result.push("protected" /* protectedMemberModifier */); - if (flags & 4 /* Public */) - result.push("public" /* publicMemberModifier */); - if (flags & 32 /* Static */ || isClassStaticBlockDeclaration(node)) - result.push("static" /* staticModifier */); - if (flags & 256 /* Abstract */) - result.push("abstract" /* abstractModifier */); - if (flags & 1 /* Export */) - result.push("export" /* exportedModifier */); - if (flags & 8192 /* Deprecated */) - result.push("deprecated" /* deprecatedModifier */); - if (node.flags & 33554432 /* Ambient */) - result.push("declare" /* ambientModifier */); - if (node.kind === 277 /* ExportAssignment */) - result.push("export" /* exportedModifier */); - return result.length > 0 ? result.join(",") : "" /* none */; -} -function getTypeArgumentOrTypeParameterList(node) { - if (node.kind === 183 /* TypeReference */ || node.kind === 213 /* CallExpression */) { - return node.typeArguments; - } - if (isFunctionLike(node) || node.kind === 263 /* ClassDeclaration */ || node.kind === 264 /* InterfaceDeclaration */) { - return node.typeParameters; - } - return void 0; -} -function isComment(kind) { - return kind === 2 /* SingleLineCommentTrivia */ || kind === 3 /* MultiLineCommentTrivia */; -} -function isStringOrRegularExpressionOrTemplateLiteral(kind) { - if (kind === 11 /* StringLiteral */ || kind === 14 /* RegularExpressionLiteral */ || isTemplateLiteralKind(kind)) { - return true; - } - return false; -} -function areIntersectedTypesAvoidingStringReduction(checker, t1, t2) { - return !!(t1.flags & 4 /* String */) && checker.isEmptyAnonymousObjectType(t2); -} -function isStringAndEmptyAnonymousObjectIntersection(type) { - if (!type.isIntersection()) { - return false; - } - var types = type.types, checker = type.checker; - return types.length === 2 && (areIntersectedTypesAvoidingStringReduction(checker, types[0], types[1]) || areIntersectedTypesAvoidingStringReduction(checker, types[1], types[0])); -} -function isInsideTemplateLiteral(node, position, sourceFile) { - return isTemplateLiteralKind(node.kind) && (node.getStart(sourceFile) < position && position < node.end) || !!node.isUnterminated && position === node.end; -} -function isAccessibilityModifier(kind) { - switch (kind) { - case 125 /* PublicKeyword */: - case 123 /* PrivateKeyword */: - case 124 /* ProtectedKeyword */: - return true; - } - return false; -} -function cloneCompilerOptions(options) { - var result = clone(options); - setConfigFileInOptions(result, options && options.configFile); - return result; -} -function isArrayLiteralOrObjectLiteralDestructuringPattern(node) { - if (node.kind === 209 /* ArrayLiteralExpression */ || node.kind === 210 /* ObjectLiteralExpression */) { - if (node.parent.kind === 226 /* BinaryExpression */ && node.parent.left === node && node.parent.operatorToken.kind === 64 /* EqualsToken */) { - return true; - } - if (node.parent.kind === 250 /* ForOfStatement */ && node.parent.initializer === node) { - return true; - } - if (isArrayLiteralOrObjectLiteralDestructuringPattern(node.parent.kind === 303 /* PropertyAssignment */ ? node.parent.parent : node.parent)) { - return true; - } - } - return false; -} -function isInReferenceComment(sourceFile, position) { - return isInReferenceCommentWorker(sourceFile, position, - /*shouldBeReference*/ - true); -} -function isInNonReferenceComment(sourceFile, position) { - return isInReferenceCommentWorker(sourceFile, position, - /*shouldBeReference*/ - false); -} -function isInReferenceCommentWorker(sourceFile, position, shouldBeReference) { - var range = isInComment(sourceFile, position, - /*tokenAtPosition*/ - void 0); - return !!range && shouldBeReference === tripleSlashDirectivePrefixRegex.test(sourceFile.text.substring(range.pos, range.end)); -} -function getReplacementSpanForContextToken(contextToken) { - if (!contextToken) - return void 0; - switch (contextToken.kind) { - case 11 /* StringLiteral */: - case 15 /* NoSubstitutionTemplateLiteral */: - return createTextSpanFromStringLiteralLikeContent(contextToken); - default: - return createTextSpanFromNode(contextToken); - } -} -function createTextSpanFromNode(node, sourceFile, endNode2) { - return createTextSpanFromBounds(node.getStart(sourceFile), (endNode2 || node).getEnd()); -} -function createTextSpanFromStringLiteralLikeContent(node) { - if (node.isUnterminated) - return void 0; - return createTextSpanFromBounds(node.getStart() + 1, node.getEnd() - 1); -} -function createTextRangeFromNode(node, sourceFile) { - return createRange(node.getStart(sourceFile), node.end); -} -function createTextSpanFromRange(range) { - return createTextSpanFromBounds(range.pos, range.end); -} -function createTextRangeFromSpan(span) { - return createRange(span.start, span.start + span.length); -} -function createTextChangeFromStartLength(start2, length2, newText) { - return createTextChange(createTextSpan(start2, length2), newText); -} -function createTextChange(span, newText) { - return { span: span, newText: newText }; -} -var typeKeywords = [ - 133 /* AnyKeyword */, - 131 /* AssertsKeyword */, - 163 /* BigIntKeyword */, - 136 /* BooleanKeyword */, - 97 /* FalseKeyword */, - 140 /* InferKeyword */, - 143 /* KeyOfKeyword */, - 146 /* NeverKeyword */, - 106 /* NullKeyword */, - 150 /* NumberKeyword */, - 151 /* ObjectKeyword */, - 148 /* ReadonlyKeyword */, - 154 /* StringKeyword */, - 155 /* SymbolKeyword */, - 114 /* TypeOfKeyword */, - 112 /* TrueKeyword */, - 116 /* VoidKeyword */, - 157 /* UndefinedKeyword */, - 158 /* UniqueKeyword */, - 159 /* UnknownKeyword */ -]; -function isTypeKeyword(kind) { - return contains(typeKeywords, kind); -} -function isTypeKeywordToken(node) { - return node.kind === 156 /* TypeKeyword */; -} -function isTypeKeywordTokenOrIdentifier(node) { - return isTypeKeywordToken(node) || isIdentifier(node) && node.text === "type"; -} -function isExternalModuleSymbol(moduleSymbol) { - return !!(moduleSymbol.flags & 1536 /* Module */) && moduleSymbol.name.charCodeAt(0) === 34 /* doubleQuote */; -} -function nodeSeenTracker() { - var seen = []; - return function (node) { - var id = getNodeId(node); - return !seen[id] && (seen[id] = true); - }; -} -function getSnapshotText(snap) { - return snap.getText(0, snap.getLength()); -} -function repeatString(str, count) { - var result = ""; - for (var i = 0; i < count; i++) { - result += str; - } - return result; -} -function skipConstraint(type) { - return type.isTypeParameter() ? type.getConstraint() || type : type; -} -function getNameFromPropertyName(name) { - return name.kind === 167 /* ComputedPropertyName */ ? isStringOrNumericLiteralLike(name.expression) ? name.expression.text : void 0 : isPrivateIdentifier(name) ? idText(name) : getTextOfIdentifierOrLiteral(name); -} -function programContainsModules(program) { - return program.getSourceFiles().some(function (s) { return !s.isDeclarationFile && !program.isSourceFileFromExternalLibrary(s) && !!(s.externalModuleIndicator || s.commonJsModuleIndicator); }); -} -function programContainsEsModules(program) { - return program.getSourceFiles().some(function (s) { return !s.isDeclarationFile && !program.isSourceFileFromExternalLibrary(s) && !!s.externalModuleIndicator; }); -} -function compilerOptionsIndicateEsModules(compilerOptions) { - return !!compilerOptions.module || getEmitScriptTarget(compilerOptions) >= 2 /* ES2015 */ || !!compilerOptions.noEmit; -} -function createModuleSpecifierResolutionHost(program, host) { - return { - fileExists: function (fileName) { return program.fileExists(fileName); }, - getCurrentDirectory: function () { return host.getCurrentDirectory(); }, - readFile: maybeBind(host, host.readFile), - useCaseSensitiveFileNames: maybeBind(host, host.useCaseSensitiveFileNames), - getSymlinkCache: maybeBind(host, host.getSymlinkCache) || program.getSymlinkCache, - getModuleSpecifierCache: maybeBind(host, host.getModuleSpecifierCache), - getPackageJsonInfoCache: function () { - var _a; - return (_a = program.getModuleResolutionCache()) == null ? void 0 : _a.getPackageJsonInfoCache(); - }, - getGlobalTypingsCacheLocation: maybeBind(host, host.getGlobalTypingsCacheLocation), - redirectTargetsMap: program.redirectTargetsMap, - getProjectReferenceRedirect: function (fileName) { return program.getProjectReferenceRedirect(fileName); }, - isSourceOfProjectReferenceRedirect: function (fileName) { return program.isSourceOfProjectReferenceRedirect(fileName); }, - getNearestAncestorDirectoryWithPackageJson: maybeBind(host, host.getNearestAncestorDirectoryWithPackageJson), - getFileIncludeReasons: function () { return program.getFileIncludeReasons(); } - }; -} -function getModuleSpecifierResolverHost(program, host) { - return __assign(__assign({}, createModuleSpecifierResolutionHost(program, host)), { getCommonSourceDirectory: function () { return program.getCommonSourceDirectory(); } }); -} -function moduleResolutionUsesNodeModules(moduleResolution) { - return moduleResolution === 2 /* Node10 */ || moduleResolution >= 3 /* Node16 */ && moduleResolution <= 99 /* NodeNext */ || moduleResolution === 100 /* Bundler */; -} -function makeImportIfNecessary(defaultImport, namedImports, moduleSpecifier, quotePreference) { - return defaultImport || namedImports && namedImports.length ? makeImport(defaultImport, namedImports, moduleSpecifier, quotePreference) : void 0; -} -function makeImport(defaultImport, namedImports, moduleSpecifier, quotePreference, isTypeOnly) { - return factory.createImportDeclaration( - /*modifiers*/ - void 0, defaultImport || namedImports ? factory.createImportClause(!!isTypeOnly, defaultImport, namedImports && namedImports.length ? factory.createNamedImports(namedImports) : void 0) : void 0, typeof moduleSpecifier === "string" ? makeStringLiteral(moduleSpecifier, quotePreference) : moduleSpecifier, - /*assertClause*/ - void 0); -} -function makeStringLiteral(text, quotePreference) { - return factory.createStringLiteral(text, quotePreference === 0 /* Single */); -} -var QuotePreference = /* @__PURE__ */ (function (QuotePreference7) { - QuotePreference7[QuotePreference7["Single"] = 0] = "Single"; - QuotePreference7[QuotePreference7["Double"] = 1] = "Double"; - return QuotePreference7; -})(QuotePreference || {}); -function quotePreferenceFromString(str, sourceFile) { - return isStringDoubleQuoted(str, sourceFile) ? 1 /* Double */ : 0 /* Single */; -} -function getQuotePreference(sourceFile, preferences) { - if (preferences.quotePreference && preferences.quotePreference !== "auto") { - return preferences.quotePreference === "single" ? 0 /* Single */ : 1 /* Double */; - } - else { - var firstModuleSpecifier = sourceFile.imports && find(sourceFile.imports, function (n) { return isStringLiteral(n) && !nodeIsSynthesized(n.parent); }); - return firstModuleSpecifier ? quotePreferenceFromString(firstModuleSpecifier, sourceFile) : 1 /* Double */; - } -} -function getQuoteFromPreference(qp) { - switch (qp) { - case 0 /* Single */: - return "'"; - case 1 /* Double */: - return '"'; - default: - return Debug.assertNever(qp); - } -} -function symbolNameNoDefault(symbol) { - var escaped = symbolEscapedNameNoDefault(symbol); - return escaped === void 0 ? void 0 : unescapeLeadingUnderscores(escaped); -} -function symbolEscapedNameNoDefault(symbol) { - if (symbol.escapedName !== "default" /* Default */) { - return symbol.escapedName; - } - return firstDefined(symbol.declarations, function (decl) { - var name = getNameOfDeclaration(decl); - return name && name.kind === 80 /* Identifier */ ? name.escapedText : void 0; - }); -} -function isModuleSpecifierLike(node) { - return isStringLiteralLike(node) && (isExternalModuleReference(node.parent) || isImportDeclaration(node.parent) || isRequireCall(node.parent, - /*requireStringLiteralLikeArgument*/ - false) && node.parent.arguments[0] === node || isImportCall(node.parent) && node.parent.arguments[0] === node); -} -function isObjectBindingElementWithoutPropertyName(bindingElement) { - return isBindingElement(bindingElement) && isObjectBindingPattern(bindingElement.parent) && isIdentifier(bindingElement.name) && !bindingElement.propertyName; -} -function getPropertySymbolFromBindingElement(checker, bindingElement) { - var typeOfPattern = checker.getTypeAtLocation(bindingElement.parent); - return typeOfPattern && checker.getPropertyOfType(typeOfPattern, bindingElement.name.text); -} -function getParentNodeInSpan(node, file, span) { - if (!node) - return void 0; - while (node.parent) { - if (isSourceFile(node.parent) || !spanContainsNode(span, node.parent, file)) { - return node; - } - node = node.parent; - } -} -function spanContainsNode(span, node, file) { - return textSpanContainsPosition(span, node.getStart(file)) && node.getEnd() <= textSpanEnd(span); -} -function findModifier(node, kind) { - return canHaveModifiers(node) ? find(node.modifiers, function (m) { return m.kind === kind; }) : void 0; -} -function insertImports(changes, sourceFile, imports, blankLineBetween, preferences) { - var e_645, _t; - var decl = isArray(imports) ? imports[0] : imports; - var importKindPredicate = decl.kind === 243 /* VariableStatement */ ? isRequireVariableStatement : isAnyImportSyntax; - var existingImportStatements = filter(sourceFile.statements, importKindPredicate); - var sortKind = isArray(imports) ? ts_OrganizeImports_exports.detectImportDeclarationSorting(imports, preferences) : 3 /* Both */; - var comparer = ts_OrganizeImports_exports.getOrganizeImportsComparer(preferences, sortKind === 2 /* CaseInsensitive */); - var sortedNewImports = isArray(imports) ? stableSort(imports, function (a, b) { return ts_OrganizeImports_exports.compareImportsOrRequireStatements(a, b, comparer); }) : [imports]; - if (!existingImportStatements.length) { - changes.insertNodesAtTopOfFile(sourceFile, sortedNewImports, blankLineBetween); - } - else if (existingImportStatements && (sortKind = ts_OrganizeImports_exports.detectImportDeclarationSorting(existingImportStatements, preferences))) { - var comparer2 = ts_OrganizeImports_exports.getOrganizeImportsComparer(preferences, sortKind === 2 /* CaseInsensitive */); - try { - for (var sortedNewImports_1 = __values(sortedNewImports), sortedNewImports_1_1 = sortedNewImports_1.next(); !sortedNewImports_1_1.done; sortedNewImports_1_1 = sortedNewImports_1.next()) { - var newImport = sortedNewImports_1_1.value; - var insertionIndex = ts_OrganizeImports_exports.getImportDeclarationInsertionIndex(existingImportStatements, newImport, comparer2); - if (insertionIndex === 0) { - var options = existingImportStatements[0] === sourceFile.statements[0] ? { leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.Exclude } : {}; - changes.insertNodeBefore(sourceFile, existingImportStatements[0], newImport, - /*blankLineBetween*/ - false, options); - } - else { - var prevImport = existingImportStatements[insertionIndex - 1]; - changes.insertNodeAfter(sourceFile, prevImport, newImport); - } - } - } - catch (e_645_1) { e_645 = { error: e_645_1 }; } - finally { - try { - if (sortedNewImports_1_1 && !sortedNewImports_1_1.done && (_t = sortedNewImports_1.return)) _t.call(sortedNewImports_1); - } - finally { if (e_645) throw e_645.error; } - } - } - else { - var lastExistingImport = lastOrUndefined(existingImportStatements); - if (lastExistingImport) { - changes.insertNodesAfter(sourceFile, lastExistingImport, sortedNewImports); - } - else { - changes.insertNodesAtTopOfFile(sourceFile, sortedNewImports, blankLineBetween); - } - } -} -function getTypeKeywordOfTypeOnlyImport(importClause, sourceFile) { - Debug.assert(importClause.isTypeOnly); - return cast(importClause.getChildAt(0, sourceFile), isTypeKeywordToken); -} -function textSpansEqual(a, b) { - return !!a && !!b && a.start === b.start && a.length === b.length; -} -function documentSpansEqual(a, b) { - return a.fileName === b.fileName && textSpansEqual(a.textSpan, b.textSpan); -} -function forEachUnique(array, callback) { - if (array) { - for (var i = 0; i < array.length; i++) { - if (array.indexOf(array[i]) === i) { - var result = callback(array[i], i); - if (result) { - return result; - } - } - } - } - return void 0; -} -function isTextWhiteSpaceLike(text, startPos, endPos) { - for (var i = startPos; i < endPos; i++) { - if (!isWhiteSpaceLike(text.charCodeAt(i))) { - return false; - } - } - return true; -} -function getMappedLocation(location, sourceMapper, fileExists) { - var mapsTo = sourceMapper.tryGetSourcePosition(location); - return mapsTo && (!fileExists || fileExists(normalizePath(mapsTo.fileName)) ? mapsTo : void 0); -} -function getMappedDocumentSpan(documentSpan, sourceMapper, fileExists) { - var fileName = documentSpan.fileName, textSpan = documentSpan.textSpan; - var newPosition = getMappedLocation({ fileName: fileName, pos: textSpan.start }, sourceMapper, fileExists); - if (!newPosition) - return void 0; - var newEndPosition = getMappedLocation({ fileName: fileName, pos: textSpan.start + textSpan.length }, sourceMapper, fileExists); - var newLength = newEndPosition ? newEndPosition.pos - newPosition.pos : textSpan.length; - return { - fileName: newPosition.fileName, - textSpan: { - start: newPosition.pos, - length: newLength - }, - originalFileName: documentSpan.fileName, - originalTextSpan: documentSpan.textSpan, - contextSpan: getMappedContextSpan(documentSpan, sourceMapper, fileExists), - originalContextSpan: documentSpan.contextSpan - }; -} -function getMappedContextSpan(documentSpan, sourceMapper, fileExists) { - var contextSpanStart = documentSpan.contextSpan && getMappedLocation({ fileName: documentSpan.fileName, pos: documentSpan.contextSpan.start }, sourceMapper, fileExists); - var contextSpanEnd = documentSpan.contextSpan && getMappedLocation({ fileName: documentSpan.fileName, pos: documentSpan.contextSpan.start + documentSpan.contextSpan.length }, sourceMapper, fileExists); - return contextSpanStart && contextSpanEnd ? { start: contextSpanStart.pos, length: contextSpanEnd.pos - contextSpanStart.pos } : void 0; -} -function isFirstDeclarationOfSymbolParameter(symbol) { - var declaration = symbol.declarations ? firstOrUndefined(symbol.declarations) : void 0; - return !!findAncestor(declaration, function (n) { return isParameter(n) ? true : isBindingElement(n) || isObjectBindingPattern(n) || isArrayBindingPattern(n) ? false : "quit"; }); -} -var displayPartWriter = getDisplayPartWriter(); -function getDisplayPartWriter() { - var absoluteMaximumLength = defaultMaximumTruncationLength * 10; - var displayParts; - var lineStart; - var indent3; - var length2; - resetWriter(); - var unknownWrite = function (text) { return writeKind(text, 17 /* text */); }; - return { - displayParts: function () { - var finalText = displayParts.length && displayParts[displayParts.length - 1].text; - if (length2 > absoluteMaximumLength && finalText && finalText !== "...") { - if (!isWhiteSpaceLike(finalText.charCodeAt(finalText.length - 1))) { - displayParts.push(displayPart(" ", 16 /* space */)); - } - displayParts.push(displayPart("...", 15 /* punctuation */)); - } - return displayParts; - }, - writeKeyword: function (text) { return writeKind(text, 5 /* keyword */); }, - writeOperator: function (text) { return writeKind(text, 12 /* operator */); }, - writePunctuation: function (text) { return writeKind(text, 15 /* punctuation */); }, - writeTrailingSemicolon: function (text) { return writeKind(text, 15 /* punctuation */); }, - writeSpace: function (text) { return writeKind(text, 16 /* space */); }, - writeStringLiteral: function (text) { return writeKind(text, 8 /* stringLiteral */); }, - writeParameter: function (text) { return writeKind(text, 13 /* parameterName */); }, - writeProperty: function (text) { return writeKind(text, 14 /* propertyName */); }, - writeLiteral: function (text) { return writeKind(text, 8 /* stringLiteral */); }, - writeSymbol: writeSymbol, - writeLine: writeLine, - write: unknownWrite, - writeComment: unknownWrite, - getText: function () { return ""; }, - getTextPos: function () { return 0; }, - getColumn: function () { return 0; }, - getLine: function () { return 0; }, - isAtStartOfLine: function () { return false; }, - hasTrailingWhitespace: function () { return false; }, - hasTrailingComment: function () { return false; }, - rawWrite: notImplemented, - getIndent: function () { return indent3; }, - increaseIndent: function () { - indent3++; - }, - decreaseIndent: function () { - indent3--; - }, - clear: resetWriter - }; - function writeIndent() { - if (length2 > absoluteMaximumLength) - return; - if (lineStart) { - var indentString = getIndentString(indent3); - if (indentString) { - length2 += indentString.length; - displayParts.push(displayPart(indentString, 16 /* space */)); - } - lineStart = false; - } - } - function writeKind(text, kind) { - if (length2 > absoluteMaximumLength) - return; - writeIndent(); - length2 += text.length; - displayParts.push(displayPart(text, kind)); - } - function writeSymbol(text, symbol) { - if (length2 > absoluteMaximumLength) - return; - writeIndent(); - length2 += text.length; - displayParts.push(symbolPart(text, symbol)); - } - function writeLine() { - if (length2 > absoluteMaximumLength) - return; - length2 += 1; - displayParts.push(lineBreakPart()); - lineStart = true; - } - function resetWriter() { - displayParts = []; - lineStart = true; - indent3 = 0; - length2 = 0; - } -} -function symbolPart(text, symbol) { - return displayPart(text, displayPartKind(symbol)); - function displayPartKind(symbol2) { - var flags = symbol2.flags; - if (flags & 3 /* Variable */) { - return isFirstDeclarationOfSymbolParameter(symbol2) ? 13 /* parameterName */ : 9 /* localName */; - } - if (flags & 4 /* Property */) - return 14 /* propertyName */; - if (flags & 32768 /* GetAccessor */) - return 14 /* propertyName */; - if (flags & 65536 /* SetAccessor */) - return 14 /* propertyName */; - if (flags & 8 /* EnumMember */) - return 19 /* enumMemberName */; - if (flags & 16 /* Function */) - return 20 /* functionName */; - if (flags & 32 /* Class */) - return 1 /* className */; - if (flags & 64 /* Interface */) - return 4 /* interfaceName */; - if (flags & 384 /* Enum */) - return 2 /* enumName */; - if (flags & 1536 /* Module */) - return 11 /* moduleName */; - if (flags & 8192 /* Method */) - return 10 /* methodName */; - if (flags & 262144 /* TypeParameter */) - return 18 /* typeParameterName */; - if (flags & 524288 /* TypeAlias */) - return 0 /* aliasName */; - if (flags & 2097152 /* Alias */) - return 0 /* aliasName */; - return 17 /* text */; - } -} -function displayPart(text, kind) { - return { text: text, kind: SymbolDisplayPartKind[kind] }; -} -function spacePart() { - return displayPart(" ", 16 /* space */); -} -function keywordPart(kind) { - return displayPart(tokenToString(kind), 5 /* keyword */); -} -function punctuationPart(kind) { - return displayPart(tokenToString(kind), 15 /* punctuation */); -} -function operatorPart(kind) { - return displayPart(tokenToString(kind), 12 /* operator */); -} -function parameterNamePart(text) { - return displayPart(text, 13 /* parameterName */); -} -function propertyNamePart(text) { - return displayPart(text, 14 /* propertyName */); -} -function textOrKeywordPart(text) { - var kind = stringToToken(text); - return kind === void 0 ? textPart(text) : keywordPart(kind); -} -function textPart(text) { - return displayPart(text, 17 /* text */); -} -function typeAliasNamePart(text) { - return displayPart(text, 0 /* aliasName */); -} -function typeParameterNamePart(text) { - return displayPart(text, 18 /* typeParameterName */); -} -function linkTextPart(text) { - return displayPart(text, 24 /* linkText */); -} -function linkNamePart(text, target) { - return { - text: text, - kind: SymbolDisplayPartKind[23 /* linkName */], - target: { - fileName: getSourceFileOfNode(target).fileName, - textSpan: createTextSpanFromNode(target) - } - }; -} -function linkPart(text) { - return displayPart(text, 22 /* link */); -} -function buildLinkParts(link, checker) { - var _a; - var prefix = isJSDocLink(link) ? "link" : isJSDocLinkCode(link) ? "linkcode" : "linkplain"; - var parts = [linkPart("{@".concat(prefix, " "))]; - if (!link.name) { - if (link.text) { - parts.push(linkTextPart(link.text)); - } - } - else { - var symbol = checker == null ? void 0 : checker.getSymbolAtLocation(link.name); - var suffix = findLinkNameEnd(link.text); - var name_99 = getTextOfNode(link.name) + link.text.slice(0, suffix); - var text = skipSeparatorFromLinkText(link.text.slice(suffix)); - var decl = (symbol == null ? void 0 : symbol.valueDeclaration) || ((_a = symbol == null ? void 0 : symbol.declarations) == null ? void 0 : _a[0]); - if (decl) { - parts.push(linkNamePart(name_99, decl)); - if (text) - parts.push(linkTextPart(text)); - } - else { - parts.push(linkTextPart(name_99 + (suffix ? "" : " ") + text)); - } - } - parts.push(linkPart("}")); - return parts; -} -function skipSeparatorFromLinkText(text) { - var pos = 0; - if (text.charCodeAt(pos++) === 124 /* bar */) { - while (pos < text.length && text.charCodeAt(pos) === 32 /* space */) - pos++; - return text.slice(pos); - } - return text; -} -function findLinkNameEnd(text) { - var pos = text.indexOf("://"); - if (pos === 0) { - while (pos < text.length && text.charCodeAt(pos) !== 124 /* bar */) - pos++; - return pos; - } - if (text.indexOf("()") === 0) - return 2; - if (text.charAt(0) === "<") { - var brackets2 = 0; - var i = 0; - while (i < text.length) { - if (text[i] === "<") - brackets2++; - if (text[i] === ">") - brackets2--; - i++; - if (!brackets2) - return i; - } - } - return 0; -} -var lineFeed2 = "\n"; -function getNewLineOrDefaultFromHost(host, formatSettings) { - var _a; - return (formatSettings == null ? void 0 : formatSettings.newLineCharacter) || ((_a = host.getNewLine) == null ? void 0 : _a.call(host)) || lineFeed2; -} -function lineBreakPart() { - return displayPart("\n", 6 /* lineBreak */); -} -function mapToDisplayParts(writeDisplayParts) { - try { - writeDisplayParts(displayPartWriter); - return displayPartWriter.displayParts(); - } - finally { - displayPartWriter.clear(); - } -} -function typeToDisplayParts(typechecker, type, enclosingDeclaration, flags /* None */) { - if (flags === void 0) { flags = 0; } - return mapToDisplayParts(function (writer) { - typechecker.writeType(type, enclosingDeclaration, flags | 1024 /* MultilineObjectLiterals */ | 16384 /* UseAliasDefinedOutsideCurrentScope */, writer); - }); -} -function symbolToDisplayParts(typeChecker, symbol, enclosingDeclaration, meaning, flags /* None */) { - if (flags === void 0) { flags = 0; } - return mapToDisplayParts(function (writer) { - typeChecker.writeSymbol(symbol, enclosingDeclaration, meaning, flags | 8 /* UseAliasDefinedOutsideCurrentScope */, writer); - }); -} -function signatureToDisplayParts(typechecker, signature, enclosingDeclaration, flags /* None */) { - if (flags === void 0) { flags = 0; } - flags |= 16384 /* UseAliasDefinedOutsideCurrentScope */ | 1024 /* MultilineObjectLiterals */ | 32 /* WriteTypeArgumentsOfSignature */ | 8192 /* OmitParameterModifiers */; - return mapToDisplayParts(function (writer) { - typechecker.writeSignature(signature, enclosingDeclaration, flags, - /*kind*/ - void 0, writer); - }); -} -function nodeToDisplayParts(node, enclosingDeclaration) { - var file = enclosingDeclaration.getSourceFile(); - return mapToDisplayParts(function (writer) { - var printer = createPrinterWithRemoveCommentsOmitTrailingSemicolon(); - printer.writeNode(4 /* Unspecified */, node, file, writer); - }); -} -function isImportOrExportSpecifierName(location) { - return !!location.parent && isImportOrExportSpecifier(location.parent) && location.parent.propertyName === location; -} -function getScriptKind(fileName, host) { - return ensureScriptKind(fileName, host.getScriptKind && host.getScriptKind(fileName)); -} -function getSymbolTarget(symbol, checker) { - var next = symbol; - while (isAliasSymbol(next) || isTransientSymbol(next) && next.links.target) { - if (isTransientSymbol(next) && next.links.target) { - next = next.links.target; - } - else { - next = skipAlias(next, checker); - } - } - return next; -} -function isAliasSymbol(symbol) { - return (symbol.flags & 2097152 /* Alias */) !== 0; -} -function getUniqueSymbolId(symbol, checker) { - return getSymbolId(skipAlias(symbol, checker)); -} -function getFirstNonSpaceCharacterPosition(text, position) { - while (isWhiteSpaceLike(text.charCodeAt(position))) { - position += 1; - } - return position; -} -function getPrecedingNonSpaceCharacterPosition(text, position) { - while (position > -1 && isWhiteSpaceSingleLine(text.charCodeAt(position))) { - position -= 1; - } - return position + 1; -} -function getSynthesizedDeepClone(node, includeTrivia) { - if (includeTrivia === void 0) { includeTrivia = true; } - var clone2 = node && getSynthesizedDeepCloneWorker(node); - if (clone2 && !includeTrivia) - suppressLeadingAndTrailingTrivia(clone2); - return clone2; -} -function getSynthesizedDeepCloneWithReplacements(node, includeTrivia, replaceNode) { - var clone2 = replaceNode(node); - if (clone2) { - setOriginalNode(clone2, node); - } - else { - clone2 = getSynthesizedDeepCloneWorker(node, replaceNode); - } - if (clone2 && !includeTrivia) - suppressLeadingAndTrailingTrivia(clone2); - return clone2; -} -function getSynthesizedDeepCloneWorker(node, replaceNode) { - var nodeClone = replaceNode ? function (n) { return getSynthesizedDeepCloneWithReplacements(n, - /*includeTrivia*/ - true, replaceNode); } : getSynthesizedDeepClone; - var nodesClone = replaceNode ? function (ns) { return ns && getSynthesizedDeepClonesWithReplacements(ns, - /*includeTrivia*/ - true, replaceNode); } : function (ns) { return ns && getSynthesizedDeepClones(ns); }; - var visited = visitEachChild(node, nodeClone, nullTransformationContext, nodesClone, nodeClone); - if (visited === node) { - var clone2 = isStringLiteral(node) ? setOriginalNode(factory.createStringLiteralFromNode(node), node) : isNumericLiteral(node) ? setOriginalNode(factory.createNumericLiteral(node.text, node.numericLiteralFlags), node) : factory.cloneNode(node); - return setTextRange(clone2, node); - } - visited.parent = void 0; - return visited; -} -function getSynthesizedDeepClones(nodes, includeTrivia) { - if (includeTrivia === void 0) { includeTrivia = true; } - if (nodes) { - var cloned = factory.createNodeArray(nodes.map(function (n) { return getSynthesizedDeepClone(n, includeTrivia); }), nodes.hasTrailingComma); - setTextRange(cloned, nodes); - return cloned; - } - return nodes; -} -function getSynthesizedDeepClonesWithReplacements(nodes, includeTrivia, replaceNode) { - return factory.createNodeArray(nodes.map(function (n) { return getSynthesizedDeepCloneWithReplacements(n, includeTrivia, replaceNode); }), nodes.hasTrailingComma); -} -function suppressLeadingAndTrailingTrivia(node) { - suppressLeadingTrivia(node); - suppressTrailingTrivia(node); -} -function suppressLeadingTrivia(node) { - addEmitFlagsRecursively(node, 1024 /* NoLeadingComments */, getFirstChild); -} -function suppressTrailingTrivia(node) { - addEmitFlagsRecursively(node, 2048 /* NoTrailingComments */, getLastChild); -} -function copyComments(sourceNode, targetNode) { - var sourceFile = sourceNode.getSourceFile(); - var text = sourceFile.text; - if (hasLeadingLineBreak(sourceNode, text)) { - copyLeadingComments(sourceNode, targetNode, sourceFile); - } - else { - copyTrailingAsLeadingComments(sourceNode, targetNode, sourceFile); - } - copyTrailingComments(sourceNode, targetNode, sourceFile); -} -function hasLeadingLineBreak(node, text) { - var start2 = node.getFullStart(); - var end = node.getStart(); - for (var i = start2; i < end; i++) { - if (text.charCodeAt(i) === 10 /* lineFeed */) - return true; - } - return false; -} -function addEmitFlagsRecursively(node, flag, getChild) { - addEmitFlags(node, flag); - var child = getChild(node); - if (child) - addEmitFlagsRecursively(child, flag, getChild); -} -function getFirstChild(node) { - return node.forEachChild(function (child) { return child; }); -} -function getUniqueName(baseName, sourceFile) { - var nameText = baseName; - for (var i = 1; !isFileLevelUniqueName(sourceFile, nameText); i++) { - nameText = "".concat(baseName, "_").concat(i); - } - return nameText; -} -function getRenameLocation(edits, renameFilename, name, preferLastLocation) { - var e_646, _t, e_647, _u; - var delta = 0; - var lastPos = -1; - try { - for (var edits_1 = __values(edits), edits_1_1 = edits_1.next(); !edits_1_1.done; edits_1_1 = edits_1.next()) { - var _v = edits_1_1.value, fileName = _v.fileName, textChanges2 = _v.textChanges; - Debug.assert(fileName === renameFilename); - try { - for (var textChanges2_1 = (e_647 = void 0, __values(textChanges2)), textChanges2_1_1 = textChanges2_1.next(); !textChanges2_1_1.done; textChanges2_1_1 = textChanges2_1.next()) { - var change = textChanges2_1_1.value; - var span = change.span, newText = change.newText; - var index = indexInTextChange(newText, escapeString(name)); - if (index !== -1) { - lastPos = span.start + delta + index; - if (!preferLastLocation) { - return lastPos; - } - } - delta += newText.length - span.length; - } - } - catch (e_647_1) { e_647 = { error: e_647_1 }; } - finally { - try { - if (textChanges2_1_1 && !textChanges2_1_1.done && (_u = textChanges2_1.return)) _u.call(textChanges2_1); - } - finally { if (e_647) throw e_647.error; } - } - } - } - catch (e_646_1) { e_646 = { error: e_646_1 }; } - finally { - try { - if (edits_1_1 && !edits_1_1.done && (_t = edits_1.return)) _t.call(edits_1); - } - finally { if (e_646) throw e_646.error; } - } - Debug.assert(preferLastLocation); - Debug.assert(lastPos >= 0); - return lastPos; -} -function copyLeadingComments(sourceNode, targetNode, sourceFile, commentKind, hasTrailingNewLine) { - forEachLeadingCommentRange(sourceFile.text, sourceNode.pos, getAddCommentsFunction(targetNode, sourceFile, commentKind, hasTrailingNewLine, addSyntheticLeadingComment)); -} -function copyTrailingComments(sourceNode, targetNode, sourceFile, commentKind, hasTrailingNewLine) { - forEachTrailingCommentRange(sourceFile.text, sourceNode.end, getAddCommentsFunction(targetNode, sourceFile, commentKind, hasTrailingNewLine, addSyntheticTrailingComment)); -} -function copyTrailingAsLeadingComments(sourceNode, targetNode, sourceFile, commentKind, hasTrailingNewLine) { - forEachTrailingCommentRange(sourceFile.text, sourceNode.pos, getAddCommentsFunction(targetNode, sourceFile, commentKind, hasTrailingNewLine, addSyntheticLeadingComment)); -} -function getAddCommentsFunction(targetNode, sourceFile, commentKind, hasTrailingNewLine, cb) { - return function (pos, end, kind, htnl) { - if (kind === 3 /* MultiLineCommentTrivia */) { - pos += 2; - end -= 2; - } - else { - pos += 2; - } - cb(targetNode, commentKind || kind, sourceFile.text.slice(pos, end), hasTrailingNewLine !== void 0 ? hasTrailingNewLine : htnl); - }; -} -function indexInTextChange(change, name) { - if (startsWith(change, name)) - return 0; - var idx = change.indexOf(" " + name); - if (idx === -1) - idx = change.indexOf("." + name); - if (idx === -1) - idx = change.indexOf('"' + name); - return idx === -1 ? -1 : idx + 1; -} -function needsParentheses(expression) { - return isBinaryExpression(expression) && expression.operatorToken.kind === 28 /* CommaToken */ || isObjectLiteralExpression(expression) || isAsExpression(expression) && isObjectLiteralExpression(expression.expression); -} -function getContextualTypeFromParent(node, checker, contextFlags) { - var parent2 = walkUpParenthesizedExpressions(node.parent); - switch (parent2.kind) { - case 214 /* NewExpression */: - return checker.getContextualType(parent2, contextFlags); - case 226 /* BinaryExpression */: { - var left = parent2.left, operatorToken = parent2.operatorToken, right = parent2.right; - return isEqualityOperatorKind(operatorToken.kind) ? checker.getTypeAtLocation(node === right ? left : right) : checker.getContextualType(node, contextFlags); - } - case 296 /* CaseClause */: - return getSwitchedType(parent2, checker); - default: - return checker.getContextualType(node, contextFlags); - } -} -function quote(sourceFile, preferences, text) { - var quotePreference = getQuotePreference(sourceFile, preferences); - var quoted = JSON.stringify(text); - return quotePreference === 0 /* Single */ ? "'".concat(stripQuotes(quoted).replace(/'/g, "\\'").replace(/\\"/g, '"'), "'") : quoted; -} -function isEqualityOperatorKind(kind) { - switch (kind) { - case 37 /* EqualsEqualsEqualsToken */: - case 35 /* EqualsEqualsToken */: - case 38 /* ExclamationEqualsEqualsToken */: - case 36 /* ExclamationEqualsToken */: - return true; - default: - return false; - } -} -function isStringLiteralOrTemplate(node) { - switch (node.kind) { - case 11 /* StringLiteral */: - case 15 /* NoSubstitutionTemplateLiteral */: - case 228 /* TemplateExpression */: - case 215 /* TaggedTemplateExpression */: - return true; - default: - return false; - } -} -function hasIndexSignature(type) { - return !!type.getStringIndexType() || !!type.getNumberIndexType(); -} -function getSwitchedType(caseClause, checker) { - return checker.getTypeAtLocation(caseClause.parent.parent.expression); -} -var ANONYMOUS = "anonymous function"; -function getTypeNodeIfAccessible(type, enclosingScope, program, host) { - var checker = program.getTypeChecker(); - var typeIsAccessible = true; - var notAccessible = function () { return typeIsAccessible = false; }; - var res = checker.typeToTypeNode(type, enclosingScope, 1 /* NoTruncation */, { - trackSymbol: function (symbol, declaration, meaning) { - typeIsAccessible = typeIsAccessible && checker.isSymbolAccessible(symbol, declaration, meaning, - /*shouldComputeAliasToMarkVisible*/ - false).accessibility === 0 /* Accessible */; - return !typeIsAccessible; - }, - reportInaccessibleThisError: notAccessible, - reportPrivateInBaseOfClassExpression: notAccessible, - reportInaccessibleUniqueSymbolError: notAccessible, - moduleResolverHost: getModuleSpecifierResolverHost(program, host) - }); - return typeIsAccessible ? res : void 0; -} -function syntaxRequiresTrailingCommaOrSemicolonOrASI(kind) { - return kind === 179 /* CallSignature */ || kind === 180 /* ConstructSignature */ || kind === 181 /* IndexSignature */ || kind === 171 /* PropertySignature */ || kind === 173 /* MethodSignature */; -} -function syntaxRequiresTrailingFunctionBlockOrSemicolonOrASI(kind) { - return kind === 262 /* FunctionDeclaration */ || kind === 176 /* Constructor */ || kind === 174 /* MethodDeclaration */ || kind === 177 /* GetAccessor */ || kind === 178 /* SetAccessor */; -} -function syntaxRequiresTrailingModuleBlockOrSemicolonOrASI(kind) { - return kind === 267 /* ModuleDeclaration */; -} -function syntaxRequiresTrailingSemicolonOrASI(kind) { - return kind === 243 /* VariableStatement */ || kind === 244 /* ExpressionStatement */ || kind === 246 /* DoStatement */ || kind === 251 /* ContinueStatement */ || kind === 252 /* BreakStatement */ || kind === 253 /* ReturnStatement */ || kind === 257 /* ThrowStatement */ || kind === 259 /* DebuggerStatement */ || kind === 172 /* PropertyDeclaration */ || kind === 265 /* TypeAliasDeclaration */ || kind === 272 /* ImportDeclaration */ || kind === 271 /* ImportEqualsDeclaration */ || kind === 278 /* ExportDeclaration */ || kind === 270 /* NamespaceExportDeclaration */ || kind === 277 /* ExportAssignment */; -} -var syntaxMayBeASICandidate = or(syntaxRequiresTrailingCommaOrSemicolonOrASI, syntaxRequiresTrailingFunctionBlockOrSemicolonOrASI, syntaxRequiresTrailingModuleBlockOrSemicolonOrASI, syntaxRequiresTrailingSemicolonOrASI); -function nodeIsASICandidate(node, sourceFile) { - var lastToken = node.getLastToken(sourceFile); - if (lastToken && lastToken.kind === 27 /* SemicolonToken */) { - return false; - } - if (syntaxRequiresTrailingCommaOrSemicolonOrASI(node.kind)) { - if (lastToken && lastToken.kind === 28 /* CommaToken */) { - return false; - } - } - else if (syntaxRequiresTrailingModuleBlockOrSemicolonOrASI(node.kind)) { - var lastChild = last(node.getChildren(sourceFile)); - if (lastChild && isModuleBlock(lastChild)) { - return false; - } - } - else if (syntaxRequiresTrailingFunctionBlockOrSemicolonOrASI(node.kind)) { - var lastChild = last(node.getChildren(sourceFile)); - if (lastChild && isFunctionBlock(lastChild)) { - return false; - } - } - else if (!syntaxRequiresTrailingSemicolonOrASI(node.kind)) { - return false; - } - if (node.kind === 246 /* DoStatement */) { - return true; - } - var topNode = findAncestor(node, function (ancestor) { return !ancestor.parent; }); - var nextToken = findNextToken(node, topNode, sourceFile); - if (!nextToken || nextToken.kind === 20 /* CloseBraceToken */) { - return true; - } - var startLine = sourceFile.getLineAndCharacterOfPosition(node.getEnd()).line; - var endLine = sourceFile.getLineAndCharacterOfPosition(nextToken.getStart(sourceFile)).line; - return startLine !== endLine; -} -function positionIsASICandidate(pos, context, sourceFile) { - var contextAncestor = findAncestor(context, function (ancestor) { - if (ancestor.end !== pos) { - return "quit"; - } - return syntaxMayBeASICandidate(ancestor.kind); - }); - return !!contextAncestor && nodeIsASICandidate(contextAncestor, sourceFile); -} -function probablyUsesSemicolons(sourceFile) { - var withSemicolon = 0; - var withoutSemicolon = 0; - var nStatementsToObserve = 5; - forEachChild(sourceFile, function visit(node) { - if (syntaxRequiresTrailingSemicolonOrASI(node.kind)) { - var lastToken = node.getLastToken(sourceFile); - if ((lastToken == null ? void 0 : lastToken.kind) === 27 /* SemicolonToken */) { - withSemicolon++; - } - else { - withoutSemicolon++; - } - } - else if (syntaxRequiresTrailingCommaOrSemicolonOrASI(node.kind)) { - var lastToken = node.getLastToken(sourceFile); - if ((lastToken == null ? void 0 : lastToken.kind) === 27 /* SemicolonToken */) { - withSemicolon++; - } - else if (lastToken && lastToken.kind !== 28 /* CommaToken */) { - var lastTokenLine = getLineAndCharacterOfPosition(sourceFile, lastToken.getStart(sourceFile)).line; - var nextTokenLine = getLineAndCharacterOfPosition(sourceFile, getSpanOfTokenAtPosition(sourceFile, lastToken.end).start).line; - if (lastTokenLine !== nextTokenLine) { - withoutSemicolon++; - } - } - } - if (withSemicolon + withoutSemicolon >= nStatementsToObserve) { - return true; - } - return forEachChild(node, visit); - }); - if (withSemicolon === 0 && withoutSemicolon <= 1) { - return true; - } - return withSemicolon / withoutSemicolon > 1 / nStatementsToObserve; -} -function tryGetDirectories(host, directoryName) { - return tryIOAndConsumeErrors(host, host.getDirectories, directoryName) || []; -} -function tryReadDirectory(host, path, extensions, exclude, include) { - return tryIOAndConsumeErrors(host, host.readDirectory, path, extensions, exclude, include) || emptyArray; -} -function tryFileExists(host, path) { - return tryIOAndConsumeErrors(host, host.fileExists, path); -} -function tryDirectoryExists(host, path) { - return tryAndIgnoreErrors(function () { return directoryProbablyExists(path, host); }) || false; -} -function tryAndIgnoreErrors(cb) { - try { - return cb(); - } - catch (_t) { - return void 0; - } -} -function tryIOAndConsumeErrors(host, toApply) { - var args = []; - for (var _t = 2; _t < arguments.length; _t++) { - args[_t - 2] = arguments[_t]; - } - return tryAndIgnoreErrors(function () { return toApply && toApply.apply(host, args); }); -} -function findPackageJsons(startDirectory, host, stopDirectory) { - var paths = []; - forEachAncestorDirectory(startDirectory, function (ancestor) { - if (ancestor === stopDirectory) { - return true; - } - var currentConfigPath = combinePaths(ancestor, "package.json"); - if (tryFileExists(host, currentConfigPath)) { - paths.push(currentConfigPath); - } - }); - return paths; -} -function findPackageJson(directory, host) { - var packageJson; - forEachAncestorDirectory(directory, function (ancestor) { - if (ancestor === "node_modules") - return true; - packageJson = findConfigFile(ancestor, function (f) { return tryFileExists(host, f); }, "package.json"); - if (packageJson) { - return true; - } - }); - return packageJson; -} -function getPackageJsonsVisibleToFile(fileName, host) { - if (!host.fileExists) { - return []; - } - var packageJsons = []; - forEachAncestorDirectory(getDirectoryPath(fileName), function (ancestor) { - var packageJsonFileName = combinePaths(ancestor, "package.json"); - if (host.fileExists(packageJsonFileName)) { - var info = createPackageJsonInfo(packageJsonFileName, host); - if (info) { - packageJsons.push(info); - } - } - }); - return packageJsons; -} -function createPackageJsonInfo(fileName, host) { - var e_648, _t; - if (!host.readFile) { - return void 0; - } - var dependencyKeys = ["dependencies", "devDependencies", "optionalDependencies", "peerDependencies"]; - var stringContent = host.readFile(fileName) || ""; - var content = tryParseJson(stringContent); - var info = {}; - if (content) { - try { - for (var dependencyKeys_1 = __values(dependencyKeys), dependencyKeys_1_1 = dependencyKeys_1.next(); !dependencyKeys_1_1.done; dependencyKeys_1_1 = dependencyKeys_1.next()) { - var key = dependencyKeys_1_1.value; - var dependencies = content[key]; - if (!dependencies) { - continue; - } - var dependencyMap = /* @__PURE__ */ new Map(); - for (var packageName in dependencies) { - dependencyMap.set(packageName, dependencies[packageName]); - } - info[key] = dependencyMap; - } - } - catch (e_648_1) { e_648 = { error: e_648_1 }; } - finally { - try { - if (dependencyKeys_1_1 && !dependencyKeys_1_1.done && (_t = dependencyKeys_1.return)) _t.call(dependencyKeys_1); - } - finally { if (e_648) throw e_648.error; } - } - } - var dependencyGroups = [ - [1 /* Dependencies */, info.dependencies], - [2 /* DevDependencies */, info.devDependencies], - [8 /* OptionalDependencies */, info.optionalDependencies], - [4 /* PeerDependencies */, info.peerDependencies] - ]; - return __assign(__assign({}, info), { parseable: !!content, fileName: fileName, get: get, has: function (dependencyName, inGroups) { - return !!get(dependencyName, inGroups); - } }); - function get(dependencyName, inGroups /* All */) { - var e_649, _t; - if (inGroups === void 0) { inGroups = 15; } - try { - for (var dependencyGroups_2 = __values(dependencyGroups), dependencyGroups_2_1 = dependencyGroups_2.next(); !dependencyGroups_2_1.done; dependencyGroups_2_1 = dependencyGroups_2.next()) { - var _u = __read(dependencyGroups_2_1.value, 2), group2 = _u[0], deps = _u[1]; - if (deps && inGroups & group2) { - var dep = deps.get(dependencyName); - if (dep !== void 0) { - return dep; - } - } - } - } - catch (e_649_1) { e_649 = { error: e_649_1 }; } - finally { - try { - if (dependencyGroups_2_1 && !dependencyGroups_2_1.done && (_t = dependencyGroups_2.return)) _t.call(dependencyGroups_2); - } - finally { if (e_649) throw e_649.error; } - } - } -} -function createPackageJsonImportFilter(fromFile, preferences, host) { - var packageJsons = (host.getPackageJsonsVisibleToFile && host.getPackageJsonsVisibleToFile(fromFile.fileName) || getPackageJsonsVisibleToFile(fromFile.fileName, host)).filter(function (p) { return p.parseable; }); - var usesNodeCoreModules; - var ambientModuleCache; - var sourceFileCache; - return { - allowsImportingAmbientModule: allowsImportingAmbientModule, - allowsImportingSourceFile: allowsImportingSourceFile, - allowsImportingSpecifier: allowsImportingSpecifier - }; - function moduleSpecifierIsCoveredByPackageJson(specifier) { - var e_650, _t; - var packageName = getNodeModuleRootSpecifier(specifier); - try { - for (var packageJsons_1 = __values(packageJsons), packageJsons_1_1 = packageJsons_1.next(); !packageJsons_1_1.done; packageJsons_1_1 = packageJsons_1.next()) { - var packageJson = packageJsons_1_1.value; - if (packageJson.has(packageName) || packageJson.has(getTypesPackageName(packageName))) { - return true; - } - } - } - catch (e_650_1) { e_650 = { error: e_650_1 }; } - finally { - try { - if (packageJsons_1_1 && !packageJsons_1_1.done && (_t = packageJsons_1.return)) _t.call(packageJsons_1); - } - finally { if (e_650) throw e_650.error; } - } - return false; - } - function allowsImportingAmbientModule(moduleSymbol, moduleSpecifierResolutionHost) { - if (!packageJsons.length || !moduleSymbol.valueDeclaration) { - return true; - } - if (!ambientModuleCache) { - ambientModuleCache = /* @__PURE__ */ new Map(); - } - else { - var cached = ambientModuleCache.get(moduleSymbol); - if (cached !== void 0) { - return cached; - } - } - var declaredModuleSpecifier = stripQuotes(moduleSymbol.getName()); - if (isAllowedCoreNodeModulesImport(declaredModuleSpecifier)) { - ambientModuleCache.set(moduleSymbol, true); - return true; - } - var declaringSourceFile = moduleSymbol.valueDeclaration.getSourceFile(); - var declaringNodeModuleName = getNodeModulesPackageNameFromFileName(declaringSourceFile.fileName, moduleSpecifierResolutionHost); - if (typeof declaringNodeModuleName === "undefined") { - ambientModuleCache.set(moduleSymbol, true); - return true; - } - var result = moduleSpecifierIsCoveredByPackageJson(declaringNodeModuleName) || moduleSpecifierIsCoveredByPackageJson(declaredModuleSpecifier); - ambientModuleCache.set(moduleSymbol, result); - return result; - } - function allowsImportingSourceFile(sourceFile, moduleSpecifierResolutionHost) { - if (!packageJsons.length) { - return true; - } - if (!sourceFileCache) { - sourceFileCache = /* @__PURE__ */ new Map(); - } - else { - var cached = sourceFileCache.get(sourceFile); - if (cached !== void 0) { - return cached; - } - } - var moduleSpecifier = getNodeModulesPackageNameFromFileName(sourceFile.fileName, moduleSpecifierResolutionHost); - if (!moduleSpecifier) { - sourceFileCache.set(sourceFile, true); - return true; - } - var result = moduleSpecifierIsCoveredByPackageJson(moduleSpecifier); - sourceFileCache.set(sourceFile, result); - return result; - } - function allowsImportingSpecifier(moduleSpecifier) { - if (!packageJsons.length || isAllowedCoreNodeModulesImport(moduleSpecifier)) { - return true; - } - if (pathIsRelative(moduleSpecifier) || isRootedDiskPath(moduleSpecifier)) { - return true; - } - return moduleSpecifierIsCoveredByPackageJson(moduleSpecifier); - } - function isAllowedCoreNodeModulesImport(moduleSpecifier) { - if (isSourceFileJS(fromFile) && ts_JsTyping_exports.nodeCoreModules.has(moduleSpecifier)) { - if (usesNodeCoreModules === void 0) { - usesNodeCoreModules = consumesNodeCoreModules(fromFile); - } - if (usesNodeCoreModules) { - return true; - } - } - return false; - } - function getNodeModulesPackageNameFromFileName(importedFileName, moduleSpecifierResolutionHost) { - if (!stringContains(importedFileName, "node_modules")) { - return void 0; - } - var specifier = ts_moduleSpecifiers_exports.getNodeModulesPackageName(host.getCompilationSettings(), fromFile, importedFileName, moduleSpecifierResolutionHost, preferences); - if (!specifier) { - return void 0; - } - if (!pathIsRelative(specifier) && !isRootedDiskPath(specifier)) { - return getNodeModuleRootSpecifier(specifier); - } - } - function getNodeModuleRootSpecifier(fullSpecifier) { - var components = getPathComponents(getPackageNameFromTypesPackageName(fullSpecifier)).slice(1); - if (startsWith(components[0], "@")) { - return "".concat(components[0], "/").concat(components[1]); - } - return components[0]; - } -} -function tryParseJson(text) { - try { - return JSON.parse(text); - } - catch (_t) { - return void 0; - } -} -function consumesNodeCoreModules(sourceFile) { - return some(sourceFile.imports, function (_t) { - var text = _t.text; - return ts_JsTyping_exports.nodeCoreModules.has(text); - }); -} -function isInsideNodeModules(fileOrDirectory) { - return contains(getPathComponents(fileOrDirectory), "node_modules"); -} -function isDiagnosticWithLocation(diagnostic) { - return diagnostic.file !== void 0 && diagnostic.start !== void 0 && diagnostic.length !== void 0; -} -function findDiagnosticForNode(node, sortedFileDiagnostics) { - var span = createTextSpanFromNode(node); - var index = binarySearchKey(sortedFileDiagnostics, span, identity, compareTextSpans); - if (index >= 0) { - var diagnostic = sortedFileDiagnostics[index]; - Debug.assertEqual(diagnostic.file, node.getSourceFile(), "Diagnostics proided to 'findDiagnosticForNode' must be from a single SourceFile"); - return cast(diagnostic, isDiagnosticWithLocation); - } -} -function getDiagnosticsWithinSpan(span, sortedFileDiagnostics) { - var _a; - var index = binarySearchKey(sortedFileDiagnostics, span.start, function (diag2) { return diag2.start; }, compareValues); - if (index < 0) { - index = ~index; - } - while (((_a = sortedFileDiagnostics[index - 1]) == null ? void 0 : _a.start) === span.start) { - index--; - } - var result = []; - var end = textSpanEnd(span); - while (true) { - var diagnostic = tryCast(sortedFileDiagnostics[index], isDiagnosticWithLocation); - if (!diagnostic || diagnostic.start > end) { - break; - } - if (textSpanContainsTextSpan(span, diagnostic)) { - result.push(diagnostic); - } - index++; - } - return result; -} -function getRefactorContextSpan(_t) { - var startPosition = _t.startPosition, endPosition = _t.endPosition; - return createTextSpanFromBounds(startPosition, endPosition === void 0 ? startPosition : endPosition); -} -function getFixableErrorSpanExpression(sourceFile, span) { - var token = getTokenAtPosition(sourceFile, span.start); - var expression = findAncestor(token, function (node) { - if (node.getStart(sourceFile) < span.start || node.getEnd() > textSpanEnd(span)) { - return "quit"; - } - return isExpression(node) && textSpansEqual(span, createTextSpanFromNode(node, sourceFile)); - }); - return expression; -} -function mapOneOrMany(valueOrArray, f, resultSelector) { - if (resultSelector === void 0) { resultSelector = identity; } - return valueOrArray ? isArray(valueOrArray) ? resultSelector(map(valueOrArray, f)) : f(valueOrArray, 0) : void 0; -} -function firstOrOnly(valueOrArray) { - return isArray(valueOrArray) ? first(valueOrArray) : valueOrArray; -} -function getNamesForExportedSymbol(symbol, scriptTarget) { - if (needsNameFromDeclaration(symbol)) { - var fromDeclaration = getDefaultLikeExportNameFromDeclaration(symbol); - if (fromDeclaration) - return fromDeclaration; - var fileNameCase = ts_codefix_exports.moduleSymbolToValidIdentifier(getSymbolParentOrFail(symbol), scriptTarget, - /*forceCapitalize*/ - false); - var capitalized = ts_codefix_exports.moduleSymbolToValidIdentifier(getSymbolParentOrFail(symbol), scriptTarget, - /*forceCapitalize*/ - true); - if (fileNameCase === capitalized) - return fileNameCase; - return [fileNameCase, capitalized]; - } - return symbol.name; -} -function getNameForExportedSymbol(symbol, scriptTarget, preferCapitalized) { - if (needsNameFromDeclaration(symbol)) { - return getDefaultLikeExportNameFromDeclaration(symbol) || ts_codefix_exports.moduleSymbolToValidIdentifier(getSymbolParentOrFail(symbol), scriptTarget, !!preferCapitalized); - } - return symbol.name; -} -function needsNameFromDeclaration(symbol) { - return !(symbol.flags & 33554432 /* Transient */) && (symbol.escapedName === "export=" /* ExportEquals */ || symbol.escapedName === "default" /* Default */); -} -function getDefaultLikeExportNameFromDeclaration(symbol) { - return firstDefined(symbol.declarations, function (d) { - var _a, _b, _c; - if (isExportAssignment(d)) { - return (_a = tryCast(skipOuterExpressions(d.expression), isIdentifier)) == null ? void 0 : _a.text; - } - if (isExportSpecifier(d) && d.symbol.flags === 2097152 /* Alias */) { - return (_b = tryCast(d.propertyName, isIdentifier)) == null ? void 0 : _b.text; - } - return (_c = tryCast(getNameOfDeclaration(d), isIdentifier)) == null ? void 0 : _c.text; - }); -} -function getSymbolParentOrFail(symbol) { - var _a; - return Debug.checkDefined(symbol.parent, "Symbol parent was undefined. Flags: ".concat(Debug.formatSymbolFlags(symbol.flags), ". Declarations: ").concat((_a = symbol.declarations) == null ? void 0 : _a.map(function (d) { - var kind = Debug.formatSyntaxKind(d.kind); - var inJS = isInJSFile(d); - var expression = d.expression; - return (inJS ? "[JS]" : "") + kind + (expression ? " (expression: ".concat(Debug.formatSyntaxKind(expression.kind), ")") : ""); - }).join(", "), ".")); -} -function stringContainsAt(haystack, needle, startIndex) { - var needleLength = needle.length; - if (needleLength + startIndex > haystack.length) { - return false; - } - for (var i = 0; i < needleLength; i++) { - if (needle.charCodeAt(i) !== haystack.charCodeAt(i + startIndex)) - return false; - } - return true; -} -function startsWithUnderscore(name) { - return name.charCodeAt(0) === 95 /* _ */; -} -function isGlobalDeclaration(declaration) { - return !isNonGlobalDeclaration(declaration); -} -function isNonGlobalDeclaration(declaration) { - var sourceFile = declaration.getSourceFile(); - if (!sourceFile.externalModuleIndicator && !sourceFile.commonJsModuleIndicator) { - return false; - } - return isInJSFile(declaration) || !findAncestor(declaration, function (d) { return isModuleDeclaration(d) && isGlobalScopeAugmentation(d); }); -} -function isDeprecatedDeclaration(decl) { - return !!(getCombinedNodeFlagsAlwaysIncludeJSDoc(decl) & 8192 /* Deprecated */); -} -function shouldUseUriStyleNodeCoreModules(file, program) { - var decisionFromFile = firstDefined(file.imports, function (node) { - if (ts_JsTyping_exports.nodeCoreModules.has(node.text)) { - return startsWith(node.text, "node:"); - } - }); - return decisionFromFile !== null && decisionFromFile !== void 0 ? decisionFromFile : program.usesUriStyleNodeCoreModules; -} -function getNewLineKind(newLineCharacter) { - return newLineCharacter === "\n" ? 1 /* LineFeed */ : 0 /* CarriageReturnLineFeed */; -} -function diagnosticToString(diag2) { - return isArray(diag2) ? formatStringFromArgs(getLocaleSpecificMessage(diag2[0]), diag2.slice(1)) : getLocaleSpecificMessage(diag2); -} -function getFormatCodeSettingsForWriting(_t, sourceFile) { - var options = _t.options; - var shouldAutoDetectSemicolonPreference = !options.semicolons || options.semicolons === "ignore" /* Ignore */; - var shouldRemoveSemicolons = options.semicolons === "remove" /* Remove */ || shouldAutoDetectSemicolonPreference && !probablyUsesSemicolons(sourceFile); - return __assign(__assign({}, options), { semicolons: shouldRemoveSemicolons ? "remove" /* Remove */ : "ignore" /* Ignore */ }); -} -function jsxModeNeedsExplicitImport(jsx) { - return jsx === 2 /* React */ || jsx === 3 /* ReactNative */; -} -function isSourceFileFromLibrary(program, node) { - return program.isSourceFileFromExternalLibrary(node) || program.isSourceFileDefaultLibrary(node); -} -function newCaseClauseTracker(checker, clauses) { - var e_651, _t; - var existingStrings = /* @__PURE__ */ new Set(); - var existingNumbers = /* @__PURE__ */ new Set(); - var existingBigInts = /* @__PURE__ */ new Set(); - try { - for (var clauses_3 = __values(clauses), clauses_3_1 = clauses_3.next(); !clauses_3_1.done; clauses_3_1 = clauses_3.next()) { - var clause = clauses_3_1.value; - if (!isDefaultClause(clause)) { - var expression = skipParentheses(clause.expression); - if (isLiteralExpression(expression)) { - switch (expression.kind) { - case 15 /* NoSubstitutionTemplateLiteral */: - case 11 /* StringLiteral */: - existingStrings.add(expression.text); - break; - case 9 /* NumericLiteral */: - existingNumbers.add(parseInt(expression.text)); - break; - case 10 /* BigIntLiteral */: - var parsedBigInt = parseBigInt(endsWith(expression.text, "n") ? expression.text.slice(0, -1) : expression.text); - if (parsedBigInt) { - existingBigInts.add(pseudoBigIntToString(parsedBigInt)); - } - break; - } - } - else { - var symbol = checker.getSymbolAtLocation(clause.expression); - if (symbol && symbol.valueDeclaration && isEnumMember(symbol.valueDeclaration)) { - var enumValue = checker.getConstantValue(symbol.valueDeclaration); - if (enumValue !== void 0) { - addValue(enumValue); - } - } - } - } - } - } - catch (e_651_1) { e_651 = { error: e_651_1 }; } - finally { - try { - if (clauses_3_1 && !clauses_3_1.done && (_t = clauses_3.return)) _t.call(clauses_3); - } - finally { if (e_651) throw e_651.error; } - } - return { - addValue: addValue, - hasValue: hasValue - }; - function addValue(value) { - switch (typeof value) { - case "string": - existingStrings.add(value); - break; - case "number": - existingNumbers.add(value); - } - } - function hasValue(value) { - switch (typeof value) { - case "string": - return existingStrings.has(value); - case "number": - return existingNumbers.has(value); - case "object": - return existingBigInts.has(pseudoBigIntToString(value)); - } - } -} -function fileShouldUseJavaScriptRequire(file, program, host, preferRequire) { - var _a; - var fileName = typeof file === "string" ? file : file.fileName; - if (!hasJSFileExtension(fileName)) { - return false; - } - var compilerOptions = program.getCompilerOptions(); - var moduleKind = getEmitModuleKind(compilerOptions); - var impliedNodeFormat = typeof file === "string" ? getImpliedNodeFormatForFile(toPath(file, host.getCurrentDirectory(), hostGetCanonicalFileName(host)), (_a = program.getPackageJsonInfoCache) == null ? void 0 : _a.call(program), host, compilerOptions) : file.impliedNodeFormat; - if (impliedNodeFormat === 99 /* ESNext */) { - return false; - } - if (impliedNodeFormat === 1 /* CommonJS */) { - return true; - } - if (compilerOptions.verbatimModuleSyntax && moduleKind === 1 /* CommonJS */) { - return true; - } - if (compilerOptions.verbatimModuleSyntax && emitModuleKindIsNonNodeESM(moduleKind)) { - return false; - } - if (typeof file === "object") { - if (file.commonJsModuleIndicator) { - return true; - } - if (file.externalModuleIndicator) { - return false; - } - } - return preferRequire; -} -// src/services/exportInfoMap.ts -var ImportKind = /* @__PURE__ */ (function (ImportKind2) { - ImportKind2[ImportKind2["Named"] = 0] = "Named"; - ImportKind2[ImportKind2["Default"] = 1] = "Default"; - ImportKind2[ImportKind2["Namespace"] = 2] = "Namespace"; - ImportKind2[ImportKind2["CommonJS"] = 3] = "CommonJS"; - return ImportKind2; -})(ImportKind || {}); -var ExportKind = /* @__PURE__ */ (function (ExportKind3) { - ExportKind3[ExportKind3["Named"] = 0] = "Named"; - ExportKind3[ExportKind3["Default"] = 1] = "Default"; - ExportKind3[ExportKind3["ExportEquals"] = 2] = "ExportEquals"; - ExportKind3[ExportKind3["UMD"] = 3] = "UMD"; - return ExportKind3; -})(ExportKind || {}); -function createCacheableExportInfoMap(host) { - var exportInfoId = 1; - var exportInfo = createMultiMap(); - var symbols = /* @__PURE__ */ new Map(); - var packages = /* @__PURE__ */ new Map(); - var usableByFileName; - var cache = { - isUsableByFile: function (importingFile) { return importingFile === usableByFileName; }, - isEmpty: function () { return !exportInfo.size; }, - clear: function () { - exportInfo.clear(); - symbols.clear(); - usableByFileName = void 0; - }, - add: function (importingFile, symbol, symbolTableKey, moduleSymbol, moduleFile, exportKind, isFromPackageJson, checker) { - if (importingFile !== usableByFileName) { - cache.clear(); - usableByFileName = importingFile; - } - var packageName; - if (moduleFile) { - var nodeModulesPathParts = getNodeModulePathParts(moduleFile.fileName); - if (nodeModulesPathParts) { - var topLevelNodeModulesIndex = nodeModulesPathParts.topLevelNodeModulesIndex, topLevelPackageNameIndex = nodeModulesPathParts.topLevelPackageNameIndex, packageRootIndex = nodeModulesPathParts.packageRootIndex; - packageName = unmangleScopedPackageName(getPackageNameFromTypesPackageName(moduleFile.fileName.substring(topLevelPackageNameIndex + 1, packageRootIndex))); - if (startsWith(importingFile, moduleFile.path.substring(0, topLevelNodeModulesIndex))) { - var prevDeepestNodeModulesPath = packages.get(packageName); - var nodeModulesPath = moduleFile.fileName.substring(0, topLevelPackageNameIndex + 1); - if (prevDeepestNodeModulesPath) { - var prevDeepestNodeModulesIndex = prevDeepestNodeModulesPath.indexOf(nodeModulesPathPart); - if (topLevelNodeModulesIndex > prevDeepestNodeModulesIndex) { - packages.set(packageName, nodeModulesPath); - } - } - else { - packages.set(packageName, nodeModulesPath); - } - } - } - } - var isDefault = exportKind === 1 /* Default */; - var namedSymbol = isDefault && getLocalSymbolForExportDefault(symbol) || symbol; - var names = exportKind === 0 /* Named */ || isExternalModuleSymbol(namedSymbol) ? unescapeLeadingUnderscores(symbolTableKey) : getNamesForExportedSymbol(namedSymbol, - /*scriptTarget*/ - void 0); - var symbolName2 = typeof names === "string" ? names : names[0]; - var capitalizedSymbolName = typeof names === "string" ? void 0 : names[1]; - var moduleName = stripQuotes(moduleSymbol.name); - var id = exportInfoId++; - var target = skipAlias(symbol, checker); - var storedSymbol = symbol.flags & 33554432 /* Transient */ ? void 0 : symbol; - var storedModuleSymbol = moduleSymbol.flags & 33554432 /* Transient */ ? void 0 : moduleSymbol; - if (!storedSymbol || !storedModuleSymbol) - symbols.set(id, [symbol, moduleSymbol]); - exportInfo.add(key(symbolName2, symbol, isExternalModuleNameRelative(moduleName) ? void 0 : moduleName, checker), { - id: id, - symbolTableKey: symbolTableKey, - symbolName: symbolName2, - capitalizedSymbolName: capitalizedSymbolName, - moduleName: moduleName, - moduleFile: moduleFile, - moduleFileName: moduleFile == null ? void 0 : moduleFile.fileName, - packageName: packageName, - exportKind: exportKind, - targetFlags: target.flags, - isFromPackageJson: isFromPackageJson, - symbol: storedSymbol, - moduleSymbol: storedModuleSymbol - }); - }, - get: function (importingFile, key2) { - if (importingFile !== usableByFileName) - return; - var result = exportInfo.get(key2); - return result == null ? void 0 : result.map(rehydrateCachedInfo); - }, - search: function (importingFile, preferCapitalized, matches, action) { - if (importingFile !== usableByFileName) - return; - return forEachEntry(exportInfo, function (info, key2) { - var _t = parseKey(key2), symbolName2 = _t.symbolName, ambientModuleName = _t.ambientModuleName; - var name = preferCapitalized && info[0].capitalizedSymbolName || symbolName2; - if (matches(name, info[0].targetFlags)) { - var rehydrated = info.map(rehydrateCachedInfo); - var filtered = rehydrated.filter(function (r, i) { return isNotShadowedByDeeperNodeModulesPackage(r, info[i].packageName); }); - if (filtered.length) { - var res = action(filtered, name, !!ambientModuleName, key2); - if (res !== void 0) - return res; - } - } - }); - }, - releaseSymbols: function () { - symbols.clear(); - }, - onFileChanged: function (oldSourceFile, newSourceFile, typeAcquisitionEnabled) { - if (fileIsGlobalOnly(oldSourceFile) && fileIsGlobalOnly(newSourceFile)) { - return false; - } - if (usableByFileName && usableByFileName !== newSourceFile.path || // If ATA is enabled, auto-imports uses existing imports to guess whether you want auto-imports from node. - // Adding or removing imports from node could change the outcome of that guess, so could change the suggestions list. - typeAcquisitionEnabled && consumesNodeCoreModules(oldSourceFile) !== consumesNodeCoreModules(newSourceFile) || // Module agumentation and ambient module changes can add or remove exports available to be auto-imported. - // Changes elsewhere in the file can change the *type* of an export in a module augmentation, - // but type info is gathered in getCompletionEntryDetails, which doesn't use the cache. - !arrayIsEqualTo(oldSourceFile.moduleAugmentations, newSourceFile.moduleAugmentations) || !ambientModuleDeclarationsAreEqual(oldSourceFile, newSourceFile)) { - cache.clear(); - return true; - } - usableByFileName = newSourceFile.path; - return false; - } - }; - if (Debug.isDebugging) { - Object.defineProperty(cache, "__cache", { get: function () { return exportInfo; } }); - } - return cache; - function rehydrateCachedInfo(info) { - if (info.symbol && info.moduleSymbol) - return info; - var id = info.id, exportKind = info.exportKind, targetFlags = info.targetFlags, isFromPackageJson = info.isFromPackageJson, moduleFileName = info.moduleFileName; - var _t = __read(symbols.get(id) || emptyArray, 2), cachedSymbol = _t[0], cachedModuleSymbol = _t[1]; - if (cachedSymbol && cachedModuleSymbol) { - return { - symbol: cachedSymbol, - moduleSymbol: cachedModuleSymbol, - moduleFileName: moduleFileName, - exportKind: exportKind, - targetFlags: targetFlags, - isFromPackageJson: isFromPackageJson - }; - } - var checker = (isFromPackageJson ? host.getPackageJsonAutoImportProvider() : host.getCurrentProgram()).getTypeChecker(); - var moduleSymbol = info.moduleSymbol || cachedModuleSymbol || Debug.checkDefined(info.moduleFile ? checker.getMergedSymbol(info.moduleFile.symbol) : checker.tryFindAmbientModule(info.moduleName)); - var symbol = info.symbol || cachedSymbol || Debug.checkDefined(exportKind === 2 /* ExportEquals */ ? checker.resolveExternalModuleSymbol(moduleSymbol) : checker.tryGetMemberInModuleExportsAndProperties(unescapeLeadingUnderscores(info.symbolTableKey), moduleSymbol), "Could not find symbol '".concat(info.symbolName, "' by key '").concat(info.symbolTableKey, "' in module ").concat(moduleSymbol.name)); - symbols.set(id, [symbol, moduleSymbol]); - return { - symbol: symbol, - moduleSymbol: moduleSymbol, - moduleFileName: moduleFileName, - exportKind: exportKind, - targetFlags: targetFlags, - isFromPackageJson: isFromPackageJson - }; - } - function key(importedName, symbol, ambientModuleName, checker) { - var moduleKey = ambientModuleName || ""; - return "".concat(importedName, "|").concat(getSymbolId(skipAlias(symbol, checker)), "|").concat(moduleKey); - } - function parseKey(key2) { - var symbolName2 = key2.substring(0, key2.indexOf("|")); - var moduleKey = key2.substring(key2.lastIndexOf("|") + 1); - var ambientModuleName = moduleKey === "" ? void 0 : moduleKey; - return { symbolName: symbolName2, ambientModuleName: ambientModuleName }; - } - function fileIsGlobalOnly(file) { - return !file.commonJsModuleIndicator && !file.externalModuleIndicator && !file.moduleAugmentations && !file.ambientModuleNames; - } - function ambientModuleDeclarationsAreEqual(oldSourceFile, newSourceFile) { - var e_652, _t; - if (!arrayIsEqualTo(oldSourceFile.ambientModuleNames, newSourceFile.ambientModuleNames)) { - return false; - } - var oldFileStatementIndex = -1; - var newFileStatementIndex = -1; - var _loop_40 = function (ambientModuleName) { - var isMatchingModuleDeclaration = function (node) { return isNonGlobalAmbientModule(node) && node.name.text === ambientModuleName; }; - oldFileStatementIndex = findIndex(oldSourceFile.statements, isMatchingModuleDeclaration, oldFileStatementIndex + 1); - newFileStatementIndex = findIndex(newSourceFile.statements, isMatchingModuleDeclaration, newFileStatementIndex + 1); - if (oldSourceFile.statements[oldFileStatementIndex] !== newSourceFile.statements[newFileStatementIndex]) { - return { value: false }; - } - }; - try { - for (var _u = __values(newSourceFile.ambientModuleNames), _v = _u.next(); !_v.done; _v = _u.next()) { - var ambientModuleName = _v.value; - var state_15 = _loop_40(ambientModuleName); - if (typeof state_15 === "object") - return state_15.value; - } - } - catch (e_652_1) { e_652 = { error: e_652_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_652) throw e_652.error; } - } - return true; - } - function isNotShadowedByDeeperNodeModulesPackage(info, packageName) { - if (!packageName || !info.moduleFileName) - return true; - var typingsCacheLocation = host.getGlobalTypingsCacheLocation(); - if (typingsCacheLocation && startsWith(info.moduleFileName, typingsCacheLocation)) - return true; - var packageDeepestNodeModulesPath = packages.get(packageName); - return !packageDeepestNodeModulesPath || startsWith(info.moduleFileName, packageDeepestNodeModulesPath); - } -} -function isImportableFile(program, from, to, preferences, packageJsonFilter, moduleSpecifierResolutionHost, moduleSpecifierCache) { - var _a; - if (from === to) - return false; - var cachedResult = moduleSpecifierCache == null ? void 0 : moduleSpecifierCache.get(from.path, to.path, preferences, {}); - if ((cachedResult == null ? void 0 : cachedResult.isBlockedByPackageJsonDependencies) !== void 0) { - return !cachedResult.isBlockedByPackageJsonDependencies; - } - var getCanonicalFileName = hostGetCanonicalFileName(moduleSpecifierResolutionHost); - var globalTypingsCache = (_a = moduleSpecifierResolutionHost.getGlobalTypingsCacheLocation) == null ? void 0 : _a.call(moduleSpecifierResolutionHost); - var hasImportablePath = !!ts_moduleSpecifiers_exports.forEachFileNameOfModule(from.fileName, to.fileName, moduleSpecifierResolutionHost, - /*preferSymlinks*/ - false, function (toPath3) { - var toFile = program.getSourceFile(toPath3); - return (toFile === to || !toFile) && isImportablePath(from.fileName, toPath3, getCanonicalFileName, globalTypingsCache); - }); - if (packageJsonFilter) { - var isAutoImportable = hasImportablePath && packageJsonFilter.allowsImportingSourceFile(to, moduleSpecifierResolutionHost); - moduleSpecifierCache == null ? void 0 : moduleSpecifierCache.setBlockedByPackageJsonDependencies(from.path, to.path, preferences, {}, !isAutoImportable); - return isAutoImportable; - } - return hasImportablePath; -} -function isImportablePath(fromPath, toPath3, getCanonicalFileName, globalCachePath) { - var toNodeModules = forEachAncestorDirectory(toPath3, function (ancestor) { return getBaseFileName(ancestor) === "node_modules" ? ancestor : void 0; }); - var toNodeModulesParent = toNodeModules && getDirectoryPath(getCanonicalFileName(toNodeModules)); - return toNodeModulesParent === void 0 || startsWith(getCanonicalFileName(fromPath), toNodeModulesParent) || !!globalCachePath && startsWith(getCanonicalFileName(globalCachePath), toNodeModulesParent); -} -function forEachExternalModuleToImportFrom(program, host, preferences, useAutoImportProvider, cb) { - var _a, _b; - var useCaseSensitiveFileNames2 = hostUsesCaseSensitiveFileNames(host); - var excludePatterns = preferences.autoImportFileExcludePatterns && mapDefined(preferences.autoImportFileExcludePatterns, function (spec) { - var pattern = getPatternFromSpec(spec, "", "exclude"); - return pattern ? getRegexFromPattern(pattern, useCaseSensitiveFileNames2) : void 0; - }); - forEachExternalModule(program.getTypeChecker(), program.getSourceFiles(), excludePatterns, function (module2, file) { return cb(module2, file, program, - /*isFromPackageJson*/ - false); }); - var autoImportProvider = useAutoImportProvider && ((_a = host.getPackageJsonAutoImportProvider) == null ? void 0 : _a.call(host)); - if (autoImportProvider) { - var start2 = timestamp(); - var checker_1 = program.getTypeChecker(); - forEachExternalModule(autoImportProvider.getTypeChecker(), autoImportProvider.getSourceFiles(), excludePatterns, function (module2, file) { - if (file && !program.getSourceFile(file.fileName) || !file && !checker_1.resolveName(module2.name, - /*location*/ - void 0, 1536 /* Module */, - /*excludeGlobals*/ - false)) { - cb(module2, file, autoImportProvider, - /*isFromPackageJson*/ - true); - } - }); - (_b = host.log) == null ? void 0 : _b.call(host, "forEachExternalModuleToImportFrom autoImportProvider: ".concat(timestamp() - start2)); - } -} -function forEachExternalModule(checker, allSourceFiles, excludePatterns, cb) { - var e_653, _t, e_654, _u; - var _a; - var isExcluded = excludePatterns && (function (fileName) { return excludePatterns.some(function (p) { return p.test(fileName); }); }); - try { - for (var _v = __values(checker.getAmbientModules()), _w = _v.next(); !_w.done; _w = _v.next()) { - var ambient = _w.value; - if (!stringContains(ambient.name, "*") && !(excludePatterns && ((_a = ambient.declarations) == null ? void 0 : _a.every(function (d) { return isExcluded(d.getSourceFile().fileName); })))) { - cb(ambient, - /*sourceFile*/ - void 0); - } - } - } - catch (e_653_1) { e_653 = { error: e_653_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_653) throw e_653.error; } - } - try { - for (var allSourceFiles_1 = __values(allSourceFiles), allSourceFiles_1_1 = allSourceFiles_1.next(); !allSourceFiles_1_1.done; allSourceFiles_1_1 = allSourceFiles_1.next()) { - var sourceFile = allSourceFiles_1_1.value; - if (isExternalOrCommonJsModule(sourceFile) && !(isExcluded == null ? void 0 : isExcluded(sourceFile.fileName))) { - cb(checker.getMergedSymbol(sourceFile.symbol), sourceFile); - } - } - } - catch (e_654_1) { e_654 = { error: e_654_1 }; } - finally { - try { - if (allSourceFiles_1_1 && !allSourceFiles_1_1.done && (_u = allSourceFiles_1.return)) _u.call(allSourceFiles_1); - } - finally { if (e_654) throw e_654.error; } - } -} -function getExportInfoMap(importingFile, host, program, preferences, cancellationToken) { - var _a, _b, _c, _d, _e; - var start2 = timestamp(); - (_a = host.getPackageJsonAutoImportProvider) == null ? void 0 : _a.call(host); - var cache = ((_b = host.getCachedExportInfoMap) == null ? void 0 : _b.call(host)) || createCacheableExportInfoMap({ - getCurrentProgram: function () { return program; }, - getPackageJsonAutoImportProvider: function () { - var _a2; - return (_a2 = host.getPackageJsonAutoImportProvider) == null ? void 0 : _a2.call(host); - }, - getGlobalTypingsCacheLocation: function () { - var _a2; - return (_a2 = host.getGlobalTypingsCacheLocation) == null ? void 0 : _a2.call(host); - } - }); - if (cache.isUsableByFile(importingFile.path)) { - (_c = host.log) == null ? void 0 : _c.call(host, "getExportInfoMap: cache hit"); - return cache; - } - (_d = host.log) == null ? void 0 : _d.call(host, "getExportInfoMap: cache miss or empty; calculating new results"); - var compilerOptions = program.getCompilerOptions(); - var moduleCount = 0; - try { - forEachExternalModuleToImportFrom(program, host, preferences, - /*useAutoImportProvider*/ - true, function (moduleSymbol, moduleFile, program2, isFromPackageJson) { - if (++moduleCount % 100 === 0) - cancellationToken == null ? void 0 : cancellationToken.throwIfCancellationRequested(); - var seenExports = /* @__PURE__ */ new Map(); - var checker = program2.getTypeChecker(); - var defaultInfo = getDefaultLikeExportInfo(moduleSymbol, checker, compilerOptions); - if (defaultInfo && isImportableSymbol(defaultInfo.symbol, checker)) { - cache.add(importingFile.path, defaultInfo.symbol, defaultInfo.exportKind === 1 /* Default */ ? "default" /* Default */ : "export=" /* ExportEquals */, moduleSymbol, moduleFile, defaultInfo.exportKind, isFromPackageJson, checker); - } - checker.forEachExportAndPropertyOfModule(moduleSymbol, function (exported, key) { - if (exported !== (defaultInfo == null ? void 0 : defaultInfo.symbol) && isImportableSymbol(exported, checker) && addToSeen(seenExports, key)) { - cache.add(importingFile.path, exported, key, moduleSymbol, moduleFile, 0 /* Named */, isFromPackageJson, checker); - } - }); - }); - } - catch (err) { - cache.clear(); - throw err; - } - (_e = host.log) == null ? void 0 : _e.call(host, "getExportInfoMap: done in ".concat(timestamp() - start2, " ms")); - return cache; -} -function getDefaultLikeExportInfo(moduleSymbol, checker, compilerOptions) { - var exported = getDefaultLikeExportWorker(moduleSymbol, checker); - if (!exported) - return void 0; - var symbol = exported.symbol, exportKind = exported.exportKind; - var info = getDefaultExportInfoWorker(symbol, checker, compilerOptions); - return info && __assign({ symbol: symbol, exportKind: exportKind }, info); -} -function isImportableSymbol(symbol, checker) { - return !checker.isUndefinedSymbol(symbol) && !checker.isUnknownSymbol(symbol) && !isKnownSymbol(symbol) && !isPrivateIdentifierSymbol(symbol); -} -function getDefaultLikeExportWorker(moduleSymbol, checker) { - var exportEquals = checker.resolveExternalModuleSymbol(moduleSymbol); - if (exportEquals !== moduleSymbol) - return { symbol: exportEquals, exportKind: 2 /* ExportEquals */ }; - var defaultExport = checker.tryGetMemberInModuleExports("default" /* Default */, moduleSymbol); - if (defaultExport) - return { symbol: defaultExport, exportKind: 1 /* Default */ }; -} -function getDefaultExportInfoWorker(defaultExport, checker, compilerOptions) { - var localSymbol = getLocalSymbolForExportDefault(defaultExport); - if (localSymbol) - return { resolvedSymbol: localSymbol, name: localSymbol.name }; - var name = getNameForExportDefault(defaultExport); - if (name !== void 0) - return { resolvedSymbol: defaultExport, name: name }; - if (defaultExport.flags & 2097152 /* Alias */) { - var aliased = checker.getImmediateAliasedSymbol(defaultExport); - if (aliased && aliased.parent) { - return getDefaultExportInfoWorker(aliased, checker, compilerOptions); - } - } - if (defaultExport.escapedName !== "default" /* Default */ && defaultExport.escapedName !== "export=" /* ExportEquals */) { - return { resolvedSymbol: defaultExport, name: defaultExport.getName() }; - } - return { resolvedSymbol: defaultExport, name: getNameForExportedSymbol(defaultExport, compilerOptions.target) }; -} -function getNameForExportDefault(symbol) { - return symbol.declarations && firstDefined(symbol.declarations, function (declaration) { - var _a; - if (isExportAssignment(declaration)) { - return (_a = tryCast(skipOuterExpressions(declaration.expression), isIdentifier)) == null ? void 0 : _a.text; - } - else if (isExportSpecifier(declaration)) { - Debug.assert(declaration.name.text === "default" /* Default */, "Expected the specifier to be a default export"); - return declaration.propertyName && declaration.propertyName.text; - } - }); -} -// src/services/classifier.ts -function createClassifier() { - var scanner2 = createScanner(99 /* Latest */, - /*skipTrivia*/ - false); - function getClassificationsForLine(text, lexState, syntacticClassifierAbsent) { - return convertClassificationsToResult(getEncodedLexicalClassifications(text, lexState, syntacticClassifierAbsent), text); - } - function getEncodedLexicalClassifications(text, lexState, syntacticClassifierAbsent) { - var token = 0 /* Unknown */; - var lastNonTriviaToken = 0 /* Unknown */; - var templateStack = []; - var _t = getPrefixFromLexState(lexState), prefix = _t.prefix, pushTemplate = _t.pushTemplate; - text = prefix + text; - var offset = prefix.length; - if (pushTemplate) { - templateStack.push(16 /* TemplateHead */); - } - scanner2.setText(text); - var endOfLineState = 0 /* None */; - var spans = []; - var angleBracketStack = 0; - do { - token = scanner2.scan(); - if (!isTrivia(token)) { - handleToken(); - lastNonTriviaToken = token; - } - var end = scanner2.getTokenEnd(); - pushEncodedClassification(scanner2.getTokenStart(), end, offset, classFromKind(token), spans); - if (end >= text.length) { - var end2 = getNewEndOfLineState(scanner2, token, lastOrUndefined(templateStack)); - if (end2 !== void 0) { - endOfLineState = end2; - } - } - } while (token !== 1 /* EndOfFileToken */); - function handleToken() { - switch (token) { - case 44 /* SlashToken */: - case 69 /* SlashEqualsToken */: - if (!noRegexTable[lastNonTriviaToken] && scanner2.reScanSlashToken() === 14 /* RegularExpressionLiteral */) { - token = 14 /* RegularExpressionLiteral */; - } - break; - case 30 /* LessThanToken */: - if (lastNonTriviaToken === 80 /* Identifier */) { - angleBracketStack++; - } - break; - case 32 /* GreaterThanToken */: - if (angleBracketStack > 0) { - angleBracketStack--; - } - break; - case 133 /* AnyKeyword */: - case 154 /* StringKeyword */: - case 150 /* NumberKeyword */: - case 136 /* BooleanKeyword */: - case 155 /* SymbolKeyword */: - if (angleBracketStack > 0 && !syntacticClassifierAbsent) { - token = 80 /* Identifier */; - } - break; - case 16 /* TemplateHead */: - templateStack.push(token); - break; - case 19 /* OpenBraceToken */: - if (templateStack.length > 0) { - templateStack.push(token); - } - break; - case 20 /* CloseBraceToken */: - if (templateStack.length > 0) { - var lastTemplateStackToken = lastOrUndefined(templateStack); - if (lastTemplateStackToken === 16 /* TemplateHead */) { - token = scanner2.reScanTemplateToken( - /*isTaggedTemplate*/ - false); - if (token === 18 /* TemplateTail */) { - templateStack.pop(); - } - else { - Debug.assertEqual(token, 17 /* TemplateMiddle */, "Should have been a template middle."); - } - } - else { - Debug.assertEqual(lastTemplateStackToken, 19 /* OpenBraceToken */, "Should have been an open brace"); - templateStack.pop(); - } - } - break; - default: - if (!isKeyword(token)) { - break; - } - if (lastNonTriviaToken === 25 /* DotToken */) { - token = 80 /* Identifier */; - } - else if (isKeyword(lastNonTriviaToken) && isKeyword(token) && !canFollow(lastNonTriviaToken, token)) { - token = 80 /* Identifier */; - } - } - } - return { endOfLineState: endOfLineState, spans: spans }; - } - return { getClassificationsForLine: getClassificationsForLine, getEncodedLexicalClassifications: getEncodedLexicalClassifications }; -} -var noRegexTable = arrayToNumericMap([ - 80 /* Identifier */, - 11 /* StringLiteral */, - 9 /* NumericLiteral */, - 10 /* BigIntLiteral */, - 14 /* RegularExpressionLiteral */, - 110 /* ThisKeyword */, - 46 /* PlusPlusToken */, - 47 /* MinusMinusToken */, - 22 /* CloseParenToken */, - 24 /* CloseBracketToken */, - 20 /* CloseBraceToken */, - 112 /* TrueKeyword */, - 97 /* FalseKeyword */ -], function (token) { return token; }, function () { return true; }); -function getNewEndOfLineState(scanner2, token, lastOnTemplateStack) { - switch (token) { - case 11 /* StringLiteral */: { - if (!scanner2.isUnterminated()) - return void 0; - var tokenText = scanner2.getTokenText(); - var lastCharIndex = tokenText.length - 1; - var numBackslashes = 0; - while (tokenText.charCodeAt(lastCharIndex - numBackslashes) === 92 /* backslash */) { - numBackslashes++; - } - if ((numBackslashes & 1) === 0) - return void 0; - return tokenText.charCodeAt(0) === 34 /* doubleQuote */ ? 3 /* InDoubleQuoteStringLiteral */ : 2 /* InSingleQuoteStringLiteral */; - } - case 3 /* MultiLineCommentTrivia */: - return scanner2.isUnterminated() ? 1 /* InMultiLineCommentTrivia */ : void 0; - default: - if (isTemplateLiteralKind(token)) { - if (!scanner2.isUnterminated()) { - return void 0; - } - switch (token) { - case 18 /* TemplateTail */: - return 5 /* InTemplateMiddleOrTail */; - case 15 /* NoSubstitutionTemplateLiteral */: - return 4 /* InTemplateHeadOrNoSubstitutionTemplate */; - default: - return Debug.fail("Only 'NoSubstitutionTemplateLiteral's and 'TemplateTail's can be unterminated; got SyntaxKind #" + token); - } - } - return lastOnTemplateStack === 16 /* TemplateHead */ ? 6 /* InTemplateSubstitutionPosition */ : void 0; - } -} -function pushEncodedClassification(start2, end, offset, classification, result) { - if (classification === 8 /* whiteSpace */) { - return; - } - if (start2 === 0 && offset > 0) { - start2 += offset; - } - var length2 = end - start2; - if (length2 > 0) { - result.push(start2 - offset, length2, classification); - } -} -function convertClassificationsToResult(classifications, text) { - var entries = []; - var dense = classifications.spans; - var lastEnd = 0; - for (var i = 0; i < dense.length; i += 3) { - var start2 = dense[i]; - var length2 = dense[i + 1]; - var type = dense[i + 2]; - if (lastEnd >= 0) { - var whitespaceLength2 = start2 - lastEnd; - if (whitespaceLength2 > 0) { - entries.push({ length: whitespaceLength2, classification: 4 /* Whitespace */ }); - } - } - entries.push({ length: length2, classification: convertClassification(type) }); - lastEnd = start2 + length2; - } - var whitespaceLength = text.length - lastEnd; - if (whitespaceLength > 0) { - entries.push({ length: whitespaceLength, classification: 4 /* Whitespace */ }); - } - return { entries: entries, finalLexState: classifications.endOfLineState }; -} -function convertClassification(type) { - switch (type) { - case 1 /* comment */: - return 3 /* Comment */; - case 3 /* keyword */: - return 1 /* Keyword */; - case 4 /* numericLiteral */: - return 6 /* NumberLiteral */; - case 25 /* bigintLiteral */: - return 7 /* BigIntLiteral */; - case 5 /* operator */: - return 2 /* Operator */; - case 6 /* stringLiteral */: - return 8 /* StringLiteral */; - case 8 /* whiteSpace */: - return 4 /* Whitespace */; - case 10 /* punctuation */: - return 0 /* Punctuation */; - case 2 /* identifier */: - case 11 /* className */: - case 12 /* enumName */: - case 13 /* interfaceName */: - case 14 /* moduleName */: - case 15 /* typeParameterName */: - case 16 /* typeAliasName */: - case 9 /* text */: - case 17 /* parameterName */: - return 5 /* Identifier */; - default: - return void 0; - } -} -function canFollow(keyword1, keyword2) { - if (!isAccessibilityModifier(keyword1)) { - return true; - } - switch (keyword2) { - case 139 /* GetKeyword */: - case 153 /* SetKeyword */: - case 137 /* ConstructorKeyword */: - case 126 /* StaticKeyword */: - case 129 /* AccessorKeyword */: - return true; - default: - return false; - } -} -function getPrefixFromLexState(lexState) { - switch (lexState) { - case 3 /* InDoubleQuoteStringLiteral */: - return { prefix: '"\\\n' }; - case 2 /* InSingleQuoteStringLiteral */: - return { prefix: "'\\\n" }; - case 1 /* InMultiLineCommentTrivia */: - return { prefix: "/*\n" }; - case 4 /* InTemplateHeadOrNoSubstitutionTemplate */: - return { prefix: "`\n" }; - case 5 /* InTemplateMiddleOrTail */: - return { prefix: "}\n", pushTemplate: true }; - case 6 /* InTemplateSubstitutionPosition */: - return { prefix: "", pushTemplate: true }; - case 0 /* None */: - return { prefix: "" }; - default: - return Debug.assertNever(lexState); - } -} -function isBinaryExpressionOperatorToken(token) { - switch (token) { - case 42 /* AsteriskToken */: - case 44 /* SlashToken */: - case 45 /* PercentToken */: - case 40 /* PlusToken */: - case 41 /* MinusToken */: - case 48 /* LessThanLessThanToken */: - case 49 /* GreaterThanGreaterThanToken */: - case 50 /* GreaterThanGreaterThanGreaterThanToken */: - case 30 /* LessThanToken */: - case 32 /* GreaterThanToken */: - case 33 /* LessThanEqualsToken */: - case 34 /* GreaterThanEqualsToken */: - case 104 /* InstanceOfKeyword */: - case 103 /* InKeyword */: - case 130 /* AsKeyword */: - case 152 /* SatisfiesKeyword */: - case 35 /* EqualsEqualsToken */: - case 36 /* ExclamationEqualsToken */: - case 37 /* EqualsEqualsEqualsToken */: - case 38 /* ExclamationEqualsEqualsToken */: - case 51 /* AmpersandToken */: - case 53 /* CaretToken */: - case 52 /* BarToken */: - case 56 /* AmpersandAmpersandToken */: - case 57 /* BarBarToken */: - case 75 /* BarEqualsToken */: - case 74 /* AmpersandEqualsToken */: - case 79 /* CaretEqualsToken */: - case 71 /* LessThanLessThanEqualsToken */: - case 72 /* GreaterThanGreaterThanEqualsToken */: - case 73 /* GreaterThanGreaterThanGreaterThanEqualsToken */: - case 65 /* PlusEqualsToken */: - case 66 /* MinusEqualsToken */: - case 67 /* AsteriskEqualsToken */: - case 69 /* SlashEqualsToken */: - case 70 /* PercentEqualsToken */: - case 64 /* EqualsToken */: - case 28 /* CommaToken */: - case 61 /* QuestionQuestionToken */: - case 76 /* BarBarEqualsToken */: - case 77 /* AmpersandAmpersandEqualsToken */: - case 78 /* QuestionQuestionEqualsToken */: - return true; - default: - return false; - } -} -function isPrefixUnaryExpressionOperatorToken(token) { - switch (token) { - case 40 /* PlusToken */: - case 41 /* MinusToken */: - case 55 /* TildeToken */: - case 54 /* ExclamationToken */: - case 46 /* PlusPlusToken */: - case 47 /* MinusMinusToken */: - return true; - default: - return false; - } -} -function classFromKind(token) { - if (isKeyword(token)) { - return 3 /* keyword */; - } - else if (isBinaryExpressionOperatorToken(token) || isPrefixUnaryExpressionOperatorToken(token)) { - return 5 /* operator */; - } - else if (token >= 19 /* FirstPunctuation */ && token <= 79 /* LastPunctuation */) { - return 10 /* punctuation */; - } - switch (token) { - case 9 /* NumericLiteral */: - return 4 /* numericLiteral */; - case 10 /* BigIntLiteral */: - return 25 /* bigintLiteral */; - case 11 /* StringLiteral */: - return 6 /* stringLiteral */; - case 14 /* RegularExpressionLiteral */: - return 7 /* regularExpressionLiteral */; - case 7 /* ConflictMarkerTrivia */: - case 3 /* MultiLineCommentTrivia */: - case 2 /* SingleLineCommentTrivia */: - return 1 /* comment */; - case 5 /* WhitespaceTrivia */: - case 4 /* NewLineTrivia */: - return 8 /* whiteSpace */; - case 80 /* Identifier */: - default: - if (isTemplateLiteralKind(token)) { - return 6 /* stringLiteral */; - } - return 2 /* identifier */; - } -} -function getSemanticClassifications(typeChecker, cancellationToken, sourceFile, classifiableNames, span) { - return convertClassificationsToSpans(getEncodedSemanticClassifications(typeChecker, cancellationToken, sourceFile, classifiableNames, span)); -} -function checkForClassificationCancellation(cancellationToken, kind) { - switch (kind) { - case 267 /* ModuleDeclaration */: - case 263 /* ClassDeclaration */: - case 264 /* InterfaceDeclaration */: - case 262 /* FunctionDeclaration */: - case 231 /* ClassExpression */: - case 218 /* FunctionExpression */: - case 219 /* ArrowFunction */: - cancellationToken.throwIfCancellationRequested(); - } -} -function getEncodedSemanticClassifications(typeChecker, cancellationToken, sourceFile, classifiableNames, span) { - var spans = []; - sourceFile.forEachChild(function cb(node) { - if (!node || !textSpanIntersectsWith(span, node.pos, node.getFullWidth())) { - return; - } - checkForClassificationCancellation(cancellationToken, node.kind); - if (isIdentifier(node) && !nodeIsMissing(node) && classifiableNames.has(node.escapedText)) { - var symbol = typeChecker.getSymbolAtLocation(node); - var type = symbol && classifySymbol(symbol, getMeaningFromLocation(node), typeChecker); - if (type) { - pushClassification(node.getStart(sourceFile), node.getEnd(), type); - } - } - node.forEachChild(cb); - }); - return { spans: spans, endOfLineState: 0 /* None */ }; - function pushClassification(start2, end, type) { - var length2 = end - start2; - Debug.assert(length2 > 0, "Classification had non-positive length of ".concat(length2)); - spans.push(start2); - spans.push(length2); - spans.push(type); - } -} -function classifySymbol(symbol, meaningAtPosition, checker) { - var flags = symbol.getFlags(); - if ((flags & 2885600 /* Classifiable */) === 0 /* None */) { - return void 0; - } - else if (flags & 32 /* Class */) { - return 11 /* className */; - } - else if (flags & 384 /* Enum */) { - return 12 /* enumName */; - } - else if (flags & 524288 /* TypeAlias */) { - return 16 /* typeAliasName */; - } - else if (flags & 1536 /* Module */) { - return meaningAtPosition & 4 /* Namespace */ || meaningAtPosition & 1 /* Value */ && hasValueSideModule(symbol) ? 14 /* moduleName */ : void 0; - } - else if (flags & 2097152 /* Alias */) { - return classifySymbol(checker.getAliasedSymbol(symbol), meaningAtPosition, checker); - } - else if (meaningAtPosition & 2 /* Type */) { - return flags & 64 /* Interface */ ? 13 /* interfaceName */ : flags & 262144 /* TypeParameter */ ? 15 /* typeParameterName */ : void 0; - } - else { - return void 0; - } -} -function hasValueSideModule(symbol) { - return some(symbol.declarations, function (declaration) { return isModuleDeclaration(declaration) && getModuleInstanceState(declaration) === 1; } /* Instantiated */); -} -function getClassificationTypeName(type) { - switch (type) { - case 1 /* comment */: - return "comment" /* comment */; - case 2 /* identifier */: - return "identifier" /* identifier */; - case 3 /* keyword */: - return "keyword" /* keyword */; - case 4 /* numericLiteral */: - return "number" /* numericLiteral */; - case 25 /* bigintLiteral */: - return "bigint" /* bigintLiteral */; - case 5 /* operator */: - return "operator" /* operator */; - case 6 /* stringLiteral */: - return "string" /* stringLiteral */; - case 8 /* whiteSpace */: - return "whitespace" /* whiteSpace */; - case 9 /* text */: - return "text" /* text */; - case 10 /* punctuation */: - return "punctuation" /* punctuation */; - case 11 /* className */: - return "class name" /* className */; - case 12 /* enumName */: - return "enum name" /* enumName */; - case 13 /* interfaceName */: - return "interface name" /* interfaceName */; - case 14 /* moduleName */: - return "module name" /* moduleName */; - case 15 /* typeParameterName */: - return "type parameter name" /* typeParameterName */; - case 16 /* typeAliasName */: - return "type alias name" /* typeAliasName */; - case 17 /* parameterName */: - return "parameter name" /* parameterName */; - case 18 /* docCommentTagName */: - return "doc comment tag name" /* docCommentTagName */; - case 19 /* jsxOpenTagName */: - return "jsx open tag name" /* jsxOpenTagName */; - case 20 /* jsxCloseTagName */: - return "jsx close tag name" /* jsxCloseTagName */; - case 21 /* jsxSelfClosingTagName */: - return "jsx self closing tag name" /* jsxSelfClosingTagName */; - case 22 /* jsxAttribute */: - return "jsx attribute" /* jsxAttribute */; - case 23 /* jsxText */: - return "jsx text" /* jsxText */; - case 24 /* jsxAttributeStringLiteralValue */: - return "jsx attribute string literal value" /* jsxAttributeStringLiteralValue */; - default: - return void 0; - } -} -function convertClassificationsToSpans(classifications) { - Debug.assert(classifications.spans.length % 3 === 0); - var dense = classifications.spans; - var result = []; - for (var i = 0; i < dense.length; i += 3) { - result.push({ - textSpan: createTextSpan(dense[i], dense[i + 1]), - classificationType: getClassificationTypeName(dense[i + 2]) - }); - } - return result; -} -function getSyntacticClassifications(cancellationToken, sourceFile, span) { - return convertClassificationsToSpans(getEncodedSyntacticClassifications(cancellationToken, sourceFile, span)); -} -function getEncodedSyntacticClassifications(cancellationToken, sourceFile, span) { - var spanStart = span.start; - var spanLength = span.length; - var triviaScanner = createScanner(99 /* Latest */, - /*skipTrivia*/ - false, sourceFile.languageVariant, sourceFile.text); - var mergeConflictScanner = createScanner(99 /* Latest */, - /*skipTrivia*/ - false, sourceFile.languageVariant, sourceFile.text); - var result = []; - processElement(sourceFile); - return { spans: result, endOfLineState: 0 /* None */ }; - function pushClassification(start2, length2, type) { - result.push(start2); - result.push(length2); - result.push(type); - } - function classifyLeadingTriviaAndGetTokenStart(token) { - triviaScanner.resetTokenState(token.pos); - while (true) { - var start2 = triviaScanner.getTokenEnd(); - if (!couldStartTrivia(sourceFile.text, start2)) { - return start2; - } - var kind = triviaScanner.scan(); - var end = triviaScanner.getTokenEnd(); - var width = end - start2; - if (!isTrivia(kind)) { - return start2; - } - switch (kind) { - case 4 /* NewLineTrivia */: - case 5 /* WhitespaceTrivia */: - continue; - case 2 /* SingleLineCommentTrivia */: - case 3 /* MultiLineCommentTrivia */: - classifyComment(token, kind, start2, width); - triviaScanner.resetTokenState(end); - continue; - case 7 /* ConflictMarkerTrivia */: - var text = sourceFile.text; - var ch = text.charCodeAt(start2); - if (ch === 60 /* lessThan */ || ch === 62 /* greaterThan */) { - pushClassification(start2, width, 1 /* comment */); - continue; - } - Debug.assert(ch === 124 /* bar */ || ch === 61 /* equals */); - classifyDisabledMergeCode(text, start2, end); - break; - case 6 /* ShebangTrivia */: - break; - default: - Debug.assertNever(kind); - } - } - } - function classifyComment(token, kind, start2, width) { - if (kind === 3 /* MultiLineCommentTrivia */) { - var docCommentAndDiagnostics = parseIsolatedJSDocComment(sourceFile.text, start2, width); - if (docCommentAndDiagnostics && docCommentAndDiagnostics.jsDoc) { - setParent(docCommentAndDiagnostics.jsDoc, token); - classifyJSDocComment(docCommentAndDiagnostics.jsDoc); - return; - } - } - else if (kind === 2 /* SingleLineCommentTrivia */) { - if (tryClassifyTripleSlashComment(start2, width)) { - return; - } - } - pushCommentRange(start2, width); - } - function pushCommentRange(start2, width) { - pushClassification(start2, width, 1 /* comment */); - } - function classifyJSDocComment(docComment) { - var e_655, _t; - var _a, _b, _c, _d, _e, _f, _g, _h; - var pos = docComment.pos; - if (docComment.tags) { - try { - for (var _u = __values(docComment.tags), _v = _u.next(); !_v.done; _v = _u.next()) { - var tag = _v.value; - if (tag.pos !== pos) { - pushCommentRange(pos, tag.pos - pos); - } - pushClassification(tag.pos, 1, 10 /* punctuation */); - pushClassification(tag.tagName.pos, tag.tagName.end - tag.tagName.pos, 18 /* docCommentTagName */); - pos = tag.tagName.end; - var commentStart = tag.tagName.end; - switch (tag.kind) { - case 348 /* JSDocParameterTag */: - var param = tag; - processJSDocParameterTag(param); - commentStart = param.isNameFirst && ((_a = param.typeExpression) == null ? void 0 : _a.end) || param.name.end; - break; - case 355 /* JSDocPropertyTag */: - var prop = tag; - commentStart = prop.isNameFirst && ((_b = prop.typeExpression) == null ? void 0 : _b.end) || prop.name.end; - break; - case 352 /* JSDocTemplateTag */: - processJSDocTemplateTag(tag); - pos = tag.end; - commentStart = tag.typeParameters.end; - break; - case 353 /* JSDocTypedefTag */: - var type = tag; - commentStart = ((_c = type.typeExpression) == null ? void 0 : _c.kind) === 316 /* JSDocTypeExpression */ && ((_d = type.fullName) == null ? void 0 : _d.end) || ((_e = type.typeExpression) == null ? void 0 : _e.end) || commentStart; - break; - case 345 /* JSDocCallbackTag */: - commentStart = tag.typeExpression.end; - break; - case 351 /* JSDocTypeTag */: - processElement(tag.typeExpression); - pos = tag.end; - commentStart = tag.typeExpression.end; - break; - case 350 /* JSDocThisTag */: - case 347 /* JSDocEnumTag */: - commentStart = tag.typeExpression.end; - break; - case 349 /* JSDocReturnTag */: - processElement(tag.typeExpression); - pos = tag.end; - commentStart = ((_f = tag.typeExpression) == null ? void 0 : _f.end) || commentStart; - break; - case 354 /* JSDocSeeTag */: - commentStart = ((_g = tag.name) == null ? void 0 : _g.end) || commentStart; - break; - case 335 /* JSDocAugmentsTag */: - case 336 /* JSDocImplementsTag */: - commentStart = tag.class.end; - break; - case 356 /* JSDocThrowsTag */: - processElement(tag.typeExpression); - pos = tag.end; - commentStart = ((_h = tag.typeExpression) == null ? void 0 : _h.end) || commentStart; - break; - } - if (typeof tag.comment === "object") { - pushCommentRange(tag.comment.pos, tag.comment.end - tag.comment.pos); - } - else if (typeof tag.comment === "string") { - pushCommentRange(commentStart, tag.end - commentStart); - } - } - } - catch (e_655_1) { e_655 = { error: e_655_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_655) throw e_655.error; } - } - } - if (pos !== docComment.end) { - pushCommentRange(pos, docComment.end - pos); - } - return; - function processJSDocParameterTag(tag) { - if (tag.isNameFirst) { - pushCommentRange(pos, tag.name.pos - pos); - pushClassification(tag.name.pos, tag.name.end - tag.name.pos, 17 /* parameterName */); - pos = tag.name.end; - } - if (tag.typeExpression) { - pushCommentRange(pos, tag.typeExpression.pos - pos); - processElement(tag.typeExpression); - pos = tag.typeExpression.end; - } - if (!tag.isNameFirst) { - pushCommentRange(pos, tag.name.pos - pos); - pushClassification(tag.name.pos, tag.name.end - tag.name.pos, 17 /* parameterName */); - pos = tag.name.end; - } - } - } - function tryClassifyTripleSlashComment(start2, width) { - var tripleSlashXMLCommentRegEx = /^(\/\/\/\s*)(<)(?:(\S+)((?:[^/]|\/[^>])*)(\/>)?)?/im; - var attributeRegex = /(\s)(\S+)(\s*)(=)(\s*)('[^']+'|"[^"]+")/img; - var text = sourceFile.text.substr(start2, width); - var match = tripleSlashXMLCommentRegEx.exec(text); - if (!match) { - return false; - } - if (!match[3] || !(match[3] in commentPragmas)) { - return false; - } - var pos = start2; - pushCommentRange(pos, match[1].length); - pos += match[1].length; - pushClassification(pos, match[2].length, 10 /* punctuation */); - pos += match[2].length; - pushClassification(pos, match[3].length, 21 /* jsxSelfClosingTagName */); - pos += match[3].length; - var attrText = match[4]; - var attrPos = pos; - while (true) { - var attrMatch = attributeRegex.exec(attrText); - if (!attrMatch) { - break; - } - var newAttrPos = pos + attrMatch.index + attrMatch[1].length; - if (newAttrPos > attrPos) { - pushCommentRange(attrPos, newAttrPos - attrPos); - attrPos = newAttrPos; - } - pushClassification(attrPos, attrMatch[2].length, 22 /* jsxAttribute */); - attrPos += attrMatch[2].length; - if (attrMatch[3].length) { - pushCommentRange(attrPos, attrMatch[3].length); - attrPos += attrMatch[3].length; - } - pushClassification(attrPos, attrMatch[4].length, 5 /* operator */); - attrPos += attrMatch[4].length; - if (attrMatch[5].length) { - pushCommentRange(attrPos, attrMatch[5].length); - attrPos += attrMatch[5].length; - } - pushClassification(attrPos, attrMatch[6].length, 24 /* jsxAttributeStringLiteralValue */); - attrPos += attrMatch[6].length; - } - pos += match[4].length; - if (pos > attrPos) { - pushCommentRange(attrPos, pos - attrPos); - } - if (match[5]) { - pushClassification(pos, match[5].length, 10 /* punctuation */); - pos += match[5].length; - } - var end = start2 + width; - if (pos < end) { - pushCommentRange(pos, end - pos); - } - return true; - } - function processJSDocTemplateTag(tag) { - var e_656, _t; - try { - for (var _u = __values(tag.getChildren()), _v = _u.next(); !_v.done; _v = _u.next()) { - var child = _v.value; - processElement(child); - } - } - catch (e_656_1) { e_656 = { error: e_656_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_656) throw e_656.error; } - } - } - function classifyDisabledMergeCode(text, start2, end) { - var i; - for (i = start2; i < end; i++) { - if (isLineBreak(text.charCodeAt(i))) { - break; - } - } - pushClassification(start2, i - start2, 1 /* comment */); - mergeConflictScanner.resetTokenState(i); - while (mergeConflictScanner.getTokenEnd() < end) { - classifyDisabledCodeToken(); - } - } - function classifyDisabledCodeToken() { - var start2 = mergeConflictScanner.getTokenEnd(); - var tokenKind = mergeConflictScanner.scan(); - var end = mergeConflictScanner.getTokenEnd(); - var type = classifyTokenType(tokenKind); - if (type) { - pushClassification(start2, end - start2, type); - } - } - function tryClassifyNode(node) { - if (isJSDoc(node)) { - return true; - } - if (nodeIsMissing(node)) { - return true; - } - var classifiedElementName = tryClassifyJsxElementName(node); - if (!isToken(node) && node.kind !== 12 /* JsxText */ && classifiedElementName === void 0) { - return false; - } - var tokenStart = node.kind === 12 /* JsxText */ ? node.pos : classifyLeadingTriviaAndGetTokenStart(node); - var tokenWidth = node.end - tokenStart; - Debug.assert(tokenWidth >= 0); - if (tokenWidth > 0) { - var type = classifiedElementName || classifyTokenType(node.kind, node); - if (type) { - pushClassification(tokenStart, tokenWidth, type); - } - } - return true; - } - function tryClassifyJsxElementName(token) { - switch (token.parent && token.parent.kind) { - case 286 /* JsxOpeningElement */: - if (token.parent.tagName === token) { - return 19 /* jsxOpenTagName */; - } - break; - case 287 /* JsxClosingElement */: - if (token.parent.tagName === token) { - return 20 /* jsxCloseTagName */; - } - break; - case 285 /* JsxSelfClosingElement */: - if (token.parent.tagName === token) { - return 21 /* jsxSelfClosingTagName */; - } - break; - case 291 /* JsxAttribute */: - if (token.parent.name === token) { - return 22 /* jsxAttribute */; - } - break; - } - return void 0; - } - function classifyTokenType(tokenKind, token) { - if (isKeyword(tokenKind)) { - return 3 /* keyword */; - } - if (tokenKind === 30 /* LessThanToken */ || tokenKind === 32 /* GreaterThanToken */) { - if (token && getTypeArgumentOrTypeParameterList(token.parent)) { - return 10 /* punctuation */; - } - } - if (isPunctuation(tokenKind)) { - if (token) { - var parent2 = token.parent; - if (tokenKind === 64 /* EqualsToken */) { - if (parent2.kind === 260 /* VariableDeclaration */ || parent2.kind === 172 /* PropertyDeclaration */ || parent2.kind === 169 /* Parameter */ || parent2.kind === 291 /* JsxAttribute */) { - return 5 /* operator */; - } - } - if (parent2.kind === 226 /* BinaryExpression */ || parent2.kind === 224 /* PrefixUnaryExpression */ || parent2.kind === 225 /* PostfixUnaryExpression */ || parent2.kind === 227 /* ConditionalExpression */) { - return 5 /* operator */; - } - } - return 10 /* punctuation */; - } - else if (tokenKind === 9 /* NumericLiteral */) { - return 4 /* numericLiteral */; - } - else if (tokenKind === 10 /* BigIntLiteral */) { - return 25 /* bigintLiteral */; - } - else if (tokenKind === 11 /* StringLiteral */) { - return token && token.parent.kind === 291 /* JsxAttribute */ ? 24 /* jsxAttributeStringLiteralValue */ : 6 /* stringLiteral */; - } - else if (tokenKind === 14 /* RegularExpressionLiteral */) { - return 6 /* stringLiteral */; - } - else if (isTemplateLiteralKind(tokenKind)) { - return 6 /* stringLiteral */; - } - else if (tokenKind === 12 /* JsxText */) { - return 23 /* jsxText */; - } - else if (tokenKind === 80 /* Identifier */) { - if (token) { - switch (token.parent.kind) { - case 263 /* ClassDeclaration */: - if (token.parent.name === token) { - return 11 /* className */; - } - return; - case 168 /* TypeParameter */: - if (token.parent.name === token) { - return 15 /* typeParameterName */; - } - return; - case 264 /* InterfaceDeclaration */: - if (token.parent.name === token) { - return 13 /* interfaceName */; - } - return; - case 266 /* EnumDeclaration */: - if (token.parent.name === token) { - return 12 /* enumName */; - } - return; - case 267 /* ModuleDeclaration */: - if (token.parent.name === token) { - return 14 /* moduleName */; - } - return; - case 169 /* Parameter */: - if (token.parent.name === token) { - return isThisIdentifier(token) ? 3 /* keyword */ : 17 /* parameterName */; - } - return; - } - if (isConstTypeReference(token.parent)) { - return 3 /* keyword */; - } - } - return 2 /* identifier */; - } - } - function processElement(element) { - var e_657, _t; - if (!element) { - return; - } - if (decodedTextSpanIntersectsWith(spanStart, spanLength, element.pos, element.getFullWidth())) { - checkForClassificationCancellation(cancellationToken, element.kind); - try { - for (var _u = __values(element.getChildren(sourceFile)), _v = _u.next(); !_v.done; _v = _u.next()) { - var child = _v.value; - if (!tryClassifyNode(child)) { - processElement(child); - } - } - } - catch (e_657_1) { e_657 = { error: e_657_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_657) throw e_657.error; } - } - } - } -} -// src/services/documentHighlights.ts -var DocumentHighlights; -(function (DocumentHighlights3) { - function getDocumentHighlights(program, cancellationToken, sourceFile, position, sourceFilesToSearch) { - var node = getTouchingPropertyName(sourceFile, position); - if (node.parent && (isJsxOpeningElement(node.parent) && node.parent.tagName === node || isJsxClosingElement(node.parent))) { - var _t = node.parent.parent, openingElement = _t.openingElement, closingElement = _t.closingElement; - var highlightSpans = [openingElement, closingElement].map(function (_t) { - var tagName = _t.tagName; - return getHighlightSpanForNode(tagName, sourceFile); - }); - return [{ fileName: sourceFile.fileName, highlightSpans: highlightSpans }]; - } - return getSemanticDocumentHighlights(position, node, program, cancellationToken, sourceFilesToSearch) || getSyntacticDocumentHighlights(node, sourceFile); - } - DocumentHighlights3.getDocumentHighlights = getDocumentHighlights; - function getHighlightSpanForNode(node, sourceFile) { - return { - fileName: sourceFile.fileName, - textSpan: createTextSpanFromNode(node, sourceFile), - kind: "none" /* none */ - }; - } - function getSemanticDocumentHighlights(position, node, program, cancellationToken, sourceFilesToSearch) { - var sourceFilesSet = new Set(sourceFilesToSearch.map(function (f) { return f.fileName; })); - var referenceEntries = ts_FindAllReferences_exports.getReferenceEntriesForNode(position, node, program, sourceFilesToSearch, cancellationToken, - /*options*/ - void 0, sourceFilesSet); - if (!referenceEntries) - return void 0; - var map2 = arrayToMultiMap(referenceEntries.map(ts_FindAllReferences_exports.toHighlightSpan), function (e) { return e.fileName; }, function (e) { return e.span; }); - var getCanonicalFileName = createGetCanonicalFileName(program.useCaseSensitiveFileNames()); - return arrayFrom(mapDefinedIterator(map2.entries(), function (_t) { - var _u = __read(_t, 2), fileName = _u[0], highlightSpans = _u[1]; - if (!sourceFilesSet.has(fileName)) { - if (!program.redirectTargetsMap.has(toPath(fileName, program.getCurrentDirectory(), getCanonicalFileName))) { - return void 0; - } - var redirectTarget_1 = program.getSourceFile(fileName); - var redirect = find(sourceFilesToSearch, function (f) { return !!f.redirectInfo && f.redirectInfo.redirectTarget === redirectTarget_1; }); - fileName = redirect.fileName; - Debug.assert(sourceFilesSet.has(fileName)); - } - return { fileName: fileName, highlightSpans: highlightSpans }; - })); - } - function getSyntacticDocumentHighlights(node, sourceFile) { - var highlightSpans = getHighlightSpans(node, sourceFile); - return highlightSpans && [{ fileName: sourceFile.fileName, highlightSpans: highlightSpans }]; - } - function getHighlightSpans(node, sourceFile) { - switch (node.kind) { - case 101 /* IfKeyword */: - case 93 /* ElseKeyword */: - return isIfStatement(node.parent) ? getIfElseOccurrences(node.parent, sourceFile) : void 0; - case 107 /* ReturnKeyword */: - return useParent(node.parent, isReturnStatement, getReturnOccurrences); - case 111 /* ThrowKeyword */: - return useParent(node.parent, isThrowStatement, getThrowOccurrences); - case 113 /* TryKeyword */: - case 85 /* CatchKeyword */: - case 98 /* FinallyKeyword */: - var tryStatement = node.kind === 85 /* CatchKeyword */ ? node.parent.parent : node.parent; - return useParent(tryStatement, isTryStatement, getTryCatchFinallyOccurrences); - case 109 /* SwitchKeyword */: - return useParent(node.parent, isSwitchStatement, getSwitchCaseDefaultOccurrences); - case 84 /* CaseKeyword */: - case 90 /* DefaultKeyword */: { - if (isDefaultClause(node.parent) || isCaseClause(node.parent)) { - return useParent(node.parent.parent.parent, isSwitchStatement, getSwitchCaseDefaultOccurrences); - } - return void 0; - } - case 83 /* BreakKeyword */: - case 88 /* ContinueKeyword */: - return useParent(node.parent, isBreakOrContinueStatement, getBreakOrContinueStatementOccurrences); - case 99 /* ForKeyword */: - case 117 /* WhileKeyword */: - case 92 /* DoKeyword */: - return useParent(node.parent, function (n) { return isIterationStatement(n, - /*lookInLabeledStatements*/ - true); }, getLoopBreakContinueOccurrences); - case 137 /* ConstructorKeyword */: - return getFromAllDeclarations(isConstructorDeclaration, [137 /* ConstructorKeyword */]); - case 139 /* GetKeyword */: - case 153 /* SetKeyword */: - return getFromAllDeclarations(isAccessor, [139 /* GetKeyword */, 153 /* SetKeyword */]); - case 135 /* AwaitKeyword */: - return useParent(node.parent, isAwaitExpression, getAsyncAndAwaitOccurrences); - case 134 /* AsyncKeyword */: - return highlightSpans(getAsyncAndAwaitOccurrences(node)); - case 127 /* YieldKeyword */: - return highlightSpans(getYieldOccurrences(node)); - case 103 /* InKeyword */: - return void 0; - default: - return isModifierKind(node.kind) && (isDeclaration(node.parent) || isVariableStatement(node.parent)) ? highlightSpans(getModifierOccurrences(node.kind, node.parent)) : void 0; - } - function getFromAllDeclarations(nodeTest, keywords) { - return useParent(node.parent, nodeTest, function (decl) { - var _a; - return mapDefined((_a = tryCast(decl, canHaveSymbol)) == null ? void 0 : _a.symbol.declarations, function (d) { return nodeTest(d) ? find(d.getChildren(sourceFile), function (c) { return contains(keywords, c.kind); }) : void 0; }); - }); - } - function useParent(node2, nodeTest, getNodes4) { - return nodeTest(node2) ? highlightSpans(getNodes4(node2, sourceFile)) : void 0; - } - function highlightSpans(nodes) { - return nodes && nodes.map(function (node2) { return getHighlightSpanForNode(node2, sourceFile); }); - } - } - function aggregateOwnedThrowStatements(node) { - if (isThrowStatement(node)) { - return [node]; - } - else if (isTryStatement(node)) { - return concatenate(node.catchClause ? aggregateOwnedThrowStatements(node.catchClause) : node.tryBlock && aggregateOwnedThrowStatements(node.tryBlock), node.finallyBlock && aggregateOwnedThrowStatements(node.finallyBlock)); - } - return isFunctionLike(node) ? void 0 : flatMapChildren(node, aggregateOwnedThrowStatements); - } - function getThrowStatementOwner(throwStatement) { - var child = throwStatement; - while (child.parent) { - var parent2 = child.parent; - if (isFunctionBlock(parent2) || parent2.kind === 312 /* SourceFile */) { - return parent2; - } - if (isTryStatement(parent2) && parent2.tryBlock === child && parent2.catchClause) { - return child; - } - child = parent2; - } - return void 0; - } - function aggregateAllBreakAndContinueStatements(node) { - return isBreakOrContinueStatement(node) ? [node] : isFunctionLike(node) ? void 0 : flatMapChildren(node, aggregateAllBreakAndContinueStatements); - } - function flatMapChildren(node, cb) { - var result = []; - node.forEachChild(function (child) { - var value = cb(child); - if (value !== void 0) { - result.push.apply(result, __spreadArray([], __read(toArray(value)), false)); - } - }); - return result; - } - function ownsBreakOrContinueStatement(owner, statement) { - var actualOwner = getBreakOrContinueOwner(statement); - return !!actualOwner && actualOwner === owner; - } - function getBreakOrContinueOwner(statement) { - return findAncestor(statement, function (node) { - switch (node.kind) { - case 255 /* SwitchStatement */: - if (statement.kind === 251 /* ContinueStatement */) { - return false; - } - case 248 /* ForStatement */: - case 249 /* ForInStatement */: - case 250 /* ForOfStatement */: - case 247 /* WhileStatement */: - case 246 /* DoStatement */: - return !statement.label || isLabeledBy(node, statement.label.escapedText); - default: - return isFunctionLike(node) && "quit"; - } - }); - } - function getModifierOccurrences(modifier, declaration) { - return mapDefined(getNodesToSearchForModifier(declaration, modifierToFlag(modifier)), function (node) { return findModifier(node, modifier); }); - } - function getNodesToSearchForModifier(declaration, modifierFlag) { - var container = declaration.parent; - switch (container.kind) { - case 268 /* ModuleBlock */: - case 312 /* SourceFile */: - case 241 /* Block */: - case 296 /* CaseClause */: - case 297 /* DefaultClause */: - if (modifierFlag & 256 /* Abstract */ && isClassDeclaration(declaration)) { - return __spreadArray(__spreadArray([], __read(declaration.members), false), [declaration], false); - } - else { - return container.statements; - } - case 176 /* Constructor */: - case 174 /* MethodDeclaration */: - case 262 /* FunctionDeclaration */: - return __spreadArray(__spreadArray([], __read(container.parameters), false), __read(isClassLike(container.parent) ? container.parent.members : []), false); - case 263 /* ClassDeclaration */: - case 231 /* ClassExpression */: - case 264 /* InterfaceDeclaration */: - case 187 /* TypeLiteral */: - var nodes = container.members; - if (modifierFlag & (28 /* AccessibilityModifier */ | 64 /* Readonly */)) { - var constructor = find(container.members, isConstructorDeclaration); - if (constructor) { - return __spreadArray(__spreadArray([], __read(nodes), false), __read(constructor.parameters), false); - } - } - else if (modifierFlag & 256 /* Abstract */) { - return __spreadArray(__spreadArray([], __read(nodes), false), [container], false); - } - return nodes; - case 210 /* ObjectLiteralExpression */: - return void 0; - default: - Debug.assertNever(container, "Invalid container kind."); - } - } - function pushKeywordIf(keywordList, token) { - var expected = []; - for (var _t = 2; _t < arguments.length; _t++) { - expected[_t - 2] = arguments[_t]; - } - if (token && contains(expected, token.kind)) { - keywordList.push(token); - return true; - } - return false; - } - function getLoopBreakContinueOccurrences(loopNode) { - var keywords = []; - if (pushKeywordIf(keywords, loopNode.getFirstToken(), 99 /* ForKeyword */, 117 /* WhileKeyword */, 92 /* DoKeyword */)) { - if (loopNode.kind === 246 /* DoStatement */) { - var loopTokens = loopNode.getChildren(); - for (var i = loopTokens.length - 1; i >= 0; i--) { - if (pushKeywordIf(keywords, loopTokens[i], 117 /* WhileKeyword */)) { - break; - } - } - } - } - forEach(aggregateAllBreakAndContinueStatements(loopNode.statement), function (statement) { - if (ownsBreakOrContinueStatement(loopNode, statement)) { - pushKeywordIf(keywords, statement.getFirstToken(), 83 /* BreakKeyword */, 88 /* ContinueKeyword */); - } - }); - return keywords; - } - function getBreakOrContinueStatementOccurrences(breakOrContinueStatement) { - var owner = getBreakOrContinueOwner(breakOrContinueStatement); - if (owner) { - switch (owner.kind) { - case 248 /* ForStatement */: - case 249 /* ForInStatement */: - case 250 /* ForOfStatement */: - case 246 /* DoStatement */: - case 247 /* WhileStatement */: - return getLoopBreakContinueOccurrences(owner); - case 255 /* SwitchStatement */: - return getSwitchCaseDefaultOccurrences(owner); - } - } - return void 0; - } - function getSwitchCaseDefaultOccurrences(switchStatement) { - var keywords = []; - pushKeywordIf(keywords, switchStatement.getFirstToken(), 109 /* SwitchKeyword */); - forEach(switchStatement.caseBlock.clauses, function (clause) { - pushKeywordIf(keywords, clause.getFirstToken(), 84 /* CaseKeyword */, 90 /* DefaultKeyword */); - forEach(aggregateAllBreakAndContinueStatements(clause), function (statement) { - if (ownsBreakOrContinueStatement(switchStatement, statement)) { - pushKeywordIf(keywords, statement.getFirstToken(), 83 /* BreakKeyword */); - } - }); - }); - return keywords; - } - function getTryCatchFinallyOccurrences(tryStatement, sourceFile) { - var keywords = []; - pushKeywordIf(keywords, tryStatement.getFirstToken(), 113 /* TryKeyword */); - if (tryStatement.catchClause) { - pushKeywordIf(keywords, tryStatement.catchClause.getFirstToken(), 85 /* CatchKeyword */); - } - if (tryStatement.finallyBlock) { - var finallyKeyword = findChildOfKind(tryStatement, 98 /* FinallyKeyword */, sourceFile); - pushKeywordIf(keywords, finallyKeyword, 98 /* FinallyKeyword */); - } - return keywords; - } - function getThrowOccurrences(throwStatement, sourceFile) { - var owner = getThrowStatementOwner(throwStatement); - if (!owner) { - return void 0; - } - var keywords = []; - forEach(aggregateOwnedThrowStatements(owner), function (throwStatement2) { - keywords.push(findChildOfKind(throwStatement2, 111 /* ThrowKeyword */, sourceFile)); - }); - if (isFunctionBlock(owner)) { - forEachReturnStatement(owner, function (returnStatement) { - keywords.push(findChildOfKind(returnStatement, 107 /* ReturnKeyword */, sourceFile)); - }); - } - return keywords; - } - function getReturnOccurrences(returnStatement, sourceFile) { - var func = getContainingFunction(returnStatement); - if (!func) { - return void 0; - } - var keywords = []; - forEachReturnStatement(cast(func.body, isBlock), function (returnStatement2) { - keywords.push(findChildOfKind(returnStatement2, 107 /* ReturnKeyword */, sourceFile)); - }); - forEach(aggregateOwnedThrowStatements(func.body), function (throwStatement) { - keywords.push(findChildOfKind(throwStatement, 111 /* ThrowKeyword */, sourceFile)); - }); - return keywords; - } - function getAsyncAndAwaitOccurrences(node) { - var func = getContainingFunction(node); - if (!func) { - return void 0; - } - var keywords = []; - if (func.modifiers) { - func.modifiers.forEach(function (modifier) { - pushKeywordIf(keywords, modifier, 134 /* AsyncKeyword */); - }); - } - forEachChild(func, function (child) { - traverseWithoutCrossingFunction(child, function (node2) { - if (isAwaitExpression(node2)) { - pushKeywordIf(keywords, node2.getFirstToken(), 135 /* AwaitKeyword */); - } - }); - }); - return keywords; - } - function getYieldOccurrences(node) { - var func = getContainingFunction(node); - if (!func) { - return void 0; - } - var keywords = []; - forEachChild(func, function (child) { - traverseWithoutCrossingFunction(child, function (node2) { - if (isYieldExpression(node2)) { - pushKeywordIf(keywords, node2.getFirstToken(), 127 /* YieldKeyword */); - } - }); - }); - return keywords; - } - function traverseWithoutCrossingFunction(node, cb) { - cb(node); - if (!isFunctionLike(node) && !isClassLike(node) && !isInterfaceDeclaration(node) && !isModuleDeclaration(node) && !isTypeAliasDeclaration(node) && !isTypeNode(node)) { - forEachChild(node, function (child) { return traverseWithoutCrossingFunction(child, cb); }); - } - } - function getIfElseOccurrences(ifStatement, sourceFile) { - var keywords = getIfElseKeywords(ifStatement, sourceFile); - var result = []; - for (var i = 0; i < keywords.length; i++) { - if (keywords[i].kind === 93 /* ElseKeyword */ && i < keywords.length - 1) { - var elseKeyword = keywords[i]; - var ifKeyword = keywords[i + 1]; - var shouldCombineElseAndIf = true; - for (var j = ifKeyword.getStart(sourceFile) - 1; j >= elseKeyword.end; j--) { - if (!isWhiteSpaceSingleLine(sourceFile.text.charCodeAt(j))) { - shouldCombineElseAndIf = false; - break; - } - } - if (shouldCombineElseAndIf) { - result.push({ - fileName: sourceFile.fileName, - textSpan: createTextSpanFromBounds(elseKeyword.getStart(), ifKeyword.end), - kind: "reference" /* reference */ - }); - i++; - continue; - } - } - result.push(getHighlightSpanForNode(keywords[i], sourceFile)); - } - return result; - } - function getIfElseKeywords(ifStatement, sourceFile) { - var keywords = []; - while (isIfStatement(ifStatement.parent) && ifStatement.parent.elseStatement === ifStatement) { - ifStatement = ifStatement.parent; - } - while (true) { - var children = ifStatement.getChildren(sourceFile); - pushKeywordIf(keywords, children[0], 101 /* IfKeyword */); - for (var i = children.length - 1; i >= 0; i--) { - if (pushKeywordIf(keywords, children[i], 93 /* ElseKeyword */)) { - break; - } - } - if (!ifStatement.elseStatement || !isIfStatement(ifStatement.elseStatement)) { - break; - } - ifStatement = ifStatement.elseStatement; - } - return keywords; - } - function isLabeledBy(node, labelName) { - return !!findAncestor(node.parent, function (owner) { return !isLabeledStatement(owner) ? "quit" : owner.label.escapedText === labelName; }); - } -})(DocumentHighlights || (DocumentHighlights = {})); -// src/services/documentRegistry.ts -function isDocumentRegistryEntry(entry) { - return !!entry.sourceFile; -} -function createDocumentRegistry(useCaseSensitiveFileNames2, currentDirectory) { - return createDocumentRegistryInternal(useCaseSensitiveFileNames2, currentDirectory); -} -function createDocumentRegistryInternal(useCaseSensitiveFileNames2, currentDirectory, externalCache) { - if (currentDirectory === void 0) { currentDirectory = ""; } - var buckets = /* @__PURE__ */ new Map(); - var getCanonicalFileName = createGetCanonicalFileName(!!useCaseSensitiveFileNames2); - function reportStats() { - var bucketInfoArray = arrayFrom(buckets.keys()).filter(function (name) { return name && name.charAt(0) === "_"; }).map(function (name) { - var entries = buckets.get(name); - var sourceFiles = []; - entries.forEach(function (entry, name2) { - if (isDocumentRegistryEntry(entry)) { - sourceFiles.push({ - name: name2, - scriptKind: entry.sourceFile.scriptKind, - refCount: entry.languageServiceRefCount - }); - } - else { - entry.forEach(function (value, scriptKind) { return sourceFiles.push({ name: name2, scriptKind: scriptKind, refCount: value.languageServiceRefCount }); }); - } - }); - sourceFiles.sort(function (x, y) { return y.refCount - x.refCount; }); - return { - bucket: name, - sourceFiles: sourceFiles - }; - }); - return JSON.stringify(bucketInfoArray, void 0, 2); - } - function getCompilationSettings(settingsOrHost) { - if (typeof settingsOrHost.getCompilationSettings === "function") { - return settingsOrHost.getCompilationSettings(); - } - return settingsOrHost; - } - function acquireDocument(fileName, compilationSettings, scriptSnapshot, version2, scriptKind, languageVersionOrOptions) { - var path = toPath(fileName, currentDirectory, getCanonicalFileName); - var key = getKeyForCompilationSettings(getCompilationSettings(compilationSettings)); - return acquireDocumentWithKey(fileName, path, compilationSettings, key, scriptSnapshot, version2, scriptKind, languageVersionOrOptions); - } - function acquireDocumentWithKey(fileName, path, compilationSettings, key, scriptSnapshot, version2, scriptKind, languageVersionOrOptions) { - return acquireOrUpdateDocument(fileName, path, compilationSettings, key, scriptSnapshot, version2, - /*acquiring*/ - true, scriptKind, languageVersionOrOptions); - } - function updateDocument(fileName, compilationSettings, scriptSnapshot, version2, scriptKind, languageVersionOrOptions) { - var path = toPath(fileName, currentDirectory, getCanonicalFileName); - var key = getKeyForCompilationSettings(getCompilationSettings(compilationSettings)); - return updateDocumentWithKey(fileName, path, compilationSettings, key, scriptSnapshot, version2, scriptKind, languageVersionOrOptions); - } - function updateDocumentWithKey(fileName, path, compilationSettings, key, scriptSnapshot, version2, scriptKind, languageVersionOrOptions) { - return acquireOrUpdateDocument(fileName, path, getCompilationSettings(compilationSettings), key, scriptSnapshot, version2, - /*acquiring*/ - false, scriptKind, languageVersionOrOptions); - } - function getDocumentRegistryEntry(bucketEntry, scriptKind) { - var entry = isDocumentRegistryEntry(bucketEntry) ? bucketEntry : bucketEntry.get(Debug.checkDefined(scriptKind, "If there are more than one scriptKind's for same document the scriptKind should be provided")); - Debug.assert(scriptKind === void 0 || !entry || entry.sourceFile.scriptKind === scriptKind, "Script kind should match provided ScriptKind:".concat(scriptKind, " and sourceFile.scriptKind: ").concat(entry == null ? void 0 : entry.sourceFile.scriptKind, ", !entry: ").concat(!entry)); - return entry; - } - function acquireOrUpdateDocument(fileName, path, compilationSettingsOrHost, key, scriptSnapshot, version2, acquiring, scriptKind, languageVersionOrOptions) { - var _a, _b, _c, _d; - scriptKind = ensureScriptKind(fileName, scriptKind); - var compilationSettings = getCompilationSettings(compilationSettingsOrHost); - var host = compilationSettingsOrHost === compilationSettings ? void 0 : compilationSettingsOrHost; - var scriptTarget = scriptKind === 6 /* JSON */ ? 100 /* JSON */ : getEmitScriptTarget(compilationSettings); - var sourceFileOptions = typeof languageVersionOrOptions === "object" ? languageVersionOrOptions : { - languageVersion: scriptTarget, - impliedNodeFormat: host && getImpliedNodeFormatForFile(path, (_d = (_c = (_b = (_a = host.getCompilerHost) == null ? void 0 : _a.call(host)) == null ? void 0 : _b.getModuleResolutionCache) == null ? void 0 : _c.call(_b)) == null ? void 0 : _d.getPackageJsonInfoCache(), host, compilationSettings), - setExternalModuleIndicator: getSetExternalModuleIndicator(compilationSettings) - }; - sourceFileOptions.languageVersion = scriptTarget; - var oldBucketCount = buckets.size; - var keyWithMode = getDocumentRegistryBucketKeyWithMode(key, sourceFileOptions.impliedNodeFormat); - var bucket = getOrUpdate(buckets, keyWithMode, function () { /* @__PURE__ */ return new Map(); }); - if (tracing) { - if (buckets.size > oldBucketCount) { - tracing.instant(tracing.Phase.Session, "createdDocumentRegistryBucket", { configFilePath: compilationSettings.configFilePath, key: keyWithMode }); - } - var otherBucketKey = !isDeclarationFileName(path) && forEachEntry(buckets, function (bucket2, bucketKey) { return bucketKey !== keyWithMode && bucket2.has(path) && bucketKey; }); - if (otherBucketKey) { - tracing.instant(tracing.Phase.Session, "documentRegistryBucketOverlap", { path: path, key1: otherBucketKey, key2: keyWithMode }); - } - } - var bucketEntry = bucket.get(path); - var entry = bucketEntry && getDocumentRegistryEntry(bucketEntry, scriptKind); - if (!entry && externalCache) { - var sourceFile = externalCache.getDocument(keyWithMode, path); - if (sourceFile) { - Debug.assert(acquiring); - entry = { - sourceFile: sourceFile, - languageServiceRefCount: 0 - }; - setBucketEntry(); - } - } - if (!entry) { - var sourceFile = createLanguageServiceSourceFile(fileName, scriptSnapshot, sourceFileOptions, version2, - /*setNodeParents*/ - false, scriptKind); - if (externalCache) { - externalCache.setDocument(keyWithMode, path, sourceFile); - } - entry = { - sourceFile: sourceFile, - languageServiceRefCount: 1 - }; - setBucketEntry(); - } - else { - if (entry.sourceFile.version !== version2) { - entry.sourceFile = updateLanguageServiceSourceFile(entry.sourceFile, scriptSnapshot, version2, scriptSnapshot.getChangeRange(entry.sourceFile.scriptSnapshot)); - if (externalCache) { - externalCache.setDocument(keyWithMode, path, entry.sourceFile); - } - } - if (acquiring) { - entry.languageServiceRefCount++; - } - } - Debug.assert(entry.languageServiceRefCount !== 0); - return entry.sourceFile; - function setBucketEntry() { - if (!bucketEntry) { - bucket.set(path, entry); - } - else if (isDocumentRegistryEntry(bucketEntry)) { - var scriptKindMap = /* @__PURE__ */ new Map(); - scriptKindMap.set(bucketEntry.sourceFile.scriptKind, bucketEntry); - scriptKindMap.set(scriptKind, entry); - bucket.set(path, scriptKindMap); - } - else { - bucketEntry.set(scriptKind, entry); - } - } - } - function releaseDocument(fileName, compilationSettings, scriptKind, impliedNodeFormat) { - var path = toPath(fileName, currentDirectory, getCanonicalFileName); - var key = getKeyForCompilationSettings(compilationSettings); - return releaseDocumentWithKey(path, key, scriptKind, impliedNodeFormat); - } - function releaseDocumentWithKey(path, key, scriptKind, impliedNodeFormat) { - var bucket = Debug.checkDefined(buckets.get(getDocumentRegistryBucketKeyWithMode(key, impliedNodeFormat))); - var bucketEntry = bucket.get(path); - var entry = getDocumentRegistryEntry(bucketEntry, scriptKind); - entry.languageServiceRefCount--; - Debug.assert(entry.languageServiceRefCount >= 0); - if (entry.languageServiceRefCount === 0) { - if (isDocumentRegistryEntry(bucketEntry)) { - bucket.delete(path); - } - else { - bucketEntry.delete(scriptKind); - if (bucketEntry.size === 1) { - bucket.set(path, firstDefinedIterator(bucketEntry.values(), identity)); - } - } - } - } - return { - acquireDocument: acquireDocument, - acquireDocumentWithKey: acquireDocumentWithKey, - updateDocument: updateDocument, - updateDocumentWithKey: updateDocumentWithKey, - releaseDocument: releaseDocument, - releaseDocumentWithKey: releaseDocumentWithKey, - getKeyForCompilationSettings: getKeyForCompilationSettings, - getDocumentRegistryBucketKeyWithMode: getDocumentRegistryBucketKeyWithMode, - reportStats: reportStats, - getBuckets: function () { return buckets; } - }; -} -function getKeyForCompilationSettings(settings) { - return getKeyForCompilerOptions(settings, sourceFileAffectingCompilerOptions); -} -function getDocumentRegistryBucketKeyWithMode(key, mode) { - return mode ? "".concat(key, "|").concat(mode) : key; -} -// src/services/getEditsForFileRename.ts -function getEditsForFileRename(program, oldFileOrDirPath, newFileOrDirPath, host, formatContext, preferences, sourceMapper) { - var useCaseSensitiveFileNames2 = hostUsesCaseSensitiveFileNames(host); - var getCanonicalFileName = createGetCanonicalFileName(useCaseSensitiveFileNames2); - var oldToNew = getPathUpdater(oldFileOrDirPath, newFileOrDirPath, getCanonicalFileName, sourceMapper); - var newToOld = getPathUpdater(newFileOrDirPath, oldFileOrDirPath, getCanonicalFileName, sourceMapper); - return ts_textChanges_exports.ChangeTracker.with({ host: host, formatContext: formatContext, preferences: preferences }, function (changeTracker) { - updateTsconfigFiles(program, changeTracker, oldToNew, oldFileOrDirPath, newFileOrDirPath, host.getCurrentDirectory(), useCaseSensitiveFileNames2); - updateImports(program, changeTracker, oldToNew, newToOld, host, getCanonicalFileName); - }); -} -function getPathUpdater(oldFileOrDirPath, newFileOrDirPath, getCanonicalFileName, sourceMapper) { - var canonicalOldPath = getCanonicalFileName(oldFileOrDirPath); - return function (path) { - var originalPath = sourceMapper && sourceMapper.tryGetSourcePosition({ fileName: path, pos: 0 }); - var updatedPath = getUpdatedPath(originalPath ? originalPath.fileName : path); - return originalPath ? updatedPath === void 0 ? void 0 : makeCorrespondingRelativeChange(originalPath.fileName, updatedPath, path, getCanonicalFileName) : updatedPath; - }; - function getUpdatedPath(pathToUpdate) { - if (getCanonicalFileName(pathToUpdate) === canonicalOldPath) - return newFileOrDirPath; - var suffix = tryRemoveDirectoryPrefix(pathToUpdate, canonicalOldPath, getCanonicalFileName); - return suffix === void 0 ? void 0 : newFileOrDirPath + "/" + suffix; - } -} -function makeCorrespondingRelativeChange(a0, b0, a1, getCanonicalFileName) { - var rel = getRelativePathFromFile(a0, b0, getCanonicalFileName); - return combinePathsSafe(getDirectoryPath(a1), rel); -} -function updateTsconfigFiles(program, changeTracker, oldToNew, oldFileOrDirPath, newFileOrDirPath, currentDirectory, useCaseSensitiveFileNames2) { - var configFile = program.getCompilerOptions().configFile; - if (!configFile) - return; - var configDir = getDirectoryPath(configFile.fileName); - var jsonObjectLiteral = getTsConfigObjectLiteralExpression(configFile); - if (!jsonObjectLiteral) - return; - forEachProperty(jsonObjectLiteral, function (property, propertyName) { - switch (propertyName) { - case "files": - case "include": - case "exclude": { - var foundExactMatch = updatePaths(property); - if (foundExactMatch || propertyName !== "include" || !isArrayLiteralExpression(property.initializer)) - return; - var includes = mapDefined(property.initializer.elements, function (e) { return isStringLiteral(e) ? e.text : void 0; }); - if (includes.length === 0) - return; - var matchers = getFileMatcherPatterns(configDir, - /*excludes*/ - [], includes, useCaseSensitiveFileNames2, currentDirectory); - if (getRegexFromPattern(Debug.checkDefined(matchers.includeFilePattern), useCaseSensitiveFileNames2).test(oldFileOrDirPath) && !getRegexFromPattern(Debug.checkDefined(matchers.includeFilePattern), useCaseSensitiveFileNames2).test(newFileOrDirPath)) { - changeTracker.insertNodeAfter(configFile, last(property.initializer.elements), factory.createStringLiteral(relativePath(newFileOrDirPath))); - } - return; - } - case "compilerOptions": - forEachProperty(property.initializer, function (property2, propertyName2) { - var option = getOptionFromName(propertyName2); - Debug.assert((option == null ? void 0 : option.type) !== "listOrElement"); - if (option && (option.isFilePath || option.type === "list" && option.element.isFilePath)) { - updatePaths(property2); - } - else if (propertyName2 === "paths") { - forEachProperty(property2.initializer, function (pathsProperty) { - var e_658, _t; - if (!isArrayLiteralExpression(pathsProperty.initializer)) - return; - try { - for (var _u = __values(pathsProperty.initializer.elements), _v = _u.next(); !_v.done; _v = _u.next()) { - var e = _v.value; - tryUpdateString(e); - } - } - catch (e_658_1) { e_658 = { error: e_658_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_658) throw e_658.error; } - } - }); - } - }); - return; - } - }); - function updatePaths(property) { - var e_659, _t; - var elements = isArrayLiteralExpression(property.initializer) ? property.initializer.elements : [property.initializer]; - var foundExactMatch = false; - try { - for (var elements_6 = __values(elements), elements_6_1 = elements_6.next(); !elements_6_1.done; elements_6_1 = elements_6.next()) { - var element = elements_6_1.value; - foundExactMatch = tryUpdateString(element) || foundExactMatch; - } - } - catch (e_659_1) { e_659 = { error: e_659_1 }; } - finally { - try { - if (elements_6_1 && !elements_6_1.done && (_t = elements_6.return)) _t.call(elements_6); - } - finally { if (e_659) throw e_659.error; } - } - return foundExactMatch; - } - function tryUpdateString(element) { - if (!isStringLiteral(element)) - return false; - var elementFileName = combinePathsSafe(configDir, element.text); - var updated = oldToNew(elementFileName); - if (updated !== void 0) { - changeTracker.replaceRangeWithText(configFile, createStringRange(element, configFile), relativePath(updated)); - return true; - } - return false; - } - function relativePath(path) { - return getRelativePathFromDirectory(configDir, path, - /*ignoreCase*/ - !useCaseSensitiveFileNames2); - } -} -function updateImports(program, changeTracker, oldToNew, newToOld, host, getCanonicalFileName) { - var e_660, _t; - var allFiles = program.getSourceFiles(); - var _loop_41 = function (sourceFile) { - var newFromOld = oldToNew(sourceFile.fileName); - var newImportFromPath = newFromOld !== null && newFromOld !== void 0 ? newFromOld : sourceFile.fileName; - var newImportFromDirectory = getDirectoryPath(newImportFromPath); - var oldFromNew = newToOld(sourceFile.fileName); - var oldImportFromPath = oldFromNew || sourceFile.fileName; - var oldImportFromDirectory = getDirectoryPath(oldImportFromPath); - var importingSourceFileMoved = newFromOld !== void 0 || oldFromNew !== void 0; - updateImportsWorker(sourceFile, changeTracker, function (referenceText) { - if (!pathIsRelative(referenceText)) - return void 0; - var oldAbsolute = combinePathsSafe(oldImportFromDirectory, referenceText); - var newAbsolute = oldToNew(oldAbsolute); - return newAbsolute === void 0 ? void 0 : ensurePathIsNonModuleName(getRelativePathFromDirectory(newImportFromDirectory, newAbsolute, getCanonicalFileName)); - }, function (importLiteral) { - var importedModuleSymbol = program.getTypeChecker().getSymbolAtLocation(importLiteral); - if ((importedModuleSymbol == null ? void 0 : importedModuleSymbol.declarations) && importedModuleSymbol.declarations.some(function (d) { return isAmbientModule(d); })) - return void 0; - var toImport = oldFromNew !== void 0 ? getSourceFileToImportFromResolved(importLiteral, resolveModuleName(importLiteral.text, oldImportFromPath, program.getCompilerOptions(), host), oldToNew, allFiles) : getSourceFileToImport(importedModuleSymbol, importLiteral, sourceFile, program, host, oldToNew); - return toImport !== void 0 && (toImport.updated || importingSourceFileMoved && pathIsRelative(importLiteral.text)) ? ts_moduleSpecifiers_exports.updateModuleSpecifier(program.getCompilerOptions(), sourceFile, getCanonicalFileName(newImportFromPath), toImport.newFileName, createModuleSpecifierResolutionHost(program, host), importLiteral.text) : void 0; - }); - }; - try { - for (var allFiles_1 = __values(allFiles), allFiles_1_1 = allFiles_1.next(); !allFiles_1_1.done; allFiles_1_1 = allFiles_1.next()) { - var sourceFile = allFiles_1_1.value; - _loop_41(sourceFile); - } - } - catch (e_660_1) { e_660 = { error: e_660_1 }; } - finally { - try { - if (allFiles_1_1 && !allFiles_1_1.done && (_t = allFiles_1.return)) _t.call(allFiles_1); - } - finally { if (e_660) throw e_660.error; } - } -} -function combineNormal(pathA, pathB) { - return normalizePath(combinePaths(pathA, pathB)); -} -function combinePathsSafe(pathA, pathB) { - return ensurePathIsNonModuleName(combineNormal(pathA, pathB)); -} -function getSourceFileToImport(importedModuleSymbol, importLiteral, importingSourceFile, program, host, oldToNew) { - var _a; - if (importedModuleSymbol) { - var oldFileName = find(importedModuleSymbol.declarations, isSourceFile).fileName; - var newFileName = oldToNew(oldFileName); - return newFileName === void 0 ? { newFileName: oldFileName, updated: false } : { newFileName: newFileName, updated: true }; - } - else { - var mode = getModeForUsageLocation(importingSourceFile, importLiteral); - var resolved = host.resolveModuleNameLiterals || !host.resolveModuleNames ? (_a = importingSourceFile.resolvedModules) == null ? void 0 : _a.get(importLiteral.text, mode) : host.getResolvedModuleWithFailedLookupLocationsFromCache && host.getResolvedModuleWithFailedLookupLocationsFromCache(importLiteral.text, importingSourceFile.fileName, mode); - return getSourceFileToImportFromResolved(importLiteral, resolved, oldToNew, program.getSourceFiles()); - } -} -function getSourceFileToImportFromResolved(importLiteral, resolved, oldToNew, sourceFiles) { - if (!resolved) - return void 0; - if (resolved.resolvedModule) { - var result2 = tryChange(resolved.resolvedModule.resolvedFileName); - if (result2) - return result2; - } - var result = forEach(resolved.failedLookupLocations, tryChangeWithIgnoringPackageJsonExisting) || pathIsRelative(importLiteral.text) && forEach(resolved.failedLookupLocations, tryChangeWithIgnoringPackageJson); - if (result) - return result; - return resolved.resolvedModule && { newFileName: resolved.resolvedModule.resolvedFileName, updated: false }; - function tryChangeWithIgnoringPackageJsonExisting(oldFileName) { - var newFileName = oldToNew(oldFileName); - return newFileName && find(sourceFiles, function (src) { return src.fileName === newFileName; }) ? tryChangeWithIgnoringPackageJson(oldFileName) : void 0; - } - function tryChangeWithIgnoringPackageJson(oldFileName) { - return !endsWith(oldFileName, "/package.json") ? tryChange(oldFileName) : void 0; - } - function tryChange(oldFileName) { - var newFileName = oldToNew(oldFileName); - return newFileName && { newFileName: newFileName, updated: true }; - } -} -function updateImportsWorker(sourceFile, changeTracker, updateRef, updateImport2) { - var e_661, _t, e_662, _u; - try { - for (var _v = __values(sourceFile.referencedFiles || emptyArray), _w = _v.next(); !_w.done; _w = _v.next()) { - var ref = _w.value; - var updated = updateRef(ref.fileName); - if (updated !== void 0 && updated !== sourceFile.text.slice(ref.pos, ref.end)) - changeTracker.replaceRangeWithText(sourceFile, ref, updated); - } - } - catch (e_661_1) { e_661 = { error: e_661_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_661) throw e_661.error; } - } - try { - for (var _x = __values(sourceFile.imports), _y = _x.next(); !_y.done; _y = _x.next()) { - var importStringLiteral = _y.value; - var updated = updateImport2(importStringLiteral); - if (updated !== void 0 && updated !== importStringLiteral.text) - changeTracker.replaceRangeWithText(sourceFile, createStringRange(importStringLiteral, sourceFile), updated); - } - } - catch (e_662_1) { e_662 = { error: e_662_1 }; } - finally { - try { - if (_y && !_y.done && (_u = _x.return)) _u.call(_x); - } - finally { if (e_662) throw e_662.error; } - } -} -function createStringRange(node, sourceFile) { - return createRange(node.getStart(sourceFile) + 1, node.end - 1); -} -function forEachProperty(objectLiteral, cb) { - var e_663, _t; - if (!isObjectLiteralExpression(objectLiteral)) - return; - try { - for (var _u = __values(objectLiteral.properties), _v = _u.next(); !_v.done; _v = _u.next()) { - var property = _v.value; - if (isPropertyAssignment(property) && isStringLiteral(property.name)) { - cb(property, property.name.text); - } - } - } - catch (e_663_1) { e_663 = { error: e_663_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_663) throw e_663.error; } - } -} -// src/services/patternMatcher.ts -var PatternMatchKind = /* @__PURE__ */ (function (PatternMatchKind2) { - PatternMatchKind2[PatternMatchKind2["exact"] = 0] = "exact"; - PatternMatchKind2[PatternMatchKind2["prefix"] = 1] = "prefix"; - PatternMatchKind2[PatternMatchKind2["substring"] = 2] = "substring"; - PatternMatchKind2[PatternMatchKind2["camelCase"] = 3] = "camelCase"; - return PatternMatchKind2; -})(PatternMatchKind || {}); -function createPatternMatch(kind, isCaseSensitive) { - return { - kind: kind, - isCaseSensitive: isCaseSensitive - }; -} -function createPatternMatcher(pattern) { - var stringToWordSpans = /* @__PURE__ */ new Map(); - var dotSeparatedSegments = pattern.trim().split(".").map(function (p) { return createSegment(p.trim()); }); - if (dotSeparatedSegments.some(function (segment) { return !segment.subWordTextChunks.length; })) - return void 0; - return { - getFullMatch: function (containers, candidate) { return getFullMatch(containers, candidate, dotSeparatedSegments, stringToWordSpans); }, - getMatchForLastSegmentOfPattern: function (candidate) { return matchSegment(candidate, last(dotSeparatedSegments), stringToWordSpans); }, - patternContainsDots: dotSeparatedSegments.length > 1 - }; -} -function getFullMatch(candidateContainers, candidate, dotSeparatedSegments, stringToWordSpans) { - var candidateMatch = matchSegment(candidate, last(dotSeparatedSegments), stringToWordSpans); - if (!candidateMatch) { - return void 0; - } - if (dotSeparatedSegments.length - 1 > candidateContainers.length) { - return void 0; - } - var bestMatch; - for (var i = dotSeparatedSegments.length - 2, j = candidateContainers.length - 1; i >= 0; i -= 1, j -= 1) { - bestMatch = betterMatch(bestMatch, matchSegment(candidateContainers[j], dotSeparatedSegments[i], stringToWordSpans)); - } - return bestMatch; -} -function getWordSpans(word, stringToWordSpans) { - var spans = stringToWordSpans.get(word); - if (!spans) { - stringToWordSpans.set(word, spans = breakIntoWordSpans(word)); - } - return spans; -} -function matchTextChunk(candidate, chunk, stringToWordSpans) { - var e_664, _t; - var index = indexOfIgnoringCase(candidate, chunk.textLowerCase); - if (index === 0) { - return createPatternMatch(chunk.text.length === candidate.length ? 0 /* exact */ : 1 /* prefix */, - /*isCaseSensitive:*/ - startsWith(candidate, chunk.text)); - } - if (chunk.isLowerCase) { - if (index === -1) - return void 0; - var wordSpans = getWordSpans(candidate, stringToWordSpans); - try { - for (var wordSpans_1 = __values(wordSpans), wordSpans_1_1 = wordSpans_1.next(); !wordSpans_1_1.done; wordSpans_1_1 = wordSpans_1.next()) { - var span = wordSpans_1_1.value; - if (partStartsWith(candidate, span, chunk.text, - /*ignoreCase*/ - true)) { - return createPatternMatch(2 /* substring */, - /*isCaseSensitive:*/ - partStartsWith(candidate, span, chunk.text, - /*ignoreCase*/ - false)); - } - } - } - catch (e_664_1) { e_664 = { error: e_664_1 }; } - finally { - try { - if (wordSpans_1_1 && !wordSpans_1_1.done && (_t = wordSpans_1.return)) _t.call(wordSpans_1); - } - finally { if (e_664) throw e_664.error; } - } - if (chunk.text.length < candidate.length && isUpperCaseLetter(candidate.charCodeAt(index))) { - return createPatternMatch(2 /* substring */, - /*isCaseSensitive*/ - false); - } - } - else { - if (candidate.indexOf(chunk.text) > 0) { - return createPatternMatch(2 /* substring */, - /*isCaseSensitive*/ - true); - } - if (chunk.characterSpans.length > 0) { - var candidateParts = getWordSpans(candidate, stringToWordSpans); - var isCaseSensitive = tryCamelCaseMatch(candidate, candidateParts, chunk, - /*ignoreCase*/ - false) ? true : tryCamelCaseMatch(candidate, candidateParts, chunk, - /*ignoreCase*/ - true) ? false : void 0; - if (isCaseSensitive !== void 0) { - return createPatternMatch(3 /* camelCase */, isCaseSensitive); - } - } - } -} -function matchSegment(candidate, segment, stringToWordSpans) { - var e_665, _t; - if (every2(segment.totalTextChunk.text, function (ch) { return ch !== 32 /* space */ && ch !== 42; } /* asterisk */)) { - var match = matchTextChunk(candidate, segment.totalTextChunk, stringToWordSpans); - if (match) - return match; - } - var subWordTextChunks = segment.subWordTextChunks; - var bestMatch; - try { - for (var subWordTextChunks_1 = __values(subWordTextChunks), subWordTextChunks_1_1 = subWordTextChunks_1.next(); !subWordTextChunks_1_1.done; subWordTextChunks_1_1 = subWordTextChunks_1.next()) { - var subWordTextChunk = subWordTextChunks_1_1.value; - bestMatch = betterMatch(bestMatch, matchTextChunk(candidate, subWordTextChunk, stringToWordSpans)); - } - } - catch (e_665_1) { e_665 = { error: e_665_1 }; } - finally { - try { - if (subWordTextChunks_1_1 && !subWordTextChunks_1_1.done && (_t = subWordTextChunks_1.return)) _t.call(subWordTextChunks_1); - } - finally { if (e_665) throw e_665.error; } - } - return bestMatch; -} -function betterMatch(a, b) { - return min([a, b], compareMatches); -} -function compareMatches(a, b) { - return a === void 0 ? 1 /* GreaterThan */ : b === void 0 ? -1 /* LessThan */ : compareValues(a.kind, b.kind) || compareBooleans(!a.isCaseSensitive, !b.isCaseSensitive); -} -function partStartsWith(candidate, candidateSpan, pattern, ignoreCase, patternSpan) { - if (patternSpan === void 0) { patternSpan = { start: 0, length: pattern.length }; } - return patternSpan.length <= candidateSpan.length && everyInRange(0, patternSpan.length, function (i) { return equalChars(pattern.charCodeAt(patternSpan.start + i), candidate.charCodeAt(candidateSpan.start + i), ignoreCase); }); -} -function equalChars(ch1, ch2, ignoreCase) { - return ignoreCase ? toLowerCase2(ch1) === toLowerCase2(ch2) : ch1 === ch2; -} -function tryCamelCaseMatch(candidate, candidateParts, chunk, ignoreCase) { - var chunkCharacterSpans = chunk.characterSpans; - var currentCandidate = 0; - var currentChunkSpan = 0; - var firstMatch; - var contiguous; - while (true) { - if (currentChunkSpan === chunkCharacterSpans.length) { - return true; - } - else if (currentCandidate === candidateParts.length) { - return false; - } - var candidatePart = candidateParts[currentCandidate]; - var gotOneMatchThisCandidate = false; - for (; currentChunkSpan < chunkCharacterSpans.length; currentChunkSpan++) { - var chunkCharacterSpan = chunkCharacterSpans[currentChunkSpan]; - if (gotOneMatchThisCandidate) { - if (!isUpperCaseLetter(chunk.text.charCodeAt(chunkCharacterSpans[currentChunkSpan - 1].start)) || !isUpperCaseLetter(chunk.text.charCodeAt(chunkCharacterSpans[currentChunkSpan].start))) { - break; - } - } - if (!partStartsWith(candidate, candidatePart, chunk.text, ignoreCase, chunkCharacterSpan)) { - break; - } - gotOneMatchThisCandidate = true; - firstMatch = firstMatch === void 0 ? currentCandidate : firstMatch; - contiguous = contiguous === void 0 ? true : contiguous; - candidatePart = createTextSpan(candidatePart.start + chunkCharacterSpan.length, candidatePart.length - chunkCharacterSpan.length); - } - if (!gotOneMatchThisCandidate && contiguous !== void 0) { - contiguous = false; - } - currentCandidate++; - } -} -function createSegment(text) { - return { - totalTextChunk: createTextChunk(text), - subWordTextChunks: breakPatternIntoTextChunks(text) - }; -} -function isUpperCaseLetter(ch) { - if (ch >= 65 /* A */ && ch <= 90 /* Z */) { - return true; - } - if (ch < 127 /* maxAsciiCharacter */ || !isUnicodeIdentifierStart(ch, 99 /* Latest */)) { - return false; - } - var str = String.fromCharCode(ch); - return str === str.toUpperCase(); -} -function isLowerCaseLetter(ch) { - if (ch >= 97 /* a */ && ch <= 122 /* z */) { - return true; - } - if (ch < 127 /* maxAsciiCharacter */ || !isUnicodeIdentifierStart(ch, 99 /* Latest */)) { - return false; - } - var str = String.fromCharCode(ch); - return str === str.toLowerCase(); -} -function indexOfIgnoringCase(str, value) { - var n = str.length - value.length; - var _loop_42 = function (start2) { - if (every2(value, function (valueChar, i) { return toLowerCase2(str.charCodeAt(i + start2)) === valueChar; })) { - return { value: start2 }; - } - }; - for (var start2 = 0; start2 <= n; start2++) { - var state_16 = _loop_42(start2); - if (typeof state_16 === "object") - return state_16.value; - } - return -1; -} -function toLowerCase2(ch) { - if (ch >= 65 /* A */ && ch <= 90 /* Z */) { - return 97 /* a */ + (ch - 65 /* A */); - } - if (ch < 127 /* maxAsciiCharacter */) { - return ch; - } - return String.fromCharCode(ch).toLowerCase().charCodeAt(0); -} -function isDigit2(ch) { - return ch >= 48 /* _0 */ && ch <= 57 /* _9 */; -} -function isWordChar(ch) { - return isUpperCaseLetter(ch) || isLowerCaseLetter(ch) || isDigit2(ch) || ch === 95 /* _ */ || ch === 36 /* $ */; -} -function breakPatternIntoTextChunks(pattern) { - var result = []; - var wordStart = 0; - var wordLength = 0; - for (var i = 0; i < pattern.length; i++) { - var ch = pattern.charCodeAt(i); - if (isWordChar(ch)) { - if (wordLength === 0) { - wordStart = i; - } - wordLength++; - } - else { - if (wordLength > 0) { - result.push(createTextChunk(pattern.substr(wordStart, wordLength))); - wordLength = 0; - } - } - } - if (wordLength > 0) { - result.push(createTextChunk(pattern.substr(wordStart, wordLength))); - } - return result; -} -function createTextChunk(text) { - var textLowerCase = text.toLowerCase(); - return { - text: text, - textLowerCase: textLowerCase, - isLowerCase: text === textLowerCase, - characterSpans: breakIntoCharacterSpans(text) - }; -} -function breakIntoCharacterSpans(identifier) { - return breakIntoSpans(identifier, - /*word*/ - false); -} -function breakIntoWordSpans(identifier) { - return breakIntoSpans(identifier, - /*word*/ - true); -} -function breakIntoSpans(identifier, word) { - var result = []; - var wordStart = 0; - for (var i = 1; i < identifier.length; i++) { - var lastIsDigit = isDigit2(identifier.charCodeAt(i - 1)); - var currentIsDigit = isDigit2(identifier.charCodeAt(i)); - var hasTransitionFromLowerToUpper = transitionFromLowerToUpper(identifier, word, i); - var hasTransitionFromUpperToLower = word && transitionFromUpperToLower(identifier, i, wordStart); - if (charIsPunctuation(identifier.charCodeAt(i - 1)) || charIsPunctuation(identifier.charCodeAt(i)) || lastIsDigit !== currentIsDigit || hasTransitionFromLowerToUpper || hasTransitionFromUpperToLower) { - if (!isAllPunctuation(identifier, wordStart, i)) { - result.push(createTextSpan(wordStart, i - wordStart)); - } - wordStart = i; - } - } - if (!isAllPunctuation(identifier, wordStart, identifier.length)) { - result.push(createTextSpan(wordStart, identifier.length - wordStart)); - } - return result; -} -function charIsPunctuation(ch) { - switch (ch) { - case 33 /* exclamation */: - case 34 /* doubleQuote */: - case 35 /* hash */: - case 37 /* percent */: - case 38 /* ampersand */: - case 39 /* singleQuote */: - case 40 /* openParen */: - case 41 /* closeParen */: - case 42 /* asterisk */: - case 44 /* comma */: - case 45 /* minus */: - case 46 /* dot */: - case 47 /* slash */: - case 58 /* colon */: - case 59 /* semicolon */: - case 63 /* question */: - case 64 /* at */: - case 91 /* openBracket */: - case 92 /* backslash */: - case 93 /* closeBracket */: - case 95 /* _ */: - case 123 /* openBrace */: - case 125 /* closeBrace */: - return true; - } - return false; -} -function isAllPunctuation(identifier, start2, end) { - return every2(identifier, function (ch) { return charIsPunctuation(ch) && ch !== 95; } /* _ */, start2, end); -} -function transitionFromUpperToLower(identifier, index, wordStart) { - return index !== wordStart && index + 1 < identifier.length && isUpperCaseLetter(identifier.charCodeAt(index)) && isLowerCaseLetter(identifier.charCodeAt(index + 1)) && every2(identifier, isUpperCaseLetter, wordStart, index); -} -function transitionFromLowerToUpper(identifier, word, index) { - var lastIsUpper = isUpperCaseLetter(identifier.charCodeAt(index - 1)); - var currentIsUpper = isUpperCaseLetter(identifier.charCodeAt(index)); - return currentIsUpper && (!word || !lastIsUpper); -} -function everyInRange(start2, end, pred) { - for (var i = start2; i < end; i++) { - if (!pred(i)) { - return false; - } - } - return true; -} -function every2(s, pred, start2, end) { - if (start2 === void 0) { start2 = 0; } - if (end === void 0) { end = s.length; } - return everyInRange(start2, end, function (i) { return pred(s.charCodeAt(i), i); }); -} -// src/services/preProcess.ts -function preProcessFile(sourceText, readImportFiles, detectJavaScriptImports) { - var e_666, _t, e_667, _u; - if (readImportFiles === void 0) { readImportFiles = true; } - if (detectJavaScriptImports === void 0) { detectJavaScriptImports = false; } - var pragmaContext = { - languageVersion: 1 /* ES5 */, - // controls whether the token scanner considers unicode identifiers or not - shouldn't matter, since we're only using it for trivia - pragmas: void 0, - checkJsDirective: void 0, - referencedFiles: [], - typeReferenceDirectives: [], - libReferenceDirectives: [], - amdDependencies: [], - hasNoDefaultLib: void 0, - moduleName: void 0 - }; - var importedFiles = []; - var ambientExternalModules; - var lastToken; - var currentToken; - var braceNesting = 0; - var externalModule = false; - function nextToken() { - lastToken = currentToken; - currentToken = scanner.scan(); - if (currentToken === 19 /* OpenBraceToken */) { - braceNesting++; - } - else if (currentToken === 20 /* CloseBraceToken */) { - braceNesting--; - } - return currentToken; - } - function getFileReference() { - var fileName = scanner.getTokenValue(); - var pos = scanner.getTokenStart(); - return { fileName: fileName, pos: pos, end: pos + fileName.length }; - } - function recordAmbientExternalModule() { - if (!ambientExternalModules) { - ambientExternalModules = []; - } - ambientExternalModules.push({ ref: getFileReference(), depth: braceNesting }); - } - function recordModuleName() { - importedFiles.push(getFileReference()); - markAsExternalModuleIfTopLevel(); - } - function markAsExternalModuleIfTopLevel() { - if (braceNesting === 0) { - externalModule = true; - } - } - function tryConsumeDeclare() { - var token = scanner.getToken(); - if (token === 138 /* DeclareKeyword */) { - token = nextToken(); - if (token === 144 /* ModuleKeyword */) { - token = nextToken(); - if (token === 11 /* StringLiteral */) { - recordAmbientExternalModule(); - } - } - return true; - } - return false; - } - function tryConsumeImport() { - if (lastToken === 25 /* DotToken */) { - return false; - } - var token = scanner.getToken(); - if (token === 102 /* ImportKeyword */) { - token = nextToken(); - if (token === 21 /* OpenParenToken */) { - token = nextToken(); - if (token === 11 /* StringLiteral */ || token === 15 /* NoSubstitutionTemplateLiteral */) { - recordModuleName(); - return true; - } - } - else if (token === 11 /* StringLiteral */) { - recordModuleName(); - return true; - } - else { - if (token === 156 /* TypeKeyword */) { - var skipTypeKeyword = scanner.lookAhead(function () { - var token2 = scanner.scan(); - return token2 !== 161 /* FromKeyword */ && (token2 === 42 /* AsteriskToken */ || token2 === 19 /* OpenBraceToken */ || token2 === 80 /* Identifier */ || isKeyword(token2)); - }); - if (skipTypeKeyword) { - token = nextToken(); - } - } - if (token === 80 /* Identifier */ || isKeyword(token)) { - token = nextToken(); - if (token === 161 /* FromKeyword */) { - token = nextToken(); - if (token === 11 /* StringLiteral */) { - recordModuleName(); - return true; - } - } - else if (token === 64 /* EqualsToken */) { - if (tryConsumeRequireCall( - /*skipCurrentToken*/ - true)) { - return true; - } - } - else if (token === 28 /* CommaToken */) { - token = nextToken(); - } - else { - return true; - } - } - if (token === 19 /* OpenBraceToken */) { - token = nextToken(); - while (token !== 20 /* CloseBraceToken */ && token !== 1 /* EndOfFileToken */) { - token = nextToken(); - } - if (token === 20 /* CloseBraceToken */) { - token = nextToken(); - if (token === 161 /* FromKeyword */) { - token = nextToken(); - if (token === 11 /* StringLiteral */) { - recordModuleName(); - } - } - } - } - else if (token === 42 /* AsteriskToken */) { - token = nextToken(); - if (token === 130 /* AsKeyword */) { - token = nextToken(); - if (token === 80 /* Identifier */ || isKeyword(token)) { - token = nextToken(); - if (token === 161 /* FromKeyword */) { - token = nextToken(); - if (token === 11 /* StringLiteral */) { - recordModuleName(); - } - } - } - } - } - } - return true; - } - return false; - } - function tryConsumeExport() { - var token = scanner.getToken(); - if (token === 95 /* ExportKeyword */) { - markAsExternalModuleIfTopLevel(); - token = nextToken(); - if (token === 156 /* TypeKeyword */) { - var skipTypeKeyword = scanner.lookAhead(function () { - var token2 = scanner.scan(); - return token2 === 42 /* AsteriskToken */ || token2 === 19 /* OpenBraceToken */; - }); - if (skipTypeKeyword) { - token = nextToken(); - } - } - if (token === 19 /* OpenBraceToken */) { - token = nextToken(); - while (token !== 20 /* CloseBraceToken */ && token !== 1 /* EndOfFileToken */) { - token = nextToken(); - } - if (token === 20 /* CloseBraceToken */) { - token = nextToken(); - if (token === 161 /* FromKeyword */) { - token = nextToken(); - if (token === 11 /* StringLiteral */) { - recordModuleName(); - } - } - } - } - else if (token === 42 /* AsteriskToken */) { - token = nextToken(); - if (token === 161 /* FromKeyword */) { - token = nextToken(); - if (token === 11 /* StringLiteral */) { - recordModuleName(); - } - } - } - else if (token === 102 /* ImportKeyword */) { - token = nextToken(); - if (token === 156 /* TypeKeyword */) { - var skipTypeKeyword = scanner.lookAhead(function () { - var token2 = scanner.scan(); - return token2 === 80 /* Identifier */ || isKeyword(token2); - }); - if (skipTypeKeyword) { - token = nextToken(); - } - } - if (token === 80 /* Identifier */ || isKeyword(token)) { - token = nextToken(); - if (token === 64 /* EqualsToken */) { - if (tryConsumeRequireCall( - /*skipCurrentToken*/ - true)) { - return true; - } - } - } - } - return true; - } - return false; - } - function tryConsumeRequireCall(skipCurrentToken, allowTemplateLiterals) { - if (allowTemplateLiterals === void 0) { allowTemplateLiterals = false; } - var token = skipCurrentToken ? nextToken() : scanner.getToken(); - if (token === 149 /* RequireKeyword */) { - token = nextToken(); - if (token === 21 /* OpenParenToken */) { - token = nextToken(); - if (token === 11 /* StringLiteral */ || allowTemplateLiterals && token === 15 /* NoSubstitutionTemplateLiteral */) { - recordModuleName(); - } - } - return true; - } - return false; - } - function tryConsumeDefine() { - var token = scanner.getToken(); - if (token === 80 /* Identifier */ && scanner.getTokenValue() === "define") { - token = nextToken(); - if (token !== 21 /* OpenParenToken */) { - return true; - } - token = nextToken(); - if (token === 11 /* StringLiteral */ || token === 15 /* NoSubstitutionTemplateLiteral */) { - token = nextToken(); - if (token === 28 /* CommaToken */) { - token = nextToken(); - } - else { - return true; - } - } - if (token !== 23 /* OpenBracketToken */) { - return true; - } - token = nextToken(); - while (token !== 24 /* CloseBracketToken */ && token !== 1 /* EndOfFileToken */) { - if (token === 11 /* StringLiteral */ || token === 15 /* NoSubstitutionTemplateLiteral */) { - recordModuleName(); - } - token = nextToken(); - } - return true; - } - return false; - } - function processImports() { - scanner.setText(sourceText); - nextToken(); - while (true) { - if (scanner.getToken() === 1 /* EndOfFileToken */) { - break; - } - if (scanner.getToken() === 16 /* TemplateHead */) { - var stack = [scanner.getToken()]; - loop: while (length(stack)) { - var token = scanner.scan(); - switch (token) { - case 1 /* EndOfFileToken */: - break loop; - case 102 /* ImportKeyword */: - tryConsumeImport(); - break; - case 16 /* TemplateHead */: - stack.push(token); - break; - case 19 /* OpenBraceToken */: - if (length(stack)) { - stack.push(token); - } - break; - case 20 /* CloseBraceToken */: - if (length(stack)) { - if (lastOrUndefined(stack) === 16 /* TemplateHead */) { - if (scanner.reScanTemplateToken( - /*isTaggedTemplate*/ - false) === 18 /* TemplateTail */) { - stack.pop(); - } - } - else { - stack.pop(); - } - } - break; - } - } - nextToken(); - } - if (tryConsumeDeclare() || tryConsumeImport() || tryConsumeExport() || detectJavaScriptImports && (tryConsumeRequireCall( - /*skipCurrentToken*/ - false, - /*allowTemplateLiterals*/ - true) || tryConsumeDefine())) { - continue; - } - else { - nextToken(); - } - } - scanner.setText(void 0); - } - if (readImportFiles) { - processImports(); - } - processCommentPragmas(pragmaContext, sourceText); - processPragmasIntoFields(pragmaContext, noop); - if (externalModule) { - if (ambientExternalModules) { - try { - for (var ambientExternalModules_1 = __values(ambientExternalModules), ambientExternalModules_1_1 = ambientExternalModules_1.next(); !ambientExternalModules_1_1.done; ambientExternalModules_1_1 = ambientExternalModules_1.next()) { - var decl = ambientExternalModules_1_1.value; - importedFiles.push(decl.ref); - } - } - catch (e_666_1) { e_666 = { error: e_666_1 }; } - finally { - try { - if (ambientExternalModules_1_1 && !ambientExternalModules_1_1.done && (_t = ambientExternalModules_1.return)) _t.call(ambientExternalModules_1); - } - finally { if (e_666) throw e_666.error; } - } - } - return { referencedFiles: pragmaContext.referencedFiles, typeReferenceDirectives: pragmaContext.typeReferenceDirectives, libReferenceDirectives: pragmaContext.libReferenceDirectives, importedFiles: importedFiles, isLibFile: !!pragmaContext.hasNoDefaultLib, ambientExternalModules: void 0 }; - } - else { - var ambientModuleNames = void 0; - if (ambientExternalModules) { - try { - for (var ambientExternalModules_2 = __values(ambientExternalModules), ambientExternalModules_2_1 = ambientExternalModules_2.next(); !ambientExternalModules_2_1.done; ambientExternalModules_2_1 = ambientExternalModules_2.next()) { - var decl = ambientExternalModules_2_1.value; - if (decl.depth === 0) { - if (!ambientModuleNames) { - ambientModuleNames = []; - } - ambientModuleNames.push(decl.ref.fileName); - } - else { - importedFiles.push(decl.ref); - } - } - } - catch (e_667_1) { e_667 = { error: e_667_1 }; } - finally { - try { - if (ambientExternalModules_2_1 && !ambientExternalModules_2_1.done && (_u = ambientExternalModules_2.return)) _u.call(ambientExternalModules_2); - } - finally { if (e_667) throw e_667.error; } - } - } - return { referencedFiles: pragmaContext.referencedFiles, typeReferenceDirectives: pragmaContext.typeReferenceDirectives, libReferenceDirectives: pragmaContext.libReferenceDirectives, importedFiles: importedFiles, isLibFile: !!pragmaContext.hasNoDefaultLib, ambientExternalModules: ambientModuleNames }; - } -} -// src/services/sourcemaps.ts -var base64UrlRegExp = /^data:(?:application\/json(?:;charset=[uU][tT][fF]-8);base64,([A-Za-z0-9+/=]+)$)?/; -function getSourceMapper(host) { - var getCanonicalFileName = createGetCanonicalFileName(host.useCaseSensitiveFileNames()); - var currentDirectory = host.getCurrentDirectory(); - var sourceFileLike = /* @__PURE__ */ new Map(); - var documentPositionMappers = /* @__PURE__ */ new Map(); - return { tryGetSourcePosition: tryGetSourcePosition, tryGetGeneratedPosition: tryGetGeneratedPosition, toLineColumnOffset: toLineColumnOffset, clearCache: clearCache }; - function toPath3(fileName) { - return toPath(fileName, currentDirectory, getCanonicalFileName); - } - function getDocumentPositionMapper2(generatedFileName, sourceFileName) { - var path = toPath3(generatedFileName); - var value = documentPositionMappers.get(path); - if (value) - return value; - var mapper; - if (host.getDocumentPositionMapper) { - mapper = host.getDocumentPositionMapper(generatedFileName, sourceFileName); - } - else if (host.readFile) { - var file = getSourceFileLike(generatedFileName); - mapper = file && getDocumentPositionMapper({ getSourceFileLike: getSourceFileLike, getCanonicalFileName: getCanonicalFileName, log: function (s) { return host.log(s); } }, generatedFileName, getLineInfo(file.text, getLineStarts(file)), function (f) { return !host.fileExists || host.fileExists(f) ? host.readFile(f) : void 0; }); - } - documentPositionMappers.set(path, mapper || identitySourceMapConsumer); - return mapper || identitySourceMapConsumer; - } - function tryGetSourcePosition(info) { - if (!isDeclarationFileName(info.fileName)) - return void 0; - var file = getSourceFile(info.fileName); - if (!file) - return void 0; - var newLoc = getDocumentPositionMapper2(info.fileName).getSourcePosition(info); - return !newLoc || newLoc === info ? void 0 : tryGetSourcePosition(newLoc) || newLoc; - } - function tryGetGeneratedPosition(info) { - if (isDeclarationFileName(info.fileName)) - return void 0; - var sourceFile = getSourceFile(info.fileName); - if (!sourceFile) - return void 0; - var program = host.getProgram(); - if (program.isSourceOfProjectReferenceRedirect(sourceFile.fileName)) { - return void 0; - } - var options = program.getCompilerOptions(); - var outPath = outFile(options); - var declarationPath = outPath ? removeFileExtension(outPath) + ".d.ts" /* Dts */ : getDeclarationEmitOutputFilePathWorker(info.fileName, program.getCompilerOptions(), currentDirectory, program.getCommonSourceDirectory(), getCanonicalFileName); - if (declarationPath === void 0) - return void 0; - var newLoc = getDocumentPositionMapper2(declarationPath, info.fileName).getGeneratedPosition(info); - return newLoc === info ? void 0 : newLoc; - } - function getSourceFile(fileName) { - var program = host.getProgram(); - if (!program) - return void 0; - var path = toPath3(fileName); - var file = program.getSourceFileByPath(path); - return file && file.resolvedPath === path ? file : void 0; - } - function getOrCreateSourceFileLike(fileName) { - var path = toPath3(fileName); - var fileFromCache = sourceFileLike.get(path); - if (fileFromCache !== void 0) - return fileFromCache ? fileFromCache : void 0; - if (!host.readFile || host.fileExists && !host.fileExists(path)) { - sourceFileLike.set(path, false); - return void 0; - } - var text = host.readFile(path); - var file = text ? createSourceFileLike(text) : false; - sourceFileLike.set(path, file); - return file ? file : void 0; - } - function getSourceFileLike(fileName) { - return !host.getSourceFileLike ? getSourceFile(fileName) || getOrCreateSourceFileLike(fileName) : host.getSourceFileLike(fileName); - } - function toLineColumnOffset(fileName, position) { - var file = getSourceFileLike(fileName); - return file.getLineAndCharacterOfPosition(position); - } - function clearCache() { - sourceFileLike.clear(); - documentPositionMappers.clear(); - } -} -function getDocumentPositionMapper(host, generatedFileName, generatedFileLineInfo, readMapFile) { - var e_668, _t; - var mapFileName = tryGetSourceMappingURL(generatedFileLineInfo); - if (mapFileName) { - var match = base64UrlRegExp.exec(mapFileName); - if (match) { - if (match[1]) { - var base64Object = match[1]; - return convertDocumentToSourceMapper(host, base64decode(sys, base64Object), generatedFileName); - } - mapFileName = void 0; - } - } - var possibleMapLocations = []; - if (mapFileName) { - possibleMapLocations.push(mapFileName); - } - possibleMapLocations.push(generatedFileName + ".map"); - var originalMapFileName = mapFileName && getNormalizedAbsolutePath(mapFileName, getDirectoryPath(generatedFileName)); - try { - for (var possibleMapLocations_1 = __values(possibleMapLocations), possibleMapLocations_1_1 = possibleMapLocations_1.next(); !possibleMapLocations_1_1.done; possibleMapLocations_1_1 = possibleMapLocations_1.next()) { - var location_11 = possibleMapLocations_1_1.value; - var mapFileName2 = getNormalizedAbsolutePath(location_11, getDirectoryPath(generatedFileName)); - var mapFileContents = readMapFile(mapFileName2, originalMapFileName); - if (isString(mapFileContents)) { - return convertDocumentToSourceMapper(host, mapFileContents, mapFileName2); - } - if (mapFileContents !== void 0) { - return mapFileContents || void 0; - } - } - } - catch (e_668_1) { e_668 = { error: e_668_1 }; } - finally { - try { - if (possibleMapLocations_1_1 && !possibleMapLocations_1_1.done && (_t = possibleMapLocations_1.return)) _t.call(possibleMapLocations_1); - } - finally { if (e_668) throw e_668.error; } - } - return void 0; -} -function convertDocumentToSourceMapper(host, contents, mapFileName) { - var map2 = tryParseRawSourceMap(contents); - if (!map2 || !map2.sources || !map2.file || !map2.mappings) { - return void 0; - } - if (map2.sourcesContent && map2.sourcesContent.some(isString)) - return void 0; - return createDocumentPositionMapper(host, map2, mapFileName); -} -function createSourceFileLike(text, lineMap) { - return { - text: text, - lineMap: lineMap, - getLineAndCharacterOfPosition: function (pos) { - return computeLineAndCharacterOfPosition(getLineStarts(this), pos); - } - }; -} -// src/services/suggestionDiagnostics.ts -var visitedNestedConvertibleFunctions = /* @__PURE__ */ new Map(); -function computeSuggestionDiagnostics(sourceFile, program, cancellationToken) { - var e_669, _t; - program.getSemanticDiagnostics(sourceFile, cancellationToken); - var diags = []; - var checker = program.getTypeChecker(); - var isCommonJSFile = sourceFile.impliedNodeFormat === 1 /* CommonJS */ || fileExtensionIsOneOf(sourceFile.fileName, [".cts" /* Cts */, ".cjs" /* Cjs */]); - if (!isCommonJSFile && sourceFile.commonJsModuleIndicator && (programContainsEsModules(program) || compilerOptionsIndicateEsModules(program.getCompilerOptions())) && containsTopLevelCommonjs(sourceFile)) { - diags.push(createDiagnosticForNode(getErrorNodeFromCommonJsIndicator(sourceFile.commonJsModuleIndicator), Diagnostics.File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module)); - } - var isJsFile = isSourceFileJS(sourceFile); - visitedNestedConvertibleFunctions.clear(); - check(sourceFile); - if (getAllowSyntheticDefaultImports(program.getCompilerOptions())) { - try { - for (var _u = __values(sourceFile.imports), _v = _u.next(); !_v.done; _v = _u.next()) { - var moduleSpecifier = _v.value; - var importNode = importFromModuleSpecifier(moduleSpecifier); - var name_100 = importNameForConvertToDefaultImport(importNode); - if (!name_100) - continue; - var module2 = getResolvedModule(sourceFile, moduleSpecifier.text, getModeForUsageLocation(sourceFile, moduleSpecifier)); - var resolvedFile = module2 && program.getSourceFile(module2.resolvedFileName); - if (resolvedFile && resolvedFile.externalModuleIndicator && resolvedFile.externalModuleIndicator !== true && isExportAssignment(resolvedFile.externalModuleIndicator) && resolvedFile.externalModuleIndicator.isExportEquals) { - diags.push(createDiagnosticForNode(name_100, Diagnostics.Import_may_be_converted_to_a_default_import)); - } - } - } - catch (e_669_1) { e_669 = { error: e_669_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_669) throw e_669.error; } - } - } - addRange(diags, sourceFile.bindSuggestionDiagnostics); - addRange(diags, program.getSuggestionDiagnostics(sourceFile, cancellationToken)); - return diags.sort(function (d1, d2) { return d1.start - d2.start; }); - function check(node) { - var e_670, _t; - if (isJsFile) { - if (canBeConvertedToClass(node, checker)) { - diags.push(createDiagnosticForNode(isVariableDeclaration(node.parent) ? node.parent.name : node, Diagnostics.This_constructor_function_may_be_converted_to_a_class_declaration)); - } - } - else { - if (isVariableStatement(node) && node.parent === sourceFile && node.declarationList.flags & 2 /* Const */ && node.declarationList.declarations.length === 1) { - var init = node.declarationList.declarations[0].initializer; - if (init && isRequireCall(init, - /*requireStringLiteralLikeArgument*/ - true)) { - diags.push(createDiagnosticForNode(init, Diagnostics.require_call_may_be_converted_to_an_import)); - } - } - var jsdocTypedefNodes = ts_codefix_exports.getJSDocTypedefNodes(node); - try { - for (var jsdocTypedefNodes_1 = __values(jsdocTypedefNodes), jsdocTypedefNodes_1_1 = jsdocTypedefNodes_1.next(); !jsdocTypedefNodes_1_1.done; jsdocTypedefNodes_1_1 = jsdocTypedefNodes_1.next()) { - var jsdocTypedefNode = jsdocTypedefNodes_1_1.value; - diags.push(createDiagnosticForNode(jsdocTypedefNode, Diagnostics.JSDoc_typedef_may_be_converted_to_TypeScript_type)); - } - } - catch (e_670_1) { e_670 = { error: e_670_1 }; } - finally { - try { - if (jsdocTypedefNodes_1_1 && !jsdocTypedefNodes_1_1.done && (_t = jsdocTypedefNodes_1.return)) _t.call(jsdocTypedefNodes_1); - } - finally { if (e_670) throw e_670.error; } - } - if (ts_codefix_exports.parameterShouldGetTypeFromJSDoc(node)) { - diags.push(createDiagnosticForNode(node.name || node, Diagnostics.JSDoc_types_may_be_moved_to_TypeScript_types)); - } - } - if (canBeConvertedToAsync(node)) { - addConvertToAsyncFunctionDiagnostics(node, checker, diags); - } - node.forEachChild(check); - } -} -function containsTopLevelCommonjs(sourceFile) { - return sourceFile.statements.some(function (statement) { - switch (statement.kind) { - case 243 /* VariableStatement */: - return statement.declarationList.declarations.some(function (decl) { return !!decl.initializer && isRequireCall(propertyAccessLeftHandSide(decl.initializer), - /*requireStringLiteralLikeArgument*/ - true); }); - case 244 /* ExpressionStatement */: { - var expression = statement.expression; - if (!isBinaryExpression(expression)) - return isRequireCall(expression, - /*requireStringLiteralLikeArgument*/ - true); - var kind = getAssignmentDeclarationKind(expression); - return kind === 1 /* ExportsProperty */ || kind === 2 /* ModuleExports */; - } - default: - return false; - } - }); -} -function propertyAccessLeftHandSide(node) { - return isPropertyAccessExpression(node) ? propertyAccessLeftHandSide(node.expression) : node; -} -function importNameForConvertToDefaultImport(node) { - switch (node.kind) { - case 272 /* ImportDeclaration */: - var importClause = node.importClause, moduleSpecifier = node.moduleSpecifier; - return importClause && !importClause.name && importClause.namedBindings && importClause.namedBindings.kind === 274 /* NamespaceImport */ && isStringLiteral(moduleSpecifier) ? importClause.namedBindings.name : void 0; - case 271 /* ImportEqualsDeclaration */: - return node.name; - default: - return void 0; - } -} -function addConvertToAsyncFunctionDiagnostics(node, checker, diags) { - if (isConvertibleFunction(node, checker) && !visitedNestedConvertibleFunctions.has(getKeyFromNode(node))) { - diags.push(createDiagnosticForNode(!node.name && isVariableDeclaration(node.parent) && isIdentifier(node.parent.name) ? node.parent.name : node, Diagnostics.This_may_be_converted_to_an_async_function)); - } -} -function isConvertibleFunction(node, checker) { - return !isAsyncFunction(node) && node.body && isBlock(node.body) && hasReturnStatementWithPromiseHandler(node.body, checker) && returnsPromise(node, checker); -} -function returnsPromise(node, checker) { - var signature = checker.getSignatureFromDeclaration(node); - var returnType = signature ? checker.getReturnTypeOfSignature(signature) : void 0; - return !!returnType && !!checker.getPromisedTypeOfPromise(returnType); -} -function getErrorNodeFromCommonJsIndicator(commonJsModuleIndicator) { - return isBinaryExpression(commonJsModuleIndicator) ? commonJsModuleIndicator.left : commonJsModuleIndicator; -} -function hasReturnStatementWithPromiseHandler(body, checker) { - return !!forEachReturnStatement(body, function (statement) { return isReturnStatementWithFixablePromiseHandler(statement, checker); }); -} -function isReturnStatementWithFixablePromiseHandler(node, checker) { - return isReturnStatement(node) && !!node.expression && isFixablePromiseHandler(node.expression, checker); -} -function isFixablePromiseHandler(node, checker) { - if (!isPromiseHandler(node) || !hasSupportedNumberOfArguments(node) || !node.arguments.every(function (arg) { return isFixablePromiseArgument(arg, checker); })) { - return false; - } - var currentNode = node.expression.expression; - while (isPromiseHandler(currentNode) || isPropertyAccessExpression(currentNode)) { - if (isCallExpression(currentNode)) { - if (!hasSupportedNumberOfArguments(currentNode) || !currentNode.arguments.every(function (arg) { return isFixablePromiseArgument(arg, checker); })) { - return false; - } - currentNode = currentNode.expression.expression; - } - else { - currentNode = currentNode.expression; - } - } - return true; -} -function isPromiseHandler(node) { - return isCallExpression(node) && (hasPropertyAccessExpressionWithName(node, "then") || hasPropertyAccessExpressionWithName(node, "catch") || hasPropertyAccessExpressionWithName(node, "finally")); -} -function hasSupportedNumberOfArguments(node) { - var name = node.expression.name.text; - var maxArguments = name === "then" ? 2 : name === "catch" ? 1 : name === "finally" ? 1 : 0; - if (node.arguments.length > maxArguments) - return false; - if (node.arguments.length < maxArguments) - return true; - return maxArguments === 1 || some(node.arguments, function (arg) { - return arg.kind === 106 /* NullKeyword */ || isIdentifier(arg) && arg.text === "undefined"; - }); -} -function isFixablePromiseArgument(arg, checker) { - switch (arg.kind) { - case 262 /* FunctionDeclaration */: - case 218 /* FunctionExpression */: - var functionFlags = getFunctionFlags(arg); - if (functionFlags & 1 /* Generator */) { - return false; - } - case 219 /* ArrowFunction */: - visitedNestedConvertibleFunctions.set(getKeyFromNode(arg), true); - case 106 /* NullKeyword */: - return true; - case 80 /* Identifier */: - case 211 /* PropertyAccessExpression */: { - var symbol = checker.getSymbolAtLocation(arg); - if (!symbol) { - return false; - } - return checker.isUndefinedSymbol(symbol) || some(skipAlias(symbol, checker).declarations, function (d) { return isFunctionLike(d) || hasInitializer(d) && !!d.initializer && isFunctionLike(d.initializer); }); - } - default: - return false; - } -} -function getKeyFromNode(exp) { - return "".concat(exp.pos.toString(), ":").concat(exp.end.toString()); -} -function canBeConvertedToClass(node, checker) { - var _a, _b, _c, _d; - if (isFunctionExpression(node)) { - if (isVariableDeclaration(node.parent) && ((_a = node.symbol.members) == null ? void 0 : _a.size)) { - return true; - } - var symbol = checker.getSymbolOfExpando(node, - /*allowDeclaration*/ - false); - return !!(symbol && (((_b = symbol.exports) == null ? void 0 : _b.size) || ((_c = symbol.members) == null ? void 0 : _c.size))); - } - if (isFunctionDeclaration(node)) { - return !!((_d = node.symbol.members) == null ? void 0 : _d.size); - } - return false; -} -function canBeConvertedToAsync(node) { - switch (node.kind) { - case 262 /* FunctionDeclaration */: - case 174 /* MethodDeclaration */: - case 218 /* FunctionExpression */: - case 219 /* ArrowFunction */: - return true; - default: - return false; - } -} -// src/services/transpile.ts -var optionsRedundantWithVerbatimModuleSyntax = /* @__PURE__ */ new Set([ - "isolatedModules", - "preserveValueImports", - "importsNotUsedAsValues" -]); -function transpileModule(input, transpileOptions) { - var e_671, _t; - var diagnostics = []; - var options = transpileOptions.compilerOptions ? fixupCompilerOptions(transpileOptions.compilerOptions, diagnostics) : {}; - var defaultOptions = getDefaultCompilerOptions2(); - for (var key in defaultOptions) { - if (hasProperty(defaultOptions, key) && options[key] === void 0) { - options[key] = defaultOptions[key]; - } - } - try { - for (var transpileOptionValueCompilerOptions_1 = __values(transpileOptionValueCompilerOptions), transpileOptionValueCompilerOptions_1_1 = transpileOptionValueCompilerOptions_1.next(); !transpileOptionValueCompilerOptions_1_1.done; transpileOptionValueCompilerOptions_1_1 = transpileOptionValueCompilerOptions_1.next()) { - var option = transpileOptionValueCompilerOptions_1_1.value; - if (options.verbatimModuleSyntax && optionsRedundantWithVerbatimModuleSyntax.has(option.name)) { - continue; - } - options[option.name] = option.transpileOptionValue; - } - } - catch (e_671_1) { e_671 = { error: e_671_1 }; } - finally { - try { - if (transpileOptionValueCompilerOptions_1_1 && !transpileOptionValueCompilerOptions_1_1.done && (_t = transpileOptionValueCompilerOptions_1.return)) _t.call(transpileOptionValueCompilerOptions_1); - } - finally { if (e_671) throw e_671.error; } - } - options.suppressOutputPathCheck = true; - options.allowNonTsExtensions = true; - var newLine = getNewLineCharacter(options); - var compilerHost = { - getSourceFile: function (fileName) { return fileName === normalizePath(inputFileName) ? sourceFile : void 0; }, - writeFile: function (name, text) { - if (fileExtensionIs(name, ".map")) { - Debug.assertEqual(sourceMapText, void 0, "Unexpected multiple source map outputs, file:", name); - sourceMapText = text; - } - else { - Debug.assertEqual(outputText, void 0, "Unexpected multiple outputs, file:", name); - outputText = text; - } - }, - getDefaultLibFileName: function () { return "lib.d.ts"; }, - useCaseSensitiveFileNames: function () { return false; }, - getCanonicalFileName: function (fileName) { return fileName; }, - getCurrentDirectory: function () { return ""; }, - getNewLine: function () { return newLine; }, - fileExists: function (fileName) { return fileName === inputFileName; }, - readFile: function () { return ""; }, - directoryExists: function () { return true; }, - getDirectories: function () { return []; } - }; - var inputFileName = transpileOptions.fileName || (transpileOptions.compilerOptions && transpileOptions.compilerOptions.jsx ? "module.tsx" : "module.ts"); - var sourceFile = createSourceFile(inputFileName, input, { - languageVersion: getEmitScriptTarget(options), - impliedNodeFormat: getImpliedNodeFormatForFile(toPath(inputFileName, "", compilerHost.getCanonicalFileName), - /*packageJsonInfoCache*/ - void 0, compilerHost, options), - setExternalModuleIndicator: getSetExternalModuleIndicator(options) - }); - if (transpileOptions.moduleName) { - sourceFile.moduleName = transpileOptions.moduleName; - } - if (transpileOptions.renamedDependencies) { - sourceFile.renamedDependencies = new Map(Object.entries(transpileOptions.renamedDependencies)); - } - var outputText; - var sourceMapText; - var program = createProgram([inputFileName], options, compilerHost); - if (transpileOptions.reportDiagnostics) { - addRange( - /*to*/ - diagnostics, - /*from*/ - program.getSyntacticDiagnostics(sourceFile)); - addRange( - /*to*/ - diagnostics, - /*from*/ - program.getOptionsDiagnostics()); - } - program.emit( - /*targetSourceFile*/ - void 0, - /*writeFile*/ - void 0, - /*cancellationToken*/ - void 0, - /*emitOnlyDtsFiles*/ - void 0, transpileOptions.transformers); - if (outputText === void 0) - return Debug.fail("Output generation failed"); - return { outputText: outputText, diagnostics: diagnostics, sourceMapText: sourceMapText }; -} -function transpile(input, compilerOptions, fileName, diagnostics, moduleName) { - var output = transpileModule(input, { compilerOptions: compilerOptions, fileName: fileName, reportDiagnostics: !!diagnostics, moduleName: moduleName }); - addRange(diagnostics, output.diagnostics); - return output.outputText; -} -var commandLineOptionsStringToEnum; -function fixupCompilerOptions(options, diagnostics) { - var e_672, _t; - commandLineOptionsStringToEnum = commandLineOptionsStringToEnum || filter(optionDeclarations, function (o) { return typeof o.type === "object" && !forEachEntry(o.type, function (v) { return typeof v !== "number"; }); }); - options = cloneCompilerOptions(options); - var _loop_43 = function (opt) { - if (!hasProperty(options, opt.name)) { - return "continue"; - } - var value = options[opt.name]; - if (isString(value)) { - options[opt.name] = parseCustomTypeOption(opt, value, diagnostics); - } - else { - if (!forEachEntry(opt.type, function (v) { return v === value; })) { - diagnostics.push(createCompilerDiagnosticForInvalidCustomType(opt)); - } - } - }; - try { - for (var commandLineOptionsStringToEnum_1 = __values(commandLineOptionsStringToEnum), commandLineOptionsStringToEnum_1_1 = commandLineOptionsStringToEnum_1.next(); !commandLineOptionsStringToEnum_1_1.done; commandLineOptionsStringToEnum_1_1 = commandLineOptionsStringToEnum_1.next()) { - var opt = commandLineOptionsStringToEnum_1_1.value; - _loop_43(opt); - } - } - catch (e_672_1) { e_672 = { error: e_672_1 }; } - finally { - try { - if (commandLineOptionsStringToEnum_1_1 && !commandLineOptionsStringToEnum_1_1.done && (_t = commandLineOptionsStringToEnum_1.return)) _t.call(commandLineOptionsStringToEnum_1); - } - finally { if (e_672) throw e_672.error; } - } - return options; -} -// src/services/_namespaces/ts.NavigateTo.ts -var ts_NavigateTo_exports = {}; -__export(ts_NavigateTo_exports, { - getNavigateToItems: function () { return getNavigateToItems; } -}); -// src/services/navigateTo.ts -function getNavigateToItems(sourceFiles, checker, cancellationToken, searchValue, maxResultCount, excludeDtsFiles) { - var e_673, _t; - var patternMatcher = createPatternMatcher(searchValue); - if (!patternMatcher) - return emptyArray; - var rawItems = []; - var _loop_44 = function (sourceFile) { - cancellationToken.throwIfCancellationRequested(); - if (excludeDtsFiles && sourceFile.isDeclarationFile) { - return "continue"; - } - sourceFile.getNamedDeclarations().forEach(function (declarations, name) { - getItemsFromNamedDeclaration(patternMatcher, name, declarations, checker, sourceFile.fileName, rawItems); - }); - }; - try { - for (var sourceFiles_3 = __values(sourceFiles), sourceFiles_3_1 = sourceFiles_3.next(); !sourceFiles_3_1.done; sourceFiles_3_1 = sourceFiles_3.next()) { - var sourceFile = sourceFiles_3_1.value; - _loop_44(sourceFile); - } - } - catch (e_673_1) { e_673 = { error: e_673_1 }; } - finally { - try { - if (sourceFiles_3_1 && !sourceFiles_3_1.done && (_t = sourceFiles_3.return)) _t.call(sourceFiles_3); - } - finally { if (e_673) throw e_673.error; } - } - rawItems.sort(compareNavigateToItems); - return (maxResultCount === void 0 ? rawItems : rawItems.slice(0, maxResultCount)).map(createNavigateToItem); -} -function getItemsFromNamedDeclaration(patternMatcher, name, declarations, checker, fileName, rawItems) { - var e_674, _t; - var match = patternMatcher.getMatchForLastSegmentOfPattern(name); - if (!match) { - return; - } - try { - for (var declarations_14 = __values(declarations), declarations_14_1 = declarations_14.next(); !declarations_14_1.done; declarations_14_1 = declarations_14.next()) { - var declaration = declarations_14_1.value; - if (!shouldKeepItem(declaration, checker)) - continue; - if (patternMatcher.patternContainsDots) { - var fullMatch = patternMatcher.getFullMatch(getContainers(declaration), name); - if (fullMatch) { - rawItems.push({ name: name, fileName: fileName, matchKind: fullMatch.kind, isCaseSensitive: fullMatch.isCaseSensitive, declaration: declaration }); - } - } - else { - rawItems.push({ name: name, fileName: fileName, matchKind: match.kind, isCaseSensitive: match.isCaseSensitive, declaration: declaration }); - } - } - } - catch (e_674_1) { e_674 = { error: e_674_1 }; } - finally { - try { - if (declarations_14_1 && !declarations_14_1.done && (_t = declarations_14.return)) _t.call(declarations_14); - } - finally { if (e_674) throw e_674.error; } - } -} -function shouldKeepItem(declaration, checker) { - switch (declaration.kind) { - case 273 /* ImportClause */: - case 276 /* ImportSpecifier */: - case 271 /* ImportEqualsDeclaration */: - var importer = checker.getSymbolAtLocation(declaration.name); - var imported = checker.getAliasedSymbol(importer); - return importer.escapedName !== imported.escapedName; - default: - return true; - } -} -function tryAddSingleDeclarationName(declaration, containers) { - var name = getNameOfDeclaration(declaration); - return !!name && (pushLiteral(name, containers) || name.kind === 167 /* ComputedPropertyName */ && tryAddComputedPropertyName(name.expression, containers)); -} -function tryAddComputedPropertyName(expression, containers) { - return pushLiteral(expression, containers) || isPropertyAccessExpression(expression) && (containers.push(expression.name.text), true) && tryAddComputedPropertyName(expression.expression, containers); -} -function pushLiteral(node, containers) { - return isPropertyNameLiteral(node) && (containers.push(getTextOfIdentifierOrLiteral(node)), true); -} -function getContainers(declaration) { - var containers = []; - var name = getNameOfDeclaration(declaration); - if (name && name.kind === 167 /* ComputedPropertyName */ && !tryAddComputedPropertyName(name.expression, containers)) { - return emptyArray; - } - containers.shift(); - var container = getContainerNode(declaration); - while (container) { - if (!tryAddSingleDeclarationName(container, containers)) { - return emptyArray; - } - container = getContainerNode(container); - } - return containers.reverse(); -} -function compareNavigateToItems(i1, i2) { - return compareValues(i1.matchKind, i2.matchKind) || compareStringsCaseSensitiveUI(i1.name, i2.name); -} -function createNavigateToItem(rawItem) { - var declaration = rawItem.declaration; - var container = getContainerNode(declaration); - var containerName = container && getNameOfDeclaration(container); - return { - name: rawItem.name, - kind: getNodeKind(declaration), - kindModifiers: getNodeModifiers(declaration), - matchKind: PatternMatchKind[rawItem.matchKind], - isCaseSensitive: rawItem.isCaseSensitive, - fileName: rawItem.fileName, - textSpan: createTextSpanFromNode(declaration), - // TODO(jfreeman): What should be the containerName when the container has a computed name? - containerName: containerName ? containerName.text : "", - containerKind: containerName ? getNodeKind(container) : "" /* unknown */ - }; -} -// src/services/_namespaces/ts.NavigationBar.ts -var ts_NavigationBar_exports = {}; -__export(ts_NavigationBar_exports, { - getNavigationBarItems: function () { return getNavigationBarItems; }, - getNavigationTree: function () { return getNavigationTree; } -}); -// src/services/navigationBar.ts -var whiteSpaceRegex = /\s+/g; -var maxLength = 150; -var curCancellationToken; -var curSourceFile; -var parentsStack = []; -var parent; -var trackedEs5ClassesStack = []; -var trackedEs5Classes; -var emptyChildItemArray = []; -function getNavigationBarItems(sourceFile, cancellationToken) { - curCancellationToken = cancellationToken; - curSourceFile = sourceFile; - try { - return map(primaryNavBarMenuItems(rootNavigationBarNode(sourceFile)), convertToPrimaryNavBarMenuItem); - } - finally { - reset(); - } -} -function getNavigationTree(sourceFile, cancellationToken) { - curCancellationToken = cancellationToken; - curSourceFile = sourceFile; - try { - return convertToTree(rootNavigationBarNode(sourceFile)); - } - finally { - reset(); - } -} -function reset() { - curSourceFile = void 0; - curCancellationToken = void 0; - parentsStack = []; - parent = void 0; - emptyChildItemArray = []; -} -function nodeText(node) { - return cleanText(node.getText(curSourceFile)); -} -function navigationBarNodeKind(n) { - return n.node.kind; -} -function pushChild(parent2, child) { - if (parent2.children) { - parent2.children.push(child); - } - else { - parent2.children = [child]; - } -} -function rootNavigationBarNode(sourceFile) { - var e_675, _t; - Debug.assert(!parentsStack.length); - var root = { node: sourceFile, name: void 0, additionalNodes: void 0, parent: void 0, children: void 0, indent: 0 }; - parent = root; - try { - for (var _u = __values(sourceFile.statements), _v = _u.next(); !_v.done; _v = _u.next()) { - var statement = _v.value; - addChildrenRecursively(statement); - } - } - catch (e_675_1) { e_675 = { error: e_675_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_675) throw e_675.error; } - } - endNode(); - Debug.assert(!parent && !parentsStack.length); - return root; -} -function addLeafNode(node, name) { - pushChild(parent, emptyNavigationBarNode(node, name)); -} -function emptyNavigationBarNode(node, name) { - return { - node: node, - name: name || (isDeclaration(node) || isExpression(node) ? getNameOfDeclaration(node) : void 0), - additionalNodes: void 0, - parent: parent, - children: void 0, - indent: parent.indent + 1 - }; -} -function addTrackedEs5Class(name) { - if (!trackedEs5Classes) { - trackedEs5Classes = /* @__PURE__ */ new Map(); - } - trackedEs5Classes.set(name, true); -} -function endNestedNodes(depth) { - for (var i = 0; i < depth; i++) - endNode(); -} -function startNestedNodes(targetNode, entityName) { - var names = []; - while (!isPropertyNameLiteral(entityName)) { - var name_101 = getNameOrArgument(entityName); - var nameText = getElementOrPropertyAccessName(entityName); - entityName = entityName.expression; - if (nameText === "prototype" || isPrivateIdentifier(name_101)) - continue; - names.push(name_101); - } - names.push(entityName); - for (var i = names.length - 1; i > 0; i--) { - var name_102 = names[i]; - startNode(targetNode, name_102); - } - return [names.length - 1, names[0]]; -} -function startNode(node, name) { - var navNode = emptyNavigationBarNode(node, name); - pushChild(parent, navNode); - parentsStack.push(parent); - trackedEs5ClassesStack.push(trackedEs5Classes); - trackedEs5Classes = void 0; - parent = navNode; -} -function endNode() { - if (parent.children) { - mergeChildren(parent.children, parent); - sortChildren(parent.children); - } - parent = parentsStack.pop(); - trackedEs5Classes = trackedEs5ClassesStack.pop(); -} -function addNodeWithRecursiveChild(node, child, name) { - startNode(node, name); - addChildrenRecursively(child); - endNode(); -} -function addNodeWithRecursiveInitializer(node) { - if (node.initializer && isFunctionOrClassExpression(node.initializer)) { - startNode(node); - forEachChild(node.initializer, addChildrenRecursively); - endNode(); - } - else { - addNodeWithRecursiveChild(node, node.initializer); - } -} -function hasNavigationBarName(node) { - return !hasDynamicName(node) || node.kind !== 226 /* BinaryExpression */ && isPropertyAccessExpression(node.name.expression) && isIdentifier(node.name.expression.expression) && idText(node.name.expression.expression) === "Symbol"; -} -function addChildrenRecursively(node) { - var e_676, _t, e_677, _u, e_678, _v, e_679, _w, _x; - curCancellationToken.throwIfCancellationRequested(); - if (!node || isToken(node)) { - return; - } - switch (node.kind) { - case 176 /* Constructor */: - var ctr = node; - addNodeWithRecursiveChild(ctr, ctr.body); - try { - for (var _y = __values(ctr.parameters), _z = _y.next(); !_z.done; _z = _y.next()) { - var param = _z.value; - if (isParameterPropertyDeclaration(param, ctr)) { - addLeafNode(param); - } - } - } - catch (e_676_1) { e_676 = { error: e_676_1 }; } - finally { - try { - if (_z && !_z.done && (_t = _y.return)) _t.call(_y); - } - finally { if (e_676) throw e_676.error; } - } - break; - case 174 /* MethodDeclaration */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - case 173 /* MethodSignature */: - if (hasNavigationBarName(node)) { - addNodeWithRecursiveChild(node, node.body); - } - break; - case 172 /* PropertyDeclaration */: - if (hasNavigationBarName(node)) { - addNodeWithRecursiveInitializer(node); - } - break; - case 171 /* PropertySignature */: - if (hasNavigationBarName(node)) { - addLeafNode(node); - } - break; - case 273 /* ImportClause */: - var importClause = node; - if (importClause.name) { - addLeafNode(importClause.name); - } - var namedBindings = importClause.namedBindings; - if (namedBindings) { - if (namedBindings.kind === 274 /* NamespaceImport */) { - addLeafNode(namedBindings); - } - else { - try { - for (var _10 = __values(namedBindings.elements), _11 = _10.next(); !_11.done; _11 = _10.next()) { - var element = _11.value; - addLeafNode(element); - } - } - catch (e_677_1) { e_677 = { error: e_677_1 }; } - finally { - try { - if (_11 && !_11.done && (_u = _10.return)) _u.call(_10); - } - finally { if (e_677) throw e_677.error; } - } - } - } - break; - case 304 /* ShorthandPropertyAssignment */: - addNodeWithRecursiveChild(node, node.name); - break; - case 305 /* SpreadAssignment */: - var expression = node.expression; - isIdentifier(expression) ? addLeafNode(node, expression) : addLeafNode(node); - break; - case 208 /* BindingElement */: - case 303 /* PropertyAssignment */: - case 260 /* VariableDeclaration */: { - var child = node; - if (isBindingPattern(child.name)) { - addChildrenRecursively(child.name); - } - else { - addNodeWithRecursiveInitializer(child); - } - break; - } - case 262 /* FunctionDeclaration */: - var nameNode = node.name; - if (nameNode && isIdentifier(nameNode)) { - addTrackedEs5Class(nameNode.text); - } - addNodeWithRecursiveChild(node, node.body); - break; - case 219 /* ArrowFunction */: - case 218 /* FunctionExpression */: - addNodeWithRecursiveChild(node, node.body); - break; - case 266 /* EnumDeclaration */: - startNode(node); - try { - for (var _12 = __values(node.members), _13 = _12.next(); !_13.done; _13 = _12.next()) { - var member = _13.value; - if (!isComputedProperty(member)) { - addLeafNode(member); - } - } - } - catch (e_678_1) { e_678 = { error: e_678_1 }; } - finally { - try { - if (_13 && !_13.done && (_v = _12.return)) _v.call(_12); - } - finally { if (e_678) throw e_678.error; } - } - endNode(); - break; - case 263 /* ClassDeclaration */: - case 231 /* ClassExpression */: - case 264 /* InterfaceDeclaration */: - startNode(node); - try { - for (var _14 = __values(node.members), _15 = _14.next(); !_15.done; _15 = _14.next()) { - var member = _15.value; - addChildrenRecursively(member); - } - } - catch (e_679_1) { e_679 = { error: e_679_1 }; } - finally { - try { - if (_15 && !_15.done && (_w = _14.return)) _w.call(_14); - } - finally { if (e_679) throw e_679.error; } - } - endNode(); - break; - case 267 /* ModuleDeclaration */: - addNodeWithRecursiveChild(node, getInteriorModule(node).body); - break; - case 277 /* ExportAssignment */: { - var expression2 = node.expression; - var child = isObjectLiteralExpression(expression2) || isCallExpression(expression2) ? expression2 : isArrowFunction(expression2) || isFunctionExpression(expression2) ? expression2.body : void 0; - if (child) { - startNode(node); - addChildrenRecursively(child); - endNode(); - } - else { - addLeafNode(node); - } - break; - } - case 281 /* ExportSpecifier */: - case 271 /* ImportEqualsDeclaration */: - case 181 /* IndexSignature */: - case 179 /* CallSignature */: - case 180 /* ConstructSignature */: - case 265 /* TypeAliasDeclaration */: - addLeafNode(node); - break; - case 213 /* CallExpression */: - case 226 /* BinaryExpression */: { - var special = getAssignmentDeclarationKind(node); - switch (special) { - case 1 /* ExportsProperty */: - case 2 /* ModuleExports */: - addNodeWithRecursiveChild(node, node.right); - return; - case 6 /* Prototype */: - case 3 /* PrototypeProperty */: { - var binaryExpression = node; - var assignmentTarget = binaryExpression.left; - var prototypeAccess = special === 3 /* PrototypeProperty */ ? assignmentTarget.expression : assignmentTarget; - var depth = 0; - var className = void 0; - if (isIdentifier(prototypeAccess.expression)) { - addTrackedEs5Class(prototypeAccess.expression.text); - className = prototypeAccess.expression; - } - else { - _x = __read(startNestedNodes(binaryExpression, prototypeAccess.expression), 2), depth = _x[0], className = _x[1]; - } - if (special === 6 /* Prototype */) { - if (isObjectLiteralExpression(binaryExpression.right)) { - if (binaryExpression.right.properties.length > 0) { - startNode(binaryExpression, className); - forEachChild(binaryExpression.right, addChildrenRecursively); - endNode(); - } - } - } - else if (isFunctionExpression(binaryExpression.right) || isArrowFunction(binaryExpression.right)) { - addNodeWithRecursiveChild(node, binaryExpression.right, className); - } - else { - startNode(binaryExpression, className); - addNodeWithRecursiveChild(node, binaryExpression.right, assignmentTarget.name); - endNode(); - } - endNestedNodes(depth); - return; - } - case 7 /* ObjectDefinePropertyValue */: - case 9 /* ObjectDefinePrototypeProperty */: { - var defineCall = node; - var className = special === 7 /* ObjectDefinePropertyValue */ ? defineCall.arguments[0] : defineCall.arguments[0].expression; - var memberName = defineCall.arguments[1]; - var _16 = __read(startNestedNodes(node, className), 2), depth = _16[0], classNameIdentifier = _16[1]; - startNode(node, classNameIdentifier); - startNode(node, setTextRange(factory.createIdentifier(memberName.text), memberName)); - addChildrenRecursively(node.arguments[2]); - endNode(); - endNode(); - endNestedNodes(depth); - return; - } - case 5 /* Property */: { - var binaryExpression = node; - var assignmentTarget = binaryExpression.left; - var targetFunction = assignmentTarget.expression; - if (isIdentifier(targetFunction) && getElementOrPropertyAccessName(assignmentTarget) !== "prototype" && trackedEs5Classes && trackedEs5Classes.has(targetFunction.text)) { - if (isFunctionExpression(binaryExpression.right) || isArrowFunction(binaryExpression.right)) { - addNodeWithRecursiveChild(node, binaryExpression.right, targetFunction); - } - else if (isBindableStaticAccessExpression(assignmentTarget)) { - startNode(binaryExpression, targetFunction); - addNodeWithRecursiveChild(binaryExpression.left, binaryExpression.right, getNameOrArgument(assignmentTarget)); - endNode(); - } - return; - } - break; - } - case 4 /* ThisProperty */: - case 0 /* None */: - case 8 /* ObjectDefinePropertyExports */: - break; - default: - Debug.assertNever(special); - } - } - default: - if (hasJSDocNodes(node)) { - forEach(node.jsDoc, function (jsDoc) { - forEach(jsDoc.tags, function (tag) { - if (isJSDocTypeAlias(tag)) { - addLeafNode(tag); - } - }); - }); - } - forEachChild(node, addChildrenRecursively); - } -} -function mergeChildren(children, node) { - var nameToItems = /* @__PURE__ */ new Map(); - filterMutate(children, function (child, index) { - var e_680, _t; - var declName = child.name || getNameOfDeclaration(child.node); - var name = declName && nodeText(declName); - if (!name) { - return true; - } - var itemsWithSameName = nameToItems.get(name); - if (!itemsWithSameName) { - nameToItems.set(name, child); - return true; - } - if (itemsWithSameName instanceof Array) { - try { - for (var itemsWithSameName_1 = __values(itemsWithSameName), itemsWithSameName_1_1 = itemsWithSameName_1.next(); !itemsWithSameName_1_1.done; itemsWithSameName_1_1 = itemsWithSameName_1.next()) { - var itemWithSameName = itemsWithSameName_1_1.value; - if (tryMerge(itemWithSameName, child, index, node)) { - return false; - } - } - } - catch (e_680_1) { e_680 = { error: e_680_1 }; } - finally { - try { - if (itemsWithSameName_1_1 && !itemsWithSameName_1_1.done && (_t = itemsWithSameName_1.return)) _t.call(itemsWithSameName_1); - } - finally { if (e_680) throw e_680.error; } - } - itemsWithSameName.push(child); - return true; - } - else { - var itemWithSameName = itemsWithSameName; - if (tryMerge(itemWithSameName, child, index, node)) { - return false; - } - nameToItems.set(name, [itemWithSameName, child]); - return true; - } - }); -} -var isEs5ClassMember = (_w = {}, - _w[5 /* Property */] = true, - _w[3 /* PrototypeProperty */] = true, - _w[7 /* ObjectDefinePropertyValue */] = true, - _w[9 /* ObjectDefinePrototypeProperty */] = true, - _w[0 /* None */] = false, - _w[1 /* ExportsProperty */] = false, - _w[2 /* ModuleExports */] = false, - _w[8 /* ObjectDefinePropertyExports */] = false, - _w[6 /* Prototype */] = true, - _w[4 /* ThisProperty */] = false, - _w); -function tryMergeEs5Class(a, b, bIndex, parent2) { - function isPossibleConstructor(node) { - return isFunctionExpression(node) || isFunctionDeclaration(node) || isVariableDeclaration(node); - } - var bAssignmentDeclarationKind = isBinaryExpression(b.node) || isCallExpression(b.node) ? getAssignmentDeclarationKind(b.node) : 0 /* None */; - var aAssignmentDeclarationKind = isBinaryExpression(a.node) || isCallExpression(a.node) ? getAssignmentDeclarationKind(a.node) : 0 /* None */; - if (isEs5ClassMember[bAssignmentDeclarationKind] && isEs5ClassMember[aAssignmentDeclarationKind] || isPossibleConstructor(a.node) && isEs5ClassMember[bAssignmentDeclarationKind] || isPossibleConstructor(b.node) && isEs5ClassMember[aAssignmentDeclarationKind] || isClassDeclaration(a.node) && isSynthesized(a.node) && isEs5ClassMember[bAssignmentDeclarationKind] || isClassDeclaration(b.node) && isEs5ClassMember[aAssignmentDeclarationKind] || isClassDeclaration(a.node) && isSynthesized(a.node) && isPossibleConstructor(b.node) || isClassDeclaration(b.node) && isPossibleConstructor(a.node) && isSynthesized(a.node)) { - var lastANode = a.additionalNodes && lastOrUndefined(a.additionalNodes) || a.node; - if (!isClassDeclaration(a.node) && !isClassDeclaration(b.node) || isPossibleConstructor(a.node) || isPossibleConstructor(b.node)) { - var ctorFunction = isPossibleConstructor(a.node) ? a.node : isPossibleConstructor(b.node) ? b.node : void 0; - if (ctorFunction !== void 0) { - var ctorNode = setTextRange(factory.createConstructorDeclaration( - /*modifiers*/ - void 0, [], - /*body*/ - void 0), ctorFunction); - var ctor = emptyNavigationBarNode(ctorNode); - ctor.indent = a.indent + 1; - ctor.children = a.node === ctorFunction ? a.children : b.children; - a.children = a.node === ctorFunction ? concatenate([ctor], b.children || [b]) : concatenate(a.children || [__assign({}, a)], [ctor]); - } - else { - if (a.children || b.children) { - a.children = concatenate(a.children || [__assign({}, a)], b.children || [b]); - if (a.children) { - mergeChildren(a.children, a); - sortChildren(a.children); - } - } - } - lastANode = a.node = setTextRange(factory.createClassDeclaration( - /*modifiers*/ - void 0, a.name || factory.createIdentifier("__class__"), - /*typeParameters*/ - void 0, - /*heritageClauses*/ - void 0, []), a.node); - } - else { - a.children = concatenate(a.children, b.children); - if (a.children) { - mergeChildren(a.children, a); - } - } - var bNode = b.node; - if (parent2.children[bIndex - 1].node.end === lastANode.end) { - setTextRange(lastANode, { pos: lastANode.pos, end: bNode.end }); - } - else { - if (!a.additionalNodes) - a.additionalNodes = []; - a.additionalNodes.push(setTextRange(factory.createClassDeclaration( - /*modifiers*/ - void 0, a.name || factory.createIdentifier("__class__"), - /*typeParameters*/ - void 0, - /*heritageClauses*/ - void 0, []), b.node)); - } - return true; - } - return bAssignmentDeclarationKind === 0 /* None */ ? false : true; -} -function tryMerge(a, b, bIndex, parent2) { - if (tryMergeEs5Class(a, b, bIndex, parent2)) { - return true; - } - if (shouldReallyMerge(a.node, b.node, parent2)) { - merge(a, b); - return true; - } - return false; -} -function shouldReallyMerge(a, b, parent2) { - if (a.kind !== b.kind || a.parent !== b.parent && !(isOwnChild(a, parent2) && isOwnChild(b, parent2))) { - return false; - } - switch (a.kind) { - case 172 /* PropertyDeclaration */: - case 174 /* MethodDeclaration */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - return isStatic(a) === isStatic(b); - case 267 /* ModuleDeclaration */: - return areSameModule(a, b) && getFullyQualifiedModuleName(a) === getFullyQualifiedModuleName(b); - default: - return true; - } -} -function isSynthesized(node) { - return !!(node.flags & 16 /* Synthesized */); -} -function isOwnChild(n, parent2) { - var par = isModuleBlock(n.parent) ? n.parent.parent : n.parent; - return par === parent2.node || contains(parent2.additionalNodes, par); -} -function areSameModule(a, b) { - if (!a.body || !b.body) { - return a.body === b.body; - } - return a.body.kind === b.body.kind && (a.body.kind !== 267 /* ModuleDeclaration */ || areSameModule(a.body, b.body)); -} -function merge(target, source) { - var _t; - target.additionalNodes = target.additionalNodes || []; - target.additionalNodes.push(source.node); - if (source.additionalNodes) { - (_t = target.additionalNodes).push.apply(_t, __spreadArray([], __read(source.additionalNodes), false)); - } - target.children = concatenate(target.children, source.children); - if (target.children) { - mergeChildren(target.children, target); - sortChildren(target.children); - } -} -function sortChildren(children) { - children.sort(compareChildren); -} -function compareChildren(child1, child2) { - return compareStringsCaseSensitiveUI(tryGetName(child1.node), tryGetName(child2.node)) || compareValues(navigationBarNodeKind(child1), navigationBarNodeKind(child2)); -} -function tryGetName(node) { - if (node.kind === 267 /* ModuleDeclaration */) { - return getModuleName(node); - } - var declName = getNameOfDeclaration(node); - if (declName && isPropertyName(declName)) { - var propertyName = getPropertyNameForPropertyNameNode(declName); - return propertyName && unescapeLeadingUnderscores(propertyName); - } - switch (node.kind) { - case 218 /* FunctionExpression */: - case 219 /* ArrowFunction */: - case 231 /* ClassExpression */: - return getFunctionOrClassName(node); - default: - return void 0; - } -} -function getItemName(node, name) { - if (node.kind === 267 /* ModuleDeclaration */) { - return cleanText(getModuleName(node)); - } - if (name) { - var text = isIdentifier(name) ? name.text : isElementAccessExpression(name) ? "[".concat(nodeText(name.argumentExpression), "]") : nodeText(name); - if (text.length > 0) { - return cleanText(text); - } - } - switch (node.kind) { - case 312 /* SourceFile */: - var sourceFile = node; - return isExternalModule(sourceFile) ? "\"".concat(escapeString(getBaseFileName(removeFileExtension(normalizePath(sourceFile.fileName)))), "\"") : ""; - case 277 /* ExportAssignment */: - return isExportAssignment(node) && node.isExportEquals ? "export=" /* ExportEquals */ : "default" /* Default */; - case 219 /* ArrowFunction */: - case 262 /* FunctionDeclaration */: - case 218 /* FunctionExpression */: - case 263 /* ClassDeclaration */: - case 231 /* ClassExpression */: - if (getSyntacticModifierFlags(node) & 1024 /* Default */) { - return "default"; - } - return getFunctionOrClassName(node); - case 176 /* Constructor */: - return "constructor"; - case 180 /* ConstructSignature */: - return "new()"; - case 179 /* CallSignature */: - return "()"; - case 181 /* IndexSignature */: - return "[]"; - default: - return ""; - } -} -function primaryNavBarMenuItems(root) { - var primaryNavBarMenuItems2 = []; - function recur(item) { - var e_681, _t; - if (shouldAppearInPrimaryNavBarMenu(item)) { - primaryNavBarMenuItems2.push(item); - if (item.children) { - try { - for (var _u = __values(item.children), _v = _u.next(); !_v.done; _v = _u.next()) { - var child = _v.value; - recur(child); - } - } - catch (e_681_1) { e_681 = { error: e_681_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_681) throw e_681.error; } - } - } - } - } - recur(root); - return primaryNavBarMenuItems2; - function shouldAppearInPrimaryNavBarMenu(item) { - if (item.children) { - return true; - } - switch (navigationBarNodeKind(item)) { - case 263 /* ClassDeclaration */: - case 231 /* ClassExpression */: - case 266 /* EnumDeclaration */: - case 264 /* InterfaceDeclaration */: - case 267 /* ModuleDeclaration */: - case 312 /* SourceFile */: - case 265 /* TypeAliasDeclaration */: - case 353 /* JSDocTypedefTag */: - case 345 /* JSDocCallbackTag */: - return true; - case 219 /* ArrowFunction */: - case 262 /* FunctionDeclaration */: - case 218 /* FunctionExpression */: - return isTopLevelFunctionDeclaration(item); - default: - return false; - } - function isTopLevelFunctionDeclaration(item2) { - if (!item2.node.body) { - return false; - } - switch (navigationBarNodeKind(item2.parent)) { - case 268 /* ModuleBlock */: - case 312 /* SourceFile */: - case 174 /* MethodDeclaration */: - case 176 /* Constructor */: - return true; - default: - return false; - } - } - } -} -function convertToTree(n) { - return { - text: getItemName(n.node, n.name), - kind: getNodeKind(n.node), - kindModifiers: getModifiers2(n.node), - spans: getSpans(n), - nameSpan: n.name && getNodeSpan(n.name), - childItems: map(n.children, convertToTree) - }; -} -function convertToPrimaryNavBarMenuItem(n) { - return { - text: getItemName(n.node, n.name), - kind: getNodeKind(n.node), - kindModifiers: getModifiers2(n.node), - spans: getSpans(n), - childItems: map(n.children, convertToSecondaryNavBarMenuItem) || emptyChildItemArray, - indent: n.indent, - bolded: false, - grayed: false - }; - function convertToSecondaryNavBarMenuItem(n2) { - return { - text: getItemName(n2.node, n2.name), - kind: getNodeKind(n2.node), - kindModifiers: getNodeModifiers(n2.node), - spans: getSpans(n2), - childItems: emptyChildItemArray, - indent: 0, - bolded: false, - grayed: false - }; - } -} -function getSpans(n) { - var e_682, _t; - var spans = [getNodeSpan(n.node)]; - if (n.additionalNodes) { - try { - for (var _u = __values(n.additionalNodes), _v = _u.next(); !_v.done; _v = _u.next()) { - var node = _v.value; - spans.push(getNodeSpan(node)); - } - } - catch (e_682_1) { e_682 = { error: e_682_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_682) throw e_682.error; } - } - } - return spans; -} -function getModuleName(moduleDeclaration) { - if (isAmbientModule(moduleDeclaration)) { - return getTextOfNode(moduleDeclaration.name); - } - return getFullyQualifiedModuleName(moduleDeclaration); -} -function getFullyQualifiedModuleName(moduleDeclaration) { - var result = [getTextOfIdentifierOrLiteral(moduleDeclaration.name)]; - while (moduleDeclaration.body && moduleDeclaration.body.kind === 267 /* ModuleDeclaration */) { - moduleDeclaration = moduleDeclaration.body; - result.push(getTextOfIdentifierOrLiteral(moduleDeclaration.name)); - } - return result.join("."); -} -function getInteriorModule(decl) { - return decl.body && isModuleDeclaration(decl.body) ? getInteriorModule(decl.body) : decl; -} -function isComputedProperty(member) { - return !member.name || member.name.kind === 167 /* ComputedPropertyName */; -} -function getNodeSpan(node) { - return node.kind === 312 /* SourceFile */ ? createTextSpanFromRange(node) : createTextSpanFromNode(node, curSourceFile); -} -function getModifiers2(node) { - if (node.parent && node.parent.kind === 260 /* VariableDeclaration */) { - node = node.parent; - } - return getNodeModifiers(node); -} -function getFunctionOrClassName(node) { - var parent2 = node.parent; - if (node.name && getFullWidth(node.name) > 0) { - return cleanText(declarationNameToString(node.name)); - } - else if (isVariableDeclaration(parent2)) { - return cleanText(declarationNameToString(parent2.name)); - } - else if (isBinaryExpression(parent2) && parent2.operatorToken.kind === 64 /* EqualsToken */) { - return nodeText(parent2.left).replace(whiteSpaceRegex, ""); - } - else if (isPropertyAssignment(parent2)) { - return nodeText(parent2.name); - } - else if (getSyntacticModifierFlags(node) & 1024 /* Default */) { - return "default"; - } - else if (isClassLike(node)) { - return ""; - } - else if (isCallExpression(parent2)) { - var name_103 = getCalledExpressionName(parent2.expression); - if (name_103 !== void 0) { - name_103 = cleanText(name_103); - if (name_103.length > maxLength) { - return "".concat(name_103, " callback"); - } - var args = cleanText(mapDefined(parent2.arguments, function (a) { return isStringLiteralLike(a) ? a.getText(curSourceFile) : void 0; }).join(", ")); - return "".concat(name_103, "(").concat(args, ") callback"); - } - } - return ""; -} -function getCalledExpressionName(expr) { - if (isIdentifier(expr)) { - return expr.text; - } - else if (isPropertyAccessExpression(expr)) { - var left = getCalledExpressionName(expr.expression); - var right = expr.name.text; - return left === void 0 ? right : "".concat(left, ".").concat(right); - } - else { - return void 0; - } -} -function isFunctionOrClassExpression(node) { - switch (node.kind) { - case 219 /* ArrowFunction */: - case 218 /* FunctionExpression */: - case 231 /* ClassExpression */: - return true; - default: - return false; - } -} -function cleanText(text) { - text = text.length > maxLength ? text.substring(0, maxLength) + "..." : text; - return text.replace(/\\?(\r?\n|\r|\u2028|\u2029)/g, ""); -} -// src/services/_namespaces/ts.refactor.ts -var ts_refactor_exports = {}; -__export(ts_refactor_exports, { - addExportToChanges: function () { return addExportToChanges; }, - addExports: function () { return addExports; }, - addNewFileToTsconfig: function () { return addNewFileToTsconfig; }, - addOrRemoveBracesToArrowFunction: function () { return ts_refactor_addOrRemoveBracesToArrowFunction_exports; }, - convertArrowFunctionOrFunctionExpression: function () { return ts_refactor_convertArrowFunctionOrFunctionExpression_exports; }, - convertParamsToDestructuredObject: function () { return ts_refactor_convertParamsToDestructuredObject_exports; }, - convertStringOrTemplateLiteral: function () { return ts_refactor_convertStringOrTemplateLiteral_exports; }, - convertToOptionalChainExpression: function () { return ts_refactor_convertToOptionalChainExpression_exports; }, - createNewFileName: function () { return createNewFileName; }, - createOldFileImportsFromTargetFile: function () { return createOldFileImportsFromTargetFile; }, - deleteMovedStatements: function () { return deleteMovedStatements; }, - deleteUnusedImports: function () { return deleteUnusedImports; }, - deleteUnusedOldImports: function () { return deleteUnusedOldImports; }, - doChangeNamedToNamespaceOrDefault: function () { return doChangeNamedToNamespaceOrDefault; }, - extractSymbol: function () { return ts_refactor_extractSymbol_exports; }, - filterImport: function () { return filterImport; }, - forEachImportInStatement: function () { return forEachImportInStatement; }, - generateGetAccessorAndSetAccessor: function () { return ts_refactor_generateGetAccessorAndSetAccessor_exports; }, - getApplicableRefactors: function () { return getApplicableRefactors; }, - getEditsForRefactor: function () { return getEditsForRefactor; }, - getStatementsToMove: function () { return getStatementsToMove; }, - getTopLevelDeclarationStatement: function () { return getTopLevelDeclarationStatement; }, - getUsageInfo: function () { return getUsageInfo; }, - inferFunctionReturnType: function () { return ts_refactor_inferFunctionReturnType_exports; }, - isRefactorErrorInfo: function () { return isRefactorErrorInfo; }, - isTopLevelDeclaration: function () { return isTopLevelDeclaration; }, - makeImportOrRequire: function () { return makeImportOrRequire; }, - moduleSpecifierFromImport: function () { return moduleSpecifierFromImport; }, - nameOfTopLevelDeclaration: function () { return nameOfTopLevelDeclaration; }, - refactorKindBeginsWith: function () { return refactorKindBeginsWith; }, - registerRefactor: function () { return registerRefactor; }, - updateImportsInOtherFiles: function () { return updateImportsInOtherFiles; } -}); -// src/services/refactorProvider.ts -var refactors = /* @__PURE__ */ new Map(); -function registerRefactor(name, refactor) { - refactors.set(name, refactor); -} -function getApplicableRefactors(context, includeInteractiveActions) { - return arrayFrom(flatMapIterator(refactors.values(), function (refactor) { - var _a; - return context.cancellationToken && context.cancellationToken.isCancellationRequested() || !((_a = refactor.kinds) == null ? void 0 : _a.some(function (kind) { return refactorKindBeginsWith(kind, context.kind); })) ? void 0 : refactor.getAvailableActions(context, includeInteractiveActions); - })); -} -function getEditsForRefactor(context, refactorName14, actionName2, interactiveRefactorArguments) { - var refactor = refactors.get(refactorName14); - return refactor && refactor.getEditsForAction(context, actionName2, interactiveRefactorArguments); -} -// src/services/refactors/convertExport.ts -var refactorName = "Convert export"; -var defaultToNamedAction = { - name: "Convert default export to named export", - description: getLocaleSpecificMessage(Diagnostics.Convert_default_export_to_named_export), - kind: "refactor.rewrite.export.named" -}; -var namedToDefaultAction = { - name: "Convert named export to default export", - description: getLocaleSpecificMessage(Diagnostics.Convert_named_export_to_default_export), - kind: "refactor.rewrite.export.default" -}; -registerRefactor(refactorName, { - kinds: [ - defaultToNamedAction.kind, - namedToDefaultAction.kind - ], - getAvailableActions: function getRefactorActionsToConvertBetweenNamedAndDefaultExports(context) { - var info = getInfo2(context, context.triggerReason === "invoked"); - if (!info) - return emptyArray; - if (!isRefactorErrorInfo(info)) { - var action = info.wasDefault ? defaultToNamedAction : namedToDefaultAction; - return [{ name: refactorName, description: action.description, actions: [action] }]; - } - if (context.preferences.provideRefactorNotApplicableReason) { - return [ - { name: refactorName, description: getLocaleSpecificMessage(Diagnostics.Convert_default_export_to_named_export), actions: [ - __assign(__assign({}, defaultToNamedAction), { notApplicableReason: info.error }), - __assign(__assign({}, namedToDefaultAction), { notApplicableReason: info.error }) - ] } - ]; - } - return emptyArray; - }, - getEditsForAction: function getRefactorEditsToConvertBetweenNamedAndDefaultExports(context, actionName2) { - Debug.assert(actionName2 === defaultToNamedAction.name || actionName2 === namedToDefaultAction.name, "Unexpected action name"); - var info = getInfo2(context); - Debug.assert(info && !isRefactorErrorInfo(info), "Expected applicable refactor info"); - var edits = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return doChange(context.file, context.program, info, t, context.cancellationToken); }); - return { edits: edits, renameFilename: void 0, renameLocation: void 0 }; - } -}); -function getInfo2(context, considerPartialSpans) { - if (considerPartialSpans === void 0) { considerPartialSpans = true; } - var file = context.file, program = context.program; - var span = getRefactorContextSpan(context); - var token = getTokenAtPosition(file, span.start); - var exportNode = !!(token.parent && getSyntacticModifierFlags(token.parent) & 1 /* Export */) && considerPartialSpans ? token.parent : getParentNodeInSpan(token, file, span); - if (!exportNode || !isSourceFile(exportNode.parent) && !(isModuleBlock(exportNode.parent) && isAmbientModule(exportNode.parent.parent))) { - return { error: getLocaleSpecificMessage(Diagnostics.Could_not_find_export_statement) }; - } - var checker = program.getTypeChecker(); - var exportingModuleSymbol = getExportingModuleSymbol(exportNode.parent, checker); - var flags = getSyntacticModifierFlags(exportNode) || (isExportAssignment(exportNode) && !exportNode.isExportEquals ? 1025 /* ExportDefault */ : 0 /* None */); - var wasDefault = !!(flags & 1024 /* Default */); - if (!(flags & 1 /* Export */) || !wasDefault && exportingModuleSymbol.exports.has("default" /* Default */)) { - return { error: getLocaleSpecificMessage(Diagnostics.This_file_already_has_a_default_export) }; - } - var noSymbolError = function (id) { return isIdentifier(id) && checker.getSymbolAtLocation(id) ? void 0 : { error: getLocaleSpecificMessage(Diagnostics.Can_only_convert_named_export) }; }; - switch (exportNode.kind) { - case 262 /* FunctionDeclaration */: - case 263 /* ClassDeclaration */: - case 264 /* InterfaceDeclaration */: - case 266 /* EnumDeclaration */: - case 265 /* TypeAliasDeclaration */: - case 267 /* ModuleDeclaration */: { - var node = exportNode; - if (!node.name) - return void 0; - return noSymbolError(node.name) || { exportNode: node, exportName: node.name, wasDefault: wasDefault, exportingModuleSymbol: exportingModuleSymbol }; - } - case 243 /* VariableStatement */: { - var vs = exportNode; - if (!(vs.declarationList.flags & 2 /* Const */) || vs.declarationList.declarations.length !== 1) { - return void 0; - } - var decl = first(vs.declarationList.declarations); - if (!decl.initializer) - return void 0; - Debug.assert(!wasDefault, "Can't have a default flag here"); - return noSymbolError(decl.name) || { exportNode: vs, exportName: decl.name, wasDefault: wasDefault, exportingModuleSymbol: exportingModuleSymbol }; - } - case 277 /* ExportAssignment */: { - var node = exportNode; - if (node.isExportEquals) - return void 0; - return noSymbolError(node.expression) || { exportNode: node, exportName: node.expression, wasDefault: wasDefault, exportingModuleSymbol: exportingModuleSymbol }; - } - default: - return void 0; - } -} -function doChange(exportingSourceFile, program, info, changes, cancellationToken) { - changeExport(exportingSourceFile, info, changes, program.getTypeChecker()); - changeImports(program, info, changes, cancellationToken); -} -function changeExport(exportingSourceFile, _t, changes, checker) { - var wasDefault = _t.wasDefault, exportNode = _t.exportNode, exportName = _t.exportName; - if (wasDefault) { - if (isExportAssignment(exportNode) && !exportNode.isExportEquals) { - var exp = exportNode.expression; - var spec = makeExportSpecifier(exp.text, exp.text); - changes.replaceNode(exportingSourceFile, exportNode, factory.createExportDeclaration( - /*modifiers*/ - void 0, - /*isTypeOnly*/ - false, factory.createNamedExports([spec]))); - } - else { - changes.delete(exportingSourceFile, Debug.checkDefined(findModifier(exportNode, 90 /* DefaultKeyword */), "Should find a default keyword in modifier list")); - } - } - else { - var exportKeyword = Debug.checkDefined(findModifier(exportNode, 95 /* ExportKeyword */), "Should find an export keyword in modifier list"); - switch (exportNode.kind) { - case 262 /* FunctionDeclaration */: - case 263 /* ClassDeclaration */: - case 264 /* InterfaceDeclaration */: - changes.insertNodeAfter(exportingSourceFile, exportKeyword, factory.createToken(90 /* DefaultKeyword */)); - break; - case 243 /* VariableStatement */: - var decl = first(exportNode.declarationList.declarations); - if (!ts_FindAllReferences_exports.Core.isSymbolReferencedInFile(exportName, checker, exportingSourceFile) && !decl.type) { - changes.replaceNode(exportingSourceFile, exportNode, factory.createExportDefault(Debug.checkDefined(decl.initializer, "Initializer was previously known to be present"))); - break; - } - case 266 /* EnumDeclaration */: - case 265 /* TypeAliasDeclaration */: - case 267 /* ModuleDeclaration */: - changes.deleteModifier(exportingSourceFile, exportKeyword); - changes.insertNodeAfter(exportingSourceFile, exportNode, factory.createExportDefault(factory.createIdentifier(exportName.text))); - break; - default: - Debug.fail("Unexpected exportNode kind ".concat(exportNode.kind)); - } - } -} -function changeImports(program, _t, changes, cancellationToken) { - var wasDefault = _t.wasDefault, exportName = _t.exportName, exportingModuleSymbol = _t.exportingModuleSymbol; - var checker = program.getTypeChecker(); - var exportSymbol = Debug.checkDefined(checker.getSymbolAtLocation(exportName), "Export name should resolve to a symbol"); - ts_FindAllReferences_exports.Core.eachExportReference(program.getSourceFiles(), checker, cancellationToken, exportSymbol, exportingModuleSymbol, exportName.text, wasDefault, function (ref) { - if (exportName === ref) - return; - var importingSourceFile = ref.getSourceFile(); - if (wasDefault) { - changeDefaultToNamedImport(importingSourceFile, ref, changes, exportName.text); - } - else { - changeNamedToDefaultImport(importingSourceFile, ref, changes); - } - }); -} -function changeDefaultToNamedImport(importingSourceFile, ref, changes, exportName) { - var parent2 = ref.parent; - switch (parent2.kind) { - case 211 /* PropertyAccessExpression */: - changes.replaceNode(importingSourceFile, ref, factory.createIdentifier(exportName)); - break; - case 276 /* ImportSpecifier */: - case 281 /* ExportSpecifier */: { - var spec = parent2; - changes.replaceNode(importingSourceFile, spec, makeImportSpecifier(exportName, spec.name.text)); - break; - } - case 273 /* ImportClause */: { - var clause = parent2; - Debug.assert(clause.name === ref, "Import clause name should match provided ref"); - var spec = makeImportSpecifier(exportName, ref.text); - var namedBindings = clause.namedBindings; - if (!namedBindings) { - changes.replaceNode(importingSourceFile, ref, factory.createNamedImports([spec])); - } - else if (namedBindings.kind === 274 /* NamespaceImport */) { - changes.deleteRange(importingSourceFile, { pos: ref.getStart(importingSourceFile), end: namedBindings.getStart(importingSourceFile) }); - var quotePreference = isStringLiteral(clause.parent.moduleSpecifier) ? quotePreferenceFromString(clause.parent.moduleSpecifier, importingSourceFile) : 1 /* Double */; - var newImport = makeImport( - /*defaultImport*/ - void 0, [makeImportSpecifier(exportName, ref.text)], clause.parent.moduleSpecifier, quotePreference); - changes.insertNodeAfter(importingSourceFile, clause.parent, newImport); - } - else { - changes.delete(importingSourceFile, ref); - changes.insertNodeAtEndOfList(importingSourceFile, namedBindings.elements, spec); - } - break; - } - case 205 /* ImportType */: - var importTypeNode = parent2; - changes.replaceNode(importingSourceFile, parent2, factory.createImportTypeNode(importTypeNode.argument, importTypeNode.assertions, factory.createIdentifier(exportName), importTypeNode.typeArguments, importTypeNode.isTypeOf)); - break; - default: - Debug.failBadSyntaxKind(parent2); - } -} -function changeNamedToDefaultImport(importingSourceFile, ref, changes) { - var parent2 = ref.parent; - switch (parent2.kind) { - case 211 /* PropertyAccessExpression */: - changes.replaceNode(importingSourceFile, ref, factory.createIdentifier("default")); - break; - case 276 /* ImportSpecifier */: { - var defaultImport = factory.createIdentifier(parent2.name.text); - if (parent2.parent.elements.length === 1) { - changes.replaceNode(importingSourceFile, parent2.parent, defaultImport); - } - else { - changes.delete(importingSourceFile, parent2); - changes.insertNodeBefore(importingSourceFile, parent2.parent, defaultImport); - } - break; - } - case 281 /* ExportSpecifier */: { - changes.replaceNode(importingSourceFile, parent2, makeExportSpecifier("default", parent2.name.text)); - break; - } - default: - Debug.assertNever(parent2, "Unexpected parent kind ".concat(parent2.kind)); - } -} -function makeImportSpecifier(propertyName, name) { - return factory.createImportSpecifier( - /*isTypeOnly*/ - false, propertyName === name ? void 0 : factory.createIdentifier(propertyName), factory.createIdentifier(name)); -} -function makeExportSpecifier(propertyName, name) { - return factory.createExportSpecifier( - /*isTypeOnly*/ - false, propertyName === name ? void 0 : factory.createIdentifier(propertyName), factory.createIdentifier(name)); -} -function getExportingModuleSymbol(parent2, checker) { - if (isSourceFile(parent2)) { - return parent2.symbol; - } - var symbol = parent2.parent.symbol; - if (symbol.valueDeclaration && isExternalModuleAugmentation(symbol.valueDeclaration)) { - return checker.getMergedSymbol(symbol); - } - return symbol; -} -// src/services/refactors/convertImport.ts -var refactorName2 = "Convert import"; -var actions = (_x = {}, - _x[0 /* Named */] = { - name: "Convert namespace import to named imports", - description: getLocaleSpecificMessage(Diagnostics.Convert_namespace_import_to_named_imports), - kind: "refactor.rewrite.import.named" - }, - _x[2 /* Namespace */] = { - name: "Convert named imports to namespace import", - description: getLocaleSpecificMessage(Diagnostics.Convert_named_imports_to_namespace_import), - kind: "refactor.rewrite.import.namespace" - }, - _x[1 /* Default */] = { - name: "Convert named imports to default import", - description: getLocaleSpecificMessage(Diagnostics.Convert_named_imports_to_default_import), - kind: "refactor.rewrite.import.default" - }, - _x); -registerRefactor(refactorName2, { - kinds: getOwnValues(actions).map(function (a) { return a.kind; }), - getAvailableActions: function getRefactorActionsToConvertBetweenNamedAndNamespacedImports(context) { - var info = getImportConversionInfo(context, context.triggerReason === "invoked"); - if (!info) - return emptyArray; - if (!isRefactorErrorInfo(info)) { - var action = actions[info.convertTo]; - return [{ name: refactorName2, description: action.description, actions: [action] }]; - } - if (context.preferences.provideRefactorNotApplicableReason) { - return getOwnValues(actions).map(function (action) { return ({ - name: refactorName2, - description: action.description, - actions: [__assign(__assign({}, action), { notApplicableReason: info.error })] - }); }); - } - return emptyArray; - }, - getEditsForAction: function getRefactorEditsToConvertBetweenNamedAndNamespacedImports(context, actionName2) { - Debug.assert(some(getOwnValues(actions), function (action) { return action.name === actionName2; }), "Unexpected action name"); - var info = getImportConversionInfo(context); - Debug.assert(info && !isRefactorErrorInfo(info), "Expected applicable refactor info"); - var edits = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return doChange2(context.file, context.program, t, info); }); - return { edits: edits, renameFilename: void 0, renameLocation: void 0 }; - } -}); -function getImportConversionInfo(context, considerPartialSpans) { - if (considerPartialSpans === void 0) { considerPartialSpans = true; } - var file = context.file; - var span = getRefactorContextSpan(context); - var token = getTokenAtPosition(file, span.start); - var importDecl = considerPartialSpans ? findAncestor(token, isImportDeclaration) : getParentNodeInSpan(token, file, span); - if (!importDecl || !isImportDeclaration(importDecl)) - return { error: "Selection is not an import declaration." }; - var end = span.start + span.length; - var nextToken = findNextToken(importDecl, importDecl.parent, file); - if (nextToken && end > nextToken.getStart()) - return void 0; - var importClause = importDecl.importClause; - if (!importClause) { - return { error: getLocaleSpecificMessage(Diagnostics.Could_not_find_import_clause) }; - } - if (!importClause.namedBindings) { - return { error: getLocaleSpecificMessage(Diagnostics.Could_not_find_namespace_import_or_named_imports) }; - } - if (importClause.namedBindings.kind === 274 /* NamespaceImport */) { - return { convertTo: 0 /* Named */, import: importClause.namedBindings }; - } - var shouldUseDefault = getShouldUseDefault(context.program, importClause); - return shouldUseDefault ? { convertTo: 1 /* Default */, import: importClause.namedBindings } : { convertTo: 2 /* Namespace */, import: importClause.namedBindings }; -} -function getShouldUseDefault(program, importClause) { - return getAllowSyntheticDefaultImports(program.getCompilerOptions()) && isExportEqualsModule(importClause.parent.moduleSpecifier, program.getTypeChecker()); -} -function doChange2(sourceFile, program, changes, info) { - var checker = program.getTypeChecker(); - if (info.convertTo === 0 /* Named */) { - doChangeNamespaceToNamed(sourceFile, checker, changes, info.import, getAllowSyntheticDefaultImports(program.getCompilerOptions())); - } - else { - doChangeNamedToNamespaceOrDefault(sourceFile, program, changes, info.import, info.convertTo === 1 /* Default */); - } -} -function doChangeNamespaceToNamed(sourceFile, checker, changes, toConvert, allowSyntheticDefaultImports) { - var e_683, _t; - var usedAsNamespaceOrDefault = false; - var nodesToReplace = []; - var conflictingNames = /* @__PURE__ */ new Map(); - ts_FindAllReferences_exports.Core.eachSymbolReferenceInFile(toConvert.name, checker, sourceFile, function (id) { - if (!isPropertyAccessOrQualifiedName(id.parent)) { - usedAsNamespaceOrDefault = true; - } - else { - var exportName = getRightOfPropertyAccessOrQualifiedName(id.parent).text; - if (checker.resolveName(exportName, id, 67108863 /* All */, - /*excludeGlobals*/ - true)) { - conflictingNames.set(exportName, true); - } - Debug.assert(getLeftOfPropertyAccessOrQualifiedName(id.parent) === id, "Parent expression should match id"); - nodesToReplace.push(id.parent); - } - }); - var exportNameToImportName = /* @__PURE__ */ new Map(); - try { - for (var nodesToReplace_1 = __values(nodesToReplace), nodesToReplace_1_1 = nodesToReplace_1.next(); !nodesToReplace_1_1.done; nodesToReplace_1_1 = nodesToReplace_1.next()) { - var propertyAccessOrQualifiedName = nodesToReplace_1_1.value; - var exportName = getRightOfPropertyAccessOrQualifiedName(propertyAccessOrQualifiedName).text; - var importName = exportNameToImportName.get(exportName); - if (importName === void 0) { - exportNameToImportName.set(exportName, importName = conflictingNames.has(exportName) ? getUniqueName(exportName, sourceFile) : exportName); - } - changes.replaceNode(sourceFile, propertyAccessOrQualifiedName, factory.createIdentifier(importName)); - } - } - catch (e_683_1) { e_683 = { error: e_683_1 }; } - finally { - try { - if (nodesToReplace_1_1 && !nodesToReplace_1_1.done && (_t = nodesToReplace_1.return)) _t.call(nodesToReplace_1); - } - finally { if (e_683) throw e_683.error; } - } - var importSpecifiers = []; - exportNameToImportName.forEach(function (name, propertyName) { - importSpecifiers.push(factory.createImportSpecifier( - /*isTypeOnly*/ - false, name === propertyName ? void 0 : factory.createIdentifier(propertyName), factory.createIdentifier(name))); - }); - var importDecl = toConvert.parent.parent; - if (usedAsNamespaceOrDefault && !allowSyntheticDefaultImports) { - changes.insertNodeAfter(sourceFile, importDecl, updateImport(importDecl, - /*defaultImportName*/ - void 0, importSpecifiers)); - } - else { - changes.replaceNode(sourceFile, importDecl, updateImport(importDecl, usedAsNamespaceOrDefault ? factory.createIdentifier(toConvert.name.text) : void 0, importSpecifiers)); - } -} -function getRightOfPropertyAccessOrQualifiedName(propertyAccessOrQualifiedName) { - return isPropertyAccessExpression(propertyAccessOrQualifiedName) ? propertyAccessOrQualifiedName.name : propertyAccessOrQualifiedName.right; -} -function getLeftOfPropertyAccessOrQualifiedName(propertyAccessOrQualifiedName) { - return isPropertyAccessExpression(propertyAccessOrQualifiedName) ? propertyAccessOrQualifiedName.expression : propertyAccessOrQualifiedName.left; -} -function doChangeNamedToNamespaceOrDefault(sourceFile, program, changes, toConvert, shouldUseDefault) { - var e_684, _t; - if (shouldUseDefault === void 0) { shouldUseDefault = getShouldUseDefault(program, toConvert.parent); } - var checker = program.getTypeChecker(); - var importDecl = toConvert.parent.parent; - var moduleSpecifier = importDecl.moduleSpecifier; - var toConvertSymbols = /* @__PURE__ */ new Set(); - toConvert.elements.forEach(function (namedImport) { - var symbol = checker.getSymbolAtLocation(namedImport.name); - if (symbol) { - toConvertSymbols.add(symbol); - } - }); - var preferredName = moduleSpecifier && isStringLiteral(moduleSpecifier) ? ts_codefix_exports.moduleSpecifierToValidIdentifier(moduleSpecifier.text, 99 /* ESNext */) : "module"; - function hasNamespaceNameConflict(namedImport) { - return !!ts_FindAllReferences_exports.Core.eachSymbolReferenceInFile(namedImport.name, checker, sourceFile, function (id) { - var symbol = checker.resolveName(preferredName, id, 67108863 /* All */, - /*excludeGlobals*/ - true); - if (symbol) { - if (toConvertSymbols.has(symbol)) { - return isExportSpecifier(id.parent); - } - return true; - } - return false; - }); - } - var namespaceNameConflicts = toConvert.elements.some(hasNamespaceNameConflict); - var namespaceImportName = namespaceNameConflicts ? getUniqueName(preferredName, sourceFile) : preferredName; - var neededNamedImports = /* @__PURE__ */ new Set(); - var _loop_45 = function (element) { - var propertyName = (element.propertyName || element.name).text; - ts_FindAllReferences_exports.Core.eachSymbolReferenceInFile(element.name, checker, sourceFile, function (id) { - var access = factory.createPropertyAccessExpression(factory.createIdentifier(namespaceImportName), propertyName); - if (isShorthandPropertyAssignment(id.parent)) { - changes.replaceNode(sourceFile, id.parent, factory.createPropertyAssignment(id.text, access)); - } - else if (isExportSpecifier(id.parent)) { - neededNamedImports.add(element); - } - else { - changes.replaceNode(sourceFile, id, access); - } - }); - }; - try { - for (var _u = __values(toConvert.elements), _v = _u.next(); !_v.done; _v = _u.next()) { - var element = _v.value; - _loop_45(element); - } - } - catch (e_684_1) { e_684 = { error: e_684_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_684) throw e_684.error; } - } - changes.replaceNode(sourceFile, toConvert, shouldUseDefault ? factory.createIdentifier(namespaceImportName) : factory.createNamespaceImport(factory.createIdentifier(namespaceImportName))); - if (neededNamedImports.size) { - var newNamedImports = arrayFrom(neededNamedImports.values(), function (element) { return factory.createImportSpecifier(element.isTypeOnly, element.propertyName && factory.createIdentifier(element.propertyName.text), factory.createIdentifier(element.name.text)); }); - changes.insertNodeAfter(sourceFile, toConvert.parent.parent, updateImport(importDecl, - /*defaultImportName*/ - void 0, newNamedImports)); - } -} -function isExportEqualsModule(moduleSpecifier, checker) { - var externalModule = checker.resolveExternalModuleName(moduleSpecifier); - if (!externalModule) - return false; - var exportEquals = checker.resolveExternalModuleSymbol(externalModule); - return externalModule !== exportEquals; -} -function updateImport(old, defaultImportName, elements) { - return factory.createImportDeclaration( - /*modifiers*/ - void 0, factory.createImportClause( - /*isTypeOnly*/ - false, defaultImportName, elements && elements.length ? factory.createNamedImports(elements) : void 0), old.moduleSpecifier, - /*assertClause*/ - void 0); -} -// src/services/refactors/extractType.ts -var refactorName3 = "Extract type"; -var extractToTypeAliasAction = { - name: "Extract to type alias", - description: getLocaleSpecificMessage(Diagnostics.Extract_to_type_alias), - kind: "refactor.extract.type" -}; -var extractToInterfaceAction = { - name: "Extract to interface", - description: getLocaleSpecificMessage(Diagnostics.Extract_to_interface), - kind: "refactor.extract.interface" -}; -var extractToTypeDefAction = { - name: "Extract to typedef", - description: getLocaleSpecificMessage(Diagnostics.Extract_to_typedef), - kind: "refactor.extract.typedef" -}; -registerRefactor(refactorName3, { - kinds: [ - extractToTypeAliasAction.kind, - extractToInterfaceAction.kind, - extractToTypeDefAction.kind - ], - getAvailableActions: function getRefactorActionsToExtractType(context) { - var info = getRangeToExtract(context, context.triggerReason === "invoked"); - if (!info) - return emptyArray; - if (!isRefactorErrorInfo(info)) { - return [{ - name: refactorName3, - description: getLocaleSpecificMessage(Diagnostics.Extract_type), - actions: info.isJS ? [extractToTypeDefAction] : append([extractToTypeAliasAction], info.typeElements && extractToInterfaceAction) - }]; - } - if (context.preferences.provideRefactorNotApplicableReason) { - return [{ - name: refactorName3, - description: getLocaleSpecificMessage(Diagnostics.Extract_type), - actions: [ - __assign(__assign({}, extractToTypeDefAction), { notApplicableReason: info.error }), - __assign(__assign({}, extractToTypeAliasAction), { notApplicableReason: info.error }), - __assign(__assign({}, extractToInterfaceAction), { notApplicableReason: info.error }) - ] - }]; - } - return emptyArray; - }, - getEditsForAction: function getRefactorEditsToExtractType(context, actionName2) { - var file = context.file; - var info = getRangeToExtract(context); - Debug.assert(info && !isRefactorErrorInfo(info), "Expected to find a range to extract"); - var name = getUniqueName("NewType", file); - var edits = ts_textChanges_exports.ChangeTracker.with(context, function (changes) { - switch (actionName2) { - case extractToTypeAliasAction.name: - Debug.assert(!info.isJS, "Invalid actionName/JS combo"); - return doTypeAliasChange(changes, file, name, info); - case extractToTypeDefAction.name: - Debug.assert(info.isJS, "Invalid actionName/JS combo"); - return doTypedefChange(changes, context, file, name, info); - case extractToInterfaceAction.name: - Debug.assert(!info.isJS && !!info.typeElements, "Invalid actionName/JS combo"); - return doInterfaceChange(changes, file, name, info); - default: - Debug.fail("Unexpected action name"); - } - }); - var renameFilename = file.fileName; - var renameLocation = getRenameLocation(edits, renameFilename, name, - /*preferLastLocation*/ - false); - return { edits: edits, renameFilename: renameFilename, renameLocation: renameLocation }; - } -}); -function getRangeToExtract(context, considerEmptySpans) { - if (considerEmptySpans === void 0) { considerEmptySpans = true; } - var file = context.file, startPosition = context.startPosition; - var isJS = isSourceFileJS(file); - var current = getTokenAtPosition(file, startPosition); - var range = createTextRangeFromSpan(getRefactorContextSpan(context)); - var cursorRequest = range.pos === range.end && considerEmptySpans; - var selection = findAncestor(current, function (node) { return node.parent && isTypeNode(node) && !rangeContainsSkipTrivia(range, node.parent, file) && (cursorRequest || nodeOverlapsWithStartEnd(current, file, range.pos, range.end)); }); - if (!selection || !isTypeNode(selection)) - return { error: getLocaleSpecificMessage(Diagnostics.Selection_is_not_a_valid_type_node) }; - var checker = context.program.getTypeChecker(); - var enclosingNode = getEnclosingNode(selection, isJS); - if (enclosingNode === void 0) - return { error: getLocaleSpecificMessage(Diagnostics.No_type_could_be_extracted_from_this_type_node) }; - var typeParameters = collectTypeParameters(checker, selection, enclosingNode, file); - if (!typeParameters) - return { error: getLocaleSpecificMessage(Diagnostics.No_type_could_be_extracted_from_this_type_node) }; - var typeElements = flattenTypeLiteralNodeReference(checker, selection); - return { isJS: isJS, selection: selection, enclosingNode: enclosingNode, typeParameters: typeParameters, typeElements: typeElements }; -} -function flattenTypeLiteralNodeReference(checker, node) { - var e_685, _t; - if (!node) - return void 0; - if (isIntersectionTypeNode(node)) { - var result = []; - var seen_1 = /* @__PURE__ */ new Map(); - try { - for (var _u = __values(node.types), _v = _u.next(); !_v.done; _v = _u.next()) { - var type = _v.value; - var flattenedTypeMembers = flattenTypeLiteralNodeReference(checker, type); - if (!flattenedTypeMembers || !flattenedTypeMembers.every(function (type2) { return type2.name && addToSeen(seen_1, getNameFromPropertyName(type2.name)); })) { - return void 0; - } - addRange(result, flattenedTypeMembers); - } - } - catch (e_685_1) { e_685 = { error: e_685_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_685) throw e_685.error; } - } - return result; - } - else if (isParenthesizedTypeNode(node)) { - return flattenTypeLiteralNodeReference(checker, node.type); - } - else if (isTypeLiteralNode(node)) { - return node.members; - } - return void 0; -} -function rangeContainsSkipTrivia(r1, node, file) { - return rangeContainsStartEnd(r1, skipTrivia(file.text, node.pos), node.end); -} -function collectTypeParameters(checker, selection, enclosingNode, file) { - var result = []; - return visitor(selection) ? void 0 : result; - function visitor(node) { - var e_686, _t; - if (isTypeReferenceNode(node)) { - if (isIdentifier(node.typeName)) { - var typeName = node.typeName; - var symbol = checker.resolveName(typeName.text, typeName, 262144 /* TypeParameter */, - /*excludeGlobals*/ - true); - try { - for (var _u = __values((symbol == null ? void 0 : symbol.declarations) || emptyArray), _v = _u.next(); !_v.done; _v = _u.next()) { - var decl = _v.value; - if (isTypeParameterDeclaration(decl) && decl.getSourceFile() === file) { - if (decl.name.escapedText === typeName.escapedText && rangeContainsSkipTrivia(decl, selection, file)) { - return true; - } - if (rangeContainsSkipTrivia(enclosingNode, decl, file) && !rangeContainsSkipTrivia(selection, decl, file)) { - pushIfUnique(result, decl); - break; - } - } - } - } - catch (e_686_1) { e_686 = { error: e_686_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_686) throw e_686.error; } - } - } - } - else if (isInferTypeNode(node)) { - var conditionalTypeNode = findAncestor(node, function (n) { return isConditionalTypeNode(n) && rangeContainsSkipTrivia(n.extendsType, node, file); }); - if (!conditionalTypeNode || !rangeContainsSkipTrivia(selection, conditionalTypeNode, file)) { - return true; - } - } - else if (isTypePredicateNode(node) || isThisTypeNode(node)) { - var functionLikeNode = findAncestor(node.parent, isFunctionLike); - if (functionLikeNode && functionLikeNode.type && rangeContainsSkipTrivia(functionLikeNode.type, node, file) && !rangeContainsSkipTrivia(selection, functionLikeNode, file)) { - return true; - } - } - else if (isTypeQueryNode(node)) { - if (isIdentifier(node.exprName)) { - var symbol = checker.resolveName(node.exprName.text, node.exprName, 111551 /* Value */, - /*excludeGlobals*/ - false); - if ((symbol == null ? void 0 : symbol.valueDeclaration) && rangeContainsSkipTrivia(enclosingNode, symbol.valueDeclaration, file) && !rangeContainsSkipTrivia(selection, symbol.valueDeclaration, file)) { - return true; - } - } - else { - if (isThisIdentifier(node.exprName.left) && !rangeContainsSkipTrivia(selection, node.parent, file)) { - return true; - } - } - } - if (file && isTupleTypeNode(node) && getLineAndCharacterOfPosition(file, node.pos).line === getLineAndCharacterOfPosition(file, node.end).line) { - setEmitFlags(node, 1 /* SingleLine */); - } - return forEachChild(node, visitor); - } -} -function doTypeAliasChange(changes, file, name, info) { - var enclosingNode = info.enclosingNode, selection = info.selection, typeParameters = info.typeParameters; - var newTypeNode = factory.createTypeAliasDeclaration( - /*modifiers*/ - void 0, name, typeParameters.map(function (id) { return factory.updateTypeParameterDeclaration(id, id.modifiers, id.name, id.constraint, - /*defaultType*/ - void 0); }), selection); - changes.insertNodeBefore(file, enclosingNode, ignoreSourceNewlines(newTypeNode), - /*blankLineBetween*/ - true); - changes.replaceNode(file, selection, factory.createTypeReferenceNode(name, typeParameters.map(function (id) { return factory.createTypeReferenceNode(id.name, - /*typeArguments*/ - void 0); })), { leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.Exclude, trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.ExcludeWhitespace }); -} -function doInterfaceChange(changes, file, name, info) { - var _a; - var enclosingNode = info.enclosingNode, selection = info.selection, typeParameters = info.typeParameters, typeElements = info.typeElements; - var newTypeNode = factory.createInterfaceDeclaration( - /*modifiers*/ - void 0, name, typeParameters, - /*heritageClauses*/ - void 0, typeElements); - setTextRange(newTypeNode, (_a = typeElements[0]) == null ? void 0 : _a.parent); - changes.insertNodeBefore(file, enclosingNode, ignoreSourceNewlines(newTypeNode), - /*blankLineBetween*/ - true); - changes.replaceNode(file, selection, factory.createTypeReferenceNode(name, typeParameters.map(function (id) { return factory.createTypeReferenceNode(id.name, - /*typeArguments*/ - void 0); })), { leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.Exclude, trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.ExcludeWhitespace }); -} -function doTypedefChange(changes, context, file, name, info) { - var _a; - var enclosingNode = info.enclosingNode, selection = info.selection, typeParameters = info.typeParameters; - setEmitFlags(selection, 3072 /* NoComments */ | 4096 /* NoNestedComments */); - var node = factory.createJSDocTypedefTag(factory.createIdentifier("typedef"), factory.createJSDocTypeExpression(selection), factory.createIdentifier(name)); - var templates = []; - forEach(typeParameters, function (typeParameter) { - var constraint = getEffectiveConstraintOfTypeParameter(typeParameter); - var parameter = factory.createTypeParameterDeclaration( - /*modifiers*/ - void 0, typeParameter.name); - var template = factory.createJSDocTemplateTag(factory.createIdentifier("template"), constraint && cast(constraint, isJSDocTypeExpression), [parameter]); - templates.push(template); - }); - var jsDoc = factory.createJSDocComment( - /*comment*/ - void 0, factory.createNodeArray(concatenate(templates, [node]))); - if (isJSDoc(enclosingNode)) { - var pos = enclosingNode.getStart(file); - var newLineCharacter = getNewLineOrDefaultFromHost(context.host, (_a = context.formatContext) == null ? void 0 : _a.options); - changes.insertNodeAt(file, enclosingNode.getStart(file), jsDoc, { - suffix: newLineCharacter + newLineCharacter + file.text.slice(getPrecedingNonSpaceCharacterPosition(file.text, pos - 1), pos) - }); - } - else { - changes.insertNodeBefore(file, enclosingNode, jsDoc, - /*blankLineBetween*/ - true); - } - changes.replaceNode(file, selection, factory.createTypeReferenceNode(name, typeParameters.map(function (id) { return factory.createTypeReferenceNode(id.name, - /*typeArguments*/ - void 0); }))); -} -function getEnclosingNode(node, isJS) { - return findAncestor(node, isStatement) || (isJS ? findAncestor(node, isJSDoc) : void 0); -} -// src/services/refactors/helpers.ts -function isRefactorErrorInfo(info) { - return info.error !== void 0; -} -function refactorKindBeginsWith(known, requested) { - if (!requested) - return true; - return known.substr(0, requested.length) === requested; -} -// src/services/refactors/inlineVariable.ts -var refactorName4 = "Inline variable"; -var refactorDescription = getLocaleSpecificMessage(Diagnostics.Inline_variable); -var inlineVariableAction = { - name: refactorName4, - description: refactorDescription, - kind: "refactor.inline.variable" -}; -registerRefactor(refactorName4, { - kinds: [inlineVariableAction.kind], - getAvailableActions: function (context) { - var file = context.file, program = context.program, preferences = context.preferences, startPosition = context.startPosition, triggerReason = context.triggerReason; - var info = getInliningInfo(file, startPosition, triggerReason === "invoked", program); - if (!info) { - return emptyArray; - } - if (!ts_refactor_exports.isRefactorErrorInfo(info)) { - return [{ - name: refactorName4, - description: refactorDescription, - actions: [inlineVariableAction] - }]; - } - if (preferences.provideRefactorNotApplicableReason) { - return [{ - name: refactorName4, - description: refactorDescription, - actions: [__assign(__assign({}, inlineVariableAction), { notApplicableReason: info.error })] - }]; - } - return emptyArray; - }, - getEditsForAction: function (context, actionName2) { - Debug.assert(actionName2 === refactorName4, "Unexpected refactor invoked"); - var file = context.file, program = context.program, startPosition = context.startPosition; - var info = getInliningInfo(file, startPosition, - /*tryWithReferenceToken*/ - true, program); - if (!info || ts_refactor_exports.isRefactorErrorInfo(info)) { - return void 0; - } - var references = info.references, declaration = info.declaration, replacement = info.replacement; - var edits = ts_textChanges_exports.ChangeTracker.with(context, function (tracker) { - var e_687, _t; - try { - for (var references_1 = __values(references), references_1_1 = references_1.next(); !references_1_1.done; references_1_1 = references_1.next()) { - var node = references_1_1.value; - tracker.replaceNode(file, node, getReplacementExpression(node, replacement)); - } - } - catch (e_687_1) { e_687 = { error: e_687_1 }; } - finally { - try { - if (references_1_1 && !references_1_1.done && (_t = references_1.return)) _t.call(references_1); - } - finally { if (e_687) throw e_687.error; } - } - tracker.delete(file, declaration); - }); - return { edits: edits }; - } -}); -function getInliningInfo(file, startPosition, tryWithReferenceToken, program) { - var _a, _b; - var checker = program.getTypeChecker(); - var token = getTouchingPropertyName(file, startPosition); - var parent2 = token.parent; - if (!isIdentifier(token)) { - return void 0; - } - if (isInitializedVariable(parent2) && isVariableDeclarationInVariableStatement(parent2) && isIdentifier(parent2.name)) { - if (((_a = checker.getMergedSymbol(parent2.symbol).declarations) == null ? void 0 : _a.length) !== 1) { - return { error: getLocaleSpecificMessage(Diagnostics.Variables_with_multiple_declarations_cannot_be_inlined) }; - } - if (isDeclarationExported(parent2)) { - return void 0; - } - var references = getReferenceNodes(parent2, checker, file); - return references && { references: references, declaration: parent2, replacement: parent2.initializer }; - } - if (tryWithReferenceToken) { - var definition = checker.resolveName(token.text, token, 111551 /* Value */, - /*excludeGlobals*/ - false); - definition = definition && checker.getMergedSymbol(definition); - if (((_b = definition == null ? void 0 : definition.declarations) == null ? void 0 : _b.length) !== 1) { - return { error: getLocaleSpecificMessage(Diagnostics.Variables_with_multiple_declarations_cannot_be_inlined) }; - } - var declaration = definition.declarations[0]; - if (!isInitializedVariable(declaration) || !isVariableDeclarationInVariableStatement(declaration) || !isIdentifier(declaration.name)) { - return void 0; - } - if (isDeclarationExported(declaration)) { - return void 0; - } - var references = getReferenceNodes(declaration, checker, file); - return references && { references: references, declaration: declaration, replacement: declaration.initializer }; - } - return { error: getLocaleSpecificMessage(Diagnostics.Could_not_find_variable_to_inline) }; -} -function isDeclarationExported(declaration) { - var variableStatement = cast(declaration.parent.parent, isVariableStatement); - return some(variableStatement.modifiers, isExportModifier); -} -function getReferenceNodes(declaration, checker, file) { - var references = []; - var cannotInline = ts_FindAllReferences_exports.Core.eachSymbolReferenceInFile(declaration.name, checker, file, function (ref) { - if (ts_FindAllReferences_exports.isWriteAccessForReference(ref)) { - return true; - } - if (isExportSpecifier(ref.parent) || isExportAssignment(ref.parent)) { - return true; - } - if (isTypeQueryNode(ref.parent)) { - return true; - } - if (textRangeContainsPositionInclusive(declaration, ref.pos)) { - return true; - } - references.push(ref); - }); - return references.length === 0 || cannotInline ? void 0 : references; -} -function getReplacementExpression(reference, replacement) { - replacement = getSynthesizedDeepClone(replacement); - var parent2 = reference.parent; - if (isExpression(parent2) && (getExpressionPrecedence(replacement) < getExpressionPrecedence(parent2) || needsParentheses(parent2))) { - return factory.createParenthesizedExpression(replacement); - } - if (isFunctionLike(replacement) && (isCallLikeExpression(parent2) || isPropertyAccessExpression(parent2))) { - return factory.createParenthesizedExpression(replacement); - } - if (isPropertyAccessExpression(parent2) && (isNumericLiteral(replacement) || isObjectLiteralExpression(replacement))) { - return factory.createParenthesizedExpression(replacement); - } - return replacement; -} -// src/services/refactors/moveToNewFile.ts -var refactorName5 = "Move to a new file"; -var description = getLocaleSpecificMessage(Diagnostics.Move_to_a_new_file); -var moveToNewFileAction = { - name: refactorName5, - description: description, - kind: "refactor.move.newFile" -}; -registerRefactor(refactorName5, { - kinds: [moveToNewFileAction.kind], - getAvailableActions: function getRefactorActionsToMoveToNewFile(context) { - var statements = getStatementsToMove(context); - if (context.preferences.allowTextChangesInNewFiles && statements) { - return [{ name: refactorName5, description: description, actions: [moveToNewFileAction] }]; - } - if (context.preferences.provideRefactorNotApplicableReason) { - return [{ - name: refactorName5, - description: description, - actions: [__assign(__assign({}, moveToNewFileAction), { notApplicableReason: getLocaleSpecificMessage(Diagnostics.Selection_is_not_a_valid_statement_or_statements) })] - }]; - } - return emptyArray; - }, - getEditsForAction: function getRefactorEditsToMoveToNewFile(context, actionName2) { - Debug.assert(actionName2 === refactorName5, "Wrong refactor invoked"); - var statements = Debug.checkDefined(getStatementsToMove(context)); - var edits = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return doChange3(context.file, context.program, statements, t, context.host, context.preferences, context); }); - return { edits: edits, renameFilename: void 0, renameLocation: void 0 }; - } -}); -function doChange3(oldFile, program, toMove, changes, host, preferences, context) { - var checker = program.getTypeChecker(); - var usage = getUsageInfo(oldFile, toMove.all, checker); - var newFilename = createNewFileName(oldFile, program, context, host); - changes.createNewFile(oldFile, newFilename, getNewStatementsAndRemoveFromOldFile(oldFile, usage, changes, toMove, program, host, newFilename, preferences)); - addNewFileToTsconfig(program, changes, oldFile.fileName, newFilename, hostGetCanonicalFileName(host)); -} -function getNewStatementsAndRemoveFromOldFile(oldFile, usage, changes, toMove, program, host, newFilename, preferences) { - var checker = program.getTypeChecker(); - var prologueDirectives = takeWhile(oldFile.statements, isPrologueDirective); - if (oldFile.externalModuleIndicator === void 0 && oldFile.commonJsModuleIndicator === void 0 && usage.oldImportsNeededByTargetFile.size === 0) { - deleteMovedStatements(oldFile, toMove.ranges, changes); - return __spreadArray(__spreadArray([], __read(prologueDirectives), false), __read(toMove.all), false); - } - var useEsModuleSyntax = !fileShouldUseJavaScriptRequire(newFilename, program, host, !!oldFile.commonJsModuleIndicator); - var quotePreference = getQuotePreference(oldFile, preferences); - var importsFromNewFile = createOldFileImportsFromTargetFile(oldFile, usage.oldFileImportsFromTargetFile, newFilename, program, host, useEsModuleSyntax, quotePreference); - if (importsFromNewFile) { - insertImports(changes, oldFile, importsFromNewFile, - /*blankLineBetween*/ - true, preferences); - } - deleteUnusedOldImports(oldFile, toMove.all, changes, usage.unusedImportsFromOldFile, checker); - deleteMovedStatements(oldFile, toMove.ranges, changes); - updateImportsInOtherFiles(changes, program, host, oldFile, usage.movedSymbols, newFilename, quotePreference); - var imports = getNewFileImportsAndAddExportInOldFile(oldFile, usage.oldImportsNeededByTargetFile, usage.targetFileImportsFromOldFile, changes, checker, program, host, useEsModuleSyntax, quotePreference); - var body = addExports(oldFile, toMove.all, usage.oldFileImportsFromTargetFile, useEsModuleSyntax); - if (imports.length && body.length) { - return __spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read(prologueDirectives), false), __read(imports), false), [ - 4 /* NewLineTrivia */ - ], false), __read(body), false); - } - return __spreadArray(__spreadArray(__spreadArray([], __read(prologueDirectives), false), __read(imports), false), __read(body), false); -} -function getNewFileImportsAndAddExportInOldFile(oldFile, importsToCopy, newFileImportsFromOldFile, changes, checker, program, host, useEsModuleSyntax, quotePreference) { - var e_688, _t; - var copiedOldImports = []; - try { - for (var _u = __values(oldFile.statements), _v = _u.next(); !_v.done; _v = _u.next()) { - var oldStatement = _v.value; - forEachImportInStatement(oldStatement, function (i) { - append(copiedOldImports, filterImport(i, moduleSpecifierFromImport(i), function (name) { return importsToCopy.has(checker.getSymbolAtLocation(name)); })); - }); - } - } - catch (e_688_1) { e_688 = { error: e_688_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_688) throw e_688.error; } - } - var oldFileDefault; - var oldFileNamedImports = []; - var markSeenTop = nodeSeenTracker(); - newFileImportsFromOldFile.forEach(function (symbol) { - var e_689, _t; - if (!symbol.declarations) { - return; - } - try { - for (var _u = __values(symbol.declarations), _v = _u.next(); !_v.done; _v = _u.next()) { - var decl = _v.value; - if (!isTopLevelDeclaration(decl)) - continue; - var name_104 = nameOfTopLevelDeclaration(decl); - if (!name_104) - continue; - var top_1 = getTopLevelDeclarationStatement(decl); - if (markSeenTop(top_1)) { - addExportToChanges(oldFile, top_1, name_104, changes, useEsModuleSyntax); - } - if (hasSyntacticModifier(decl, 1024 /* Default */)) { - oldFileDefault = name_104; - } - else { - oldFileNamedImports.push(name_104.text); - } - } - } - catch (e_689_1) { e_689 = { error: e_689_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_689) throw e_689.error; } - } - }); - append(copiedOldImports, makeImportOrRequire(oldFile, oldFileDefault, oldFileNamedImports, getBaseFileName(oldFile.fileName), program, host, useEsModuleSyntax, quotePreference)); - return copiedOldImports; -} -// src/services/refactors/moveToFile.ts -var refactorNameForMoveToFile = "Move to file"; -var description2 = getLocaleSpecificMessage(Diagnostics.Move_to_file); -var moveToFileAction = { - name: "Move to file", - description: description2, - kind: "refactor.move.file" -}; -registerRefactor(refactorNameForMoveToFile, { - kinds: [moveToFileAction.kind], - getAvailableActions: function getRefactorActionsToMoveToFile(context, interactiveRefactorArguments) { - var statements = getStatementsToMove(context); - if (!interactiveRefactorArguments) { - return emptyArray; - } - if (context.preferences.allowTextChangesInNewFiles && statements) { - return [{ name: refactorNameForMoveToFile, description: description2, actions: [moveToFileAction] }]; - } - if (context.preferences.provideRefactorNotApplicableReason) { - return [{ - name: refactorNameForMoveToFile, - description: description2, - actions: [__assign(__assign({}, moveToFileAction), { notApplicableReason: getLocaleSpecificMessage(Diagnostics.Selection_is_not_a_valid_statement_or_statements) })] - }]; - } - return emptyArray; - }, - getEditsForAction: function getRefactorEditsToMoveToFile(context, actionName2, interactiveRefactorArguments) { - Debug.assert(actionName2 === refactorNameForMoveToFile, "Wrong refactor invoked"); - var statements = Debug.checkDefined(getStatementsToMove(context)); - var host = context.host, program = context.program; - Debug.assert(interactiveRefactorArguments, "No interactive refactor arguments available"); - var targetFile = interactiveRefactorArguments.targetFile; - if (hasJSFileExtension(targetFile) || hasTSFileExtension(targetFile)) { - if (host.fileExists(targetFile) && program.getSourceFile(targetFile) === void 0) { - return error(getLocaleSpecificMessage(Diagnostics.Cannot_move_statements_to_the_selected_file)); - } - var edits = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return doChange4(context, context.file, interactiveRefactorArguments.targetFile, context.program, statements, t, context.host, context.preferences); }); - return { edits: edits, renameFilename: void 0, renameLocation: void 0 }; - } - return error(getLocaleSpecificMessage(Diagnostics.Cannot_move_to_file_selected_file_is_invalid)); - } -}); -function error(notApplicableReason) { - return { edits: [], renameFilename: void 0, renameLocation: void 0, notApplicableReason: notApplicableReason }; -} -function doChange4(context, oldFile, targetFile, program, toMove, changes, host, preferences) { - var checker = program.getTypeChecker(); - var usage = getUsageInfo(oldFile, toMove.all, checker); - if (!host.fileExists(targetFile)) { - changes.createNewFile(oldFile, targetFile, getNewStatementsAndRemoveFromOldFile2(oldFile, targetFile, usage, changes, toMove, program, host, preferences)); - addNewFileToTsconfig(program, changes, oldFile.fileName, targetFile, hostGetCanonicalFileName(host)); - } - else { - var targetSourceFile = Debug.checkDefined(program.getSourceFile(targetFile)); - var importAdder = ts_codefix_exports.createImportAdder(targetSourceFile, context.program, context.preferences, context.host); - getNewStatementsAndRemoveFromOldFile2(oldFile, targetSourceFile, usage, changes, toMove, program, host, preferences, importAdder); - } -} -function getNewStatementsAndRemoveFromOldFile2(oldFile, targetFile, usage, changes, toMove, program, host, preferences, importAdder) { - var checker = program.getTypeChecker(); - var prologueDirectives = takeWhile(oldFile.statements, isPrologueDirective); - if (oldFile.externalModuleIndicator === void 0 && oldFile.commonJsModuleIndicator === void 0 && usage.oldImportsNeededByTargetFile.size === 0 && usage.targetFileImportsFromOldFile.size === 0 && typeof targetFile === "string") { - deleteMovedStatements(oldFile, toMove.ranges, changes); - return __spreadArray(__spreadArray([], __read(prologueDirectives), false), __read(toMove.all), false); - } - var targetFileName = typeof targetFile === "string" ? targetFile : targetFile.fileName; - var useEsModuleSyntax = !fileShouldUseJavaScriptRequire(targetFileName, program, host, !!oldFile.commonJsModuleIndicator); - var quotePreference = getQuotePreference(oldFile, preferences); - var importsFromTargetFile = createOldFileImportsFromTargetFile(oldFile, usage.oldFileImportsFromTargetFile, targetFileName, program, host, useEsModuleSyntax, quotePreference); - if (importsFromTargetFile) { - insertImports(changes, oldFile, importsFromTargetFile, - /*blankLineBetween*/ - true, preferences); - } - deleteUnusedOldImports(oldFile, toMove.all, changes, usage.unusedImportsFromOldFile, checker); - deleteMovedStatements(oldFile, toMove.ranges, changes); - updateImportsInOtherFiles(changes, program, host, oldFile, usage.movedSymbols, targetFileName, quotePreference); - var imports = getTargetFileImportsAndAddExportInOldFile(oldFile, targetFileName, usage.oldImportsNeededByTargetFile, usage.targetFileImportsFromOldFile, changes, checker, program, host, useEsModuleSyntax, quotePreference, importAdder); - var body = addExports(oldFile, toMove.all, usage.oldFileImportsFromTargetFile, useEsModuleSyntax); - if (typeof targetFile !== "string") { - if (targetFile.statements.length > 0) { - moveStatementsToTargetFile(changes, program, body, targetFile, toMove); - } - else { - changes.insertNodesAtEndOfFile(targetFile, body, - /*blankLineBetween*/ - false); - } - if (imports.length > 0) { - insertImports(changes, targetFile, imports, - /*blankLineBetween*/ - true, preferences); - } - } - if (importAdder) { - importAdder.writeFixes(changes, quotePreference); - } - if (imports.length && body.length) { - return __spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read(prologueDirectives), false), __read(imports), false), [ - 4 /* NewLineTrivia */ - ], false), __read(body), false); - } - return __spreadArray(__spreadArray(__spreadArray([], __read(prologueDirectives), false), __read(imports), false), __read(body), false); -} -function getTargetFileImportsAndAddExportInOldFile(oldFile, targetFile, importsToCopy, targetFileImportsFromOldFile, changes, checker, program, host, useEsModuleSyntax, quotePreference, importAdder) { - var e_690, _t; - var copiedOldImports = []; - if (importAdder) { - importsToCopy.forEach(function (isValidTypeOnlyUseSite, symbol) { - var e_691, _t; - try { - importAdder.addImportFromExportedSymbol(skipAlias(symbol, checker), isValidTypeOnlyUseSite); - } - catch (_u) { - try { - for (var _v = __values(oldFile.statements), _w = _v.next(); !_w.done; _w = _v.next()) { - var oldStatement = _w.value; - forEachImportInStatement(oldStatement, function (i) { - append(copiedOldImports, filterImport(i, factory.createStringLiteral(moduleSpecifierFromImport(i).text), function (name) { return importsToCopy.has(checker.getSymbolAtLocation(name)); })); - }); - } - } - catch (e_691_1) { e_691 = { error: e_691_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_691) throw e_691.error; } - } - } - }); - } - else { - var targetSourceFile_1 = program.getSourceFile(targetFile); - try { - for (var _u = __values(oldFile.statements), _v = _u.next(); !_v.done; _v = _u.next()) { - var oldStatement = _v.value; - forEachImportInStatement(oldStatement, function (i) { - var _a, _b; - var moduleSpecifier = moduleSpecifierFromImport(i); - var resolved = (_a = oldFile.resolvedModules) == null ? void 0 : _a.get(moduleSpecifier.text, getModeForUsageLocation(oldFile, moduleSpecifier)); - var fileName = (_b = resolved == null ? void 0 : resolved.resolvedModule) == null ? void 0 : _b.resolvedFileName; - if (fileName && targetSourceFile_1) { - var newModuleSpecifier = getModuleSpecifier(program.getCompilerOptions(), targetSourceFile_1, targetSourceFile_1.path, fileName, createModuleSpecifierResolutionHost(program, host)); - append(copiedOldImports, filterImport(i, makeStringLiteral(newModuleSpecifier, quotePreference), function (name) { return importsToCopy.has(checker.getSymbolAtLocation(name)); })); - } - else { - append(copiedOldImports, filterImport(i, factory.createStringLiteral(moduleSpecifierFromImport(i).text), function (name) { return importsToCopy.has(checker.getSymbolAtLocation(name)); })); - } - }); - } - } - catch (e_690_1) { e_690 = { error: e_690_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_690) throw e_690.error; } - } - } - var targetFileSourceFile = program.getSourceFile(targetFile); - var oldFileDefault; - var oldFileNamedImports = []; - var markSeenTop = nodeSeenTracker(); - targetFileImportsFromOldFile.forEach(function (symbol) { - var e_692, _t; - if (!symbol.declarations) { - return; - } - try { - for (var _u = __values(symbol.declarations), _v = _u.next(); !_v.done; _v = _u.next()) { - var decl = _v.value; - if (!isTopLevelDeclaration(decl)) - continue; - var name_105 = nameOfTopLevelDeclaration(decl); - if (!name_105) - continue; - var top_2 = getTopLevelDeclarationStatement(decl); - if (markSeenTop(top_2)) { - addExportToChanges(oldFile, top_2, name_105, changes, useEsModuleSyntax); - } - if (importAdder && checker.isUnknownSymbol(symbol)) { - importAdder.addImportFromExportedSymbol(skipAlias(symbol, checker)); - } - else { - if (hasSyntacticModifier(decl, 1024 /* Default */)) { - oldFileDefault = name_105; - } - else { - oldFileNamedImports.push(name_105.text); - } - } - } - } - catch (e_692_1) { e_692 = { error: e_692_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_692) throw e_692.error; } - } - }); - return targetFileSourceFile ? append(copiedOldImports, makeImportOrRequire(targetFileSourceFile, oldFileDefault, oldFileNamedImports, oldFile.fileName, program, host, useEsModuleSyntax, quotePreference)) : append(copiedOldImports, makeImportOrRequire(oldFile, oldFileDefault, oldFileNamedImports, oldFile.fileName, program, host, useEsModuleSyntax, quotePreference)); -} -function addNewFileToTsconfig(program, changes, oldFileName, newFileNameWithExtension, getCanonicalFileName) { - var cfg = program.getCompilerOptions().configFile; - if (!cfg) - return; - var newFileAbsolutePath = normalizePath(combinePaths(oldFileName, "..", newFileNameWithExtension)); - var newFilePath = getRelativePathFromFile(cfg.fileName, newFileAbsolutePath, getCanonicalFileName); - var cfgObject = cfg.statements[0] && tryCast(cfg.statements[0].expression, isObjectLiteralExpression); - var filesProp = cfgObject && find(cfgObject.properties, function (prop) { return isPropertyAssignment(prop) && isStringLiteral(prop.name) && prop.name.text === "files"; }); - if (filesProp && isArrayLiteralExpression(filesProp.initializer)) { - changes.insertNodeInListAfter(cfg, last(filesProp.initializer.elements), factory.createStringLiteral(newFilePath), filesProp.initializer.elements); - } -} -function deleteMovedStatements(sourceFile, moved, changes) { - var e_693, _t; - try { - for (var moved_1 = __values(moved), moved_1_1 = moved_1.next(); !moved_1_1.done; moved_1_1 = moved_1.next()) { - var _u = moved_1_1.value, first2 = _u.first, afterLast = _u.afterLast; - changes.deleteNodeRangeExcludingEnd(sourceFile, first2, afterLast); - } - } - catch (e_693_1) { e_693 = { error: e_693_1 }; } - finally { - try { - if (moved_1_1 && !moved_1_1.done && (_t = moved_1.return)) _t.call(moved_1); - } - finally { if (e_693) throw e_693.error; } - } -} -function deleteUnusedOldImports(oldFile, toMove, changes, toDelete, checker) { - var e_694, _t; - try { - for (var _u = __values(oldFile.statements), _v = _u.next(); !_v.done; _v = _u.next()) { - var statement = _v.value; - if (contains(toMove, statement)) - continue; - forEachImportInStatement(statement, function (i) { return deleteUnusedImports(oldFile, i, changes, function (name) { return toDelete.has(checker.getSymbolAtLocation(name)); }); }); - } - } - catch (e_694_1) { e_694 = { error: e_694_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_694) throw e_694.error; } - } -} -function updateImportsInOtherFiles(changes, program, host, oldFile, movedSymbols, targetFileName, quotePreference) { - var e_695, _t; - var checker = program.getTypeChecker(); - var _loop_46 = function (sourceFile) { - var e_696, _w; - if (sourceFile === oldFile) - return "continue"; - var _loop_47 = function (statement) { - forEachImportInStatement(statement, function (importNode) { - if (checker.getSymbolAtLocation(moduleSpecifierFromImport(importNode)) !== oldFile.symbol) - return; - var shouldMove = function (name) { - var symbol = isBindingElement(name.parent) ? getPropertySymbolFromBindingElement(checker, name.parent) : skipAlias(checker.getSymbolAtLocation(name), checker); - return !!symbol && movedSymbols.has(symbol); - }; - deleteUnusedImports(sourceFile, importNode, changes, shouldMove); - var pathToTargetFileWithExtension = resolvePath(getDirectoryPath(oldFile.path), targetFileName); - var newModuleSpecifier = getModuleSpecifier(program.getCompilerOptions(), sourceFile, sourceFile.path, pathToTargetFileWithExtension, createModuleSpecifierResolutionHost(program, host)); - var newImportDeclaration = filterImport(importNode, makeStringLiteral(newModuleSpecifier, quotePreference), shouldMove); - if (newImportDeclaration) - changes.insertNodeAfter(sourceFile, statement, newImportDeclaration); - var ns = getNamespaceLikeImport(importNode); - if (ns) - updateNamespaceLikeImport(changes, sourceFile, checker, movedSymbols, newModuleSpecifier, ns, importNode, quotePreference); - }); - }; - try { - for (var _x = (e_696 = void 0, __values(sourceFile.statements)), _y = _x.next(); !_y.done; _y = _x.next()) { - var statement = _y.value; - _loop_47(statement); - } - } - catch (e_696_1) { e_696 = { error: e_696_1 }; } - finally { - try { - if (_y && !_y.done && (_w = _x.return)) _w.call(_x); - } - finally { if (e_696) throw e_696.error; } - } - }; - try { - for (var _u = __values(program.getSourceFiles()), _v = _u.next(); !_v.done; _v = _u.next()) { - var sourceFile = _v.value; - _loop_46(sourceFile); - } - } - catch (e_695_1) { e_695 = { error: e_695_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_695) throw e_695.error; } - } -} -function getNamespaceLikeImport(node) { - switch (node.kind) { - case 272 /* ImportDeclaration */: - return node.importClause && node.importClause.namedBindings && node.importClause.namedBindings.kind === 274 /* NamespaceImport */ ? node.importClause.namedBindings.name : void 0; - case 271 /* ImportEqualsDeclaration */: - return node.name; - case 260 /* VariableDeclaration */: - return tryCast(node.name, isIdentifier); - default: - return Debug.assertNever(node, "Unexpected node kind ".concat(node.kind)); - } -} -function updateNamespaceLikeImport(changes, sourceFile, checker, movedSymbols, newModuleSpecifier, oldImportId, oldImportNode, quotePreference) { - var e_697, _t; - var preferredNewNamespaceName = ts_codefix_exports.moduleSpecifierToValidIdentifier(newModuleSpecifier, 99 /* ESNext */); - var needUniqueName = false; - var toChange = []; - ts_FindAllReferences_exports.Core.eachSymbolReferenceInFile(oldImportId, checker, sourceFile, function (ref) { - if (!isPropertyAccessExpression(ref.parent)) - return; - needUniqueName = needUniqueName || !!checker.resolveName(preferredNewNamespaceName, ref, 67108863 /* All */, - /*excludeGlobals*/ - true); - if (movedSymbols.has(checker.getSymbolAtLocation(ref.parent.name))) { - toChange.push(ref); - } - }); - if (toChange.length) { - var newNamespaceName = needUniqueName ? getUniqueName(preferredNewNamespaceName, sourceFile) : preferredNewNamespaceName; - try { - for (var toChange_1 = __values(toChange), toChange_1_1 = toChange_1.next(); !toChange_1_1.done; toChange_1_1 = toChange_1.next()) { - var ref = toChange_1_1.value; - changes.replaceNode(sourceFile, ref, factory.createIdentifier(newNamespaceName)); - } - } - catch (e_697_1) { e_697 = { error: e_697_1 }; } - finally { - try { - if (toChange_1_1 && !toChange_1_1.done && (_t = toChange_1.return)) _t.call(toChange_1); - } - finally { if (e_697) throw e_697.error; } - } - changes.insertNodeAfter(sourceFile, oldImportNode, updateNamespaceLikeImportNode(oldImportNode, preferredNewNamespaceName, newModuleSpecifier, quotePreference)); - } -} -function updateNamespaceLikeImportNode(node, newNamespaceName, newModuleSpecifier, quotePreference) { - var newNamespaceId = factory.createIdentifier(newNamespaceName); - var newModuleString = makeStringLiteral(newModuleSpecifier, quotePreference); - switch (node.kind) { - case 272 /* ImportDeclaration */: - return factory.createImportDeclaration( - /*modifiers*/ - void 0, factory.createImportClause( - /*isTypeOnly*/ - false, - /*name*/ - void 0, factory.createNamespaceImport(newNamespaceId)), newModuleString, - /*assertClause*/ - void 0); - case 271 /* ImportEqualsDeclaration */: - return factory.createImportEqualsDeclaration( - /*modifiers*/ - void 0, - /*isTypeOnly*/ - false, newNamespaceId, factory.createExternalModuleReference(newModuleString)); - case 260 /* VariableDeclaration */: - return factory.createVariableDeclaration(newNamespaceId, - /*exclamationToken*/ - void 0, - /*type*/ - void 0, createRequireCall(newModuleString)); - default: - return Debug.assertNever(node, "Unexpected node kind ".concat(node.kind)); - } -} -function createRequireCall(moduleSpecifier) { - return factory.createCallExpression(factory.createIdentifier("require"), - /*typeArguments*/ - void 0, [moduleSpecifier]); -} -function moduleSpecifierFromImport(i) { - return i.kind === 272 /* ImportDeclaration */ ? i.moduleSpecifier : i.kind === 271 /* ImportEqualsDeclaration */ ? i.moduleReference.expression : i.initializer.arguments[0]; -} -function forEachImportInStatement(statement, cb) { - var e_698, _t; - if (isImportDeclaration(statement)) { - if (isStringLiteral(statement.moduleSpecifier)) - cb(statement); - } - else if (isImportEqualsDeclaration(statement)) { - if (isExternalModuleReference(statement.moduleReference) && isStringLiteralLike(statement.moduleReference.expression)) { - cb(statement); - } - } - else if (isVariableStatement(statement)) { - try { - for (var _u = __values(statement.declarationList.declarations), _v = _u.next(); !_v.done; _v = _u.next()) { - var decl = _v.value; - if (decl.initializer && isRequireCall(decl.initializer, - /*requireStringLiteralLikeArgument*/ - true)) { - cb(decl); - } - } - } - catch (e_698_1) { e_698 = { error: e_698_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_698) throw e_698.error; } - } - } -} -function createOldFileImportsFromTargetFile(sourceFile, targetFileNeedExport, targetFileNameWithExtension, program, host, useEs6Imports, quotePreference) { - var defaultImport; - var imports = []; - targetFileNeedExport.forEach(function (symbol) { - if (symbol.escapedName === "default" /* Default */) { - defaultImport = factory.createIdentifier(symbolNameNoDefault(symbol)); - } - else { - imports.push(symbol.name); - } - }); - return makeImportOrRequire(sourceFile, defaultImport, imports, targetFileNameWithExtension, program, host, useEs6Imports, quotePreference); -} -function makeImportOrRequire(sourceFile, defaultImport, imports, targetFileNameWithExtension, program, host, useEs6Imports, quotePreference) { - var pathToTargetFile = resolvePath(getDirectoryPath(sourceFile.path), targetFileNameWithExtension); - var pathToTargetFileWithCorrectExtension = getModuleSpecifier(program.getCompilerOptions(), sourceFile, sourceFile.path, pathToTargetFile, createModuleSpecifierResolutionHost(program, host)); - if (useEs6Imports) { - var specifiers = imports.map(function (i) { return factory.createImportSpecifier( - /*isTypeOnly*/ - false, - /*propertyName*/ - void 0, factory.createIdentifier(i)); }); - return makeImportIfNecessary(defaultImport, specifiers, pathToTargetFileWithCorrectExtension, quotePreference); - } - else { - Debug.assert(!defaultImport, "No default import should exist"); - var bindingElements = imports.map(function (i) { return factory.createBindingElement( - /*dotDotDotToken*/ - void 0, - /*propertyName*/ - void 0, i); }); - return bindingElements.length ? makeVariableStatement(factory.createObjectBindingPattern(bindingElements), - /*type*/ - void 0, createRequireCall(makeStringLiteral(pathToTargetFileWithCorrectExtension, quotePreference))) : void 0; - } -} -function makeVariableStatement(name, type, initializer, flags /* Const */) { - if (flags === void 0) { flags = 2; } - return factory.createVariableStatement( - /*modifiers*/ - void 0, factory.createVariableDeclarationList([factory.createVariableDeclaration(name, - /*exclamationToken*/ - void 0, type, initializer)], flags)); -} -function addExports(sourceFile, toMove, needExport, useEs6Exports) { - return flatMap(toMove, function (statement) { - if (isTopLevelDeclarationStatement(statement) && !isExported(sourceFile, statement, useEs6Exports) && forEachTopLevelDeclaration(statement, function (d) { - var _a; - return needExport.has(Debug.checkDefined((_a = tryCast(d, canHaveSymbol)) == null ? void 0 : _a.symbol)); - })) { - var exports_5 = addExport(getSynthesizedDeepClone(statement), useEs6Exports); - if (exports_5) - return exports_5; - } - return getSynthesizedDeepClone(statement); - }); -} -function isExported(sourceFile, decl, useEs6Exports, name) { - var _a; - if (useEs6Exports) { - return !isExpressionStatement(decl) && hasSyntacticModifier(decl, 1 /* Export */) || !!(name && sourceFile.symbol && ((_a = sourceFile.symbol.exports) == null ? void 0 : _a.has(name.escapedText))); - } - return !!sourceFile.symbol && !!sourceFile.symbol.exports && getNamesToExportInCommonJS(decl).some(function (name2) { return sourceFile.symbol.exports.has(escapeLeadingUnderscores(name2)); }); -} -function deleteUnusedImports(sourceFile, importDecl, changes, isUnused) { - switch (importDecl.kind) { - case 272 /* ImportDeclaration */: - deleteUnusedImportsInDeclaration(sourceFile, importDecl, changes, isUnused); - break; - case 271 /* ImportEqualsDeclaration */: - if (isUnused(importDecl.name)) { - changes.delete(sourceFile, importDecl); - } - break; - case 260 /* VariableDeclaration */: - deleteUnusedImportsInVariableDeclaration(sourceFile, importDecl, changes, isUnused); - break; - default: - Debug.assertNever(importDecl, "Unexpected import decl kind ".concat(importDecl.kind)); - } -} -function deleteUnusedImportsInDeclaration(sourceFile, importDecl, changes, isUnused) { - var e_699, _t; - if (!importDecl.importClause) - return; - var _u = importDecl.importClause, name = _u.name, namedBindings = _u.namedBindings; - var defaultUnused = !name || isUnused(name); - var namedBindingsUnused = !namedBindings || (namedBindings.kind === 274 /* NamespaceImport */ ? isUnused(namedBindings.name) : namedBindings.elements.length !== 0 && namedBindings.elements.every(function (e) { return isUnused(e.name); })); - if (defaultUnused && namedBindingsUnused) { - changes.delete(sourceFile, importDecl); - } - else { - if (name && defaultUnused) { - changes.delete(sourceFile, name); - } - if (namedBindings) { - if (namedBindingsUnused) { - changes.replaceNode(sourceFile, importDecl.importClause, factory.updateImportClause(importDecl.importClause, importDecl.importClause.isTypeOnly, name, - /*namedBindings*/ - void 0)); - } - else if (namedBindings.kind === 275 /* NamedImports */) { - try { - for (var _v = __values(namedBindings.elements), _w = _v.next(); !_w.done; _w = _v.next()) { - var element = _w.value; - if (isUnused(element.name)) - changes.delete(sourceFile, element); - } - } - catch (e_699_1) { e_699 = { error: e_699_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_699) throw e_699.error; } - } - } - } - } -} -function deleteUnusedImportsInVariableDeclaration(sourceFile, varDecl, changes, isUnused) { - var e_700, _t; - var name = varDecl.name; - switch (name.kind) { - case 80 /* Identifier */: - if (isUnused(name)) { - if (varDecl.initializer && isRequireCall(varDecl.initializer, - /*requireStringLiteralLikeArgument*/ - true)) { - changes.delete(sourceFile, isVariableDeclarationList(varDecl.parent) && length(varDecl.parent.declarations) === 1 ? varDecl.parent.parent : varDecl); - } - else { - changes.delete(sourceFile, name); - } - } - break; - case 207 /* ArrayBindingPattern */: - break; - case 206 /* ObjectBindingPattern */: - if (name.elements.every(function (e) { return isIdentifier(e.name) && isUnused(e.name); })) { - changes.delete(sourceFile, isVariableDeclarationList(varDecl.parent) && varDecl.parent.declarations.length === 1 ? varDecl.parent.parent : varDecl); - } - else { - try { - for (var _u = __values(name.elements), _v = _u.next(); !_v.done; _v = _u.next()) { - var element = _v.value; - if (isIdentifier(element.name) && isUnused(element.name)) { - changes.delete(sourceFile, element.name); - } - } - } - catch (e_700_1) { e_700 = { error: e_700_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_700) throw e_700.error; } - } - } - break; - } -} -function isTopLevelDeclarationStatement(node) { - Debug.assert(isSourceFile(node.parent), "Node parent should be a SourceFile"); - return isNonVariableTopLevelDeclaration(node) || isVariableStatement(node); -} -function addExport(decl, useEs6Exports) { - return useEs6Exports ? [addEs6Export(decl)] : addCommonjsExport(decl); -} -function addEs6Export(d) { - var modifiers = canHaveModifiers(d) ? concatenate([factory.createModifier(95 /* ExportKeyword */)], getModifiers(d)) : void 0; - switch (d.kind) { - case 262 /* FunctionDeclaration */: - return factory.updateFunctionDeclaration(d, modifiers, d.asteriskToken, d.name, d.typeParameters, d.parameters, d.type, d.body); - case 263 /* ClassDeclaration */: - var decorators = canHaveDecorators(d) ? getDecorators(d) : void 0; - return factory.updateClassDeclaration(d, concatenate(decorators, modifiers), d.name, d.typeParameters, d.heritageClauses, d.members); - case 243 /* VariableStatement */: - return factory.updateVariableStatement(d, modifiers, d.declarationList); - case 267 /* ModuleDeclaration */: - return factory.updateModuleDeclaration(d, modifiers, d.name, d.body); - case 266 /* EnumDeclaration */: - return factory.updateEnumDeclaration(d, modifiers, d.name, d.members); - case 265 /* TypeAliasDeclaration */: - return factory.updateTypeAliasDeclaration(d, modifiers, d.name, d.typeParameters, d.type); - case 264 /* InterfaceDeclaration */: - return factory.updateInterfaceDeclaration(d, modifiers, d.name, d.typeParameters, d.heritageClauses, d.members); - case 271 /* ImportEqualsDeclaration */: - return factory.updateImportEqualsDeclaration(d, modifiers, d.isTypeOnly, d.name, d.moduleReference); - case 244 /* ExpressionStatement */: - return Debug.fail(); - default: - return Debug.assertNever(d, "Unexpected declaration kind ".concat(d.kind)); - } -} -function addCommonjsExport(decl) { - return __spreadArray([decl], __read(getNamesToExportInCommonJS(decl).map(createExportAssignment)), false); -} -function createExportAssignment(name) { - return factory.createExpressionStatement(factory.createBinaryExpression(factory.createPropertyAccessExpression(factory.createIdentifier("exports"), factory.createIdentifier(name)), 64 /* EqualsToken */, factory.createIdentifier(name))); -} -function getNamesToExportInCommonJS(decl) { - switch (decl.kind) { - case 262 /* FunctionDeclaration */: - case 263 /* ClassDeclaration */: - return [decl.name.text]; - case 243 /* VariableStatement */: - return mapDefined(decl.declarationList.declarations, function (d) { return isIdentifier(d.name) ? d.name.text : void 0; }); - case 267 /* ModuleDeclaration */: - case 266 /* EnumDeclaration */: - case 265 /* TypeAliasDeclaration */: - case 264 /* InterfaceDeclaration */: - case 271 /* ImportEqualsDeclaration */: - return emptyArray; - case 244 /* ExpressionStatement */: - return Debug.fail("Can't export an ExpressionStatement"); - default: - return Debug.assertNever(decl, "Unexpected decl kind ".concat(decl.kind)); - } -} -function filterImport(i, moduleSpecifier, keep) { - switch (i.kind) { - case 272 /* ImportDeclaration */: { - var clause = i.importClause; - if (!clause) - return void 0; - var defaultImport = clause.name && keep(clause.name) ? clause.name : void 0; - var namedBindings = clause.namedBindings && filterNamedBindings(clause.namedBindings, keep); - return defaultImport || namedBindings ? factory.createImportDeclaration( - /*modifiers*/ - void 0, factory.createImportClause(clause.isTypeOnly, defaultImport, namedBindings), getSynthesizedDeepClone(moduleSpecifier), - /*assertClause*/ - void 0) : void 0; - } - case 271 /* ImportEqualsDeclaration */: - return keep(i.name) ? i : void 0; - case 260 /* VariableDeclaration */: { - var name_106 = filterBindingName(i.name, keep); - return name_106 ? makeVariableStatement(name_106, i.type, createRequireCall(moduleSpecifier), i.parent.flags) : void 0; - } - default: - return Debug.assertNever(i, "Unexpected import kind ".concat(i.kind)); - } -} -function filterNamedBindings(namedBindings, keep) { - if (namedBindings.kind === 274 /* NamespaceImport */) { - return keep(namedBindings.name) ? namedBindings : void 0; - } - else { - var newElements = namedBindings.elements.filter(function (e) { return keep(e.name); }); - return newElements.length ? factory.createNamedImports(newElements) : void 0; - } -} -function filterBindingName(name, keep) { - switch (name.kind) { - case 80 /* Identifier */: - return keep(name) ? name : void 0; - case 207 /* ArrayBindingPattern */: - return name; - case 206 /* ObjectBindingPattern */: { - var newElements = name.elements.filter(function (prop) { return prop.propertyName || !isIdentifier(prop.name) || keep(prop.name); }); - return newElements.length ? factory.createObjectBindingPattern(newElements) : void 0; - } - } -} -function nameOfTopLevelDeclaration(d) { - return isExpressionStatement(d) ? tryCast(d.expression.left.name, isIdentifier) : tryCast(d.name, isIdentifier); -} -function getTopLevelDeclarationStatement(d) { - switch (d.kind) { - case 260 /* VariableDeclaration */: - return d.parent.parent; - case 208 /* BindingElement */: - return getTopLevelDeclarationStatement(cast(d.parent.parent, function (p) { return isVariableDeclaration(p) || isBindingElement(p); })); - default: - return d; - } -} -function addExportToChanges(sourceFile, decl, name, changes, useEs6Exports) { - if (isExported(sourceFile, decl, useEs6Exports, name)) - return; - if (useEs6Exports) { - if (!isExpressionStatement(decl)) - changes.insertExportModifier(sourceFile, decl); - } - else { - var names = getNamesToExportInCommonJS(decl); - if (names.length !== 0) - changes.insertNodesAfter(sourceFile, decl, names.map(createExportAssignment)); - } -} -function createNewFileName(oldFile, program, context, host) { - var checker = program.getTypeChecker(); - var toMove = getStatementsToMove(context); - var usage; - if (toMove) { - usage = getUsageInfo(oldFile, toMove.all, checker); - var currentDirectory = getDirectoryPath(oldFile.fileName); - var extension = extensionFromPath(oldFile.fileName); - var newFileName = combinePaths( - // new file is always placed in the same directory as the old file - currentDirectory, - // ensures the filename computed below isn't already taken - makeUniqueFilename( - // infers a name for the new file from the symbols being moved - inferNewFileName(usage.oldFileImportsFromTargetFile, usage.movedSymbols), extension, currentDirectory, host)) + extension; - return newFileName; - } - return ""; -} -function getRangeToMove(context) { - var file = context.file; - var range = createTextRangeFromSpan(getRefactorContextSpan(context)); - var statements = file.statements; - var startNodeIndex = findIndex(statements, function (s) { return s.end > range.pos; }); - if (startNodeIndex === -1) - return void 0; - var startStatement = statements[startNodeIndex]; - var overloadRangeToMove = getOverloadRangeToMove(file, startStatement); - if (overloadRangeToMove) { - startNodeIndex = overloadRangeToMove.start; - } - var endNodeIndex = findIndex(statements, function (s) { return s.end >= range.end; }, startNodeIndex); - if (endNodeIndex !== -1 && range.end <= statements[endNodeIndex].getStart()) { - endNodeIndex--; - } - var endingOverloadRangeToMove = getOverloadRangeToMove(file, statements[endNodeIndex]); - if (endingOverloadRangeToMove) { - endNodeIndex = endingOverloadRangeToMove.end; - } - return { - toMove: statements.slice(startNodeIndex, endNodeIndex === -1 ? statements.length : endNodeIndex + 1), - afterLast: endNodeIndex === -1 ? void 0 : statements[endNodeIndex + 1] - }; -} -function getStatementsToMove(context) { - var rangeToMove = getRangeToMove(context); - if (rangeToMove === void 0) - return void 0; - var all = []; - var ranges = []; - var toMove = rangeToMove.toMove, afterLast = rangeToMove.afterLast; - getRangesWhere(toMove, isAllowedStatementToMove, function (start2, afterEndIndex) { - for (var i = start2; i < afterEndIndex; i++) - all.push(toMove[i]); - ranges.push({ first: toMove[start2], afterLast: afterLast }); - }); - return all.length === 0 ? void 0 : { all: all, ranges: ranges }; -} -function isAllowedStatementToMove(statement) { - return !isPureImport(statement) && !isPrologueDirective(statement); -} -function isPureImport(node) { - switch (node.kind) { - case 272 /* ImportDeclaration */: - return true; - case 271 /* ImportEqualsDeclaration */: - return !hasSyntacticModifier(node, 1 /* Export */); - case 243 /* VariableStatement */: - return node.declarationList.declarations.every(function (d) { return !!d.initializer && isRequireCall(d.initializer, - /*requireStringLiteralLikeArgument*/ - true); }); - default: - return false; - } -} -function getUsageInfo(oldFile, toMove, checker) { - var e_701, _t, e_702, _u, e_703, _v; - var movedSymbols = /* @__PURE__ */ new Set(); - var oldImportsNeededByTargetFile = /* @__PURE__ */ new Map(); - var targetFileImportsFromOldFile = /* @__PURE__ */ new Set(); - var containsJsx = find(toMove, function (statement) { return !!(statement.transformFlags & 2 /* ContainsJsx */); }); - var jsxNamespaceSymbol = getJsxNamespaceSymbol(containsJsx); - if (jsxNamespaceSymbol) { - oldImportsNeededByTargetFile.set(jsxNamespaceSymbol, false); - } - try { - for (var toMove_1 = __values(toMove), toMove_1_1 = toMove_1.next(); !toMove_1_1.done; toMove_1_1 = toMove_1.next()) { - var statement = toMove_1_1.value; - forEachTopLevelDeclaration(statement, function (decl) { - movedSymbols.add(Debug.checkDefined(isExpressionStatement(decl) ? checker.getSymbolAtLocation(decl.expression.left) : decl.symbol, "Need a symbol here")); - }); - } - } - catch (e_701_1) { e_701 = { error: e_701_1 }; } - finally { - try { - if (toMove_1_1 && !toMove_1_1.done && (_t = toMove_1.return)) _t.call(toMove_1); - } - finally { if (e_701) throw e_701.error; } - } - try { - for (var toMove_2 = __values(toMove), toMove_2_1 = toMove_2.next(); !toMove_2_1.done; toMove_2_1 = toMove_2.next()) { - var statement = toMove_2_1.value; - forEachReference(statement, checker, function (symbol, isValidTypeOnlyUseSite) { - var e_704, _t; - if (!symbol.declarations) - return; - try { - for (var _u = (e_704 = void 0, __values(symbol.declarations)), _v = _u.next(); !_v.done; _v = _u.next()) { - var decl = _v.value; - if (isInImport(decl)) { - var prevIsTypeOnly = oldImportsNeededByTargetFile.get(symbol); - oldImportsNeededByTargetFile.set(symbol, prevIsTypeOnly === void 0 ? isValidTypeOnlyUseSite : prevIsTypeOnly && isValidTypeOnlyUseSite); - } - else if (isTopLevelDeclaration(decl) && sourceFileOfTopLevelDeclaration(decl) === oldFile && !movedSymbols.has(symbol)) { - targetFileImportsFromOldFile.add(symbol); - } - } - } - catch (e_704_1) { e_704 = { error: e_704_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_704) throw e_704.error; } - } - }); - } - } - catch (e_702_1) { e_702 = { error: e_702_1 }; } - finally { - try { - if (toMove_2_1 && !toMove_2_1.done && (_u = toMove_2.return)) _u.call(toMove_2); - } - finally { if (e_702) throw e_702.error; } - } - var unusedImportsFromOldFile = new Set(oldImportsNeededByTargetFile.keys()); - var oldFileImportsFromTargetFile = /* @__PURE__ */ new Set(); - try { - for (var _w = __values(oldFile.statements), _x = _w.next(); !_x.done; _x = _w.next()) { - var statement = _x.value; - if (contains(toMove, statement)) - continue; - if (jsxNamespaceSymbol && !!(statement.transformFlags & 2 /* ContainsJsx */)) { - unusedImportsFromOldFile.delete(jsxNamespaceSymbol); - } - forEachReference(statement, checker, function (symbol) { - if (movedSymbols.has(symbol)) - oldFileImportsFromTargetFile.add(symbol); - unusedImportsFromOldFile.delete(symbol); - }); - } - } - catch (e_703_1) { e_703 = { error: e_703_1 }; } - finally { - try { - if (_x && !_x.done && (_v = _w.return)) _v.call(_w); - } - finally { if (e_703) throw e_703.error; } - } - return { movedSymbols: movedSymbols, targetFileImportsFromOldFile: targetFileImportsFromOldFile, oldFileImportsFromTargetFile: oldFileImportsFromTargetFile, oldImportsNeededByTargetFile: oldImportsNeededByTargetFile, unusedImportsFromOldFile: unusedImportsFromOldFile }; - function getJsxNamespaceSymbol(containsJsx2) { - if (containsJsx2 === void 0) { - return void 0; - } - var jsxNamespace = checker.getJsxNamespace(containsJsx2); - var jsxNamespaceSymbol2 = checker.resolveName(jsxNamespace, containsJsx2, 1920 /* Namespace */, - /*excludeGlobals*/ - true); - return !!jsxNamespaceSymbol2 && some(jsxNamespaceSymbol2.declarations, isInImport) ? jsxNamespaceSymbol2 : void 0; - } -} -function makeUniqueFilename(proposedFilename, extension, inDirectory, host) { - var newFilename = proposedFilename; - for (var i = 1;; i++) { - var name_107 = combinePaths(inDirectory, newFilename + extension); - if (!host.fileExists(name_107)) - return newFilename; - newFilename = "".concat(proposedFilename, ".").concat(i); - } -} -function inferNewFileName(importsFromNewFile, movedSymbols) { - return forEachKey(importsFromNewFile, symbolNameNoDefault) || forEachKey(movedSymbols, symbolNameNoDefault) || "newFile"; -} -function forEachReference(node, checker, onReference) { - node.forEachChild(function cb(node2) { - if (isIdentifier(node2) && !isDeclarationName(node2)) { - var sym = checker.getSymbolAtLocation(node2); - if (sym) - onReference(sym, isValidTypeOnlyAliasUseSite(node2)); - } - else { - node2.forEachChild(cb); - } - }); -} -function forEachTopLevelDeclaration(statement, cb) { - switch (statement.kind) { - case 262 /* FunctionDeclaration */: - case 263 /* ClassDeclaration */: - case 267 /* ModuleDeclaration */: - case 266 /* EnumDeclaration */: - case 265 /* TypeAliasDeclaration */: - case 264 /* InterfaceDeclaration */: - case 271 /* ImportEqualsDeclaration */: - return cb(statement); - case 243 /* VariableStatement */: - return firstDefined(statement.declarationList.declarations, function (decl) { return forEachTopLevelDeclarationInBindingName(decl.name, cb); }); - case 244 /* ExpressionStatement */: { - var expression = statement.expression; - return isBinaryExpression(expression) && getAssignmentDeclarationKind(expression) === 1 /* ExportsProperty */ ? cb(statement) : void 0; - } - } -} -function isInImport(decl) { - switch (decl.kind) { - case 271 /* ImportEqualsDeclaration */: - case 276 /* ImportSpecifier */: - case 273 /* ImportClause */: - case 274 /* NamespaceImport */: - return true; - case 260 /* VariableDeclaration */: - return isVariableDeclarationInImport(decl); - case 208 /* BindingElement */: - return isVariableDeclaration(decl.parent.parent) && isVariableDeclarationInImport(decl.parent.parent); - default: - return false; - } -} -function isVariableDeclarationInImport(decl) { - return isSourceFile(decl.parent.parent.parent) && !!decl.initializer && isRequireCall(decl.initializer, - /*requireStringLiteralLikeArgument*/ - true); -} -function isTopLevelDeclaration(node) { - return isNonVariableTopLevelDeclaration(node) && isSourceFile(node.parent) || isVariableDeclaration(node) && isSourceFile(node.parent.parent.parent); -} -function sourceFileOfTopLevelDeclaration(node) { - return isVariableDeclaration(node) ? node.parent.parent.parent : node.parent; -} -function forEachTopLevelDeclarationInBindingName(name, cb) { - switch (name.kind) { - case 80 /* Identifier */: - return cb(cast(name.parent, function (x) { return isVariableDeclaration(x) || isBindingElement(x); })); - case 207 /* ArrayBindingPattern */: - case 206 /* ObjectBindingPattern */: - return firstDefined(name.elements, function (em) { return isOmittedExpression(em) ? void 0 : forEachTopLevelDeclarationInBindingName(em.name, cb); }); - default: - return Debug.assertNever(name, "Unexpected name kind ".concat(name.kind)); - } -} -function isNonVariableTopLevelDeclaration(node) { - switch (node.kind) { - case 262 /* FunctionDeclaration */: - case 263 /* ClassDeclaration */: - case 267 /* ModuleDeclaration */: - case 266 /* EnumDeclaration */: - case 265 /* TypeAliasDeclaration */: - case 264 /* InterfaceDeclaration */: - case 271 /* ImportEqualsDeclaration */: - return true; - default: - return false; - } -} -function moveStatementsToTargetFile(changes, program, statements, targetFile, toMove) { - var e_705, _t, e_706, _u; - var _a; - var removedExports = /* @__PURE__ */ new Set(); - var targetExports = (_a = targetFile.symbol) == null ? void 0 : _a.exports; - if (targetExports) { - var checker_2 = program.getTypeChecker(); - var targetToSourceExports_1 = /* @__PURE__ */ new Map(); - try { - for (var _v = __values(toMove.all), _w = _v.next(); !_w.done; _w = _v.next()) { - var node = _w.value; - if (isTopLevelDeclarationStatement(node) && hasSyntacticModifier(node, 1 /* Export */)) { - forEachTopLevelDeclaration(node, function (declaration) { - var _a2; - var targetDeclarations = canHaveSymbol(declaration) ? (_a2 = targetExports.get(declaration.symbol.escapedName)) == null ? void 0 : _a2.declarations : void 0; - var exportDeclaration = firstDefined(targetDeclarations, function (d) { return isExportDeclaration(d) ? d : isExportSpecifier(d) ? tryCast(d.parent.parent, isExportDeclaration) : void 0; }); - if (exportDeclaration && exportDeclaration.moduleSpecifier) { - targetToSourceExports_1.set(exportDeclaration, (targetToSourceExports_1.get(exportDeclaration) || /* @__PURE__ */ new Set()).add(declaration)); - } - }); - } - } - } - catch (e_705_1) { e_705 = { error: e_705_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_705) throw e_705.error; } - } - var _loop_48 = function (exportDeclaration, topLevelDeclarations) { - if (exportDeclaration.exportClause && isNamedExports(exportDeclaration.exportClause) && length(exportDeclaration.exportClause.elements)) { - var elements = exportDeclaration.exportClause.elements; - var updatedElements = filter(elements, function (elem) { return find(skipAlias(elem.symbol, checker_2).declarations, function (d) { return isTopLevelDeclaration(d) && topLevelDeclarations.has(d); }) === void 0; }); - if (length(updatedElements) === 0) { - changes.deleteNode(targetFile, exportDeclaration); - removedExports.add(exportDeclaration); - return "continue"; - } - if (length(updatedElements) < length(elements)) { - changes.replaceNode(targetFile, exportDeclaration, factory.updateExportDeclaration(exportDeclaration, exportDeclaration.modifiers, exportDeclaration.isTypeOnly, factory.updateNamedExports(exportDeclaration.exportClause, factory.createNodeArray(updatedElements, elements.hasTrailingComma)), exportDeclaration.moduleSpecifier, exportDeclaration.assertClause)); - } - } - }; - try { - for (var _x = __values(arrayFrom(targetToSourceExports_1)), _y = _x.next(); !_y.done; _y = _x.next()) { - var _z = __read(_y.value, 2), exportDeclaration = _z[0], topLevelDeclarations = _z[1]; - _loop_48(exportDeclaration, topLevelDeclarations); - } - } - catch (e_706_1) { e_706 = { error: e_706_1 }; } - finally { - try { - if (_y && !_y.done && (_u = _x.return)) _u.call(_x); - } - finally { if (e_706) throw e_706.error; } - } - } - var lastReExport = findLast(targetFile.statements, function (n) { return isExportDeclaration(n) && !!n.moduleSpecifier && !removedExports.has(n); }); - if (lastReExport) { - changes.insertNodesBefore(targetFile, lastReExport, statements, - /*blankLineBetween*/ - true); - } - else { - changes.insertNodesAfter(targetFile, targetFile.statements[targetFile.statements.length - 1], statements); - } -} -function getOverloadRangeToMove(sourceFile, statement) { - if (isFunctionLikeDeclaration(statement)) { - var declarations = statement.symbol.declarations; - if (declarations === void 0 || length(declarations) <= 1 || !contains(declarations, statement)) { - return void 0; - } - var firstDecl_1 = declarations[0]; - var lastDecl_1 = declarations[length(declarations) - 1]; - var statementsToMove = mapDefined(declarations, function (d) { return getSourceFileOfNode(d) === sourceFile && isStatement(d) ? d : void 0; }); - var end = findIndex(sourceFile.statements, function (s) { return s.end >= lastDecl_1.end; }); - var start2 = findIndex(sourceFile.statements, function (s) { return s.end >= firstDecl_1.end; }); - return { toMove: statementsToMove, start: start2, end: end }; - } - return void 0; -} -// src/services/_namespaces/ts.refactor.addOrRemoveBracesToArrowFunction.ts -var ts_refactor_addOrRemoveBracesToArrowFunction_exports = {}; -// src/services/refactors/convertOverloadListToSingleSignature.ts -var refactorName6 = "Convert overload list to single signature"; -var refactorDescription2 = getLocaleSpecificMessage(Diagnostics.Convert_overload_list_to_single_signature); -var functionOverloadAction = { - name: refactorName6, - description: refactorDescription2, - kind: "refactor.rewrite.function.overloadList" -}; -registerRefactor(refactorName6, { - kinds: [functionOverloadAction.kind], - getEditsForAction: getRefactorEditsToConvertOverloadsToOneSignature, - getAvailableActions: getRefactorActionsToConvertOverloadsToOneSignature -}); -function getRefactorActionsToConvertOverloadsToOneSignature(context) { - var file = context.file, startPosition = context.startPosition, program = context.program; - var info = getConvertableOverloadListAtPosition(file, startPosition, program); - if (!info) - return emptyArray; - return [{ - name: refactorName6, - description: refactorDescription2, - actions: [functionOverloadAction] - }]; -} -function getRefactorEditsToConvertOverloadsToOneSignature(context) { - var file = context.file, startPosition = context.startPosition, program = context.program; - var signatureDecls = getConvertableOverloadListAtPosition(file, startPosition, program); - if (!signatureDecls) - return void 0; - var checker = program.getTypeChecker(); - var lastDeclaration = signatureDecls[signatureDecls.length - 1]; - var updated = lastDeclaration; - switch (lastDeclaration.kind) { - case 173 /* MethodSignature */: { - updated = factory.updateMethodSignature(lastDeclaration, lastDeclaration.modifiers, lastDeclaration.name, lastDeclaration.questionToken, lastDeclaration.typeParameters, getNewParametersForCombinedSignature(signatureDecls), lastDeclaration.type); - break; - } - case 174 /* MethodDeclaration */: { - updated = factory.updateMethodDeclaration(lastDeclaration, lastDeclaration.modifiers, lastDeclaration.asteriskToken, lastDeclaration.name, lastDeclaration.questionToken, lastDeclaration.typeParameters, getNewParametersForCombinedSignature(signatureDecls), lastDeclaration.type, lastDeclaration.body); - break; - } - case 179 /* CallSignature */: { - updated = factory.updateCallSignature(lastDeclaration, lastDeclaration.typeParameters, getNewParametersForCombinedSignature(signatureDecls), lastDeclaration.type); - break; - } - case 176 /* Constructor */: { - updated = factory.updateConstructorDeclaration(lastDeclaration, lastDeclaration.modifiers, getNewParametersForCombinedSignature(signatureDecls), lastDeclaration.body); - break; - } - case 180 /* ConstructSignature */: { - updated = factory.updateConstructSignature(lastDeclaration, lastDeclaration.typeParameters, getNewParametersForCombinedSignature(signatureDecls), lastDeclaration.type); - break; - } - case 262 /* FunctionDeclaration */: { - updated = factory.updateFunctionDeclaration(lastDeclaration, lastDeclaration.modifiers, lastDeclaration.asteriskToken, lastDeclaration.name, lastDeclaration.typeParameters, getNewParametersForCombinedSignature(signatureDecls), lastDeclaration.type, lastDeclaration.body); - break; - } - default: - return Debug.failBadSyntaxKind(lastDeclaration, "Unhandled signature kind in overload list conversion refactoring"); - } - if (updated === lastDeclaration) { - return; - } - var edits = ts_textChanges_exports.ChangeTracker.with(context, function (t) { - t.replaceNodeRange(file, signatureDecls[0], signatureDecls[signatureDecls.length - 1], updated); - }); - return { renameFilename: void 0, renameLocation: void 0, edits: edits }; - function getNewParametersForCombinedSignature(signatureDeclarations) { - var lastSig = signatureDeclarations[signatureDeclarations.length - 1]; - if (isFunctionLikeDeclaration(lastSig) && lastSig.body) { - signatureDeclarations = signatureDeclarations.slice(0, signatureDeclarations.length - 1); - } - return factory.createNodeArray([ - factory.createParameterDeclaration( - /*modifiers*/ - void 0, factory.createToken(26 /* DotDotDotToken */), "args", - /*questionToken*/ - void 0, factory.createUnionTypeNode(map(signatureDeclarations, convertSignatureParametersToTuple))) - ]); - } - function convertSignatureParametersToTuple(decl) { - var members = map(decl.parameters, convertParameterToNamedTupleMember); - return setEmitFlags(factory.createTupleTypeNode(members), some(members, function (m) { return !!length(getSyntheticLeadingComments(m)); }) ? 0 /* None */ : 1 /* SingleLine */); - } - function convertParameterToNamedTupleMember(p) { - Debug.assert(isIdentifier(p.name)); - var result = setTextRange(factory.createNamedTupleMember(p.dotDotDotToken, p.name, p.questionToken, p.type || factory.createKeywordTypeNode(133 /* AnyKeyword */)), p); - var parameterDocComment = p.symbol && p.symbol.getDocumentationComment(checker); - if (parameterDocComment) { - var newComment = displayPartsToString(parameterDocComment); - if (newComment.length) { - setSyntheticLeadingComments(result, [{ - text: "*\n".concat(newComment.split("\n").map(function (c) { return " * ".concat(c); }).join("\n"), "\n "), - kind: 3 /* MultiLineCommentTrivia */, - pos: -1, - end: -1, - hasTrailingNewLine: true, - hasLeadingNewline: true - }]); - } - } - return result; - } -} -function isConvertableSignatureDeclaration(d) { - switch (d.kind) { - case 173 /* MethodSignature */: - case 174 /* MethodDeclaration */: - case 179 /* CallSignature */: - case 176 /* Constructor */: - case 180 /* ConstructSignature */: - case 262 /* FunctionDeclaration */: - return true; - } - return false; -} -function getConvertableOverloadListAtPosition(file, startPosition, program) { - var node = getTokenAtPosition(file, startPosition); - var containingDecl = findAncestor(node, isConvertableSignatureDeclaration); - if (!containingDecl) { - return; - } - if (isFunctionLikeDeclaration(containingDecl) && containingDecl.body && rangeContainsPosition(containingDecl.body, startPosition)) { - return; - } - var checker = program.getTypeChecker(); - var signatureSymbol = containingDecl.symbol; - if (!signatureSymbol) { - return; - } - var decls = signatureSymbol.declarations; - if (length(decls) <= 1) { - return; - } - if (!every(decls, function (d) { return getSourceFileOfNode(d) === file; })) { - return; - } - if (!isConvertableSignatureDeclaration(decls[0])) { - return; - } - var kindOne = decls[0].kind; - if (!every(decls, function (d) { return d.kind === kindOne; })) { - return; - } - var signatureDecls = decls; - if (some(signatureDecls, function (d) { return !!d.typeParameters || some(d.parameters, function (p) { return !!p.modifiers || !isIdentifier(p.name); }); })) { - return; - } - var signatures = mapDefined(signatureDecls, function (d) { return checker.getSignatureFromDeclaration(d); }); - if (length(signatures) !== length(decls)) { - return; - } - var returnOne = checker.getReturnTypeOfSignature(signatures[0]); - if (!every(signatures, function (s) { return checker.getReturnTypeOfSignature(s) === returnOne; })) { - return; - } - return signatureDecls; -} -// src/services/refactors/addOrRemoveBracesToArrowFunction.ts -var refactorName7 = "Add or remove braces in an arrow function"; -var refactorDescription3 = getLocaleSpecificMessage(Diagnostics.Add_or_remove_braces_in_an_arrow_function); -var addBracesAction = { - name: "Add braces to arrow function", - description: getLocaleSpecificMessage(Diagnostics.Add_braces_to_arrow_function), - kind: "refactor.rewrite.arrow.braces.add" -}; -var removeBracesAction = { - name: "Remove braces from arrow function", - description: getLocaleSpecificMessage(Diagnostics.Remove_braces_from_arrow_function), - kind: "refactor.rewrite.arrow.braces.remove" -}; -registerRefactor(refactorName7, { - kinds: [removeBracesAction.kind], - getEditsForAction: getRefactorEditsToRemoveFunctionBraces, - getAvailableActions: getRefactorActionsToRemoveFunctionBraces -}); -function getRefactorActionsToRemoveFunctionBraces(context) { - var file = context.file, startPosition = context.startPosition, triggerReason = context.triggerReason; - var info = getConvertibleArrowFunctionAtPosition(file, startPosition, triggerReason === "invoked"); - if (!info) - return emptyArray; - if (!isRefactorErrorInfo(info)) { - return [{ - name: refactorName7, - description: refactorDescription3, - actions: [ - info.addBraces ? addBracesAction : removeBracesAction - ] - }]; - } - if (context.preferences.provideRefactorNotApplicableReason) { - return [{ - name: refactorName7, - description: refactorDescription3, - actions: [ - __assign(__assign({}, addBracesAction), { notApplicableReason: info.error }), - __assign(__assign({}, removeBracesAction), { notApplicableReason: info.error }) - ] - }]; - } - return emptyArray; -} -function getRefactorEditsToRemoveFunctionBraces(context, actionName2) { - var file = context.file, startPosition = context.startPosition; - var info = getConvertibleArrowFunctionAtPosition(file, startPosition); - Debug.assert(info && !isRefactorErrorInfo(info), "Expected applicable refactor info"); - var expression = info.expression, returnStatement = info.returnStatement, func = info.func; - var body; - if (actionName2 === addBracesAction.name) { - var returnStatement2 = factory.createReturnStatement(expression); - body = factory.createBlock([returnStatement2], - /*multiLine*/ - true); - copyLeadingComments(expression, returnStatement2, file, 3 /* MultiLineCommentTrivia */, - /*hasTrailingNewLine*/ - true); - } - else if (actionName2 === removeBracesAction.name && returnStatement) { - var actualExpression = expression || factory.createVoidZero(); - body = needsParentheses(actualExpression) ? factory.createParenthesizedExpression(actualExpression) : actualExpression; - copyTrailingAsLeadingComments(returnStatement, body, file, 3 /* MultiLineCommentTrivia */, - /*hasTrailingNewLine*/ - false); - copyLeadingComments(returnStatement, body, file, 3 /* MultiLineCommentTrivia */, - /*hasTrailingNewLine*/ - false); - copyTrailingComments(returnStatement, body, file, 3 /* MultiLineCommentTrivia */, - /*hasTrailingNewLine*/ - false); - } - else { - Debug.fail("invalid action"); - } - var edits = ts_textChanges_exports.ChangeTracker.with(context, function (t) { - t.replaceNode(file, func.body, body); - }); - return { renameFilename: void 0, renameLocation: void 0, edits: edits }; -} -function getConvertibleArrowFunctionAtPosition(file, startPosition, considerFunctionBodies, kind) { - if (considerFunctionBodies === void 0) { considerFunctionBodies = true; } - var node = getTokenAtPosition(file, startPosition); - var func = getContainingFunction(node); - if (!func) { - return { - error: getLocaleSpecificMessage(Diagnostics.Could_not_find_a_containing_arrow_function) - }; - } - if (!isArrowFunction(func)) { - return { - error: getLocaleSpecificMessage(Diagnostics.Containing_function_is_not_an_arrow_function) - }; - } - if (!rangeContainsRange(func, node) || rangeContainsRange(func.body, node) && !considerFunctionBodies) { - return void 0; - } - if (refactorKindBeginsWith(addBracesAction.kind, kind) && isExpression(func.body)) { - return { func: func, addBraces: true, expression: func.body }; - } - else if (refactorKindBeginsWith(removeBracesAction.kind, kind) && isBlock(func.body) && func.body.statements.length === 1) { - var firstStatement = first(func.body.statements); - if (isReturnStatement(firstStatement)) { - return { func: func, addBraces: false, expression: firstStatement.expression, returnStatement: firstStatement }; - } - } - return void 0; -} -// src/services/_namespaces/ts.refactor.convertArrowFunctionOrFunctionExpression.ts -var ts_refactor_convertArrowFunctionOrFunctionExpression_exports = {}; -// src/services/refactors/convertArrowFunctionOrFunctionExpression.ts -var refactorName8 = "Convert arrow function or function expression"; -var refactorDescription4 = getLocaleSpecificMessage(Diagnostics.Convert_arrow_function_or_function_expression); -var toAnonymousFunctionAction = { - name: "Convert to anonymous function", - description: getLocaleSpecificMessage(Diagnostics.Convert_to_anonymous_function), - kind: "refactor.rewrite.function.anonymous" -}; -var toNamedFunctionAction = { - name: "Convert to named function", - description: getLocaleSpecificMessage(Diagnostics.Convert_to_named_function), - kind: "refactor.rewrite.function.named" -}; -var toArrowFunctionAction = { - name: "Convert to arrow function", - description: getLocaleSpecificMessage(Diagnostics.Convert_to_arrow_function), - kind: "refactor.rewrite.function.arrow" -}; -registerRefactor(refactorName8, { - kinds: [ - toAnonymousFunctionAction.kind, - toNamedFunctionAction.kind, - toArrowFunctionAction.kind - ], - getEditsForAction: getRefactorEditsToConvertFunctionExpressions, - getAvailableActions: getRefactorActionsToConvertFunctionExpressions -}); -function getRefactorActionsToConvertFunctionExpressions(context) { - var file = context.file, startPosition = context.startPosition, program = context.program, kind = context.kind; - var info = getFunctionInfo(file, startPosition, program); - if (!info) - return emptyArray; - var selectedVariableDeclaration = info.selectedVariableDeclaration, func = info.func; - var possibleActions = []; - var errors = []; - if (refactorKindBeginsWith(toNamedFunctionAction.kind, kind)) { - var error2 = selectedVariableDeclaration || isArrowFunction(func) && isVariableDeclaration(func.parent) ? void 0 : getLocaleSpecificMessage(Diagnostics.Could_not_convert_to_named_function); - if (error2) { - errors.push(__assign(__assign({}, toNamedFunctionAction), { notApplicableReason: error2 })); - } - else { - possibleActions.push(toNamedFunctionAction); - } - } - if (refactorKindBeginsWith(toAnonymousFunctionAction.kind, kind)) { - var error2 = !selectedVariableDeclaration && isArrowFunction(func) ? void 0 : getLocaleSpecificMessage(Diagnostics.Could_not_convert_to_anonymous_function); - if (error2) { - errors.push(__assign(__assign({}, toAnonymousFunctionAction), { notApplicableReason: error2 })); - } - else { - possibleActions.push(toAnonymousFunctionAction); - } - } - if (refactorKindBeginsWith(toArrowFunctionAction.kind, kind)) { - var error2 = isFunctionExpression(func) ? void 0 : getLocaleSpecificMessage(Diagnostics.Could_not_convert_to_arrow_function); - if (error2) { - errors.push(__assign(__assign({}, toArrowFunctionAction), { notApplicableReason: error2 })); - } - else { - possibleActions.push(toArrowFunctionAction); - } - } - return [{ - name: refactorName8, - description: refactorDescription4, - actions: possibleActions.length === 0 && context.preferences.provideRefactorNotApplicableReason ? errors : possibleActions - }]; -} -function getRefactorEditsToConvertFunctionExpressions(context, actionName2) { - var file = context.file, startPosition = context.startPosition, program = context.program; - var info = getFunctionInfo(file, startPosition, program); - if (!info) - return void 0; - var func = info.func; - var edits = []; - switch (actionName2) { - case toAnonymousFunctionAction.name: - edits.push.apply(edits, __spreadArray([], __read(getEditInfoForConvertToAnonymousFunction(context, func)), false)); - break; - case toNamedFunctionAction.name: - var variableInfo = getVariableInfo(func); - if (!variableInfo) - return void 0; - edits.push.apply(edits, __spreadArray([], __read(getEditInfoForConvertToNamedFunction(context, func, variableInfo)), false)); - break; - case toArrowFunctionAction.name: - if (!isFunctionExpression(func)) - return void 0; - edits.push.apply(edits, __spreadArray([], __read(getEditInfoForConvertToArrowFunction(context, func)), false)); - break; - default: - return Debug.fail("invalid action"); - } - return { renameFilename: void 0, renameLocation: void 0, edits: edits }; -} -function containingThis(node) { - var containsThis = false; - node.forEachChild(function checkThis(child) { - if (isThis(child)) { - containsThis = true; - return; - } - if (!isClassLike(child) && !isFunctionDeclaration(child) && !isFunctionExpression(child)) { - forEachChild(child, checkThis); - } - }); - return containsThis; -} -function getFunctionInfo(file, startPosition, program) { - var token = getTokenAtPosition(file, startPosition); - var typeChecker = program.getTypeChecker(); - var func = tryGetFunctionFromVariableDeclaration(file, typeChecker, token.parent); - if (func && !containingThis(func.body) && !typeChecker.containsArgumentsReference(func)) { - return { selectedVariableDeclaration: true, func: func }; - } - var maybeFunc = getContainingFunction(token); - if (maybeFunc && (isFunctionExpression(maybeFunc) || isArrowFunction(maybeFunc)) && !rangeContainsRange(maybeFunc.body, token) && !containingThis(maybeFunc.body) && !typeChecker.containsArgumentsReference(maybeFunc)) { - if (isFunctionExpression(maybeFunc) && isFunctionReferencedInFile(file, typeChecker, maybeFunc)) - return void 0; - return { selectedVariableDeclaration: false, func: maybeFunc }; - } - return void 0; -} -function isSingleVariableDeclaration(parent2) { - return isVariableDeclaration(parent2) || isVariableDeclarationList(parent2) && parent2.declarations.length === 1; -} -function tryGetFunctionFromVariableDeclaration(sourceFile, typeChecker, parent2) { - if (!isSingleVariableDeclaration(parent2)) { - return void 0; - } - var variableDeclaration = isVariableDeclaration(parent2) ? parent2 : first(parent2.declarations); - var initializer = variableDeclaration.initializer; - if (initializer && (isArrowFunction(initializer) || isFunctionExpression(initializer) && !isFunctionReferencedInFile(sourceFile, typeChecker, initializer))) { - return initializer; - } - return void 0; -} -function convertToBlock(body) { - if (isExpression(body)) { - var returnStatement = factory.createReturnStatement(body); - var file = body.getSourceFile(); - setTextRange(returnStatement, body); - suppressLeadingAndTrailingTrivia(returnStatement); - copyTrailingAsLeadingComments(body, returnStatement, file, - /*commentKind*/ - void 0, - /*hasTrailingNewLine*/ - true); - return factory.createBlock([returnStatement], - /*multiLine*/ - true); - } - else { - return body; - } -} -function getVariableInfo(func) { - var variableDeclaration = func.parent; - if (!isVariableDeclaration(variableDeclaration) || !isVariableDeclarationInVariableStatement(variableDeclaration)) - return void 0; - var variableDeclarationList = variableDeclaration.parent; - var statement = variableDeclarationList.parent; - if (!isVariableDeclarationList(variableDeclarationList) || !isVariableStatement(statement) || !isIdentifier(variableDeclaration.name)) - return void 0; - return { variableDeclaration: variableDeclaration, variableDeclarationList: variableDeclarationList, statement: statement, name: variableDeclaration.name }; -} -function getEditInfoForConvertToAnonymousFunction(context, func) { - var file = context.file; - var body = convertToBlock(func.body); - var newNode = factory.createFunctionExpression(func.modifiers, func.asteriskToken, - /*name*/ - void 0, func.typeParameters, func.parameters, func.type, body); - return ts_textChanges_exports.ChangeTracker.with(context, function (t) { return t.replaceNode(file, func, newNode); }); -} -function getEditInfoForConvertToNamedFunction(context, func, variableInfo) { - var file = context.file; - var body = convertToBlock(func.body); - var variableDeclaration = variableInfo.variableDeclaration, variableDeclarationList = variableInfo.variableDeclarationList, statement = variableInfo.statement, name = variableInfo.name; - suppressLeadingTrivia(statement); - var modifiersFlags = getCombinedModifierFlags(variableDeclaration) & 1 /* Export */ | getEffectiveModifierFlags(func); - var modifiers = factory.createModifiersFromModifierFlags(modifiersFlags); - var newNode = factory.createFunctionDeclaration(length(modifiers) ? modifiers : void 0, func.asteriskToken, name, func.typeParameters, func.parameters, func.type, body); - if (variableDeclarationList.declarations.length === 1) { - return ts_textChanges_exports.ChangeTracker.with(context, function (t) { return t.replaceNode(file, statement, newNode); }); - } - else { - return ts_textChanges_exports.ChangeTracker.with(context, function (t) { - t.delete(file, variableDeclaration); - t.insertNodeAfter(file, statement, newNode); - }); - } -} -function getEditInfoForConvertToArrowFunction(context, func) { - var file = context.file; - var statements = func.body.statements; - var head = statements[0]; - var body; - if (canBeConvertedToExpression(func.body, head)) { - body = head.expression; - suppressLeadingAndTrailingTrivia(body); - copyComments(head, body); - } - else { - body = func.body; - } - var newNode = factory.createArrowFunction(func.modifiers, func.typeParameters, func.parameters, func.type, factory.createToken(39 /* EqualsGreaterThanToken */), body); - return ts_textChanges_exports.ChangeTracker.with(context, function (t) { return t.replaceNode(file, func, newNode); }); -} -function canBeConvertedToExpression(body, head) { - return body.statements.length === 1 && (isReturnStatement(head) && !!head.expression); -} -function isFunctionReferencedInFile(sourceFile, typeChecker, node) { - return !!node.name && ts_FindAllReferences_exports.Core.isSymbolReferencedInFile(node.name, typeChecker, sourceFile); -} -// src/services/_namespaces/ts.refactor.convertParamsToDestructuredObject.ts -var ts_refactor_convertParamsToDestructuredObject_exports = {}; -// src/services/refactors/convertParamsToDestructuredObject.ts -var refactorName9 = "Convert parameters to destructured object"; -var minimumParameterLength = 1; -var refactorDescription5 = getLocaleSpecificMessage(Diagnostics.Convert_parameters_to_destructured_object); -var toDestructuredAction = { - name: refactorName9, - description: refactorDescription5, - kind: "refactor.rewrite.parameters.toDestructured" -}; -registerRefactor(refactorName9, { - kinds: [toDestructuredAction.kind], - getEditsForAction: getRefactorEditsToConvertParametersToDestructuredObject, - getAvailableActions: getRefactorActionsToConvertParametersToDestructuredObject -}); -function getRefactorActionsToConvertParametersToDestructuredObject(context) { - var file = context.file, startPosition = context.startPosition; - var isJSFile = isSourceFileJS(file); - if (isJSFile) - return emptyArray; - var functionDeclaration = getFunctionDeclarationAtPosition(file, startPosition, context.program.getTypeChecker()); - if (!functionDeclaration) - return emptyArray; - return [{ - name: refactorName9, - description: refactorDescription5, - actions: [toDestructuredAction] - }]; -} -function getRefactorEditsToConvertParametersToDestructuredObject(context, actionName2) { - Debug.assert(actionName2 === refactorName9, "Unexpected action name"); - var file = context.file, startPosition = context.startPosition, program = context.program, cancellationToken = context.cancellationToken, host = context.host; - var functionDeclaration = getFunctionDeclarationAtPosition(file, startPosition, program.getTypeChecker()); - if (!functionDeclaration || !cancellationToken) - return void 0; - var groupedReferences = getGroupedReferences(functionDeclaration, program, cancellationToken); - if (groupedReferences.valid) { - var edits = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return doChange5(file, program, host, t, functionDeclaration, groupedReferences); }); - return { renameFilename: void 0, renameLocation: void 0, edits: edits }; - } - return { edits: [] }; -} -function doChange5(sourceFile, program, host, changes, functionDeclaration, groupedReferences) { - var e_707, _t; - var signature = groupedReferences.signature; - var newFunctionDeclarationParams = map(createNewParameters(functionDeclaration, program, host), function (param) { return getSynthesizedDeepClone(param); }); - if (signature) { - var newSignatureParams = map(createNewParameters(signature, program, host), function (param) { return getSynthesizedDeepClone(param); }); - replaceParameters(signature, newSignatureParams); - } - replaceParameters(functionDeclaration, newFunctionDeclarationParams); - var functionCalls = sortAndDeduplicate(groupedReferences.functionCalls, - /*comparer*/ - function (a, b) { return compareValues(a.pos, b.pos); }); - try { - for (var functionCalls_1 = __values(functionCalls), functionCalls_1_1 = functionCalls_1.next(); !functionCalls_1_1.done; functionCalls_1_1 = functionCalls_1.next()) { - var call = functionCalls_1_1.value; - if (call.arguments && call.arguments.length) { - var newArgument = getSynthesizedDeepClone(createNewArgument(functionDeclaration, call.arguments), - /*includeTrivia*/ - true); - changes.replaceNodeRange(getSourceFileOfNode(call), first(call.arguments), last(call.arguments), newArgument, { leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.IncludeAll, trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.Include }); - } - } - } - catch (e_707_1) { e_707 = { error: e_707_1 }; } - finally { - try { - if (functionCalls_1_1 && !functionCalls_1_1.done && (_t = functionCalls_1.return)) _t.call(functionCalls_1); - } - finally { if (e_707) throw e_707.error; } - } - function replaceParameters(declarationOrSignature, parameterDeclarations) { - changes.replaceNodeRangeWithNodes(sourceFile, first(declarationOrSignature.parameters), last(declarationOrSignature.parameters), parameterDeclarations, { - joiner: ", ", - // indentation is set to 0 because otherwise the object parameter will be indented if there is a `this` parameter - indentation: 0, - leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.IncludeAll, - trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.Include - }); - } -} -function getGroupedReferences(functionDeclaration, program, cancellationToken) { - var functionNames = getFunctionNames(functionDeclaration); - var classNames = isConstructorDeclaration(functionDeclaration) ? getClassNames(functionDeclaration) : []; - var names = deduplicate(__spreadArray(__spreadArray([], __read(functionNames), false), __read(classNames), false), equateValues); - var checker = program.getTypeChecker(); - var references = flatMap(names, - /*mapfn*/ - function (name) { return ts_FindAllReferences_exports.getReferenceEntriesForNode(-1, name, program, program.getSourceFiles(), cancellationToken); }); - var groupedReferences = groupReferences(references); - if (!every(groupedReferences.declarations, - /*callback*/ - function (decl) { return contains(names, decl); })) { - groupedReferences.valid = false; - } - return groupedReferences; - function groupReferences(referenceEntries) { - var e_708, _t; - var classReferences = { accessExpressions: [], typeUsages: [] }; - var groupedReferences2 = { functionCalls: [], declarations: [], classReferences: classReferences, valid: true }; - var functionSymbols = map(functionNames, getSymbolTargetAtLocation); - var classSymbols = map(classNames, getSymbolTargetAtLocation); - var isConstructor = isConstructorDeclaration(functionDeclaration); - var contextualSymbols = map(functionNames, function (name) { return getSymbolForContextualType(name, checker); }); - try { - for (var referenceEntries_1 = __values(referenceEntries), referenceEntries_1_1 = referenceEntries_1.next(); !referenceEntries_1_1.done; referenceEntries_1_1 = referenceEntries_1.next()) { - var entry = referenceEntries_1_1.value; - if (entry.kind === ts_FindAllReferences_exports.EntryKind.Span) { - groupedReferences2.valid = false; - continue; - } - if (contains(contextualSymbols, getSymbolTargetAtLocation(entry.node))) { - if (isValidMethodSignature(entry.node.parent)) { - groupedReferences2.signature = entry.node.parent; - continue; - } - var call = entryToFunctionCall(entry); - if (call) { - groupedReferences2.functionCalls.push(call); - continue; - } - } - var contextualSymbol = getSymbolForContextualType(entry.node, checker); - if (contextualSymbol && contains(contextualSymbols, contextualSymbol)) { - var decl = entryToDeclaration(entry); - if (decl) { - groupedReferences2.declarations.push(decl); - continue; - } - } - if (contains(functionSymbols, getSymbolTargetAtLocation(entry.node)) || isNewExpressionTarget(entry.node)) { - var importOrExportReference = entryToImportOrExport(entry); - if (importOrExportReference) { - continue; - } - var decl = entryToDeclaration(entry); - if (decl) { - groupedReferences2.declarations.push(decl); - continue; - } - var call = entryToFunctionCall(entry); - if (call) { - groupedReferences2.functionCalls.push(call); - continue; - } - } - if (isConstructor && contains(classSymbols, getSymbolTargetAtLocation(entry.node))) { - var importOrExportReference = entryToImportOrExport(entry); - if (importOrExportReference) { - continue; - } - var decl = entryToDeclaration(entry); - if (decl) { - groupedReferences2.declarations.push(decl); - continue; - } - var accessExpression = entryToAccessExpression(entry); - if (accessExpression) { - classReferences.accessExpressions.push(accessExpression); - continue; - } - if (isClassDeclaration(functionDeclaration.parent)) { - var type = entryToType(entry); - if (type) { - classReferences.typeUsages.push(type); - continue; - } - } - } - groupedReferences2.valid = false; - } - } - catch (e_708_1) { e_708 = { error: e_708_1 }; } - finally { - try { - if (referenceEntries_1_1 && !referenceEntries_1_1.done && (_t = referenceEntries_1.return)) _t.call(referenceEntries_1); - } - finally { if (e_708) throw e_708.error; } - } - return groupedReferences2; - } - function getSymbolTargetAtLocation(node) { - var symbol = checker.getSymbolAtLocation(node); - return symbol && getSymbolTarget(symbol, checker); - } -} -function getSymbolForContextualType(node, checker) { - var element = getContainingObjectLiteralElement(node); - if (element) { - var contextualType = checker.getContextualTypeForObjectLiteralElement(element); - var symbol = contextualType == null ? void 0 : contextualType.getSymbol(); - if (symbol && !(getCheckFlags(symbol) & 6 /* Synthetic */)) { - return symbol; - } - } -} -function entryToImportOrExport(entry) { - var node = entry.node; - if (isImportSpecifier(node.parent) || isImportClause(node.parent) || isImportEqualsDeclaration(node.parent) || isNamespaceImport(node.parent)) { - return node; - } - if (isExportSpecifier(node.parent) || isExportAssignment(node.parent)) { - return node; - } - return void 0; -} -function entryToDeclaration(entry) { - if (isDeclaration(entry.node.parent)) { - return entry.node; - } - return void 0; -} -function entryToFunctionCall(entry) { - if (entry.node.parent) { - var functionReference = entry.node; - var parent2 = functionReference.parent; - switch (parent2.kind) { - case 213 /* CallExpression */: - case 214 /* NewExpression */: - var callOrNewExpression = tryCast(parent2, isCallOrNewExpression); - if (callOrNewExpression && callOrNewExpression.expression === functionReference) { - return callOrNewExpression; - } - break; - case 211 /* PropertyAccessExpression */: - var propertyAccessExpression = tryCast(parent2, isPropertyAccessExpression); - if (propertyAccessExpression && propertyAccessExpression.parent && propertyAccessExpression.name === functionReference) { - var callOrNewExpression2 = tryCast(propertyAccessExpression.parent, isCallOrNewExpression); - if (callOrNewExpression2 && callOrNewExpression2.expression === propertyAccessExpression) { - return callOrNewExpression2; - } - } - break; - case 212 /* ElementAccessExpression */: - var elementAccessExpression = tryCast(parent2, isElementAccessExpression); - if (elementAccessExpression && elementAccessExpression.parent && elementAccessExpression.argumentExpression === functionReference) { - var callOrNewExpression2 = tryCast(elementAccessExpression.parent, isCallOrNewExpression); - if (callOrNewExpression2 && callOrNewExpression2.expression === elementAccessExpression) { - return callOrNewExpression2; - } - } - break; - } - } - return void 0; -} -function entryToAccessExpression(entry) { - if (entry.node.parent) { - var reference = entry.node; - var parent2 = reference.parent; - switch (parent2.kind) { - case 211 /* PropertyAccessExpression */: - var propertyAccessExpression = tryCast(parent2, isPropertyAccessExpression); - if (propertyAccessExpression && propertyAccessExpression.expression === reference) { - return propertyAccessExpression; - } - break; - case 212 /* ElementAccessExpression */: - var elementAccessExpression = tryCast(parent2, isElementAccessExpression); - if (elementAccessExpression && elementAccessExpression.expression === reference) { - return elementAccessExpression; - } - break; - } - } - return void 0; -} -function entryToType(entry) { - var reference = entry.node; - if (getMeaningFromLocation(reference) === 2 /* Type */ || isExpressionWithTypeArgumentsInClassExtendsClause(reference.parent)) { - return reference; - } - return void 0; -} -function getFunctionDeclarationAtPosition(file, startPosition, checker) { - var node = getTouchingToken(file, startPosition); - var functionDeclaration = getContainingFunctionDeclaration(node); - if (isTopLevelJSDoc(node)) - return void 0; - if (functionDeclaration && isValidFunctionDeclaration(functionDeclaration, checker) && rangeContainsRange(functionDeclaration, node) && !(functionDeclaration.body && rangeContainsRange(functionDeclaration.body, node))) - return functionDeclaration; - return void 0; -} -function isTopLevelJSDoc(node) { - var containingJSDoc = findAncestor(node, isJSDocNode); - if (containingJSDoc) { - var containingNonJSDoc = findAncestor(containingJSDoc, function (n) { return !isJSDocNode(n); }); - return !!containingNonJSDoc && isFunctionLikeDeclaration(containingNonJSDoc); - } - return false; -} -function isValidMethodSignature(node) { - return isMethodSignature(node) && (isInterfaceDeclaration(node.parent) || isTypeLiteralNode(node.parent)); -} -function isValidFunctionDeclaration(functionDeclaration, checker) { - var _a; - if (!isValidParameterNodeArray(functionDeclaration.parameters, checker)) - return false; - switch (functionDeclaration.kind) { - case 262 /* FunctionDeclaration */: - return hasNameOrDefault(functionDeclaration) && isSingleImplementation(functionDeclaration, checker); - case 174 /* MethodDeclaration */: - if (isObjectLiteralExpression(functionDeclaration.parent)) { - var contextualSymbol = getSymbolForContextualType(functionDeclaration.name, checker); - return ((_a = contextualSymbol == null ? void 0 : contextualSymbol.declarations) == null ? void 0 : _a.length) === 1 && isSingleImplementation(functionDeclaration, checker); - } - return isSingleImplementation(functionDeclaration, checker); - case 176 /* Constructor */: - if (isClassDeclaration(functionDeclaration.parent)) { - return hasNameOrDefault(functionDeclaration.parent) && isSingleImplementation(functionDeclaration, checker); - } - else { - return isValidVariableDeclaration(functionDeclaration.parent.parent) && isSingleImplementation(functionDeclaration, checker); - } - case 218 /* FunctionExpression */: - case 219 /* ArrowFunction */: - return isValidVariableDeclaration(functionDeclaration.parent); - } - return false; -} -function isSingleImplementation(functionDeclaration, checker) { - return !!functionDeclaration.body && !checker.isImplementationOfOverload(functionDeclaration); -} -function hasNameOrDefault(functionOrClassDeclaration) { - if (!functionOrClassDeclaration.name) { - var defaultKeyword = findModifier(functionOrClassDeclaration, 90 /* DefaultKeyword */); - return !!defaultKeyword; - } - return true; -} -function isValidParameterNodeArray(parameters, checker) { - return getRefactorableParametersLength(parameters) >= minimumParameterLength && every(parameters, - /*callback*/ - function (paramDecl) { return isValidParameterDeclaration(paramDecl, checker); }); -} -function isValidParameterDeclaration(parameterDeclaration, checker) { - if (isRestParameter(parameterDeclaration)) { - var type = checker.getTypeAtLocation(parameterDeclaration); - if (!checker.isArrayType(type) && !checker.isTupleType(type)) - return false; - } - return !parameterDeclaration.modifiers && isIdentifier(parameterDeclaration.name); -} -function isValidVariableDeclaration(node) { - return isVariableDeclaration(node) && isVarConst(node) && isIdentifier(node.name) && !node.type; -} -function hasThisParameter(parameters) { - return parameters.length > 0 && isThis(parameters[0].name); -} -function getRefactorableParametersLength(parameters) { - if (hasThisParameter(parameters)) { - return parameters.length - 1; - } - return parameters.length; -} -function getRefactorableParameters(parameters) { - if (hasThisParameter(parameters)) { - parameters = factory.createNodeArray(parameters.slice(1), parameters.hasTrailingComma); - } - return parameters; -} -function createPropertyOrShorthandAssignment(name, initializer) { - if (isIdentifier(initializer) && getTextOfIdentifierOrLiteral(initializer) === name) { - return factory.createShorthandPropertyAssignment(name); - } - return factory.createPropertyAssignment(name, initializer); -} -function createNewArgument(functionDeclaration, functionArguments) { - var parameters = getRefactorableParameters(functionDeclaration.parameters); - var hasRestParameter2 = isRestParameter(last(parameters)); - var nonRestArguments = hasRestParameter2 ? functionArguments.slice(0, parameters.length - 1) : functionArguments; - var properties = map(nonRestArguments, function (arg, i) { - var parameterName = getParameterName(parameters[i]); - var property = createPropertyOrShorthandAssignment(parameterName, arg); - suppressLeadingAndTrailingTrivia(property.name); - if (isPropertyAssignment(property)) - suppressLeadingAndTrailingTrivia(property.initializer); - copyComments(arg, property); - return property; - }); - if (hasRestParameter2 && functionArguments.length >= parameters.length) { - var restArguments = functionArguments.slice(parameters.length - 1); - var restProperty = factory.createPropertyAssignment(getParameterName(last(parameters)), factory.createArrayLiteralExpression(restArguments)); - properties.push(restProperty); - } - var objectLiteral = factory.createObjectLiteralExpression(properties, - /*multiLine*/ - false); - return objectLiteral; -} -function createNewParameters(functionDeclaration, program, host) { - var checker = program.getTypeChecker(); - var refactorableParameters = getRefactorableParameters(functionDeclaration.parameters); - var bindingElements = map(refactorableParameters, createBindingElementFromParameterDeclaration); - var objectParameterName = factory.createObjectBindingPattern(bindingElements); - var objectParameterType = createParameterTypeNode(refactorableParameters); - var objectInitializer; - if (every(refactorableParameters, isOptionalParameter)) { - objectInitializer = factory.createObjectLiteralExpression(); - } - var objectParameter = factory.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, objectParameterName, - /*questionToken*/ - void 0, objectParameterType, objectInitializer); - if (hasThisParameter(functionDeclaration.parameters)) { - var thisParameter = functionDeclaration.parameters[0]; - var newThisParameter = factory.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, thisParameter.name, - /*questionToken*/ - void 0, thisParameter.type); - suppressLeadingAndTrailingTrivia(newThisParameter.name); - copyComments(thisParameter.name, newThisParameter.name); - if (thisParameter.type) { - suppressLeadingAndTrailingTrivia(newThisParameter.type); - copyComments(thisParameter.type, newThisParameter.type); - } - return factory.createNodeArray([newThisParameter, objectParameter]); - } - return factory.createNodeArray([objectParameter]); - function createBindingElementFromParameterDeclaration(parameterDeclaration) { - var element = factory.createBindingElement( - /*dotDotDotToken*/ - void 0, - /*propertyName*/ - void 0, getParameterName(parameterDeclaration), isRestParameter(parameterDeclaration) && isOptionalParameter(parameterDeclaration) ? factory.createArrayLiteralExpression() : parameterDeclaration.initializer); - suppressLeadingAndTrailingTrivia(element); - if (parameterDeclaration.initializer && element.initializer) { - copyComments(parameterDeclaration.initializer, element.initializer); - } - return element; - } - function createParameterTypeNode(parameters) { - var members = map(parameters, createPropertySignatureFromParameterDeclaration); - var typeNode = addEmitFlags(factory.createTypeLiteralNode(members), 1 /* SingleLine */); - return typeNode; - } - function createPropertySignatureFromParameterDeclaration(parameterDeclaration) { - var parameterType = parameterDeclaration.type; - if (!parameterType && (parameterDeclaration.initializer || isRestParameter(parameterDeclaration))) { - parameterType = getTypeNode3(parameterDeclaration); - } - var propertySignature = factory.createPropertySignature( - /*modifiers*/ - void 0, getParameterName(parameterDeclaration), isOptionalParameter(parameterDeclaration) ? factory.createToken(58 /* QuestionToken */) : parameterDeclaration.questionToken, parameterType); - suppressLeadingAndTrailingTrivia(propertySignature); - copyComments(parameterDeclaration.name, propertySignature.name); - if (parameterDeclaration.type && propertySignature.type) { - copyComments(parameterDeclaration.type, propertySignature.type); - } - return propertySignature; - } - function getTypeNode3(node) { - var type = checker.getTypeAtLocation(node); - return getTypeNodeIfAccessible(type, node, program, host); - } - function isOptionalParameter(parameterDeclaration) { - if (isRestParameter(parameterDeclaration)) { - var type = checker.getTypeAtLocation(parameterDeclaration); - return !checker.isTupleType(type); - } - return checker.isOptionalParameter(parameterDeclaration); - } -} -function getParameterName(paramDeclaration) { - return getTextOfIdentifierOrLiteral(paramDeclaration.name); -} -function getClassNames(constructorDeclaration) { - switch (constructorDeclaration.parent.kind) { - case 263 /* ClassDeclaration */: - var classDeclaration = constructorDeclaration.parent; - if (classDeclaration.name) - return [classDeclaration.name]; - var defaultModifier = Debug.checkDefined(findModifier(classDeclaration, 90 /* DefaultKeyword */), "Nameless class declaration should be a default export"); - return [defaultModifier]; - case 231 /* ClassExpression */: - var classExpression = constructorDeclaration.parent; - var variableDeclaration = constructorDeclaration.parent.parent; - var className = classExpression.name; - if (className) - return [className, variableDeclaration.name]; - return [variableDeclaration.name]; - } -} -function getFunctionNames(functionDeclaration) { - switch (functionDeclaration.kind) { - case 262 /* FunctionDeclaration */: - if (functionDeclaration.name) - return [functionDeclaration.name]; - var defaultModifier = Debug.checkDefined(findModifier(functionDeclaration, 90 /* DefaultKeyword */), "Nameless function declaration should be a default export"); - return [defaultModifier]; - case 174 /* MethodDeclaration */: - return [functionDeclaration.name]; - case 176 /* Constructor */: - var ctrKeyword = Debug.checkDefined(findChildOfKind(functionDeclaration, 137 /* ConstructorKeyword */, functionDeclaration.getSourceFile()), "Constructor declaration should have constructor keyword"); - if (functionDeclaration.parent.kind === 231 /* ClassExpression */) { - var variableDeclaration = functionDeclaration.parent.parent; - return [variableDeclaration.name, ctrKeyword]; - } - return [ctrKeyword]; - case 219 /* ArrowFunction */: - return [functionDeclaration.parent.name]; - case 218 /* FunctionExpression */: - if (functionDeclaration.name) - return [functionDeclaration.name, functionDeclaration.parent.name]; - return [functionDeclaration.parent.name]; - default: - return Debug.assertNever(functionDeclaration, "Unexpected function declaration kind ".concat(functionDeclaration.kind)); - } -} -// src/services/_namespaces/ts.refactor.convertStringOrTemplateLiteral.ts -var ts_refactor_convertStringOrTemplateLiteral_exports = {}; -// src/services/refactors/convertStringOrTemplateLiteral.ts -var refactorName10 = "Convert to template string"; -var refactorDescription6 = getLocaleSpecificMessage(Diagnostics.Convert_to_template_string); -var convertStringAction = { - name: refactorName10, - description: refactorDescription6, - kind: "refactor.rewrite.string" -}; -registerRefactor(refactorName10, { - kinds: [convertStringAction.kind], - getEditsForAction: getRefactorEditsToConvertToTemplateString, - getAvailableActions: getRefactorActionsToConvertToTemplateString -}); -function getRefactorActionsToConvertToTemplateString(context) { - var file = context.file, startPosition = context.startPosition; - var node = getNodeOrParentOfParentheses(file, startPosition); - var maybeBinary = getParentBinaryExpression(node); - var refactorInfo = { name: refactorName10, description: refactorDescription6, actions: [] }; - if (isBinaryExpression(maybeBinary) && treeToArray(maybeBinary).isValidConcatenation) { - refactorInfo.actions.push(convertStringAction); - return [refactorInfo]; - } - else if (context.preferences.provideRefactorNotApplicableReason) { - refactorInfo.actions.push(__assign(__assign({}, convertStringAction), { notApplicableReason: getLocaleSpecificMessage(Diagnostics.Can_only_convert_string_concatenation) })); - return [refactorInfo]; - } - return emptyArray; -} -function getNodeOrParentOfParentheses(file, startPosition) { - var node = getTokenAtPosition(file, startPosition); - var nestedBinary = getParentBinaryExpression(node); - var isNonStringBinary = !treeToArray(nestedBinary).isValidConcatenation; - if (isNonStringBinary && isParenthesizedExpression(nestedBinary.parent) && isBinaryExpression(nestedBinary.parent.parent)) { - return nestedBinary.parent.parent; - } - return node; -} -function getRefactorEditsToConvertToTemplateString(context, actionName2) { - var file = context.file, startPosition = context.startPosition; - var node = getNodeOrParentOfParentheses(file, startPosition); - switch (actionName2) { - case refactorDescription6: - return { edits: getEditsForToTemplateLiteral(context, node) }; - default: - return Debug.fail("invalid action"); - } -} -function getEditsForToTemplateLiteral(context, node) { - var maybeBinary = getParentBinaryExpression(node); - var file = context.file; - var templateLiteral = nodesToTemplate(treeToArray(maybeBinary), file); - var trailingCommentRanges = getTrailingCommentRanges(file.text, maybeBinary.end); - if (trailingCommentRanges) { - var lastComment = trailingCommentRanges[trailingCommentRanges.length - 1]; - var trailingRange_1 = { pos: trailingCommentRanges[0].pos, end: lastComment.end }; - return ts_textChanges_exports.ChangeTracker.with(context, function (t) { - t.deleteRange(file, trailingRange_1); - t.replaceNode(file, maybeBinary, templateLiteral); - }); - } - else { - return ts_textChanges_exports.ChangeTracker.with(context, function (t) { return t.replaceNode(file, maybeBinary, templateLiteral); }); - } -} -function isNotEqualsOperator(node) { - return !(node.operatorToken.kind === 64 /* EqualsToken */ || node.operatorToken.kind === 65 /* PlusEqualsToken */); -} -function getParentBinaryExpression(expr) { - var container = findAncestor(expr.parent, function (n) { - switch (n.kind) { - case 211 /* PropertyAccessExpression */: - case 212 /* ElementAccessExpression */: - return false; - case 228 /* TemplateExpression */: - case 226 /* BinaryExpression */: - return !(isBinaryExpression(n.parent) && isNotEqualsOperator(n.parent)); - default: - return "quit"; - } - }); - return container || expr; -} -function treeToArray(current) { - var loop = function (current2) { - if (!isBinaryExpression(current2)) { - return { - nodes: [current2], - operators: [], - validOperators: true, - hasString: isStringLiteral(current2) || isNoSubstitutionTemplateLiteral(current2) - }; - } - var _t = loop(current2.left), nodes2 = _t.nodes, operators2 = _t.operators, leftHasString = _t.hasString, leftOperatorValid = _t.validOperators; - if (!(leftHasString || isStringLiteral(current2.right) || isTemplateExpression(current2.right))) { - return { nodes: [current2], operators: [], hasString: false, validOperators: true }; - } - var currentOperatorValid = current2.operatorToken.kind === 40 /* PlusToken */; - var validOperators2 = leftOperatorValid && currentOperatorValid; - nodes2.push(current2.right); - operators2.push(current2.operatorToken); - return { nodes: nodes2, operators: operators2, hasString: true, validOperators: validOperators2 }; - }; - var _t = loop(current), nodes = _t.nodes, operators = _t.operators, validOperators = _t.validOperators, hasString = _t.hasString; - return { nodes: nodes, operators: operators, isValidConcatenation: validOperators && hasString }; -} -var copyTrailingOperatorComments = function (operators, file) { return function (index, targetNode) { - if (index < operators.length) { - copyTrailingComments(operators[index], targetNode, file, 3 /* MultiLineCommentTrivia */, - /*hasTrailingNewLine*/ - false); - } -}; }; -var copyCommentFromMultiNode = function (nodes, file, copyOperatorComments) { return function (indexes, targetNode) { - while (indexes.length > 0) { - var index = indexes.shift(); - copyTrailingComments(nodes[index], targetNode, file, 3 /* MultiLineCommentTrivia */, - /*hasTrailingNewLine*/ - false); - copyOperatorComments(index, targetNode); - } -}; }; -function escapeRawStringForTemplate(s) { - return s.replace(/\\.|[$`]/g, function (m) { return m[0] === "\\" ? m : "\\" + m; }); -} -function getRawTextOfTemplate(node) { - var rightShaving = isTemplateHead(node) || isTemplateMiddle(node) ? -2 : -1; - return getTextOfNode(node).slice(1, rightShaving); -} -function concatConsecutiveString(index, nodes) { - var indexes = []; - var text = "", rawText = ""; - while (index < nodes.length) { - var node = nodes[index]; - if (isStringLiteralLike(node)) { - text += node.text; - rawText += escapeRawStringForTemplate(getTextOfNode(node).slice(1, -1)); - indexes.push(index); - index++; - } - else if (isTemplateExpression(node)) { - text += node.head.text; - rawText += getRawTextOfTemplate(node.head); - break; - } - else { - break; - } - } - return [index, text, rawText, indexes]; -} -function nodesToTemplate(_t, file) { - var nodes = _t.nodes, operators = _t.operators; - var copyOperatorComments = copyTrailingOperatorComments(operators, file); - var copyCommentFromStringLiterals = copyCommentFromMultiNode(nodes, file, copyOperatorComments); - var _u = __read(concatConsecutiveString(0, nodes), 4), begin = _u[0], headText = _u[1], rawHeadText = _u[2], headIndexes = _u[3]; - if (begin === nodes.length) { - var noSubstitutionTemplateLiteral = factory.createNoSubstitutionTemplateLiteral(headText, rawHeadText); - copyCommentFromStringLiterals(headIndexes, noSubstitutionTemplateLiteral); - return noSubstitutionTemplateLiteral; - } - var templateSpans = []; - var templateHead = factory.createTemplateHead(headText, rawHeadText); - copyCommentFromStringLiterals(headIndexes, templateHead); - var _loop_49 = function (i) { - var currentNode = getExpressionFromParenthesesOrExpression(nodes[i]); - copyOperatorComments(i, currentNode); - var _v = __read(concatConsecutiveString(i + 1, nodes), 4), newIndex = _v[0], subsequentText = _v[1], rawSubsequentText = _v[2], stringIndexes = _v[3]; - i = newIndex - 1; - var isLast = i === nodes.length - 1; - if (isTemplateExpression(currentNode)) { - var spans = map(currentNode.templateSpans, function (span, index) { - copyExpressionComments(span); - var isLastSpan = index === currentNode.templateSpans.length - 1; - var text = span.literal.text + (isLastSpan ? subsequentText : ""); - var rawText = getRawTextOfTemplate(span.literal) + (isLastSpan ? rawSubsequentText : ""); - return factory.createTemplateSpan(span.expression, isLast && isLastSpan ? factory.createTemplateTail(text, rawText) : factory.createTemplateMiddle(text, rawText)); - }); - templateSpans.push.apply(templateSpans, __spreadArray([], __read(spans), false)); - } - else { - var templatePart = isLast ? factory.createTemplateTail(subsequentText, rawSubsequentText) : factory.createTemplateMiddle(subsequentText, rawSubsequentText); - copyCommentFromStringLiterals(stringIndexes, templatePart); - templateSpans.push(factory.createTemplateSpan(currentNode, templatePart)); - } - out_i_1 = i; - }; - var out_i_1; - for (var i = begin; i < nodes.length; i++) { - _loop_49(i); - i = out_i_1; - } - return factory.createTemplateExpression(templateHead, templateSpans); -} -function copyExpressionComments(node) { - var file = node.getSourceFile(); - copyTrailingComments(node, node.expression, file, 3 /* MultiLineCommentTrivia */, - /*hasTrailingNewLine*/ - false); - copyTrailingAsLeadingComments(node.expression, node.expression, file, 3 /* MultiLineCommentTrivia */, - /*hasTrailingNewLine*/ - false); -} -function getExpressionFromParenthesesOrExpression(node) { - if (isParenthesizedExpression(node)) { - copyExpressionComments(node); - node = node.expression; - } - return node; -} -// src/services/_namespaces/ts.refactor.convertToOptionalChainExpression.ts -var ts_refactor_convertToOptionalChainExpression_exports = {}; -// src/services/refactors/convertToOptionalChainExpression.ts -var refactorName11 = "Convert to optional chain expression"; -var convertToOptionalChainExpressionMessage = getLocaleSpecificMessage(Diagnostics.Convert_to_optional_chain_expression); -var toOptionalChainAction = { - name: refactorName11, - description: convertToOptionalChainExpressionMessage, - kind: "refactor.rewrite.expression.optionalChain" -}; -registerRefactor(refactorName11, { - kinds: [toOptionalChainAction.kind], - getEditsForAction: getRefactorEditsToConvertToOptionalChain, - getAvailableActions: getRefactorActionsToConvertToOptionalChain -}); -function getRefactorActionsToConvertToOptionalChain(context) { - var info = getInfo3(context, context.triggerReason === "invoked"); - if (!info) - return emptyArray; - if (!isRefactorErrorInfo(info)) { - return [{ - name: refactorName11, - description: convertToOptionalChainExpressionMessage, - actions: [toOptionalChainAction] - }]; - } - if (context.preferences.provideRefactorNotApplicableReason) { - return [{ - name: refactorName11, - description: convertToOptionalChainExpressionMessage, - actions: [__assign(__assign({}, toOptionalChainAction), { notApplicableReason: info.error })] - }]; - } - return emptyArray; -} -function getRefactorEditsToConvertToOptionalChain(context, actionName2) { - var info = getInfo3(context); - Debug.assert(info && !isRefactorErrorInfo(info), "Expected applicable refactor info"); - var edits = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return doChange6(context.file, context.program.getTypeChecker(), t, info, actionName2); }); - return { edits: edits, renameFilename: void 0, renameLocation: void 0 }; -} -function isValidExpression(node) { - return isBinaryExpression(node) || isConditionalExpression(node); -} -function isValidStatement(node) { - return isExpressionStatement(node) || isReturnStatement(node) || isVariableStatement(node); -} -function isValidExpressionOrStatement(node) { - return isValidExpression(node) || isValidStatement(node); -} -function getInfo3(context, considerEmptySpans) { - if (considerEmptySpans === void 0) { considerEmptySpans = true; } - var file = context.file, program = context.program; - var span = getRefactorContextSpan(context); - var forEmptySpan = span.length === 0; - if (forEmptySpan && !considerEmptySpans) - return void 0; - var startToken = getTokenAtPosition(file, span.start); - var endToken = findTokenOnLeftOfPosition(file, span.start + span.length); - var adjustedSpan = createTextSpanFromBounds(startToken.pos, endToken && endToken.end >= startToken.pos ? endToken.getEnd() : startToken.getEnd()); - var parent2 = forEmptySpan ? getValidParentNodeOfEmptySpan(startToken) : getValidParentNodeContainingSpan(startToken, adjustedSpan); - var expression = parent2 && isValidExpressionOrStatement(parent2) ? getExpression(parent2) : void 0; - if (!expression) - return { error: getLocaleSpecificMessage(Diagnostics.Could_not_find_convertible_access_expression) }; - var checker = program.getTypeChecker(); - return isConditionalExpression(expression) ? getConditionalInfo(expression, checker) : getBinaryInfo(expression); -} -function getConditionalInfo(expression, checker) { - var condition = expression.condition; - var finalExpression = getFinalExpressionInChain(expression.whenTrue); - if (!finalExpression || checker.isNullableType(checker.getTypeAtLocation(finalExpression))) { - return { error: getLocaleSpecificMessage(Diagnostics.Could_not_find_convertible_access_expression) }; - } - if ((isPropertyAccessExpression(condition) || isIdentifier(condition)) && getMatchingStart(condition, finalExpression.expression)) { - return { finalExpression: finalExpression, occurrences: [condition], expression: expression }; - } - else if (isBinaryExpression(condition)) { - var occurrences = getOccurrencesInExpression(finalExpression.expression, condition); - return occurrences ? { finalExpression: finalExpression, occurrences: occurrences, expression: expression } : { error: getLocaleSpecificMessage(Diagnostics.Could_not_find_matching_access_expressions) }; - } -} -function getBinaryInfo(expression) { - if (expression.operatorToken.kind !== 56 /* AmpersandAmpersandToken */) { - return { error: getLocaleSpecificMessage(Diagnostics.Can_only_convert_logical_AND_access_chains) }; - } - var finalExpression = getFinalExpressionInChain(expression.right); - if (!finalExpression) - return { error: getLocaleSpecificMessage(Diagnostics.Could_not_find_convertible_access_expression) }; - var occurrences = getOccurrencesInExpression(finalExpression.expression, expression.left); - return occurrences ? { finalExpression: finalExpression, occurrences: occurrences, expression: expression } : { error: getLocaleSpecificMessage(Diagnostics.Could_not_find_matching_access_expressions) }; -} -function getOccurrencesInExpression(matchTo, expression) { - var occurrences = []; - while (isBinaryExpression(expression) && expression.operatorToken.kind === 56 /* AmpersandAmpersandToken */) { - var match = getMatchingStart(skipParentheses(matchTo), skipParentheses(expression.right)); - if (!match) { - break; - } - occurrences.push(match); - matchTo = match; - expression = expression.left; - } - var finalMatch = getMatchingStart(matchTo, expression); - if (finalMatch) { - occurrences.push(finalMatch); - } - return occurrences.length > 0 ? occurrences : void 0; -} -function getMatchingStart(chain, subchain) { - if (!isIdentifier(subchain) && !isPropertyAccessExpression(subchain) && !isElementAccessExpression(subchain)) { - return void 0; - } - return chainStartsWith(chain, subchain) ? subchain : void 0; -} -function chainStartsWith(chain, subchain) { - while (isCallExpression(chain) || isPropertyAccessExpression(chain) || isElementAccessExpression(chain)) { - if (getTextOfChainNode(chain) === getTextOfChainNode(subchain)) - break; - chain = chain.expression; - } - while (isPropertyAccessExpression(chain) && isPropertyAccessExpression(subchain) || isElementAccessExpression(chain) && isElementAccessExpression(subchain)) { - if (getTextOfChainNode(chain) !== getTextOfChainNode(subchain)) - return false; - chain = chain.expression; - subchain = subchain.expression; - } - return isIdentifier(chain) && isIdentifier(subchain) && chain.getText() === subchain.getText(); -} -function getTextOfChainNode(node) { - if (isIdentifier(node) || isStringOrNumericLiteralLike(node)) { - return node.getText(); - } - if (isPropertyAccessExpression(node)) { - return getTextOfChainNode(node.name); - } - if (isElementAccessExpression(node)) { - return getTextOfChainNode(node.argumentExpression); - } - return void 0; -} -function getValidParentNodeContainingSpan(node, span) { - while (node.parent) { - if (isValidExpressionOrStatement(node) && span.length !== 0 && node.end >= span.start + span.length) { - return node; - } - node = node.parent; - } - return void 0; -} -function getValidParentNodeOfEmptySpan(node) { - while (node.parent) { - if (isValidExpressionOrStatement(node) && !isValidExpressionOrStatement(node.parent)) { - return node; - } - node = node.parent; - } - return void 0; -} -function getExpression(node) { - if (isValidExpression(node)) { - return node; - } - if (isVariableStatement(node)) { - var variable = getSingleVariableOfVariableStatement(node); - var initializer = variable == null ? void 0 : variable.initializer; - return initializer && isValidExpression(initializer) ? initializer : void 0; - } - return node.expression && isValidExpression(node.expression) ? node.expression : void 0; -} -function getFinalExpressionInChain(node) { - node = skipParentheses(node); - if (isBinaryExpression(node)) { - return getFinalExpressionInChain(node.left); - } - else if ((isPropertyAccessExpression(node) || isElementAccessExpression(node) || isCallExpression(node)) && !isOptionalChain(node)) { - return node; - } - return void 0; -} -function convertOccurrences(checker, toConvert, occurrences) { - if (isPropertyAccessExpression(toConvert) || isElementAccessExpression(toConvert) || isCallExpression(toConvert)) { - var chain = convertOccurrences(checker, toConvert.expression, occurrences); - var lastOccurrence = occurrences.length > 0 ? occurrences[occurrences.length - 1] : void 0; - var isOccurrence = (lastOccurrence == null ? void 0 : lastOccurrence.getText()) === toConvert.expression.getText(); - if (isOccurrence) - occurrences.pop(); - if (isCallExpression(toConvert)) { - return isOccurrence ? factory.createCallChain(chain, factory.createToken(29 /* QuestionDotToken */), toConvert.typeArguments, toConvert.arguments) : factory.createCallChain(chain, toConvert.questionDotToken, toConvert.typeArguments, toConvert.arguments); - } - else if (isPropertyAccessExpression(toConvert)) { - return isOccurrence ? factory.createPropertyAccessChain(chain, factory.createToken(29 /* QuestionDotToken */), toConvert.name) : factory.createPropertyAccessChain(chain, toConvert.questionDotToken, toConvert.name); - } - else if (isElementAccessExpression(toConvert)) { - return isOccurrence ? factory.createElementAccessChain(chain, factory.createToken(29 /* QuestionDotToken */), toConvert.argumentExpression) : factory.createElementAccessChain(chain, toConvert.questionDotToken, toConvert.argumentExpression); - } - } - return toConvert; -} -function doChange6(sourceFile, checker, changes, info, _actionName) { - var finalExpression = info.finalExpression, occurrences = info.occurrences, expression = info.expression; - var firstOccurrence = occurrences[occurrences.length - 1]; - var convertedChain = convertOccurrences(checker, finalExpression, occurrences); - if (convertedChain && (isPropertyAccessExpression(convertedChain) || isElementAccessExpression(convertedChain) || isCallExpression(convertedChain))) { - if (isBinaryExpression(expression)) { - changes.replaceNodeRange(sourceFile, firstOccurrence, finalExpression, convertedChain); - } - else if (isConditionalExpression(expression)) { - changes.replaceNode(sourceFile, expression, factory.createBinaryExpression(convertedChain, factory.createToken(61 /* QuestionQuestionToken */), expression.whenFalse)); - } - } -} -// src/services/_namespaces/ts.refactor.extractSymbol.ts -var ts_refactor_extractSymbol_exports = {}; -__export(ts_refactor_extractSymbol_exports, { - Messages: function () { return Messages; }, - RangeFacts: function () { return RangeFacts; }, - getRangeToExtract: function () { return getRangeToExtract2; }, - getRefactorActionsToExtractSymbol: function () { return getRefactorActionsToExtractSymbol; }, - getRefactorEditsToExtractSymbol: function () { return getRefactorEditsToExtractSymbol; } -}); -// src/services/refactors/extractSymbol.ts -var refactorName12 = "Extract Symbol"; -var extractConstantAction = { - name: "Extract Constant", - description: getLocaleSpecificMessage(Diagnostics.Extract_constant), - kind: "refactor.extract.constant" -}; -var extractFunctionAction = { - name: "Extract Function", - description: getLocaleSpecificMessage(Diagnostics.Extract_function), - kind: "refactor.extract.function" -}; -registerRefactor(refactorName12, { - kinds: [ - extractConstantAction.kind, - extractFunctionAction.kind - ], - getEditsForAction: getRefactorEditsToExtractSymbol, - getAvailableActions: getRefactorActionsToExtractSymbol -}); -function getRefactorActionsToExtractSymbol(context) { - var e_709, _t; - var requestedRefactor = context.kind; - var rangeToExtract = getRangeToExtract2(context.file, getRefactorContextSpan(context), context.triggerReason === "invoked"); - var targetRange = rangeToExtract.targetRange; - if (targetRange === void 0) { - if (!rangeToExtract.errors || rangeToExtract.errors.length === 0 || !context.preferences.provideRefactorNotApplicableReason) { - return emptyArray; - } - var errors = []; - if (refactorKindBeginsWith(extractFunctionAction.kind, requestedRefactor)) { - errors.push({ - name: refactorName12, - description: extractFunctionAction.description, - actions: [__assign(__assign({}, extractFunctionAction), { notApplicableReason: getStringError(rangeToExtract.errors) })] - }); - } - if (refactorKindBeginsWith(extractConstantAction.kind, requestedRefactor)) { - errors.push({ - name: refactorName12, - description: extractConstantAction.description, - actions: [__assign(__assign({}, extractConstantAction), { notApplicableReason: getStringError(rangeToExtract.errors) })] - }); - } - return errors; - } - var extractions = getPossibleExtractions(targetRange, context); - if (extractions === void 0) { - return emptyArray; - } - var functionActions = []; - var usedFunctionNames = /* @__PURE__ */ new Map(); - var innermostErrorFunctionAction; - var constantActions = []; - var usedConstantNames = /* @__PURE__ */ new Map(); - var innermostErrorConstantAction; - var i = 0; - try { - for (var extractions_1 = __values(extractions), extractions_1_1 = extractions_1.next(); !extractions_1_1.done; extractions_1_1 = extractions_1.next()) { - var _u = extractions_1_1.value, functionExtraction = _u.functionExtraction, constantExtraction = _u.constantExtraction; - if (refactorKindBeginsWith(extractFunctionAction.kind, requestedRefactor)) { - var description3 = functionExtraction.description; - if (functionExtraction.errors.length === 0) { - if (!usedFunctionNames.has(description3)) { - usedFunctionNames.set(description3, true); - functionActions.push({ - description: description3, - name: "function_scope_".concat(i), - kind: extractFunctionAction.kind - }); - } - } - else if (!innermostErrorFunctionAction) { - innermostErrorFunctionAction = { - description: description3, - name: "function_scope_".concat(i), - notApplicableReason: getStringError(functionExtraction.errors), - kind: extractFunctionAction.kind - }; - } - } - if (refactorKindBeginsWith(extractConstantAction.kind, requestedRefactor)) { - var description3 = constantExtraction.description; - if (constantExtraction.errors.length === 0) { - if (!usedConstantNames.has(description3)) { - usedConstantNames.set(description3, true); - constantActions.push({ - description: description3, - name: "constant_scope_".concat(i), - kind: extractConstantAction.kind - }); - } - } - else if (!innermostErrorConstantAction) { - innermostErrorConstantAction = { - description: description3, - name: "constant_scope_".concat(i), - notApplicableReason: getStringError(constantExtraction.errors), - kind: extractConstantAction.kind - }; - } - } - i++; - } - } - catch (e_709_1) { e_709 = { error: e_709_1 }; } - finally { - try { - if (extractions_1_1 && !extractions_1_1.done && (_t = extractions_1.return)) _t.call(extractions_1); - } - finally { if (e_709) throw e_709.error; } - } - var infos = []; - if (functionActions.length) { - infos.push({ - name: refactorName12, - description: getLocaleSpecificMessage(Diagnostics.Extract_function), - actions: functionActions - }); - } - else if (context.preferences.provideRefactorNotApplicableReason && innermostErrorFunctionAction) { - infos.push({ - name: refactorName12, - description: getLocaleSpecificMessage(Diagnostics.Extract_function), - actions: [innermostErrorFunctionAction] - }); - } - if (constantActions.length) { - infos.push({ - name: refactorName12, - description: getLocaleSpecificMessage(Diagnostics.Extract_constant), - actions: constantActions - }); - } - else if (context.preferences.provideRefactorNotApplicableReason && innermostErrorConstantAction) { - infos.push({ - name: refactorName12, - description: getLocaleSpecificMessage(Diagnostics.Extract_constant), - actions: [innermostErrorConstantAction] - }); - } - return infos.length ? infos : emptyArray; - function getStringError(errors) { - var error2 = errors[0].messageText; - if (typeof error2 !== "string") { - error2 = error2.messageText; - } - return error2; - } -} -function getRefactorEditsToExtractSymbol(context, actionName2) { - var rangeToExtract = getRangeToExtract2(context.file, getRefactorContextSpan(context)); - var targetRange = rangeToExtract.targetRange; - var parsedFunctionIndexMatch = /^function_scope_(\d+)$/.exec(actionName2); - if (parsedFunctionIndexMatch) { - var index = +parsedFunctionIndexMatch[1]; - Debug.assert(isFinite(index), "Expected to parse a finite number from the function scope index"); - return getFunctionExtractionAtIndex(targetRange, context, index); - } - var parsedConstantIndexMatch = /^constant_scope_(\d+)$/.exec(actionName2); - if (parsedConstantIndexMatch) { - var index = +parsedConstantIndexMatch[1]; - Debug.assert(isFinite(index), "Expected to parse a finite number from the constant scope index"); - return getConstantExtractionAtIndex(targetRange, context, index); - } - Debug.fail("Unrecognized action name"); -} -var Messages; -(function (Messages2) { - function createMessage(message) { - return { message: message, code: 0, category: 3 /* Message */, key: message }; - } - Messages2.cannotExtractRange = createMessage("Cannot extract range."); - Messages2.cannotExtractImport = createMessage("Cannot extract import statement."); - Messages2.cannotExtractSuper = createMessage("Cannot extract super call."); - Messages2.cannotExtractJSDoc = createMessage("Cannot extract JSDoc."); - Messages2.cannotExtractEmpty = createMessage("Cannot extract empty range."); - Messages2.expressionExpected = createMessage("expression expected."); - Messages2.uselessConstantType = createMessage("No reason to extract constant of type."); - Messages2.statementOrExpressionExpected = createMessage("Statement or expression expected."); - Messages2.cannotExtractRangeContainingConditionalBreakOrContinueStatements = createMessage("Cannot extract range containing conditional break or continue statements."); - Messages2.cannotExtractRangeContainingConditionalReturnStatement = createMessage("Cannot extract range containing conditional return statement."); - Messages2.cannotExtractRangeContainingLabeledBreakOrContinueStatementWithTargetOutsideOfTheRange = createMessage("Cannot extract range containing labeled break or continue with target outside of the range."); - Messages2.cannotExtractRangeThatContainsWritesToReferencesLocatedOutsideOfTheTargetRangeInGenerators = createMessage("Cannot extract range containing writes to references located outside of the target range in generators."); - Messages2.typeWillNotBeVisibleInTheNewScope = createMessage("Type will not visible in the new scope."); - Messages2.functionWillNotBeVisibleInTheNewScope = createMessage("Function will not visible in the new scope."); - Messages2.cannotExtractIdentifier = createMessage("Select more than a single identifier."); - Messages2.cannotExtractExportedEntity = createMessage("Cannot extract exported declaration"); - Messages2.cannotWriteInExpression = createMessage("Cannot write back side-effects when extracting an expression"); - Messages2.cannotExtractReadonlyPropertyInitializerOutsideConstructor = createMessage("Cannot move initialization of read-only class property outside of the constructor"); - Messages2.cannotExtractAmbientBlock = createMessage("Cannot extract code from ambient contexts"); - Messages2.cannotAccessVariablesFromNestedScopes = createMessage("Cannot access variables from nested scopes"); - Messages2.cannotExtractToJSClass = createMessage("Cannot extract constant to a class scope in JS"); - Messages2.cannotExtractToExpressionArrowFunction = createMessage("Cannot extract constant to an arrow function without a block"); - Messages2.cannotExtractFunctionsContainingThisToMethod = createMessage("Cannot extract functions containing this to method"); -})(Messages || (Messages = {})); -var RangeFacts = /* @__PURE__ */ (function (RangeFacts2) { - RangeFacts2[RangeFacts2["None"] = 0] = "None"; - RangeFacts2[RangeFacts2["HasReturn"] = 1] = "HasReturn"; - RangeFacts2[RangeFacts2["IsGenerator"] = 2] = "IsGenerator"; - RangeFacts2[RangeFacts2["IsAsyncFunction"] = 4] = "IsAsyncFunction"; - RangeFacts2[RangeFacts2["UsesThis"] = 8] = "UsesThis"; - RangeFacts2[RangeFacts2["UsesThisInFunction"] = 16] = "UsesThisInFunction"; - RangeFacts2[RangeFacts2["InStaticRegion"] = 32] = "InStaticRegion"; - return RangeFacts2; -})(RangeFacts || {}); -function getRangeToExtract2(sourceFile, span, invoked) { - var e_710, _t; - if (invoked === void 0) { invoked = true; } - var length2 = span.length; - if (length2 === 0 && !invoked) { - return { errors: [createFileDiagnostic(sourceFile, span.start, length2, Messages.cannotExtractEmpty)] }; - } - var cursorRequest = length2 === 0 && invoked; - var startToken = findFirstNonJsxWhitespaceToken(sourceFile, span.start); - var endToken = findTokenOnLeftOfPosition(sourceFile, textSpanEnd(span)); - var adjustedSpan = startToken && endToken && invoked ? getAdjustedSpanFromNodes(startToken, endToken, sourceFile) : span; - var start2 = cursorRequest ? getExtractableParent(startToken) : getParentNodeInSpan(startToken, sourceFile, adjustedSpan); - var end = cursorRequest ? start2 : getParentNodeInSpan(endToken, sourceFile, adjustedSpan); - var rangeFacts = 0 /* None */; - var thisNode; - if (!start2 || !end) { - return { errors: [createFileDiagnostic(sourceFile, span.start, length2, Messages.cannotExtractRange)] }; - } - if (start2.flags & 16777216 /* JSDoc */) { - return { errors: [createFileDiagnostic(sourceFile, span.start, length2, Messages.cannotExtractJSDoc)] }; - } - if (start2.parent !== end.parent) { - return { errors: [createFileDiagnostic(sourceFile, span.start, length2, Messages.cannotExtractRange)] }; - } - if (start2 !== end) { - if (!isBlockLike(start2.parent)) { - return { errors: [createFileDiagnostic(sourceFile, span.start, length2, Messages.cannotExtractRange)] }; - } - var statements = []; - try { - for (var _u = __values(start2.parent.statements), _v = _u.next(); !_v.done; _v = _u.next()) { - var statement = _v.value; - if (statement === start2 || statements.length) { - var errors2 = checkNode(statement); - if (errors2) { - return { errors: errors2 }; - } - statements.push(statement); - } - if (statement === end) { - break; - } - } - } - catch (e_710_1) { e_710 = { error: e_710_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_710) throw e_710.error; } - } - if (!statements.length) { - return { errors: [createFileDiagnostic(sourceFile, span.start, length2, Messages.cannotExtractRange)] }; - } - return { targetRange: { range: statements, facts: rangeFacts, thisNode: thisNode } }; - } - if (isReturnStatement(start2) && !start2.expression) { - return { errors: [createFileDiagnostic(sourceFile, span.start, length2, Messages.cannotExtractRange)] }; - } - var node = refineNode(start2); - var errors = checkRootNode(node) || checkNode(node); - if (errors) { - return { errors: errors }; - } - return { targetRange: { range: getStatementOrExpressionRange(node), facts: rangeFacts, thisNode: thisNode } }; - function refineNode(node2) { - var e_711, _t; - if (isReturnStatement(node2)) { - if (node2.expression) { - return node2.expression; - } - } - else if (isVariableStatement(node2) || isVariableDeclarationList(node2)) { - var declarations = isVariableStatement(node2) ? node2.declarationList.declarations : node2.declarations; - var numInitializers = 0; - var lastInitializer = void 0; - try { - for (var declarations_15 = __values(declarations), declarations_15_1 = declarations_15.next(); !declarations_15_1.done; declarations_15_1 = declarations_15.next()) { - var declaration = declarations_15_1.value; - if (declaration.initializer) { - numInitializers++; - lastInitializer = declaration.initializer; - } - } - } - catch (e_711_1) { e_711 = { error: e_711_1 }; } - finally { - try { - if (declarations_15_1 && !declarations_15_1.done && (_t = declarations_15.return)) _t.call(declarations_15); - } - finally { if (e_711) throw e_711.error; } - } - if (numInitializers === 1) { - return lastInitializer; - } - } - else if (isVariableDeclaration(node2)) { - if (node2.initializer) { - return node2.initializer; - } - } - return node2; - } - function checkRootNode(node2) { - if (isIdentifier(isExpressionStatement(node2) ? node2.expression : node2)) { - return [createDiagnosticForNode(node2, Messages.cannotExtractIdentifier)]; - } - return void 0; - } - function checkForStaticContext(nodeToCheck, containingClass) { - var current = nodeToCheck; - while (current !== containingClass) { - if (current.kind === 172 /* PropertyDeclaration */) { - if (isStatic(current)) { - rangeFacts |= 32 /* InStaticRegion */; - } - break; - } - else if (current.kind === 169 /* Parameter */) { - var ctorOrMethod = getContainingFunction(current); - if (ctorOrMethod.kind === 176 /* Constructor */) { - rangeFacts |= 32 /* InStaticRegion */; - } - break; - } - else if (current.kind === 174 /* MethodDeclaration */) { - if (isStatic(current)) { - rangeFacts |= 32 /* InStaticRegion */; - } - } - current = current.parent; - } - } - function checkNode(nodeToCheck) { - var PermittedJumps; - (function (PermittedJumps2) { - PermittedJumps2[PermittedJumps2["None"] = 0] = "None"; - PermittedJumps2[PermittedJumps2["Break"] = 1] = "Break"; - PermittedJumps2[PermittedJumps2["Continue"] = 2] = "Continue"; - PermittedJumps2[PermittedJumps2["Return"] = 4] = "Return"; - })(PermittedJumps || (PermittedJumps = {})); - Debug.assert(nodeToCheck.pos <= nodeToCheck.end, "This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809 (1)"); - Debug.assert(!positionIsSynthesized(nodeToCheck.pos), "This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809 (2)"); - if (!isStatement(nodeToCheck) && !(isExpressionNode(nodeToCheck) && isExtractableExpression(nodeToCheck)) && !isStringLiteralJsxAttribute(nodeToCheck)) { - return [createDiagnosticForNode(nodeToCheck, Messages.statementOrExpressionExpected)]; - } - if (nodeToCheck.flags & 33554432 /* Ambient */) { - return [createDiagnosticForNode(nodeToCheck, Messages.cannotExtractAmbientBlock)]; - } - var containingClass = getContainingClass(nodeToCheck); - if (containingClass) { - checkForStaticContext(nodeToCheck, containingClass); - } - var errors2; - var permittedJumps = 4 /* Return */; - var seenLabels; - visit(nodeToCheck); - if (rangeFacts & 8 /* UsesThis */) { - var container = getThisContainer(nodeToCheck, - /*includeArrowFunctions*/ - false, - /*includeClassComputedPropertyName*/ - false); - if (container.kind === 262 /* FunctionDeclaration */ || container.kind === 174 /* MethodDeclaration */ && container.parent.kind === 210 /* ObjectLiteralExpression */ || container.kind === 218 /* FunctionExpression */) { - rangeFacts |= 16 /* UsesThisInFunction */; - } - } - return errors2; - function visit(node2) { - if (errors2) { - return true; - } - if (isDeclaration(node2)) { - var declaringNode = node2.kind === 260 /* VariableDeclaration */ ? node2.parent.parent : node2; - if (hasSyntacticModifier(declaringNode, 1 /* Export */)) { - (errors2 || (errors2 = [])).push(createDiagnosticForNode(node2, Messages.cannotExtractExportedEntity)); - return true; - } - } - switch (node2.kind) { - case 272 /* ImportDeclaration */: - (errors2 || (errors2 = [])).push(createDiagnosticForNode(node2, Messages.cannotExtractImport)); - return true; - case 277 /* ExportAssignment */: - (errors2 || (errors2 = [])).push(createDiagnosticForNode(node2, Messages.cannotExtractExportedEntity)); - return true; - case 108 /* SuperKeyword */: - if (node2.parent.kind === 213 /* CallExpression */) { - var containingClass2 = getContainingClass(node2); - if (containingClass2 === void 0 || containingClass2.pos < span.start || containingClass2.end >= span.start + span.length) { - (errors2 || (errors2 = [])).push(createDiagnosticForNode(node2, Messages.cannotExtractSuper)); - return true; - } - } - else { - rangeFacts |= 8 /* UsesThis */; - thisNode = node2; - } - break; - case 219 /* ArrowFunction */: - forEachChild(node2, function check(n) { - if (isThis(n)) { - rangeFacts |= 8 /* UsesThis */; - thisNode = node2; - } - else if (isClassLike(n) || isFunctionLike(n) && !isArrowFunction(n)) { - return false; - } - else { - forEachChild(n, check); - } - }); - case 263 /* ClassDeclaration */: - case 262 /* FunctionDeclaration */: - if (isSourceFile(node2.parent) && node2.parent.externalModuleIndicator === void 0) { - (errors2 || (errors2 = [])).push(createDiagnosticForNode(node2, Messages.functionWillNotBeVisibleInTheNewScope)); - } - case 231 /* ClassExpression */: - case 218 /* FunctionExpression */: - case 174 /* MethodDeclaration */: - case 176 /* Constructor */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - return false; - } - var savedPermittedJumps = permittedJumps; - switch (node2.kind) { - case 245 /* IfStatement */: - permittedJumps &= ~4 /* Return */; - break; - case 258 /* TryStatement */: - permittedJumps = 0 /* None */; - break; - case 241 /* Block */: - if (node2.parent && node2.parent.kind === 258 /* TryStatement */ && node2.parent.finallyBlock === node2) { - permittedJumps = 4 /* Return */; - } - break; - case 297 /* DefaultClause */: - case 296 /* CaseClause */: - permittedJumps |= 1 /* Break */; - break; - default: - if (isIterationStatement(node2, - /*lookInLabeledStatements*/ - false)) { - permittedJumps |= 1 /* Break */ | 2 /* Continue */; - } - break; - } - switch (node2.kind) { - case 197 /* ThisType */: - case 110 /* ThisKeyword */: - rangeFacts |= 8 /* UsesThis */; - thisNode = node2; - break; - case 256 /* LabeledStatement */: { - var label = node2.label; - (seenLabels || (seenLabels = [])).push(label.escapedText); - forEachChild(node2, visit); - seenLabels.pop(); - break; - } - case 252 /* BreakStatement */: - case 251 /* ContinueStatement */: { - var label = node2.label; - if (label) { - if (!contains(seenLabels, label.escapedText)) { - (errors2 || (errors2 = [])).push(createDiagnosticForNode(node2, Messages.cannotExtractRangeContainingLabeledBreakOrContinueStatementWithTargetOutsideOfTheRange)); - } - } - else { - if (!(permittedJumps & (node2.kind === 252 /* BreakStatement */ ? 1 /* Break */ : 2 /* Continue */))) { - (errors2 || (errors2 = [])).push(createDiagnosticForNode(node2, Messages.cannotExtractRangeContainingConditionalBreakOrContinueStatements)); - } - } - break; - } - case 223 /* AwaitExpression */: - rangeFacts |= 4 /* IsAsyncFunction */; - break; - case 229 /* YieldExpression */: - rangeFacts |= 2 /* IsGenerator */; - break; - case 253 /* ReturnStatement */: - if (permittedJumps & 4 /* Return */) { - rangeFacts |= 1 /* HasReturn */; - } - else { - (errors2 || (errors2 = [])).push(createDiagnosticForNode(node2, Messages.cannotExtractRangeContainingConditionalReturnStatement)); - } - break; - default: - forEachChild(node2, visit); - break; - } - permittedJumps = savedPermittedJumps; - } - } -} -function getAdjustedSpanFromNodes(startNode2, endNode2, sourceFile) { - var start2 = startNode2.getStart(sourceFile); - var end = endNode2.getEnd(); - if (sourceFile.text.charCodeAt(end) === 59 /* semicolon */) { - end++; - } - return { start: start2, length: end - start2 }; -} -function getStatementOrExpressionRange(node) { - if (isStatement(node)) { - return [node]; - } - if (isExpressionNode(node)) { - return isExpressionStatement(node.parent) ? [node.parent] : node; - } - if (isStringLiteralJsxAttribute(node)) { - return node; - } - return void 0; -} -function isScope(node) { - return isArrowFunction(node) ? isFunctionBody(node.body) : isFunctionLikeDeclaration(node) || isSourceFile(node) || isModuleBlock(node) || isClassLike(node); -} -function collectEnclosingScopes(range) { - var current = isReadonlyArray(range.range) ? first(range.range) : range.range; - if (range.facts & 8 /* UsesThis */ && !(range.facts & 16 /* UsesThisInFunction */)) { - var containingClass = getContainingClass(current); - if (containingClass) { - var containingFunction = findAncestor(current, isFunctionLikeDeclaration); - return containingFunction ? [containingFunction, containingClass] : [containingClass]; - } - } - var scopes = []; - while (true) { - current = current.parent; - if (current.kind === 169 /* Parameter */) { - current = findAncestor(current, function (parent2) { return isFunctionLikeDeclaration(parent2); }).parent; - } - if (isScope(current)) { - scopes.push(current); - if (current.kind === 312 /* SourceFile */) { - return scopes; - } - } - } -} -function getFunctionExtractionAtIndex(targetRange, context, requestedChangesIndex) { - var _t = getPossibleExtractionsWorker(targetRange, context), scopes = _t.scopes, _u = _t.readsAndWrites, target = _u.target, usagesPerScope = _u.usagesPerScope, functionErrorsPerScope = _u.functionErrorsPerScope, exposedVariableDeclarations = _u.exposedVariableDeclarations; - Debug.assert(!functionErrorsPerScope[requestedChangesIndex].length, "The extraction went missing? How?"); - context.cancellationToken.throwIfCancellationRequested(); - return extractFunctionInScope(target, scopes[requestedChangesIndex], usagesPerScope[requestedChangesIndex], exposedVariableDeclarations, targetRange, context); -} -function getConstantExtractionAtIndex(targetRange, context, requestedChangesIndex) { - var _t = getPossibleExtractionsWorker(targetRange, context), scopes = _t.scopes, _u = _t.readsAndWrites, target = _u.target, usagesPerScope = _u.usagesPerScope, constantErrorsPerScope = _u.constantErrorsPerScope, exposedVariableDeclarations = _u.exposedVariableDeclarations; - Debug.assert(!constantErrorsPerScope[requestedChangesIndex].length, "The extraction went missing? How?"); - Debug.assert(exposedVariableDeclarations.length === 0, "Extract constant accepted a range containing a variable declaration?"); - context.cancellationToken.throwIfCancellationRequested(); - var expression = isExpression(target) ? target : target.statements[0].expression; - return extractConstantInScope(expression, scopes[requestedChangesIndex], usagesPerScope[requestedChangesIndex], targetRange.facts, context); -} -function getPossibleExtractions(targetRange, context) { - var _t = getPossibleExtractionsWorker(targetRange, context), scopes = _t.scopes, _u = _t.readsAndWrites, functionErrorsPerScope = _u.functionErrorsPerScope, constantErrorsPerScope = _u.constantErrorsPerScope; - var extractions = scopes.map(function (scope, i) { - var functionDescriptionPart = getDescriptionForFunctionInScope(scope); - var constantDescriptionPart = getDescriptionForConstantInScope(scope); - var scopeDescription = isFunctionLikeDeclaration(scope) ? getDescriptionForFunctionLikeDeclaration(scope) : isClassLike(scope) ? getDescriptionForClassLikeDeclaration(scope) : getDescriptionForModuleLikeDeclaration(scope); - var functionDescription; - var constantDescription; - if (scopeDescription === 1 /* Global */) { - functionDescription = formatStringFromArgs(getLocaleSpecificMessage(Diagnostics.Extract_to_0_in_1_scope), [functionDescriptionPart, "global"]); - constantDescription = formatStringFromArgs(getLocaleSpecificMessage(Diagnostics.Extract_to_0_in_1_scope), [constantDescriptionPart, "global"]); - } - else if (scopeDescription === 0 /* Module */) { - functionDescription = formatStringFromArgs(getLocaleSpecificMessage(Diagnostics.Extract_to_0_in_1_scope), [functionDescriptionPart, "module"]); - constantDescription = formatStringFromArgs(getLocaleSpecificMessage(Diagnostics.Extract_to_0_in_1_scope), [constantDescriptionPart, "module"]); - } - else { - functionDescription = formatStringFromArgs(getLocaleSpecificMessage(Diagnostics.Extract_to_0_in_1), [functionDescriptionPart, scopeDescription]); - constantDescription = formatStringFromArgs(getLocaleSpecificMessage(Diagnostics.Extract_to_0_in_1), [constantDescriptionPart, scopeDescription]); - } - if (i === 0 && !isClassLike(scope)) { - constantDescription = formatStringFromArgs(getLocaleSpecificMessage(Diagnostics.Extract_to_0_in_enclosing_scope), [constantDescriptionPart]); - } - return { - functionExtraction: { - description: functionDescription, - errors: functionErrorsPerScope[i] - }, - constantExtraction: { - description: constantDescription, - errors: constantErrorsPerScope[i] - } - }; - }); - return extractions; -} -function getPossibleExtractionsWorker(targetRange, context) { - var sourceFile = context.file; - var scopes = collectEnclosingScopes(targetRange); - var enclosingTextRange = getEnclosingTextRange(targetRange, sourceFile); - var readsAndWrites = collectReadsAndWrites(targetRange, scopes, enclosingTextRange, sourceFile, context.program.getTypeChecker(), context.cancellationToken); - return { scopes: scopes, readsAndWrites: readsAndWrites }; -} -function getDescriptionForFunctionInScope(scope) { - return isFunctionLikeDeclaration(scope) ? "inner function" : isClassLike(scope) ? "method" : "function"; -} -function getDescriptionForConstantInScope(scope) { - return isClassLike(scope) ? "readonly field" : "constant"; -} -function getDescriptionForFunctionLikeDeclaration(scope) { - switch (scope.kind) { - case 176 /* Constructor */: - return "constructor"; - case 218 /* FunctionExpression */: - case 262 /* FunctionDeclaration */: - return scope.name ? "function '".concat(scope.name.text, "'") : ANONYMOUS; - case 219 /* ArrowFunction */: - return "arrow function"; - case 174 /* MethodDeclaration */: - return "method '".concat(scope.name.getText(), "'"); - case 177 /* GetAccessor */: - return "'get ".concat(scope.name.getText(), "'"); - case 178 /* SetAccessor */: - return "'set ".concat(scope.name.getText(), "'"); - default: - Debug.assertNever(scope, "Unexpected scope kind ".concat(scope.kind)); - } -} -function getDescriptionForClassLikeDeclaration(scope) { - return scope.kind === 263 /* ClassDeclaration */ ? scope.name ? "class '".concat(scope.name.text, "'") : "anonymous class declaration" : scope.name ? "class expression '".concat(scope.name.text, "'") : "anonymous class expression"; -} -function getDescriptionForModuleLikeDeclaration(scope) { - return scope.kind === 268 /* ModuleBlock */ ? "namespace '".concat(scope.parent.name.getText(), "'") : scope.externalModuleIndicator ? 0 /* Module */ : 1 /* Global */; -} -function extractFunctionInScope(node, scope, _t, exposedVariableDeclarations, range, context) { - var e_712, _u, e_713, _v; - var usagesInScope = _t.usages, typeParameterUsages = _t.typeParameterUsages, substitutions = _t.substitutions; - var checker = context.program.getTypeChecker(); - var scriptTarget = getEmitScriptTarget(context.program.getCompilerOptions()); - var importAdder = ts_codefix_exports.createImportAdder(context.file, context.program, context.preferences, context.host); - var file = scope.getSourceFile(); - var functionNameText = getUniqueName(isClassLike(scope) ? "newMethod" : "newFunction", file); - var isJS = isInJSFile(scope); - var functionName = factory.createIdentifier(functionNameText); - var returnType; - var parameters = []; - var callArguments = []; - var writes; - usagesInScope.forEach(function (usage, name) { - var typeNode; - if (!isJS) { - var type = checker.getTypeOfSymbolAtLocation(usage.symbol, usage.node); - type = checker.getBaseTypeOfLiteralType(type); - typeNode = ts_codefix_exports.typeToAutoImportableTypeNode(checker, importAdder, type, scope, scriptTarget, 1 /* NoTruncation */); - } - var paramDecl = factory.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, - /*name*/ - name, - /*questionToken*/ - void 0, typeNode); - parameters.push(paramDecl); - if (usage.usage === 2 /* Write */) { - (writes || (writes = [])).push(usage); - } - callArguments.push(factory.createIdentifier(name)); - }); - var typeParametersAndDeclarations = arrayFrom(typeParameterUsages.values(), function (type) { return ({ type: type, declaration: getFirstDeclarationBeforePosition(type, context.startPosition) }); }); - var sortedTypeParametersAndDeclarations = typeParametersAndDeclarations.sort(compareTypesByDeclarationOrder); - var typeParameters = sortedTypeParametersAndDeclarations.length === 0 ? void 0 : mapDefined(sortedTypeParametersAndDeclarations, function (_t) { - var declaration = _t.declaration; - return declaration; - }); - var callTypeArguments = typeParameters !== void 0 ? typeParameters.map(function (decl) { return factory.createTypeReferenceNode(decl.name, - /*typeArguments*/ - void 0); }) : void 0; - if (isExpression(node) && !isJS) { - var contextualType = checker.getContextualType(node); - returnType = checker.typeToTypeNode(contextualType, scope, 1 /* NoTruncation */); - } - var _w = transformFunctionBody(node, exposedVariableDeclarations, writes, substitutions, !!(range.facts & 1 /* HasReturn */)), body = _w.body, returnValueProperty = _w.returnValueProperty; - suppressLeadingAndTrailingTrivia(body); - var newFunction; - var callThis = !!(range.facts & 16 /* UsesThisInFunction */); - if (isClassLike(scope)) { - var modifiers = isJS ? [] : [factory.createModifier(123 /* PrivateKeyword */)]; - if (range.facts & 32 /* InStaticRegion */) { - modifiers.push(factory.createModifier(126 /* StaticKeyword */)); - } - if (range.facts & 4 /* IsAsyncFunction */) { - modifiers.push(factory.createModifier(134 /* AsyncKeyword */)); - } - newFunction = factory.createMethodDeclaration(modifiers.length ? modifiers : void 0, range.facts & 2 /* IsGenerator */ ? factory.createToken(42 /* AsteriskToken */) : void 0, functionName, - /*questionToken*/ - void 0, typeParameters, parameters, returnType, body); - } - else { - if (callThis) { - parameters.unshift(factory.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, - /*name*/ - "this", - /*questionToken*/ - void 0, checker.typeToTypeNode(checker.getTypeAtLocation(range.thisNode), scope, 1 /* NoTruncation */), - /*initializer*/ - void 0)); - } - newFunction = factory.createFunctionDeclaration(range.facts & 4 /* IsAsyncFunction */ ? [factory.createToken(134 /* AsyncKeyword */)] : void 0, range.facts & 2 /* IsGenerator */ ? factory.createToken(42 /* AsteriskToken */) : void 0, functionName, typeParameters, parameters, returnType, body); - } - var changeTracker = ts_textChanges_exports.ChangeTracker.fromContext(context); - var minInsertionPos = (isReadonlyArray(range.range) ? last(range.range) : range.range).end; - var nodeToInsertBefore = getNodeToInsertFunctionBefore(minInsertionPos, scope); - if (nodeToInsertBefore) { - changeTracker.insertNodeBefore(context.file, nodeToInsertBefore, newFunction, - /*blankLineBetween*/ - true); - } - else { - changeTracker.insertNodeAtEndOfScope(context.file, scope, newFunction); - } - importAdder.writeFixes(changeTracker); - var newNodes = []; - var called = getCalledExpression(scope, range, functionNameText); - if (callThis) { - callArguments.unshift(factory.createIdentifier("this")); - } - var call = factory.createCallExpression(callThis ? factory.createPropertyAccessExpression(called, "call") : called, callTypeArguments, - // Note that no attempt is made to take advantage of type argument inference - callArguments); - if (range.facts & 2 /* IsGenerator */) { - call = factory.createYieldExpression(factory.createToken(42 /* AsteriskToken */), call); - } - if (range.facts & 4 /* IsAsyncFunction */) { - call = factory.createAwaitExpression(call); - } - if (isInJSXContent(node)) { - call = factory.createJsxExpression( - /*dotDotDotToken*/ - void 0, call); - } - if (exposedVariableDeclarations.length && !writes) { - Debug.assert(!returnValueProperty, "Expected no returnValueProperty"); - Debug.assert(!(range.facts & 1 /* HasReturn */), "Expected RangeFacts.HasReturn flag to be unset"); - if (exposedVariableDeclarations.length === 1) { - var variableDeclaration = exposedVariableDeclarations[0]; - newNodes.push(factory.createVariableStatement( - /*modifiers*/ - void 0, factory.createVariableDeclarationList([factory.createVariableDeclaration(getSynthesizedDeepClone(variableDeclaration.name), - /*exclamationToken*/ - void 0, - /*type*/ - getSynthesizedDeepClone(variableDeclaration.type), - /*initializer*/ - call)], variableDeclaration.parent.flags))); - } - else { - var bindingElements = []; - var typeElements = []; - var commonNodeFlags = exposedVariableDeclarations[0].parent.flags; - var sawExplicitType = false; - try { - for (var exposedVariableDeclarations_1 = __values(exposedVariableDeclarations), exposedVariableDeclarations_1_1 = exposedVariableDeclarations_1.next(); !exposedVariableDeclarations_1_1.done; exposedVariableDeclarations_1_1 = exposedVariableDeclarations_1.next()) { - var variableDeclaration = exposedVariableDeclarations_1_1.value; - bindingElements.push(factory.createBindingElement( - /*dotDotDotToken*/ - void 0, - /*propertyName*/ - void 0, - /*name*/ - getSynthesizedDeepClone(variableDeclaration.name))); - var variableType = checker.typeToTypeNode(checker.getBaseTypeOfLiteralType(checker.getTypeAtLocation(variableDeclaration)), scope, 1 /* NoTruncation */); - typeElements.push(factory.createPropertySignature( - /*modifiers*/ - void 0, - /*name*/ - variableDeclaration.symbol.name, - /*questionToken*/ - void 0, - /*type*/ - variableType)); - sawExplicitType = sawExplicitType || variableDeclaration.type !== void 0; - commonNodeFlags = commonNodeFlags & variableDeclaration.parent.flags; - } - } - catch (e_712_1) { e_712 = { error: e_712_1 }; } - finally { - try { - if (exposedVariableDeclarations_1_1 && !exposedVariableDeclarations_1_1.done && (_u = exposedVariableDeclarations_1.return)) _u.call(exposedVariableDeclarations_1); - } - finally { if (e_712) throw e_712.error; } - } - var typeLiteral = sawExplicitType ? factory.createTypeLiteralNode(typeElements) : void 0; - if (typeLiteral) { - setEmitFlags(typeLiteral, 1 /* SingleLine */); - } - newNodes.push(factory.createVariableStatement( - /*modifiers*/ - void 0, factory.createVariableDeclarationList([factory.createVariableDeclaration(factory.createObjectBindingPattern(bindingElements), - /*exclamationToken*/ - void 0, - /*type*/ - typeLiteral, - /*initializer*/ - call)], commonNodeFlags))); - } - } - else if (exposedVariableDeclarations.length || writes) { - if (exposedVariableDeclarations.length) { - try { - for (var exposedVariableDeclarations_2 = __values(exposedVariableDeclarations), exposedVariableDeclarations_2_1 = exposedVariableDeclarations_2.next(); !exposedVariableDeclarations_2_1.done; exposedVariableDeclarations_2_1 = exposedVariableDeclarations_2.next()) { - var variableDeclaration = exposedVariableDeclarations_2_1.value; - var flags = variableDeclaration.parent.flags; - if (flags & 2 /* Const */) { - flags = flags & ~2 /* Const */ | 1 /* Let */; - } - newNodes.push(factory.createVariableStatement( - /*modifiers*/ - void 0, factory.createVariableDeclarationList([factory.createVariableDeclaration(variableDeclaration.symbol.name, - /*exclamationToken*/ - void 0, getTypeDeepCloneUnionUndefined(variableDeclaration.type))], flags))); - } - } - catch (e_713_1) { e_713 = { error: e_713_1 }; } - finally { - try { - if (exposedVariableDeclarations_2_1 && !exposedVariableDeclarations_2_1.done && (_v = exposedVariableDeclarations_2.return)) _v.call(exposedVariableDeclarations_2); - } - finally { if (e_713) throw e_713.error; } - } - } - if (returnValueProperty) { - newNodes.push(factory.createVariableStatement( - /*modifiers*/ - void 0, factory.createVariableDeclarationList([factory.createVariableDeclaration(returnValueProperty, - /*exclamationToken*/ - void 0, getTypeDeepCloneUnionUndefined(returnType))], 1 /* Let */))); - } - var assignments = getPropertyAssignmentsForWritesAndVariableDeclarations(exposedVariableDeclarations, writes); - if (returnValueProperty) { - assignments.unshift(factory.createShorthandPropertyAssignment(returnValueProperty)); - } - if (assignments.length === 1) { - Debug.assert(!returnValueProperty, "Shouldn't have returnValueProperty here"); - newNodes.push(factory.createExpressionStatement(factory.createAssignment(assignments[0].name, call))); - if (range.facts & 1 /* HasReturn */) { - newNodes.push(factory.createReturnStatement()); - } - } - else { - newNodes.push(factory.createExpressionStatement(factory.createAssignment(factory.createObjectLiteralExpression(assignments), call))); - if (returnValueProperty) { - newNodes.push(factory.createReturnStatement(factory.createIdentifier(returnValueProperty))); - } - } - } - else { - if (range.facts & 1 /* HasReturn */) { - newNodes.push(factory.createReturnStatement(call)); - } - else if (isReadonlyArray(range.range)) { - newNodes.push(factory.createExpressionStatement(call)); - } - else { - newNodes.push(call); - } - } - if (isReadonlyArray(range.range)) { - changeTracker.replaceNodeRangeWithNodes(context.file, first(range.range), last(range.range), newNodes); - } - else { - changeTracker.replaceNodeWithNodes(context.file, range.range, newNodes); - } - var edits = changeTracker.getChanges(); - var renameRange = isReadonlyArray(range.range) ? first(range.range) : range.range; - var renameFilename = renameRange.getSourceFile().fileName; - var renameLocation = getRenameLocation(edits, renameFilename, functionNameText, - /*preferLastLocation*/ - false); - return { renameFilename: renameFilename, renameLocation: renameLocation, edits: edits }; - function getTypeDeepCloneUnionUndefined(typeNode) { - if (typeNode === void 0) { - return void 0; - } - var clone2 = getSynthesizedDeepClone(typeNode); - var withoutParens = clone2; - while (isParenthesizedTypeNode(withoutParens)) { - withoutParens = withoutParens.type; - } - return isUnionTypeNode(withoutParens) && find(withoutParens.types, function (t) { return t.kind === 157; } /* UndefinedKeyword */) ? clone2 : factory.createUnionTypeNode([clone2, factory.createKeywordTypeNode(157 /* UndefinedKeyword */)]); - } -} -function extractConstantInScope(node, scope, _t, rangeFacts, context) { - var _u; - var substitutions = _t.substitutions; - var checker = context.program.getTypeChecker(); - var file = scope.getSourceFile(); - var localNameText = isPropertyAccessExpression(node) && !isClassLike(scope) && !checker.resolveName(node.name.text, node, 111551 /* Value */, - /*excludeGlobals*/ - false) && !isPrivateIdentifier(node.name) && !identifierToKeywordKind(node.name) ? node.name.text : getUniqueName(isClassLike(scope) ? "newProperty" : "newLocal", file); - var isJS = isInJSFile(scope); - var variableType = isJS || !checker.isContextSensitive(node) ? void 0 : checker.typeToTypeNode(checker.getContextualType(node), scope, 1 /* NoTruncation */); - var initializer = transformConstantInitializer(skipParentheses(node), substitutions); - (_u = transformFunctionInitializerAndType(variableType, initializer), variableType = _u.variableType, initializer = _u.initializer); - suppressLeadingAndTrailingTrivia(initializer); - var changeTracker = ts_textChanges_exports.ChangeTracker.fromContext(context); - if (isClassLike(scope)) { - Debug.assert(!isJS, "Cannot extract to a JS class"); - var modifiers = []; - modifiers.push(factory.createModifier(123 /* PrivateKeyword */)); - if (rangeFacts & 32 /* InStaticRegion */) { - modifiers.push(factory.createModifier(126 /* StaticKeyword */)); - } - modifiers.push(factory.createModifier(148 /* ReadonlyKeyword */)); - var newVariable = factory.createPropertyDeclaration(modifiers, localNameText, - /*questionOrExclamationToken*/ - void 0, variableType, initializer); - var localReference = factory.createPropertyAccessExpression(rangeFacts & 32 /* InStaticRegion */ ? factory.createIdentifier(scope.name.getText()) : factory.createThis(), factory.createIdentifier(localNameText)); - if (isInJSXContent(node)) { - localReference = factory.createJsxExpression( - /*dotDotDotToken*/ - void 0, localReference); - } - var maxInsertionPos = node.pos; - var nodeToInsertBefore = getNodeToInsertPropertyBefore(maxInsertionPos, scope); - changeTracker.insertNodeBefore(context.file, nodeToInsertBefore, newVariable, - /*blankLineBetween*/ - true); - changeTracker.replaceNode(context.file, node, localReference); - } - else { - var newVariableDeclaration = factory.createVariableDeclaration(localNameText, - /*exclamationToken*/ - void 0, variableType, initializer); - var oldVariableDeclaration = getContainingVariableDeclarationIfInList(node, scope); - if (oldVariableDeclaration) { - changeTracker.insertNodeBefore(context.file, oldVariableDeclaration, newVariableDeclaration); - var localReference = factory.createIdentifier(localNameText); - changeTracker.replaceNode(context.file, node, localReference); - } - else if (node.parent.kind === 244 /* ExpressionStatement */ && scope === findAncestor(node, isScope)) { - var newVariableStatement = factory.createVariableStatement( - /*modifiers*/ - void 0, factory.createVariableDeclarationList([newVariableDeclaration], 2 /* Const */)); - changeTracker.replaceNode(context.file, node.parent, newVariableStatement); - } - else { - var newVariableStatement = factory.createVariableStatement( - /*modifiers*/ - void 0, factory.createVariableDeclarationList([newVariableDeclaration], 2 /* Const */)); - var nodeToInsertBefore = getNodeToInsertConstantBefore(node, scope); - if (nodeToInsertBefore.pos === 0) { - changeTracker.insertNodeAtTopOfFile(context.file, newVariableStatement, - /*blankLineBetween*/ - false); - } - else { - changeTracker.insertNodeBefore(context.file, nodeToInsertBefore, newVariableStatement, - /*blankLineBetween*/ - false); - } - if (node.parent.kind === 244 /* ExpressionStatement */) { - changeTracker.delete(context.file, node.parent); - } - else { - var localReference = factory.createIdentifier(localNameText); - if (isInJSXContent(node)) { - localReference = factory.createJsxExpression( - /*dotDotDotToken*/ - void 0, localReference); - } - changeTracker.replaceNode(context.file, node, localReference); - } - } - } - var edits = changeTracker.getChanges(); - var renameFilename = node.getSourceFile().fileName; - var renameLocation = getRenameLocation(edits, renameFilename, localNameText, - /*preferLastLocation*/ - true); - return { renameFilename: renameFilename, renameLocation: renameLocation, edits: edits }; - function transformFunctionInitializerAndType(variableType2, initializer2) { - var e_714, _t; - if (variableType2 === void 0) - return { variableType: variableType2, initializer: initializer2 }; - if (!isFunctionExpression(initializer2) && !isArrowFunction(initializer2) || !!initializer2.typeParameters) - return { variableType: variableType2, initializer: initializer2 }; - var functionType = checker.getTypeAtLocation(node); - var functionSignature = singleOrUndefined(checker.getSignaturesOfType(functionType, 0 /* Call */)); - if (!functionSignature) - return { variableType: variableType2, initializer: initializer2 }; - if (!!functionSignature.getTypeParameters()) - return { variableType: variableType2, initializer: initializer2 }; - var parameters = []; - var hasAny = false; - try { - for (var _u = __values(initializer2.parameters), _v = _u.next(); !_v.done; _v = _u.next()) { - var p = _v.value; - if (p.type) { - parameters.push(p); - } - else { - var paramType = checker.getTypeAtLocation(p); - if (paramType === checker.getAnyType()) - hasAny = true; - parameters.push(factory.updateParameterDeclaration(p, p.modifiers, p.dotDotDotToken, p.name, p.questionToken, p.type || checker.typeToTypeNode(paramType, scope, 1 /* NoTruncation */), p.initializer)); - } - } - } - catch (e_714_1) { e_714 = { error: e_714_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_714) throw e_714.error; } - } - if (hasAny) - return { variableType: variableType2, initializer: initializer2 }; - variableType2 = void 0; - if (isArrowFunction(initializer2)) { - initializer2 = factory.updateArrowFunction(initializer2, canHaveModifiers(node) ? getModifiers(node) : void 0, initializer2.typeParameters, parameters, initializer2.type || checker.typeToTypeNode(functionSignature.getReturnType(), scope, 1 /* NoTruncation */), initializer2.equalsGreaterThanToken, initializer2.body); - } - else { - if (functionSignature && !!functionSignature.thisParameter) { - var firstParameter = firstOrUndefined(parameters); - if (!firstParameter || isIdentifier(firstParameter.name) && firstParameter.name.escapedText !== "this") { - var thisType = checker.getTypeOfSymbolAtLocation(functionSignature.thisParameter, node); - parameters.splice(0, 0, factory.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, "this", - /*questionToken*/ - void 0, checker.typeToTypeNode(thisType, scope, 1 /* NoTruncation */))); - } - } - initializer2 = factory.updateFunctionExpression(initializer2, canHaveModifiers(node) ? getModifiers(node) : void 0, initializer2.asteriskToken, initializer2.name, initializer2.typeParameters, parameters, initializer2.type || checker.typeToTypeNode(functionSignature.getReturnType(), scope, 1 /* NoTruncation */), initializer2.body); - } - return { variableType: variableType2, initializer: initializer2 }; - } -} -function getContainingVariableDeclarationIfInList(node, scope) { - var prevNode; - while (node !== void 0 && node !== scope) { - if (isVariableDeclaration(node) && node.initializer === prevNode && isVariableDeclarationList(node.parent) && node.parent.declarations.length > 1) { - return node; - } - prevNode = node; - node = node.parent; - } -} -function getFirstDeclarationBeforePosition(type, position) { - var e_715, _t; - var firstDeclaration; - var symbol = type.symbol; - if (symbol && symbol.declarations) { - try { - for (var _u = __values(symbol.declarations), _v = _u.next(); !_v.done; _v = _u.next()) { - var declaration = _v.value; - if ((firstDeclaration === void 0 || declaration.pos < firstDeclaration.pos) && declaration.pos < position) { - firstDeclaration = declaration; - } - } - } - catch (e_715_1) { e_715 = { error: e_715_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_715) throw e_715.error; } - } - } - return firstDeclaration; -} -function compareTypesByDeclarationOrder(_t, _u) { - var type1 = _t.type, declaration1 = _t.declaration; - var type2 = _u.type, declaration2 = _u.declaration; - return compareProperties(declaration1, declaration2, "pos", compareValues) || compareStringsCaseSensitive(type1.symbol ? type1.symbol.getName() : "", type2.symbol ? type2.symbol.getName() : "") || compareValues(type1.id, type2.id); -} -function getCalledExpression(scope, range, functionNameText) { - var functionReference = factory.createIdentifier(functionNameText); - if (isClassLike(scope)) { - var lhs = range.facts & 32 /* InStaticRegion */ ? factory.createIdentifier(scope.name.text) : factory.createThis(); - return factory.createPropertyAccessExpression(lhs, functionReference); - } - else { - return functionReference; - } -} -function transformFunctionBody(body, exposedVariableDeclarations, writes, substitutions, hasReturn2) { - var hasWritesOrVariableDeclarations = writes !== void 0 || exposedVariableDeclarations.length > 0; - if (isBlock(body) && !hasWritesOrVariableDeclarations && substitutions.size === 0) { - return { body: factory.createBlock(body.statements, - /*multiLine*/ - true), returnValueProperty: void 0 }; - } - var returnValueProperty; - var ignoreReturns = false; - var statements = factory.createNodeArray(isBlock(body) ? body.statements.slice(0) : [isStatement(body) ? body : factory.createReturnStatement(skipParentheses(body))]); - if (hasWritesOrVariableDeclarations || substitutions.size) { - var rewrittenStatements = visitNodes2(statements, visitor, isStatement).slice(); - if (hasWritesOrVariableDeclarations && !hasReturn2 && isStatement(body)) { - var assignments = getPropertyAssignmentsForWritesAndVariableDeclarations(exposedVariableDeclarations, writes); - if (assignments.length === 1) { - rewrittenStatements.push(factory.createReturnStatement(assignments[0].name)); - } - else { - rewrittenStatements.push(factory.createReturnStatement(factory.createObjectLiteralExpression(assignments))); - } - } - return { body: factory.createBlock(rewrittenStatements, - /*multiLine*/ - true), returnValueProperty: returnValueProperty }; - } - else { - return { body: factory.createBlock(statements, - /*multiLine*/ - true), returnValueProperty: void 0 }; - } - function visitor(node) { - if (!ignoreReturns && isReturnStatement(node) && hasWritesOrVariableDeclarations) { - var assignments = getPropertyAssignmentsForWritesAndVariableDeclarations(exposedVariableDeclarations, writes); - if (node.expression) { - if (!returnValueProperty) { - returnValueProperty = "__return"; - } - assignments.unshift(factory.createPropertyAssignment(returnValueProperty, visitNode(node.expression, visitor, isExpression))); - } - if (assignments.length === 1) { - return factory.createReturnStatement(assignments[0].name); - } - else { - return factory.createReturnStatement(factory.createObjectLiteralExpression(assignments)); - } - } - else { - var oldIgnoreReturns = ignoreReturns; - ignoreReturns = ignoreReturns || isFunctionLikeDeclaration(node) || isClassLike(node); - var substitution = substitutions.get(getNodeId(node).toString()); - var result = substitution ? getSynthesizedDeepClone(substitution) : visitEachChild(node, visitor, nullTransformationContext); - ignoreReturns = oldIgnoreReturns; - return result; - } - } -} -function transformConstantInitializer(initializer, substitutions) { - return substitutions.size ? visitor(initializer) : initializer; - function visitor(node) { - var substitution = substitutions.get(getNodeId(node).toString()); - return substitution ? getSynthesizedDeepClone(substitution) : visitEachChild(node, visitor, nullTransformationContext); - } -} -function getStatementsOrClassElements(scope) { - if (isFunctionLikeDeclaration(scope)) { - var body = scope.body; - if (isBlock(body)) { - return body.statements; - } - } - else if (isModuleBlock(scope) || isSourceFile(scope)) { - return scope.statements; - } - else if (isClassLike(scope)) { - return scope.members; - } - else { - assertType(scope); - } - return emptyArray; -} -function getNodeToInsertFunctionBefore(minPos, scope) { - return find(getStatementsOrClassElements(scope), function (child) { return child.pos >= minPos && isFunctionLikeDeclaration(child) && !isConstructorDeclaration(child); }); -} -function getNodeToInsertPropertyBefore(maxPos, scope) { - var e_716, _t; - var members = scope.members; - Debug.assert(members.length > 0, "Found no members"); - var prevMember; - var allProperties = true; - try { - for (var members_7 = __values(members), members_7_1 = members_7.next(); !members_7_1.done; members_7_1 = members_7.next()) { - var member = members_7_1.value; - if (member.pos > maxPos) { - return prevMember || members[0]; - } - if (allProperties && !isPropertyDeclaration(member)) { - if (prevMember !== void 0) { - return member; - } - allProperties = false; - } - prevMember = member; - } - } - catch (e_716_1) { e_716 = { error: e_716_1 }; } - finally { - try { - if (members_7_1 && !members_7_1.done && (_t = members_7.return)) _t.call(members_7); - } - finally { if (e_716) throw e_716.error; } - } - if (prevMember === void 0) - return Debug.fail(); - return prevMember; -} -function getNodeToInsertConstantBefore(node, scope) { - var e_717, _t; - Debug.assert(!isClassLike(scope)); - var prevScope; - for (var curr = node; curr !== scope; curr = curr.parent) { - if (isScope(curr)) { - prevScope = curr; - } - } - for (var curr = (prevScope || node).parent;; curr = curr.parent) { - if (isBlockLike(curr)) { - var prevStatement = void 0; - try { - for (var _u = (e_717 = void 0, __values(curr.statements)), _v = _u.next(); !_v.done; _v = _u.next()) { - var statement = _v.value; - if (statement.pos > node.pos) { - break; - } - prevStatement = statement; - } - } - catch (e_717_1) { e_717 = { error: e_717_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_717) throw e_717.error; } - } - if (!prevStatement && isCaseClause(curr)) { - Debug.assert(isSwitchStatement(curr.parent.parent), "Grandparent isn't a switch statement"); - return curr.parent.parent; - } - return Debug.checkDefined(prevStatement, "prevStatement failed to get set"); - } - Debug.assert(curr !== scope, "Didn't encounter a block-like before encountering scope"); - } -} -function getPropertyAssignmentsForWritesAndVariableDeclarations(exposedVariableDeclarations, writes) { - var variableAssignments = map(exposedVariableDeclarations, function (v) { return factory.createShorthandPropertyAssignment(v.symbol.name); }); - var writeAssignments = map(writes, function (w) { return factory.createShorthandPropertyAssignment(w.symbol.name); }); - return variableAssignments === void 0 ? writeAssignments : writeAssignments === void 0 ? variableAssignments : variableAssignments.concat(writeAssignments); -} -function isReadonlyArray(v) { - return isArray(v); -} -function getEnclosingTextRange(targetRange, sourceFile) { - return isReadonlyArray(targetRange.range) ? { pos: first(targetRange.range).getStart(sourceFile), end: last(targetRange.range).getEnd() } : targetRange.range; -} -function collectReadsAndWrites(targetRange, scopes, enclosingTextRange, sourceFile, checker, cancellationToken) { - var e_718, _t, e_719, _u; - var allTypeParameterUsages = /* @__PURE__ */ new Map(); - var usagesPerScope = []; - var substitutionsPerScope = []; - var functionErrorsPerScope = []; - var constantErrorsPerScope = []; - var visibleDeclarationsInExtractedRange = []; - var exposedVariableSymbolSet = /* @__PURE__ */ new Map(); - var exposedVariableDeclarations = []; - var firstExposedNonVariableDeclaration; - var expression = !isReadonlyArray(targetRange.range) ? targetRange.range : targetRange.range.length === 1 && isExpressionStatement(targetRange.range[0]) ? targetRange.range[0].expression : void 0; - var expressionDiagnostic; - if (expression === void 0) { - var statements = targetRange.range; - var start2 = first(statements).getStart(); - var end = last(statements).end; - expressionDiagnostic = createFileDiagnostic(sourceFile, start2, end - start2, Messages.expressionExpected); - } - else if (checker.getTypeAtLocation(expression).flags & (16384 /* Void */ | 131072 /* Never */)) { - expressionDiagnostic = createDiagnosticForNode(expression, Messages.uselessConstantType); - } - try { - for (var scopes_1 = __values(scopes), scopes_1_1 = scopes_1.next(); !scopes_1_1.done; scopes_1_1 = scopes_1.next()) { - var scope = scopes_1_1.value; - usagesPerScope.push({ usages: /* @__PURE__ */ new Map(), typeParameterUsages: /* @__PURE__ */ new Map(), substitutions: /* @__PURE__ */ new Map() }); - substitutionsPerScope.push(/* @__PURE__ */ new Map()); - functionErrorsPerScope.push([]); - var constantErrors = []; - if (expressionDiagnostic) { - constantErrors.push(expressionDiagnostic); - } - if (isClassLike(scope) && isInJSFile(scope)) { - constantErrors.push(createDiagnosticForNode(scope, Messages.cannotExtractToJSClass)); - } - if (isArrowFunction(scope) && !isBlock(scope.body)) { - constantErrors.push(createDiagnosticForNode(scope, Messages.cannotExtractToExpressionArrowFunction)); - } - constantErrorsPerScope.push(constantErrors); - } - } - catch (e_718_1) { e_718 = { error: e_718_1 }; } - finally { - try { - if (scopes_1_1 && !scopes_1_1.done && (_t = scopes_1.return)) _t.call(scopes_1); - } - finally { if (e_718) throw e_718.error; } - } - var seenUsages = /* @__PURE__ */ new Map(); - var target = isReadonlyArray(targetRange.range) ? factory.createBlock(targetRange.range) : targetRange.range; - var unmodifiedNode = isReadonlyArray(targetRange.range) ? first(targetRange.range) : targetRange.range; - var inGenericContext = isInGenericContext(unmodifiedNode); - collectUsages(target); - if (inGenericContext && !isReadonlyArray(targetRange.range) && !isJsxAttribute(targetRange.range)) { - var contextualType = checker.getContextualType(targetRange.range); - recordTypeParameterUsages(contextualType); - } - if (allTypeParameterUsages.size > 0) { - var seenTypeParameterUsages = /* @__PURE__ */ new Map(); - var i_2 = 0; - for (var curr = unmodifiedNode; curr !== void 0 && i_2 < scopes.length; curr = curr.parent) { - if (curr === scopes[i_2]) { - seenTypeParameterUsages.forEach(function (typeParameter, id) { - usagesPerScope[i_2].typeParameterUsages.set(id, typeParameter); - }); - i_2++; - } - if (isDeclarationWithTypeParameters(curr)) { - try { - for (var _v = (e_719 = void 0, __values(getEffectiveTypeParameterDeclarations(curr))), _w = _v.next(); !_w.done; _w = _v.next()) { - var typeParameterDecl = _w.value; - var typeParameter = checker.getTypeAtLocation(typeParameterDecl); - if (allTypeParameterUsages.has(typeParameter.id.toString())) { - seenTypeParameterUsages.set(typeParameter.id.toString(), typeParameter); - } - } - } - catch (e_719_1) { e_719 = { error: e_719_1 }; } - finally { - try { - if (_w && !_w.done && (_u = _v.return)) _u.call(_v); - } - finally { if (e_719) throw e_719.error; } - } - } - } - Debug.assert(i_2 === scopes.length, "Should have iterated all scopes"); - } - if (visibleDeclarationsInExtractedRange.length) { - var containingLexicalScopeOfExtraction = isBlockScope(scopes[0], scopes[0].parent) ? scopes[0] : getEnclosingBlockScopeContainer(scopes[0]); - forEachChild(containingLexicalScopeOfExtraction, checkForUsedDeclarations); - } - var _loop_50 = function (i) { - var scopeUsages = usagesPerScope[i]; - if (i > 0 && (scopeUsages.usages.size > 0 || scopeUsages.typeParameterUsages.size > 0)) { - var errorNode = isReadonlyArray(targetRange.range) ? targetRange.range[0] : targetRange.range; - constantErrorsPerScope[i].push(createDiagnosticForNode(errorNode, Messages.cannotAccessVariablesFromNestedScopes)); - } - if (targetRange.facts & 16 /* UsesThisInFunction */ && isClassLike(scopes[i])) { - functionErrorsPerScope[i].push(createDiagnosticForNode(targetRange.thisNode, Messages.cannotExtractFunctionsContainingThisToMethod)); - } - var hasWrite = false; - var readonlyClassPropertyWrite; - usagesPerScope[i].usages.forEach(function (value) { - if (value.usage === 2 /* Write */) { - hasWrite = true; - if (value.symbol.flags & 106500 /* ClassMember */ && value.symbol.valueDeclaration && hasEffectiveModifier(value.symbol.valueDeclaration, 64 /* Readonly */)) { - readonlyClassPropertyWrite = value.symbol.valueDeclaration; - } - } - }); - Debug.assert(isReadonlyArray(targetRange.range) || exposedVariableDeclarations.length === 0, "No variable declarations expected if something was extracted"); - if (hasWrite && !isReadonlyArray(targetRange.range)) { - var diag2 = createDiagnosticForNode(targetRange.range, Messages.cannotWriteInExpression); - functionErrorsPerScope[i].push(diag2); - constantErrorsPerScope[i].push(diag2); - } - else if (readonlyClassPropertyWrite && i > 0) { - var diag2 = createDiagnosticForNode(readonlyClassPropertyWrite, Messages.cannotExtractReadonlyPropertyInitializerOutsideConstructor); - functionErrorsPerScope[i].push(diag2); - constantErrorsPerScope[i].push(diag2); - } - else if (firstExposedNonVariableDeclaration) { - var diag2 = createDiagnosticForNode(firstExposedNonVariableDeclaration, Messages.cannotExtractExportedEntity); - functionErrorsPerScope[i].push(diag2); - constantErrorsPerScope[i].push(diag2); - } - }; - for (var i = 0; i < scopes.length; i++) { - _loop_50(i); - } - return { target: target, usagesPerScope: usagesPerScope, functionErrorsPerScope: functionErrorsPerScope, constantErrorsPerScope: constantErrorsPerScope, exposedVariableDeclarations: exposedVariableDeclarations }; - function isInGenericContext(node) { - return !!findAncestor(node, function (n) { return isDeclarationWithTypeParameters(n) && getEffectiveTypeParameterDeclarations(n).length !== 0; }); - } - function recordTypeParameterUsages(type) { - var e_720, _t; - var symbolWalker = checker.getSymbolWalker(function () { return (cancellationToken.throwIfCancellationRequested(), true); }); - var visitedTypes = symbolWalker.walkType(type).visitedTypes; - try { - for (var visitedTypes_1 = __values(visitedTypes), visitedTypes_1_1 = visitedTypes_1.next(); !visitedTypes_1_1.done; visitedTypes_1_1 = visitedTypes_1.next()) { - var visitedType = visitedTypes_1_1.value; - if (visitedType.isTypeParameter()) { - allTypeParameterUsages.set(visitedType.id.toString(), visitedType); - } - } - } - catch (e_720_1) { e_720 = { error: e_720_1 }; } - finally { - try { - if (visitedTypes_1_1 && !visitedTypes_1_1.done && (_t = visitedTypes_1.return)) _t.call(visitedTypes_1); - } - finally { if (e_720) throw e_720.error; } - } - } - function collectUsages(node, valueUsage /* Read */) { - if (valueUsage === void 0) { valueUsage = 1; } - if (inGenericContext) { - var type = checker.getTypeAtLocation(node); - recordTypeParameterUsages(type); - } - if (isDeclaration(node) && node.symbol) { - visibleDeclarationsInExtractedRange.push(node); - } - if (isAssignmentExpression(node)) { - collectUsages(node.left, 2 /* Write */); - collectUsages(node.right); - } - else if (isUnaryExpressionWithWrite(node)) { - collectUsages(node.operand, 2 /* Write */); - } - else if (isPropertyAccessExpression(node) || isElementAccessExpression(node)) { - forEachChild(node, collectUsages); - } - else if (isIdentifier(node)) { - if (!node.parent) { - return; - } - if (isQualifiedName(node.parent) && node !== node.parent.left) { - return; - } - if (isPropertyAccessExpression(node.parent) && node !== node.parent.expression) { - return; - } - recordUsage(node, valueUsage, - /*isTypeNode*/ - isPartOfTypeNode(node)); - } - else { - forEachChild(node, collectUsages); - } - } - function recordUsage(n, usage, isTypeNode2) { - var symbolId = recordUsagebySymbol(n, usage, isTypeNode2); - if (symbolId) { - for (var i = 0; i < scopes.length; i++) { - var substitution = substitutionsPerScope[i].get(symbolId); - if (substitution) { - usagesPerScope[i].substitutions.set(getNodeId(n).toString(), substitution); - } - } - } - } - function recordUsagebySymbol(identifier, usage, isTypeName) { - var e_721, _t, e_722, _u, e_723, _v; - var symbol = getSymbolReferencedByIdentifier(identifier); - if (!symbol) { - return void 0; - } - var symbolId = getSymbolId(symbol).toString(); - var lastUsage = seenUsages.get(symbolId); - if (lastUsage && lastUsage >= usage) { - return symbolId; - } - seenUsages.set(symbolId, usage); - if (lastUsage) { - try { - for (var usagesPerScope_1 = __values(usagesPerScope), usagesPerScope_1_1 = usagesPerScope_1.next(); !usagesPerScope_1_1.done; usagesPerScope_1_1 = usagesPerScope_1.next()) { - var perScope = usagesPerScope_1_1.value; - var prevEntry = perScope.usages.get(identifier.text); - if (prevEntry) { - perScope.usages.set(identifier.text, { usage: usage, symbol: symbol, node: identifier }); - } - } - } - catch (e_721_1) { e_721 = { error: e_721_1 }; } - finally { - try { - if (usagesPerScope_1_1 && !usagesPerScope_1_1.done && (_t = usagesPerScope_1.return)) _t.call(usagesPerScope_1); - } - finally { if (e_721) throw e_721.error; } - } - return symbolId; - } - var decls = symbol.getDeclarations(); - var declInFile = decls && find(decls, function (d) { return d.getSourceFile() === sourceFile; }); - if (!declInFile) { - return void 0; - } - if (rangeContainsStartEnd(enclosingTextRange, declInFile.getStart(), declInFile.end)) { - return void 0; - } - if (targetRange.facts & 2 /* IsGenerator */ && usage === 2 /* Write */) { - var diag2 = createDiagnosticForNode(identifier, Messages.cannotExtractRangeThatContainsWritesToReferencesLocatedOutsideOfTheTargetRangeInGenerators); - try { - for (var functionErrorsPerScope_1 = __values(functionErrorsPerScope), functionErrorsPerScope_1_1 = functionErrorsPerScope_1.next(); !functionErrorsPerScope_1_1.done; functionErrorsPerScope_1_1 = functionErrorsPerScope_1.next()) { - var errors = functionErrorsPerScope_1_1.value; - errors.push(diag2); - } - } - catch (e_722_1) { e_722 = { error: e_722_1 }; } - finally { - try { - if (functionErrorsPerScope_1_1 && !functionErrorsPerScope_1_1.done && (_u = functionErrorsPerScope_1.return)) _u.call(functionErrorsPerScope_1); - } - finally { if (e_722) throw e_722.error; } - } - try { - for (var constantErrorsPerScope_1 = __values(constantErrorsPerScope), constantErrorsPerScope_1_1 = constantErrorsPerScope_1.next(); !constantErrorsPerScope_1_1.done; constantErrorsPerScope_1_1 = constantErrorsPerScope_1.next()) { - var errors = constantErrorsPerScope_1_1.value; - errors.push(diag2); - } - } - catch (e_723_1) { e_723 = { error: e_723_1 }; } - finally { - try { - if (constantErrorsPerScope_1_1 && !constantErrorsPerScope_1_1.done && (_v = constantErrorsPerScope_1.return)) _v.call(constantErrorsPerScope_1); - } - finally { if (e_723) throw e_723.error; } - } - } - for (var i = 0; i < scopes.length; i++) { - var scope = scopes[i]; - var resolvedSymbol = checker.resolveName(symbol.name, scope, symbol.flags, - /*excludeGlobals*/ - false); - if (resolvedSymbol === symbol) { - continue; - } - if (!substitutionsPerScope[i].has(symbolId)) { - var substitution = tryReplaceWithQualifiedNameOrPropertyAccess(symbol.exportSymbol || symbol, scope, isTypeName); - if (substitution) { - substitutionsPerScope[i].set(symbolId, substitution); - } - else if (isTypeName) { - if (!(symbol.flags & 262144 /* TypeParameter */)) { - var diag2 = createDiagnosticForNode(identifier, Messages.typeWillNotBeVisibleInTheNewScope); - functionErrorsPerScope[i].push(diag2); - constantErrorsPerScope[i].push(diag2); - } - } - else { - usagesPerScope[i].usages.set(identifier.text, { usage: usage, symbol: symbol, node: identifier }); - } - } - } - return symbolId; - } - function checkForUsedDeclarations(node) { - if (node === targetRange.range || isReadonlyArray(targetRange.range) && targetRange.range.indexOf(node) >= 0) { - return; - } - var sym = isIdentifier(node) ? getSymbolReferencedByIdentifier(node) : checker.getSymbolAtLocation(node); - if (sym) { - var decl = find(visibleDeclarationsInExtractedRange, function (d) { return d.symbol === sym; }); - if (decl) { - if (isVariableDeclaration(decl)) { - var idString = decl.symbol.id.toString(); - if (!exposedVariableSymbolSet.has(idString)) { - exposedVariableDeclarations.push(decl); - exposedVariableSymbolSet.set(idString, true); - } - } - else { - firstExposedNonVariableDeclaration = firstExposedNonVariableDeclaration || decl; - } - } - } - forEachChild(node, checkForUsedDeclarations); - } - function getSymbolReferencedByIdentifier(identifier) { - return identifier.parent && isShorthandPropertyAssignment(identifier.parent) && identifier.parent.name === identifier ? checker.getShorthandAssignmentValueSymbol(identifier.parent) : checker.getSymbolAtLocation(identifier); - } - function tryReplaceWithQualifiedNameOrPropertyAccess(symbol, scopeDecl, isTypeNode2) { - if (!symbol) { - return void 0; - } - var decls = symbol.getDeclarations(); - if (decls && decls.some(function (d) { return d.parent === scopeDecl; })) { - return factory.createIdentifier(symbol.name); - } - var prefix = tryReplaceWithQualifiedNameOrPropertyAccess(symbol.parent, scopeDecl, isTypeNode2); - if (prefix === void 0) { - return void 0; - } - return isTypeNode2 ? factory.createQualifiedName(prefix, factory.createIdentifier(symbol.name)) : factory.createPropertyAccessExpression(prefix, symbol.name); - } -} -function getExtractableParent(node) { - return findAncestor(node, function (node2) { return node2.parent && isExtractableExpression(node2) && !isBinaryExpression(node2.parent); }); -} -function isExtractableExpression(node) { - var parent2 = node.parent; - switch (parent2.kind) { - case 306 /* EnumMember */: - return false; - } - switch (node.kind) { - case 11 /* StringLiteral */: - return parent2.kind !== 272 /* ImportDeclaration */ && parent2.kind !== 276 /* ImportSpecifier */; - case 230 /* SpreadElement */: - case 206 /* ObjectBindingPattern */: - case 208 /* BindingElement */: - return false; - case 80 /* Identifier */: - return parent2.kind !== 208 /* BindingElement */ && parent2.kind !== 276 /* ImportSpecifier */ && parent2.kind !== 281 /* ExportSpecifier */; - } - return true; -} -function isBlockLike(node) { - switch (node.kind) { - case 241 /* Block */: - case 312 /* SourceFile */: - case 268 /* ModuleBlock */: - case 296 /* CaseClause */: - return true; - default: - return false; - } -} -function isInJSXContent(node) { - return isStringLiteralJsxAttribute(node) || (isJsxElement(node) || isJsxSelfClosingElement(node) || isJsxFragment(node)) && (isJsxElement(node.parent) || isJsxFragment(node.parent)); -} -function isStringLiteralJsxAttribute(node) { - return isStringLiteral(node) && node.parent && isJsxAttribute(node.parent); -} -// src/services/_namespaces/ts.refactor.generateGetAccessorAndSetAccessor.ts -var ts_refactor_generateGetAccessorAndSetAccessor_exports = {}; -// src/services/refactors/generateGetAccessorAndSetAccessor.ts -var actionName = "Generate 'get' and 'set' accessors"; -var actionDescription = getLocaleSpecificMessage(Diagnostics.Generate_get_and_set_accessors); -var generateGetSetAction = { - name: actionName, - description: actionDescription, - kind: "refactor.rewrite.property.generateAccessors" -}; -registerRefactor(actionName, { - kinds: [generateGetSetAction.kind], - getEditsForAction: function getRefactorActionsToGenerateGetAndSetAccessors(context, actionName2) { - if (!context.endPosition) - return void 0; - var info = ts_codefix_exports.getAccessorConvertiblePropertyAtPosition(context.file, context.program, context.startPosition, context.endPosition); - Debug.assert(info && !isRefactorErrorInfo(info), "Expected applicable refactor info"); - var edits = ts_codefix_exports.generateAccessorFromProperty(context.file, context.program, context.startPosition, context.endPosition, context, actionName2); - if (!edits) - return void 0; - var renameFilename = context.file.fileName; - var nameNeedRename = info.renameAccessor ? info.accessorName : info.fieldName; - var renameLocationOffset = isIdentifier(nameNeedRename) ? 0 : -1; - var renameLocation = renameLocationOffset + getRenameLocation(edits, renameFilename, nameNeedRename.text, - /*preferLastLocation*/ - isParameter(info.declaration)); - return { renameFilename: renameFilename, renameLocation: renameLocation, edits: edits }; - }, - getAvailableActions: function (context) { - if (!context.endPosition) - return emptyArray; - var info = ts_codefix_exports.getAccessorConvertiblePropertyAtPosition(context.file, context.program, context.startPosition, context.endPosition, context.triggerReason === "invoked"); - if (!info) - return emptyArray; - if (!isRefactorErrorInfo(info)) { - return [{ - name: actionName, - description: actionDescription, - actions: [generateGetSetAction] - }]; - } - if (context.preferences.provideRefactorNotApplicableReason) { - return [{ - name: actionName, - description: actionDescription, - actions: [__assign(__assign({}, generateGetSetAction), { notApplicableReason: info.error })] - }]; - } - return emptyArray; - } -}); -// src/services/_namespaces/ts.refactor.inferFunctionReturnType.ts -var ts_refactor_inferFunctionReturnType_exports = {}; -// src/services/refactors/inferFunctionReturnType.ts -var refactorName13 = "Infer function return type"; -var refactorDescription7 = getLocaleSpecificMessage(Diagnostics.Infer_function_return_type); -var inferReturnTypeAction = { - name: refactorName13, - description: refactorDescription7, - kind: "refactor.rewrite.function.returnType" -}; -registerRefactor(refactorName13, { - kinds: [inferReturnTypeAction.kind], - getEditsForAction: getRefactorEditsToInferReturnType, - getAvailableActions: getRefactorActionsToInferReturnType -}); -function getRefactorEditsToInferReturnType(context) { - var info = getInfo4(context); - if (info && !isRefactorErrorInfo(info)) { - var edits = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return doChange7(context.file, t, info.declaration, info.returnTypeNode); }); - return { renameFilename: void 0, renameLocation: void 0, edits: edits }; - } - return void 0; -} -function getRefactorActionsToInferReturnType(context) { - var info = getInfo4(context); - if (!info) - return emptyArray; - if (!isRefactorErrorInfo(info)) { - return [{ - name: refactorName13, - description: refactorDescription7, - actions: [inferReturnTypeAction] - }]; - } - if (context.preferences.provideRefactorNotApplicableReason) { - return [{ - name: refactorName13, - description: refactorDescription7, - actions: [__assign(__assign({}, inferReturnTypeAction), { notApplicableReason: info.error })] - }]; - } - return emptyArray; -} -function doChange7(sourceFile, changes, declaration, typeNode) { - var closeParen = findChildOfKind(declaration, 22 /* CloseParenToken */, sourceFile); - var needParens = isArrowFunction(declaration) && closeParen === void 0; - var endNode2 = needParens ? first(declaration.parameters) : closeParen; - if (endNode2) { - if (needParens) { - changes.insertNodeBefore(sourceFile, endNode2, factory.createToken(21 /* OpenParenToken */)); - changes.insertNodeAfter(sourceFile, endNode2, factory.createToken(22 /* CloseParenToken */)); - } - changes.insertNodeAt(sourceFile, endNode2.end, typeNode, { prefix: ": " }); - } -} -function getInfo4(context) { - if (isInJSFile(context.file) || !refactorKindBeginsWith(inferReturnTypeAction.kind, context.kind)) - return; - var token = getTokenAtPosition(context.file, context.startPosition); - var declaration = findAncestor(token, function (n) { return isBlock(n) || n.parent && isArrowFunction(n.parent) && (n.kind === 39 /* EqualsGreaterThanToken */ || n.parent.body === n) ? "quit" : isConvertibleDeclaration(n); }); - if (!declaration || !declaration.body || declaration.type) { - return { error: getLocaleSpecificMessage(Diagnostics.Return_type_must_be_inferred_from_a_function) }; - } - var typeChecker = context.program.getTypeChecker(); - var returnType = tryGetReturnType(typeChecker, declaration); - if (!returnType) { - return { error: getLocaleSpecificMessage(Diagnostics.Could_not_determine_function_return_type) }; - } - var returnTypeNode = typeChecker.typeToTypeNode(returnType, declaration, 1 /* NoTruncation */); - if (returnTypeNode) { - return { declaration: declaration, returnTypeNode: returnTypeNode }; - } -} -function isConvertibleDeclaration(node) { - switch (node.kind) { - case 262 /* FunctionDeclaration */: - case 218 /* FunctionExpression */: - case 219 /* ArrowFunction */: - case 174 /* MethodDeclaration */: - return true; - default: - return false; - } -} -function tryGetReturnType(typeChecker, node) { - if (typeChecker.isImplementationOfOverload(node)) { - var signatures = typeChecker.getTypeAtLocation(node).getCallSignatures(); - if (signatures.length > 1) { - return typeChecker.getUnionType(mapDefined(signatures, function (s) { return s.getReturnType(); })); - } - } - var signature = typeChecker.getSignatureFromDeclaration(node); - if (signature) { - return typeChecker.getReturnTypeOfSignature(signature); - } -} -// src/services/classifier2020.ts -var TokenEncodingConsts = /* @__PURE__ */ (function (TokenEncodingConsts2) { - TokenEncodingConsts2[TokenEncodingConsts2["typeOffset"] = 8] = "typeOffset"; - TokenEncodingConsts2[TokenEncodingConsts2["modifierMask"] = 255] = "modifierMask"; - return TokenEncodingConsts2; -})(TokenEncodingConsts || {}); -var TokenType = /* @__PURE__ */ (function (TokenType2) { - TokenType2[TokenType2["class"] = 0] = "class"; - TokenType2[TokenType2["enum"] = 1] = "enum"; - TokenType2[TokenType2["interface"] = 2] = "interface"; - TokenType2[TokenType2["namespace"] = 3] = "namespace"; - TokenType2[TokenType2["typeParameter"] = 4] = "typeParameter"; - TokenType2[TokenType2["type"] = 5] = "type"; - TokenType2[TokenType2["parameter"] = 6] = "parameter"; - TokenType2[TokenType2["variable"] = 7] = "variable"; - TokenType2[TokenType2["enumMember"] = 8] = "enumMember"; - TokenType2[TokenType2["property"] = 9] = "property"; - TokenType2[TokenType2["function"] = 10] = "function"; - TokenType2[TokenType2["member"] = 11] = "member"; - return TokenType2; -})(TokenType || {}); -var TokenModifier = /* @__PURE__ */ (function (TokenModifier2) { - TokenModifier2[TokenModifier2["declaration"] = 0] = "declaration"; - TokenModifier2[TokenModifier2["static"] = 1] = "static"; - TokenModifier2[TokenModifier2["async"] = 2] = "async"; - TokenModifier2[TokenModifier2["readonly"] = 3] = "readonly"; - TokenModifier2[TokenModifier2["defaultLibrary"] = 4] = "defaultLibrary"; - TokenModifier2[TokenModifier2["local"] = 5] = "local"; - return TokenModifier2; -})(TokenModifier || {}); -function getSemanticClassifications2(program, cancellationToken, sourceFile, span) { - var classifications = getEncodedSemanticClassifications2(program, cancellationToken, sourceFile, span); - Debug.assert(classifications.spans.length % 3 === 0); - var dense = classifications.spans; - var result = []; - for (var i = 0; i < dense.length; i += 3) { - result.push({ - textSpan: createTextSpan(dense[i], dense[i + 1]), - classificationType: dense[i + 2] - }); - } - return result; -} -function getEncodedSemanticClassifications2(program, cancellationToken, sourceFile, span) { - return { - spans: getSemanticTokens(program, sourceFile, span, cancellationToken), - endOfLineState: 0 /* None */ - }; -} -function getSemanticTokens(program, sourceFile, span, cancellationToken) { - var resultTokens = []; - var collector = function (node, typeIdx, modifierSet) { - resultTokens.push(node.getStart(sourceFile), node.getWidth(sourceFile), (typeIdx + 1 << 8 /* typeOffset */) + modifierSet); - }; - if (program && sourceFile) { - collectTokens(program, sourceFile, span, collector, cancellationToken); - } - return resultTokens; -} -function collectTokens(program, sourceFile, span, collector, cancellationToken) { - var typeChecker = program.getTypeChecker(); - var inJSXElement = false; - function visit(node) { - switch (node.kind) { - case 267 /* ModuleDeclaration */: - case 263 /* ClassDeclaration */: - case 264 /* InterfaceDeclaration */: - case 262 /* FunctionDeclaration */: - case 231 /* ClassExpression */: - case 218 /* FunctionExpression */: - case 219 /* ArrowFunction */: - cancellationToken.throwIfCancellationRequested(); - } - if (!node || !textSpanIntersectsWith(span, node.pos, node.getFullWidth()) || node.getFullWidth() === 0) { - return; - } - var prevInJSXElement = inJSXElement; - if (isJsxElement(node) || isJsxSelfClosingElement(node)) { - inJSXElement = true; - } - if (isJsxExpression(node)) { - inJSXElement = false; - } - if (isIdentifier(node) && !inJSXElement && !inImportClause(node) && !isInfinityOrNaNString(node.escapedText)) { - var symbol = typeChecker.getSymbolAtLocation(node); - if (symbol) { - if (symbol.flags & 2097152 /* Alias */) { - symbol = typeChecker.getAliasedSymbol(symbol); - } - var typeIdx = classifySymbol2(symbol, getMeaningFromLocation(node)); - if (typeIdx !== void 0) { - var modifierSet = 0; - if (node.parent) { - var parentIsDeclaration = isBindingElement(node.parent) || tokenFromDeclarationMapping.get(node.parent.kind) === typeIdx; - if (parentIsDeclaration && node.parent.name === node) { - modifierSet = 1 << 0 /* declaration */; - } - } - if (typeIdx === 6 /* parameter */ && isRightSideOfQualifiedNameOrPropertyAccess2(node)) { - typeIdx = 9 /* property */; - } - typeIdx = reclassifyByType(typeChecker, node, typeIdx); - var decl = symbol.valueDeclaration; - if (decl) { - var modifiers = getCombinedModifierFlags(decl); - var nodeFlags = getCombinedNodeFlags(decl); - if (modifiers & 32 /* Static */) { - modifierSet |= 1 << 1 /* static */; - } - if (modifiers & 512 /* Async */) { - modifierSet |= 1 << 2 /* async */; - } - if (typeIdx !== 0 /* class */ && typeIdx !== 2 /* interface */) { - if (modifiers & 64 /* Readonly */ || nodeFlags & 2 /* Const */ || symbol.getFlags() & 8 /* EnumMember */) { - modifierSet |= 1 << 3 /* readonly */; - } - } - if ((typeIdx === 7 /* variable */ || typeIdx === 10 /* function */) && isLocalDeclaration(decl, sourceFile)) { - modifierSet |= 1 << 5 /* local */; - } - if (program.isSourceFileDefaultLibrary(decl.getSourceFile())) { - modifierSet |= 1 << 4 /* defaultLibrary */; - } - } - else if (symbol.declarations && symbol.declarations.some(function (d) { return program.isSourceFileDefaultLibrary(d.getSourceFile()); })) { - modifierSet |= 1 << 4 /* defaultLibrary */; - } - collector(node, typeIdx, modifierSet); - } - } - } - forEachChild(node, visit); - inJSXElement = prevInJSXElement; - } - visit(sourceFile); -} -function classifySymbol2(symbol, meaning) { - var flags = symbol.getFlags(); - if (flags & 32 /* Class */) { - return 0 /* class */; - } - else if (flags & 384 /* Enum */) { - return 1 /* enum */; - } - else if (flags & 524288 /* TypeAlias */) { - return 5 /* type */; - } - else if (flags & 64 /* Interface */) { - if (meaning & 2 /* Type */) { - return 2 /* interface */; - } - } - else if (flags & 262144 /* TypeParameter */) { - return 4 /* typeParameter */; - } - var decl = symbol.valueDeclaration || symbol.declarations && symbol.declarations[0]; - if (decl && isBindingElement(decl)) { - decl = getDeclarationForBindingElement(decl); - } - return decl && tokenFromDeclarationMapping.get(decl.kind); -} -function reclassifyByType(typeChecker, node, typeIdx) { - if (typeIdx === 7 /* variable */ || typeIdx === 9 /* property */ || typeIdx === 6 /* parameter */) { - var type_1 = typeChecker.getTypeAtLocation(node); - if (type_1) { - var test = function (condition) { - return condition(type_1) || type_1.isUnion() && type_1.types.some(condition); - }; - if (typeIdx !== 6 /* parameter */ && test(function (t) { return t.getConstructSignatures().length > 0; })) { - return 0 /* class */; - } - if (test(function (t) { return t.getCallSignatures().length > 0; }) && !test(function (t) { return t.getProperties().length > 0; }) || isExpressionInCallExpression(node)) { - return typeIdx === 9 /* property */ ? 11 /* member */ : 10 /* function */; - } - } - } - return typeIdx; -} -function isLocalDeclaration(decl, sourceFile) { - if (isBindingElement(decl)) { - decl = getDeclarationForBindingElement(decl); - } - if (isVariableDeclaration(decl)) { - return (!isSourceFile(decl.parent.parent.parent) || isCatchClause(decl.parent)) && decl.getSourceFile() === sourceFile; - } - else if (isFunctionDeclaration(decl)) { - return !isSourceFile(decl.parent) && decl.getSourceFile() === sourceFile; - } - return false; -} -function getDeclarationForBindingElement(element) { - while (true) { - if (isBindingElement(element.parent.parent)) { - element = element.parent.parent; - } - else { - return element.parent.parent; - } - } -} -function inImportClause(node) { - var parent2 = node.parent; - return parent2 && (isImportClause(parent2) || isImportSpecifier(parent2) || isNamespaceImport(parent2)); -} -function isExpressionInCallExpression(node) { - while (isRightSideOfQualifiedNameOrPropertyAccess2(node)) { - node = node.parent; - } - return isCallExpression(node.parent) && node.parent.expression === node; -} -function isRightSideOfQualifiedNameOrPropertyAccess2(node) { - return isQualifiedName(node.parent) && node.parent.right === node || isPropertyAccessExpression(node.parent) && node.parent.name === node; -} -var tokenFromDeclarationMapping = /* @__PURE__ */ new Map([ - [260 /* VariableDeclaration */, 7 /* variable */], - [169 /* Parameter */, 6 /* parameter */], - [172 /* PropertyDeclaration */, 9 /* property */], - [267 /* ModuleDeclaration */, 3 /* namespace */], - [266 /* EnumDeclaration */, 1 /* enum */], - [306 /* EnumMember */, 8 /* enumMember */], - [263 /* ClassDeclaration */, 0 /* class */], - [174 /* MethodDeclaration */, 11 /* member */], - [262 /* FunctionDeclaration */, 10 /* function */], - [218 /* FunctionExpression */, 10 /* function */], - [173 /* MethodSignature */, 11 /* member */], - [177 /* GetAccessor */, 9 /* property */], - [178 /* SetAccessor */, 9 /* property */], - [171 /* PropertySignature */, 9 /* property */], - [264 /* InterfaceDeclaration */, 2 /* interface */], - [265 /* TypeAliasDeclaration */, 5 /* type */], - [168 /* TypeParameter */, 4 /* typeParameter */], - [303 /* PropertyAssignment */, 9 /* property */], - [304 /* ShorthandPropertyAssignment */, 9 /* property */] -]); -// src/services/services.ts -var servicesVersion = "0.8"; -function createNode(kind, pos, end, parent2) { - var node = isNodeKind(kind) ? new NodeObject(kind, pos, end) : kind === 80 /* Identifier */ ? new IdentifierObject(80 /* Identifier */, pos, end) : kind === 81 /* PrivateIdentifier */ ? new PrivateIdentifierObject(81 /* PrivateIdentifier */, pos, end) : new TokenObject(kind, pos, end); - node.parent = parent2; - node.flags = parent2.flags & 101441536 /* ContextFlags */; - return node; -} -var NodeObject = /** @class */ (function () { - function NodeObject(kind, pos, end) { - this.pos = pos; - this.end = end; - this.flags = 0 /* None */; - this.modifierFlagsCache = 0 /* None */; - this.transformFlags = 0 /* None */; - this.parent = void 0; - this.kind = kind; - } - NodeObject.prototype.assertHasRealPosition = function (message) { - Debug.assert(!positionIsSynthesized(this.pos) && !positionIsSynthesized(this.end), message || "Node must have a real position for this operation"); - }; - NodeObject.prototype.getSourceFile = function () { - return getSourceFileOfNode(this); - }; - NodeObject.prototype.getStart = function (sourceFile, includeJsDocComment) { - this.assertHasRealPosition(); - return getTokenPosOfNode(this, sourceFile, includeJsDocComment); - }; - NodeObject.prototype.getFullStart = function () { - this.assertHasRealPosition(); - return this.pos; - }; - NodeObject.prototype.getEnd = function () { - this.assertHasRealPosition(); - return this.end; - }; - NodeObject.prototype.getWidth = function (sourceFile) { - this.assertHasRealPosition(); - return this.getEnd() - this.getStart(sourceFile); - }; - NodeObject.prototype.getFullWidth = function () { - this.assertHasRealPosition(); - return this.end - this.pos; - }; - NodeObject.prototype.getLeadingTriviaWidth = function (sourceFile) { - this.assertHasRealPosition(); - return this.getStart(sourceFile) - this.pos; - }; - NodeObject.prototype.getFullText = function (sourceFile) { - this.assertHasRealPosition(); - return (sourceFile || this.getSourceFile()).text.substring(this.pos, this.end); - }; - NodeObject.prototype.getText = function (sourceFile) { - this.assertHasRealPosition(); - if (!sourceFile) { - sourceFile = this.getSourceFile(); - } - return sourceFile.text.substring(this.getStart(sourceFile), this.getEnd()); - }; - NodeObject.prototype.getChildCount = function (sourceFile) { - return this.getChildren(sourceFile).length; - }; - NodeObject.prototype.getChildAt = function (index, sourceFile) { - return this.getChildren(sourceFile)[index]; - }; - NodeObject.prototype.getChildren = function (sourceFile) { - this.assertHasRealPosition("Node without a real position cannot be scanned and thus has no token nodes - use forEachChild and collect the result if that's fine"); - return this._children || (this._children = createChildren(this, sourceFile)); - }; - NodeObject.prototype.getFirstToken = function (sourceFile) { - this.assertHasRealPosition(); - var children = this.getChildren(sourceFile); - if (!children.length) { - return void 0; - } - var child = find(children, function (kid) { return kid.kind < 316 /* FirstJSDocNode */ || kid.kind > 357; } /* LastJSDocNode */); - return child.kind < 166 /* FirstNode */ ? child : child.getFirstToken(sourceFile); - }; - NodeObject.prototype.getLastToken = function (sourceFile) { - this.assertHasRealPosition(); - var children = this.getChildren(sourceFile); - var child = lastOrUndefined(children); - if (!child) { - return void 0; - } - return child.kind < 166 /* FirstNode */ ? child : child.getLastToken(sourceFile); - }; - NodeObject.prototype.forEachChild = function (cbNode, cbNodeArray) { - return forEachChild(this, cbNode, cbNodeArray); - }; - return NodeObject; -}()); -function createChildren(node, sourceFile) { - if (!isNodeKind(node.kind)) { - return emptyArray; - } - var children = []; - if (isJSDocCommentContainingNode(node)) { - node.forEachChild(function (child) { - children.push(child); - }); - return children; - } - scanner.setText((sourceFile || node.getSourceFile()).text); - var pos = node.pos; - var processNode = function (child) { - addSyntheticNodes(children, pos, child.pos, node); - children.push(child); - pos = child.end; - }; - var processNodes = function (nodes) { - addSyntheticNodes(children, pos, nodes.pos, node); - children.push(createSyntaxList(nodes, node)); - pos = nodes.end; - }; - forEach(node.jsDoc, processNode); - pos = node.pos; - node.forEachChild(processNode, processNodes); - addSyntheticNodes(children, pos, node.end, node); - scanner.setText(void 0); - return children; -} -function addSyntheticNodes(nodes, pos, end, parent2) { - scanner.resetTokenState(pos); - while (pos < end) { - var token = scanner.scan(); - var textPos = scanner.getTokenEnd(); - if (textPos <= end) { - if (token === 80 /* Identifier */) { - if (hasTabstop(parent2)) { - continue; - } - Debug.fail("Did not expect ".concat(Debug.formatSyntaxKind(parent2.kind), " to have an Identifier in its trivia")); - } - nodes.push(createNode(token, pos, textPos, parent2)); - } - pos = textPos; - if (token === 1 /* EndOfFileToken */) { - break; - } - } -} -function createSyntaxList(nodes, parent2) { - var e_724, _t; - var list = createNode(358 /* SyntaxList */, nodes.pos, nodes.end, parent2); - list._children = []; - var pos = nodes.pos; - try { - for (var nodes_9 = __values(nodes), nodes_9_1 = nodes_9.next(); !nodes_9_1.done; nodes_9_1 = nodes_9.next()) { - var node = nodes_9_1.value; - addSyntheticNodes(list._children, pos, node.pos, parent2); - list._children.push(node); - pos = node.end; - } - } - catch (e_724_1) { e_724 = { error: e_724_1 }; } - finally { - try { - if (nodes_9_1 && !nodes_9_1.done && (_t = nodes_9.return)) _t.call(nodes_9); - } - finally { if (e_724) throw e_724.error; } - } - addSyntheticNodes(list._children, pos, nodes.end, parent2); - return list; -} -var TokenOrIdentifierObject = /** @class */ (function () { - function TokenOrIdentifierObject(pos, end) { - this.pos = pos; - this.end = end; - this.flags = 0 /* None */; - this.modifierFlagsCache = 0 /* None */; - this.transformFlags = 0 /* None */; - this.parent = void 0; - } - TokenOrIdentifierObject.prototype.getSourceFile = function () { - return getSourceFileOfNode(this); - }; - TokenOrIdentifierObject.prototype.getStart = function (sourceFile, includeJsDocComment) { - return getTokenPosOfNode(this, sourceFile, includeJsDocComment); - }; - TokenOrIdentifierObject.prototype.getFullStart = function () { - return this.pos; - }; - TokenOrIdentifierObject.prototype.getEnd = function () { - return this.end; - }; - TokenOrIdentifierObject.prototype.getWidth = function (sourceFile) { - return this.getEnd() - this.getStart(sourceFile); - }; - TokenOrIdentifierObject.prototype.getFullWidth = function () { - return this.end - this.pos; - }; - TokenOrIdentifierObject.prototype.getLeadingTriviaWidth = function (sourceFile) { - return this.getStart(sourceFile) - this.pos; - }; - TokenOrIdentifierObject.prototype.getFullText = function (sourceFile) { - return (sourceFile || this.getSourceFile()).text.substring(this.pos, this.end); - }; - TokenOrIdentifierObject.prototype.getText = function (sourceFile) { - if (!sourceFile) { - sourceFile = this.getSourceFile(); - } - return sourceFile.text.substring(this.getStart(sourceFile), this.getEnd()); - }; - TokenOrIdentifierObject.prototype.getChildCount = function () { - return this.getChildren().length; - }; - TokenOrIdentifierObject.prototype.getChildAt = function (index) { - return this.getChildren()[index]; - }; - TokenOrIdentifierObject.prototype.getChildren = function () { - return this.kind === 1 /* EndOfFileToken */ ? this.jsDoc || emptyArray : emptyArray; - }; - TokenOrIdentifierObject.prototype.getFirstToken = function () { - return void 0; - }; - TokenOrIdentifierObject.prototype.getLastToken = function () { - return void 0; - }; - TokenOrIdentifierObject.prototype.forEachChild = function () { - return void 0; - }; - return TokenOrIdentifierObject; -}()); -var SymbolObject = /** @class */ (function () { - function SymbolObject(flags, name) { - this.id = 0; - this.mergeId = 0; - this.flags = flags; - this.escapedName = name; - } - SymbolObject.prototype.getFlags = function () { - return this.flags; - }; - Object.defineProperty(SymbolObject.prototype, "name", { - get: function () { - return symbolName(this); - }, - enumerable: false, - configurable: true - }); - SymbolObject.prototype.getEscapedName = function () { - return this.escapedName; - }; - SymbolObject.prototype.getName = function () { - return this.name; - }; - SymbolObject.prototype.getDeclarations = function () { - return this.declarations; - }; - SymbolObject.prototype.getDocumentationComment = function (checker) { - if (!this.documentationComment) { - this.documentationComment = emptyArray; - if (!this.declarations && isTransientSymbol(this) && this.links.target && isTransientSymbol(this.links.target) && this.links.target.links.tupleLabelDeclaration) { - var labelDecl = this.links.target.links.tupleLabelDeclaration; - this.documentationComment = getDocumentationComment([labelDecl], checker); - } - else { - this.documentationComment = getDocumentationComment(this.declarations, checker); - } - } - return this.documentationComment; - }; - SymbolObject.prototype.getContextualDocumentationComment = function (context, checker) { - if (context) { - if (isGetAccessor(context)) { - if (!this.contextualGetAccessorDocumentationComment) { - this.contextualGetAccessorDocumentationComment = getDocumentationComment(filter(this.declarations, isGetAccessor), checker); - } - if (length(this.contextualGetAccessorDocumentationComment)) { - return this.contextualGetAccessorDocumentationComment; - } - } - if (isSetAccessor(context)) { - if (!this.contextualSetAccessorDocumentationComment) { - this.contextualSetAccessorDocumentationComment = getDocumentationComment(filter(this.declarations, isSetAccessor), checker); - } - if (length(this.contextualSetAccessorDocumentationComment)) { - return this.contextualSetAccessorDocumentationComment; - } - } - } - return this.getDocumentationComment(checker); - }; - SymbolObject.prototype.getJsDocTags = function (checker) { - if (this.tags === void 0) { - this.tags = getJsDocTagsOfDeclarations(this.declarations, checker); - } - return this.tags; - }; - SymbolObject.prototype.getContextualJsDocTags = function (context, checker) { - if (context) { - if (isGetAccessor(context)) { - if (!this.contextualGetAccessorTags) { - this.contextualGetAccessorTags = getJsDocTagsOfDeclarations(filter(this.declarations, isGetAccessor), checker); - } - if (length(this.contextualGetAccessorTags)) { - return this.contextualGetAccessorTags; - } - } - if (isSetAccessor(context)) { - if (!this.contextualSetAccessorTags) { - this.contextualSetAccessorTags = getJsDocTagsOfDeclarations(filter(this.declarations, isSetAccessor), checker); - } - if (length(this.contextualSetAccessorTags)) { - return this.contextualSetAccessorTags; - } - } - } - return this.getJsDocTags(checker); - }; - return SymbolObject; -}()); -var TokenObject = /** @class */ (function (_super) { - __extends(TokenObject, _super); - function TokenObject(kind, pos, end) { - var _this = _super.call(this, pos, end) || this; - _this.kind = kind; - return _this; - } - return TokenObject; -}(TokenOrIdentifierObject)); -var IdentifierObject = /** @class */ (function (_super) { - __extends(IdentifierObject, _super); - function IdentifierObject(_kind, pos, end) { - var _this = _super.call(this, pos, end) || this; - _this.kind = 80 /* Identifier */; - return _this; - } - Object.defineProperty(IdentifierObject.prototype, "text", { - get: function () { - return idText(this); - }, - enumerable: false, - configurable: true - }); - return IdentifierObject; -}(TokenOrIdentifierObject)); -IdentifierObject.prototype.kind = 80 /* Identifier */; -var PrivateIdentifierObject = /** @class */ (function (_super) { - __extends(PrivateIdentifierObject, _super); - function PrivateIdentifierObject(_kind, pos, end) { - var _this = _super.call(this, pos, end) || this; - _this.kind = 81 /* PrivateIdentifier */; - return _this; - } - Object.defineProperty(PrivateIdentifierObject.prototype, "text", { - get: function () { - return idText(this); - }, - enumerable: false, - configurable: true - }); - return PrivateIdentifierObject; -}(TokenOrIdentifierObject)); -PrivateIdentifierObject.prototype.kind = 81 /* PrivateIdentifier */; -var TypeObject = /** @class */ (function () { - function TypeObject(checker, flags) { - this.checker = checker; - this.flags = flags; - } - TypeObject.prototype.getFlags = function () { - return this.flags; - }; - TypeObject.prototype.getSymbol = function () { - return this.symbol; - }; - TypeObject.prototype.getProperties = function () { - return this.checker.getPropertiesOfType(this); - }; - TypeObject.prototype.getProperty = function (propertyName) { - return this.checker.getPropertyOfType(this, propertyName); - }; - TypeObject.prototype.getApparentProperties = function () { - return this.checker.getAugmentedPropertiesOfType(this); - }; - TypeObject.prototype.getCallSignatures = function () { - return this.checker.getSignaturesOfType(this, 0 /* Call */); - }; - TypeObject.prototype.getConstructSignatures = function () { - return this.checker.getSignaturesOfType(this, 1 /* Construct */); - }; - TypeObject.prototype.getStringIndexType = function () { - return this.checker.getIndexTypeOfType(this, 0 /* String */); - }; - TypeObject.prototype.getNumberIndexType = function () { - return this.checker.getIndexTypeOfType(this, 1 /* Number */); - }; - TypeObject.prototype.getBaseTypes = function () { - return this.isClassOrInterface() ? this.checker.getBaseTypes(this) : void 0; - }; - TypeObject.prototype.isNullableType = function () { - return this.checker.isNullableType(this); - }; - TypeObject.prototype.getNonNullableType = function () { - return this.checker.getNonNullableType(this); - }; - TypeObject.prototype.getNonOptionalType = function () { - return this.checker.getNonOptionalType(this); - }; - TypeObject.prototype.getConstraint = function () { - return this.checker.getBaseConstraintOfType(this); - }; - TypeObject.prototype.getDefault = function () { - return this.checker.getDefaultFromTypeParameter(this); - }; - TypeObject.prototype.isUnion = function () { - return !!(this.flags & 1048576 /* Union */); - }; - TypeObject.prototype.isIntersection = function () { - return !!(this.flags & 2097152 /* Intersection */); - }; - TypeObject.prototype.isUnionOrIntersection = function () { - return !!(this.flags & 3145728 /* UnionOrIntersection */); - }; - TypeObject.prototype.isLiteral = function () { - return !!(this.flags & (128 /* StringLiteral */ | 256 /* NumberLiteral */ | 2048 /* BigIntLiteral */)); - }; - TypeObject.prototype.isStringLiteral = function () { - return !!(this.flags & 128 /* StringLiteral */); - }; - TypeObject.prototype.isNumberLiteral = function () { - return !!(this.flags & 256 /* NumberLiteral */); - }; - TypeObject.prototype.isTypeParameter = function () { - return !!(this.flags & 262144 /* TypeParameter */); - }; - TypeObject.prototype.isClassOrInterface = function () { - return !!(getObjectFlags(this) & 3 /* ClassOrInterface */); - }; - TypeObject.prototype.isClass = function () { - return !!(getObjectFlags(this) & 1 /* Class */); - }; - TypeObject.prototype.isIndexType = function () { - return !!(this.flags & 4194304 /* Index */); - }; - Object.defineProperty(TypeObject.prototype, "typeArguments", { - /** - * This polyfills `referenceType.typeArguments` for API consumers - */ - get: function () { - if (getObjectFlags(this) & 4 /* Reference */) { - return this.checker.getTypeArguments(this); - } - return void 0; - }, - enumerable: false, - configurable: true - }); - return TypeObject; -}()); -var SignatureObject = /** @class */ (function () { - // same - function SignatureObject(checker, flags) { - this.checker = checker; - this.flags = flags; - } - SignatureObject.prototype.getDeclaration = function () { - return this.declaration; - }; - SignatureObject.prototype.getTypeParameters = function () { - return this.typeParameters; - }; - SignatureObject.prototype.getParameters = function () { - return this.parameters; - }; - SignatureObject.prototype.getReturnType = function () { - return this.checker.getReturnTypeOfSignature(this); - }; - SignatureObject.prototype.getTypeParameterAtPosition = function (pos) { - var type = this.checker.getParameterType(this, pos); - if (type.isIndexType() && isThisTypeParameter(type.type)) { - var constraint = type.type.getConstraint(); - if (constraint) { - return this.checker.getIndexType(constraint); - } - } - return type; - }; - SignatureObject.prototype.getDocumentationComment = function () { - return this.documentationComment || (this.documentationComment = getDocumentationComment(singleElementArray(this.declaration), this.checker)); - }; - SignatureObject.prototype.getJsDocTags = function () { - return this.jsDocTags || (this.jsDocTags = getJsDocTagsOfDeclarations(singleElementArray(this.declaration), this.checker)); - }; - return SignatureObject; -}()); -function hasJSDocInheritDocTag(node) { - return getJSDocTags(node).some(function (tag) { return tag.tagName.text === "inheritDoc" || tag.tagName.text === "inheritdoc"; }); -} -function getJsDocTagsOfDeclarations(declarations, checker) { - var e_725, _t; - if (!declarations) - return emptyArray; - var tags = ts_JsDoc_exports.getJsDocTagsFromDeclarations(declarations, checker); - if (checker && (tags.length === 0 || declarations.some(hasJSDocInheritDocTag))) { - var seenSymbols_1 = /* @__PURE__ */ new Set(); - var _loop_51 = function (declaration) { - var inheritedTags = findBaseOfDeclaration(checker, declaration, function (symbol) { - var _a; - if (!seenSymbols_1.has(symbol)) { - seenSymbols_1.add(symbol); - if (declaration.kind === 177 /* GetAccessor */ || declaration.kind === 178 /* SetAccessor */) { - return symbol.getContextualJsDocTags(declaration, checker); - } - return ((_a = symbol.declarations) == null ? void 0 : _a.length) === 1 ? symbol.getJsDocTags() : void 0; - } - }); - if (inheritedTags) { - tags = __spreadArray(__spreadArray([], __read(inheritedTags), false), __read(tags), false); - } - }; - try { - for (var declarations_16 = __values(declarations), declarations_16_1 = declarations_16.next(); !declarations_16_1.done; declarations_16_1 = declarations_16.next()) { - var declaration = declarations_16_1.value; - _loop_51(declaration); - } - } - catch (e_725_1) { e_725 = { error: e_725_1 }; } - finally { - try { - if (declarations_16_1 && !declarations_16_1.done && (_t = declarations_16.return)) _t.call(declarations_16); - } - finally { if (e_725) throw e_725.error; } - } - } - return tags; -} -function getDocumentationComment(declarations, checker) { - var e_726, _t; - if (!declarations) - return emptyArray; - var doc = ts_JsDoc_exports.getJsDocCommentsFromDeclarations(declarations, checker); - if (checker && (doc.length === 0 || declarations.some(hasJSDocInheritDocTag))) { - var seenSymbols_2 = /* @__PURE__ */ new Set(); - var _loop_52 = function (declaration) { - var inheritedDocs = findBaseOfDeclaration(checker, declaration, function (symbol) { - if (!seenSymbols_2.has(symbol)) { - seenSymbols_2.add(symbol); - if (declaration.kind === 177 /* GetAccessor */ || declaration.kind === 178 /* SetAccessor */) { - return symbol.getContextualDocumentationComment(declaration, checker); - } - return symbol.getDocumentationComment(checker); - } - }); - if (inheritedDocs) - doc = doc.length === 0 ? inheritedDocs.slice() : inheritedDocs.concat(lineBreakPart(), doc); - }; - try { - for (var declarations_17 = __values(declarations), declarations_17_1 = declarations_17.next(); !declarations_17_1.done; declarations_17_1 = declarations_17.next()) { - var declaration = declarations_17_1.value; - _loop_52(declaration); - } - } - catch (e_726_1) { e_726 = { error: e_726_1 }; } - finally { - try { - if (declarations_17_1 && !declarations_17_1.done && (_t = declarations_17.return)) _t.call(declarations_17); - } - finally { if (e_726) throw e_726.error; } - } - } - return doc; -} -function findBaseOfDeclaration(checker, declaration, cb) { - var _a; - var classOrInterfaceDeclaration = ((_a = declaration.parent) == null ? void 0 : _a.kind) === 176 /* Constructor */ ? declaration.parent.parent : declaration.parent; - if (!classOrInterfaceDeclaration) - return; - var isStaticMember = hasStaticModifier(declaration); - return firstDefined(getAllSuperTypeNodes(classOrInterfaceDeclaration), function (superTypeNode) { - var baseType = checker.getTypeAtLocation(superTypeNode); - var type = isStaticMember && baseType.symbol ? checker.getTypeOfSymbol(baseType.symbol) : baseType; - var symbol = checker.getPropertyOfType(type, declaration.symbol.name); - return symbol ? cb(symbol) : void 0; - }); -} -var SourceFileObject = /** @class */ (function (_super) { - __extends(SourceFileObject, _super); - function SourceFileObject(kind, pos, end) { - var _this = _super.call(this, kind, pos, end) || this; - _this.kind = 312 /* SourceFile */; - return _this; - } - SourceFileObject.prototype.update = function (newText, textChangeRange) { - return updateSourceFile(this, newText, textChangeRange); - }; - SourceFileObject.prototype.getLineAndCharacterOfPosition = function (position) { - return getLineAndCharacterOfPosition(this, position); - }; - SourceFileObject.prototype.getLineStarts = function () { - return getLineStarts(this); - }; - SourceFileObject.prototype.getPositionOfLineAndCharacter = function (line, character, allowEdits) { - return computePositionOfLineAndCharacter(getLineStarts(this), line, character, this.text, allowEdits); - }; - SourceFileObject.prototype.getLineEndOfPosition = function (pos) { - var line = this.getLineAndCharacterOfPosition(pos).line; - var lineStarts = this.getLineStarts(); - var lastCharPos; - if (line + 1 >= lineStarts.length) { - lastCharPos = this.getEnd(); - } - if (!lastCharPos) { - lastCharPos = lineStarts[line + 1] - 1; - } - var fullText = this.getFullText(); - return fullText[lastCharPos] === "\n" && fullText[lastCharPos - 1] === "\r" ? lastCharPos - 1 : lastCharPos; - }; - SourceFileObject.prototype.getNamedDeclarations = function () { - if (!this.namedDeclarations) { - this.namedDeclarations = this.computeNamedDeclarations(); - } - return this.namedDeclarations; - }; - SourceFileObject.prototype.computeNamedDeclarations = function () { - var result = createMultiMap(); - this.forEachChild(visit); - return result; - function addDeclaration(declaration) { - var name = getDeclarationName(declaration); - if (name) { - result.add(name, declaration); - } - } - function getDeclarations(name) { - var declarations = result.get(name); - if (!declarations) { - result.set(name, declarations = []); - } - return declarations; - } - function getDeclarationName(declaration) { - var name = getNonAssignedNameOfDeclaration(declaration); - return name && (isComputedPropertyName(name) && isPropertyAccessExpression(name.expression) ? name.expression.name.text : isPropertyName(name) ? getNameFromPropertyName(name) : void 0); - } - function visit(node) { - switch (node.kind) { - case 262 /* FunctionDeclaration */: - case 218 /* FunctionExpression */: - case 174 /* MethodDeclaration */: - case 173 /* MethodSignature */: - var functionDeclaration = node; - var declarationName = getDeclarationName(functionDeclaration); - if (declarationName) { - var declarations = getDeclarations(declarationName); - var lastDeclaration = lastOrUndefined(declarations); - if (lastDeclaration && functionDeclaration.parent === lastDeclaration.parent && functionDeclaration.symbol === lastDeclaration.symbol) { - if (functionDeclaration.body && !lastDeclaration.body) { - declarations[declarations.length - 1] = functionDeclaration; - } - } - else { - declarations.push(functionDeclaration); - } - } - forEachChild(node, visit); - break; - case 263 /* ClassDeclaration */: - case 231 /* ClassExpression */: - case 264 /* InterfaceDeclaration */: - case 265 /* TypeAliasDeclaration */: - case 266 /* EnumDeclaration */: - case 267 /* ModuleDeclaration */: - case 271 /* ImportEqualsDeclaration */: - case 281 /* ExportSpecifier */: - case 276 /* ImportSpecifier */: - case 273 /* ImportClause */: - case 274 /* NamespaceImport */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - case 187 /* TypeLiteral */: - addDeclaration(node); - forEachChild(node, visit); - break; - case 169 /* Parameter */: - if (!hasSyntacticModifier(node, 16476 /* ParameterPropertyModifier */)) { - break; - } - case 260 /* VariableDeclaration */: - case 208 /* BindingElement */: { - var decl = node; - if (isBindingPattern(decl.name)) { - forEachChild(decl.name, visit); - break; - } - if (decl.initializer) { - visit(decl.initializer); - } - } - case 306 /* EnumMember */: - case 172 /* PropertyDeclaration */: - case 171 /* PropertySignature */: - addDeclaration(node); - break; - case 278 /* ExportDeclaration */: - var exportDeclaration = node; - if (exportDeclaration.exportClause) { - if (isNamedExports(exportDeclaration.exportClause)) { - forEach(exportDeclaration.exportClause.elements, visit); - } - else { - visit(exportDeclaration.exportClause.name); - } - } - break; - case 272 /* ImportDeclaration */: - var importClause = node.importClause; - if (importClause) { - if (importClause.name) { - addDeclaration(importClause.name); - } - if (importClause.namedBindings) { - if (importClause.namedBindings.kind === 274 /* NamespaceImport */) { - addDeclaration(importClause.namedBindings); - } - else { - forEach(importClause.namedBindings.elements, visit); - } - } - } - break; - case 226 /* BinaryExpression */: - if (getAssignmentDeclarationKind(node) !== 0 /* None */) { - addDeclaration(node); - } - default: - forEachChild(node, visit); - } - } - }; - return SourceFileObject; -}(NodeObject)); -var SourceMapSourceObject = /** @class */ (function () { - function SourceMapSourceObject(fileName, text, skipTrivia2) { - this.fileName = fileName; - this.text = text; - this.skipTrivia = skipTrivia2; - } - SourceMapSourceObject.prototype.getLineAndCharacterOfPosition = function (pos) { - return getLineAndCharacterOfPosition(this, pos); - }; - return SourceMapSourceObject; -}()); -function getServicesObjectAllocator() { - return { - getNodeConstructor: function () { return NodeObject; }, - getTokenConstructor: function () { return TokenObject; }, - getIdentifierConstructor: function () { return IdentifierObject; }, - getPrivateIdentifierConstructor: function () { return PrivateIdentifierObject; }, - getSourceFileConstructor: function () { return SourceFileObject; }, - getSymbolConstructor: function () { return SymbolObject; }, - getTypeConstructor: function () { return TypeObject; }, - getSignatureConstructor: function () { return SignatureObject; }, - getSourceMapSourceConstructor: function () { return SourceMapSourceObject; } - }; -} -function toEditorSettings(optionsAsMap) { - var allPropertiesAreCamelCased = true; - for (var key in optionsAsMap) { - if (hasProperty(optionsAsMap, key) && !isCamelCase(key)) { - allPropertiesAreCamelCased = false; - break; - } - } - if (allPropertiesAreCamelCased) { - return optionsAsMap; - } - var settings = {}; - for (var key in optionsAsMap) { - if (hasProperty(optionsAsMap, key)) { - var newKey = isCamelCase(key) ? key : key.charAt(0).toLowerCase() + key.substr(1); - settings[newKey] = optionsAsMap[key]; - } - } - return settings; -} -function isCamelCase(s) { - return !s.length || s.charAt(0) === s.charAt(0).toLowerCase(); -} -function displayPartsToString(displayParts) { - if (displayParts) { - return map(displayParts, function (displayPart2) { return displayPart2.text; }).join(""); - } - return ""; -} -function getDefaultCompilerOptions2() { - return { - target: 1 /* ES5 */, - jsx: 1 /* Preserve */ - }; -} -function getSupportedCodeFixes() { - return ts_codefix_exports.getSupportedErrorCodes(); -} -var SyntaxTreeCache = /** @class */ (function () { - function SyntaxTreeCache(host) { - this.host = host; - } - SyntaxTreeCache.prototype.getCurrentSourceFile = function (fileName) { - var _a, _b, _c, _d, _e, _f, _g, _h; - var scriptSnapshot = this.host.getScriptSnapshot(fileName); - if (!scriptSnapshot) { - throw new Error("Could not find file: '" + fileName + "'."); - } - var scriptKind = getScriptKind(fileName, this.host); - var version2 = this.host.getScriptVersion(fileName); - var sourceFile; - if (this.currentFileName !== fileName) { - var options = { - languageVersion: 99 /* Latest */, - impliedNodeFormat: getImpliedNodeFormatForFile(toPath(fileName, this.host.getCurrentDirectory(), ((_c = (_b = (_a = this.host).getCompilerHost) == null ? void 0 : _b.call(_a)) == null ? void 0 : _c.getCanonicalFileName) || hostGetCanonicalFileName(this.host)), (_h = (_g = (_f = (_e = (_d = this.host).getCompilerHost) == null ? void 0 : _e.call(_d)) == null ? void 0 : _f.getModuleResolutionCache) == null ? void 0 : _g.call(_f)) == null ? void 0 : _h.getPackageJsonInfoCache(), this.host, this.host.getCompilationSettings()), - setExternalModuleIndicator: getSetExternalModuleIndicator(this.host.getCompilationSettings()) - }; - sourceFile = createLanguageServiceSourceFile(fileName, scriptSnapshot, options, version2, - /*setNodeParents*/ - true, scriptKind); - } - else if (this.currentFileVersion !== version2) { - var editRange = scriptSnapshot.getChangeRange(this.currentFileScriptSnapshot); - sourceFile = updateLanguageServiceSourceFile(this.currentSourceFile, scriptSnapshot, version2, editRange); - } - if (sourceFile) { - this.currentFileVersion = version2; - this.currentFileName = fileName; - this.currentFileScriptSnapshot = scriptSnapshot; - this.currentSourceFile = sourceFile; - } - return this.currentSourceFile; - }; - return SyntaxTreeCache; -}()); -function setSourceFileFields(sourceFile, scriptSnapshot, version2) { - sourceFile.version = version2; - sourceFile.scriptSnapshot = scriptSnapshot; -} -function createLanguageServiceSourceFile(fileName, scriptSnapshot, scriptTargetOrOptions, version2, setNodeParents, scriptKind) { - var sourceFile = createSourceFile(fileName, getSnapshotText(scriptSnapshot), scriptTargetOrOptions, setNodeParents, scriptKind); - setSourceFileFields(sourceFile, scriptSnapshot, version2); - return sourceFile; -} -function updateLanguageServiceSourceFile(sourceFile, scriptSnapshot, version2, textChangeRange, aggressiveChecks) { - if (textChangeRange) { - if (version2 !== sourceFile.version) { - var newText = void 0; - var prefix = textChangeRange.span.start !== 0 ? sourceFile.text.substr(0, textChangeRange.span.start) : ""; - var suffix = textSpanEnd(textChangeRange.span) !== sourceFile.text.length ? sourceFile.text.substr(textSpanEnd(textChangeRange.span)) : ""; - if (textChangeRange.newLength === 0) { - newText = prefix && suffix ? prefix + suffix : prefix || suffix; - } - else { - var changedText = scriptSnapshot.getText(textChangeRange.span.start, textChangeRange.span.start + textChangeRange.newLength); - newText = prefix && suffix ? prefix + changedText + suffix : prefix ? prefix + changedText : changedText + suffix; - } - var newSourceFile = updateSourceFile(sourceFile, newText, textChangeRange, aggressiveChecks); - setSourceFileFields(newSourceFile, scriptSnapshot, version2); - newSourceFile.nameTable = void 0; - if (sourceFile !== newSourceFile && sourceFile.scriptSnapshot) { - if (sourceFile.scriptSnapshot.dispose) { - sourceFile.scriptSnapshot.dispose(); - } - sourceFile.scriptSnapshot = void 0; - } - return newSourceFile; - } - } - var options = { - languageVersion: sourceFile.languageVersion, - impliedNodeFormat: sourceFile.impliedNodeFormat, - setExternalModuleIndicator: sourceFile.setExternalModuleIndicator - }; - return createLanguageServiceSourceFile(sourceFile.fileName, scriptSnapshot, options, version2, - /*setNodeParents*/ - true, sourceFile.scriptKind); -} -var NoopCancellationToken = { - isCancellationRequested: returnFalse, - throwIfCancellationRequested: noop -}; -var CancellationTokenObject = /** @class */ (function () { - function CancellationTokenObject(cancellationToken) { - this.cancellationToken = cancellationToken; - } - CancellationTokenObject.prototype.isCancellationRequested = function () { - return this.cancellationToken.isCancellationRequested(); - }; - CancellationTokenObject.prototype.throwIfCancellationRequested = function () { - var _a; - if (this.isCancellationRequested()) { - (_a = tracing) == null ? void 0 : _a.instant(tracing.Phase.Session, "cancellationThrown", { kind: "CancellationTokenObject" }); - throw new OperationCanceledException(); - } - }; - return CancellationTokenObject; -}()); -var ThrottledCancellationToken = /** @class */ (function () { - function ThrottledCancellationToken(hostCancellationToken, throttleWaitMilliseconds) { - if (throttleWaitMilliseconds === void 0) { throttleWaitMilliseconds = 20; } - this.hostCancellationToken = hostCancellationToken; - this.throttleWaitMilliseconds = throttleWaitMilliseconds; - // Store when we last tried to cancel. Checking cancellation can be expensive (as we have - // to marshall over to the host layer). So we only bother actually checking once enough - // time has passed. - this.lastCancellationCheckTime = 0; - } - ThrottledCancellationToken.prototype.isCancellationRequested = function () { - var time = timestamp(); - var duration = Math.abs(time - this.lastCancellationCheckTime); - if (duration >= this.throttleWaitMilliseconds) { - this.lastCancellationCheckTime = time; - return this.hostCancellationToken.isCancellationRequested(); - } - return false; - }; - ThrottledCancellationToken.prototype.throwIfCancellationRequested = function () { - var _a; - if (this.isCancellationRequested()) { - (_a = tracing) == null ? void 0 : _a.instant(tracing.Phase.Session, "cancellationThrown", { kind: "ThrottledCancellationToken" }); - throw new OperationCanceledException(); - } - }; - return ThrottledCancellationToken; -}()); -var invalidOperationsInPartialSemanticMode = [ - "getSemanticDiagnostics", - "getSuggestionDiagnostics", - "getCompilerOptionsDiagnostics", - "getSemanticClassifications", - "getEncodedSemanticClassifications", - "getCodeFixesAtPosition", - "getCombinedCodeFix", - "applyCodeActionCommand", - "organizeImports", - "getEditsForFileRename", - "getEmitOutput", - "getApplicableRefactors", - "getEditsForRefactor", - "prepareCallHierarchy", - "provideCallHierarchyIncomingCalls", - "provideCallHierarchyOutgoingCalls", - "provideInlayHints", - "getSupportedCodeFixes" -]; -var invalidOperationsInSyntacticMode = __spreadArray(__spreadArray([], __read(invalidOperationsInPartialSemanticMode), false), [ - "getCompletionsAtPosition", - "getCompletionEntryDetails", - "getCompletionEntrySymbol", - "getSignatureHelpItems", - "getQuickInfoAtPosition", - "getDefinitionAtPosition", - "getDefinitionAndBoundSpan", - "getImplementationAtPosition", - "getTypeDefinitionAtPosition", - "getReferencesAtPosition", - "findReferences", - "getDocumentHighlights", - "getNavigateToItems", - "getRenameInfo", - "findRenameLocations", - "getApplicableRefactors" -], false); -function createLanguageService(host, documentRegistry, syntaxOnlyOrLanguageServiceMode) { - var _t; - if (documentRegistry === void 0) { documentRegistry = createDocumentRegistry(host.useCaseSensitiveFileNames && host.useCaseSensitiveFileNames(), host.getCurrentDirectory()); } - var _a; - var languageServiceMode; - if (syntaxOnlyOrLanguageServiceMode === void 0) { - languageServiceMode = 0 /* Semantic */; - } - else if (typeof syntaxOnlyOrLanguageServiceMode === "boolean") { - languageServiceMode = syntaxOnlyOrLanguageServiceMode ? 2 /* Syntactic */ : 0 /* Semantic */; - } - else { - languageServiceMode = syntaxOnlyOrLanguageServiceMode; - } - var syntaxTreeCache = new SyntaxTreeCache(host); - var program; - var lastProjectVersion; - var lastTypesRootVersion = 0; - var cancellationToken = host.getCancellationToken ? new CancellationTokenObject(host.getCancellationToken()) : NoopCancellationToken; - var currentDirectory = host.getCurrentDirectory(); - maybeSetLocalizedDiagnosticMessages((_a = host.getLocalizedDiagnosticMessages) == null ? void 0 : _a.bind(host)); - function log(message) { - if (host.log) { - host.log(message); - } - } - var useCaseSensitiveFileNames2 = hostUsesCaseSensitiveFileNames(host); - var getCanonicalFileName = createGetCanonicalFileName(useCaseSensitiveFileNames2); - var sourceMapper = getSourceMapper({ - useCaseSensitiveFileNames: function () { return useCaseSensitiveFileNames2; }, - getCurrentDirectory: function () { return currentDirectory; }, - getProgram: getProgram, - fileExists: maybeBind(host, host.fileExists), - readFile: maybeBind(host, host.readFile), - getDocumentPositionMapper: maybeBind(host, host.getDocumentPositionMapper), - getSourceFileLike: maybeBind(host, host.getSourceFileLike), - log: log - }); - function getValidSourceFile(fileName) { - var sourceFile = program.getSourceFile(fileName); - if (!sourceFile) { - var error2 = new Error("Could not find source file: '".concat(fileName, "'.")); - error2.ProgramFiles = program.getSourceFiles().map(function (f) { return f.fileName; }); - throw error2; - } - return sourceFile; - } - function synchronizeHostData() { - var _a2, _b, _c; - Debug.assert(languageServiceMode !== 2 /* Syntactic */); - if (host.getProjectVersion) { - var hostProjectVersion = host.getProjectVersion(); - if (hostProjectVersion) { - if (lastProjectVersion === hostProjectVersion && !((_a2 = host.hasChangedAutomaticTypeDirectiveNames) == null ? void 0 : _a2.call(host))) { - return; - } - lastProjectVersion = hostProjectVersion; - } - } - var typeRootsVersion = host.getTypeRootsVersion ? host.getTypeRootsVersion() : 0; - if (lastTypesRootVersion !== typeRootsVersion) { - log("TypeRoots version has changed; provide new program"); - program = void 0; - lastTypesRootVersion = typeRootsVersion; - } - var rootFileNames = host.getScriptFileNames().slice(); - var newSettings = host.getCompilationSettings() || getDefaultCompilerOptions2(); - var hasInvalidatedResolutions = host.hasInvalidatedResolutions || returnFalse; - var hasInvalidatedLibResolutions = maybeBind(host, host.hasInvalidatedLibResolutions) || returnFalse; - var hasChangedAutomaticTypeDirectiveNames = maybeBind(host, host.hasChangedAutomaticTypeDirectiveNames); - var projectReferences = (_b = host.getProjectReferences) == null ? void 0 : _b.call(host); - var parsedCommandLines; - var compilerHost = { - getSourceFile: getOrCreateSourceFile, - getSourceFileByPath: getOrCreateSourceFileByPath, - getCancellationToken: function () { return cancellationToken; }, - getCanonicalFileName: getCanonicalFileName, - useCaseSensitiveFileNames: function () { return useCaseSensitiveFileNames2; }, - getNewLine: function () { return getNewLineCharacter(newSettings); }, - getDefaultLibFileName: function (options2) { return host.getDefaultLibFileName(options2); }, - writeFile: noop, - getCurrentDirectory: function () { return currentDirectory; }, - fileExists: function (fileName) { return host.fileExists(fileName); }, - readFile: function (fileName) { return host.readFile && host.readFile(fileName); }, - getSymlinkCache: maybeBind(host, host.getSymlinkCache), - realpath: maybeBind(host, host.realpath), - directoryExists: function (directoryName) { - return directoryProbablyExists(directoryName, host); - }, - getDirectories: function (path) { - return host.getDirectories ? host.getDirectories(path) : []; - }, - readDirectory: function (path, extensions, exclude, include, depth) { - Debug.checkDefined(host.readDirectory, "'LanguageServiceHost.readDirectory' must be implemented to correctly process 'projectReferences'"); - return host.readDirectory(path, extensions, exclude, include, depth); - }, - onReleaseOldSourceFile: onReleaseOldSourceFile, - onReleaseParsedCommandLine: onReleaseParsedCommandLine, - hasInvalidatedResolutions: hasInvalidatedResolutions, - hasInvalidatedLibResolutions: hasInvalidatedLibResolutions, - hasChangedAutomaticTypeDirectiveNames: hasChangedAutomaticTypeDirectiveNames, - trace: maybeBind(host, host.trace), - resolveModuleNames: maybeBind(host, host.resolveModuleNames), - getModuleResolutionCache: maybeBind(host, host.getModuleResolutionCache), - createHash: maybeBind(host, host.createHash), - resolveTypeReferenceDirectives: maybeBind(host, host.resolveTypeReferenceDirectives), - resolveModuleNameLiterals: maybeBind(host, host.resolveModuleNameLiterals), - resolveTypeReferenceDirectiveReferences: maybeBind(host, host.resolveTypeReferenceDirectiveReferences), - resolveLibrary: maybeBind(host, host.resolveLibrary), - useSourceOfProjectReferenceRedirect: maybeBind(host, host.useSourceOfProjectReferenceRedirect), - getParsedCommandLine: getParsedCommandLine - }; - var originalGetSourceFile = compilerHost.getSourceFile; - var getSourceFileWithCache = changeCompilerHostLikeToUseCache(compilerHost, function (fileName) { return toPath(fileName, currentDirectory, getCanonicalFileName); }, function () { - var args = []; - for (var _t = 0; _t < arguments.length; _t++) { - args[_t] = arguments[_t]; - } - return originalGetSourceFile.call.apply(originalGetSourceFile, __spreadArray([compilerHost], __read(args), false)); - }).getSourceFileWithCache; - compilerHost.getSourceFile = getSourceFileWithCache; - (_c = host.setCompilerHost) == null ? void 0 : _c.call(host, compilerHost); - var parseConfigHost = { - useCaseSensitiveFileNames: useCaseSensitiveFileNames2, - fileExists: function (fileName) { return compilerHost.fileExists(fileName); }, - readFile: function (fileName) { return compilerHost.readFile(fileName); }, - directoryExists: function (f) { return compilerHost.directoryExists(f); }, - getDirectories: function (f) { return compilerHost.getDirectories(f); }, - realpath: compilerHost.realpath, - readDirectory: function () { - var args = []; - for (var _t = 0; _t < arguments.length; _t++) { - args[_t] = arguments[_t]; - } - return compilerHost.readDirectory.apply(compilerHost, __spreadArray([], __read(args), false)); - }, - trace: compilerHost.trace, - getCurrentDirectory: compilerHost.getCurrentDirectory, - onUnRecoverableConfigFileDiagnostic: noop - }; - var documentRegistryBucketKey = documentRegistry.getKeyForCompilationSettings(newSettings); - var releasedScriptKinds = /* @__PURE__ */ new Set(); - if (isProgramUptoDate(program, rootFileNames, newSettings, function (_path, fileName) { return host.getScriptVersion(fileName); }, function (fileName) { return compilerHost.fileExists(fileName); }, hasInvalidatedResolutions, hasInvalidatedLibResolutions, hasChangedAutomaticTypeDirectiveNames, getParsedCommandLine, projectReferences)) { - compilerHost = void 0; - parsedCommandLines = void 0; - releasedScriptKinds = void 0; - return; - } - var options = { - rootNames: rootFileNames, - options: newSettings, - host: compilerHost, - oldProgram: program, - projectReferences: projectReferences - }; - program = createProgram(options); - compilerHost = void 0; - parsedCommandLines = void 0; - releasedScriptKinds = void 0; - sourceMapper.clearCache(); - program.getTypeChecker(); - return; - function getParsedCommandLine(fileName) { - var path = toPath(fileName, currentDirectory, getCanonicalFileName); - var existing = parsedCommandLines == null ? void 0 : parsedCommandLines.get(path); - if (existing !== void 0) - return existing || void 0; - var result = host.getParsedCommandLine ? host.getParsedCommandLine(fileName) : getParsedCommandLineOfConfigFileUsingSourceFile(fileName); - (parsedCommandLines || (parsedCommandLines = /* @__PURE__ */ new Map())).set(path, result || false); - return result; - } - function getParsedCommandLineOfConfigFileUsingSourceFile(configFileName) { - var result = getOrCreateSourceFile(configFileName, 100 /* JSON */); - if (!result) - return void 0; - result.path = toPath(configFileName, currentDirectory, getCanonicalFileName); - result.resolvedPath = result.path; - result.originalFileName = result.fileName; - return parseJsonSourceFileConfigFileContent(result, parseConfigHost, getNormalizedAbsolutePath(getDirectoryPath(configFileName), currentDirectory), - /*existingOptions*/ - void 0, getNormalizedAbsolutePath(configFileName, currentDirectory)); - } - function onReleaseParsedCommandLine(configFileName, oldResolvedRef, oldOptions) { - var _a3; - if (host.getParsedCommandLine) { - (_a3 = host.onReleaseParsedCommandLine) == null ? void 0 : _a3.call(host, configFileName, oldResolvedRef, oldOptions); - } - else if (oldResolvedRef) { - onReleaseOldSourceFile(oldResolvedRef.sourceFile, oldOptions); - } - } - function onReleaseOldSourceFile(oldSourceFile, oldOptions) { - var oldSettingsKey = documentRegistry.getKeyForCompilationSettings(oldOptions); - documentRegistry.releaseDocumentWithKey(oldSourceFile.resolvedPath, oldSettingsKey, oldSourceFile.scriptKind, oldSourceFile.impliedNodeFormat); - } - function getOrCreateSourceFile(fileName, languageVersionOrOptions, onError, shouldCreateNewSourceFile) { - return getOrCreateSourceFileByPath(fileName, toPath(fileName, currentDirectory, getCanonicalFileName), languageVersionOrOptions, onError, shouldCreateNewSourceFile); - } - function getOrCreateSourceFileByPath(fileName, path, languageVersionOrOptions, _onError, shouldCreateNewSourceFile) { - Debug.assert(compilerHost, "getOrCreateSourceFileByPath called after typical CompilerHost lifetime, check the callstack something with a reference to an old host."); - var scriptSnapshot = host.getScriptSnapshot(fileName); - if (!scriptSnapshot) { - return void 0; - } - var scriptKind = getScriptKind(fileName, host); - var scriptVersion = host.getScriptVersion(fileName); - if (!shouldCreateNewSourceFile) { - var oldSourceFile = program && program.getSourceFileByPath(path); - if (oldSourceFile) { - if (scriptKind === oldSourceFile.scriptKind || releasedScriptKinds.has(oldSourceFile.resolvedPath)) { - return documentRegistry.updateDocumentWithKey(fileName, path, host, documentRegistryBucketKey, scriptSnapshot, scriptVersion, scriptKind, languageVersionOrOptions); - } - else { - documentRegistry.releaseDocumentWithKey(oldSourceFile.resolvedPath, documentRegistry.getKeyForCompilationSettings(program.getCompilerOptions()), oldSourceFile.scriptKind, oldSourceFile.impliedNodeFormat); - releasedScriptKinds.add(oldSourceFile.resolvedPath); - } - } - } - return documentRegistry.acquireDocumentWithKey(fileName, path, host, documentRegistryBucketKey, scriptSnapshot, scriptVersion, scriptKind, languageVersionOrOptions); - } - } - function getProgram() { - if (languageServiceMode === 2 /* Syntactic */) { - Debug.assert(program === void 0); - return void 0; - } - synchronizeHostData(); - return program; - } - function getAutoImportProvider() { - var _a2; - return (_a2 = host.getPackageJsonAutoImportProvider) == null ? void 0 : _a2.call(host); - } - function updateIsDefinitionOfReferencedSymbols(referencedSymbols, knownSymbolSpans) { - var e_727, _t, e_728, _u; - var checker = program.getTypeChecker(); - var symbol = getSymbolForProgram(); - if (!symbol) - return false; - try { - for (var referencedSymbols_1 = __values(referencedSymbols), referencedSymbols_1_1 = referencedSymbols_1.next(); !referencedSymbols_1_1.done; referencedSymbols_1_1 = referencedSymbols_1.next()) { - var referencedSymbol = referencedSymbols_1_1.value; - try { - for (var _v = (e_728 = void 0, __values(referencedSymbol.references)), _w = _v.next(); !_w.done; _w = _v.next()) { - var ref = _w.value; - var refNode = getNodeForSpan(ref); - Debug.assertIsDefined(refNode); - if (knownSymbolSpans.has(ref) || ts_FindAllReferences_exports.isDeclarationOfSymbol(refNode, symbol)) { - knownSymbolSpans.add(ref); - ref.isDefinition = true; - var mappedSpan = getMappedDocumentSpan(ref, sourceMapper, maybeBind(host, host.fileExists)); - if (mappedSpan) { - knownSymbolSpans.add(mappedSpan); - } - } - else { - ref.isDefinition = false; - } - } - } - catch (e_728_1) { e_728 = { error: e_728_1 }; } - finally { - try { - if (_w && !_w.done && (_u = _v.return)) _u.call(_v); - } - finally { if (e_728) throw e_728.error; } - } - } - } - catch (e_727_1) { e_727 = { error: e_727_1 }; } - finally { - try { - if (referencedSymbols_1_1 && !referencedSymbols_1_1.done && (_t = referencedSymbols_1.return)) _t.call(referencedSymbols_1); - } - finally { if (e_727) throw e_727.error; } - } - return true; - function getSymbolForProgram() { - var e_729, _t, e_730, _u; - try { - for (var referencedSymbols_2 = __values(referencedSymbols), referencedSymbols_2_1 = referencedSymbols_2.next(); !referencedSymbols_2_1.done; referencedSymbols_2_1 = referencedSymbols_2.next()) { - var referencedSymbol = referencedSymbols_2_1.value; - try { - for (var _v = (e_730 = void 0, __values(referencedSymbol.references)), _w = _v.next(); !_w.done; _w = _v.next()) { - var ref = _w.value; - if (knownSymbolSpans.has(ref)) { - var refNode = getNodeForSpan(ref); - Debug.assertIsDefined(refNode); - return checker.getSymbolAtLocation(refNode); - } - var mappedSpan = getMappedDocumentSpan(ref, sourceMapper, maybeBind(host, host.fileExists)); - if (mappedSpan && knownSymbolSpans.has(mappedSpan)) { - var refNode = getNodeForSpan(mappedSpan); - if (refNode) { - return checker.getSymbolAtLocation(refNode); - } - } - } - } - catch (e_730_1) { e_730 = { error: e_730_1 }; } - finally { - try { - if (_w && !_w.done && (_u = _v.return)) _u.call(_v); - } - finally { if (e_730) throw e_730.error; } - } - } - } - catch (e_729_1) { e_729 = { error: e_729_1 }; } - finally { - try { - if (referencedSymbols_2_1 && !referencedSymbols_2_1.done && (_t = referencedSymbols_2.return)) _t.call(referencedSymbols_2); - } - finally { if (e_729) throw e_729.error; } - } - return void 0; - } - function getNodeForSpan(docSpan) { - var sourceFile = program.getSourceFile(docSpan.fileName); - if (!sourceFile) - return void 0; - var rawNode = getTouchingPropertyName(sourceFile, docSpan.textSpan.start); - var adjustedNode = ts_FindAllReferences_exports.Core.getAdjustedNode(rawNode, { use: ts_FindAllReferences_exports.FindReferencesUse.References }); - return adjustedNode; - } - } - function cleanupSemanticCache() { - if (program) { - var key_1 = documentRegistry.getKeyForCompilationSettings(program.getCompilerOptions()); - forEach(program.getSourceFiles(), function (f) { return documentRegistry.releaseDocumentWithKey(f.resolvedPath, key_1, f.scriptKind, f.impliedNodeFormat); }); - program = void 0; - } - } - function dispose() { - cleanupSemanticCache(); - host = void 0; - } - function getSyntacticDiagnostics(fileName) { - synchronizeHostData(); - return program.getSyntacticDiagnostics(getValidSourceFile(fileName), cancellationToken).slice(); - } - function getSemanticDiagnostics(fileName) { - synchronizeHostData(); - var targetSourceFile = getValidSourceFile(fileName); - var semanticDiagnostics = program.getSemanticDiagnostics(targetSourceFile, cancellationToken); - if (!getEmitDeclarations(program.getCompilerOptions())) { - return semanticDiagnostics.slice(); - } - var declarationDiagnostics = program.getDeclarationDiagnostics(targetSourceFile, cancellationToken); - return __spreadArray(__spreadArray([], __read(semanticDiagnostics), false), __read(declarationDiagnostics), false); - } - function getSuggestionDiagnostics(fileName) { - synchronizeHostData(); - return computeSuggestionDiagnostics(getValidSourceFile(fileName), program, cancellationToken); - } - function getCompilerOptionsDiagnostics() { - synchronizeHostData(); - return __spreadArray(__spreadArray([], __read(program.getOptionsDiagnostics(cancellationToken)), false), __read(program.getGlobalDiagnostics(cancellationToken)), false); - } - function getCompletionsAtPosition2(fileName, position, options, formattingSettings) { - if (options === void 0) { options = emptyOptions; } - var fullPreferences = __assign(__assign({}, identity(options)), { - // avoid excess property check - includeCompletionsForModuleExports: options.includeCompletionsForModuleExports || options.includeExternalModuleExports, includeCompletionsWithInsertText: options.includeCompletionsWithInsertText || options.includeInsertTextCompletions }); - synchronizeHostData(); - return ts_Completions_exports.getCompletionsAtPosition(host, program, log, getValidSourceFile(fileName), position, fullPreferences, options.triggerCharacter, options.triggerKind, cancellationToken, formattingSettings && ts_formatting_exports.getFormatContext(formattingSettings, host), options.includeSymbol); - } - function getCompletionEntryDetails2(fileName, position, name, formattingOptions, source, preferences, data) { - if (preferences === void 0) { preferences = emptyOptions; } - synchronizeHostData(); - return ts_Completions_exports.getCompletionEntryDetails(program, log, getValidSourceFile(fileName), position, { name: name, source: source, data: data }, host, formattingOptions && ts_formatting_exports.getFormatContext(formattingOptions, host), - // TODO: GH#18217 - preferences, cancellationToken); - } - function getCompletionEntrySymbol2(fileName, position, name, source, preferences) { - if (preferences === void 0) { preferences = emptyOptions; } - synchronizeHostData(); - return ts_Completions_exports.getCompletionEntrySymbol(program, log, getValidSourceFile(fileName), position, { name: name, source: source }, host, preferences); - } - function getQuickInfoAtPosition(fileName, position) { - synchronizeHostData(); - var sourceFile = getValidSourceFile(fileName); - var node = getTouchingPropertyName(sourceFile, position); - if (node === sourceFile) { - return void 0; - } - var typeChecker = program.getTypeChecker(); - var nodeForQuickInfo = getNodeForQuickInfo(node); - var symbol = getSymbolAtLocationForQuickInfo(nodeForQuickInfo, typeChecker); - if (!symbol || typeChecker.isUnknownSymbol(symbol)) { - var type_2 = shouldGetType(sourceFile, nodeForQuickInfo, position) ? typeChecker.getTypeAtLocation(nodeForQuickInfo) : void 0; - return type_2 && { - kind: "" /* unknown */, - kindModifiers: "" /* none */, - textSpan: createTextSpanFromNode(nodeForQuickInfo, sourceFile), - displayParts: typeChecker.runWithCancellationToken(cancellationToken, function (typeChecker2) { return typeToDisplayParts(typeChecker2, type_2, getContainerNode(nodeForQuickInfo)); }), - documentation: type_2.symbol ? type_2.symbol.getDocumentationComment(typeChecker) : void 0, - tags: type_2.symbol ? type_2.symbol.getJsDocTags(typeChecker) : void 0 - }; - } - var _t = typeChecker.runWithCancellationToken(cancellationToken, function (typeChecker2) { return ts_SymbolDisplay_exports.getSymbolDisplayPartsDocumentationAndSymbolKind(typeChecker2, symbol, sourceFile, getContainerNode(nodeForQuickInfo), nodeForQuickInfo); }), symbolKind = _t.symbolKind, displayParts = _t.displayParts, documentation = _t.documentation, tags = _t.tags; - return { - kind: symbolKind, - kindModifiers: ts_SymbolDisplay_exports.getSymbolModifiers(typeChecker, symbol), - textSpan: createTextSpanFromNode(nodeForQuickInfo, sourceFile), - displayParts: displayParts, - documentation: documentation, - tags: tags - }; - } - function getNodeForQuickInfo(node) { - if (isNewExpression(node.parent) && node.pos === node.parent.pos) { - return node.parent.expression; - } - if (isNamedTupleMember(node.parent) && node.pos === node.parent.pos) { - return node.parent; - } - if (isImportMeta(node.parent) && node.parent.name === node) { - return node.parent; - } - if (isJsxNamespacedName(node.parent)) { - return node.parent; - } - return node; - } - function shouldGetType(sourceFile, node, position) { - switch (node.kind) { - case 80 /* Identifier */: - return !isLabelName(node) && !isTagName(node) && !isConstTypeReference(node.parent); - case 211 /* PropertyAccessExpression */: - case 166 /* QualifiedName */: - return !isInComment(sourceFile, position); - case 110 /* ThisKeyword */: - case 197 /* ThisType */: - case 108 /* SuperKeyword */: - case 202 /* NamedTupleMember */: - return true; - case 236 /* MetaProperty */: - return isImportMeta(node); - default: - return false; - } - } - function getDefinitionAtPosition2(fileName, position, searchOtherFilesOnly, stopAtAlias) { - synchronizeHostData(); - return ts_GoToDefinition_exports.getDefinitionAtPosition(program, getValidSourceFile(fileName), position, searchOtherFilesOnly, stopAtAlias); - } - function getDefinitionAndBoundSpan2(fileName, position) { - synchronizeHostData(); - return ts_GoToDefinition_exports.getDefinitionAndBoundSpan(program, getValidSourceFile(fileName), position); - } - function getTypeDefinitionAtPosition2(fileName, position) { - synchronizeHostData(); - return ts_GoToDefinition_exports.getTypeDefinitionAtPosition(program.getTypeChecker(), getValidSourceFile(fileName), position); - } - function getImplementationAtPosition(fileName, position) { - synchronizeHostData(); - return ts_FindAllReferences_exports.getImplementationsAtPosition(program, cancellationToken, program.getSourceFiles(), getValidSourceFile(fileName), position); - } - function getDocumentHighlights(fileName, position, filesToSearch) { - var normalizedFileName = normalizePath(fileName); - Debug.assert(filesToSearch.some(function (f) { return normalizePath(f) === normalizedFileName; })); - synchronizeHostData(); - var sourceFilesToSearch = mapDefined(filesToSearch, function (fileName2) { return program.getSourceFile(fileName2); }); - var sourceFile = getValidSourceFile(fileName); - return DocumentHighlights.getDocumentHighlights(program, cancellationToken, sourceFile, position, sourceFilesToSearch); - } - function findRenameLocations(fileName, position, findInStrings, findInComments, preferences) { - synchronizeHostData(); - var sourceFile = getValidSourceFile(fileName); - var node = getAdjustedRenameLocation(getTouchingPropertyName(sourceFile, position)); - if (!ts_Rename_exports.nodeIsEligibleForRename(node)) - return void 0; - if (isIdentifier(node) && (isJsxOpeningElement(node.parent) || isJsxClosingElement(node.parent)) && isIntrinsicJsxName(node.escapedText)) { - var _t = node.parent.parent, openingElement = _t.openingElement, closingElement = _t.closingElement; - return [openingElement, closingElement].map(function (node2) { - var textSpan = createTextSpanFromNode(node2.tagName, sourceFile); - return __assign({ fileName: sourceFile.fileName, textSpan: textSpan }, ts_FindAllReferences_exports.toContextSpan(textSpan, sourceFile, node2.parent)); - }); - } - else { - var quotePreference_1 = getQuotePreference(sourceFile, preferences !== null && preferences !== void 0 ? preferences : emptyOptions); - var providePrefixAndSuffixTextForRename_1 = typeof preferences === "boolean" ? preferences : preferences == null ? void 0 : preferences.providePrefixAndSuffixTextForRename; - return getReferencesWorker2(node, position, { findInStrings: findInStrings, findInComments: findInComments, providePrefixAndSuffixTextForRename: providePrefixAndSuffixTextForRename_1, use: ts_FindAllReferences_exports.FindReferencesUse.Rename }, function (entry, originalNode, checker) { return ts_FindAllReferences_exports.toRenameLocation(entry, originalNode, checker, providePrefixAndSuffixTextForRename_1 || false, quotePreference_1); }); - } - } - function getReferencesAtPosition(fileName, position) { - synchronizeHostData(); - return getReferencesWorker2(getTouchingPropertyName(getValidSourceFile(fileName), position), position, { use: ts_FindAllReferences_exports.FindReferencesUse.References }, ts_FindAllReferences_exports.toReferenceEntry); - } - function getReferencesWorker2(node, position, options, cb) { - synchronizeHostData(); - var sourceFiles = options && options.use === ts_FindAllReferences_exports.FindReferencesUse.Rename ? program.getSourceFiles().filter(function (sourceFile) { return !program.isSourceFileDefaultLibrary(sourceFile); }) : program.getSourceFiles(); - return ts_FindAllReferences_exports.findReferenceOrRenameEntries(program, cancellationToken, sourceFiles, node, position, options, cb); - } - function findReferences(fileName, position) { - synchronizeHostData(); - return ts_FindAllReferences_exports.findReferencedSymbols(program, cancellationToken, program.getSourceFiles(), getValidSourceFile(fileName), position); - } - function getFileReferences(fileName) { - synchronizeHostData(); - return ts_FindAllReferences_exports.Core.getReferencesForFileName(fileName, program, program.getSourceFiles()).map(ts_FindAllReferences_exports.toReferenceEntry); - } - function getNavigateToItems2(searchValue, maxResultCount, fileName, excludeDtsFiles) { - if (excludeDtsFiles === void 0) { excludeDtsFiles = false; } - synchronizeHostData(); - var sourceFiles = fileName ? [getValidSourceFile(fileName)] : program.getSourceFiles(); - return getNavigateToItems(sourceFiles, program.getTypeChecker(), cancellationToken, searchValue, maxResultCount, excludeDtsFiles); - } - function getEmitOutput(fileName, emitOnlyDtsFiles, forceDtsEmit) { - synchronizeHostData(); - var sourceFile = getValidSourceFile(fileName); - var customTransformers = host.getCustomTransformers && host.getCustomTransformers(); - return getFileEmitOutput(program, sourceFile, !!emitOnlyDtsFiles, cancellationToken, customTransformers, forceDtsEmit); - } - function getSignatureHelpItems2(fileName, position, _t) { - var _u = _t === void 0 ? emptyOptions : _t, triggerReason = _u.triggerReason; - synchronizeHostData(); - var sourceFile = getValidSourceFile(fileName); - return ts_SignatureHelp_exports.getSignatureHelpItems(program, sourceFile, position, triggerReason, cancellationToken); - } - function getNonBoundSourceFile(fileName) { - return syntaxTreeCache.getCurrentSourceFile(fileName); - } - function getNameOrDottedNameSpan(fileName, startPos, _endPos) { - var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); - var node = getTouchingPropertyName(sourceFile, startPos); - if (node === sourceFile) { - return void 0; - } - switch (node.kind) { - case 211 /* PropertyAccessExpression */: - case 166 /* QualifiedName */: - case 11 /* StringLiteral */: - case 97 /* FalseKeyword */: - case 112 /* TrueKeyword */: - case 106 /* NullKeyword */: - case 108 /* SuperKeyword */: - case 110 /* ThisKeyword */: - case 197 /* ThisType */: - case 80 /* Identifier */: - break; - default: - return void 0; - } - var nodeForStartPos = node; - while (true) { - if (isRightSideOfPropertyAccess(nodeForStartPos) || isRightSideOfQualifiedName(nodeForStartPos)) { - nodeForStartPos = nodeForStartPos.parent; - } - else if (isNameOfModuleDeclaration(nodeForStartPos)) { - if (nodeForStartPos.parent.parent.kind === 267 /* ModuleDeclaration */ && nodeForStartPos.parent.parent.body === nodeForStartPos.parent) { - nodeForStartPos = nodeForStartPos.parent.parent.name; - } - else { - break; - } - } - else { - break; - } - } - return createTextSpanFromBounds(nodeForStartPos.getStart(), node.getEnd()); - } - function getBreakpointStatementAtPosition(fileName, position) { - var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); - return ts_BreakpointResolver_exports.spanInSourceFileAtLocation(sourceFile, position); - } - function getNavigationBarItems2(fileName) { - return getNavigationBarItems(syntaxTreeCache.getCurrentSourceFile(fileName), cancellationToken); - } - function getNavigationTree2(fileName) { - return getNavigationTree(syntaxTreeCache.getCurrentSourceFile(fileName), cancellationToken); - } - function getSemanticClassifications3(fileName, span, format) { - synchronizeHostData(); - var responseFormat = format || "original" /* Original */; - if (responseFormat === "2020" /* TwentyTwenty */) { - return getSemanticClassifications2(program, cancellationToken, getValidSourceFile(fileName), span); - } - else { - return getSemanticClassifications(program.getTypeChecker(), cancellationToken, getValidSourceFile(fileName), program.getClassifiableNames(), span); - } - } - function getEncodedSemanticClassifications3(fileName, span, format) { - synchronizeHostData(); - var responseFormat = format || "original" /* Original */; - if (responseFormat === "original" /* Original */) { - return getEncodedSemanticClassifications(program.getTypeChecker(), cancellationToken, getValidSourceFile(fileName), program.getClassifiableNames(), span); - } - else { - return getEncodedSemanticClassifications2(program, cancellationToken, getValidSourceFile(fileName), span); - } - } - function getSyntacticClassifications2(fileName, span) { - return getSyntacticClassifications(cancellationToken, syntaxTreeCache.getCurrentSourceFile(fileName), span); - } - function getEncodedSyntacticClassifications2(fileName, span) { - return getEncodedSyntacticClassifications(cancellationToken, syntaxTreeCache.getCurrentSourceFile(fileName), span); - } - function getOutliningSpans(fileName) { - var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); - return ts_OutliningElementsCollector_exports.collectElements(sourceFile, cancellationToken); - } - var braceMatching = new Map(Object.entries((_t = {}, - _t[19 /* OpenBraceToken */] = 20 /* CloseBraceToken */, - _t[21 /* OpenParenToken */] = 22 /* CloseParenToken */, - _t[23 /* OpenBracketToken */] = 24 /* CloseBracketToken */, - _t[32 /* GreaterThanToken */] = 30 /* LessThanToken */, - _t))); - braceMatching.forEach(function (value, key) { return braceMatching.set(value.toString(), Number(key)); }); - function getBraceMatchingAtPosition(fileName, position) { - var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); - var token = getTouchingToken(sourceFile, position); - var matchKind = token.getStart(sourceFile) === position ? braceMatching.get(token.kind.toString()) : void 0; - var match = matchKind && findChildOfKind(token.parent, matchKind, sourceFile); - return match ? [createTextSpanFromNode(token, sourceFile), createTextSpanFromNode(match, sourceFile)].sort(function (a, b) { return a.start - b.start; }) : emptyArray; - } - function getIndentationAtPosition(fileName, position, editorOptions) { - var start2 = timestamp(); - var settings = toEditorSettings(editorOptions); - var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); - log("getIndentationAtPosition: getCurrentSourceFile: " + (timestamp() - start2)); - start2 = timestamp(); - var result = ts_formatting_exports.SmartIndenter.getIndentation(position, sourceFile, settings); - log("getIndentationAtPosition: computeIndentation : " + (timestamp() - start2)); - return result; - } - function getFormattingEditsForRange(fileName, start2, end, options) { - var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); - return ts_formatting_exports.formatSelection(start2, end, sourceFile, ts_formatting_exports.getFormatContext(toEditorSettings(options), host)); - } - function getFormattingEditsForDocument(fileName, options) { - return ts_formatting_exports.formatDocument(syntaxTreeCache.getCurrentSourceFile(fileName), ts_formatting_exports.getFormatContext(toEditorSettings(options), host)); - } - function getFormattingEditsAfterKeystroke(fileName, position, key, options) { - var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); - var formatContext = ts_formatting_exports.getFormatContext(toEditorSettings(options), host); - if (!isInComment(sourceFile, position)) { - switch (key) { - case "{": - return ts_formatting_exports.formatOnOpeningCurly(position, sourceFile, formatContext); - case "}": - return ts_formatting_exports.formatOnClosingCurly(position, sourceFile, formatContext); - case ";": - return ts_formatting_exports.formatOnSemicolon(position, sourceFile, formatContext); - case "\n": - return ts_formatting_exports.formatOnEnter(position, sourceFile, formatContext); - } - } - return []; - } - function getCodeFixesAtPosition(fileName, start2, end, errorCodes64, formatOptions, preferences) { - if (preferences === void 0) { preferences = emptyOptions; } - synchronizeHostData(); - var sourceFile = getValidSourceFile(fileName); - var span = createTextSpanFromBounds(start2, end); - var formatContext = ts_formatting_exports.getFormatContext(formatOptions, host); - return flatMap(deduplicate(errorCodes64, equateValues, compareValues), function (errorCode) { - cancellationToken.throwIfCancellationRequested(); - return ts_codefix_exports.getFixes({ errorCode: errorCode, sourceFile: sourceFile, span: span, program: program, host: host, cancellationToken: cancellationToken, formatContext: formatContext, preferences: preferences }); - }); - } - function getCombinedCodeFix(scope, fixId52, formatOptions, preferences) { - if (preferences === void 0) { preferences = emptyOptions; } - synchronizeHostData(); - Debug.assert(scope.type === "file"); - var sourceFile = getValidSourceFile(scope.fileName); - var formatContext = ts_formatting_exports.getFormatContext(formatOptions, host); - return ts_codefix_exports.getAllFixes({ fixId: fixId52, sourceFile: sourceFile, program: program, host: host, cancellationToken: cancellationToken, formatContext: formatContext, preferences: preferences }); - } - function organizeImports2(args, formatOptions, preferences) { - var _t; - if (preferences === void 0) { preferences = emptyOptions; } - synchronizeHostData(); - Debug.assert(args.type === "file"); - var sourceFile = getValidSourceFile(args.fileName); - var formatContext = ts_formatting_exports.getFormatContext(formatOptions, host); - var mode = (_t = args.mode) !== null && _t !== void 0 ? _t : (args.skipDestructiveCodeActions ? "SortAndCombine" /* SortAndCombine */ : "All" /* All */); - return ts_OrganizeImports_exports.organizeImports(sourceFile, formatContext, host, program, preferences, mode); - } - function getEditsForFileRename2(oldFilePath, newFilePath, formatOptions, preferences) { - if (preferences === void 0) { preferences = emptyOptions; } - return getEditsForFileRename(getProgram(), oldFilePath, newFilePath, host, ts_formatting_exports.getFormatContext(formatOptions, host), preferences, sourceMapper); - } - function applyCodeActionCommand(fileName, actionOrFormatSettingsOrUndefined) { - var action = typeof fileName === "string" ? actionOrFormatSettingsOrUndefined : fileName; - return isArray(action) ? Promise.all(action.map(function (a) { return applySingleCodeActionCommand(a); })) : applySingleCodeActionCommand(action); - } - function applySingleCodeActionCommand(action) { - var getPath = function (path) { return toPath(path, currentDirectory, getCanonicalFileName); }; - Debug.assertEqual(action.type, "install package"); - return host.installPackage ? host.installPackage({ fileName: getPath(action.file), packageName: action.packageName }) : Promise.reject("Host does not implement `installPackage`"); - } - function getDocCommentTemplateAtPosition2(fileName, position, options, formatOptions) { - var formatSettings = formatOptions ? ts_formatting_exports.getFormatContext(formatOptions, host).options : void 0; - return ts_JsDoc_exports.getDocCommentTemplateAtPosition(getNewLineOrDefaultFromHost(host, formatSettings), syntaxTreeCache.getCurrentSourceFile(fileName), position, options); - } - function isValidBraceCompletionAtPosition(fileName, position, openingBrace) { - if (openingBrace === 60 /* lessThan */) { - return false; - } - var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); - if (isInString(sourceFile, position)) { - return false; - } - if (isInsideJsxElementOrAttribute(sourceFile, position)) { - return openingBrace === 123 /* openBrace */; - } - if (isInTemplateString(sourceFile, position)) { - return false; - } - switch (openingBrace) { - case 39 /* singleQuote */: - case 34 /* doubleQuote */: - case 96 /* backtick */: - return !isInComment(sourceFile, position); - } - return true; - } - function getJsxClosingTagAtPosition(fileName, position) { - var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); - var token = findPrecedingToken(position, sourceFile); - if (!token) - return void 0; - var element = token.kind === 32 /* GreaterThanToken */ && isJsxOpeningElement(token.parent) ? token.parent.parent : isJsxText(token) && isJsxElement(token.parent) ? token.parent : void 0; - if (element && isUnclosedTag(element)) { - return { newText: "") }; - } - var fragment = token.kind === 32 /* GreaterThanToken */ && isJsxOpeningFragment(token.parent) ? token.parent.parent : isJsxText(token) && isJsxFragment(token.parent) ? token.parent : void 0; - if (fragment && isUnclosedFragment(fragment)) { - return { newText: "" }; - } - } - function getLinkedEditingRangeAtPosition(fileName, position) { - var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); - var token = findPrecedingToken(position, sourceFile); - if (!token || token.parent.kind === 312 /* SourceFile */) - return void 0; - var jsxTagWordPattern = "[a-zA-Z0-9:\\-\\._$]*"; - if (isJsxFragment(token.parent.parent)) { - var openFragment = token.parent.parent.openingFragment; - var closeFragment = token.parent.parent.closingFragment; - if (containsParseError(openFragment) || containsParseError(closeFragment)) - return void 0; - var openPos = openFragment.getStart(sourceFile) + 1; - var closePos = closeFragment.getStart(sourceFile) + 2; - if (position !== openPos && position !== closePos) - return void 0; - return { - ranges: [{ start: openPos, length: 0 }, { start: closePos, length: 0 }], - wordPattern: jsxTagWordPattern - }; - } - else { - var tag = findAncestor(token.parent, function (n) { - if (isJsxOpeningElement(n) || isJsxClosingElement(n)) { - return true; - } - return false; - }); - if (!tag) - return void 0; - Debug.assert(isJsxOpeningElement(tag) || isJsxClosingElement(tag), "tag should be opening or closing element"); - var openTag = tag.parent.openingElement; - var closeTag = tag.parent.closingElement; - var openTagStart = openTag.tagName.getStart(sourceFile); - var openTagEnd = openTag.tagName.end; - var closeTagStart = closeTag.tagName.getStart(sourceFile); - var closeTagEnd = closeTag.tagName.end; - if (!(openTagStart <= position && position <= openTagEnd || closeTagStart <= position && position <= closeTagEnd)) - return void 0; - var openingTagText = openTag.tagName.getText(sourceFile); - if (openingTagText !== closeTag.tagName.getText(sourceFile)) - return void 0; - return { - ranges: [{ start: openTagStart, length: openTagEnd - openTagStart }, { start: closeTagStart, length: closeTagEnd - closeTagStart }], - wordPattern: jsxTagWordPattern - }; - } - } - function getLinesForRange(sourceFile, textRange) { - return { - lineStarts: sourceFile.getLineStarts(), - firstLine: sourceFile.getLineAndCharacterOfPosition(textRange.pos).line, - lastLine: sourceFile.getLineAndCharacterOfPosition(textRange.end).line - }; - } - function toggleLineComment(fileName, textRange, insertComment) { - var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); - var textChanges2 = []; - var _t = getLinesForRange(sourceFile, textRange), lineStarts = _t.lineStarts, firstLine = _t.firstLine, lastLine = _t.lastLine; - var isCommenting = insertComment || false; - var leftMostPosition = Number.MAX_VALUE; - var lineTextStarts = /* @__PURE__ */ new Map(); - var firstNonWhitespaceCharacterRegex = new RegExp(/\S/); - var isJsx = isInsideJsxElement(sourceFile, lineStarts[firstLine]); - var openComment = isJsx ? "{/*" : "//"; - for (var i = firstLine; i <= lastLine; i++) { - var lineText = sourceFile.text.substring(lineStarts[i], sourceFile.getLineEndOfPosition(lineStarts[i])); - var regExec = firstNonWhitespaceCharacterRegex.exec(lineText); - if (regExec) { - leftMostPosition = Math.min(leftMostPosition, regExec.index); - lineTextStarts.set(i.toString(), regExec.index); - if (lineText.substr(regExec.index, openComment.length) !== openComment) { - isCommenting = insertComment === void 0 || insertComment; - } - } - } - for (var i = firstLine; i <= lastLine; i++) { - if (firstLine !== lastLine && lineStarts[i] === textRange.end) { - continue; - } - var lineTextStart = lineTextStarts.get(i.toString()); - if (lineTextStart !== void 0) { - if (isJsx) { - textChanges2.push.apply(textChanges2, toggleMultilineComment(fileName, { pos: lineStarts[i] + leftMostPosition, end: sourceFile.getLineEndOfPosition(lineStarts[i]) }, isCommenting, isJsx)); - } - else if (isCommenting) { - textChanges2.push({ - newText: openComment, - span: { - length: 0, - start: lineStarts[i] + leftMostPosition - } - }); - } - else if (sourceFile.text.substr(lineStarts[i] + lineTextStart, openComment.length) === openComment) { - textChanges2.push({ - newText: "", - span: { - length: openComment.length, - start: lineStarts[i] + lineTextStart - } - }); - } - } - } - return textChanges2; - } - function toggleMultilineComment(fileName, textRange, insertComment, isInsideJsx) { - var e_731, _t; - var _a2; - var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); - var textChanges2 = []; - var text = sourceFile.text; - var hasComment = false; - var isCommenting = insertComment || false; - var positions = []; - var pos = textRange.pos; - var isJsx = isInsideJsx !== void 0 ? isInsideJsx : isInsideJsxElement(sourceFile, pos); - var openMultiline = isJsx ? "{/*" : "/*"; - var closeMultiline = isJsx ? "*/}" : "*/"; - var openMultilineRegex = isJsx ? "\\{\\/\\*" : "\\/\\*"; - var closeMultilineRegex = isJsx ? "\\*\\/\\}" : "\\*\\/"; - while (pos <= textRange.end) { - var offset = text.substr(pos, openMultiline.length) === openMultiline ? openMultiline.length : 0; - var commentRange = isInComment(sourceFile, pos + offset); - if (commentRange) { - if (isJsx) { - commentRange.pos--; - commentRange.end++; - } - positions.push(commentRange.pos); - if (commentRange.kind === 3 /* MultiLineCommentTrivia */) { - positions.push(commentRange.end); - } - hasComment = true; - pos = commentRange.end + 1; - } - else { - var newPos = text.substring(pos, textRange.end).search("(".concat(openMultilineRegex, ")|(").concat(closeMultilineRegex, ")")); - isCommenting = insertComment !== void 0 ? insertComment : isCommenting || !isTextWhiteSpaceLike(text, pos, newPos === -1 ? textRange.end : pos + newPos); - pos = newPos === -1 ? textRange.end + 1 : pos + newPos + closeMultiline.length; - } - } - if (isCommenting || !hasComment) { - if (((_a2 = isInComment(sourceFile, textRange.pos)) == null ? void 0 : _a2.kind) !== 2 /* SingleLineCommentTrivia */) { - insertSorted(positions, textRange.pos, compareValues); - } - insertSorted(positions, textRange.end, compareValues); - var firstPos = positions[0]; - if (text.substr(firstPos, openMultiline.length) !== openMultiline) { - textChanges2.push({ - newText: openMultiline, - span: { - length: 0, - start: firstPos - } - }); - } - for (var i = 1; i < positions.length - 1; i++) { - if (text.substr(positions[i] - closeMultiline.length, closeMultiline.length) !== closeMultiline) { - textChanges2.push({ - newText: closeMultiline, - span: { - length: 0, - start: positions[i] - } - }); - } - if (text.substr(positions[i], openMultiline.length) !== openMultiline) { - textChanges2.push({ - newText: openMultiline, - span: { - length: 0, - start: positions[i] - } - }); - } - } - if (textChanges2.length % 2 !== 0) { - textChanges2.push({ - newText: closeMultiline, - span: { - length: 0, - start: positions[positions.length - 1] - } - }); - } - } - else { - try { - for (var positions_1 = __values(positions), positions_1_1 = positions_1.next(); !positions_1_1.done; positions_1_1 = positions_1.next()) { - var pos2 = positions_1_1.value; - var from = pos2 - closeMultiline.length > 0 ? pos2 - closeMultiline.length : 0; - var offset = text.substr(from, closeMultiline.length) === closeMultiline ? closeMultiline.length : 0; - textChanges2.push({ - newText: "", - span: { - length: openMultiline.length, - start: pos2 - offset - } - }); - } - } - catch (e_731_1) { e_731 = { error: e_731_1 }; } - finally { - try { - if (positions_1_1 && !positions_1_1.done && (_t = positions_1.return)) _t.call(positions_1); - } - finally { if (e_731) throw e_731.error; } - } - } - return textChanges2; - } - function commentSelection(fileName, textRange) { - var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); - var _t = getLinesForRange(sourceFile, textRange), firstLine = _t.firstLine, lastLine = _t.lastLine; - return firstLine === lastLine && textRange.pos !== textRange.end ? toggleMultilineComment(fileName, textRange, - /*insertComment*/ - true) : toggleLineComment(fileName, textRange, - /*insertComment*/ - true); - } - function uncommentSelection(fileName, textRange) { - var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); - var textChanges2 = []; - var pos = textRange.pos; - var end = textRange.end; - if (pos === end) { - end += isInsideJsxElement(sourceFile, pos) ? 2 : 1; - } - for (var i = pos; i <= end; i++) { - var commentRange = isInComment(sourceFile, i); - if (commentRange) { - switch (commentRange.kind) { - case 2 /* SingleLineCommentTrivia */: - textChanges2.push.apply(textChanges2, toggleLineComment(fileName, { end: commentRange.end, pos: commentRange.pos + 1 }, - /*insertComment*/ - false)); - break; - case 3 /* MultiLineCommentTrivia */: - textChanges2.push.apply(textChanges2, toggleMultilineComment(fileName, { end: commentRange.end, pos: commentRange.pos + 1 }, - /*insertComment*/ - false)); - } - i = commentRange.end + 1; - } - } - return textChanges2; - } - function isUnclosedTag(_t) { - var openingElement = _t.openingElement, closingElement = _t.closingElement, parent2 = _t.parent; - return !tagNamesAreEquivalent(openingElement.tagName, closingElement.tagName) || isJsxElement(parent2) && tagNamesAreEquivalent(openingElement.tagName, parent2.openingElement.tagName) && isUnclosedTag(parent2); - } - function isUnclosedFragment(_t) { - var closingFragment = _t.closingFragment, parent2 = _t.parent; - return !!(closingFragment.flags & 262144 /* ThisNodeHasError */) || isJsxFragment(parent2) && isUnclosedFragment(parent2); - } - function getSpanOfEnclosingComment(fileName, position, onlyMultiLine) { - var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); - var range = ts_formatting_exports.getRangeOfEnclosingComment(sourceFile, position); - return range && (!onlyMultiLine || range.kind === 3 /* MultiLineCommentTrivia */) ? createTextSpanFromRange(range) : void 0; - } - function getTodoComments(fileName, descriptors) { - synchronizeHostData(); - var sourceFile = getValidSourceFile(fileName); - cancellationToken.throwIfCancellationRequested(); - var fileContents = sourceFile.text; - var result = []; - if (descriptors.length > 0 && !isNodeModulesFile(sourceFile.fileName)) { - var regExp = getTodoCommentsRegExp(); - var matchArray = void 0; - while (matchArray = regExp.exec(fileContents)) { - cancellationToken.throwIfCancellationRequested(); - var firstDescriptorCaptureIndex = 3; - Debug.assert(matchArray.length === descriptors.length + firstDescriptorCaptureIndex); - var preamble = matchArray[1]; - var matchPosition = matchArray.index + preamble.length; - if (!isInComment(sourceFile, matchPosition)) { - continue; - } - var descriptor = void 0; - for (var i = 0; i < descriptors.length; i++) { - if (matchArray[i + firstDescriptorCaptureIndex]) { - descriptor = descriptors[i]; - } - } - if (descriptor === void 0) - return Debug.fail(); - if (isLetterOrDigit(fileContents.charCodeAt(matchPosition + descriptor.text.length))) { - continue; - } - var message = matchArray[2]; - result.push({ descriptor: descriptor, message: message, position: matchPosition }); - } - } - return result; - function escapeRegExp(str) { - return str.replace(/[-[\]/{}()*+?.\\^$|]/g, "\\$&"); - } - function getTodoCommentsRegExp() { - var singleLineCommentStart = /(?:\/\/+\s*)/.source; - var multiLineCommentStart = /(?:\/\*+\s*)/.source; - var anyNumberOfSpacesAndAsterisksAtStartOfLine = /(?:^(?:\s|\*)*)/.source; - var preamble = "(" + anyNumberOfSpacesAndAsterisksAtStartOfLine + "|" + singleLineCommentStart + "|" + multiLineCommentStart + ")"; - var literals = "(?:" + map(descriptors, function (d) { return "(" + escapeRegExp(d.text) + ")"; }).join("|") + ")"; - var endOfLineOrEndOfComment = /(?:$|\*\/)/.source; - var messageRemainder = /(?:.*?)/.source; - var messagePortion = "(" + literals + messageRemainder + ")"; - var regExpString = preamble + messagePortion + endOfLineOrEndOfComment; - return new RegExp(regExpString, "gim"); - } - function isLetterOrDigit(char) { - return char >= 97 /* a */ && char <= 122 /* z */ || char >= 65 /* A */ && char <= 90 /* Z */ || char >= 48 /* _0 */ && char <= 57 /* _9 */; - } - function isNodeModulesFile(path) { - return stringContains(path, "/node_modules/"); - } - } - function getRenameInfo2(fileName, position, preferences) { - synchronizeHostData(); - return ts_Rename_exports.getRenameInfo(program, getValidSourceFile(fileName), position, preferences || {}); - } - function getRefactorContext(file, positionOrRange, preferences, formatOptions, triggerReason, kind) { - var _t = __read(typeof positionOrRange === "number" ? [positionOrRange, void 0] : [positionOrRange.pos, positionOrRange.end], 2), startPosition = _t[0], endPosition = _t[1]; - return { - file: file, - startPosition: startPosition, - endPosition: endPosition, - program: getProgram(), - host: host, - formatContext: ts_formatting_exports.getFormatContext(formatOptions, host), - // TODO: GH#18217 - cancellationToken: cancellationToken, - preferences: preferences, - triggerReason: triggerReason, - kind: kind - }; - } - function getInlayHintsContext(file, span, preferences) { - return { - file: file, - program: getProgram(), - host: host, - span: span, - preferences: preferences, - cancellationToken: cancellationToken - }; - } - function getSmartSelectionRange2(fileName, position) { - return ts_SmartSelectionRange_exports.getSmartSelectionRange(position, syntaxTreeCache.getCurrentSourceFile(fileName)); - } - function getApplicableRefactors2(fileName, positionOrRange, preferences, triggerReason, kind, includeInteractiveActions) { - if (preferences === void 0) { preferences = emptyOptions; } - synchronizeHostData(); - var file = getValidSourceFile(fileName); - return ts_refactor_exports.getApplicableRefactors(getRefactorContext(file, positionOrRange, preferences, emptyOptions, triggerReason, kind), includeInteractiveActions); - } - function getMoveToRefactoringFileSuggestions(fileName, positionOrRange, preferences) { - if (preferences === void 0) { preferences = emptyOptions; } - synchronizeHostData(); - var sourceFile = getValidSourceFile(fileName); - var allFiles = Debug.checkDefined(program.getSourceFiles()); - var extension = extensionFromPath(fileName); - var files = mapDefined(allFiles, function (file) { return !(program == null ? void 0 : program.isSourceFileFromExternalLibrary(sourceFile)) && !(sourceFile === getValidSourceFile(file.fileName) || extension === ".ts" /* Ts */ && extensionFromPath(file.fileName) === ".d.ts" /* Dts */ || extension === ".d.ts" /* Dts */ && startsWith(getBaseFileName(file.fileName), "lib.") && extensionFromPath(file.fileName) === ".d.ts" /* Dts */) && extension === extensionFromPath(file.fileName) ? file.fileName : void 0; }); - var newFileName = createNewFileName(sourceFile, program, getRefactorContext(sourceFile, positionOrRange, preferences, emptyOptions), host); - return { newFileName: newFileName, files: files }; - } - function getEditsForRefactor2(fileName, formatOptions, positionOrRange, refactorName14, actionName2, preferences, interactiveRefactorArguments) { - if (preferences === void 0) { preferences = emptyOptions; } - synchronizeHostData(); - var file = getValidSourceFile(fileName); - return ts_refactor_exports.getEditsForRefactor(getRefactorContext(file, positionOrRange, preferences, formatOptions), refactorName14, actionName2, interactiveRefactorArguments); - } - function toLineColumnOffset(fileName, position) { - if (position === 0) { - return { line: 0, character: 0 }; - } - return sourceMapper.toLineColumnOffset(fileName, position); - } - function prepareCallHierarchy(fileName, position) { - synchronizeHostData(); - var declarations = ts_CallHierarchy_exports.resolveCallHierarchyDeclaration(program, getTouchingPropertyName(getValidSourceFile(fileName), position)); - return declarations && mapOneOrMany(declarations, function (declaration) { return ts_CallHierarchy_exports.createCallHierarchyItem(program, declaration); }); - } - function provideCallHierarchyIncomingCalls(fileName, position) { - synchronizeHostData(); - var sourceFile = getValidSourceFile(fileName); - var declaration = firstOrOnly(ts_CallHierarchy_exports.resolveCallHierarchyDeclaration(program, position === 0 ? sourceFile : getTouchingPropertyName(sourceFile, position))); - return declaration ? ts_CallHierarchy_exports.getIncomingCalls(program, declaration, cancellationToken) : []; - } - function provideCallHierarchyOutgoingCalls(fileName, position) { - synchronizeHostData(); - var sourceFile = getValidSourceFile(fileName); - var declaration = firstOrOnly(ts_CallHierarchy_exports.resolveCallHierarchyDeclaration(program, position === 0 ? sourceFile : getTouchingPropertyName(sourceFile, position))); - return declaration ? ts_CallHierarchy_exports.getOutgoingCalls(program, declaration) : []; - } - function provideInlayHints2(fileName, span, preferences) { - if (preferences === void 0) { preferences = emptyOptions; } - synchronizeHostData(); - var sourceFile = getValidSourceFile(fileName); - return ts_InlayHints_exports.provideInlayHints(getInlayHintsContext(sourceFile, span, preferences)); - } - var ls = { - dispose: dispose, - cleanupSemanticCache: cleanupSemanticCache, - getSyntacticDiagnostics: getSyntacticDiagnostics, - getSemanticDiagnostics: getSemanticDiagnostics, - getSuggestionDiagnostics: getSuggestionDiagnostics, - getCompilerOptionsDiagnostics: getCompilerOptionsDiagnostics, - getSyntacticClassifications: getSyntacticClassifications2, - getSemanticClassifications: getSemanticClassifications3, - getEncodedSyntacticClassifications: getEncodedSyntacticClassifications2, - getEncodedSemanticClassifications: getEncodedSemanticClassifications3, - getCompletionsAtPosition: getCompletionsAtPosition2, - getCompletionEntryDetails: getCompletionEntryDetails2, - getCompletionEntrySymbol: getCompletionEntrySymbol2, - getSignatureHelpItems: getSignatureHelpItems2, - getQuickInfoAtPosition: getQuickInfoAtPosition, - getDefinitionAtPosition: getDefinitionAtPosition2, - getDefinitionAndBoundSpan: getDefinitionAndBoundSpan2, - getImplementationAtPosition: getImplementationAtPosition, - getTypeDefinitionAtPosition: getTypeDefinitionAtPosition2, - getReferencesAtPosition: getReferencesAtPosition, - findReferences: findReferences, - getFileReferences: getFileReferences, - getDocumentHighlights: getDocumentHighlights, - getNameOrDottedNameSpan: getNameOrDottedNameSpan, - getBreakpointStatementAtPosition: getBreakpointStatementAtPosition, - getNavigateToItems: getNavigateToItems2, - getRenameInfo: getRenameInfo2, - getSmartSelectionRange: getSmartSelectionRange2, - findRenameLocations: findRenameLocations, - getNavigationBarItems: getNavigationBarItems2, - getNavigationTree: getNavigationTree2, - getOutliningSpans: getOutliningSpans, - getTodoComments: getTodoComments, - getBraceMatchingAtPosition: getBraceMatchingAtPosition, - getIndentationAtPosition: getIndentationAtPosition, - getFormattingEditsForRange: getFormattingEditsForRange, - getFormattingEditsForDocument: getFormattingEditsForDocument, - getFormattingEditsAfterKeystroke: getFormattingEditsAfterKeystroke, - getDocCommentTemplateAtPosition: getDocCommentTemplateAtPosition2, - isValidBraceCompletionAtPosition: isValidBraceCompletionAtPosition, - getJsxClosingTagAtPosition: getJsxClosingTagAtPosition, - getLinkedEditingRangeAtPosition: getLinkedEditingRangeAtPosition, - getSpanOfEnclosingComment: getSpanOfEnclosingComment, - getCodeFixesAtPosition: getCodeFixesAtPosition, - getCombinedCodeFix: getCombinedCodeFix, - applyCodeActionCommand: applyCodeActionCommand, - organizeImports: organizeImports2, - getEditsForFileRename: getEditsForFileRename2, - getEmitOutput: getEmitOutput, - getNonBoundSourceFile: getNonBoundSourceFile, - getProgram: getProgram, - getCurrentProgram: function () { return program; }, - getAutoImportProvider: getAutoImportProvider, - updateIsDefinitionOfReferencedSymbols: updateIsDefinitionOfReferencedSymbols, - getApplicableRefactors: getApplicableRefactors2, - getEditsForRefactor: getEditsForRefactor2, - getMoveToRefactoringFileSuggestions: getMoveToRefactoringFileSuggestions, - toLineColumnOffset: toLineColumnOffset, - getSourceMapper: function () { return sourceMapper; }, - clearSourceMapperCache: function () { return sourceMapper.clearCache(); }, - prepareCallHierarchy: prepareCallHierarchy, - provideCallHierarchyIncomingCalls: provideCallHierarchyIncomingCalls, - provideCallHierarchyOutgoingCalls: provideCallHierarchyOutgoingCalls, - toggleLineComment: toggleLineComment, - toggleMultilineComment: toggleMultilineComment, - commentSelection: commentSelection, - uncommentSelection: uncommentSelection, - provideInlayHints: provideInlayHints2, - getSupportedCodeFixes: getSupportedCodeFixes - }; - switch (languageServiceMode) { - case 0 /* Semantic */: - break; - case 1 /* PartialSemantic */: - invalidOperationsInPartialSemanticMode.forEach(function (key) { return ls[key] = function () { - throw new Error("LanguageService Operation: ".concat(key, " not allowed in LanguageServiceMode.PartialSemantic")); - }; }); - break; - case 2 /* Syntactic */: - invalidOperationsInSyntacticMode.forEach(function (key) { return ls[key] = function () { - throw new Error("LanguageService Operation: ".concat(key, " not allowed in LanguageServiceMode.Syntactic")); - }; }); - break; - default: - Debug.assertNever(languageServiceMode); - } - return ls; -} -function getNameTable(sourceFile) { - if (!sourceFile.nameTable) { - initializeNameTable(sourceFile); - } - return sourceFile.nameTable; -} -function initializeNameTable(sourceFile) { - var nameTable = sourceFile.nameTable = /* @__PURE__ */ new Map(); - sourceFile.forEachChild(function walk(node) { - var e_732, _t; - if (isIdentifier(node) && !isTagName(node) && node.escapedText || isStringOrNumericLiteralLike(node) && literalIsName(node)) { - var text = getEscapedTextOfIdentifierOrLiteral(node); - nameTable.set(text, nameTable.get(text) === void 0 ? node.pos : -1); - } - else if (isPrivateIdentifier(node)) { - var text = node.escapedText; - nameTable.set(text, nameTable.get(text) === void 0 ? node.pos : -1); - } - forEachChild(node, walk); - if (hasJSDocNodes(node)) { - try { - for (var _u = __values(node.jsDoc), _v = _u.next(); !_v.done; _v = _u.next()) { - var jsDoc = _v.value; - forEachChild(jsDoc, walk); - } - } - catch (e_732_1) { e_732 = { error: e_732_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_732) throw e_732.error; } - } - } - }); -} -function literalIsName(node) { - return isDeclarationName(node) || node.parent.kind === 283 /* ExternalModuleReference */ || isArgumentOfElementAccessExpression(node) || isLiteralComputedPropertyDeclarationName(node); -} -function getContainingObjectLiteralElement(node) { - var element = getContainingObjectLiteralElementWorker(node); - return element && (isObjectLiteralExpression(element.parent) || isJsxAttributes(element.parent)) ? element : void 0; -} -function getContainingObjectLiteralElementWorker(node) { - switch (node.kind) { - case 11 /* StringLiteral */: - case 15 /* NoSubstitutionTemplateLiteral */: - case 9 /* NumericLiteral */: - if (node.parent.kind === 167 /* ComputedPropertyName */) { - return isObjectLiteralElement(node.parent.parent) ? node.parent.parent : void 0; - } - case 80 /* Identifier */: - return isObjectLiteralElement(node.parent) && (node.parent.parent.kind === 210 /* ObjectLiteralExpression */ || node.parent.parent.kind === 292 /* JsxAttributes */) && node.parent.name === node ? node.parent : void 0; - } - return void 0; -} -function getSymbolAtLocationForQuickInfo(node, checker) { - var object = getContainingObjectLiteralElement(node); - if (object) { - var contextualType = checker.getContextualType(object.parent); - var properties = contextualType && getPropertySymbolsFromContextualType(object, checker, contextualType, - /*unionSymbolOk*/ - false); - if (properties && properties.length === 1) { - return first(properties); - } - } - return checker.getSymbolAtLocation(node); -} -function getPropertySymbolsFromContextualType(node, checker, contextualType, unionSymbolOk) { - var name = getNameFromPropertyName(node.name); - if (!name) - return emptyArray; - if (!contextualType.isUnion()) { - var symbol = contextualType.getProperty(name); - return symbol ? [symbol] : emptyArray; - } - var discriminatedPropertySymbols = mapDefined(contextualType.types, function (t) { return (isObjectLiteralExpression(node.parent) || isJsxAttributes(node.parent)) && checker.isTypeInvalidDueToUnionDiscriminant(t, node.parent) ? void 0 : t.getProperty(name); }); - if (unionSymbolOk && (discriminatedPropertySymbols.length === 0 || discriminatedPropertySymbols.length === contextualType.types.length)) { - var symbol = contextualType.getProperty(name); - if (symbol) - return [symbol]; - } - if (discriminatedPropertySymbols.length === 0) { - return mapDefined(contextualType.types, function (t) { return t.getProperty(name); }); - } - return discriminatedPropertySymbols; -} -function isArgumentOfElementAccessExpression(node) { - return node && node.parent && node.parent.kind === 212 /* ElementAccessExpression */ && node.parent.argumentExpression === node; -} -function getDefaultLibFilePath(options) { - if (sys) { - return combinePaths(getDirectoryPath(normalizePath(sys.getExecutingFilePath())), getDefaultLibFileName(options)); - } - throw new Error("getDefaultLibFilePath is only supported when consumed as a node module. "); -} -setObjectAllocator(getServicesObjectAllocator()); -// src/services/transform.ts -function transform(source, transformers, compilerOptions) { - var diagnostics = []; - compilerOptions = fixupCompilerOptions(compilerOptions, diagnostics); - var nodes = isArray(source) ? source : [source]; - var result = transformNodes( - /*resolver*/ - void 0, - /*host*/ - void 0, factory, compilerOptions, nodes, transformers, - /*allowDtsFiles*/ - true); - result.diagnostics = concatenate(result.diagnostics, diagnostics); - return result; -} -// src/services/shims.ts -var debugObjectHost = function () { - return this; -}(); -function logInternalError(logger, err) { - if (logger) { - logger.log("*INTERNAL ERROR* - Exception in typescript services: " + err.message); - } -} -var ScriptSnapshotShimAdapter = /** @class */ (function () { - function ScriptSnapshotShimAdapter(scriptSnapshotShim) { - this.scriptSnapshotShim = scriptSnapshotShim; - } - ScriptSnapshotShimAdapter.prototype.getText = function (start2, end) { - return this.scriptSnapshotShim.getText(start2, end); - }; - ScriptSnapshotShimAdapter.prototype.getLength = function () { - return this.scriptSnapshotShim.getLength(); - }; - ScriptSnapshotShimAdapter.prototype.getChangeRange = function (oldSnapshot) { - var oldSnapshotShim = oldSnapshot; - var encoded = this.scriptSnapshotShim.getChangeRange(oldSnapshotShim.scriptSnapshotShim); - if (encoded === null) { - return null; - } - var decoded = JSON.parse(encoded); - return createTextChangeRange(createTextSpan(decoded.span.start, decoded.span.length), decoded.newLength); - }; - ScriptSnapshotShimAdapter.prototype.dispose = function () { - if ("dispose" in this.scriptSnapshotShim) { - this.scriptSnapshotShim.dispose(); - } - }; - return ScriptSnapshotShimAdapter; -}()); -var LanguageServiceShimHostAdapter = /** @class */ (function () { - function LanguageServiceShimHostAdapter(shimHost) { - var _this = this; - this.shimHost = shimHost; - this.loggingEnabled = false; - this.tracingEnabled = false; - if ("getModuleResolutionsForFile" in this.shimHost) { - this.resolveModuleNames = function (moduleNames, containingFile) { - var resolutionsInFile = JSON.parse(_this.shimHost.getModuleResolutionsForFile(containingFile)); - return map(moduleNames, function (name) { - var result = getProperty(resolutionsInFile, name); - return result ? { resolvedFileName: result, extension: extensionFromPath(result), isExternalLibraryImport: false } : void 0; - }); - }; - } - if ("directoryExists" in this.shimHost) { - this.directoryExists = function (directoryName) { return _this.shimHost.directoryExists(directoryName); }; - } - if ("getTypeReferenceDirectiveResolutionsForFile" in this.shimHost) { - this.resolveTypeReferenceDirectives = function (typeDirectiveNames, containingFile) { - var typeDirectivesForFile = JSON.parse(_this.shimHost.getTypeReferenceDirectiveResolutionsForFile(containingFile)); - return map(typeDirectiveNames, function (name) { return getProperty(typeDirectivesForFile, isString(name) ? name : toFileNameLowerCase(name.fileName)); }); - }; - } - } - LanguageServiceShimHostAdapter.prototype.log = function (s) { - if (this.loggingEnabled) { - this.shimHost.log(s); - } - }; - LanguageServiceShimHostAdapter.prototype.trace = function (s) { - if (this.tracingEnabled) { - this.shimHost.trace(s); - } - }; - LanguageServiceShimHostAdapter.prototype.error = function (s) { - this.shimHost.error(s); - }; - LanguageServiceShimHostAdapter.prototype.getProjectVersion = function () { - if (!this.shimHost.getProjectVersion) { - return void 0; - } - return this.shimHost.getProjectVersion(); - }; - LanguageServiceShimHostAdapter.prototype.getTypeRootsVersion = function () { - if (!this.shimHost.getTypeRootsVersion) { - return 0; - } - return this.shimHost.getTypeRootsVersion(); - }; - LanguageServiceShimHostAdapter.prototype.useCaseSensitiveFileNames = function () { - return this.shimHost.useCaseSensitiveFileNames ? this.shimHost.useCaseSensitiveFileNames() : false; - }; - LanguageServiceShimHostAdapter.prototype.getCompilationSettings = function () { - var settingsJson = this.shimHost.getCompilationSettings(); - if (settingsJson === null || settingsJson === "") { - throw Error("LanguageServiceShimHostAdapter.getCompilationSettings: empty compilationSettings"); - } - var compilerOptions = JSON.parse(settingsJson); - compilerOptions.allowNonTsExtensions = true; - return compilerOptions; - }; - LanguageServiceShimHostAdapter.prototype.getScriptFileNames = function () { - var encoded = this.shimHost.getScriptFileNames(); - return JSON.parse(encoded); - }; - LanguageServiceShimHostAdapter.prototype.getScriptSnapshot = function (fileName) { - var scriptSnapshot = this.shimHost.getScriptSnapshot(fileName); - return scriptSnapshot && new ScriptSnapshotShimAdapter(scriptSnapshot); - }; - LanguageServiceShimHostAdapter.prototype.getScriptKind = function (fileName) { - if ("getScriptKind" in this.shimHost) { - return this.shimHost.getScriptKind(fileName); - } - else { - return 0 /* Unknown */; - } - }; - LanguageServiceShimHostAdapter.prototype.getScriptVersion = function (fileName) { - return this.shimHost.getScriptVersion(fileName); - }; - LanguageServiceShimHostAdapter.prototype.getLocalizedDiagnosticMessages = function () { - var diagnosticMessagesJson = this.shimHost.getLocalizedDiagnosticMessages(); - if (diagnosticMessagesJson === null || diagnosticMessagesJson === "") { - return null; - } - try { - return JSON.parse(diagnosticMessagesJson); - } - catch (e) { - this.log(e.description || "diagnosticMessages.generated.json has invalid JSON format"); - return null; - } - }; - LanguageServiceShimHostAdapter.prototype.getCancellationToken = function () { - var hostCancellationToken = this.shimHost.getCancellationToken(); - return new ThrottledCancellationToken(hostCancellationToken); - }; - LanguageServiceShimHostAdapter.prototype.getCurrentDirectory = function () { - return this.shimHost.getCurrentDirectory(); - }; - LanguageServiceShimHostAdapter.prototype.getDirectories = function (path) { - return JSON.parse(this.shimHost.getDirectories(path)); - }; - LanguageServiceShimHostAdapter.prototype.getDefaultLibFileName = function (options) { - return this.shimHost.getDefaultLibFileName(JSON.stringify(options)); - }; - LanguageServiceShimHostAdapter.prototype.readDirectory = function (path, extensions, exclude, include, depth) { - var pattern = getFileMatcherPatterns(path, exclude, include, this.shimHost.useCaseSensitiveFileNames(), this.shimHost.getCurrentDirectory()); - return JSON.parse(this.shimHost.readDirectory(path, JSON.stringify(extensions), JSON.stringify(pattern.basePaths), pattern.excludePattern, pattern.includeFilePattern, pattern.includeDirectoryPattern, depth)); - }; - LanguageServiceShimHostAdapter.prototype.readFile = function (path, encoding) { - return this.shimHost.readFile(path, encoding); - }; - LanguageServiceShimHostAdapter.prototype.fileExists = function (path) { - return this.shimHost.fileExists(path); - }; - return LanguageServiceShimHostAdapter; -}()); -var CoreServicesShimHostAdapter = /** @class */ (function () { - function CoreServicesShimHostAdapter(shimHost) { - var _this = this; - this.shimHost = shimHost; - this.useCaseSensitiveFileNames = this.shimHost.useCaseSensitiveFileNames ? this.shimHost.useCaseSensitiveFileNames() : false; - if ("directoryExists" in this.shimHost) { - this.directoryExists = function (directoryName) { return _this.shimHost.directoryExists(directoryName); }; - } - else { - this.directoryExists = void 0; - } - if ("realpath" in this.shimHost) { - this.realpath = function (path) { return _this.shimHost.realpath(path); }; - } - else { - this.realpath = void 0; - } - } - CoreServicesShimHostAdapter.prototype.readDirectory = function (rootDir, extensions, exclude, include, depth) { - var pattern = getFileMatcherPatterns(rootDir, exclude, include, this.shimHost.useCaseSensitiveFileNames(), this.shimHost.getCurrentDirectory()); - return JSON.parse(this.shimHost.readDirectory(rootDir, JSON.stringify(extensions), JSON.stringify(pattern.basePaths), pattern.excludePattern, pattern.includeFilePattern, pattern.includeDirectoryPattern, depth)); - }; - CoreServicesShimHostAdapter.prototype.fileExists = function (fileName) { - return this.shimHost.fileExists(fileName); - }; - CoreServicesShimHostAdapter.prototype.readFile = function (fileName) { - return this.shimHost.readFile(fileName); - }; - CoreServicesShimHostAdapter.prototype.getDirectories = function (path) { - return JSON.parse(this.shimHost.getDirectories(path)); - }; - return CoreServicesShimHostAdapter; -}()); -function simpleForwardCall(logger, actionDescription2, action, logPerformance) { - var start2; - if (logPerformance) { - logger.log(actionDescription2); - start2 = timestamp(); - } - var result = action(); - if (logPerformance) { - var end = timestamp(); - logger.log("".concat(actionDescription2, " completed in ").concat(end - start2, " msec")); - if (isString(result)) { - var str = result; - if (str.length > 128) { - str = str.substring(0, 128) + "..."; - } - logger.log(" result.length=".concat(str.length, ", result='").concat(JSON.stringify(str), "'")); - } - } - return result; -} -function forwardJSONCall(logger, actionDescription2, action, logPerformance) { - return forwardCall(logger, actionDescription2, - /*returnJson*/ - true, action, logPerformance); -} -function forwardCall(logger, actionDescription2, returnJson, action, logPerformance) { - try { - var result = simpleForwardCall(logger, actionDescription2, action, logPerformance); - return returnJson ? JSON.stringify({ result: result }) : result; - } - catch (err) { - if (err instanceof OperationCanceledException) { - return JSON.stringify({ canceled: true }); - } - logInternalError(logger, err); - err.description = actionDescription2; - return JSON.stringify({ error: err }); - } -} -var ShimBase = /** @class */ (function () { - function ShimBase(factory2) { - this.factory = factory2; - factory2.registerShim(this); - } - ShimBase.prototype.dispose = function (_dummy) { - this.factory.unregisterShim(this); - }; - return ShimBase; -}()); -function realizeDiagnostics(diagnostics, newLine) { - return diagnostics.map(function (d) { return realizeDiagnostic(d, newLine); }); -} -function realizeDiagnostic(diagnostic, newLine) { - return { - message: flattenDiagnosticMessageText(diagnostic.messageText, newLine), - start: diagnostic.start, - // TODO: GH#18217 - length: diagnostic.length, - // TODO: GH#18217 - category: diagnosticCategoryName(diagnostic), - code: diagnostic.code, - reportsUnnecessary: diagnostic.reportsUnnecessary, - reportsDeprecated: diagnostic.reportsDeprecated - }; -} -var LanguageServiceShimObject = /** @class */ (function (_super) { - __extends(class_1, _super); - function class_1(factory2, host, languageService) { - var _this = _super.call(this, factory2) || this; - _this.host = host; - _this.languageService = languageService; - _this.logPerformance = false; - _this.logger = _this.host; - return _this; - } - class_1.prototype.forwardJSONCall = function (actionDescription2, action) { - return forwardJSONCall(this.logger, actionDescription2, action, this.logPerformance); - }; - /// DISPOSE - /** - * Ensure (almost) deterministic release of internal Javascript resources when - * some external native objects holds onto us (e.g. Com/Interop). - */ - class_1.prototype.dispose = function (dummy) { - this.logger.log("dispose()"); - this.languageService.dispose(); - this.languageService = null; - if (debugObjectHost && debugObjectHost.CollectGarbage) { - debugObjectHost.CollectGarbage(); - this.logger.log("CollectGarbage()"); - } - this.logger = null; - _super.prototype.dispose.call(this, dummy); - }; - /// REFRESH - /** - * Update the list of scripts known to the compiler - */ - class_1.prototype.refresh = function (throwOnError) { - this.forwardJSONCall("refresh(".concat(throwOnError, ")"), function () { return null; } - // eslint-disable-line no-null/no-null - ); - }; - class_1.prototype.cleanupSemanticCache = function () { - var _this = this; - this.forwardJSONCall("cleanupSemanticCache()", function () { - _this.languageService.cleanupSemanticCache(); - return null; - }); - }; - class_1.prototype.realizeDiagnostics = function (diagnostics) { - var newLine = getNewLineOrDefaultFromHost(this.host, - /*formatSettings*/ - void 0); - return realizeDiagnostics(diagnostics, newLine); - }; - class_1.prototype.getSyntacticClassifications = function (fileName, start2, length2) { - var _this = this; - return this.forwardJSONCall("getSyntacticClassifications('".concat(fileName, "', ").concat(start2, ", ").concat(length2, ")"), function () { return _this.languageService.getSyntacticClassifications(fileName, createTextSpan(start2, length2)); }); - }; - class_1.prototype.getSemanticClassifications = function (fileName, start2, length2) { - var _this = this; - return this.forwardJSONCall("getSemanticClassifications('".concat(fileName, "', ").concat(start2, ", ").concat(length2, ")"), function () { return _this.languageService.getSemanticClassifications(fileName, createTextSpan(start2, length2)); }); - }; - class_1.prototype.getEncodedSyntacticClassifications = function (fileName, start2, length2) { - var _this = this; - return this.forwardJSONCall("getEncodedSyntacticClassifications('".concat(fileName, "', ").concat(start2, ", ").concat(length2, ")"), - // directly serialize the spans out to a string. This is much faster to decode - // on the managed side versus a full JSON array. - function () { return convertClassifications(_this.languageService.getEncodedSyntacticClassifications(fileName, createTextSpan(start2, length2))); }); - }; - class_1.prototype.getEncodedSemanticClassifications = function (fileName, start2, length2) { - var _this = this; - return this.forwardJSONCall("getEncodedSemanticClassifications('".concat(fileName, "', ").concat(start2, ", ").concat(length2, ")"), - // directly serialize the spans out to a string. This is much faster to decode - // on the managed side versus a full JSON array. - function () { return convertClassifications(_this.languageService.getEncodedSemanticClassifications(fileName, createTextSpan(start2, length2))); }); - }; - class_1.prototype.getSyntacticDiagnostics = function (fileName) { - var _this = this; - return this.forwardJSONCall("getSyntacticDiagnostics('".concat(fileName, "')"), function () { - var diagnostics = _this.languageService.getSyntacticDiagnostics(fileName); - return _this.realizeDiagnostics(diagnostics); - }); - }; - class_1.prototype.getSemanticDiagnostics = function (fileName) { - var _this = this; - return this.forwardJSONCall("getSemanticDiagnostics('".concat(fileName, "')"), function () { - var diagnostics = _this.languageService.getSemanticDiagnostics(fileName); - return _this.realizeDiagnostics(diagnostics); - }); - }; - class_1.prototype.getSuggestionDiagnostics = function (fileName) { - var _this = this; - return this.forwardJSONCall("getSuggestionDiagnostics('".concat(fileName, "')"), function () { return _this.realizeDiagnostics(_this.languageService.getSuggestionDiagnostics(fileName)); }); - }; - class_1.prototype.getCompilerOptionsDiagnostics = function () { - var _this = this; - return this.forwardJSONCall("getCompilerOptionsDiagnostics()", function () { - var diagnostics = _this.languageService.getCompilerOptionsDiagnostics(); - return _this.realizeDiagnostics(diagnostics); - }); - }; - /// QUICKINFO - /** - * Computes a string representation of the type at the requested position - * in the active file. - */ - class_1.prototype.getQuickInfoAtPosition = function (fileName, position) { - var _this = this; - return this.forwardJSONCall("getQuickInfoAtPosition('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getQuickInfoAtPosition(fileName, position); }); - }; - /// NAMEORDOTTEDNAMESPAN - /** - * Computes span information of the name or dotted name at the requested position - * in the active file. - */ - class_1.prototype.getNameOrDottedNameSpan = function (fileName, startPos, endPos) { - var _this = this; - return this.forwardJSONCall("getNameOrDottedNameSpan('".concat(fileName, "', ").concat(startPos, ", ").concat(endPos, ")"), function () { return _this.languageService.getNameOrDottedNameSpan(fileName, startPos, endPos); }); - }; - /** - * STATEMENTSPAN - * Computes span information of statement at the requested position in the active file. - */ - class_1.prototype.getBreakpointStatementAtPosition = function (fileName, position) { - var _this = this; - return this.forwardJSONCall("getBreakpointStatementAtPosition('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getBreakpointStatementAtPosition(fileName, position); }); - }; - /// SIGNATUREHELP - class_1.prototype.getSignatureHelpItems = function (fileName, position, options) { - var _this = this; - return this.forwardJSONCall("getSignatureHelpItems('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getSignatureHelpItems(fileName, position, options); }); - }; - /// GOTO DEFINITION - /** - * Computes the definition location and file for the symbol - * at the requested position. - */ - class_1.prototype.getDefinitionAtPosition = function (fileName, position) { - var _this = this; - return this.forwardJSONCall("getDefinitionAtPosition('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getDefinitionAtPosition(fileName, position); }); - }; - /** - * Computes the definition location and file for the symbol - * at the requested position. - */ - class_1.prototype.getDefinitionAndBoundSpan = function (fileName, position) { - var _this = this; - return this.forwardJSONCall("getDefinitionAndBoundSpan('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getDefinitionAndBoundSpan(fileName, position); }); - }; - /// GOTO Type - /** - * Computes the definition location of the type of the symbol - * at the requested position. - */ - class_1.prototype.getTypeDefinitionAtPosition = function (fileName, position) { - var _this = this; - return this.forwardJSONCall("getTypeDefinitionAtPosition('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getTypeDefinitionAtPosition(fileName, position); }); - }; - /// GOTO Implementation - /** - * Computes the implementation location of the symbol - * at the requested position. - */ - class_1.prototype.getImplementationAtPosition = function (fileName, position) { - var _this = this; - return this.forwardJSONCall("getImplementationAtPosition('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getImplementationAtPosition(fileName, position); }); - }; - class_1.prototype.getRenameInfo = function (fileName, position, preferences) { - var _this = this; - return this.forwardJSONCall("getRenameInfo('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getRenameInfo(fileName, position, preferences); }); - }; - class_1.prototype.getSmartSelectionRange = function (fileName, position) { - var _this = this; - return this.forwardJSONCall("getSmartSelectionRange('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getSmartSelectionRange(fileName, position); }); - }; - class_1.prototype.findRenameLocations = function (fileName, position, findInStrings, findInComments, preferences) { - var _this = this; - return this.forwardJSONCall("findRenameLocations('".concat(fileName, "', ").concat(position, ", ").concat(findInStrings, ", ").concat(findInComments, ")"), function () { return _this.languageService.findRenameLocations(fileName, position, findInStrings, findInComments, preferences); }); - }; - /// GET BRACE MATCHING - class_1.prototype.getBraceMatchingAtPosition = function (fileName, position) { - var _this = this; - return this.forwardJSONCall("getBraceMatchingAtPosition('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getBraceMatchingAtPosition(fileName, position); }); - }; - class_1.prototype.isValidBraceCompletionAtPosition = function (fileName, position, openingBrace) { - var _this = this; - return this.forwardJSONCall("isValidBraceCompletionAtPosition('".concat(fileName, "', ").concat(position, ", ").concat(openingBrace, ")"), function () { return _this.languageService.isValidBraceCompletionAtPosition(fileName, position, openingBrace); }); - }; - class_1.prototype.getSpanOfEnclosingComment = function (fileName, position, onlyMultiLine) { - var _this = this; - return this.forwardJSONCall("getSpanOfEnclosingComment('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getSpanOfEnclosingComment(fileName, position, onlyMultiLine); }); - }; - /// GET SMART INDENT - class_1.prototype.getIndentationAtPosition = function (fileName, position, options) { - var _this = this; - return this.forwardJSONCall("getIndentationAtPosition('".concat(fileName, "', ").concat(position, ")"), function () { - var localOptions = JSON.parse(options); - return _this.languageService.getIndentationAtPosition(fileName, position, localOptions); - }); - }; - /// GET REFERENCES - class_1.prototype.getReferencesAtPosition = function (fileName, position) { - var _this = this; - return this.forwardJSONCall("getReferencesAtPosition('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getReferencesAtPosition(fileName, position); }); - }; - class_1.prototype.findReferences = function (fileName, position) { - var _this = this; - return this.forwardJSONCall("findReferences('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.findReferences(fileName, position); }); - }; - class_1.prototype.getFileReferences = function (fileName) { - var _this = this; - return this.forwardJSONCall("getFileReferences('".concat(fileName, ")"), function () { return _this.languageService.getFileReferences(fileName); }); - }; - class_1.prototype.getDocumentHighlights = function (fileName, position, filesToSearch) { - var _this = this; - return this.forwardJSONCall("getDocumentHighlights('".concat(fileName, "', ").concat(position, ")"), function () { - var results = _this.languageService.getDocumentHighlights(fileName, position, JSON.parse(filesToSearch)); - var normalizedName = toFileNameLowerCase(normalizeSlashes(fileName)); - return filter(results, function (r) { return toFileNameLowerCase(normalizeSlashes(r.fileName)) === normalizedName; }); - }); - }; - /// COMPLETION LISTS - /** - * Get a string based representation of the completions - * to provide at the given source position and providing a member completion - * list if requested. - */ - class_1.prototype.getCompletionsAtPosition = function (fileName, position, preferences, formattingSettings) { - var _this = this; - return this.forwardJSONCall("getCompletionsAtPosition('".concat(fileName, "', ").concat(position, ", ").concat(preferences, ", ").concat(formattingSettings, ")"), function () { return _this.languageService.getCompletionsAtPosition(fileName, position, preferences, formattingSettings); }); - }; - /** Get a string based representation of a completion list entry details */ - class_1.prototype.getCompletionEntryDetails = function (fileName, position, entryName, formatOptions, source, preferences, data) { - var _this = this; - return this.forwardJSONCall("getCompletionEntryDetails('".concat(fileName, "', ").concat(position, ", '").concat(entryName, "')"), function () { - var localOptions = formatOptions === void 0 ? void 0 : JSON.parse(formatOptions); - return _this.languageService.getCompletionEntryDetails(fileName, position, entryName, localOptions, source, preferences, data); - }); - }; - class_1.prototype.getFormattingEditsForRange = function (fileName, start2, end, options) { - var _this = this; - return this.forwardJSONCall("getFormattingEditsForRange('".concat(fileName, "', ").concat(start2, ", ").concat(end, ")"), function () { - var localOptions = JSON.parse(options); - return _this.languageService.getFormattingEditsForRange(fileName, start2, end, localOptions); - }); - }; - class_1.prototype.getFormattingEditsForDocument = function (fileName, options) { - var _this = this; - return this.forwardJSONCall("getFormattingEditsForDocument('".concat(fileName, "')"), function () { - var localOptions = JSON.parse(options); - return _this.languageService.getFormattingEditsForDocument(fileName, localOptions); - }); - }; - class_1.prototype.getFormattingEditsAfterKeystroke = function (fileName, position, key, options) { - var _this = this; - return this.forwardJSONCall("getFormattingEditsAfterKeystroke('".concat(fileName, "', ").concat(position, ", '").concat(key, "')"), function () { - var localOptions = JSON.parse(options); - return _this.languageService.getFormattingEditsAfterKeystroke(fileName, position, key, localOptions); - }); - }; - class_1.prototype.getDocCommentTemplateAtPosition = function (fileName, position, options, formatOptions) { - var _this = this; - return this.forwardJSONCall("getDocCommentTemplateAtPosition('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getDocCommentTemplateAtPosition(fileName, position, options, formatOptions); }); - }; - /// NAVIGATE TO - /** Return a list of symbols that are interesting to navigate to */ - class_1.prototype.getNavigateToItems = function (searchValue, maxResultCount, fileName) { - var _this = this; - return this.forwardJSONCall("getNavigateToItems('".concat(searchValue, "', ").concat(maxResultCount, ", ").concat(fileName, ")"), function () { return _this.languageService.getNavigateToItems(searchValue, maxResultCount, fileName); }); - }; - class_1.prototype.getNavigationBarItems = function (fileName) { - var _this = this; - return this.forwardJSONCall("getNavigationBarItems('".concat(fileName, "')"), function () { return _this.languageService.getNavigationBarItems(fileName); }); - }; - class_1.prototype.getNavigationTree = function (fileName) { - var _this = this; - return this.forwardJSONCall("getNavigationTree('".concat(fileName, "')"), function () { return _this.languageService.getNavigationTree(fileName); }); - }; - class_1.prototype.getOutliningSpans = function (fileName) { - var _this = this; - return this.forwardJSONCall("getOutliningSpans('".concat(fileName, "')"), function () { return _this.languageService.getOutliningSpans(fileName); }); - }; - class_1.prototype.getTodoComments = function (fileName, descriptors) { - var _this = this; - return this.forwardJSONCall("getTodoComments('".concat(fileName, "')"), function () { return _this.languageService.getTodoComments(fileName, JSON.parse(descriptors)); }); - }; - /// CALL HIERARCHY - class_1.prototype.prepareCallHierarchy = function (fileName, position) { - var _this = this; - return this.forwardJSONCall("prepareCallHierarchy('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.prepareCallHierarchy(fileName, position); }); - }; - class_1.prototype.provideCallHierarchyIncomingCalls = function (fileName, position) { - var _this = this; - return this.forwardJSONCall("provideCallHierarchyIncomingCalls('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.provideCallHierarchyIncomingCalls(fileName, position); }); - }; - class_1.prototype.provideCallHierarchyOutgoingCalls = function (fileName, position) { - var _this = this; - return this.forwardJSONCall("provideCallHierarchyOutgoingCalls('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.provideCallHierarchyOutgoingCalls(fileName, position); }); - }; - class_1.prototype.provideInlayHints = function (fileName, span, preference) { - var _this = this; - return this.forwardJSONCall("provideInlayHints('".concat(fileName, "', '").concat(JSON.stringify(span), "', ").concat(JSON.stringify(preference), ")"), function () { return _this.languageService.provideInlayHints(fileName, span, preference); }); - }; - /// Emit - class_1.prototype.getEmitOutput = function (fileName) { - var _this = this; - return this.forwardJSONCall("getEmitOutput('".concat(fileName, "')"), function () { - var _t = _this.languageService.getEmitOutput(fileName), diagnostics = _t.diagnostics, rest = __rest(_t, ["diagnostics"]); - return __assign(__assign({}, rest), { diagnostics: _this.realizeDiagnostics(diagnostics) }); - }); - }; - class_1.prototype.getEmitOutputObject = function (fileName) { - var _this = this; - return forwardCall(this.logger, "getEmitOutput('".concat(fileName, "')"), - /*returnJson*/ - false, function () { return _this.languageService.getEmitOutput(fileName); }, this.logPerformance); - }; - class_1.prototype.toggleLineComment = function (fileName, textRange) { - var _this = this; - return this.forwardJSONCall("toggleLineComment('".concat(fileName, "', '").concat(JSON.stringify(textRange), "')"), function () { return _this.languageService.toggleLineComment(fileName, textRange); }); - }; - class_1.prototype.toggleMultilineComment = function (fileName, textRange) { - var _this = this; - return this.forwardJSONCall("toggleMultilineComment('".concat(fileName, "', '").concat(JSON.stringify(textRange), "')"), function () { return _this.languageService.toggleMultilineComment(fileName, textRange); }); - }; - class_1.prototype.commentSelection = function (fileName, textRange) { - var _this = this; - return this.forwardJSONCall("commentSelection('".concat(fileName, "', '").concat(JSON.stringify(textRange), "')"), function () { return _this.languageService.commentSelection(fileName, textRange); }); - }; - class_1.prototype.uncommentSelection = function (fileName, textRange) { - var _this = this; - return this.forwardJSONCall("uncommentSelection('".concat(fileName, "', '").concat(JSON.stringify(textRange), "')"), function () { return _this.languageService.uncommentSelection(fileName, textRange); }); - }; - return class_1; -}(ShimBase)); -function convertClassifications(classifications) { - return { spans: classifications.spans.join(","), endOfLineState: classifications.endOfLineState }; -} -var ClassifierShimObject = /** @class */ (function (_super) { - __extends(ClassifierShimObject, _super); - function ClassifierShimObject(factory2, logger) { - var _this = _super.call(this, factory2) || this; - _this.logger = logger; - _this.logPerformance = false; - _this.classifier = createClassifier(); - return _this; - } - ClassifierShimObject.prototype.getEncodedLexicalClassifications = function (text, lexState, syntacticClassifierAbsent) { - var _this = this; - if (syntacticClassifierAbsent === void 0) { syntacticClassifierAbsent = false; } - return forwardJSONCall(this.logger, "getEncodedLexicalClassifications", function () { return convertClassifications(_this.classifier.getEncodedLexicalClassifications(text, lexState, syntacticClassifierAbsent)); }, this.logPerformance); - }; - /// COLORIZATION - ClassifierShimObject.prototype.getClassificationsForLine = function (text, lexState, classifyKeywordsInGenerics) { - var e_733, _t; - if (classifyKeywordsInGenerics === void 0) { classifyKeywordsInGenerics = false; } - var classification = this.classifier.getClassificationsForLine(text, lexState, classifyKeywordsInGenerics); - var result = ""; - try { - for (var _u = __values(classification.entries), _v = _u.next(); !_v.done; _v = _u.next()) { - var item = _v.value; - result += item.length + "\n"; - result += item.classification + "\n"; - } - } - catch (e_733_1) { e_733 = { error: e_733_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_733) throw e_733.error; } - } - result += classification.finalLexState; - return result; - }; - return ClassifierShimObject; -}(ShimBase)); -var CoreServicesShimObject = /** @class */ (function (_super) { - __extends(CoreServicesShimObject, _super); - function CoreServicesShimObject(factory2, logger, host) { - var _this = _super.call(this, factory2) || this; - _this.logger = logger; - _this.host = host; - _this.logPerformance = false; - return _this; - } - CoreServicesShimObject.prototype.forwardJSONCall = function (actionDescription2, action) { - return forwardJSONCall(this.logger, actionDescription2, action, this.logPerformance); - }; - CoreServicesShimObject.prototype.resolveModuleName = function (fileName, moduleName, compilerOptionsJson) { - var _this = this; - return this.forwardJSONCall("resolveModuleName('".concat(fileName, "')"), function () { - var compilerOptions = JSON.parse(compilerOptionsJson); - var result = resolveModuleName(moduleName, normalizeSlashes(fileName), compilerOptions, _this.host); - var resolvedFileName = result.resolvedModule ? result.resolvedModule.resolvedFileName : void 0; - if (result.resolvedModule && result.resolvedModule.extension !== ".ts" /* Ts */ && result.resolvedModule.extension !== ".tsx" /* Tsx */ && result.resolvedModule.extension !== ".d.ts" /* Dts */) { - resolvedFileName = void 0; - } - return { - resolvedFileName: resolvedFileName, - failedLookupLocations: result.failedLookupLocations, - affectingLocations: result.affectingLocations - }; - }); - }; - CoreServicesShimObject.prototype.resolveTypeReferenceDirective = function (fileName, typeReferenceDirective, compilerOptionsJson) { - var _this = this; - return this.forwardJSONCall("resolveTypeReferenceDirective(".concat(fileName, ")"), function () { - var compilerOptions = JSON.parse(compilerOptionsJson); - var result = resolveTypeReferenceDirective(typeReferenceDirective, normalizeSlashes(fileName), compilerOptions, _this.host); - return { - resolvedFileName: result.resolvedTypeReferenceDirective ? result.resolvedTypeReferenceDirective.resolvedFileName : void 0, - primary: result.resolvedTypeReferenceDirective ? result.resolvedTypeReferenceDirective.primary : true, - failedLookupLocations: result.failedLookupLocations - }; - }); - }; - CoreServicesShimObject.prototype.getPreProcessedFileInfo = function (fileName, sourceTextSnapshot) { - var _this = this; - return this.forwardJSONCall("getPreProcessedFileInfo('".concat(fileName, "')"), function () { - var result = preProcessFile(getSnapshotText(sourceTextSnapshot), - /*readImportFiles*/ - true, - /*detectJavaScriptImports*/ - true); - return { - referencedFiles: _this.convertFileReferences(result.referencedFiles), - importedFiles: _this.convertFileReferences(result.importedFiles), - ambientExternalModules: result.ambientExternalModules, - isLibFile: result.isLibFile, - typeReferenceDirectives: _this.convertFileReferences(result.typeReferenceDirectives), - libReferenceDirectives: _this.convertFileReferences(result.libReferenceDirectives) - }; - }); - }; - CoreServicesShimObject.prototype.getAutomaticTypeDirectiveNames = function (compilerOptionsJson) { - var _this = this; - return this.forwardJSONCall("getAutomaticTypeDirectiveNames('".concat(compilerOptionsJson, "')"), function () { - var compilerOptions = JSON.parse(compilerOptionsJson); - return getAutomaticTypeDirectiveNames(compilerOptions, _this.host); - }); - }; - CoreServicesShimObject.prototype.convertFileReferences = function (refs) { - var e_734, _t; - if (!refs) { - return void 0; - } - var result = []; - try { - for (var refs_1 = __values(refs), refs_1_1 = refs_1.next(); !refs_1_1.done; refs_1_1 = refs_1.next()) { - var ref = refs_1_1.value; - result.push({ - path: normalizeSlashes(ref.fileName), - position: ref.pos, - length: ref.end - ref.pos - }); - } - } - catch (e_734_1) { e_734 = { error: e_734_1 }; } - finally { - try { - if (refs_1_1 && !refs_1_1.done && (_t = refs_1.return)) _t.call(refs_1); - } - finally { if (e_734) throw e_734.error; } - } - return result; - }; - CoreServicesShimObject.prototype.getTSConfigFileInfo = function (fileName, sourceTextSnapshot) { - var _this = this; - return this.forwardJSONCall("getTSConfigFileInfo('".concat(fileName, "')"), function () { - var result = parseJsonText(fileName, getSnapshotText(sourceTextSnapshot)); - var normalizedFileName = normalizeSlashes(fileName); - var configFile = parseJsonSourceFileConfigFileContent(result, _this.host, getDirectoryPath(normalizedFileName), - /*existingOptions*/ - {}, normalizedFileName); - return { - options: configFile.options, - typeAcquisition: configFile.typeAcquisition, - files: configFile.fileNames, - raw: configFile.raw, - errors: realizeDiagnostics(__spreadArray(__spreadArray([], __read(result.parseDiagnostics), false), __read(configFile.errors), false), "\r\n") - }; - }); - }; - CoreServicesShimObject.prototype.getDefaultCompilationSettings = function () { - return this.forwardJSONCall("getDefaultCompilationSettings()", function () { return getDefaultCompilerOptions2(); }); - }; - CoreServicesShimObject.prototype.discoverTypings = function (discoverTypingsJson) { - var _this = this; - var getCanonicalFileName = createGetCanonicalFileName( - /*useCaseSensitiveFileNames*/ - false); - return this.forwardJSONCall("discoverTypings()", function () { - var info = JSON.parse(discoverTypingsJson); - if (_this.safeList === void 0) { - _this.safeList = ts_JsTyping_exports.loadSafeList(_this.host, toPath(info.safeListPath, info.safeListPath, getCanonicalFileName)); - } - return ts_JsTyping_exports.discoverTypings(_this.host, function (msg) { return _this.logger.log(msg); }, info.fileNames, toPath(info.projectRootPath, info.projectRootPath, getCanonicalFileName), _this.safeList, info.packageNameToTypingLocation, info.typeAcquisition, info.unresolvedImports, info.typesRegistry, emptyOptions); - }); - }; - return CoreServicesShimObject; -}(ShimBase)); -var TypeScriptServicesFactory = /** @class */ (function () { - function TypeScriptServicesFactory() { - this._shims = []; - } - /* - * Returns script API version. - */ - TypeScriptServicesFactory.prototype.getServicesVersion = function () { - return servicesVersion; - }; - TypeScriptServicesFactory.prototype.createLanguageServiceShim = function (host) { - try { - if (this.documentRegistry === void 0) { - this.documentRegistry = createDocumentRegistry(host.useCaseSensitiveFileNames && host.useCaseSensitiveFileNames(), host.getCurrentDirectory()); - } - var hostAdapter = new LanguageServiceShimHostAdapter(host); - var languageService = createLanguageService(hostAdapter, this.documentRegistry, - /*syntaxOnlyOrLanguageServiceMode*/ - false); - return new LanguageServiceShimObject(this, host, languageService); - } - catch (err) { - logInternalError(host, err); - throw err; - } - }; - TypeScriptServicesFactory.prototype.createClassifierShim = function (logger) { - try { - return new ClassifierShimObject(this, logger); - } - catch (err) { - logInternalError(logger, err); - throw err; - } - }; - TypeScriptServicesFactory.prototype.createCoreServicesShim = function (host) { - try { - var adapter = new CoreServicesShimHostAdapter(host); - return new CoreServicesShimObject(this, host, adapter); - } - catch (err) { - logInternalError(host, err); - throw err; - } - }; - TypeScriptServicesFactory.prototype.close = function () { - clear(this._shims); - this.documentRegistry = void 0; - }; - TypeScriptServicesFactory.prototype.registerShim = function (shim) { - this._shims.push(shim); - }; - TypeScriptServicesFactory.prototype.unregisterShim = function (shim) { - for (var i = 0; i < this._shims.length; i++) { - if (this._shims[i] === shim) { - delete this._shims[i]; - return; - } - } - throw new Error("Invalid operation"); - }; - return TypeScriptServicesFactory; -}()); -// src/services/_namespaces/ts.BreakpointResolver.ts -var ts_BreakpointResolver_exports = {}; -__export(ts_BreakpointResolver_exports, { - spanInSourceFileAtLocation: function () { return spanInSourceFileAtLocation; } -}); -// src/services/breakpoints.ts -function spanInSourceFileAtLocation(sourceFile, position) { - if (sourceFile.isDeclarationFile) { - return void 0; - } - var tokenAtLocation = getTokenAtPosition(sourceFile, position); - var lineOfPosition = sourceFile.getLineAndCharacterOfPosition(position).line; - if (sourceFile.getLineAndCharacterOfPosition(tokenAtLocation.getStart(sourceFile)).line > lineOfPosition) { - var preceding = findPrecedingToken(tokenAtLocation.pos, sourceFile); - if (!preceding || sourceFile.getLineAndCharacterOfPosition(preceding.getEnd()).line !== lineOfPosition) { - return void 0; - } - tokenAtLocation = preceding; - } - if (tokenAtLocation.flags & 33554432 /* Ambient */) { - return void 0; - } - return spanInNode(tokenAtLocation); - function textSpan(startNode2, endNode2) { - var lastDecorator = canHaveDecorators(startNode2) ? findLast(startNode2.modifiers, isDecorator) : void 0; - var start2 = lastDecorator ? skipTrivia(sourceFile.text, lastDecorator.end) : startNode2.getStart(sourceFile); - return createTextSpanFromBounds(start2, (endNode2 || startNode2).getEnd()); - } - function textSpanEndingAtNextToken(startNode2, previousTokenToFindNextEndToken) { - return textSpan(startNode2, findNextToken(previousTokenToFindNextEndToken, previousTokenToFindNextEndToken.parent, sourceFile)); - } - function spanInNodeIfStartsOnSameLine(node, otherwiseOnNode) { - if (node && lineOfPosition === sourceFile.getLineAndCharacterOfPosition(node.getStart(sourceFile)).line) { - return spanInNode(node); - } - return spanInNode(otherwiseOnNode); - } - function spanInNodeArray(nodeArray, node, match) { - if (nodeArray) { - var index = nodeArray.indexOf(node); - if (index >= 0) { - var start2 = index; - var end = index + 1; - while (start2 > 0 && match(nodeArray[start2 - 1])) - start2--; - while (end < nodeArray.length && match(nodeArray[end])) - end++; - return createTextSpanFromBounds(skipTrivia(sourceFile.text, nodeArray[start2].pos), nodeArray[end - 1].end); - } - } - return textSpan(node); - } - function spanInPreviousNode(node) { - return spanInNode(findPrecedingToken(node.pos, sourceFile)); - } - function spanInNextNode(node) { - return spanInNode(findNextToken(node, node.parent, sourceFile)); - } - function spanInNode(node) { - if (node) { - var parent2 = node.parent; - switch (node.kind) { - case 243 /* VariableStatement */: - return spanInVariableDeclaration(node.declarationList.declarations[0]); - case 260 /* VariableDeclaration */: - case 172 /* PropertyDeclaration */: - case 171 /* PropertySignature */: - return spanInVariableDeclaration(node); - case 169 /* Parameter */: - return spanInParameterDeclaration(node); - case 262 /* FunctionDeclaration */: - case 174 /* MethodDeclaration */: - case 173 /* MethodSignature */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - case 176 /* Constructor */: - case 218 /* FunctionExpression */: - case 219 /* ArrowFunction */: - return spanInFunctionDeclaration(node); - case 241 /* Block */: - if (isFunctionBlock(node)) { - return spanInFunctionBlock(node); - } - case 268 /* ModuleBlock */: - return spanInBlock(node); - case 299 /* CatchClause */: - return spanInBlock(node.block); - case 244 /* ExpressionStatement */: - return textSpan(node.expression); - case 253 /* ReturnStatement */: - return textSpan(node.getChildAt(0), node.expression); - case 247 /* WhileStatement */: - return textSpanEndingAtNextToken(node, node.expression); - case 246 /* DoStatement */: - return spanInNode(node.statement); - case 259 /* DebuggerStatement */: - return textSpan(node.getChildAt(0)); - case 245 /* IfStatement */: - return textSpanEndingAtNextToken(node, node.expression); - case 256 /* LabeledStatement */: - return spanInNode(node.statement); - case 252 /* BreakStatement */: - case 251 /* ContinueStatement */: - return textSpan(node.getChildAt(0), node.label); - case 248 /* ForStatement */: - return spanInForStatement(node); - case 249 /* ForInStatement */: - return textSpanEndingAtNextToken(node, node.expression); - case 250 /* ForOfStatement */: - return spanInInitializerOfForLike(node); - case 255 /* SwitchStatement */: - return textSpanEndingAtNextToken(node, node.expression); - case 296 /* CaseClause */: - case 297 /* DefaultClause */: - return spanInNode(node.statements[0]); - case 258 /* TryStatement */: - return spanInBlock(node.tryBlock); - case 257 /* ThrowStatement */: - return textSpan(node, node.expression); - case 277 /* ExportAssignment */: - return textSpan(node, node.expression); - case 271 /* ImportEqualsDeclaration */: - return textSpan(node, node.moduleReference); - case 272 /* ImportDeclaration */: - return textSpan(node, node.moduleSpecifier); - case 278 /* ExportDeclaration */: - return textSpan(node, node.moduleSpecifier); - case 267 /* ModuleDeclaration */: - if (getModuleInstanceState(node) !== 1 /* Instantiated */) { - return void 0; - } - case 263 /* ClassDeclaration */: - case 266 /* EnumDeclaration */: - case 306 /* EnumMember */: - case 208 /* BindingElement */: - return textSpan(node); - case 254 /* WithStatement */: - return spanInNode(node.statement); - case 170 /* Decorator */: - return spanInNodeArray(parent2.modifiers, node, isDecorator); - case 206 /* ObjectBindingPattern */: - case 207 /* ArrayBindingPattern */: - return spanInBindingPattern(node); - case 264 /* InterfaceDeclaration */: - case 265 /* TypeAliasDeclaration */: - return void 0; - case 27 /* SemicolonToken */: - case 1 /* EndOfFileToken */: - return spanInNodeIfStartsOnSameLine(findPrecedingToken(node.pos, sourceFile)); - case 28 /* CommaToken */: - return spanInPreviousNode(node); - case 19 /* OpenBraceToken */: - return spanInOpenBraceToken(node); - case 20 /* CloseBraceToken */: - return spanInCloseBraceToken(node); - case 24 /* CloseBracketToken */: - return spanInCloseBracketToken(node); - case 21 /* OpenParenToken */: - return spanInOpenParenToken(node); - case 22 /* CloseParenToken */: - return spanInCloseParenToken(node); - case 59 /* ColonToken */: - return spanInColonToken(node); - case 32 /* GreaterThanToken */: - case 30 /* LessThanToken */: - return spanInGreaterThanOrLessThanToken(node); - case 117 /* WhileKeyword */: - return spanInWhileKeyword(node); - case 93 /* ElseKeyword */: - case 85 /* CatchKeyword */: - case 98 /* FinallyKeyword */: - return spanInNextNode(node); - case 165 /* OfKeyword */: - return spanInOfKeyword(node); - default: - if (isArrayLiteralOrObjectLiteralDestructuringPattern(node)) { - return spanInArrayLiteralOrObjectLiteralDestructuringPattern(node); - } - if ((node.kind === 80 /* Identifier */ || node.kind === 230 /* SpreadElement */ || node.kind === 303 /* PropertyAssignment */ || node.kind === 304 /* ShorthandPropertyAssignment */) && isArrayLiteralOrObjectLiteralDestructuringPattern(parent2)) { - return textSpan(node); - } - if (node.kind === 226 /* BinaryExpression */) { - var left = node.left, operatorToken = node.operatorToken; - if (isArrayLiteralOrObjectLiteralDestructuringPattern(left)) { - return spanInArrayLiteralOrObjectLiteralDestructuringPattern(left); - } - if (operatorToken.kind === 64 /* EqualsToken */ && isArrayLiteralOrObjectLiteralDestructuringPattern(node.parent)) { - return textSpan(node); - } - if (operatorToken.kind === 28 /* CommaToken */) { - return spanInNode(left); - } - } - if (isExpressionNode(node)) { - switch (parent2.kind) { - case 246 /* DoStatement */: - return spanInPreviousNode(node); - case 170 /* Decorator */: - return spanInNode(node.parent); - case 248 /* ForStatement */: - case 250 /* ForOfStatement */: - return textSpan(node); - case 226 /* BinaryExpression */: - if (node.parent.operatorToken.kind === 28 /* CommaToken */) { - return textSpan(node); - } - break; - case 219 /* ArrowFunction */: - if (node.parent.body === node) { - return textSpan(node); - } - break; - } - } - switch (node.parent.kind) { - case 303 /* PropertyAssignment */: - if (node.parent.name === node && !isArrayLiteralOrObjectLiteralDestructuringPattern(node.parent.parent)) { - return spanInNode(node.parent.initializer); - } - break; - case 216 /* TypeAssertionExpression */: - if (node.parent.type === node) { - return spanInNextNode(node.parent.type); - } - break; - case 260 /* VariableDeclaration */: - case 169 /* Parameter */: { - var _t = node.parent, initializer = _t.initializer, type = _t.type; - if (initializer === node || type === node || isAssignmentOperator(node.kind)) { - return spanInPreviousNode(node); - } - break; - } - case 226 /* BinaryExpression */: { - var left = node.parent.left; - if (isArrayLiteralOrObjectLiteralDestructuringPattern(left) && node !== left) { - return spanInPreviousNode(node); - } - break; - } - default: - if (isFunctionLike(node.parent) && node.parent.type === node) { - return spanInPreviousNode(node); - } - } - return spanInNode(node.parent); - } - } - function textSpanFromVariableDeclaration(variableDeclaration) { - if (isVariableDeclarationList(variableDeclaration.parent) && variableDeclaration.parent.declarations[0] === variableDeclaration) { - return textSpan(findPrecedingToken(variableDeclaration.pos, sourceFile, variableDeclaration.parent), variableDeclaration); - } - else { - return textSpan(variableDeclaration); - } - } - function spanInVariableDeclaration(variableDeclaration) { - if (variableDeclaration.parent.parent.kind === 249 /* ForInStatement */) { - return spanInNode(variableDeclaration.parent.parent); - } - var parent2 = variableDeclaration.parent; - if (isBindingPattern(variableDeclaration.name)) { - return spanInBindingPattern(variableDeclaration.name); - } - if (hasOnlyExpressionInitializer(variableDeclaration) && variableDeclaration.initializer || hasSyntacticModifier(variableDeclaration, 1 /* Export */) || parent2.parent.kind === 250 /* ForOfStatement */) { - return textSpanFromVariableDeclaration(variableDeclaration); - } - if (isVariableDeclarationList(variableDeclaration.parent) && variableDeclaration.parent.declarations[0] !== variableDeclaration) { - return spanInNode(findPrecedingToken(variableDeclaration.pos, sourceFile, variableDeclaration.parent)); - } - } - function canHaveSpanInParameterDeclaration(parameter) { - return !!parameter.initializer || parameter.dotDotDotToken !== void 0 || hasSyntacticModifier(parameter, 4 /* Public */ | 8 /* Private */); - } - function spanInParameterDeclaration(parameter) { - if (isBindingPattern(parameter.name)) { - return spanInBindingPattern(parameter.name); - } - else if (canHaveSpanInParameterDeclaration(parameter)) { - return textSpan(parameter); - } - else { - var functionDeclaration = parameter.parent; - var indexOfParameter = functionDeclaration.parameters.indexOf(parameter); - Debug.assert(indexOfParameter !== -1); - if (indexOfParameter !== 0) { - return spanInParameterDeclaration(functionDeclaration.parameters[indexOfParameter - 1]); - } - else { - return spanInNode(functionDeclaration.body); - } - } - } - function canFunctionHaveSpanInWholeDeclaration(functionDeclaration) { - return hasSyntacticModifier(functionDeclaration, 1 /* Export */) || functionDeclaration.parent.kind === 263 /* ClassDeclaration */ && functionDeclaration.kind !== 176 /* Constructor */; - } - function spanInFunctionDeclaration(functionDeclaration) { - if (!functionDeclaration.body) { - return void 0; - } - if (canFunctionHaveSpanInWholeDeclaration(functionDeclaration)) { - return textSpan(functionDeclaration); - } - return spanInNode(functionDeclaration.body); - } - function spanInFunctionBlock(block) { - var nodeForSpanInBlock = block.statements.length ? block.statements[0] : block.getLastToken(); - if (canFunctionHaveSpanInWholeDeclaration(block.parent)) { - return spanInNodeIfStartsOnSameLine(block.parent, nodeForSpanInBlock); - } - return spanInNode(nodeForSpanInBlock); - } - function spanInBlock(block) { - switch (block.parent.kind) { - case 267 /* ModuleDeclaration */: - if (getModuleInstanceState(block.parent) !== 1 /* Instantiated */) { - return void 0; - } - case 247 /* WhileStatement */: - case 245 /* IfStatement */: - case 249 /* ForInStatement */: - return spanInNodeIfStartsOnSameLine(block.parent, block.statements[0]); - case 248 /* ForStatement */: - case 250 /* ForOfStatement */: - return spanInNodeIfStartsOnSameLine(findPrecedingToken(block.pos, sourceFile, block.parent), block.statements[0]); - } - return spanInNode(block.statements[0]); - } - function spanInInitializerOfForLike(forLikeStatement) { - if (forLikeStatement.initializer.kind === 261 /* VariableDeclarationList */) { - var variableDeclarationList = forLikeStatement.initializer; - if (variableDeclarationList.declarations.length > 0) { - return spanInNode(variableDeclarationList.declarations[0]); - } - } - else { - return spanInNode(forLikeStatement.initializer); - } - } - function spanInForStatement(forStatement) { - if (forStatement.initializer) { - return spanInInitializerOfForLike(forStatement); - } - if (forStatement.condition) { - return textSpan(forStatement.condition); - } - if (forStatement.incrementor) { - return textSpan(forStatement.incrementor); - } - } - function spanInBindingPattern(bindingPattern) { - var firstBindingElement = forEach(bindingPattern.elements, function (element) { return element.kind !== 232 /* OmittedExpression */ ? element : void 0; }); - if (firstBindingElement) { - return spanInNode(firstBindingElement); - } - if (bindingPattern.parent.kind === 208 /* BindingElement */) { - return textSpan(bindingPattern.parent); - } - return textSpanFromVariableDeclaration(bindingPattern.parent); - } - function spanInArrayLiteralOrObjectLiteralDestructuringPattern(node2) { - Debug.assert(node2.kind !== 207 /* ArrayBindingPattern */ && node2.kind !== 206 /* ObjectBindingPattern */); - var elements = node2.kind === 209 /* ArrayLiteralExpression */ ? node2.elements : node2.properties; - var firstBindingElement = forEach(elements, function (element) { return element.kind !== 232 /* OmittedExpression */ ? element : void 0; }); - if (firstBindingElement) { - return spanInNode(firstBindingElement); - } - return textSpan(node2.parent.kind === 226 /* BinaryExpression */ ? node2.parent : node2); - } - function spanInOpenBraceToken(node2) { - switch (node2.parent.kind) { - case 266 /* EnumDeclaration */: - var enumDeclaration = node2.parent; - return spanInNodeIfStartsOnSameLine(findPrecedingToken(node2.pos, sourceFile, node2.parent), enumDeclaration.members.length ? enumDeclaration.members[0] : enumDeclaration.getLastToken(sourceFile)); - case 263 /* ClassDeclaration */: - var classDeclaration = node2.parent; - return spanInNodeIfStartsOnSameLine(findPrecedingToken(node2.pos, sourceFile, node2.parent), classDeclaration.members.length ? classDeclaration.members[0] : classDeclaration.getLastToken(sourceFile)); - case 269 /* CaseBlock */: - return spanInNodeIfStartsOnSameLine(node2.parent.parent, node2.parent.clauses[0]); - } - return spanInNode(node2.parent); - } - function spanInCloseBraceToken(node2) { - switch (node2.parent.kind) { - case 268 /* ModuleBlock */: - if (getModuleInstanceState(node2.parent.parent) !== 1 /* Instantiated */) { - return void 0; - } - case 266 /* EnumDeclaration */: - case 263 /* ClassDeclaration */: - return textSpan(node2); - case 241 /* Block */: - if (isFunctionBlock(node2.parent)) { - return textSpan(node2); - } - case 299 /* CatchClause */: - return spanInNode(lastOrUndefined(node2.parent.statements)); - case 269 /* CaseBlock */: - var caseBlock = node2.parent; - var lastClause = lastOrUndefined(caseBlock.clauses); - if (lastClause) { - return spanInNode(lastOrUndefined(lastClause.statements)); - } - return void 0; - case 206 /* ObjectBindingPattern */: - var bindingPattern = node2.parent; - return spanInNode(lastOrUndefined(bindingPattern.elements) || bindingPattern); - default: - if (isArrayLiteralOrObjectLiteralDestructuringPattern(node2.parent)) { - var objectLiteral = node2.parent; - return textSpan(lastOrUndefined(objectLiteral.properties) || objectLiteral); - } - return spanInNode(node2.parent); - } - } - function spanInCloseBracketToken(node2) { - switch (node2.parent.kind) { - case 207 /* ArrayBindingPattern */: - var bindingPattern = node2.parent; - return textSpan(lastOrUndefined(bindingPattern.elements) || bindingPattern); - default: - if (isArrayLiteralOrObjectLiteralDestructuringPattern(node2.parent)) { - var arrayLiteral = node2.parent; - return textSpan(lastOrUndefined(arrayLiteral.elements) || arrayLiteral); - } - return spanInNode(node2.parent); - } - } - function spanInOpenParenToken(node2) { - if (node2.parent.kind === 246 /* DoStatement */ || // Go to while keyword and do action instead - node2.parent.kind === 213 /* CallExpression */ || node2.parent.kind === 214 /* NewExpression */) { - return spanInPreviousNode(node2); - } - if (node2.parent.kind === 217 /* ParenthesizedExpression */) { - return spanInNextNode(node2); - } - return spanInNode(node2.parent); - } - function spanInCloseParenToken(node2) { - switch (node2.parent.kind) { - case 218 /* FunctionExpression */: - case 262 /* FunctionDeclaration */: - case 219 /* ArrowFunction */: - case 174 /* MethodDeclaration */: - case 173 /* MethodSignature */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - case 176 /* Constructor */: - case 247 /* WhileStatement */: - case 246 /* DoStatement */: - case 248 /* ForStatement */: - case 250 /* ForOfStatement */: - case 213 /* CallExpression */: - case 214 /* NewExpression */: - case 217 /* ParenthesizedExpression */: - return spanInPreviousNode(node2); - default: - return spanInNode(node2.parent); - } - } - function spanInColonToken(node2) { - if (isFunctionLike(node2.parent) || node2.parent.kind === 303 /* PropertyAssignment */ || node2.parent.kind === 169 /* Parameter */) { - return spanInPreviousNode(node2); - } - return spanInNode(node2.parent); - } - function spanInGreaterThanOrLessThanToken(node2) { - if (node2.parent.kind === 216 /* TypeAssertionExpression */) { - return spanInNextNode(node2); - } - return spanInNode(node2.parent); - } - function spanInWhileKeyword(node2) { - if (node2.parent.kind === 246 /* DoStatement */) { - return textSpanEndingAtNextToken(node2, node2.parent.expression); - } - return spanInNode(node2.parent); - } - function spanInOfKeyword(node2) { - if (node2.parent.kind === 250 /* ForOfStatement */) { - return spanInNextNode(node2); - } - return spanInNode(node2.parent); - } - } -} -// src/services/_namespaces/ts.CallHierarchy.ts -var ts_CallHierarchy_exports = {}; -__export(ts_CallHierarchy_exports, { - createCallHierarchyItem: function () { return createCallHierarchyItem; }, - getIncomingCalls: function () { return getIncomingCalls; }, - getOutgoingCalls: function () { return getOutgoingCalls; }, - resolveCallHierarchyDeclaration: function () { return resolveCallHierarchyDeclaration; } -}); -// src/services/callHierarchy.ts -function isNamedExpression(node) { - return (isFunctionExpression(node) || isClassExpression(node)) && isNamedDeclaration(node); -} -function isConstNamedExpression(node) { - return (isFunctionExpression(node) || isArrowFunction(node) || isClassExpression(node)) && isVariableDeclaration(node.parent) && node === node.parent.initializer && isIdentifier(node.parent.name) && !!(getCombinedNodeFlags(node.parent) & 2 /* Const */); -} -function isPossibleCallHierarchyDeclaration(node) { - return isSourceFile(node) || isModuleDeclaration(node) || isFunctionDeclaration(node) || isFunctionExpression(node) || isClassDeclaration(node) || isClassExpression(node) || isClassStaticBlockDeclaration(node) || isMethodDeclaration(node) || isMethodSignature(node) || isGetAccessorDeclaration(node) || isSetAccessorDeclaration(node); -} -function isValidCallHierarchyDeclaration(node) { - return isSourceFile(node) || isModuleDeclaration(node) && isIdentifier(node.name) || isFunctionDeclaration(node) || isClassDeclaration(node) || isClassStaticBlockDeclaration(node) || isMethodDeclaration(node) || isMethodSignature(node) || isGetAccessorDeclaration(node) || isSetAccessorDeclaration(node) || isNamedExpression(node) || isConstNamedExpression(node); -} -function getCallHierarchyDeclarationReferenceNode(node) { - if (isSourceFile(node)) - return node; - if (isNamedDeclaration(node)) - return node.name; - if (isConstNamedExpression(node)) - return node.parent.name; - return Debug.checkDefined(node.modifiers && find(node.modifiers, isDefaultModifier3)); -} -function isDefaultModifier3(node) { - return node.kind === 90 /* DefaultKeyword */; -} -function getSymbolOfCallHierarchyDeclaration(typeChecker, node) { - var location = getCallHierarchyDeclarationReferenceNode(node); - return location && typeChecker.getSymbolAtLocation(location); -} -function getCallHierarchyItemName(program, node) { - if (isSourceFile(node)) { - return { text: node.fileName, pos: 0, end: 0 }; - } - if ((isFunctionDeclaration(node) || isClassDeclaration(node)) && !isNamedDeclaration(node)) { - var defaultModifier = node.modifiers && find(node.modifiers, isDefaultModifier3); - if (defaultModifier) { - return { text: "default", pos: defaultModifier.getStart(), end: defaultModifier.getEnd() }; - } - } - if (isClassStaticBlockDeclaration(node)) { - var sourceFile = node.getSourceFile(); - var pos = skipTrivia(sourceFile.text, moveRangePastModifiers(node).pos); - var end = pos + 6; - var typeChecker = program.getTypeChecker(); - var symbol = typeChecker.getSymbolAtLocation(node.parent); - var prefix = symbol ? "".concat(typeChecker.symbolToString(symbol, node.parent), " ") : ""; - return { text: "".concat(prefix, "static {}"), pos: pos, end: end }; - } - var declName = isConstNamedExpression(node) ? node.parent.name : Debug.checkDefined(getNameOfDeclaration(node), "Expected call hierarchy item to have a name"); - var text = isIdentifier(declName) ? idText(declName) : isStringOrNumericLiteralLike(declName) ? declName.text : isComputedPropertyName(declName) ? isStringOrNumericLiteralLike(declName.expression) ? declName.expression.text : void 0 : void 0; - if (text === void 0) { - var typeChecker = program.getTypeChecker(); - var symbol = typeChecker.getSymbolAtLocation(declName); - if (symbol) { - text = typeChecker.symbolToString(symbol, node); - } - } - if (text === void 0) { - var printer_1 = createPrinterWithRemoveCommentsOmitTrailingSemicolon(); - text = usingSingleLineStringWriter(function (writer) { return printer_1.writeNode(4 /* Unspecified */, node, node.getSourceFile(), writer); }); - } - return { text: text, pos: declName.getStart(), end: declName.getEnd() }; -} -function getCallHierarchItemContainerName(node) { - var _a, _b; - if (isConstNamedExpression(node)) { - if (isModuleBlock(node.parent.parent.parent.parent) && isIdentifier(node.parent.parent.parent.parent.parent.name)) { - return node.parent.parent.parent.parent.parent.name.getText(); - } - return; - } - switch (node.kind) { - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - case 174 /* MethodDeclaration */: - if (node.parent.kind === 210 /* ObjectLiteralExpression */) { - return (_a = getAssignedName(node.parent)) == null ? void 0 : _a.getText(); - } - return (_b = getNameOfDeclaration(node.parent)) == null ? void 0 : _b.getText(); - case 262 /* FunctionDeclaration */: - case 263 /* ClassDeclaration */: - case 267 /* ModuleDeclaration */: - if (isModuleBlock(node.parent) && isIdentifier(node.parent.parent.name)) { - return node.parent.parent.name.getText(); - } - } -} -function findImplementation(typeChecker, node) { - if (node.body) { - return node; - } - if (isConstructorDeclaration(node)) { - return getFirstConstructorWithBody(node.parent); - } - if (isFunctionDeclaration(node) || isMethodDeclaration(node)) { - var symbol = getSymbolOfCallHierarchyDeclaration(typeChecker, node); - if (symbol && symbol.valueDeclaration && isFunctionLikeDeclaration(symbol.valueDeclaration) && symbol.valueDeclaration.body) { - return symbol.valueDeclaration; - } - return void 0; - } - return node; -} -function findAllInitialDeclarations(typeChecker, node) { - var e_735, _t; - var symbol = getSymbolOfCallHierarchyDeclaration(typeChecker, node); - var declarations; - if (symbol && symbol.declarations) { - var indices = indicesOf(symbol.declarations); - var keys_1 = map(symbol.declarations, function (decl) { return ({ file: decl.getSourceFile().fileName, pos: decl.pos }); }); - indices.sort(function (a, b) { return compareStringsCaseSensitive(keys_1[a].file, keys_1[b].file) || keys_1[a].pos - keys_1[b].pos; }); - var sortedDeclarations = map(indices, function (i) { return symbol.declarations[i]; }); - var lastDecl = void 0; - try { - for (var sortedDeclarations_1 = __values(sortedDeclarations), sortedDeclarations_1_1 = sortedDeclarations_1.next(); !sortedDeclarations_1_1.done; sortedDeclarations_1_1 = sortedDeclarations_1.next()) { - var decl = sortedDeclarations_1_1.value; - if (isValidCallHierarchyDeclaration(decl)) { - if (!lastDecl || lastDecl.parent !== decl.parent || lastDecl.end !== decl.pos) { - declarations = append(declarations, decl); - } - lastDecl = decl; - } - } - } - catch (e_735_1) { e_735 = { error: e_735_1 }; } - finally { - try { - if (sortedDeclarations_1_1 && !sortedDeclarations_1_1.done && (_t = sortedDeclarations_1.return)) _t.call(sortedDeclarations_1); - } - finally { if (e_735) throw e_735.error; } - } - } - return declarations; -} -function findImplementationOrAllInitialDeclarations(typeChecker, node) { - var _t, _u, _v; - if (isClassStaticBlockDeclaration(node)) { - return node; - } - if (isFunctionLikeDeclaration(node)) { - return (_u = (_t = findImplementation(typeChecker, node)) !== null && _t !== void 0 ? _t : findAllInitialDeclarations(typeChecker, node)) !== null && _u !== void 0 ? _u : node; - } - return (_v = findAllInitialDeclarations(typeChecker, node)) !== null && _v !== void 0 ? _v : node; -} -function resolveCallHierarchyDeclaration(program, location) { - var typeChecker = program.getTypeChecker(); - var followingSymbol = false; - while (true) { - if (isValidCallHierarchyDeclaration(location)) { - return findImplementationOrAllInitialDeclarations(typeChecker, location); - } - if (isPossibleCallHierarchyDeclaration(location)) { - var ancestor = findAncestor(location, isValidCallHierarchyDeclaration); - return ancestor && findImplementationOrAllInitialDeclarations(typeChecker, ancestor); - } - if (isDeclarationName(location)) { - if (isValidCallHierarchyDeclaration(location.parent)) { - return findImplementationOrAllInitialDeclarations(typeChecker, location.parent); - } - if (isPossibleCallHierarchyDeclaration(location.parent)) { - var ancestor = findAncestor(location.parent, isValidCallHierarchyDeclaration); - return ancestor && findImplementationOrAllInitialDeclarations(typeChecker, ancestor); - } - if (isVariableDeclaration(location.parent) && location.parent.initializer && isConstNamedExpression(location.parent.initializer)) { - return location.parent.initializer; - } - return void 0; - } - if (isConstructorDeclaration(location)) { - if (isValidCallHierarchyDeclaration(location.parent)) { - return location.parent; - } - return void 0; - } - if (location.kind === 126 /* StaticKeyword */ && isClassStaticBlockDeclaration(location.parent)) { - location = location.parent; - continue; - } - if (isVariableDeclaration(location) && location.initializer && isConstNamedExpression(location.initializer)) { - return location.initializer; - } - if (!followingSymbol) { - var symbol = typeChecker.getSymbolAtLocation(location); - if (symbol) { - if (symbol.flags & 2097152 /* Alias */) { - symbol = typeChecker.getAliasedSymbol(symbol); - } - if (symbol.valueDeclaration) { - followingSymbol = true; - location = symbol.valueDeclaration; - continue; - } - } - } - return void 0; - } -} -function createCallHierarchyItem(program, node) { - var sourceFile = node.getSourceFile(); - var name = getCallHierarchyItemName(program, node); - var containerName = getCallHierarchItemContainerName(node); - var kind = getNodeKind(node); - var kindModifiers = getNodeModifiers(node); - var span = createTextSpanFromBounds(skipTrivia(sourceFile.text, node.getFullStart(), - /*stopAfterLineBreak*/ - false, - /*stopAtComments*/ - true), node.getEnd()); - var selectionSpan = createTextSpanFromBounds(name.pos, name.end); - return { file: sourceFile.fileName, kind: kind, kindModifiers: kindModifiers, name: name.text, containerName: containerName, span: span, selectionSpan: selectionSpan }; -} -function isDefined(x) { - return x !== void 0; -} -function convertEntryToCallSite(entry) { - if (entry.kind === ts_FindAllReferences_exports.EntryKind.Node) { - var node = entry.node; - if (isCallOrNewExpressionTarget(node, - /*includeElementAccess*/ - true, - /*skipPastOuterExpressions*/ - true) || isTaggedTemplateTag(node, - /*includeElementAccess*/ - true, - /*skipPastOuterExpressions*/ - true) || isDecoratorTarget(node, - /*includeElementAccess*/ - true, - /*skipPastOuterExpressions*/ - true) || isJsxOpeningLikeElementTagName(node, - /*includeElementAccess*/ - true, - /*skipPastOuterExpressions*/ - true) || isRightSideOfPropertyAccess(node) || isArgumentExpressionOfElementAccess(node)) { - var sourceFile = node.getSourceFile(); - var ancestor = findAncestor(node, isValidCallHierarchyDeclaration) || sourceFile; - return { declaration: ancestor, range: createTextRangeFromNode(node, sourceFile) }; - } - } -} -function getCallSiteGroupKey(entry) { - return getNodeId(entry.declaration); -} -function createCallHierarchyIncomingCall(from, fromSpans) { - return { from: from, fromSpans: fromSpans }; -} -function convertCallSiteGroupToIncomingCall(program, entries) { - return createCallHierarchyIncomingCall(createCallHierarchyItem(program, entries[0].declaration), map(entries, function (entry) { return createTextSpanFromRange(entry.range); })); -} -function getIncomingCalls(program, declaration, cancellationToken) { - if (isSourceFile(declaration) || isModuleDeclaration(declaration) || isClassStaticBlockDeclaration(declaration)) { - return []; - } - var location = getCallHierarchyDeclarationReferenceNode(declaration); - var calls = filter(ts_FindAllReferences_exports.findReferenceOrRenameEntries(program, cancellationToken, program.getSourceFiles(), location, - /*position*/ - 0, { use: ts_FindAllReferences_exports.FindReferencesUse.References }, convertEntryToCallSite), isDefined); - return calls ? group(calls, getCallSiteGroupKey, function (entries) { return convertCallSiteGroupToIncomingCall(program, entries); }) : []; -} -function createCallSiteCollector(program, callSites) { - function recordCallSite(node) { - var e_736, _t; - var target = isTaggedTemplateExpression(node) ? node.tag : isJsxOpeningLikeElement(node) ? node.tagName : isAccessExpression(node) ? node : isClassStaticBlockDeclaration(node) ? node : node.expression; - var declaration = resolveCallHierarchyDeclaration(program, target); - if (declaration) { - var range = createTextRangeFromNode(target, node.getSourceFile()); - if (isArray(declaration)) { - try { - for (var declaration_1 = __values(declaration), declaration_1_1 = declaration_1.next(); !declaration_1_1.done; declaration_1_1 = declaration_1.next()) { - var decl = declaration_1_1.value; - callSites.push({ declaration: decl, range: range }); - } - } - catch (e_736_1) { e_736 = { error: e_736_1 }; } - finally { - try { - if (declaration_1_1 && !declaration_1_1.done && (_t = declaration_1.return)) _t.call(declaration_1); - } - finally { if (e_736) throw e_736.error; } - } - } - else { - callSites.push({ declaration: declaration, range: range }); - } - } - } - function collect(node) { - var e_737, _t; - if (!node) - return; - if (node.flags & 33554432 /* Ambient */) { - return; - } - if (isValidCallHierarchyDeclaration(node)) { - if (isClassLike(node)) { - try { - for (var _u = __values(node.members), _v = _u.next(); !_v.done; _v = _u.next()) { - var member = _v.value; - if (member.name && isComputedPropertyName(member.name)) { - collect(member.name.expression); - } - } - } - catch (e_737_1) { e_737 = { error: e_737_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_737) throw e_737.error; } - } - } - return; - } - switch (node.kind) { - case 80 /* Identifier */: - case 271 /* ImportEqualsDeclaration */: - case 272 /* ImportDeclaration */: - case 278 /* ExportDeclaration */: - case 264 /* InterfaceDeclaration */: - case 265 /* TypeAliasDeclaration */: - return; - case 175 /* ClassStaticBlockDeclaration */: - recordCallSite(node); - return; - case 216 /* TypeAssertionExpression */: - case 234 /* AsExpression */: - collect(node.expression); - return; - case 260 /* VariableDeclaration */: - case 169 /* Parameter */: - collect(node.name); - collect(node.initializer); - return; - case 213 /* CallExpression */: - recordCallSite(node); - collect(node.expression); - forEach(node.arguments, collect); - return; - case 214 /* NewExpression */: - recordCallSite(node); - collect(node.expression); - forEach(node.arguments, collect); - return; - case 215 /* TaggedTemplateExpression */: - recordCallSite(node); - collect(node.tag); - collect(node.template); - return; - case 286 /* JsxOpeningElement */: - case 285 /* JsxSelfClosingElement */: - recordCallSite(node); - collect(node.tagName); - collect(node.attributes); - return; - case 170 /* Decorator */: - recordCallSite(node); - collect(node.expression); - return; - case 211 /* PropertyAccessExpression */: - case 212 /* ElementAccessExpression */: - recordCallSite(node); - forEachChild(node, collect); - break; - case 238 /* SatisfiesExpression */: - collect(node.expression); - return; - } - if (isPartOfTypeNode(node)) { - return; - } - forEachChild(node, collect); - } - return collect; -} -function collectCallSitesOfSourceFile(node, collect) { - forEach(node.statements, collect); -} -function collectCallSitesOfModuleDeclaration(node, collect) { - if (!hasSyntacticModifier(node, 2 /* Ambient */) && node.body && isModuleBlock(node.body)) { - forEach(node.body.statements, collect); - } -} -function collectCallSitesOfFunctionLikeDeclaration(typeChecker, node, collect) { - var implementation = findImplementation(typeChecker, node); - if (implementation) { - forEach(implementation.parameters, collect); - collect(implementation.body); - } -} -function collectCallSitesOfClassStaticBlockDeclaration(node, collect) { - collect(node.body); -} -function collectCallSitesOfClassLikeDeclaration(node, collect) { - var e_738, _t; - forEach(node.modifiers, collect); - var heritage = getClassExtendsHeritageElement(node); - if (heritage) { - collect(heritage.expression); - } - try { - for (var _u = __values(node.members), _v = _u.next(); !_v.done; _v = _u.next()) { - var member = _v.value; - if (canHaveModifiers(member)) { - forEach(member.modifiers, collect); - } - if (isPropertyDeclaration(member)) { - collect(member.initializer); - } - else if (isConstructorDeclaration(member) && member.body) { - forEach(member.parameters, collect); - collect(member.body); - } - else if (isClassStaticBlockDeclaration(member)) { - collect(member); - } - } - } - catch (e_738_1) { e_738 = { error: e_738_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_738) throw e_738.error; } - } -} -function collectCallSites(program, node) { - var callSites = []; - var collect = createCallSiteCollector(program, callSites); - switch (node.kind) { - case 312 /* SourceFile */: - collectCallSitesOfSourceFile(node, collect); - break; - case 267 /* ModuleDeclaration */: - collectCallSitesOfModuleDeclaration(node, collect); - break; - case 262 /* FunctionDeclaration */: - case 218 /* FunctionExpression */: - case 219 /* ArrowFunction */: - case 174 /* MethodDeclaration */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - collectCallSitesOfFunctionLikeDeclaration(program.getTypeChecker(), node, collect); - break; - case 263 /* ClassDeclaration */: - case 231 /* ClassExpression */: - collectCallSitesOfClassLikeDeclaration(node, collect); - break; - case 175 /* ClassStaticBlockDeclaration */: - collectCallSitesOfClassStaticBlockDeclaration(node, collect); - break; - default: - Debug.assertNever(node); - } - return callSites; -} -function createCallHierarchyOutgoingCall(to, fromSpans) { - return { to: to, fromSpans: fromSpans }; -} -function convertCallSiteGroupToOutgoingCall(program, entries) { - return createCallHierarchyOutgoingCall(createCallHierarchyItem(program, entries[0].declaration), map(entries, function (entry) { return createTextSpanFromRange(entry.range); })); -} -function getOutgoingCalls(program, declaration) { - if (declaration.flags & 33554432 /* Ambient */ || isMethodSignature(declaration)) { - return []; - } - return group(collectCallSites(program, declaration), getCallSiteGroupKey, function (entries) { return convertCallSiteGroupToOutgoingCall(program, entries); }); -} -// src/services/_namespaces/ts.classifier.ts -var ts_classifier_exports = {}; -__export(ts_classifier_exports, { - v2020: function () { return ts_classifier_v2020_exports; } -}); -// src/services/_namespaces/ts.classifier.v2020.ts -var ts_classifier_v2020_exports = {}; -__export(ts_classifier_v2020_exports, { - TokenEncodingConsts: function () { return TokenEncodingConsts; }, - TokenModifier: function () { return TokenModifier; }, - TokenType: function () { return TokenType; }, - getEncodedSemanticClassifications: function () { return getEncodedSemanticClassifications2; }, - getSemanticClassifications: function () { return getSemanticClassifications2; } -}); -// src/services/_namespaces/ts.codefix.ts -var ts_codefix_exports = {}; -__export(ts_codefix_exports, { - PreserveOptionalFlags: function () { return PreserveOptionalFlags; }, - addNewNodeForMemberSymbol: function () { return addNewNodeForMemberSymbol; }, - codeFixAll: function () { return codeFixAll; }, - createCodeFixAction: function () { return createCodeFixAction; }, - createCodeFixActionMaybeFixAll: function () { return createCodeFixActionMaybeFixAll; }, - createCodeFixActionWithoutFixAll: function () { return createCodeFixActionWithoutFixAll; }, - createCombinedCodeActions: function () { return createCombinedCodeActions; }, - createFileTextChanges: function () { return createFileTextChanges; }, - createImportAdder: function () { return createImportAdder; }, - createImportSpecifierResolver: function () { return createImportSpecifierResolver; }, - createJsonPropertyAssignment: function () { return createJsonPropertyAssignment; }, - createMissingMemberNodes: function () { return createMissingMemberNodes; }, - createSignatureDeclarationFromCallExpression: function () { return createSignatureDeclarationFromCallExpression; }, - createSignatureDeclarationFromSignature: function () { return createSignatureDeclarationFromSignature; }, - createStubbedBody: function () { return createStubbedBody; }, - eachDiagnostic: function () { return eachDiagnostic; }, - findAncestorMatchingSpan: function () { return findAncestorMatchingSpan; }, - findJsonProperty: function () { return findJsonProperty; }, - generateAccessorFromProperty: function () { return generateAccessorFromProperty; }, - getAccessorConvertiblePropertyAtPosition: function () { return getAccessorConvertiblePropertyAtPosition; }, - getAllFixes: function () { return getAllFixes; }, - getAllSupers: function () { return getAllSupers; }, - getArgumentTypesAndTypeParameters: function () { return getArgumentTypesAndTypeParameters; }, - getFixes: function () { return getFixes; }, - getImportCompletionAction: function () { return getImportCompletionAction; }, - getImportKind: function () { return getImportKind; }, - getJSDocTypedefNodes: function () { return getJSDocTypedefNodes; }, - getNoopSymbolTrackerWithResolver: function () { return getNoopSymbolTrackerWithResolver; }, - getPromoteTypeOnlyCompletionAction: function () { return getPromoteTypeOnlyCompletionAction; }, - getSupportedErrorCodes: function () { return getSupportedErrorCodes; }, - importFixName: function () { return importFixName; }, - importSymbols: function () { return importSymbols; }, - moduleSpecifierToValidIdentifier: function () { return moduleSpecifierToValidIdentifier; }, - moduleSymbolToValidIdentifier: function () { return moduleSymbolToValidIdentifier; }, - parameterShouldGetTypeFromJSDoc: function () { return parameterShouldGetTypeFromJSDoc; }, - registerCodeFix: function () { return registerCodeFix; }, - setJsonCompilerOptionValue: function () { return setJsonCompilerOptionValue; }, - setJsonCompilerOptionValues: function () { return setJsonCompilerOptionValues; }, - tryGetAutoImportableReferenceFromTypeNode: function () { return tryGetAutoImportableReferenceFromTypeNode; }, - typeToAutoImportableTypeNode: function () { return typeToAutoImportableTypeNode; } -}); -// src/services/codeFixProvider.ts -var errorCodeToFixes = createMultiMap(); -var fixIdToRegistration = /* @__PURE__ */ new Map(); -function createCodeFixActionWithoutFixAll(fixName8, changes, description3) { - return createCodeFixActionWorker(fixName8, diagnosticToString(description3), changes, - /*fixId*/ - void 0, - /*fixAllDescription*/ - void 0); -} -function createCodeFixAction(fixName8, changes, description3, fixId52, fixAllDescription, command) { - return createCodeFixActionWorker(fixName8, diagnosticToString(description3), changes, fixId52, diagnosticToString(fixAllDescription), command); -} -function createCodeFixActionMaybeFixAll(fixName8, changes, description3, fixId52, fixAllDescription, command) { - return createCodeFixActionWorker(fixName8, diagnosticToString(description3), changes, fixId52, fixAllDescription && diagnosticToString(fixAllDescription), command); -} -function createCodeFixActionWorker(fixName8, description3, changes, fixId52, fixAllDescription, command) { - return { fixName: fixName8, description: description3, changes: changes, fixId: fixId52, fixAllDescription: fixAllDescription, commands: command ? [command] : void 0 }; -} -function registerCodeFix(reg) { - var e_739, _t, e_740, _u; - try { - for (var _v = __values(reg.errorCodes), _w = _v.next(); !_w.done; _w = _v.next()) { - var error2 = _w.value; - errorCodeToFixesArray = void 0; - errorCodeToFixes.add(String(error2), reg); - } - } - catch (e_739_1) { e_739 = { error: e_739_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_739) throw e_739.error; } - } - if (reg.fixIds) { - try { - for (var _x = __values(reg.fixIds), _y = _x.next(); !_y.done; _y = _x.next()) { - var fixId52 = _y.value; - Debug.assert(!fixIdToRegistration.has(fixId52)); - fixIdToRegistration.set(fixId52, reg); - } - } - catch (e_740_1) { e_740 = { error: e_740_1 }; } - finally { - try { - if (_y && !_y.done && (_u = _x.return)) _u.call(_x); - } - finally { if (e_740) throw e_740.error; } - } - } -} -var errorCodeToFixesArray; -function getSupportedErrorCodes() { - return errorCodeToFixesArray !== null && errorCodeToFixesArray !== void 0 ? errorCodeToFixesArray : (errorCodeToFixesArray = arrayFrom(errorCodeToFixes.keys())); -} -function removeFixIdIfFixAllUnavailable(registration, diagnostics) { - var e_741, _t; - var errorCodes64 = registration.errorCodes; - var maybeFixableDiagnostics = 0; - try { - for (var diagnostics_4 = __values(diagnostics), diagnostics_4_1 = diagnostics_4.next(); !diagnostics_4_1.done; diagnostics_4_1 = diagnostics_4.next()) { - var diag2 = diagnostics_4_1.value; - if (contains(errorCodes64, diag2.code)) - maybeFixableDiagnostics++; - if (maybeFixableDiagnostics > 1) - break; - } - } - catch (e_741_1) { e_741 = { error: e_741_1 }; } - finally { - try { - if (diagnostics_4_1 && !diagnostics_4_1.done && (_t = diagnostics_4.return)) _t.call(diagnostics_4); - } - finally { if (e_741) throw e_741.error; } - } - var fixAllUnavailable = maybeFixableDiagnostics < 2; - return function (_t) { - var fixId52 = _t.fixId, fixAllDescription = _t.fixAllDescription, action = __rest(_t, ["fixId", "fixAllDescription"]); - return fixAllUnavailable ? action : __assign(__assign({}, action), { fixId: fixId52, fixAllDescription: fixAllDescription }); - }; -} -function getFixes(context) { - var diagnostics = getDiagnostics(context); - var registrations = errorCodeToFixes.get(String(context.errorCode)); - return flatMap(registrations, function (f) { return map(f.getCodeActions(context), removeFixIdIfFixAllUnavailable(f, diagnostics)); }); -} -function getAllFixes(context) { - return fixIdToRegistration.get(cast(context.fixId, isString)).getAllCodeActions(context); -} -function createCombinedCodeActions(changes, commands) { - return { changes: changes, commands: commands }; -} -function createFileTextChanges(fileName, textChanges2) { - return { fileName: fileName, textChanges: textChanges2 }; -} -function codeFixAll(context, errorCodes64, use) { - var commands = []; - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return eachDiagnostic(context, errorCodes64, function (diag2) { return use(t, diag2, commands); }); }); - return createCombinedCodeActions(changes, commands.length === 0 ? void 0 : commands); -} -function eachDiagnostic(context, errorCodes64, cb) { - var e_742, _t; - try { - for (var _u = __values(getDiagnostics(context)), _v = _u.next(); !_v.done; _v = _u.next()) { - var diag2 = _v.value; - if (contains(errorCodes64, diag2.code)) { - cb(diag2); - } - } - } - catch (e_742_1) { e_742 = { error: e_742_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_742) throw e_742.error; } - } -} -function getDiagnostics(_t) { - var program = _t.program, sourceFile = _t.sourceFile, cancellationToken = _t.cancellationToken; - return __spreadArray(__spreadArray(__spreadArray([], __read(program.getSemanticDiagnostics(sourceFile, cancellationToken)), false), __read(program.getSyntacticDiagnostics(sourceFile, cancellationToken)), false), __read(computeSuggestionDiagnostics(sourceFile, program, cancellationToken)), false); -} -// src/services/codefixes/addConvertToUnknownForNonOverlappingTypes.ts -var fixId = "addConvertToUnknownForNonOverlappingTypes"; -var errorCodes = [Diagnostics.Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the_other_If_this_was_intentional_convert_the_expression_to_unknown_first.code]; -registerCodeFix({ - errorCodes: errorCodes, - getCodeActions: function getCodeActionsToAddConvertToUnknownForNonOverlappingTypes(context) { - var assertion = getAssertion(context.sourceFile, context.span.start); - if (assertion === void 0) - return void 0; - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return makeChange(t, context.sourceFile, assertion); }); - return [createCodeFixAction(fixId, changes, Diagnostics.Add_unknown_conversion_for_non_overlapping_types, fixId, Diagnostics.Add_unknown_to_all_conversions_of_non_overlapping_types)]; - }, - fixIds: [fixId], - getAllCodeActions: function (context) { return codeFixAll(context, errorCodes, function (changes, diag2) { - var assertion = getAssertion(diag2.file, diag2.start); - if (assertion) { - makeChange(changes, diag2.file, assertion); - } - }); } -}); -function makeChange(changeTracker, sourceFile, assertion) { - var replacement = isAsExpression(assertion) ? factory.createAsExpression(assertion.expression, factory.createKeywordTypeNode(159 /* UnknownKeyword */)) : factory.createTypeAssertion(factory.createKeywordTypeNode(159 /* UnknownKeyword */), assertion.expression); - changeTracker.replaceNode(sourceFile, assertion.expression, replacement); -} -function getAssertion(sourceFile, pos) { - if (isInJSFile(sourceFile)) - return void 0; - return findAncestor(getTokenAtPosition(sourceFile, pos), function (n) { return isAsExpression(n) || isTypeAssertionExpression(n); }); -} -// src/services/codefixes/addEmptyExportDeclaration.ts -registerCodeFix({ - errorCodes: [ - Diagnostics.await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module.code, - Diagnostics.await_using_statements_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module.code, - Diagnostics.for_await_loops_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module.code - ], - getCodeActions: function getCodeActionsToAddEmptyExportDeclaration(context) { - var sourceFile = context.sourceFile; - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (changes2) { - var exportDeclaration = factory.createExportDeclaration( - /*modifiers*/ - void 0, - /*isTypeOnly*/ - false, factory.createNamedExports([]), - /*moduleSpecifier*/ - void 0); - changes2.insertNodeAtEndOfScope(sourceFile, sourceFile, exportDeclaration); - }); - return [createCodeFixActionWithoutFixAll("addEmptyExportDeclaration", changes, Diagnostics.Add_export_to_make_this_file_into_a_module)]; - } -}); -// src/services/codefixes/addMissingAsync.ts -var fixId2 = "addMissingAsync"; -var errorCodes2 = [ - Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code, - Diagnostics.Type_0_is_not_assignable_to_type_1.code, - Diagnostics.Type_0_is_not_comparable_to_type_1.code -]; -registerCodeFix({ - fixIds: [fixId2], - errorCodes: errorCodes2, - getCodeActions: function getCodeActionsToAddMissingAsync(context) { - var sourceFile = context.sourceFile, errorCode = context.errorCode, cancellationToken = context.cancellationToken, program = context.program, span = context.span; - var diagnostic = find(program.getTypeChecker().getDiagnostics(sourceFile, cancellationToken), getIsMatchingAsyncError(span, errorCode)); - var directSpan = diagnostic && diagnostic.relatedInformation && find(diagnostic.relatedInformation, function (r) { return r.code === Diagnostics.Did_you_mean_to_mark_this_function_as_async.code; }); - var decl = getFixableErrorSpanDeclaration(sourceFile, directSpan); - if (!decl) { - return; - } - var trackChanges = function (cb) { return ts_textChanges_exports.ChangeTracker.with(context, cb); }; - return [getFix(context, decl, trackChanges)]; - }, - getAllCodeActions: function (context) { - var sourceFile = context.sourceFile; - var fixedDeclarations = /* @__PURE__ */ new Set(); - return codeFixAll(context, errorCodes2, function (t, diagnostic) { - var span = diagnostic.relatedInformation && find(diagnostic.relatedInformation, function (r) { return r.code === Diagnostics.Did_you_mean_to_mark_this_function_as_async.code; }); - var decl = getFixableErrorSpanDeclaration(sourceFile, span); - if (!decl) { - return; - } - var trackChanges = function (cb) { return (cb(t), []); }; - return getFix(context, decl, trackChanges, fixedDeclarations); - }); - } -}); -function getFix(context, decl, trackChanges, fixedDeclarations) { - var changes = trackChanges(function (t) { return makeChange2(t, context.sourceFile, decl, fixedDeclarations); }); - return createCodeFixAction(fixId2, changes, Diagnostics.Add_async_modifier_to_containing_function, fixId2, Diagnostics.Add_all_missing_async_modifiers); -} -function makeChange2(changeTracker, sourceFile, insertionSite, fixedDeclarations) { - if (fixedDeclarations) { - if (fixedDeclarations.has(getNodeId(insertionSite))) { - return; - } - } - fixedDeclarations == null ? void 0 : fixedDeclarations.add(getNodeId(insertionSite)); - var cloneWithModifier = factory.updateModifiers(getSynthesizedDeepClone(insertionSite, - /*includeTrivia*/ - true), factory.createNodeArray(factory.createModifiersFromModifierFlags(getSyntacticModifierFlags(insertionSite) | 512 /* Async */))); - changeTracker.replaceNode(sourceFile, insertionSite, cloneWithModifier); -} -function getFixableErrorSpanDeclaration(sourceFile, span) { - if (!span) - return void 0; - var token = getTokenAtPosition(sourceFile, span.start); - var decl = findAncestor(token, function (node) { - if (node.getStart(sourceFile) < span.start || node.getEnd() > textSpanEnd(span)) { - return "quit"; - } - return (isArrowFunction(node) || isMethodDeclaration(node) || isFunctionExpression(node) || isFunctionDeclaration(node)) && textSpansEqual(span, createTextSpanFromNode(node, sourceFile)); - }); - return decl; -} -function getIsMatchingAsyncError(span, errorCode) { - return function (_t) { - var start2 = _t.start, length2 = _t.length, relatedInformation = _t.relatedInformation, code = _t.code; - return isNumber(start2) && isNumber(length2) && textSpansEqual({ start: start2, length: length2 }, span) && code === errorCode && !!relatedInformation && some(relatedInformation, function (related) { return related.code === Diagnostics.Did_you_mean_to_mark_this_function_as_async.code; }); - }; -} -// src/services/codefixes/addMissingAwait.ts -var fixId3 = "addMissingAwait"; -var propertyAccessCode = Diagnostics.Property_0_does_not_exist_on_type_1.code; -var callableConstructableErrorCodes = [ - Diagnostics.This_expression_is_not_callable.code, - Diagnostics.This_expression_is_not_constructable.code -]; -var errorCodes3 = __spreadArray([ - Diagnostics.An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type.code, - Diagnostics.The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type.code, - Diagnostics.The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type.code, - Diagnostics.Operator_0_cannot_be_applied_to_type_1.code, - Diagnostics.Operator_0_cannot_be_applied_to_types_1_and_2.code, - Diagnostics.This_comparison_appears_to_be_unintentional_because_the_types_0_and_1_have_no_overlap.code, - Diagnostics.This_condition_will_always_return_true_since_this_0_is_always_defined.code, - Diagnostics.Type_0_is_not_an_array_type.code, - Diagnostics.Type_0_is_not_an_array_type_or_a_string_type.code, - Diagnostics.Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher.code, - Diagnostics.Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator.code, - Diagnostics.Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator.code, - Diagnostics.Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator.code, - Diagnostics.Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator.code, - Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code, - propertyAccessCode -], __read(callableConstructableErrorCodes), false); -registerCodeFix({ - fixIds: [fixId3], - errorCodes: errorCodes3, - getCodeActions: function getCodeActionsToAddMissingAwait(context) { - var sourceFile = context.sourceFile, errorCode = context.errorCode, span = context.span, cancellationToken = context.cancellationToken, program = context.program; - var expression = getAwaitErrorSpanExpression(sourceFile, errorCode, span, cancellationToken, program); - if (!expression) { - return; - } - var checker = context.program.getTypeChecker(); - var trackChanges = function (cb) { return ts_textChanges_exports.ChangeTracker.with(context, cb); }; - return compact([ - getDeclarationSiteFix(context, expression, errorCode, checker, trackChanges), - getUseSiteFix(context, expression, errorCode, checker, trackChanges) - ]); - }, - getAllCodeActions: function (context) { - var sourceFile = context.sourceFile, program = context.program, cancellationToken = context.cancellationToken; - var checker = context.program.getTypeChecker(); - var fixedDeclarations = /* @__PURE__ */ new Set(); - return codeFixAll(context, errorCodes3, function (t, diagnostic) { - var expression = getAwaitErrorSpanExpression(sourceFile, diagnostic.code, diagnostic, cancellationToken, program); - if (!expression) { - return; - } - var trackChanges = function (cb) { return (cb(t), []); }; - return getDeclarationSiteFix(context, expression, diagnostic.code, checker, trackChanges, fixedDeclarations) || getUseSiteFix(context, expression, diagnostic.code, checker, trackChanges, fixedDeclarations); - }); - } -}); -function getAwaitErrorSpanExpression(sourceFile, errorCode, span, cancellationToken, program) { - var expression = getFixableErrorSpanExpression(sourceFile, span); - return expression && isMissingAwaitError(sourceFile, errorCode, span, cancellationToken, program) && isInsideAwaitableBody(expression) ? expression : void 0; -} -function getDeclarationSiteFix(context, expression, errorCode, checker, trackChanges, fixedDeclarations) { - var sourceFile = context.sourceFile, program = context.program, cancellationToken = context.cancellationToken; - var awaitableInitializers = findAwaitableInitializers(expression, sourceFile, cancellationToken, program, checker); - if (awaitableInitializers) { - var initializerChanges = trackChanges(function (t) { - forEach(awaitableInitializers.initializers, function (_t) { - var expression2 = _t.expression; - return makeChange3(t, errorCode, sourceFile, checker, expression2, fixedDeclarations); - }); - if (fixedDeclarations && awaitableInitializers.needsSecondPassForFixAll) { - makeChange3(t, errorCode, sourceFile, checker, expression, fixedDeclarations); - } - }); - return createCodeFixActionWithoutFixAll("addMissingAwaitToInitializer", initializerChanges, awaitableInitializers.initializers.length === 1 ? [Diagnostics.Add_await_to_initializer_for_0, awaitableInitializers.initializers[0].declarationSymbol.name] : Diagnostics.Add_await_to_initializers); - } -} -function getUseSiteFix(context, expression, errorCode, checker, trackChanges, fixedDeclarations) { - var changes = trackChanges(function (t) { return makeChange3(t, errorCode, context.sourceFile, checker, expression, fixedDeclarations); }); - return createCodeFixAction(fixId3, changes, Diagnostics.Add_await, fixId3, Diagnostics.Fix_all_expressions_possibly_missing_await); -} -function isMissingAwaitError(sourceFile, errorCode, span, cancellationToken, program) { - var checker = program.getTypeChecker(); - var diagnostics = checker.getDiagnostics(sourceFile, cancellationToken); - return some(diagnostics, function (_t) { - var start2 = _t.start, length2 = _t.length, relatedInformation = _t.relatedInformation, code = _t.code; - return isNumber(start2) && isNumber(length2) && textSpansEqual({ start: start2, length: length2 }, span) && code === errorCode && !!relatedInformation && some(relatedInformation, function (related) { return related.code === Diagnostics.Did_you_forget_to_use_await.code; }); - }); -} -function findAwaitableInitializers(expression, sourceFile, cancellationToken, program, checker) { - var e_743, _t; - var identifiers = getIdentifiersFromErrorSpanExpression(expression, checker); - if (!identifiers) { - return; - } - var isCompleteFix = identifiers.isCompleteFix; - var initializers; - var _loop_53 = function (identifier) { - var symbol = checker.getSymbolAtLocation(identifier); - if (!symbol) { - return "continue"; - } - var declaration = tryCast(symbol.valueDeclaration, isVariableDeclaration); - var variableName = declaration && tryCast(declaration.name, isIdentifier); - var variableStatement = getAncestor(declaration, 243 /* VariableStatement */); - if (!declaration || !variableStatement || declaration.type || !declaration.initializer || variableStatement.getSourceFile() !== sourceFile || hasSyntacticModifier(variableStatement, 1 /* Export */) || !variableName || !isInsideAwaitableBody(declaration.initializer)) { - isCompleteFix = false; - return "continue"; - } - var diagnostics = program.getSemanticDiagnostics(sourceFile, cancellationToken); - var isUsedElsewhere = ts_FindAllReferences_exports.Core.eachSymbolReferenceInFile(variableName, checker, sourceFile, function (reference) { - return identifier !== reference && !symbolReferenceIsAlsoMissingAwait(reference, diagnostics, sourceFile, checker); - }); - if (isUsedElsewhere) { - isCompleteFix = false; - return "continue"; - } - (initializers || (initializers = [])).push({ - expression: declaration.initializer, - declarationSymbol: symbol - }); - }; - try { - for (var _u = __values(identifiers.identifiers), _v = _u.next(); !_v.done; _v = _u.next()) { - var identifier = _v.value; - _loop_53(identifier); - } - } - catch (e_743_1) { e_743 = { error: e_743_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_743) throw e_743.error; } - } - return initializers && { - initializers: initializers, - needsSecondPassForFixAll: !isCompleteFix - }; -} -function getIdentifiersFromErrorSpanExpression(expression, checker) { - var e_744, _t; - if (isPropertyAccessExpression(expression.parent) && isIdentifier(expression.parent.expression)) { - return { identifiers: [expression.parent.expression], isCompleteFix: true }; - } - if (isIdentifier(expression)) { - return { identifiers: [expression], isCompleteFix: true }; - } - if (isBinaryExpression(expression)) { - var sides = void 0; - var isCompleteFix = true; - try { - for (var _u = __values([expression.left, expression.right]), _v = _u.next(); !_v.done; _v = _u.next()) { - var side = _v.value; - var type = checker.getTypeAtLocation(side); - if (checker.getPromisedTypeOfPromise(type)) { - if (!isIdentifier(side)) { - isCompleteFix = false; - continue; - } - (sides || (sides = [])).push(side); - } - } - } - catch (e_744_1) { e_744 = { error: e_744_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_744) throw e_744.error; } - } - return sides && { identifiers: sides, isCompleteFix: isCompleteFix }; - } -} -function symbolReferenceIsAlsoMissingAwait(reference, diagnostics, sourceFile, checker) { - var errorNode = isPropertyAccessExpression(reference.parent) ? reference.parent.name : isBinaryExpression(reference.parent) ? reference.parent : reference; - var diagnostic = find(diagnostics, function (diagnostic2) { return diagnostic2.start === errorNode.getStart(sourceFile) && diagnostic2.start + diagnostic2.length === errorNode.getEnd(); }); - return diagnostic && contains(errorCodes3, diagnostic.code) || // A Promise is usually not correct in a binary expression (it's not valid - // in an arithmetic expression and an equality comparison seems unusual), - // but if the other side of the binary expression has an error, the side - // is typed `any` which will squash the error that would identify this - // Promise as an invalid operand. So if the whole binary expression is - // typed `any` as a result, there is a strong likelihood that this Promise - // is accidentally missing `await`. - checker.getTypeAtLocation(errorNode).flags & 1 /* Any */; -} -function isInsideAwaitableBody(node) { - return node.kind & 65536 /* AwaitContext */ || !!findAncestor(node, function (ancestor) { return ancestor.parent && isArrowFunction(ancestor.parent) && ancestor.parent.body === ancestor || isBlock(ancestor) && (ancestor.parent.kind === 262 /* FunctionDeclaration */ || ancestor.parent.kind === 218 /* FunctionExpression */ || ancestor.parent.kind === 219 /* ArrowFunction */ || ancestor.parent.kind === 174 /* MethodDeclaration */); }); -} -function makeChange3(changeTracker, errorCode, sourceFile, checker, insertionSite, fixedDeclarations) { - var e_745, _t; - if (isForOfStatement(insertionSite.parent) && !insertionSite.parent.awaitModifier) { - var exprType = checker.getTypeAtLocation(insertionSite); - var asyncIter = checker.getAsyncIterableType(); - if (asyncIter && checker.isTypeAssignableTo(exprType, asyncIter)) { - var forOf = insertionSite.parent; - changeTracker.replaceNode(sourceFile, forOf, factory.updateForOfStatement(forOf, factory.createToken(135 /* AwaitKeyword */), forOf.initializer, forOf.expression, forOf.statement)); - return; - } - } - if (isBinaryExpression(insertionSite)) { - try { - for (var _u = __values([insertionSite.left, insertionSite.right]), _v = _u.next(); !_v.done; _v = _u.next()) { - var side = _v.value; - if (fixedDeclarations && isIdentifier(side)) { - var symbol = checker.getSymbolAtLocation(side); - if (symbol && fixedDeclarations.has(getSymbolId(symbol))) { - continue; - } - } - var type = checker.getTypeAtLocation(side); - var newNode = checker.getPromisedTypeOfPromise(type) ? factory.createAwaitExpression(side) : side; - changeTracker.replaceNode(sourceFile, side, newNode); - } - } - catch (e_745_1) { e_745 = { error: e_745_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_745) throw e_745.error; } - } - } - else if (errorCode === propertyAccessCode && isPropertyAccessExpression(insertionSite.parent)) { - if (fixedDeclarations && isIdentifier(insertionSite.parent.expression)) { - var symbol = checker.getSymbolAtLocation(insertionSite.parent.expression); - if (symbol && fixedDeclarations.has(getSymbolId(symbol))) { - return; - } - } - changeTracker.replaceNode(sourceFile, insertionSite.parent.expression, factory.createParenthesizedExpression(factory.createAwaitExpression(insertionSite.parent.expression))); - insertLeadingSemicolonIfNeeded(changeTracker, insertionSite.parent.expression, sourceFile); - } - else if (contains(callableConstructableErrorCodes, errorCode) && isCallOrNewExpression(insertionSite.parent)) { - if (fixedDeclarations && isIdentifier(insertionSite)) { - var symbol = checker.getSymbolAtLocation(insertionSite); - if (symbol && fixedDeclarations.has(getSymbolId(symbol))) { - return; - } - } - changeTracker.replaceNode(sourceFile, insertionSite, factory.createParenthesizedExpression(factory.createAwaitExpression(insertionSite))); - insertLeadingSemicolonIfNeeded(changeTracker, insertionSite, sourceFile); - } - else { - if (fixedDeclarations && isVariableDeclaration(insertionSite.parent) && isIdentifier(insertionSite.parent.name)) { - var symbol = checker.getSymbolAtLocation(insertionSite.parent.name); - if (symbol && !tryAddToSet(fixedDeclarations, getSymbolId(symbol))) { - return; - } - } - changeTracker.replaceNode(sourceFile, insertionSite, factory.createAwaitExpression(insertionSite)); - } -} -function insertLeadingSemicolonIfNeeded(changeTracker, beforeNode, sourceFile) { - var precedingToken = findPrecedingToken(beforeNode.pos, sourceFile); - if (precedingToken && positionIsASICandidate(precedingToken.end, precedingToken.parent, sourceFile)) { - changeTracker.insertText(sourceFile, beforeNode.getStart(sourceFile), ";"); - } -} -// src/services/codefixes/addMissingConst.ts -var fixId4 = "addMissingConst"; -var errorCodes4 = [ - Diagnostics.Cannot_find_name_0.code, - Diagnostics.No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer.code -]; -registerCodeFix({ - errorCodes: errorCodes4, - getCodeActions: function getCodeActionsToAddMissingConst(context) { - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return makeChange4(t, context.sourceFile, context.span.start, context.program); }); - if (changes.length > 0) { - return [createCodeFixAction(fixId4, changes, Diagnostics.Add_const_to_unresolved_variable, fixId4, Diagnostics.Add_const_to_all_unresolved_variables)]; - } - }, - fixIds: [fixId4], - getAllCodeActions: function (context) { - var fixedNodes = /* @__PURE__ */ new Set(); - return codeFixAll(context, errorCodes4, function (changes, diag2) { return makeChange4(changes, diag2.file, diag2.start, context.program, fixedNodes); }); - } -}); -function makeChange4(changeTracker, sourceFile, pos, program, fixedNodes) { - var token = getTokenAtPosition(sourceFile, pos); - var forInitializer = findAncestor(token, function (node) { return isForInOrOfStatement(node.parent) ? node.parent.initializer === node : isPossiblyPartOfDestructuring(node) ? false : "quit"; }); - if (forInitializer) - return applyChange(changeTracker, forInitializer, sourceFile, fixedNodes); - var parent2 = token.parent; - if (isBinaryExpression(parent2) && parent2.operatorToken.kind === 64 /* EqualsToken */ && isExpressionStatement(parent2.parent)) { - return applyChange(changeTracker, token, sourceFile, fixedNodes); - } - if (isArrayLiteralExpression(parent2)) { - var checker_3 = program.getTypeChecker(); - if (!every(parent2.elements, function (element) { return arrayElementCouldBeVariableDeclaration(element, checker_3); })) { - return; - } - return applyChange(changeTracker, parent2, sourceFile, fixedNodes); - } - var commaExpression = findAncestor(token, function (node) { return isExpressionStatement(node.parent) ? true : isPossiblyPartOfCommaSeperatedInitializer(node) ? false : "quit"; }); - if (commaExpression) { - var checker = program.getTypeChecker(); - if (!expressionCouldBeVariableDeclaration(commaExpression, checker)) { - return; - } - return applyChange(changeTracker, commaExpression, sourceFile, fixedNodes); - } -} -function applyChange(changeTracker, initializer, sourceFile, fixedNodes) { - if (!fixedNodes || tryAddToSet(fixedNodes, initializer)) { - changeTracker.insertModifierBefore(sourceFile, 87 /* ConstKeyword */, initializer); - } -} -function isPossiblyPartOfDestructuring(node) { - switch (node.kind) { - case 80 /* Identifier */: - case 209 /* ArrayLiteralExpression */: - case 210 /* ObjectLiteralExpression */: - case 303 /* PropertyAssignment */: - case 304 /* ShorthandPropertyAssignment */: - return true; - default: - return false; - } -} -function arrayElementCouldBeVariableDeclaration(expression, checker) { - var identifier = isIdentifier(expression) ? expression : isAssignmentExpression(expression, - /*excludeCompoundAssignment*/ - true) && isIdentifier(expression.left) ? expression.left : void 0; - return !!identifier && !checker.getSymbolAtLocation(identifier); -} -function isPossiblyPartOfCommaSeperatedInitializer(node) { - switch (node.kind) { - case 80 /* Identifier */: - case 226 /* BinaryExpression */: - case 28 /* CommaToken */: - return true; - default: - return false; - } -} -function expressionCouldBeVariableDeclaration(expression, checker) { - if (!isBinaryExpression(expression)) { - return false; - } - if (expression.operatorToken.kind === 28 /* CommaToken */) { - return every([expression.left, expression.right], function (expression2) { return expressionCouldBeVariableDeclaration(expression2, checker); }); - } - return expression.operatorToken.kind === 64 /* EqualsToken */ && isIdentifier(expression.left) && !checker.getSymbolAtLocation(expression.left); -} -// src/services/codefixes/addMissingDeclareProperty.ts -var fixId5 = "addMissingDeclareProperty"; -var errorCodes5 = [ - Diagnostics.Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_add_a_declare_modifier_or_remove_the_redundant_declaration.code -]; -registerCodeFix({ - errorCodes: errorCodes5, - getCodeActions: function getCodeActionsToAddMissingDeclareOnProperty(context) { - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return makeChange5(t, context.sourceFile, context.span.start); }); - if (changes.length > 0) { - return [createCodeFixAction(fixId5, changes, Diagnostics.Prefix_with_declare, fixId5, Diagnostics.Prefix_all_incorrect_property_declarations_with_declare)]; - } - }, - fixIds: [fixId5], - getAllCodeActions: function (context) { - var fixedNodes = /* @__PURE__ */ new Set(); - return codeFixAll(context, errorCodes5, function (changes, diag2) { return makeChange5(changes, diag2.file, diag2.start, fixedNodes); }); - } -}); -function makeChange5(changeTracker, sourceFile, pos, fixedNodes) { - var token = getTokenAtPosition(sourceFile, pos); - if (!isIdentifier(token)) { - return; - } - var declaration = token.parent; - if (declaration.kind === 172 /* PropertyDeclaration */ && (!fixedNodes || tryAddToSet(fixedNodes, declaration))) { - changeTracker.insertModifierBefore(sourceFile, 138 /* DeclareKeyword */, declaration); - } -} -// src/services/codefixes/addMissingInvocationForDecorator.ts -var fixId6 = "addMissingInvocationForDecorator"; -var errorCodes6 = [Diagnostics._0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write_0.code]; -registerCodeFix({ - errorCodes: errorCodes6, - getCodeActions: function getCodeActionsToAddMissingInvocationForDecorator(context) { - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return makeChange6(t, context.sourceFile, context.span.start); }); - return [createCodeFixAction(fixId6, changes, Diagnostics.Call_decorator_expression, fixId6, Diagnostics.Add_to_all_uncalled_decorators)]; - }, - fixIds: [fixId6], - getAllCodeActions: function (context) { return codeFixAll(context, errorCodes6, function (changes, diag2) { return makeChange6(changes, diag2.file, diag2.start); }); } -}); -function makeChange6(changeTracker, sourceFile, pos) { - var token = getTokenAtPosition(sourceFile, pos); - var decorator = findAncestor(token, isDecorator); - Debug.assert(!!decorator, "Expected position to be owned by a decorator."); - var replacement = factory.createCallExpression(decorator.expression, - /*typeArguments*/ - void 0, - /*argumentsArray*/ - void 0); - changeTracker.replaceNode(sourceFile, decorator.expression, replacement); -} -// src/services/codefixes/addNameToNamelessParameter.ts -var fixId7 = "addNameToNamelessParameter"; -var errorCodes7 = [Diagnostics.Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1.code]; -registerCodeFix({ - errorCodes: errorCodes7, - getCodeActions: function getCodeActionsToAddNameToNamelessParameter(context) { - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return makeChange7(t, context.sourceFile, context.span.start); }); - return [createCodeFixAction(fixId7, changes, Diagnostics.Add_parameter_name, fixId7, Diagnostics.Add_names_to_all_parameters_without_names)]; - }, - fixIds: [fixId7], - getAllCodeActions: function (context) { return codeFixAll(context, errorCodes7, function (changes, diag2) { return makeChange7(changes, diag2.file, diag2.start); }); } -}); -function makeChange7(changeTracker, sourceFile, pos) { - var token = getTokenAtPosition(sourceFile, pos); - var param = token.parent; - if (!isParameter(param)) { - return Debug.fail("Tried to add a parameter name to a non-parameter: " + Debug.formatSyntaxKind(token.kind)); - } - var i = param.parent.parameters.indexOf(param); - Debug.assert(!param.type, "Tried to add a parameter name to a parameter that already had one."); - Debug.assert(i > -1, "Parameter not found in parent parameter list."); - var typeNode = factory.createTypeReferenceNode(param.name, - /*typeArguments*/ - void 0); - var replacement = factory.createParameterDeclaration(param.modifiers, param.dotDotDotToken, "arg" + i, param.questionToken, param.dotDotDotToken ? factory.createArrayTypeNode(typeNode) : typeNode, param.initializer); - changeTracker.replaceNode(sourceFile, param, replacement); -} -// src/services/codefixes/addOptionalPropertyUndefined.ts -var addOptionalPropertyUndefined = "addOptionalPropertyUndefined"; -var errorCodes8 = [ - Diagnostics.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target.code, - Diagnostics.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties.code, - Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties.code -]; -registerCodeFix({ - errorCodes: errorCodes8, - getCodeActions: function (context) { - var typeChecker = context.program.getTypeChecker(); - var toAdd = getPropertiesToAdd(context.sourceFile, context.span, typeChecker); - if (!toAdd.length) { - return void 0; - } - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return addUndefinedToOptionalProperty(t, toAdd); }); - return [createCodeFixActionWithoutFixAll(addOptionalPropertyUndefined, changes, Diagnostics.Add_undefined_to_optional_property_type)]; - }, - fixIds: [addOptionalPropertyUndefined] -}); -function getPropertiesToAdd(file, span, checker) { - var _a, _b; - var sourceTarget = getSourceTarget(getFixableErrorSpanExpression(file, span), checker); - if (!sourceTarget) { - return emptyArray; - } - var sourceNode = sourceTarget.source, targetNode = sourceTarget.target; - var target = shouldUseParentTypeOfProperty(sourceNode, targetNode, checker) ? checker.getTypeAtLocation(targetNode.expression) : checker.getTypeAtLocation(targetNode); - if ((_b = (_a = target.symbol) == null ? void 0 : _a.declarations) == null ? void 0 : _b.some(function (d) { return getSourceFileOfNode(d).fileName.match(/\.d\.ts$/); })) { - return emptyArray; - } - return checker.getExactOptionalProperties(target); -} -function shouldUseParentTypeOfProperty(sourceNode, targetNode, checker) { - return isPropertyAccessExpression(targetNode) && !!checker.getExactOptionalProperties(checker.getTypeAtLocation(targetNode.expression)).length && checker.getTypeAtLocation(sourceNode) === checker.getUndefinedType(); -} -function getSourceTarget(errorNode, checker) { - var _a; - if (!errorNode) { - return void 0; - } - else if (isBinaryExpression(errorNode.parent) && errorNode.parent.operatorToken.kind === 64 /* EqualsToken */) { - return { source: errorNode.parent.right, target: errorNode.parent.left }; - } - else if (isVariableDeclaration(errorNode.parent) && errorNode.parent.initializer) { - return { source: errorNode.parent.initializer, target: errorNode.parent.name }; - } - else if (isCallExpression(errorNode.parent)) { - var n = checker.getSymbolAtLocation(errorNode.parent.expression); - if (!(n == null ? void 0 : n.valueDeclaration) || !isFunctionLikeKind(n.valueDeclaration.kind)) - return void 0; - if (!isExpression(errorNode)) - return void 0; - var i = errorNode.parent.arguments.indexOf(errorNode); - if (i === -1) - return void 0; - var name_108 = n.valueDeclaration.parameters[i].name; - if (isIdentifier(name_108)) - return { source: errorNode, target: name_108 }; - } - else if (isPropertyAssignment(errorNode.parent) && isIdentifier(errorNode.parent.name) || isShorthandPropertyAssignment(errorNode.parent)) { - var parentTarget = getSourceTarget(errorNode.parent.parent, checker); - if (!parentTarget) - return void 0; - var prop = checker.getPropertyOfType(checker.getTypeAtLocation(parentTarget.target), errorNode.parent.name.text); - var declaration = (_a = prop == null ? void 0 : prop.declarations) == null ? void 0 : _a[0]; - if (!declaration) - return void 0; - return { - source: isPropertyAssignment(errorNode.parent) ? errorNode.parent.initializer : errorNode.parent.name, - target: declaration - }; - } - return void 0; -} -function addUndefinedToOptionalProperty(changes, toAdd) { - var e_746, _t; - try { - for (var toAdd_1 = __values(toAdd), toAdd_1_1 = toAdd_1.next(); !toAdd_1_1.done; toAdd_1_1 = toAdd_1.next()) { - var add = toAdd_1_1.value; - var d = add.valueDeclaration; - if (d && (isPropertySignature(d) || isPropertyDeclaration(d)) && d.type) { - var t = factory.createUnionTypeNode(__spreadArray(__spreadArray([], __read(d.type.kind === 192 /* UnionType */ ? d.type.types : [d.type]), false), [ - factory.createTypeReferenceNode("undefined") - ], false)); - changes.replaceNode(d.getSourceFile(), d.type, t); - } - } - } - catch (e_746_1) { e_746 = { error: e_746_1 }; } - finally { - try { - if (toAdd_1_1 && !toAdd_1_1.done && (_t = toAdd_1.return)) _t.call(toAdd_1); - } - finally { if (e_746) throw e_746.error; } - } -} -// src/services/codefixes/annotateWithTypeFromJSDoc.ts -var fixId8 = "annotateWithTypeFromJSDoc"; -var errorCodes9 = [Diagnostics.JSDoc_types_may_be_moved_to_TypeScript_types.code]; -registerCodeFix({ - errorCodes: errorCodes9, - getCodeActions: function (context) { - var decl = getDeclaration(context.sourceFile, context.span.start); - if (!decl) - return; - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return doChange8(t, context.sourceFile, decl); }); - return [createCodeFixAction(fixId8, changes, Diagnostics.Annotate_with_type_from_JSDoc, fixId8, Diagnostics.Annotate_everything_with_types_from_JSDoc)]; - }, - fixIds: [fixId8], - getAllCodeActions: function (context) { return codeFixAll(context, errorCodes9, function (changes, diag2) { - var decl = getDeclaration(diag2.file, diag2.start); - if (decl) - doChange8(changes, diag2.file, decl); - }); } -}); -function getDeclaration(file, pos) { - var name = getTokenAtPosition(file, pos); - return tryCast(isParameter(name.parent) ? name.parent.parent : name.parent, parameterShouldGetTypeFromJSDoc); -} -function parameterShouldGetTypeFromJSDoc(node) { - return isDeclarationWithType(node) && hasUsableJSDoc(node); -} -function hasUsableJSDoc(decl) { - return isFunctionLikeDeclaration(decl) ? decl.parameters.some(hasUsableJSDoc) || !decl.type && !!getJSDocReturnType(decl) : !decl.type && !!getJSDocType(decl); -} -function doChange8(changes, sourceFile, decl) { - var e_747, _t; - if (isFunctionLikeDeclaration(decl) && (getJSDocReturnType(decl) || decl.parameters.some(function (p) { return !!getJSDocType(p); }))) { - if (!decl.typeParameters) { - var typeParameters = getJSDocTypeParameterDeclarations(decl); - if (typeParameters.length) - changes.insertTypeParameters(sourceFile, decl, typeParameters); - } - var needParens = isArrowFunction(decl) && !findChildOfKind(decl, 21 /* OpenParenToken */, sourceFile); - if (needParens) - changes.insertNodeBefore(sourceFile, first(decl.parameters), factory.createToken(21 /* OpenParenToken */)); - try { - for (var _u = __values(decl.parameters), _v = _u.next(); !_v.done; _v = _u.next()) { - var param = _v.value; - if (!param.type) { - var paramType = getJSDocType(param); - if (paramType) - changes.tryInsertTypeAnnotation(sourceFile, param, visitNode(paramType, transformJSDocType, isTypeNode)); - } - } - } - catch (e_747_1) { e_747 = { error: e_747_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_747) throw e_747.error; } - } - if (needParens) - changes.insertNodeAfter(sourceFile, last(decl.parameters), factory.createToken(22 /* CloseParenToken */)); - if (!decl.type) { - var returnType = getJSDocReturnType(decl); - if (returnType) - changes.tryInsertTypeAnnotation(sourceFile, decl, visitNode(returnType, transformJSDocType, isTypeNode)); - } - } - else { - var jsdocType = Debug.checkDefined(getJSDocType(decl), "A JSDocType for this declaration should exist"); - Debug.assert(!decl.type, "The JSDocType decl should have a type"); - changes.tryInsertTypeAnnotation(sourceFile, decl, visitNode(jsdocType, transformJSDocType, isTypeNode)); - } -} -function isDeclarationWithType(node) { - return isFunctionLikeDeclaration(node) || node.kind === 260 /* VariableDeclaration */ || node.kind === 171 /* PropertySignature */ || node.kind === 172 /* PropertyDeclaration */; -} -function transformJSDocType(node) { - switch (node.kind) { - case 319 /* JSDocAllType */: - case 320 /* JSDocUnknownType */: - return factory.createTypeReferenceNode("any", emptyArray); - case 323 /* JSDocOptionalType */: - return transformJSDocOptionalType(node); - case 322 /* JSDocNonNullableType */: - return transformJSDocType(node.type); - case 321 /* JSDocNullableType */: - return transformJSDocNullableType(node); - case 325 /* JSDocVariadicType */: - return transformJSDocVariadicType(node); - case 324 /* JSDocFunctionType */: - return transformJSDocFunctionType(node); - case 183 /* TypeReference */: - return transformJSDocTypeReference(node); - case 329 /* JSDocTypeLiteral */: - return transformJSDocTypeLiteral(node); - default: - var visited = visitEachChild(node, transformJSDocType, nullTransformationContext); - setEmitFlags(visited, 1 /* SingleLine */); - return visited; - } -} -function transformJSDocTypeLiteral(node) { - var typeNode = factory.createTypeLiteralNode(map(node.jsDocPropertyTags, function (tag) { return factory.createPropertySignature( - /*modifiers*/ - void 0, isIdentifier(tag.name) ? tag.name : tag.name.right, isOptionalJSDocPropertyLikeTag(tag) ? factory.createToken(58 /* QuestionToken */) : void 0, tag.typeExpression && visitNode(tag.typeExpression.type, transformJSDocType, isTypeNode) || factory.createKeywordTypeNode(133 /* AnyKeyword */)); })); - setEmitFlags(typeNode, 1 /* SingleLine */); - return typeNode; -} -function transformJSDocOptionalType(node) { - return factory.createUnionTypeNode([visitNode(node.type, transformJSDocType, isTypeNode), factory.createTypeReferenceNode("undefined", emptyArray)]); -} -function transformJSDocNullableType(node) { - return factory.createUnionTypeNode([visitNode(node.type, transformJSDocType, isTypeNode), factory.createTypeReferenceNode("null", emptyArray)]); -} -function transformJSDocVariadicType(node) { - return factory.createArrayTypeNode(visitNode(node.type, transformJSDocType, isTypeNode)); -} -function transformJSDocFunctionType(node) { - var _t; - return factory.createFunctionTypeNode(emptyArray, node.parameters.map(transformJSDocParameter), (_t = node.type) !== null && _t !== void 0 ? _t : factory.createKeywordTypeNode(133 /* AnyKeyword */)); -} -function transformJSDocParameter(node) { - var index = node.parent.parameters.indexOf(node); - var isRest = node.type.kind === 325 /* JSDocVariadicType */ && index === node.parent.parameters.length - 1; - var name = node.name || (isRest ? "rest" : "arg" + index); - var dotdotdot = isRest ? factory.createToken(26 /* DotDotDotToken */) : node.dotDotDotToken; - return factory.createParameterDeclaration(node.modifiers, dotdotdot, name, node.questionToken, visitNode(node.type, transformJSDocType, isTypeNode), node.initializer); -} -function transformJSDocTypeReference(node) { - var name = node.typeName; - var args = node.typeArguments; - if (isIdentifier(node.typeName)) { - if (isJSDocIndexSignature(node)) { - return transformJSDocIndexSignature(node); - } - var text = node.typeName.text; - switch (node.typeName.text) { - case "String": - case "Boolean": - case "Object": - case "Number": - text = text.toLowerCase(); - break; - case "array": - case "date": - case "promise": - text = text[0].toUpperCase() + text.slice(1); - break; - } - name = factory.createIdentifier(text); - if ((text === "Array" || text === "Promise") && !node.typeArguments) { - args = factory.createNodeArray([factory.createTypeReferenceNode("any", emptyArray)]); - } - else { - args = visitNodes2(node.typeArguments, transformJSDocType, isTypeNode); - } - } - return factory.createTypeReferenceNode(name, args); -} -function transformJSDocIndexSignature(node) { - var index = factory.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, node.typeArguments[0].kind === 150 /* NumberKeyword */ ? "n" : "s", - /*questionToken*/ - void 0, factory.createTypeReferenceNode(node.typeArguments[0].kind === 150 /* NumberKeyword */ ? "number" : "string", []), - /*initializer*/ - void 0); - var indexSignature = factory.createTypeLiteralNode([factory.createIndexSignature( - /*modifiers*/ - void 0, [index], node.typeArguments[1])]); - setEmitFlags(indexSignature, 1 /* SingleLine */); - return indexSignature; -} -// src/services/codefixes/convertFunctionToEs6Class.ts -var fixId9 = "convertFunctionToEs6Class"; -var errorCodes10 = [Diagnostics.This_constructor_function_may_be_converted_to_a_class_declaration.code]; -registerCodeFix({ - errorCodes: errorCodes10, - getCodeActions: function (context) { - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return doChange9(t, context.sourceFile, context.span.start, context.program.getTypeChecker(), context.preferences, context.program.getCompilerOptions()); }); - return [createCodeFixAction(fixId9, changes, Diagnostics.Convert_function_to_an_ES2015_class, fixId9, Diagnostics.Convert_all_constructor_functions_to_classes)]; - }, - fixIds: [fixId9], - getAllCodeActions: function (context) { return codeFixAll(context, errorCodes10, function (changes, err) { return doChange9(changes, err.file, err.start, context.program.getTypeChecker(), context.preferences, context.program.getCompilerOptions()); }); } -}); -function doChange9(changes, sourceFile, position, checker, preferences, compilerOptions) { - var ctorSymbol = checker.getSymbolAtLocation(getTokenAtPosition(sourceFile, position)); - if (!ctorSymbol || !ctorSymbol.valueDeclaration || !(ctorSymbol.flags & (16 /* Function */ | 3 /* Variable */))) { - return void 0; - } - var ctorDeclaration = ctorSymbol.valueDeclaration; - if (isFunctionDeclaration(ctorDeclaration) || isFunctionExpression(ctorDeclaration)) { - changes.replaceNode(sourceFile, ctorDeclaration, createClassFromFunction(ctorDeclaration)); - } - else if (isVariableDeclaration(ctorDeclaration)) { - var classDeclaration = createClassFromVariableDeclaration(ctorDeclaration); - if (!classDeclaration) { - return void 0; - } - var ancestor = ctorDeclaration.parent.parent; - if (isVariableDeclarationList(ctorDeclaration.parent) && ctorDeclaration.parent.declarations.length > 1) { - changes.delete(sourceFile, ctorDeclaration); - changes.insertNodeAfter(sourceFile, ancestor, classDeclaration); - } - else { - changes.replaceNode(sourceFile, ancestor, classDeclaration); - } - } - function createClassElementsFromSymbol(symbol) { - var memberElements = []; - if (symbol.exports) { - symbol.exports.forEach(function (member) { - if (member.name === "prototype" && member.declarations) { - var firstDeclaration = member.declarations[0]; - if (member.declarations.length === 1 && isPropertyAccessExpression(firstDeclaration) && isBinaryExpression(firstDeclaration.parent) && firstDeclaration.parent.operatorToken.kind === 64 /* EqualsToken */ && isObjectLiteralExpression(firstDeclaration.parent.right)) { - var prototypes = firstDeclaration.parent.right; - createClassElement(prototypes.symbol, - /*modifiers*/ - void 0, memberElements); - } - } - else { - createClassElement(member, [factory.createToken(126 /* StaticKeyword */)], memberElements); - } - }); - } - if (symbol.members) { - symbol.members.forEach(function (member, key) { - var _a, _b, _c, _d; - if (key === "constructor" && member.valueDeclaration) { - var prototypeAssignment = (_d = (_c = (_b = (_a = symbol.exports) == null ? void 0 : _a.get("prototype")) == null ? void 0 : _b.declarations) == null ? void 0 : _c[0]) == null ? void 0 : _d.parent; - if (prototypeAssignment && isBinaryExpression(prototypeAssignment) && isObjectLiteralExpression(prototypeAssignment.right) && some(prototypeAssignment.right.properties, isConstructorAssignment)) { - } - else { - changes.delete(sourceFile, member.valueDeclaration.parent); - } - return; - } - createClassElement(member, - /*modifiers*/ - void 0, memberElements); - }); - } - return memberElements; - function shouldConvertDeclaration(_target, source) { - if (isAccessExpression(_target)) { - if (isPropertyAccessExpression(_target) && isConstructorAssignment(_target)) - return true; - return isFunctionLike(source); - } - else { - return every(_target.properties, function (property) { - if (isMethodDeclaration(property) || isGetOrSetAccessorDeclaration(property)) - return true; - if (isPropertyAssignment(property) && isFunctionExpression(property.initializer) && !!property.name) - return true; - if (isConstructorAssignment(property)) - return true; - return false; - }); - } - } - function createClassElement(symbol2, modifiers, members) { - if (!(symbol2.flags & 8192 /* Method */) && !(symbol2.flags & 4096 /* ObjectLiteral */)) { - return; - } - var memberDeclaration = symbol2.valueDeclaration; - var assignmentBinaryExpression = memberDeclaration.parent; - var assignmentExpr = assignmentBinaryExpression.right; - if (!shouldConvertDeclaration(memberDeclaration, assignmentExpr)) { - return; - } - if (some(members, function (m) { - var name = getNameOfDeclaration(m); - if (name && isIdentifier(name) && idText(name) === symbolName(symbol2)) { - return true; - } - return false; - })) { - return; - } - var nodeToDelete = assignmentBinaryExpression.parent && assignmentBinaryExpression.parent.kind === 244 /* ExpressionStatement */ ? assignmentBinaryExpression.parent : assignmentBinaryExpression; - changes.delete(sourceFile, nodeToDelete); - if (!assignmentExpr) { - members.push(factory.createPropertyDeclaration(modifiers, symbol2.name, - /*questionOrExclamationToken*/ - void 0, - /*type*/ - void 0, - /*initializer*/ - void 0)); - return; - } - if (isAccessExpression(memberDeclaration) && (isFunctionExpression(assignmentExpr) || isArrowFunction(assignmentExpr))) { - var quotePreference = getQuotePreference(sourceFile, preferences); - var name_109 = tryGetPropertyName(memberDeclaration, compilerOptions, quotePreference); - if (name_109) { - createFunctionLikeExpressionMember(members, assignmentExpr, name_109); - } - return; - } - else if (isObjectLiteralExpression(assignmentExpr)) { - forEach(assignmentExpr.properties, function (property) { - if (isMethodDeclaration(property) || isGetOrSetAccessorDeclaration(property)) { - members.push(property); - } - if (isPropertyAssignment(property) && isFunctionExpression(property.initializer)) { - createFunctionLikeExpressionMember(members, property.initializer, property.name); - } - if (isConstructorAssignment(property)) - return; - return; - }); - return; - } - else { - if (isSourceFileJS(sourceFile)) - return; - if (!isPropertyAccessExpression(memberDeclaration)) - return; - var prop = factory.createPropertyDeclaration(modifiers, memberDeclaration.name, - /*questionOrExclamationToken*/ - void 0, - /*type*/ - void 0, assignmentExpr); - copyLeadingComments(assignmentBinaryExpression.parent, prop, sourceFile); - members.push(prop); - return; - } - function createFunctionLikeExpressionMember(members2, expression, name) { - if (isFunctionExpression(expression)) - return createFunctionExpressionMember(members2, expression, name); - else - return createArrowFunctionExpressionMember(members2, expression, name); - } - function createFunctionExpressionMember(members2, functionExpression, name) { - var fullModifiers = concatenate(modifiers, getModifierKindFromSource(functionExpression, 134 /* AsyncKeyword */)); - var method = factory.createMethodDeclaration(fullModifiers, - /*asteriskToken*/ - void 0, name, - /*questionToken*/ - void 0, - /*typeParameters*/ - void 0, functionExpression.parameters, - /*type*/ - void 0, functionExpression.body); - copyLeadingComments(assignmentBinaryExpression, method, sourceFile); - members2.push(method); - return; - } - function createArrowFunctionExpressionMember(members2, arrowFunction, name) { - var arrowFunctionBody = arrowFunction.body; - var bodyBlock; - if (arrowFunctionBody.kind === 241 /* Block */) { - bodyBlock = arrowFunctionBody; - } - else { - bodyBlock = factory.createBlock([factory.createReturnStatement(arrowFunctionBody)]); - } - var fullModifiers = concatenate(modifiers, getModifierKindFromSource(arrowFunction, 134 /* AsyncKeyword */)); - var method = factory.createMethodDeclaration(fullModifiers, - /*asteriskToken*/ - void 0, name, - /*questionToken*/ - void 0, - /*typeParameters*/ - void 0, arrowFunction.parameters, - /*type*/ - void 0, bodyBlock); - copyLeadingComments(assignmentBinaryExpression, method, sourceFile); - members2.push(method); - } - } - } - function createClassFromVariableDeclaration(node) { - var initializer = node.initializer; - if (!initializer || !isFunctionExpression(initializer) || !isIdentifier(node.name)) { - return void 0; - } - var memberElements = createClassElementsFromSymbol(node.symbol); - if (initializer.body) { - memberElements.unshift(factory.createConstructorDeclaration( - /*modifiers*/ - void 0, initializer.parameters, initializer.body)); - } - var modifiers = getModifierKindFromSource(node.parent.parent, 95 /* ExportKeyword */); - var cls = factory.createClassDeclaration(modifiers, node.name, - /*typeParameters*/ - void 0, - /*heritageClauses*/ - void 0, memberElements); - return cls; - } - function createClassFromFunction(node) { - var memberElements = createClassElementsFromSymbol(ctorSymbol); - if (node.body) { - memberElements.unshift(factory.createConstructorDeclaration( - /*modifiers*/ - void 0, node.parameters, node.body)); - } - var modifiers = getModifierKindFromSource(node, 95 /* ExportKeyword */); - var cls = factory.createClassDeclaration(modifiers, node.name, - /*typeParameters*/ - void 0, - /*heritageClauses*/ - void 0, memberElements); - return cls; - } -} -function getModifierKindFromSource(source, kind) { - return canHaveModifiers(source) ? filter(source.modifiers, function (modifier) { return modifier.kind === kind; }) : void 0; -} -function isConstructorAssignment(x) { - if (!x.name) - return false; - if (isIdentifier(x.name) && x.name.text === "constructor") - return true; - return false; -} -function tryGetPropertyName(node, compilerOptions, quotePreference) { - if (isPropertyAccessExpression(node)) { - return node.name; - } - var propName = node.argumentExpression; - if (isNumericLiteral(propName)) { - return propName; - } - if (isStringLiteralLike(propName)) { - return isIdentifierText(propName.text, getEmitScriptTarget(compilerOptions)) ? factory.createIdentifier(propName.text) : isNoSubstitutionTemplateLiteral(propName) ? factory.createStringLiteral(propName.text, quotePreference === 0 /* Single */) : propName; - } - return void 0; -} -// src/services/codefixes/convertToAsyncFunction.ts -var fixId10 = "convertToAsyncFunction"; -var errorCodes11 = [Diagnostics.This_may_be_converted_to_an_async_function.code]; -var codeActionSucceeded = true; -registerCodeFix({ - errorCodes: errorCodes11, - getCodeActions: function (context) { - codeActionSucceeded = true; - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return convertToAsyncFunction(t, context.sourceFile, context.span.start, context.program.getTypeChecker()); }); - return codeActionSucceeded ? [createCodeFixAction(fixId10, changes, Diagnostics.Convert_to_async_function, fixId10, Diagnostics.Convert_all_to_async_functions)] : []; - }, - fixIds: [fixId10], - getAllCodeActions: function (context) { return codeFixAll(context, errorCodes11, function (changes, err) { return convertToAsyncFunction(changes, err.file, err.start, context.program.getTypeChecker()); }); } -}); -function convertToAsyncFunction(changes, sourceFile, position, checker) { - var e_748, _t; - var tokenAtPosition = getTokenAtPosition(sourceFile, position); - var functionToConvert; - if (isIdentifier(tokenAtPosition) && isVariableDeclaration(tokenAtPosition.parent) && tokenAtPosition.parent.initializer && isFunctionLikeDeclaration(tokenAtPosition.parent.initializer)) { - functionToConvert = tokenAtPosition.parent.initializer; - } - else { - functionToConvert = tryCast(getContainingFunction(getTokenAtPosition(sourceFile, position)), canBeConvertedToAsync); - } - if (!functionToConvert) { - return; - } - var synthNamesMap = /* @__PURE__ */ new Map(); - var isInJavascript = isInJSFile(functionToConvert); - var setOfExpressionsToReturn = getAllPromiseExpressionsToReturn(functionToConvert, checker); - var functionToConvertRenamed = renameCollidingVarNames(functionToConvert, checker, synthNamesMap); - if (!returnsPromise(functionToConvertRenamed, checker)) { - return; - } - var returnStatements = functionToConvertRenamed.body && isBlock(functionToConvertRenamed.body) ? getReturnStatementsWithPromiseHandlers(functionToConvertRenamed.body, checker) : emptyArray; - var transformer = { checker: checker, synthNamesMap: synthNamesMap, setOfExpressionsToReturn: setOfExpressionsToReturn, isInJSFile: isInJavascript }; - if (!returnStatements.length) { - return; - } - var pos = skipTrivia(sourceFile.text, moveRangePastModifiers(functionToConvert).pos); - changes.insertModifierAt(sourceFile, pos, 134 /* AsyncKeyword */, { suffix: " " }); - var _loop_54 = function (returnStatement) { - forEachChild(returnStatement, function visit(node) { - if (isCallExpression(node)) { - var newNodes = transformExpression(node, node, transformer, - /*hasContinuation*/ - false); - if (hasFailed()) { - return true; - } - changes.replaceNodeWithNodes(sourceFile, returnStatement, newNodes); - } - else if (!isFunctionLike(node)) { - forEachChild(node, visit); - if (hasFailed()) { - return true; - } - } - }); - if (hasFailed()) { - return { value: void 0 }; - } - }; - try { - for (var returnStatements_1 = __values(returnStatements), returnStatements_1_1 = returnStatements_1.next(); !returnStatements_1_1.done; returnStatements_1_1 = returnStatements_1.next()) { - var returnStatement = returnStatements_1_1.value; - var state_17 = _loop_54(returnStatement); - if (typeof state_17 === "object") - return state_17.value; - } - } - catch (e_748_1) { e_748 = { error: e_748_1 }; } - finally { - try { - if (returnStatements_1_1 && !returnStatements_1_1.done && (_t = returnStatements_1.return)) _t.call(returnStatements_1); - } - finally { if (e_748) throw e_748.error; } - } -} -function getReturnStatementsWithPromiseHandlers(body, checker) { - var res = []; - forEachReturnStatement(body, function (ret) { - if (isReturnStatementWithFixablePromiseHandler(ret, checker)) - res.push(ret); - }); - return res; -} -function getAllPromiseExpressionsToReturn(func, checker) { - if (!func.body) { - return /* @__PURE__ */ new Set(); - } - var setOfExpressionsToReturn = /* @__PURE__ */ new Set(); - forEachChild(func.body, function visit(node) { - if (isPromiseReturningCallExpression(node, checker, "then")) { - setOfExpressionsToReturn.add(getNodeId(node)); - forEach(node.arguments, visit); - } - else if (isPromiseReturningCallExpression(node, checker, "catch") || isPromiseReturningCallExpression(node, checker, "finally")) { - setOfExpressionsToReturn.add(getNodeId(node)); - forEachChild(node, visit); - } - else if (isPromiseTypedExpression(node, checker)) { - setOfExpressionsToReturn.add(getNodeId(node)); - } - else { - forEachChild(node, visit); - } - }); - return setOfExpressionsToReturn; -} -function isPromiseReturningCallExpression(node, checker, name) { - if (!isCallExpression(node)) - return false; - var isExpressionOfName = hasPropertyAccessExpressionWithName(node, name); - var nodeType = isExpressionOfName && checker.getTypeAtLocation(node); - return !!(nodeType && checker.getPromisedTypeOfPromise(nodeType)); -} -function isReferenceToType(type, target) { - return (getObjectFlags(type) & 4 /* Reference */) !== 0 && type.target === target; -} -function getExplicitPromisedTypeOfPromiseReturningCallExpression(node, callback, checker) { - if (node.expression.name.escapedText === "finally") { - return void 0; - } - var promiseType = checker.getTypeAtLocation(node.expression.expression); - if (isReferenceToType(promiseType, checker.getPromiseType()) || isReferenceToType(promiseType, checker.getPromiseLikeType())) { - if (node.expression.name.escapedText === "then") { - if (callback === elementAt(node.arguments, 0)) { - return elementAt(node.typeArguments, 0); - } - else if (callback === elementAt(node.arguments, 1)) { - return elementAt(node.typeArguments, 1); - } - } - else { - return elementAt(node.typeArguments, 0); - } - } -} -function isPromiseTypedExpression(node, checker) { - if (!isExpression(node)) - return false; - return !!checker.getPromisedTypeOfPromise(checker.getTypeAtLocation(node)); -} -function renameCollidingVarNames(nodeToRename, checker, synthNamesMap) { - var identsToRenameMap = /* @__PURE__ */ new Map(); - var collidingSymbolMap = createMultiMap(); - forEachChild(nodeToRename, function visit(node) { - if (!isIdentifier(node)) { - forEachChild(node, visit); - return; - } - var symbol = checker.getSymbolAtLocation(node); - if (symbol) { - var type = checker.getTypeAtLocation(node); - var lastCallSignature = getLastCallSignature(type, checker); - var symbolIdString = getSymbolId(symbol).toString(); - if (lastCallSignature && !isParameter(node.parent) && !isFunctionLikeDeclaration(node.parent) && !synthNamesMap.has(symbolIdString)) { - var firstParameter = firstOrUndefined(lastCallSignature.parameters); - var ident = (firstParameter == null ? void 0 : firstParameter.valueDeclaration) && isParameter(firstParameter.valueDeclaration) && tryCast(firstParameter.valueDeclaration.name, isIdentifier) || factory.createUniqueName("result", 16 /* Optimistic */); - var synthName = getNewNameIfConflict(ident, collidingSymbolMap); - synthNamesMap.set(symbolIdString, synthName); - collidingSymbolMap.add(ident.text, symbol); - } - else if (node.parent && (isParameter(node.parent) || isVariableDeclaration(node.parent) || isBindingElement(node.parent))) { - var originalName = node.text; - var collidingSymbols = collidingSymbolMap.get(originalName); - if (collidingSymbols && collidingSymbols.some(function (prevSymbol) { return prevSymbol !== symbol; })) { - var newName = getNewNameIfConflict(node, collidingSymbolMap); - identsToRenameMap.set(symbolIdString, newName.identifier); - synthNamesMap.set(symbolIdString, newName); - collidingSymbolMap.add(originalName, symbol); - } - else { - var identifier = getSynthesizedDeepClone(node); - synthNamesMap.set(symbolIdString, createSynthIdentifier(identifier)); - collidingSymbolMap.add(originalName, symbol); - } - } - } - }); - return getSynthesizedDeepCloneWithReplacements(nodeToRename, - /*includeTrivia*/ - true, function (original) { - if (isBindingElement(original) && isIdentifier(original.name) && isObjectBindingPattern(original.parent)) { - var symbol = checker.getSymbolAtLocation(original.name); - var renameInfo = symbol && identsToRenameMap.get(String(getSymbolId(symbol))); - if (renameInfo && renameInfo.text !== (original.name || original.propertyName).getText()) { - return factory.createBindingElement(original.dotDotDotToken, original.propertyName || original.name, renameInfo, original.initializer); - } - } - else if (isIdentifier(original)) { - var symbol = checker.getSymbolAtLocation(original); - var renameInfo = symbol && identsToRenameMap.get(String(getSymbolId(symbol))); - if (renameInfo) { - return factory.createIdentifier(renameInfo.text); - } - } - }); -} -function getNewNameIfConflict(name, originalNames) { - var numVarsSameName = (originalNames.get(name.text) || emptyArray).length; - var identifier = numVarsSameName === 0 ? name : factory.createIdentifier(name.text + "_" + numVarsSameName); - return createSynthIdentifier(identifier); -} -function hasFailed() { - return !codeActionSucceeded; -} -function silentFail() { - codeActionSucceeded = false; - return emptyArray; -} -function transformExpression(returnContextNode, node, transformer, hasContinuation, continuationArgName) { - if (isPromiseReturningCallExpression(node, transformer.checker, "then")) { - return transformThen(node, elementAt(node.arguments, 0), elementAt(node.arguments, 1), transformer, hasContinuation, continuationArgName); - } - if (isPromiseReturningCallExpression(node, transformer.checker, "catch")) { - return transformCatch(node, elementAt(node.arguments, 0), transformer, hasContinuation, continuationArgName); - } - if (isPromiseReturningCallExpression(node, transformer.checker, "finally")) { - return transformFinally(node, elementAt(node.arguments, 0), transformer, hasContinuation, continuationArgName); - } - if (isPropertyAccessExpression(node)) { - return transformExpression(returnContextNode, node.expression, transformer, hasContinuation, continuationArgName); - } - var nodeType = transformer.checker.getTypeAtLocation(node); - if (nodeType && transformer.checker.getPromisedTypeOfPromise(nodeType)) { - Debug.assertNode(getOriginalNode(node).parent, isPropertyAccessExpression); - return transformPromiseExpressionOfPropertyAccess(returnContextNode, node, transformer, hasContinuation, continuationArgName); - } - return silentFail(); -} -function isNullOrUndefined2(_t, node) { - var checker = _t.checker; - if (node.kind === 106 /* NullKeyword */) - return true; - if (isIdentifier(node) && !isGeneratedIdentifier(node) && idText(node) === "undefined") { - var symbol = checker.getSymbolAtLocation(node); - return !symbol || checker.isUndefinedSymbol(symbol); - } - return false; -} -function createUniqueSynthName(prevArgName) { - var renamedPrevArg = factory.createUniqueName(prevArgName.identifier.text, 16 /* Optimistic */); - return createSynthIdentifier(renamedPrevArg); -} -function getPossibleNameForVarDecl(node, transformer, continuationArgName) { - var possibleNameForVarDecl; - if (continuationArgName && !shouldReturn(node, transformer)) { - if (isSynthIdentifier(continuationArgName)) { - possibleNameForVarDecl = continuationArgName; - transformer.synthNamesMap.forEach(function (val, key) { - if (val.identifier.text === continuationArgName.identifier.text) { - var newSynthName = createUniqueSynthName(continuationArgName); - transformer.synthNamesMap.set(key, newSynthName); - } - }); - } - else { - possibleNameForVarDecl = createSynthIdentifier(factory.createUniqueName("result", 16 /* Optimistic */), continuationArgName.types); - } - declareSynthIdentifier(possibleNameForVarDecl); - } - return possibleNameForVarDecl; -} -function finishCatchOrFinallyTransform(node, transformer, tryStatement, possibleNameForVarDecl, continuationArgName) { - var statements = []; - var varDeclIdentifier; - if (possibleNameForVarDecl && !shouldReturn(node, transformer)) { - varDeclIdentifier = getSynthesizedDeepClone(declareSynthIdentifier(possibleNameForVarDecl)); - var typeArray = possibleNameForVarDecl.types; - var unionType = transformer.checker.getUnionType(typeArray, 2 /* Subtype */); - var unionTypeNode = transformer.isInJSFile ? void 0 : transformer.checker.typeToTypeNode(unionType, - /*enclosingDeclaration*/ - void 0, - /*flags*/ - void 0); - var varDecl = [factory.createVariableDeclaration(varDeclIdentifier, - /*exclamationToken*/ - void 0, unionTypeNode)]; - var varDeclList = factory.createVariableStatement( - /*modifiers*/ - void 0, factory.createVariableDeclarationList(varDecl, 1 /* Let */)); - statements.push(varDeclList); - } - statements.push(tryStatement); - if (continuationArgName && varDeclIdentifier && isSynthBindingPattern(continuationArgName)) { - statements.push(factory.createVariableStatement( - /*modifiers*/ - void 0, factory.createVariableDeclarationList([ - factory.createVariableDeclaration(getSynthesizedDeepClone(declareSynthBindingPattern(continuationArgName)), - /*exclamationToken*/ - void 0, - /*type*/ - void 0, varDeclIdentifier) - ], 2 /* Const */))); - } - return statements; -} -function transformFinally(node, onFinally, transformer, hasContinuation, continuationArgName) { - if (!onFinally || isNullOrUndefined2(transformer, onFinally)) { - return transformExpression( - /* returnContextNode */ - node, node.expression.expression, transformer, hasContinuation, continuationArgName); - } - var possibleNameForVarDecl = getPossibleNameForVarDecl(node, transformer, continuationArgName); - var inlinedLeftHandSide = transformExpression( - /*returnContextNode*/ - node, node.expression.expression, transformer, - /*hasContinuation*/ - true, possibleNameForVarDecl); - if (hasFailed()) - return silentFail(); - var inlinedCallback = transformCallbackArgument(onFinally, hasContinuation, - /*continuationArgName*/ - void 0, - /*inputArgName*/ - void 0, node, transformer); - if (hasFailed()) - return silentFail(); - var tryBlock = factory.createBlock(inlinedLeftHandSide); - var finallyBlock = factory.createBlock(inlinedCallback); - var tryStatement = factory.createTryStatement(tryBlock, - /*catchClause*/ - void 0, finallyBlock); - return finishCatchOrFinallyTransform(node, transformer, tryStatement, possibleNameForVarDecl, continuationArgName); -} -function transformCatch(node, onRejected, transformer, hasContinuation, continuationArgName) { - if (!onRejected || isNullOrUndefined2(transformer, onRejected)) { - return transformExpression( - /* returnContextNode */ - node, node.expression.expression, transformer, hasContinuation, continuationArgName); - } - var inputArgName = getArgBindingName(onRejected, transformer); - var possibleNameForVarDecl = getPossibleNameForVarDecl(node, transformer, continuationArgName); - var inlinedLeftHandSide = transformExpression( - /*returnContextNode*/ - node, node.expression.expression, transformer, - /*hasContinuation*/ - true, possibleNameForVarDecl); - if (hasFailed()) - return silentFail(); - var inlinedCallback = transformCallbackArgument(onRejected, hasContinuation, possibleNameForVarDecl, inputArgName, node, transformer); - if (hasFailed()) - return silentFail(); - var tryBlock = factory.createBlock(inlinedLeftHandSide); - var catchClause = factory.createCatchClause(inputArgName && getSynthesizedDeepClone(declareSynthBindingName(inputArgName)), factory.createBlock(inlinedCallback)); - var tryStatement = factory.createTryStatement(tryBlock, catchClause, - /*finallyBlock*/ - void 0); - return finishCatchOrFinallyTransform(node, transformer, tryStatement, possibleNameForVarDecl, continuationArgName); -} -function transformThen(node, onFulfilled, onRejected, transformer, hasContinuation, continuationArgName) { - if (!onFulfilled || isNullOrUndefined2(transformer, onFulfilled)) { - return transformCatch(node, onRejected, transformer, hasContinuation, continuationArgName); - } - if (onRejected && !isNullOrUndefined2(transformer, onRejected)) { - return silentFail(); - } - var inputArgName = getArgBindingName(onFulfilled, transformer); - var inlinedLeftHandSide = transformExpression(node.expression.expression, node.expression.expression, transformer, - /*hasContinuation*/ - true, inputArgName); - if (hasFailed()) - return silentFail(); - var inlinedCallback = transformCallbackArgument(onFulfilled, hasContinuation, continuationArgName, inputArgName, node, transformer); - if (hasFailed()) - return silentFail(); - return concatenate(inlinedLeftHandSide, inlinedCallback); -} -function transformPromiseExpressionOfPropertyAccess(returnContextNode, node, transformer, hasContinuation, continuationArgName) { - if (shouldReturn(returnContextNode, transformer)) { - var returnValue = getSynthesizedDeepClone(node); - if (hasContinuation) { - returnValue = factory.createAwaitExpression(returnValue); - } - return [factory.createReturnStatement(returnValue)]; - } - return createVariableOrAssignmentOrExpressionStatement(continuationArgName, factory.createAwaitExpression(node), - /*typeAnnotation*/ - void 0); -} -function createVariableOrAssignmentOrExpressionStatement(variableName, rightHandSide, typeAnnotation) { - if (!variableName || isEmptyBindingName(variableName)) { - return [factory.createExpressionStatement(rightHandSide)]; - } - if (isSynthIdentifier(variableName) && variableName.hasBeenDeclared) { - return [factory.createExpressionStatement(factory.createAssignment(getSynthesizedDeepClone(referenceSynthIdentifier(variableName)), rightHandSide))]; - } - return [ - factory.createVariableStatement( - /*modifiers*/ - void 0, factory.createVariableDeclarationList([ - factory.createVariableDeclaration(getSynthesizedDeepClone(declareSynthBindingName(variableName)), - /*exclamationToken*/ - void 0, typeAnnotation, rightHandSide) - ], 2 /* Const */)) - ]; -} -function maybeAnnotateAndReturn(expressionToReturn, typeAnnotation) { - if (typeAnnotation && expressionToReturn) { - var name_110 = factory.createUniqueName("result", 16 /* Optimistic */); - return __spreadArray(__spreadArray([], __read(createVariableOrAssignmentOrExpressionStatement(createSynthIdentifier(name_110), expressionToReturn, typeAnnotation)), false), [ - factory.createReturnStatement(name_110) - ], false); - } - return [factory.createReturnStatement(expressionToReturn)]; -} -function transformCallbackArgument(func, hasContinuation, continuationArgName, inputArgName, parent2, transformer) { - var e_749, _t; - var _a; - switch (func.kind) { - case 106 /* NullKeyword */: - break; - case 211 /* PropertyAccessExpression */: - case 80 /* Identifier */: - if (!inputArgName) { - break; - } - var synthCall = factory.createCallExpression(getSynthesizedDeepClone(func), - /*typeArguments*/ - void 0, isSynthIdentifier(inputArgName) ? [referenceSynthIdentifier(inputArgName)] : []); - if (shouldReturn(parent2, transformer)) { - return maybeAnnotateAndReturn(synthCall, getExplicitPromisedTypeOfPromiseReturningCallExpression(parent2, func, transformer.checker)); - } - var type = transformer.checker.getTypeAtLocation(func); - var callSignatures = transformer.checker.getSignaturesOfType(type, 0 /* Call */); - if (!callSignatures.length) { - return silentFail(); - } - var returnType = callSignatures[0].getReturnType(); - var varDeclOrAssignment = createVariableOrAssignmentOrExpressionStatement(continuationArgName, factory.createAwaitExpression(synthCall), getExplicitPromisedTypeOfPromiseReturningCallExpression(parent2, func, transformer.checker)); - if (continuationArgName) { - continuationArgName.types.push(transformer.checker.getAwaitedType(returnType) || returnType); - } - return varDeclOrAssignment; - case 218 /* FunctionExpression */: - case 219 /* ArrowFunction */: { - var funcBody = func.body; - var returnType2 = (_a = getLastCallSignature(transformer.checker.getTypeAtLocation(func), transformer.checker)) == null ? void 0 : _a.getReturnType(); - if (isBlock(funcBody)) { - var refactoredStmts = []; - var seenReturnStatement = false; - try { - for (var _u = __values(funcBody.statements), _v = _u.next(); !_v.done; _v = _u.next()) { - var statement = _v.value; - if (isReturnStatement(statement)) { - seenReturnStatement = true; - if (isReturnStatementWithFixablePromiseHandler(statement, transformer.checker)) { - refactoredStmts = refactoredStmts.concat(transformReturnStatementWithFixablePromiseHandler(transformer, statement, hasContinuation, continuationArgName)); - } - else { - var possiblyAwaitedRightHandSide = returnType2 && statement.expression ? getPossiblyAwaitedRightHandSide(transformer.checker, returnType2, statement.expression) : statement.expression; - refactoredStmts.push.apply(refactoredStmts, __spreadArray([], __read(maybeAnnotateAndReturn(possiblyAwaitedRightHandSide, getExplicitPromisedTypeOfPromiseReturningCallExpression(parent2, func, transformer.checker))), false)); - } - } - else if (hasContinuation && forEachReturnStatement(statement, returnTrue)) { - return silentFail(); - } - else { - refactoredStmts.push(statement); - } - } - } - catch (e_749_1) { e_749 = { error: e_749_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_749) throw e_749.error; } - } - return shouldReturn(parent2, transformer) ? refactoredStmts.map(function (s) { return getSynthesizedDeepClone(s); }) : removeReturns(refactoredStmts, continuationArgName, transformer, seenReturnStatement); - } - else { - var inlinedStatements = isFixablePromiseHandler(funcBody, transformer.checker) ? transformReturnStatementWithFixablePromiseHandler(transformer, factory.createReturnStatement(funcBody), hasContinuation, continuationArgName) : emptyArray; - if (inlinedStatements.length > 0) { - return inlinedStatements; - } - if (returnType2) { - var possiblyAwaitedRightHandSide = getPossiblyAwaitedRightHandSide(transformer.checker, returnType2, funcBody); - if (!shouldReturn(parent2, transformer)) { - var transformedStatement = createVariableOrAssignmentOrExpressionStatement(continuationArgName, possiblyAwaitedRightHandSide, - /*typeAnnotation*/ - void 0); - if (continuationArgName) { - continuationArgName.types.push(transformer.checker.getAwaitedType(returnType2) || returnType2); - } - return transformedStatement; - } - else { - return maybeAnnotateAndReturn(possiblyAwaitedRightHandSide, getExplicitPromisedTypeOfPromiseReturningCallExpression(parent2, func, transformer.checker)); - } - } - else { - return silentFail(); - } - } - } - default: - return silentFail(); - } - return emptyArray; -} -function getPossiblyAwaitedRightHandSide(checker, type, expr) { - var rightHandSide = getSynthesizedDeepClone(expr); - return !!checker.getPromisedTypeOfPromise(type) ? factory.createAwaitExpression(rightHandSide) : rightHandSide; -} -function getLastCallSignature(type, checker) { - var callSignatures = checker.getSignaturesOfType(type, 0 /* Call */); - return lastOrUndefined(callSignatures); -} -function removeReturns(stmts, prevArgName, transformer, seenReturnStatement) { - var e_750, _t; - var ret = []; - try { - for (var stmts_1 = __values(stmts), stmts_1_1 = stmts_1.next(); !stmts_1_1.done; stmts_1_1 = stmts_1.next()) { - var stmt = stmts_1_1.value; - if (isReturnStatement(stmt)) { - if (stmt.expression) { - var possiblyAwaitedExpression = isPromiseTypedExpression(stmt.expression, transformer.checker) ? factory.createAwaitExpression(stmt.expression) : stmt.expression; - if (prevArgName === void 0) { - ret.push(factory.createExpressionStatement(possiblyAwaitedExpression)); - } - else if (isSynthIdentifier(prevArgName) && prevArgName.hasBeenDeclared) { - ret.push(factory.createExpressionStatement(factory.createAssignment(referenceSynthIdentifier(prevArgName), possiblyAwaitedExpression))); - } - else { - ret.push(factory.createVariableStatement( - /*modifiers*/ - void 0, factory.createVariableDeclarationList([factory.createVariableDeclaration(declareSynthBindingName(prevArgName), - /*exclamationToken*/ - void 0, - /*type*/ - void 0, possiblyAwaitedExpression)], 2 /* Const */))); - } - } - } - else { - ret.push(getSynthesizedDeepClone(stmt)); - } - } - } - catch (e_750_1) { e_750 = { error: e_750_1 }; } - finally { - try { - if (stmts_1_1 && !stmts_1_1.done && (_t = stmts_1.return)) _t.call(stmts_1); - } - finally { if (e_750) throw e_750.error; } - } - if (!seenReturnStatement && prevArgName !== void 0) { - ret.push(factory.createVariableStatement( - /*modifiers*/ - void 0, factory.createVariableDeclarationList([factory.createVariableDeclaration(declareSynthBindingName(prevArgName), - /*exclamationToken*/ - void 0, - /*type*/ - void 0, factory.createIdentifier("undefined"))], 2 /* Const */))); - } - return ret; -} -function transformReturnStatementWithFixablePromiseHandler(transformer, innerRetStmt, hasContinuation, continuationArgName) { - var innerCbBody = []; - forEachChild(innerRetStmt, function visit(node) { - if (isCallExpression(node)) { - var temp = transformExpression(node, node, transformer, hasContinuation, continuationArgName); - innerCbBody = innerCbBody.concat(temp); - if (innerCbBody.length > 0) { - return; - } - } - else if (!isFunctionLike(node)) { - forEachChild(node, visit); - } - }); - return innerCbBody; -} -function getArgBindingName(funcNode, transformer) { - var types = []; - var name; - if (isFunctionLikeDeclaration(funcNode)) { - if (funcNode.parameters.length > 0) { - var param = funcNode.parameters[0].name; - name = getMappedBindingNameOrDefault(param); - } - } - else if (isIdentifier(funcNode)) { - name = getMapEntryOrDefault(funcNode); - } - else if (isPropertyAccessExpression(funcNode) && isIdentifier(funcNode.name)) { - name = getMapEntryOrDefault(funcNode.name); - } - if (!name || "identifier" in name && name.identifier.text === "undefined") { - return void 0; - } - return name; - function getMappedBindingNameOrDefault(bindingName) { - if (isIdentifier(bindingName)) - return getMapEntryOrDefault(bindingName); - var elements = flatMap(bindingName.elements, function (element) { - if (isOmittedExpression(element)) - return []; - return [getMappedBindingNameOrDefault(element.name)]; - }); - return createSynthBindingPattern(bindingName, elements); - } - function getMapEntryOrDefault(identifier) { - var originalNode = getOriginalNode2(identifier); - var symbol = getSymbol2(originalNode); - if (!symbol) { - return createSynthIdentifier(identifier, types); - } - var mapEntry = transformer.synthNamesMap.get(getSymbolId(symbol).toString()); - return mapEntry || createSynthIdentifier(identifier, types); - } - function getSymbol2(node) { - var _t; - var _a; - return (_t = ((_a = tryCast(node, canHaveSymbol)) == null ? void 0 : _a.symbol)) !== null && _t !== void 0 ? _t : transformer.checker.getSymbolAtLocation(node); - } - function getOriginalNode2(node) { - return node.original ? node.original : node; - } -} -function isEmptyBindingName(bindingName) { - if (!bindingName) { - return true; - } - if (isSynthIdentifier(bindingName)) { - return !bindingName.identifier.text; - } - return every(bindingName.elements, isEmptyBindingName); -} -function createSynthIdentifier(identifier, types) { - if (types === void 0) { types = []; } - return { kind: 0 /* Identifier */, identifier: identifier, types: types, hasBeenDeclared: false, hasBeenReferenced: false }; -} -function createSynthBindingPattern(bindingPattern, elements, types) { - if (elements === void 0) { elements = emptyArray; } - if (types === void 0) { types = []; } - return { kind: 1 /* BindingPattern */, bindingPattern: bindingPattern, elements: elements, types: types }; -} -function referenceSynthIdentifier(synthId) { - synthId.hasBeenReferenced = true; - return synthId.identifier; -} -function declareSynthBindingName(synthName) { - return isSynthIdentifier(synthName) ? declareSynthIdentifier(synthName) : declareSynthBindingPattern(synthName); -} -function declareSynthBindingPattern(synthPattern) { - var e_751, _t; - try { - for (var _u = __values(synthPattern.elements), _v = _u.next(); !_v.done; _v = _u.next()) { - var element = _v.value; - declareSynthBindingName(element); - } - } - catch (e_751_1) { e_751 = { error: e_751_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_751) throw e_751.error; } - } - return synthPattern.bindingPattern; -} -function declareSynthIdentifier(synthId) { - synthId.hasBeenDeclared = true; - return synthId.identifier; -} -function isSynthIdentifier(bindingName) { - return bindingName.kind === 0 /* Identifier */; -} -function isSynthBindingPattern(bindingName) { - return bindingName.kind === 1 /* BindingPattern */; -} -function shouldReturn(expression, transformer) { - return !!expression.original && transformer.setOfExpressionsToReturn.has(getNodeId(expression.original)); -} -// src/services/codefixes/convertToEsModule.ts -registerCodeFix({ - errorCodes: [Diagnostics.File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module.code], - getCodeActions: function (context) { - var sourceFile = context.sourceFile, program = context.program, preferences = context.preferences; - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (changes2) { - var e_752, _t; - var moduleExportsChangedToDefault = convertFileToEsModule(sourceFile, program.getTypeChecker(), changes2, getEmitScriptTarget(program.getCompilerOptions()), getQuotePreference(sourceFile, preferences)); - if (moduleExportsChangedToDefault) { - try { - for (var _u = __values(program.getSourceFiles()), _v = _u.next(); !_v.done; _v = _u.next()) { - var importingFile = _v.value; - fixImportOfModuleExports(importingFile, sourceFile, changes2, getQuotePreference(importingFile, preferences)); - } - } - catch (e_752_1) { e_752 = { error: e_752_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_752) throw e_752.error; } - } - } - }); - return [createCodeFixActionWithoutFixAll("convertToEsModule", changes, Diagnostics.Convert_to_ES_module)]; - } -}); -function fixImportOfModuleExports(importingFile, exportingFile, changes, quotePreference) { - var e_753, _t; - try { - for (var _u = __values(importingFile.imports), _v = _u.next(); !_v.done; _v = _u.next()) { - var moduleSpecifier = _v.value; - var imported = getResolvedModule(importingFile, moduleSpecifier.text, getModeForUsageLocation(importingFile, moduleSpecifier)); - if (!imported || imported.resolvedFileName !== exportingFile.fileName) { - continue; - } - var importNode = importFromModuleSpecifier(moduleSpecifier); - switch (importNode.kind) { - case 271 /* ImportEqualsDeclaration */: - changes.replaceNode(importingFile, importNode, makeImport(importNode.name, - /*namedImports*/ - void 0, moduleSpecifier, quotePreference)); - break; - case 213 /* CallExpression */: - if (isRequireCall(importNode, - /*requireStringLiteralLikeArgument*/ - false)) { - changes.replaceNode(importingFile, importNode, factory.createPropertyAccessExpression(getSynthesizedDeepClone(importNode), "default")); - } - break; - } - } - } - catch (e_753_1) { e_753 = { error: e_753_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_753) throw e_753.error; } - } -} -function convertFileToEsModule(sourceFile, checker, changes, target, quotePreference) { - var e_754, _t, e_755, _u; - var identifiers = { original: collectFreeIdentifiers(sourceFile), additional: /* @__PURE__ */ new Set() }; - var exports = collectExportRenames(sourceFile, checker, identifiers); - convertExportsAccesses(sourceFile, exports, changes); - var moduleExportsChangedToDefault = false; - var useSitesToUnqualify; - try { - for (var _v = __values(filter(sourceFile.statements, isVariableStatement)), _w = _v.next(); !_w.done; _w = _v.next()) { - var statement = _w.value; - var newUseSites = convertVariableStatement(sourceFile, statement, changes, checker, identifiers, target, quotePreference); - if (newUseSites) { - copyEntries(newUseSites, useSitesToUnqualify !== null && useSitesToUnqualify !== void 0 ? useSitesToUnqualify : (useSitesToUnqualify = /* @__PURE__ */ new Map())); - } - } - } - catch (e_754_1) { e_754 = { error: e_754_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_754) throw e_754.error; } - } - try { - for (var _x = __values(filter(sourceFile.statements, function (s) { return !isVariableStatement(s); })), _y = _x.next(); !_y.done; _y = _x.next()) { - var statement = _y.value; - var moduleExportsChanged = convertStatement(sourceFile, statement, checker, changes, identifiers, target, exports, useSitesToUnqualify, quotePreference); - moduleExportsChangedToDefault = moduleExportsChangedToDefault || moduleExportsChanged; - } - } - catch (e_755_1) { e_755 = { error: e_755_1 }; } - finally { - try { - if (_y && !_y.done && (_u = _x.return)) _u.call(_x); - } - finally { if (e_755) throw e_755.error; } - } - useSitesToUnqualify == null ? void 0 : useSitesToUnqualify.forEach(function (replacement, original) { - changes.replaceNode(sourceFile, original, replacement); - }); - return moduleExportsChangedToDefault; -} -function collectExportRenames(sourceFile, checker, identifiers) { - var res = /* @__PURE__ */ new Map(); - forEachExportReference(sourceFile, function (node) { - var text = node.name.text; - if (!res.has(text) && (isIdentifierANonContextualKeyword(node.name) || checker.resolveName(text, node, 111551 /* Value */, - /*excludeGlobals*/ - true))) { - res.set(text, makeUniqueName("_".concat(text), identifiers)); - } - }); - return res; -} -function convertExportsAccesses(sourceFile, exports, changes) { - forEachExportReference(sourceFile, function (node, isAssignmentLhs) { - if (isAssignmentLhs) { - return; - } - var text = node.name.text; - changes.replaceNode(sourceFile, node, factory.createIdentifier(exports.get(text) || text)); - }); -} -function forEachExportReference(sourceFile, cb) { - sourceFile.forEachChild(function recur(node) { - if (isPropertyAccessExpression(node) && isExportsOrModuleExportsOrAlias(sourceFile, node.expression) && isIdentifier(node.name)) { - var parent2 = node.parent; - cb(node, isBinaryExpression(parent2) && parent2.left === node && parent2.operatorToken.kind === 64 /* EqualsToken */); - } - node.forEachChild(recur); - }); -} -function convertStatement(sourceFile, statement, checker, changes, identifiers, target, exports, useSitesToUnqualify, quotePreference) { - switch (statement.kind) { - case 243 /* VariableStatement */: - convertVariableStatement(sourceFile, statement, changes, checker, identifiers, target, quotePreference); - return false; - case 244 /* ExpressionStatement */: { - var expression = statement.expression; - switch (expression.kind) { - case 213 /* CallExpression */: { - if (isRequireCall(expression, - /*requireStringLiteralLikeArgument*/ - true)) { - changes.replaceNode(sourceFile, statement, makeImport( - /*defaultImport*/ - void 0, - /*namedImports*/ - void 0, expression.arguments[0], quotePreference)); - } - return false; - } - case 226 /* BinaryExpression */: { - var operatorToken = expression.operatorToken; - return operatorToken.kind === 64 /* EqualsToken */ && convertAssignment(sourceFile, checker, expression, changes, exports, useSitesToUnqualify); - } - } - } - default: - return false; - } -} -function convertVariableStatement(sourceFile, statement, changes, checker, identifiers, target, quotePreference) { - var declarationList = statement.declarationList; - var foundImport = false; - var converted = map(declarationList.declarations, function (decl) { - var name = decl.name, initializer = decl.initializer; - if (initializer) { - if (isExportsOrModuleExportsOrAlias(sourceFile, initializer)) { - foundImport = true; - return convertedImports([]); - } - else if (isRequireCall(initializer, - /*requireStringLiteralLikeArgument*/ - true)) { - foundImport = true; - return convertSingleImport(name, initializer.arguments[0], checker, identifiers, target, quotePreference); - } - else if (isPropertyAccessExpression(initializer) && isRequireCall(initializer.expression, - /*requireStringLiteralLikeArgument*/ - true)) { - foundImport = true; - return convertPropertyAccessImport(name, initializer.name.text, initializer.expression.arguments[0], identifiers, quotePreference); - } - } - return convertedImports([factory.createVariableStatement( - /*modifiers*/ - void 0, factory.createVariableDeclarationList([decl], declarationList.flags))]); - }); - if (foundImport) { - changes.replaceNodeWithNodes(sourceFile, statement, flatMap(converted, function (c) { return c.newImports; })); - var combinedUseSites_1; - forEach(converted, function (c) { - if (c.useSitesToUnqualify) { - copyEntries(c.useSitesToUnqualify, combinedUseSites_1 !== null && combinedUseSites_1 !== void 0 ? combinedUseSites_1 : (combinedUseSites_1 = /* @__PURE__ */ new Map())); - } - }); - return combinedUseSites_1; - } -} -function convertPropertyAccessImport(name, propertyName, moduleSpecifier, identifiers, quotePreference) { - switch (name.kind) { - case 206 /* ObjectBindingPattern */: - case 207 /* ArrayBindingPattern */: { - var tmp = makeUniqueName(propertyName, identifiers); - return convertedImports([ - makeSingleImport(tmp, propertyName, moduleSpecifier, quotePreference), - makeConst( - /*modifiers*/ - void 0, name, factory.createIdentifier(tmp)) - ]); - } - case 80 /* Identifier */: - return convertedImports([makeSingleImport(name.text, propertyName, moduleSpecifier, quotePreference)]); - default: - return Debug.assertNever(name, "Convert to ES module got invalid syntax form ".concat(name.kind)); - } -} -function convertAssignment(sourceFile, checker, assignment, changes, exports, useSitesToUnqualify) { - var left = assignment.left, right = assignment.right; - if (!isPropertyAccessExpression(left)) { - return false; - } - if (isExportsOrModuleExportsOrAlias(sourceFile, left)) { - if (isExportsOrModuleExportsOrAlias(sourceFile, right)) { - changes.delete(sourceFile, assignment.parent); - } - else { - var replacement = isObjectLiteralExpression(right) ? tryChangeModuleExportsObject(right, useSitesToUnqualify) : isRequireCall(right, - /*requireStringLiteralLikeArgument*/ - true) ? convertReExportAll(right.arguments[0], checker) : void 0; - if (replacement) { - changes.replaceNodeWithNodes(sourceFile, assignment.parent, replacement[0]); - return replacement[1]; - } - else { - changes.replaceRangeWithText(sourceFile, createRange(left.getStart(sourceFile), right.pos), "export default"); - return true; - } - } - } - else if (isExportsOrModuleExportsOrAlias(sourceFile, left.expression)) { - convertNamedExport(sourceFile, assignment, changes, exports); - } - return false; -} -function tryChangeModuleExportsObject(object, useSitesToUnqualify) { - var statements = mapAllOrFail(object.properties, function (prop) { - switch (prop.kind) { - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - case 304 /* ShorthandPropertyAssignment */: - case 305 /* SpreadAssignment */: - return void 0; - case 303 /* PropertyAssignment */: - return !isIdentifier(prop.name) ? void 0 : convertExportsDotXEquals_replaceNode(prop.name.text, prop.initializer, useSitesToUnqualify); - case 174 /* MethodDeclaration */: - return !isIdentifier(prop.name) ? void 0 : functionExpressionToDeclaration(prop.name.text, [factory.createToken(95 /* ExportKeyword */)], prop, useSitesToUnqualify); - default: - Debug.assertNever(prop, "Convert to ES6 got invalid prop kind ".concat(prop.kind)); - } - }); - return statements && [statements, false]; -} -function convertNamedExport(sourceFile, assignment, changes, exports) { - var text = assignment.left.name.text; - var rename = exports.get(text); - if (rename !== void 0) { - var newNodes = [ - makeConst( - /*modifiers*/ - void 0, rename, assignment.right), - makeExportDeclaration([factory.createExportSpecifier( - /*isTypeOnly*/ - false, rename, text)]) - ]; - changes.replaceNodeWithNodes(sourceFile, assignment.parent, newNodes); - } - else { - convertExportsPropertyAssignment(assignment, sourceFile, changes); - } -} -function convertReExportAll(reExported, checker) { - var moduleSpecifier = reExported.text; - var moduleSymbol = checker.getSymbolAtLocation(reExported); - var exports = moduleSymbol ? moduleSymbol.exports : emptyMap; - return exports.has("export=" /* ExportEquals */) ? [[reExportDefault(moduleSpecifier)], true] : !exports.has("default" /* Default */) ? [[reExportStar(moduleSpecifier)], false] : ( - // If there's some non-default export, must include both `export *` and `export default`. - exports.size > 1 ? [[reExportStar(moduleSpecifier), reExportDefault(moduleSpecifier)], true] : [[reExportDefault(moduleSpecifier)], true]); -} -function reExportStar(moduleSpecifier) { - return makeExportDeclaration( - /*exportSpecifiers*/ - void 0, moduleSpecifier); -} -function reExportDefault(moduleSpecifier) { - return makeExportDeclaration([factory.createExportSpecifier( - /*isTypeOnly*/ - false, - /*propertyName*/ - void 0, "default")], moduleSpecifier); -} -function convertExportsPropertyAssignment(_t, sourceFile, changes) { - var left = _t.left, right = _t.right, parent2 = _t.parent; - var name = left.name.text; - if ((isFunctionExpression(right) || isArrowFunction(right) || isClassExpression(right)) && (!right.name || right.name.text === name)) { - changes.replaceRange(sourceFile, { pos: left.getStart(sourceFile), end: right.getStart(sourceFile) }, factory.createToken(95 /* ExportKeyword */), { suffix: " " }); - if (!right.name) - changes.insertName(sourceFile, right, name); - var semi = findChildOfKind(parent2, 27 /* SemicolonToken */, sourceFile); - if (semi) - changes.delete(sourceFile, semi); - } - else { - changes.replaceNodeRangeWithNodes(sourceFile, left.expression, findChildOfKind(left, 25 /* DotToken */, sourceFile), [factory.createToken(95 /* ExportKeyword */), factory.createToken(87 /* ConstKeyword */)], { joiner: " ", suffix: " " }); - } -} -function convertExportsDotXEquals_replaceNode(name, exported, useSitesToUnqualify) { - var modifiers = [factory.createToken(95 /* ExportKeyword */)]; - switch (exported.kind) { - case 218 /* FunctionExpression */: { - var expressionName = exported.name; - if (expressionName && expressionName.text !== name) { - return exportConst(); - } - } - case 219 /* ArrowFunction */: - return functionExpressionToDeclaration(name, modifiers, exported, useSitesToUnqualify); - case 231 /* ClassExpression */: - return classExpressionToDeclaration(name, modifiers, exported, useSitesToUnqualify); - default: - return exportConst(); - } - function exportConst() { - return makeConst(modifiers, factory.createIdentifier(name), replaceImportUseSites(exported, useSitesToUnqualify)); - } -} -function replaceImportUseSites(nodeOrNodes, useSitesToUnqualify) { - if (!useSitesToUnqualify || !some(arrayFrom(useSitesToUnqualify.keys()), function (original) { return rangeContainsRange(nodeOrNodes, original); })) { - return nodeOrNodes; - } - return isArray(nodeOrNodes) ? getSynthesizedDeepClonesWithReplacements(nodeOrNodes, - /*includeTrivia*/ - true, replaceNode) : getSynthesizedDeepCloneWithReplacements(nodeOrNodes, - /*includeTrivia*/ - true, replaceNode); - function replaceNode(original) { - if (original.kind === 211 /* PropertyAccessExpression */) { - var replacement = useSitesToUnqualify.get(original); - useSitesToUnqualify.delete(original); - return replacement; - } - } -} -function convertSingleImport(name, moduleSpecifier, checker, identifiers, target, quotePreference) { - switch (name.kind) { - case 206 /* ObjectBindingPattern */: { - var importSpecifiers = mapAllOrFail(name.elements, function (e) { return e.dotDotDotToken || e.initializer || e.propertyName && !isIdentifier(e.propertyName) || !isIdentifier(e.name) ? void 0 : makeImportSpecifier2(e.propertyName && e.propertyName.text, e.name.text); }); - if (importSpecifiers) { - return convertedImports([makeImport( - /*defaultImport*/ - void 0, importSpecifiers, moduleSpecifier, quotePreference)]); - } - } - case 207 /* ArrayBindingPattern */: { - var tmp = makeUniqueName(moduleSpecifierToValidIdentifier(moduleSpecifier.text, target), identifiers); - return convertedImports([ - makeImport(factory.createIdentifier(tmp), - /*namedImports*/ - void 0, moduleSpecifier, quotePreference), - makeConst( - /*modifiers*/ - void 0, getSynthesizedDeepClone(name), factory.createIdentifier(tmp)) - ]); - } - case 80 /* Identifier */: - return convertSingleIdentifierImport(name, moduleSpecifier, checker, identifiers, quotePreference); - default: - return Debug.assertNever(name, "Convert to ES module got invalid name kind ".concat(name.kind)); - } -} -function convertSingleIdentifierImport(name, moduleSpecifier, checker, identifiers, quotePreference) { - var e_756, _t; - var nameSymbol = checker.getSymbolAtLocation(name); - var namedBindingsNames = /* @__PURE__ */ new Map(); - var needDefaultImport = false; - var useSitesToUnqualify; - try { - for (var _u = __values(identifiers.original.get(name.text)), _v = _u.next(); !_v.done; _v = _u.next()) { - var use = _v.value; - if (checker.getSymbolAtLocation(use) !== nameSymbol || use === name) { - continue; - } - var parent2 = use.parent; - if (isPropertyAccessExpression(parent2)) { - var propertyName = parent2.name.text; - if (propertyName === "default") { - needDefaultImport = true; - var importDefaultName = use.getText(); - (useSitesToUnqualify !== null && useSitesToUnqualify !== void 0 ? useSitesToUnqualify : (useSitesToUnqualify = /* @__PURE__ */ new Map())).set(parent2, factory.createIdentifier(importDefaultName)); - } - else { - Debug.assert(parent2.expression === use, "Didn't expect expression === use"); - var idName = namedBindingsNames.get(propertyName); - if (idName === void 0) { - idName = makeUniqueName(propertyName, identifiers); - namedBindingsNames.set(propertyName, idName); - } - (useSitesToUnqualify !== null && useSitesToUnqualify !== void 0 ? useSitesToUnqualify : (useSitesToUnqualify = /* @__PURE__ */ new Map())).set(parent2, factory.createIdentifier(idName)); - } - } - else { - needDefaultImport = true; - } - } - } - catch (e_756_1) { e_756 = { error: e_756_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_756) throw e_756.error; } - } - var namedBindings = namedBindingsNames.size === 0 ? void 0 : arrayFrom(mapIterator(namedBindingsNames.entries(), function (_t) { - var _u = __read(_t, 2), propertyName = _u[0], idName = _u[1]; - return factory.createImportSpecifier( - /*isTypeOnly*/ - false, propertyName === idName ? void 0 : factory.createIdentifier(propertyName), factory.createIdentifier(idName)); - })); - if (!namedBindings) { - needDefaultImport = true; - } - return convertedImports([makeImport(needDefaultImport ? getSynthesizedDeepClone(name) : void 0, namedBindings, moduleSpecifier, quotePreference)], useSitesToUnqualify); -} -function makeUniqueName(name, identifiers) { - while (identifiers.original.has(name) || identifiers.additional.has(name)) { - name = "_".concat(name); - } - identifiers.additional.add(name); - return name; -} -function collectFreeIdentifiers(file) { - var map2 = createMultiMap(); - forEachFreeIdentifier(file, function (id) { return map2.add(id.text, id); }); - return map2; -} -function forEachFreeIdentifier(node, cb) { - if (isIdentifier(node) && isFreeIdentifier(node)) - cb(node); - node.forEachChild(function (child) { return forEachFreeIdentifier(child, cb); }); -} -function isFreeIdentifier(node) { - var parent2 = node.parent; - switch (parent2.kind) { - case 211 /* PropertyAccessExpression */: - return parent2.name !== node; - case 208 /* BindingElement */: - return parent2.propertyName !== node; - case 276 /* ImportSpecifier */: - return parent2.propertyName !== node; - default: - return true; - } -} -function functionExpressionToDeclaration(name, additionalModifiers, fn, useSitesToUnqualify) { - return factory.createFunctionDeclaration(concatenate(additionalModifiers, getSynthesizedDeepClones(fn.modifiers)), getSynthesizedDeepClone(fn.asteriskToken), name, getSynthesizedDeepClones(fn.typeParameters), getSynthesizedDeepClones(fn.parameters), getSynthesizedDeepClone(fn.type), factory.converters.convertToFunctionBlock(replaceImportUseSites(fn.body, useSitesToUnqualify))); -} -function classExpressionToDeclaration(name, additionalModifiers, cls, useSitesToUnqualify) { - return factory.createClassDeclaration(concatenate(additionalModifiers, getSynthesizedDeepClones(cls.modifiers)), name, getSynthesizedDeepClones(cls.typeParameters), getSynthesizedDeepClones(cls.heritageClauses), replaceImportUseSites(cls.members, useSitesToUnqualify)); -} -function makeSingleImport(localName, propertyName, moduleSpecifier, quotePreference) { - return propertyName === "default" ? makeImport(factory.createIdentifier(localName), - /*namedImports*/ - void 0, moduleSpecifier, quotePreference) : makeImport( - /*defaultImport*/ - void 0, [makeImportSpecifier2(propertyName, localName)], moduleSpecifier, quotePreference); -} -function makeImportSpecifier2(propertyName, name) { - return factory.createImportSpecifier( - /*isTypeOnly*/ - false, propertyName !== void 0 && propertyName !== name ? factory.createIdentifier(propertyName) : void 0, factory.createIdentifier(name)); -} -function makeConst(modifiers, name, init) { - return factory.createVariableStatement(modifiers, factory.createVariableDeclarationList([factory.createVariableDeclaration(name, - /*exclamationToken*/ - void 0, - /*type*/ - void 0, init)], 2 /* Const */)); -} -function makeExportDeclaration(exportSpecifiers, moduleSpecifier) { - return factory.createExportDeclaration( - /*modifiers*/ - void 0, - /*isTypeOnly*/ - false, exportSpecifiers && factory.createNamedExports(exportSpecifiers), moduleSpecifier === void 0 ? void 0 : factory.createStringLiteral(moduleSpecifier)); -} -function convertedImports(newImports, useSitesToUnqualify) { - return { - newImports: newImports, - useSitesToUnqualify: useSitesToUnqualify - }; -} -// src/services/codefixes/correctQualifiedNameToIndexedAccessType.ts -var fixId11 = "correctQualifiedNameToIndexedAccessType"; -var errorCodes12 = [Diagnostics.Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_property_1_in_0_with_0_1.code]; -registerCodeFix({ - errorCodes: errorCodes12, - getCodeActions: function (context) { - var qualifiedName = getQualifiedName(context.sourceFile, context.span.start); - if (!qualifiedName) - return void 0; - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return doChange10(t, context.sourceFile, qualifiedName); }); - var newText = "".concat(qualifiedName.left.text, "[\"").concat(qualifiedName.right.text, "\"]"); - return [createCodeFixAction(fixId11, changes, [Diagnostics.Rewrite_as_the_indexed_access_type_0, newText], fixId11, Diagnostics.Rewrite_all_as_indexed_access_types)]; - }, - fixIds: [fixId11], - getAllCodeActions: function (context) { return codeFixAll(context, errorCodes12, function (changes, diag2) { - var q = getQualifiedName(diag2.file, diag2.start); - if (q) { - doChange10(changes, diag2.file, q); - } - }); } -}); -function getQualifiedName(sourceFile, pos) { - var qualifiedName = findAncestor(getTokenAtPosition(sourceFile, pos), isQualifiedName); - Debug.assert(!!qualifiedName, "Expected position to be owned by a qualified name."); - return isIdentifier(qualifiedName.left) ? qualifiedName : void 0; -} -function doChange10(changeTracker, sourceFile, qualifiedName) { - var rightText = qualifiedName.right.text; - var replacement = factory.createIndexedAccessTypeNode(factory.createTypeReferenceNode(qualifiedName.left, - /*typeArguments*/ - void 0), factory.createLiteralTypeNode(factory.createStringLiteral(rightText))); - changeTracker.replaceNode(sourceFile, qualifiedName, replacement); -} -// src/services/codefixes/convertToTypeOnlyExport.ts -var errorCodes13 = [Diagnostics.Re_exporting_a_type_when_0_is_enabled_requires_using_export_type.code]; -var fixId12 = "convertToTypeOnlyExport"; -registerCodeFix({ - errorCodes: errorCodes13, - getCodeActions: function getCodeActionsToConvertToTypeOnlyExport(context) { - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return fixSingleExportDeclaration(t, getExportSpecifierForDiagnosticSpan(context.span, context.sourceFile), context); }); - if (changes.length) { - return [createCodeFixAction(fixId12, changes, Diagnostics.Convert_to_type_only_export, fixId12, Diagnostics.Convert_all_re_exported_types_to_type_only_exports)]; - } - }, - fixIds: [fixId12], - getAllCodeActions: function getAllCodeActionsToConvertToTypeOnlyExport(context) { - var fixedExportDeclarations = /* @__PURE__ */ new Map(); - return codeFixAll(context, errorCodes13, function (changes, diag2) { - var exportSpecifier = getExportSpecifierForDiagnosticSpan(diag2, context.sourceFile); - if (exportSpecifier && addToSeen(fixedExportDeclarations, getNodeId(exportSpecifier.parent.parent))) { - fixSingleExportDeclaration(changes, exportSpecifier, context); - } - }); - } -}); -function getExportSpecifierForDiagnosticSpan(span, sourceFile) { - return tryCast(getTokenAtPosition(sourceFile, span.start).parent, isExportSpecifier); -} -function fixSingleExportDeclaration(changes, exportSpecifier, context) { - if (!exportSpecifier) { - return; - } - var exportClause = exportSpecifier.parent; - var exportDeclaration = exportClause.parent; - var typeExportSpecifiers = getTypeExportSpecifiers(exportSpecifier, context); - if (typeExportSpecifiers.length === exportClause.elements.length) { - changes.insertModifierBefore(context.sourceFile, 156 /* TypeKeyword */, exportClause); - } - else { - var valueExportDeclaration = factory.updateExportDeclaration(exportDeclaration, exportDeclaration.modifiers, - /*isTypeOnly*/ - false, factory.updateNamedExports(exportClause, filter(exportClause.elements, function (e) { return !contains(typeExportSpecifiers, e); })), exportDeclaration.moduleSpecifier, - /*assertClause*/ - void 0); - var typeExportDeclaration = factory.createExportDeclaration( - /*modifiers*/ - void 0, - /*isTypeOnly*/ - true, factory.createNamedExports(typeExportSpecifiers), exportDeclaration.moduleSpecifier, - /*assertClause*/ - void 0); - changes.replaceNode(context.sourceFile, exportDeclaration, valueExportDeclaration, { - leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.IncludeAll, - trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.Exclude - }); - changes.insertNodeAfter(context.sourceFile, exportDeclaration, typeExportDeclaration); - } -} -function getTypeExportSpecifiers(originExportSpecifier, context) { - var exportClause = originExportSpecifier.parent; - if (exportClause.elements.length === 1) { - return exportClause.elements; - } - var diagnostics = getDiagnosticsWithinSpan(createTextSpanFromNode(exportClause), context.program.getSemanticDiagnostics(context.sourceFile, context.cancellationToken)); - return filter(exportClause.elements, function (element) { - var _a; - return element === originExportSpecifier || ((_a = findDiagnosticForNode(element, diagnostics)) == null ? void 0 : _a.code) === errorCodes13[0]; - }); -} -// src/services/codefixes/convertToTypeOnlyImport.ts -var errorCodes14 = [ - Diagnostics.This_import_is_never_used_as_a_value_and_must_use_import_type_because_importsNotUsedAsValues_is_set_to_error.code, - Diagnostics._0_is_a_type_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled.code -]; -var fixId13 = "convertToTypeOnlyImport"; -registerCodeFix({ - errorCodes: errorCodes14, - getCodeActions: function getCodeActionsToConvertToTypeOnlyImport(context) { - var _t; - var _a; - var declaration = getDeclaration2(context.sourceFile, context.span.start); - if (declaration) { - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return doChange11(t, context.sourceFile, declaration); }); - var importDeclarationChanges = declaration.kind === 276 /* ImportSpecifier */ && canConvertImportDeclarationForSpecifier(declaration, context.sourceFile, context.program) ? ts_textChanges_exports.ChangeTracker.with(context, function (t) { return doChange11(t, context.sourceFile, declaration.parent.parent.parent); }) : void 0; - var mainAction = createCodeFixAction(fixId13, changes, declaration.kind === 276 /* ImportSpecifier */ ? [Diagnostics.Use_type_0, (_t = ((_a = declaration.propertyName) == null ? void 0 : _a.text)) !== null && _t !== void 0 ? _t : declaration.name.text] : Diagnostics.Use_import_type, fixId13, Diagnostics.Fix_all_with_type_only_imports); - if (some(importDeclarationChanges)) { - return [ - createCodeFixActionWithoutFixAll(fixId13, importDeclarationChanges, Diagnostics.Use_import_type), - mainAction - ]; - } - return [mainAction]; - } - return void 0; - }, - fixIds: [fixId13], - getAllCodeActions: function getAllCodeActionsToConvertToTypeOnlyImport(context) { - var fixedImportDeclarations = /* @__PURE__ */ new Set(); - return codeFixAll(context, errorCodes14, function (changes, diag2) { - var errorDeclaration = getDeclaration2(diag2.file, diag2.start); - if ((errorDeclaration == null ? void 0 : errorDeclaration.kind) === 272 /* ImportDeclaration */ && !fixedImportDeclarations.has(errorDeclaration)) { - doChange11(changes, diag2.file, errorDeclaration); - fixedImportDeclarations.add(errorDeclaration); - } - else if ((errorDeclaration == null ? void 0 : errorDeclaration.kind) === 276 /* ImportSpecifier */ && !fixedImportDeclarations.has(errorDeclaration.parent.parent.parent) && canConvertImportDeclarationForSpecifier(errorDeclaration, diag2.file, context.program)) { - doChange11(changes, diag2.file, errorDeclaration.parent.parent.parent); - fixedImportDeclarations.add(errorDeclaration.parent.parent.parent); - } - else if ((errorDeclaration == null ? void 0 : errorDeclaration.kind) === 276 /* ImportSpecifier */) { - doChange11(changes, diag2.file, errorDeclaration); - } - }); - } -}); -function getDeclaration2(sourceFile, pos) { - var parent2 = getTokenAtPosition(sourceFile, pos).parent; - return isImportSpecifier(parent2) || isImportDeclaration(parent2) && parent2.importClause ? parent2 : void 0; -} -function canConvertImportDeclarationForSpecifier(specifier, sourceFile, program) { - var e_757, _t; - if (specifier.parent.parent.name) { - return false; - } - var nonTypeOnlySpecifiers = specifier.parent.elements.filter(function (e) { return !e.isTypeOnly; }); - if (nonTypeOnlySpecifiers.length === 1) { - return true; - } - var checker = program.getTypeChecker(); - try { - for (var nonTypeOnlySpecifiers_1 = __values(nonTypeOnlySpecifiers), nonTypeOnlySpecifiers_1_1 = nonTypeOnlySpecifiers_1.next(); !nonTypeOnlySpecifiers_1_1.done; nonTypeOnlySpecifiers_1_1 = nonTypeOnlySpecifiers_1.next()) { - var specifier2 = nonTypeOnlySpecifiers_1_1.value; - var isUsedAsValue = ts_FindAllReferences_exports.Core.eachSymbolReferenceInFile(specifier2.name, checker, sourceFile, function (usage) { - return !isValidTypeOnlyAliasUseSite(usage); - }); - if (isUsedAsValue) { - return false; - } - } - } - catch (e_757_1) { e_757 = { error: e_757_1 }; } - finally { - try { - if (nonTypeOnlySpecifiers_1_1 && !nonTypeOnlySpecifiers_1_1.done && (_t = nonTypeOnlySpecifiers_1.return)) _t.call(nonTypeOnlySpecifiers_1); - } - finally { if (e_757) throw e_757.error; } - } - return true; -} -function doChange11(changes, sourceFile, declaration) { - var _a; - if (isImportSpecifier(declaration)) { - changes.replaceNode(sourceFile, declaration, factory.updateImportSpecifier(declaration, - /*isTypeOnly*/ - true, declaration.propertyName, declaration.name)); - } - else { - var importClause = declaration.importClause; - if (importClause.name && importClause.namedBindings) { - changes.replaceNodeWithNodes(sourceFile, declaration, [ - factory.createImportDeclaration(getSynthesizedDeepClones(declaration.modifiers, - /*includeTrivia*/ - true), factory.createImportClause( - /*isTypeOnly*/ - true, getSynthesizedDeepClone(importClause.name, - /*includeTrivia*/ - true), - /*namedBindings*/ - void 0), getSynthesizedDeepClone(declaration.moduleSpecifier, - /*includeTrivia*/ - true), getSynthesizedDeepClone(declaration.assertClause, - /*includeTrivia*/ - true)), - factory.createImportDeclaration(getSynthesizedDeepClones(declaration.modifiers, - /*includeTrivia*/ - true), factory.createImportClause( - /*isTypeOnly*/ - true, - /*name*/ - void 0, getSynthesizedDeepClone(importClause.namedBindings, - /*includeTrivia*/ - true)), getSynthesizedDeepClone(declaration.moduleSpecifier, - /*includeTrivia*/ - true), getSynthesizedDeepClone(declaration.assertClause, - /*includeTrivia*/ - true)) - ]); - } - else { - var newNamedBindings = ((_a = importClause.namedBindings) == null ? void 0 : _a.kind) === 275 /* NamedImports */ ? factory.updateNamedImports(importClause.namedBindings, sameMap(importClause.namedBindings.elements, function (e) { return factory.updateImportSpecifier(e, - /*isTypeOnly*/ - false, e.propertyName, e.name); })) : importClause.namedBindings; - var importDeclaration = factory.updateImportDeclaration(declaration, declaration.modifiers, factory.updateImportClause(importClause, - /*isTypeOnly*/ - true, importClause.name, newNamedBindings), declaration.moduleSpecifier, declaration.assertClause); - changes.replaceNode(sourceFile, declaration, importDeclaration); - } - } -} -// src/services/codefixes/convertTypedefToType.ts -var fixId14 = "convertTypedefToType"; -var errorCodes15 = [Diagnostics.JSDoc_typedef_may_be_converted_to_TypeScript_type.code]; -registerCodeFix({ - fixIds: [fixId14], - errorCodes: errorCodes15, - getCodeActions: function (context) { - var newLineCharacter = getNewLineOrDefaultFromHost(context.host, context.formatContext.options); - var node = getTokenAtPosition(context.sourceFile, context.span.start); - if (!node) - return; - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return doChange12(t, node, context.sourceFile, newLineCharacter); }); - if (changes.length > 0) { - return [ - createCodeFixAction(fixId14, changes, Diagnostics.Convert_typedef_to_TypeScript_type, fixId14, Diagnostics.Convert_all_typedef_to_TypeScript_types) - ]; - } - }, - getAllCodeActions: function (context) { return codeFixAll(context, errorCodes15, function (changes, diag2) { - var newLineCharacter = getNewLineOrDefaultFromHost(context.host, context.formatContext.options); - var node = getTokenAtPosition(diag2.file, diag2.start); - var fixAll = true; - if (node) - doChange12(changes, node, diag2.file, newLineCharacter, fixAll); - }); } -}); -function doChange12(changes, node, sourceFile, newLine, fixAll) { - if (fixAll === void 0) { fixAll = false; } - if (!isJSDocTypedefTag(node)) - return; - var declaration = createDeclaration(node); - if (!declaration) - return; - var commentNode = node.parent; - var _t = getLeftAndRightSiblings(node), leftSibling = _t.leftSibling, rightSibling = _t.rightSibling; - var pos = commentNode.getStart(); - var prefix = ""; - if (!leftSibling && commentNode.comment) { - pos = findEndOfTextBetween(commentNode, commentNode.getStart(), node.getStart()); - prefix = "".concat(newLine, " */").concat(newLine); - } - if (leftSibling) { - if (fixAll && isJSDocTypedefTag(leftSibling)) { - pos = node.getStart(); - prefix = ""; - } - else { - pos = findEndOfTextBetween(commentNode, leftSibling.getStart(), node.getStart()); - prefix = "".concat(newLine, " */").concat(newLine); - } - } - var end = commentNode.getEnd(); - var suffix = ""; - if (rightSibling) { - if (fixAll && isJSDocTypedefTag(rightSibling)) { - end = rightSibling.getStart(); - suffix = "".concat(newLine).concat(newLine); - } - else { - end = rightSibling.getStart(); - suffix = "".concat(newLine, "/**").concat(newLine, " * "); - } - } - changes.replaceRange(sourceFile, { pos: pos, end: end }, declaration, { prefix: prefix, suffix: suffix }); -} -function getLeftAndRightSiblings(typedefNode) { - var commentNode = typedefNode.parent; - var maxChildIndex = commentNode.getChildCount() - 1; - var currentNodeIndex = commentNode.getChildren().findIndex(function (n) { return n.getStart() === typedefNode.getStart() && n.getEnd() === typedefNode.getEnd(); }); - var leftSibling = currentNodeIndex > 0 ? commentNode.getChildAt(currentNodeIndex - 1) : void 0; - var rightSibling = currentNodeIndex < maxChildIndex ? commentNode.getChildAt(currentNodeIndex + 1) : void 0; - return { leftSibling: leftSibling, rightSibling: rightSibling }; -} -function findEndOfTextBetween(jsDocComment, from, to) { - var comment = jsDocComment.getText().substring(from - jsDocComment.getStart(), to - jsDocComment.getStart()); - for (var i = comment.length; i > 0; i--) { - if (!/[*/\s]/g.test(comment.substring(i - 1, i))) { - return from + i; - } - } - return to; -} -function createDeclaration(tag) { - var _a; - var typeExpression = tag.typeExpression; - if (!typeExpression) - return; - var typeName = (_a = tag.name) == null ? void 0 : _a.getText(); - if (!typeName) - return; - if (typeExpression.kind === 329 /* JSDocTypeLiteral */) { - return createInterfaceForTypeLiteral(typeName, typeExpression); - } - if (typeExpression.kind === 316 /* JSDocTypeExpression */) { - return createTypeAliasForTypeExpression(typeName, typeExpression); - } -} -function createInterfaceForTypeLiteral(typeName, typeLiteral) { - var propertySignatures = createSignatureFromTypeLiteral(typeLiteral); - if (!some(propertySignatures)) - return; - return factory.createInterfaceDeclaration( - /*modifiers*/ - void 0, typeName, - /*typeParameters*/ - void 0, - /*heritageClauses*/ - void 0, propertySignatures); -} -function createTypeAliasForTypeExpression(typeName, typeExpression) { - var typeReference = getSynthesizedDeepClone(typeExpression.type); - if (!typeReference) - return; - return factory.createTypeAliasDeclaration( - /*modifiers*/ - void 0, factory.createIdentifier(typeName), - /*typeParameters*/ - void 0, typeReference); -} -function createSignatureFromTypeLiteral(typeLiteral) { - var propertyTags = typeLiteral.jsDocPropertyTags; - if (!some(propertyTags)) - return; - var getSignature = function (tag) { - var _a; - var name = getPropertyName(tag); - var type = (_a = tag.typeExpression) == null ? void 0 : _a.type; - var isOptional = tag.isBracketed; - var typeReference; - if (type && isJSDocTypeLiteral(type)) { - var signatures = createSignatureFromTypeLiteral(type); - typeReference = factory.createTypeLiteralNode(signatures); - } - else if (type) { - typeReference = getSynthesizedDeepClone(type); - } - if (typeReference && name) { - var questionToken = isOptional ? factory.createToken(58 /* QuestionToken */) : void 0; - return factory.createPropertySignature( - /*modifiers*/ - void 0, name, questionToken, typeReference); - } - }; - return mapDefined(propertyTags, getSignature); -} -function getPropertyName(tag) { - return tag.name.kind === 80 /* Identifier */ ? tag.name.text : tag.name.right.text; -} -function getJSDocTypedefNodes(node) { - if (hasJSDocNodes(node)) { - return flatMap(node.jsDoc, function (doc) { - var _a; - return (_a = doc.tags) == null ? void 0 : _a.filter(function (tag) { return isJSDocTypedefTag(tag); }); - }); - } - return []; -} -// src/services/codefixes/convertLiteralTypeToMappedType.ts -var fixId15 = "convertLiteralTypeToMappedType"; -var errorCodes16 = [Diagnostics._0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Did_you_mean_to_use_1_in_0.code]; -registerCodeFix({ - errorCodes: errorCodes16, - getCodeActions: function getCodeActionsToConvertLiteralTypeToMappedType(context) { - var sourceFile = context.sourceFile, span = context.span; - var info = getInfo5(sourceFile, span.start); - if (!info) { - return void 0; - } - var name = info.name, constraint = info.constraint; - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return doChange13(t, sourceFile, info); }); - return [createCodeFixAction(fixId15, changes, [Diagnostics.Convert_0_to_1_in_0, constraint, name], fixId15, Diagnostics.Convert_all_type_literals_to_mapped_type)]; - }, - fixIds: [fixId15], - getAllCodeActions: function (context) { return codeFixAll(context, errorCodes16, function (changes, diag2) { - var info = getInfo5(diag2.file, diag2.start); - if (info) { - doChange13(changes, diag2.file, info); - } - }); } -}); -function getInfo5(sourceFile, pos) { - var token = getTokenAtPosition(sourceFile, pos); - if (isIdentifier(token)) { - var propertySignature = cast(token.parent.parent, isPropertySignature); - var propertyName = token.getText(sourceFile); - return { - container: cast(propertySignature.parent, isTypeLiteralNode), - typeNode: propertySignature.type, - constraint: propertyName, - name: propertyName === "K" ? "P" : "K" - }; - } - return void 0; -} -function doChange13(changes, sourceFile, _t) { - var container = _t.container, typeNode = _t.typeNode, constraint = _t.constraint, name = _t.name; - changes.replaceNode(sourceFile, container, factory.createMappedTypeNode( - /*readonlyToken*/ - void 0, factory.createTypeParameterDeclaration( - /*modifiers*/ - void 0, name, factory.createTypeReferenceNode(constraint)), - /*nameType*/ - void 0, - /*questionToken*/ - void 0, typeNode, - /*members*/ - void 0)); -} -// src/services/codefixes/fixClassIncorrectlyImplementsInterface.ts -var errorCodes17 = [ - Diagnostics.Class_0_incorrectly_implements_interface_1.code, - Diagnostics.Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclass.code -]; -var fixId16 = "fixClassIncorrectlyImplementsInterface"; -registerCodeFix({ - errorCodes: errorCodes17, - getCodeActions: function (context) { - var sourceFile = context.sourceFile, span = context.span; - var classDeclaration = getClass(sourceFile, span.start); - return mapDefined(getEffectiveImplementsTypeNodes(classDeclaration), function (implementedTypeNode) { - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return addMissingDeclarations(context, implementedTypeNode, sourceFile, classDeclaration, t, context.preferences); }); - return changes.length === 0 ? void 0 : createCodeFixAction(fixId16, changes, [Diagnostics.Implement_interface_0, implementedTypeNode.getText(sourceFile)], fixId16, Diagnostics.Implement_all_unimplemented_interfaces); - }); - }, - fixIds: [fixId16], - getAllCodeActions: function (context) { - var seenClassDeclarations = /* @__PURE__ */ new Map(); - return codeFixAll(context, errorCodes17, function (changes, diag2) { - var e_758, _t; - var classDeclaration = getClass(diag2.file, diag2.start); - if (addToSeen(seenClassDeclarations, getNodeId(classDeclaration))) { - try { - for (var _u = __values(getEffectiveImplementsTypeNodes(classDeclaration)), _v = _u.next(); !_v.done; _v = _u.next()) { - var implementedTypeNode = _v.value; - addMissingDeclarations(context, implementedTypeNode, diag2.file, classDeclaration, changes, context.preferences); - } - } - catch (e_758_1) { e_758 = { error: e_758_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_758) throw e_758.error; } - } - } - }); - } -}); -function getClass(sourceFile, pos) { - return Debug.checkDefined(getContainingClass(getTokenAtPosition(sourceFile, pos)), "There should be a containing class"); -} -function symbolPointsToNonPrivateMember(symbol) { - return !symbol.valueDeclaration || !(getEffectiveModifierFlags(symbol.valueDeclaration) & 8 /* Private */); -} -function addMissingDeclarations(context, implementedTypeNode, sourceFile, classDeclaration, changeTracker, preferences) { - var checker = context.program.getTypeChecker(); - var maybeHeritageClauseSymbol = getHeritageClauseSymbolTable(classDeclaration, checker); - var implementedType = checker.getTypeAtLocation(implementedTypeNode); - var implementedTypeSymbols = checker.getPropertiesOfType(implementedType); - var nonPrivateAndNotExistedInHeritageClauseMembers = implementedTypeSymbols.filter(and(symbolPointsToNonPrivateMember, function (symbol) { return !maybeHeritageClauseSymbol.has(symbol.escapedName); })); - var classType = checker.getTypeAtLocation(classDeclaration); - var constructor = find(classDeclaration.members, function (m) { return isConstructorDeclaration(m); }); - if (!classType.getNumberIndexType()) { - createMissingIndexSignatureDeclaration(implementedType, 1 /* Number */); - } - if (!classType.getStringIndexType()) { - createMissingIndexSignatureDeclaration(implementedType, 0 /* String */); - } - var importAdder = createImportAdder(sourceFile, context.program, preferences, context.host); - createMissingMemberNodes(classDeclaration, nonPrivateAndNotExistedInHeritageClauseMembers, sourceFile, context, preferences, importAdder, function (member) { return insertInterfaceMemberNode(sourceFile, classDeclaration, member); }); - importAdder.writeFixes(changeTracker); - function createMissingIndexSignatureDeclaration(type, kind) { - var indexInfoOfKind = checker.getIndexInfoOfType(type, kind); - if (indexInfoOfKind) { - insertInterfaceMemberNode(sourceFile, classDeclaration, checker.indexInfoToIndexSignatureDeclaration(indexInfoOfKind, classDeclaration, - /*flags*/ - void 0, getNoopSymbolTrackerWithResolver(context))); - } - } - function insertInterfaceMemberNode(sourceFile2, cls, newElement) { - if (constructor) { - changeTracker.insertNodeAfter(sourceFile2, constructor, newElement); - } - else { - changeTracker.insertMemberAtStart(sourceFile2, cls, newElement); - } - } -} -function getHeritageClauseSymbolTable(classDeclaration, checker) { - var heritageClauseNode = getEffectiveBaseTypeNode(classDeclaration); - if (!heritageClauseNode) - return createSymbolTable(); - var heritageClauseType = checker.getTypeAtLocation(heritageClauseNode); - var heritageClauseTypeSymbols = checker.getPropertiesOfType(heritageClauseType); - return createSymbolTable(heritageClauseTypeSymbols.filter(symbolPointsToNonPrivateMember)); -} -// src/services/codefixes/importFixes.ts -var importFixName = "import"; -var importFixId = "fixMissingImport"; -var errorCodes18 = [ - Diagnostics.Cannot_find_name_0.code, - Diagnostics.Cannot_find_name_0_Did_you_mean_1.code, - Diagnostics.Cannot_find_name_0_Did_you_mean_the_instance_member_this_0.code, - Diagnostics.Cannot_find_name_0_Did_you_mean_the_static_member_1_0.code, - Diagnostics.Cannot_find_namespace_0.code, - Diagnostics._0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead.code, - Diagnostics._0_only_refers_to_a_type_but_is_being_used_as_a_value_here.code, - Diagnostics.No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer.code, - Diagnostics._0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type.code -]; -registerCodeFix({ - errorCodes: errorCodes18, - getCodeActions: function (context) { - var errorCode = context.errorCode, preferences = context.preferences, sourceFile = context.sourceFile, span = context.span, program = context.program; - var info = getFixInfos(context, errorCode, span.start, - /*useAutoImportProvider*/ - true); - if (!info) - return void 0; - return info.map(function (_t) { - var fix = _t.fix, symbolName2 = _t.symbolName, errorIdentifierText = _t.errorIdentifierText; - return codeActionForFix(context, sourceFile, symbolName2, fix, - /*includeSymbolNameInDescription*/ - symbolName2 !== errorIdentifierText, program.getCompilerOptions(), preferences); - }); - }, - fixIds: [importFixId], - getAllCodeActions: function (context) { - var sourceFile = context.sourceFile, program = context.program, preferences = context.preferences, host = context.host, cancellationToken = context.cancellationToken; - var importAdder = createImportAdderWorker(sourceFile, program, - /*useAutoImportProvider*/ - true, preferences, host, cancellationToken); - eachDiagnostic(context, errorCodes18, function (diag2) { return importAdder.addImportFromDiagnostic(diag2, context); }); - return createCombinedCodeActions(ts_textChanges_exports.ChangeTracker.with(context, importAdder.writeFixes)); - } -}); -function createImportAdder(sourceFile, program, preferences, host, cancellationToken) { - return createImportAdderWorker(sourceFile, program, - /*useAutoImportProvider*/ - false, preferences, host, cancellationToken); -} -function createImportAdderWorker(sourceFile, program, useAutoImportProvider, preferences, host, cancellationToken) { - var compilerOptions = program.getCompilerOptions(); - var addToNamespace = []; - var importType = []; - var addToExisting = /* @__PURE__ */ new Map(); - var newImports = /* @__PURE__ */ new Map(); - return { addImportFromDiagnostic: addImportFromDiagnostic, addImportFromExportedSymbol: addImportFromExportedSymbol, writeFixes: writeFixes, hasFixes: hasFixes }; - function addImportFromDiagnostic(diagnostic, context) { - var info = getFixInfos(context, diagnostic.code, diagnostic.start, useAutoImportProvider); - if (!info || !info.length) - return; - addImport(first(info)); - } - function addImportFromExportedSymbol(exportedSymbol, isValidTypeOnlyUseSite) { - var moduleSymbol = Debug.checkDefined(exportedSymbol.parent); - var symbolName2 = getNameForExportedSymbol(exportedSymbol, getEmitScriptTarget(compilerOptions)); - var checker = program.getTypeChecker(); - var symbol = checker.getMergedSymbol(skipAlias(exportedSymbol, checker)); - var exportInfo = getAllExportInfoForSymbol(sourceFile, symbol, symbolName2, moduleSymbol, - /*preferCapitalized*/ - false, program, host, preferences, cancellationToken); - var useRequire = shouldUseRequire(sourceFile, program); - var fix = getImportFixForSymbol(sourceFile, Debug.checkDefined(exportInfo), program, - /*position*/ - void 0, !!isValidTypeOnlyUseSite, useRequire, host, preferences); - if (fix) { - addImport({ fix: fix, symbolName: symbolName2, errorIdentifierText: void 0 }); - } - } - function addImport(info) { - var _a, _b; - var fix = info.fix, symbolName2 = info.symbolName; - switch (fix.kind) { - case 0 /* UseNamespace */: - addToNamespace.push(fix); - break; - case 1 /* JsdocTypeImport */: - importType.push(fix); - break; - case 2 /* AddToExisting */: { - var importClauseOrBindingPattern = fix.importClauseOrBindingPattern, importKind = fix.importKind, addAsTypeOnly = fix.addAsTypeOnly; - var key = String(getNodeId(importClauseOrBindingPattern)); - var entry = addToExisting.get(key); - if (!entry) { - addToExisting.set(key, entry = { importClauseOrBindingPattern: importClauseOrBindingPattern, defaultImport: void 0, namedImports: /* @__PURE__ */ new Map() }); - } - if (importKind === 0 /* Named */) { - var prevValue = entry == null ? void 0 : entry.namedImports.get(symbolName2); - entry.namedImports.set(symbolName2, reduceAddAsTypeOnlyValues(prevValue, addAsTypeOnly)); - } - else { - Debug.assert(entry.defaultImport === void 0 || entry.defaultImport.name === symbolName2, "(Add to Existing) Default import should be missing or match symbolName"); - entry.defaultImport = { - name: symbolName2, - addAsTypeOnly: reduceAddAsTypeOnlyValues((_a = entry.defaultImport) == null ? void 0 : _a.addAsTypeOnly, addAsTypeOnly) - }; - } - break; - } - case 3 /* AddNew */: { - var moduleSpecifier = fix.moduleSpecifier, importKind = fix.importKind, useRequire = fix.useRequire, addAsTypeOnly = fix.addAsTypeOnly; - var entry = getNewImportEntry(moduleSpecifier, importKind, useRequire, addAsTypeOnly); - Debug.assert(entry.useRequire === useRequire, "(Add new) Tried to add an `import` and a `require` for the same module"); - switch (importKind) { - case 1 /* Default */: - Debug.assert(entry.defaultImport === void 0 || entry.defaultImport.name === symbolName2, "(Add new) Default import should be missing or match symbolName"); - entry.defaultImport = { name: symbolName2, addAsTypeOnly: reduceAddAsTypeOnlyValues((_b = entry.defaultImport) == null ? void 0 : _b.addAsTypeOnly, addAsTypeOnly) }; - break; - case 0 /* Named */: - var prevValue = (entry.namedImports || (entry.namedImports = /* @__PURE__ */ new Map())).get(symbolName2); - entry.namedImports.set(symbolName2, reduceAddAsTypeOnlyValues(prevValue, addAsTypeOnly)); - break; - case 3 /* CommonJS */: - case 2 /* Namespace */: - Debug.assert(entry.namespaceLikeImport === void 0 || entry.namespaceLikeImport.name === symbolName2, "Namespacelike import shoudl be missing or match symbolName"); - entry.namespaceLikeImport = { importKind: importKind, name: symbolName2, addAsTypeOnly: addAsTypeOnly }; - break; - } - break; - } - case 4 /* PromoteTypeOnly */: - break; - default: - Debug.assertNever(fix, "fix wasn't never - got kind ".concat(fix.kind)); - } - function reduceAddAsTypeOnlyValues(prevValue, newValue) { - return Math.max(prevValue !== null && prevValue !== void 0 ? prevValue : 0, newValue); - } - function getNewImportEntry(moduleSpecifier, importKind, useRequire, addAsTypeOnly) { - var typeOnlyKey = newImportsKey(moduleSpecifier, - /*topLevelTypeOnly*/ - true); - var nonTypeOnlyKey = newImportsKey(moduleSpecifier, - /*topLevelTypeOnly*/ - false); - var typeOnlyEntry = newImports.get(typeOnlyKey); - var nonTypeOnlyEntry = newImports.get(nonTypeOnlyKey); - var newEntry = { - defaultImport: void 0, - namedImports: void 0, - namespaceLikeImport: void 0, - useRequire: useRequire - }; - if (importKind === 1 /* Default */ && addAsTypeOnly === 2 /* Required */) { - if (typeOnlyEntry) - return typeOnlyEntry; - newImports.set(typeOnlyKey, newEntry); - return newEntry; - } - if (addAsTypeOnly === 1 /* Allowed */ && (typeOnlyEntry || nonTypeOnlyEntry)) { - return typeOnlyEntry || nonTypeOnlyEntry; - } - if (nonTypeOnlyEntry) { - return nonTypeOnlyEntry; - } - newImports.set(nonTypeOnlyKey, newEntry); - return newEntry; - } - function newImportsKey(moduleSpecifier, topLevelTypeOnly) { - return "".concat(topLevelTypeOnly ? 1 : 0, "|").concat(moduleSpecifier); - } - } - function writeFixes(changeTracker, oldFileQuotePreference) { - var e_759, _t, e_760, _u; - var quotePreference; - if (sourceFile.imports.length === 0 && oldFileQuotePreference !== void 0) { - quotePreference = oldFileQuotePreference; - } - else { - quotePreference = getQuotePreference(sourceFile, preferences); - } - try { - for (var addToNamespace_1 = __values(addToNamespace), addToNamespace_1_1 = addToNamespace_1.next(); !addToNamespace_1_1.done; addToNamespace_1_1 = addToNamespace_1.next()) { - var fix = addToNamespace_1_1.value; - addNamespaceQualifier(changeTracker, sourceFile, fix); - } - } - catch (e_759_1) { e_759 = { error: e_759_1 }; } - finally { - try { - if (addToNamespace_1_1 && !addToNamespace_1_1.done && (_t = addToNamespace_1.return)) _t.call(addToNamespace_1); - } - finally { if (e_759) throw e_759.error; } - } - try { - for (var importType_1 = __values(importType), importType_1_1 = importType_1.next(); !importType_1_1.done; importType_1_1 = importType_1.next()) { - var fix = importType_1_1.value; - addImportType(changeTracker, sourceFile, fix, quotePreference); - } - } - catch (e_760_1) { e_760 = { error: e_760_1 }; } - finally { - try { - if (importType_1_1 && !importType_1_1.done && (_u = importType_1.return)) _u.call(importType_1); - } - finally { if (e_760) throw e_760.error; } - } - addToExisting.forEach(function (_t) { - var importClauseOrBindingPattern = _t.importClauseOrBindingPattern, defaultImport = _t.defaultImport, namedImports = _t.namedImports; - doAddExistingFix(changeTracker, sourceFile, importClauseOrBindingPattern, defaultImport, arrayFrom(namedImports.entries(), function (_t) { - var _u = __read(_t, 2), name = _u[0], addAsTypeOnly = _u[1]; - return ({ addAsTypeOnly: addAsTypeOnly, name: name }); - }), preferences); - }); - var newDeclarations; - newImports.forEach(function (_t, key) { - var useRequire = _t.useRequire, defaultImport = _t.defaultImport, namedImports = _t.namedImports, namespaceLikeImport = _t.namespaceLikeImport; - var moduleSpecifier = key.slice(2); - var getDeclarations = useRequire ? getNewRequires : getNewImports; - var declarations = getDeclarations(moduleSpecifier, quotePreference, defaultImport, namedImports && arrayFrom(namedImports.entries(), function (_t) { - var _u = __read(_t, 2), name = _u[0], addAsTypeOnly = _u[1]; - return ({ addAsTypeOnly: addAsTypeOnly, name: name }); - }), namespaceLikeImport, compilerOptions); - newDeclarations = combine(newDeclarations, declarations); - }); - if (newDeclarations) { - insertImports(changeTracker, sourceFile, newDeclarations, - /*blankLineBetween*/ - true, preferences); - } - } - function hasFixes() { - return addToNamespace.length > 0 || importType.length > 0 || addToExisting.size > 0 || newImports.size > 0; - } -} -function createImportSpecifierResolver(importingFile, program, host, preferences) { - var packageJsonImportFilter = createPackageJsonImportFilter(importingFile, preferences, host); - var importMap = createExistingImportMap(program.getTypeChecker(), importingFile, program.getCompilerOptions()); - return { getModuleSpecifierForBestExportInfo: getModuleSpecifierForBestExportInfo }; - function getModuleSpecifierForBestExportInfo(exportInfo, position, isValidTypeOnlyUseSite, fromCacheOnly) { - var _t = getImportFixes(exportInfo, position, isValidTypeOnlyUseSite, - /*useRequire*/ - false, program, importingFile, host, preferences, importMap, fromCacheOnly), fixes = _t.fixes, computedWithoutCacheCount = _t.computedWithoutCacheCount; - var result = getBestFix(fixes, importingFile, program, packageJsonImportFilter, host); - return result && __assign(__assign({}, result), { computedWithoutCacheCount: computedWithoutCacheCount }); - } -} -function getImportCompletionAction(targetSymbol, moduleSymbol, exportMapKey, sourceFile, symbolName2, isJsxTagName, host, program, formatContext, position, preferences, cancellationToken) { - var compilerOptions = program.getCompilerOptions(); - var exportInfos; - if (exportMapKey) { - exportInfos = getExportInfoMap(sourceFile, host, program, preferences, cancellationToken).get(sourceFile.path, exportMapKey); - Debug.assertIsDefined(exportInfos, "Some exportInfo should match the specified exportMapKey"); - } - else { - exportInfos = pathIsBareSpecifier(stripQuotes(moduleSymbol.name)) ? [getSingleExportInfoForSymbol(targetSymbol, symbolName2, moduleSymbol, program, host)] : getAllExportInfoForSymbol(sourceFile, targetSymbol, symbolName2, moduleSymbol, isJsxTagName, program, host, preferences, cancellationToken); - Debug.assertIsDefined(exportInfos, "Some exportInfo should match the specified symbol / moduleSymbol"); - } - var useRequire = shouldUseRequire(sourceFile, program); - var isValidTypeOnlyUseSite = isValidTypeOnlyAliasUseSite(getTokenAtPosition(sourceFile, position)); - var fix = Debug.checkDefined(getImportFixForSymbol(sourceFile, exportInfos, program, position, isValidTypeOnlyUseSite, useRequire, host, preferences)); - return { - moduleSpecifier: fix.moduleSpecifier, - codeAction: codeFixActionToCodeAction(codeActionForFix({ host: host, formatContext: formatContext, preferences: preferences }, sourceFile, symbolName2, fix, - /*includeSymbolNameInDescription*/ - false, compilerOptions, preferences)) - }; -} -function getPromoteTypeOnlyCompletionAction(sourceFile, symbolToken, program, host, formatContext, preferences) { - var compilerOptions = program.getCompilerOptions(); - var symbolName2 = single(getSymbolNamesToImport(sourceFile, program.getTypeChecker(), symbolToken, compilerOptions)); - var fix = getTypeOnlyPromotionFix(sourceFile, symbolToken, symbolName2, program); - var includeSymbolNameInDescription = symbolName2 !== symbolToken.text; - return fix && codeFixActionToCodeAction(codeActionForFix({ host: host, formatContext: formatContext, preferences: preferences }, sourceFile, symbolName2, fix, includeSymbolNameInDescription, compilerOptions, preferences)); -} -function getImportFixForSymbol(sourceFile, exportInfos, program, position, isValidTypeOnlyUseSite, useRequire, host, preferences) { - var packageJsonImportFilter = createPackageJsonImportFilter(sourceFile, preferences, host); - return getBestFix(getImportFixes(exportInfos, position, isValidTypeOnlyUseSite, useRequire, program, sourceFile, host, preferences).fixes, sourceFile, program, packageJsonImportFilter, host); -} -function codeFixActionToCodeAction(_t) { - var description3 = _t.description, changes = _t.changes, commands = _t.commands; - return { description: description3, changes: changes, commands: commands }; -} -function getAllExportInfoForSymbol(importingFile, symbol, symbolName2, moduleSymbol, preferCapitalized, program, host, preferences, cancellationToken) { - var getChecker = createGetChecker(program, host); - return getExportInfoMap(importingFile, host, program, preferences, cancellationToken).search(importingFile.path, preferCapitalized, function (name) { return name === symbolName2; }, function (info) { - if (skipAlias(info[0].symbol, getChecker(info[0].isFromPackageJson)) === symbol && info.some(function (i) { return i.moduleSymbol === moduleSymbol || i.symbol.parent === moduleSymbol; })) { - return info; - } - }); -} -function getSingleExportInfoForSymbol(symbol, symbolName2, moduleSymbol, program, host) { - var _a, _b; - var compilerOptions = program.getCompilerOptions(); - var mainProgramInfo = getInfoWithChecker(program.getTypeChecker(), - /*isFromPackageJson*/ - false); - if (mainProgramInfo) { - return mainProgramInfo; - } - var autoImportProvider = (_b = (_a = host.getPackageJsonAutoImportProvider) == null ? void 0 : _a.call(host)) == null ? void 0 : _b.getTypeChecker(); - return Debug.checkDefined(autoImportProvider && getInfoWithChecker(autoImportProvider, - /*isFromPackageJson*/ - true), "Could not find symbol in specified module for code actions"); - function getInfoWithChecker(checker, isFromPackageJson) { - var defaultInfo = getDefaultLikeExportInfo(moduleSymbol, checker, compilerOptions); - if (defaultInfo && skipAlias(defaultInfo.symbol, checker) === symbol) { - return { symbol: defaultInfo.symbol, moduleSymbol: moduleSymbol, moduleFileName: void 0, exportKind: defaultInfo.exportKind, targetFlags: skipAlias(symbol, checker).flags, isFromPackageJson: isFromPackageJson }; - } - var named = checker.tryGetMemberInModuleExportsAndProperties(symbolName2, moduleSymbol); - if (named && skipAlias(named, checker) === symbol) { - return { symbol: named, moduleSymbol: moduleSymbol, moduleFileName: void 0, exportKind: 0 /* Named */, targetFlags: skipAlias(symbol, checker).flags, isFromPackageJson: isFromPackageJson }; - } - } -} -function getImportFixes(exportInfos, usagePosition, isValidTypeOnlyUseSite, useRequire, program, sourceFile, host, preferences, importMap, fromCacheOnly) { - if (importMap === void 0) { importMap = createExistingImportMap(program.getTypeChecker(), sourceFile, program.getCompilerOptions()); } - var checker = program.getTypeChecker(); - var existingImports = flatMap(exportInfos, importMap.getImportsForExportInfo); - var useNamespace = usagePosition !== void 0 && tryUseExistingNamespaceImport(existingImports, usagePosition); - var addToExisting = tryAddToExistingImport(existingImports, isValidTypeOnlyUseSite, checker, program.getCompilerOptions()); - if (addToExisting) { - return { - computedWithoutCacheCount: 0, - fixes: __spreadArray(__spreadArray([], __read(useNamespace ? [useNamespace] : emptyArray), false), [addToExisting], false) - }; - } - var _t = getFixesForAddImport(exportInfos, existingImports, program, sourceFile, usagePosition, isValidTypeOnlyUseSite, useRequire, host, preferences, fromCacheOnly), fixes = _t.fixes, _u = _t.computedWithoutCacheCount, computedWithoutCacheCount = _u === void 0 ? 0 : _u; - return { - computedWithoutCacheCount: computedWithoutCacheCount, - fixes: __spreadArray(__spreadArray([], __read(useNamespace ? [useNamespace] : emptyArray), false), __read(fixes), false) - }; -} -function tryUseExistingNamespaceImport(existingImports, position) { - return firstDefined(existingImports, function (_t) { - var declaration = _t.declaration, importKind = _t.importKind; - var _a; - if (importKind !== 0 /* Named */) - return void 0; - var namespacePrefix = getNamespaceLikeImportText(declaration); - var moduleSpecifier = namespacePrefix && ((_a = tryGetModuleSpecifierFromDeclaration(declaration)) == null ? void 0 : _a.text); - if (moduleSpecifier) { - return { kind: 0 /* UseNamespace */, namespacePrefix: namespacePrefix, usagePosition: position, moduleSpecifier: moduleSpecifier }; - } - }); -} -function getNamespaceLikeImportText(declaration) { - var _a, _b, _c; - switch (declaration.kind) { - case 260 /* VariableDeclaration */: - return (_a = tryCast(declaration.name, isIdentifier)) == null ? void 0 : _a.text; - case 271 /* ImportEqualsDeclaration */: - return declaration.name.text; - case 272 /* ImportDeclaration */: - return (_c = tryCast((_b = declaration.importClause) == null ? void 0 : _b.namedBindings, isNamespaceImport)) == null ? void 0 : _c.name.text; - default: - return Debug.assertNever(declaration); - } -} -function getAddAsTypeOnly(isValidTypeOnlyUseSite, isForNewImportDeclaration, symbol, targetFlags, checker, compilerOptions) { - if (!isValidTypeOnlyUseSite) { - return 4 /* NotAllowed */; - } - if (isForNewImportDeclaration && compilerOptions.importsNotUsedAsValues === 2 /* Error */) { - return 2 /* Required */; - } - if (importNameElisionDisabled(compilerOptions) && (!(targetFlags & 111551 /* Value */) || !!checker.getTypeOnlyAliasDeclaration(symbol))) { - return 2 /* Required */; - } - return 1 /* Allowed */; -} -function tryAddToExistingImport(existingImports, isValidTypeOnlyUseSite, checker, compilerOptions) { - var e_761, _t; - var best; - try { - for (var existingImports_1 = __values(existingImports), existingImports_1_1 = existingImports_1.next(); !existingImports_1_1.done; existingImports_1_1 = existingImports_1.next()) { - var existingImport = existingImports_1_1.value; - var fix = getAddToExistingImportFix(existingImport); - if (!fix) - continue; - var isTypeOnly = isTypeOnlyImportDeclaration(fix.importClauseOrBindingPattern); - if (fix.addAsTypeOnly !== 4 /* NotAllowed */ && isTypeOnly || fix.addAsTypeOnly === 4 /* NotAllowed */ && !isTypeOnly) { - return fix; - } - best !== null && best !== void 0 ? best : (best = fix); - } - } - catch (e_761_1) { e_761 = { error: e_761_1 }; } - finally { - try { - if (existingImports_1_1 && !existingImports_1_1.done && (_t = existingImports_1.return)) _t.call(existingImports_1); - } - finally { if (e_761) throw e_761.error; } - } - return best; - function getAddToExistingImportFix(_t) { - var declaration = _t.declaration, importKind = _t.importKind, symbol = _t.symbol, targetFlags = _t.targetFlags; - if (importKind === 3 /* CommonJS */ || importKind === 2 /* Namespace */ || declaration.kind === 271 /* ImportEqualsDeclaration */) { - return void 0; - } - if (declaration.kind === 260 /* VariableDeclaration */) { - return (importKind === 0 /* Named */ || importKind === 1 /* Default */) && declaration.name.kind === 206 /* ObjectBindingPattern */ ? { kind: 2 /* AddToExisting */, importClauseOrBindingPattern: declaration.name, importKind: importKind, moduleSpecifier: declaration.initializer.arguments[0].text, addAsTypeOnly: 4 /* NotAllowed */ } : void 0; - } - var importClause = declaration.importClause; - if (!importClause || !isStringLiteralLike(declaration.moduleSpecifier)) { - return void 0; - } - var name = importClause.name, namedBindings = importClause.namedBindings; - if (importClause.isTypeOnly && !(importKind === 0 /* Named */ && namedBindings)) { - return void 0; - } - var addAsTypeOnly = getAddAsTypeOnly(isValidTypeOnlyUseSite, - /*isForNewImportDeclaration*/ - false, symbol, targetFlags, checker, compilerOptions); - if (importKind === 1 /* Default */ && (name || // Cannot add a default import to a declaration that already has one - addAsTypeOnly === 2 /* Required */ && namedBindings)) { - return void 0; - } - if (importKind === 0 /* Named */ && (namedBindings == null ? void 0 : namedBindings.kind) === 274 /* NamespaceImport */) { - return void 0; - } - return { - kind: 2 /* AddToExisting */, - importClauseOrBindingPattern: importClause, - importKind: importKind, - moduleSpecifier: declaration.moduleSpecifier.text, - addAsTypeOnly: addAsTypeOnly - }; - } -} -function createExistingImportMap(checker, importingFile, compilerOptions) { - var e_762, _t; - var importMap; - try { - for (var _u = __values(importingFile.imports), _v = _u.next(); !_v.done; _v = _u.next()) { - var moduleSpecifier = _v.value; - var i = importFromModuleSpecifier(moduleSpecifier); - if (isVariableDeclarationInitializedToRequire(i.parent)) { - var moduleSymbol = checker.resolveExternalModuleName(moduleSpecifier); - if (moduleSymbol) { - (importMap || (importMap = createMultiMap())).add(getSymbolId(moduleSymbol), i.parent); - } - } - else if (i.kind === 272 /* ImportDeclaration */ || i.kind === 271 /* ImportEqualsDeclaration */) { - var moduleSymbol = checker.getSymbolAtLocation(moduleSpecifier); - if (moduleSymbol) { - (importMap || (importMap = createMultiMap())).add(getSymbolId(moduleSymbol), i); - } - } - } - } - catch (e_762_1) { e_762 = { error: e_762_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_762) throw e_762.error; } - } - return { - getImportsForExportInfo: function (_t) { - var moduleSymbol = _t.moduleSymbol, exportKind = _t.exportKind, targetFlags = _t.targetFlags, symbol = _t.symbol; - if (!(targetFlags & 111551 /* Value */) && isSourceFileJS(importingFile)) - return emptyArray; - var matchingDeclarations = importMap == null ? void 0 : importMap.get(getSymbolId(moduleSymbol)); - if (!matchingDeclarations) - return emptyArray; - var importKind = getImportKind(importingFile, exportKind, compilerOptions); - return matchingDeclarations.map(function (declaration) { return ({ declaration: declaration, importKind: importKind, symbol: symbol, targetFlags: targetFlags }); }); - } - }; -} -function shouldUseRequire(sourceFile, program) { - var e_763, _t; - if (!isSourceFileJS(sourceFile)) { - return false; - } - if (sourceFile.commonJsModuleIndicator && !sourceFile.externalModuleIndicator) - return true; - if (sourceFile.externalModuleIndicator && !sourceFile.commonJsModuleIndicator) - return false; - var compilerOptions = program.getCompilerOptions(); - if (compilerOptions.configFile) { - return getEmitModuleKind(compilerOptions) < 5 /* ES2015 */; - } - if (sourceFile.impliedNodeFormat === 1 /* CommonJS */) - return true; - if (sourceFile.impliedNodeFormat === 99 /* ESNext */) - return false; - try { - for (var _u = __values(program.getSourceFiles()), _v = _u.next(); !_v.done; _v = _u.next()) { - var otherFile = _v.value; - if (otherFile === sourceFile || !isSourceFileJS(otherFile) || program.isSourceFileFromExternalLibrary(otherFile)) - continue; - if (otherFile.commonJsModuleIndicator && !otherFile.externalModuleIndicator) - return true; - if (otherFile.externalModuleIndicator && !otherFile.commonJsModuleIndicator) - return false; - } - } - catch (e_763_1) { e_763 = { error: e_763_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_763) throw e_763.error; } - } - return true; -} -function createGetChecker(program, host) { - return memoizeOne(function (isFromPackageJson) { return isFromPackageJson ? host.getPackageJsonAutoImportProvider().getTypeChecker() : program.getTypeChecker(); }); -} -function getNewImportFixes(program, sourceFile, usagePosition, isValidTypeOnlyUseSite, useRequire, exportInfo, host, preferences, fromCacheOnly) { - var isJs = isSourceFileJS(sourceFile); - var compilerOptions = program.getCompilerOptions(); - var moduleSpecifierResolutionHost = createModuleSpecifierResolutionHost(program, host); - var getChecker = createGetChecker(program, host); - var moduleResolution = getEmitModuleResolutionKind(compilerOptions); - var rejectNodeModulesRelativePaths = moduleResolutionUsesNodeModules(moduleResolution); - var getModuleSpecifiers2 = fromCacheOnly ? function (moduleSymbol) { return ({ moduleSpecifiers: ts_moduleSpecifiers_exports.tryGetModuleSpecifiersFromCache(moduleSymbol, sourceFile, moduleSpecifierResolutionHost, preferences), computedWithoutCache: false }); } : function (moduleSymbol, checker) { return ts_moduleSpecifiers_exports.getModuleSpecifiersWithCacheInfo(moduleSymbol, checker, compilerOptions, sourceFile, moduleSpecifierResolutionHost, preferences); }; - var computedWithoutCacheCount = 0; - var fixes = flatMap(exportInfo, function (exportInfo2, i) { - var checker = getChecker(exportInfo2.isFromPackageJson); - var _t = getModuleSpecifiers2(exportInfo2.moduleSymbol, checker), computedWithoutCache = _t.computedWithoutCache, moduleSpecifiers = _t.moduleSpecifiers; - var importedSymbolHasValueMeaning = !!(exportInfo2.targetFlags & 111551 /* Value */); - var addAsTypeOnly = getAddAsTypeOnly(isValidTypeOnlyUseSite, - /*isForNewImportDeclaration*/ - true, exportInfo2.symbol, exportInfo2.targetFlags, checker, compilerOptions); - computedWithoutCacheCount += computedWithoutCache ? 1 : 0; - return mapDefined(moduleSpecifiers, function (moduleSpecifier) { - var _a; - if (rejectNodeModulesRelativePaths && pathContainsNodeModules(moduleSpecifier)) { - return void 0; - } - if (!importedSymbolHasValueMeaning && isJs && usagePosition !== void 0) { - return { kind: 1 /* JsdocTypeImport */, moduleSpecifier: moduleSpecifier, usagePosition: usagePosition, exportInfo: exportInfo2, isReExport: i > 0 }; - } - var importKind = getImportKind(sourceFile, exportInfo2.exportKind, compilerOptions); - var qualification; - if (usagePosition !== void 0 && importKind === 3 /* CommonJS */ && exportInfo2.exportKind === 0 /* Named */) { - var exportEquals = checker.resolveExternalModuleSymbol(exportInfo2.moduleSymbol); - var namespacePrefix = void 0; - if (exportEquals !== exportInfo2.moduleSymbol) { - namespacePrefix = (_a = getDefaultExportInfoWorker(exportEquals, checker, compilerOptions)) == null ? void 0 : _a.name; - } - namespacePrefix || (namespacePrefix = moduleSymbolToValidIdentifier(exportInfo2.moduleSymbol, getEmitScriptTarget(compilerOptions), - /*forceCapitalize*/ - false)); - qualification = { namespacePrefix: namespacePrefix, usagePosition: usagePosition }; - } - return { - kind: 3 /* AddNew */, - moduleSpecifier: moduleSpecifier, - importKind: importKind, - useRequire: useRequire, - addAsTypeOnly: addAsTypeOnly, - exportInfo: exportInfo2, - isReExport: i > 0, - qualification: qualification - }; - }); - }); - return { computedWithoutCacheCount: computedWithoutCacheCount, fixes: fixes }; -} -function getFixesForAddImport(exportInfos, existingImports, program, sourceFile, usagePosition, isValidTypeOnlyUseSite, useRequire, host, preferences, fromCacheOnly) { - var existingDeclaration = firstDefined(existingImports, function (info) { return newImportInfoFromExistingSpecifier(info, isValidTypeOnlyUseSite, useRequire, program.getTypeChecker(), program.getCompilerOptions()); }); - return existingDeclaration ? { fixes: [existingDeclaration] } : getNewImportFixes(program, sourceFile, usagePosition, isValidTypeOnlyUseSite, useRequire, exportInfos, host, preferences, fromCacheOnly); -} -function newImportInfoFromExistingSpecifier(_t, isValidTypeOnlyUseSite, useRequire, checker, compilerOptions) { - var declaration = _t.declaration, importKind = _t.importKind, symbol = _t.symbol, targetFlags = _t.targetFlags; - var _a; - var moduleSpecifier = (_a = tryGetModuleSpecifierFromDeclaration(declaration)) == null ? void 0 : _a.text; - if (moduleSpecifier) { - var addAsTypeOnly = useRequire ? 4 /* NotAllowed */ : getAddAsTypeOnly(isValidTypeOnlyUseSite, - /*isForNewImportDeclaration*/ - true, symbol, targetFlags, checker, compilerOptions); - return { kind: 3 /* AddNew */, moduleSpecifier: moduleSpecifier, importKind: importKind, addAsTypeOnly: addAsTypeOnly, useRequire: useRequire }; - } -} -function getFixInfos(context, errorCode, pos, useAutoImportProvider) { - var symbolToken = getTokenAtPosition(context.sourceFile, pos); - var info; - if (errorCode === Diagnostics._0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead.code) { - info = getFixesInfoForUMDImport(context, symbolToken); - } - else if (!isIdentifier(symbolToken)) { - return void 0; - } - else if (errorCode === Diagnostics._0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type.code) { - var symbolName2 = single(getSymbolNamesToImport(context.sourceFile, context.program.getTypeChecker(), symbolToken, context.program.getCompilerOptions())); - var fix = getTypeOnlyPromotionFix(context.sourceFile, symbolToken, symbolName2, context.program); - return fix && [{ fix: fix, symbolName: symbolName2, errorIdentifierText: symbolToken.text }]; - } - else { - info = getFixesInfoForNonUMDImport(context, symbolToken, useAutoImportProvider); - } - var packageJsonImportFilter = createPackageJsonImportFilter(context.sourceFile, context.preferences, context.host); - return info && sortFixInfo(info, context.sourceFile, context.program, packageJsonImportFilter, context.host); -} -function sortFixInfo(fixes, sourceFile, program, packageJsonImportFilter, host) { - var _toPath = function (fileName) { return toPath(fileName, host.getCurrentDirectory(), hostGetCanonicalFileName(host)); }; - return sort(fixes, function (a, b) { return compareBooleans(!!a.isJsxNamespaceFix, !!b.isJsxNamespaceFix) || compareValues(a.fix.kind, b.fix.kind) || compareModuleSpecifiers(a.fix, b.fix, sourceFile, program, packageJsonImportFilter.allowsImportingSpecifier, _toPath); }); -} -function getBestFix(fixes, sourceFile, program, packageJsonImportFilter, host) { - if (!some(fixes)) - return; - if (fixes[0].kind === 0 /* UseNamespace */ || fixes[0].kind === 2 /* AddToExisting */) { - return fixes[0]; - } - return fixes.reduce(function (best, fix) { return ( - // Takes true branch of conditional if `fix` is better than `best` - compareModuleSpecifiers(fix, best, sourceFile, program, packageJsonImportFilter.allowsImportingSpecifier, function (fileName) { return toPath(fileName, host.getCurrentDirectory(), hostGetCanonicalFileName(host)); }) === -1 /* LessThan */ ? fix : best); }); -} -function compareModuleSpecifiers(a, b, importingFile, program, allowsImportingSpecifier, toPath3) { - if (a.kind !== 0 /* UseNamespace */ && b.kind !== 0 /* UseNamespace */) { - return compareBooleans(allowsImportingSpecifier(b.moduleSpecifier), allowsImportingSpecifier(a.moduleSpecifier)) || compareNodeCoreModuleSpecifiers(a.moduleSpecifier, b.moduleSpecifier, importingFile, program) || compareBooleans(isFixPossiblyReExportingImportingFile(a, importingFile, program.getCompilerOptions(), toPath3), isFixPossiblyReExportingImportingFile(b, importingFile, program.getCompilerOptions(), toPath3)) || compareNumberOfDirectorySeparators(a.moduleSpecifier, b.moduleSpecifier); - } - return 0 /* EqualTo */; -} -function isFixPossiblyReExportingImportingFile(fix, importingFile, compilerOptions, toPath3) { - var _a; - if (fix.isReExport && ((_a = fix.exportInfo) == null ? void 0 : _a.moduleFileName) && getEmitModuleResolutionKind(compilerOptions) === 2 /* Node10 */ && isIndexFileName(fix.exportInfo.moduleFileName)) { - var reExportDir = toPath3(getDirectoryPath(fix.exportInfo.moduleFileName)); - return startsWith(importingFile.path, reExportDir); - } - return false; -} -function isIndexFileName(fileName) { - return getBaseFileName(fileName, [".js", ".jsx", ".d.ts", ".ts", ".tsx"], - /*ignoreCase*/ - true) === "index"; -} -function compareNodeCoreModuleSpecifiers(a, b, importingFile, program) { - if (startsWith(a, "node:") && !startsWith(b, "node:")) - return shouldUseUriStyleNodeCoreModules(importingFile, program) ? -1 /* LessThan */ : 1 /* GreaterThan */; - if (startsWith(b, "node:") && !startsWith(a, "node:")) - return shouldUseUriStyleNodeCoreModules(importingFile, program) ? 1 /* GreaterThan */ : -1 /* LessThan */; - return 0 /* EqualTo */; -} -function getFixesInfoForUMDImport(_t, token) { - var sourceFile = _t.sourceFile, program = _t.program, host = _t.host, preferences = _t.preferences; - var checker = program.getTypeChecker(); - var umdSymbol = getUmdSymbol(token, checker); - if (!umdSymbol) - return void 0; - var symbol = checker.getAliasedSymbol(umdSymbol); - var symbolName2 = umdSymbol.name; - var exportInfo = [{ symbol: umdSymbol, moduleSymbol: symbol, moduleFileName: void 0, exportKind: 3 /* UMD */, targetFlags: symbol.flags, isFromPackageJson: false }]; - var useRequire = shouldUseRequire(sourceFile, program); - var fixes = getImportFixes(exportInfo, - /*usagePosition*/ - void 0, - /*isValidTypeOnlyUseSite*/ - false, useRequire, program, sourceFile, host, preferences).fixes; - return fixes.map(function (fix) { - var _a; - return { fix: fix, symbolName: symbolName2, errorIdentifierText: (_a = tryCast(token, isIdentifier)) == null ? void 0 : _a.text }; - }); -} -function getUmdSymbol(token, checker) { - var umdSymbol = isIdentifier(token) ? checker.getSymbolAtLocation(token) : void 0; - if (isUMDExportSymbol(umdSymbol)) - return umdSymbol; - var parent2 = token.parent; - if (isJsxOpeningLikeElement(parent2) && parent2.tagName === token || isJsxOpeningFragment(parent2)) { - var parentSymbol = checker.resolveName(checker.getJsxNamespace(parent2), isJsxOpeningLikeElement(parent2) ? token : parent2, 111551 /* Value */, - /*excludeGlobals*/ - false); - if (isUMDExportSymbol(parentSymbol)) { - return parentSymbol; - } - } - return void 0; -} -function getImportKind(importingFile, exportKind, compilerOptions, forceImportKeyword) { - if (compilerOptions.verbatimModuleSyntax && (getEmitModuleKind(compilerOptions) === 1 /* CommonJS */ || importingFile.impliedNodeFormat === 1 /* CommonJS */)) { - return 3 /* CommonJS */; - } - switch (exportKind) { - case 0 /* Named */: - return 0 /* Named */; - case 1 /* Default */: - return 1 /* Default */; - case 2 /* ExportEquals */: - return getExportEqualsImportKind(importingFile, compilerOptions, !!forceImportKeyword); - case 3 /* UMD */: - return getUmdImportKind(importingFile, compilerOptions, !!forceImportKeyword); - default: - return Debug.assertNever(exportKind); - } -} -function getUmdImportKind(importingFile, compilerOptions, forceImportKeyword) { - if (getAllowSyntheticDefaultImports(compilerOptions)) { - return 1 /* Default */; - } - var moduleKind = getEmitModuleKind(compilerOptions); - switch (moduleKind) { - case 2 /* AMD */: - case 1 /* CommonJS */: - case 3 /* UMD */: - if (isInJSFile(importingFile)) { - return isExternalModule(importingFile) || forceImportKeyword ? 2 /* Namespace */ : 3 /* CommonJS */; - } - return 3 /* CommonJS */; - case 4 /* System */: - case 5 /* ES2015 */: - case 6 /* ES2020 */: - case 7 /* ES2022 */: - case 99 /* ESNext */: - case 0 /* None */: - return 2 /* Namespace */; - case 100 /* Node16 */: - case 199 /* NodeNext */: - return importingFile.impliedNodeFormat === 99 /* ESNext */ ? 2 /* Namespace */ : 3 /* CommonJS */; - default: - return Debug.assertNever(moduleKind, "Unexpected moduleKind ".concat(moduleKind)); - } -} -function getFixesInfoForNonUMDImport(_t, symbolToken, useAutoImportProvider) { - var sourceFile = _t.sourceFile, program = _t.program, cancellationToken = _t.cancellationToken, host = _t.host, preferences = _t.preferences; - var checker = program.getTypeChecker(); - var compilerOptions = program.getCompilerOptions(); - return flatMap(getSymbolNamesToImport(sourceFile, checker, symbolToken, compilerOptions), function (symbolName2) { - if (symbolName2 === "default" /* Default */) { - return void 0; - } - var isValidTypeOnlyUseSite = isValidTypeOnlyAliasUseSite(symbolToken); - var useRequire = shouldUseRequire(sourceFile, program); - var exportInfo = getExportInfos(symbolName2, isJSXTagName(symbolToken), getMeaningFromLocation(symbolToken), cancellationToken, sourceFile, program, useAutoImportProvider, host, preferences); - return arrayFrom(flatMapIterator(exportInfo.values(), function (exportInfos) { return getImportFixes(exportInfos, symbolToken.getStart(sourceFile), isValidTypeOnlyUseSite, useRequire, program, sourceFile, host, preferences).fixes; }), function (fix) { return ({ fix: fix, symbolName: symbolName2, errorIdentifierText: symbolToken.text, isJsxNamespaceFix: symbolName2 !== symbolToken.text }); }); - }); -} -function getTypeOnlyPromotionFix(sourceFile, symbolToken, symbolName2, program) { - var checker = program.getTypeChecker(); - var symbol = checker.resolveName(symbolName2, symbolToken, 111551 /* Value */, - /*excludeGlobals*/ - true); - if (!symbol) - return void 0; - var typeOnlyAliasDeclaration = checker.getTypeOnlyAliasDeclaration(symbol); - if (!typeOnlyAliasDeclaration || getSourceFileOfNode(typeOnlyAliasDeclaration) !== sourceFile) - return void 0; - return { kind: 4 /* PromoteTypeOnly */, typeOnlyAliasDeclaration: typeOnlyAliasDeclaration }; -} -function getSymbolNamesToImport(sourceFile, checker, symbolToken, compilerOptions) { - var parent2 = symbolToken.parent; - if ((isJsxOpeningLikeElement(parent2) || isJsxClosingElement(parent2)) && parent2.tagName === symbolToken && jsxModeNeedsExplicitImport(compilerOptions.jsx)) { - var jsxNamespace = checker.getJsxNamespace(sourceFile); - if (needsJsxNamespaceFix(jsxNamespace, symbolToken, checker)) { - var needsComponentNameFix = !isIntrinsicJsxName(symbolToken.text) && !checker.resolveName(symbolToken.text, symbolToken, 111551 /* Value */, - /*excludeGlobals*/ - false); - return needsComponentNameFix ? [symbolToken.text, jsxNamespace] : [jsxNamespace]; - } - } - return [symbolToken.text]; -} -function needsJsxNamespaceFix(jsxNamespace, symbolToken, checker) { - if (isIntrinsicJsxName(symbolToken.text)) - return true; - var namespaceSymbol = checker.resolveName(jsxNamespace, symbolToken, 111551 /* Value */, - /*excludeGlobals*/ - true); - return !namespaceSymbol || some(namespaceSymbol.declarations, isTypeOnlyImportOrExportDeclaration) && !(namespaceSymbol.flags & 111551 /* Value */); -} -function getExportInfos(symbolName2, isJsxTagName, currentTokenMeaning, cancellationToken, fromFile, program, useAutoImportProvider, host, preferences) { - var _a; - var originalSymbolToExportInfos = createMultiMap(); - var packageJsonFilter = createPackageJsonImportFilter(fromFile, preferences, host); - var moduleSpecifierCache = (_a = host.getModuleSpecifierCache) == null ? void 0 : _a.call(host); - var getModuleSpecifierResolutionHost = memoizeOne(function (isFromPackageJson) { - return createModuleSpecifierResolutionHost(isFromPackageJson ? host.getPackageJsonAutoImportProvider() : program, host); - }); - function addSymbol(moduleSymbol, toFile, exportedSymbol, exportKind, program2, isFromPackageJson) { - var moduleSpecifierResolutionHost = getModuleSpecifierResolutionHost(isFromPackageJson); - if (toFile && isImportableFile(program2, fromFile, toFile, preferences, packageJsonFilter, moduleSpecifierResolutionHost, moduleSpecifierCache) || !toFile && packageJsonFilter.allowsImportingAmbientModule(moduleSymbol, moduleSpecifierResolutionHost)) { - var checker = program2.getTypeChecker(); - originalSymbolToExportInfos.add(getUniqueSymbolId(exportedSymbol, checker).toString(), { symbol: exportedSymbol, moduleSymbol: moduleSymbol, moduleFileName: toFile == null ? void 0 : toFile.fileName, exportKind: exportKind, targetFlags: skipAlias(exportedSymbol, checker).flags, isFromPackageJson: isFromPackageJson }); - } - } - forEachExternalModuleToImportFrom(program, host, preferences, useAutoImportProvider, function (moduleSymbol, sourceFile, program2, isFromPackageJson) { - var checker = program2.getTypeChecker(); - cancellationToken.throwIfCancellationRequested(); - var compilerOptions = program2.getCompilerOptions(); - var defaultInfo = getDefaultLikeExportInfo(moduleSymbol, checker, compilerOptions); - if (defaultInfo && (defaultInfo.name === symbolName2 || moduleSymbolToValidIdentifier(moduleSymbol, getEmitScriptTarget(compilerOptions), isJsxTagName) === symbolName2) && symbolHasMeaning(defaultInfo.resolvedSymbol, currentTokenMeaning)) { - addSymbol(moduleSymbol, sourceFile, defaultInfo.symbol, defaultInfo.exportKind, program2, isFromPackageJson); - } - var exportSymbolWithIdenticalName = checker.tryGetMemberInModuleExportsAndProperties(symbolName2, moduleSymbol); - if (exportSymbolWithIdenticalName && symbolHasMeaning(exportSymbolWithIdenticalName, currentTokenMeaning)) { - addSymbol(moduleSymbol, sourceFile, exportSymbolWithIdenticalName, 0 /* Named */, program2, isFromPackageJson); - } - }); - return originalSymbolToExportInfos; -} -function getExportEqualsImportKind(importingFile, compilerOptions, forceImportKeyword) { - var e_764, _t; - var allowSyntheticDefaults = getAllowSyntheticDefaultImports(compilerOptions); - var isJS = isInJSFile(importingFile); - if (!isJS && getEmitModuleKind(compilerOptions) >= 5 /* ES2015 */) { - return allowSyntheticDefaults ? 1 /* Default */ : 2 /* Namespace */; - } - if (isJS) { - return isExternalModule(importingFile) || forceImportKeyword ? allowSyntheticDefaults ? 1 /* Default */ : 2 /* Namespace */ : 3 /* CommonJS */; - } - try { - for (var _u = __values(importingFile.statements), _v = _u.next(); !_v.done; _v = _u.next()) { - var statement = _v.value; - if (isImportEqualsDeclaration(statement) && !nodeIsMissing(statement.moduleReference)) { - return 3 /* CommonJS */; - } - } - } - catch (e_764_1) { e_764 = { error: e_764_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_764) throw e_764.error; } - } - return allowSyntheticDefaults ? 1 /* Default */ : 3 /* CommonJS */; -} -function codeActionForFix(context, sourceFile, symbolName2, fix, includeSymbolNameInDescription, compilerOptions, preferences) { - var diag2; - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (tracker) { - diag2 = codeActionForFixWorker(tracker, sourceFile, symbolName2, fix, includeSymbolNameInDescription, compilerOptions, preferences); - }); - return createCodeFixAction(importFixName, changes, diag2, importFixId, Diagnostics.Add_all_missing_imports); -} -function codeActionForFixWorker(changes, sourceFile, symbolName2, fix, includeSymbolNameInDescription, compilerOptions, preferences) { - var quotePreference = getQuotePreference(sourceFile, preferences); - switch (fix.kind) { - case 0 /* UseNamespace */: - addNamespaceQualifier(changes, sourceFile, fix); - return [Diagnostics.Change_0_to_1, symbolName2, "".concat(fix.namespacePrefix, ".").concat(symbolName2)]; - case 1 /* JsdocTypeImport */: - addImportType(changes, sourceFile, fix, quotePreference); - return [Diagnostics.Change_0_to_1, symbolName2, getImportTypePrefix(fix.moduleSpecifier, quotePreference) + symbolName2]; - case 2 /* AddToExisting */: { - var importClauseOrBindingPattern = fix.importClauseOrBindingPattern, importKind = fix.importKind, addAsTypeOnly = fix.addAsTypeOnly, moduleSpecifier = fix.moduleSpecifier; - doAddExistingFix(changes, sourceFile, importClauseOrBindingPattern, importKind === 1 /* Default */ ? { name: symbolName2, addAsTypeOnly: addAsTypeOnly } : void 0, importKind === 0 /* Named */ ? [{ name: symbolName2, addAsTypeOnly: addAsTypeOnly }] : emptyArray, preferences); - var moduleSpecifierWithoutQuotes = stripQuotes(moduleSpecifier); - return includeSymbolNameInDescription ? [Diagnostics.Import_0_from_1, symbolName2, moduleSpecifierWithoutQuotes] : [Diagnostics.Update_import_from_0, moduleSpecifierWithoutQuotes]; - } - case 3 /* AddNew */: { - var importKind = fix.importKind, moduleSpecifier = fix.moduleSpecifier, addAsTypeOnly = fix.addAsTypeOnly, useRequire = fix.useRequire, qualification = fix.qualification; - var getDeclarations = useRequire ? getNewRequires : getNewImports; - var defaultImport = importKind === 1 /* Default */ ? { name: symbolName2, addAsTypeOnly: addAsTypeOnly } : void 0; - var namedImports = importKind === 0 /* Named */ ? [{ name: symbolName2, addAsTypeOnly: addAsTypeOnly }] : void 0; - var namespaceLikeImport = importKind === 2 /* Namespace */ || importKind === 3 /* CommonJS */ ? { importKind: importKind, name: (qualification == null ? void 0 : qualification.namespacePrefix) || symbolName2, addAsTypeOnly: addAsTypeOnly } : void 0; - insertImports(changes, sourceFile, getDeclarations(moduleSpecifier, quotePreference, defaultImport, namedImports, namespaceLikeImport, compilerOptions), - /*blankLineBetween*/ - true, preferences); - if (qualification) { - addNamespaceQualifier(changes, sourceFile, qualification); - } - return includeSymbolNameInDescription ? [Diagnostics.Import_0_from_1, symbolName2, moduleSpecifier] : [Diagnostics.Add_import_from_0, moduleSpecifier]; - } - case 4 /* PromoteTypeOnly */: { - var typeOnlyAliasDeclaration = fix.typeOnlyAliasDeclaration; - var promotedDeclaration = promoteFromTypeOnly(changes, typeOnlyAliasDeclaration, compilerOptions, sourceFile, preferences); - return promotedDeclaration.kind === 276 /* ImportSpecifier */ ? [Diagnostics.Remove_type_from_import_of_0_from_1, symbolName2, getModuleSpecifierText(promotedDeclaration.parent.parent)] : [Diagnostics.Remove_type_from_import_declaration_from_0, getModuleSpecifierText(promotedDeclaration)]; - } - default: - return Debug.assertNever(fix, "Unexpected fix kind ".concat(fix.kind)); - } -} -function getModuleSpecifierText(promotedDeclaration) { - var _a, _b; - return promotedDeclaration.kind === 271 /* ImportEqualsDeclaration */ ? ((_b = tryCast((_a = tryCast(promotedDeclaration.moduleReference, isExternalModuleReference)) == null ? void 0 : _a.expression, isStringLiteralLike)) == null ? void 0 : _b.text) || promotedDeclaration.moduleReference.getText() : cast(promotedDeclaration.parent.moduleSpecifier, isStringLiteral).text; -} -function promoteFromTypeOnly(changes, aliasDeclaration, compilerOptions, sourceFile, preferences) { - var convertExistingToTypeOnly = importNameElisionDisabled(compilerOptions); - switch (aliasDeclaration.kind) { - case 276 /* ImportSpecifier */: - if (aliasDeclaration.isTypeOnly) { - var sortKind = ts_OrganizeImports_exports.detectImportSpecifierSorting(aliasDeclaration.parent.elements, preferences); - if (aliasDeclaration.parent.elements.length > 1 && sortKind) { - changes.delete(sourceFile, aliasDeclaration); - var newSpecifier = factory.updateImportSpecifier(aliasDeclaration, - /*isTypeOnly*/ - false, aliasDeclaration.propertyName, aliasDeclaration.name); - var comparer = ts_OrganizeImports_exports.getOrganizeImportsComparer(preferences, sortKind === 2 /* CaseInsensitive */); - var insertionIndex = ts_OrganizeImports_exports.getImportSpecifierInsertionIndex(aliasDeclaration.parent.elements, newSpecifier, comparer); - changes.insertImportSpecifierAtIndex(sourceFile, newSpecifier, aliasDeclaration.parent, insertionIndex); - } - else { - changes.deleteRange(sourceFile, aliasDeclaration.getFirstToken()); - } - return aliasDeclaration; - } - else { - Debug.assert(aliasDeclaration.parent.parent.isTypeOnly); - promoteImportClause(aliasDeclaration.parent.parent); - return aliasDeclaration.parent.parent; - } - case 273 /* ImportClause */: - promoteImportClause(aliasDeclaration); - return aliasDeclaration; - case 274 /* NamespaceImport */: - promoteImportClause(aliasDeclaration.parent); - return aliasDeclaration.parent; - case 271 /* ImportEqualsDeclaration */: - changes.deleteRange(sourceFile, aliasDeclaration.getChildAt(1)); - return aliasDeclaration; - default: - Debug.failBadSyntaxKind(aliasDeclaration); - } - function promoteImportClause(importClause) { - var e_765, _t; - changes.delete(sourceFile, getTypeKeywordOfTypeOnlyImport(importClause, sourceFile)); - if (!compilerOptions.allowImportingTsExtensions) { - var moduleSpecifier = tryGetModuleSpecifierFromDeclaration(importClause.parent); - var resolvedModule = moduleSpecifier && getResolvedModule(sourceFile, moduleSpecifier.text, getModeForUsageLocation(sourceFile, moduleSpecifier)); - if (resolvedModule == null ? void 0 : resolvedModule.resolvedUsingTsExtension) { - var changedExtension = changeAnyExtension(moduleSpecifier.text, getOutputExtension(moduleSpecifier.text, compilerOptions)); - changes.replaceNode(sourceFile, moduleSpecifier, factory.createStringLiteral(changedExtension)); - } - } - if (convertExistingToTypeOnly) { - var namedImports = tryCast(importClause.namedBindings, isNamedImports); - if (namedImports && namedImports.elements.length > 1) { - if (ts_OrganizeImports_exports.detectImportSpecifierSorting(namedImports.elements, preferences) && aliasDeclaration.kind === 276 /* ImportSpecifier */ && namedImports.elements.indexOf(aliasDeclaration) !== 0) { - changes.delete(sourceFile, aliasDeclaration); - changes.insertImportSpecifierAtIndex(sourceFile, aliasDeclaration, namedImports, 0); - } - try { - for (var _u = __values(namedImports.elements), _v = _u.next(); !_v.done; _v = _u.next()) { - var element = _v.value; - if (element !== aliasDeclaration && !element.isTypeOnly) { - changes.insertModifierBefore(sourceFile, 156 /* TypeKeyword */, element); - } - } - } - catch (e_765_1) { e_765 = { error: e_765_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_765) throw e_765.error; } - } - } - } - } -} -function doAddExistingFix(changes, sourceFile, clause, defaultImport, namedImports, preferences) { - var e_766, _t, e_767, _u, e_768, _v, e_769, _w; - var _a; - if (clause.kind === 206 /* ObjectBindingPattern */) { - if (defaultImport) { - addElementToBindingPattern(clause, defaultImport.name, "default"); - } - try { - for (var namedImports_1 = __values(namedImports), namedImports_1_1 = namedImports_1.next(); !namedImports_1_1.done; namedImports_1_1 = namedImports_1.next()) { - var specifier = namedImports_1_1.value; - addElementToBindingPattern(clause, specifier.name, - /*propertyName*/ - void 0); - } - } - catch (e_766_1) { e_766 = { error: e_766_1 }; } - finally { - try { - if (namedImports_1_1 && !namedImports_1_1.done && (_t = namedImports_1.return)) _t.call(namedImports_1); - } - finally { if (e_766) throw e_766.error; } - } - return; - } - var promoteFromTypeOnly2 = clause.isTypeOnly && some(__spreadArray([defaultImport], __read(namedImports), false), function (i) { return (i == null ? void 0 : i.addAsTypeOnly) === 4; } /* NotAllowed */); - var existingSpecifiers = clause.namedBindings && ((_a = tryCast(clause.namedBindings, isNamedImports)) == null ? void 0 : _a.elements); - if (defaultImport) { - Debug.assert(!clause.name, "Cannot add a default import to an import clause that already has one"); - changes.insertNodeAt(sourceFile, clause.getStart(sourceFile), factory.createIdentifier(defaultImport.name), { suffix: ", " }); - } - if (namedImports.length) { - var ignoreCaseForSorting = void 0; - if (typeof preferences.organizeImportsIgnoreCase === "boolean") { - ignoreCaseForSorting = preferences.organizeImportsIgnoreCase; - } - else if (existingSpecifiers) { - var targetImportSorting = ts_OrganizeImports_exports.detectImportSpecifierSorting(existingSpecifiers, preferences); - if (targetImportSorting !== 3 /* Both */) { - ignoreCaseForSorting = targetImportSorting === 2 /* CaseInsensitive */; - } - } - if (ignoreCaseForSorting === void 0) { - ignoreCaseForSorting = ts_OrganizeImports_exports.detectSorting(sourceFile, preferences) === 2 /* CaseInsensitive */; - } - var comparer_1 = ts_OrganizeImports_exports.getOrganizeImportsComparer(preferences, ignoreCaseForSorting); - var newSpecifiers = stableSort(namedImports.map(function (namedImport) { return factory.createImportSpecifier((!clause.isTypeOnly || promoteFromTypeOnly2) && needsTypeOnly(namedImport), - /*propertyName*/ - void 0, factory.createIdentifier(namedImport.name)); }), function (s1, s2) { return ts_OrganizeImports_exports.compareImportOrExportSpecifiers(s1, s2, comparer_1); }); - var specifierSort = (existingSpecifiers == null ? void 0 : existingSpecifiers.length) && ts_OrganizeImports_exports.detectImportSpecifierSorting(existingSpecifiers, preferences); - if (specifierSort && !(ignoreCaseForSorting && specifierSort === 1 /* CaseSensitive */)) { - try { - for (var newSpecifiers_1 = __values(newSpecifiers), newSpecifiers_1_1 = newSpecifiers_1.next(); !newSpecifiers_1_1.done; newSpecifiers_1_1 = newSpecifiers_1.next()) { - var spec = newSpecifiers_1_1.value; - var insertionIndex = promoteFromTypeOnly2 && !spec.isTypeOnly ? 0 : ts_OrganizeImports_exports.getImportSpecifierInsertionIndex(existingSpecifiers, spec, comparer_1); - changes.insertImportSpecifierAtIndex(sourceFile, spec, clause.namedBindings, insertionIndex); - } - } - catch (e_767_1) { e_767 = { error: e_767_1 }; } - finally { - try { - if (newSpecifiers_1_1 && !newSpecifiers_1_1.done && (_u = newSpecifiers_1.return)) _u.call(newSpecifiers_1); - } - finally { if (e_767) throw e_767.error; } - } - } - else if (existingSpecifiers == null ? void 0 : existingSpecifiers.length) { - try { - for (var newSpecifiers_2 = __values(newSpecifiers), newSpecifiers_2_1 = newSpecifiers_2.next(); !newSpecifiers_2_1.done; newSpecifiers_2_1 = newSpecifiers_2.next()) { - var spec = newSpecifiers_2_1.value; - changes.insertNodeInListAfter(sourceFile, last(existingSpecifiers), spec, existingSpecifiers); - } - } - catch (e_768_1) { e_768 = { error: e_768_1 }; } - finally { - try { - if (newSpecifiers_2_1 && !newSpecifiers_2_1.done && (_v = newSpecifiers_2.return)) _v.call(newSpecifiers_2); - } - finally { if (e_768) throw e_768.error; } - } - } - else { - if (newSpecifiers.length) { - var namedImports2 = factory.createNamedImports(newSpecifiers); - if (clause.namedBindings) { - changes.replaceNode(sourceFile, clause.namedBindings, namedImports2); - } - else { - changes.insertNodeAfter(sourceFile, Debug.checkDefined(clause.name, "Import clause must have either named imports or a default import"), namedImports2); - } - } - } - } - if (promoteFromTypeOnly2) { - changes.delete(sourceFile, getTypeKeywordOfTypeOnlyImport(clause, sourceFile)); - if (existingSpecifiers) { - try { - for (var existingSpecifiers_1 = __values(existingSpecifiers), existingSpecifiers_1_1 = existingSpecifiers_1.next(); !existingSpecifiers_1_1.done; existingSpecifiers_1_1 = existingSpecifiers_1.next()) { - var specifier = existingSpecifiers_1_1.value; - changes.insertModifierBefore(sourceFile, 156 /* TypeKeyword */, specifier); - } - } - catch (e_769_1) { e_769 = { error: e_769_1 }; } - finally { - try { - if (existingSpecifiers_1_1 && !existingSpecifiers_1_1.done && (_w = existingSpecifiers_1.return)) _w.call(existingSpecifiers_1); - } - finally { if (e_769) throw e_769.error; } - } - } - } - function addElementToBindingPattern(bindingPattern, name, propertyName) { - var element = factory.createBindingElement( - /*dotDotDotToken*/ - void 0, propertyName, name); - if (bindingPattern.elements.length) { - changes.insertNodeInListAfter(sourceFile, last(bindingPattern.elements), element); - } - else { - changes.replaceNode(sourceFile, bindingPattern, factory.createObjectBindingPattern([element])); - } - } -} -function addNamespaceQualifier(changes, sourceFile, _t) { - var namespacePrefix = _t.namespacePrefix, usagePosition = _t.usagePosition; - changes.insertText(sourceFile, usagePosition, namespacePrefix + "."); -} -function addImportType(changes, sourceFile, _t, quotePreference) { - var moduleSpecifier = _t.moduleSpecifier, position = _t.usagePosition; - changes.insertText(sourceFile, position, getImportTypePrefix(moduleSpecifier, quotePreference)); -} -function getImportTypePrefix(moduleSpecifier, quotePreference) { - var quote2 = getQuoteFromPreference(quotePreference); - return "import(".concat(quote2).concat(moduleSpecifier).concat(quote2, ")."); -} -function needsTypeOnly(_t) { - var addAsTypeOnly = _t.addAsTypeOnly; - return addAsTypeOnly === 2 /* Required */; -} -function getNewImports(moduleSpecifier, quotePreference, defaultImport, namedImports, namespaceLikeImport, compilerOptions) { - var quotedModuleSpecifier = makeStringLiteral(moduleSpecifier, quotePreference); - var statements; - if (defaultImport !== void 0 || (namedImports == null ? void 0 : namedImports.length)) { - var topLevelTypeOnly_1 = (!defaultImport || needsTypeOnly(defaultImport)) && every(namedImports, needsTypeOnly) || compilerOptions.verbatimModuleSyntax && (defaultImport == null ? void 0 : defaultImport.addAsTypeOnly) !== 4 /* NotAllowed */ && !some(namedImports, function (i) { return i.addAsTypeOnly === 4; } /* NotAllowed */); - statements = combine(statements, makeImport(defaultImport && factory.createIdentifier(defaultImport.name), namedImports == null ? void 0 : namedImports.map(function (_t) { - var addAsTypeOnly = _t.addAsTypeOnly, name = _t.name; - return factory.createImportSpecifier(!topLevelTypeOnly_1 && addAsTypeOnly === 2 /* Required */, - /*propertyName*/ - void 0, factory.createIdentifier(name)); - }), moduleSpecifier, quotePreference, topLevelTypeOnly_1)); - } - if (namespaceLikeImport) { - var declaration = namespaceLikeImport.importKind === 3 /* CommonJS */ ? factory.createImportEqualsDeclaration( - /*modifiers*/ - void 0, needsTypeOnly(namespaceLikeImport), factory.createIdentifier(namespaceLikeImport.name), factory.createExternalModuleReference(quotedModuleSpecifier)) : factory.createImportDeclaration( - /*modifiers*/ - void 0, factory.createImportClause(needsTypeOnly(namespaceLikeImport), - /*name*/ - void 0, factory.createNamespaceImport(factory.createIdentifier(namespaceLikeImport.name))), quotedModuleSpecifier, - /*assertClause*/ - void 0); - statements = combine(statements, declaration); - } - return Debug.checkDefined(statements); -} -function getNewRequires(moduleSpecifier, quotePreference, defaultImport, namedImports, namespaceLikeImport) { - var quotedModuleSpecifier = makeStringLiteral(moduleSpecifier, quotePreference); - var statements; - if (defaultImport || (namedImports == null ? void 0 : namedImports.length)) { - var bindingElements = (namedImports == null ? void 0 : namedImports.map(function (_t) { - var name = _t.name; - return factory.createBindingElement( - /*dotDotDotToken*/ - void 0, - /*propertyName*/ - void 0, name); - })) || []; - if (defaultImport) { - bindingElements.unshift(factory.createBindingElement( - /*dotDotDotToken*/ - void 0, "default", defaultImport.name)); - } - var declaration = createConstEqualsRequireDeclaration(factory.createObjectBindingPattern(bindingElements), quotedModuleSpecifier); - statements = combine(statements, declaration); - } - if (namespaceLikeImport) { - var declaration = createConstEqualsRequireDeclaration(namespaceLikeImport.name, quotedModuleSpecifier); - statements = combine(statements, declaration); - } - return Debug.checkDefined(statements); -} -function createConstEqualsRequireDeclaration(name, quotedModuleSpecifier) { - return factory.createVariableStatement( - /*modifiers*/ - void 0, factory.createVariableDeclarationList([ - factory.createVariableDeclaration(typeof name === "string" ? factory.createIdentifier(name) : name, - /*exclamationToken*/ - void 0, - /*type*/ - void 0, factory.createCallExpression(factory.createIdentifier("require"), - /*typeArguments*/ - void 0, [quotedModuleSpecifier])) - ], 2 /* Const */)); -} -function symbolHasMeaning(_t, meaning) { - var declarations = _t.declarations; - return some(declarations, function (decl) { return !!(getMeaningFromDeclaration(decl) & meaning); }); -} -function moduleSymbolToValidIdentifier(moduleSymbol, target, forceCapitalize) { - return moduleSpecifierToValidIdentifier(removeFileExtension(stripQuotes(moduleSymbol.name)), target, forceCapitalize); -} -function moduleSpecifierToValidIdentifier(moduleSpecifier, target, forceCapitalize) { - var baseName = getBaseFileName(removeSuffix(moduleSpecifier, "/index")); - var res = ""; - var lastCharWasValid = true; - var firstCharCode = baseName.charCodeAt(0); - if (isIdentifierStart(firstCharCode, target)) { - res += String.fromCharCode(firstCharCode); - if (forceCapitalize) { - res = res.toUpperCase(); - } - } - else { - lastCharWasValid = false; - } - for (var i = 1; i < baseName.length; i++) { - var ch = baseName.charCodeAt(i); - var isValid = isIdentifierPart(ch, target); - if (isValid) { - var char = String.fromCharCode(ch); - if (!lastCharWasValid) { - char = char.toUpperCase(); - } - res += char; - } - lastCharWasValid = isValid; - } - return !isStringANonContextualKeyword(res) ? res || "_" : "_".concat(res); -} -// src/services/codefixes/fixAddMissingConstraint.ts -var fixId17 = "addMissingConstraint"; -var errorCodes19 = [ - // We want errors this could be attached to: - // Diagnostics.This_type_parameter_probably_needs_an_extends_0_constraint - Diagnostics.Type_0_is_not_comparable_to_type_1.code, - Diagnostics.Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated.code, - Diagnostics.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties.code, - Diagnostics.Type_0_is_not_assignable_to_type_1.code, - Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties.code, - Diagnostics.Property_0_is_incompatible_with_index_signature.code, - Diagnostics.Property_0_in_type_1_is_not_assignable_to_type_2.code, - Diagnostics.Type_0_does_not_satisfy_the_constraint_1.code -]; -registerCodeFix({ - errorCodes: errorCodes19, - getCodeActions: function (context) { - var sourceFile = context.sourceFile, span = context.span, program = context.program, preferences = context.preferences, host = context.host; - var info = getInfo6(program, sourceFile, span); - if (info === void 0) - return; - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return addMissingConstraint(t, program, preferences, host, sourceFile, info); }); - return [createCodeFixAction(fixId17, changes, Diagnostics.Add_extends_constraint, fixId17, Diagnostics.Add_extends_constraint_to_all_type_parameters)]; - }, - fixIds: [fixId17], - getAllCodeActions: function (context) { - var program = context.program, preferences = context.preferences, host = context.host; - var seen = /* @__PURE__ */ new Map(); - return createCombinedCodeActions(ts_textChanges_exports.ChangeTracker.with(context, function (changes) { - eachDiagnostic(context, errorCodes19, function (diag2) { - var info = getInfo6(program, diag2.file, createTextSpan(diag2.start, diag2.length)); - if (info) { - if (addToSeen(seen, getNodeId(info.declaration))) { - return addMissingConstraint(changes, program, preferences, host, diag2.file, info); - } - } - return void 0; - }); - })); - } -}); -function getInfo6(program, sourceFile, span) { - var diag2 = find(program.getSemanticDiagnostics(sourceFile), function (diag3) { return diag3.start === span.start && diag3.length === span.length; }); - if (diag2 === void 0 || diag2.relatedInformation === void 0) - return; - var related = find(diag2.relatedInformation, function (related2) { return related2.code === Diagnostics.This_type_parameter_might_need_an_extends_0_constraint.code; }); - if (related === void 0 || related.file === void 0 || related.start === void 0 || related.length === void 0) - return; - var declaration = findAncestorMatchingSpan(related.file, createTextSpan(related.start, related.length)); - if (declaration === void 0) - return; - if (isIdentifier(declaration) && isTypeParameterDeclaration(declaration.parent)) { - declaration = declaration.parent; - } - if (isTypeParameterDeclaration(declaration)) { - if (isMappedTypeNode(declaration.parent)) - return; - var token = getTokenAtPosition(sourceFile, span.start); - var checker = program.getTypeChecker(); - var constraint = tryGetConstraintType(checker, token) || tryGetConstraintFromDiagnosticMessage(related.messageText); - return { constraint: constraint, declaration: declaration, token: token }; - } - return void 0; -} -function addMissingConstraint(changes, program, preferences, host, sourceFile, info) { - var declaration = info.declaration, constraint = info.constraint; - var checker = program.getTypeChecker(); - if (isString(constraint)) { - changes.insertText(sourceFile, declaration.name.end, " extends ".concat(constraint)); - } - else { - var scriptTarget = getEmitScriptTarget(program.getCompilerOptions()); - var tracker = getNoopSymbolTrackerWithResolver({ program: program, host: host }); - var importAdder = createImportAdder(sourceFile, program, preferences, host); - var typeNode = typeToAutoImportableTypeNode(checker, importAdder, constraint, - /*contextNode*/ - void 0, scriptTarget, - /*flags*/ - void 0, tracker); - if (typeNode) { - changes.replaceNode(sourceFile, declaration, factory.updateTypeParameterDeclaration(declaration, - /*modifiers*/ - void 0, declaration.name, typeNode, declaration.default)); - importAdder.writeFixes(changes); - } - } -} -function tryGetConstraintFromDiagnosticMessage(messageText) { - var _t = __read(flattenDiagnosticMessageText(messageText, "\n", 0).match(/`extends (.*)`/) || [], 2), _ = _t[0], constraint = _t[1]; - return constraint; -} -function tryGetConstraintType(checker, node) { - if (isTypeNode(node.parent)) { - return checker.getTypeArgumentConstraint(node.parent); - } - var contextualType = isExpression(node) ? checker.getContextualType(node) : void 0; - return contextualType || checker.getTypeAtLocation(node); -} -// src/services/codefixes/fixOverrideModifier.ts -var fixName = "fixOverrideModifier"; -var fixAddOverrideId = "fixAddOverrideModifier"; -var fixRemoveOverrideId = "fixRemoveOverrideModifier"; -var errorCodes20 = [ - Diagnostics.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0.code, - Diagnostics.This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class.code, - Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0.code, - Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0.code, - Diagnostics.This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0.code, - Diagnostics.This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0.code, - Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class.code, - Diagnostics.This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0.code, - Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0.code -]; -var errorCodeFixIdMap = (_y = {}, - // case #1: - _y[Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0.code] = { - descriptions: Diagnostics.Add_override_modifier, - fixId: fixAddOverrideId, - fixAllDescriptions: Diagnostics.Add_all_missing_override_modifiers - }, - _y[Diagnostics.This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0.code] = { - descriptions: Diagnostics.Add_override_modifier, - fixId: fixAddOverrideId, - fixAllDescriptions: Diagnostics.Add_all_missing_override_modifiers - }, - // case #2: - _y[Diagnostics.This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class.code] = { - descriptions: Diagnostics.Remove_override_modifier, - fixId: fixRemoveOverrideId, - fixAllDescriptions: Diagnostics.Remove_all_unnecessary_override_modifiers - }, - _y[Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class.code] = { - descriptions: Diagnostics.Remove_override_modifier, - fixId: fixRemoveOverrideId, - fixAllDescriptions: Diagnostics.Remove_override_modifier - }, - // case #3: - _y[Diagnostics.This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0.code] = { - descriptions: Diagnostics.Add_override_modifier, - fixId: fixAddOverrideId, - fixAllDescriptions: Diagnostics.Add_all_missing_override_modifiers - }, - _y[Diagnostics.This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0.code] = { - descriptions: Diagnostics.Add_override_modifier, - fixId: fixAddOverrideId, - fixAllDescriptions: Diagnostics.Add_all_missing_override_modifiers - }, - // case #4: - _y[Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0.code] = { - descriptions: Diagnostics.Add_override_modifier, - fixId: fixAddOverrideId, - fixAllDescriptions: Diagnostics.Remove_all_unnecessary_override_modifiers - }, - // case #5: - _y[Diagnostics.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0.code] = { - descriptions: Diagnostics.Remove_override_modifier, - fixId: fixRemoveOverrideId, - fixAllDescriptions: Diagnostics.Remove_all_unnecessary_override_modifiers - }, - _y[Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0.code] = { - descriptions: Diagnostics.Remove_override_modifier, - fixId: fixRemoveOverrideId, - fixAllDescriptions: Diagnostics.Remove_all_unnecessary_override_modifiers - }, - _y); -registerCodeFix({ - errorCodes: errorCodes20, - getCodeActions: function getCodeActionsToFixOverrideModifierIssues(context) { - var errorCode = context.errorCode, span = context.span; - var info = errorCodeFixIdMap[errorCode]; - if (!info) - return emptyArray; - var descriptions = info.descriptions, fixId52 = info.fixId, fixAllDescriptions = info.fixAllDescriptions; - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (changes2) { return dispatchChanges(changes2, context, errorCode, span.start); }); - return [ - createCodeFixActionMaybeFixAll(fixName, changes, descriptions, fixId52, fixAllDescriptions) - ]; - }, - fixIds: [fixName, fixAddOverrideId, fixRemoveOverrideId], - getAllCodeActions: function (context) { return codeFixAll(context, errorCodes20, function (changes, diag2) { - var code = diag2.code, start2 = diag2.start; - var info = errorCodeFixIdMap[code]; - if (!info || info.fixId !== context.fixId) { - return; - } - dispatchChanges(changes, context, code, start2); - }); } -}); -function dispatchChanges(changeTracker, context, errorCode, pos) { - switch (errorCode) { - case Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0.code: - case Diagnostics.This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0.code: - case Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0.code: - case Diagnostics.This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0.code: - case Diagnostics.This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0.code: - return doAddOverrideModifierChange(changeTracker, context.sourceFile, pos); - case Diagnostics.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0.code: - case Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0.code: - case Diagnostics.This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class.code: - case Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class.code: - return doRemoveOverrideModifierChange(changeTracker, context.sourceFile, pos); - default: - Debug.fail("Unexpected error code: " + errorCode); - } -} -function doAddOverrideModifierChange(changeTracker, sourceFile, pos) { - var classElement = findContainerClassElementLike(sourceFile, pos); - if (isSourceFileJS(sourceFile)) { - changeTracker.addJSDocTags(sourceFile, classElement, [factory.createJSDocOverrideTag(factory.createIdentifier("override"))]); - return; - } - var modifiers = classElement.modifiers || emptyArray; - var staticModifier = find(modifiers, isStaticModifier); - var abstractModifier = find(modifiers, isAbstractModifier); - var accessibilityModifier = find(modifiers, function (m) { return isAccessibilityModifier(m.kind); }); - var lastDecorator = findLast(modifiers, isDecorator); - var modifierPos = abstractModifier ? abstractModifier.end : staticModifier ? staticModifier.end : accessibilityModifier ? accessibilityModifier.end : lastDecorator ? skipTrivia(sourceFile.text, lastDecorator.end) : classElement.getStart(sourceFile); - var options = accessibilityModifier || staticModifier || abstractModifier ? { prefix: " " } : { suffix: " " }; - changeTracker.insertModifierAt(sourceFile, modifierPos, 164 /* OverrideKeyword */, options); -} -function doRemoveOverrideModifierChange(changeTracker, sourceFile, pos) { - var classElement = findContainerClassElementLike(sourceFile, pos); - if (isSourceFileJS(sourceFile)) { - changeTracker.filterJSDocTags(sourceFile, classElement, not(isJSDocOverrideTag)); - return; - } - var overrideModifier = find(classElement.modifiers, isOverrideModifier); - Debug.assertIsDefined(overrideModifier); - changeTracker.deleteModifier(sourceFile, overrideModifier); -} -function isClassElementLikeHasJSDoc(node) { - switch (node.kind) { - case 176 /* Constructor */: - case 172 /* PropertyDeclaration */: - case 174 /* MethodDeclaration */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - return true; - case 169 /* Parameter */: - return isParameterPropertyDeclaration(node, node.parent); - default: - return false; - } -} -function findContainerClassElementLike(sourceFile, pos) { - var token = getTokenAtPosition(sourceFile, pos); - var classElement = findAncestor(token, function (node) { - if (isClassLike(node)) - return "quit"; - return isClassElementLikeHasJSDoc(node); - }); - Debug.assert(classElement && isClassElementLikeHasJSDoc(classElement)); - return classElement; -} -// src/services/codefixes/fixNoPropertyAccessFromIndexSignature.ts -var fixId18 = "fixNoPropertyAccessFromIndexSignature"; -var errorCodes21 = [ - Diagnostics.Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0.code -]; -registerCodeFix({ - errorCodes: errorCodes21, - fixIds: [fixId18], - getCodeActions: function (context) { - var sourceFile = context.sourceFile, span = context.span, preferences = context.preferences; - var property = getPropertyAccessExpression(sourceFile, span.start); - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return doChange14(t, context.sourceFile, property, preferences); }); - return [createCodeFixAction(fixId18, changes, [Diagnostics.Use_element_access_for_0, property.name.text], fixId18, Diagnostics.Use_element_access_for_all_undeclared_properties)]; - }, - getAllCodeActions: function (context) { return codeFixAll(context, errorCodes21, function (changes, diag2) { return doChange14(changes, diag2.file, getPropertyAccessExpression(diag2.file, diag2.start), context.preferences); }); } -}); -function doChange14(changes, sourceFile, node, preferences) { - var quotePreference = getQuotePreference(sourceFile, preferences); - var argumentsExpression = factory.createStringLiteral(node.name.text, quotePreference === 0 /* Single */); - changes.replaceNode(sourceFile, node, isPropertyAccessChain(node) ? factory.createElementAccessChain(node.expression, node.questionDotToken, argumentsExpression) : factory.createElementAccessExpression(node.expression, argumentsExpression)); -} -function getPropertyAccessExpression(sourceFile, pos) { - return cast(getTokenAtPosition(sourceFile, pos).parent, isPropertyAccessExpression); -} -// src/services/codefixes/fixImplicitThis.ts -var fixId19 = "fixImplicitThis"; -var errorCodes22 = [Diagnostics.this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation.code]; -registerCodeFix({ - errorCodes: errorCodes22, - getCodeActions: function getCodeActionsToFixImplicitThis(context) { - var sourceFile = context.sourceFile, program = context.program, span = context.span; - var diagnostic; - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { - diagnostic = doChange15(t, sourceFile, span.start, program.getTypeChecker()); - }); - return diagnostic ? [createCodeFixAction(fixId19, changes, diagnostic, fixId19, Diagnostics.Fix_all_implicit_this_errors)] : emptyArray; - }, - fixIds: [fixId19], - getAllCodeActions: function (context) { return codeFixAll(context, errorCodes22, function (changes, diag2) { - doChange15(changes, diag2.file, diag2.start, context.program.getTypeChecker()); - }); } -}); -function doChange15(changes, sourceFile, pos, checker) { - var token = getTokenAtPosition(sourceFile, pos); - if (!isThis(token)) - return void 0; - var fn = getThisContainer(token, - /*includeArrowFunctions*/ - false, - /*includeClassComputedPropertyName*/ - false); - if (!isFunctionDeclaration(fn) && !isFunctionExpression(fn)) - return void 0; - if (!isSourceFile(getThisContainer(fn, - /*includeArrowFunctions*/ - false, - /*includeClassComputedPropertyName*/ - false))) { - var fnKeyword = Debug.checkDefined(findChildOfKind(fn, 100 /* FunctionKeyword */, sourceFile)); - var name_111 = fn.name; - var body = Debug.checkDefined(fn.body); - if (isFunctionExpression(fn)) { - if (name_111 && ts_FindAllReferences_exports.Core.isSymbolReferencedInFile(name_111, checker, sourceFile, body)) { - return void 0; - } - changes.delete(sourceFile, fnKeyword); - if (name_111) { - changes.delete(sourceFile, name_111); - } - changes.insertText(sourceFile, body.pos, " =>"); - return [Diagnostics.Convert_function_expression_0_to_arrow_function, name_111 ? name_111.text : ANONYMOUS]; - } - else { - changes.replaceNode(sourceFile, fnKeyword, factory.createToken(87 /* ConstKeyword */)); - changes.insertText(sourceFile, name_111.end, " = "); - changes.insertText(sourceFile, body.pos, " =>"); - return [Diagnostics.Convert_function_declaration_0_to_arrow_function, name_111.text]; - } - } -} -// src/services/codefixes/fixImportNonExportedMember.ts -var fixId20 = "fixImportNonExportedMember"; -var errorCodes23 = [ - Diagnostics.Module_0_declares_1_locally_but_it_is_not_exported.code -]; -registerCodeFix({ - errorCodes: errorCodes23, - fixIds: [fixId20], - getCodeActions: function (context) { - var sourceFile = context.sourceFile, span = context.span, program = context.program; - var info = getInfo7(sourceFile, span.start, program); - if (info === void 0) - return void 0; - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return doChange16(t, program, info); }); - return [createCodeFixAction(fixId20, changes, [Diagnostics.Export_0_from_module_1, info.exportName.node.text, info.moduleSpecifier], fixId20, Diagnostics.Export_all_referenced_locals)]; - }, - getAllCodeActions: function (context) { - var program = context.program; - return createCombinedCodeActions(ts_textChanges_exports.ChangeTracker.with(context, function (changes) { - var exports = /* @__PURE__ */ new Map(); - eachDiagnostic(context, errorCodes23, function (diag2) { - var info = getInfo7(diag2.file, diag2.start, program); - if (info === void 0) - return void 0; - var exportName = info.exportName, node = info.node, moduleSourceFile = info.moduleSourceFile; - if (tryGetExportDeclaration(moduleSourceFile, exportName.isTypeOnly) === void 0 && canHaveExportModifier(node)) { - changes.insertExportModifier(moduleSourceFile, node); - } - else { - var moduleExports = exports.get(moduleSourceFile) || { typeOnlyExports: [], exports: [] }; - if (exportName.isTypeOnly) { - moduleExports.typeOnlyExports.push(exportName); - } - else { - moduleExports.exports.push(exportName); - } - exports.set(moduleSourceFile, moduleExports); - } - }); - exports.forEach(function (moduleExports, moduleSourceFile) { - var exportDeclaration = tryGetExportDeclaration(moduleSourceFile, - /*isTypeOnly*/ - true); - if (exportDeclaration && exportDeclaration.isTypeOnly) { - doChanges(changes, program, moduleSourceFile, moduleExports.typeOnlyExports, exportDeclaration); - doChanges(changes, program, moduleSourceFile, moduleExports.exports, tryGetExportDeclaration(moduleSourceFile, - /*isTypeOnly*/ - false)); - } - else { - doChanges(changes, program, moduleSourceFile, __spreadArray(__spreadArray([], __read(moduleExports.exports), false), __read(moduleExports.typeOnlyExports), false), exportDeclaration); - } - }); - })); - } -}); -function getInfo7(sourceFile, pos, program) { - var _a; - var token = getTokenAtPosition(sourceFile, pos); - if (isIdentifier(token)) { - var importDeclaration = findAncestor(token, isImportDeclaration); - if (importDeclaration === void 0) - return void 0; - var moduleSpecifier = isStringLiteral(importDeclaration.moduleSpecifier) ? importDeclaration.moduleSpecifier.text : void 0; - if (moduleSpecifier === void 0) - return void 0; - var resolvedModule = getResolvedModule(sourceFile, moduleSpecifier, - /*mode*/ - void 0); - if (resolvedModule === void 0) - return void 0; - var moduleSourceFile = program.getSourceFile(resolvedModule.resolvedFileName); - if (moduleSourceFile === void 0 || isSourceFileFromLibrary(program, moduleSourceFile)) - return void 0; - var moduleSymbol = moduleSourceFile.symbol; - var locals = (_a = tryCast(moduleSymbol.valueDeclaration, canHaveLocals)) == null ? void 0 : _a.locals; - if (locals === void 0) - return void 0; - var localSymbol = locals.get(token.escapedText); - if (localSymbol === void 0) - return void 0; - var node = getNodeOfSymbol(localSymbol); - if (node === void 0) - return void 0; - var exportName = { node: token, isTypeOnly: isTypeDeclaration(node) }; - return { exportName: exportName, node: node, moduleSourceFile: moduleSourceFile, moduleSpecifier: moduleSpecifier }; - } - return void 0; -} -function doChange16(changes, program, _t) { - var exportName = _t.exportName, node = _t.node, moduleSourceFile = _t.moduleSourceFile; - var exportDeclaration = tryGetExportDeclaration(moduleSourceFile, exportName.isTypeOnly); - if (exportDeclaration) { - updateExport(changes, program, moduleSourceFile, exportDeclaration, [exportName]); - } - else if (canHaveExportModifier(node)) { - changes.insertExportModifier(moduleSourceFile, node); - } - else { - createExport(changes, program, moduleSourceFile, [exportName]); - } -} -function doChanges(changes, program, sourceFile, moduleExports, node) { - if (length(moduleExports)) { - if (node) { - updateExport(changes, program, sourceFile, node, moduleExports); - } - else { - createExport(changes, program, sourceFile, moduleExports); - } - } -} -function tryGetExportDeclaration(sourceFile, isTypeOnly) { - var predicate = function (node) { return isExportDeclaration(node) && (isTypeOnly && node.isTypeOnly || !node.isTypeOnly); }; - return findLast(sourceFile.statements, predicate); -} -function updateExport(changes, program, sourceFile, node, names) { - var namedExports = node.exportClause && isNamedExports(node.exportClause) ? node.exportClause.elements : factory.createNodeArray([]); - var allowTypeModifier = !node.isTypeOnly && !!(getIsolatedModules(program.getCompilerOptions()) || find(namedExports, function (e) { return e.isTypeOnly; })); - changes.replaceNode(sourceFile, node, factory.updateExportDeclaration(node, node.modifiers, node.isTypeOnly, factory.createNamedExports(factory.createNodeArray(__spreadArray(__spreadArray([], __read(namedExports), false), __read(createExportSpecifiers(names, allowTypeModifier)), false), - /*hasTrailingComma*/ - namedExports.hasTrailingComma)), node.moduleSpecifier, node.assertClause)); -} -function createExport(changes, program, sourceFile, names) { - changes.insertNodeAtEndOfScope(sourceFile, sourceFile, factory.createExportDeclaration( - /*modifiers*/ - void 0, - /*isTypeOnly*/ - false, factory.createNamedExports(createExportSpecifiers(names, - /*allowTypeModifier*/ - getIsolatedModules(program.getCompilerOptions()))), - /*moduleSpecifier*/ - void 0, - /*assertClause*/ - void 0)); -} -function createExportSpecifiers(names, allowTypeModifier) { - return factory.createNodeArray(map(names, function (n) { return factory.createExportSpecifier(allowTypeModifier && n.isTypeOnly, - /*propertyName*/ - void 0, n.node); })); -} -function getNodeOfSymbol(symbol) { - if (symbol.valueDeclaration === void 0) { - return firstOrUndefined(symbol.declarations); - } - var declaration = symbol.valueDeclaration; - var variableStatement = isVariableDeclaration(declaration) ? tryCast(declaration.parent.parent, isVariableStatement) : void 0; - return variableStatement && length(variableStatement.declarationList.declarations) === 1 ? variableStatement : declaration; -} -// src/services/codefixes/fixIncorrectNamedTupleSyntax.ts -var fixId21 = "fixIncorrectNamedTupleSyntax"; -var errorCodes24 = [ - Diagnostics.A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_colon_rather_than_after_the_type.code, - Diagnostics.A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type.code -]; -registerCodeFix({ - errorCodes: errorCodes24, - getCodeActions: function getCodeActionsToFixIncorrectNamedTupleSyntax(context) { - var sourceFile = context.sourceFile, span = context.span; - var namedTupleMember = getNamedTupleMember(sourceFile, span.start); - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return doChange17(t, sourceFile, namedTupleMember); }); - return [createCodeFixAction(fixId21, changes, Diagnostics.Move_labeled_tuple_element_modifiers_to_labels, fixId21, Diagnostics.Move_labeled_tuple_element_modifiers_to_labels)]; - }, - fixIds: [fixId21] -}); -function getNamedTupleMember(sourceFile, pos) { - var token = getTokenAtPosition(sourceFile, pos); - return findAncestor(token, function (t) { return t.kind === 202; } /* NamedTupleMember */); -} -function doChange17(changes, sourceFile, namedTupleMember) { - if (!namedTupleMember) { - return; - } - var unwrappedType = namedTupleMember.type; - var sawOptional = false; - var sawRest = false; - while (unwrappedType.kind === 190 /* OptionalType */ || unwrappedType.kind === 191 /* RestType */ || unwrappedType.kind === 196 /* ParenthesizedType */) { - if (unwrappedType.kind === 190 /* OptionalType */) { - sawOptional = true; - } - else if (unwrappedType.kind === 191 /* RestType */) { - sawRest = true; - } - unwrappedType = unwrappedType.type; - } - var updated = factory.updateNamedTupleMember(namedTupleMember, namedTupleMember.dotDotDotToken || (sawRest ? factory.createToken(26 /* DotDotDotToken */) : void 0), namedTupleMember.name, namedTupleMember.questionToken || (sawOptional ? factory.createToken(58 /* QuestionToken */) : void 0), unwrappedType); - if (updated === namedTupleMember) { - return; - } - changes.replaceNode(sourceFile, namedTupleMember, updated); -} -// src/services/codefixes/fixSpelling.ts -var fixId22 = "fixSpelling"; -var errorCodes25 = [ - Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_2.code, - Diagnostics.Property_0_may_not_exist_on_type_1_Did_you_mean_2.code, - Diagnostics.Cannot_find_name_0_Did_you_mean_1.code, - Diagnostics.Could_not_find_name_0_Did_you_mean_1.code, - Diagnostics.Cannot_find_namespace_0_Did_you_mean_1.code, - Diagnostics.Cannot_find_name_0_Did_you_mean_the_instance_member_this_0.code, - Diagnostics.Cannot_find_name_0_Did_you_mean_the_static_member_1_0.code, - Diagnostics._0_has_no_exported_member_named_1_Did_you_mean_2.code, - Diagnostics.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1.code, - Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1.code, - // for JSX class components - Diagnostics.No_overload_matches_this_call.code, - // for JSX FC - Diagnostics.Type_0_is_not_assignable_to_type_1.code -]; -registerCodeFix({ - errorCodes: errorCodes25, - getCodeActions: function (context) { - var sourceFile = context.sourceFile, errorCode = context.errorCode; - var info = getInfo8(sourceFile, context.span.start, context, errorCode); - if (!info) - return void 0; - var node = info.node, suggestedSymbol = info.suggestedSymbol; - var target = getEmitScriptTarget(context.host.getCompilationSettings()); - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return doChange18(t, sourceFile, node, suggestedSymbol, target); }); - return [createCodeFixAction("spelling", changes, [Diagnostics.Change_spelling_to_0, symbolName(suggestedSymbol)], fixId22, Diagnostics.Fix_all_detected_spelling_errors)]; - }, - fixIds: [fixId22], - getAllCodeActions: function (context) { return codeFixAll(context, errorCodes25, function (changes, diag2) { - var info = getInfo8(diag2.file, diag2.start, context, diag2.code); - var target = getEmitScriptTarget(context.host.getCompilationSettings()); - if (info) - doChange18(changes, context.sourceFile, info.node, info.suggestedSymbol, target); - }); } -}); -function getInfo8(sourceFile, pos, context, errorCode) { - var node = getTokenAtPosition(sourceFile, pos); - var parent2 = node.parent; - if ((errorCode === Diagnostics.No_overload_matches_this_call.code || errorCode === Diagnostics.Type_0_is_not_assignable_to_type_1.code) && !isJsxAttribute(parent2)) - return void 0; - var checker = context.program.getTypeChecker(); - var suggestedSymbol; - if (isPropertyAccessExpression(parent2) && parent2.name === node) { - Debug.assert(isMemberName(node), "Expected an identifier for spelling (property access)"); - var containingType = checker.getTypeAtLocation(parent2.expression); - if (parent2.flags & 64 /* OptionalChain */) { - containingType = checker.getNonNullableType(containingType); - } - suggestedSymbol = checker.getSuggestedSymbolForNonexistentProperty(node, containingType); - } - else if (isBinaryExpression(parent2) && parent2.operatorToken.kind === 103 /* InKeyword */ && parent2.left === node && isPrivateIdentifier(node)) { - var receiverType = checker.getTypeAtLocation(parent2.right); - suggestedSymbol = checker.getSuggestedSymbolForNonexistentProperty(node, receiverType); - } - else if (isQualifiedName(parent2) && parent2.right === node) { - var symbol = checker.getSymbolAtLocation(parent2.left); - if (symbol && symbol.flags & 1536 /* Module */) { - suggestedSymbol = checker.getSuggestedSymbolForNonexistentModule(parent2.right, symbol); - } - } - else if (isImportSpecifier(parent2) && parent2.name === node) { - Debug.assertNode(node, isIdentifier, "Expected an identifier for spelling (import)"); - var importDeclaration = findAncestor(node, isImportDeclaration); - var resolvedSourceFile = getResolvedSourceFileFromImportDeclaration(sourceFile, context, importDeclaration); - if (resolvedSourceFile && resolvedSourceFile.symbol) { - suggestedSymbol = checker.getSuggestedSymbolForNonexistentModule(node, resolvedSourceFile.symbol); - } - } - else if (isJsxAttribute(parent2) && parent2.name === node) { - Debug.assertNode(node, isIdentifier, "Expected an identifier for JSX attribute"); - var tag = findAncestor(node, isJsxOpeningLikeElement); - var props = checker.getContextualTypeForArgumentAtIndex(tag, 0); - suggestedSymbol = checker.getSuggestedSymbolForNonexistentJSXAttribute(node, props); - } - else if (hasSyntacticModifier(parent2, 16384 /* Override */) && isClassElement(parent2) && parent2.name === node) { - var baseDeclaration = findAncestor(node, isClassLike); - var baseTypeNode = baseDeclaration ? getEffectiveBaseTypeNode(baseDeclaration) : void 0; - var baseType = baseTypeNode ? checker.getTypeAtLocation(baseTypeNode) : void 0; - if (baseType) { - suggestedSymbol = checker.getSuggestedSymbolForNonexistentClassMember(getTextOfNode(node), baseType); - } - } - else { - var meaning = getMeaningFromLocation(node); - var name_112 = getTextOfNode(node); - Debug.assert(name_112 !== void 0, "name should be defined"); - suggestedSymbol = checker.getSuggestedSymbolForNonexistentSymbol(node, name_112, convertSemanticMeaningToSymbolFlags(meaning)); - } - return suggestedSymbol === void 0 ? void 0 : { node: node, suggestedSymbol: suggestedSymbol }; -} -function doChange18(changes, sourceFile, node, suggestedSymbol, target) { - var suggestion = symbolName(suggestedSymbol); - if (!isIdentifierText(suggestion, target) && isPropertyAccessExpression(node.parent)) { - var valDecl = suggestedSymbol.valueDeclaration; - if (valDecl && isNamedDeclaration(valDecl) && isPrivateIdentifier(valDecl.name)) { - changes.replaceNode(sourceFile, node, factory.createIdentifier(suggestion)); - } - else { - changes.replaceNode(sourceFile, node.parent, factory.createElementAccessExpression(node.parent.expression, factory.createStringLiteral(suggestion))); - } - } - else { - changes.replaceNode(sourceFile, node, factory.createIdentifier(suggestion)); - } -} -function convertSemanticMeaningToSymbolFlags(meaning) { - var flags = 0; - if (meaning & 4 /* Namespace */) { - flags |= 1920 /* Namespace */; - } - if (meaning & 2 /* Type */) { - flags |= 788968 /* Type */; - } - if (meaning & 1 /* Value */) { - flags |= 111551 /* Value */; - } - return flags; -} -function getResolvedSourceFileFromImportDeclaration(sourceFile, context, importDeclaration) { - if (!importDeclaration || !isStringLiteralLike(importDeclaration.moduleSpecifier)) - return void 0; - var resolvedModule = getResolvedModule(sourceFile, importDeclaration.moduleSpecifier.text, getModeForUsageLocation(sourceFile, importDeclaration.moduleSpecifier)); - if (!resolvedModule) - return void 0; - return context.program.getSourceFile(resolvedModule.resolvedFileName); -} -// src/services/codefixes/returnValueCorrect.ts -var fixId23 = "returnValueCorrect"; -var fixIdAddReturnStatement = "fixAddReturnStatement"; -var fixRemoveBracesFromArrowFunctionBody = "fixRemoveBracesFromArrowFunctionBody"; -var fixIdWrapTheBlockWithParen = "fixWrapTheBlockWithParen"; -var errorCodes26 = [ - Diagnostics.A_function_whose_declared_type_is_neither_undefined_void_nor_any_must_return_a_value.code, - Diagnostics.Type_0_is_not_assignable_to_type_1.code, - Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code -]; -registerCodeFix({ - errorCodes: errorCodes26, - fixIds: [fixIdAddReturnStatement, fixRemoveBracesFromArrowFunctionBody, fixIdWrapTheBlockWithParen], - getCodeActions: function getCodeActionsToCorrectReturnValue(context) { - var program = context.program, sourceFile = context.sourceFile, start2 = context.span.start, errorCode = context.errorCode; - var info = getInfo9(program.getTypeChecker(), sourceFile, start2, errorCode); - if (!info) - return void 0; - if (info.kind === 0 /* MissingReturnStatement */) { - return append([getActionForfixAddReturnStatement(context, info.expression, info.statement)], isArrowFunction(info.declaration) ? getActionForFixRemoveBracesFromArrowFunctionBody(context, info.declaration, info.expression, info.commentSource) : void 0); - } - else { - return [getActionForfixWrapTheBlockWithParen(context, info.declaration, info.expression)]; - } - }, - getAllCodeActions: function (context) { return codeFixAll(context, errorCodes26, function (changes, diag2) { - var info = getInfo9(context.program.getTypeChecker(), diag2.file, diag2.start, diag2.code); - if (!info) - return void 0; - switch (context.fixId) { - case fixIdAddReturnStatement: - addReturnStatement(changes, diag2.file, info.expression, info.statement); - break; - case fixRemoveBracesFromArrowFunctionBody: - if (!isArrowFunction(info.declaration)) - return void 0; - removeBlockBodyBrace(changes, diag2.file, info.declaration, info.expression, info.commentSource, - /*withParen*/ - false); - break; - case fixIdWrapTheBlockWithParen: - if (!isArrowFunction(info.declaration)) - return void 0; - wrapBlockWithParen(changes, diag2.file, info.declaration, info.expression); - break; - default: - Debug.fail(JSON.stringify(context.fixId)); - } - }); } -}); -function createObjectTypeFromLabeledExpression(checker, label, expression) { - var member = checker.createSymbol(4 /* Property */, label.escapedText); - member.links.type = checker.getTypeAtLocation(expression); - var members = createSymbolTable([member]); - return checker.createAnonymousType( - /*symbol*/ - void 0, members, [], [], []); -} -function getFixInfo(checker, declaration, expectType, isFunctionType) { - if (!declaration.body || !isBlock(declaration.body) || length(declaration.body.statements) !== 1) - return void 0; - var firstStatement = first(declaration.body.statements); - if (isExpressionStatement(firstStatement) && checkFixedAssignableTo(checker, declaration, checker.getTypeAtLocation(firstStatement.expression), expectType, isFunctionType)) { - return { - declaration: declaration, - kind: 0 /* MissingReturnStatement */, - expression: firstStatement.expression, - statement: firstStatement, - commentSource: firstStatement.expression - }; - } - else if (isLabeledStatement(firstStatement) && isExpressionStatement(firstStatement.statement)) { - var node = factory.createObjectLiteralExpression([factory.createPropertyAssignment(firstStatement.label, firstStatement.statement.expression)]); - var nodeType = createObjectTypeFromLabeledExpression(checker, firstStatement.label, firstStatement.statement.expression); - if (checkFixedAssignableTo(checker, declaration, nodeType, expectType, isFunctionType)) { - return isArrowFunction(declaration) ? { - declaration: declaration, - kind: 1 /* MissingParentheses */, - expression: node, - statement: firstStatement, - commentSource: firstStatement.statement.expression - } : { - declaration: declaration, - kind: 0 /* MissingReturnStatement */, - expression: node, - statement: firstStatement, - commentSource: firstStatement.statement.expression - }; - } - } - else if (isBlock(firstStatement) && length(firstStatement.statements) === 1) { - var firstBlockStatement = first(firstStatement.statements); - if (isLabeledStatement(firstBlockStatement) && isExpressionStatement(firstBlockStatement.statement)) { - var node = factory.createObjectLiteralExpression([factory.createPropertyAssignment(firstBlockStatement.label, firstBlockStatement.statement.expression)]); - var nodeType = createObjectTypeFromLabeledExpression(checker, firstBlockStatement.label, firstBlockStatement.statement.expression); - if (checkFixedAssignableTo(checker, declaration, nodeType, expectType, isFunctionType)) { - return { - declaration: declaration, - kind: 0 /* MissingReturnStatement */, - expression: node, - statement: firstStatement, - commentSource: firstBlockStatement - }; - } - } - } - return void 0; -} -function checkFixedAssignableTo(checker, declaration, exprType, type, isFunctionType) { - if (isFunctionType) { - var sig = checker.getSignatureFromDeclaration(declaration); - if (sig) { - if (hasSyntacticModifier(declaration, 512 /* Async */)) { - exprType = checker.createPromiseType(exprType); - } - var newSig = checker.createSignature(declaration, sig.typeParameters, sig.thisParameter, sig.parameters, exprType, - /*typePredicate*/ - void 0, sig.minArgumentCount, sig.flags); - exprType = checker.createAnonymousType( - /*symbol*/ - void 0, createSymbolTable(), [newSig], [], []); - } - else { - exprType = checker.getAnyType(); - } - } - return checker.isTypeAssignableTo(exprType, type); -} -function getInfo9(checker, sourceFile, position, errorCode) { - var node = getTokenAtPosition(sourceFile, position); - if (!node.parent) - return void 0; - var declaration = findAncestor(node.parent, isFunctionLikeDeclaration); - switch (errorCode) { - case Diagnostics.A_function_whose_declared_type_is_neither_undefined_void_nor_any_must_return_a_value.code: - if (!declaration || !declaration.body || !declaration.type || !rangeContainsRange(declaration.type, node)) - return void 0; - return getFixInfo(checker, declaration, checker.getTypeFromTypeNode(declaration.type), - /*isFunctionType*/ - false); - case Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code: - if (!declaration || !isCallExpression(declaration.parent) || !declaration.body) - return void 0; - var pos = declaration.parent.arguments.indexOf(declaration); - if (pos === -1) - return void 0; - var type = checker.getContextualTypeForArgumentAtIndex(declaration.parent, pos); - if (!type) - return void 0; - return getFixInfo(checker, declaration, type, - /*isFunctionType*/ - true); - case Diagnostics.Type_0_is_not_assignable_to_type_1.code: - if (!isDeclarationName(node) || !isVariableLike(node.parent) && !isJsxAttribute(node.parent)) - return void 0; - var initializer = getVariableLikeInitializer(node.parent); - if (!initializer || !isFunctionLikeDeclaration(initializer) || !initializer.body) - return void 0; - return getFixInfo(checker, initializer, checker.getTypeAtLocation(node.parent), - /*isFunctionType*/ - true); - } - return void 0; -} -function getVariableLikeInitializer(declaration) { - switch (declaration.kind) { - case 260 /* VariableDeclaration */: - case 169 /* Parameter */: - case 208 /* BindingElement */: - case 172 /* PropertyDeclaration */: - case 303 /* PropertyAssignment */: - return declaration.initializer; - case 291 /* JsxAttribute */: - return declaration.initializer && (isJsxExpression(declaration.initializer) ? declaration.initializer.expression : void 0); - case 304 /* ShorthandPropertyAssignment */: - case 171 /* PropertySignature */: - case 306 /* EnumMember */: - case 355 /* JSDocPropertyTag */: - case 348 /* JSDocParameterTag */: - return void 0; - } -} -function addReturnStatement(changes, sourceFile, expression, statement) { - suppressLeadingAndTrailingTrivia(expression); - var probablyNeedSemi = probablyUsesSemicolons(sourceFile); - changes.replaceNode(sourceFile, statement, factory.createReturnStatement(expression), { - leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.Exclude, - trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.Exclude, - suffix: probablyNeedSemi ? ";" : void 0 - }); -} -function removeBlockBodyBrace(changes, sourceFile, declaration, expression, commentSource, withParen) { - var newBody = withParen || needsParentheses(expression) ? factory.createParenthesizedExpression(expression) : expression; - suppressLeadingAndTrailingTrivia(commentSource); - copyComments(commentSource, newBody); - changes.replaceNode(sourceFile, declaration.body, newBody); -} -function wrapBlockWithParen(changes, sourceFile, declaration, expression) { - changes.replaceNode(sourceFile, declaration.body, factory.createParenthesizedExpression(expression)); -} -function getActionForfixAddReturnStatement(context, expression, statement) { - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return addReturnStatement(t, context.sourceFile, expression, statement); }); - return createCodeFixAction(fixId23, changes, Diagnostics.Add_a_return_statement, fixIdAddReturnStatement, Diagnostics.Add_all_missing_return_statement); -} -function getActionForFixRemoveBracesFromArrowFunctionBody(context, declaration, expression, commentSource) { - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return removeBlockBodyBrace(t, context.sourceFile, declaration, expression, commentSource, - /*withParen*/ - false); }); - return createCodeFixAction(fixId23, changes, Diagnostics.Remove_braces_from_arrow_function_body, fixRemoveBracesFromArrowFunctionBody, Diagnostics.Remove_braces_from_all_arrow_function_bodies_with_relevant_issues); -} -function getActionForfixWrapTheBlockWithParen(context, declaration, expression) { - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return wrapBlockWithParen(t, context.sourceFile, declaration, expression); }); - return createCodeFixAction(fixId23, changes, Diagnostics.Wrap_the_following_body_with_parentheses_which_should_be_an_object_literal, fixIdWrapTheBlockWithParen, Diagnostics.Wrap_all_object_literal_with_parentheses); -} -// src/services/codefixes/fixAddMissingMember.ts -var fixMissingMember = "fixMissingMember"; -var fixMissingProperties = "fixMissingProperties"; -var fixMissingAttributes = "fixMissingAttributes"; -var fixMissingFunctionDeclaration = "fixMissingFunctionDeclaration"; -var errorCodes27 = [ - Diagnostics.Property_0_does_not_exist_on_type_1.code, - Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_2.code, - Diagnostics.Property_0_is_missing_in_type_1_but_required_in_type_2.code, - Diagnostics.Type_0_is_missing_the_following_properties_from_type_1_Colon_2.code, - Diagnostics.Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more.code, - Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code, - Diagnostics.Cannot_find_name_0.code -]; -registerCodeFix({ - errorCodes: errorCodes27, - getCodeActions: function (context) { - var typeChecker = context.program.getTypeChecker(); - var info = getInfo10(context.sourceFile, context.span.start, context.errorCode, typeChecker, context.program); - if (!info) { - return void 0; - } - if (info.kind === 3 /* ObjectLiteral */) { - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return addObjectLiteralProperties(t, context, info); }); - return [createCodeFixAction(fixMissingProperties, changes, Diagnostics.Add_missing_properties, fixMissingProperties, Diagnostics.Add_all_missing_properties)]; - } - if (info.kind === 4 /* JsxAttributes */) { - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return addJsxAttributes(t, context, info); }); - return [createCodeFixAction(fixMissingAttributes, changes, Diagnostics.Add_missing_attributes, fixMissingAttributes, Diagnostics.Add_all_missing_attributes)]; - } - if (info.kind === 2 /* Function */ || info.kind === 5 /* Signature */) { - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return addFunctionDeclaration(t, context, info); }); - return [createCodeFixAction(fixMissingFunctionDeclaration, changes, [Diagnostics.Add_missing_function_declaration_0, info.token.text], fixMissingFunctionDeclaration, Diagnostics.Add_all_missing_function_declarations)]; - } - if (info.kind === 1 /* Enum */) { - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return addEnumMemberDeclaration(t, context.program.getTypeChecker(), info); }); - return [createCodeFixAction(fixMissingMember, changes, [Diagnostics.Add_missing_enum_member_0, info.token.text], fixMissingMember, Diagnostics.Add_all_missing_members)]; - } - return concatenate(getActionsForMissingMethodDeclaration(context, info), getActionsForMissingMemberDeclaration(context, info)); - }, - fixIds: [fixMissingMember, fixMissingFunctionDeclaration, fixMissingProperties, fixMissingAttributes], - getAllCodeActions: function (context) { - var program = context.program, fixId52 = context.fixId; - var checker = program.getTypeChecker(); - var seen = /* @__PURE__ */ new Map(); - var typeDeclToMembers = /* @__PURE__ */ new Map(); - return createCombinedCodeActions(ts_textChanges_exports.ChangeTracker.with(context, function (changes) { - eachDiagnostic(context, errorCodes27, function (diag2) { - var info = getInfo10(diag2.file, diag2.start, diag2.code, checker, context.program); - if (!info || !addToSeen(seen, getNodeId(info.parentDeclaration) + "#" + info.token.text)) { - return; - } - if (fixId52 === fixMissingFunctionDeclaration && (info.kind === 2 /* Function */ || info.kind === 5 /* Signature */)) { - addFunctionDeclaration(changes, context, info); - } - else if (fixId52 === fixMissingProperties && info.kind === 3 /* ObjectLiteral */) { - addObjectLiteralProperties(changes, context, info); - } - else if (fixId52 === fixMissingAttributes && info.kind === 4 /* JsxAttributes */) { - addJsxAttributes(changes, context, info); - } - else { - if (info.kind === 1 /* Enum */) { - addEnumMemberDeclaration(changes, checker, info); - } - if (info.kind === 0 /* TypeLikeDeclaration */) { - var parentDeclaration = info.parentDeclaration, token_1 = info.token; - var infos = getOrUpdate(typeDeclToMembers, parentDeclaration, function () { return []; }); - if (!infos.some(function (i) { return i.token.text === token_1.text; })) { - infos.push(info); - } - } - } - }); - typeDeclToMembers.forEach(function (infos, declaration) { - var e_770, _t; - var supers = isTypeLiteralNode(declaration) ? void 0 : getAllSupers(declaration, checker); - var _loop_55 = function (info) { - if (supers == null ? void 0 : supers.some(function (superClassOrInterface) { - var superInfos = typeDeclToMembers.get(superClassOrInterface); - return !!superInfos && superInfos.some(function (_t) { - var token2 = _t.token; - return token2.text === info.token.text; - }); - })) - return "continue"; - var parentDeclaration = info.parentDeclaration, declSourceFile = info.declSourceFile, modifierFlags = info.modifierFlags, token = info.token, call = info.call, isJSFile = info.isJSFile; - if (call && !isPrivateIdentifier(token)) { - addMethodDeclaration(context, changes, call, token, modifierFlags & 32 /* Static */, parentDeclaration, declSourceFile); - } - else { - if (isJSFile && !isInterfaceDeclaration(parentDeclaration) && !isTypeLiteralNode(parentDeclaration)) { - addMissingMemberInJs(changes, declSourceFile, parentDeclaration, token, !!(modifierFlags & 32 /* Static */)); - } - else { - var typeNode = getTypeNode2(checker, parentDeclaration, token); - addPropertyDeclaration(changes, declSourceFile, parentDeclaration, token.text, typeNode, modifierFlags & 32 /* Static */); - } - } - }; - try { - for (var infos_1 = __values(infos), infos_1_1 = infos_1.next(); !infos_1_1.done; infos_1_1 = infos_1.next()) { - var info = infos_1_1.value; - _loop_55(info); - } - } - catch (e_770_1) { e_770 = { error: e_770_1 }; } - finally { - try { - if (infos_1_1 && !infos_1_1.done && (_t = infos_1.return)) _t.call(infos_1); - } - finally { if (e_770) throw e_770.error; } - } - }); - })); - } -}); -function getInfo10(sourceFile, tokenPos, errorCode, checker, program) { - var _a; - var token = getTokenAtPosition(sourceFile, tokenPos); - var parent2 = token.parent; - if (errorCode === Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code) { - if (!(token.kind === 19 /* OpenBraceToken */ && isObjectLiteralExpression(parent2) && isCallExpression(parent2.parent))) - return void 0; - var argIndex = findIndex(parent2.parent.arguments, function (arg) { return arg === parent2; }); - if (argIndex < 0) - return void 0; - var signature = checker.getResolvedSignature(parent2.parent); - if (!(signature && signature.declaration && signature.parameters[argIndex])) - return void 0; - var param = signature.parameters[argIndex].valueDeclaration; - if (!(param && isParameter(param) && isIdentifier(param.name))) - return void 0; - var properties = arrayFrom(checker.getUnmatchedProperties(checker.getTypeAtLocation(parent2), checker.getParameterType(signature, argIndex), - /*requireOptionalProperties*/ - false, - /*matchDiscriminantProperties*/ - false)); - if (!length(properties)) - return void 0; - return { kind: 3 /* ObjectLiteral */, token: param.name, properties: properties, parentDeclaration: parent2 }; - } - if (!isMemberName(token)) - return void 0; - if (isIdentifier(token) && hasInitializer(parent2) && parent2.initializer && isObjectLiteralExpression(parent2.initializer)) { - var targetType = checker.getContextualType(token) || checker.getTypeAtLocation(token); - var properties = arrayFrom(checker.getUnmatchedProperties(checker.getTypeAtLocation(parent2.initializer), targetType, - /*requireOptionalProperties*/ - false, - /*matchDiscriminantProperties*/ - false)); - if (!length(properties)) - return void 0; - return { kind: 3 /* ObjectLiteral */, token: token, properties: properties, parentDeclaration: parent2.initializer }; - } - if (isIdentifier(token) && isJsxOpeningLikeElement(token.parent)) { - var target = getEmitScriptTarget(program.getCompilerOptions()); - var attributes = getUnmatchedAttributes(checker, target, token.parent); - if (!length(attributes)) - return void 0; - return { kind: 4 /* JsxAttributes */, token: token, attributes: attributes, parentDeclaration: token.parent }; - } - if (isIdentifier(token)) { - var type = (_a = checker.getContextualType(token)) == null ? void 0 : _a.getNonNullableType(); - if (type && getObjectFlags(type) & 16 /* Anonymous */) { - var signature = firstOrUndefined(checker.getSignaturesOfType(type, 0 /* Call */)); - if (signature === void 0) - return void 0; - return { kind: 5 /* Signature */, token: token, signature: signature, sourceFile: sourceFile, parentDeclaration: findScope(token) }; - } - if (isCallExpression(parent2) && parent2.expression === token) { - return { kind: 2 /* Function */, token: token, call: parent2, sourceFile: sourceFile, modifierFlags: 0 /* None */, parentDeclaration: findScope(token) }; - } - } - if (!isPropertyAccessExpression(parent2)) - return void 0; - var leftExpressionType = skipConstraint(checker.getTypeAtLocation(parent2.expression)); - var symbol = leftExpressionType.symbol; - if (!symbol || !symbol.declarations) - return void 0; - if (isIdentifier(token) && isCallExpression(parent2.parent)) { - var moduleDeclaration = find(symbol.declarations, isModuleDeclaration); - var moduleDeclarationSourceFile = moduleDeclaration == null ? void 0 : moduleDeclaration.getSourceFile(); - if (moduleDeclaration && moduleDeclarationSourceFile && !isSourceFileFromLibrary(program, moduleDeclarationSourceFile)) { - return { kind: 2 /* Function */, token: token, call: parent2.parent, sourceFile: sourceFile, modifierFlags: 1 /* Export */, parentDeclaration: moduleDeclaration }; - } - var moduleSourceFile = find(symbol.declarations, isSourceFile); - if (sourceFile.commonJsModuleIndicator) - return void 0; - if (moduleSourceFile && !isSourceFileFromLibrary(program, moduleSourceFile)) { - return { kind: 2 /* Function */, token: token, call: parent2.parent, sourceFile: moduleSourceFile, modifierFlags: 1 /* Export */, parentDeclaration: moduleSourceFile }; - } - } - var classDeclaration = find(symbol.declarations, isClassLike); - if (!classDeclaration && isPrivateIdentifier(token)) - return void 0; - var declaration = classDeclaration || find(symbol.declarations, function (d) { return isInterfaceDeclaration(d) || isTypeLiteralNode(d); }); - if (declaration && !isSourceFileFromLibrary(program, declaration.getSourceFile())) { - var makeStatic = !isTypeLiteralNode(declaration) && (leftExpressionType.target || leftExpressionType) !== checker.getDeclaredTypeOfSymbol(symbol); - if (makeStatic && (isPrivateIdentifier(token) || isInterfaceDeclaration(declaration))) - return void 0; - var declSourceFile = declaration.getSourceFile(); - var modifierFlags = isTypeLiteralNode(declaration) ? 0 /* None */ : (makeStatic ? 32 /* Static */ : 0 /* None */) | (startsWithUnderscore(token.text) ? 8 /* Private */ : 0 /* None */); - var isJSFile = isSourceFileJS(declSourceFile); - var call = tryCast(parent2.parent, isCallExpression); - return { kind: 0 /* TypeLikeDeclaration */, token: token, call: call, modifierFlags: modifierFlags, parentDeclaration: declaration, declSourceFile: declSourceFile, isJSFile: isJSFile }; - } - var enumDeclaration = find(symbol.declarations, isEnumDeclaration); - if (enumDeclaration && !(leftExpressionType.flags & 1056 /* EnumLike */) && !isPrivateIdentifier(token) && !isSourceFileFromLibrary(program, enumDeclaration.getSourceFile())) { - return { kind: 1 /* Enum */, token: token, parentDeclaration: enumDeclaration }; - } - return void 0; -} -function getActionsForMissingMemberDeclaration(context, info) { - return info.isJSFile ? singleElementArray(createActionForAddMissingMemberInJavascriptFile(context, info)) : createActionsForAddMissingMemberInTypeScriptFile(context, info); -} -function createActionForAddMissingMemberInJavascriptFile(context, _t) { - var parentDeclaration = _t.parentDeclaration, declSourceFile = _t.declSourceFile, modifierFlags = _t.modifierFlags, token = _t.token; - if (isInterfaceDeclaration(parentDeclaration) || isTypeLiteralNode(parentDeclaration)) { - return void 0; - } - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return addMissingMemberInJs(t, declSourceFile, parentDeclaration, token, !!(modifierFlags & 32 /* Static */)); }); - if (changes.length === 0) { - return void 0; - } - var diagnostic = modifierFlags & 32 /* Static */ ? Diagnostics.Initialize_static_property_0 : isPrivateIdentifier(token) ? Diagnostics.Declare_a_private_field_named_0 : Diagnostics.Initialize_property_0_in_the_constructor; - return createCodeFixAction(fixMissingMember, changes, [diagnostic, token.text], fixMissingMember, Diagnostics.Add_all_missing_members); -} -function addMissingMemberInJs(changeTracker, sourceFile, classDeclaration, token, makeStatic) { - var tokenName = token.text; - if (makeStatic) { - if (classDeclaration.kind === 231 /* ClassExpression */) { - return; - } - var className = classDeclaration.name.getText(); - var staticInitialization = initializePropertyToUndefined(factory.createIdentifier(className), tokenName); - changeTracker.insertNodeAfter(sourceFile, classDeclaration, staticInitialization); - } - else if (isPrivateIdentifier(token)) { - var property = factory.createPropertyDeclaration( - /*modifiers*/ - void 0, tokenName, - /*questionOrExclamationToken*/ - void 0, - /*type*/ - void 0, - /*initializer*/ - void 0); - var lastProp = getNodeToInsertPropertyAfter(classDeclaration); - if (lastProp) { - changeTracker.insertNodeAfter(sourceFile, lastProp, property); - } - else { - changeTracker.insertMemberAtStart(sourceFile, classDeclaration, property); - } - } - else { - var classConstructor = getFirstConstructorWithBody(classDeclaration); - if (!classConstructor) { - return; - } - var propertyInitialization = initializePropertyToUndefined(factory.createThis(), tokenName); - changeTracker.insertNodeAtConstructorEnd(sourceFile, classConstructor, propertyInitialization); - } -} -function initializePropertyToUndefined(obj, propertyName) { - return factory.createExpressionStatement(factory.createAssignment(factory.createPropertyAccessExpression(obj, propertyName), createUndefined())); -} -function createActionsForAddMissingMemberInTypeScriptFile(context, _t) { - var parentDeclaration = _t.parentDeclaration, declSourceFile = _t.declSourceFile, modifierFlags = _t.modifierFlags, token = _t.token; - var memberName = token.text; - var isStatic2 = modifierFlags & 32 /* Static */; - var typeNode = getTypeNode2(context.program.getTypeChecker(), parentDeclaration, token); - var addPropertyDeclarationChanges = function (modifierFlags2) { return ts_textChanges_exports.ChangeTracker.with(context, function (t) { return addPropertyDeclaration(t, declSourceFile, parentDeclaration, memberName, typeNode, modifierFlags2); }); }; - var actions2 = [createCodeFixAction(fixMissingMember, addPropertyDeclarationChanges(modifierFlags & 32 /* Static */), [isStatic2 ? Diagnostics.Declare_static_property_0 : Diagnostics.Declare_property_0, memberName], fixMissingMember, Diagnostics.Add_all_missing_members)]; - if (isStatic2 || isPrivateIdentifier(token)) { - return actions2; - } - if (modifierFlags & 8 /* Private */) { - actions2.unshift(createCodeFixActionWithoutFixAll(fixMissingMember, addPropertyDeclarationChanges(8 /* Private */), [Diagnostics.Declare_private_property_0, memberName])); - } - actions2.push(createAddIndexSignatureAction(context, declSourceFile, parentDeclaration, token.text, typeNode)); - return actions2; -} -function getTypeNode2(checker, node, token) { - var typeNode; - if (token.parent.parent.kind === 226 /* BinaryExpression */) { - var binaryExpression = token.parent.parent; - var otherExpression = token.parent === binaryExpression.left ? binaryExpression.right : binaryExpression.left; - var widenedType = checker.getWidenedType(checker.getBaseTypeOfLiteralType(checker.getTypeAtLocation(otherExpression))); - typeNode = checker.typeToTypeNode(widenedType, node, 1 /* NoTruncation */); - } - else { - var contextualType = checker.getContextualType(token.parent); - typeNode = contextualType ? checker.typeToTypeNode(contextualType, - /*enclosingDeclaration*/ - void 0, 1 /* NoTruncation */) : void 0; - } - return typeNode || factory.createKeywordTypeNode(133 /* AnyKeyword */); -} -function addPropertyDeclaration(changeTracker, sourceFile, node, tokenName, typeNode, modifierFlags) { - var modifiers = modifierFlags ? factory.createNodeArray(factory.createModifiersFromModifierFlags(modifierFlags)) : void 0; - var property = isClassLike(node) ? factory.createPropertyDeclaration(modifiers, tokenName, - /*questionOrExclamationToken*/ - void 0, typeNode, - /*initializer*/ - void 0) : factory.createPropertySignature( - /*modifiers*/ - void 0, tokenName, - /*questionToken*/ - void 0, typeNode); - var lastProp = getNodeToInsertPropertyAfter(node); - if (lastProp) { - changeTracker.insertNodeAfter(sourceFile, lastProp, property); - } - else { - changeTracker.insertMemberAtStart(sourceFile, node, property); - } -} -function getNodeToInsertPropertyAfter(node) { - var e_771, _t; - var res; - try { - for (var _u = __values(node.members), _v = _u.next(); !_v.done; _v = _u.next()) { - var member = _v.value; - if (!isPropertyDeclaration(member)) - break; - res = member; - } - } - catch (e_771_1) { e_771 = { error: e_771_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_771) throw e_771.error; } - } - return res; -} -function createAddIndexSignatureAction(context, sourceFile, node, tokenName, typeNode) { - var stringTypeNode = factory.createKeywordTypeNode(154 /* StringKeyword */); - var indexingParameter = factory.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, "x", - /*questionToken*/ - void 0, stringTypeNode, - /*initializer*/ - void 0); - var indexSignature = factory.createIndexSignature( - /*modifiers*/ - void 0, [indexingParameter], typeNode); - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return t.insertMemberAtStart(sourceFile, node, indexSignature); }); - return createCodeFixActionWithoutFixAll(fixMissingMember, changes, [Diagnostics.Add_index_signature_for_property_0, tokenName]); -} -function getActionsForMissingMethodDeclaration(context, info) { - var parentDeclaration = info.parentDeclaration, declSourceFile = info.declSourceFile, modifierFlags = info.modifierFlags, token = info.token, call = info.call; - if (call === void 0) { - return void 0; - } - var methodName = token.text; - var addMethodDeclarationChanges = function (modifierFlags2) { return ts_textChanges_exports.ChangeTracker.with(context, function (t) { return addMethodDeclaration(context, t, call, token, modifierFlags2, parentDeclaration, declSourceFile); }); }; - var actions2 = [createCodeFixAction(fixMissingMember, addMethodDeclarationChanges(modifierFlags & 32 /* Static */), [modifierFlags & 32 /* Static */ ? Diagnostics.Declare_static_method_0 : Diagnostics.Declare_method_0, methodName], fixMissingMember, Diagnostics.Add_all_missing_members)]; - if (modifierFlags & 8 /* Private */) { - actions2.unshift(createCodeFixActionWithoutFixAll(fixMissingMember, addMethodDeclarationChanges(8 /* Private */), [Diagnostics.Declare_private_method_0, methodName])); - } - return actions2; -} -function addMethodDeclaration(context, changes, callExpression, name, modifierFlags, parentDeclaration, sourceFile) { - var importAdder = createImportAdder(sourceFile, context.program, context.preferences, context.host); - var kind = isClassLike(parentDeclaration) ? 174 /* MethodDeclaration */ : 173 /* MethodSignature */; - var signatureDeclaration = createSignatureDeclarationFromCallExpression(kind, context, importAdder, callExpression, name, modifierFlags, parentDeclaration); - var containingMethodDeclaration = tryGetContainingMethodDeclaration(parentDeclaration, callExpression); - if (containingMethodDeclaration) { - changes.insertNodeAfter(sourceFile, containingMethodDeclaration, signatureDeclaration); - } - else { - changes.insertMemberAtStart(sourceFile, parentDeclaration, signatureDeclaration); - } - importAdder.writeFixes(changes); -} -function addEnumMemberDeclaration(changes, checker, _t) { - var token = _t.token, parentDeclaration = _t.parentDeclaration; - var hasStringInitializer = some(parentDeclaration.members, function (member) { - var type = checker.getTypeAtLocation(member); - return !!(type && type.flags & 402653316 /* StringLike */); - }); - var enumMember = factory.createEnumMember(token, hasStringInitializer ? factory.createStringLiteral(token.text) : void 0); - changes.replaceNode(parentDeclaration.getSourceFile(), parentDeclaration, factory.updateEnumDeclaration(parentDeclaration, parentDeclaration.modifiers, parentDeclaration.name, concatenate(parentDeclaration.members, singleElementArray(enumMember))), { - leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.IncludeAll, - trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.Exclude - }); -} -function addFunctionDeclaration(changes, context, info) { - var quotePreference = getQuotePreference(context.sourceFile, context.preferences); - var importAdder = createImportAdder(context.sourceFile, context.program, context.preferences, context.host); - var functionDeclaration = info.kind === 2 /* Function */ ? createSignatureDeclarationFromCallExpression(262 /* FunctionDeclaration */, context, importAdder, info.call, idText(info.token), info.modifierFlags, info.parentDeclaration) : createSignatureDeclarationFromSignature(262 /* FunctionDeclaration */, context, quotePreference, info.signature, createStubbedBody(Diagnostics.Function_not_implemented.message, quotePreference), info.token, - /*modifiers*/ - void 0, - /*optional*/ - void 0, - /*enclosingDeclaration*/ - void 0, importAdder); - if (functionDeclaration === void 0) { - Debug.fail("fixMissingFunctionDeclaration codefix got unexpected error."); - } - isReturnStatement(info.parentDeclaration) ? changes.insertNodeBefore(info.sourceFile, info.parentDeclaration, functionDeclaration, - /*blankLineBetween*/ - true) : changes.insertNodeAtEndOfScope(info.sourceFile, info.parentDeclaration, functionDeclaration); - importAdder.writeFixes(changes); -} -function addJsxAttributes(changes, context, info) { - var importAdder = createImportAdder(context.sourceFile, context.program, context.preferences, context.host); - var quotePreference = getQuotePreference(context.sourceFile, context.preferences); - var checker = context.program.getTypeChecker(); - var jsxAttributesNode = info.parentDeclaration.attributes; - var hasSpreadAttribute = some(jsxAttributesNode.properties, isJsxSpreadAttribute); - var attrs = map(info.attributes, function (attr) { - var value = tryGetValueFromType(context, checker, importAdder, quotePreference, checker.getTypeOfSymbol(attr), info.parentDeclaration); - var name = factory.createIdentifier(attr.name); - var jsxAttribute = factory.createJsxAttribute(name, factory.createJsxExpression( - /*dotDotDotToken*/ - void 0, value)); - setParent(name, jsxAttribute); - return jsxAttribute; - }); - var jsxAttributes = factory.createJsxAttributes(hasSpreadAttribute ? __spreadArray(__spreadArray([], __read(attrs), false), __read(jsxAttributesNode.properties), false) : __spreadArray(__spreadArray([], __read(jsxAttributesNode.properties), false), __read(attrs), false)); - var options = { prefix: jsxAttributesNode.pos === jsxAttributesNode.end ? " " : void 0 }; - changes.replaceNode(context.sourceFile, jsxAttributesNode, jsxAttributes, options); - importAdder.writeFixes(changes); -} -function addObjectLiteralProperties(changes, context, info) { - var importAdder = createImportAdder(context.sourceFile, context.program, context.preferences, context.host); - var quotePreference = getQuotePreference(context.sourceFile, context.preferences); - var target = getEmitScriptTarget(context.program.getCompilerOptions()); - var checker = context.program.getTypeChecker(); - var props = map(info.properties, function (prop) { - var initializer = tryGetValueFromType(context, checker, importAdder, quotePreference, checker.getTypeOfSymbol(prop), info.parentDeclaration); - return factory.createPropertyAssignment(createPropertyNameFromSymbol(prop, target, quotePreference, checker), initializer); - }); - var options = { - leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.Exclude, - trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.Exclude, - indentation: info.indentation - }; - changes.replaceNode(context.sourceFile, info.parentDeclaration, factory.createObjectLiteralExpression(__spreadArray(__spreadArray([], __read(info.parentDeclaration.properties), false), __read(props), false), - /*multiLine*/ - true), options); - importAdder.writeFixes(changes); -} -function tryGetValueFromType(context, checker, importAdder, quotePreference, type, enclosingDeclaration) { - if (type.flags & 3 /* AnyOrUnknown */) { - return createUndefined(); - } - if (type.flags & (4 /* String */ | 134217728 /* TemplateLiteral */)) { - return factory.createStringLiteral("", - /* isSingleQuote */ - quotePreference === 0 /* Single */); - } - if (type.flags & 8 /* Number */) { - return factory.createNumericLiteral(0); - } - if (type.flags & 64 /* BigInt */) { - return factory.createBigIntLiteral("0n"); - } - if (type.flags & 16 /* Boolean */) { - return factory.createFalse(); - } - if (type.flags & 1056 /* EnumLike */) { - var enumMember = type.symbol.exports ? firstOrUndefinedIterator(type.symbol.exports.values()) : type.symbol; - var name_113 = checker.symbolToExpression(type.symbol.parent ? type.symbol.parent : type.symbol, 111551 /* Value */, - /*enclosingDeclaration*/ - void 0, - /*flags*/ - void 0); - return enumMember === void 0 || name_113 === void 0 ? factory.createNumericLiteral(0) : factory.createPropertyAccessExpression(name_113, checker.symbolToString(enumMember)); - } - if (type.flags & 256 /* NumberLiteral */) { - return factory.createNumericLiteral(type.value); - } - if (type.flags & 2048 /* BigIntLiteral */) { - return factory.createBigIntLiteral(type.value); - } - if (type.flags & 128 /* StringLiteral */) { - return factory.createStringLiteral(type.value, - /* isSingleQuote */ - quotePreference === 0 /* Single */); - } - if (type.flags & 512 /* BooleanLiteral */) { - return type === checker.getFalseType() || type === checker.getFalseType( - /*fresh*/ - true) ? factory.createFalse() : factory.createTrue(); - } - if (type.flags & 65536 /* Null */) { - return factory.createNull(); - } - if (type.flags & 1048576 /* Union */) { - var expression = firstDefined(type.types, function (t) { return tryGetValueFromType(context, checker, importAdder, quotePreference, t, enclosingDeclaration); }); - return expression !== null && expression !== void 0 ? expression : createUndefined(); - } - if (checker.isArrayLikeType(type)) { - return factory.createArrayLiteralExpression(); - } - if (isObjectLiteralType(type)) { - var props = map(checker.getPropertiesOfType(type), function (prop) { - var initializer = tryGetValueFromType(context, checker, importAdder, quotePreference, checker.getTypeOfSymbol(prop), enclosingDeclaration); - return factory.createPropertyAssignment(prop.name, initializer); - }); - return factory.createObjectLiteralExpression(props, - /*multiLine*/ - true); - } - if (getObjectFlags(type) & 16 /* Anonymous */) { - var decl = find(type.symbol.declarations || emptyArray, or(isFunctionTypeNode, isMethodSignature, isMethodDeclaration)); - if (decl === void 0) - return createUndefined(); - var signature = checker.getSignaturesOfType(type, 0 /* Call */); - if (signature === void 0) - return createUndefined(); - var func = createSignatureDeclarationFromSignature(218 /* FunctionExpression */, context, quotePreference, signature[0], createStubbedBody(Diagnostics.Function_not_implemented.message, quotePreference), - /*name*/ - void 0, - /*modifiers*/ - void 0, - /*optional*/ - void 0, - /*enclosingDeclaration*/ - enclosingDeclaration, importAdder); - return func !== null && func !== void 0 ? func : createUndefined(); - } - if (getObjectFlags(type) & 1 /* Class */) { - var classDeclaration = getClassLikeDeclarationOfSymbol(type.symbol); - if (classDeclaration === void 0 || hasAbstractModifier(classDeclaration)) - return createUndefined(); - var constructorDeclaration = getFirstConstructorWithBody(classDeclaration); - if (constructorDeclaration && length(constructorDeclaration.parameters)) - return createUndefined(); - return factory.createNewExpression(factory.createIdentifier(type.symbol.name), - /*typeArguments*/ - void 0, - /*argumentsArray*/ - void 0); - } - return createUndefined(); -} -function createUndefined() { - return factory.createIdentifier("undefined"); -} -function isObjectLiteralType(type) { - return type.flags & 524288 /* Object */ && (getObjectFlags(type) & 128 /* ObjectLiteral */ || type.symbol && tryCast(singleOrUndefined(type.symbol.declarations), isTypeLiteralNode)); -} -function getUnmatchedAttributes(checker, target, source) { - var e_772, _t, e_773, _u; - var attrsType = checker.getContextualType(source.attributes); - if (attrsType === void 0) - return emptyArray; - var targetProps = attrsType.getProperties(); - if (!length(targetProps)) - return emptyArray; - var seenNames = /* @__PURE__ */ new Set(); - try { - for (var _v = __values(source.attributes.properties), _w = _v.next(); !_w.done; _w = _v.next()) { - var sourceProp = _w.value; - if (isJsxAttribute(sourceProp)) { - seenNames.add(getEscapedTextOfJsxAttributeName(sourceProp.name)); - } - if (isJsxSpreadAttribute(sourceProp)) { - var type = checker.getTypeAtLocation(sourceProp.expression); - try { - for (var _x = (e_773 = void 0, __values(type.getProperties())), _y = _x.next(); !_y.done; _y = _x.next()) { - var prop = _y.value; - seenNames.add(prop.escapedName); - } - } - catch (e_773_1) { e_773 = { error: e_773_1 }; } - finally { - try { - if (_y && !_y.done && (_u = _x.return)) _u.call(_x); - } - finally { if (e_773) throw e_773.error; } - } - } - } - } - catch (e_772_1) { e_772 = { error: e_772_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_772) throw e_772.error; } - } - return filter(targetProps, function (targetProp) { return isIdentifierText(targetProp.name, target, 1 /* JSX */) && !(targetProp.flags & 16777216 /* Optional */ || getCheckFlags(targetProp) & 48 /* Partial */ || seenNames.has(targetProp.escapedName)); }); -} -function tryGetContainingMethodDeclaration(node, callExpression) { - if (isTypeLiteralNode(node)) { - return void 0; - } - var declaration = findAncestor(callExpression, function (n) { return isMethodDeclaration(n) || isConstructorDeclaration(n); }); - return declaration && declaration.parent === node ? declaration : void 0; -} -function createPropertyNameFromSymbol(symbol, target, quotePreference, checker) { - if (isTransientSymbol(symbol)) { - var prop = checker.symbolToNode(symbol, 111551 /* Value */, - /*enclosingDeclaration*/ - void 0, 1073741824 /* WriteComputedProps */); - if (prop && isComputedPropertyName(prop)) - return prop; - } - return createPropertyNameNodeForIdentifierOrLiteral(symbol.name, target, quotePreference === 0 /* Single */); -} -function findScope(node) { - if (findAncestor(node, isJsxExpression)) { - var returnStatement = findAncestor(node.parent, isReturnStatement); - if (returnStatement) - return returnStatement; - } - return getSourceFileOfNode(node); -} -// src/services/codefixes/fixAddMissingNewOperator.ts -var fixId24 = "addMissingNewOperator"; -var errorCodes28 = [Diagnostics.Value_of_type_0_is_not_callable_Did_you_mean_to_include_new.code]; -registerCodeFix({ - errorCodes: errorCodes28, - getCodeActions: function (context) { - var sourceFile = context.sourceFile, span = context.span; - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return addMissingNewOperator(t, sourceFile, span); }); - return [createCodeFixAction(fixId24, changes, Diagnostics.Add_missing_new_operator_to_call, fixId24, Diagnostics.Add_missing_new_operator_to_all_calls)]; - }, - fixIds: [fixId24], - getAllCodeActions: function (context) { return codeFixAll(context, errorCodes28, function (changes, diag2) { return addMissingNewOperator(changes, context.sourceFile, diag2); }); } -}); -function addMissingNewOperator(changes, sourceFile, span) { - var call = cast(findAncestorMatchingSpan2(sourceFile, span), isCallExpression); - var newExpression = factory.createNewExpression(call.expression, call.typeArguments, call.arguments); - changes.replaceNode(sourceFile, call, newExpression); -} -function findAncestorMatchingSpan2(sourceFile, span) { - var token = getTokenAtPosition(sourceFile, span.start); - var end = textSpanEnd(span); - while (token.end < end) { - token = token.parent; - } - return token; -} -// src/services/codefixes/fixCannotFindModule.ts -var fixName2 = "fixCannotFindModule"; -var fixIdInstallTypesPackage = "installTypesPackage"; -var errorCodeCannotFindModule = Diagnostics.Cannot_find_module_0_or_its_corresponding_type_declarations.code; -var errorCodes29 = [ - errorCodeCannotFindModule, - Diagnostics.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type.code -]; -registerCodeFix({ - errorCodes: errorCodes29, - getCodeActions: function getCodeActionsToFixNotFoundModule(context) { - var host = context.host, sourceFile = context.sourceFile, start2 = context.span.start; - var packageName = tryGetImportedPackageName(sourceFile, start2); - if (packageName === void 0) - return void 0; - var typesPackageName = getTypesPackageNameToInstall(packageName, host, context.errorCode); - return typesPackageName === void 0 ? [] : [createCodeFixAction(fixName2, - /*changes*/ - [], [Diagnostics.Install_0, typesPackageName], fixIdInstallTypesPackage, Diagnostics.Install_all_missing_types_packages, getInstallCommand(sourceFile.fileName, typesPackageName))]; - }, - fixIds: [fixIdInstallTypesPackage], - getAllCodeActions: function (context) { - return codeFixAll(context, errorCodes29, function (_changes, diag2, commands) { - var packageName = tryGetImportedPackageName(diag2.file, diag2.start); - if (packageName === void 0) - return void 0; - switch (context.fixId) { - case fixIdInstallTypesPackage: { - var pkg = getTypesPackageNameToInstall(packageName, context.host, diag2.code); - if (pkg) { - commands.push(getInstallCommand(diag2.file.fileName, pkg)); - } - break; - } - default: - Debug.fail("Bad fixId: ".concat(context.fixId)); - } - }); - } -}); -function getInstallCommand(fileName, packageName) { - return { type: "install package", file: fileName, packageName: packageName }; -} -function tryGetImportedPackageName(sourceFile, pos) { - var moduleSpecifierText = tryCast(getTokenAtPosition(sourceFile, pos), isStringLiteral); - if (!moduleSpecifierText) - return void 0; - var moduleName = moduleSpecifierText.text; - var packageName = parsePackageName(moduleName).packageName; - return isExternalModuleNameRelative(packageName) ? void 0 : packageName; -} -function getTypesPackageNameToInstall(packageName, host, diagCode) { - var _a; - return diagCode === errorCodeCannotFindModule ? ts_JsTyping_exports.nodeCoreModules.has(packageName) ? "@types/node" : void 0 : ((_a = host.isKnownTypesPackageName) == null ? void 0 : _a.call(host, packageName)) ? getTypesPackageName(packageName) : void 0; -} -// src/services/codefixes/fixClassDoesntImplementInheritedAbstractMember.ts -var errorCodes30 = [ - Diagnostics.Non_abstract_class_0_does_not_implement_all_abstract_members_of_1.code -]; -var fixId25 = "fixClassDoesntImplementInheritedAbstractMember"; -registerCodeFix({ - errorCodes: errorCodes30, - getCodeActions: function getCodeActionsToFixClassNotImplementingInheritedMembers(context) { - var sourceFile = context.sourceFile, span = context.span; - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return addMissingMembers(getClass2(sourceFile, span.start), sourceFile, context, t, context.preferences); }); - return changes.length === 0 ? void 0 : [createCodeFixAction(fixId25, changes, Diagnostics.Implement_inherited_abstract_class, fixId25, Diagnostics.Implement_all_inherited_abstract_classes)]; - }, - fixIds: [fixId25], - getAllCodeActions: function getAllCodeActionsToFixClassDoesntImplementInheritedAbstractMember(context) { - var seenClassDeclarations = /* @__PURE__ */ new Map(); - return codeFixAll(context, errorCodes30, function (changes, diag2) { - var classDeclaration = getClass2(diag2.file, diag2.start); - if (addToSeen(seenClassDeclarations, getNodeId(classDeclaration))) { - addMissingMembers(classDeclaration, context.sourceFile, context, changes, context.preferences); - } - }); - } -}); -function getClass2(sourceFile, pos) { - var token = getTokenAtPosition(sourceFile, pos); - return cast(token.parent, isClassLike); -} -function addMissingMembers(classDeclaration, sourceFile, context, changeTracker, preferences) { - var extendsNode = getEffectiveBaseTypeNode(classDeclaration); - var checker = context.program.getTypeChecker(); - var instantiatedExtendsType = checker.getTypeAtLocation(extendsNode); - var abstractAndNonPrivateExtendsSymbols = checker.getPropertiesOfType(instantiatedExtendsType).filter(symbolPointsToNonPrivateAndAbstractMember); - var importAdder = createImportAdder(sourceFile, context.program, preferences, context.host); - createMissingMemberNodes(classDeclaration, abstractAndNonPrivateExtendsSymbols, sourceFile, context, preferences, importAdder, function (member) { return changeTracker.insertMemberAtStart(sourceFile, classDeclaration, member); }); - importAdder.writeFixes(changeTracker); -} -function symbolPointsToNonPrivateAndAbstractMember(symbol) { - var flags = getSyntacticModifierFlags(first(symbol.getDeclarations())); - return !(flags & 8 /* Private */) && !!(flags & 256 /* Abstract */); -} -// src/services/codefixes/fixClassSuperMustPrecedeThisAccess.ts -var fixId26 = "classSuperMustPrecedeThisAccess"; -var errorCodes31 = [Diagnostics.super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class.code]; -registerCodeFix({ - errorCodes: errorCodes31, - getCodeActions: function (context) { - var sourceFile = context.sourceFile, span = context.span; - var nodes = getNodes(sourceFile, span.start); - if (!nodes) - return void 0; - var constructor = nodes.constructor, superCall = nodes.superCall; - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return doChange19(t, sourceFile, constructor, superCall); }); - return [createCodeFixAction(fixId26, changes, Diagnostics.Make_super_call_the_first_statement_in_the_constructor, fixId26, Diagnostics.Make_all_super_calls_the_first_statement_in_their_constructor)]; - }, - fixIds: [fixId26], - getAllCodeActions: function (context) { - var sourceFile = context.sourceFile; - var seenClasses = /* @__PURE__ */ new Map(); - return codeFixAll(context, errorCodes31, function (changes, diag2) { - var nodes = getNodes(diag2.file, diag2.start); - if (!nodes) - return; - var constructor = nodes.constructor, superCall = nodes.superCall; - if (addToSeen(seenClasses, getNodeId(constructor.parent))) { - doChange19(changes, sourceFile, constructor, superCall); - } - }); - } -}); -function doChange19(changes, sourceFile, constructor, superCall) { - changes.insertNodeAtConstructorStart(sourceFile, constructor, superCall); - changes.delete(sourceFile, superCall); -} -function getNodes(sourceFile, pos) { - var token = getTokenAtPosition(sourceFile, pos); - if (token.kind !== 110 /* ThisKeyword */) - return void 0; - var constructor = getContainingFunction(token); - var superCall = findSuperCall(constructor.body); - return superCall && !superCall.expression.arguments.some(function (arg) { return isPropertyAccessExpression(arg) && arg.expression === token; }) ? { constructor: constructor, superCall: superCall } : void 0; -} -function findSuperCall(n) { - return isExpressionStatement(n) && isSuperCall(n.expression) ? n : isFunctionLike(n) ? void 0 : forEachChild(n, findSuperCall); -} -// src/services/codefixes/fixConstructorForDerivedNeedSuperCall.ts -var fixId27 = "constructorForDerivedNeedSuperCall"; -var errorCodes32 = [Diagnostics.Constructors_for_derived_classes_must_contain_a_super_call.code]; -registerCodeFix({ - errorCodes: errorCodes32, - getCodeActions: function (context) { - var sourceFile = context.sourceFile, span = context.span; - var ctr = getNode(sourceFile, span.start); - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return doChange20(t, sourceFile, ctr); }); - return [createCodeFixAction(fixId27, changes, Diagnostics.Add_missing_super_call, fixId27, Diagnostics.Add_all_missing_super_calls)]; - }, - fixIds: [fixId27], - getAllCodeActions: function (context) { return codeFixAll(context, errorCodes32, function (changes, diag2) { return doChange20(changes, context.sourceFile, getNode(diag2.file, diag2.start)); }); } -}); -function getNode(sourceFile, pos) { - var token = getTokenAtPosition(sourceFile, pos); - Debug.assert(isConstructorDeclaration(token.parent), "token should be at the constructor declaration"); - return token.parent; -} -function doChange20(changes, sourceFile, ctr) { - var superCall = factory.createExpressionStatement(factory.createCallExpression(factory.createSuper(), - /*typeArguments*/ - void 0, - /*argumentsArray*/ - emptyArray)); - changes.insertNodeAtConstructorStart(sourceFile, ctr, superCall); -} -// src/services/codefixes/fixEnableJsxFlag.ts -var fixID = "fixEnableJsxFlag"; -var errorCodes33 = [Diagnostics.Cannot_use_JSX_unless_the_jsx_flag_is_provided.code]; -registerCodeFix({ - errorCodes: errorCodes33, - getCodeActions: function getCodeActionsToFixEnableJsxFlag(context) { - var configFile = context.program.getCompilerOptions().configFile; - if (configFile === void 0) { - return void 0; - } - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (changeTracker) { return doChange21(changeTracker, configFile); }); - return [ - createCodeFixActionWithoutFixAll(fixID, changes, Diagnostics.Enable_the_jsx_flag_in_your_configuration_file) - ]; - }, - fixIds: [fixID], - getAllCodeActions: function (context) { return codeFixAll(context, errorCodes33, function (changes) { - var configFile = context.program.getCompilerOptions().configFile; - if (configFile === void 0) { - return void 0; - } - doChange21(changes, configFile); - }); } -}); -function doChange21(changeTracker, configFile) { - setJsonCompilerOptionValue(changeTracker, configFile, "jsx", factory.createStringLiteral("react")); -} -// src/services/codefixes/fixNaNEquality.ts -var fixId28 = "fixNaNEquality"; -var errorCodes34 = [ - Diagnostics.This_condition_will_always_return_0.code -]; -registerCodeFix({ - errorCodes: errorCodes34, - getCodeActions: function (context) { - var sourceFile = context.sourceFile, span = context.span, program = context.program; - var info = getInfo11(program, sourceFile, span); - if (info === void 0) - return; - var suggestion = info.suggestion, expression = info.expression, arg = info.arg; - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return doChange22(t, sourceFile, arg, expression); }); - return [createCodeFixAction(fixId28, changes, [Diagnostics.Use_0, suggestion], fixId28, Diagnostics.Use_Number_isNaN_in_all_conditions)]; - }, - fixIds: [fixId28], - getAllCodeActions: function (context) { - return codeFixAll(context, errorCodes34, function (changes, diag2) { - var info = getInfo11(context.program, diag2.file, createTextSpan(diag2.start, diag2.length)); - if (info) { - doChange22(changes, diag2.file, info.arg, info.expression); - } - }); - } -}); -function getInfo11(program, sourceFile, span) { - var diag2 = find(program.getSemanticDiagnostics(sourceFile), function (diag3) { return diag3.start === span.start && diag3.length === span.length; }); - if (diag2 === void 0 || diag2.relatedInformation === void 0) - return; - var related = find(diag2.relatedInformation, function (related2) { return related2.code === Diagnostics.Did_you_mean_0.code; }); - if (related === void 0 || related.file === void 0 || related.start === void 0 || related.length === void 0) - return; - var token = findAncestorMatchingSpan(related.file, createTextSpan(related.start, related.length)); - if (token === void 0) - return; - if (isExpression(token) && isBinaryExpression(token.parent)) { - return { suggestion: getSuggestion(related.messageText), expression: token.parent, arg: token }; - } - return void 0; -} -function doChange22(changes, sourceFile, arg, expression) { - var callExpression = factory.createCallExpression(factory.createPropertyAccessExpression(factory.createIdentifier("Number"), factory.createIdentifier("isNaN")), - /*typeArguments*/ - void 0, [arg]); - var operator = expression.operatorToken.kind; - changes.replaceNode(sourceFile, expression, operator === 38 /* ExclamationEqualsEqualsToken */ || operator === 36 /* ExclamationEqualsToken */ ? factory.createPrefixUnaryExpression(54 /* ExclamationToken */, callExpression) : callExpression); -} -function getSuggestion(messageText) { - var _t = __read(flattenDiagnosticMessageText(messageText, "\n", 0).match(/'(.*)'/) || [], 2), _ = _t[0], suggestion = _t[1]; - return suggestion; -} -// src/services/codefixes/fixModuleAndTargetOptions.ts -registerCodeFix({ - errorCodes: [ - Diagnostics.Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_or_nodenext_and_the_target_option_is_set_to_es2017_or_higher.code, - Diagnostics.Top_level_await_using_statements_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_or_nodenext_and_the_target_option_is_set_to_es2017_or_higher.code, - Diagnostics.Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_or_nodenext_and_the_target_option_is_set_to_es2017_or_higher.code - ], - getCodeActions: function getCodeActionsToFixModuleAndTarget(context) { - var compilerOptions = context.program.getCompilerOptions(); - var configFile = compilerOptions.configFile; - if (configFile === void 0) { - return void 0; - } - var codeFixes = []; - var moduleKind = getEmitModuleKind(compilerOptions); - var moduleOutOfRange = moduleKind >= 5 /* ES2015 */ && moduleKind < 99 /* ESNext */; - if (moduleOutOfRange) { - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (changes2) { - setJsonCompilerOptionValue(changes2, configFile, "module", factory.createStringLiteral("esnext")); - }); - codeFixes.push(createCodeFixActionWithoutFixAll("fixModuleOption", changes, [Diagnostics.Set_the_module_option_in_your_configuration_file_to_0, "esnext"])); - } - var target = getEmitScriptTarget(compilerOptions); - var targetOutOfRange = target < 4 /* ES2017 */ || target > 99 /* ESNext */; - if (targetOutOfRange) { - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (tracker) { - var configObject = getTsConfigObjectLiteralExpression(configFile); - if (!configObject) - return; - var options = [["target", factory.createStringLiteral("es2017")]]; - if (moduleKind === 1 /* CommonJS */) { - options.push(["module", factory.createStringLiteral("commonjs")]); - } - setJsonCompilerOptionValues(tracker, configFile, options); - }); - codeFixes.push(createCodeFixActionWithoutFixAll("fixTargetOption", changes, [Diagnostics.Set_the_target_option_in_your_configuration_file_to_0, "es2017"])); - } - return codeFixes.length ? codeFixes : void 0; - } -}); -// src/services/codefixes/fixPropertyAssignment.ts -var fixId29 = "fixPropertyAssignment"; -var errorCodes35 = [ - Diagnostics.Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_part_of_a_destructuring_pattern.code -]; -registerCodeFix({ - errorCodes: errorCodes35, - fixIds: [fixId29], - getCodeActions: function (context) { - var sourceFile = context.sourceFile, span = context.span; - var property = getProperty2(sourceFile, span.start); - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return doChange23(t, context.sourceFile, property); }); - return [createCodeFixAction(fixId29, changes, [Diagnostics.Change_0_to_1, "=", ":"], fixId29, [Diagnostics.Switch_each_misused_0_to_1, "=", ":"])]; - }, - getAllCodeActions: function (context) { return codeFixAll(context, errorCodes35, function (changes, diag2) { return doChange23(changes, diag2.file, getProperty2(diag2.file, diag2.start)); }); } -}); -function doChange23(changes, sourceFile, node) { - changes.replaceNode(sourceFile, node, factory.createPropertyAssignment(node.name, node.objectAssignmentInitializer)); -} -function getProperty2(sourceFile, pos) { - return cast(getTokenAtPosition(sourceFile, pos).parent, isShorthandPropertyAssignment); -} -// src/services/codefixes/fixExtendsInterfaceBecomesImplements.ts -var fixId30 = "extendsInterfaceBecomesImplements"; -var errorCodes36 = [Diagnostics.Cannot_extend_an_interface_0_Did_you_mean_implements.code]; -registerCodeFix({ - errorCodes: errorCodes36, - getCodeActions: function (context) { - var sourceFile = context.sourceFile; - var nodes = getNodes2(sourceFile, context.span.start); - if (!nodes) - return void 0; - var extendsToken = nodes.extendsToken, heritageClauses = nodes.heritageClauses; - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return doChanges2(t, sourceFile, extendsToken, heritageClauses); }); - return [createCodeFixAction(fixId30, changes, Diagnostics.Change_extends_to_implements, fixId30, Diagnostics.Change_all_extended_interfaces_to_implements)]; - }, - fixIds: [fixId30], - getAllCodeActions: function (context) { return codeFixAll(context, errorCodes36, function (changes, diag2) { - var nodes = getNodes2(diag2.file, diag2.start); - if (nodes) - doChanges2(changes, diag2.file, nodes.extendsToken, nodes.heritageClauses); - }); } -}); -function getNodes2(sourceFile, pos) { - var token = getTokenAtPosition(sourceFile, pos); - var heritageClauses = getContainingClass(token).heritageClauses; - var extendsToken = heritageClauses[0].getFirstToken(); - return extendsToken.kind === 96 /* ExtendsKeyword */ ? { extendsToken: extendsToken, heritageClauses: heritageClauses } : void 0; -} -function doChanges2(changes, sourceFile, extendsToken, heritageClauses) { - changes.replaceNode(sourceFile, extendsToken, factory.createToken(119 /* ImplementsKeyword */)); - if (heritageClauses.length === 2 && heritageClauses[0].token === 96 /* ExtendsKeyword */ && heritageClauses[1].token === 119 /* ImplementsKeyword */) { - var implementsToken = heritageClauses[1].getFirstToken(); - var implementsFullStart = implementsToken.getFullStart(); - changes.replaceRange(sourceFile, { pos: implementsFullStart, end: implementsFullStart }, factory.createToken(28 /* CommaToken */)); - var text = sourceFile.text; - var end = implementsToken.end; - while (end < text.length && isWhiteSpaceSingleLine(text.charCodeAt(end))) { - end++; - } - changes.deleteRange(sourceFile, { pos: implementsToken.getStart(), end: end }); - } -} -// src/services/codefixes/fixForgottenThisPropertyAccess.ts -var fixId31 = "forgottenThisPropertyAccess"; -var didYouMeanStaticMemberCode = Diagnostics.Cannot_find_name_0_Did_you_mean_the_static_member_1_0.code; -var errorCodes37 = [ - Diagnostics.Cannot_find_name_0_Did_you_mean_the_instance_member_this_0.code, - Diagnostics.Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member_declaration_property_access_or_on_the_left_hand_side_of_an_in_expression.code, - didYouMeanStaticMemberCode -]; -registerCodeFix({ - errorCodes: errorCodes37, - getCodeActions: function (context) { - var sourceFile = context.sourceFile; - var info = getInfo12(sourceFile, context.span.start, context.errorCode); - if (!info) { - return void 0; - } - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return doChange24(t, sourceFile, info); }); - return [createCodeFixAction(fixId31, changes, [Diagnostics.Add_0_to_unresolved_variable, info.className || "this"], fixId31, Diagnostics.Add_qualifier_to_all_unresolved_variables_matching_a_member_name)]; - }, - fixIds: [fixId31], - getAllCodeActions: function (context) { return codeFixAll(context, errorCodes37, function (changes, diag2) { - var info = getInfo12(diag2.file, diag2.start, diag2.code); - if (info) - doChange24(changes, context.sourceFile, info); - }); } -}); -function getInfo12(sourceFile, pos, diagCode) { - var node = getTokenAtPosition(sourceFile, pos); - if (isIdentifier(node) || isPrivateIdentifier(node)) { - return { node: node, className: diagCode === didYouMeanStaticMemberCode ? getContainingClass(node).name.text : void 0 }; - } -} -function doChange24(changes, sourceFile, _t) { - var node = _t.node, className = _t.className; - suppressLeadingAndTrailingTrivia(node); - changes.replaceNode(sourceFile, node, factory.createPropertyAccessExpression(className ? factory.createIdentifier(className) : factory.createThis(), node)); -} -// src/services/codefixes/fixInvalidJsxCharacters.ts -var fixIdExpression = "fixInvalidJsxCharacters_expression"; -var fixIdHtmlEntity = "fixInvalidJsxCharacters_htmlEntity"; -var errorCodes38 = [ - Diagnostics.Unexpected_token_Did_you_mean_or_gt.code, - Diagnostics.Unexpected_token_Did_you_mean_or_rbrace.code -]; -registerCodeFix({ - errorCodes: errorCodes38, - fixIds: [fixIdExpression, fixIdHtmlEntity], - getCodeActions: function (context) { - var sourceFile = context.sourceFile, preferences = context.preferences, span = context.span; - var changeToExpression = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return doChange25(t, preferences, sourceFile, span.start, - /*useHtmlEntity*/ - false); }); - var changeToHtmlEntity = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return doChange25(t, preferences, sourceFile, span.start, - /*useHtmlEntity*/ - true); }); - return [ - createCodeFixAction(fixIdExpression, changeToExpression, Diagnostics.Wrap_invalid_character_in_an_expression_container, fixIdExpression, Diagnostics.Wrap_all_invalid_characters_in_an_expression_container), - createCodeFixAction(fixIdHtmlEntity, changeToHtmlEntity, Diagnostics.Convert_invalid_character_to_its_html_entity_code, fixIdHtmlEntity, Diagnostics.Convert_all_invalid_characters_to_HTML_entity_code) - ]; - }, - getAllCodeActions: function (context) { - return codeFixAll(context, errorCodes38, function (changes, diagnostic) { return doChange25(changes, context.preferences, diagnostic.file, diagnostic.start, context.fixId === fixIdHtmlEntity); }); - } -}); -var htmlEntity = { - ">": ">", - "}": "}" -}; -function isValidCharacter(character) { - return hasProperty(htmlEntity, character); -} -function doChange25(changes, preferences, sourceFile, start2, useHtmlEntity) { - var character = sourceFile.getText()[start2]; - if (!isValidCharacter(character)) { - return; - } - var replacement = useHtmlEntity ? htmlEntity[character] : "{".concat(quote(sourceFile, preferences, character), "}"); - changes.replaceRangeWithText(sourceFile, { pos: start2, end: start2 + 1 }, replacement); -} -// src/services/codefixes/fixUnmatchedParameter.ts -var deleteUnmatchedParameter = "deleteUnmatchedParameter"; -var renameUnmatchedParameter = "renameUnmatchedParameter"; -var errorCodes39 = [ - Diagnostics.JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name.code -]; -registerCodeFix({ - fixIds: [deleteUnmatchedParameter, renameUnmatchedParameter], - errorCodes: errorCodes39, - getCodeActions: function getCodeActionsToFixUnmatchedParameter(context) { - var sourceFile = context.sourceFile, span = context.span; - var actions2 = []; - var info = getInfo13(sourceFile, span.start); - if (info) { - append(actions2, getDeleteAction(context, info)); - append(actions2, getRenameAction(context, info)); - return actions2; - } - return void 0; - }, - getAllCodeActions: function getAllCodeActionsToFixUnmatchedParameter(context) { - var tagsToSignature = /* @__PURE__ */ new Map(); - return createCombinedCodeActions(ts_textChanges_exports.ChangeTracker.with(context, function (changes) { - eachDiagnostic(context, errorCodes39, function (_t) { - var file = _t.file, start2 = _t.start; - var info = getInfo13(file, start2); - if (info) { - tagsToSignature.set(info.signature, append(tagsToSignature.get(info.signature), info.jsDocParameterTag)); - } - }); - tagsToSignature.forEach(function (tags, signature) { - if (context.fixId === deleteUnmatchedParameter) { - var tagsSet_1 = new Set(tags); - changes.filterJSDocTags(signature.getSourceFile(), signature, function (t) { return !tagsSet_1.has(t); }); - } - }); - })); - } -}); -function getDeleteAction(context, _t) { - var name = _t.name, jsDocHost = _t.jsDocHost, jsDocParameterTag = _t.jsDocParameterTag; - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (changeTracker) { return changeTracker.filterJSDocTags(context.sourceFile, jsDocHost, function (t) { return t !== jsDocParameterTag; }); }); - return createCodeFixAction(deleteUnmatchedParameter, changes, [Diagnostics.Delete_unused_param_tag_0, name.getText(context.sourceFile)], deleteUnmatchedParameter, Diagnostics.Delete_all_unused_param_tags); -} -function getRenameAction(context, _t) { - var e_774, _u; - var name = _t.name, jsDocHost = _t.jsDocHost, signature = _t.signature, jsDocParameterTag = _t.jsDocParameterTag; - if (!length(signature.parameters)) - return void 0; - var sourceFile = context.sourceFile; - var tags = getJSDocTags(signature); - var names = /* @__PURE__ */ new Set(); - try { - for (var tags_1 = __values(tags), tags_1_1 = tags_1.next(); !tags_1_1.done; tags_1_1 = tags_1.next()) { - var tag = tags_1_1.value; - if (isJSDocParameterTag(tag) && isIdentifier(tag.name)) { - names.add(tag.name.escapedText); - } - } - } - catch (e_774_1) { e_774 = { error: e_774_1 }; } - finally { - try { - if (tags_1_1 && !tags_1_1.done && (_u = tags_1.return)) _u.call(tags_1); - } - finally { if (e_774) throw e_774.error; } - } - var parameterName = firstDefined(signature.parameters, function (p) { return isIdentifier(p.name) && !names.has(p.name.escapedText) ? p.name.getText(sourceFile) : void 0; }); - if (parameterName === void 0) - return void 0; - var newJSDocParameterTag = factory.updateJSDocParameterTag(jsDocParameterTag, jsDocParameterTag.tagName, factory.createIdentifier(parameterName), jsDocParameterTag.isBracketed, jsDocParameterTag.typeExpression, jsDocParameterTag.isNameFirst, jsDocParameterTag.comment); - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (changeTracker) { return changeTracker.replaceJSDocComment(sourceFile, jsDocHost, map(tags, function (t) { return t === jsDocParameterTag ? newJSDocParameterTag : t; })); }); - return createCodeFixActionWithoutFixAll(renameUnmatchedParameter, changes, [Diagnostics.Rename_param_tag_name_0_to_1, name.getText(sourceFile), parameterName]); -} -function getInfo13(sourceFile, pos) { - var token = getTokenAtPosition(sourceFile, pos); - if (token.parent && isJSDocParameterTag(token.parent) && isIdentifier(token.parent.name)) { - var jsDocParameterTag = token.parent; - var jsDocHost = getJSDocHost(jsDocParameterTag); - var signature = getHostSignatureFromJSDoc(jsDocParameterTag); - if (jsDocHost && signature) { - return { jsDocHost: jsDocHost, signature: signature, name: token.parent.name, jsDocParameterTag: jsDocParameterTag }; - } - } - return void 0; -} -// src/services/codefixes/fixUnreferenceableDecoratorMetadata.ts -var fixId32 = "fixUnreferenceableDecoratorMetadata"; -var errorCodes40 = [Diagnostics.A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_when_isolatedModules_and_emitDecoratorMetadata_are_enabled.code]; -registerCodeFix({ - errorCodes: errorCodes40, - getCodeActions: function (context) { - var importDeclaration = getImportDeclaration(context.sourceFile, context.program, context.span.start); - if (!importDeclaration) - return; - var namespaceChanges = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return importDeclaration.kind === 276 /* ImportSpecifier */ && doNamespaceImportChange(t, context.sourceFile, importDeclaration, context.program); }); - var typeOnlyChanges = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return doTypeOnlyImportChange(t, context.sourceFile, importDeclaration, context.program); }); - var actions2; - if (namespaceChanges.length) { - actions2 = append(actions2, createCodeFixActionWithoutFixAll(fixId32, namespaceChanges, Diagnostics.Convert_named_imports_to_namespace_import)); - } - if (typeOnlyChanges.length) { - actions2 = append(actions2, createCodeFixActionWithoutFixAll(fixId32, typeOnlyChanges, Diagnostics.Use_import_type)); - } - return actions2; - }, - fixIds: [fixId32] -}); -function getImportDeclaration(sourceFile, program, start2) { - var identifier = tryCast(getTokenAtPosition(sourceFile, start2), isIdentifier); - if (!identifier || identifier.parent.kind !== 183 /* TypeReference */) - return; - var checker = program.getTypeChecker(); - var symbol = checker.getSymbolAtLocation(identifier); - return find((symbol == null ? void 0 : symbol.declarations) || emptyArray, or(isImportClause, isImportSpecifier, isImportEqualsDeclaration)); -} -function doTypeOnlyImportChange(changes, sourceFile, importDeclaration, program) { - if (importDeclaration.kind === 271 /* ImportEqualsDeclaration */) { - changes.insertModifierBefore(sourceFile, 156 /* TypeKeyword */, importDeclaration.name); - return; - } - var importClause = importDeclaration.kind === 273 /* ImportClause */ ? importDeclaration : importDeclaration.parent.parent; - if (importClause.name && importClause.namedBindings) { - return; - } - var checker = program.getTypeChecker(); - var importsValue = !!forEachImportClauseDeclaration(importClause, function (decl) { - if (skipAlias(decl.symbol, checker).flags & 111551 /* Value */) - return true; - }); - if (importsValue) { - return; - } - changes.insertModifierBefore(sourceFile, 156 /* TypeKeyword */, importClause); -} -function doNamespaceImportChange(changes, sourceFile, importDeclaration, program) { - ts_refactor_exports.doChangeNamedToNamespaceOrDefault(sourceFile, program, changes, importDeclaration.parent); -} -// src/services/codefixes/fixUnusedIdentifier.ts -var fixName3 = "unusedIdentifier"; -var fixIdPrefix = "unusedIdentifier_prefix"; -var fixIdDelete = "unusedIdentifier_delete"; -var fixIdDeleteImports = "unusedIdentifier_deleteImports"; -var fixIdInfer = "unusedIdentifier_infer"; -var errorCodes41 = [ - Diagnostics._0_is_declared_but_its_value_is_never_read.code, - Diagnostics._0_is_declared_but_never_used.code, - Diagnostics.Property_0_is_declared_but_its_value_is_never_read.code, - Diagnostics.All_imports_in_import_declaration_are_unused.code, - Diagnostics.All_destructured_elements_are_unused.code, - Diagnostics.All_variables_are_unused.code, - Diagnostics.All_type_parameters_are_unused.code -]; -registerCodeFix({ - errorCodes: errorCodes41, - getCodeActions: function (context) { - var errorCode = context.errorCode, sourceFile = context.sourceFile, program = context.program, cancellationToken = context.cancellationToken; - var checker = program.getTypeChecker(); - var sourceFiles = program.getSourceFiles(); - var token = getTokenAtPosition(sourceFile, context.span.start); - if (isJSDocTemplateTag(token)) { - return [createDeleteFix(ts_textChanges_exports.ChangeTracker.with(context, function (t) { return t.delete(sourceFile, token); }), Diagnostics.Remove_template_tag)]; - } - if (token.kind === 30 /* LessThanToken */) { - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return deleteTypeParameters(t, sourceFile, token); }); - return [createDeleteFix(changes, Diagnostics.Remove_type_parameters)]; - } - var importDecl = tryGetFullImport(token); - if (importDecl) { - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return t.delete(sourceFile, importDecl); }); - return [createCodeFixAction(fixName3, changes, [Diagnostics.Remove_import_from_0, showModuleSpecifier(importDecl)], fixIdDeleteImports, Diagnostics.Delete_all_unused_imports)]; - } - else if (isImport(token)) { - var deletion = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return tryDeleteDeclaration(sourceFile, token, t, checker, sourceFiles, program, cancellationToken, - /*isFixAll*/ - false); }); - if (deletion.length) { - return [createCodeFixAction(fixName3, deletion, [Diagnostics.Remove_unused_declaration_for_Colon_0, token.getText(sourceFile)], fixIdDeleteImports, Diagnostics.Delete_all_unused_imports)]; - } - } - if (isObjectBindingPattern(token.parent) || isArrayBindingPattern(token.parent)) { - if (isParameter(token.parent.parent)) { - var elements = token.parent.elements; - var diagnostic = [ - elements.length > 1 ? Diagnostics.Remove_unused_declarations_for_Colon_0 : Diagnostics.Remove_unused_declaration_for_Colon_0, - map(elements, function (e) { return e.getText(sourceFile); }).join(", ") - ]; - return [ - createDeleteFix(ts_textChanges_exports.ChangeTracker.with(context, function (t) { return deleteDestructuringElements(t, sourceFile, token.parent); }), diagnostic) - ]; - } - return [ - createDeleteFix(ts_textChanges_exports.ChangeTracker.with(context, function (t) { return deleteDestructuring(context, t, sourceFile, token.parent); }), Diagnostics.Remove_unused_destructuring_declaration) - ]; - } - if (canDeleteEntireVariableStatement(sourceFile, token)) { - return [ - createDeleteFix(ts_textChanges_exports.ChangeTracker.with(context, function (t) { return deleteEntireVariableStatement(t, sourceFile, token.parent); }), Diagnostics.Remove_variable_statement) - ]; - } - var result = []; - if (token.kind === 140 /* InferKeyword */) { - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return changeInferToUnknown(t, sourceFile, token); }); - var name_114 = cast(token.parent, isInferTypeNode).typeParameter.name.text; - result.push(createCodeFixAction(fixName3, changes, [Diagnostics.Replace_infer_0_with_unknown, name_114], fixIdInfer, Diagnostics.Replace_all_unused_infer_with_unknown)); - } - else { - var deletion = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return tryDeleteDeclaration(sourceFile, token, t, checker, sourceFiles, program, cancellationToken, - /*isFixAll*/ - false); }); - if (deletion.length) { - var name_115 = isComputedPropertyName(token.parent) ? token.parent : token; - result.push(createDeleteFix(deletion, [Diagnostics.Remove_unused_declaration_for_Colon_0, name_115.getText(sourceFile)])); - } - } - var prefix = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return tryPrefixDeclaration(t, errorCode, sourceFile, token); }); - if (prefix.length) { - result.push(createCodeFixAction(fixName3, prefix, [Diagnostics.Prefix_0_with_an_underscore, token.getText(sourceFile)], fixIdPrefix, Diagnostics.Prefix_all_unused_declarations_with_where_possible)); - } - return result; - }, - fixIds: [fixIdPrefix, fixIdDelete, fixIdDeleteImports, fixIdInfer], - getAllCodeActions: function (context) { - var sourceFile = context.sourceFile, program = context.program, cancellationToken = context.cancellationToken; - var checker = program.getTypeChecker(); - var sourceFiles = program.getSourceFiles(); - return codeFixAll(context, errorCodes41, function (changes, diag2) { - var token = getTokenAtPosition(sourceFile, diag2.start); - switch (context.fixId) { - case fixIdPrefix: - tryPrefixDeclaration(changes, diag2.code, sourceFile, token); - break; - case fixIdDeleteImports: { - var importDecl = tryGetFullImport(token); - if (importDecl) { - changes.delete(sourceFile, importDecl); - } - else if (isImport(token)) { - tryDeleteDeclaration(sourceFile, token, changes, checker, sourceFiles, program, cancellationToken, - /*isFixAll*/ - true); - } - break; - } - case fixIdDelete: { - if (token.kind === 140 /* InferKeyword */ || isImport(token)) { - break; - } - else if (isJSDocTemplateTag(token)) { - changes.delete(sourceFile, token); - } - else if (token.kind === 30 /* LessThanToken */) { - deleteTypeParameters(changes, sourceFile, token); - } - else if (isObjectBindingPattern(token.parent)) { - if (token.parent.parent.initializer) { - break; - } - else if (!isParameter(token.parent.parent) || isNotProvidedArguments(token.parent.parent, checker, sourceFiles)) { - changes.delete(sourceFile, token.parent.parent); - } - } - else if (isArrayBindingPattern(token.parent.parent) && token.parent.parent.parent.initializer) { - break; - } - else if (canDeleteEntireVariableStatement(sourceFile, token)) { - deleteEntireVariableStatement(changes, sourceFile, token.parent); - } - else { - tryDeleteDeclaration(sourceFile, token, changes, checker, sourceFiles, program, cancellationToken, - /*isFixAll*/ - true); - } - break; - } - case fixIdInfer: - if (token.kind === 140 /* InferKeyword */) { - changeInferToUnknown(changes, sourceFile, token); - } - break; - default: - Debug.fail(JSON.stringify(context.fixId)); - } - }); - } -}); -function changeInferToUnknown(changes, sourceFile, token) { - changes.replaceNode(sourceFile, token.parent, factory.createKeywordTypeNode(159 /* UnknownKeyword */)); -} -function createDeleteFix(changes, diag2) { - return createCodeFixAction(fixName3, changes, diag2, fixIdDelete, Diagnostics.Delete_all_unused_declarations); -} -function deleteTypeParameters(changes, sourceFile, token) { - changes.delete(sourceFile, Debug.checkDefined(cast(token.parent, isDeclarationWithTypeParameterChildren).typeParameters, "The type parameter to delete should exist")); -} -function isImport(token) { - return token.kind === 102 /* ImportKeyword */ || token.kind === 80 /* Identifier */ && (token.parent.kind === 276 /* ImportSpecifier */ || token.parent.kind === 273 /* ImportClause */); -} -function tryGetFullImport(token) { - return token.kind === 102 /* ImportKeyword */ ? tryCast(token.parent, isImportDeclaration) : void 0; -} -function canDeleteEntireVariableStatement(sourceFile, token) { - return isVariableDeclarationList(token.parent) && first(token.parent.getChildren(sourceFile)) === token; -} -function deleteEntireVariableStatement(changes, sourceFile, node) { - changes.delete(sourceFile, node.parent.kind === 243 /* VariableStatement */ ? node.parent : node); -} -function deleteDestructuringElements(changes, sourceFile, node) { - forEach(node.elements, function (n) { return changes.delete(sourceFile, n); }); -} -function deleteDestructuring(context, changes, sourceFile, _t) { - var parent2 = _t.parent; - if (isVariableDeclaration(parent2) && parent2.initializer && isCallLikeExpression(parent2.initializer)) { - if (isVariableDeclarationList(parent2.parent) && length(parent2.parent.declarations) > 1) { - var varStatement = parent2.parent.parent; - var pos = varStatement.getStart(sourceFile); - var end = varStatement.end; - changes.delete(sourceFile, parent2); - changes.insertNodeAt(sourceFile, end, parent2.initializer, { - prefix: getNewLineOrDefaultFromHost(context.host, context.formatContext.options) + sourceFile.text.slice(getPrecedingNonSpaceCharacterPosition(sourceFile.text, pos - 1), pos), - suffix: probablyUsesSemicolons(sourceFile) ? ";" : "" - }); - } - else { - changes.replaceNode(sourceFile, parent2.parent, parent2.initializer); - } - } - else { - changes.delete(sourceFile, parent2); - } -} -function tryPrefixDeclaration(changes, errorCode, sourceFile, token) { - if (errorCode === Diagnostics.Property_0_is_declared_but_its_value_is_never_read.code) - return; - if (token.kind === 140 /* InferKeyword */) { - token = cast(token.parent, isInferTypeNode).typeParameter.name; - } - if (isIdentifier(token) && canPrefix(token)) { - changes.replaceNode(sourceFile, token, factory.createIdentifier("_".concat(token.text))); - if (isParameter(token.parent)) { - getJSDocParameterTags(token.parent).forEach(function (tag) { - if (isIdentifier(tag.name)) { - changes.replaceNode(sourceFile, tag.name, factory.createIdentifier("_".concat(tag.name.text))); - } - }); - } - } -} -function canPrefix(token) { - switch (token.parent.kind) { - case 169 /* Parameter */: - case 168 /* TypeParameter */: - return true; - case 260 /* VariableDeclaration */: { - var varDecl = token.parent; - switch (varDecl.parent.parent.kind) { - case 250 /* ForOfStatement */: - case 249 /* ForInStatement */: - return true; - } - } - } - return false; -} -function tryDeleteDeclaration(sourceFile, token, changes, checker, sourceFiles, program, cancellationToken, isFixAll) { - tryDeleteDeclarationWorker(token, changes, sourceFile, checker, sourceFiles, program, cancellationToken, isFixAll); - if (isIdentifier(token)) { - ts_FindAllReferences_exports.Core.eachSymbolReferenceInFile(token, checker, sourceFile, function (ref) { - if (isPropertyAccessExpression(ref.parent) && ref.parent.name === ref) - ref = ref.parent; - if (!isFixAll && mayDeleteExpression(ref)) { - changes.delete(sourceFile, ref.parent.parent); - } - }); - } -} -function tryDeleteDeclarationWorker(token, changes, sourceFile, checker, sourceFiles, program, cancellationToken, isFixAll) { - var parent2 = token.parent; - if (isParameter(parent2)) { - tryDeleteParameter(changes, sourceFile, parent2, checker, sourceFiles, program, cancellationToken, isFixAll); - } - else if (!(isFixAll && isIdentifier(token) && ts_FindAllReferences_exports.Core.isSymbolReferencedInFile(token, checker, sourceFile))) { - var node = isImportClause(parent2) ? token : isComputedPropertyName(parent2) ? parent2.parent : parent2; - Debug.assert(node !== sourceFile, "should not delete whole source file"); - changes.delete(sourceFile, node); - } -} -function tryDeleteParameter(changes, sourceFile, parameter, checker, sourceFiles, program, cancellationToken, isFixAll) { - var e_775, _t; - if (isFixAll === void 0) { isFixAll = false; } - if (mayDeleteParameter(checker, sourceFile, parameter, sourceFiles, program, cancellationToken, isFixAll)) { - if (parameter.modifiers && parameter.modifiers.length > 0 && (!isIdentifier(parameter.name) || ts_FindAllReferences_exports.Core.isSymbolReferencedInFile(parameter.name, checker, sourceFile))) { - try { - for (var _u = __values(parameter.modifiers), _v = _u.next(); !_v.done; _v = _u.next()) { - var modifier = _v.value; - if (isModifier(modifier)) { - changes.deleteModifier(sourceFile, modifier); - } - } - } - catch (e_775_1) { e_775 = { error: e_775_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_775) throw e_775.error; } - } - } - else if (!parameter.initializer && isNotProvidedArguments(parameter, checker, sourceFiles)) { - changes.delete(sourceFile, parameter); - } - } -} -function isNotProvidedArguments(parameter, checker, sourceFiles) { - var index = parameter.parent.parameters.indexOf(parameter); - return !ts_FindAllReferences_exports.Core.someSignatureUsage(parameter.parent, sourceFiles, checker, function (_, call) { return !call || call.arguments.length > index; }); -} -function mayDeleteParameter(checker, sourceFile, parameter, sourceFiles, program, cancellationToken, isFixAll) { - var e_776, _t, e_777, _u; - var parent2 = parameter.parent; - switch (parent2.kind) { - case 174 /* MethodDeclaration */: - case 176 /* Constructor */: - var index = parent2.parameters.indexOf(parameter); - var referent = isMethodDeclaration(parent2) ? parent2.name : parent2; - var entries = ts_FindAllReferences_exports.Core.getReferencedSymbolsForNode(parent2.pos, referent, program, sourceFiles, cancellationToken); - if (entries) { - try { - for (var entries_5 = __values(entries), entries_5_1 = entries_5.next(); !entries_5_1.done; entries_5_1 = entries_5.next()) { - var entry = entries_5_1.value; - try { - for (var _v = (e_777 = void 0, __values(entry.references)), _w = _v.next(); !_w.done; _w = _v.next()) { - var reference = _w.value; - if (reference.kind === ts_FindAllReferences_exports.EntryKind.Node) { - var isSuperCall2 = isSuperKeyword(reference.node) && isCallExpression(reference.node.parent) && reference.node.parent.arguments.length > index; - var isSuperMethodCall = isPropertyAccessExpression(reference.node.parent) && isSuperKeyword(reference.node.parent.expression) && isCallExpression(reference.node.parent.parent) && reference.node.parent.parent.arguments.length > index; - var isOverriddenMethod = (isMethodDeclaration(reference.node.parent) || isMethodSignature(reference.node.parent)) && reference.node.parent !== parameter.parent && reference.node.parent.parameters.length > index; - if (isSuperCall2 || isSuperMethodCall || isOverriddenMethod) - return false; - } - } - } - catch (e_777_1) { e_777 = { error: e_777_1 }; } - finally { - try { - if (_w && !_w.done && (_u = _v.return)) _u.call(_v); - } - finally { if (e_777) throw e_777.error; } - } - } - } - catch (e_776_1) { e_776 = { error: e_776_1 }; } - finally { - try { - if (entries_5_1 && !entries_5_1.done && (_t = entries_5.return)) _t.call(entries_5); - } - finally { if (e_776) throw e_776.error; } - } - } - return true; - case 262 /* FunctionDeclaration */: { - if (parent2.name && isCallbackLike(checker, sourceFile, parent2.name)) { - return isLastParameter(parent2, parameter, isFixAll); - } - return true; - } - case 218 /* FunctionExpression */: - case 219 /* ArrowFunction */: - return isLastParameter(parent2, parameter, isFixAll); - case 178 /* SetAccessor */: - return false; - case 177 /* GetAccessor */: - return true; - default: - return Debug.failBadSyntaxKind(parent2); - } -} -function isCallbackLike(checker, sourceFile, name) { - return !!ts_FindAllReferences_exports.Core.eachSymbolReferenceInFile(name, checker, sourceFile, function (reference) { return isIdentifier(reference) && isCallExpression(reference.parent) && reference.parent.arguments.indexOf(reference) >= 0; }); -} -function isLastParameter(func, parameter, isFixAll) { - var parameters = func.parameters; - var index = parameters.indexOf(parameter); - Debug.assert(index !== -1, "The parameter should already be in the list"); - return isFixAll ? parameters.slice(index + 1).every(function (p) { return isIdentifier(p.name) && !p.symbol.isReferenced; }) : index === parameters.length - 1; -} -function mayDeleteExpression(node) { - return (isBinaryExpression(node.parent) && node.parent.left === node || (isPostfixUnaryExpression(node.parent) || isPrefixUnaryExpression(node.parent)) && node.parent.operand === node) && isExpressionStatement(node.parent.parent); -} -// src/services/codefixes/fixUnreachableCode.ts -var fixId33 = "fixUnreachableCode"; -var errorCodes42 = [Diagnostics.Unreachable_code_detected.code]; -registerCodeFix({ - errorCodes: errorCodes42, - getCodeActions: function (context) { - var syntacticDiagnostics = context.program.getSyntacticDiagnostics(context.sourceFile, context.cancellationToken); - if (syntacticDiagnostics.length) - return; - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return doChange26(t, context.sourceFile, context.span.start, context.span.length, context.errorCode); }); - return [createCodeFixAction(fixId33, changes, Diagnostics.Remove_unreachable_code, fixId33, Diagnostics.Remove_all_unreachable_code)]; - }, - fixIds: [fixId33], - getAllCodeActions: function (context) { return codeFixAll(context, errorCodes42, function (changes, diag2) { return doChange26(changes, diag2.file, diag2.start, diag2.length, diag2.code); }); } -}); -function doChange26(changes, sourceFile, start2, length2, errorCode) { - var token = getTokenAtPosition(sourceFile, start2); - var statement = findAncestor(token, isStatement); - if (statement.getStart(sourceFile) !== token.getStart(sourceFile)) { - var logData = JSON.stringify({ - statementKind: Debug.formatSyntaxKind(statement.kind), - tokenKind: Debug.formatSyntaxKind(token.kind), - errorCode: errorCode, - start: start2, - length: length2 - }); - Debug.fail("Token and statement should start at the same point. " + logData); - } - var container = (isBlock(statement.parent) ? statement.parent : statement).parent; - if (!isBlock(statement.parent) || statement === first(statement.parent.statements)) { - switch (container.kind) { - case 245 /* IfStatement */: - if (container.elseStatement) { - if (isBlock(statement.parent)) { - break; - } - else { - changes.replaceNode(sourceFile, statement, factory.createBlock(emptyArray)); - } - return; - } - case 247 /* WhileStatement */: - case 248 /* ForStatement */: - changes.delete(sourceFile, container); - return; - } - } - if (isBlock(statement.parent)) { - var end_2 = start2 + length2; - var lastStatement = Debug.checkDefined(lastWhere(sliceAfter(statement.parent.statements, statement), function (s) { return s.pos < end_2; }), "Some statement should be last"); - changes.deleteNodeRange(sourceFile, statement, lastStatement); - } - else { - changes.delete(sourceFile, statement); - } -} -function lastWhere(a, pred) { - var e_778, _t; - var last2; - try { - for (var a_1 = __values(a), a_1_1 = a_1.next(); !a_1_1.done; a_1_1 = a_1.next()) { - var value = a_1_1.value; - if (!pred(value)) - break; - last2 = value; - } - } - catch (e_778_1) { e_778 = { error: e_778_1 }; } - finally { - try { - if (a_1_1 && !a_1_1.done && (_t = a_1.return)) _t.call(a_1); - } - finally { if (e_778) throw e_778.error; } - } - return last2; -} -// src/services/codefixes/fixUnusedLabel.ts -var fixId34 = "fixUnusedLabel"; -var errorCodes43 = [Diagnostics.Unused_label.code]; -registerCodeFix({ - errorCodes: errorCodes43, - getCodeActions: function (context) { - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return doChange27(t, context.sourceFile, context.span.start); }); - return [createCodeFixAction(fixId34, changes, Diagnostics.Remove_unused_label, fixId34, Diagnostics.Remove_all_unused_labels)]; - }, - fixIds: [fixId34], - getAllCodeActions: function (context) { return codeFixAll(context, errorCodes43, function (changes, diag2) { return doChange27(changes, diag2.file, diag2.start); }); } -}); -function doChange27(changes, sourceFile, start2) { - var token = getTokenAtPosition(sourceFile, start2); - var labeledStatement = cast(token.parent, isLabeledStatement); - var pos = token.getStart(sourceFile); - var statementPos = labeledStatement.statement.getStart(sourceFile); - var end = positionsAreOnSameLine(pos, statementPos, sourceFile) ? statementPos : skipTrivia(sourceFile.text, findChildOfKind(labeledStatement, 59 /* ColonToken */, sourceFile).end, - /*stopAfterLineBreak*/ - true); - changes.deleteRange(sourceFile, { pos: pos, end: end }); -} -// src/services/codefixes/fixJSDocTypes.ts -var fixIdPlain = "fixJSDocTypes_plain"; -var fixIdNullable = "fixJSDocTypes_nullable"; -var errorCodes44 = [ - Diagnostics.JSDoc_types_can_only_be_used_inside_documentation_comments.code, - Diagnostics._0_at_the_end_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1.code, - Diagnostics._0_at_the_start_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1.code -]; -registerCodeFix({ - errorCodes: errorCodes44, - getCodeActions: function (context) { - var sourceFile = context.sourceFile; - var checker = context.program.getTypeChecker(); - var info = getInfo14(sourceFile, context.span.start, checker); - if (!info) - return void 0; - var typeNode = info.typeNode, type = info.type; - var original = typeNode.getText(sourceFile); - var actions2 = [fix(type, fixIdPlain, Diagnostics.Change_all_jsdoc_style_types_to_TypeScript)]; - if (typeNode.kind === 321 /* JSDocNullableType */) { - actions2.push(fix(type, fixIdNullable, Diagnostics.Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types)); - } - return actions2; - function fix(type2, fixId52, fixAllDescription) { - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return doChange28(t, sourceFile, typeNode, type2, checker); }); - return createCodeFixAction("jdocTypes", changes, [Diagnostics.Change_0_to_1, original, checker.typeToString(type2)], fixId52, fixAllDescription); - } - }, - fixIds: [fixIdPlain, fixIdNullable], - getAllCodeActions: function (context) { - var fixId52 = context.fixId, program = context.program, sourceFile = context.sourceFile; - var checker = program.getTypeChecker(); - return codeFixAll(context, errorCodes44, function (changes, err) { - var info = getInfo14(err.file, err.start, checker); - if (!info) - return; - var typeNode = info.typeNode, type = info.type; - var fixedType = typeNode.kind === 321 /* JSDocNullableType */ && fixId52 === fixIdNullable ? checker.getNullableType(type, 32768 /* Undefined */) : type; - doChange28(changes, sourceFile, typeNode, fixedType, checker); - }); - } -}); -function doChange28(changes, sourceFile, oldTypeNode, newType, checker) { - changes.replaceNode(sourceFile, oldTypeNode, checker.typeToTypeNode(newType, - /*enclosingDeclaration*/ - oldTypeNode, - /*flags*/ - void 0)); -} -function getInfo14(sourceFile, pos, checker) { - var decl = findAncestor(getTokenAtPosition(sourceFile, pos), isTypeContainer); - var typeNode = decl && decl.type; - return typeNode && { typeNode: typeNode, type: getType(checker, typeNode) }; -} -function isTypeContainer(node) { - switch (node.kind) { - case 234 /* AsExpression */: - case 179 /* CallSignature */: - case 180 /* ConstructSignature */: - case 262 /* FunctionDeclaration */: - case 177 /* GetAccessor */: - case 181 /* IndexSignature */: - case 200 /* MappedType */: - case 174 /* MethodDeclaration */: - case 173 /* MethodSignature */: - case 169 /* Parameter */: - case 172 /* PropertyDeclaration */: - case 171 /* PropertySignature */: - case 178 /* SetAccessor */: - case 265 /* TypeAliasDeclaration */: - case 216 /* TypeAssertionExpression */: - case 260 /* VariableDeclaration */: - return true; - default: - return false; - } -} -function getType(checker, node) { - if (isJSDocNullableType(node)) { - var type = checker.getTypeFromTypeNode(node.type); - if (type === checker.getNeverType() || type === checker.getVoidType()) { - return type; - } - return checker.getUnionType(append([type, checker.getUndefinedType()], node.postfix ? void 0 : checker.getNullType())); - } - return checker.getTypeFromTypeNode(node); -} -// src/services/codefixes/fixMissingCallParentheses.ts -var fixId35 = "fixMissingCallParentheses"; -var errorCodes45 = [ - Diagnostics.This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_instead.code -]; -registerCodeFix({ - errorCodes: errorCodes45, - fixIds: [fixId35], - getCodeActions: function (context) { - var sourceFile = context.sourceFile, span = context.span; - var callName = getCallName(sourceFile, span.start); - if (!callName) - return; - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return doChange29(t, context.sourceFile, callName); }); - return [createCodeFixAction(fixId35, changes, Diagnostics.Add_missing_call_parentheses, fixId35, Diagnostics.Add_all_missing_call_parentheses)]; - }, - getAllCodeActions: function (context) { return codeFixAll(context, errorCodes45, function (changes, diag2) { - var callName = getCallName(diag2.file, diag2.start); - if (callName) - doChange29(changes, diag2.file, callName); - }); } -}); -function doChange29(changes, sourceFile, name) { - changes.replaceNodeWithText(sourceFile, name, "".concat(name.text, "()")); -} -function getCallName(sourceFile, start2) { - var token = getTokenAtPosition(sourceFile, start2); - if (isPropertyAccessExpression(token.parent)) { - var current = token.parent; - while (isPropertyAccessExpression(current.parent)) { - current = current.parent; - } - return current.name; - } - if (isIdentifier(token)) { - return token; - } - return void 0; -} -// src/services/codefixes/fixAwaitInSyncFunction.ts -var fixId36 = "fixAwaitInSyncFunction"; -var errorCodes46 = [ - Diagnostics.await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules.code, - Diagnostics.await_using_statements_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules.code, - Diagnostics.for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules.code, - Diagnostics.Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function.code -]; -registerCodeFix({ - errorCodes: errorCodes46, - getCodeActions: function (context) { - var sourceFile = context.sourceFile, span = context.span; - var nodes = getNodes3(sourceFile, span.start); - if (!nodes) - return void 0; - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return doChange30(t, sourceFile, nodes); }); - return [createCodeFixAction(fixId36, changes, Diagnostics.Add_async_modifier_to_containing_function, fixId36, Diagnostics.Add_all_missing_async_modifiers)]; - }, - fixIds: [fixId36], - getAllCodeActions: function getAllCodeActionsToFixAwaitInSyncFunction(context) { - var seen = /* @__PURE__ */ new Map(); - return codeFixAll(context, errorCodes46, function (changes, diag2) { - var nodes = getNodes3(diag2.file, diag2.start); - if (!nodes || !addToSeen(seen, getNodeId(nodes.insertBefore))) - return; - doChange30(changes, context.sourceFile, nodes); - }); - } -}); -function getReturnType(expr) { - if (expr.type) { - return expr.type; - } - if (isVariableDeclaration(expr.parent) && expr.parent.type && isFunctionTypeNode(expr.parent.type)) { - return expr.parent.type.type; - } -} -function getNodes3(sourceFile, start2) { - var token = getTokenAtPosition(sourceFile, start2); - var containingFunction = getContainingFunction(token); - if (!containingFunction) { - return; - } - var insertBefore; - switch (containingFunction.kind) { - case 174 /* MethodDeclaration */: - insertBefore = containingFunction.name; - break; - case 262 /* FunctionDeclaration */: - case 218 /* FunctionExpression */: - insertBefore = findChildOfKind(containingFunction, 100 /* FunctionKeyword */, sourceFile); - break; - case 219 /* ArrowFunction */: - var kind = containingFunction.typeParameters ? 30 /* LessThanToken */ : 21 /* OpenParenToken */; - insertBefore = findChildOfKind(containingFunction, kind, sourceFile) || first(containingFunction.parameters); - break; - default: - return; - } - return insertBefore && { - insertBefore: insertBefore, - returnType: getReturnType(containingFunction) - }; -} -function doChange30(changes, sourceFile, _t) { - var insertBefore = _t.insertBefore, returnType = _t.returnType; - if (returnType) { - var entityName = getEntityNameFromTypeNode(returnType); - if (!entityName || entityName.kind !== 80 /* Identifier */ || entityName.text !== "Promise") { - changes.replaceNode(sourceFile, returnType, factory.createTypeReferenceNode("Promise", factory.createNodeArray([returnType]))); - } - } - changes.insertModifierBefore(sourceFile, 134 /* AsyncKeyword */, insertBefore); -} -// src/services/codefixes/fixPropertyOverrideAccessor.ts -var errorCodes47 = [ - Diagnostics._0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property.code, - Diagnostics._0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor.code -]; -var fixId37 = "fixPropertyOverrideAccessor"; -registerCodeFix({ - errorCodes: errorCodes47, - getCodeActions: function (context) { - var edits = doChange31(context.sourceFile, context.span.start, context.span.length, context.errorCode, context); - if (edits) { - return [createCodeFixAction(fixId37, edits, Diagnostics.Generate_get_and_set_accessors, fixId37, Diagnostics.Generate_get_and_set_accessors_for_all_overriding_properties)]; - } - }, - fixIds: [fixId37], - getAllCodeActions: function (context) { return codeFixAll(context, errorCodes47, function (changes, diag2) { - var e_779, _t; - var edits = doChange31(diag2.file, diag2.start, diag2.length, diag2.code, context); - if (edits) { - try { - for (var edits_2 = __values(edits), edits_2_1 = edits_2.next(); !edits_2_1.done; edits_2_1 = edits_2.next()) { - var edit = edits_2_1.value; - changes.pushRaw(context.sourceFile, edit); - } - } - catch (e_779_1) { e_779 = { error: e_779_1 }; } - finally { - try { - if (edits_2_1 && !edits_2_1.done && (_t = edits_2.return)) _t.call(edits_2); - } - finally { if (e_779) throw e_779.error; } - } - } - }); } -}); -function doChange31(file, start2, length2, code, context) { - var startPosition; - var endPosition; - if (code === Diagnostics._0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property.code) { - startPosition = start2; - endPosition = start2 + length2; - } - else if (code === Diagnostics._0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor.code) { - var checker = context.program.getTypeChecker(); - var node = getTokenAtPosition(file, start2).parent; - Debug.assert(isAccessor(node), "error span of fixPropertyOverrideAccessor should only be on an accessor"); - var containingClass = node.parent; - Debug.assert(isClassLike(containingClass), "erroneous accessors should only be inside classes"); - var base = singleOrUndefined(getAllSupers(containingClass, checker)); - if (!base) - return []; - var name_116 = unescapeLeadingUnderscores(getTextOfPropertyName(node.name)); - var baseProp = checker.getPropertyOfType(checker.getTypeAtLocation(base), name_116); - if (!baseProp || !baseProp.valueDeclaration) - return []; - startPosition = baseProp.valueDeclaration.pos; - endPosition = baseProp.valueDeclaration.end; - file = getSourceFileOfNode(baseProp.valueDeclaration); - } - else { - Debug.fail("fixPropertyOverrideAccessor codefix got unexpected error code " + code); - } - return generateAccessorFromProperty(file, context.program, startPosition, endPosition, context, Diagnostics.Generate_get_and_set_accessors.message); -} -// src/services/codefixes/inferFromUsage.ts -var fixId38 = "inferFromUsage"; -var errorCodes48 = [ - // Variable declarations - Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined.code, - // Variable uses - Diagnostics.Variable_0_implicitly_has_an_1_type.code, - // Parameter declarations - Diagnostics.Parameter_0_implicitly_has_an_1_type.code, - Diagnostics.Rest_parameter_0_implicitly_has_an_any_type.code, - // Get Accessor declarations - Diagnostics.Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation.code, - Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type.code, - // Set Accessor declarations - Diagnostics.Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation.code, - // Property declarations - Diagnostics.Member_0_implicitly_has_an_1_type.code, - //// Suggestions - // Variable declarations - Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage.code, - // Variable uses - Diagnostics.Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code, - // Parameter declarations - Diagnostics.Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code, - Diagnostics.Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage.code, - // Get Accessor declarations - Diagnostics.Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage.code, - Diagnostics._0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage.code, - // Set Accessor declarations - Diagnostics.Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage.code, - // Property declarations - Diagnostics.Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code, - // Function expressions and declarations - Diagnostics.this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation.code -]; -registerCodeFix({ - errorCodes: errorCodes48, - getCodeActions: function (context) { - var sourceFile = context.sourceFile, program = context.program, start2 = context.span.start, errorCode = context.errorCode, cancellationToken = context.cancellationToken, host = context.host, preferences = context.preferences; - var token = getTokenAtPosition(sourceFile, start2); - var declaration; - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (changes2) { - declaration = doChange32(changes2, sourceFile, token, errorCode, program, cancellationToken, - /*markSeen*/ - returnTrue, host, preferences); - }); - var name = declaration && getNameOfDeclaration(declaration); - return !name || changes.length === 0 ? void 0 : [createCodeFixAction(fixId38, changes, [getDiagnostic(errorCode, token), getTextOfNode(name)], fixId38, Diagnostics.Infer_all_types_from_usage)]; - }, - fixIds: [fixId38], - getAllCodeActions: function (context) { - var sourceFile = context.sourceFile, program = context.program, cancellationToken = context.cancellationToken, host = context.host, preferences = context.preferences; - var markSeen = nodeSeenTracker(); - return codeFixAll(context, errorCodes48, function (changes, err) { - doChange32(changes, sourceFile, getTokenAtPosition(err.file, err.start), err.code, program, cancellationToken, markSeen, host, preferences); - }); - } -}); -function getDiagnostic(errorCode, token) { - switch (errorCode) { - case Diagnostics.Parameter_0_implicitly_has_an_1_type.code: - case Diagnostics.Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code: - return isSetAccessorDeclaration(getContainingFunction(token)) ? Diagnostics.Infer_type_of_0_from_usage : Diagnostics.Infer_parameter_types_from_usage; - case Diagnostics.Rest_parameter_0_implicitly_has_an_any_type.code: - case Diagnostics.Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage.code: - return Diagnostics.Infer_parameter_types_from_usage; - case Diagnostics.this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation.code: - return Diagnostics.Infer_this_type_of_0_from_usage; - default: - return Diagnostics.Infer_type_of_0_from_usage; - } -} -function mapSuggestionDiagnostic(errorCode) { - switch (errorCode) { - case Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage.code: - return Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined.code; - case Diagnostics.Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code: - return Diagnostics.Variable_0_implicitly_has_an_1_type.code; - case Diagnostics.Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code: - return Diagnostics.Parameter_0_implicitly_has_an_1_type.code; - case Diagnostics.Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage.code: - return Diagnostics.Rest_parameter_0_implicitly_has_an_any_type.code; - case Diagnostics.Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage.code: - return Diagnostics.Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation.code; - case Diagnostics._0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage.code: - return Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type.code; - case Diagnostics.Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage.code: - return Diagnostics.Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation.code; - case Diagnostics.Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code: - return Diagnostics.Member_0_implicitly_has_an_1_type.code; - } - return errorCode; -} -function doChange32(changes, sourceFile, token, errorCode, program, cancellationToken, markSeen, host, preferences) { - if (!isParameterPropertyModifier(token.kind) && token.kind !== 80 /* Identifier */ && token.kind !== 26 /* DotDotDotToken */ && token.kind !== 110 /* ThisKeyword */) { - return void 0; - } - var parent2 = token.parent; - var importAdder = createImportAdder(sourceFile, program, preferences, host); - errorCode = mapSuggestionDiagnostic(errorCode); - switch (errorCode) { - case Diagnostics.Member_0_implicitly_has_an_1_type.code: - case Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined.code: - if (isVariableDeclaration(parent2) && markSeen(parent2) || isPropertyDeclaration(parent2) || isPropertySignature(parent2)) { - annotateVariableDeclaration(changes, importAdder, sourceFile, parent2, program, host, cancellationToken); - importAdder.writeFixes(changes); - return parent2; - } - if (isPropertyAccessExpression(parent2)) { - var type = inferTypeForVariableFromUsage(parent2.name, program, cancellationToken); - var typeNode = getTypeNodeIfAccessible(type, parent2, program, host); - if (typeNode) { - var typeTag = factory.createJSDocTypeTag( - /*tagName*/ - void 0, factory.createJSDocTypeExpression(typeNode), - /*comment*/ - void 0); - changes.addJSDocTags(sourceFile, cast(parent2.parent.parent, isExpressionStatement), [typeTag]); - } - importAdder.writeFixes(changes); - return parent2; - } - return void 0; - case Diagnostics.Variable_0_implicitly_has_an_1_type.code: { - var symbol = program.getTypeChecker().getSymbolAtLocation(token); - if (symbol && symbol.valueDeclaration && isVariableDeclaration(symbol.valueDeclaration) && markSeen(symbol.valueDeclaration)) { - annotateVariableDeclaration(changes, importAdder, getSourceFileOfNode(symbol.valueDeclaration), symbol.valueDeclaration, program, host, cancellationToken); - importAdder.writeFixes(changes); - return symbol.valueDeclaration; - } - return void 0; - } - } - var containingFunction = getContainingFunction(token); - if (containingFunction === void 0) { - return void 0; - } - var declaration; - switch (errorCode) { - case Diagnostics.Parameter_0_implicitly_has_an_1_type.code: - if (isSetAccessorDeclaration(containingFunction)) { - annotateSetAccessor(changes, importAdder, sourceFile, containingFunction, program, host, cancellationToken); - declaration = containingFunction; - break; - } - case Diagnostics.Rest_parameter_0_implicitly_has_an_any_type.code: - if (markSeen(containingFunction)) { - var param = cast(parent2, isParameter); - annotateParameters(changes, importAdder, sourceFile, param, containingFunction, program, host, cancellationToken); - declaration = param; - } - break; - case Diagnostics.Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation.code: - case Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type.code: - if (isGetAccessorDeclaration(containingFunction) && isIdentifier(containingFunction.name)) { - annotate(changes, importAdder, sourceFile, containingFunction, inferTypeForVariableFromUsage(containingFunction.name, program, cancellationToken), program, host); - declaration = containingFunction; - } - break; - case Diagnostics.Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation.code: - if (isSetAccessorDeclaration(containingFunction)) { - annotateSetAccessor(changes, importAdder, sourceFile, containingFunction, program, host, cancellationToken); - declaration = containingFunction; - } - break; - case Diagnostics.this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation.code: - if (ts_textChanges_exports.isThisTypeAnnotatable(containingFunction) && markSeen(containingFunction)) { - annotateThis(changes, sourceFile, containingFunction, program, host, cancellationToken); - declaration = containingFunction; - } - break; - default: - return Debug.fail(String(errorCode)); - } - importAdder.writeFixes(changes); - return declaration; -} -function annotateVariableDeclaration(changes, importAdder, sourceFile, declaration, program, host, cancellationToken) { - if (isIdentifier(declaration.name)) { - annotate(changes, importAdder, sourceFile, declaration, inferTypeForVariableFromUsage(declaration.name, program, cancellationToken), program, host); - } -} -function annotateParameters(changes, importAdder, sourceFile, parameterDeclaration, containingFunction, program, host, cancellationToken) { - var e_780, _t; - if (!isIdentifier(parameterDeclaration.name)) { - return; - } - var parameterInferences = inferTypeForParametersFromUsage(containingFunction, sourceFile, program, cancellationToken); - Debug.assert(containingFunction.parameters.length === parameterInferences.length, "Parameter count and inference count should match"); - if (isInJSFile(containingFunction)) { - annotateJSDocParameters(changes, sourceFile, parameterInferences, program, host); - } - else { - var needParens = isArrowFunction(containingFunction) && !findChildOfKind(containingFunction, 21 /* OpenParenToken */, sourceFile); - if (needParens) - changes.insertNodeBefore(sourceFile, first(containingFunction.parameters), factory.createToken(21 /* OpenParenToken */)); - try { - for (var parameterInferences_1 = __values(parameterInferences), parameterInferences_1_1 = parameterInferences_1.next(); !parameterInferences_1_1.done; parameterInferences_1_1 = parameterInferences_1.next()) { - var _u = parameterInferences_1_1.value, declaration = _u.declaration, type = _u.type; - if (declaration && !declaration.type && !declaration.initializer) { - annotate(changes, importAdder, sourceFile, declaration, type, program, host); - } - } - } - catch (e_780_1) { e_780 = { error: e_780_1 }; } - finally { - try { - if (parameterInferences_1_1 && !parameterInferences_1_1.done && (_t = parameterInferences_1.return)) _t.call(parameterInferences_1); - } - finally { if (e_780) throw e_780.error; } - } - if (needParens) - changes.insertNodeAfter(sourceFile, last(containingFunction.parameters), factory.createToken(22 /* CloseParenToken */)); - } -} -function annotateThis(changes, sourceFile, containingFunction, program, host, cancellationToken) { - var references = getFunctionReferences(containingFunction, sourceFile, program, cancellationToken); - if (!references || !references.length) { - return; - } - var thisInference = inferTypeFromReferences(program, references, cancellationToken).thisParameter(); - var typeNode = getTypeNodeIfAccessible(thisInference, containingFunction, program, host); - if (!typeNode) { - return; - } - if (isInJSFile(containingFunction)) { - annotateJSDocThis(changes, sourceFile, containingFunction, typeNode); - } - else { - changes.tryInsertThisTypeAnnotation(sourceFile, containingFunction, typeNode); - } -} -function annotateJSDocThis(changes, sourceFile, containingFunction, typeNode) { - changes.addJSDocTags(sourceFile, containingFunction, [ - factory.createJSDocThisTag( - /*tagName*/ - void 0, factory.createJSDocTypeExpression(typeNode)) - ]); -} -function annotateSetAccessor(changes, importAdder, sourceFile, setAccessorDeclaration, program, host, cancellationToken) { - var param = firstOrUndefined(setAccessorDeclaration.parameters); - if (param && isIdentifier(setAccessorDeclaration.name) && isIdentifier(param.name)) { - var type = inferTypeForVariableFromUsage(setAccessorDeclaration.name, program, cancellationToken); - if (type === program.getTypeChecker().getAnyType()) { - type = inferTypeForVariableFromUsage(param.name, program, cancellationToken); - } - if (isInJSFile(setAccessorDeclaration)) { - annotateJSDocParameters(changes, sourceFile, [{ declaration: param, type: type }], program, host); - } - else { - annotate(changes, importAdder, sourceFile, param, type, program, host); - } - } -} -function annotate(changes, importAdder, sourceFile, declaration, type, program, host) { - var typeNode = getTypeNodeIfAccessible(type, declaration, program, host); - if (typeNode) { - if (isInJSFile(sourceFile) && declaration.kind !== 171 /* PropertySignature */) { - var parent2 = isVariableDeclaration(declaration) ? tryCast(declaration.parent.parent, isVariableStatement) : declaration; - if (!parent2) { - return; - } - var typeExpression = factory.createJSDocTypeExpression(typeNode); - var typeTag = isGetAccessorDeclaration(declaration) ? factory.createJSDocReturnTag( - /*tagName*/ - void 0, typeExpression, - /*comment*/ - void 0) : factory.createJSDocTypeTag( - /*tagName*/ - void 0, typeExpression, - /*comment*/ - void 0); - changes.addJSDocTags(sourceFile, parent2, [typeTag]); - } - else if (!tryReplaceImportTypeNodeWithAutoImport(typeNode, declaration, sourceFile, changes, importAdder, getEmitScriptTarget(program.getCompilerOptions()))) { - changes.tryInsertTypeAnnotation(sourceFile, declaration, typeNode); - } - } -} -function tryReplaceImportTypeNodeWithAutoImport(typeNode, declaration, sourceFile, changes, importAdder, scriptTarget) { - var importableReference = tryGetAutoImportableReferenceFromTypeNode(typeNode, scriptTarget); - if (importableReference && changes.tryInsertTypeAnnotation(sourceFile, declaration, importableReference.typeNode)) { - forEach(importableReference.symbols, function (s) { return importAdder.addImportFromExportedSymbol(s, - /*isValidTypeOnlyUseSite*/ - true); }); - return true; - } - return false; -} -function annotateJSDocParameters(changes, sourceFile, parameterInferences, program, host) { - var signature = parameterInferences.length && parameterInferences[0].declaration.parent; - if (!signature) { - return; - } - var inferences = mapDefined(parameterInferences, function (inference) { - var param = inference.declaration; - if (param.initializer || getJSDocType(param) || !isIdentifier(param.name)) { - return; - } - var typeNode = inference.type && getTypeNodeIfAccessible(inference.type, param, program, host); - if (typeNode) { - var name_117 = factory.cloneNode(param.name); - setEmitFlags(name_117, 3072 /* NoComments */ | 4096 /* NoNestedComments */); - return { name: factory.cloneNode(param.name), param: param, isOptional: !!inference.isOptional, typeNode: typeNode }; - } - }); - if (!inferences.length) { - return; - } - if (isArrowFunction(signature) || isFunctionExpression(signature)) { - var needParens = isArrowFunction(signature) && !findChildOfKind(signature, 21 /* OpenParenToken */, sourceFile); - if (needParens) { - changes.insertNodeBefore(sourceFile, first(signature.parameters), factory.createToken(21 /* OpenParenToken */)); - } - forEach(inferences, function (_t) { - var typeNode = _t.typeNode, param = _t.param; - var typeTag = factory.createJSDocTypeTag( - /*tagName*/ - void 0, factory.createJSDocTypeExpression(typeNode)); - var jsDoc = factory.createJSDocComment( - /*comment*/ - void 0, [typeTag]); - changes.insertNodeAt(sourceFile, param.getStart(sourceFile), jsDoc, { suffix: " " }); - }); - if (needParens) { - changes.insertNodeAfter(sourceFile, last(signature.parameters), factory.createToken(22 /* CloseParenToken */)); - } - } - else { - var paramTags = map(inferences, function (_t) { - var name = _t.name, typeNode = _t.typeNode, isOptional = _t.isOptional; - return factory.createJSDocParameterTag( - /*tagName*/ - void 0, name, - /*isBracketed*/ - !!isOptional, factory.createJSDocTypeExpression(typeNode), - /*isNameFirst*/ - false, - /*comment*/ - void 0); - }); - changes.addJSDocTags(sourceFile, signature, paramTags); - } -} -function getReferences(token, program, cancellationToken) { - return mapDefined(ts_FindAllReferences_exports.getReferenceEntriesForNode(-1, token, program, program.getSourceFiles(), cancellationToken), function (entry) { return entry.kind !== ts_FindAllReferences_exports.EntryKind.Span ? tryCast(entry.node, isIdentifier) : void 0; }); -} -function inferTypeForVariableFromUsage(token, program, cancellationToken) { - var references = getReferences(token, program, cancellationToken); - return inferTypeFromReferences(program, references, cancellationToken).single(); -} -function inferTypeForParametersFromUsage(func, sourceFile, program, cancellationToken) { - var references = getFunctionReferences(func, sourceFile, program, cancellationToken); - return references && inferTypeFromReferences(program, references, cancellationToken).parameters(func) || func.parameters.map(function (p) { return ({ - declaration: p, - type: isIdentifier(p.name) ? inferTypeForVariableFromUsage(p.name, program, cancellationToken) : program.getTypeChecker().getAnyType() - }); }); -} -function getFunctionReferences(containingFunction, sourceFile, program, cancellationToken) { - var searchToken; - switch (containingFunction.kind) { - case 176 /* Constructor */: - searchToken = findChildOfKind(containingFunction, 137 /* ConstructorKeyword */, sourceFile); - break; - case 219 /* ArrowFunction */: - case 218 /* FunctionExpression */: - var parent2 = containingFunction.parent; - searchToken = (isVariableDeclaration(parent2) || isPropertyDeclaration(parent2)) && isIdentifier(parent2.name) ? parent2.name : containingFunction.name; - break; - case 262 /* FunctionDeclaration */: - case 174 /* MethodDeclaration */: - case 173 /* MethodSignature */: - searchToken = containingFunction.name; - break; - } - if (!searchToken) { - return void 0; - } - return getReferences(searchToken, program, cancellationToken); -} -function inferTypeFromReferences(program, references, cancellationToken) { - var checker = program.getTypeChecker(); - var builtinConstructors = { - string: function () { return checker.getStringType(); }, - number: function () { return checker.getNumberType(); }, - Array: function (t) { return checker.createArrayType(t); }, - Promise: function (t) { return checker.createPromiseType(t); } - }; - var builtins = [ - checker.getStringType(), - checker.getNumberType(), - checker.createArrayType(checker.getAnyType()), - checker.createPromiseType(checker.getAnyType()) - ]; - return { - single: single2, - parameters: parameters, - thisParameter: thisParameter - }; - function createEmptyUsage() { - return { - isNumber: void 0, - isString: void 0, - isNumberOrString: void 0, - candidateTypes: void 0, - properties: void 0, - calls: void 0, - constructs: void 0, - numberIndex: void 0, - stringIndex: void 0, - candidateThisTypes: void 0, - inferredTypes: void 0 - }; - } - function combineUsages(usages) { - var e_781, _t; - var combinedProperties = /* @__PURE__ */ new Map(); - try { - for (var usages_1 = __values(usages), usages_1_1 = usages_1.next(); !usages_1_1.done; usages_1_1 = usages_1.next()) { - var u = usages_1_1.value; - if (u.properties) { - u.properties.forEach(function (p, name) { - if (!combinedProperties.has(name)) { - combinedProperties.set(name, []); - } - combinedProperties.get(name).push(p); - }); - } - } - } - catch (e_781_1) { e_781 = { error: e_781_1 }; } - finally { - try { - if (usages_1_1 && !usages_1_1.done && (_t = usages_1.return)) _t.call(usages_1); - } - finally { if (e_781) throw e_781.error; } - } - var properties = /* @__PURE__ */ new Map(); - combinedProperties.forEach(function (ps, name) { - properties.set(name, combineUsages(ps)); - }); - return { - isNumber: usages.some(function (u) { return u.isNumber; }), - isString: usages.some(function (u) { return u.isString; }), - isNumberOrString: usages.some(function (u) { return u.isNumberOrString; }), - candidateTypes: flatMap(usages, function (u) { return u.candidateTypes; }), - properties: properties, - calls: flatMap(usages, function (u) { return u.calls; }), - constructs: flatMap(usages, function (u) { return u.constructs; }), - numberIndex: forEach(usages, function (u) { return u.numberIndex; }), - stringIndex: forEach(usages, function (u) { return u.stringIndex; }), - candidateThisTypes: flatMap(usages, function (u) { return u.candidateThisTypes; }), - inferredTypes: void 0 - // clear type cache - }; - } - function single2() { - return combineTypes(inferTypesFromReferencesSingle(references)); - } - function parameters(declaration) { - var e_782, _t; - if (references.length === 0 || !declaration.parameters) { - return void 0; - } - var usage = createEmptyUsage(); - try { - for (var references_2 = __values(references), references_2_1 = references_2.next(); !references_2_1.done; references_2_1 = references_2.next()) { - var reference = references_2_1.value; - cancellationToken.throwIfCancellationRequested(); - calculateUsageOfNode(reference, usage); - } - } - catch (e_782_1) { e_782 = { error: e_782_1 }; } - finally { - try { - if (references_2_1 && !references_2_1.done && (_t = references_2.return)) _t.call(references_2); - } - finally { if (e_782) throw e_782.error; } - } - var calls = __spreadArray(__spreadArray([], __read(usage.constructs || []), false), __read(usage.calls || []), false); - return declaration.parameters.map(function (parameter, parameterIndex) { - var e_783, _t; - var types = []; - var isRest = isRestParameter(parameter); - var isOptional = false; - try { - for (var calls_1 = __values(calls), calls_1_1 = calls_1.next(); !calls_1_1.done; calls_1_1 = calls_1.next()) { - var call = calls_1_1.value; - if (call.argumentTypes.length <= parameterIndex) { - isOptional = isInJSFile(declaration); - types.push(checker.getUndefinedType()); - } - else if (isRest) { - for (var i = parameterIndex; i < call.argumentTypes.length; i++) { - types.push(checker.getBaseTypeOfLiteralType(call.argumentTypes[i])); - } - } - else { - types.push(checker.getBaseTypeOfLiteralType(call.argumentTypes[parameterIndex])); - } - } - } - catch (e_783_1) { e_783 = { error: e_783_1 }; } - finally { - try { - if (calls_1_1 && !calls_1_1.done && (_t = calls_1.return)) _t.call(calls_1); - } - finally { if (e_783) throw e_783.error; } - } - if (isIdentifier(parameter.name)) { - var inferred = inferTypesFromReferencesSingle(getReferences(parameter.name, program, cancellationToken)); - types.push.apply(types, __spreadArray([], __read(isRest ? mapDefined(inferred, checker.getElementTypeOfArrayType) : inferred), false)); - } - var type = combineTypes(types); - return { - type: isRest ? checker.createArrayType(type) : type, - isOptional: isOptional && !isRest, - declaration: parameter - }; - }); - } - function thisParameter() { - var e_784, _t; - var usage = createEmptyUsage(); - try { - for (var references_3 = __values(references), references_3_1 = references_3.next(); !references_3_1.done; references_3_1 = references_3.next()) { - var reference = references_3_1.value; - cancellationToken.throwIfCancellationRequested(); - calculateUsageOfNode(reference, usage); - } - } - catch (e_784_1) { e_784 = { error: e_784_1 }; } - finally { - try { - if (references_3_1 && !references_3_1.done && (_t = references_3.return)) _t.call(references_3); - } - finally { if (e_784) throw e_784.error; } - } - return combineTypes(usage.candidateThisTypes || emptyArray); - } - function inferTypesFromReferencesSingle(references2) { - var e_785, _t; - var usage = createEmptyUsage(); - try { - for (var references2_1 = __values(references2), references2_1_1 = references2_1.next(); !references2_1_1.done; references2_1_1 = references2_1.next()) { - var reference = references2_1_1.value; - cancellationToken.throwIfCancellationRequested(); - calculateUsageOfNode(reference, usage); - } - } - catch (e_785_1) { e_785 = { error: e_785_1 }; } - finally { - try { - if (references2_1_1 && !references2_1_1.done && (_t = references2_1.return)) _t.call(references2_1); - } - finally { if (e_785) throw e_785.error; } - } - return inferTypes(usage); - } - function calculateUsageOfNode(node, usage) { - while (isRightSideOfQualifiedNameOrPropertyAccess(node)) { - node = node.parent; - } - switch (node.parent.kind) { - case 244 /* ExpressionStatement */: - inferTypeFromExpressionStatement(node, usage); - break; - case 225 /* PostfixUnaryExpression */: - usage.isNumber = true; - break; - case 224 /* PrefixUnaryExpression */: - inferTypeFromPrefixUnaryExpression(node.parent, usage); - break; - case 226 /* BinaryExpression */: - inferTypeFromBinaryExpression(node, node.parent, usage); - break; - case 296 /* CaseClause */: - case 297 /* DefaultClause */: - inferTypeFromSwitchStatementLabel(node.parent, usage); - break; - case 213 /* CallExpression */: - case 214 /* NewExpression */: - if (node.parent.expression === node) { - inferTypeFromCallExpression(node.parent, usage); - } - else { - inferTypeFromContextualType(node, usage); - } - break; - case 211 /* PropertyAccessExpression */: - inferTypeFromPropertyAccessExpression(node.parent, usage); - break; - case 212 /* ElementAccessExpression */: - inferTypeFromPropertyElementExpression(node.parent, node, usage); - break; - case 303 /* PropertyAssignment */: - case 304 /* ShorthandPropertyAssignment */: - inferTypeFromPropertyAssignment(node.parent, usage); - break; - case 172 /* PropertyDeclaration */: - inferTypeFromPropertyDeclaration(node.parent, usage); - break; - case 260 /* VariableDeclaration */: { - var _t = node.parent, name_118 = _t.name, initializer = _t.initializer; - if (node === name_118) { - if (initializer) { - addCandidateType(usage, checker.getTypeAtLocation(initializer)); - } - break; - } - } - default: - return inferTypeFromContextualType(node, usage); - } - } - function inferTypeFromContextualType(node, usage) { - if (isExpressionNode(node)) { - addCandidateType(usage, checker.getContextualType(node)); - } - } - function inferTypeFromExpressionStatement(node, usage) { - addCandidateType(usage, isCallExpression(node) ? checker.getVoidType() : checker.getAnyType()); - } - function inferTypeFromPrefixUnaryExpression(node, usage) { - switch (node.operator) { - case 46 /* PlusPlusToken */: - case 47 /* MinusMinusToken */: - case 41 /* MinusToken */: - case 55 /* TildeToken */: - usage.isNumber = true; - break; - case 40 /* PlusToken */: - usage.isNumberOrString = true; - break; - } - } - function inferTypeFromBinaryExpression(node, parent2, usage) { - switch (parent2.operatorToken.kind) { - case 43 /* AsteriskAsteriskToken */: - case 42 /* AsteriskToken */: - case 44 /* SlashToken */: - case 45 /* PercentToken */: - case 48 /* LessThanLessThanToken */: - case 49 /* GreaterThanGreaterThanToken */: - case 50 /* GreaterThanGreaterThanGreaterThanToken */: - case 51 /* AmpersandToken */: - case 52 /* BarToken */: - case 53 /* CaretToken */: - case 66 /* MinusEqualsToken */: - case 68 /* AsteriskAsteriskEqualsToken */: - case 67 /* AsteriskEqualsToken */: - case 69 /* SlashEqualsToken */: - case 70 /* PercentEqualsToken */: - case 74 /* AmpersandEqualsToken */: - case 75 /* BarEqualsToken */: - case 79 /* CaretEqualsToken */: - case 71 /* LessThanLessThanEqualsToken */: - case 73 /* GreaterThanGreaterThanGreaterThanEqualsToken */: - case 72 /* GreaterThanGreaterThanEqualsToken */: - case 41 /* MinusToken */: - case 30 /* LessThanToken */: - case 33 /* LessThanEqualsToken */: - case 32 /* GreaterThanToken */: - case 34 /* GreaterThanEqualsToken */: - var operandType = checker.getTypeAtLocation(parent2.left === node ? parent2.right : parent2.left); - if (operandType.flags & 1056 /* EnumLike */) { - addCandidateType(usage, operandType); - } - else { - usage.isNumber = true; - } - break; - case 65 /* PlusEqualsToken */: - case 40 /* PlusToken */: - var otherOperandType = checker.getTypeAtLocation(parent2.left === node ? parent2.right : parent2.left); - if (otherOperandType.flags & 1056 /* EnumLike */) { - addCandidateType(usage, otherOperandType); - } - else if (otherOperandType.flags & 296 /* NumberLike */) { - usage.isNumber = true; - } - else if (otherOperandType.flags & 402653316 /* StringLike */) { - usage.isString = true; - } - else if (otherOperandType.flags & 1 /* Any */) { - } - else { - usage.isNumberOrString = true; - } - break; - case 64 /* EqualsToken */: - case 35 /* EqualsEqualsToken */: - case 37 /* EqualsEqualsEqualsToken */: - case 38 /* ExclamationEqualsEqualsToken */: - case 36 /* ExclamationEqualsToken */: - case 77 /* AmpersandAmpersandEqualsToken */: - case 78 /* QuestionQuestionEqualsToken */: - case 76 /* BarBarEqualsToken */: - addCandidateType(usage, checker.getTypeAtLocation(parent2.left === node ? parent2.right : parent2.left)); - break; - case 103 /* InKeyword */: - if (node === parent2.left) { - usage.isString = true; - } - break; - case 57 /* BarBarToken */: - case 61 /* QuestionQuestionToken */: - if (node === parent2.left && (node.parent.parent.kind === 260 /* VariableDeclaration */ || isAssignmentExpression(node.parent.parent, - /*excludeCompoundAssignment*/ - true))) { - addCandidateType(usage, checker.getTypeAtLocation(parent2.right)); - } - break; - case 56 /* AmpersandAmpersandToken */: - case 28 /* CommaToken */: - case 104 /* InstanceOfKeyword */: - break; - } - } - function inferTypeFromSwitchStatementLabel(parent2, usage) { - addCandidateType(usage, checker.getTypeAtLocation(parent2.parent.parent.expression)); - } - function inferTypeFromCallExpression(parent2, usage) { - var e_786, _t; - var call = { - argumentTypes: [], - return_: createEmptyUsage() - }; - if (parent2.arguments) { - try { - for (var _u = __values(parent2.arguments), _v = _u.next(); !_v.done; _v = _u.next()) { - var argument = _v.value; - call.argumentTypes.push(checker.getTypeAtLocation(argument)); - } - } - catch (e_786_1) { e_786 = { error: e_786_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_786) throw e_786.error; } - } - } - calculateUsageOfNode(parent2, call.return_); - if (parent2.kind === 213 /* CallExpression */) { - (usage.calls || (usage.calls = [])).push(call); - } - else { - (usage.constructs || (usage.constructs = [])).push(call); - } - } - function inferTypeFromPropertyAccessExpression(parent2, usage) { - var name = escapeLeadingUnderscores(parent2.name.text); - if (!usage.properties) { - usage.properties = /* @__PURE__ */ new Map(); - } - var propertyUsage = usage.properties.get(name) || createEmptyUsage(); - calculateUsageOfNode(parent2, propertyUsage); - usage.properties.set(name, propertyUsage); - } - function inferTypeFromPropertyElementExpression(parent2, node, usage) { - if (node === parent2.argumentExpression) { - usage.isNumberOrString = true; - return; - } - else { - var indexType = checker.getTypeAtLocation(parent2.argumentExpression); - var indexUsage = createEmptyUsage(); - calculateUsageOfNode(parent2, indexUsage); - if (indexType.flags & 296 /* NumberLike */) { - usage.numberIndex = indexUsage; - } - else { - usage.stringIndex = indexUsage; - } - } - } - function inferTypeFromPropertyAssignment(assignment, usage) { - var nodeWithRealType = isVariableDeclaration(assignment.parent.parent) ? assignment.parent.parent : assignment.parent; - addCandidateThisType(usage, checker.getTypeAtLocation(nodeWithRealType)); - } - function inferTypeFromPropertyDeclaration(declaration, usage) { - addCandidateThisType(usage, checker.getTypeAtLocation(declaration.parent)); - } - function removeLowPriorityInferences(inferences, priorities) { - var e_787, _t, e_788, _u; - var toRemove = []; - try { - for (var inferences_4 = __values(inferences), inferences_4_1 = inferences_4.next(); !inferences_4_1.done; inferences_4_1 = inferences_4.next()) { - var i = inferences_4_1.value; - try { - for (var priorities_1 = (e_788 = void 0, __values(priorities)), priorities_1_1 = priorities_1.next(); !priorities_1_1.done; priorities_1_1 = priorities_1.next()) { - var _v = priorities_1_1.value, high = _v.high, low = _v.low; - if (high(i)) { - Debug.assert(!low(i), "Priority can't have both low and high"); - toRemove.push(low); - } - } - } - catch (e_788_1) { e_788 = { error: e_788_1 }; } - finally { - try { - if (priorities_1_1 && !priorities_1_1.done && (_u = priorities_1.return)) _u.call(priorities_1); - } - finally { if (e_788) throw e_788.error; } - } - } - } - catch (e_787_1) { e_787 = { error: e_787_1 }; } - finally { - try { - if (inferences_4_1 && !inferences_4_1.done && (_t = inferences_4.return)) _t.call(inferences_4); - } - finally { if (e_787) throw e_787.error; } - } - return inferences.filter(function (i) { return toRemove.every(function (f) { return !f(i); }); }); - } - function combineFromUsage(usage) { - return combineTypes(inferTypes(usage)); - } - function combineTypes(inferences) { - if (!inferences.length) - return checker.getAnyType(); - var stringNumber = checker.getUnionType([checker.getStringType(), checker.getNumberType()]); - var priorities = [ - { - high: function (t) { return t === checker.getStringType() || t === checker.getNumberType(); }, - low: function (t) { return t === stringNumber; } - }, - { - high: function (t) { return !(t.flags & (1 /* Any */ | 16384 /* Void */)); }, - low: function (t) { return !!(t.flags & (1 /* Any */ | 16384 /* Void */)); } - }, - { - high: function (t) { return !(t.flags & (98304 /* Nullable */ | 1 /* Any */ | 16384 /* Void */)) && !(getObjectFlags(t) & 16 /* Anonymous */); }, - low: function (t) { return !!(getObjectFlags(t) & 16 /* Anonymous */); } - } - ]; - var good = removeLowPriorityInferences(inferences, priorities); - var anons = good.filter(function (i) { return getObjectFlags(i) & 16; } /* Anonymous */); - if (anons.length) { - good = good.filter(function (i) { return !(getObjectFlags(i) & 16 /* Anonymous */); }); - good.push(combineAnonymousTypes(anons)); - } - return checker.getWidenedType(checker.getUnionType(good.map(checker.getBaseTypeOfLiteralType), 2 /* Subtype */)); - } - function combineAnonymousTypes(anons) { - var e_789, _t, e_790, _u; - if (anons.length === 1) { - return anons[0]; - } - var calls = []; - var constructs = []; - var stringIndices = []; - var numberIndices = []; - var stringIndexReadonly = false; - var numberIndexReadonly = false; - var props = createMultiMap(); - try { - for (var anons_1 = __values(anons), anons_1_1 = anons_1.next(); !anons_1_1.done; anons_1_1 = anons_1.next()) { - var anon2 = anons_1_1.value; - try { - for (var _v = (e_790 = void 0, __values(checker.getPropertiesOfType(anon2))), _w = _v.next(); !_w.done; _w = _v.next()) { - var p = _w.value; - props.add(p.escapedName, p.valueDeclaration ? checker.getTypeOfSymbolAtLocation(p, p.valueDeclaration) : checker.getAnyType()); - } - } - catch (e_790_1) { e_790 = { error: e_790_1 }; } - finally { - try { - if (_w && !_w.done && (_u = _v.return)) _u.call(_v); - } - finally { if (e_790) throw e_790.error; } - } - calls.push.apply(calls, __spreadArray([], __read(checker.getSignaturesOfType(anon2, 0 /* Call */)), false)); - constructs.push.apply(constructs, __spreadArray([], __read(checker.getSignaturesOfType(anon2, 1 /* Construct */)), false)); - var stringIndexInfo = checker.getIndexInfoOfType(anon2, 0 /* String */); - if (stringIndexInfo) { - stringIndices.push(stringIndexInfo.type); - stringIndexReadonly = stringIndexReadonly || stringIndexInfo.isReadonly; - } - var numberIndexInfo = checker.getIndexInfoOfType(anon2, 1 /* Number */); - if (numberIndexInfo) { - numberIndices.push(numberIndexInfo.type); - numberIndexReadonly = numberIndexReadonly || numberIndexInfo.isReadonly; - } - } - } - catch (e_789_1) { e_789 = { error: e_789_1 }; } - finally { - try { - if (anons_1_1 && !anons_1_1.done && (_t = anons_1.return)) _t.call(anons_1); - } - finally { if (e_789) throw e_789.error; } - } - var members = mapEntries(props, function (name, types) { - var isOptional = types.length < anons.length ? 16777216 /* Optional */ : 0; - var s = checker.createSymbol(4 /* Property */ | isOptional, name); - s.links.type = checker.getUnionType(types); - return [name, s]; - }); - var indexInfos = []; - if (stringIndices.length) - indexInfos.push(checker.createIndexInfo(checker.getStringType(), checker.getUnionType(stringIndices), stringIndexReadonly)); - if (numberIndices.length) - indexInfos.push(checker.createIndexInfo(checker.getNumberType(), checker.getUnionType(numberIndices), numberIndexReadonly)); - return checker.createAnonymousType(anons[0].symbol, members, calls, constructs, indexInfos); - } - function inferTypes(usage) { - var _a, _b, _c; - var types = []; - if (usage.isNumber) { - types.push(checker.getNumberType()); - } - if (usage.isString) { - types.push(checker.getStringType()); - } - if (usage.isNumberOrString) { - types.push(checker.getUnionType([checker.getStringType(), checker.getNumberType()])); - } - if (usage.numberIndex) { - types.push(checker.createArrayType(combineFromUsage(usage.numberIndex))); - } - if (((_a = usage.properties) == null ? void 0 : _a.size) || ((_b = usage.constructs) == null ? void 0 : _b.length) || usage.stringIndex) { - types.push(inferStructuralType(usage)); - } - var candidateTypes = (usage.candidateTypes || []).map(function (t) { return checker.getBaseTypeOfLiteralType(t); }); - var callsType = ((_c = usage.calls) == null ? void 0 : _c.length) ? inferStructuralType(usage) : void 0; - if (callsType && candidateTypes) { - types.push(checker.getUnionType(__spreadArray([callsType], __read(candidateTypes), false), 2 /* Subtype */)); - } - else { - if (callsType) { - types.push(callsType); - } - if (length(candidateTypes)) { - types.push.apply(types, __spreadArray([], __read(candidateTypes), false)); - } - } - types.push.apply(types, __spreadArray([], __read(inferNamedTypesFromProperties(usage)), false)); - return types; - } - function inferStructuralType(usage) { - var members = /* @__PURE__ */ new Map(); - if (usage.properties) { - usage.properties.forEach(function (u, name) { - var symbol = checker.createSymbol(4 /* Property */, name); - symbol.links.type = combineFromUsage(u); - members.set(name, symbol); - }); - } - var callSignatures = usage.calls ? [getSignatureFromCalls(usage.calls)] : []; - var constructSignatures = usage.constructs ? [getSignatureFromCalls(usage.constructs)] : []; - var indexInfos = usage.stringIndex ? [checker.createIndexInfo(checker.getStringType(), combineFromUsage(usage.stringIndex), - /*isReadonly*/ - false)] : []; - return checker.createAnonymousType( - /*symbol*/ - void 0, members, callSignatures, constructSignatures, indexInfos); - } - function inferNamedTypesFromProperties(usage) { - if (!usage.properties || !usage.properties.size) - return []; - var types = builtins.filter(function (t) { return allPropertiesAreAssignableToUsage(t, usage); }); - if (0 < types.length && types.length < 3) { - return types.map(function (t) { return inferInstantiationFromUsage(t, usage); }); - } - return []; - } - function allPropertiesAreAssignableToUsage(type, usage) { - if (!usage.properties) - return false; - return !forEachEntry(usage.properties, function (propUsage, name) { - var source = checker.getTypeOfPropertyOfType(type, name); - if (!source) { - return true; - } - if (propUsage.calls) { - var sigs = checker.getSignaturesOfType(source, 0 /* Call */); - return !sigs.length || !checker.isTypeAssignableTo(source, getFunctionFromCalls(propUsage.calls)); - } - else { - return !checker.isTypeAssignableTo(source, combineFromUsage(propUsage)); - } - }); - } - function inferInstantiationFromUsage(type, usage) { - if (!(getObjectFlags(type) & 4 /* Reference */) || !usage.properties) { - return type; - } - var generic = type.target; - var singleTypeParameter = singleOrUndefined(generic.typeParameters); - if (!singleTypeParameter) - return type; - var types = []; - usage.properties.forEach(function (propUsage, name) { - var genericPropertyType = checker.getTypeOfPropertyOfType(generic, name); - Debug.assert(!!genericPropertyType, "generic should have all the properties of its reference."); - types.push.apply(types, __spreadArray([], __read(inferTypeParameters(genericPropertyType, combineFromUsage(propUsage), singleTypeParameter)), false)); - }); - return builtinConstructors[type.symbol.escapedName](combineTypes(types)); - } - function inferTypeParameters(genericType, usageType, typeParameter) { - if (genericType === typeParameter) { - return [usageType]; - } - else if (genericType.flags & 3145728 /* UnionOrIntersection */) { - return flatMap(genericType.types, function (t) { return inferTypeParameters(t, usageType, typeParameter); }); - } - else if (getObjectFlags(genericType) & 4 /* Reference */ && getObjectFlags(usageType) & 4 /* Reference */) { - var genericArgs = checker.getTypeArguments(genericType); - var usageArgs = checker.getTypeArguments(usageType); - var types = []; - if (genericArgs && usageArgs) { - for (var i = 0; i < genericArgs.length; i++) { - if (usageArgs[i]) { - types.push.apply(types, __spreadArray([], __read(inferTypeParameters(genericArgs[i], usageArgs[i], typeParameter)), false)); - } - } - } - return types; - } - var genericSigs = checker.getSignaturesOfType(genericType, 0 /* Call */); - var usageSigs = checker.getSignaturesOfType(usageType, 0 /* Call */); - if (genericSigs.length === 1 && usageSigs.length === 1) { - return inferFromSignatures(genericSigs[0], usageSigs[0], typeParameter); - } - return []; - } - function inferFromSignatures(genericSig, usageSig, typeParameter) { - var _a; - var types = []; - for (var i = 0; i < genericSig.parameters.length; i++) { - var genericParam = genericSig.parameters[i]; - var usageParam = usageSig.parameters[i]; - var isRest = genericSig.declaration && isRestParameter(genericSig.declaration.parameters[i]); - if (!usageParam) { - break; - } - var genericParamType = genericParam.valueDeclaration ? checker.getTypeOfSymbolAtLocation(genericParam, genericParam.valueDeclaration) : checker.getAnyType(); - var elementType = isRest && checker.getElementTypeOfArrayType(genericParamType); - if (elementType) { - genericParamType = elementType; - } - var targetType = ((_a = tryCast(usageParam, isTransientSymbol)) == null ? void 0 : _a.links.type) || (usageParam.valueDeclaration ? checker.getTypeOfSymbolAtLocation(usageParam, usageParam.valueDeclaration) : checker.getAnyType()); - types.push.apply(types, __spreadArray([], __read(inferTypeParameters(genericParamType, targetType, typeParameter)), false)); - } - var genericReturn = checker.getReturnTypeOfSignature(genericSig); - var usageReturn = checker.getReturnTypeOfSignature(usageSig); - types.push.apply(types, __spreadArray([], __read(inferTypeParameters(genericReturn, usageReturn, typeParameter)), false)); - return types; - } - function getFunctionFromCalls(calls) { - return checker.createAnonymousType( - /*symbol*/ - void 0, createSymbolTable(), [getSignatureFromCalls(calls)], emptyArray, emptyArray); - } - function getSignatureFromCalls(calls) { - var parameters2 = []; - var length2 = Math.max.apply(Math, __spreadArray([], __read(calls.map(function (c) { return c.argumentTypes.length; })), false)); - var _loop_56 = function (i) { - var symbol = checker.createSymbol(1 /* FunctionScopedVariable */, escapeLeadingUnderscores("arg".concat(i))); - symbol.links.type = combineTypes(calls.map(function (call) { return call.argumentTypes[i] || checker.getUndefinedType(); })); - if (calls.some(function (call) { return call.argumentTypes[i] === void 0; })) { - symbol.flags |= 16777216 /* Optional */; - } - parameters2.push(symbol); - }; - for (var i = 0; i < length2; i++) { - _loop_56(i); - } - var returnType = combineFromUsage(combineUsages(calls.map(function (call) { return call.return_; }))); - return checker.createSignature( - /*declaration*/ - void 0, - /*typeParameters*/ - void 0, - /*thisParameter*/ - void 0, parameters2, returnType, - /*typePredicate*/ - void 0, length2, 0 /* None */); - } - function addCandidateType(usage, type) { - if (type && !(type.flags & 1 /* Any */) && !(type.flags & 131072 /* Never */)) { - (usage.candidateTypes || (usage.candidateTypes = [])).push(type); - } - } - function addCandidateThisType(usage, type) { - if (type && !(type.flags & 1 /* Any */) && !(type.flags & 131072 /* Never */)) { - (usage.candidateThisTypes || (usage.candidateThisTypes = [])).push(type); - } - } -} -// src/services/codefixes/fixReturnTypeInAsyncFunction.ts -var fixId39 = "fixReturnTypeInAsyncFunction"; -var errorCodes49 = [ - Diagnostics.The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0.code -]; -registerCodeFix({ - errorCodes: errorCodes49, - fixIds: [fixId39], - getCodeActions: function getCodeActionsToFixReturnTypeInAsyncFunction(context) { - var sourceFile = context.sourceFile, program = context.program, span = context.span; - var checker = program.getTypeChecker(); - var info = getInfo15(sourceFile, program.getTypeChecker(), span.start); - if (!info) { - return void 0; - } - var returnTypeNode = info.returnTypeNode, returnType = info.returnType, promisedTypeNode = info.promisedTypeNode, promisedType = info.promisedType; - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return doChange33(t, sourceFile, returnTypeNode, promisedTypeNode); }); - return [createCodeFixAction(fixId39, changes, [ - Diagnostics.Replace_0_with_Promise_1, - checker.typeToString(returnType), - checker.typeToString(promisedType) - ], fixId39, Diagnostics.Fix_all_incorrect_return_type_of_an_async_functions)]; - }, - getAllCodeActions: function (context) { return codeFixAll(context, errorCodes49, function (changes, diag2) { - var info = getInfo15(diag2.file, context.program.getTypeChecker(), diag2.start); - if (info) { - doChange33(changes, diag2.file, info.returnTypeNode, info.promisedTypeNode); - } - }); } -}); -function getInfo15(sourceFile, checker, pos) { - if (isInJSFile(sourceFile)) { - return void 0; - } - var token = getTokenAtPosition(sourceFile, pos); - var func = findAncestor(token, isFunctionLikeDeclaration); - var returnTypeNode = func == null ? void 0 : func.type; - if (!returnTypeNode) { - return void 0; - } - var returnType = checker.getTypeFromTypeNode(returnTypeNode); - var promisedType = checker.getAwaitedType(returnType) || checker.getVoidType(); - var promisedTypeNode = checker.typeToTypeNode(promisedType, - /*enclosingDeclaration*/ - returnTypeNode, - /*flags*/ - void 0); - if (promisedTypeNode) { - return { returnTypeNode: returnTypeNode, returnType: returnType, promisedTypeNode: promisedTypeNode, promisedType: promisedType }; - } -} -function doChange33(changes, sourceFile, returnTypeNode, promisedTypeNode) { - changes.replaceNode(sourceFile, returnTypeNode, factory.createTypeReferenceNode("Promise", [promisedTypeNode])); -} -// src/services/codefixes/disableJsDiagnostics.ts -var fixName4 = "disableJsDiagnostics"; -var fixId40 = "disableJsDiagnostics"; -var errorCodes50 = mapDefined(Object.keys(Diagnostics), function (key) { - var diag2 = Diagnostics[key]; - return diag2.category === 1 /* Error */ ? diag2.code : void 0; -}); -registerCodeFix({ - errorCodes: errorCodes50, - getCodeActions: function getCodeActionsToDisableJsDiagnostics(context) { - var sourceFile = context.sourceFile, program = context.program, span = context.span, host = context.host, formatContext = context.formatContext; - if (!isInJSFile(sourceFile) || !isCheckJsEnabledForFile(sourceFile, program.getCompilerOptions())) { - return void 0; - } - var newLineCharacter = sourceFile.checkJsDirective ? "" : getNewLineOrDefaultFromHost(host, formatContext.options); - var fixes = [ - // fixId unnecessary because adding `// @ts-nocheck` even once will ignore every error in the file. - createCodeFixActionWithoutFixAll(fixName4, [createFileTextChanges(sourceFile.fileName, [ - createTextChange(sourceFile.checkJsDirective ? createTextSpanFromBounds(sourceFile.checkJsDirective.pos, sourceFile.checkJsDirective.end) : createTextSpan(0, 0), "// @ts-nocheck".concat(newLineCharacter)) - ])], Diagnostics.Disable_checking_for_this_file) - ]; - if (ts_textChanges_exports.isValidLocationToAddComment(sourceFile, span.start)) { - fixes.unshift(createCodeFixAction(fixName4, ts_textChanges_exports.ChangeTracker.with(context, function (t) { return makeChange8(t, sourceFile, span.start); }), Diagnostics.Ignore_this_error_message, fixId40, Diagnostics.Add_ts_ignore_to_all_error_messages)); - } - return fixes; - }, - fixIds: [fixId40], - getAllCodeActions: function (context) { - var seenLines = /* @__PURE__ */ new Set(); - return codeFixAll(context, errorCodes50, function (changes, diag2) { - if (ts_textChanges_exports.isValidLocationToAddComment(diag2.file, diag2.start)) { - makeChange8(changes, diag2.file, diag2.start, seenLines); - } - }); - } -}); -function makeChange8(changes, sourceFile, position, seenLines) { - var lineNumber = getLineAndCharacterOfPosition(sourceFile, position).line; - if (!seenLines || tryAddToSet(seenLines, lineNumber)) { - changes.insertCommentBeforeLine(sourceFile, lineNumber, position, " @ts-ignore"); - } -} -// src/services/codefixes/helpers.ts -function createMissingMemberNodes(classDeclaration, possiblyMissingSymbols, sourceFile, context, preferences, importAdder, addClassElement) { - var e_791, _t; - var classMembers = classDeclaration.symbol.members; - try { - for (var possiblyMissingSymbols_1 = __values(possiblyMissingSymbols), possiblyMissingSymbols_1_1 = possiblyMissingSymbols_1.next(); !possiblyMissingSymbols_1_1.done; possiblyMissingSymbols_1_1 = possiblyMissingSymbols_1.next()) { - var symbol = possiblyMissingSymbols_1_1.value; - if (!classMembers.has(symbol.escapedName)) { - addNewNodeForMemberSymbol(symbol, classDeclaration, sourceFile, context, preferences, importAdder, addClassElement, - /*body*/ - void 0); - } - } - } - catch (e_791_1) { e_791 = { error: e_791_1 }; } - finally { - try { - if (possiblyMissingSymbols_1_1 && !possiblyMissingSymbols_1_1.done && (_t = possiblyMissingSymbols_1.return)) _t.call(possiblyMissingSymbols_1); - } - finally { if (e_791) throw e_791.error; } - } -} -function getNoopSymbolTrackerWithResolver(context) { - return { - trackSymbol: function () { return false; }, - moduleResolverHost: getModuleSpecifierResolverHost(context.program, context.host) - }; -} -var PreserveOptionalFlags = /* @__PURE__ */ (function (PreserveOptionalFlags2) { - PreserveOptionalFlags2[PreserveOptionalFlags2["Method"] = 1] = "Method"; - PreserveOptionalFlags2[PreserveOptionalFlags2["Property"] = 2] = "Property"; - PreserveOptionalFlags2[PreserveOptionalFlags2["All"] = 3] = "All"; - return PreserveOptionalFlags2; -})(PreserveOptionalFlags || {}); -function addNewNodeForMemberSymbol(symbol, enclosingDeclaration, sourceFile, context, preferences, importAdder, addClassElement, body, preserveOptional /* All */, isAmbient) { - var e_792, _t, e_793, _u; - var _v; - if (preserveOptional === void 0) { preserveOptional = 3; } - if (isAmbient === void 0) { isAmbient = false; } - var declarations = symbol.getDeclarations(); - var declaration = firstOrUndefined(declarations); - var checker = context.program.getTypeChecker(); - var scriptTarget = getEmitScriptTarget(context.program.getCompilerOptions()); - var kind = (_v = (declaration == null ? void 0 : declaration.kind)) !== null && _v !== void 0 ? _v : 171 /* PropertySignature */; - var declarationName = createDeclarationName(symbol, declaration); - var effectiveModifierFlags = declaration ? getEffectiveModifierFlags(declaration) : 0 /* None */; - var modifierFlags = effectiveModifierFlags & 32 /* Static */; - modifierFlags |= effectiveModifierFlags & 4 /* Public */ ? 4 /* Public */ : effectiveModifierFlags & 16 /* Protected */ ? 16 /* Protected */ : 0 /* None */; - if (declaration && isAutoAccessorPropertyDeclaration(declaration)) { - modifierFlags |= 128 /* Accessor */; - } - var modifiers = createModifiers(); - var type = checker.getWidenedType(checker.getTypeOfSymbolAtLocation(symbol, enclosingDeclaration)); - var optional = !!(symbol.flags & 16777216 /* Optional */); - var ambient = !!(enclosingDeclaration.flags & 33554432 /* Ambient */) || isAmbient; - var quotePreference = getQuotePreference(sourceFile, preferences); - switch (kind) { - case 171 /* PropertySignature */: - case 172 /* PropertyDeclaration */: - var flags = quotePreference === 0 /* Single */ ? 268435456 /* UseSingleQuotesForStringLiteralType */ : void 0; - var typeNode = checker.typeToTypeNode(type, enclosingDeclaration, flags, getNoopSymbolTrackerWithResolver(context)); - if (importAdder) { - var importableReference = tryGetAutoImportableReferenceFromTypeNode(typeNode, scriptTarget); - if (importableReference) { - typeNode = importableReference.typeNode; - importSymbols(importAdder, importableReference.symbols); - } - } - addClassElement(factory.createPropertyDeclaration(modifiers, declaration ? createName(declarationName) : symbol.getName(), optional && preserveOptional & 2 /* Property */ ? factory.createToken(58 /* QuestionToken */) : void 0, typeNode, - /*initializer*/ - void 0)); - break; - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: { - Debug.assertIsDefined(declarations); - var typeNode2 = checker.typeToTypeNode(type, enclosingDeclaration, - /*flags*/ - void 0, getNoopSymbolTrackerWithResolver(context)); - var allAccessors = getAllAccessorDeclarations(declarations, declaration); - var orderedAccessors = allAccessors.secondAccessor ? [allAccessors.firstAccessor, allAccessors.secondAccessor] : [allAccessors.firstAccessor]; - if (importAdder) { - var importableReference = tryGetAutoImportableReferenceFromTypeNode(typeNode2, scriptTarget); - if (importableReference) { - typeNode2 = importableReference.typeNode; - importSymbols(importAdder, importableReference.symbols); - } - } - try { - for (var orderedAccessors_1 = __values(orderedAccessors), orderedAccessors_1_1 = orderedAccessors_1.next(); !orderedAccessors_1_1.done; orderedAccessors_1_1 = orderedAccessors_1.next()) { - var accessor = orderedAccessors_1_1.value; - if (isGetAccessorDeclaration(accessor)) { - addClassElement(factory.createGetAccessorDeclaration(modifiers, createName(declarationName), emptyArray, createTypeNode(typeNode2), createBody(body, quotePreference, ambient))); - } - else { - Debug.assertNode(accessor, isSetAccessorDeclaration, "The counterpart to a getter should be a setter"); - var parameter = getSetAccessorValueParameter(accessor); - var parameterName = parameter && isIdentifier(parameter.name) ? idText(parameter.name) : void 0; - addClassElement(factory.createSetAccessorDeclaration(modifiers, createName(declarationName), createDummyParameters(1, [parameterName], [createTypeNode(typeNode2)], 1, - /*inJs*/ - false), createBody(body, quotePreference, ambient))); - } - } - } - catch (e_792_1) { e_792 = { error: e_792_1 }; } - finally { - try { - if (orderedAccessors_1_1 && !orderedAccessors_1_1.done && (_t = orderedAccessors_1.return)) _t.call(orderedAccessors_1); - } - finally { if (e_792) throw e_792.error; } - } - break; - } - case 173 /* MethodSignature */: - case 174 /* MethodDeclaration */: - Debug.assertIsDefined(declarations); - var signatures = type.isUnion() ? flatMap(type.types, function (t) { return t.getCallSignatures(); }) : type.getCallSignatures(); - if (!some(signatures)) { - break; - } - if (declarations.length === 1) { - Debug.assert(signatures.length === 1, "One declaration implies one signature"); - var signature = signatures[0]; - outputMethod(quotePreference, signature, modifiers, createName(declarationName), createBody(body, quotePreference, ambient)); - break; - } - try { - for (var signatures_11 = __values(signatures), signatures_11_1 = signatures_11.next(); !signatures_11_1.done; signatures_11_1 = signatures_11.next()) { - var signature = signatures_11_1.value; - outputMethod(quotePreference, signature, modifiers, createName(declarationName)); - } - } - catch (e_793_1) { e_793 = { error: e_793_1 }; } - finally { - try { - if (signatures_11_1 && !signatures_11_1.done && (_u = signatures_11.return)) _u.call(signatures_11); - } - finally { if (e_793) throw e_793.error; } - } - if (!ambient) { - if (declarations.length > signatures.length) { - var signature = checker.getSignatureFromDeclaration(declarations[declarations.length - 1]); - outputMethod(quotePreference, signature, modifiers, createName(declarationName), createBody(body, quotePreference)); - } - else { - Debug.assert(declarations.length === signatures.length, "Declarations and signatures should match count"); - addClassElement(createMethodImplementingSignatures(checker, context, enclosingDeclaration, signatures, createName(declarationName), optional && !!(preserveOptional & 1 /* Method */), modifiers, quotePreference, body)); - } - } - break; - } - function outputMethod(quotePreference2, signature, modifiers2, name, body2) { - var method = createSignatureDeclarationFromSignature(174 /* MethodDeclaration */, context, quotePreference2, signature, body2, name, modifiers2, optional && !!(preserveOptional & 1 /* Method */), enclosingDeclaration, importAdder); - if (method) - addClassElement(method); - } - function createModifiers() { - var modifiers2; - if (modifierFlags) { - modifiers2 = combine(modifiers2, factory.createModifiersFromModifierFlags(modifierFlags)); - } - if (shouldAddOverrideKeyword()) { - modifiers2 = append(modifiers2, factory.createToken(164 /* OverrideKeyword */)); - } - return modifiers2 && factory.createNodeArray(modifiers2); - } - function shouldAddOverrideKeyword() { - return !!(context.program.getCompilerOptions().noImplicitOverride && declaration && hasAbstractModifier(declaration)); - } - function createName(node) { - if (isIdentifier(node) && node.escapedText === "constructor") { - return factory.createComputedPropertyName(factory.createStringLiteral(idText(node), quotePreference === 0 /* Single */)); - } - return getSynthesizedDeepClone(node, - /*includeTrivia*/ - false); - } - function createBody(block, quotePreference2, ambient2) { - return ambient2 ? void 0 : getSynthesizedDeepClone(block, - /*includeTrivia*/ - false) || createStubbedMethodBody(quotePreference2); - } - function createTypeNode(typeNode) { - return getSynthesizedDeepClone(typeNode, - /*includeTrivia*/ - false); - } - function createDeclarationName(symbol2, declaration2) { - if (getCheckFlags(symbol2) & 262144 /* Mapped */) { - var nameType = symbol2.links.nameType; - if (nameType && isTypeUsableAsPropertyName(nameType)) { - return factory.createIdentifier(unescapeLeadingUnderscores(getPropertyNameFromType(nameType))); - } - } - return getSynthesizedDeepClone(getNameOfDeclaration(declaration2), - /*includeTrivia*/ - false); - } -} -function createSignatureDeclarationFromSignature(kind, context, quotePreference, signature, body, name, modifiers, optional, enclosingDeclaration, importAdder) { - var program = context.program; - var checker = program.getTypeChecker(); - var scriptTarget = getEmitScriptTarget(program.getCompilerOptions()); - var isJs = isInJSFile(enclosingDeclaration); - var flags = 1 /* NoTruncation */ | 256 /* SuppressAnyReturnType */ | 524288 /* AllowEmptyTuple */ | (quotePreference === 0 /* Single */ ? 268435456 /* UseSingleQuotesForStringLiteralType */ : 0 /* None */); - var signatureDeclaration = checker.signatureToSignatureDeclaration(signature, kind, enclosingDeclaration, flags, getNoopSymbolTrackerWithResolver(context)); - if (!signatureDeclaration) { - return void 0; - } - var typeParameters = isJs ? void 0 : signatureDeclaration.typeParameters; - var parameters = signatureDeclaration.parameters; - var type = isJs ? void 0 : signatureDeclaration.type; - if (importAdder) { - if (typeParameters) { - var newTypeParameters = sameMap(typeParameters, function (typeParameterDecl) { - var constraint = typeParameterDecl.constraint; - var defaultType = typeParameterDecl.default; - if (constraint) { - var importableReference = tryGetAutoImportableReferenceFromTypeNode(constraint, scriptTarget); - if (importableReference) { - constraint = importableReference.typeNode; - importSymbols(importAdder, importableReference.symbols); - } - } - if (defaultType) { - var importableReference = tryGetAutoImportableReferenceFromTypeNode(defaultType, scriptTarget); - if (importableReference) { - defaultType = importableReference.typeNode; - importSymbols(importAdder, importableReference.symbols); - } - } - return factory.updateTypeParameterDeclaration(typeParameterDecl, typeParameterDecl.modifiers, typeParameterDecl.name, constraint, defaultType); - }); - if (typeParameters !== newTypeParameters) { - typeParameters = setTextRange(factory.createNodeArray(newTypeParameters, typeParameters.hasTrailingComma), typeParameters); - } - } - var newParameters = sameMap(parameters, function (parameterDecl) { - var type2 = isJs ? void 0 : parameterDecl.type; - if (type2) { - var importableReference = tryGetAutoImportableReferenceFromTypeNode(type2, scriptTarget); - if (importableReference) { - type2 = importableReference.typeNode; - importSymbols(importAdder, importableReference.symbols); - } - } - return factory.updateParameterDeclaration(parameterDecl, parameterDecl.modifiers, parameterDecl.dotDotDotToken, parameterDecl.name, isJs ? void 0 : parameterDecl.questionToken, type2, parameterDecl.initializer); - }); - if (parameters !== newParameters) { - parameters = setTextRange(factory.createNodeArray(newParameters, parameters.hasTrailingComma), parameters); - } - if (type) { - var importableReference = tryGetAutoImportableReferenceFromTypeNode(type, scriptTarget); - if (importableReference) { - type = importableReference.typeNode; - importSymbols(importAdder, importableReference.symbols); - } - } - } - var questionToken = optional ? factory.createToken(58 /* QuestionToken */) : void 0; - var asteriskToken = signatureDeclaration.asteriskToken; - if (isFunctionExpression(signatureDeclaration)) { - return factory.updateFunctionExpression(signatureDeclaration, modifiers, signatureDeclaration.asteriskToken, tryCast(name, isIdentifier), typeParameters, parameters, type, body !== null && body !== void 0 ? body : signatureDeclaration.body); - } - if (isArrowFunction(signatureDeclaration)) { - return factory.updateArrowFunction(signatureDeclaration, modifiers, typeParameters, parameters, type, signatureDeclaration.equalsGreaterThanToken, body !== null && body !== void 0 ? body : signatureDeclaration.body); - } - if (isMethodDeclaration(signatureDeclaration)) { - return factory.updateMethodDeclaration(signatureDeclaration, modifiers, asteriskToken, name !== null && name !== void 0 ? name : factory.createIdentifier(""), questionToken, typeParameters, parameters, type, body); - } - if (isFunctionDeclaration(signatureDeclaration)) { - return factory.updateFunctionDeclaration(signatureDeclaration, modifiers, signatureDeclaration.asteriskToken, tryCast(name, isIdentifier), typeParameters, parameters, type, body !== null && body !== void 0 ? body : signatureDeclaration.body); - } - return void 0; -} -function createSignatureDeclarationFromCallExpression(kind, context, importAdder, call, name, modifierFlags, contextNode) { - var quotePreference = getQuotePreference(context.sourceFile, context.preferences); - var scriptTarget = getEmitScriptTarget(context.program.getCompilerOptions()); - var tracker = getNoopSymbolTrackerWithResolver(context); - var checker = context.program.getTypeChecker(); - var isJs = isInJSFile(contextNode); - var typeArguments = call.typeArguments, args = call.arguments, parent2 = call.parent; - var contextualType = isJs ? void 0 : checker.getContextualType(call); - var names = map(args, function (arg) { return isIdentifier(arg) ? arg.text : isPropertyAccessExpression(arg) && isIdentifier(arg.name) ? arg.name.text : void 0; }); - var instanceTypes = isJs ? [] : map(args, function (arg) { return checker.getTypeAtLocation(arg); }); - var _t = getArgumentTypesAndTypeParameters(checker, importAdder, instanceTypes, contextNode, scriptTarget, 1 /* NoTruncation */, tracker), argumentTypeNodes = _t.argumentTypeNodes, argumentTypeParameters = _t.argumentTypeParameters; - var modifiers = modifierFlags ? factory.createNodeArray(factory.createModifiersFromModifierFlags(modifierFlags)) : void 0; - var asteriskToken = isYieldExpression(parent2) ? factory.createToken(42 /* AsteriskToken */) : void 0; - var typeParameters = isJs ? void 0 : createTypeParametersForArguments(checker, argumentTypeParameters, typeArguments); - var parameters = createDummyParameters(args.length, names, argumentTypeNodes, - /*minArgumentCount*/ - void 0, isJs); - var type = isJs || contextualType === void 0 ? void 0 : checker.typeToTypeNode(contextualType, contextNode, - /*flags*/ - void 0, tracker); - switch (kind) { - case 174 /* MethodDeclaration */: - return factory.createMethodDeclaration(modifiers, asteriskToken, name, - /*questionToken*/ - void 0, typeParameters, parameters, type, createStubbedMethodBody(quotePreference)); - case 173 /* MethodSignature */: - return factory.createMethodSignature(modifiers, name, - /*questionToken*/ - void 0, typeParameters, parameters, type === void 0 ? factory.createKeywordTypeNode(159 /* UnknownKeyword */) : type); - case 262 /* FunctionDeclaration */: - Debug.assert(typeof name === "string" || isIdentifier(name), "Unexpected name"); - return factory.createFunctionDeclaration(modifiers, asteriskToken, name, typeParameters, parameters, type, createStubbedBody(Diagnostics.Function_not_implemented.message, quotePreference)); - default: - Debug.fail("Unexpected kind"); - } -} -function createTypeParametersForArguments(checker, argumentTypeParameters, typeArguments) { - var usedNames = new Set(argumentTypeParameters.map(function (pair) { return pair[0]; })); - var constraintsByName = new Map(argumentTypeParameters); - if (typeArguments) { - var typeArgumentsWithNewTypes = typeArguments.filter(function (typeArgument) { return !argumentTypeParameters.some(function (pair) { - var _a; - return checker.getTypeAtLocation(typeArgument) === ((_a = pair[1]) == null ? void 0 : _a.argumentType); - }); }); - var targetSize = usedNames.size + typeArgumentsWithNewTypes.length; - for (var i = 0; usedNames.size < targetSize; i += 1) { - usedNames.add(createTypeParameterName(i)); - } - } - return arrayFrom(usedNames.values(), function (usedName) { - var _a; - return factory.createTypeParameterDeclaration( - /*modifiers*/ - void 0, usedName, (_a = constraintsByName.get(usedName)) == null ? void 0 : _a.constraint); - }); -} -function createTypeParameterName(index) { - return 84 /* T */ + index <= 90 /* Z */ ? String.fromCharCode(84 /* T */ + index) : "T".concat(index); -} -function typeToAutoImportableTypeNode(checker, importAdder, type, contextNode, scriptTarget, flags, tracker) { - var typeNode = checker.typeToTypeNode(type, contextNode, flags, tracker); - if (typeNode && isImportTypeNode(typeNode)) { - var importableReference = tryGetAutoImportableReferenceFromTypeNode(typeNode, scriptTarget); - if (importableReference) { - importSymbols(importAdder, importableReference.symbols); - typeNode = importableReference.typeNode; - } - } - return getSynthesizedDeepClone(typeNode); -} -function typeContainsTypeParameter(type) { - if (type.isUnionOrIntersection()) { - return type.types.some(typeContainsTypeParameter); - } - return type.flags & 262144 /* TypeParameter */; -} -function getArgumentTypesAndTypeParameters(checker, importAdder, instanceTypes, contextNode, scriptTarget, flags, tracker) { - var argumentTypeNodes = []; - var argumentTypeParameters = /* @__PURE__ */ new Map(); - for (var i = 0; i < instanceTypes.length; i += 1) { - var instanceType = instanceTypes[i]; - if (instanceType.isUnionOrIntersection() && instanceType.types.some(typeContainsTypeParameter)) { - var synthesizedTypeParameterName = createTypeParameterName(i); - argumentTypeNodes.push(factory.createTypeReferenceNode(synthesizedTypeParameterName)); - argumentTypeParameters.set(synthesizedTypeParameterName, void 0); - continue; - } - var widenedInstanceType = checker.getBaseTypeOfLiteralType(instanceType); - var argumentTypeNode = typeToAutoImportableTypeNode(checker, importAdder, widenedInstanceType, contextNode, scriptTarget, flags, tracker); - if (!argumentTypeNode) { - continue; - } - argumentTypeNodes.push(argumentTypeNode); - var argumentTypeParameter = getFirstTypeParameterName(instanceType); - var instanceTypeConstraint = instanceType.isTypeParameter() && instanceType.constraint && !isAnonymousObjectConstraintType(instanceType.constraint) ? typeToAutoImportableTypeNode(checker, importAdder, instanceType.constraint, contextNode, scriptTarget, flags, tracker) : void 0; - if (argumentTypeParameter) { - argumentTypeParameters.set(argumentTypeParameter, { argumentType: instanceType, constraint: instanceTypeConstraint }); - } - } - return { argumentTypeNodes: argumentTypeNodes, argumentTypeParameters: arrayFrom(argumentTypeParameters.entries()) }; -} -function isAnonymousObjectConstraintType(type) { - return type.flags & 524288 /* Object */ && type.objectFlags === 16 /* Anonymous */; -} -function getFirstTypeParameterName(type) { - var e_794, _t; - var _a; - if (type.flags & (1048576 /* Union */ | 2097152 /* Intersection */)) { - try { - for (var _u = __values(type.types), _v = _u.next(); !_v.done; _v = _u.next()) { - var subType = _v.value; - var subTypeName = getFirstTypeParameterName(subType); - if (subTypeName) { - return subTypeName; - } - } - } - catch (e_794_1) { e_794 = { error: e_794_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_794) throw e_794.error; } - } - } - return type.flags & 262144 /* TypeParameter */ ? (_a = type.getSymbol()) == null ? void 0 : _a.getName() : void 0; -} -function createDummyParameters(argCount, names, types, minArgumentCount, inJs) { - var parameters = []; - var parameterNameCounts = /* @__PURE__ */ new Map(); - for (var i = 0; i < argCount; i++) { - var parameterName = (names == null ? void 0 : names[i]) || "arg".concat(i); - var parameterNameCount = parameterNameCounts.get(parameterName); - parameterNameCounts.set(parameterName, (parameterNameCount || 0) + 1); - var newParameter = factory.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, - /*name*/ - parameterName + (parameterNameCount || ""), - /*questionToken*/ - minArgumentCount !== void 0 && i >= minArgumentCount ? factory.createToken(58 /* QuestionToken */) : void 0, - /*type*/ - inJs ? void 0 : (types == null ? void 0 : types[i]) || factory.createKeywordTypeNode(159 /* UnknownKeyword */), - /*initializer*/ - void 0); - parameters.push(newParameter); - } - return parameters; -} -function createMethodImplementingSignatures(checker, context, enclosingDeclaration, signatures, name, optional, modifiers, quotePreference, body) { - var e_795, _t; - var maxArgsSignature = signatures[0]; - var minArgumentCount = signatures[0].minArgumentCount; - var someSigHasRestParameter = false; - try { - for (var signatures_12 = __values(signatures), signatures_12_1 = signatures_12.next(); !signatures_12_1.done; signatures_12_1 = signatures_12.next()) { - var sig = signatures_12_1.value; - minArgumentCount = Math.min(sig.minArgumentCount, minArgumentCount); - if (signatureHasRestParameter(sig)) { - someSigHasRestParameter = true; - } - if (sig.parameters.length >= maxArgsSignature.parameters.length && (!signatureHasRestParameter(sig) || signatureHasRestParameter(maxArgsSignature))) { - maxArgsSignature = sig; - } - } - } - catch (e_795_1) { e_795 = { error: e_795_1 }; } - finally { - try { - if (signatures_12_1 && !signatures_12_1.done && (_t = signatures_12.return)) _t.call(signatures_12); - } - finally { if (e_795) throw e_795.error; } - } - var maxNonRestArgs = maxArgsSignature.parameters.length - (signatureHasRestParameter(maxArgsSignature) ? 1 : 0); - var maxArgsParameterSymbolNames = maxArgsSignature.parameters.map(function (symbol) { return symbol.name; }); - var parameters = createDummyParameters(maxNonRestArgs, maxArgsParameterSymbolNames, - /*types*/ - void 0, minArgumentCount, - /*inJs*/ - false); - if (someSigHasRestParameter) { - var restParameter = factory.createParameterDeclaration( - /*modifiers*/ - void 0, factory.createToken(26 /* DotDotDotToken */), maxArgsParameterSymbolNames[maxNonRestArgs] || "rest", - /*questionToken*/ - maxNonRestArgs >= minArgumentCount ? factory.createToken(58 /* QuestionToken */) : void 0, factory.createArrayTypeNode(factory.createKeywordTypeNode(159 /* UnknownKeyword */)), - /*initializer*/ - void 0); - parameters.push(restParameter); - } - return createStubbedMethod(modifiers, name, optional, - /*typeParameters*/ - void 0, parameters, getReturnTypeFromSignatures(signatures, checker, context, enclosingDeclaration), quotePreference, body); -} -function getReturnTypeFromSignatures(signatures, checker, context, enclosingDeclaration) { - if (length(signatures)) { - var type = checker.getUnionType(map(signatures, checker.getReturnTypeOfSignature)); - return checker.typeToTypeNode(type, enclosingDeclaration, 1 /* NoTruncation */, getNoopSymbolTrackerWithResolver(context)); - } -} -function createStubbedMethod(modifiers, name, optional, typeParameters, parameters, returnType, quotePreference, body) { - return factory.createMethodDeclaration(modifiers, - /*asteriskToken*/ - void 0, name, optional ? factory.createToken(58 /* QuestionToken */) : void 0, typeParameters, parameters, returnType, body || createStubbedMethodBody(quotePreference)); -} -function createStubbedMethodBody(quotePreference) { - return createStubbedBody(Diagnostics.Method_not_implemented.message, quotePreference); -} -function createStubbedBody(text, quotePreference) { - return factory.createBlock([factory.createThrowStatement(factory.createNewExpression(factory.createIdentifier("Error"), - /*typeArguments*/ - void 0, - // TODO Handle auto quote preference. - [factory.createStringLiteral(text, - /*isSingleQuote*/ - quotePreference === 0 /* Single */)]))], - /*multiLine*/ - true); -} -function setJsonCompilerOptionValues(changeTracker, configFile, options) { - var e_796, _t; - var tsconfigObjectLiteral = getTsConfigObjectLiteralExpression(configFile); - if (!tsconfigObjectLiteral) - return void 0; - var compilerOptionsProperty = findJsonProperty(tsconfigObjectLiteral, "compilerOptions"); - if (compilerOptionsProperty === void 0) { - changeTracker.insertNodeAtObjectStart(configFile, tsconfigObjectLiteral, createJsonPropertyAssignment("compilerOptions", factory.createObjectLiteralExpression(options.map(function (_t) { - var _u = __read(_t, 2), optionName = _u[0], optionValue = _u[1]; - return createJsonPropertyAssignment(optionName, optionValue); - }), - /*multiLine*/ - true))); - return; - } - var compilerOptions = compilerOptionsProperty.initializer; - if (!isObjectLiteralExpression(compilerOptions)) { - return; - } - try { - for (var options_2 = __values(options), options_2_1 = options_2.next(); !options_2_1.done; options_2_1 = options_2.next()) { - var _u = __read(options_2_1.value, 2), optionName = _u[0], optionValue = _u[1]; - var optionProperty = findJsonProperty(compilerOptions, optionName); - if (optionProperty === void 0) { - changeTracker.insertNodeAtObjectStart(configFile, compilerOptions, createJsonPropertyAssignment(optionName, optionValue)); - } - else { - changeTracker.replaceNode(configFile, optionProperty.initializer, optionValue); - } - } - } - catch (e_796_1) { e_796 = { error: e_796_1 }; } - finally { - try { - if (options_2_1 && !options_2_1.done && (_t = options_2.return)) _t.call(options_2); - } - finally { if (e_796) throw e_796.error; } - } -} -function setJsonCompilerOptionValue(changeTracker, configFile, optionName, optionValue) { - setJsonCompilerOptionValues(changeTracker, configFile, [[optionName, optionValue]]); -} -function createJsonPropertyAssignment(name, initializer) { - return factory.createPropertyAssignment(factory.createStringLiteral(name), initializer); -} -function findJsonProperty(obj, name) { - return find(obj.properties, function (p) { return isPropertyAssignment(p) && !!p.name && isStringLiteral(p.name) && p.name.text === name; }); -} -function tryGetAutoImportableReferenceFromTypeNode(importTypeNode, scriptTarget) { - var symbols; - var typeNode = visitNode(importTypeNode, visit, isTypeNode); - if (symbols && typeNode) { - return { typeNode: typeNode, symbols: symbols }; - } - function visit(node) { - if (isLiteralImportTypeNode(node) && node.qualifier) { - var firstIdentifier = getFirstIdentifier(node.qualifier); - var name_119 = getNameForExportedSymbol(firstIdentifier.symbol, scriptTarget); - var qualifier = name_119 !== firstIdentifier.text ? replaceFirstIdentifierOfEntityName(node.qualifier, factory.createIdentifier(name_119)) : node.qualifier; - symbols = append(symbols, firstIdentifier.symbol); - var typeArguments = visitNodes2(node.typeArguments, visit, isTypeNode); - return factory.createTypeReferenceNode(qualifier, typeArguments); - } - return visitEachChild(node, visit, nullTransformationContext); - } -} -function replaceFirstIdentifierOfEntityName(name, newIdentifier) { - if (name.kind === 80 /* Identifier */) { - return newIdentifier; - } - return factory.createQualifiedName(replaceFirstIdentifierOfEntityName(name.left, newIdentifier), name.right); -} -function importSymbols(importAdder, symbols) { - symbols.forEach(function (s) { return importAdder.addImportFromExportedSymbol(s, - /*isValidTypeOnlyUseSite*/ - true); }); -} -function findAncestorMatchingSpan(sourceFile, span) { - var end = textSpanEnd(span); - var token = getTokenAtPosition(sourceFile, span.start); - while (token.end < end) { - token = token.parent; - } - return token; -} -// src/services/codefixes/generateAccessors.ts -function generateAccessorFromProperty(file, program, start2, end, context, _actionName) { - var fieldInfo = getAccessorConvertiblePropertyAtPosition(file, program, start2, end); - if (!fieldInfo || ts_refactor_exports.isRefactorErrorInfo(fieldInfo)) - return void 0; - var changeTracker = ts_textChanges_exports.ChangeTracker.fromContext(context); - var isStatic2 = fieldInfo.isStatic, isReadonly = fieldInfo.isReadonly, fieldName = fieldInfo.fieldName, accessorName = fieldInfo.accessorName, originalName = fieldInfo.originalName, type = fieldInfo.type, container = fieldInfo.container, declaration = fieldInfo.declaration; - suppressLeadingAndTrailingTrivia(fieldName); - suppressLeadingAndTrailingTrivia(accessorName); - suppressLeadingAndTrailingTrivia(declaration); - suppressLeadingAndTrailingTrivia(container); - var accessorModifiers; - var fieldModifiers; - if (isClassLike(container)) { - var modifierFlags = getEffectiveModifierFlags(declaration); - if (isSourceFileJS(file)) { - var modifiers = factory.createModifiersFromModifierFlags(modifierFlags); - accessorModifiers = modifiers; - fieldModifiers = modifiers; - } - else { - accessorModifiers = factory.createModifiersFromModifierFlags(prepareModifierFlagsForAccessor(modifierFlags)); - fieldModifiers = factory.createModifiersFromModifierFlags(prepareModifierFlagsForField(modifierFlags)); - } - if (canHaveDecorators(declaration)) { - fieldModifiers = concatenate(getDecorators(declaration), fieldModifiers); - } - } - updateFieldDeclaration(changeTracker, file, declaration, type, fieldName, fieldModifiers); - var getAccessor = generateGetAccessor(fieldName, accessorName, type, accessorModifiers, isStatic2, container); - suppressLeadingAndTrailingTrivia(getAccessor); - insertAccessor(changeTracker, file, getAccessor, declaration, container); - if (isReadonly) { - var constructor = getFirstConstructorWithBody(container); - if (constructor) { - updateReadonlyPropertyInitializerStatementConstructor(changeTracker, file, constructor, fieldName.text, originalName); - } - } - else { - var setAccessor = generateSetAccessor(fieldName, accessorName, type, accessorModifiers, isStatic2, container); - suppressLeadingAndTrailingTrivia(setAccessor); - insertAccessor(changeTracker, file, setAccessor, declaration, container); - } - return changeTracker.getChanges(); -} -function isConvertibleName(name) { - return isIdentifier(name) || isStringLiteral(name); -} -function isAcceptedDeclaration(node) { - return isParameterPropertyDeclaration(node, node.parent) || isPropertyDeclaration(node) || isPropertyAssignment(node); -} -function createPropertyName(name, originalName) { - return isIdentifier(originalName) ? factory.createIdentifier(name) : factory.createStringLiteral(name); -} -function createAccessorAccessExpression(fieldName, isStatic2, container) { - var leftHead = isStatic2 ? container.name : factory.createThis(); - return isIdentifier(fieldName) ? factory.createPropertyAccessExpression(leftHead, fieldName) : factory.createElementAccessExpression(leftHead, factory.createStringLiteralFromNode(fieldName)); -} -function prepareModifierFlagsForAccessor(modifierFlags) { - modifierFlags &= ~64 /* Readonly */; - modifierFlags &= ~8 /* Private */; - if (!(modifierFlags & 16 /* Protected */)) { - modifierFlags |= 4 /* Public */; - } - return modifierFlags; -} -function prepareModifierFlagsForField(modifierFlags) { - modifierFlags &= ~4 /* Public */; - modifierFlags &= ~16 /* Protected */; - modifierFlags |= 8 /* Private */; - return modifierFlags; -} -function getAccessorConvertiblePropertyAtPosition(file, program, start2, end, considerEmptySpans) { - if (considerEmptySpans === void 0) { considerEmptySpans = true; } - var node = getTokenAtPosition(file, start2); - var cursorRequest = start2 === end && considerEmptySpans; - var declaration = findAncestor(node.parent, isAcceptedDeclaration); - var meaning = 28 /* AccessibilityModifier */ | 32 /* Static */ | 64 /* Readonly */; - if (!declaration || !(nodeOverlapsWithStartEnd(declaration.name, file, start2, end) || cursorRequest)) { - return { - error: getLocaleSpecificMessage(Diagnostics.Could_not_find_property_for_which_to_generate_accessor) - }; - } - if (!isConvertibleName(declaration.name)) { - return { - error: getLocaleSpecificMessage(Diagnostics.Name_is_not_valid) - }; - } - if ((getEffectiveModifierFlags(declaration) & 126975 /* Modifier */ | meaning) !== meaning) { - return { - error: getLocaleSpecificMessage(Diagnostics.Can_only_convert_property_with_modifier) - }; - } - var name = declaration.name.text; - var startWithUnderscore = startsWithUnderscore(name); - var fieldName = createPropertyName(startWithUnderscore ? name : getUniqueName("_".concat(name), file), declaration.name); - var accessorName = createPropertyName(startWithUnderscore ? getUniqueName(name.substring(1), file) : name, declaration.name); - return { - isStatic: hasStaticModifier(declaration), - isReadonly: hasEffectiveReadonlyModifier(declaration), - type: getDeclarationType(declaration, program), - container: declaration.kind === 169 /* Parameter */ ? declaration.parent.parent : declaration.parent, - originalName: declaration.name.text, - declaration: declaration, - fieldName: fieldName, - accessorName: accessorName, - renameAccessor: startWithUnderscore - }; -} -function generateGetAccessor(fieldName, accessorName, type, modifiers, isStatic2, container) { - return factory.createGetAccessorDeclaration(modifiers, accessorName, [], type, factory.createBlock([ - factory.createReturnStatement(createAccessorAccessExpression(fieldName, isStatic2, container)) - ], - /*multiLine*/ - true)); -} -function generateSetAccessor(fieldName, accessorName, type, modifiers, isStatic2, container) { - return factory.createSetAccessorDeclaration(modifiers, accessorName, [factory.createParameterDeclaration( - /*modifiers*/ - void 0, - /*dotDotDotToken*/ - void 0, factory.createIdentifier("value"), - /*questionToken*/ - void 0, type)], factory.createBlock([ - factory.createExpressionStatement(factory.createAssignment(createAccessorAccessExpression(fieldName, isStatic2, container), factory.createIdentifier("value"))) - ], - /*multiLine*/ - true)); -} -function updatePropertyDeclaration(changeTracker, file, declaration, type, fieldName, modifiers) { - var property = factory.updatePropertyDeclaration(declaration, modifiers, fieldName, declaration.questionToken || declaration.exclamationToken, type, declaration.initializer); - changeTracker.replaceNode(file, declaration, property); -} -function updatePropertyAssignmentDeclaration(changeTracker, file, declaration, fieldName) { - var assignment = factory.updatePropertyAssignment(declaration, fieldName, declaration.initializer); - if (assignment.modifiers || assignment.questionToken || assignment.exclamationToken) { - if (assignment === declaration) - assignment = factory.cloneNode(assignment); - assignment.modifiers = void 0; - assignment.questionToken = void 0; - assignment.exclamationToken = void 0; - } - changeTracker.replacePropertyAssignment(file, declaration, assignment); -} -function updateFieldDeclaration(changeTracker, file, declaration, type, fieldName, modifiers) { - if (isPropertyDeclaration(declaration)) { - updatePropertyDeclaration(changeTracker, file, declaration, type, fieldName, modifiers); - } - else if (isPropertyAssignment(declaration)) { - updatePropertyAssignmentDeclaration(changeTracker, file, declaration, fieldName); - } - else { - changeTracker.replaceNode(file, declaration, factory.updateParameterDeclaration(declaration, modifiers, declaration.dotDotDotToken, cast(fieldName, isIdentifier), declaration.questionToken, declaration.type, declaration.initializer)); - } -} -function insertAccessor(changeTracker, file, accessor, declaration, container) { - isParameterPropertyDeclaration(declaration, declaration.parent) ? changeTracker.insertMemberAtStart(file, container, accessor) : isPropertyAssignment(declaration) ? changeTracker.insertNodeAfterComma(file, declaration, accessor) : changeTracker.insertNodeAfter(file, declaration, accessor); -} -function updateReadonlyPropertyInitializerStatementConstructor(changeTracker, file, constructor, fieldName, originalName) { - if (!constructor.body) - return; - constructor.body.forEachChild(function recur(node) { - if (isElementAccessExpression(node) && node.expression.kind === 110 /* ThisKeyword */ && isStringLiteral(node.argumentExpression) && node.argumentExpression.text === originalName && isWriteAccess(node)) { - changeTracker.replaceNode(file, node.argumentExpression, factory.createStringLiteral(fieldName)); - } - if (isPropertyAccessExpression(node) && node.expression.kind === 110 /* ThisKeyword */ && node.name.text === originalName && isWriteAccess(node)) { - changeTracker.replaceNode(file, node.name, factory.createIdentifier(fieldName)); - } - if (!isFunctionLike(node) && !isClassLike(node)) { - node.forEachChild(recur); - } - }); -} -function getDeclarationType(declaration, program) { - var typeNode = getTypeAnnotationNode(declaration); - if (isPropertyDeclaration(declaration) && typeNode && declaration.questionToken) { - var typeChecker = program.getTypeChecker(); - var type = typeChecker.getTypeFromTypeNode(typeNode); - if (!typeChecker.isTypeAssignableTo(typeChecker.getUndefinedType(), type)) { - var types = isUnionTypeNode(typeNode) ? typeNode.types : [typeNode]; - return factory.createUnionTypeNode(__spreadArray(__spreadArray([], __read(types), false), [factory.createKeywordTypeNode(157 /* UndefinedKeyword */)], false)); - } - } - return typeNode; -} -function getAllSupers(decl, checker) { - var res = []; - while (decl) { - var superElement = getClassExtendsHeritageElement(decl); - var superSymbol = superElement && checker.getSymbolAtLocation(superElement.expression); - if (!superSymbol) - break; - var symbol = superSymbol.flags & 2097152 /* Alias */ ? checker.getAliasedSymbol(superSymbol) : superSymbol; - var superDecl = symbol.declarations && find(symbol.declarations, isClassLike); - if (!superDecl) - break; - res.push(superDecl); - decl = superDecl; - } - return res; -} -// src/services/codefixes/fixInvalidImportSyntax.ts -var fixName5 = "invalidImportSyntax"; -function getCodeFixesForImportDeclaration(context, node) { - var sourceFile = getSourceFileOfNode(node); - var namespace = getNamespaceDeclarationNode(node); - var opts = context.program.getCompilerOptions(); - var variations = []; - variations.push(createAction(context, sourceFile, node, makeImport(namespace.name, - /*namedImports*/ - void 0, node.moduleSpecifier, getQuotePreference(sourceFile, context.preferences)))); - if (getEmitModuleKind(opts) === 1 /* CommonJS */) { - variations.push(createAction(context, sourceFile, node, factory.createImportEqualsDeclaration( - /*modifiers*/ - void 0, - /*isTypeOnly*/ - false, namespace.name, factory.createExternalModuleReference(node.moduleSpecifier)))); - } - return variations; -} -function createAction(context, sourceFile, node, replacement) { - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return t.replaceNode(sourceFile, node, replacement); }); - return createCodeFixActionWithoutFixAll(fixName5, changes, [Diagnostics.Replace_import_with_0, changes[0].textChanges[0].newText]); -} -registerCodeFix({ - errorCodes: [ - Diagnostics.This_expression_is_not_callable.code, - Diagnostics.This_expression_is_not_constructable.code - ], - getCodeActions: getActionsForUsageOfInvalidImport -}); -function getActionsForUsageOfInvalidImport(context) { - var sourceFile = context.sourceFile; - var targetKind = Diagnostics.This_expression_is_not_callable.code === context.errorCode ? 213 /* CallExpression */ : 214 /* NewExpression */; - var node = findAncestor(getTokenAtPosition(sourceFile, context.span.start), function (a) { return a.kind === targetKind; }); - if (!node) { - return []; - } - var expr = node.expression; - return getImportCodeFixesForExpression(context, expr); -} -registerCodeFix({ - errorCodes: [ - // The following error codes cover pretty much all assignability errors that could involve an expression - Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code, - Diagnostics.Type_0_does_not_satisfy_the_constraint_1.code, - Diagnostics.Type_0_is_not_assignable_to_type_1.code, - Diagnostics.Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated.code, - Diagnostics.Type_predicate_0_is_not_assignable_to_1.code, - Diagnostics.Property_0_of_type_1_is_not_assignable_to_2_index_type_3.code, - Diagnostics._0_index_type_1_is_not_assignable_to_2_index_type_3.code, - Diagnostics.Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2.code, - Diagnostics.Property_0_in_type_1_is_not_assignable_to_type_2.code, - Diagnostics.Property_0_of_JSX_spread_attribute_is_not_assignable_to_target_property.code, - Diagnostics.The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1.code - ], - getCodeActions: getActionsForInvalidImportLocation -}); -function getActionsForInvalidImportLocation(context) { - var sourceFile = context.sourceFile; - var node = findAncestor(getTokenAtPosition(sourceFile, context.span.start), function (a) { return a.getStart() === context.span.start && a.getEnd() === context.span.start + context.span.length; }); - if (!node) { - return []; - } - return getImportCodeFixesForExpression(context, node); -} -function getImportCodeFixesForExpression(context, expr) { - var type = context.program.getTypeChecker().getTypeAtLocation(expr); - if (!(type.symbol && isTransientSymbol(type.symbol) && type.symbol.links.originatingImport)) { - return []; - } - var fixes = []; - var relatedImport = type.symbol.links.originatingImport; - if (!isImportCall(relatedImport)) { - addRange(fixes, getCodeFixesForImportDeclaration(context, relatedImport)); - } - if (isExpression(expr) && !(isNamedDeclaration(expr.parent) && expr.parent.name === expr)) { - var sourceFile_1 = context.sourceFile; - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return t.replaceNode(sourceFile_1, expr, factory.createPropertyAccessExpression(expr, "default"), {}); }); - fixes.push(createCodeFixActionWithoutFixAll(fixName5, changes, Diagnostics.Use_synthetic_default_member)); - } - return fixes; -} -// src/services/codefixes/fixStrictClassInitialization.ts -var fixName6 = "strictClassInitialization"; -var fixIdAddDefiniteAssignmentAssertions = "addMissingPropertyDefiniteAssignmentAssertions"; -var fixIdAddUndefinedType = "addMissingPropertyUndefinedType"; -var fixIdAddInitializer = "addMissingPropertyInitializer"; -var errorCodes51 = [Diagnostics.Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor.code]; -registerCodeFix({ - errorCodes: errorCodes51, - getCodeActions: function getCodeActionsForStrictClassInitializationErrors(context) { - var info = getInfo16(context.sourceFile, context.span.start); - if (!info) - return; - var result = []; - append(result, getActionForAddMissingUndefinedType(context, info)); - append(result, getActionForAddMissingDefiniteAssignmentAssertion(context, info)); - append(result, getActionForAddMissingInitializer(context, info)); - return result; - }, - fixIds: [fixIdAddDefiniteAssignmentAssertions, fixIdAddUndefinedType, fixIdAddInitializer], - getAllCodeActions: function (context) { - return codeFixAll(context, errorCodes51, function (changes, diag2) { - var info = getInfo16(diag2.file, diag2.start); - if (!info) - return; - switch (context.fixId) { - case fixIdAddDefiniteAssignmentAssertions: - addDefiniteAssignmentAssertion(changes, diag2.file, info.prop); - break; - case fixIdAddUndefinedType: - addUndefinedType(changes, diag2.file, info); - break; - case fixIdAddInitializer: - var checker = context.program.getTypeChecker(); - var initializer = getInitializer(checker, info.prop); - if (!initializer) - return; - addInitializer(changes, diag2.file, info.prop, initializer); - break; - default: - Debug.fail(JSON.stringify(context.fixId)); - } - }); - } -}); -function getInfo16(sourceFile, pos) { - var token = getTokenAtPosition(sourceFile, pos); - if (isIdentifier(token) && isPropertyDeclaration(token.parent)) { - var type = getEffectiveTypeAnnotationNode(token.parent); - if (type) { - return { type: type, prop: token.parent, isJs: isInJSFile(token.parent) }; - } - } - return void 0; -} -function getActionForAddMissingDefiniteAssignmentAssertion(context, info) { - if (info.isJs) - return void 0; - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return addDefiniteAssignmentAssertion(t, context.sourceFile, info.prop); }); - return createCodeFixAction(fixName6, changes, [Diagnostics.Add_definite_assignment_assertion_to_property_0, info.prop.getText()], fixIdAddDefiniteAssignmentAssertions, Diagnostics.Add_definite_assignment_assertions_to_all_uninitialized_properties); -} -function addDefiniteAssignmentAssertion(changeTracker, propertyDeclarationSourceFile, propertyDeclaration) { - suppressLeadingAndTrailingTrivia(propertyDeclaration); - var property = factory.updatePropertyDeclaration(propertyDeclaration, propertyDeclaration.modifiers, propertyDeclaration.name, factory.createToken(54 /* ExclamationToken */), propertyDeclaration.type, propertyDeclaration.initializer); - changeTracker.replaceNode(propertyDeclarationSourceFile, propertyDeclaration, property); -} -function getActionForAddMissingUndefinedType(context, info) { - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return addUndefinedType(t, context.sourceFile, info); }); - return createCodeFixAction(fixName6, changes, [Diagnostics.Add_undefined_type_to_property_0, info.prop.name.getText()], fixIdAddUndefinedType, Diagnostics.Add_undefined_type_to_all_uninitialized_properties); -} -function addUndefinedType(changeTracker, sourceFile, info) { - var undefinedTypeNode = factory.createKeywordTypeNode(157 /* UndefinedKeyword */); - var types = isUnionTypeNode(info.type) ? info.type.types.concat(undefinedTypeNode) : [info.type, undefinedTypeNode]; - var unionTypeNode = factory.createUnionTypeNode(types); - if (info.isJs) { - changeTracker.addJSDocTags(sourceFile, info.prop, [factory.createJSDocTypeTag( - /*tagName*/ - void 0, factory.createJSDocTypeExpression(unionTypeNode))]); - } - else { - changeTracker.replaceNode(sourceFile, info.type, unionTypeNode); - } -} -function getActionForAddMissingInitializer(context, info) { - if (info.isJs) - return void 0; - var checker = context.program.getTypeChecker(); - var initializer = getInitializer(checker, info.prop); - if (!initializer) - return void 0; - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return addInitializer(t, context.sourceFile, info.prop, initializer); }); - return createCodeFixAction(fixName6, changes, [Diagnostics.Add_initializer_to_property_0, info.prop.name.getText()], fixIdAddInitializer, Diagnostics.Add_initializers_to_all_uninitialized_properties); -} -function addInitializer(changeTracker, propertyDeclarationSourceFile, propertyDeclaration, initializer) { - suppressLeadingAndTrailingTrivia(propertyDeclaration); - var property = factory.updatePropertyDeclaration(propertyDeclaration, propertyDeclaration.modifiers, propertyDeclaration.name, propertyDeclaration.questionToken, propertyDeclaration.type, initializer); - changeTracker.replaceNode(propertyDeclarationSourceFile, propertyDeclaration, property); -} -function getInitializer(checker, propertyDeclaration) { - return getDefaultValueFromType(checker, checker.getTypeFromTypeNode(propertyDeclaration.type)); -} -function getDefaultValueFromType(checker, type) { - if (type.flags & 512 /* BooleanLiteral */) { - return type === checker.getFalseType() || type === checker.getFalseType( - /*fresh*/ - true) ? factory.createFalse() : factory.createTrue(); - } - else if (type.isStringLiteral()) { - return factory.createStringLiteral(type.value); - } - else if (type.isNumberLiteral()) { - return factory.createNumericLiteral(type.value); - } - else if (type.flags & 2048 /* BigIntLiteral */) { - return factory.createBigIntLiteral(type.value); - } - else if (type.isUnion()) { - return firstDefined(type.types, function (t) { return getDefaultValueFromType(checker, t); }); - } - else if (type.isClass()) { - var classDeclaration = getClassLikeDeclarationOfSymbol(type.symbol); - if (!classDeclaration || hasSyntacticModifier(classDeclaration, 256 /* Abstract */)) - return void 0; - var constructorDeclaration = getFirstConstructorWithBody(classDeclaration); - if (constructorDeclaration && constructorDeclaration.parameters.length) - return void 0; - return factory.createNewExpression(factory.createIdentifier(type.symbol.name), - /*typeArguments*/ - void 0, - /*argumentsArray*/ - void 0); - } - else if (checker.isArrayLikeType(type)) { - return factory.createArrayLiteralExpression(); - } - return void 0; -} -// src/services/codefixes/requireInTs.ts -var fixId41 = "requireInTs"; -var errorCodes52 = [Diagnostics.require_call_may_be_converted_to_an_import.code]; -registerCodeFix({ - errorCodes: errorCodes52, - getCodeActions: function (context) { - var info = getInfo17(context.sourceFile, context.program, context.span.start); - if (!info) { - return void 0; - } - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return doChange34(t, context.sourceFile, info); }); - return [createCodeFixAction(fixId41, changes, Diagnostics.Convert_require_to_import, fixId41, Diagnostics.Convert_all_require_to_import)]; - }, - fixIds: [fixId41], - getAllCodeActions: function (context) { return codeFixAll(context, errorCodes52, function (changes, diag2) { - var info = getInfo17(diag2.file, context.program, diag2.start); - if (info) { - doChange34(changes, context.sourceFile, info); - } - }); } -}); -function doChange34(changes, sourceFile, info) { - var allowSyntheticDefaults = info.allowSyntheticDefaults, defaultImportName = info.defaultImportName, namedImports = info.namedImports, statement = info.statement, required = info.required; - changes.replaceNode(sourceFile, statement, defaultImportName && !allowSyntheticDefaults ? factory.createImportEqualsDeclaration( - /*modifiers*/ - void 0, - /*isTypeOnly*/ - false, defaultImportName, factory.createExternalModuleReference(required)) : factory.createImportDeclaration( - /*modifiers*/ - void 0, factory.createImportClause( - /*isTypeOnly*/ - false, defaultImportName, namedImports), required, - /*assertClause*/ - void 0)); -} -function getInfo17(sourceFile, program, pos) { - var parent2 = getTokenAtPosition(sourceFile, pos).parent; - if (!isRequireCall(parent2, - /*requireStringLiteralLikeArgument*/ - true)) { - Debug.failBadSyntaxKind(parent2); - } - var decl = cast(parent2.parent, isVariableDeclaration); - var defaultImportName = tryCast(decl.name, isIdentifier); - var namedImports = isObjectBindingPattern(decl.name) ? tryCreateNamedImportsFromObjectBindingPattern(decl.name) : void 0; - if (defaultImportName || namedImports) { - return { - allowSyntheticDefaults: getAllowSyntheticDefaultImports(program.getCompilerOptions()), - defaultImportName: defaultImportName, - namedImports: namedImports, - statement: cast(decl.parent.parent, isVariableStatement), - required: first(parent2.arguments) - }; - } -} -function tryCreateNamedImportsFromObjectBindingPattern(node) { - var e_797, _t; - var importSpecifiers = []; - try { - for (var _u = __values(node.elements), _v = _u.next(); !_v.done; _v = _u.next()) { - var element = _v.value; - if (!isIdentifier(element.name) || element.initializer) { - return void 0; - } - importSpecifiers.push(factory.createImportSpecifier( - /*isTypeOnly*/ - false, tryCast(element.propertyName, isIdentifier), element.name)); - } - } - catch (e_797_1) { e_797 = { error: e_797_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_797) throw e_797.error; } - } - if (importSpecifiers.length) { - return factory.createNamedImports(importSpecifiers); - } -} -// src/services/codefixes/useDefaultImport.ts -var fixId42 = "useDefaultImport"; -var errorCodes53 = [Diagnostics.Import_may_be_converted_to_a_default_import.code]; -registerCodeFix({ - errorCodes: errorCodes53, - getCodeActions: function (context) { - var sourceFile = context.sourceFile, start2 = context.span.start; - var info = getInfo18(sourceFile, start2); - if (!info) - return void 0; - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return doChange35(t, sourceFile, info, context.preferences); }); - return [createCodeFixAction(fixId42, changes, Diagnostics.Convert_to_default_import, fixId42, Diagnostics.Convert_all_to_default_imports)]; - }, - fixIds: [fixId42], - getAllCodeActions: function (context) { return codeFixAll(context, errorCodes53, function (changes, diag2) { - var info = getInfo18(diag2.file, diag2.start); - if (info) - doChange35(changes, diag2.file, info, context.preferences); - }); } -}); -function getInfo18(sourceFile, pos) { - var name = getTokenAtPosition(sourceFile, pos); - if (!isIdentifier(name)) - return void 0; - var parent2 = name.parent; - if (isImportEqualsDeclaration(parent2) && isExternalModuleReference(parent2.moduleReference)) { - return { importNode: parent2, name: name, moduleSpecifier: parent2.moduleReference.expression }; - } - else if (isNamespaceImport(parent2)) { - var importNode = parent2.parent.parent; - return { importNode: importNode, name: name, moduleSpecifier: importNode.moduleSpecifier }; - } -} -function doChange35(changes, sourceFile, info, preferences) { - changes.replaceNode(sourceFile, info.importNode, makeImport(info.name, - /*namedImports*/ - void 0, info.moduleSpecifier, getQuotePreference(sourceFile, preferences))); -} -// src/services/codefixes/useBigintLiteral.ts -var fixId43 = "useBigintLiteral"; -var errorCodes54 = [ - Diagnostics.Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accurately_as_integers.code -]; -registerCodeFix({ - errorCodes: errorCodes54, - getCodeActions: function getCodeActionsToUseBigintLiteral(context) { - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return makeChange9(t, context.sourceFile, context.span); }); - if (changes.length > 0) { - return [createCodeFixAction(fixId43, changes, Diagnostics.Convert_to_a_bigint_numeric_literal, fixId43, Diagnostics.Convert_all_to_bigint_numeric_literals)]; - } - }, - fixIds: [fixId43], - getAllCodeActions: function (context) { - return codeFixAll(context, errorCodes54, function (changes, diag2) { return makeChange9(changes, diag2.file, diag2); }); - } -}); -function makeChange9(changeTracker, sourceFile, span) { - var numericLiteral = tryCast(getTokenAtPosition(sourceFile, span.start), isNumericLiteral); - if (!numericLiteral) { - return; - } - var newText = numericLiteral.getText(sourceFile) + "n"; - changeTracker.replaceNode(sourceFile, numericLiteral, factory.createBigIntLiteral(newText)); -} -// src/services/codefixes/fixAddModuleReferTypeMissingTypeof.ts -var fixIdAddMissingTypeof = "fixAddModuleReferTypeMissingTypeof"; -var fixId44 = fixIdAddMissingTypeof; -var errorCodes55 = [Diagnostics.Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0.code]; -registerCodeFix({ - errorCodes: errorCodes55, - getCodeActions: function getCodeActionsToAddMissingTypeof(context) { - var sourceFile = context.sourceFile, span = context.span; - var importType = getImportTypeNode(sourceFile, span.start); - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return doChange36(t, sourceFile, importType); }); - return [createCodeFixAction(fixId44, changes, Diagnostics.Add_missing_typeof, fixId44, Diagnostics.Add_missing_typeof)]; - }, - fixIds: [fixId44], - getAllCodeActions: function (context) { return codeFixAll(context, errorCodes55, function (changes, diag2) { return doChange36(changes, context.sourceFile, getImportTypeNode(diag2.file, diag2.start)); }); } -}); -function getImportTypeNode(sourceFile, pos) { - var token = getTokenAtPosition(sourceFile, pos); - Debug.assert(token.kind === 102 /* ImportKeyword */, "This token should be an ImportKeyword"); - Debug.assert(token.parent.kind === 205 /* ImportType */, "Token parent should be an ImportType"); - return token.parent; -} -function doChange36(changes, sourceFile, importType) { - var newTypeNode = factory.updateImportTypeNode(importType, importType.argument, importType.assertions, importType.qualifier, importType.typeArguments, - /*isTypeOf*/ - true); - changes.replaceNode(sourceFile, importType, newTypeNode); -} -// src/services/codefixes/wrapJsxInFragment.ts -var fixID2 = "wrapJsxInFragment"; -var errorCodes56 = [Diagnostics.JSX_expressions_must_have_one_parent_element.code]; -registerCodeFix({ - errorCodes: errorCodes56, - getCodeActions: function getCodeActionsToWrapJsxInFragment(context) { - var sourceFile = context.sourceFile, span = context.span; - var node = findNodeToFix(sourceFile, span.start); - if (!node) - return void 0; - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return doChange37(t, sourceFile, node); }); - return [createCodeFixAction(fixID2, changes, Diagnostics.Wrap_in_JSX_fragment, fixID2, Diagnostics.Wrap_all_unparented_JSX_in_JSX_fragment)]; - }, - fixIds: [fixID2], - getAllCodeActions: function (context) { return codeFixAll(context, errorCodes56, function (changes, diag2) { - var node = findNodeToFix(context.sourceFile, diag2.start); - if (!node) - return void 0; - doChange37(changes, context.sourceFile, node); - }); } -}); -function findNodeToFix(sourceFile, pos) { - var lessThanToken = getTokenAtPosition(sourceFile, pos); - var firstJsxElementOrOpenElement = lessThanToken.parent; - var binaryExpr = firstJsxElementOrOpenElement.parent; - if (!isBinaryExpression(binaryExpr)) { - binaryExpr = binaryExpr.parent; - if (!isBinaryExpression(binaryExpr)) - return void 0; - } - if (!nodeIsMissing(binaryExpr.operatorToken)) - return void 0; - return binaryExpr; -} -function doChange37(changeTracker, sf, node) { - var jsx = flattenInvalidBinaryExpr(node); - if (jsx) - changeTracker.replaceNode(sf, node, factory.createJsxFragment(factory.createJsxOpeningFragment(), jsx, factory.createJsxJsxClosingFragment())); -} -function flattenInvalidBinaryExpr(node) { - var children = []; - var current = node; - while (true) { - if (isBinaryExpression(current) && nodeIsMissing(current.operatorToken) && current.operatorToken.kind === 28 /* CommaToken */) { - children.push(current.left); - if (isJsxChild(current.right)) { - children.push(current.right); - return children; - } - else if (isBinaryExpression(current.right)) { - current = current.right; - continue; - } - else - return void 0; - } - else - return void 0; - } -} -// src/services/codefixes/convertToMappedObjectType.ts -var fixId45 = "fixConvertToMappedObjectType"; -var errorCodes57 = [Diagnostics.An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_object_type_instead.code]; -registerCodeFix({ - errorCodes: errorCodes57, - getCodeActions: function getCodeActionsToConvertToMappedTypeObject(context) { - var sourceFile = context.sourceFile, span = context.span; - var info = getInfo19(sourceFile, span.start); - if (!info) - return void 0; - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return doChange38(t, sourceFile, info); }); - var name = idText(info.container.name); - return [createCodeFixAction(fixId45, changes, [Diagnostics.Convert_0_to_mapped_object_type, name], fixId45, [Diagnostics.Convert_0_to_mapped_object_type, name])]; - }, - fixIds: [fixId45], - getAllCodeActions: function (context) { return codeFixAll(context, errorCodes57, function (changes, diag2) { - var info = getInfo19(diag2.file, diag2.start); - if (info) - doChange38(changes, diag2.file, info); - }); } -}); -function getInfo19(sourceFile, pos) { - var token = getTokenAtPosition(sourceFile, pos); - var indexSignature = tryCast(token.parent.parent, isIndexSignatureDeclaration); - if (!indexSignature) - return void 0; - var container = isInterfaceDeclaration(indexSignature.parent) ? indexSignature.parent : tryCast(indexSignature.parent.parent, isTypeAliasDeclaration); - if (!container) - return void 0; - return { indexSignature: indexSignature, container: container }; -} -function createTypeAliasFromInterface(declaration, type) { - return factory.createTypeAliasDeclaration(declaration.modifiers, declaration.name, declaration.typeParameters, type); -} -function doChange38(changes, sourceFile, _t) { - var indexSignature = _t.indexSignature, container = _t.container; - var members = isInterfaceDeclaration(container) ? container.members : container.type.members; - var otherMembers = members.filter(function (member) { return !isIndexSignatureDeclaration(member); }); - var parameter = first(indexSignature.parameters); - var mappedTypeParameter = factory.createTypeParameterDeclaration( - /*modifiers*/ - void 0, cast(parameter.name, isIdentifier), parameter.type); - var mappedIntersectionType = factory.createMappedTypeNode(hasEffectiveReadonlyModifier(indexSignature) ? factory.createModifier(148 /* ReadonlyKeyword */) : void 0, mappedTypeParameter, - /*nameType*/ - void 0, indexSignature.questionToken, indexSignature.type, - /*members*/ - void 0); - var intersectionType = factory.createIntersectionTypeNode(__spreadArray(__spreadArray(__spreadArray([], __read(getAllSuperTypeNodes(container)), false), [ - mappedIntersectionType - ], false), __read(otherMembers.length ? [factory.createTypeLiteralNode(otherMembers)] : emptyArray), false)); - changes.replaceNode(sourceFile, container, createTypeAliasFromInterface(container, intersectionType)); -} -// src/services/codefixes/removeAccidentalCallParentheses.ts -var fixId46 = "removeAccidentalCallParentheses"; -var errorCodes58 = [ - Diagnostics.This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without.code -]; -registerCodeFix({ - errorCodes: errorCodes58, - getCodeActions: function (context) { - var callExpression = findAncestor(getTokenAtPosition(context.sourceFile, context.span.start), isCallExpression); - if (!callExpression) { - return void 0; - } - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { - t.deleteRange(context.sourceFile, { pos: callExpression.expression.end, end: callExpression.end }); - }); - return [createCodeFixActionWithoutFixAll(fixId46, changes, Diagnostics.Remove_parentheses)]; - }, - fixIds: [fixId46] -}); -// src/services/codefixes/removeUnnecessaryAwait.ts -var fixId47 = "removeUnnecessaryAwait"; -var errorCodes59 = [ - Diagnostics.await_has_no_effect_on_the_type_of_this_expression.code -]; -registerCodeFix({ - errorCodes: errorCodes59, - getCodeActions: function getCodeActionsToRemoveUnnecessaryAwait(context) { - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return makeChange10(t, context.sourceFile, context.span); }); - if (changes.length > 0) { - return [createCodeFixAction(fixId47, changes, Diagnostics.Remove_unnecessary_await, fixId47, Diagnostics.Remove_all_unnecessary_uses_of_await)]; - } - }, - fixIds: [fixId47], - getAllCodeActions: function (context) { - return codeFixAll(context, errorCodes59, function (changes, diag2) { return makeChange10(changes, diag2.file, diag2); }); - } -}); -function makeChange10(changeTracker, sourceFile, span) { - var awaitKeyword = tryCast(getTokenAtPosition(sourceFile, span.start), function (node) { return node.kind === 135; } /* AwaitKeyword */); - var awaitExpression = awaitKeyword && tryCast(awaitKeyword.parent, isAwaitExpression); - if (!awaitExpression) { - return; - } - var expressionToReplace = awaitExpression; - var hasSurroundingParens = isParenthesizedExpression(awaitExpression.parent); - if (hasSurroundingParens) { - var leftMostExpression = getLeftmostExpression(awaitExpression.expression, - /*stopAtCallExpressions*/ - false); - if (isIdentifier(leftMostExpression)) { - var precedingToken = findPrecedingToken(awaitExpression.parent.pos, sourceFile); - if (precedingToken && precedingToken.kind !== 105 /* NewKeyword */) { - expressionToReplace = awaitExpression.parent; - } - } - } - changeTracker.replaceNode(sourceFile, expressionToReplace, awaitExpression.expression); -} -// src/services/codefixes/splitTypeOnlyImport.ts -var errorCodes60 = [Diagnostics.A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both.code]; -var fixId48 = "splitTypeOnlyImport"; -registerCodeFix({ - errorCodes: errorCodes60, - fixIds: [fixId48], - getCodeActions: function getCodeActionsToSplitTypeOnlyImport(context) { - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { - return splitTypeOnlyImport(t, getImportDeclaration2(context.sourceFile, context.span), context); - }); - if (changes.length) { - return [createCodeFixAction(fixId48, changes, Diagnostics.Split_into_two_separate_import_declarations, fixId48, Diagnostics.Split_all_invalid_type_only_imports)]; - } - }, - getAllCodeActions: function (context) { return codeFixAll(context, errorCodes60, function (changes, error2) { - splitTypeOnlyImport(changes, getImportDeclaration2(context.sourceFile, error2), context); - }); } -}); -function getImportDeclaration2(sourceFile, span) { - return findAncestor(getTokenAtPosition(sourceFile, span.start), isImportDeclaration); -} -function splitTypeOnlyImport(changes, importDeclaration, context) { - if (!importDeclaration) { - return; - } - var importClause = Debug.checkDefined(importDeclaration.importClause); - changes.replaceNode(context.sourceFile, importDeclaration, factory.updateImportDeclaration(importDeclaration, importDeclaration.modifiers, factory.updateImportClause(importClause, importClause.isTypeOnly, importClause.name, - /*namedBindings*/ - void 0), importDeclaration.moduleSpecifier, importDeclaration.assertClause)); - changes.insertNodeAfter(context.sourceFile, importDeclaration, factory.createImportDeclaration( - /*modifiers*/ - void 0, factory.updateImportClause(importClause, importClause.isTypeOnly, - /*name*/ - void 0, importClause.namedBindings), importDeclaration.moduleSpecifier, importDeclaration.assertClause)); -} -// src/services/codefixes/convertConstToLet.ts -var fixId49 = "fixConvertConstToLet"; -var errorCodes61 = [Diagnostics.Cannot_assign_to_0_because_it_is_a_constant.code]; -registerCodeFix({ - errorCodes: errorCodes61, - getCodeActions: function getCodeActionsToConvertConstToLet(context) { - var sourceFile = context.sourceFile, span = context.span, program = context.program; - var info = getInfo20(sourceFile, span.start, program); - if (info === void 0) - return; - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return doChange39(t, sourceFile, info.token); }); - return [createCodeFixActionMaybeFixAll(fixId49, changes, Diagnostics.Convert_const_to_let, fixId49, Diagnostics.Convert_all_const_to_let)]; - }, - getAllCodeActions: function (context) { - var program = context.program; - var seen = /* @__PURE__ */ new Map(); - return createCombinedCodeActions(ts_textChanges_exports.ChangeTracker.with(context, function (changes) { - eachDiagnostic(context, errorCodes61, function (diag2) { - var info = getInfo20(diag2.file, diag2.start, program); - if (info) { - if (addToSeen(seen, getSymbolId(info.symbol))) { - return doChange39(changes, diag2.file, info.token); - } - } - return void 0; - }); - })); - }, - fixIds: [fixId49] -}); -function getInfo20(sourceFile, pos, program) { - var _a; - var checker = program.getTypeChecker(); - var symbol = checker.getSymbolAtLocation(getTokenAtPosition(sourceFile, pos)); - if (symbol === void 0) - return; - var declaration = tryCast((_a = symbol == null ? void 0 : symbol.valueDeclaration) == null ? void 0 : _a.parent, isVariableDeclarationList); - if (declaration === void 0) - return; - var constToken = findChildOfKind(declaration, 87 /* ConstKeyword */, sourceFile); - if (constToken === void 0) - return; - return { symbol: symbol, token: constToken }; -} -function doChange39(changes, sourceFile, token) { - changes.replaceNode(sourceFile, token, factory.createToken(121 /* LetKeyword */)); -} -// src/services/codefixes/fixExpectedComma.ts -var fixId50 = "fixExpectedComma"; -var expectedErrorCode = Diagnostics._0_expected.code; -var errorCodes62 = [expectedErrorCode]; -registerCodeFix({ - errorCodes: errorCodes62, - getCodeActions: function (context) { - var sourceFile = context.sourceFile; - var info = getInfo21(sourceFile, context.span.start, context.errorCode); - if (!info) - return void 0; - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return doChange40(t, sourceFile, info); }); - return [createCodeFixAction(fixId50, changes, [Diagnostics.Change_0_to_1, ";", ","], fixId50, [Diagnostics.Change_0_to_1, ";", ","])]; - }, - fixIds: [fixId50], - getAllCodeActions: function (context) { return codeFixAll(context, errorCodes62, function (changes, diag2) { - var info = getInfo21(diag2.file, diag2.start, diag2.code); - if (info) - doChange40(changes, context.sourceFile, info); - }); } -}); -function getInfo21(sourceFile, pos, _) { - var node = getTokenAtPosition(sourceFile, pos); - return node.kind === 27 /* SemicolonToken */ && node.parent && (isObjectLiteralExpression(node.parent) || isArrayLiteralExpression(node.parent)) ? { node: node } : void 0; -} -function doChange40(changes, sourceFile, _t) { - var node = _t.node; - var newNode = factory.createToken(28 /* CommaToken */); - changes.replaceNode(sourceFile, node, newNode); -} -// src/services/codefixes/fixAddVoidToPromise.ts -var fixName7 = "addVoidToPromise"; -var fixId51 = "addVoidToPromise"; -var errorCodes63 = [ - Diagnostics.Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_without_arguments.code, - Diagnostics.Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise.code -]; -registerCodeFix({ - errorCodes: errorCodes63, - fixIds: [fixId51], - getCodeActions: function (context) { - var changes = ts_textChanges_exports.ChangeTracker.with(context, function (t) { return makeChange11(t, context.sourceFile, context.span, context.program); }); - if (changes.length > 0) { - return [createCodeFixAction(fixName7, changes, Diagnostics.Add_void_to_Promise_resolved_without_a_value, fixId51, Diagnostics.Add_void_to_all_Promises_resolved_without_a_value)]; - } - }, - getAllCodeActions: function (context) { - return codeFixAll(context, errorCodes63, function (changes, diag2) { return makeChange11(changes, diag2.file, diag2, context.program, /* @__PURE__ */ new Set()); }); - } -}); -function makeChange11(changes, sourceFile, span, program, seen) { - var node = getTokenAtPosition(sourceFile, span.start); - if (!isIdentifier(node) || !isCallExpression(node.parent) || node.parent.expression !== node || node.parent.arguments.length !== 0) - return; - var checker = program.getTypeChecker(); - var symbol = checker.getSymbolAtLocation(node); - var decl = symbol == null ? void 0 : symbol.valueDeclaration; - if (!decl || !isParameter(decl) || !isNewExpression(decl.parent.parent)) - return; - if (seen == null ? void 0 : seen.has(decl)) - return; - seen == null ? void 0 : seen.add(decl); - var typeArguments = getEffectiveTypeArguments(decl.parent.parent); - if (some(typeArguments)) { - var typeArgument = typeArguments[0]; - var needsParens = !isUnionTypeNode(typeArgument) && !isParenthesizedTypeNode(typeArgument) && isParenthesizedTypeNode(factory.createUnionTypeNode([typeArgument, factory.createKeywordTypeNode(116 /* VoidKeyword */)]).types[0]); - if (needsParens) { - changes.insertText(sourceFile, typeArgument.pos, "("); - } - changes.insertText(sourceFile, typeArgument.end, needsParens ? ") | void" : " | void"); - } - else { - var signature = checker.getResolvedSignature(node.parent); - var parameter = signature == null ? void 0 : signature.parameters[0]; - var parameterType = parameter && checker.getTypeOfSymbolAtLocation(parameter, decl.parent.parent); - if (isInJSFile(decl)) { - if (!parameterType || parameterType.flags & 3 /* AnyOrUnknown */) { - changes.insertText(sourceFile, decl.parent.parent.end, ")"); - changes.insertText(sourceFile, skipTrivia(sourceFile.text, decl.parent.parent.pos), "/** @type {Promise} */("); - } - } - else { - if (!parameterType || parameterType.flags & 2 /* Unknown */) { - changes.insertText(sourceFile, decl.parent.parent.expression.end, ""); - } - } - } -} -function getEffectiveTypeArguments(node) { - var _a; - if (isInJSFile(node)) { - if (isParenthesizedExpression(node.parent)) { - var jsDocType = (_a = getJSDocTypeTag(node.parent)) == null ? void 0 : _a.typeExpression.type; - if (jsDocType && isTypeReferenceNode(jsDocType) && isIdentifier(jsDocType.typeName) && idText(jsDocType.typeName) === "Promise") { - return jsDocType.typeArguments; - } - } - } - else { - return node.typeArguments; - } -} -// src/services/_namespaces/ts.Completions.ts -var ts_Completions_exports = {}; -__export(ts_Completions_exports, { - CompletionKind: function () { return CompletionKind; }, - CompletionSource: function () { return CompletionSource; }, - SortText: function () { return SortText; }, - StringCompletions: function () { return ts_Completions_StringCompletions_exports; }, - SymbolOriginInfoKind: function () { return SymbolOriginInfoKind; }, - createCompletionDetails: function () { return createCompletionDetails; }, - createCompletionDetailsForSymbol: function () { return createCompletionDetailsForSymbol; }, - getCompletionEntriesFromSymbols: function () { return getCompletionEntriesFromSymbols; }, - getCompletionEntryDetails: function () { return getCompletionEntryDetails; }, - getCompletionEntrySymbol: function () { return getCompletionEntrySymbol; }, - getCompletionsAtPosition: function () { return getCompletionsAtPosition; }, - getPropertiesForObjectExpression: function () { return getPropertiesForObjectExpression; }, - moduleSpecifierResolutionCacheAttemptLimit: function () { return moduleSpecifierResolutionCacheAttemptLimit; }, - moduleSpecifierResolutionLimit: function () { return moduleSpecifierResolutionLimit; } -}); -// src/services/completions.ts -var moduleSpecifierResolutionLimit = 100; -var moduleSpecifierResolutionCacheAttemptLimit = 1e3; -var SortText = { - // Presets - LocalDeclarationPriority: "10", - LocationPriority: "11", - OptionalMember: "12", - MemberDeclaredBySpreadAssignment: "13", - SuggestedClassMembers: "14", - GlobalsOrKeywords: "15", - AutoImportSuggestions: "16", - ClassMemberSnippets: "17", - JavascriptIdentifiers: "18", - // Transformations - Deprecated: function (sortText) { - return "z" + sortText; - }, - ObjectLiteralProperty: function (presetSortText, symbolDisplayName) { - return "".concat(presetSortText, "\0").concat(symbolDisplayName, "\0"); - }, - SortBelow: function (sortText) { - return sortText + "1"; - } -}; -var CompletionSource = /* @__PURE__ */ (function (CompletionSource2) { - CompletionSource2["ThisProperty"] = "ThisProperty/"; - CompletionSource2["ClassMemberSnippet"] = "ClassMemberSnippet/"; - CompletionSource2["TypeOnlyAlias"] = "TypeOnlyAlias/"; - CompletionSource2["ObjectLiteralMethodSnippet"] = "ObjectLiteralMethodSnippet/"; - CompletionSource2["SwitchCases"] = "SwitchCases/"; - CompletionSource2["ObjectLiteralMemberWithComma"] = "ObjectLiteralMemberWithComma/"; - return CompletionSource2; -})(CompletionSource || {}); -var SymbolOriginInfoKind = /* @__PURE__ */ (function (SymbolOriginInfoKind2) { - SymbolOriginInfoKind2[SymbolOriginInfoKind2["ThisType"] = 1] = "ThisType"; - SymbolOriginInfoKind2[SymbolOriginInfoKind2["SymbolMember"] = 2] = "SymbolMember"; - SymbolOriginInfoKind2[SymbolOriginInfoKind2["Export"] = 4] = "Export"; - SymbolOriginInfoKind2[SymbolOriginInfoKind2["Promise"] = 8] = "Promise"; - SymbolOriginInfoKind2[SymbolOriginInfoKind2["Nullable"] = 16] = "Nullable"; - SymbolOriginInfoKind2[SymbolOriginInfoKind2["ResolvedExport"] = 32] = "ResolvedExport"; - SymbolOriginInfoKind2[SymbolOriginInfoKind2["TypeOnlyAlias"] = 64] = "TypeOnlyAlias"; - SymbolOriginInfoKind2[SymbolOriginInfoKind2["ObjectLiteralMethod"] = 128] = "ObjectLiteralMethod"; - SymbolOriginInfoKind2[SymbolOriginInfoKind2["Ignore"] = 256] = "Ignore"; - SymbolOriginInfoKind2[SymbolOriginInfoKind2["ComputedPropertyName"] = 512] = "ComputedPropertyName"; - SymbolOriginInfoKind2[SymbolOriginInfoKind2["SymbolMemberNoExport"] = 2 /* SymbolMember */] = "SymbolMemberNoExport"; - SymbolOriginInfoKind2[SymbolOriginInfoKind2["SymbolMemberExport"] = 6] = "SymbolMemberExport"; - return SymbolOriginInfoKind2; -})(SymbolOriginInfoKind || {}); -function originIsThisType(origin) { - return !!(origin.kind & 1 /* ThisType */); -} -function originIsSymbolMember(origin) { - return !!(origin.kind & 2 /* SymbolMember */); -} -function originIsExport(origin) { - return !!(origin && origin.kind & 4 /* Export */); -} -function originIsResolvedExport(origin) { - return !!(origin && origin.kind === 32 /* ResolvedExport */); -} -function originIncludesSymbolName(origin) { - return originIsExport(origin) || originIsResolvedExport(origin) || originIsComputedPropertyName(origin); -} -function originIsPackageJsonImport(origin) { - return (originIsExport(origin) || originIsResolvedExport(origin)) && !!origin.isFromPackageJson; -} -function originIsPromise(origin) { - return !!(origin.kind & 8 /* Promise */); -} -function originIsNullableMember(origin) { - return !!(origin.kind & 16 /* Nullable */); -} -function originIsTypeOnlyAlias(origin) { - return !!(origin && origin.kind & 64 /* TypeOnlyAlias */); -} -function originIsObjectLiteralMethod(origin) { - return !!(origin && origin.kind & 128 /* ObjectLiteralMethod */); -} -function originIsIgnore(origin) { - return !!(origin && origin.kind & 256 /* Ignore */); -} -function originIsComputedPropertyName(origin) { - return !!(origin && origin.kind & 512 /* ComputedPropertyName */); -} -function resolvingModuleSpecifiers(logPrefix, host, resolver, program, position, preferences, isForImportStatementCompletion, isValidTypeOnlyUseSite, cb) { - var _a, _b, _c; - var start2 = timestamp(); - var needsFullResolution = isForImportStatementCompletion || moduleResolutionSupportsPackageJsonExportsAndImports(getEmitModuleResolutionKind(program.getCompilerOptions())); - var skippedAny = false; - var ambientCount = 0; - var resolvedCount = 0; - var resolvedFromCacheCount = 0; - var cacheAttemptCount = 0; - var result = cb({ - tryResolve: tryResolve, - skippedAny: function () { return skippedAny; }, - resolvedAny: function () { return resolvedCount > 0; }, - resolvedBeyondLimit: function () { return resolvedCount > moduleSpecifierResolutionLimit; } - }); - var hitRateMessage = cacheAttemptCount ? " (".concat((resolvedFromCacheCount / cacheAttemptCount * 100).toFixed(1), "% hit rate)") : ""; - (_a = host.log) == null ? void 0 : _a.call(host, "".concat(logPrefix, ": resolved ").concat(resolvedCount, " module specifiers, plus ").concat(ambientCount, " ambient and ").concat(resolvedFromCacheCount, " from cache").concat(hitRateMessage)); - (_b = host.log) == null ? void 0 : _b.call(host, "".concat(logPrefix, ": response is ").concat(skippedAny ? "incomplete" : "complete")); - (_c = host.log) == null ? void 0 : _c.call(host, "".concat(logPrefix, ": ").concat(timestamp() - start2)); - return result; - function tryResolve(exportInfo, isFromAmbientModule) { - if (isFromAmbientModule) { - var result3 = resolver.getModuleSpecifierForBestExportInfo(exportInfo, position, isValidTypeOnlyUseSite); - if (result3) { - ambientCount++; - } - return result3 || "failed"; - } - var shouldResolveModuleSpecifier = needsFullResolution || preferences.allowIncompleteCompletions && resolvedCount < moduleSpecifierResolutionLimit; - var shouldGetModuleSpecifierFromCache = !shouldResolveModuleSpecifier && preferences.allowIncompleteCompletions && cacheAttemptCount < moduleSpecifierResolutionCacheAttemptLimit; - var result2 = shouldResolveModuleSpecifier || shouldGetModuleSpecifierFromCache ? resolver.getModuleSpecifierForBestExportInfo(exportInfo, position, isValidTypeOnlyUseSite, shouldGetModuleSpecifierFromCache) : void 0; - if (!shouldResolveModuleSpecifier && !shouldGetModuleSpecifierFromCache || shouldGetModuleSpecifierFromCache && !result2) { - skippedAny = true; - } - resolvedCount += (result2 == null ? void 0 : result2.computedWithoutCacheCount) || 0; - resolvedFromCacheCount += exportInfo.length - ((result2 == null ? void 0 : result2.computedWithoutCacheCount) || 0); - if (shouldGetModuleSpecifierFromCache) { - cacheAttemptCount++; - } - return result2 || (needsFullResolution ? "failed" : "skipped"); - } -} -function getCompletionsAtPosition(host, program, log, sourceFile, position, preferences, triggerCharacter, completionKind, cancellationToken, formatContext, includeSymbol) { - if (includeSymbol === void 0) { includeSymbol = false; } - var _a; - var previousToken = getRelevantTokens(position, sourceFile).previousToken; - if (triggerCharacter && !isInString(sourceFile, position, previousToken) && !isValidTrigger(sourceFile, triggerCharacter, previousToken, position)) { - return void 0; - } - if (triggerCharacter === " ") { - if (preferences.includeCompletionsForImportStatements && preferences.includeCompletionsWithInsertText) { - return { isGlobalCompletion: true, isMemberCompletion: false, isNewIdentifierLocation: true, isIncomplete: true, entries: [] }; - } - return void 0; - } - var compilerOptions = program.getCompilerOptions(); - var checker = program.getTypeChecker(); - var incompleteCompletionsCache = preferences.allowIncompleteCompletions ? (_a = host.getIncompleteCompletionsCache) == null ? void 0 : _a.call(host) : void 0; - if (incompleteCompletionsCache && completionKind === 3 /* TriggerForIncompleteCompletions */ && previousToken && isIdentifier(previousToken)) { - var incompleteContinuation = continuePreviousIncompleteResponse(incompleteCompletionsCache, sourceFile, previousToken, program, host, preferences, cancellationToken, position); - if (incompleteContinuation) { - return incompleteContinuation; - } - } - else { - incompleteCompletionsCache == null ? void 0 : incompleteCompletionsCache.clear(); - } - var stringCompletions = ts_Completions_StringCompletions_exports.getStringLiteralCompletions(sourceFile, position, previousToken, compilerOptions, host, program, log, preferences, includeSymbol); - if (stringCompletions) { - return stringCompletions; - } - if (previousToken && isBreakOrContinueStatement(previousToken.parent) && (previousToken.kind === 83 /* BreakKeyword */ || previousToken.kind === 88 /* ContinueKeyword */ || previousToken.kind === 80 /* Identifier */)) { - return getLabelCompletionAtPosition(previousToken.parent); - } - var completionData = getCompletionData(program, log, sourceFile, compilerOptions, position, preferences, - /*detailsEntryId*/ - void 0, host, formatContext, cancellationToken); - if (!completionData) { - return void 0; - } - switch (completionData.kind) { - case 0 /* Data */: - var response = completionInfoFromData(sourceFile, host, program, compilerOptions, log, completionData, preferences, formatContext, position, includeSymbol); - if (response == null ? void 0 : response.isIncomplete) { - incompleteCompletionsCache == null ? void 0 : incompleteCompletionsCache.set(response); - } - return response; - case 1 /* JsDocTagName */: - return jsdocCompletionInfo(__spreadArray(__spreadArray([], __read(ts_JsDoc_exports.getJSDocTagNameCompletions()), false), __read(getJSDocParameterCompletions(sourceFile, position, checker, compilerOptions, preferences, - /*tagNameOnly*/ - true)), false)); - case 2 /* JsDocTag */: - return jsdocCompletionInfo(__spreadArray(__spreadArray([], __read(ts_JsDoc_exports.getJSDocTagCompletions()), false), __read(getJSDocParameterCompletions(sourceFile, position, checker, compilerOptions, preferences, - /*tagNameOnly*/ - false)), false)); - case 3 /* JsDocParameterName */: - return jsdocCompletionInfo(ts_JsDoc_exports.getJSDocParameterNameCompletions(completionData.tag)); - case 4 /* Keywords */: - return specificKeywordCompletionInfo(completionData.keywordCompletions, completionData.isNewIdentifierLocation); - default: - return Debug.assertNever(completionData); - } -} -function compareCompletionEntries(entryInArray, entryToInsert) { - var _a, _b; - var result = compareStringsCaseSensitiveUI(entryInArray.sortText, entryToInsert.sortText); - if (result === 0 /* EqualTo */) { - result = compareStringsCaseSensitiveUI(entryInArray.name, entryToInsert.name); - } - if (result === 0 /* EqualTo */ && ((_a = entryInArray.data) == null ? void 0 : _a.moduleSpecifier) && ((_b = entryToInsert.data) == null ? void 0 : _b.moduleSpecifier)) { - result = compareNumberOfDirectorySeparators(entryInArray.data.moduleSpecifier, entryToInsert.data.moduleSpecifier); - } - if (result === 0 /* EqualTo */) { - return -1 /* LessThan */; - } - return result; -} -function completionEntryDataIsResolved(data) { - return !!(data == null ? void 0 : data.moduleSpecifier); -} -function continuePreviousIncompleteResponse(cache, file, location, program, host, preferences, cancellationToken, position) { - var previousResponse = cache.get(); - if (!previousResponse) - return void 0; - var touchNode = getTouchingPropertyName(file, position); - var lowerCaseTokenText = location.text.toLowerCase(); - var exportMap = getExportInfoMap(file, host, program, preferences, cancellationToken); - var newEntries = resolvingModuleSpecifiers("continuePreviousIncompleteResponse", host, ts_codefix_exports.createImportSpecifierResolver(file, program, host, preferences), program, location.getStart(), preferences, - /*isForImportStatementCompletion*/ - false, isValidTypeOnlyAliasUseSite(location), function (context) { - var entries = mapDefined(previousResponse.entries, function (entry) { - var _a; - if (!entry.hasAction || !entry.source || !entry.data || completionEntryDataIsResolved(entry.data)) { - return entry; - } - if (!charactersFuzzyMatchInString(entry.name, lowerCaseTokenText)) { - return void 0; - } - var origin = Debug.checkDefined(getAutoImportSymbolFromCompletionEntryData(entry.name, entry.data, program, host)).origin; - var info = exportMap.get(file.path, entry.data.exportMapKey); - var result = info && context.tryResolve(info, !isExternalModuleNameRelative(stripQuotes(origin.moduleSymbol.name))); - if (result === "skipped") - return entry; - if (!result || result === "failed") { - (_a = host.log) == null ? void 0 : _a.call(host, "Unexpected failure resolving auto import for '".concat(entry.name, "' from '").concat(entry.source, "'")); - return void 0; - } - var newOrigin = __assign(__assign({}, origin), { kind: 32 /* ResolvedExport */, moduleSpecifier: result.moduleSpecifier }); - entry.data = originToCompletionEntryData(newOrigin); - entry.source = getSourceFromOrigin(newOrigin); - entry.sourceDisplay = [textPart(newOrigin.moduleSpecifier)]; - return entry; - }); - if (!context.skippedAny()) { - previousResponse.isIncomplete = void 0; - } - return entries; - }); - previousResponse.entries = newEntries; - previousResponse.flags = (previousResponse.flags || 0) | 4 /* IsContinuation */; - previousResponse.optionalReplacementSpan = getOptionalReplacementSpan(touchNode); - return previousResponse; -} -function jsdocCompletionInfo(entries) { - return { isGlobalCompletion: false, isMemberCompletion: false, isNewIdentifierLocation: false, entries: entries }; -} -function getJSDocParameterCompletions(sourceFile, position, checker, options, preferences, tagNameOnly) { - var currentToken = getTokenAtPosition(sourceFile, position); - if (!isJSDocTag(currentToken) && !isJSDoc(currentToken)) { - return []; - } - var jsDoc = isJSDoc(currentToken) ? currentToken : currentToken.parent; - if (!isJSDoc(jsDoc)) { - return []; - } - var func = jsDoc.parent; - if (!isFunctionLike(func)) { - return []; - } - var isJs = isSourceFileJS(sourceFile); - var isSnippet = preferences.includeCompletionsWithSnippetText || void 0; - var paramTagCount = countWhere(jsDoc.tags, function (tag) { return isJSDocParameterTag(tag) && tag.getEnd() <= position; }); - return mapDefined(func.parameters, function (param) { - if (getJSDocParameterTags(param).length) { - return void 0; - } - if (isIdentifier(param.name)) { - var tabstopCounter = { tabstop: 1 }; - var paramName = param.name.text; - var displayText = getJSDocParamAnnotation(paramName, param.initializer, param.dotDotDotToken, isJs, - /*isObject*/ - false, - /*isSnippet*/ - false, checker, options, preferences); - var snippetText = isSnippet ? getJSDocParamAnnotation(paramName, param.initializer, param.dotDotDotToken, isJs, - /*isObject*/ - false, - /*isSnippet*/ - true, checker, options, preferences, tabstopCounter) : void 0; - if (tagNameOnly) { - displayText = displayText.slice(1); - if (snippetText) - snippetText = snippetText.slice(1); - } - return { - name: displayText, - kind: "parameter" /* parameterElement */, - sortText: SortText.LocationPriority, - insertText: isSnippet ? snippetText : void 0, - isSnippet: isSnippet - }; - } - else if (param.parent.parameters.indexOf(param) === paramTagCount) { - var paramPath = "param".concat(paramTagCount); - var displayTextResult = generateJSDocParamTagsForDestructuring(paramPath, param.name, param.initializer, param.dotDotDotToken, isJs, - /*isSnippet*/ - false, checker, options, preferences); - var snippetTextResult = isSnippet ? generateJSDocParamTagsForDestructuring(paramPath, param.name, param.initializer, param.dotDotDotToken, isJs, - /*isSnippet*/ - true, checker, options, preferences) : void 0; - var displayText = displayTextResult.join(getNewLineCharacter(options) + "* "); - var snippetText = snippetTextResult == null ? void 0 : snippetTextResult.join(getNewLineCharacter(options) + "* "); - if (tagNameOnly) { - displayText = displayText.slice(1); - if (snippetText) - snippetText = snippetText.slice(1); - } - return { - name: displayText, - kind: "parameter" /* parameterElement */, - sortText: SortText.LocationPriority, - insertText: isSnippet ? snippetText : void 0, - isSnippet: isSnippet - }; - } - }); -} -function generateJSDocParamTagsForDestructuring(path, pattern, initializer, dotDotDotToken, isJs, isSnippet, checker, options, preferences) { - if (!isJs) { - return [ - getJSDocParamAnnotation(path, initializer, dotDotDotToken, isJs, - /*isObject*/ - false, isSnippet, checker, options, preferences, { tabstop: 1 }) - ]; - } - return patternWorker(path, pattern, initializer, dotDotDotToken, { tabstop: 1 }); - function patternWorker(path2, pattern2, initializer2, dotDotDotToken2, counter) { - var e_798, _t; - if (isObjectBindingPattern(pattern2) && !dotDotDotToken2) { - var oldTabstop = counter.tabstop; - var childCounter = { tabstop: oldTabstop }; - var rootParam = getJSDocParamAnnotation(path2, initializer2, dotDotDotToken2, isJs, - /*isObject*/ - true, isSnippet, checker, options, preferences, childCounter); - var childTags = []; - try { - for (var _u = __values(pattern2.elements), _v = _u.next(); !_v.done; _v = _u.next()) { - var element = _v.value; - var elementTags = elementWorker(path2, element, childCounter); - if (!elementTags) { - childTags = void 0; - break; - } - else { - childTags.push.apply(childTags, __spreadArray([], __read(elementTags), false)); - } - } - } - catch (e_798_1) { e_798 = { error: e_798_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_798) throw e_798.error; } - } - if (childTags) { - counter.tabstop = childCounter.tabstop; - return __spreadArray([rootParam], __read(childTags), false); - } - } - return [ - getJSDocParamAnnotation(path2, initializer2, dotDotDotToken2, isJs, - /*isObject*/ - false, isSnippet, checker, options, preferences, counter) - ]; - } - function elementWorker(path2, element, counter) { - if (!element.propertyName && isIdentifier(element.name) || isIdentifier(element.name)) { - var propertyName = element.propertyName ? tryGetTextOfPropertyName(element.propertyName) : element.name.text; - if (!propertyName) { - return void 0; - } - var paramName = "".concat(path2, ".").concat(propertyName); - return [ - getJSDocParamAnnotation(paramName, element.initializer, element.dotDotDotToken, isJs, - /*isObject*/ - false, isSnippet, checker, options, preferences, counter) - ]; - } - else if (element.propertyName) { - var propertyName = tryGetTextOfPropertyName(element.propertyName); - return propertyName && patternWorker("".concat(path2, ".").concat(propertyName), element.name, element.initializer, element.dotDotDotToken, counter); - } - return void 0; - } -} -function getJSDocParamAnnotation(paramName, initializer, dotDotDotToken, isJs, isObject, isSnippet, checker, options, preferences, tabstopCounter) { - if (isSnippet) { - Debug.assertIsDefined(tabstopCounter); - } - if (initializer) { - paramName = getJSDocParamNameWithInitializer(paramName, initializer); - } - if (isSnippet) { - paramName = escapeSnippetText(paramName); - } - if (isJs) { - var type = "*"; - if (isObject) { - Debug.assert(!dotDotDotToken, "Cannot annotate a rest parameter with type 'Object'."); - type = "Object"; - } - else { - if (initializer) { - var inferredType = checker.getTypeAtLocation(initializer.parent); - if (!(inferredType.flags & (1 /* Any */ | 16384 /* Void */))) { - var sourceFile = initializer.getSourceFile(); - var quotePreference = getQuotePreference(sourceFile, preferences); - var builderFlags = quotePreference === 0 /* Single */ ? 268435456 /* UseSingleQuotesForStringLiteralType */ : 0 /* None */; - var typeNode = checker.typeToTypeNode(inferredType, findAncestor(initializer, isFunctionLike), builderFlags); - if (typeNode) { - var printer = isSnippet ? createSnippetPrinter({ - removeComments: true, - module: options.module, - target: options.target - }) : createPrinter({ - removeComments: true, - module: options.module, - target: options.target - }); - setEmitFlags(typeNode, 1 /* SingleLine */); - type = printer.printNode(4 /* Unspecified */, typeNode, sourceFile); - } - } - } - if (isSnippet && type === "*") { - type = "${".concat(tabstopCounter.tabstop++, ":").concat(type, "}"); - } - } - var dotDotDot = !isObject && dotDotDotToken ? "..." : ""; - var description3 = isSnippet ? "${".concat(tabstopCounter.tabstop++, "}") : ""; - return "@param {".concat(dotDotDot).concat(type, "} ").concat(paramName, " ").concat(description3); - } - else { - var description3 = isSnippet ? "${".concat(tabstopCounter.tabstop++, "}") : ""; - return "@param ".concat(paramName, " ").concat(description3); - } -} -function getJSDocParamNameWithInitializer(paramName, initializer) { - var initializerText = initializer.getText().trim(); - if (initializerText.includes("\n") || initializerText.length > 80) { - return "[".concat(paramName, "]"); - } - return "[".concat(paramName, "=").concat(initializerText, "]"); -} -function keywordToCompletionEntry(keyword) { - return { - name: tokenToString(keyword), - kind: "keyword" /* keyword */, - kindModifiers: "" /* none */, - sortText: SortText.GlobalsOrKeywords - }; -} -function specificKeywordCompletionInfo(entries, isNewIdentifierLocation) { - return { - isGlobalCompletion: false, - isMemberCompletion: false, - isNewIdentifierLocation: isNewIdentifierLocation, - entries: entries.slice() - }; -} -function keywordCompletionData(keywordFilters, filterOutTsOnlyKeywords, isNewIdentifierLocation) { - return { - kind: 4 /* Keywords */, - keywordCompletions: getKeywordCompletions(keywordFilters, filterOutTsOnlyKeywords), - isNewIdentifierLocation: isNewIdentifierLocation - }; -} -function keywordFiltersFromSyntaxKind(keywordCompletion) { - switch (keywordCompletion) { - case 156 /* TypeKeyword */: - return 8 /* TypeKeyword */; - default: - Debug.fail("Unknown mapping from SyntaxKind to KeywordCompletionFilters"); - } -} -function getOptionalReplacementSpan(location) { - return (location == null ? void 0 : location.kind) === 80 /* Identifier */ ? createTextSpanFromNode(location) : void 0; -} -function completionInfoFromData(sourceFile, host, program, compilerOptions, log, completionData, preferences, formatContext, position, includeSymbol) { - var e_799, _t, e_800, _u, e_801, _v; - var symbols = completionData.symbols, contextToken = completionData.contextToken, completionKind = completionData.completionKind, isInSnippetScope = completionData.isInSnippetScope, isNewIdentifierLocation = completionData.isNewIdentifierLocation, location = completionData.location, propertyAccessToConvert = completionData.propertyAccessToConvert, keywordFilters = completionData.keywordFilters, symbolToOriginInfoMap = completionData.symbolToOriginInfoMap, recommendedCompletion = completionData.recommendedCompletion, isJsxInitializer = completionData.isJsxInitializer, isTypeOnlyLocation = completionData.isTypeOnlyLocation, isJsxIdentifierExpected = completionData.isJsxIdentifierExpected, isRightOfOpenTag = completionData.isRightOfOpenTag, isRightOfDotOrQuestionDot = completionData.isRightOfDotOrQuestionDot, importStatementCompletion = completionData.importStatementCompletion, insideJsDocTagTypeExpression = completionData.insideJsDocTagTypeExpression, symbolToSortTextMap = completionData.symbolToSortTextMap, hasUnresolvedAutoImports = completionData.hasUnresolvedAutoImports; - var literals = completionData.literals; - var checker = program.getTypeChecker(); - if (getLanguageVariant(sourceFile.scriptKind) === 1 /* JSX */) { - var completionInfo = getJsxClosingTagCompletion(location, sourceFile); - if (completionInfo) { - return completionInfo; - } - } - var caseClause = findAncestor(contextToken, isCaseClause); - if (caseClause && (isCaseKeyword(contextToken) || isNodeDescendantOf(contextToken, caseClause.expression))) { - var tracker_1 = newCaseClauseTracker(checker, caseClause.parent.clauses); - literals = literals.filter(function (literal) { return !tracker_1.hasValue(literal); }); - symbols.forEach(function (symbol, i) { - if (symbol.valueDeclaration && isEnumMember(symbol.valueDeclaration)) { - var value = checker.getConstantValue(symbol.valueDeclaration); - if (value !== void 0 && tracker_1.hasValue(value)) { - symbolToOriginInfoMap[i] = { kind: 256 /* Ignore */ }; - } - } - }); - } - var entries = createSortedArray(); - var isChecked = isCheckedFile(sourceFile, compilerOptions); - if (isChecked && !isNewIdentifierLocation && (!symbols || symbols.length === 0) && keywordFilters === 0 /* None */) { - return void 0; - } - var uniqueNames = getCompletionEntriesFromSymbols(symbols, entries, - /*replacementToken*/ - void 0, contextToken, location, position, sourceFile, host, program, getEmitScriptTarget(compilerOptions), log, completionKind, preferences, compilerOptions, formatContext, isTypeOnlyLocation, propertyAccessToConvert, isJsxIdentifierExpected, isJsxInitializer, importStatementCompletion, recommendedCompletion, symbolToOriginInfoMap, symbolToSortTextMap, isJsxIdentifierExpected, isRightOfOpenTag, includeSymbol); - if (keywordFilters !== 0 /* None */) { - try { - for (var _w = __values(getKeywordCompletions(keywordFilters, !insideJsDocTagTypeExpression && isSourceFileJS(sourceFile))), _x = _w.next(); !_x.done; _x = _w.next()) { - var keywordEntry = _x.value; - if (isTypeOnlyLocation && isTypeKeyword(stringToToken(keywordEntry.name)) || !uniqueNames.has(keywordEntry.name)) { - uniqueNames.add(keywordEntry.name); - insertSorted(entries, keywordEntry, compareCompletionEntries, - /*allowDuplicates*/ - true); - } - } - } - catch (e_799_1) { e_799 = { error: e_799_1 }; } - finally { - try { - if (_x && !_x.done && (_t = _w.return)) _t.call(_w); - } - finally { if (e_799) throw e_799.error; } - } - } - try { - for (var _y = __values(getContextualKeywords(contextToken, position)), _z = _y.next(); !_z.done; _z = _y.next()) { - var keywordEntry = _z.value; - if (!uniqueNames.has(keywordEntry.name)) { - uniqueNames.add(keywordEntry.name); - insertSorted(entries, keywordEntry, compareCompletionEntries, - /*allowDuplicates*/ - true); - } - } - } - catch (e_800_1) { e_800 = { error: e_800_1 }; } - finally { - try { - if (_z && !_z.done && (_u = _y.return)) _u.call(_y); - } - finally { if (e_800) throw e_800.error; } - } - try { - for (var literals_2 = __values(literals), literals_2_1 = literals_2.next(); !literals_2_1.done; literals_2_1 = literals_2.next()) { - var literal = literals_2_1.value; - var literalEntry = createCompletionEntryForLiteral(sourceFile, preferences, literal); - uniqueNames.add(literalEntry.name); - insertSorted(entries, literalEntry, compareCompletionEntries, - /*allowDuplicates*/ - true); - } - } - catch (e_801_1) { e_801 = { error: e_801_1 }; } - finally { - try { - if (literals_2_1 && !literals_2_1.done && (_v = literals_2.return)) _v.call(literals_2); - } - finally { if (e_801) throw e_801.error; } - } - if (!isChecked) { - getJSCompletionEntries(sourceFile, location.pos, uniqueNames, getEmitScriptTarget(compilerOptions), entries); - } - var caseBlock; - if (preferences.includeCompletionsWithInsertText && contextToken && !isRightOfOpenTag && !isRightOfDotOrQuestionDot && (caseBlock = findAncestor(contextToken, isCaseBlock))) { - var cases = getExhaustiveCaseSnippets(caseBlock, sourceFile, preferences, compilerOptions, host, program, formatContext); - if (cases) { - entries.push(cases.entry); - } - } - return { - flags: completionData.flags, - isGlobalCompletion: isInSnippetScope, - isIncomplete: preferences.allowIncompleteCompletions && hasUnresolvedAutoImports ? true : void 0, - isMemberCompletion: isMemberCompletionKind(completionKind), - isNewIdentifierLocation: isNewIdentifierLocation, - optionalReplacementSpan: getOptionalReplacementSpan(location), - entries: entries - }; -} -function isCheckedFile(sourceFile, compilerOptions) { - return !isSourceFileJS(sourceFile) || !!isCheckJsEnabledForFile(sourceFile, compilerOptions); -} -function getExhaustiveCaseSnippets(caseBlock, sourceFile, preferences, options, host, program, formatContext) { - var e_802, _t; - var clauses = caseBlock.clauses; - var checker = program.getTypeChecker(); - var switchType = checker.getTypeAtLocation(caseBlock.parent.expression); - if (switchType && switchType.isUnion() && every(switchType.types, function (type) { return type.isLiteral(); })) { - var tracker = newCaseClauseTracker(checker, clauses); - var target = getEmitScriptTarget(options); - var quotePreference = getQuotePreference(sourceFile, preferences); - var importAdder = ts_codefix_exports.createImportAdder(sourceFile, program, preferences, host); - var elements = []; - try { - for (var _u = __values(switchType.types), _v = _u.next(); !_v.done; _v = _u.next()) { - var type = _v.value; - if (type.flags & 1024 /* EnumLiteral */) { - Debug.assert(type.symbol, "An enum member type should have a symbol"); - Debug.assert(type.symbol.parent, "An enum member type should have a parent symbol (the enum symbol)"); - var enumValue = type.symbol.valueDeclaration && checker.getConstantValue(type.symbol.valueDeclaration); - if (enumValue !== void 0) { - if (tracker.hasValue(enumValue)) { - continue; - } - tracker.addValue(enumValue); - } - var typeNode = ts_codefix_exports.typeToAutoImportableTypeNode(checker, importAdder, type, caseBlock, target); - if (!typeNode) { - return void 0; - } - var expr = typeNodeToExpression(typeNode, target, quotePreference); - if (!expr) { - return void 0; - } - elements.push(expr); - } - else if (!tracker.hasValue(type.value)) { - switch (typeof type.value) { - case "object": - elements.push(type.value.negative ? factory.createPrefixUnaryExpression(41 /* MinusToken */, factory.createBigIntLiteral({ negative: false, base10Value: type.value.base10Value })) : factory.createBigIntLiteral(type.value)); - break; - case "number": - elements.push(type.value < 0 ? factory.createPrefixUnaryExpression(41 /* MinusToken */, factory.createNumericLiteral(-type.value)) : factory.createNumericLiteral(type.value)); - break; - case "string": - elements.push(factory.createStringLiteral(type.value, quotePreference === 0 /* Single */)); - break; - } - } - } - } - catch (e_802_1) { e_802 = { error: e_802_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_802) throw e_802.error; } - } - if (elements.length === 0) { - return void 0; - } - var newClauses = map(elements, function (element) { return factory.createCaseClause(element, []); }); - var newLineChar = getNewLineOrDefaultFromHost(host, formatContext == null ? void 0 : formatContext.options); - var printer_2 = createSnippetPrinter({ - removeComments: true, - module: options.module, - target: options.target, - newLine: getNewLineKind(newLineChar) - }); - var printNode_1 = formatContext ? function (node) { return printer_2.printAndFormatNode(4 /* Unspecified */, node, sourceFile, formatContext); } : function (node) { return printer_2.printNode(4 /* Unspecified */, node, sourceFile); }; - var insertText = map(newClauses, function (clause, i) { - if (preferences.includeCompletionsWithSnippetText) { - return "".concat(printNode_1(clause), "$").concat(i + 1); - } - return "".concat(printNode_1(clause)); - }).join(newLineChar); - var firstClause = printer_2.printNode(4 /* Unspecified */, newClauses[0], sourceFile); - return { - entry: { - name: "".concat(firstClause, " ..."), - kind: "" /* unknown */, - sortText: SortText.GlobalsOrKeywords, - insertText: insertText, - hasAction: importAdder.hasFixes() || void 0, - source: "SwitchCases/" /* SwitchCases */, - isSnippet: preferences.includeCompletionsWithSnippetText ? true : void 0 - }, - importAdder: importAdder - }; - } - return void 0; -} -function typeNodeToExpression(typeNode, languageVersion, quotePreference) { - switch (typeNode.kind) { - case 183 /* TypeReference */: - var typeName = typeNode.typeName; - return entityNameToExpression(typeName, languageVersion, quotePreference); - case 199 /* IndexedAccessType */: - var objectExpression = typeNodeToExpression(typeNode.objectType, languageVersion, quotePreference); - var indexExpression = typeNodeToExpression(typeNode.indexType, languageVersion, quotePreference); - return objectExpression && indexExpression && factory.createElementAccessExpression(objectExpression, indexExpression); - case 201 /* LiteralType */: - var literal = typeNode.literal; - switch (literal.kind) { - case 11 /* StringLiteral */: - return factory.createStringLiteral(literal.text, quotePreference === 0 /* Single */); - case 9 /* NumericLiteral */: - return factory.createNumericLiteral(literal.text, literal.numericLiteralFlags); - } - return void 0; - case 196 /* ParenthesizedType */: - var exp = typeNodeToExpression(typeNode.type, languageVersion, quotePreference); - return exp && (isIdentifier(exp) ? exp : factory.createParenthesizedExpression(exp)); - case 186 /* TypeQuery */: - return entityNameToExpression(typeNode.exprName, languageVersion, quotePreference); - case 205 /* ImportType */: - Debug.fail("We should not get an import type after calling 'codefix.typeToAutoImportableTypeNode'."); - } - return void 0; -} -function entityNameToExpression(entityName, languageVersion, quotePreference) { - if (isIdentifier(entityName)) { - return entityName; - } - var unescapedName = unescapeLeadingUnderscores(entityName.right.escapedText); - if (canUsePropertyAccess(unescapedName, languageVersion)) { - return factory.createPropertyAccessExpression(entityNameToExpression(entityName.left, languageVersion, quotePreference), unescapedName); - } - else { - return factory.createElementAccessExpression(entityNameToExpression(entityName.left, languageVersion, quotePreference), factory.createStringLiteral(unescapedName, quotePreference === 0 /* Single */)); - } -} -function isMemberCompletionKind(kind) { - switch (kind) { - case 0 /* ObjectPropertyDeclaration */: - case 3 /* MemberLike */: - case 2 /* PropertyAccess */: - return true; - default: - return false; - } -} -function getJsxClosingTagCompletion(location, sourceFile) { - var jsxClosingElement = findAncestor(location, function (node) { - switch (node.kind) { - case 287 /* JsxClosingElement */: - return true; - case 44 /* SlashToken */: - case 32 /* GreaterThanToken */: - case 80 /* Identifier */: - case 211 /* PropertyAccessExpression */: - return false; - default: - return "quit"; - } - }); - if (jsxClosingElement) { - var hasClosingAngleBracket = !!findChildOfKind(jsxClosingElement, 32 /* GreaterThanToken */, sourceFile); - var tagName = jsxClosingElement.parent.openingElement.tagName; - var closingTag = tagName.getText(sourceFile); - var fullClosingTag = closingTag + (hasClosingAngleBracket ? "" : ">"); - var replacementSpan = createTextSpanFromNode(jsxClosingElement.tagName); - var entry = { - name: fullClosingTag, - kind: "class" /* classElement */, - kindModifiers: void 0, - sortText: SortText.LocationPriority - }; - return { isGlobalCompletion: false, isMemberCompletion: true, isNewIdentifierLocation: false, optionalReplacementSpan: replacementSpan, entries: [entry] }; - } - return; -} -function getJSCompletionEntries(sourceFile, position, uniqueNames, target, entries) { - getNameTable(sourceFile).forEach(function (pos, name) { - if (pos === position) { - return; - } - var realName = unescapeLeadingUnderscores(name); - if (!uniqueNames.has(realName) && isIdentifierText(realName, target)) { - uniqueNames.add(realName); - insertSorted(entries, { - name: realName, - kind: "warning" /* warning */, - kindModifiers: "", - sortText: SortText.JavascriptIdentifiers, - isFromUncheckedFile: true - }, compareCompletionEntries); - } - }); -} -function completionNameForLiteral(sourceFile, preferences, literal) { - return typeof literal === "object" ? pseudoBigIntToString(literal) + "n" : isString(literal) ? quote(sourceFile, preferences, literal) : JSON.stringify(literal); -} -function createCompletionEntryForLiteral(sourceFile, preferences, literal) { - return { name: completionNameForLiteral(sourceFile, preferences, literal), kind: "string" /* string */, kindModifiers: "" /* none */, sortText: SortText.LocationPriority }; -} -function createCompletionEntry(symbol, sortText, replacementToken, contextToken, location, position, sourceFile, host, program, name, needsConvertPropertyAccess, origin, recommendedCompletion, propertyAccessToConvert, isJsxInitializer, importStatementCompletion, useSemicolons, options, preferences, completionKind, formatContext, isJsxIdentifierExpected, isRightOfOpenTag, includeSymbol) { - var _t; - var _a, _b; - var insertText; - var filterText; - var replacementSpan = getReplacementSpanForContextToken(replacementToken); - var data; - var isSnippet; - var source = getSourceFromOrigin(origin); - var sourceDisplay; - var hasAction; - var labelDetails; - var typeChecker = program.getTypeChecker(); - var insertQuestionDot = origin && originIsNullableMember(origin); - var useBraces = origin && originIsSymbolMember(origin) || needsConvertPropertyAccess; - if (origin && originIsThisType(origin)) { - insertText = needsConvertPropertyAccess ? "this".concat(insertQuestionDot ? "?." : "", "[").concat(quotePropertyName(sourceFile, preferences, name), "]") : "this".concat(insertQuestionDot ? "?." : ".").concat(name); - } - else if ((useBraces || insertQuestionDot) && propertyAccessToConvert) { - insertText = useBraces ? needsConvertPropertyAccess ? "[".concat(quotePropertyName(sourceFile, preferences, name), "]") : "[".concat(name, "]") : name; - if (insertQuestionDot || propertyAccessToConvert.questionDotToken) { - insertText = "?.".concat(insertText); - } - var dot = findChildOfKind(propertyAccessToConvert, 25 /* DotToken */, sourceFile) || findChildOfKind(propertyAccessToConvert, 29 /* QuestionDotToken */, sourceFile); - if (!dot) { - return void 0; - } - var end = startsWith(name, propertyAccessToConvert.name.text) ? propertyAccessToConvert.name.end : dot.end; - replacementSpan = createTextSpanFromBounds(dot.getStart(sourceFile), end); - } - if (isJsxInitializer) { - if (insertText === void 0) - insertText = name; - insertText = "{".concat(insertText, "}"); - if (typeof isJsxInitializer !== "boolean") { - replacementSpan = createTextSpanFromNode(isJsxInitializer, sourceFile); - } - } - if (origin && originIsPromise(origin) && propertyAccessToConvert) { - if (insertText === void 0) - insertText = name; - var precedingToken = findPrecedingToken(propertyAccessToConvert.pos, sourceFile); - var awaitText = ""; - if (precedingToken && positionIsASICandidate(precedingToken.end, precedingToken.parent, sourceFile)) { - awaitText = ";"; - } - awaitText += "(await ".concat(propertyAccessToConvert.expression.getText(), ")"); - insertText = needsConvertPropertyAccess ? "".concat(awaitText).concat(insertText) : "".concat(awaitText).concat(insertQuestionDot ? "?." : ".").concat(insertText); - var isInAwaitExpression = tryCast(propertyAccessToConvert.parent, isAwaitExpression); - var wrapNode = isInAwaitExpression ? propertyAccessToConvert.parent : propertyAccessToConvert.expression; - replacementSpan = createTextSpanFromBounds(wrapNode.getStart(sourceFile), propertyAccessToConvert.end); - } - if (originIsResolvedExport(origin)) { - sourceDisplay = [textPart(origin.moduleSpecifier)]; - if (importStatementCompletion) { - (_t = getInsertTextAndReplacementSpanForImportCompletion(name, importStatementCompletion, origin, useSemicolons, sourceFile, options, preferences), insertText = _t.insertText, replacementSpan = _t.replacementSpan); - isSnippet = preferences.includeCompletionsWithSnippetText ? true : void 0; - } - } - if ((origin == null ? void 0 : origin.kind) === 64 /* TypeOnlyAlias */) { - hasAction = true; - } - if (completionKind === 0 /* ObjectPropertyDeclaration */ && contextToken && ((_a = findPrecedingToken(contextToken.pos, sourceFile, contextToken)) == null ? void 0 : _a.kind) !== 28 /* CommaToken */) { - if (isMethodDeclaration(contextToken.parent.parent) || isGetAccessorDeclaration(contextToken.parent.parent) || isSetAccessorDeclaration(contextToken.parent.parent) || isSpreadAssignment(contextToken.parent) || ((_b = findAncestor(contextToken.parent, isPropertyAssignment)) == null ? void 0 : _b.getLastToken(sourceFile)) === contextToken || isShorthandPropertyAssignment(contextToken.parent) && getLineAndCharacterOfPosition(sourceFile, contextToken.getEnd()).line !== getLineAndCharacterOfPosition(sourceFile, position).line) { - source = "ObjectLiteralMemberWithComma/" /* ObjectLiteralMemberWithComma */; - hasAction = true; - } - } - if (preferences.includeCompletionsWithClassMemberSnippets && preferences.includeCompletionsWithInsertText && completionKind === 3 /* MemberLike */ && isClassLikeMemberCompletion(symbol, location, sourceFile)) { - var importAdder = void 0; - var memberCompletionEntry = getEntryForMemberCompletion(host, program, options, preferences, name, symbol, location, position, contextToken, formatContext); - if (memberCompletionEntry) { - (insertText = memberCompletionEntry.insertText, filterText = memberCompletionEntry.filterText, isSnippet = memberCompletionEntry.isSnippet, importAdder = memberCompletionEntry.importAdder); - if (importAdder == null ? void 0 : importAdder.hasFixes()) { - hasAction = true; - source = "ClassMemberSnippet/" /* ClassMemberSnippet */; - } - } - else { - return void 0; - } - } - if (origin && originIsObjectLiteralMethod(origin)) { - (insertText = origin.insertText, isSnippet = origin.isSnippet, labelDetails = origin.labelDetails); - if (!preferences.useLabelDetailsInCompletionEntries) { - name = name + labelDetails.detail; - labelDetails = void 0; - } - source = "ObjectLiteralMethodSnippet/" /* ObjectLiteralMethodSnippet */; - sortText = SortText.SortBelow(sortText); - } - if (isJsxIdentifierExpected && !isRightOfOpenTag && preferences.includeCompletionsWithSnippetText && preferences.jsxAttributeCompletionStyle && preferences.jsxAttributeCompletionStyle !== "none" && !(isJsxAttribute(location.parent) && location.parent.initializer)) { - var useBraces2 = preferences.jsxAttributeCompletionStyle === "braces"; - var type = typeChecker.getTypeOfSymbolAtLocation(symbol, location); - if (preferences.jsxAttributeCompletionStyle === "auto" && !(type.flags & 528 /* BooleanLike */) && !(type.flags & 1048576 /* Union */ && find(type.types, function (type2) { return !!(type2.flags & 528 /* BooleanLike */); }))) { - if (type.flags & 402653316 /* StringLike */ || type.flags & 1048576 /* Union */ && every(type.types, function (type2) { return !!(type2.flags & (402653316 /* StringLike */ | 32768 /* Undefined */) || isStringAndEmptyAnonymousObjectIntersection(type2)); })) { - insertText = "".concat(escapeSnippetText(name), "=").concat(quote(sourceFile, preferences, "$1")); - isSnippet = true; - } - else { - useBraces2 = true; - } - } - if (useBraces2) { - insertText = "".concat(escapeSnippetText(name), "={$1}"); - isSnippet = true; - } - } - if (insertText !== void 0 && !preferences.includeCompletionsWithInsertText) { - return void 0; - } - if (originIsExport(origin) || originIsResolvedExport(origin)) { - data = originToCompletionEntryData(origin); - hasAction = !importStatementCompletion; - } - var parentNamedImportOrExport = findAncestor(location, isNamedImportsOrExports); - if ((parentNamedImportOrExport == null ? void 0 : parentNamedImportOrExport.kind) === 275 /* NamedImports */) { - var possibleToken = stringToToken(name); - if (parentNamedImportOrExport && possibleToken && (possibleToken === 135 /* AwaitKeyword */ || isNonContextualKeyword(possibleToken))) { - insertText = "".concat(name, " as ").concat(name, "_"); - } - } - return __assign({ name: name, kind: ts_SymbolDisplay_exports.getSymbolKind(typeChecker, symbol, location), kindModifiers: ts_SymbolDisplay_exports.getSymbolModifiers(typeChecker, symbol), sortText: sortText, source: source, hasAction: hasAction ? true : void 0, isRecommended: isRecommendedCompletionMatch(symbol, recommendedCompletion, typeChecker) || void 0, insertText: insertText, filterText: filterText, replacementSpan: replacementSpan, sourceDisplay: sourceDisplay, labelDetails: labelDetails, isSnippet: isSnippet, isPackageJsonImport: originIsPackageJsonImport(origin) || void 0, isImportStatementCompletion: !!importStatementCompletion || void 0, data: data }, includeSymbol ? { symbol: symbol } : void 0); -} -function isClassLikeMemberCompletion(symbol, location, sourceFile) { - if (isInJSFile(location)) { - return false; - } - var memberFlags = 106500 /* ClassMember */ & 900095 /* EnumMemberExcludes */; - return !!(symbol.flags & memberFlags) && (isClassLike(location) || location.parent && location.parent.parent && isClassElement(location.parent) && location === location.parent.name && location.parent.getLastToken(sourceFile) === location.parent.name && isClassLike(location.parent.parent) || location.parent && isSyntaxList(location) && isClassLike(location.parent)); -} -function getEntryForMemberCompletion(host, program, options, preferences, name, symbol, location, position, contextToken, formatContext) { - var classLikeDeclaration = findAncestor(location, isClassLike); - if (!classLikeDeclaration) { - return void 0; - } - var isSnippet; - var insertText = name; - var filterText = name; - var checker = program.getTypeChecker(); - var sourceFile = location.getSourceFile(); - var printer = createSnippetPrinter({ - removeComments: true, - module: options.module, - target: options.target, - omitTrailingSemicolon: false, - newLine: getNewLineKind(getNewLineOrDefaultFromHost(host, formatContext == null ? void 0 : formatContext.options)) - }); - var importAdder = ts_codefix_exports.createImportAdder(sourceFile, program, preferences, host); - var body; - if (preferences.includeCompletionsWithSnippetText) { - isSnippet = true; - var emptyStmt = factory.createEmptyStatement(); - body = factory.createBlock([emptyStmt], - /*multiLine*/ - true); - setSnippetElement(emptyStmt, { kind: 0 /* TabStop */, order: 0 }); - } - else { - body = factory.createBlock([], - /*multiLine*/ - true); - } - var modifiers = 0 /* None */; - var _t = getPresentModifiers(contextToken, sourceFile, position), presentModifiers = _t.modifiers, eraseRange = _t.range, presentDecorators = _t.decorators; - var isAbstract = presentModifiers & 256 /* Abstract */ && classLikeDeclaration.modifierFlagsCache & 256 /* Abstract */; - var completionNodes = []; - ts_codefix_exports.addNewNodeForMemberSymbol(symbol, classLikeDeclaration, sourceFile, { program: program, host: host }, preferences, importAdder, - // `addNewNodeForMemberSymbol` calls this callback function for each new member node - // it adds for the given member symbol. - // We store these member nodes in the `completionNodes` array. - // Note: there might be: - // - No nodes if `addNewNodeForMemberSymbol` cannot figure out a node for the member; - // - One node; - // - More than one node if the member is overloaded (e.g. a method with overload signatures). - function (node) { - var requiredModifiers = 0 /* None */; - if (isAbstract) { - requiredModifiers |= 256 /* Abstract */; - } - if (isClassElement(node) && checker.getMemberOverrideModifierStatus(classLikeDeclaration, node, symbol) === 1 /* NeedsOverride */) { - requiredModifiers |= 16384 /* Override */; - } - if (!completionNodes.length) { - modifiers = node.modifierFlagsCache | requiredModifiers; - } - node = factory.updateModifiers(node, modifiers); - completionNodes.push(node); - }, body, ts_codefix_exports.PreserveOptionalFlags.Property, !!isAbstract); - if (completionNodes.length) { - var isMethod = symbol.flags & 8192 /* Method */; - var allowedModifiers = modifiers | 16384 /* Override */ | 4 /* Public */; - if (!isMethod) { - allowedModifiers |= 2 /* Ambient */ | 64 /* Readonly */; - } - else { - allowedModifiers |= 512 /* Async */; - } - var allowedAndPresent = presentModifiers & allowedModifiers; - if (presentModifiers & ~allowedModifiers) { - return void 0; - } - if (modifiers & 16 /* Protected */ && allowedAndPresent & 4 /* Public */) { - modifiers &= ~16 /* Protected */; - } - if (allowedAndPresent !== 0 /* None */ && !(allowedAndPresent & 4 /* Public */)) { - modifiers &= ~4 /* Public */; - } - modifiers |= allowedAndPresent; - completionNodes = completionNodes.map(function (node) { return factory.updateModifiers(node, modifiers); }); - if (presentDecorators == null ? void 0 : presentDecorators.length) { - var lastNode = completionNodes[completionNodes.length - 1]; - if (canHaveDecorators(lastNode)) { - completionNodes[completionNodes.length - 1] = factory.updateModifierLike(lastNode, presentDecorators.concat(getModifiers(lastNode) || [])); - } - } - var format = 1 /* MultiLine */ | 131072 /* NoTrailingNewLine */; - if (formatContext) { - insertText = printer.printAndFormatSnippetList(format, factory.createNodeArray(completionNodes), sourceFile, formatContext); - } - else { - insertText = printer.printSnippetList(format, factory.createNodeArray(completionNodes), sourceFile); - } - } - return { insertText: insertText, filterText: filterText, isSnippet: isSnippet, importAdder: importAdder, eraseRange: eraseRange }; -} -function getPresentModifiers(contextToken, sourceFile, position) { - if (!contextToken || getLineAndCharacterOfPosition(sourceFile, position).line > getLineAndCharacterOfPosition(sourceFile, contextToken.getEnd()).line) { - return { modifiers: 0 /* None */ }; - } - var modifiers = 0 /* None */; - var decorators; - var contextMod; - var range = { pos: position, end: position }; - if (isPropertyDeclaration(contextToken.parent) && contextToken.parent.modifiers) { - modifiers |= modifiersToFlags(contextToken.parent.modifiers) & 126975 /* Modifier */; - decorators = contextToken.parent.modifiers.filter(isDecorator) || []; - range.pos = Math.min(range.pos, contextToken.parent.modifiers.pos); - } - if (contextMod = isModifierLike2(contextToken)) { - var contextModifierFlag = modifierToFlag(contextMod); - if (!(modifiers & contextModifierFlag)) { - modifiers |= contextModifierFlag; - range.pos = Math.min(range.pos, contextToken.pos); - } - } - return { modifiers: modifiers, decorators: decorators, range: range.pos !== position ? range : void 0 }; -} -function isModifierLike2(node) { - if (isModifier(node)) { - return node.kind; - } - if (isIdentifier(node)) { - var originalKeywordKind = identifierToKeywordKind(node); - if (originalKeywordKind && isModifierKind(originalKeywordKind)) { - return originalKeywordKind; - } - } - return void 0; -} -function getEntryForObjectLiteralMethodCompletion(symbol, name, enclosingDeclaration, program, host, options, preferences, formatContext) { - var isSnippet = preferences.includeCompletionsWithSnippetText || void 0; - var insertText = name; - var sourceFile = enclosingDeclaration.getSourceFile(); - var method = createObjectLiteralMethod(symbol, enclosingDeclaration, sourceFile, program, host, preferences); - if (!method) { - return void 0; - } - var printer = createSnippetPrinter({ - removeComments: true, - module: options.module, - target: options.target, - omitTrailingSemicolon: false, - newLine: getNewLineKind(getNewLineOrDefaultFromHost(host, formatContext == null ? void 0 : formatContext.options)) - }); - if (formatContext) { - insertText = printer.printAndFormatSnippetList(16 /* CommaDelimited */ | 64 /* AllowTrailingComma */, factory.createNodeArray([method], - /*hasTrailingComma*/ - true), sourceFile, formatContext); - } - else { - insertText = printer.printSnippetList(16 /* CommaDelimited */ | 64 /* AllowTrailingComma */, factory.createNodeArray([method], - /*hasTrailingComma*/ - true), sourceFile); - } - var signaturePrinter = createPrinter({ - removeComments: true, - module: options.module, - target: options.target, - omitTrailingSemicolon: true - }); - var methodSignature = factory.createMethodSignature( - /*modifiers*/ - void 0, - /*name*/ - "", method.questionToken, method.typeParameters, method.parameters, method.type); - var labelDetails = { detail: signaturePrinter.printNode(4 /* Unspecified */, methodSignature, sourceFile) }; - return { isSnippet: isSnippet, insertText: insertText, labelDetails: labelDetails }; -} -function createObjectLiteralMethod(symbol, enclosingDeclaration, sourceFile, program, host, preferences) { - var declarations = symbol.getDeclarations(); - if (!(declarations && declarations.length)) { - return void 0; - } - var checker = program.getTypeChecker(); - var declaration = declarations[0]; - var name = getSynthesizedDeepClone(getNameOfDeclaration(declaration), - /*includeTrivia*/ - false); - var type = checker.getWidenedType(checker.getTypeOfSymbolAtLocation(symbol, enclosingDeclaration)); - var quotePreference = getQuotePreference(sourceFile, preferences); - var builderFlags = 33554432 /* OmitThisParameter */ | (quotePreference === 0 /* Single */ ? 268435456 /* UseSingleQuotesForStringLiteralType */ : 0 /* None */); - switch (declaration.kind) { - case 171 /* PropertySignature */: - case 172 /* PropertyDeclaration */: - case 173 /* MethodSignature */: - case 174 /* MethodDeclaration */: { - var effectiveType = type.flags & 1048576 /* Union */ && type.types.length < 10 ? checker.getUnionType(type.types, 2 /* Subtype */) : type; - if (effectiveType.flags & 1048576 /* Union */) { - var functionTypes = filter(effectiveType.types, function (type2) { return checker.getSignaturesOfType(type2, 0 /* Call */).length > 0; }); - if (functionTypes.length === 1) { - effectiveType = functionTypes[0]; - } - else { - return void 0; - } - } - var signatures = checker.getSignaturesOfType(effectiveType, 0 /* Call */); - if (signatures.length !== 1) { - return void 0; - } - var typeNode = checker.typeToTypeNode(effectiveType, enclosingDeclaration, builderFlags, ts_codefix_exports.getNoopSymbolTrackerWithResolver({ program: program, host: host })); - if (!typeNode || !isFunctionTypeNode(typeNode)) { - return void 0; - } - var body = void 0; - if (preferences.includeCompletionsWithSnippetText) { - var emptyStmt = factory.createEmptyStatement(); - body = factory.createBlock([emptyStmt], - /*multiLine*/ - true); - setSnippetElement(emptyStmt, { kind: 0 /* TabStop */, order: 0 }); - } - else { - body = factory.createBlock([], - /*multiLine*/ - true); - } - var parameters = typeNode.parameters.map(function (typedParam) { return factory.createParameterDeclaration( - /*modifiers*/ - void 0, typedParam.dotDotDotToken, typedParam.name, - /*questionToken*/ - void 0, - /*type*/ - void 0, typedParam.initializer); }); - return factory.createMethodDeclaration( - /*modifiers*/ - void 0, - /*asteriskToken*/ - void 0, name, - /*questionToken*/ - void 0, - /*typeParameters*/ - void 0, parameters, - /*type*/ - void 0, body); - } - default: - return void 0; - } -} -function createSnippetPrinter(printerOptions) { - var escapes; - var baseWriter = ts_textChanges_exports.createWriter(getNewLineCharacter(printerOptions)); - var printer = createPrinter(printerOptions, baseWriter); - var writer = __assign(__assign({}, baseWriter), { write: function (s) { return escapingWrite(s, function () { return baseWriter.write(s); }); }, nonEscapingWrite: baseWriter.write, writeLiteral: function (s) { return escapingWrite(s, function () { return baseWriter.writeLiteral(s); }); }, writeStringLiteral: function (s) { return escapingWrite(s, function () { return baseWriter.writeStringLiteral(s); }); }, writeSymbol: function (s, symbol) { return escapingWrite(s, function () { return baseWriter.writeSymbol(s, symbol); }); }, writeParameter: function (s) { return escapingWrite(s, function () { return baseWriter.writeParameter(s); }); }, writeComment: function (s) { return escapingWrite(s, function () { return baseWriter.writeComment(s); }); }, writeProperty: function (s) { return escapingWrite(s, function () { return baseWriter.writeProperty(s); }); } }); - return { - printSnippetList: printSnippetList, - printAndFormatSnippetList: printAndFormatSnippetList, - printNode: printNode, - printAndFormatNode: printAndFormatNode - }; - function escapingWrite(s, write) { - var escaped = escapeSnippetText(s); - if (escaped !== s) { - var start2 = baseWriter.getTextPos(); - write(); - var end = baseWriter.getTextPos(); - escapes = append(escapes || (escapes = []), { newText: escaped, span: { start: start2, length: end - start2 } }); - } - else { - write(); - } - } - function printSnippetList(format, list, sourceFile) { - var unescaped = printUnescapedSnippetList(format, list, sourceFile); - return escapes ? ts_textChanges_exports.applyChanges(unescaped, escapes) : unescaped; - } - function printUnescapedSnippetList(format, list, sourceFile) { - escapes = void 0; - writer.clear(); - printer.writeList(format, list, sourceFile, writer); - return writer.getText(); - } - function printAndFormatSnippetList(format, list, sourceFile, formatContext) { - var syntheticFile = { - text: printUnescapedSnippetList(format, list, sourceFile), - getLineAndCharacterOfPosition: function (pos) { - return getLineAndCharacterOfPosition(this, pos); - } - }; - var formatOptions = getFormatCodeSettingsForWriting(formatContext, sourceFile); - var changes = flatMap(list, function (node) { - var nodeWithPos = ts_textChanges_exports.assignPositionsToNode(node); - return ts_formatting_exports.formatNodeGivenIndentation(nodeWithPos, syntheticFile, sourceFile.languageVariant, - /* indentation */ - 0, - /* delta */ - 0, __assign(__assign({}, formatContext), { options: formatOptions })); - }); - var allChanges = escapes ? stableSort(concatenate(changes, escapes), function (a, b) { return compareTextSpans(a.span, b.span); }) : changes; - return ts_textChanges_exports.applyChanges(syntheticFile.text, allChanges); - } - function printNode(hint, node, sourceFile) { - var unescaped = printUnescapedNode(hint, node, sourceFile); - return escapes ? ts_textChanges_exports.applyChanges(unescaped, escapes) : unescaped; - } - function printUnescapedNode(hint, node, sourceFile) { - escapes = void 0; - writer.clear(); - printer.writeNode(hint, node, sourceFile, writer); - return writer.getText(); - } - function printAndFormatNode(hint, node, sourceFile, formatContext) { - var syntheticFile = { - text: printUnescapedNode(hint, node, sourceFile), - getLineAndCharacterOfPosition: function (pos) { - return getLineAndCharacterOfPosition(this, pos); - } - }; - var formatOptions = getFormatCodeSettingsForWriting(formatContext, sourceFile); - var nodeWithPos = ts_textChanges_exports.assignPositionsToNode(node); - var changes = ts_formatting_exports.formatNodeGivenIndentation(nodeWithPos, syntheticFile, sourceFile.languageVariant, - /* indentation */ - 0, - /* delta */ - 0, __assign(__assign({}, formatContext), { options: formatOptions })); - var allChanges = escapes ? stableSort(concatenate(changes, escapes), function (a, b) { return compareTextSpans(a.span, b.span); }) : changes; - return ts_textChanges_exports.applyChanges(syntheticFile.text, allChanges); - } -} -function originToCompletionEntryData(origin) { - var ambientModuleName = origin.fileName ? void 0 : stripQuotes(origin.moduleSymbol.name); - var isPackageJsonImport = origin.isFromPackageJson ? true : void 0; - if (originIsResolvedExport(origin)) { - var resolvedData = { - exportName: origin.exportName, - exportMapKey: origin.exportMapKey, - moduleSpecifier: origin.moduleSpecifier, - ambientModuleName: ambientModuleName, - fileName: origin.fileName, - isPackageJsonImport: isPackageJsonImport - }; - return resolvedData; - } - var unresolvedData = { - exportName: origin.exportName, - exportMapKey: origin.exportMapKey, - fileName: origin.fileName, - ambientModuleName: origin.fileName ? void 0 : stripQuotes(origin.moduleSymbol.name), - isPackageJsonImport: origin.isFromPackageJson ? true : void 0 - }; - return unresolvedData; -} -function completionEntryDataToSymbolOriginInfo(data, completionName, moduleSymbol) { - var isDefaultExport = data.exportName === "default" /* Default */; - var isFromPackageJson = !!data.isPackageJsonImport; - if (completionEntryDataIsResolved(data)) { - var resolvedOrigin = { - kind: 32 /* ResolvedExport */, - exportName: data.exportName, - exportMapKey: data.exportMapKey, - moduleSpecifier: data.moduleSpecifier, - symbolName: completionName, - fileName: data.fileName, - moduleSymbol: moduleSymbol, - isDefaultExport: isDefaultExport, - isFromPackageJson: isFromPackageJson - }; - return resolvedOrigin; - } - var unresolvedOrigin = { - kind: 4 /* Export */, - exportName: data.exportName, - exportMapKey: data.exportMapKey, - symbolName: completionName, - fileName: data.fileName, - moduleSymbol: moduleSymbol, - isDefaultExport: isDefaultExport, - isFromPackageJson: isFromPackageJson - }; - return unresolvedOrigin; -} -function getInsertTextAndReplacementSpanForImportCompletion(name, importStatementCompletion, origin, useSemicolons, sourceFile, options, preferences) { - var replacementSpan = importStatementCompletion.replacementSpan; - var quotedModuleSpecifier = escapeSnippetText(quote(sourceFile, preferences, origin.moduleSpecifier)); - var exportKind = origin.isDefaultExport ? 1 /* Default */ : origin.exportName === "export=" /* ExportEquals */ ? 2 /* ExportEquals */ : 0 /* Named */; - var tabStop = preferences.includeCompletionsWithSnippetText ? "$1" : ""; - var importKind = ts_codefix_exports.getImportKind(sourceFile, exportKind, options, - /*forceImportKeyword*/ - true); - var isImportSpecifierTypeOnly = importStatementCompletion.couldBeTypeOnlyImportSpecifier; - var topLevelTypeOnlyText = importStatementCompletion.isTopLevelTypeOnly ? " ".concat(tokenToString(156 /* TypeKeyword */), " ") : " "; - var importSpecifierTypeOnlyText = isImportSpecifierTypeOnly ? "".concat(tokenToString(156 /* TypeKeyword */), " ") : ""; - var suffix = useSemicolons ? ";" : ""; - switch (importKind) { - case 3 /* CommonJS */: - return { replacementSpan: replacementSpan, insertText: "import".concat(topLevelTypeOnlyText).concat(escapeSnippetText(name)).concat(tabStop, " = require(").concat(quotedModuleSpecifier, ")").concat(suffix) }; - case 1 /* Default */: - return { replacementSpan: replacementSpan, insertText: "import".concat(topLevelTypeOnlyText).concat(escapeSnippetText(name)).concat(tabStop, " from ").concat(quotedModuleSpecifier).concat(suffix) }; - case 2 /* Namespace */: - return { replacementSpan: replacementSpan, insertText: "import".concat(topLevelTypeOnlyText, "* as ").concat(escapeSnippetText(name), " from ").concat(quotedModuleSpecifier).concat(suffix) }; - case 0 /* Named */: - return { replacementSpan: replacementSpan, insertText: "import".concat(topLevelTypeOnlyText, "{ ").concat(importSpecifierTypeOnlyText).concat(escapeSnippetText(name)).concat(tabStop, " } from ").concat(quotedModuleSpecifier).concat(suffix) }; - } -} -function quotePropertyName(sourceFile, preferences, name) { - if (/^\d+$/.test(name)) { - return name; - } - return quote(sourceFile, preferences, name); -} -function isRecommendedCompletionMatch(localSymbol, recommendedCompletion, checker) { - return localSymbol === recommendedCompletion || !!(localSymbol.flags & 1048576 /* ExportValue */) && checker.getExportSymbolOfSymbol(localSymbol) === recommendedCompletion; -} -function getSourceFromOrigin(origin) { - if (originIsExport(origin)) { - return stripQuotes(origin.moduleSymbol.name); - } - if (originIsResolvedExport(origin)) { - return origin.moduleSpecifier; - } - if ((origin == null ? void 0 : origin.kind) === 1 /* ThisType */) { - return "ThisProperty/" /* ThisProperty */; - } - if ((origin == null ? void 0 : origin.kind) === 64 /* TypeOnlyAlias */) { - return "TypeOnlyAlias/" /* TypeOnlyAlias */; - } -} -function getCompletionEntriesFromSymbols(symbols, entries, replacementToken, contextToken, location, position, sourceFile, host, program, target, log, kind, preferences, compilerOptions, formatContext, isTypeOnlyLocation, propertyAccessToConvert, jsxIdentifierExpected, isJsxInitializer, importStatementCompletion, recommendedCompletion, symbolToOriginInfoMap, symbolToSortTextMap, isJsxIdentifierExpected, isRightOfOpenTag, includeSymbol) { - var _t; - if (includeSymbol === void 0) { includeSymbol = false; } - var start2 = timestamp(); - var variableOrParameterDeclaration = getVariableOrParameterDeclaration(contextToken, location); - var useSemicolons = probablyUsesSemicolons(sourceFile); - var typeChecker = program.getTypeChecker(); - var uniques = /* @__PURE__ */ new Map(); - for (var i = 0; i < symbols.length; i++) { - var symbol = symbols[i]; - var origin_6 = symbolToOriginInfoMap == null ? void 0 : symbolToOriginInfoMap[i]; - var info = getCompletionEntryDisplayNameForSymbol(symbol, target, origin_6, kind, !!jsxIdentifierExpected); - if (!info || uniques.get(info.name) && (!origin_6 || !originIsObjectLiteralMethod(origin_6)) || kind === 1 /* Global */ && symbolToSortTextMap && !shouldIncludeSymbol(symbol, symbolToSortTextMap)) { - continue; - } - var name_120 = info.name, needsConvertPropertyAccess = info.needsConvertPropertyAccess; - var originalSortText = (_t = (symbolToSortTextMap == null ? void 0 : symbolToSortTextMap[getSymbolId(symbol)])) !== null && _t !== void 0 ? _t : SortText.LocationPriority; - var sortText = isDeprecated(symbol, typeChecker) ? SortText.Deprecated(originalSortText) : originalSortText; - var entry = createCompletionEntry(symbol, sortText, replacementToken, contextToken, location, position, sourceFile, host, program, name_120, needsConvertPropertyAccess, origin_6, recommendedCompletion, propertyAccessToConvert, isJsxInitializer, importStatementCompletion, useSemicolons, compilerOptions, preferences, kind, formatContext, isJsxIdentifierExpected, isRightOfOpenTag, includeSymbol); - if (!entry) { - continue; - } - var shouldShadowLaterSymbols = (!origin_6 || originIsTypeOnlyAlias(origin_6)) && !(symbol.parent === void 0 && !some(symbol.declarations, function (d) { return d.getSourceFile() === location.getSourceFile(); })); - uniques.set(name_120, shouldShadowLaterSymbols); - insertSorted(entries, entry, compareCompletionEntries, - /*allowDuplicates*/ - true); - } - log("getCompletionsAtPosition: getCompletionEntriesFromSymbols: " + (timestamp() - start2)); - return { - has: function (name) { return uniques.has(name); }, - add: function (name) { return uniques.set(name, true); } - }; - function shouldIncludeSymbol(symbol, symbolToSortTextMap2) { - var _t; - var _a; - var allFlags = symbol.flags; - if (!isSourceFile(location)) { - if (isExportAssignment(location.parent)) { - return true; - } - if (tryCast(variableOrParameterDeclaration, isVariableDeclaration) && symbol.valueDeclaration === variableOrParameterDeclaration) { - return false; - } - var symbolDeclaration = (_t = symbol.valueDeclaration) !== null && _t !== void 0 ? _t : ((_a = symbol.declarations) == null ? void 0 : _a[0]); - if (variableOrParameterDeclaration && symbolDeclaration && (isTypeParameterDeclaration(variableOrParameterDeclaration) && isTypeParameterDeclaration(symbolDeclaration) || isParameter(variableOrParameterDeclaration) && isParameter(symbolDeclaration))) { - var symbolDeclarationPos = symbolDeclaration.pos; - var parameters = isParameter(variableOrParameterDeclaration) ? variableOrParameterDeclaration.parent.parameters : isInferTypeNode(variableOrParameterDeclaration.parent) ? void 0 : variableOrParameterDeclaration.parent.typeParameters; - if (symbolDeclarationPos >= variableOrParameterDeclaration.pos && parameters && symbolDeclarationPos < parameters.end) { - return false; - } - } - var symbolOrigin = skipAlias(symbol, typeChecker); - if (!!sourceFile.externalModuleIndicator && !compilerOptions.allowUmdGlobalAccess && symbolToSortTextMap2[getSymbolId(symbol)] === SortText.GlobalsOrKeywords && (symbolToSortTextMap2[getSymbolId(symbolOrigin)] === SortText.AutoImportSuggestions || symbolToSortTextMap2[getSymbolId(symbolOrigin)] === SortText.LocationPriority)) { - return false; - } - allFlags |= getCombinedLocalAndExportSymbolFlags(symbolOrigin); - if (isInRightSideOfInternalImportEqualsDeclaration(location)) { - return !!(allFlags & 1920 /* Namespace */); - } - if (isTypeOnlyLocation) { - return symbolCanBeReferencedAtTypeLocation(symbol, typeChecker); - } - } - return !!(allFlags & 111551 /* Value */); - } -} -function getLabelCompletionAtPosition(node) { - var entries = getLabelStatementCompletions(node); - if (entries.length) { - return { isGlobalCompletion: false, isMemberCompletion: false, isNewIdentifierLocation: false, entries: entries }; - } -} -function getLabelStatementCompletions(node) { - var entries = []; - var uniques = /* @__PURE__ */ new Map(); - var current = node; - while (current) { - if (isFunctionLike(current)) { - break; - } - if (isLabeledStatement(current)) { - var name_121 = current.label.text; - if (!uniques.has(name_121)) { - uniques.set(name_121, true); - entries.push({ - name: name_121, - kindModifiers: "" /* none */, - kind: "label" /* label */, - sortText: SortText.LocationPriority - }); - } - } - current = current.parent; - } - return entries; -} -function getSymbolCompletionFromEntryId(program, log, sourceFile, position, entryId, host, preferences) { - if (entryId.source === "SwitchCases/" /* SwitchCases */) { - return { type: "cases" }; - } - if (entryId.data) { - var autoImport = getAutoImportSymbolFromCompletionEntryData(entryId.name, entryId.data, program, host); - if (autoImport) { - var _t = getRelevantTokens(position, sourceFile), contextToken2 = _t.contextToken, previousToken2 = _t.previousToken; - return { - type: "symbol", - symbol: autoImport.symbol, - location: getTouchingPropertyName(sourceFile, position), - previousToken: previousToken2, - contextToken: contextToken2, - isJsxInitializer: false, - isTypeOnlyLocation: false, - origin: autoImport.origin - }; - } - } - var compilerOptions = program.getCompilerOptions(); - var completionData = getCompletionData(program, log, sourceFile, compilerOptions, position, { includeCompletionsForModuleExports: true, includeCompletionsWithInsertText: true }, entryId, host, - /*formatContext*/ - void 0); - if (!completionData) { - return { type: "none" }; - } - if (completionData.kind !== 0 /* Data */) { - return { type: "request", request: completionData }; - } - var symbols = completionData.symbols, literals = completionData.literals, location = completionData.location, completionKind = completionData.completionKind, symbolToOriginInfoMap = completionData.symbolToOriginInfoMap, contextToken = completionData.contextToken, previousToken = completionData.previousToken, isJsxInitializer = completionData.isJsxInitializer, isTypeOnlyLocation = completionData.isTypeOnlyLocation; - var literal = find(literals, function (l) { return completionNameForLiteral(sourceFile, preferences, l) === entryId.name; }); - if (literal !== void 0) - return { type: "literal", literal: literal }; - return firstDefined(symbols, function (symbol, index) { - var origin = symbolToOriginInfoMap[index]; - var info = getCompletionEntryDisplayNameForSymbol(symbol, getEmitScriptTarget(compilerOptions), origin, completionKind, completionData.isJsxIdentifierExpected); - return info && info.name === entryId.name && (entryId.source === "ClassMemberSnippet/" /* ClassMemberSnippet */ && symbol.flags & 106500 /* ClassMember */ || entryId.source === "ObjectLiteralMethodSnippet/" /* ObjectLiteralMethodSnippet */ && symbol.flags & (4 /* Property */ | 8192 /* Method */) || getSourceFromOrigin(origin) === entryId.source || entryId.source === "ObjectLiteralMemberWithComma/" /* ObjectLiteralMemberWithComma */) ? { type: "symbol", symbol: symbol, location: location, origin: origin, contextToken: contextToken, previousToken: previousToken, isJsxInitializer: isJsxInitializer, isTypeOnlyLocation: isTypeOnlyLocation } : void 0; - }) || { type: "none" }; -} -function getCompletionEntryDetails(program, log, sourceFile, position, entryId, host, formatContext, preferences, cancellationToken) { - var typeChecker = program.getTypeChecker(); - var compilerOptions = program.getCompilerOptions(); - var name = entryId.name, source = entryId.source, data = entryId.data; - var _t = getRelevantTokens(position, sourceFile), previousToken = _t.previousToken, contextToken = _t.contextToken; - if (isInString(sourceFile, position, previousToken)) { - return ts_Completions_StringCompletions_exports.getStringLiteralCompletionDetails(name, sourceFile, position, previousToken, typeChecker, compilerOptions, host, cancellationToken, preferences); - } - var symbolCompletion = getSymbolCompletionFromEntryId(program, log, sourceFile, position, entryId, host, preferences); - switch (symbolCompletion.type) { - case "request": { - var request = symbolCompletion.request; - switch (request.kind) { - case 1 /* JsDocTagName */: - return ts_JsDoc_exports.getJSDocTagNameCompletionDetails(name); - case 2 /* JsDocTag */: - return ts_JsDoc_exports.getJSDocTagCompletionDetails(name); - case 3 /* JsDocParameterName */: - return ts_JsDoc_exports.getJSDocParameterNameCompletionDetails(name); - case 4 /* Keywords */: - return some(request.keywordCompletions, function (c) { return c.name === name; }) ? createSimpleDetails(name, "keyword" /* keyword */, 5 /* keyword */) : void 0; - default: - return Debug.assertNever(request); - } - } - case "symbol": { - var symbol = symbolCompletion.symbol, location_12 = symbolCompletion.location, contextToken2 = symbolCompletion.contextToken, origin_7 = symbolCompletion.origin, previousToken2 = symbolCompletion.previousToken; - var _u = getCompletionEntryCodeActionsAndSourceDisplay(name, location_12, contextToken2, origin_7, symbol, program, host, compilerOptions, sourceFile, position, previousToken2, formatContext, preferences, data, source, cancellationToken), codeActions = _u.codeActions, sourceDisplay = _u.sourceDisplay; - var symbolName2 = originIsComputedPropertyName(origin_7) ? origin_7.symbolName : symbol.name; - return createCompletionDetailsForSymbol(symbol, symbolName2, typeChecker, sourceFile, location_12, cancellationToken, codeActions, sourceDisplay); - } - case "literal": { - var literal = symbolCompletion.literal; - return createSimpleDetails(completionNameForLiteral(sourceFile, preferences, literal), "string" /* string */, typeof literal === "string" ? 8 /* stringLiteral */ : 7 /* numericLiteral */); - } - case "cases": { - var _v = getExhaustiveCaseSnippets(contextToken.parent, sourceFile, preferences, program.getCompilerOptions(), host, program, - /*formatContext*/ - void 0), entry = _v.entry, importAdder = _v.importAdder; - if (importAdder.hasFixes()) { - var changes = ts_textChanges_exports.ChangeTracker.with({ host: host, formatContext: formatContext, preferences: preferences }, importAdder.writeFixes); - return { - name: entry.name, - kind: "" /* unknown */, - kindModifiers: "", - displayParts: [], - sourceDisplay: void 0, - codeActions: [{ - changes: changes, - description: diagnosticToString([Diagnostics.Includes_imports_of_types_referenced_by_0, name]) - }] - }; - } - return { - name: entry.name, - kind: "" /* unknown */, - kindModifiers: "", - displayParts: [], - sourceDisplay: void 0 - }; - } - case "none": - return allKeywordsCompletions().some(function (c) { return c.name === name; }) ? createSimpleDetails(name, "keyword" /* keyword */, 5 /* keyword */) : void 0; - default: - Debug.assertNever(symbolCompletion); - } -} -function createSimpleDetails(name, kind, kind2) { - return createCompletionDetails(name, "" /* none */, kind, [displayPart(name, kind2)]); -} -function createCompletionDetailsForSymbol(symbol, name, checker, sourceFile, location, cancellationToken, codeActions, sourceDisplay) { - var _t = checker.runWithCancellationToken(cancellationToken, function (checker2) { return ts_SymbolDisplay_exports.getSymbolDisplayPartsDocumentationAndSymbolKind(checker2, symbol, sourceFile, location, location, 7 /* All */); }), displayParts = _t.displayParts, documentation = _t.documentation, symbolKind = _t.symbolKind, tags = _t.tags; - return createCompletionDetails(name, ts_SymbolDisplay_exports.getSymbolModifiers(checker, symbol), symbolKind, displayParts, documentation, tags, codeActions, sourceDisplay); -} -function createCompletionDetails(name, kindModifiers, kind, displayParts, documentation, tags, codeActions, source) { - return { name: name, kindModifiers: kindModifiers, kind: kind, displayParts: displayParts, documentation: documentation, tags: tags, codeActions: codeActions, source: source, sourceDisplay: source }; -} -function getCompletionEntryCodeActionsAndSourceDisplay(name, location, contextToken, origin, symbol, program, host, compilerOptions, sourceFile, position, previousToken, formatContext, preferences, data, source, cancellationToken) { - if (data == null ? void 0 : data.moduleSpecifier) { - if (previousToken && getImportStatementCompletionInfo(contextToken || previousToken, sourceFile).replacementSpan) { - return { codeActions: void 0, sourceDisplay: [textPart(data.moduleSpecifier)] }; - } - } - if (source === "ClassMemberSnippet/" /* ClassMemberSnippet */) { - var _t = getEntryForMemberCompletion(host, program, compilerOptions, preferences, name, symbol, location, position, contextToken, formatContext), importAdder_1 = _t.importAdder, eraseRange_1 = _t.eraseRange; - if (importAdder_1 || eraseRange_1) { - var changes = ts_textChanges_exports.ChangeTracker.with({ host: host, formatContext: formatContext, preferences: preferences }, function (tracker) { - if (importAdder_1) { - importAdder_1.writeFixes(tracker); - } - if (eraseRange_1) { - tracker.deleteRange(sourceFile, eraseRange_1); - } - }); - return { - sourceDisplay: void 0, - codeActions: [{ - changes: changes, - description: diagnosticToString([Diagnostics.Includes_imports_of_types_referenced_by_0, name]) - }] - }; - } - } - if (originIsTypeOnlyAlias(origin)) { - var codeAction2 = ts_codefix_exports.getPromoteTypeOnlyCompletionAction(sourceFile, origin.declaration.name, program, host, formatContext, preferences); - Debug.assertIsDefined(codeAction2, "Expected to have a code action for promoting type-only alias"); - return { codeActions: [codeAction2], sourceDisplay: void 0 }; - } - if (source === "ObjectLiteralMemberWithComma/" /* ObjectLiteralMemberWithComma */ && contextToken) { - var changes = ts_textChanges_exports.ChangeTracker.with({ host: host, formatContext: formatContext, preferences: preferences }, function (tracker) { return tracker.insertText(sourceFile, contextToken.end, ","); }); - if (changes) { - return { - sourceDisplay: void 0, - codeActions: [{ - changes: changes, - description: diagnosticToString([Diagnostics.Add_missing_comma_for_object_member_completion_0, name]) - }] - }; - } - } - if (!origin || !(originIsExport(origin) || originIsResolvedExport(origin))) { - return { codeActions: void 0, sourceDisplay: void 0 }; - } - var checker = origin.isFromPackageJson ? host.getPackageJsonAutoImportProvider().getTypeChecker() : program.getTypeChecker(); - var moduleSymbol = origin.moduleSymbol; - var targetSymbol = checker.getMergedSymbol(skipAlias(symbol.exportSymbol || symbol, checker)); - var isJsxOpeningTagName = (contextToken == null ? void 0 : contextToken.kind) === 30 /* LessThanToken */ && isJsxOpeningLikeElement(contextToken.parent); - var _u = ts_codefix_exports.getImportCompletionAction(targetSymbol, moduleSymbol, data == null ? void 0 : data.exportMapKey, sourceFile, name, isJsxOpeningTagName, host, program, formatContext, previousToken && isIdentifier(previousToken) ? previousToken.getStart(sourceFile) : position, preferences, cancellationToken), moduleSpecifier = _u.moduleSpecifier, codeAction = _u.codeAction; - Debug.assert(!(data == null ? void 0 : data.moduleSpecifier) || moduleSpecifier === data.moduleSpecifier); - return { sourceDisplay: [textPart(moduleSpecifier)], codeActions: [codeAction] }; -} -function getCompletionEntrySymbol(program, log, sourceFile, position, entryId, host, preferences) { - var completion = getSymbolCompletionFromEntryId(program, log, sourceFile, position, entryId, host, preferences); - return completion.type === "symbol" ? completion.symbol : void 0; -} -var CompletionKind = /* @__PURE__ */ (function (CompletionKind2) { - CompletionKind2[CompletionKind2["ObjectPropertyDeclaration"] = 0] = "ObjectPropertyDeclaration"; - CompletionKind2[CompletionKind2["Global"] = 1] = "Global"; - CompletionKind2[CompletionKind2["PropertyAccess"] = 2] = "PropertyAccess"; - CompletionKind2[CompletionKind2["MemberLike"] = 3] = "MemberLike"; - CompletionKind2[CompletionKind2["String"] = 4] = "String"; - CompletionKind2[CompletionKind2["None"] = 5] = "None"; - return CompletionKind2; -})(CompletionKind || {}); -function getRecommendedCompletion(previousToken, contextualType, checker) { - return firstDefined(contextualType && (contextualType.isUnion() ? contextualType.types : [contextualType]), function (type) { - var symbol = type && type.symbol; - return symbol && (symbol.flags & (8 /* EnumMember */ | 384 /* Enum */ | 32 /* Class */) && !isAbstractConstructorSymbol(symbol)) ? getFirstSymbolInChain(symbol, previousToken, checker) : void 0; - }); -} -function getContextualType(previousToken, position, sourceFile, checker) { - var parent2 = previousToken.parent; - switch (previousToken.kind) { - case 80 /* Identifier */: - return getContextualTypeFromParent(previousToken, checker); - case 64 /* EqualsToken */: - switch (parent2.kind) { - case 260 /* VariableDeclaration */: - return checker.getContextualType(parent2.initializer); - case 226 /* BinaryExpression */: - return checker.getTypeAtLocation(parent2.left); - case 291 /* JsxAttribute */: - return checker.getContextualTypeForJsxAttribute(parent2); - default: - return void 0; - } - case 105 /* NewKeyword */: - return checker.getContextualType(parent2); - case 84 /* CaseKeyword */: - var caseClause = tryCast(parent2, isCaseClause); - return caseClause ? getSwitchedType(caseClause, checker) : void 0; - case 19 /* OpenBraceToken */: - return isJsxExpression(parent2) && !isJsxElement(parent2.parent) && !isJsxFragment(parent2.parent) ? checker.getContextualTypeForJsxAttribute(parent2.parent) : void 0; - default: - var argInfo = ts_SignatureHelp_exports.getArgumentInfoForCompletions(previousToken, position, sourceFile); - return argInfo ? ( - // At `,`, treat this as the next argument after the comma. - checker.getContextualTypeForArgumentAtIndex(argInfo.invocation, argInfo.argumentIndex + (previousToken.kind === 28 /* CommaToken */ ? 1 : 0))) : isEqualityOperatorKind(previousToken.kind) && isBinaryExpression(parent2) && isEqualityOperatorKind(parent2.operatorToken.kind) ? ( - // completion at `x ===/**/` should be for the right side - checker.getTypeAtLocation(parent2.left)) : checker.getContextualType(previousToken, 4 /* Completions */) || checker.getContextualType(previousToken); - } -} -function getFirstSymbolInChain(symbol, enclosingDeclaration, checker) { - var chain = checker.getAccessibleSymbolChain(symbol, enclosingDeclaration, - /*meaning*/ - 67108863 /* All */, - /*useOnlyExternalAliasing*/ - false); - if (chain) - return first(chain); - return symbol.parent && (isModuleSymbol(symbol.parent) ? symbol : getFirstSymbolInChain(symbol.parent, enclosingDeclaration, checker)); -} -function isModuleSymbol(symbol) { - var _a; - return !!((_a = symbol.declarations) == null ? void 0 : _a.some(function (d) { return d.kind === 312; } /* SourceFile */)); -} -function getCompletionData(program, log, sourceFile, compilerOptions, position, preferences, detailsEntryId, host, formatContext, cancellationToken) { - var typeChecker = program.getTypeChecker(); - var inCheckedFile = isCheckedFile(sourceFile, compilerOptions); - var start2 = timestamp(); - var currentToken = getTokenAtPosition(sourceFile, position); - log("getCompletionData: Get current token: " + (timestamp() - start2)); - start2 = timestamp(); - var insideComment = isInComment(sourceFile, position, currentToken); - log("getCompletionData: Is inside comment: " + (timestamp() - start2)); - var insideJsDocTagTypeExpression = false; - var isInSnippetScope = false; - if (insideComment) { - if (hasDocComment(sourceFile, position)) { - if (sourceFile.text.charCodeAt(position - 1) === 64 /* at */) { - return { kind: 1 /* JsDocTagName */ }; - } - else { - var lineStart = getLineStartPositionForPosition(position, sourceFile); - if (!/[^*|\s(/)]/.test(sourceFile.text.substring(lineStart, position))) { - return { kind: 2 /* JsDocTag */ }; - } - } - } - var tag = getJsDocTagAtPosition(currentToken, position); - if (tag) { - if (tag.tagName.pos <= position && position <= tag.tagName.end) { - return { kind: 1 /* JsDocTagName */ }; - } - var typeExpression = tryGetTypeExpressionFromTag(tag); - if (typeExpression) { - currentToken = getTokenAtPosition(sourceFile, position); - if (!currentToken || !isDeclarationName(currentToken) && (currentToken.parent.kind !== 355 /* JSDocPropertyTag */ || currentToken.parent.name !== currentToken)) { - insideJsDocTagTypeExpression = isCurrentlyEditingNode(typeExpression); - } - } - if (!insideJsDocTagTypeExpression && isJSDocParameterTag(tag) && (nodeIsMissing(tag.name) || tag.name.pos <= position && position <= tag.name.end)) { - return { kind: 3 /* JsDocParameterName */, tag: tag }; - } - } - if (!insideJsDocTagTypeExpression) { - log("Returning an empty list because completion was inside a regular comment or plain text part of a JsDoc comment."); - return void 0; - } - } - start2 = timestamp(); - var isJsOnlyLocation = !insideJsDocTagTypeExpression && isSourceFileJS(sourceFile); - var tokens = getRelevantTokens(position, sourceFile); - var previousToken = tokens.previousToken; - var contextToken = tokens.contextToken; - log("getCompletionData: Get previous token: " + (timestamp() - start2)); - var node = currentToken; - var propertyAccessToConvert; - var isRightOfDot = false; - var isRightOfQuestionDot = false; - var isRightOfOpenTag = false; - var isStartingCloseTag = false; - var isJsxInitializer = false; - var isJsxIdentifierExpected = false; - var importStatementCompletion; - var location = getTouchingPropertyName(sourceFile, position); - var keywordFilters = 0 /* None */; - var isNewIdentifierLocation = false; - var flags = 0 /* None */; - if (contextToken) { - var importStatementCompletionInfo = getImportStatementCompletionInfo(contextToken, sourceFile); - if (importStatementCompletionInfo.keywordCompletion) { - if (importStatementCompletionInfo.isKeywordOnlyCompletion) { - return { - kind: 4 /* Keywords */, - keywordCompletions: [keywordToCompletionEntry(importStatementCompletionInfo.keywordCompletion)], - isNewIdentifierLocation: importStatementCompletionInfo.isNewIdentifierLocation - }; - } - keywordFilters = keywordFiltersFromSyntaxKind(importStatementCompletionInfo.keywordCompletion); - } - if (importStatementCompletionInfo.replacementSpan && preferences.includeCompletionsForImportStatements && preferences.includeCompletionsWithInsertText) { - flags |= 2 /* IsImportStatementCompletion */; - importStatementCompletion = importStatementCompletionInfo; - isNewIdentifierLocation = importStatementCompletionInfo.isNewIdentifierLocation; - } - if (!importStatementCompletionInfo.replacementSpan && isCompletionListBlocker(contextToken)) { - log("Returning an empty list because completion was requested in an invalid position."); - return keywordFilters ? keywordCompletionData(keywordFilters, isJsOnlyLocation, isNewIdentifierDefinitionLocation()) : void 0; - } - var parent2 = contextToken.parent; - if (contextToken.kind === 25 /* DotToken */ || contextToken.kind === 29 /* QuestionDotToken */) { - isRightOfDot = contextToken.kind === 25 /* DotToken */; - isRightOfQuestionDot = contextToken.kind === 29 /* QuestionDotToken */; - switch (parent2.kind) { - case 211 /* PropertyAccessExpression */: - propertyAccessToConvert = parent2; - node = propertyAccessToConvert.expression; - var leftmostAccessExpression = getLeftmostAccessExpression(propertyAccessToConvert); - if (nodeIsMissing(leftmostAccessExpression) || (isCallExpression(node) || isFunctionLike(node)) && node.end === contextToken.pos && node.getChildCount(sourceFile) && last(node.getChildren(sourceFile)).kind !== 22 /* CloseParenToken */) { - return void 0; - } - break; - case 166 /* QualifiedName */: - node = parent2.left; - break; - case 267 /* ModuleDeclaration */: - node = parent2.name; - break; - case 205 /* ImportType */: - node = parent2; - break; - case 236 /* MetaProperty */: - node = parent2.getFirstToken(sourceFile); - Debug.assert(node.kind === 102 /* ImportKeyword */ || node.kind === 105 /* NewKeyword */); - break; - default: - return void 0; - } - } - else if (!importStatementCompletion) { - if (parent2 && parent2.kind === 211 /* PropertyAccessExpression */) { - contextToken = parent2; - parent2 = parent2.parent; - } - if (currentToken.parent === location) { - switch (currentToken.kind) { - case 32 /* GreaterThanToken */: - if (currentToken.parent.kind === 284 /* JsxElement */ || currentToken.parent.kind === 286 /* JsxOpeningElement */) { - location = currentToken; - } - break; - case 44 /* SlashToken */: - if (currentToken.parent.kind === 285 /* JsxSelfClosingElement */) { - location = currentToken; - } - break; - } - } - switch (parent2.kind) { - case 287 /* JsxClosingElement */: - if (contextToken.kind === 44 /* SlashToken */) { - isStartingCloseTag = true; - location = contextToken; - } - break; - case 226 /* BinaryExpression */: - if (!binaryExpressionMayBeOpenTag(parent2)) { - break; - } - case 285 /* JsxSelfClosingElement */: - case 284 /* JsxElement */: - case 286 /* JsxOpeningElement */: - isJsxIdentifierExpected = true; - if (contextToken.kind === 30 /* LessThanToken */) { - isRightOfOpenTag = true; - location = contextToken; - } - break; - case 294 /* JsxExpression */: - case 293 /* JsxSpreadAttribute */: - if (previousToken.kind === 20 /* CloseBraceToken */ || previousToken.kind === 80 /* Identifier */ && previousToken.parent.kind === 291 /* JsxAttribute */) { - isJsxIdentifierExpected = true; - } - break; - case 291 /* JsxAttribute */: - if (parent2.initializer === previousToken && previousToken.end < position) { - isJsxIdentifierExpected = true; - break; - } - switch (previousToken.kind) { - case 64 /* EqualsToken */: - isJsxInitializer = true; - break; - case 80 /* Identifier */: - isJsxIdentifierExpected = true; - if (parent2 !== previousToken.parent && !parent2.initializer && findChildOfKind(parent2, 64 /* EqualsToken */, sourceFile)) { - isJsxInitializer = previousToken; - } - } - break; - } - } - } - var semanticStart = timestamp(); - var completionKind = 5 /* None */; - var isNonContextualObjectLiteral = false; - var hasUnresolvedAutoImports = false; - var symbols = []; - var importSpecifierResolver; - var symbolToOriginInfoMap = []; - var symbolToSortTextMap = []; - var seenPropertySymbols = /* @__PURE__ */ new Map(); - var isTypeOnlyLocation = isTypeOnlyCompletion(); - var getModuleSpecifierResolutionHost = memoizeOne(function (isFromPackageJson) { - return createModuleSpecifierResolutionHost(isFromPackageJson ? host.getPackageJsonAutoImportProvider() : program, host); - }); - if (isRightOfDot || isRightOfQuestionDot) { - getTypeScriptMemberSymbols(); - } - else if (isRightOfOpenTag) { - symbols = typeChecker.getJsxIntrinsicTagNamesAt(location); - Debug.assertEachIsDefined(symbols, "getJsxIntrinsicTagNames() should all be defined"); - tryGetGlobalSymbols(); - completionKind = 1 /* Global */; - keywordFilters = 0 /* None */; - } - else if (isStartingCloseTag) { - var tagName = contextToken.parent.parent.openingElement.tagName; - var tagSymbol = typeChecker.getSymbolAtLocation(tagName); - if (tagSymbol) { - symbols = [tagSymbol]; - } - completionKind = 1 /* Global */; - keywordFilters = 0 /* None */; - } - else { - if (!tryGetGlobalSymbols()) { - return keywordFilters ? keywordCompletionData(keywordFilters, isJsOnlyLocation, isNewIdentifierLocation) : void 0; - } - } - log("getCompletionData: Semantic work: " + (timestamp() - semanticStart)); - var contextualType = previousToken && getContextualType(previousToken, position, sourceFile, typeChecker); - var isLiteralExpected = !tryCast(previousToken, isStringLiteralLike) && !isJsxIdentifierExpected; - var literals = !isLiteralExpected ? [] : mapDefined(contextualType && (contextualType.isUnion() ? contextualType.types : [contextualType]), function (t) { return t.isLiteral() && !(t.flags & 1024 /* EnumLiteral */) ? t.value : void 0; }); - var recommendedCompletion = previousToken && contextualType && getRecommendedCompletion(previousToken, contextualType, typeChecker); - return { - kind: 0 /* Data */, - symbols: symbols, - completionKind: completionKind, - isInSnippetScope: isInSnippetScope, - propertyAccessToConvert: propertyAccessToConvert, - isNewIdentifierLocation: isNewIdentifierLocation, - location: location, - keywordFilters: keywordFilters, - literals: literals, - symbolToOriginInfoMap: symbolToOriginInfoMap, - recommendedCompletion: recommendedCompletion, - previousToken: previousToken, - contextToken: contextToken, - isJsxInitializer: isJsxInitializer, - insideJsDocTagTypeExpression: insideJsDocTagTypeExpression, - symbolToSortTextMap: symbolToSortTextMap, - isTypeOnlyLocation: isTypeOnlyLocation, - isJsxIdentifierExpected: isJsxIdentifierExpected, - isRightOfOpenTag: isRightOfOpenTag, - isRightOfDotOrQuestionDot: isRightOfDot || isRightOfQuestionDot, - importStatementCompletion: importStatementCompletion, - hasUnresolvedAutoImports: hasUnresolvedAutoImports, - flags: flags - }; - function isTagWithTypeExpression(tag) { - switch (tag.kind) { - case 348 /* JSDocParameterTag */: - case 355 /* JSDocPropertyTag */: - case 349 /* JSDocReturnTag */: - case 351 /* JSDocTypeTag */: - case 353 /* JSDocTypedefTag */: - case 356 /* JSDocThrowsTag */: - case 357 /* JSDocSatisfiesTag */: - return true; - case 352 /* JSDocTemplateTag */: - return !!tag.constraint; - default: - return false; - } - } - function tryGetTypeExpressionFromTag(tag) { - if (isTagWithTypeExpression(tag)) { - var typeExpression = isJSDocTemplateTag(tag) ? tag.constraint : tag.typeExpression; - return typeExpression && typeExpression.kind === 316 /* JSDocTypeExpression */ ? typeExpression : void 0; - } - if (isJSDocAugmentsTag(tag) || isJSDocImplementsTag(tag)) { - return tag.class; - } - return void 0; - } - function getTypeScriptMemberSymbols() { - var e_803, _t; - completionKind = 2 /* PropertyAccess */; - var isImportType = isLiteralImportTypeNode(node); - var isTypeLocation = isImportType && !node.isTypeOf || isPartOfTypeNode(node.parent) || isPossiblyTypeArgumentPosition(contextToken, sourceFile, typeChecker); - var isRhsOfImportDeclaration = isInRightSideOfInternalImportEqualsDeclaration(node); - if (isEntityName(node) || isImportType || isPropertyAccessExpression(node)) { - var isNamespaceName = isModuleDeclaration(node.parent); - if (isNamespaceName) - isNewIdentifierLocation = true; - var symbol = typeChecker.getSymbolAtLocation(node); - if (symbol) { - symbol = skipAlias(symbol, typeChecker); - if (symbol.flags & (1536 /* Module */ | 384 /* Enum */)) { - var exportedSymbols = typeChecker.getExportsOfModule(symbol); - Debug.assertEachIsDefined(exportedSymbols, "getExportsOfModule() should all be defined"); - var isValidValueAccess_1 = function (symbol2) { return typeChecker.isValidPropertyAccess(isImportType ? node : node.parent, symbol2.name); }; - var isValidTypeAccess_1 = function (symbol2) { return symbolCanBeReferencedAtTypeLocation(symbol2, typeChecker); }; - var isValidAccess = isNamespaceName ? function (symbol2) { - var _a; - return !!(symbol2.flags & 1920 /* Namespace */) && !((_a = symbol2.declarations) == null ? void 0 : _a.every(function (d) { return d.parent === node.parent; })); - } : isRhsOfImportDeclaration ? ( - // Any kind is allowed when dotting off namespace in internal import equals declaration - function (symbol2) { return isValidTypeAccess_1(symbol2) || isValidValueAccess_1(symbol2); }) : isTypeLocation || insideJsDocTagTypeExpression ? isValidTypeAccess_1 : isValidValueAccess_1; - try { - for (var exportedSymbols_1 = __values(exportedSymbols), exportedSymbols_1_1 = exportedSymbols_1.next(); !exportedSymbols_1_1.done; exportedSymbols_1_1 = exportedSymbols_1.next()) { - var exportedSymbol = exportedSymbols_1_1.value; - if (isValidAccess(exportedSymbol)) { - symbols.push(exportedSymbol); - } - } - } - catch (e_803_1) { e_803 = { error: e_803_1 }; } - finally { - try { - if (exportedSymbols_1_1 && !exportedSymbols_1_1.done && (_t = exportedSymbols_1.return)) _t.call(exportedSymbols_1); - } - finally { if (e_803) throw e_803.error; } - } - if (!isTypeLocation && !insideJsDocTagTypeExpression && symbol.declarations && symbol.declarations.some(function (d) { return d.kind !== 312 /* SourceFile */ && d.kind !== 267 /* ModuleDeclaration */ && d.kind !== 266; } /* EnumDeclaration */)) { - var type = typeChecker.getTypeOfSymbolAtLocation(symbol, node).getNonOptionalType(); - var insertQuestionDot = false; - if (type.isNullableType()) { - var canCorrectToQuestionDot = isRightOfDot && !isRightOfQuestionDot && preferences.includeAutomaticOptionalChainCompletions !== false; - if (canCorrectToQuestionDot || isRightOfQuestionDot) { - type = type.getNonNullableType(); - if (canCorrectToQuestionDot) { - insertQuestionDot = true; - } - } - } - addTypeProperties(type, !!(node.flags & 65536 /* AwaitContext */), insertQuestionDot); - } - return; - } - } - } - if (!isTypeLocation || isInTypeQuery(node)) { - typeChecker.tryGetThisTypeAt(node, - /*includeGlobalThis*/ - false); - var type = typeChecker.getTypeAtLocation(node).getNonOptionalType(); - if (!isTypeLocation) { - var insertQuestionDot = false; - if (type.isNullableType()) { - var canCorrectToQuestionDot = isRightOfDot && !isRightOfQuestionDot && preferences.includeAutomaticOptionalChainCompletions !== false; - if (canCorrectToQuestionDot || isRightOfQuestionDot) { - type = type.getNonNullableType(); - if (canCorrectToQuestionDot) { - insertQuestionDot = true; - } - } - } - addTypeProperties(type, !!(node.flags & 65536 /* AwaitContext */), insertQuestionDot); - } - else { - addTypeProperties(type.getNonNullableType(), - /*insertAwait*/ - false, - /*insertQuestionDot*/ - false); - } - } - } - function addTypeProperties(type, insertAwait, insertQuestionDot) { - var e_804, _t, e_805, _u; - isNewIdentifierLocation = !!type.getStringIndexType(); - if (isRightOfQuestionDot && some(type.getCallSignatures())) { - isNewIdentifierLocation = true; - } - var propertyAccess = node.kind === 205 /* ImportType */ ? node : node.parent; - if (inCheckedFile) { - try { - for (var _v = __values(type.getApparentProperties()), _w = _v.next(); !_w.done; _w = _v.next()) { - var symbol = _w.value; - if (typeChecker.isValidPropertyAccessForCompletions(propertyAccess, type, symbol)) { - addPropertySymbol(symbol, - /*insertAwait*/ - false, insertQuestionDot); - } - } - } - catch (e_804_1) { e_804 = { error: e_804_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_804) throw e_804.error; } - } - } - else { - symbols.push.apply(symbols, __spreadArray([], __read(filter(getPropertiesForCompletion(type, typeChecker), function (s) { return typeChecker.isValidPropertyAccessForCompletions(propertyAccess, type, s); })), false)); - } - if (insertAwait && preferences.includeCompletionsWithInsertText) { - var promiseType = typeChecker.getPromisedTypeOfPromise(type); - if (promiseType) { - try { - for (var _x = __values(promiseType.getApparentProperties()), _y = _x.next(); !_y.done; _y = _x.next()) { - var symbol = _y.value; - if (typeChecker.isValidPropertyAccessForCompletions(propertyAccess, promiseType, symbol)) { - addPropertySymbol(symbol, - /*insertAwait*/ - true, insertQuestionDot); - } - } - } - catch (e_805_1) { e_805 = { error: e_805_1 }; } - finally { - try { - if (_y && !_y.done && (_u = _x.return)) _u.call(_x); - } - finally { if (e_805) throw e_805.error; } - } - } - } - } - function addPropertySymbol(symbol, insertAwait, insertQuestionDot) { - var _a; - var computedPropertyName = firstDefined(symbol.declarations, function (decl) { return tryCast(getNameOfDeclaration(decl), isComputedPropertyName); }); - if (computedPropertyName) { - var leftMostName = getLeftMostName(computedPropertyName.expression); - var nameSymbol = leftMostName && typeChecker.getSymbolAtLocation(leftMostName); - var firstAccessibleSymbol = nameSymbol && getFirstSymbolInChain(nameSymbol, contextToken, typeChecker); - var firstAccessibleSymbolId = firstAccessibleSymbol && getSymbolId(firstAccessibleSymbol); - if (firstAccessibleSymbolId && addToSeen(seenPropertySymbols, firstAccessibleSymbolId)) { - var index = symbols.length; - symbols.push(firstAccessibleSymbol); - var moduleSymbol = firstAccessibleSymbol.parent; - if (!moduleSymbol || !isExternalModuleSymbol(moduleSymbol) || typeChecker.tryGetMemberInModuleExportsAndProperties(firstAccessibleSymbol.name, moduleSymbol) !== firstAccessibleSymbol) { - symbolToOriginInfoMap[index] = { kind: getNullableSymbolOriginInfoKind(2 /* SymbolMemberNoExport */) }; - } - else { - var fileName = isExternalModuleNameRelative(stripQuotes(moduleSymbol.name)) ? (_a = getSourceFileOfModule(moduleSymbol)) == null ? void 0 : _a.fileName : void 0; - var moduleSpecifier = ((importSpecifierResolver || (importSpecifierResolver = ts_codefix_exports.createImportSpecifierResolver(sourceFile, program, host, preferences))).getModuleSpecifierForBestExportInfo([{ - exportKind: 0 /* Named */, - moduleFileName: fileName, - isFromPackageJson: false, - moduleSymbol: moduleSymbol, - symbol: firstAccessibleSymbol, - targetFlags: skipAlias(firstAccessibleSymbol, typeChecker).flags - }], position, isValidTypeOnlyAliasUseSite(location)) || {}).moduleSpecifier; - if (moduleSpecifier) { - var origin_8 = { - kind: getNullableSymbolOriginInfoKind(6 /* SymbolMemberExport */), - moduleSymbol: moduleSymbol, - isDefaultExport: false, - symbolName: firstAccessibleSymbol.name, - exportName: firstAccessibleSymbol.name, - fileName: fileName, - moduleSpecifier: moduleSpecifier - }; - symbolToOriginInfoMap[index] = origin_8; - } - } - } - else if (preferences.includeCompletionsWithInsertText) { - if (firstAccessibleSymbolId && seenPropertySymbols.has(firstAccessibleSymbolId)) { - return; - } - addSymbolOriginInfo(symbol); - addSymbolSortInfo(symbol); - symbols.push(symbol); - } - } - else { - addSymbolOriginInfo(symbol); - addSymbolSortInfo(symbol); - symbols.push(symbol); - } - function addSymbolSortInfo(symbol2) { - if (isStaticProperty(symbol2)) { - symbolToSortTextMap[getSymbolId(symbol2)] = SortText.LocalDeclarationPriority; - } - } - function addSymbolOriginInfo(symbol2) { - if (preferences.includeCompletionsWithInsertText) { - if (insertAwait && addToSeen(seenPropertySymbols, getSymbolId(symbol2))) { - symbolToOriginInfoMap[symbols.length] = { kind: getNullableSymbolOriginInfoKind(8 /* Promise */) }; - } - else if (insertQuestionDot) { - symbolToOriginInfoMap[symbols.length] = { kind: 16 /* Nullable */ }; - } - } - } - function getNullableSymbolOriginInfoKind(kind) { - return insertQuestionDot ? kind | 16 /* Nullable */ : kind; - } - } - function getLeftMostName(e) { - return isIdentifier(e) ? e : isPropertyAccessExpression(e) ? getLeftMostName(e.expression) : void 0; - } - function tryGetGlobalSymbols() { - var result = tryGetObjectTypeLiteralInTypeArgumentCompletionSymbols() || tryGetObjectLikeCompletionSymbols() || tryGetImportCompletionSymbols() || tryGetImportOrExportClauseCompletionSymbols() || tryGetLocalNamedExportCompletionSymbols() || tryGetConstructorCompletion() || tryGetClassLikeCompletionSymbols() || tryGetJsxCompletionSymbols() || (getGlobalCompletions(), 1 /* Success */); - return result === 1 /* Success */; - } - function tryGetConstructorCompletion() { - if (!tryGetConstructorLikeCompletionContainer(contextToken)) - return 0 /* Continue */; - completionKind = 5 /* None */; - isNewIdentifierLocation = true; - keywordFilters = 4 /* ConstructorParameterKeywords */; - return 1 /* Success */; - } - function tryGetJsxCompletionSymbols() { - var jsxContainer = tryGetContainingJsxElement(contextToken); - var attrsType = jsxContainer && typeChecker.getContextualType(jsxContainer.attributes); - if (!attrsType) - return 0 /* Continue */; - var completionsType = jsxContainer && typeChecker.getContextualType(jsxContainer.attributes, 4 /* Completions */); - symbols = concatenate(symbols, filterJsxAttributes(getPropertiesForObjectExpression(attrsType, completionsType, jsxContainer.attributes, typeChecker), jsxContainer.attributes.properties)); - setSortTextToOptionalMember(); - completionKind = 3 /* MemberLike */; - isNewIdentifierLocation = false; - return 1 /* Success */; - } - function tryGetImportCompletionSymbols() { - if (!importStatementCompletion) - return 0 /* Continue */; - isNewIdentifierLocation = true; - collectAutoImports(); - return 1 /* Success */; - } - function getGlobalCompletions() { - var e_806, _t; - keywordFilters = tryGetFunctionLikeBodyCompletionContainer(contextToken) ? 5 /* FunctionLikeBodyKeywords */ : 1 /* All */; - completionKind = 1 /* Global */; - isNewIdentifierLocation = isNewIdentifierDefinitionLocation(); - if (previousToken !== contextToken) { - Debug.assert(!!previousToken, "Expected 'contextToken' to be defined when different from 'previousToken'."); - } - var adjustedPosition = previousToken !== contextToken ? previousToken.getStart() : position; - var scopeNode = getScopeNode(contextToken, adjustedPosition, sourceFile) || sourceFile; - isInSnippetScope = isSnippetScope(scopeNode); - var symbolMeanings = (isTypeOnlyLocation ? 0 /* None */ : 111551 /* Value */) | 788968 /* Type */ | 1920 /* Namespace */ | 2097152 /* Alias */; - var typeOnlyAliasNeedsPromotion = previousToken && !isValidTypeOnlyAliasUseSite(previousToken); - symbols = concatenate(symbols, typeChecker.getSymbolsInScope(scopeNode, symbolMeanings)); - Debug.assertEachIsDefined(symbols, "getSymbolsInScope() should all be defined"); - for (var i = 0; i < symbols.length; i++) { - var symbol = symbols[i]; - if (!typeChecker.isArgumentsSymbol(symbol) && !some(symbol.declarations, function (d) { return d.getSourceFile() === sourceFile; })) { - symbolToSortTextMap[getSymbolId(symbol)] = SortText.GlobalsOrKeywords; - } - if (typeOnlyAliasNeedsPromotion && !(symbol.flags & 111551 /* Value */)) { - var typeOnlyAliasDeclaration = symbol.declarations && find(symbol.declarations, isTypeOnlyImportDeclaration); - if (typeOnlyAliasDeclaration) { - var origin_9 = { kind: 64 /* TypeOnlyAlias */, declaration: typeOnlyAliasDeclaration }; - symbolToOriginInfoMap[i] = origin_9; - } - } - } - if (preferences.includeCompletionsWithInsertText && scopeNode.kind !== 312 /* SourceFile */) { - var thisType = typeChecker.tryGetThisTypeAt(scopeNode, - /*includeGlobalThis*/ - false, isClassLike(scopeNode.parent) ? scopeNode : void 0); - if (thisType && !isProbablyGlobalType(thisType, sourceFile, typeChecker)) { - try { - for (var _u = __values(getPropertiesForCompletion(thisType, typeChecker)), _v = _u.next(); !_v.done; _v = _u.next()) { - var symbol = _v.value; - symbolToOriginInfoMap[symbols.length] = { kind: 1 /* ThisType */ }; - symbols.push(symbol); - symbolToSortTextMap[getSymbolId(symbol)] = SortText.SuggestedClassMembers; - } - } - catch (e_806_1) { e_806 = { error: e_806_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_806) throw e_806.error; } - } - } - } - collectAutoImports(); - if (isTypeOnlyLocation) { - keywordFilters = contextToken && isAssertionExpression(contextToken.parent) ? 6 /* TypeAssertionKeywords */ : 7 /* TypeKeywords */; - } - } - function shouldOfferImportCompletions() { - if (importStatementCompletion) - return true; - if (isNonContextualObjectLiteral) - return false; - if (!preferences.includeCompletionsForModuleExports) - return false; - if (sourceFile.externalModuleIndicator || sourceFile.commonJsModuleIndicator) - return true; - if (compilerOptionsIndicateEsModules(program.getCompilerOptions())) - return true; - return programContainsModules(program); - } - function isSnippetScope(scopeNode) { - switch (scopeNode.kind) { - case 312 /* SourceFile */: - case 228 /* TemplateExpression */: - case 294 /* JsxExpression */: - case 241 /* Block */: - return true; - default: - return isStatement(scopeNode); - } - } - function isTypeOnlyCompletion() { - return insideJsDocTagTypeExpression || !!importStatementCompletion && isTypeOnlyImportOrExportDeclaration(location.parent) || !isContextTokenValueLocation(contextToken) && (isPossiblyTypeArgumentPosition(contextToken, sourceFile, typeChecker) || isPartOfTypeNode(location) || isContextTokenTypeLocation(contextToken)); - } - function isContextTokenValueLocation(contextToken2) { - return contextToken2 && (contextToken2.kind === 114 /* TypeOfKeyword */ && (contextToken2.parent.kind === 186 /* TypeQuery */ || isTypeOfExpression(contextToken2.parent)) || contextToken2.kind === 131 /* AssertsKeyword */ && contextToken2.parent.kind === 182 /* TypePredicate */); - } - function isContextTokenTypeLocation(contextToken2) { - if (contextToken2) { - var parentKind = contextToken2.parent.kind; - switch (contextToken2.kind) { - case 59 /* ColonToken */: - return parentKind === 172 /* PropertyDeclaration */ || parentKind === 171 /* PropertySignature */ || parentKind === 169 /* Parameter */ || parentKind === 260 /* VariableDeclaration */ || isFunctionLikeKind(parentKind); - case 64 /* EqualsToken */: - return parentKind === 265 /* TypeAliasDeclaration */; - case 130 /* AsKeyword */: - return parentKind === 234 /* AsExpression */; - case 30 /* LessThanToken */: - return parentKind === 183 /* TypeReference */ || parentKind === 216 /* TypeAssertionExpression */; - case 96 /* ExtendsKeyword */: - return parentKind === 168 /* TypeParameter */; - case 152 /* SatisfiesKeyword */: - return parentKind === 238 /* SatisfiesExpression */; - } - } - return false; - } - function collectAutoImports() { - var _a, _b; - if (!shouldOfferImportCompletions()) - return; - Debug.assert(!(detailsEntryId == null ? void 0 : detailsEntryId.data), "Should not run 'collectAutoImports' when faster path is available via `data`"); - if (detailsEntryId && !detailsEntryId.source) { - return; - } - flags |= 1 /* MayIncludeAutoImports */; - var isAfterTypeOnlyImportSpecifierModifier = previousToken === contextToken && importStatementCompletion; - var lowerCaseTokenText = isAfterTypeOnlyImportSpecifierModifier ? "" : previousToken && isIdentifier(previousToken) ? previousToken.text.toLowerCase() : ""; - var moduleSpecifierCache = (_a = host.getModuleSpecifierCache) == null ? void 0 : _a.call(host); - var exportInfo = getExportInfoMap(sourceFile, host, program, preferences, cancellationToken); - var packageJsonAutoImportProvider = (_b = host.getPackageJsonAutoImportProvider) == null ? void 0 : _b.call(host); - var packageJsonFilter = detailsEntryId ? void 0 : createPackageJsonImportFilter(sourceFile, preferences, host); - resolvingModuleSpecifiers("collectAutoImports", host, importSpecifierResolver || (importSpecifierResolver = ts_codefix_exports.createImportSpecifierResolver(sourceFile, program, host, preferences)), program, position, preferences, !!importStatementCompletion, isValidTypeOnlyAliasUseSite(location), function (context) { - exportInfo.search(sourceFile.path, - /*preferCapitalized*/ - isRightOfOpenTag, function (symbolName2, targetFlags) { - if (!isIdentifierText(symbolName2, getEmitScriptTarget(host.getCompilationSettings()))) - return false; - if (!detailsEntryId && isStringANonContextualKeyword(symbolName2)) - return false; - if (!isTypeOnlyLocation && !importStatementCompletion && !(targetFlags & 111551 /* Value */)) - return false; - if (isTypeOnlyLocation && !(targetFlags & (1536 /* Module */ | 788968 /* Type */))) - return false; - var firstChar = symbolName2.charCodeAt(0); - if (isRightOfOpenTag && (firstChar < 65 /* A */ || firstChar > 90 /* Z */)) - return false; - if (detailsEntryId) - return true; - return charactersFuzzyMatchInString(symbolName2, lowerCaseTokenText); - }, function (info, symbolName2, isFromAmbientModule, exportMapKey) { - var _t; - if (detailsEntryId && !some(info, function (i) { return detailsEntryId.source === stripQuotes(i.moduleSymbol.name); })) { - return; - } - info = filter(info, isImportableExportInfo); - if (!info.length) { - return; - } - var result = context.tryResolve(info, isFromAmbientModule) || {}; - if (result === "failed") - return; - var exportInfo2 = info[0], moduleSpecifier; - if (result !== "skipped") { - (_t = result.exportInfo, exportInfo2 = _t === void 0 ? info[0] : _t, moduleSpecifier = result.moduleSpecifier); - } - var isDefaultExport = exportInfo2.exportKind === 1 /* Default */; - var symbol = isDefaultExport && getLocalSymbolForExportDefault(exportInfo2.symbol) || exportInfo2.symbol; - pushAutoImportSymbol(symbol, { - kind: moduleSpecifier ? 32 /* ResolvedExport */ : 4 /* Export */, - moduleSpecifier: moduleSpecifier, - symbolName: symbolName2, - exportMapKey: exportMapKey, - exportName: exportInfo2.exportKind === 2 /* ExportEquals */ ? "export=" /* ExportEquals */ : exportInfo2.symbol.name, - fileName: exportInfo2.moduleFileName, - isDefaultExport: isDefaultExport, - moduleSymbol: exportInfo2.moduleSymbol, - isFromPackageJson: exportInfo2.isFromPackageJson - }); - }); - hasUnresolvedAutoImports = context.skippedAny(); - flags |= context.resolvedAny() ? 8 /* ResolvedModuleSpecifiers */ : 0; - flags |= context.resolvedBeyondLimit() ? 16 /* ResolvedModuleSpecifiersBeyondLimit */ : 0; - }); - function isImportableExportInfo(info) { - var moduleFile = tryCast(info.moduleSymbol.valueDeclaration, isSourceFile); - if (!moduleFile) { - var moduleName = stripQuotes(info.moduleSymbol.name); - if (ts_JsTyping_exports.nodeCoreModules.has(moduleName) && startsWith(moduleName, "node:") !== shouldUseUriStyleNodeCoreModules(sourceFile, program)) { - return false; - } - return packageJsonFilter ? packageJsonFilter.allowsImportingAmbientModule(info.moduleSymbol, getModuleSpecifierResolutionHost(info.isFromPackageJson)) : true; - } - return isImportableFile(info.isFromPackageJson ? packageJsonAutoImportProvider : program, sourceFile, moduleFile, preferences, packageJsonFilter, getModuleSpecifierResolutionHost(info.isFromPackageJson), moduleSpecifierCache); - } - } - function pushAutoImportSymbol(symbol, origin) { - var symbolId = getSymbolId(symbol); - if (symbolToSortTextMap[symbolId] === SortText.GlobalsOrKeywords) { - return; - } - symbolToOriginInfoMap[symbols.length] = origin; - symbolToSortTextMap[symbolId] = importStatementCompletion ? SortText.LocationPriority : SortText.AutoImportSuggestions; - symbols.push(symbol); - } - function collectObjectLiteralMethodSymbols(members, enclosingDeclaration) { - if (isInJSFile(location)) { - return; - } - members.forEach(function (member) { - if (!isObjectLiteralMethodSymbol(member)) { - return; - } - var displayName = getCompletionEntryDisplayNameForSymbol(member, getEmitScriptTarget(compilerOptions), - /*origin*/ - void 0, 0 /* ObjectPropertyDeclaration */, - /*jsxIdentifierExpected*/ - false); - if (!displayName) { - return; - } - var name = displayName.name; - var entryProps = getEntryForObjectLiteralMethodCompletion(member, name, enclosingDeclaration, program, host, compilerOptions, preferences, formatContext); - if (!entryProps) { - return; - } - var origin = __assign({ kind: 128 /* ObjectLiteralMethod */ }, entryProps); - flags |= 32 /* MayIncludeMethodSnippets */; - symbolToOriginInfoMap[symbols.length] = origin; - symbols.push(member); - }); - } - function isObjectLiteralMethodSymbol(symbol) { - if (!(symbol.flags & (4 /* Property */ | 8192 /* Method */))) { - return false; - } - return true; - } - function getScopeNode(initialToken, position2, sourceFile2) { - var scope = initialToken; - while (scope && !positionBelongsToNode(scope, position2, sourceFile2)) { - scope = scope.parent; - } - return scope; - } - function isCompletionListBlocker(contextToken2) { - var start3 = timestamp(); - var result = isInStringOrRegularExpressionOrTemplateLiteral(contextToken2) || isSolelyIdentifierDefinitionLocation(contextToken2) || isDotOfNumericLiteral(contextToken2) || isInJsxText(contextToken2) || isBigIntLiteral(contextToken2); - log("getCompletionsAtPosition: isCompletionListBlocker: " + (timestamp() - start3)); - return result; - } - function isInJsxText(contextToken2) { - if (contextToken2.kind === 12 /* JsxText */) { - return true; - } - if (contextToken2.kind === 32 /* GreaterThanToken */ && contextToken2.parent) { - if (location === contextToken2.parent && (location.kind === 286 /* JsxOpeningElement */ || location.kind === 285 /* JsxSelfClosingElement */)) { - return false; - } - if (contextToken2.parent.kind === 286 /* JsxOpeningElement */) { - return location.parent.kind !== 286 /* JsxOpeningElement */; - } - if (contextToken2.parent.kind === 287 /* JsxClosingElement */ || contextToken2.parent.kind === 285 /* JsxSelfClosingElement */) { - return !!contextToken2.parent.parent && contextToken2.parent.parent.kind === 284 /* JsxElement */; - } - } - return false; - } - function isNewIdentifierDefinitionLocation() { - if (contextToken) { - var containingNodeKind = contextToken.parent.kind; - var tokenKind = keywordForNode(contextToken); - switch (tokenKind) { - case 28 /* CommaToken */: - return containingNodeKind === 213 /* CallExpression */ || containingNodeKind === 176 /* Constructor */ || containingNodeKind === 214 /* NewExpression */ || containingNodeKind === 209 /* ArrayLiteralExpression */ || containingNodeKind === 226 /* BinaryExpression */ || containingNodeKind === 184 /* FunctionType */ || containingNodeKind === 210 /* ObjectLiteralExpression */; - case 21 /* OpenParenToken */: - return containingNodeKind === 213 /* CallExpression */ || containingNodeKind === 176 /* Constructor */ || containingNodeKind === 214 /* NewExpression */ || containingNodeKind === 217 /* ParenthesizedExpression */ || containingNodeKind === 196 /* ParenthesizedType */; - case 23 /* OpenBracketToken */: - return containingNodeKind === 209 /* ArrayLiteralExpression */ || containingNodeKind === 181 /* IndexSignature */ || containingNodeKind === 167 /* ComputedPropertyName */; - case 144 /* ModuleKeyword */: - case 145 /* NamespaceKeyword */: - case 102 /* ImportKeyword */: - return true; - case 25 /* DotToken */: - return containingNodeKind === 267 /* ModuleDeclaration */; - case 19 /* OpenBraceToken */: - return containingNodeKind === 263 /* ClassDeclaration */ || containingNodeKind === 210 /* ObjectLiteralExpression */; - case 64 /* EqualsToken */: - return containingNodeKind === 260 /* VariableDeclaration */ || containingNodeKind === 226 /* BinaryExpression */; - case 16 /* TemplateHead */: - return containingNodeKind === 228 /* TemplateExpression */; - case 17 /* TemplateMiddle */: - return containingNodeKind === 239 /* TemplateSpan */; - case 134 /* AsyncKeyword */: - return containingNodeKind === 174 /* MethodDeclaration */ || containingNodeKind === 304 /* ShorthandPropertyAssignment */; - case 42 /* AsteriskToken */: - return containingNodeKind === 174 /* MethodDeclaration */; - } - if (isClassMemberCompletionKeyword(tokenKind)) { - return true; - } - } - return false; - } - function isInStringOrRegularExpressionOrTemplateLiteral(contextToken2) { - return (isRegularExpressionLiteral(contextToken2) || isStringTextContainingNode(contextToken2)) && (rangeContainsPositionExclusive(contextToken2, position) || position === contextToken2.end && (!!contextToken2.isUnterminated || isRegularExpressionLiteral(contextToken2))); - } - function tryGetObjectTypeLiteralInTypeArgumentCompletionSymbols() { - var typeLiteralNode = tryGetTypeLiteralNode(contextToken); - if (!typeLiteralNode) - return 0 /* Continue */; - var intersectionTypeNode = isIntersectionTypeNode(typeLiteralNode.parent) ? typeLiteralNode.parent : void 0; - var containerTypeNode = intersectionTypeNode || typeLiteralNode; - var containerExpectedType = getConstraintOfTypeArgumentProperty(containerTypeNode, typeChecker); - if (!containerExpectedType) - return 0 /* Continue */; - var containerActualType = typeChecker.getTypeFromTypeNode(containerTypeNode); - var members = getPropertiesForCompletion(containerExpectedType, typeChecker); - var existingMembers = getPropertiesForCompletion(containerActualType, typeChecker); - var existingMemberEscapedNames = /* @__PURE__ */ new Set(); - existingMembers.forEach(function (s) { return existingMemberEscapedNames.add(s.escapedName); }); - symbols = concatenate(symbols, filter(members, function (s) { return !existingMemberEscapedNames.has(s.escapedName); })); - completionKind = 0 /* ObjectPropertyDeclaration */; - isNewIdentifierLocation = true; - return 1 /* Success */; - } - function tryGetObjectLikeCompletionSymbols() { - var symbolsStartIndex = symbols.length; - var objectLikeContainer = tryGetObjectLikeCompletionContainer(contextToken, position, sourceFile); - if (!objectLikeContainer) - return 0 /* Continue */; - completionKind = 0 /* ObjectPropertyDeclaration */; - var typeMembers; - var existingMembers; - if (objectLikeContainer.kind === 210 /* ObjectLiteralExpression */) { - var instantiatedType = tryGetObjectLiteralContextualType(objectLikeContainer, typeChecker); - if (instantiatedType === void 0) { - if (objectLikeContainer.flags & 67108864 /* InWithStatement */) { - return 2 /* Fail */; - } - isNonContextualObjectLiteral = true; - return 0 /* Continue */; - } - var completionsType = typeChecker.getContextualType(objectLikeContainer, 4 /* Completions */); - var hasStringIndexType = (completionsType || instantiatedType).getStringIndexType(); - var hasNumberIndextype = (completionsType || instantiatedType).getNumberIndexType(); - isNewIdentifierLocation = !!hasStringIndexType || !!hasNumberIndextype; - typeMembers = getPropertiesForObjectExpression(instantiatedType, completionsType, objectLikeContainer, typeChecker); - existingMembers = objectLikeContainer.properties; - if (typeMembers.length === 0) { - if (!hasNumberIndextype) { - isNonContextualObjectLiteral = true; - return 0 /* Continue */; - } - } - } - else { - Debug.assert(objectLikeContainer.kind === 206 /* ObjectBindingPattern */); - isNewIdentifierLocation = false; - var rootDeclaration = getRootDeclaration(objectLikeContainer.parent); - if (!isVariableLike(rootDeclaration)) - return Debug.fail("Root declaration is not variable-like."); - var canGetType = hasInitializer(rootDeclaration) || !!getEffectiveTypeAnnotationNode(rootDeclaration) || rootDeclaration.parent.parent.kind === 250 /* ForOfStatement */; - if (!canGetType && rootDeclaration.kind === 169 /* Parameter */) { - if (isExpression(rootDeclaration.parent)) { - canGetType = !!typeChecker.getContextualType(rootDeclaration.parent); - } - else if (rootDeclaration.parent.kind === 174 /* MethodDeclaration */ || rootDeclaration.parent.kind === 178 /* SetAccessor */) { - canGetType = isExpression(rootDeclaration.parent.parent) && !!typeChecker.getContextualType(rootDeclaration.parent.parent); - } - } - if (canGetType) { - var typeForObject_1 = typeChecker.getTypeAtLocation(objectLikeContainer); - if (!typeForObject_1) - return 2 /* Fail */; - typeMembers = typeChecker.getPropertiesOfType(typeForObject_1).filter(function (propertySymbol) { - return typeChecker.isPropertyAccessible(objectLikeContainer, - /*isSuper*/ - false, - /*isWrite*/ - false, typeForObject_1, propertySymbol); - }); - existingMembers = objectLikeContainer.elements; - } - } - if (typeMembers && typeMembers.length > 0) { - var filteredMembers = filterObjectMembersList(typeMembers, Debug.checkDefined(existingMembers)); - symbols = concatenate(symbols, filteredMembers); - setSortTextToOptionalMember(); - if (objectLikeContainer.kind === 210 /* ObjectLiteralExpression */ && preferences.includeCompletionsWithObjectLiteralMethodSnippets && preferences.includeCompletionsWithInsertText) { - transformObjectLiteralMembersSortText(symbolsStartIndex); - collectObjectLiteralMethodSymbols(filteredMembers, objectLikeContainer); - } - } - return 1 /* Success */; - } - function tryGetImportOrExportClauseCompletionSymbols() { - if (!contextToken) - return 0 /* Continue */; - var namedImportsOrExports = contextToken.kind === 19 /* OpenBraceToken */ || contextToken.kind === 28 /* CommaToken */ ? tryCast(contextToken.parent, isNamedImportsOrExports) : isTypeKeywordTokenOrIdentifier(contextToken) ? tryCast(contextToken.parent.parent, isNamedImportsOrExports) : void 0; - if (!namedImportsOrExports) - return 0 /* Continue */; - if (!isTypeKeywordTokenOrIdentifier(contextToken)) { - keywordFilters = 8 /* TypeKeyword */; - } - var moduleSpecifier = (namedImportsOrExports.kind === 275 /* NamedImports */ ? namedImportsOrExports.parent.parent : namedImportsOrExports.parent).moduleSpecifier; - if (!moduleSpecifier) { - isNewIdentifierLocation = true; - return namedImportsOrExports.kind === 275 /* NamedImports */ ? 2 /* Fail */ : 0 /* Continue */; - } - var moduleSpecifierSymbol = typeChecker.getSymbolAtLocation(moduleSpecifier); - if (!moduleSpecifierSymbol) { - isNewIdentifierLocation = true; - return 2 /* Fail */; - } - completionKind = 3 /* MemberLike */; - isNewIdentifierLocation = false; - var exports = typeChecker.getExportsAndPropertiesOfModule(moduleSpecifierSymbol); - var existing = new Set(namedImportsOrExports.elements.filter(function (n) { return !isCurrentlyEditingNode(n); }).map(function (n) { return (n.propertyName || n.name).escapedText; })); - var uniques = exports.filter(function (e) { return e.escapedName !== "default" /* Default */ && !existing.has(e.escapedName); }); - symbols = concatenate(symbols, uniques); - if (!uniques.length) { - keywordFilters = 0 /* None */; - } - return 1 /* Success */; - } - function tryGetLocalNamedExportCompletionSymbols() { - var _a; - var namedExports = contextToken && (contextToken.kind === 19 /* OpenBraceToken */ || contextToken.kind === 28 /* CommaToken */) ? tryCast(contextToken.parent, isNamedExports) : void 0; - if (!namedExports) { - return 0 /* Continue */; - } - var localsContainer = findAncestor(namedExports, or(isSourceFile, isModuleDeclaration)); - completionKind = 5 /* None */; - isNewIdentifierLocation = false; - (_a = localsContainer.locals) == null ? void 0 : _a.forEach(function (symbol, name) { - var _a2, _b; - symbols.push(symbol); - if ((_b = (_a2 = localsContainer.symbol) == null ? void 0 : _a2.exports) == null ? void 0 : _b.has(name)) { - symbolToSortTextMap[getSymbolId(symbol)] = SortText.OptionalMember; - } - }); - return 1 /* Success */; - } - function tryGetClassLikeCompletionSymbols() { - var decl = tryGetObjectTypeDeclarationCompletionContainer(sourceFile, contextToken, location, position); - if (!decl) - return 0 /* Continue */; - completionKind = 3 /* MemberLike */; - isNewIdentifierLocation = true; - keywordFilters = contextToken.kind === 42 /* AsteriskToken */ ? 0 /* None */ : isClassLike(decl) ? 2 /* ClassElementKeywords */ : 3 /* InterfaceElementKeywords */; - if (!isClassLike(decl)) - return 1 /* Success */; - var classElement = contextToken.kind === 27 /* SemicolonToken */ ? contextToken.parent.parent : contextToken.parent; - var classElementModifierFlags = isClassElement(classElement) ? getEffectiveModifierFlags(classElement) : 0 /* None */; - if (contextToken.kind === 80 /* Identifier */ && !isCurrentlyEditingNode(contextToken)) { - switch (contextToken.getText()) { - case "private": - classElementModifierFlags = classElementModifierFlags | 8 /* Private */; - break; - case "static": - classElementModifierFlags = classElementModifierFlags | 32 /* Static */; - break; - case "override": - classElementModifierFlags = classElementModifierFlags | 16384 /* Override */; - break; - } - } - if (isClassStaticBlockDeclaration(classElement)) { - classElementModifierFlags |= 32 /* Static */; - } - if (!(classElementModifierFlags & 8 /* Private */)) { - var baseTypeNodes = isClassLike(decl) && classElementModifierFlags & 16384 /* Override */ ? singleElementArray(getEffectiveBaseTypeNode(decl)) : getAllSuperTypeNodes(decl); - var baseSymbols = flatMap(baseTypeNodes, function (baseTypeNode) { - var type = typeChecker.getTypeAtLocation(baseTypeNode); - return classElementModifierFlags & 32 /* Static */ ? (type == null ? void 0 : type.symbol) && typeChecker.getPropertiesOfType(typeChecker.getTypeOfSymbolAtLocation(type.symbol, decl)) : type && typeChecker.getPropertiesOfType(type); - }); - symbols = concatenate(symbols, filterClassMembersList(baseSymbols, decl.members, classElementModifierFlags)); - forEach(symbols, function (symbol, index) { - var declaration = symbol == null ? void 0 : symbol.valueDeclaration; - if (declaration && isClassElement(declaration) && declaration.name && isComputedPropertyName(declaration.name)) { - var origin_10 = { - kind: 512 /* ComputedPropertyName */, - symbolName: typeChecker.symbolToString(symbol) - }; - symbolToOriginInfoMap[index] = origin_10; - } - }); - } - return 1 /* Success */; - } - function isConstructorParameterCompletion(node2) { - return !!node2.parent && isParameter(node2.parent) && isConstructorDeclaration(node2.parent.parent) && (isParameterPropertyModifier(node2.kind) || isDeclarationName(node2)); - } - function tryGetConstructorLikeCompletionContainer(contextToken2) { - if (contextToken2) { - var parent2 = contextToken2.parent; - switch (contextToken2.kind) { - case 21 /* OpenParenToken */: - case 28 /* CommaToken */: - return isConstructorDeclaration(contextToken2.parent) ? contextToken2.parent : void 0; - default: - if (isConstructorParameterCompletion(contextToken2)) { - return parent2.parent; - } - } - } - return void 0; - } - function tryGetFunctionLikeBodyCompletionContainer(contextToken2) { - if (contextToken2) { - var prev_1; - var container = findAncestor(contextToken2.parent, function (node2) { - if (isClassLike(node2)) { - return "quit"; - } - if (isFunctionLikeDeclaration(node2) && prev_1 === node2.body) { - return true; - } - prev_1 = node2; - return false; - }); - return container && container; - } - } - function tryGetContainingJsxElement(contextToken2) { - if (contextToken2) { - var parent2 = contextToken2.parent; - switch (contextToken2.kind) { - case 32 /* GreaterThanToken */: - case 31 /* LessThanSlashToken */: - case 44 /* SlashToken */: - case 80 /* Identifier */: - case 211 /* PropertyAccessExpression */: - case 292 /* JsxAttributes */: - case 291 /* JsxAttribute */: - case 293 /* JsxSpreadAttribute */: - if (parent2 && (parent2.kind === 285 /* JsxSelfClosingElement */ || parent2.kind === 286 /* JsxOpeningElement */)) { - if (contextToken2.kind === 32 /* GreaterThanToken */) { - var precedingToken = findPrecedingToken(contextToken2.pos, sourceFile, - /*startNode*/ - void 0); - if (!parent2.typeArguments || precedingToken && precedingToken.kind === 44 /* SlashToken */) - break; - } - return parent2; - } - else if (parent2.kind === 291 /* JsxAttribute */) { - return parent2.parent.parent; - } - break; - case 11 /* StringLiteral */: - if (parent2 && (parent2.kind === 291 /* JsxAttribute */ || parent2.kind === 293 /* JsxSpreadAttribute */)) { - return parent2.parent.parent; - } - break; - case 20 /* CloseBraceToken */: - if (parent2 && parent2.kind === 294 /* JsxExpression */ && parent2.parent && parent2.parent.kind === 291 /* JsxAttribute */) { - return parent2.parent.parent.parent; - } - if (parent2 && parent2.kind === 293 /* JsxSpreadAttribute */) { - return parent2.parent.parent; - } - break; - } - } - return void 0; - } - function isSolelyIdentifierDefinitionLocation(contextToken2) { - var parent2 = contextToken2.parent; - var containingNodeKind = parent2.kind; - switch (contextToken2.kind) { - case 28 /* CommaToken */: - return containingNodeKind === 260 /* VariableDeclaration */ || isVariableDeclarationListButNotTypeArgument(contextToken2) || containingNodeKind === 243 /* VariableStatement */ || containingNodeKind === 266 /* EnumDeclaration */ || // enum a { foo, | - isFunctionLikeButNotConstructor(containingNodeKind) || containingNodeKind === 264 /* InterfaceDeclaration */ || // interface A= contextToken2.pos; - case 25 /* DotToken */: - return containingNodeKind === 207 /* ArrayBindingPattern */; - case 59 /* ColonToken */: - return containingNodeKind === 208 /* BindingElement */; - case 23 /* OpenBracketToken */: - return containingNodeKind === 207 /* ArrayBindingPattern */; - case 21 /* OpenParenToken */: - return containingNodeKind === 299 /* CatchClause */ || isFunctionLikeButNotConstructor(containingNodeKind); - case 19 /* OpenBraceToken */: - return containingNodeKind === 266 /* EnumDeclaration */; - case 30 /* LessThanToken */: - return containingNodeKind === 263 /* ClassDeclaration */ || // class A< | - containingNodeKind === 231 /* ClassExpression */ || // var C = class D< | - containingNodeKind === 264 /* InterfaceDeclaration */ || // interface A< | - containingNodeKind === 265 /* TypeAliasDeclaration */ || // type List< | - isFunctionLikeKind(containingNodeKind); - case 126 /* StaticKeyword */: - return containingNodeKind === 172 /* PropertyDeclaration */ && !isClassLike(parent2.parent); - case 26 /* DotDotDotToken */: - return containingNodeKind === 169 /* Parameter */ || !!parent2.parent && parent2.parent.kind === 207 /* ArrayBindingPattern */; - case 125 /* PublicKeyword */: - case 123 /* PrivateKeyword */: - case 124 /* ProtectedKeyword */: - return containingNodeKind === 169 /* Parameter */ && !isConstructorDeclaration(parent2.parent); - case 130 /* AsKeyword */: - return containingNodeKind === 276 /* ImportSpecifier */ || containingNodeKind === 281 /* ExportSpecifier */ || containingNodeKind === 274 /* NamespaceImport */; - case 139 /* GetKeyword */: - case 153 /* SetKeyword */: - return !isFromObjectTypeDeclaration(contextToken2); - case 80 /* Identifier */: - if (containingNodeKind === 276 /* ImportSpecifier */ && contextToken2 === parent2.name && contextToken2.text === "type") { - return false; - } - break; - case 86 /* ClassKeyword */: - case 94 /* EnumKeyword */: - case 120 /* InterfaceKeyword */: - case 100 /* FunctionKeyword */: - case 115 /* VarKeyword */: - case 102 /* ImportKeyword */: - case 121 /* LetKeyword */: - case 87 /* ConstKeyword */: - case 140 /* InferKeyword */: - return true; - case 156 /* TypeKeyword */: - return containingNodeKind !== 276 /* ImportSpecifier */; - case 42 /* AsteriskToken */: - return isFunctionLike(contextToken2.parent) && !isMethodDeclaration(contextToken2.parent); - } - if (isClassMemberCompletionKeyword(keywordForNode(contextToken2)) && isFromObjectTypeDeclaration(contextToken2)) { - return false; - } - if (isConstructorParameterCompletion(contextToken2)) { - if (!isIdentifier(contextToken2) || isParameterPropertyModifier(keywordForNode(contextToken2)) || isCurrentlyEditingNode(contextToken2)) { - return false; - } - } - switch (keywordForNode(contextToken2)) { - case 128 /* AbstractKeyword */: - case 86 /* ClassKeyword */: - case 87 /* ConstKeyword */: - case 138 /* DeclareKeyword */: - case 94 /* EnumKeyword */: - case 100 /* FunctionKeyword */: - case 120 /* InterfaceKeyword */: - case 121 /* LetKeyword */: - case 123 /* PrivateKeyword */: - case 124 /* ProtectedKeyword */: - case 125 /* PublicKeyword */: - case 126 /* StaticKeyword */: - case 115 /* VarKeyword */: - return true; - case 134 /* AsyncKeyword */: - return isPropertyDeclaration(contextToken2.parent); - } - var ancestorClassLike = findAncestor(contextToken2.parent, isClassLike); - if (ancestorClassLike && contextToken2 === previousToken && isPreviousPropertyDeclarationTerminated(contextToken2, position)) { - return false; - } - var ancestorPropertyDeclaraion = getAncestor(contextToken2.parent, 172 /* PropertyDeclaration */); - if (ancestorPropertyDeclaraion && contextToken2 !== previousToken && isClassLike(previousToken.parent.parent) && position <= previousToken.end) { - if (isPreviousPropertyDeclarationTerminated(contextToken2, previousToken.end)) { - return false; - } - else if (contextToken2.kind !== 64 /* EqualsToken */ && (isInitializedProperty(ancestorPropertyDeclaraion) || hasType(ancestorPropertyDeclaraion))) { - return true; - } - } - return isDeclarationName(contextToken2) && !isShorthandPropertyAssignment(contextToken2.parent) && !isJsxAttribute(contextToken2.parent) && !((isClassLike(contextToken2.parent) || isInterfaceDeclaration(contextToken2.parent) || isTypeParameterDeclaration(contextToken2.parent)) && (contextToken2 !== previousToken || position > previousToken.end)); - } - function isPreviousPropertyDeclarationTerminated(contextToken2, position2) { - return contextToken2.kind !== 64 /* EqualsToken */ && (contextToken2.kind === 27 /* SemicolonToken */ || !positionsAreOnSameLine(contextToken2.end, position2, sourceFile)); - } - function isFunctionLikeButNotConstructor(kind) { - return isFunctionLikeKind(kind) && kind !== 176 /* Constructor */; - } - function isDotOfNumericLiteral(contextToken2) { - if (contextToken2.kind === 9 /* NumericLiteral */) { - var text = contextToken2.getFullText(); - return text.charAt(text.length - 1) === "."; - } - return false; - } - function isVariableDeclarationListButNotTypeArgument(node2) { - return node2.parent.kind === 261 /* VariableDeclarationList */ && !isPossiblyTypeArgumentPosition(node2, sourceFile, typeChecker); - } - function filterObjectMembersList(contextualMemberSymbols, existingMembers) { - var e_807, _t; - if (existingMembers.length === 0) { - return contextualMemberSymbols; - } - var membersDeclaredBySpreadAssignment = /* @__PURE__ */ new Set(); - var existingMemberNames = /* @__PURE__ */ new Set(); - try { - for (var existingMembers_1 = __values(existingMembers), existingMembers_1_1 = existingMembers_1.next(); !existingMembers_1_1.done; existingMembers_1_1 = existingMembers_1.next()) { - var m = existingMembers_1_1.value; - if (m.kind !== 303 /* PropertyAssignment */ && m.kind !== 304 /* ShorthandPropertyAssignment */ && m.kind !== 208 /* BindingElement */ && m.kind !== 174 /* MethodDeclaration */ && m.kind !== 177 /* GetAccessor */ && m.kind !== 178 /* SetAccessor */ && m.kind !== 305 /* SpreadAssignment */) { - continue; - } - if (isCurrentlyEditingNode(m)) { - continue; - } - var existingName = void 0; - if (isSpreadAssignment(m)) { - setMembersDeclaredBySpreadAssignment(m, membersDeclaredBySpreadAssignment); - } - else if (isBindingElement(m) && m.propertyName) { - if (m.propertyName.kind === 80 /* Identifier */) { - existingName = m.propertyName.escapedText; - } - } - else { - var name_122 = getNameOfDeclaration(m); - existingName = name_122 && isPropertyNameLiteral(name_122) ? getEscapedTextOfIdentifierOrLiteral(name_122) : void 0; - } - if (existingName !== void 0) { - existingMemberNames.add(existingName); - } - } - } - catch (e_807_1) { e_807 = { error: e_807_1 }; } - finally { - try { - if (existingMembers_1_1 && !existingMembers_1_1.done && (_t = existingMembers_1.return)) _t.call(existingMembers_1); - } - finally { if (e_807) throw e_807.error; } - } - var filteredSymbols = contextualMemberSymbols.filter(function (m) { return !existingMemberNames.has(m.escapedName); }); - setSortTextToMemberDeclaredBySpreadAssignment(membersDeclaredBySpreadAssignment, filteredSymbols); - return filteredSymbols; - } - function setMembersDeclaredBySpreadAssignment(declaration, membersDeclaredBySpreadAssignment) { - var expression = declaration.expression; - var symbol = typeChecker.getSymbolAtLocation(expression); - var type = symbol && typeChecker.getTypeOfSymbolAtLocation(symbol, expression); - var properties = type && type.properties; - if (properties) { - properties.forEach(function (property) { - membersDeclaredBySpreadAssignment.add(property.name); - }); - } - } - function setSortTextToOptionalMember() { - symbols.forEach(function (m) { - var _t; - if (m.flags & 16777216 /* Optional */) { - var symbolId = getSymbolId(m); - symbolToSortTextMap[symbolId] = (_t = symbolToSortTextMap[symbolId]) !== null && _t !== void 0 ? _t : SortText.OptionalMember; - } - }); - } - function setSortTextToMemberDeclaredBySpreadAssignment(membersDeclaredBySpreadAssignment, contextualMemberSymbols) { - var e_808, _t; - if (membersDeclaredBySpreadAssignment.size === 0) { - return; - } - try { - for (var contextualMemberSymbols_1 = __values(contextualMemberSymbols), contextualMemberSymbols_1_1 = contextualMemberSymbols_1.next(); !contextualMemberSymbols_1_1.done; contextualMemberSymbols_1_1 = contextualMemberSymbols_1.next()) { - var contextualMemberSymbol = contextualMemberSymbols_1_1.value; - if (membersDeclaredBySpreadAssignment.has(contextualMemberSymbol.name)) { - symbolToSortTextMap[getSymbolId(contextualMemberSymbol)] = SortText.MemberDeclaredBySpreadAssignment; - } - } - } - catch (e_808_1) { e_808 = { error: e_808_1 }; } - finally { - try { - if (contextualMemberSymbols_1_1 && !contextualMemberSymbols_1_1.done && (_t = contextualMemberSymbols_1.return)) _t.call(contextualMemberSymbols_1); - } - finally { if (e_808) throw e_808.error; } - } - } - function transformObjectLiteralMembersSortText(start3) { - var _t; - for (var i = start3; i < symbols.length; i++) { - var symbol = symbols[i]; - var symbolId = getSymbolId(symbol); - var origin_11 = symbolToOriginInfoMap == null ? void 0 : symbolToOriginInfoMap[i]; - var target = getEmitScriptTarget(compilerOptions); - var displayName = getCompletionEntryDisplayNameForSymbol(symbol, target, origin_11, 0 /* ObjectPropertyDeclaration */, - /*jsxIdentifierExpected*/ - false); - if (displayName) { - var originalSortText = (_t = symbolToSortTextMap[symbolId]) !== null && _t !== void 0 ? _t : SortText.LocationPriority; - var name_123 = displayName.name; - symbolToSortTextMap[symbolId] = SortText.ObjectLiteralProperty(originalSortText, name_123); - } - } - } - function filterClassMembersList(baseSymbols, existingMembers, currentClassElementModifierFlags) { - var e_809, _t; - var existingMemberNames = /* @__PURE__ */ new Set(); - try { - for (var existingMembers_2 = __values(existingMembers), existingMembers_2_1 = existingMembers_2.next(); !existingMembers_2_1.done; existingMembers_2_1 = existingMembers_2.next()) { - var m = existingMembers_2_1.value; - if (m.kind !== 172 /* PropertyDeclaration */ && m.kind !== 174 /* MethodDeclaration */ && m.kind !== 177 /* GetAccessor */ && m.kind !== 178 /* SetAccessor */) { - continue; - } - if (isCurrentlyEditingNode(m)) { - continue; - } - if (hasEffectiveModifier(m, 8 /* Private */)) { - continue; - } - if (isStatic(m) !== !!(currentClassElementModifierFlags & 32 /* Static */)) { - continue; - } - var existingName = getPropertyNameForPropertyNameNode(m.name); - if (existingName) { - existingMemberNames.add(existingName); - } - } - } - catch (e_809_1) { e_809 = { error: e_809_1 }; } - finally { - try { - if (existingMembers_2_1 && !existingMembers_2_1.done && (_t = existingMembers_2.return)) _t.call(existingMembers_2); - } - finally { if (e_809) throw e_809.error; } - } - return baseSymbols.filter(function (propertySymbol) { return !existingMemberNames.has(propertySymbol.escapedName) && !!propertySymbol.declarations && !(getDeclarationModifierFlagsFromSymbol(propertySymbol) & 8 /* Private */) && !(propertySymbol.valueDeclaration && isPrivateIdentifierClassElementDeclaration(propertySymbol.valueDeclaration)); }); - } - function filterJsxAttributes(symbols2, attributes) { - var e_810, _t; - var seenNames = /* @__PURE__ */ new Set(); - var membersDeclaredBySpreadAssignment = /* @__PURE__ */ new Set(); - try { - for (var attributes_1 = __values(attributes), attributes_1_1 = attributes_1.next(); !attributes_1_1.done; attributes_1_1 = attributes_1.next()) { - var attr = attributes_1_1.value; - if (isCurrentlyEditingNode(attr)) { - continue; - } - if (attr.kind === 291 /* JsxAttribute */) { - seenNames.add(getEscapedTextOfJsxAttributeName(attr.name)); - } - else if (isJsxSpreadAttribute(attr)) { - setMembersDeclaredBySpreadAssignment(attr, membersDeclaredBySpreadAssignment); - } - } - } - catch (e_810_1) { e_810 = { error: e_810_1 }; } - finally { - try { - if (attributes_1_1 && !attributes_1_1.done && (_t = attributes_1.return)) _t.call(attributes_1); - } - finally { if (e_810) throw e_810.error; } - } - var filteredSymbols = symbols2.filter(function (a) { return !seenNames.has(a.escapedName); }); - setSortTextToMemberDeclaredBySpreadAssignment(membersDeclaredBySpreadAssignment, filteredSymbols); - return filteredSymbols; - } - function isCurrentlyEditingNode(node2) { - return node2.getStart(sourceFile) <= position && position <= node2.getEnd(); - } -} -function tryGetObjectLikeCompletionContainer(contextToken, position, sourceFile) { - var _a; - if (contextToken) { - var parent2 = contextToken.parent; - switch (contextToken.kind) { - case 19 /* OpenBraceToken */: - case 28 /* CommaToken */: - if (isObjectLiteralExpression(parent2) || isObjectBindingPattern(parent2)) { - return parent2; - } - break; - case 42 /* AsteriskToken */: - return isMethodDeclaration(parent2) ? tryCast(parent2.parent, isObjectLiteralExpression) : void 0; - case 134 /* AsyncKeyword */: - return tryCast(parent2.parent, isObjectLiteralExpression); - case 80 /* Identifier */: - if (contextToken.text === "async" && isShorthandPropertyAssignment(contextToken.parent)) { - return contextToken.parent.parent; - } - else { - if (isObjectLiteralExpression(contextToken.parent.parent) && (isSpreadAssignment(contextToken.parent) || isShorthandPropertyAssignment(contextToken.parent) && getLineAndCharacterOfPosition(sourceFile, contextToken.getEnd()).line !== getLineAndCharacterOfPosition(sourceFile, position).line)) { - return contextToken.parent.parent; - } - var ancestorNode2 = findAncestor(parent2, isPropertyAssignment); - if ((ancestorNode2 == null ? void 0 : ancestorNode2.getLastToken(sourceFile)) === contextToken && isObjectLiteralExpression(ancestorNode2.parent)) { - return ancestorNode2.parent; - } - } - break; - default: - if (((_a = parent2.parent) == null ? void 0 : _a.parent) && (isMethodDeclaration(parent2.parent) || isGetAccessorDeclaration(parent2.parent) || isSetAccessorDeclaration(parent2.parent)) && isObjectLiteralExpression(parent2.parent.parent)) { - return parent2.parent.parent; - } - if (isSpreadAssignment(parent2) && isObjectLiteralExpression(parent2.parent)) { - return parent2.parent; - } - var ancestorNode = findAncestor(parent2, isPropertyAssignment); - if (contextToken.kind !== 59 /* ColonToken */ && (ancestorNode == null ? void 0 : ancestorNode.getLastToken(sourceFile)) === contextToken && isObjectLiteralExpression(ancestorNode.parent)) { - return ancestorNode.parent; - } - } - } - return void 0; -} -function getRelevantTokens(position, sourceFile) { - var previousToken = findPrecedingToken(position, sourceFile); - if (previousToken && position <= previousToken.end && (isMemberName(previousToken) || isKeyword(previousToken.kind))) { - var contextToken = findPrecedingToken(previousToken.getFullStart(), sourceFile, - /*startNode*/ - void 0); - return { contextToken: contextToken, previousToken: previousToken }; - } - return { contextToken: previousToken, previousToken: previousToken }; -} -function getAutoImportSymbolFromCompletionEntryData(name, data, program, host) { - var containingProgram = data.isPackageJsonImport ? host.getPackageJsonAutoImportProvider() : program; - var checker = containingProgram.getTypeChecker(); - var moduleSymbol = data.ambientModuleName ? checker.tryFindAmbientModule(data.ambientModuleName) : data.fileName ? checker.getMergedSymbol(Debug.checkDefined(containingProgram.getSourceFile(data.fileName)).symbol) : void 0; - if (!moduleSymbol) - return void 0; - var symbol = data.exportName === "export=" /* ExportEquals */ ? checker.resolveExternalModuleSymbol(moduleSymbol) : checker.tryGetMemberInModuleExportsAndProperties(data.exportName, moduleSymbol); - if (!symbol) - return void 0; - var isDefaultExport = data.exportName === "default" /* Default */; - symbol = isDefaultExport && getLocalSymbolForExportDefault(symbol) || symbol; - return { symbol: symbol, origin: completionEntryDataToSymbolOriginInfo(data, name, moduleSymbol) }; -} -function getCompletionEntryDisplayNameForSymbol(symbol, target, origin, kind, jsxIdentifierExpected) { - if (originIsIgnore(origin)) { - return void 0; - } - var name = originIncludesSymbolName(origin) ? origin.symbolName : symbol.name; - if (name === void 0 || symbol.flags & 1536 /* Module */ && isSingleOrDoubleQuote(name.charCodeAt(0)) || isKnownSymbol(symbol)) { - return void 0; - } - var validNameResult = { name: name, needsConvertPropertyAccess: false }; - if (isIdentifierText(name, target, jsxIdentifierExpected ? 1 /* JSX */ : 0 /* Standard */) || symbol.valueDeclaration && isPrivateIdentifierClassElementDeclaration(symbol.valueDeclaration)) { - return validNameResult; - } - switch (kind) { - case 3 /* MemberLike */: - return originIsComputedPropertyName(origin) ? { name: origin.symbolName, needsConvertPropertyAccess: false } : void 0; - case 0 /* ObjectPropertyDeclaration */: - return { name: JSON.stringify(name), needsConvertPropertyAccess: false }; - case 2 /* PropertyAccess */: - case 1 /* Global */: - return name.charCodeAt(0) === 32 /* space */ ? void 0 : { name: name, needsConvertPropertyAccess: true }; - case 5 /* None */: - case 4 /* String */: - return validNameResult; - default: - Debug.assertNever(kind); - } -} -var _keywordCompletions = []; -var allKeywordsCompletions = memoize(function () { - var res = []; - for (var i = 83 /* FirstKeyword */; i <= 165 /* LastKeyword */; i++) { - res.push({ - name: tokenToString(i), - kind: "keyword" /* keyword */, - kindModifiers: "" /* none */, - sortText: SortText.GlobalsOrKeywords - }); - } - return res; -}); -function getKeywordCompletions(keywordFilter, filterOutTsOnlyKeywords) { - if (!filterOutTsOnlyKeywords) - return getTypescriptKeywordCompletions(keywordFilter); - var index = keywordFilter + 8 /* Last */ + 1; - return _keywordCompletions[index] || (_keywordCompletions[index] = getTypescriptKeywordCompletions(keywordFilter).filter(function (entry) { return !isTypeScriptOnlyKeyword(stringToToken(entry.name)); })); -} -function getTypescriptKeywordCompletions(keywordFilter) { - return _keywordCompletions[keywordFilter] || (_keywordCompletions[keywordFilter] = allKeywordsCompletions().filter(function (entry) { - var kind = stringToToken(entry.name); - switch (keywordFilter) { - case 0 /* None */: - return false; - case 1 /* All */: - return isFunctionLikeBodyKeyword(kind) || kind === 138 /* DeclareKeyword */ || kind === 144 /* ModuleKeyword */ || kind === 156 /* TypeKeyword */ || kind === 145 /* NamespaceKeyword */ || kind === 128 /* AbstractKeyword */ || isTypeKeyword(kind) && kind !== 157 /* UndefinedKeyword */; - case 5 /* FunctionLikeBodyKeywords */: - return isFunctionLikeBodyKeyword(kind); - case 2 /* ClassElementKeywords */: - return isClassMemberCompletionKeyword(kind); - case 3 /* InterfaceElementKeywords */: - return isInterfaceOrTypeLiteralCompletionKeyword(kind); - case 4 /* ConstructorParameterKeywords */: - return isParameterPropertyModifier(kind); - case 6 /* TypeAssertionKeywords */: - return isTypeKeyword(kind) || kind === 87 /* ConstKeyword */; - case 7 /* TypeKeywords */: - return isTypeKeyword(kind); - case 8 /* TypeKeyword */: - return kind === 156 /* TypeKeyword */; - default: - return Debug.assertNever(keywordFilter); - } - })); -} -function isTypeScriptOnlyKeyword(kind) { - switch (kind) { - case 128 /* AbstractKeyword */: - case 133 /* AnyKeyword */: - case 163 /* BigIntKeyword */: - case 136 /* BooleanKeyword */: - case 138 /* DeclareKeyword */: - case 94 /* EnumKeyword */: - case 162 /* GlobalKeyword */: - case 119 /* ImplementsKeyword */: - case 140 /* InferKeyword */: - case 120 /* InterfaceKeyword */: - case 142 /* IsKeyword */: - case 143 /* KeyOfKeyword */: - case 144 /* ModuleKeyword */: - case 145 /* NamespaceKeyword */: - case 146 /* NeverKeyword */: - case 150 /* NumberKeyword */: - case 151 /* ObjectKeyword */: - case 164 /* OverrideKeyword */: - case 123 /* PrivateKeyword */: - case 124 /* ProtectedKeyword */: - case 125 /* PublicKeyword */: - case 148 /* ReadonlyKeyword */: - case 154 /* StringKeyword */: - case 155 /* SymbolKeyword */: - case 156 /* TypeKeyword */: - case 158 /* UniqueKeyword */: - case 159 /* UnknownKeyword */: - return true; - default: - return false; - } -} -function isInterfaceOrTypeLiteralCompletionKeyword(kind) { - return kind === 148 /* ReadonlyKeyword */; -} -function isClassMemberCompletionKeyword(kind) { - switch (kind) { - case 128 /* AbstractKeyword */: - case 129 /* AccessorKeyword */: - case 137 /* ConstructorKeyword */: - case 139 /* GetKeyword */: - case 153 /* SetKeyword */: - case 134 /* AsyncKeyword */: - case 138 /* DeclareKeyword */: - case 164 /* OverrideKeyword */: - return true; - default: - return isClassMemberModifier(kind); - } -} -function isFunctionLikeBodyKeyword(kind) { - return kind === 134 /* AsyncKeyword */ || kind === 135 /* AwaitKeyword */ || kind === 130 /* AsKeyword */ || kind === 152 /* SatisfiesKeyword */ || kind === 156 /* TypeKeyword */ || !isContextualKeyword(kind) && !isClassMemberCompletionKeyword(kind); -} -function keywordForNode(node) { - var _t; - return isIdentifier(node) ? (_t = identifierToKeywordKind(node)) !== null && _t !== void 0 ? _t : 0 /* Unknown */ : node.kind; -} -function getContextualKeywords(contextToken, position) { - var entries = []; - if (contextToken) { - var file = contextToken.getSourceFile(); - var parent2 = contextToken.parent; - var tokenLine = file.getLineAndCharacterOfPosition(contextToken.end).line; - var currentLine = file.getLineAndCharacterOfPosition(position).line; - if ((isImportDeclaration(parent2) || isExportDeclaration(parent2) && parent2.moduleSpecifier) && contextToken === parent2.moduleSpecifier && tokenLine === currentLine) { - entries.push({ - name: tokenToString(132 /* AssertKeyword */), - kind: "keyword" /* keyword */, - kindModifiers: "" /* none */, - sortText: SortText.GlobalsOrKeywords - }); - } - } - return entries; -} -function getJsDocTagAtPosition(node, position) { - return findAncestor(node, function (n) { return isJSDocTag(n) && rangeContainsPosition(n, position) ? true : isJSDoc(n) ? "quit" : false; }); -} -function getPropertiesForObjectExpression(contextualType, completionsType, obj, checker) { - var hasCompletionsType = completionsType && completionsType !== contextualType; - var type = hasCompletionsType && !(completionsType.flags & 3 /* AnyOrUnknown */) ? checker.getUnionType([contextualType, completionsType]) : contextualType; - var properties = getApparentProperties(type, obj, checker); - return type.isClass() && containsNonPublicProperties(properties) ? [] : hasCompletionsType ? filter(properties, hasDeclarationOtherThanSelf) : properties; - function hasDeclarationOtherThanSelf(member) { - if (!length(member.declarations)) - return true; - return some(member.declarations, function (decl) { return decl.parent !== obj; }); - } -} -function getApparentProperties(type, node, checker) { - if (!type.isUnion()) - return type.getApparentProperties(); - return checker.getAllPossiblePropertiesOfTypes(filter(type.types, function (memberType) { return !(memberType.flags & 402784252 /* Primitive */ || checker.isArrayLikeType(memberType) || checker.isTypeInvalidDueToUnionDiscriminant(memberType, node) || checker.typeHasCallOrConstructSignatures(memberType) || memberType.isClass() && containsNonPublicProperties(memberType.getApparentProperties())); })); -} -function containsNonPublicProperties(props) { - return some(props, function (p) { return !!(getDeclarationModifierFlagsFromSymbol(p) & 24 /* NonPublicAccessibilityModifier */); }); -} -function getPropertiesForCompletion(type, checker) { - return type.isUnion() ? Debug.checkEachDefined(checker.getAllPossiblePropertiesOfTypes(type.types), "getAllPossiblePropertiesOfTypes() should all be defined") : Debug.checkEachDefined(type.getApparentProperties(), "getApparentProperties() should all be defined"); -} -function tryGetObjectTypeDeclarationCompletionContainer(sourceFile, contextToken, location, position) { - var _t; - switch (location.kind) { - case 358 /* SyntaxList */: - return tryCast(location.parent, isObjectTypeDeclaration); - case 1 /* EndOfFileToken */: - var cls = tryCast(lastOrUndefined(cast(location.parent, isSourceFile).statements), isObjectTypeDeclaration); - if (cls && !findChildOfKind(cls, 20 /* CloseBraceToken */, sourceFile)) { - return cls; - } - break; - case 81 /* PrivateIdentifier */: - if (tryCast(location.parent, isPropertyDeclaration)) { - return findAncestor(location, isClassLike); - } - break; - case 80 /* Identifier */: { - var originalKeywordKind = identifierToKeywordKind(location); - if (originalKeywordKind) { - return void 0; - } - if (isPropertyDeclaration(location.parent) && location.parent.initializer === location) { - return void 0; - } - if (isFromObjectTypeDeclaration(location)) { - return findAncestor(location, isObjectTypeDeclaration); - } - } - } - if (!contextToken) - return void 0; - if (location.kind === 137 /* ConstructorKeyword */ || isIdentifier(contextToken) && isPropertyDeclaration(contextToken.parent) && isClassLike(location)) { - return findAncestor(contextToken, isClassLike); - } - switch (contextToken.kind) { - case 64 /* EqualsToken */: - return void 0; - case 27 /* SemicolonToken */: - case 20 /* CloseBraceToken */: - return isFromObjectTypeDeclaration(location) && location.parent.name === location ? location.parent.parent : tryCast(location, isObjectTypeDeclaration); - case 19 /* OpenBraceToken */: - case 28 /* CommaToken */: - return tryCast(contextToken.parent, isObjectTypeDeclaration); - default: - if (isObjectTypeDeclaration(location)) { - if (getLineAndCharacterOfPosition(sourceFile, contextToken.getEnd()).line !== getLineAndCharacterOfPosition(sourceFile, position).line) { - return location; - } - var isValidKeyword = isClassLike(contextToken.parent.parent) ? isClassMemberCompletionKeyword : isInterfaceOrTypeLiteralCompletionKeyword; - return isValidKeyword(contextToken.kind) || contextToken.kind === 42 /* AsteriskToken */ || isIdentifier(contextToken) && isValidKeyword((_t = identifierToKeywordKind(contextToken)) !== null && _t !== void 0 ? _t : 0 /* Unknown */) ? contextToken.parent.parent : void 0; - } - return void 0; - } -} -function tryGetTypeLiteralNode(node) { - if (!node) - return void 0; - var parent2 = node.parent; - switch (node.kind) { - case 19 /* OpenBraceToken */: - if (isTypeLiteralNode(parent2)) { - return parent2; - } - break; - case 27 /* SemicolonToken */: - case 28 /* CommaToken */: - case 80 /* Identifier */: - if (parent2.kind === 171 /* PropertySignature */ && isTypeLiteralNode(parent2.parent)) { - return parent2.parent; - } - break; - } - return void 0; -} -function getConstraintOfTypeArgumentProperty(node, checker) { - if (!node) - return void 0; - if (isTypeNode(node) && isTypeReferenceType(node.parent)) { - return checker.getTypeArgumentConstraint(node); - } - var t = getConstraintOfTypeArgumentProperty(node.parent, checker); - if (!t) - return void 0; - switch (node.kind) { - case 171 /* PropertySignature */: - return checker.getTypeOfPropertyOfContextualType(t, node.symbol.escapedName); - case 193 /* IntersectionType */: - case 187 /* TypeLiteral */: - case 192 /* UnionType */: - return t; - } -} -function isFromObjectTypeDeclaration(node) { - return node.parent && isClassOrTypeElement(node.parent) && isObjectTypeDeclaration(node.parent.parent); -} -function isValidTrigger(sourceFile, triggerCharacter, contextToken, position) { - switch (triggerCharacter) { - case ".": - case "@": - return true; - case '"': - case "'": - case "`": - return !!contextToken && isStringLiteralOrTemplate(contextToken) && position === contextToken.getStart(sourceFile) + 1; - case "#": - return !!contextToken && isPrivateIdentifier(contextToken) && !!getContainingClass(contextToken); - case "<": - return !!contextToken && contextToken.kind === 30 /* LessThanToken */ && (!isBinaryExpression(contextToken.parent) || binaryExpressionMayBeOpenTag(contextToken.parent)); - case "/": - return !!contextToken && (isStringLiteralLike(contextToken) ? !!tryGetImportFromModuleSpecifier(contextToken) : contextToken.kind === 44 /* SlashToken */ && isJsxClosingElement(contextToken.parent)); - case " ": - return !!contextToken && isImportKeyword(contextToken) && contextToken.parent.kind === 312 /* SourceFile */; - default: - return Debug.assertNever(triggerCharacter); - } -} -function binaryExpressionMayBeOpenTag(_t) { - var left = _t.left; - return nodeIsMissing(left); -} -function isProbablyGlobalType(type, sourceFile, checker) { - var selfSymbol = checker.resolveName("self", - /*location*/ - void 0, 111551 /* Value */, - /*excludeGlobals*/ - false); - if (selfSymbol && checker.getTypeOfSymbolAtLocation(selfSymbol, sourceFile) === type) { - return true; - } - var globalSymbol = checker.resolveName("global", - /*location*/ - void 0, 111551 /* Value */, - /*excludeGlobals*/ - false); - if (globalSymbol && checker.getTypeOfSymbolAtLocation(globalSymbol, sourceFile) === type) { - return true; - } - var globalThisSymbol = checker.resolveName("globalThis", - /*location*/ - void 0, 111551 /* Value */, - /*excludeGlobals*/ - false); - if (globalThisSymbol && checker.getTypeOfSymbolAtLocation(globalThisSymbol, sourceFile) === type) { - return true; - } - return false; -} -function isStaticProperty(symbol) { - return !!(symbol.valueDeclaration && getEffectiveModifierFlags(symbol.valueDeclaration) & 32 /* Static */ && isClassLike(symbol.valueDeclaration.parent)); -} -function tryGetObjectLiteralContextualType(node, typeChecker) { - var type = typeChecker.getContextualType(node); - if (type) { - return type; - } - var parent2 = walkUpParenthesizedExpressions(node.parent); - if (isBinaryExpression(parent2) && parent2.operatorToken.kind === 64 /* EqualsToken */ && node === parent2.left) { - return typeChecker.getTypeAtLocation(parent2); - } - if (isExpression(parent2)) { - return typeChecker.getContextualType(parent2); - } - return void 0; -} -function getImportStatementCompletionInfo(contextToken, sourceFile) { - var _a, _b, _c; - var keywordCompletion; - var isKeywordOnlyCompletion = false; - var candidate = getCandidate(); - return { - isKeywordOnlyCompletion: isKeywordOnlyCompletion, - keywordCompletion: keywordCompletion, - isNewIdentifierLocation: !!(candidate || keywordCompletion === 156 /* TypeKeyword */), - isTopLevelTypeOnly: !!((_b = (_a = tryCast(candidate, isImportDeclaration)) == null ? void 0 : _a.importClause) == null ? void 0 : _b.isTypeOnly) || !!((_c = tryCast(candidate, isImportEqualsDeclaration)) == null ? void 0 : _c.isTypeOnly), - couldBeTypeOnlyImportSpecifier: !!candidate && couldBeTypeOnlyImportSpecifier(candidate, contextToken), - replacementSpan: getSingleLineReplacementSpanForImportCompletionNode(candidate) - }; - function getCandidate() { - var parent2 = contextToken.parent; - if (isImportEqualsDeclaration(parent2)) { - var lastToken = parent2.getLastToken(sourceFile); - if (isIdentifier(contextToken) && lastToken !== contextToken) { - keywordCompletion = 161 /* FromKeyword */; - isKeywordOnlyCompletion = true; - return void 0; - } - keywordCompletion = contextToken.kind === 156 /* TypeKeyword */ ? void 0 : 156 /* TypeKeyword */; - return isModuleSpecifierMissingOrEmpty(parent2.moduleReference) ? parent2 : void 0; - } - if (couldBeTypeOnlyImportSpecifier(parent2, contextToken) && canCompleteFromNamedBindings(parent2.parent)) { - return parent2; - } - if (isNamedImports(parent2) || isNamespaceImport(parent2)) { - if (!parent2.parent.isTypeOnly && (contextToken.kind === 19 /* OpenBraceToken */ || contextToken.kind === 102 /* ImportKeyword */ || contextToken.kind === 28 /* CommaToken */)) { - keywordCompletion = 156 /* TypeKeyword */; - } - if (canCompleteFromNamedBindings(parent2)) { - if (contextToken.kind === 20 /* CloseBraceToken */ || contextToken.kind === 80 /* Identifier */) { - isKeywordOnlyCompletion = true; - keywordCompletion = 161 /* FromKeyword */; - } - else { - return parent2.parent.parent; - } - } - return void 0; - } - if (isImportKeyword(contextToken) && isSourceFile(parent2)) { - keywordCompletion = 156 /* TypeKeyword */; - return contextToken; - } - if (isImportKeyword(contextToken) && isImportDeclaration(parent2)) { - keywordCompletion = 156 /* TypeKeyword */; - return isModuleSpecifierMissingOrEmpty(parent2.moduleSpecifier) ? parent2 : void 0; - } - return void 0; - } -} -function getSingleLineReplacementSpanForImportCompletionNode(node) { - var _t, _u; - var _a; - if (!node) - return void 0; - var top = (_t = findAncestor(node, or(isImportDeclaration, isImportEqualsDeclaration))) !== null && _t !== void 0 ? _t : node; - var sourceFile = top.getSourceFile(); - if (rangeIsOnSingleLine(top, sourceFile)) { - return createTextSpanFromNode(top, sourceFile); - } - Debug.assert(top.kind !== 102 /* ImportKeyword */ && top.kind !== 276 /* ImportSpecifier */); - var potentialSplitPoint = top.kind === 272 /* ImportDeclaration */ ? (_u = getPotentiallyInvalidImportSpecifier((_a = top.importClause) == null ? void 0 : _a.namedBindings)) !== null && _u !== void 0 ? _u : top.moduleSpecifier : top.moduleReference; - var withoutModuleSpecifier = { - pos: top.getFirstToken().getStart(), - end: potentialSplitPoint.pos - }; - if (rangeIsOnSingleLine(withoutModuleSpecifier, sourceFile)) { - return createTextSpanFromRange(withoutModuleSpecifier); - } -} -function getPotentiallyInvalidImportSpecifier(namedBindings) { - var _a; - return find((_a = tryCast(namedBindings, isNamedImports)) == null ? void 0 : _a.elements, function (e) { - var _a2; - return !e.propertyName && isStringANonContextualKeyword(e.name.text) && ((_a2 = findPrecedingToken(e.name.pos, namedBindings.getSourceFile(), namedBindings)) == null ? void 0 : _a2.kind) !== 28 /* CommaToken */; - }); -} -function couldBeTypeOnlyImportSpecifier(importSpecifier, contextToken) { - return isImportSpecifier(importSpecifier) && (importSpecifier.isTypeOnly || contextToken === importSpecifier.name && isTypeKeywordTokenOrIdentifier(contextToken)); -} -function canCompleteFromNamedBindings(namedBindings) { - if (!isModuleSpecifierMissingOrEmpty(namedBindings.parent.parent.moduleSpecifier) || namedBindings.parent.name) { - return false; - } - if (isNamedImports(namedBindings)) { - var invalidNamedImport = getPotentiallyInvalidImportSpecifier(namedBindings); - var validImports = invalidNamedImport ? namedBindings.elements.indexOf(invalidNamedImport) : namedBindings.elements.length; - return validImports < 2; - } - return true; -} -function isModuleSpecifierMissingOrEmpty(specifier) { - var _a; - if (nodeIsMissing(specifier)) - return true; - return !((_a = tryCast(isExternalModuleReference(specifier) ? specifier.expression : specifier, isStringLiteralLike)) == null ? void 0 : _a.text); -} -function getVariableOrParameterDeclaration(contextToken, location) { - if (!contextToken) - return; - var possiblyParameterDeclaration = findAncestor(contextToken, function (node) { return isFunctionBlock(node) || isArrowFunctionBody(node) || isBindingPattern(node) ? "quit" : (isParameter(node) || isTypeParameterDeclaration(node)) && !isIndexSignatureDeclaration(node.parent); }); - var possiblyVariableDeclaration = findAncestor(location, function (node) { return isFunctionBlock(node) || isArrowFunctionBody(node) || isBindingPattern(node) ? "quit" : isVariableDeclaration(node); }); - return possiblyParameterDeclaration || possiblyVariableDeclaration; -} -function isArrowFunctionBody(node) { - return node.parent && isArrowFunction(node.parent) && (node.parent.body === node || // const a = () => /**/; - node.kind === 39 /* EqualsGreaterThanToken */); -} -function symbolCanBeReferencedAtTypeLocation(symbol, checker, seenModules) { - if (seenModules === void 0) { seenModules = new Map(); } - return nonAliasCanBeReferencedAtTypeLocation(symbol) || nonAliasCanBeReferencedAtTypeLocation(skipAlias(symbol.exportSymbol || symbol, checker)); - function nonAliasCanBeReferencedAtTypeLocation(symbol2) { - return !!(symbol2.flags & 788968 /* Type */) || checker.isUnknownSymbol(symbol2) || !!(symbol2.flags & 1536 /* Module */) && addToSeen(seenModules, getSymbolId(symbol2)) && checker.getExportsOfModule(symbol2).some(function (e) { return symbolCanBeReferencedAtTypeLocation(e, checker, seenModules); }); - } -} -function isDeprecated(symbol, checker) { - var declarations = skipAlias(symbol, checker).declarations; - return !!length(declarations) && every(declarations, isDeprecatedDeclaration); -} -function charactersFuzzyMatchInString(identifierString, lowercaseCharacters) { - if (lowercaseCharacters.length === 0) { - return true; - } - var matchedFirstCharacter = false; - var prevChar; - var characterIndex = 0; - var len = identifierString.length; - for (var strIndex = 0; strIndex < len; strIndex++) { - var strChar = identifierString.charCodeAt(strIndex); - var testChar = lowercaseCharacters.charCodeAt(characterIndex); - if (strChar === testChar || strChar === toUpperCharCode(testChar)) { - matchedFirstCharacter || (matchedFirstCharacter = prevChar === void 0 || // Beginning of word - 97 /* a */ <= prevChar && prevChar <= 122 /* z */ && 65 /* A */ <= strChar && strChar <= 90 /* Z */ || // camelCase transition - prevChar === 95 /* _ */ && strChar !== 95 /* _ */); - if (matchedFirstCharacter) { - characterIndex++; - } - if (characterIndex === lowercaseCharacters.length) { - return true; - } - } - prevChar = strChar; - } - return false; -} -function toUpperCharCode(charCode) { - if (97 /* a */ <= charCode && charCode <= 122 /* z */) { - return charCode - 32; - } - return charCode; -} -// src/services/_namespaces/ts.Completions.StringCompletions.ts -var ts_Completions_StringCompletions_exports = {}; -__export(ts_Completions_StringCompletions_exports, { - getStringLiteralCompletionDetails: function () { return getStringLiteralCompletionDetails; }, - getStringLiteralCompletions: function () { return getStringLiteralCompletions; } -}); -// src/services/stringCompletions.ts -var kindPrecedence = (_z = {}, - _z["directory" /* directory */] = 0, - _z["script" /* scriptElement */] = 1, - _z["external module name" /* externalModuleName */] = 2, - _z); -function createNameAndKindSet() { - var map2 = /* @__PURE__ */ new Map(); - function add(value) { - var existing = map2.get(value.name); - if (!existing || kindPrecedence[existing.kind] < kindPrecedence[value.kind]) { - map2.set(value.name, value); - } - } - return { - add: add, - has: map2.has.bind(map2), - values: map2.values.bind(map2) - }; -} -function getStringLiteralCompletions(sourceFile, position, contextToken, options, host, program, log, preferences, includeSymbol) { - if (isInReferenceComment(sourceFile, position)) { - var entries = getTripleSlashReferenceCompletion(sourceFile, position, options, host); - return entries && convertPathCompletions(entries); - } - if (isInString(sourceFile, position, contextToken)) { - if (!contextToken || !isStringLiteralLike(contextToken)) - return void 0; - var entries = getStringLiteralCompletionEntries(sourceFile, contextToken, position, program.getTypeChecker(), options, host, preferences); - return convertStringLiteralCompletions(entries, contextToken, sourceFile, host, program, log, options, preferences, position, includeSymbol); - } -} -function convertStringLiteralCompletions(completion, contextToken, sourceFile, host, program, log, options, preferences, position, includeSymbol) { - if (completion === void 0) { - return void 0; - } - var optionalReplacementSpan = createTextSpanFromStringLiteralLikeContent(contextToken); - switch (completion.kind) { - case 0 /* Paths */: - return convertPathCompletions(completion.paths); - case 1 /* Properties */: { - var entries = createSortedArray(); - getCompletionEntriesFromSymbols(completion.symbols, entries, contextToken, contextToken, sourceFile, position, sourceFile, host, program, 99 /* ESNext */, log, 4 /* String */, preferences, options, - /*formatContext*/ - void 0, - /*isTypeOnlyLocation*/ - void 0, - /*propertyAccessToConvert*/ - void 0, - /*jsxIdentifierExpected*/ - void 0, - /*isJsxInitializer*/ - void 0, - /*importStatementCompletion*/ - void 0, - /*recommendedCompletion*/ - void 0, - /*symbolToOriginInfoMap*/ - void 0, - /*symbolToSortTextMap*/ - void 0, - /*isJsxIdentifierExpected*/ - void 0, - /*isRightOfOpenTag*/ - void 0, includeSymbol); - return { isGlobalCompletion: false, isMemberCompletion: true, isNewIdentifierLocation: completion.hasIndexSignature, optionalReplacementSpan: optionalReplacementSpan, entries: entries }; - } - case 2 /* Types */: { - var entries = completion.types.map(function (type) { return ({ - name: type.value, - kindModifiers: "" /* none */, - kind: "string" /* string */, - sortText: SortText.LocationPriority, - replacementSpan: getReplacementSpanForContextToken(contextToken) - }); }); - return { isGlobalCompletion: false, isMemberCompletion: false, isNewIdentifierLocation: completion.isNewIdentifier, optionalReplacementSpan: optionalReplacementSpan, entries: entries }; - } - default: - return Debug.assertNever(completion); - } -} -function getStringLiteralCompletionDetails(name, sourceFile, position, contextToken, checker, options, host, cancellationToken, preferences) { - if (!contextToken || !isStringLiteralLike(contextToken)) - return void 0; - var completions = getStringLiteralCompletionEntries(sourceFile, contextToken, position, checker, options, host, preferences); - return completions && stringLiteralCompletionDetails(name, contextToken, completions, sourceFile, checker, cancellationToken); -} -function stringLiteralCompletionDetails(name, location, completion, sourceFile, checker, cancellationToken) { - switch (completion.kind) { - case 0 /* Paths */: { - var match = find(completion.paths, function (p) { return p.name === name; }); - return match && createCompletionDetails(name, kindModifiersFromExtension(match.extension), match.kind, [textPart(name)]); - } - case 1 /* Properties */: { - var match = find(completion.symbols, function (s) { return s.name === name; }); - return match && createCompletionDetailsForSymbol(match, match.name, checker, sourceFile, location, cancellationToken); - } - case 2 /* Types */: - return find(completion.types, function (t) { return t.value === name; }) ? createCompletionDetails(name, "" /* none */, "string" /* string */, [textPart(name)]) : void 0; - default: - return Debug.assertNever(completion); - } -} -function convertPathCompletions(pathCompletions) { - var isGlobalCompletion = false; - var isNewIdentifierLocation = true; - var entries = pathCompletions.map(function (_t) { - var name = _t.name, kind = _t.kind, span = _t.span, extension = _t.extension; - return ({ name: name, kind: kind, kindModifiers: kindModifiersFromExtension(extension), sortText: SortText.LocationPriority, replacementSpan: span }); - }); - return { isGlobalCompletion: isGlobalCompletion, isMemberCompletion: false, isNewIdentifierLocation: isNewIdentifierLocation, entries: entries }; -} -function kindModifiersFromExtension(extension) { - switch (extension) { - case ".d.ts" /* Dts */: - return ".d.ts" /* dtsModifier */; - case ".js" /* Js */: - return ".js" /* jsModifier */; - case ".json" /* Json */: - return ".json" /* jsonModifier */; - case ".jsx" /* Jsx */: - return ".jsx" /* jsxModifier */; - case ".ts" /* Ts */: - return ".ts" /* tsModifier */; - case ".tsx" /* Tsx */: - return ".tsx" /* tsxModifier */; - case ".d.mts" /* Dmts */: - return ".d.mts" /* dmtsModifier */; - case ".mjs" /* Mjs */: - return ".mjs" /* mjsModifier */; - case ".mts" /* Mts */: - return ".mts" /* mtsModifier */; - case ".d.cts" /* Dcts */: - return ".d.cts" /* dctsModifier */; - case ".cjs" /* Cjs */: - return ".cjs" /* cjsModifier */; - case ".cts" /* Cts */: - return ".cts" /* ctsModifier */; - case ".tsbuildinfo" /* TsBuildInfo */: - return Debug.fail("Extension ".concat(".tsbuildinfo" /* TsBuildInfo */, " is unsupported.")); - case void 0: - return "" /* none */; - default: - return Debug.assertNever(extension); - } -} -function getStringLiteralCompletionEntries(sourceFile, node, position, typeChecker, compilerOptions, host, preferences) { - var parent2 = walkUpParentheses(node.parent); - switch (parent2.kind) { - case 201 /* LiteralType */: { - var grandParent = walkUpParentheses(parent2.parent); - if (grandParent.kind === 205 /* ImportType */) { - return { kind: 0 /* Paths */, paths: getStringLiteralCompletionsFromModuleNames(sourceFile, node, compilerOptions, host, typeChecker, preferences) }; - } - return fromUnionableLiteralType(grandParent); - } - case 303 /* PropertyAssignment */: - if (isObjectLiteralExpression(parent2.parent) && parent2.name === node) { - return stringLiteralCompletionsForObjectLiteral(typeChecker, parent2.parent); - } - return fromContextualType() || fromContextualType(0 /* None */); - case 212 /* ElementAccessExpression */: { - var expression = parent2.expression, argumentExpression = parent2.argumentExpression; - if (node === skipParentheses(argumentExpression)) { - return stringLiteralCompletionsFromProperties(typeChecker.getTypeAtLocation(expression)); - } - return void 0; - } - case 213 /* CallExpression */: - case 214 /* NewExpression */: - case 291 /* JsxAttribute */: - if (!isRequireCallArgument(node) && !isImportCall(parent2)) { - var argumentInfo = ts_SignatureHelp_exports.getArgumentInfoForCompletions(parent2.kind === 291 /* JsxAttribute */ ? parent2.parent : node, position, sourceFile); - return argumentInfo && (getStringLiteralCompletionsFromSignature(argumentInfo.invocation, node, argumentInfo, typeChecker) || getStringLiteralCompletionsFromSignature(argumentInfo.invocation, node, argumentInfo, typeChecker, 0 /* Normal */)) || fromContextualType(0 /* None */); - } - case 272 /* ImportDeclaration */: - case 278 /* ExportDeclaration */: - case 283 /* ExternalModuleReference */: - return { kind: 0 /* Paths */, paths: getStringLiteralCompletionsFromModuleNames(sourceFile, node, compilerOptions, host, typeChecker, preferences) }; - case 296 /* CaseClause */: - var tracker_2 = newCaseClauseTracker(typeChecker, parent2.parent.clauses); - var contextualTypes = fromContextualType(); - if (!contextualTypes) { - return; - } - var literals = contextualTypes.types.filter(function (literal) { return !tracker_2.hasValue(literal.value); }); - return { kind: 2 /* Types */, types: literals, isNewIdentifier: false }; - default: - return fromContextualType() || fromContextualType(0 /* None */); - } - function fromUnionableLiteralType(grandParent) { - switch (grandParent.kind) { - case 233 /* ExpressionWithTypeArguments */: - case 183 /* TypeReference */: { - var typeArgument = findAncestor(parent2, function (n) { return n.parent === grandParent; }); - if (typeArgument) { - return { kind: 2 /* Types */, types: getStringLiteralTypes(typeChecker.getTypeArgumentConstraint(typeArgument)), isNewIdentifier: false }; - } - return void 0; - } - case 199 /* IndexedAccessType */: - var indexType = grandParent.indexType, objectType = grandParent.objectType; - if (!rangeContainsPosition(indexType, position)) { - return void 0; - } - return stringLiteralCompletionsFromProperties(typeChecker.getTypeFromTypeNode(objectType)); - case 192 /* UnionType */: { - var result = fromUnionableLiteralType(walkUpParentheses(grandParent.parent)); - if (!result) { - return void 0; - } - var alreadyUsedTypes_1 = getAlreadyUsedTypesInStringLiteralUnion(grandParent, parent2); - if (result.kind === 1 /* Properties */) { - return { kind: 1 /* Properties */, symbols: result.symbols.filter(function (sym) { return !contains(alreadyUsedTypes_1, sym.name); }), hasIndexSignature: result.hasIndexSignature }; - } - return { kind: 2 /* Types */, types: result.types.filter(function (t) { return !contains(alreadyUsedTypes_1, t.value); }), isNewIdentifier: false }; - } - default: - return void 0; - } - } - function fromContextualType(contextFlags /* Completions */) { - if (contextFlags === void 0) { contextFlags = 4; } - var types = getStringLiteralTypes(getContextualTypeFromParent(node, typeChecker, contextFlags)); - if (!types.length) { - return; - } - return { kind: 2 /* Types */, types: types, isNewIdentifier: false }; - } -} -function walkUpParentheses(node) { - switch (node.kind) { - case 196 /* ParenthesizedType */: - return walkUpParenthesizedTypes(node); - case 217 /* ParenthesizedExpression */: - return walkUpParenthesizedExpressions(node); - default: - return node; - } -} -function getAlreadyUsedTypesInStringLiteralUnion(union, current) { - return mapDefined(union.types, function (type) { return type !== current && isLiteralTypeNode(type) && isStringLiteral(type.literal) ? type.literal.text : void 0; }); -} -function getStringLiteralCompletionsFromSignature(call, arg, argumentInfo, checker, checkMode /* IsForStringLiteralArgumentCompletions */) { - if (checkMode === void 0) { checkMode = 32; } - var isNewIdentifier = false; - var uniques = /* @__PURE__ */ new Map(); - var candidates = []; - var editingArgument = isJsxOpeningLikeElement(call) ? Debug.checkDefined(findAncestor(arg.parent, isJsxAttribute)) : arg; - checker.getResolvedSignatureForStringLiteralCompletions(call, editingArgument, candidates, checkMode); - var types = flatMap(candidates, function (candidate) { - if (!signatureHasRestParameter(candidate) && argumentInfo.argumentCount > candidate.parameters.length) - return; - var type = candidate.getTypeParameterAtPosition(argumentInfo.argumentIndex); - if (isJsxOpeningLikeElement(call)) { - var propType = checker.getTypeOfPropertyOfType(type, getTextOfJsxAttributeName(editingArgument.name)); - if (propType) { - type = propType; - } - } - isNewIdentifier = isNewIdentifier || !!(type.flags & 4 /* String */); - return getStringLiteralTypes(type, uniques); - }); - return length(types) ? { kind: 2 /* Types */, types: types, isNewIdentifier: isNewIdentifier } : void 0; -} -function stringLiteralCompletionsFromProperties(type) { - return type && { - kind: 1 /* Properties */, - symbols: filter(type.getApparentProperties(), function (prop) { return !(prop.valueDeclaration && isPrivateIdentifierClassElementDeclaration(prop.valueDeclaration)); }), - hasIndexSignature: hasIndexSignature(type) - }; -} -function stringLiteralCompletionsForObjectLiteral(checker, objectLiteralExpression) { - var contextualType = checker.getContextualType(objectLiteralExpression); - if (!contextualType) - return void 0; - var completionsType = checker.getContextualType(objectLiteralExpression, 4 /* Completions */); - var symbols = getPropertiesForObjectExpression(contextualType, completionsType, objectLiteralExpression, checker); - return { - kind: 1 /* Properties */, - symbols: symbols, - hasIndexSignature: hasIndexSignature(contextualType) - }; -} -function getStringLiteralTypes(type, uniques) { - if (uniques === void 0) { uniques = new Map(); } - if (!type) - return emptyArray; - type = skipConstraint(type); - return type.isUnion() ? flatMap(type.types, function (t) { return getStringLiteralTypes(t, uniques); }) : type.isStringLiteral() && !(type.flags & 1024 /* EnumLiteral */) && addToSeen(uniques, type.value) ? [type] : emptyArray; -} -function nameAndKind(name, kind, extension) { - return { name: name, kind: kind, extension: extension }; -} -function directoryResult(name) { - return nameAndKind(name, "directory" /* directory */, - /*extension*/ - void 0); -} -function addReplacementSpans(text, textStart, names) { - var span = getDirectoryFragmentTextSpan(text, textStart); - var wholeSpan = text.length === 0 ? void 0 : createTextSpan(textStart, text.length); - return names.map(function (_t) { - var name = _t.name, kind = _t.kind, extension = _t.extension; - return Math.max(name.indexOf(directorySeparator), name.indexOf(altDirectorySeparator)) !== -1 ? { name: name, kind: kind, extension: extension, span: wholeSpan } : { name: name, kind: kind, extension: extension, span: span }; - }); -} -function getStringLiteralCompletionsFromModuleNames(sourceFile, node, compilerOptions, host, typeChecker, preferences) { - return addReplacementSpans(node.text, node.getStart(sourceFile) + 1, getStringLiteralCompletionsFromModuleNamesWorker(sourceFile, node, compilerOptions, host, typeChecker, preferences)); -} -function getStringLiteralCompletionsFromModuleNamesWorker(sourceFile, node, compilerOptions, host, typeChecker, preferences) { - var literalValue = normalizeSlashes(node.text); - var mode = isStringLiteralLike(node) ? getModeForUsageLocation(sourceFile, node) : void 0; - var scriptPath = sourceFile.path; - var scriptDirectory = getDirectoryPath(scriptPath); - var extensionOptions = getExtensionOptions(compilerOptions, 1 /* ModuleSpecifier */, sourceFile, typeChecker, preferences, mode); - return isPathRelativeToScript(literalValue) || !compilerOptions.baseUrl && !compilerOptions.paths && (isRootedDiskPath(literalValue) || isUrl(literalValue)) ? getCompletionEntriesForRelativeModules(literalValue, scriptDirectory, compilerOptions, host, scriptPath, extensionOptions) : getCompletionEntriesForNonRelativeModules(literalValue, scriptDirectory, mode, compilerOptions, host, extensionOptions, typeChecker); -} -function getExtensionOptions(compilerOptions, referenceKind, importingSourceFile, typeChecker, preferences, resolutionMode) { - return { - extensionsToSearch: flatten(getSupportedExtensionsForModuleResolution(compilerOptions, typeChecker)), - referenceKind: referenceKind, - importingSourceFile: importingSourceFile, - endingPreference: preferences == null ? void 0 : preferences.importModuleSpecifierEnding, - resolutionMode: resolutionMode - }; -} -function getCompletionEntriesForRelativeModules(literalValue, scriptDirectory, compilerOptions, host, scriptPath, extensionOptions) { - if (compilerOptions.rootDirs) { - return getCompletionEntriesForDirectoryFragmentWithRootDirs(compilerOptions.rootDirs, literalValue, scriptDirectory, extensionOptions, compilerOptions, host, scriptPath); - } - else { - return arrayFrom(getCompletionEntriesForDirectoryFragment(literalValue, scriptDirectory, extensionOptions, host, - /*moduleSpecifierIsRelative*/ - true, scriptPath).values()); - } -} -function getSupportedExtensionsForModuleResolution(compilerOptions, typeChecker) { - var ambientModulesExtensions = !typeChecker ? [] : mapDefined(typeChecker.getAmbientModules(), function (module2) { - var name = module2.name.slice(1, -1); - if (!name.startsWith("*.") || name.includes("/")) - return; - return name.slice(1); - }); - var extensions = __spreadArray(__spreadArray([], __read(getSupportedExtensions(compilerOptions)), false), [ambientModulesExtensions], false); - var moduleResolution = getEmitModuleResolutionKind(compilerOptions); - return moduleResolutionUsesNodeModules(moduleResolution) ? getSupportedExtensionsWithJsonIfResolveJsonModule(compilerOptions, extensions) : extensions; -} -function getBaseDirectoriesFromRootDirs(rootDirs, basePath, scriptDirectory, ignoreCase) { - rootDirs = rootDirs.map(function (rootDirectory) { return normalizePath(isRootedDiskPath(rootDirectory) ? rootDirectory : combinePaths(basePath, rootDirectory)); }); - var relativeDirectory = firstDefined(rootDirs, function (rootDirectory) { return containsPath(rootDirectory, scriptDirectory, basePath, ignoreCase) ? scriptDirectory.substr(rootDirectory.length) : void 0; }); - return deduplicate(__spreadArray(__spreadArray([], __read(rootDirs.map(function (rootDirectory) { return combinePaths(rootDirectory, relativeDirectory); })), false), [scriptDirectory], false), equateStringsCaseSensitive, compareStringsCaseSensitive); -} -function getCompletionEntriesForDirectoryFragmentWithRootDirs(rootDirs, fragment, scriptDirectory, extensionOptions, compilerOptions, host, exclude) { - var basePath = compilerOptions.project || host.getCurrentDirectory(); - var ignoreCase = !(host.useCaseSensitiveFileNames && host.useCaseSensitiveFileNames()); - var baseDirectories = getBaseDirectoriesFromRootDirs(rootDirs, basePath, scriptDirectory, ignoreCase); - return flatMap(baseDirectories, function (baseDirectory) { return arrayFrom(getCompletionEntriesForDirectoryFragment(fragment, baseDirectory, extensionOptions, host, - /*moduleSpecifierIsRelative*/ - true, exclude).values()); }); -} -function getCompletionEntriesForDirectoryFragment(fragment, scriptDirectory, extensionOptions, host, moduleSpecifierIsRelative, exclude, result) { - var e_811, _t, e_812, _u; - if (result === void 0) { result = createNameAndKindSet(); } - var _a; - if (fragment === void 0) { - fragment = ""; - } - fragment = normalizeSlashes(fragment); - if (!hasTrailingDirectorySeparator(fragment)) { - fragment = getDirectoryPath(fragment); - } - if (fragment === "") { - fragment = "." + directorySeparator; - } - fragment = ensureTrailingDirectorySeparator(fragment); - var absolutePath = resolvePath(scriptDirectory, fragment); - var baseDirectory = hasTrailingDirectorySeparator(absolutePath) ? absolutePath : getDirectoryPath(absolutePath); - if (!moduleSpecifierIsRelative) { - var packageJsonPath = findPackageJson(baseDirectory, host); - if (packageJsonPath) { - var packageJson = readJson(packageJsonPath, host); - var typesVersions = packageJson.typesVersions; - if (typeof typesVersions === "object") { - var versionPaths = (_a = getPackageJsonTypesVersionsPaths(typesVersions)) == null ? void 0 : _a.paths; - if (versionPaths) { - var packageDirectory = getDirectoryPath(packageJsonPath); - var pathInPackage = absolutePath.slice(ensureTrailingDirectorySeparator(packageDirectory).length); - if (addCompletionEntriesFromPaths(result, pathInPackage, packageDirectory, extensionOptions, host, versionPaths)) { - return result; - } - } - } - } - } - var ignoreCase = !(host.useCaseSensitiveFileNames && host.useCaseSensitiveFileNames()); - if (!tryDirectoryExists(host, baseDirectory)) - return result; - var files = tryReadDirectory(host, baseDirectory, extensionOptions.extensionsToSearch, - /*exclude*/ - void 0, - /*include*/ - ["./*"]); - if (files) { - try { - for (var files_5 = __values(files), files_5_1 = files_5.next(); !files_5_1.done; files_5_1 = files_5.next()) { - var filePath = files_5_1.value; - filePath = normalizePath(filePath); - if (exclude && comparePaths(filePath, exclude, scriptDirectory, ignoreCase) === 0 /* EqualTo */) { - continue; - } - var _v = getFilenameWithExtensionOption(getBaseFileName(filePath), host.getCompilationSettings(), extensionOptions), name_124 = _v.name, extension = _v.extension; - result.add(nameAndKind(name_124, "script" /* scriptElement */, extension)); - } - } - catch (e_811_1) { e_811 = { error: e_811_1 }; } - finally { - try { - if (files_5_1 && !files_5_1.done && (_t = files_5.return)) _t.call(files_5); - } - finally { if (e_811) throw e_811.error; } - } - } - var directories = tryGetDirectories(host, baseDirectory); - if (directories) { - try { - for (var directories_1 = __values(directories), directories_1_1 = directories_1.next(); !directories_1_1.done; directories_1_1 = directories_1.next()) { - var directory = directories_1_1.value; - var directoryName = getBaseFileName(normalizePath(directory)); - if (directoryName !== "@types") { - result.add(directoryResult(directoryName)); - } - } - } - catch (e_812_1) { e_812 = { error: e_812_1 }; } - finally { - try { - if (directories_1_1 && !directories_1_1.done && (_u = directories_1.return)) _u.call(directories_1); - } - finally { if (e_812) throw e_812.error; } - } - } - return result; -} -function getFilenameWithExtensionOption(name, compilerOptions, extensionOptions) { - var nonJsResult = ts_moduleSpecifiers_exports.tryGetRealFileNameForNonJsDeclarationFileName(name); - if (nonJsResult) { - return { name: nonJsResult, extension: tryGetExtensionFromPath2(nonJsResult) }; - } - if (extensionOptions.referenceKind === 0 /* Filename */) { - return { name: name, extension: tryGetExtensionFromPath2(name) }; - } - var endingPreference = getModuleSpecifierEndingPreference(extensionOptions.endingPreference, extensionOptions.resolutionMode, compilerOptions, extensionOptions.importingSourceFile); - if (endingPreference === 3 /* TsExtension */) { - if (fileExtensionIsOneOf(name, supportedTSImplementationExtensions)) { - return { name: name, extension: tryGetExtensionFromPath2(name) }; - } - var outputExtension2 = ts_moduleSpecifiers_exports.tryGetJSExtensionForFile(name, compilerOptions); - return outputExtension2 ? { name: changeExtension(name, outputExtension2), extension: outputExtension2 } : { name: name, extension: tryGetExtensionFromPath2(name) }; - } - if ((endingPreference === 0 /* Minimal */ || endingPreference === 1 /* Index */) && fileExtensionIsOneOf(name, [".js" /* Js */, ".jsx" /* Jsx */, ".ts" /* Ts */, ".tsx" /* Tsx */, ".d.ts" /* Dts */])) { - return { name: removeFileExtension(name), extension: tryGetExtensionFromPath2(name) }; - } - var outputExtension = ts_moduleSpecifiers_exports.tryGetJSExtensionForFile(name, compilerOptions); - return outputExtension ? { name: changeExtension(name, outputExtension), extension: outputExtension } : { name: name, extension: tryGetExtensionFromPath2(name) }; -} -function addCompletionEntriesFromPaths(result, fragment, baseDirectory, extensionOptions, host, paths) { - var getPatternsForKey = function (key) { return paths[key]; }; - var comparePaths2 = function (a, b) { - var patternA = tryParsePattern(a); - var patternB = tryParsePattern(b); - var lengthA = typeof patternA === "object" ? patternA.prefix.length : a.length; - var lengthB = typeof patternB === "object" ? patternB.prefix.length : b.length; - return compareValues(lengthB, lengthA); - }; - return addCompletionEntriesFromPathsOrExports(result, fragment, baseDirectory, extensionOptions, host, getOwnKeys(paths), getPatternsForKey, comparePaths2); -} -function addCompletionEntriesFromPathsOrExports(result, fragment, baseDirectory, extensionOptions, host, keys, getPatternsForKey, comparePaths2) { - var e_813, _t; - var pathResults = []; - var matchedPath; - try { - for (var keys_2 = __values(keys), keys_2_1 = keys_2.next(); !keys_2_1.done; keys_2_1 = keys_2.next()) { - var key = keys_2_1.value; - if (key === ".") - continue; - var keyWithoutLeadingDotSlash = key.replace(/^\.\//, ""); - var patterns = getPatternsForKey(key); - if (patterns) { - var pathPattern = tryParsePattern(keyWithoutLeadingDotSlash); - if (!pathPattern) - continue; - var isMatch = typeof pathPattern === "object" && isPatternMatch(pathPattern, fragment); - var isLongestMatch = isMatch && (matchedPath === void 0 || comparePaths2(key, matchedPath) === -1 /* LessThan */); - if (isLongestMatch) { - matchedPath = key; - pathResults = pathResults.filter(function (r) { return !r.matchedPattern; }); - } - if (typeof pathPattern === "string" || matchedPath === void 0 || comparePaths2(key, matchedPath) !== 1 /* GreaterThan */) { - pathResults.push({ - matchedPattern: isMatch, - results: getCompletionsForPathMapping(keyWithoutLeadingDotSlash, patterns, fragment, baseDirectory, extensionOptions, host).map(function (_t) { - var name = _t.name, kind = _t.kind, extension = _t.extension; - return nameAndKind(name, kind, extension); - }) - }); - } - } - } - } - catch (e_813_1) { e_813 = { error: e_813_1 }; } - finally { - try { - if (keys_2_1 && !keys_2_1.done && (_t = keys_2.return)) _t.call(keys_2); - } - finally { if (e_813) throw e_813.error; } - } - pathResults.forEach(function (pathResult) { return pathResult.results.forEach(function (r) { return result.add(r); }); }); - return matchedPath !== void 0; -} -function getCompletionEntriesForNonRelativeModules(fragment, scriptPath, mode, compilerOptions, host, extensionOptions, typeChecker) { - var e_814, _t, e_815, _u; - var baseUrl = compilerOptions.baseUrl, paths = compilerOptions.paths; - var result = createNameAndKindSet(); - var moduleResolution = getEmitModuleResolutionKind(compilerOptions); - if (baseUrl) { - var absolute = normalizePath(combinePaths(host.getCurrentDirectory(), baseUrl)); - getCompletionEntriesForDirectoryFragment(fragment, absolute, extensionOptions, host, - /*moduleSpecifierIsRelative*/ - false, - /*exclude*/ - void 0, result); - } - if (paths) { - var absolute = getPathsBasePath(compilerOptions, host); - addCompletionEntriesFromPaths(result, fragment, absolute, extensionOptions, host, paths); - } - var fragmentDirectory = getFragmentDirectory(fragment); - try { - for (var _v = __values(getAmbientModuleCompletions(fragment, fragmentDirectory, typeChecker)), _w = _v.next(); !_w.done; _w = _v.next()) { - var ambientName = _w.value; - result.add(nameAndKind(ambientName, "external module name" /* externalModuleName */, - /*extension*/ - void 0)); - } - } - catch (e_814_1) { e_814 = { error: e_814_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_814) throw e_814.error; } - } - getCompletionEntriesFromTypings(host, compilerOptions, scriptPath, fragmentDirectory, extensionOptions, result); - if (moduleResolutionUsesNodeModules(moduleResolution)) { - var foundGlobal = false; - if (fragmentDirectory === void 0) { - try { - for (var _x = __values(enumerateNodeModulesVisibleToScript(host, scriptPath)), _y = _x.next(); !_y.done; _y = _x.next()) { - var moduleName = _y.value; - var moduleResult = nameAndKind(moduleName, "external module name" /* externalModuleName */, - /*extension*/ - void 0); - if (!result.has(moduleResult.name)) { - foundGlobal = true; - result.add(moduleResult); - } - } - } - catch (e_815_1) { e_815 = { error: e_815_1 }; } - finally { - try { - if (_y && !_y.done && (_u = _x.return)) _u.call(_x); - } - finally { if (e_815) throw e_815.error; } - } - } - if (!foundGlobal) { - var ancestorLookup = function (ancestor) { - var nodeModules = combinePaths(ancestor, "node_modules"); - if (tryDirectoryExists(host, nodeModules)) { - getCompletionEntriesForDirectoryFragment(fragment, nodeModules, extensionOptions, host, - /*moduleSpecifierIsRelative*/ - false, - /*exclude*/ - void 0, result); - } - }; - if (fragmentDirectory && getResolvePackageJsonExports(compilerOptions)) { - var nodeModulesDirectoryLookup_1 = ancestorLookup; - ancestorLookup = function (ancestor) { - var components = getPathComponents(fragment); - components.shift(); - var packagePath = components.shift(); - if (!packagePath) { - return nodeModulesDirectoryLookup_1(ancestor); - } - if (startsWith(packagePath, "@")) { - var subName = components.shift(); - if (!subName) { - return nodeModulesDirectoryLookup_1(ancestor); - } - packagePath = combinePaths(packagePath, subName); - } - var packageDirectory = combinePaths(ancestor, "node_modules", packagePath); - var packageFile = combinePaths(packageDirectory, "package.json"); - if (tryFileExists(host, packageFile)) { - var packageJson = readJson(packageFile, host); - var exports_6 = packageJson.exports; - if (exports_6) { - if (typeof exports_6 !== "object" || exports_6 === null) { - return; - } - var keys = getOwnKeys(exports_6); - var fragmentSubpath = components.join("/") + (components.length && hasTrailingDirectorySeparator(fragment) ? "/" : ""); - var conditions_1 = getConditions(compilerOptions, mode === 99 /* ESNext */); - addCompletionEntriesFromPathsOrExports(result, fragmentSubpath, packageDirectory, extensionOptions, host, keys, function (key) { return singleElementArray(getPatternFromFirstMatchingCondition(exports_6[key], conditions_1)); }, comparePatternKeys); - return; - } - } - return nodeModulesDirectoryLookup_1(ancestor); - }; - } - forEachAncestorDirectory(scriptPath, ancestorLookup); - } - } - return arrayFrom(result.values()); -} -function getPatternFromFirstMatchingCondition(target, conditions) { - if (typeof target === "string") { - return target; - } - if (target && typeof target === "object" && !isArray(target)) { - for (var condition in target) { - if (condition === "default" || conditions.indexOf(condition) > -1 || isApplicableVersionedTypesKey(conditions, condition)) { - var pattern = target[condition]; - return getPatternFromFirstMatchingCondition(pattern, conditions); - } - } - } -} -function getFragmentDirectory(fragment) { - return containsSlash(fragment) ? hasTrailingDirectorySeparator(fragment) ? fragment : getDirectoryPath(fragment) : void 0; -} -function getCompletionsForPathMapping(path, patterns, fragment, packageDirectory, extensionOptions, host) { - if (!endsWith(path, "*")) { - return !stringContains(path, "*") ? justPathMappingName(path, "script" /* scriptElement */) : emptyArray; - } - var pathPrefix = path.slice(0, path.length - 1); - var remainingFragment = tryRemovePrefix(fragment, pathPrefix); - if (remainingFragment === void 0) { - var starIsFullPathComponent = path[path.length - 2] === "/"; - return starIsFullPathComponent ? justPathMappingName(pathPrefix, "directory" /* directory */) : flatMap(patterns, function (pattern) { - var _a; - return (_a = getModulesForPathsPattern("", packageDirectory, pattern, extensionOptions, host)) == null ? void 0 : _a.map(function (_t) { - var name = _t.name, rest = __rest(_t, ["name"]); - return (__assign({ name: pathPrefix + name }, rest)); - }); - }); - } - return flatMap(patterns, function (pattern) { return getModulesForPathsPattern(remainingFragment, packageDirectory, pattern, extensionOptions, host); }); - function justPathMappingName(name, kind) { - return startsWith(name, fragment) ? [{ name: removeTrailingDirectorySeparator(name), kind: kind, extension: void 0 }] : emptyArray; - } -} -function getModulesForPathsPattern(fragment, packageDirectory, pattern, extensionOptions, host) { - if (!host.readDirectory) { - return void 0; - } - var parsed = tryParsePattern(pattern); - if (parsed === void 0 || isString(parsed)) { - return void 0; - } - var normalizedPrefix = resolvePath(parsed.prefix); - var normalizedPrefixDirectory = hasTrailingDirectorySeparator(parsed.prefix) ? normalizedPrefix : getDirectoryPath(normalizedPrefix); - var normalizedPrefixBase = hasTrailingDirectorySeparator(parsed.prefix) ? "" : getBaseFileName(normalizedPrefix); - var fragmentHasPath = containsSlash(fragment); - var fragmentDirectory = fragmentHasPath ? hasTrailingDirectorySeparator(fragment) ? fragment : getDirectoryPath(fragment) : void 0; - var expandedPrefixDirectory = fragmentHasPath ? combinePaths(normalizedPrefixDirectory, normalizedPrefixBase + fragmentDirectory) : normalizedPrefixDirectory; - var normalizedSuffix = normalizePath(parsed.suffix); - var declarationExtension = normalizedSuffix && getDeclarationEmitExtensionForPath("_" + normalizedSuffix); - var matchingSuffixes = declarationExtension ? [changeExtension(normalizedSuffix, declarationExtension), normalizedSuffix] : [normalizedSuffix]; - var baseDirectory = normalizePath(combinePaths(packageDirectory, expandedPrefixDirectory)); - var completePrefix = fragmentHasPath ? baseDirectory : ensureTrailingDirectorySeparator(baseDirectory) + normalizedPrefixBase; - var includeGlobs = normalizedSuffix ? matchingSuffixes.map(function (suffix) { return "**/*" + suffix; }) : ["./*"]; - var matches = mapDefined(tryReadDirectory(host, baseDirectory, extensionOptions.extensionsToSearch, - /*exclude*/ - void 0, includeGlobs), function (match) { - var trimmedWithPattern = trimPrefixAndSuffix(match); - if (trimmedWithPattern) { - if (containsSlash(trimmedWithPattern)) { - return directoryResult(getPathComponents(removeLeadingDirectorySeparator(trimmedWithPattern))[1]); - } - var _t = getFilenameWithExtensionOption(trimmedWithPattern, host.getCompilationSettings(), extensionOptions), name_125 = _t.name, extension = _t.extension; - return nameAndKind(name_125, "script" /* scriptElement */, extension); - } - }); - var directories = normalizedSuffix ? emptyArray : mapDefined(tryGetDirectories(host, baseDirectory), function (dir) { return dir === "node_modules" ? void 0 : directoryResult(dir); }); - return __spreadArray(__spreadArray([], __read(matches), false), __read(directories), false); - function trimPrefixAndSuffix(path) { - return firstDefined(matchingSuffixes, function (suffix) { - var inner = withoutStartAndEnd(normalizePath(path), completePrefix, suffix); - return inner === void 0 ? void 0 : removeLeadingDirectorySeparator(inner); - }); - } -} -function withoutStartAndEnd(s, start2, end) { - return startsWith(s, start2) && endsWith(s, end) ? s.slice(start2.length, s.length - end.length) : void 0; -} -function removeLeadingDirectorySeparator(path) { - return path[0] === directorySeparator ? path.slice(1) : path; -} -function getAmbientModuleCompletions(fragment, fragmentDirectory, checker) { - var ambientModules = checker.getAmbientModules().map(function (sym) { return stripQuotes(sym.name); }); - var nonRelativeModuleNames = ambientModules.filter(function (moduleName) { return startsWith(moduleName, fragment) && moduleName.indexOf("*") < 0; }); - if (fragmentDirectory !== void 0) { - var moduleNameWithSeparator_1 = ensureTrailingDirectorySeparator(fragmentDirectory); - return nonRelativeModuleNames.map(function (nonRelativeModuleName) { return removePrefix(nonRelativeModuleName, moduleNameWithSeparator_1); }); - } - return nonRelativeModuleNames; -} -function getTripleSlashReferenceCompletion(sourceFile, position, compilerOptions, host) { - var token = getTokenAtPosition(sourceFile, position); - var commentRanges = getLeadingCommentRanges(sourceFile.text, token.pos); - var range = commentRanges && find(commentRanges, function (commentRange) { return position >= commentRange.pos && position <= commentRange.end; }); - if (!range) { - return void 0; - } - var text = sourceFile.text.slice(range.pos, position); - var match = tripleSlashDirectiveFragmentRegex.exec(text); - if (!match) { - return void 0; - } - var _t = __read(match, 4), prefix = _t[1], kind = _t[2], toComplete = _t[3]; - var scriptPath = getDirectoryPath(sourceFile.path); - var names = kind === "path" ? getCompletionEntriesForDirectoryFragment(toComplete, scriptPath, getExtensionOptions(compilerOptions, 0 /* Filename */, sourceFile), host, - /*moduleSpecifierIsRelative*/ - true, sourceFile.path) : kind === "types" ? getCompletionEntriesFromTypings(host, compilerOptions, scriptPath, getFragmentDirectory(toComplete), getExtensionOptions(compilerOptions, 1 /* ModuleSpecifier */, sourceFile)) : Debug.fail(); - return addReplacementSpans(toComplete, range.pos + prefix.length, arrayFrom(names.values())); -} -function getCompletionEntriesFromTypings(host, options, scriptPath, fragmentDirectory, extensionOptions, result) { - var e_816, _t, e_817, _u; - if (result === void 0) { result = createNameAndKindSet(); } - var seen = /* @__PURE__ */ new Map(); - var typeRoots = tryAndIgnoreErrors(function () { return getEffectiveTypeRoots(options, host); }) || emptyArray; - try { - for (var typeRoots_2 = __values(typeRoots), typeRoots_2_1 = typeRoots_2.next(); !typeRoots_2_1.done; typeRoots_2_1 = typeRoots_2.next()) { - var root = typeRoots_2_1.value; - getCompletionEntriesFromDirectories(root); - } - } - catch (e_816_1) { e_816 = { error: e_816_1 }; } - finally { - try { - if (typeRoots_2_1 && !typeRoots_2_1.done && (_t = typeRoots_2.return)) _t.call(typeRoots_2); - } - finally { if (e_816) throw e_816.error; } - } - try { - for (var _v = __values(findPackageJsons(scriptPath, host)), _w = _v.next(); !_w.done; _w = _v.next()) { - var packageJson = _w.value; - var typesDir = combinePaths(getDirectoryPath(packageJson), "node_modules/@types"); - getCompletionEntriesFromDirectories(typesDir); - } - } - catch (e_817_1) { e_817 = { error: e_817_1 }; } - finally { - try { - if (_w && !_w.done && (_u = _v.return)) _u.call(_v); - } - finally { if (e_817) throw e_817.error; } - } - return result; - function getCompletionEntriesFromDirectories(directory) { - var e_818, _t; - if (!tryDirectoryExists(host, directory)) - return; - try { - for (var _u = __values(tryGetDirectories(host, directory)), _v = _u.next(); !_v.done; _v = _u.next()) { - var typeDirectoryName = _v.value; - var packageName = unmangleScopedPackageName(typeDirectoryName); - if (options.types && !contains(options.types, packageName)) - continue; - if (fragmentDirectory === void 0) { - if (!seen.has(packageName)) { - result.add(nameAndKind(packageName, "external module name" /* externalModuleName */, - /*extension*/ - void 0)); - seen.set(packageName, true); - } - } - else { - var baseDirectory = combinePaths(directory, typeDirectoryName); - var remainingFragment = tryRemoveDirectoryPrefix(fragmentDirectory, packageName, hostGetCanonicalFileName(host)); - if (remainingFragment !== void 0) { - getCompletionEntriesForDirectoryFragment(remainingFragment, baseDirectory, extensionOptions, host, - /*moduleSpecifierIsRelative*/ - false, - /*exclude*/ - void 0, result); - } - } - } - } - catch (e_818_1) { e_818 = { error: e_818_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_818) throw e_818.error; } - } - } -} -function enumerateNodeModulesVisibleToScript(host, scriptPath) { - var e_819, _t, e_820, _u; - if (!host.readFile || !host.fileExists) - return emptyArray; - var result = []; - try { - for (var _v = __values(findPackageJsons(scriptPath, host)), _w = _v.next(); !_w.done; _w = _v.next()) { - var packageJson = _w.value; - var contents = readJson(packageJson, host); - try { - for (var nodeModulesDependencyKeys_1 = (e_820 = void 0, __values(nodeModulesDependencyKeys)), nodeModulesDependencyKeys_1_1 = nodeModulesDependencyKeys_1.next(); !nodeModulesDependencyKeys_1_1.done; nodeModulesDependencyKeys_1_1 = nodeModulesDependencyKeys_1.next()) { - var key = nodeModulesDependencyKeys_1_1.value; - var dependencies = contents[key]; - if (!dependencies) - continue; - for (var dep in dependencies) { - if (hasProperty(dependencies, dep) && !startsWith(dep, "@types/")) { - result.push(dep); - } - } - } - } - catch (e_820_1) { e_820 = { error: e_820_1 }; } - finally { - try { - if (nodeModulesDependencyKeys_1_1 && !nodeModulesDependencyKeys_1_1.done && (_u = nodeModulesDependencyKeys_1.return)) _u.call(nodeModulesDependencyKeys_1); - } - finally { if (e_820) throw e_820.error; } - } - } - } - catch (e_819_1) { e_819 = { error: e_819_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_819) throw e_819.error; } - } - return result; -} -function getDirectoryFragmentTextSpan(text, textStart) { - var index = Math.max(text.lastIndexOf(directorySeparator), text.lastIndexOf(altDirectorySeparator)); - var offset = index !== -1 ? index + 1 : 0; - var length2 = text.length - offset; - return length2 === 0 || isIdentifierText(text.substr(offset, length2), 99 /* ESNext */) ? void 0 : createTextSpan(textStart + offset, length2); -} -function isPathRelativeToScript(path) { - if (path && path.length >= 2 && path.charCodeAt(0) === 46 /* dot */) { - var slashIndex = path.length >= 3 && path.charCodeAt(1) === 46 /* dot */ ? 2 : 1; - var slashCharCode = path.charCodeAt(slashIndex); - return slashCharCode === 47 /* slash */ || slashCharCode === 92 /* backslash */; - } - return false; -} -var tripleSlashDirectiveFragmentRegex = /^(\/\/\/\s* 2) { - Debug.assert(endNode2 === void 0); - start2 += 1; - end -= 1; - } - return createTextSpanFromBounds(start2, end); -} -function getTextSpanOfEntry(entry) { - return entry.kind === 0 /* Span */ ? entry.textSpan : getTextSpan(entry.node, entry.node.getSourceFile()); -} -function isWriteAccessForReference(node) { - var decl = getDeclarationFromName(node); - return !!decl && declarationIsWriteAccess(decl) || node.kind === 90 /* DefaultKeyword */ || isWriteAccess(node); -} -function isDeclarationOfSymbol(node, target) { - var _a; - if (!target) - return false; - var source = getDeclarationFromName(node) || (node.kind === 90 /* DefaultKeyword */ ? node.parent : isLiteralComputedPropertyDeclarationName(node) ? node.parent.parent : node.kind === 137 /* ConstructorKeyword */ && isConstructorDeclaration(node.parent) ? node.parent.parent : void 0); - var commonjsSource = source && isBinaryExpression(source) ? source.left : void 0; - return !!(source && ((_a = target.declarations) == null ? void 0 : _a.some(function (d) { return d === source || d === commonjsSource; }))); -} -function declarationIsWriteAccess(decl) { - if (!!(decl.flags & 33554432 /* Ambient */)) - return true; - switch (decl.kind) { - case 226 /* BinaryExpression */: - case 208 /* BindingElement */: - case 263 /* ClassDeclaration */: - case 231 /* ClassExpression */: - case 90 /* DefaultKeyword */: - case 266 /* EnumDeclaration */: - case 306 /* EnumMember */: - case 281 /* ExportSpecifier */: - case 273 /* ImportClause */: - case 271 /* ImportEqualsDeclaration */: - case 276 /* ImportSpecifier */: - case 264 /* InterfaceDeclaration */: - case 345 /* JSDocCallbackTag */: - case 353 /* JSDocTypedefTag */: - case 291 /* JsxAttribute */: - case 267 /* ModuleDeclaration */: - case 270 /* NamespaceExportDeclaration */: - case 274 /* NamespaceImport */: - case 280 /* NamespaceExport */: - case 169 /* Parameter */: - case 304 /* ShorthandPropertyAssignment */: - case 265 /* TypeAliasDeclaration */: - case 168 /* TypeParameter */: - return true; - case 303 /* PropertyAssignment */: - return !isArrayLiteralOrObjectLiteralDestructuringPattern(decl.parent); - case 262 /* FunctionDeclaration */: - case 218 /* FunctionExpression */: - case 176 /* Constructor */: - case 174 /* MethodDeclaration */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - return !!decl.body; - case 260 /* VariableDeclaration */: - case 172 /* PropertyDeclaration */: - return !!decl.initializer || isCatchClause(decl.parent); - case 173 /* MethodSignature */: - case 171 /* PropertySignature */: - case 355 /* JSDocPropertyTag */: - case 348 /* JSDocParameterTag */: - return false; - default: - return Debug.failBadSyntaxKind(decl); - } -} -var Core; -(function (Core2) { - function getReferencedSymbolsForNode(position, node, program, sourceFiles, cancellationToken, options, sourceFilesSet) { - if (options === void 0) { options = {}; } - if (sourceFilesSet === void 0) { sourceFilesSet = new Set(sourceFiles.map(function (f) { return f.fileName; })); } - var _a, _b, _c; - node = getAdjustedNode2(node, options); - if (isSourceFile(node)) { - var resolvedRef = ts_GoToDefinition_exports.getReferenceAtPosition(node, position, program); - if (!(resolvedRef == null ? void 0 : resolvedRef.file)) { - return void 0; - } - var moduleSymbol = program.getTypeChecker().getMergedSymbol(resolvedRef.file.symbol); - if (moduleSymbol) { - return getReferencedSymbolsForModule(program, moduleSymbol, - /*excludeImportTypeOfExportEquals*/ - false, sourceFiles, sourceFilesSet); - } - var fileIncludeReasons = program.getFileIncludeReasons(); - if (!fileIncludeReasons) { - return void 0; - } - return [{ - definition: { type: 5 /* TripleSlashReference */, reference: resolvedRef.reference, file: node }, - references: getReferencesForNonModule(resolvedRef.file, fileIncludeReasons, program) || emptyArray - }]; - } - if (!options.implementations) { - var special = getReferencedSymbolsSpecial(node, sourceFiles, cancellationToken); - if (special) { - return special; - } - } - var checker = program.getTypeChecker(); - var symbol = checker.getSymbolAtLocation(isConstructorDeclaration(node) && node.parent.name || node); - if (!symbol) { - if (!options.implementations && isStringLiteralLike(node)) { - if (isModuleSpecifierLike(node)) { - var fileIncludeReasons = program.getFileIncludeReasons(); - var referencedFileName = (_c = (_b = (_a = node.getSourceFile().resolvedModules) == null ? void 0 : _a.get(node.text, getModeForUsageLocation(node.getSourceFile(), node))) == null ? void 0 : _b.resolvedModule) == null ? void 0 : _c.resolvedFileName; - var referencedFile = referencedFileName ? program.getSourceFile(referencedFileName) : void 0; - if (referencedFile) { - return [{ definition: { type: 4 /* String */, node: node }, references: getReferencesForNonModule(referencedFile, fileIncludeReasons, program) || emptyArray }]; - } - } - return getReferencesForStringLiteral(node, sourceFiles, checker, cancellationToken); - } - return void 0; - } - if (symbol.escapedName === "export=" /* ExportEquals */) { - return getReferencedSymbolsForModule(program, symbol.parent, - /*excludeImportTypeOfExportEquals*/ - false, sourceFiles, sourceFilesSet); - } - var moduleReferences = getReferencedSymbolsForModuleIfDeclaredBySourceFile(symbol, program, sourceFiles, cancellationToken, options, sourceFilesSet); - if (moduleReferences && !(symbol.flags & 33554432 /* Transient */)) { - return moduleReferences; - } - var aliasedSymbol = getMergedAliasedSymbolOfNamespaceExportDeclaration(node, symbol, checker); - var moduleReferencesOfExportTarget = aliasedSymbol && getReferencedSymbolsForModuleIfDeclaredBySourceFile(aliasedSymbol, program, sourceFiles, cancellationToken, options, sourceFilesSet); - var references = getReferencedSymbolsForSymbol(symbol, node, sourceFiles, sourceFilesSet, checker, cancellationToken, options); - return mergeReferences(program, moduleReferences, references, moduleReferencesOfExportTarget); - } - Core2.getReferencedSymbolsForNode = getReferencedSymbolsForNode; - function getAdjustedNode2(node, options) { - if (options.use === 1 /* References */) { - node = getAdjustedReferenceLocation(node); - } - else if (options.use === 2 /* Rename */) { - node = getAdjustedRenameLocation(node); - } - return node; - } - Core2.getAdjustedNode = getAdjustedNode2; - function getReferencesForFileName(fileName, program, sourceFiles, sourceFilesSet) { - if (sourceFilesSet === void 0) { sourceFilesSet = new Set(sourceFiles.map(function (f) { return f.fileName; })); } - var _a, _b; - var moduleSymbol = (_a = program.getSourceFile(fileName)) == null ? void 0 : _a.symbol; - if (moduleSymbol) { - return ((_b = getReferencedSymbolsForModule(program, moduleSymbol, - /*excludeImportTypeOfExportEquals*/ - false, sourceFiles, sourceFilesSet)[0]) == null ? void 0 : _b.references) || emptyArray; - } - var fileIncludeReasons = program.getFileIncludeReasons(); - var referencedFile = program.getSourceFile(fileName); - return referencedFile && fileIncludeReasons && getReferencesForNonModule(referencedFile, fileIncludeReasons, program) || emptyArray; - } - Core2.getReferencesForFileName = getReferencesForFileName; - function getReferencesForNonModule(referencedFile, refFileMap, program) { - var e_832, _t; - var entries; - var references = refFileMap.get(referencedFile.path) || emptyArray; - try { - for (var references_4 = __values(references), references_4_1 = references_4.next(); !references_4_1.done; references_4_1 = references_4.next()) { - var ref = references_4_1.value; - if (isReferencedFile(ref)) { - var referencingFile = program.getSourceFileByPath(ref.file); - var location_13 = getReferencedFileLocation(program.getSourceFileByPath, ref); - if (isReferenceFileLocation(location_13)) { - entries = append(entries, { - kind: 0 /* Span */, - fileName: referencingFile.fileName, - textSpan: createTextSpanFromRange(location_13) - }); - } - } - } - } - catch (e_832_1) { e_832 = { error: e_832_1 }; } - finally { - try { - if (references_4_1 && !references_4_1.done && (_t = references_4.return)) _t.call(references_4); - } - finally { if (e_832) throw e_832.error; } - } - return entries; - } - function getMergedAliasedSymbolOfNamespaceExportDeclaration(node, symbol, checker) { - if (node.parent && isNamespaceExportDeclaration(node.parent)) { - var aliasedSymbol = checker.getAliasedSymbol(symbol); - var targetSymbol = checker.getMergedSymbol(aliasedSymbol); - if (aliasedSymbol !== targetSymbol) { - return targetSymbol; - } - } - return void 0; - } - function getReferencedSymbolsForModuleIfDeclaredBySourceFile(symbol, program, sourceFiles, cancellationToken, options, sourceFilesSet) { - var moduleSourceFile = symbol.flags & 1536 /* Module */ && symbol.declarations && find(symbol.declarations, isSourceFile); - if (!moduleSourceFile) - return void 0; - var exportEquals = symbol.exports.get("export=" /* ExportEquals */); - var moduleReferences = getReferencedSymbolsForModule(program, symbol, !!exportEquals, sourceFiles, sourceFilesSet); - if (!exportEquals || !sourceFilesSet.has(moduleSourceFile.fileName)) - return moduleReferences; - var checker = program.getTypeChecker(); - symbol = skipAlias(exportEquals, checker); - return mergeReferences(program, moduleReferences, getReferencedSymbolsForSymbol(symbol, - /*node*/ - void 0, sourceFiles, sourceFilesSet, checker, cancellationToken, options)); - } - function mergeReferences(program) { - var e_833, _t, e_834, _u; - var referencesToMerge = []; - for (var _v = 1; _v < arguments.length; _v++) { - referencesToMerge[_v - 1] = arguments[_v]; - } - var result; - try { - for (var referencesToMerge_1 = __values(referencesToMerge), referencesToMerge_1_1 = referencesToMerge_1.next(); !referencesToMerge_1_1.done; referencesToMerge_1_1 = referencesToMerge_1.next()) { - var references = referencesToMerge_1_1.value; - if (!references || !references.length) - continue; - if (!result) { - result = references; - continue; - } - var _loop_58 = function (entry) { - if (!entry.definition || entry.definition.type !== 0 /* Symbol */) { - result.push(entry); - return "continue"; - } - var symbol = entry.definition.symbol; - var refIndex = findIndex(result, function (ref) { return !!ref.definition && ref.definition.type === 0 /* Symbol */ && ref.definition.symbol === symbol; }); - if (refIndex === -1) { - result.push(entry); - return "continue"; - } - var reference = result[refIndex]; - result[refIndex] = { - definition: reference.definition, - references: reference.references.concat(entry.references).sort(function (entry1, entry2) { - var entry1File = getSourceFileIndexOfEntry(program, entry1); - var entry2File = getSourceFileIndexOfEntry(program, entry2); - if (entry1File !== entry2File) { - return compareValues(entry1File, entry2File); - } - var entry1Span = getTextSpanOfEntry(entry1); - var entry2Span = getTextSpanOfEntry(entry2); - return entry1Span.start !== entry2Span.start ? compareValues(entry1Span.start, entry2Span.start) : compareValues(entry1Span.length, entry2Span.length); - }) - }; - }; - try { - for (var references_5 = (e_834 = void 0, __values(references)), references_5_1 = references_5.next(); !references_5_1.done; references_5_1 = references_5.next()) { - var entry = references_5_1.value; - _loop_58(entry); - } - } - catch (e_834_1) { e_834 = { error: e_834_1 }; } - finally { - try { - if (references_5_1 && !references_5_1.done && (_u = references_5.return)) _u.call(references_5); - } - finally { if (e_834) throw e_834.error; } - } - } - } - catch (e_833_1) { e_833 = { error: e_833_1 }; } - finally { - try { - if (referencesToMerge_1_1 && !referencesToMerge_1_1.done && (_t = referencesToMerge_1.return)) _t.call(referencesToMerge_1); - } - finally { if (e_833) throw e_833.error; } - } - return result; - } - function getSourceFileIndexOfEntry(program, entry) { - var sourceFile = entry.kind === 0 /* Span */ ? program.getSourceFile(entry.fileName) : entry.node.getSourceFile(); - return program.getSourceFiles().indexOf(sourceFile); - } - function getReferencedSymbolsForModule(program, symbol, excludeImportTypeOfExportEquals, sourceFiles, sourceFilesSet) { - var e_835, _t, e_836, _u; - Debug.assert(!!symbol.valueDeclaration); - var references = mapDefined(findModuleReferences(program, sourceFiles, symbol), function (reference) { - if (reference.kind === "import") { - var parent2 = reference.literal.parent; - if (isLiteralTypeNode(parent2)) { - var importType = cast(parent2.parent, isImportTypeNode); - if (excludeImportTypeOfExportEquals && !importType.qualifier) { - return void 0; - } - } - return nodeEntry(reference.literal); - } - else if (reference.kind === "implicit") { - var range = reference.literal.text !== externalHelpersModuleNameText && forEachChildRecursively(reference.referencingFile, function (n) { return !(n.transformFlags & 2 /* ContainsJsx */) ? "skip" : isJsxElement(n) || isJsxSelfClosingElement(n) || isJsxFragment(n) ? n : void 0; }) || reference.referencingFile.statements[0] || reference.referencingFile; - return nodeEntry(range); - } - else { - return { - kind: 0 /* Span */, - fileName: reference.referencingFile.fileName, - textSpan: createTextSpanFromRange(reference.ref) - }; - } - }); - if (symbol.declarations) { - try { - for (var _v = __values(symbol.declarations), _w = _v.next(); !_w.done; _w = _v.next()) { - var decl = _w.value; - switch (decl.kind) { - case 312 /* SourceFile */: - break; - case 267 /* ModuleDeclaration */: - if (sourceFilesSet.has(decl.getSourceFile().fileName)) { - references.push(nodeEntry(decl.name)); - } - break; - default: - Debug.assert(!!(symbol.flags & 33554432 /* Transient */), "Expected a module symbol to be declared by a SourceFile or ModuleDeclaration."); - } - } - } - catch (e_835_1) { e_835 = { error: e_835_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_835) throw e_835.error; } - } - } - var exported = symbol.exports.get("export=" /* ExportEquals */); - if (exported == null ? void 0 : exported.declarations) { - try { - for (var _x = __values(exported.declarations), _y = _x.next(); !_y.done; _y = _x.next()) { - var decl = _y.value; - var sourceFile = decl.getSourceFile(); - if (sourceFilesSet.has(sourceFile.fileName)) { - var node = isBinaryExpression(decl) && isPropertyAccessExpression(decl.left) ? decl.left.expression : isExportAssignment(decl) ? Debug.checkDefined(findChildOfKind(decl, 95 /* ExportKeyword */, sourceFile)) : getNameOfDeclaration(decl) || decl; - references.push(nodeEntry(node)); - } - } - } - catch (e_836_1) { e_836 = { error: e_836_1 }; } - finally { - try { - if (_y && !_y.done && (_u = _x.return)) _u.call(_x); - } - finally { if (e_836) throw e_836.error; } - } - } - return references.length ? [{ definition: { type: 0 /* Symbol */, symbol: symbol }, references: references }] : emptyArray; - } - function isReadonlyTypeOperator(node) { - return node.kind === 148 /* ReadonlyKeyword */ && isTypeOperatorNode(node.parent) && node.parent.operator === 148 /* ReadonlyKeyword */; - } - function getReferencedSymbolsSpecial(node, sourceFiles, cancellationToken) { - if (isTypeKeyword(node.kind)) { - if (node.kind === 116 /* VoidKeyword */ && isVoidExpression(node.parent)) { - return void 0; - } - if (node.kind === 148 /* ReadonlyKeyword */ && !isReadonlyTypeOperator(node)) { - return void 0; - } - return getAllReferencesForKeyword(sourceFiles, node.kind, cancellationToken, node.kind === 148 /* ReadonlyKeyword */ ? isReadonlyTypeOperator : void 0); - } - if (isImportMeta(node.parent) && node.parent.name === node) { - return getAllReferencesForImportMeta(sourceFiles, cancellationToken); - } - if (isStaticModifier(node) && isClassStaticBlockDeclaration(node.parent)) { - return [{ definition: { type: 2 /* Keyword */, node: node }, references: [nodeEntry(node)] }]; - } - if (isJumpStatementTarget(node)) { - var labelDefinition = getTargetLabel(node.parent, node.text); - return labelDefinition && getLabelReferencesInNode(labelDefinition.parent, labelDefinition); - } - else if (isLabelOfLabeledStatement(node)) { - return getLabelReferencesInNode(node.parent, node); - } - if (isThis(node)) { - return getReferencesForThisKeyword(node, sourceFiles, cancellationToken); - } - if (node.kind === 108 /* SuperKeyword */) { - return getReferencesForSuperKeyword(node); - } - return void 0; - } - function getReferencedSymbolsForSymbol(originalSymbol, node, sourceFiles, sourceFilesSet, checker, cancellationToken, options) { - var symbol = node && skipPastExportOrImportSpecifierOrUnion(originalSymbol, node, checker, - /*useLocalSymbolForExportSpecifier*/ - !isForRenameWithPrefixAndSuffixText(options)) || originalSymbol; - var searchMeaning = node ? getIntersectingMeaningFromDeclarations(node, symbol) : 7 /* All */; - var result = []; - var state = new State(sourceFiles, sourceFilesSet, node ? getSpecialSearchKind(node) : 0 /* None */, checker, cancellationToken, searchMeaning, options, result); - var exportSpecifier = !isForRenameWithPrefixAndSuffixText(options) || !symbol.declarations ? void 0 : find(symbol.declarations, isExportSpecifier); - if (exportSpecifier) { - getReferencesAtExportSpecifier(exportSpecifier.name, symbol, exportSpecifier, state.createSearch(node, originalSymbol, - /*comingFrom*/ - void 0), state, - /*addReferencesHere*/ - true, - /*alwaysGetReferences*/ - true); - } - else if (node && node.kind === 90 /* DefaultKeyword */ && symbol.escapedName === "default" /* Default */ && symbol.parent) { - addReference(node, symbol, state); - searchForImportsOfExport(node, symbol, { exportingModuleSymbol: symbol.parent, exportKind: 1 /* Default */ }, state); - } - else { - var search = state.createSearch(node, symbol, - /*comingFrom*/ - void 0, { allSearchSymbols: node ? populateSearchSymbolSet(symbol, node, checker, options.use === 2 /* Rename */, !!options.providePrefixAndSuffixTextForRename, !!options.implementations) : [symbol] }); - getReferencesInContainerOrFiles(symbol, state, search); - } - return result; - } - function getReferencesInContainerOrFiles(symbol, state, search) { - var e_837, _t; - var scope = getSymbolScope(symbol); - if (scope) { - getReferencesInContainer(scope, scope.getSourceFile(), search, state, - /*addReferencesHere*/ - !(isSourceFile(scope) && !contains(state.sourceFiles, scope))); - } - else { - try { - for (var _u = __values(state.sourceFiles), _v = _u.next(); !_v.done; _v = _u.next()) { - var sourceFile = _v.value; - state.cancellationToken.throwIfCancellationRequested(); - searchForName(sourceFile, search, state); - } - } - catch (e_837_1) { e_837 = { error: e_837_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_837) throw e_837.error; } - } - } - } - function getSpecialSearchKind(node) { - switch (node.kind) { - case 176 /* Constructor */: - case 137 /* ConstructorKeyword */: - return 1 /* Constructor */; - case 80 /* Identifier */: - if (isClassLike(node.parent)) { - Debug.assert(node.parent.name === node); - return 2 /* Class */; - } - default: - return 0 /* None */; - } - } - function skipPastExportOrImportSpecifierOrUnion(symbol, node, checker, useLocalSymbolForExportSpecifier) { - var parent2 = node.parent; - if (isExportSpecifier(parent2) && useLocalSymbolForExportSpecifier) { - return getLocalSymbolForExportSpecifier(node, symbol, parent2, checker); - } - return firstDefined(symbol.declarations, function (decl) { - if (!decl.parent) { - if (symbol.flags & 33554432 /* Transient */) - return void 0; - Debug.fail("Unexpected symbol at ".concat(Debug.formatSyntaxKind(node.kind), ": ").concat(Debug.formatSymbol(symbol))); - } - return isTypeLiteralNode(decl.parent) && isUnionTypeNode(decl.parent.parent) ? checker.getPropertyOfType(checker.getTypeFromTypeNode(decl.parent.parent), symbol.name) : void 0; - }); - } - var SpecialSearchKind; - (function (SpecialSearchKind2) { - SpecialSearchKind2[SpecialSearchKind2["None"] = 0] = "None"; - SpecialSearchKind2[SpecialSearchKind2["Constructor"] = 1] = "Constructor"; - SpecialSearchKind2[SpecialSearchKind2["Class"] = 2] = "Class"; - })(SpecialSearchKind || (SpecialSearchKind = {})); - function getNonModuleSymbolOfMergedModuleSymbol(symbol) { - if (!(symbol.flags & (1536 /* Module */ | 33554432 /* Transient */))) - return void 0; - var decl = symbol.declarations && find(symbol.declarations, function (d) { return !isSourceFile(d) && !isModuleDeclaration(d); }); - return decl && decl.symbol; - } - var State = /** @class */ (function () { - function State(sourceFiles, sourceFilesSet, specialSearchKind, checker, cancellationToken, searchMeaning, options, result) { - this.sourceFiles = sourceFiles; - this.sourceFilesSet = sourceFilesSet; - this.specialSearchKind = specialSearchKind; - this.checker = checker; - this.cancellationToken = cancellationToken; - this.searchMeaning = searchMeaning; - this.options = options; - this.result = result; - /** Cache for `explicitlyinheritsFrom`. */ - this.inheritsFromCache = /* @__PURE__ */ new Map(); - /** - * Type nodes can contain multiple references to the same type. For example: - * let x: Foo & (Foo & Bar) = ... - * Because we are returning the implementation locations and not the identifier locations, - * duplicate entries would be returned here as each of the type references is part of - * the same implementation. For that reason, check before we add a new entry. - */ - this.markSeenContainingTypeReference = nodeSeenTracker(); - /** - * It's possible that we will encounter the right side of `export { foo as bar } from "x";` more than once. - * For example: - * // b.ts - * export { foo as bar } from "./a"; - * import { bar } from "./b"; - * - * Normally at `foo as bar` we directly add `foo` and do not locally search for it (since it doesn't declare a local). - * But another reference to it may appear in the same source file. - * See `tests/cases/fourslash/transitiveExportImports3.ts`. - */ - this.markSeenReExportRHS = nodeSeenTracker(); - this.symbolIdToReferences = []; - // Source file ID -> symbol ID -> Whether the symbol has been searched for in the source file. - this.sourceFileToSeenSymbols = []; - } - State.prototype.includesSourceFile = function (sourceFile) { - return this.sourceFilesSet.has(sourceFile.fileName); - }; - /** Gets every place to look for references of an exported symbols. See `ImportsResult` in `importTracker.ts` for more documentation. */ - State.prototype.getImportSearches = function (exportSymbol, exportInfo) { - if (!this.importTracker) - this.importTracker = createImportTracker(this.sourceFiles, this.sourceFilesSet, this.checker, this.cancellationToken); - return this.importTracker(exportSymbol, exportInfo, this.options.use === 2 /* Rename */); - }; - /** @param allSearchSymbols set of additional symbols for use by `includes`. */ - State.prototype.createSearch = function (location, symbol, comingFrom, searchOptions) { - if (searchOptions === void 0) { searchOptions = {}; } - var _t = searchOptions.text, text = _t === void 0 ? stripQuotes(symbolName(getLocalSymbolForExportDefault(symbol) || getNonModuleSymbolOfMergedModuleSymbol(symbol) || symbol)) : _t, _u = searchOptions.allSearchSymbols, allSearchSymbols = _u === void 0 ? [symbol] : _u; - var escapedText = escapeLeadingUnderscores(text); - var parents = this.options.implementations && location ? getParentSymbolsOfPropertyAccess(location, symbol, this.checker) : void 0; - return { symbol: symbol, comingFrom: comingFrom, text: text, escapedText: escapedText, parents: parents, allSearchSymbols: allSearchSymbols, includes: function (sym) { return contains(allSearchSymbols, sym); } }; - }; - /** - * Callback to add references for a particular searched symbol. - * This initializes a reference group, so only call this if you will add at least one reference. - */ - State.prototype.referenceAdder = function (searchSymbol) { - var symbolId = getSymbolId(searchSymbol); - var references = this.symbolIdToReferences[symbolId]; - if (!references) { - references = this.symbolIdToReferences[symbolId] = []; - this.result.push({ definition: { type: 0 /* Symbol */, symbol: searchSymbol }, references: references }); - } - return function (node, kind) { return references.push(nodeEntry(node, kind)); }; - }; - /** Add a reference with no associated definition. */ - State.prototype.addStringOrCommentReference = function (fileName, textSpan) { - this.result.push({ - definition: void 0, - references: [{ kind: 0 /* Span */, fileName: fileName, textSpan: textSpan }] - }); - }; - /** Returns `true` the first time we search for a symbol in a file and `false` afterwards. */ - State.prototype.markSearchedSymbols = function (sourceFile, symbols) { - var e_838, _t; - var sourceId = getNodeId(sourceFile); - var seenSymbols = this.sourceFileToSeenSymbols[sourceId] || (this.sourceFileToSeenSymbols[sourceId] = /* @__PURE__ */ new Set()); - var anyNewSymbols = false; - try { - for (var symbols_5 = __values(symbols), symbols_5_1 = symbols_5.next(); !symbols_5_1.done; symbols_5_1 = symbols_5.next()) { - var sym = symbols_5_1.value; - anyNewSymbols = tryAddToSet(seenSymbols, getSymbolId(sym)) || anyNewSymbols; - } - } - catch (e_838_1) { e_838 = { error: e_838_1 }; } - finally { - try { - if (symbols_5_1 && !symbols_5_1.done && (_t = symbols_5.return)) _t.call(symbols_5); - } - finally { if (e_838) throw e_838.error; } - } - return anyNewSymbols; - }; - return State; - }()); - function searchForImportsOfExport(exportLocation, exportSymbol, exportInfo, state) { - var e_839, _t, e_840, _u, e_841, _v; - var _w = state.getImportSearches(exportSymbol, exportInfo), importSearches = _w.importSearches, singleReferences = _w.singleReferences, indirectUsers = _w.indirectUsers; - if (singleReferences.length) { - var addRef = state.referenceAdder(exportSymbol); - try { - for (var singleReferences_1 = __values(singleReferences), singleReferences_1_1 = singleReferences_1.next(); !singleReferences_1_1.done; singleReferences_1_1 = singleReferences_1.next()) { - var singleRef = singleReferences_1_1.value; - if (shouldAddSingleReference(singleRef, state)) - addRef(singleRef); - } - } - catch (e_839_1) { e_839 = { error: e_839_1 }; } - finally { - try { - if (singleReferences_1_1 && !singleReferences_1_1.done && (_t = singleReferences_1.return)) _t.call(singleReferences_1); - } - finally { if (e_839) throw e_839.error; } - } - } - try { - for (var importSearches_1 = __values(importSearches), importSearches_1_1 = importSearches_1.next(); !importSearches_1_1.done; importSearches_1_1 = importSearches_1.next()) { - var _x = __read(importSearches_1_1.value, 2), importLocation = _x[0], importSymbol = _x[1]; - getReferencesInSourceFile(importLocation.getSourceFile(), state.createSearch(importLocation, importSymbol, 1 /* Export */), state); - } - } - catch (e_840_1) { e_840 = { error: e_840_1 }; } - finally { - try { - if (importSearches_1_1 && !importSearches_1_1.done && (_u = importSearches_1.return)) _u.call(importSearches_1); - } - finally { if (e_840) throw e_840.error; } - } - if (indirectUsers.length) { - var indirectSearch = void 0; - switch (exportInfo.exportKind) { - case 0 /* Named */: - indirectSearch = state.createSearch(exportLocation, exportSymbol, 1 /* Export */); - break; - case 1 /* Default */: - indirectSearch = state.options.use === 2 /* Rename */ ? void 0 : state.createSearch(exportLocation, exportSymbol, 1 /* Export */, { text: "default" }); - break; - case 2 /* ExportEquals */: - break; - } - if (indirectSearch) { - try { - for (var indirectUsers_1 = __values(indirectUsers), indirectUsers_1_1 = indirectUsers_1.next(); !indirectUsers_1_1.done; indirectUsers_1_1 = indirectUsers_1.next()) { - var indirectUser = indirectUsers_1_1.value; - searchForName(indirectUser, indirectSearch, state); - } - } - catch (e_841_1) { e_841 = { error: e_841_1 }; } - finally { - try { - if (indirectUsers_1_1 && !indirectUsers_1_1.done && (_v = indirectUsers_1.return)) _v.call(indirectUsers_1); - } - finally { if (e_841) throw e_841.error; } - } - } - } - } - function eachExportReference(sourceFiles, checker, cancellationToken, exportSymbol, exportingModuleSymbol, exportName, isDefaultExport, cb) { - var e_842, _t, e_843, _u, e_844, _v, e_845, _w; - var importTracker = createImportTracker(sourceFiles, new Set(sourceFiles.map(function (f) { return f.fileName; })), checker, cancellationToken); - var _x = importTracker(exportSymbol, { exportKind: isDefaultExport ? 1 /* Default */ : 0 /* Named */, exportingModuleSymbol: exportingModuleSymbol }, - /*isForRename*/ - false), importSearches = _x.importSearches, indirectUsers = _x.indirectUsers, singleReferences = _x.singleReferences; - try { - for (var importSearches_2 = __values(importSearches), importSearches_2_1 = importSearches_2.next(); !importSearches_2_1.done; importSearches_2_1 = importSearches_2.next()) { - var _y = __read(importSearches_2_1.value, 1), importLocation = _y[0]; - cb(importLocation); - } - } - catch (e_842_1) { e_842 = { error: e_842_1 }; } - finally { - try { - if (importSearches_2_1 && !importSearches_2_1.done && (_t = importSearches_2.return)) _t.call(importSearches_2); - } - finally { if (e_842) throw e_842.error; } - } - try { - for (var singleReferences_2 = __values(singleReferences), singleReferences_2_1 = singleReferences_2.next(); !singleReferences_2_1.done; singleReferences_2_1 = singleReferences_2.next()) { - var singleReference = singleReferences_2_1.value; - if (isIdentifier(singleReference) && isImportTypeNode(singleReference.parent)) { - cb(singleReference); - } - } - } - catch (e_843_1) { e_843 = { error: e_843_1 }; } - finally { - try { - if (singleReferences_2_1 && !singleReferences_2_1.done && (_u = singleReferences_2.return)) _u.call(singleReferences_2); - } - finally { if (e_843) throw e_843.error; } - } - try { - for (var indirectUsers_2 = __values(indirectUsers), indirectUsers_2_1 = indirectUsers_2.next(); !indirectUsers_2_1.done; indirectUsers_2_1 = indirectUsers_2.next()) { - var indirectUser = indirectUsers_2_1.value; - try { - for (var _z = (e_845 = void 0, __values(getPossibleSymbolReferenceNodes(indirectUser, isDefaultExport ? "default" : exportName))), _10 = _z.next(); !_10.done; _10 = _z.next()) { - var node = _10.value; - var symbol = checker.getSymbolAtLocation(node); - var hasExportAssignmentDeclaration = some(symbol == null ? void 0 : symbol.declarations, function (d) { return tryCast(d, isExportAssignment) ? true : false; }); - if (isIdentifier(node) && !isImportOrExportSpecifier(node.parent) && (symbol === exportSymbol || hasExportAssignmentDeclaration)) { - cb(node); - } - } - } - catch (e_845_1) { e_845 = { error: e_845_1 }; } - finally { - try { - if (_10 && !_10.done && (_w = _z.return)) _w.call(_z); - } - finally { if (e_845) throw e_845.error; } - } - } - } - catch (e_844_1) { e_844 = { error: e_844_1 }; } - finally { - try { - if (indirectUsers_2_1 && !indirectUsers_2_1.done && (_v = indirectUsers_2.return)) _v.call(indirectUsers_2); - } - finally { if (e_844) throw e_844.error; } - } - } - Core2.eachExportReference = eachExportReference; - function shouldAddSingleReference(singleRef, state) { - if (!hasMatchingMeaning(singleRef, state)) - return false; - if (state.options.use !== 2 /* Rename */) - return true; - if (!isIdentifier(singleRef)) - return false; - return !(isImportOrExportSpecifier(singleRef.parent) && singleRef.escapedText === "default" /* Default */); - } - function searchForImportedSymbol(symbol, state) { - var e_846, _t; - if (!symbol.declarations) - return; - try { - for (var _u = __values(symbol.declarations), _v = _u.next(); !_v.done; _v = _u.next()) { - var declaration = _v.value; - var exportingFile = declaration.getSourceFile(); - getReferencesInSourceFile(exportingFile, state.createSearch(declaration, symbol, 0 /* Import */), state, state.includesSourceFile(exportingFile)); - } - } - catch (e_846_1) { e_846 = { error: e_846_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_846) throw e_846.error; } - } - } - function searchForName(sourceFile, search, state) { - if (getNameTable(sourceFile).get(search.escapedText) !== void 0) { - getReferencesInSourceFile(sourceFile, search, state); - } - } - function getPropertySymbolOfDestructuringAssignment(location, checker) { - return isArrayLiteralOrObjectLiteralDestructuringPattern(location.parent.parent) ? checker.getPropertySymbolOfDestructuringAssignment(location) : void 0; - } - function getSymbolScope(symbol) { - var e_847, _t; - var declarations = symbol.declarations, flags = symbol.flags, parent2 = symbol.parent, valueDeclaration = symbol.valueDeclaration; - if (valueDeclaration && (valueDeclaration.kind === 218 /* FunctionExpression */ || valueDeclaration.kind === 231 /* ClassExpression */)) { - return valueDeclaration; - } - if (!declarations) { - return void 0; - } - if (flags & (4 /* Property */ | 8192 /* Method */)) { - var privateDeclaration = find(declarations, function (d) { return hasEffectiveModifier(d, 8 /* Private */) || isPrivateIdentifierClassElementDeclaration(d); }); - if (privateDeclaration) { - return getAncestor(privateDeclaration, 263 /* ClassDeclaration */); - } - return void 0; - } - if (declarations.some(isObjectBindingElementWithoutPropertyName)) { - return void 0; - } - var exposedByParent = parent2 && !(symbol.flags & 262144 /* TypeParameter */); - if (exposedByParent && !(isExternalModuleSymbol(parent2) && !parent2.globalExports)) { - return void 0; - } - var scope; - try { - for (var declarations_18 = __values(declarations), declarations_18_1 = declarations_18.next(); !declarations_18_1.done; declarations_18_1 = declarations_18.next()) { - var declaration = declarations_18_1.value; - var container = getContainerNode(declaration); - if (scope && scope !== container) { - return void 0; - } - if (!container || container.kind === 312 /* SourceFile */ && !isExternalOrCommonJsModule(container)) { - return void 0; - } - scope = container; - if (isFunctionExpression(scope)) { - var next = void 0; - while (next = getNextJSDocCommentLocation(scope)) { - scope = next; - } - } - } - } - catch (e_847_1) { e_847 = { error: e_847_1 }; } - finally { - try { - if (declarations_18_1 && !declarations_18_1.done && (_t = declarations_18.return)) _t.call(declarations_18); - } - finally { if (e_847) throw e_847.error; } - } - return exposedByParent ? scope.getSourceFile() : scope; - } - function isSymbolReferencedInFile(definition, checker, sourceFile, searchContainer) { - if (searchContainer === void 0) { searchContainer = sourceFile; } - return eachSymbolReferenceInFile(definition, checker, sourceFile, function () { return true; }, searchContainer) || false; - } - Core2.isSymbolReferencedInFile = isSymbolReferencedInFile; - function eachSymbolReferenceInFile(definition, checker, sourceFile, cb, searchContainer) { - var e_848, _t; - if (searchContainer === void 0) { searchContainer = sourceFile; } - var symbol = isParameterPropertyDeclaration(definition.parent, definition.parent.parent) ? first(checker.getSymbolsOfParameterPropertyDeclaration(definition.parent, definition.text)) : checker.getSymbolAtLocation(definition); - if (!symbol) - return void 0; - try { - for (var _u = __values(getPossibleSymbolReferenceNodes(sourceFile, symbol.name, searchContainer)), _v = _u.next(); !_v.done; _v = _u.next()) { - var token = _v.value; - if (!isIdentifier(token) || token === definition || token.escapedText !== definition.escapedText) - continue; - var referenceSymbol = checker.getSymbolAtLocation(token); - if (referenceSymbol === symbol || checker.getShorthandAssignmentValueSymbol(token.parent) === symbol || isExportSpecifier(token.parent) && getLocalSymbolForExportSpecifier(token, referenceSymbol, token.parent, checker) === symbol) { - var res = cb(token); - if (res) - return res; - } - } - } - catch (e_848_1) { e_848 = { error: e_848_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_848) throw e_848.error; } - } - } - Core2.eachSymbolReferenceInFile = eachSymbolReferenceInFile; - function getTopMostDeclarationNamesInFile(declarationName, sourceFile) { - var candidates = filter(getPossibleSymbolReferenceNodes(sourceFile, declarationName), function (name) { return !!getDeclarationFromName(name); }); - return candidates.reduce(function (topMost, decl) { - var depth = getDepth(decl); - if (!some(topMost.declarationNames) || depth === topMost.depth) { - topMost.declarationNames.push(decl); - topMost.depth = depth; - } - else if (depth < topMost.depth) { - topMost.declarationNames = [decl]; - topMost.depth = depth; - } - return topMost; - }, { depth: Infinity, declarationNames: [] }).declarationNames; - function getDepth(declaration) { - var depth = 0; - while (declaration) { - declaration = getContainerNode(declaration); - depth++; - } - return depth; - } - } - Core2.getTopMostDeclarationNamesInFile = getTopMostDeclarationNamesInFile; - function someSignatureUsage(signature, sourceFiles, checker, cb) { - var e_849, _t, e_850, _u; - if (!signature.name || !isIdentifier(signature.name)) - return false; - var symbol = Debug.checkDefined(checker.getSymbolAtLocation(signature.name)); - try { - for (var sourceFiles_6 = __values(sourceFiles), sourceFiles_6_1 = sourceFiles_6.next(); !sourceFiles_6_1.done; sourceFiles_6_1 = sourceFiles_6.next()) { - var sourceFile = sourceFiles_6_1.value; - try { - for (var _v = (e_850 = void 0, __values(getPossibleSymbolReferenceNodes(sourceFile, symbol.name))), _w = _v.next(); !_w.done; _w = _v.next()) { - var name_129 = _w.value; - if (!isIdentifier(name_129) || name_129 === signature.name || name_129.escapedText !== signature.name.escapedText) - continue; - var called = climbPastPropertyAccess(name_129); - var call = isCallExpression(called.parent) && called.parent.expression === called ? called.parent : void 0; - var referenceSymbol = checker.getSymbolAtLocation(name_129); - if (referenceSymbol && checker.getRootSymbols(referenceSymbol).some(function (s) { return s === symbol; })) { - if (cb(name_129, call)) { - return true; - } - } - } - } - catch (e_850_1) { e_850 = { error: e_850_1 }; } - finally { - try { - if (_w && !_w.done && (_u = _v.return)) _u.call(_v); - } - finally { if (e_850) throw e_850.error; } - } - } - } - catch (e_849_1) { e_849 = { error: e_849_1 }; } - finally { - try { - if (sourceFiles_6_1 && !sourceFiles_6_1.done && (_t = sourceFiles_6.return)) _t.call(sourceFiles_6); - } - finally { if (e_849) throw e_849.error; } - } - return false; - } - Core2.someSignatureUsage = someSignatureUsage; - function getPossibleSymbolReferenceNodes(sourceFile, symbolName2, container) { - if (container === void 0) { container = sourceFile; } - return mapDefined(getPossibleSymbolReferencePositions(sourceFile, symbolName2, container), function (pos) { - var referenceLocation = getTouchingPropertyName(sourceFile, pos); - return referenceLocation === sourceFile ? void 0 : referenceLocation; - }); - } - function getPossibleSymbolReferencePositions(sourceFile, symbolName2, container) { - if (container === void 0) { container = sourceFile; } - var positions = []; - if (!symbolName2 || !symbolName2.length) { - return positions; - } - var text = sourceFile.text; - var sourceLength = text.length; - var symbolNameLength = symbolName2.length; - var position = text.indexOf(symbolName2, container.pos); - while (position >= 0) { - if (position > container.end) - break; - var endPosition = position + symbolNameLength; - if ((position === 0 || !isIdentifierPart(text.charCodeAt(position - 1), 99 /* Latest */)) && (endPosition === sourceLength || !isIdentifierPart(text.charCodeAt(endPosition), 99 /* Latest */))) { - positions.push(position); - } - position = text.indexOf(symbolName2, position + symbolNameLength + 1); - } - return positions; - } - function getLabelReferencesInNode(container, targetLabel) { - var sourceFile = container.getSourceFile(); - var labelName = targetLabel.text; - var references = mapDefined(getPossibleSymbolReferenceNodes(sourceFile, labelName, container), function (node) { return ( - // Only pick labels that are either the target label, or have a target that is the target label - node === targetLabel || isJumpStatementTarget(node) && getTargetLabel(node, labelName) === targetLabel ? nodeEntry(node) : void 0); }); - return [{ definition: { type: 1 /* Label */, node: targetLabel }, references: references }]; - } - function isValidReferencePosition(node, searchSymbolName) { - switch (node.kind) { - case 81 /* PrivateIdentifier */: - if (isJSDocMemberName(node.parent)) { - return true; - } - case 80 /* Identifier */: - return node.text.length === searchSymbolName.length; - case 15 /* NoSubstitutionTemplateLiteral */: - case 11 /* StringLiteral */: { - var str = node; - return (isLiteralNameOfPropertyDeclarationOrIndexAccess(str) || isNameOfModuleDeclaration(node) || isExpressionOfExternalModuleImportEqualsDeclaration(node) || isCallExpression(node.parent) && isBindableObjectDefinePropertyCall(node.parent) && node.parent.arguments[1] === node) && str.text.length === searchSymbolName.length; - } - case 9 /* NumericLiteral */: - return isLiteralNameOfPropertyDeclarationOrIndexAccess(node) && node.text.length === searchSymbolName.length; - case 90 /* DefaultKeyword */: - return "default".length === searchSymbolName.length; - default: - return false; - } - } - function getAllReferencesForImportMeta(sourceFiles, cancellationToken) { - var references = flatMap(sourceFiles, function (sourceFile) { - cancellationToken.throwIfCancellationRequested(); - return mapDefined(getPossibleSymbolReferenceNodes(sourceFile, "meta", sourceFile), function (node) { - var parent2 = node.parent; - if (isImportMeta(parent2)) { - return nodeEntry(parent2); - } - }); - }); - return references.length ? [{ definition: { type: 2 /* Keyword */, node: references[0].node }, references: references }] : void 0; - } - function getAllReferencesForKeyword(sourceFiles, keywordKind, cancellationToken, filter2) { - var references = flatMap(sourceFiles, function (sourceFile) { - cancellationToken.throwIfCancellationRequested(); - return mapDefined(getPossibleSymbolReferenceNodes(sourceFile, tokenToString(keywordKind), sourceFile), function (referenceLocation) { - if (referenceLocation.kind === keywordKind && (!filter2 || filter2(referenceLocation))) { - return nodeEntry(referenceLocation); - } - }); - }); - return references.length ? [{ definition: { type: 2 /* Keyword */, node: references[0].node }, references: references }] : void 0; - } - function getReferencesInSourceFile(sourceFile, search, state, addReferencesHere) { - if (addReferencesHere === void 0) { addReferencesHere = true; } - state.cancellationToken.throwIfCancellationRequested(); - return getReferencesInContainer(sourceFile, sourceFile, search, state, addReferencesHere); - } - function getReferencesInContainer(container, sourceFile, search, state, addReferencesHere) { - var e_851, _t; - if (!state.markSearchedSymbols(sourceFile, search.allSearchSymbols)) { - return; - } - try { - for (var _u = __values(getPossibleSymbolReferencePositions(sourceFile, search.text, container)), _v = _u.next(); !_v.done; _v = _u.next()) { - var position = _v.value; - getReferencesAtLocation(sourceFile, position, search, state, addReferencesHere); - } - } - catch (e_851_1) { e_851 = { error: e_851_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_851) throw e_851.error; } - } - } - function hasMatchingMeaning(referenceLocation, state) { - return !!(getMeaningFromLocation(referenceLocation) & state.searchMeaning); - } - function getReferencesAtLocation(sourceFile, position, search, state, addReferencesHere) { - var referenceLocation = getTouchingPropertyName(sourceFile, position); - if (!isValidReferencePosition(referenceLocation, search.text)) { - if (!state.options.implementations && (state.options.findInStrings && isInString(sourceFile, position) || state.options.findInComments && isInNonReferenceComment(sourceFile, position))) { - state.addStringOrCommentReference(sourceFile.fileName, createTextSpan(position, search.text.length)); - } - return; - } - if (!hasMatchingMeaning(referenceLocation, state)) - return; - var referenceSymbol = state.checker.getSymbolAtLocation(referenceLocation); - if (!referenceSymbol) { - return; - } - var parent2 = referenceLocation.parent; - if (isImportSpecifier(parent2) && parent2.propertyName === referenceLocation) { - return; - } - if (isExportSpecifier(parent2)) { - Debug.assert(referenceLocation.kind === 80 /* Identifier */); - getReferencesAtExportSpecifier(referenceLocation, referenceSymbol, parent2, search, state, addReferencesHere); - return; - } - var relatedSymbol = getRelatedSymbol(search, referenceSymbol, referenceLocation, state); - if (!relatedSymbol) { - getReferenceForShorthandProperty(referenceSymbol, search, state); - return; - } - switch (state.specialSearchKind) { - case 0 /* None */: - if (addReferencesHere) - addReference(referenceLocation, relatedSymbol, state); - break; - case 1 /* Constructor */: - addConstructorReferences(referenceLocation, sourceFile, search, state); - break; - case 2 /* Class */: - addClassStaticThisReferences(referenceLocation, search, state); - break; - default: - Debug.assertNever(state.specialSearchKind); - } - if (isInJSFile(referenceLocation) && isBindingElement(referenceLocation.parent) && isVariableDeclarationInitializedToBareOrAccessedRequire(referenceLocation.parent.parent.parent)) { - referenceSymbol = referenceLocation.parent.symbol; - if (!referenceSymbol) - return; - } - getImportOrExportReferences(referenceLocation, referenceSymbol, search, state); - } - function getReferencesAtExportSpecifier(referenceLocation, referenceSymbol, exportSpecifier, search, state, addReferencesHere, alwaysGetReferences) { - Debug.assert(!alwaysGetReferences || !!state.options.providePrefixAndSuffixTextForRename, "If alwaysGetReferences is true, then prefix/suffix text must be enabled"); - var parent2 = exportSpecifier.parent, propertyName = exportSpecifier.propertyName, name = exportSpecifier.name; - var exportDeclaration = parent2.parent; - var localSymbol = getLocalSymbolForExportSpecifier(referenceLocation, referenceSymbol, exportSpecifier, state.checker); - if (!alwaysGetReferences && !search.includes(localSymbol)) { - return; - } - if (!propertyName) { - if (!(state.options.use === 2 /* Rename */ && name.escapedText === "default" /* Default */)) { - addRef(); - } - } - else if (referenceLocation === propertyName) { - if (!exportDeclaration.moduleSpecifier) { - addRef(); - } - if (addReferencesHere && state.options.use !== 2 /* Rename */ && state.markSeenReExportRHS(name)) { - addReference(name, Debug.checkDefined(exportSpecifier.symbol), state); - } - } - else { - if (state.markSeenReExportRHS(referenceLocation)) { - addRef(); - } - } - if (!isForRenameWithPrefixAndSuffixText(state.options) || alwaysGetReferences) { - var isDefaultExport = referenceLocation.escapedText === "default" || exportSpecifier.name.escapedText === "default"; - var exportKind = isDefaultExport ? 1 /* Default */ : 0 /* Named */; - var exportSymbol = Debug.checkDefined(exportSpecifier.symbol); - var exportInfo = getExportInfo(exportSymbol, exportKind, state.checker); - if (exportInfo) { - searchForImportsOfExport(referenceLocation, exportSymbol, exportInfo, state); - } - } - if (search.comingFrom !== 1 /* Export */ && exportDeclaration.moduleSpecifier && !propertyName && !isForRenameWithPrefixAndSuffixText(state.options)) { - var imported = state.checker.getExportSpecifierLocalTargetSymbol(exportSpecifier); - if (imported) - searchForImportedSymbol(imported, state); - } - function addRef() { - if (addReferencesHere) - addReference(referenceLocation, localSymbol, state); - } - } - function getLocalSymbolForExportSpecifier(referenceLocation, referenceSymbol, exportSpecifier, checker) { - return isExportSpecifierAlias(referenceLocation, exportSpecifier) && checker.getExportSpecifierLocalTargetSymbol(exportSpecifier) || referenceSymbol; - } - function isExportSpecifierAlias(referenceLocation, exportSpecifier) { - var parent2 = exportSpecifier.parent, propertyName = exportSpecifier.propertyName, name = exportSpecifier.name; - Debug.assert(propertyName === referenceLocation || name === referenceLocation); - if (propertyName) { - return propertyName === referenceLocation; - } - else { - return !parent2.parent.moduleSpecifier; - } - } - function getImportOrExportReferences(referenceLocation, referenceSymbol, search, state) { - var importOrExport = getImportOrExportSymbol(referenceLocation, referenceSymbol, state.checker, search.comingFrom === 1 /* Export */); - if (!importOrExport) - return; - var symbol = importOrExport.symbol; - if (importOrExport.kind === 0 /* Import */) { - if (!isForRenameWithPrefixAndSuffixText(state.options)) { - searchForImportedSymbol(symbol, state); - } - } - else { - searchForImportsOfExport(referenceLocation, symbol, importOrExport.exportInfo, state); - } - } - function getReferenceForShorthandProperty(_t, search, state) { - var flags = _t.flags, valueDeclaration = _t.valueDeclaration; - var shorthandValueSymbol = state.checker.getShorthandAssignmentValueSymbol(valueDeclaration); - var name = valueDeclaration && getNameOfDeclaration(valueDeclaration); - if (!(flags & 33554432 /* Transient */) && name && search.includes(shorthandValueSymbol)) { - addReference(name, shorthandValueSymbol, state); - } - } - function addReference(referenceLocation, relatedSymbol, state) { - var _t = "kind" in relatedSymbol ? relatedSymbol : { kind: void 0, symbol: relatedSymbol }, kind = _t.kind, symbol = _t.symbol; - if (state.options.use === 2 /* Rename */ && referenceLocation.kind === 90 /* DefaultKeyword */) { - return; - } - var addRef = state.referenceAdder(symbol); - if (state.options.implementations) { - addImplementationReferences(referenceLocation, addRef, state); - } - else { - addRef(referenceLocation, kind); - } - } - function addConstructorReferences(referenceLocation, sourceFile, search, state) { - if (isNewExpressionTarget(referenceLocation)) { - addReference(referenceLocation, search.symbol, state); - } - var pusher = function () { return state.referenceAdder(search.symbol); }; - if (isClassLike(referenceLocation.parent)) { - Debug.assert(referenceLocation.kind === 90 /* DefaultKeyword */ || referenceLocation.parent.name === referenceLocation); - findOwnConstructorReferences(search.symbol, sourceFile, pusher()); - } - else { - var classExtending = tryGetClassByExtendingIdentifier(referenceLocation); - if (classExtending) { - findSuperConstructorAccesses(classExtending, pusher()); - findInheritedConstructorReferences(classExtending, state); - } - } - } - function addClassStaticThisReferences(referenceLocation, search, state) { - var e_852, _t; - addReference(referenceLocation, search.symbol, state); - var classLike = referenceLocation.parent; - if (state.options.use === 2 /* Rename */ || !isClassLike(classLike)) - return; - Debug.assert(classLike.name === referenceLocation); - var addRef = state.referenceAdder(search.symbol); - try { - for (var _u = __values(classLike.members), _v = _u.next(); !_v.done; _v = _u.next()) { - var member = _v.value; - if (!(isMethodOrAccessor(member) && isStatic(member))) { - continue; - } - if (member.body) { - member.body.forEachChild(function cb(node) { - if (node.kind === 110 /* ThisKeyword */) { - addRef(node); - } - else if (!isFunctionLike(node) && !isClassLike(node)) { - node.forEachChild(cb); - } - }); - } - } - } - catch (e_852_1) { e_852 = { error: e_852_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_852) throw e_852.error; } - } - } - function findOwnConstructorReferences(classSymbol, sourceFile, addNode) { - var e_853, _t; - var constructorSymbol = getClassConstructorSymbol(classSymbol); - if (constructorSymbol && constructorSymbol.declarations) { - try { - for (var _u = __values(constructorSymbol.declarations), _v = _u.next(); !_v.done; _v = _u.next()) { - var decl = _v.value; - var ctrKeyword = findChildOfKind(decl, 137 /* ConstructorKeyword */, sourceFile); - Debug.assert(decl.kind === 176 /* Constructor */ && !!ctrKeyword); - addNode(ctrKeyword); - } - } - catch (e_853_1) { e_853 = { error: e_853_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_853) throw e_853.error; } - } - } - if (classSymbol.exports) { - classSymbol.exports.forEach(function (member) { - var decl = member.valueDeclaration; - if (decl && decl.kind === 174 /* MethodDeclaration */) { - var body = decl.body; - if (body) { - forEachDescendantOfKind(body, 110 /* ThisKeyword */, function (thisKeyword) { - if (isNewExpressionTarget(thisKeyword)) { - addNode(thisKeyword); - } - }); - } - } - }); - } - } - function getClassConstructorSymbol(classSymbol) { - return classSymbol.members && classSymbol.members.get("__constructor" /* Constructor */); - } - function findSuperConstructorAccesses(classDeclaration, addNode) { - var e_854, _t; - var constructor = getClassConstructorSymbol(classDeclaration.symbol); - if (!(constructor && constructor.declarations)) { - return; - } - try { - for (var _u = __values(constructor.declarations), _v = _u.next(); !_v.done; _v = _u.next()) { - var decl = _v.value; - Debug.assert(decl.kind === 176 /* Constructor */); - var body = decl.body; - if (body) { - forEachDescendantOfKind(body, 108 /* SuperKeyword */, function (node) { - if (isCallExpressionTarget(node)) { - addNode(node); - } - }); - } - } - } - catch (e_854_1) { e_854 = { error: e_854_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_854) throw e_854.error; } - } - } - function hasOwnConstructor(classDeclaration) { - return !!getClassConstructorSymbol(classDeclaration.symbol); - } - function findInheritedConstructorReferences(classDeclaration, state) { - if (hasOwnConstructor(classDeclaration)) - return; - var classSymbol = classDeclaration.symbol; - var search = state.createSearch( - /*location*/ - void 0, classSymbol, - /*comingFrom*/ - void 0); - getReferencesInContainerOrFiles(classSymbol, state, search); - } - function addImplementationReferences(refNode, addReference2, state) { - if (isDeclarationName(refNode) && isImplementation(refNode.parent)) { - addReference2(refNode); - return; - } - if (refNode.kind !== 80 /* Identifier */) { - return; - } - if (refNode.parent.kind === 304 /* ShorthandPropertyAssignment */) { - getReferenceEntriesForShorthandPropertyAssignment(refNode, state.checker, addReference2); - } - var containingNode = getContainingNodeIfInHeritageClause(refNode); - if (containingNode) { - addReference2(containingNode); - return; - } - var typeNode = findAncestor(refNode, function (a) { return !isQualifiedName(a.parent) && !isTypeNode(a.parent) && !isTypeElement(a.parent); }); - var typeHavingNode = typeNode.parent; - if (hasType(typeHavingNode) && typeHavingNode.type === typeNode && state.markSeenContainingTypeReference(typeHavingNode)) { - if (hasInitializer(typeHavingNode)) { - addIfImplementation(typeHavingNode.initializer); - } - else if (isFunctionLike(typeHavingNode) && typeHavingNode.body) { - var body = typeHavingNode.body; - if (body.kind === 241 /* Block */) { - forEachReturnStatement(body, function (returnStatement) { - if (returnStatement.expression) - addIfImplementation(returnStatement.expression); - }); - } - else { - addIfImplementation(body); - } - } - else if (isAssertionExpression(typeHavingNode)) { - addIfImplementation(typeHavingNode.expression); - } - } - function addIfImplementation(e) { - if (isImplementationExpression(e)) - addReference2(e); - } - } - function getContainingNodeIfInHeritageClause(node) { - return isIdentifier(node) || isPropertyAccessExpression(node) ? getContainingNodeIfInHeritageClause(node.parent) : isExpressionWithTypeArguments(node) ? tryCast(node.parent.parent, or(isClassLike, isInterfaceDeclaration)) : void 0; - } - function isImplementationExpression(node) { - switch (node.kind) { - case 217 /* ParenthesizedExpression */: - return isImplementationExpression(node.expression); - case 219 /* ArrowFunction */: - case 218 /* FunctionExpression */: - case 210 /* ObjectLiteralExpression */: - case 231 /* ClassExpression */: - case 209 /* ArrayLiteralExpression */: - return true; - default: - return false; - } - } - function explicitlyInheritsFrom(symbol, parent2, cachedResults, checker) { - if (symbol === parent2) { - return true; - } - var key = getSymbolId(symbol) + "," + getSymbolId(parent2); - var cached = cachedResults.get(key); - if (cached !== void 0) { - return cached; - } - cachedResults.set(key, false); - var inherits = !!symbol.declarations && symbol.declarations.some(function (declaration) { return getAllSuperTypeNodes(declaration).some(function (typeReference) { - var type = checker.getTypeAtLocation(typeReference); - return !!type && !!type.symbol && explicitlyInheritsFrom(type.symbol, parent2, cachedResults, checker); - }); }); - cachedResults.set(key, inherits); - return inherits; - } - function getReferencesForSuperKeyword(superKeyword) { - var searchSpaceNode = getSuperContainer(superKeyword, - /*stopOnFunctions*/ - false); - if (!searchSpaceNode) { - return void 0; - } - var staticFlag = 32 /* Static */; - switch (searchSpaceNode.kind) { - case 172 /* PropertyDeclaration */: - case 171 /* PropertySignature */: - case 174 /* MethodDeclaration */: - case 173 /* MethodSignature */: - case 176 /* Constructor */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - staticFlag &= getSyntacticModifierFlags(searchSpaceNode); - searchSpaceNode = searchSpaceNode.parent; - break; - default: - return void 0; - } - var sourceFile = searchSpaceNode.getSourceFile(); - var references = mapDefined(getPossibleSymbolReferenceNodes(sourceFile, "super", searchSpaceNode), function (node) { - if (node.kind !== 108 /* SuperKeyword */) { - return; - } - var container = getSuperContainer(node, - /*stopOnFunctions*/ - false); - return container && isStatic(container) === !!staticFlag && container.parent.symbol === searchSpaceNode.symbol ? nodeEntry(node) : void 0; - }); - return [{ definition: { type: 0 /* Symbol */, symbol: searchSpaceNode.symbol }, references: references }]; - } - function isParameterName(node) { - return node.kind === 80 /* Identifier */ && node.parent.kind === 169 /* Parameter */ && node.parent.name === node; - } - function getReferencesForThisKeyword(thisOrSuperKeyword, sourceFiles, cancellationToken) { - var searchSpaceNode = getThisContainer(thisOrSuperKeyword, - /*includeArrowFunctions*/ - false, - /*includeClassComputedPropertyName*/ - false); - var staticFlag = 32 /* Static */; - switch (searchSpaceNode.kind) { - case 174 /* MethodDeclaration */: - case 173 /* MethodSignature */: - if (isObjectLiteralMethod(searchSpaceNode)) { - staticFlag &= getSyntacticModifierFlags(searchSpaceNode); - searchSpaceNode = searchSpaceNode.parent; - break; - } - case 172 /* PropertyDeclaration */: - case 171 /* PropertySignature */: - case 176 /* Constructor */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - staticFlag &= getSyntacticModifierFlags(searchSpaceNode); - searchSpaceNode = searchSpaceNode.parent; - break; - case 312 /* SourceFile */: - if (isExternalModule(searchSpaceNode) || isParameterName(thisOrSuperKeyword)) { - return void 0; - } - case 262 /* FunctionDeclaration */: - case 218 /* FunctionExpression */: - break; - default: - return void 0; - } - var references = flatMap(searchSpaceNode.kind === 312 /* SourceFile */ ? sourceFiles : [searchSpaceNode.getSourceFile()], function (sourceFile) { - cancellationToken.throwIfCancellationRequested(); - return getPossibleSymbolReferenceNodes(sourceFile, "this", isSourceFile(searchSpaceNode) ? sourceFile : searchSpaceNode).filter(function (node) { - if (!isThis(node)) { - return false; - } - var container = getThisContainer(node, - /*includeArrowFunctions*/ - false, - /*includeClassComputedPropertyName*/ - false); - if (!canHaveSymbol(container)) - return false; - switch (searchSpaceNode.kind) { - case 218 /* FunctionExpression */: - case 262 /* FunctionDeclaration */: - return searchSpaceNode.symbol === container.symbol; - case 174 /* MethodDeclaration */: - case 173 /* MethodSignature */: - return isObjectLiteralMethod(searchSpaceNode) && searchSpaceNode.symbol === container.symbol; - case 231 /* ClassExpression */: - case 263 /* ClassDeclaration */: - case 210 /* ObjectLiteralExpression */: - return container.parent && canHaveSymbol(container.parent) && searchSpaceNode.symbol === container.parent.symbol && isStatic(container) === !!staticFlag; - case 312 /* SourceFile */: - return container.kind === 312 /* SourceFile */ && !isExternalModule(container) && !isParameterName(node); - } - }); - }).map(function (n) { return nodeEntry(n); }); - var thisParameter = firstDefined(references, function (r) { return isParameter(r.node.parent) ? r.node : void 0; }); - return [{ - definition: { type: 3 /* This */, node: thisParameter || thisOrSuperKeyword }, - references: references - }]; - } - function getReferencesForStringLiteral(node, sourceFiles, checker, cancellationToken) { - var type = getContextualTypeFromParentOrAncestorTypeNode(node, checker); - var references = flatMap(sourceFiles, function (sourceFile) { - cancellationToken.throwIfCancellationRequested(); - return mapDefined(getPossibleSymbolReferenceNodes(sourceFile, node.text), function (ref) { - if (isStringLiteralLike(ref) && ref.text === node.text) { - if (type) { - var refType = getContextualTypeFromParentOrAncestorTypeNode(ref, checker); - if (type !== checker.getStringType() && type === refType) { - return nodeEntry(ref, 2 /* StringLiteral */); - } - } - else { - return isNoSubstitutionTemplateLiteral(ref) && !rangeIsOnSingleLine(ref, sourceFile) ? void 0 : nodeEntry(ref, 2 /* StringLiteral */); - } - } - }); - }); - return [{ - definition: { type: 4 /* String */, node: node }, - references: references - }]; - } - function populateSearchSymbolSet(symbol, location, checker, isForRename, providePrefixAndSuffixText, implementations) { - var result = []; - forEachRelatedSymbol(symbol, location, checker, isForRename, !(isForRename && providePrefixAndSuffixText), function (sym, root, base) { - if (base) { - if (isStaticSymbol(symbol) !== isStaticSymbol(base)) { - base = void 0; - } - } - result.push(base || root || sym); - }, - // when try to find implementation, implementations is true, and not allowed to find base class - /*allowBaseTypes*/ - function () { return !implementations; }); - return result; - } - function forEachRelatedSymbol(symbol, location, checker, isForRenamePopulateSearchSymbolSet, onlyIncludeBindingElementAtReferenceLocation, cbSymbol, allowBaseTypes) { - var containingObjectLiteralElement = getContainingObjectLiteralElement(location); - if (containingObjectLiteralElement) { - var shorthandValueSymbol = checker.getShorthandAssignmentValueSymbol(location.parent); - if (shorthandValueSymbol && isForRenamePopulateSearchSymbolSet) { - return cbSymbol(shorthandValueSymbol, - /*rootSymbol*/ - void 0, - /*baseSymbol*/ - void 0, 3 /* SearchedLocalFoundProperty */); - } - var contextualType = checker.getContextualType(containingObjectLiteralElement.parent); - var res2 = contextualType && firstDefined(getPropertySymbolsFromContextualType(containingObjectLiteralElement, checker, contextualType, - /*unionSymbolOk*/ - true), function (sym) { return fromRoot(sym, 4 /* SearchedPropertyFoundLocal */); }); - if (res2) - return res2; - var propertySymbol = getPropertySymbolOfDestructuringAssignment(location, checker); - var res1 = propertySymbol && cbSymbol(propertySymbol, - /*rootSymbol*/ - void 0, - /*baseSymbol*/ - void 0, 4 /* SearchedPropertyFoundLocal */); - if (res1) - return res1; - var res22 = shorthandValueSymbol && cbSymbol(shorthandValueSymbol, - /*rootSymbol*/ - void 0, - /*baseSymbol*/ - void 0, 3 /* SearchedLocalFoundProperty */); - if (res22) - return res22; - } - var aliasedSymbol = getMergedAliasedSymbolOfNamespaceExportDeclaration(location, symbol, checker); - if (aliasedSymbol) { - var res2 = cbSymbol(aliasedSymbol, - /*rootSymbol*/ - void 0, - /*baseSymbol*/ - void 0, 1 /* Node */); - if (res2) - return res2; - } - var res = fromRoot(symbol); - if (res) - return res; - if (symbol.valueDeclaration && isParameterPropertyDeclaration(symbol.valueDeclaration, symbol.valueDeclaration.parent)) { - var paramProps = checker.getSymbolsOfParameterPropertyDeclaration(cast(symbol.valueDeclaration, isParameter), symbol.name); - Debug.assert(paramProps.length === 2 && !!(paramProps[0].flags & 1 /* FunctionScopedVariable */) && !!(paramProps[1].flags & 4 /* Property */)); - return fromRoot(symbol.flags & 1 /* FunctionScopedVariable */ ? paramProps[1] : paramProps[0]); - } - var exportSpecifier = getDeclarationOfKind(symbol, 281 /* ExportSpecifier */); - if (!isForRenamePopulateSearchSymbolSet || exportSpecifier && !exportSpecifier.propertyName) { - var localSymbol = exportSpecifier && checker.getExportSpecifierLocalTargetSymbol(exportSpecifier); - if (localSymbol) { - var res2 = cbSymbol(localSymbol, - /*rootSymbol*/ - void 0, - /*baseSymbol*/ - void 0, 1 /* Node */); - if (res2) - return res2; - } - } - if (!isForRenamePopulateSearchSymbolSet) { - var bindingElementPropertySymbol = void 0; - if (onlyIncludeBindingElementAtReferenceLocation) { - bindingElementPropertySymbol = isObjectBindingElementWithoutPropertyName(location.parent) ? getPropertySymbolFromBindingElement(checker, location.parent) : void 0; - } - else { - bindingElementPropertySymbol = getPropertySymbolOfObjectBindingPatternWithoutPropertyName(symbol, checker); - } - return bindingElementPropertySymbol && fromRoot(bindingElementPropertySymbol, 4 /* SearchedPropertyFoundLocal */); - } - Debug.assert(isForRenamePopulateSearchSymbolSet); - var includeOriginalSymbolOfBindingElement = onlyIncludeBindingElementAtReferenceLocation; - if (includeOriginalSymbolOfBindingElement) { - var bindingElementPropertySymbol = getPropertySymbolOfObjectBindingPatternWithoutPropertyName(symbol, checker); - return bindingElementPropertySymbol && fromRoot(bindingElementPropertySymbol, 4 /* SearchedPropertyFoundLocal */); - } - function fromRoot(sym, kind) { - return firstDefined(checker.getRootSymbols(sym), function (rootSymbol) { return cbSymbol(sym, rootSymbol, - /*baseSymbol*/ - void 0, kind) || (rootSymbol.parent && rootSymbol.parent.flags & (32 /* Class */ | 64 /* Interface */) && allowBaseTypes(rootSymbol) ? getPropertySymbolsFromBaseTypes(rootSymbol.parent, rootSymbol.name, checker, function (base) { return cbSymbol(sym, rootSymbol, base, kind); }) : void 0); }); - } - function getPropertySymbolOfObjectBindingPatternWithoutPropertyName(symbol2, checker2) { - var bindingElement = getDeclarationOfKind(symbol2, 208 /* BindingElement */); - if (bindingElement && isObjectBindingElementWithoutPropertyName(bindingElement)) { - return getPropertySymbolFromBindingElement(checker2, bindingElement); - } - } - } - function getPropertySymbolsFromBaseTypes(symbol, propertyName, checker, cb) { - var seen = /* @__PURE__ */ new Map(); - return recur(symbol); - function recur(symbol2) { - if (!(symbol2.flags & (32 /* Class */ | 64 /* Interface */)) || !addToSeen(seen, getSymbolId(symbol2))) - return; - return firstDefined(symbol2.declarations, function (declaration) { return firstDefined(getAllSuperTypeNodes(declaration), function (typeReference) { - var type = checker.getTypeAtLocation(typeReference); - var propertySymbol = type && type.symbol && checker.getPropertyOfType(type, propertyName); - return type && propertySymbol && (firstDefined(checker.getRootSymbols(propertySymbol), cb) || recur(type.symbol)); - }); }); - } - } - function isStaticSymbol(symbol) { - if (!symbol.valueDeclaration) - return false; - var modifierFlags = getEffectiveModifierFlags(symbol.valueDeclaration); - return !!(modifierFlags & 32 /* Static */); - } - function getRelatedSymbol(search, referenceSymbol, referenceLocation, state) { - var checker = state.checker; - return forEachRelatedSymbol(referenceSymbol, referenceLocation, checker, - /*isForRenamePopulateSearchSymbolSet*/ - false, - /*onlyIncludeBindingElementAtReferenceLocation*/ - state.options.use !== 2 /* Rename */ || !!state.options.providePrefixAndSuffixTextForRename, function (sym, rootSymbol, baseSymbol, kind) { - if (baseSymbol) { - if (isStaticSymbol(referenceSymbol) !== isStaticSymbol(baseSymbol)) { - baseSymbol = void 0; - } - } - return search.includes(baseSymbol || rootSymbol || sym) ? { symbol: rootSymbol && !(getCheckFlags(sym) & 6 /* Synthetic */) ? rootSymbol : sym, kind: kind } : void 0; - }, - /*allowBaseTypes*/ - function (rootSymbol) { return !(search.parents && !search.parents.some(function (parent2) { return explicitlyInheritsFrom(rootSymbol.parent, parent2, state.inheritsFromCache, checker); })); }); - } - function getIntersectingMeaningFromDeclarations(node, symbol) { - var e_855, _t; - var meaning = getMeaningFromLocation(node); - var declarations = symbol.declarations; - if (declarations) { - var lastIterationMeaning = void 0; - do { - lastIterationMeaning = meaning; - try { - for (var declarations_19 = (e_855 = void 0, __values(declarations)), declarations_19_1 = declarations_19.next(); !declarations_19_1.done; declarations_19_1 = declarations_19.next()) { - var declaration = declarations_19_1.value; - var declarationMeaning = getMeaningFromDeclaration(declaration); - if (declarationMeaning & meaning) { - meaning |= declarationMeaning; - } - } - } - catch (e_855_1) { e_855 = { error: e_855_1 }; } - finally { - try { - if (declarations_19_1 && !declarations_19_1.done && (_t = declarations_19.return)) _t.call(declarations_19); - } - finally { if (e_855) throw e_855.error; } - } - } while (meaning !== lastIterationMeaning); - } - return meaning; - } - Core2.getIntersectingMeaningFromDeclarations = getIntersectingMeaningFromDeclarations; - function isImplementation(node) { - return !!(node.flags & 33554432 /* Ambient */) ? !(isInterfaceDeclaration(node) || isTypeAliasDeclaration(node)) : isVariableLike(node) ? hasInitializer(node) : isFunctionLikeDeclaration(node) ? !!node.body : isClassLike(node) || isModuleOrEnumDeclaration(node); - } - function getReferenceEntriesForShorthandPropertyAssignment(node, checker, addReference2) { - var e_856, _t; - var refSymbol = checker.getSymbolAtLocation(node); - var shorthandSymbol = checker.getShorthandAssignmentValueSymbol(refSymbol.valueDeclaration); - if (shorthandSymbol) { - try { - for (var _u = __values(shorthandSymbol.getDeclarations()), _v = _u.next(); !_v.done; _v = _u.next()) { - var declaration = _v.value; - if (getMeaningFromDeclaration(declaration) & 1 /* Value */) { - addReference2(declaration); - } - } - } - catch (e_856_1) { e_856 = { error: e_856_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_856) throw e_856.error; } - } - } - } - Core2.getReferenceEntriesForShorthandPropertyAssignment = getReferenceEntriesForShorthandPropertyAssignment; - function forEachDescendantOfKind(node, kind, action) { - forEachChild(node, function (child) { - if (child.kind === kind) { - action(child); - } - forEachDescendantOfKind(child, kind, action); - }); - } - function tryGetClassByExtendingIdentifier(node) { - return tryGetClassExtendingExpressionWithTypeArguments(climbPastPropertyAccess(node).parent); - } - function getParentSymbolsOfPropertyAccess(location, symbol, checker) { - var propertyAccessExpression = isRightSideOfPropertyAccess(location) ? location.parent : void 0; - var lhsType = propertyAccessExpression && checker.getTypeAtLocation(propertyAccessExpression.expression); - var res = mapDefined(lhsType && (lhsType.isUnionOrIntersection() ? lhsType.types : lhsType.symbol === symbol.parent ? void 0 : [lhsType]), function (t) { return t.symbol && t.symbol.flags & (32 /* Class */ | 64 /* Interface */) ? t.symbol : void 0; }); - return res.length === 0 ? void 0 : res; - } - function isForRenameWithPrefixAndSuffixText(options) { - return options.use === 2 /* Rename */ && options.providePrefixAndSuffixTextForRename; - } -})(Core || (Core = {})); -// src/services/_namespaces/ts.GoToDefinition.ts -var ts_GoToDefinition_exports = {}; -__export(ts_GoToDefinition_exports, { - createDefinitionInfo: function () { return createDefinitionInfo; }, - findReferenceInPosition: function () { return findReferenceInPosition; }, - getDefinitionAndBoundSpan: function () { return getDefinitionAndBoundSpan; }, - getDefinitionAtPosition: function () { return getDefinitionAtPosition; }, - getReferenceAtPosition: function () { return getReferenceAtPosition; }, - getTypeDefinitionAtPosition: function () { return getTypeDefinitionAtPosition; } -}); -// src/services/goToDefinition.ts -function getDefinitionAtPosition(program, sourceFile, position, searchOtherFilesOnly, stopAtAlias) { - var _t; - var _a, _b; - var resolvedRef = getReferenceAtPosition(sourceFile, position, program); - var fileReferenceDefinition = resolvedRef && [getDefinitionInfoForFileReference(resolvedRef.reference.fileName, resolvedRef.fileName, resolvedRef.unverified)] || emptyArray; - if (resolvedRef == null ? void 0 : resolvedRef.file) { - return fileReferenceDefinition; - } - var node = getTouchingPropertyName(sourceFile, position); - if (node === sourceFile) { - return void 0; - } - var parent2 = node.parent; - var typeChecker = program.getTypeChecker(); - if (node.kind === 164 /* OverrideKeyword */ || isIdentifier(node) && isJSDocOverrideTag(parent2) && parent2.tagName === node) { - return getDefinitionFromOverriddenMember(typeChecker, node) || emptyArray; - } - if (isJumpStatementTarget(node)) { - var label = getTargetLabel(node.parent, node.text); - return label ? [createDefinitionInfoFromName(typeChecker, label, "label" /* label */, node.text, - /*containerName*/ - void 0)] : void 0; - } - if (node.kind === 107 /* ReturnKeyword */) { - var functionDeclaration = findAncestor(node.parent, function (n) { return isClassStaticBlockDeclaration(n) ? "quit" : isFunctionLikeDeclaration(n); }); - return functionDeclaration ? [createDefinitionFromSignatureDeclaration(typeChecker, functionDeclaration)] : void 0; - } - if (node.kind === 135 /* AwaitKeyword */) { - var functionDeclaration = findAncestor(node, function (n) { return isFunctionLikeDeclaration(n); }); - var isAsyncFunction2 = functionDeclaration && some(functionDeclaration.modifiers, function (node2) { return node2.kind === 134; } /* AsyncKeyword */); - return isAsyncFunction2 ? [createDefinitionFromSignatureDeclaration(typeChecker, functionDeclaration)] : void 0; - } - if (node.kind === 127 /* YieldKeyword */) { - var functionDeclaration = findAncestor(node, function (n) { return isFunctionLikeDeclaration(n); }); - var isGeneratorFunction = functionDeclaration && functionDeclaration.asteriskToken; - return isGeneratorFunction ? [createDefinitionFromSignatureDeclaration(typeChecker, functionDeclaration)] : void 0; - } - if (isStaticModifier(node) && isClassStaticBlockDeclaration(node.parent)) { - var classDecl = node.parent.parent; - var _u = getSymbol(classDecl, typeChecker, stopAtAlias), symbol2 = _u.symbol, failedAliasResolution2_1 = _u.failedAliasResolution; - var staticBlocks = filter(classDecl.members, isClassStaticBlockDeclaration); - var containerName_1 = symbol2 ? typeChecker.symbolToString(symbol2, classDecl) : ""; - var sourceFile2_1 = node.getSourceFile(); - return map(staticBlocks, function (staticBlock) { - var pos = moveRangePastModifiers(staticBlock).pos; - pos = skipTrivia(sourceFile2_1.text, pos); - return createDefinitionInfoFromName(typeChecker, staticBlock, "constructor" /* constructorImplementationElement */, "static {}", containerName_1, - /*unverified*/ - false, failedAliasResolution2_1, { start: pos, length: "static".length }); - }); - } - var _v = getSymbol(node, typeChecker, stopAtAlias), symbol = _v.symbol, failedAliasResolution = _v.failedAliasResolution; - var fallbackNode = node; - if (searchOtherFilesOnly && failedAliasResolution) { - var importDeclaration = forEach(__spreadArray([node], __read((symbol == null ? void 0 : symbol.declarations) || emptyArray), false), function (n) { return findAncestor(n, isAnyImportOrBareOrAccessedRequire); }); - var moduleSpecifier = importDeclaration && tryGetModuleSpecifierFromDeclaration(importDeclaration); - if (moduleSpecifier) { - (_t = getSymbol(moduleSpecifier, typeChecker, stopAtAlias), symbol = _t.symbol, failedAliasResolution = _t.failedAliasResolution); - fallbackNode = moduleSpecifier; - } - } - if (!symbol && isModuleSpecifierLike(fallbackNode)) { - var ref = (_b = (_a = sourceFile.resolvedModules) == null ? void 0 : _a.get(fallbackNode.text, getModeForUsageLocation(sourceFile, fallbackNode))) == null ? void 0 : _b.resolvedModule; - if (ref) { - return [{ - name: fallbackNode.text, - fileName: ref.resolvedFileName, - containerName: void 0, - containerKind: void 0, - kind: "script" /* scriptElement */, - textSpan: createTextSpan(0, 0), - failedAliasResolution: failedAliasResolution, - isAmbient: isDeclarationFileName(ref.resolvedFileName), - unverified: fallbackNode !== node - }]; - } - } - if (!symbol) { - return concatenate(fileReferenceDefinition, getDefinitionInfoForIndexSignatures(node, typeChecker)); - } - if (searchOtherFilesOnly && every(symbol.declarations, function (d) { return d.getSourceFile().fileName === sourceFile.fileName; })) - return void 0; - var calledDeclaration = tryGetSignatureDeclaration(typeChecker, node); - if (calledDeclaration && !(isJsxOpeningLikeElement(node.parent) && isConstructorLike(calledDeclaration))) { - var sigInfo = createDefinitionFromSignatureDeclaration(typeChecker, calledDeclaration, failedAliasResolution); - if (typeChecker.getRootSymbols(symbol).some(function (s) { return symbolMatchesSignature(s, calledDeclaration); })) { - return [sigInfo]; - } - else { - var defs = getDefinitionFromSymbol(typeChecker, symbol, node, failedAliasResolution, calledDeclaration) || emptyArray; - return node.kind === 108 /* SuperKeyword */ ? __spreadArray([sigInfo], __read(defs), false) : __spreadArray(__spreadArray([], __read(defs), false), [sigInfo], false); - } - } - if (node.parent.kind === 304 /* ShorthandPropertyAssignment */) { - var shorthandSymbol_1 = typeChecker.getShorthandAssignmentValueSymbol(symbol.valueDeclaration); - var definitions = (shorthandSymbol_1 == null ? void 0 : shorthandSymbol_1.declarations) ? shorthandSymbol_1.declarations.map(function (decl) { return createDefinitionInfo(decl, typeChecker, shorthandSymbol_1, node, - /*unverified*/ - false, failedAliasResolution); }) : emptyArray; - return concatenate(definitions, getDefinitionFromObjectLiteralElement(typeChecker, node)); - } - if (isPropertyName(node) && isBindingElement(parent2) && isObjectBindingPattern(parent2.parent) && node === (parent2.propertyName || parent2.name)) { - var name_130 = getNameFromPropertyName(node); - var type = typeChecker.getTypeAtLocation(parent2.parent); - return name_130 === void 0 ? emptyArray : flatMap(type.isUnion() ? type.types : [type], function (t) { - var prop = t.getProperty(name_130); - return prop && getDefinitionFromSymbol(typeChecker, prop, node); - }); - } - var objectLiteralElementDefinition = getDefinitionFromObjectLiteralElement(typeChecker, node); - return concatenate(fileReferenceDefinition, objectLiteralElementDefinition.length ? objectLiteralElementDefinition : getDefinitionFromSymbol(typeChecker, symbol, node, failedAliasResolution)); -} -function symbolMatchesSignature(s, calledDeclaration) { - var _a; - return s === calledDeclaration.symbol || s === calledDeclaration.symbol.parent || isAssignmentExpression(calledDeclaration.parent) || !isCallLikeExpression(calledDeclaration.parent) && s === ((_a = tryCast(calledDeclaration.parent, canHaveSymbol)) == null ? void 0 : _a.symbol); -} -function getDefinitionFromObjectLiteralElement(typeChecker, node) { - var element = getContainingObjectLiteralElement(node); - if (element) { - var contextualType = element && typeChecker.getContextualType(element.parent); - if (contextualType) { - return flatMap(getPropertySymbolsFromContextualType(element, typeChecker, contextualType, - /*unionSymbolOk*/ - false), function (propertySymbol) { return getDefinitionFromSymbol(typeChecker, propertySymbol, node); }); - } - } - return emptyArray; -} -function getDefinitionFromOverriddenMember(typeChecker, node) { - var classElement = findAncestor(node, isClassElement); - if (!(classElement && classElement.name)) - return; - var baseDeclaration = findAncestor(classElement, isClassLike); - if (!baseDeclaration) - return; - var baseTypeNode = getEffectiveBaseTypeNode(baseDeclaration); - if (!baseTypeNode) - return; - var expression = skipParentheses(baseTypeNode.expression); - var base = isClassExpression(expression) ? expression.symbol : typeChecker.getSymbolAtLocation(expression); - if (!base) - return; - var name = unescapeLeadingUnderscores(getTextOfPropertyName(classElement.name)); - var symbol = hasStaticModifier(classElement) ? typeChecker.getPropertyOfType(typeChecker.getTypeOfSymbol(base), name) : typeChecker.getPropertyOfType(typeChecker.getDeclaredTypeOfSymbol(base), name); - if (!symbol) - return; - return getDefinitionFromSymbol(typeChecker, symbol, node); -} -function getReferenceAtPosition(sourceFile, position, program) { - var _a, _b, _c, _d; - var referencePath = findReferenceInPosition(sourceFile.referencedFiles, position); - if (referencePath) { - var file = program.getSourceFileFromReference(sourceFile, referencePath); - return file && { reference: referencePath, fileName: file.fileName, file: file, unverified: false }; - } - var typeReferenceDirective = findReferenceInPosition(sourceFile.typeReferenceDirectives, position); - if (typeReferenceDirective) { - var reference = (_a = program.getResolvedTypeReferenceDirectives().get(typeReferenceDirective.fileName, typeReferenceDirective.resolutionMode || sourceFile.impliedNodeFormat)) == null ? void 0 : _a.resolvedTypeReferenceDirective; - var file = reference && program.getSourceFile(reference.resolvedFileName); - return file && { reference: typeReferenceDirective, fileName: file.fileName, file: file, unverified: false }; - } - var libReferenceDirective = findReferenceInPosition(sourceFile.libReferenceDirectives, position); - if (libReferenceDirective) { - var file = program.getLibFileFromReference(libReferenceDirective); - return file && { reference: libReferenceDirective, fileName: file.fileName, file: file, unverified: false }; - } - if ((_b = sourceFile.resolvedModules) == null ? void 0 : _b.size()) { - var node = getTouchingToken(sourceFile, position); - if (isModuleSpecifierLike(node) && isExternalModuleNameRelative(node.text) && sourceFile.resolvedModules.has(node.text, getModeForUsageLocation(sourceFile, node))) { - var verifiedFileName = (_d = (_c = sourceFile.resolvedModules.get(node.text, getModeForUsageLocation(sourceFile, node))) == null ? void 0 : _c.resolvedModule) == null ? void 0 : _d.resolvedFileName; - var fileName = verifiedFileName || resolvePath(getDirectoryPath(sourceFile.fileName), node.text); - return { - file: program.getSourceFile(fileName), - fileName: fileName, - reference: { - pos: node.getStart(), - end: node.getEnd(), - fileName: node.text - }, - unverified: !verifiedFileName - }; - } - } - return void 0; -} -var typesWithUnwrappedTypeArguments = /* @__PURE__ */ new Set([ - "Array", - "ArrayLike", - "ReadonlyArray", - "Promise", - "PromiseLike", - "Iterable", - "IterableIterator", - "AsyncIterable", - "Set", - "WeakSet", - "ReadonlySet", - "Map", - "WeakMap", - "ReadonlyMap", - "Partial", - "Required", - "Readonly", - "Pick", - "Omit" -]); -function shouldUnwrapFirstTypeArgumentTypeDefinitionFromTypeReference(typeChecker, type) { - var referenceName = type.symbol.name; - if (!typesWithUnwrappedTypeArguments.has(referenceName)) { - return false; - } - var globalType = typeChecker.resolveName(referenceName, - /*location*/ - void 0, 788968 /* Type */, - /*excludeGlobals*/ - false); - return !!globalType && globalType === type.target.symbol; -} -function shouldUnwrapFirstTypeArgumentTypeDefinitionFromAlias(typeChecker, type) { - if (!type.aliasSymbol) { - return false; - } - var referenceName = type.aliasSymbol.name; - if (!typesWithUnwrappedTypeArguments.has(referenceName)) { - return false; - } - var globalType = typeChecker.resolveName(referenceName, - /*location*/ - void 0, 788968 /* Type */, - /*excludeGlobals*/ - false); - return !!globalType && globalType === type.aliasSymbol; -} -function getFirstTypeArgumentDefinitions(typeChecker, type, node, failedAliasResolution) { - var _a, _b; - if (!!(getObjectFlags(type) & 4 /* Reference */) && shouldUnwrapFirstTypeArgumentTypeDefinitionFromTypeReference(typeChecker, type)) { - return definitionFromType(typeChecker.getTypeArguments(type)[0], typeChecker, node, failedAliasResolution); - } - if (shouldUnwrapFirstTypeArgumentTypeDefinitionFromAlias(typeChecker, type) && type.aliasTypeArguments) { - return definitionFromType(type.aliasTypeArguments[0], typeChecker, node, failedAliasResolution); - } - if (getObjectFlags(type) & 32 /* Mapped */ && type.target && shouldUnwrapFirstTypeArgumentTypeDefinitionFromAlias(typeChecker, type.target)) { - var declaration = (_b = (_a = type.aliasSymbol) == null ? void 0 : _a.declarations) == null ? void 0 : _b[0]; - if (declaration && isTypeAliasDeclaration(declaration) && isTypeReferenceNode(declaration.type) && declaration.type.typeArguments) { - return definitionFromType(typeChecker.getTypeAtLocation(declaration.type.typeArguments[0]), typeChecker, node, failedAliasResolution); - } - } - return []; -} -function getTypeDefinitionAtPosition(typeChecker, sourceFile, position) { - var node = getTouchingPropertyName(sourceFile, position); - if (node === sourceFile) { - return void 0; - } - if (isImportMeta(node.parent) && node.parent.name === node) { - return definitionFromType(typeChecker.getTypeAtLocation(node.parent), typeChecker, node.parent, - /*failedAliasResolution*/ - false); - } - var _t = getSymbol(node, typeChecker, - /*stopAtAlias*/ - false), symbol = _t.symbol, failedAliasResolution = _t.failedAliasResolution; - if (!symbol) - return void 0; - var typeAtLocation = typeChecker.getTypeOfSymbolAtLocation(symbol, node); - var returnType = tryGetReturnTypeOfFunction(symbol, typeAtLocation, typeChecker); - var fromReturnType = returnType && definitionFromType(returnType, typeChecker, node, failedAliasResolution); - var _u = __read(fromReturnType && fromReturnType.length !== 0 ? [returnType, fromReturnType] : [typeAtLocation, definitionFromType(typeAtLocation, typeChecker, node, failedAliasResolution)], 2), resolvedType = _u[0], typeDefinitions = _u[1]; - return typeDefinitions.length ? __spreadArray(__spreadArray([], __read(getFirstTypeArgumentDefinitions(typeChecker, resolvedType, node, failedAliasResolution)), false), __read(typeDefinitions), false) : !(symbol.flags & 111551 /* Value */) && symbol.flags & 788968 /* Type */ ? getDefinitionFromSymbol(typeChecker, skipAlias(symbol, typeChecker), node, failedAliasResolution) : void 0; -} -function definitionFromType(type, checker, node, failedAliasResolution) { - return flatMap(type.isUnion() && !(type.flags & 32 /* Enum */) ? type.types : [type], function (t) { return t.symbol && getDefinitionFromSymbol(checker, t.symbol, node, failedAliasResolution); }); -} -function tryGetReturnTypeOfFunction(symbol, type, checker) { - if (type.symbol === symbol || // At `const f = () => {}`, the symbol is `f` and the type symbol is at `() => {}` - symbol.valueDeclaration && type.symbol && isVariableDeclaration(symbol.valueDeclaration) && symbol.valueDeclaration.initializer === type.symbol.valueDeclaration) { - var sigs = type.getCallSignatures(); - if (sigs.length === 1) - return checker.getReturnTypeOfSignature(first(sigs)); - } - return void 0; -} -function getDefinitionAndBoundSpan(program, sourceFile, position) { - var definitions = getDefinitionAtPosition(program, sourceFile, position); - if (!definitions || definitions.length === 0) { - return void 0; - } - var comment = findReferenceInPosition(sourceFile.referencedFiles, position) || findReferenceInPosition(sourceFile.typeReferenceDirectives, position) || findReferenceInPosition(sourceFile.libReferenceDirectives, position); - if (comment) { - return { definitions: definitions, textSpan: createTextSpanFromRange(comment) }; - } - var node = getTouchingPropertyName(sourceFile, position); - var textSpan = createTextSpan(node.getStart(), node.getWidth()); - return { definitions: definitions, textSpan: textSpan }; -} -function getDefinitionInfoForIndexSignatures(node, checker) { - return mapDefined(checker.getIndexInfosAtLocation(node), function (info) { return info.declaration && createDefinitionFromSignatureDeclaration(checker, info.declaration); }); -} -function getSymbol(node, checker, stopAtAlias) { - var symbol = checker.getSymbolAtLocation(node); - var failedAliasResolution = false; - if ((symbol == null ? void 0 : symbol.declarations) && symbol.flags & 2097152 /* Alias */ && !stopAtAlias && shouldSkipAlias(node, symbol.declarations[0])) { - var aliased = checker.getAliasedSymbol(symbol); - if (aliased.declarations) { - return { symbol: aliased }; - } - else { - failedAliasResolution = true; - } - } - return { symbol: symbol, failedAliasResolution: failedAliasResolution }; -} -function shouldSkipAlias(node, declaration) { - if (node.kind !== 80 /* Identifier */) { - return false; - } - if (node.parent === declaration) { - return true; - } - if (declaration.kind === 274 /* NamespaceImport */) { - return false; - } - return true; -} -function isExpandoDeclaration(node) { - if (!isAssignmentDeclaration(node)) - return false; - var containingAssignment = findAncestor(node, function (p) { - if (isAssignmentExpression(p)) - return true; - if (!isAssignmentDeclaration(p)) - return "quit"; - return false; - }); - return !!containingAssignment && getAssignmentDeclarationKind(containingAssignment) === 5 /* Property */; -} -function getDefinitionFromSymbol(typeChecker, symbol, node, failedAliasResolution, excludeDeclaration) { - var filteredDeclarations = filter(symbol.declarations, function (d) { return d !== excludeDeclaration; }); - var withoutExpandos = filter(filteredDeclarations, function (d) { return !isExpandoDeclaration(d); }); - var results = some(withoutExpandos) ? withoutExpandos : filteredDeclarations; - return getConstructSignatureDefinition() || getCallSignatureDefinition() || map(results, function (declaration) { return createDefinitionInfo(declaration, typeChecker, symbol, node, - /*unverified*/ - false, failedAliasResolution); }); - function getConstructSignatureDefinition() { - if (symbol.flags & 32 /* Class */ && !(symbol.flags & (16 /* Function */ | 3 /* Variable */)) && (isNewExpressionTarget(node) || node.kind === 137 /* ConstructorKeyword */)) { - var cls = find(filteredDeclarations, isClassLike) || Debug.fail("Expected declaration to have at least one class-like declaration"); - return getSignatureDefinition(cls.members, - /*selectConstructors*/ - true); - } - } - function getCallSignatureDefinition() { - return isCallOrNewExpressionTarget(node) || isNameOfFunctionDeclaration(node) ? getSignatureDefinition(filteredDeclarations, - /*selectConstructors*/ - false) : void 0; - } - function getSignatureDefinition(signatureDeclarations, selectConstructors) { - if (!signatureDeclarations) { - return void 0; - } - var declarations = signatureDeclarations.filter(selectConstructors ? isConstructorDeclaration : isFunctionLike); - var declarationsWithBody = declarations.filter(function (d) { return !!d.body; }); - return declarations.length ? declarationsWithBody.length !== 0 ? declarationsWithBody.map(function (x) { return createDefinitionInfo(x, typeChecker, symbol, node); }) : [createDefinitionInfo(last(declarations), typeChecker, symbol, node, - /*unverified*/ - false, failedAliasResolution)] : void 0; - } -} -function createDefinitionInfo(declaration, checker, symbol, node, unverified, failedAliasResolution) { - var symbolName2 = checker.symbolToString(symbol); - var symbolKind = ts_SymbolDisplay_exports.getSymbolKind(checker, symbol, node); - var containerName = symbol.parent ? checker.symbolToString(symbol.parent, node) : ""; - return createDefinitionInfoFromName(checker, declaration, symbolKind, symbolName2, containerName, unverified, failedAliasResolution); -} -function createDefinitionInfoFromName(checker, declaration, symbolKind, symbolName2, containerName, unverified, failedAliasResolution, textSpan) { - var sourceFile = declaration.getSourceFile(); - if (!textSpan) { - var name_131 = getNameOfDeclaration(declaration) || declaration; - textSpan = createTextSpanFromNode(name_131, sourceFile); - } - return __assign(__assign({ fileName: sourceFile.fileName, textSpan: textSpan, kind: symbolKind, name: symbolName2, containerKind: void 0, - // TODO: GH#18217 - containerName: containerName }, ts_FindAllReferences_exports.toContextSpan(textSpan, sourceFile, ts_FindAllReferences_exports.getContextNode(declaration))), { isLocal: !isDefinitionVisible(checker, declaration), isAmbient: !!(declaration.flags & 33554432 /* Ambient */), unverified: unverified, failedAliasResolution: failedAliasResolution }); -} -function isDefinitionVisible(checker, declaration) { - if (checker.isDeclarationVisible(declaration)) - return true; - if (!declaration.parent) - return false; - if (hasInitializer(declaration.parent) && declaration.parent.initializer === declaration) - return isDefinitionVisible(checker, declaration.parent); - switch (declaration.kind) { - case 172 /* PropertyDeclaration */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - case 174 /* MethodDeclaration */: - if (hasEffectiveModifier(declaration, 8 /* Private */)) - return false; - case 176 /* Constructor */: - case 303 /* PropertyAssignment */: - case 304 /* ShorthandPropertyAssignment */: - case 210 /* ObjectLiteralExpression */: - case 231 /* ClassExpression */: - case 219 /* ArrowFunction */: - case 218 /* FunctionExpression */: - return isDefinitionVisible(checker, declaration.parent); - default: - return false; - } -} -function createDefinitionFromSignatureDeclaration(typeChecker, decl, failedAliasResolution) { - return createDefinitionInfo(decl, typeChecker, decl.symbol, decl, - /*unverified*/ - false, failedAliasResolution); -} -function findReferenceInPosition(refs, pos) { - return find(refs, function (ref) { return textRangeContainsPositionInclusive(ref, pos); }); -} -function getDefinitionInfoForFileReference(name, targetFileName, unverified) { - return { - fileName: targetFileName, - textSpan: createTextSpanFromBounds(0, 0), - kind: "script" /* scriptElement */, - name: name, - containerName: void 0, - containerKind: void 0, - // TODO: GH#18217 - unverified: unverified - }; -} -function getAncestorCallLikeExpression(node) { - var target = findAncestor(node, function (n) { return !isRightSideOfPropertyAccess(n); }); - var callLike = target == null ? void 0 : target.parent; - return callLike && isCallLikeExpression(callLike) && getInvokedExpression(callLike) === target ? callLike : void 0; -} -function tryGetSignatureDeclaration(typeChecker, node) { - var callLike = getAncestorCallLikeExpression(node); - var signature = callLike && typeChecker.getResolvedSignature(callLike); - return tryCast(signature && signature.declaration, function (d) { return isFunctionLike(d) && !isFunctionTypeNode(d); }); -} -function isConstructorLike(node) { - switch (node.kind) { - case 176 /* Constructor */: - case 185 /* ConstructorType */: - case 180 /* ConstructSignature */: - return true; - default: - return false; - } -} -// src/services/_namespaces/ts.InlayHints.ts -var ts_InlayHints_exports = {}; -__export(ts_InlayHints_exports, { - provideInlayHints: function () { return provideInlayHints; } -}); -// src/services/inlayHints.ts -var maxTypeHintLength = 30; -var leadingParameterNameCommentRegexFactory = function (name) { - return new RegExp("^\\s?/\\*\\*?\\s?".concat(name, "\\s?\\*\\/\\s?$")); -}; -function shouldShowParameterNameHints(preferences) { - return preferences.includeInlayParameterNameHints === "literals" || preferences.includeInlayParameterNameHints === "all"; -} -function shouldShowLiteralParameterNameHintsOnly(preferences) { - return preferences.includeInlayParameterNameHints === "literals"; -} -function shouldUseInteractiveInlayHints(preferences) { - return preferences.interactiveInlayHints === true; -} -function provideInlayHints(context) { - var file = context.file, program = context.program, span = context.span, cancellationToken = context.cancellationToken, preferences = context.preferences; - var sourceFileText = file.text; - var compilerOptions = program.getCompilerOptions(); - var checker = program.getTypeChecker(); - var result = []; - visitor(file); - return result; - function visitor(node) { - if (!node || node.getFullWidth() === 0) { - return; - } - switch (node.kind) { - case 267 /* ModuleDeclaration */: - case 263 /* ClassDeclaration */: - case 264 /* InterfaceDeclaration */: - case 262 /* FunctionDeclaration */: - case 231 /* ClassExpression */: - case 218 /* FunctionExpression */: - case 174 /* MethodDeclaration */: - case 219 /* ArrowFunction */: - cancellationToken.throwIfCancellationRequested(); - } - if (!textSpanIntersectsWith(span, node.pos, node.getFullWidth())) { - return; - } - if (isTypeNode(node) && !isExpressionWithTypeArguments(node)) { - return; - } - if (preferences.includeInlayVariableTypeHints && isVariableDeclaration(node)) { - visitVariableLikeDeclaration(node); - } - else if (preferences.includeInlayPropertyDeclarationTypeHints && isPropertyDeclaration(node)) { - visitVariableLikeDeclaration(node); - } - else if (preferences.includeInlayEnumMemberValueHints && isEnumMember(node)) { - visitEnumMember(node); - } - else if (shouldShowParameterNameHints(preferences) && (isCallExpression(node) || isNewExpression(node))) { - visitCallOrNewExpression(node); - } - else { - if (preferences.includeInlayFunctionParameterTypeHints && isFunctionLikeDeclaration(node) && hasContextSensitiveParameters(node)) { - visitFunctionLikeForParameterType(node); - } - if (preferences.includeInlayFunctionLikeReturnTypeHints && isSignatureSupportingReturnAnnotation(node)) { - visitFunctionDeclarationLikeForReturnType(node); - } - } - return forEachChild(node, visitor); - } - function isSignatureSupportingReturnAnnotation(node) { - return isArrowFunction(node) || isFunctionExpression(node) || isFunctionDeclaration(node) || isMethodDeclaration(node) || isGetAccessorDeclaration(node); - } - function addParameterHints(text, parameter, position, isFirstVariadicArgument) { - var hintText = "".concat(isFirstVariadicArgument ? "..." : "").concat(text); - var displayParts; - if (shouldUseInteractiveInlayHints(preferences)) { - displayParts = [getNodeDisplayPart(hintText, parameter), { text: ":" }]; - hintText = ""; - } - else { - hintText += ":"; - } - result.push({ - text: hintText, - position: position, - kind: "Parameter" /* Parameter */, - whitespaceAfter: true, - displayParts: displayParts - }); - } - function addTypeHints(text, position) { - result.push({ - text: ": ".concat(text.length > maxTypeHintLength ? text.substr(0, maxTypeHintLength - "...".length) + "..." : text), - position: position, - kind: "Type" /* Type */, - whitespaceBefore: true - }); - } - function addEnumMemberValueHints(text, position) { - result.push({ - text: "= ".concat(text), - position: position, - kind: "Enum" /* Enum */, - whitespaceBefore: true - }); - } - function visitEnumMember(member) { - if (member.initializer) { - return; - } - var enumValue = checker.getConstantValue(member); - if (enumValue !== void 0) { - addEnumMemberValueHints(enumValue.toString(), member.end); - } - } - function isModuleReferenceType(type) { - return type.symbol && type.symbol.flags & 1536 /* Module */; - } - function visitVariableLikeDeclaration(decl) { - if (!decl.initializer || isBindingPattern(decl.name) || isVariableDeclaration(decl) && !isHintableDeclaration(decl)) { - return; - } - var effectiveTypeAnnotation = getEffectiveTypeAnnotationNode(decl); - if (effectiveTypeAnnotation) { - return; - } - var declarationType = checker.getTypeAtLocation(decl); - if (isModuleReferenceType(declarationType)) { - return; - } - var typeDisplayString = printTypeInSingleLine(declarationType); - if (typeDisplayString) { - var isVariableNameMatchesType = preferences.includeInlayVariableTypeHintsWhenTypeMatchesName === false && equateStringsCaseInsensitive(decl.name.getText(), typeDisplayString); - if (isVariableNameMatchesType) { - return; - } - addTypeHints(typeDisplayString, decl.name.end); - } - } - function visitCallOrNewExpression(expr) { - var e_857, _t; - var args = expr.arguments; - if (!args || !args.length) { - return; - } - var candidates = []; - var signature = checker.getResolvedSignatureForSignatureHelp(expr, candidates); - if (!signature || !candidates.length) { - return; - } - var signatureParamPos = 0; - try { - for (var args_3 = __values(args), args_3_1 = args_3.next(); !args_3_1.done; args_3_1 = args_3.next()) { - var originalArg = args_3_1.value; - var arg = skipParentheses(originalArg); - if (shouldShowLiteralParameterNameHintsOnly(preferences) && !isHintableLiteral(arg)) { - continue; - } - var spreadArgs = 0; - if (isSpreadElement(arg)) { - var spreadType = checker.getTypeAtLocation(arg.expression); - if (checker.isTupleType(spreadType)) { - var _u = spreadType.target, elementFlags = _u.elementFlags, fixedLength = _u.fixedLength; - if (fixedLength === 0) { - continue; - } - var firstOptionalIndex = findIndex(elementFlags, function (f) { return !(f & 1 /* Required */); }); - var requiredArgs = firstOptionalIndex < 0 ? fixedLength : firstOptionalIndex; - if (requiredArgs > 0) { - spreadArgs = firstOptionalIndex < 0 ? fixedLength : firstOptionalIndex; - } - } - } - var identifierInfo = checker.getParameterIdentifierInfoAtPosition(signature, signatureParamPos); - signatureParamPos = signatureParamPos + (spreadArgs || 1); - if (identifierInfo) { - var parameter = identifierInfo.parameter, parameterName = identifierInfo.parameterName, isFirstVariadicArgument = identifierInfo.isRestParameter; - var isParameterNameNotSameAsArgument = preferences.includeInlayParameterNameHintsWhenArgumentMatchesName || !identifierOrAccessExpressionPostfixMatchesParameterName(arg, parameterName); - if (!isParameterNameNotSameAsArgument && !isFirstVariadicArgument) { - continue; - } - var name_132 = unescapeLeadingUnderscores(parameterName); - if (leadingCommentsContainsParameterName(arg, name_132)) { - continue; - } - addParameterHints(name_132, parameter, originalArg.getStart(), isFirstVariadicArgument); - } - } - } - catch (e_857_1) { e_857 = { error: e_857_1 }; } - finally { - try { - if (args_3_1 && !args_3_1.done && (_t = args_3.return)) _t.call(args_3); - } - finally { if (e_857) throw e_857.error; } - } - } - function identifierOrAccessExpressionPostfixMatchesParameterName(expr, parameterName) { - if (isIdentifier(expr)) { - return expr.text === parameterName; - } - if (isPropertyAccessExpression(expr)) { - return expr.name.text === parameterName; - } - return false; - } - function leadingCommentsContainsParameterName(node, name) { - if (!isIdentifierText(name, compilerOptions.target, getLanguageVariant(file.scriptKind))) { - return false; - } - var ranges = getLeadingCommentRanges(sourceFileText, node.pos); - if (!(ranges == null ? void 0 : ranges.length)) { - return false; - } - var regex = leadingParameterNameCommentRegexFactory(name); - return some(ranges, function (range) { return regex.test(sourceFileText.substring(range.pos, range.end)); }); - } - function isHintableLiteral(node) { - switch (node.kind) { - case 224 /* PrefixUnaryExpression */: { - var operand = node.operand; - return isLiteralExpression(operand) || isIdentifier(operand) && isInfinityOrNaNString(operand.escapedText); - } - case 112 /* TrueKeyword */: - case 97 /* FalseKeyword */: - case 106 /* NullKeyword */: - case 15 /* NoSubstitutionTemplateLiteral */: - case 228 /* TemplateExpression */: - return true; - case 80 /* Identifier */: { - var name_133 = node.escapedText; - return isUndefined(name_133) || isInfinityOrNaNString(name_133); - } - } - return isLiteralExpression(node); - } - function visitFunctionDeclarationLikeForReturnType(decl) { - if (isArrowFunction(decl)) { - if (!findChildOfKind(decl, 21 /* OpenParenToken */, file)) { - return; - } - } - var effectiveTypeAnnotation = getEffectiveReturnTypeNode(decl); - if (effectiveTypeAnnotation || !decl.body) { - return; - } - var signature = checker.getSignatureFromDeclaration(decl); - if (!signature) { - return; - } - var returnType = checker.getReturnTypeOfSignature(signature); - if (isModuleReferenceType(returnType)) { - return; - } - var typeDisplayString = printTypeInSingleLine(returnType); - if (!typeDisplayString) { - return; - } - addTypeHints(typeDisplayString, getTypeAnnotationPosition(decl)); - } - function getTypeAnnotationPosition(decl) { - var closeParenToken = findChildOfKind(decl, 22 /* CloseParenToken */, file); - if (closeParenToken) { - return closeParenToken.end; - } - return decl.parameters.end; - } - function visitFunctionLikeForParameterType(node) { - var signature = checker.getSignatureFromDeclaration(node); - if (!signature) { - return; - } - for (var i = 0; i < node.parameters.length && i < signature.parameters.length; ++i) { - var param = node.parameters[i]; - if (!isHintableDeclaration(param)) { - continue; - } - var effectiveTypeAnnotation = getEffectiveTypeAnnotationNode(param); - if (effectiveTypeAnnotation) { - continue; - } - var typeDisplayString = getParameterDeclarationTypeDisplayString(signature.parameters[i]); - if (!typeDisplayString) { - continue; - } - addTypeHints(typeDisplayString, param.questionToken ? param.questionToken.end : param.name.end); - } - } - function getParameterDeclarationTypeDisplayString(symbol) { - var valueDeclaration = symbol.valueDeclaration; - if (!valueDeclaration || !isParameter(valueDeclaration)) { - return void 0; - } - var signatureParamType = checker.getTypeOfSymbolAtLocation(symbol, valueDeclaration); - if (isModuleReferenceType(signatureParamType)) { - return void 0; - } - return printTypeInSingleLine(signatureParamType); - } - function printTypeInSingleLine(type) { - var flags = 70221824 /* IgnoreErrors */ | 1048576 /* AllowUniqueESSymbolType */ | 16384 /* UseAliasDefinedOutsideCurrentScope */; - var printer = createPrinterWithRemoveComments(); - return usingSingleLineStringWriter(function (writer) { - var typeNode = checker.typeToTypeNode(type, - /*enclosingDeclaration*/ - void 0, flags); - Debug.assertIsDefined(typeNode, "should always get typenode"); - printer.writeNode(4 /* Unspecified */, typeNode, - /*sourceFile*/ - file, writer); - }); - } - function isUndefined(name) { - return name === "undefined"; - } - function isHintableDeclaration(node) { - if ((isParameterDeclaration(node) || isVariableDeclaration(node) && isVarConst(node)) && node.initializer) { - var initializer = skipParentheses(node.initializer); - return !(isHintableLiteral(initializer) || isNewExpression(initializer) || isObjectLiteralExpression(initializer) || isAssertionExpression(initializer)); - } - return true; - } - function getNodeDisplayPart(text, node) { - var sourceFile = node.getSourceFile(); - return { - text: text, - span: createTextSpanFromNode(node, sourceFile), - file: sourceFile.fileName - }; - } -} -// src/services/_namespaces/ts.JsDoc.ts -var ts_JsDoc_exports = {}; -__export(ts_JsDoc_exports, { - getDocCommentTemplateAtPosition: function () { return getDocCommentTemplateAtPosition; }, - getJSDocParameterNameCompletionDetails: function () { return getJSDocParameterNameCompletionDetails; }, - getJSDocParameterNameCompletions: function () { return getJSDocParameterNameCompletions; }, - getJSDocTagCompletionDetails: function () { return getJSDocTagCompletionDetails; }, - getJSDocTagCompletions: function () { return getJSDocTagCompletions; }, - getJSDocTagNameCompletionDetails: function () { return getJSDocTagNameCompletionDetails; }, - getJSDocTagNameCompletions: function () { return getJSDocTagNameCompletions; }, - getJsDocCommentsFromDeclarations: function () { return getJsDocCommentsFromDeclarations; }, - getJsDocTagsFromDeclarations: function () { return getJsDocTagsFromDeclarations; } -}); -// src/services/jsDoc.ts -var jsDocTagNames = [ - "abstract", - "access", - "alias", - "argument", - "async", - "augments", - "author", - "borrows", - "callback", - "class", - "classdesc", - "constant", - "constructor", - "constructs", - "copyright", - "default", - "deprecated", - "description", - "emits", - "enum", - "event", - "example", - "exports", - "extends", - "external", - "field", - "file", - "fileoverview", - "fires", - "function", - "generator", - "global", - "hideconstructor", - "host", - "ignore", - "implements", - "inheritdoc", - "inner", - "instance", - "interface", - "kind", - "lends", - "license", - "link", - "linkcode", - "linkplain", - "listens", - "member", - "memberof", - "method", - "mixes", - "module", - "name", - "namespace", - "overload", - "override", - "package", - "param", - "private", - "prop", - "property", - "protected", - "public", - "readonly", - "requires", - "returns", - "satisfies", - "see", - "since", - "static", - "summary", - "template", - "this", - "throws", - "todo", - "tutorial", - "type", - "typedef", - "var", - "variation", - "version", - "virtual", - "yields" -]; -var jsDocTagNameCompletionEntries; -var jsDocTagCompletionEntries; -function getJsDocCommentsFromDeclarations(declarations, checker) { - var parts = []; - forEachUnique(declarations, function (declaration) { - var e_858, _t; - try { - for (var _u = __values(getCommentHavingNodes(declaration)), _v = _u.next(); !_v.done; _v = _u.next()) { - var jsdoc = _v.value; - var inheritDoc = isJSDoc(jsdoc) && jsdoc.tags && find(jsdoc.tags, function (t) { return t.kind === 334 /* JSDocTag */ && (t.tagName.escapedText === "inheritDoc" || t.tagName.escapedText === "inheritdoc"); }); - if (jsdoc.comment === void 0 && !inheritDoc || isJSDoc(jsdoc) && declaration.kind !== 353 /* JSDocTypedefTag */ && declaration.kind !== 345 /* JSDocCallbackTag */ && jsdoc.tags && jsdoc.tags.some(function (t) { return t.kind === 353 /* JSDocTypedefTag */ || t.kind === 345; } /* JSDocCallbackTag */) && !jsdoc.tags.some(function (t) { return t.kind === 348 /* JSDocParameterTag */ || t.kind === 349; } /* JSDocReturnTag */)) { - continue; - } - var newparts = jsdoc.comment ? getDisplayPartsFromComment(jsdoc.comment, checker) : []; - if (inheritDoc && inheritDoc.comment) { - newparts = newparts.concat(getDisplayPartsFromComment(inheritDoc.comment, checker)); - } - if (!contains(parts, newparts, isIdenticalListOfDisplayParts)) { - parts.push(newparts); - } - } - } - catch (e_858_1) { e_858 = { error: e_858_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_858) throw e_858.error; } - } - }); - return flatten(intersperse(parts, [lineBreakPart()])); -} -function isIdenticalListOfDisplayParts(parts1, parts2) { - return arraysEqual(parts1, parts2, function (p1, p2) { return p1.kind === p2.kind && p1.text === p2.text; }); -} -function getCommentHavingNodes(declaration) { - switch (declaration.kind) { - case 348 /* JSDocParameterTag */: - case 355 /* JSDocPropertyTag */: - return [declaration]; - case 345 /* JSDocCallbackTag */: - case 353 /* JSDocTypedefTag */: - return [declaration, declaration.parent]; - default: - return getJSDocCommentsAndTags(declaration); - } -} -function getJsDocTagsFromDeclarations(declarations, checker) { - var infos = []; - forEachUnique(declarations, function (declaration) { - var e_859, _t; - var tags = getJSDocTags(declaration); - if (tags.some(function (t) { return t.kind === 353 /* JSDocTypedefTag */ || t.kind === 345; } /* JSDocCallbackTag */) && !tags.some(function (t) { return t.kind === 348 /* JSDocParameterTag */ || t.kind === 349; } /* JSDocReturnTag */)) { - return; - } - try { - for (var tags_2 = __values(tags), tags_2_1 = tags_2.next(); !tags_2_1.done; tags_2_1 = tags_2.next()) { - var tag = tags_2_1.value; - infos.push({ name: tag.tagName.text, text: getCommentDisplayParts(tag, checker) }); - } - } - catch (e_859_1) { e_859 = { error: e_859_1 }; } - finally { - try { - if (tags_2_1 && !tags_2_1.done && (_t = tags_2.return)) _t.call(tags_2); - } - finally { if (e_859) throw e_859.error; } - } - }); - return infos; -} -function getDisplayPartsFromComment(comment, checker) { - if (typeof comment === "string") { - return [textPart(comment)]; - } - return flatMap(comment, function (node) { return node.kind === 328 /* JSDocText */ ? [textPart(node.text)] : buildLinkParts(node, checker); }); -} -function getCommentDisplayParts(tag, checker) { - var comment = tag.comment, kind = tag.kind; - var namePart = getTagNameDisplayPart(kind); - switch (kind) { - case 356 /* JSDocThrowsTag */: - var typeExpression = tag.typeExpression; - return typeExpression ? withNode(typeExpression) : comment === void 0 ? void 0 : getDisplayPartsFromComment(comment, checker); - case 336 /* JSDocImplementsTag */: - return withNode(tag.class); - case 335 /* JSDocAugmentsTag */: - return withNode(tag.class); - case 352 /* JSDocTemplateTag */: - var templateTag = tag; - var displayParts_1 = []; - if (templateTag.constraint) { - displayParts_1.push(textPart(templateTag.constraint.getText())); - } - if (length(templateTag.typeParameters)) { - if (length(displayParts_1)) { - displayParts_1.push(spacePart()); - } - var lastTypeParameter_1 = templateTag.typeParameters[templateTag.typeParameters.length - 1]; - forEach(templateTag.typeParameters, function (tp) { - displayParts_1.push(namePart(tp.getText())); - if (lastTypeParameter_1 !== tp) { - displayParts_1.push.apply(displayParts_1, [punctuationPart(28 /* CommaToken */), spacePart()]); - } - }); - } - if (comment) { - displayParts_1.push.apply(displayParts_1, __spreadArray([], __read(__spreadArray([spacePart()], __read(getDisplayPartsFromComment(comment, checker)), false)), false)); - } - return displayParts_1; - case 351 /* JSDocTypeTag */: - case 357 /* JSDocSatisfiesTag */: - return withNode(tag.typeExpression); - case 353 /* JSDocTypedefTag */: - case 345 /* JSDocCallbackTag */: - case 355 /* JSDocPropertyTag */: - case 348 /* JSDocParameterTag */: - case 354 /* JSDocSeeTag */: - var name_134 = tag.name; - return name_134 ? withNode(name_134) : comment === void 0 ? void 0 : getDisplayPartsFromComment(comment, checker); - default: - return comment === void 0 ? void 0 : getDisplayPartsFromComment(comment, checker); - } - function withNode(node) { - return addComment(node.getText()); - } - function addComment(s) { - if (comment) { - if (s.match(/^https?$/)) { - return __spreadArray([textPart(s)], __read(getDisplayPartsFromComment(comment, checker)), false); - } - else { - return __spreadArray([namePart(s), spacePart()], __read(getDisplayPartsFromComment(comment, checker)), false); - } - } - else { - return [textPart(s)]; - } - } -} -function getTagNameDisplayPart(kind) { - switch (kind) { - case 348 /* JSDocParameterTag */: - return parameterNamePart; - case 355 /* JSDocPropertyTag */: - return propertyNamePart; - case 352 /* JSDocTemplateTag */: - return typeParameterNamePart; - case 353 /* JSDocTypedefTag */: - case 345 /* JSDocCallbackTag */: - return typeAliasNamePart; - default: - return textPart; - } -} -function getJSDocTagNameCompletions() { - return jsDocTagNameCompletionEntries || (jsDocTagNameCompletionEntries = map(jsDocTagNames, function (tagName) { - return { - name: tagName, - kind: "keyword" /* keyword */, - kindModifiers: "", - sortText: ts_Completions_exports.SortText.LocationPriority - }; - })); -} -var getJSDocTagNameCompletionDetails = getJSDocTagCompletionDetails; -function getJSDocTagCompletions() { - return jsDocTagCompletionEntries || (jsDocTagCompletionEntries = map(jsDocTagNames, function (tagName) { - return { - name: "@".concat(tagName), - kind: "keyword" /* keyword */, - kindModifiers: "", - sortText: ts_Completions_exports.SortText.LocationPriority - }; - })); -} -function getJSDocTagCompletionDetails(name) { - return { - name: name, - kind: "" /* unknown */, - // TODO: should have its own kind? - kindModifiers: "", - displayParts: [textPart(name)], - documentation: emptyArray, - tags: void 0, - codeActions: void 0 - }; -} -function getJSDocParameterNameCompletions(tag) { - if (!isIdentifier(tag.name)) { - return emptyArray; - } - var nameThusFar = tag.name.text; - var jsdoc = tag.parent; - var fn = jsdoc.parent; - if (!isFunctionLike(fn)) - return []; - return mapDefined(fn.parameters, function (param) { - if (!isIdentifier(param.name)) - return void 0; - var name = param.name.text; - if (jsdoc.tags.some(function (t) { return t !== tag && isJSDocParameterTag(t) && isIdentifier(t.name) && t.name.escapedText === name; }) || nameThusFar !== void 0 && !startsWith(name, nameThusFar)) { - return void 0; - } - return { name: name, kind: "parameter" /* parameterElement */, kindModifiers: "", sortText: ts_Completions_exports.SortText.LocationPriority }; - }); -} -function getJSDocParameterNameCompletionDetails(name) { - return { - name: name, - kind: "parameter" /* parameterElement */, - kindModifiers: "", - displayParts: [textPart(name)], - documentation: emptyArray, - tags: void 0, - codeActions: void 0 - }; -} -function getDocCommentTemplateAtPosition(newLine, sourceFile, position, options) { - var tokenAtPos = getTokenAtPosition(sourceFile, position); - var existingDocComment = findAncestor(tokenAtPos, isJSDoc); - if (existingDocComment && (existingDocComment.comment !== void 0 || length(existingDocComment.tags))) { - return void 0; - } - var tokenStart = tokenAtPos.getStart(sourceFile); - if (!existingDocComment && tokenStart < position) { - return void 0; - } - var commentOwnerInfo = getCommentOwnerInfo(tokenAtPos, options); - if (!commentOwnerInfo) { - return void 0; - } - var commentOwner = commentOwnerInfo.commentOwner, parameters = commentOwnerInfo.parameters, hasReturn2 = commentOwnerInfo.hasReturn; - var commentOwnerJsDoc = hasJSDocNodes(commentOwner) && commentOwner.jsDoc ? commentOwner.jsDoc : void 0; - var lastJsDoc = lastOrUndefined(commentOwnerJsDoc); - if (commentOwner.getStart(sourceFile) < position || lastJsDoc && existingDocComment && lastJsDoc !== existingDocComment) { - return void 0; - } - var indentationStr = getIndentationStringAtPosition(sourceFile, position); - var isJavaScriptFile = hasJSFileExtension(sourceFile.fileName); - var tags = (parameters ? parameterDocComments(parameters || [], isJavaScriptFile, indentationStr, newLine) : "") + (hasReturn2 ? returnsDocComment(indentationStr, newLine) : ""); - var openComment = "/**"; - var closeComment = " */"; - var hasTag = length(getJSDocTags(commentOwner)) > 0; - if (tags && !hasTag) { - var preamble = openComment + newLine + indentationStr + " * "; - var endLine = tokenStart === position ? newLine + indentationStr : ""; - var result = preamble + newLine + tags + indentationStr + closeComment + endLine; - return { newText: result, caretOffset: preamble.length }; - } - return { newText: openComment + closeComment, caretOffset: 3 }; -} -function getIndentationStringAtPosition(sourceFile, position) { - var text = sourceFile.text; - var lineStart = getLineStartPositionForPosition(position, sourceFile); - var pos = lineStart; - for (; pos <= position && isWhiteSpaceSingleLine(text.charCodeAt(pos)); pos++) - ; - return text.slice(lineStart, pos); -} -function parameterDocComments(parameters, isJavaScriptFile, indentationStr, newLine) { - return parameters.map(function (_t, i) { - var name = _t.name, dotDotDotToken = _t.dotDotDotToken; - var paramName = name.kind === 80 /* Identifier */ ? name.text : "param" + i; - var type = isJavaScriptFile ? dotDotDotToken ? "{...any} " : "{any} " : ""; - return "".concat(indentationStr, " * @param ").concat(type).concat(paramName).concat(newLine); - }).join(""); -} -function returnsDocComment(indentationStr, newLine) { - return "".concat(indentationStr, " * @returns").concat(newLine); -} -function getCommentOwnerInfo(tokenAtPos, options) { - return forEachAncestor(tokenAtPos, function (n) { return getCommentOwnerInfoWorker(n, options); }); -} -function getCommentOwnerInfoWorker(commentOwner, options) { - switch (commentOwner.kind) { - case 262 /* FunctionDeclaration */: - case 218 /* FunctionExpression */: - case 174 /* MethodDeclaration */: - case 176 /* Constructor */: - case 173 /* MethodSignature */: - case 219 /* ArrowFunction */: - var host = commentOwner; - return { commentOwner: commentOwner, parameters: host.parameters, hasReturn: hasReturn(host, options) }; - case 303 /* PropertyAssignment */: - return getCommentOwnerInfoWorker(commentOwner.initializer, options); - case 263 /* ClassDeclaration */: - case 264 /* InterfaceDeclaration */: - case 266 /* EnumDeclaration */: - case 306 /* EnumMember */: - case 265 /* TypeAliasDeclaration */: - return { commentOwner: commentOwner }; - case 171 /* PropertySignature */: { - var host2 = commentOwner; - return host2.type && isFunctionTypeNode(host2.type) ? { commentOwner: commentOwner, parameters: host2.type.parameters, hasReturn: hasReturn(host2.type, options) } : { commentOwner: commentOwner }; - } - case 243 /* VariableStatement */: { - var varStatement = commentOwner; - var varDeclarations = varStatement.declarationList.declarations; - var host2 = varDeclarations.length === 1 && varDeclarations[0].initializer ? getRightHandSideOfAssignment(varDeclarations[0].initializer) : void 0; - return host2 ? { commentOwner: commentOwner, parameters: host2.parameters, hasReturn: hasReturn(host2, options) } : { commentOwner: commentOwner }; - } - case 312 /* SourceFile */: - return "quit"; - case 267 /* ModuleDeclaration */: - return commentOwner.parent.kind === 267 /* ModuleDeclaration */ ? void 0 : { commentOwner: commentOwner }; - case 244 /* ExpressionStatement */: - return getCommentOwnerInfoWorker(commentOwner.expression, options); - case 226 /* BinaryExpression */: { - var be = commentOwner; - if (getAssignmentDeclarationKind(be) === 0 /* None */) { - return "quit"; - } - return isFunctionLike(be.right) ? { commentOwner: commentOwner, parameters: be.right.parameters, hasReturn: hasReturn(be.right, options) } : { commentOwner: commentOwner }; - } - case 172 /* PropertyDeclaration */: - var init = commentOwner.initializer; - if (init && (isFunctionExpression(init) || isArrowFunction(init))) { - return { commentOwner: commentOwner, parameters: init.parameters, hasReturn: hasReturn(init, options) }; - } - } -} -function hasReturn(node, options) { - return !!(options == null ? void 0 : options.generateReturnInDocTemplate) && (isFunctionTypeNode(node) || isArrowFunction(node) && isExpression(node.body) || isFunctionLikeDeclaration(node) && node.body && isBlock(node.body) && !!forEachReturnStatement(node.body, function (n) { return n; })); -} -function getRightHandSideOfAssignment(rightHandSide) { - while (rightHandSide.kind === 217 /* ParenthesizedExpression */) { - rightHandSide = rightHandSide.expression; - } - switch (rightHandSide.kind) { - case 218 /* FunctionExpression */: - case 219 /* ArrowFunction */: - return rightHandSide; - case 231 /* ClassExpression */: - return find(rightHandSide.members, isConstructorDeclaration); - } -} -// src/services/_namespaces/ts.OrganizeImports.ts -var ts_OrganizeImports_exports = {}; -__export(ts_OrganizeImports_exports, { - coalesceExports: function () { return coalesceExports; }, - coalesceImports: function () { return coalesceImports; }, - compareImportOrExportSpecifiers: function () { return compareImportOrExportSpecifiers; }, - compareImportsOrRequireStatements: function () { return compareImportsOrRequireStatements; }, - compareModuleSpecifiers: function () { return compareModuleSpecifiers2; }, - detectImportDeclarationSorting: function () { return detectImportDeclarationSorting; }, - detectImportSpecifierSorting: function () { return detectImportSpecifierSorting; }, - detectSorting: function () { return detectSorting; }, - getImportDeclarationInsertionIndex: function () { return getImportDeclarationInsertionIndex; }, - getImportSpecifierInsertionIndex: function () { return getImportSpecifierInsertionIndex; }, - getOrganizeImportsComparer: function () { return getOrganizeImportsComparer; }, - organizeImports: function () { return organizeImports; } -}); -// src/services/organizeImports.ts -function organizeImports(sourceFile, formatContext, host, program, preferences, mode) { - var e_860, _t; - var changeTracker = ts_textChanges_exports.ChangeTracker.fromContext({ host: host, formatContext: formatContext, preferences: preferences }); - var shouldSort = mode === "SortAndCombine" /* SortAndCombine */ || mode === "All" /* All */; - var shouldCombine = shouldSort; - var shouldRemove = mode === "RemoveUnused" /* RemoveUnused */ || mode === "All" /* All */; - var topLevelImportGroupDecls = groupByNewlineContiguous(sourceFile, sourceFile.statements.filter(isImportDeclaration)); - var comparer = getOrganizeImportsComparerWithDetection(preferences, shouldSort ? function () { return detectSortingWorker(topLevelImportGroupDecls, preferences) === 2; } /* CaseInsensitive */ : void 0); - var processImportsOfSameModuleSpecifier = function (importGroup) { - if (shouldRemove) - importGroup = removeUnusedImports(importGroup, sourceFile, program); - if (shouldCombine) - importGroup = coalesceImportsWorker(importGroup, comparer, sourceFile); - if (shouldSort) - importGroup = stableSort(importGroup, function (s1, s2) { return compareImportsOrRequireStatements(s1, s2, comparer); }); - return importGroup; - }; - topLevelImportGroupDecls.forEach(function (importGroupDecl) { return organizeImportsWorker(importGroupDecl, processImportsOfSameModuleSpecifier); }); - if (mode !== "RemoveUnused" /* RemoveUnused */) { - getTopLevelExportGroups(sourceFile).forEach(function (exportGroupDecl) { return organizeImportsWorker(exportGroupDecl, function (group2) { return coalesceExportsWorker(group2, comparer); }); }); - } - try { - for (var _u = __values(sourceFile.statements.filter(isAmbientModule)), _v = _u.next(); !_v.done; _v = _u.next()) { - var ambientModule = _v.value; - if (!ambientModule.body) - continue; - var ambientModuleImportGroupDecls = groupByNewlineContiguous(sourceFile, ambientModule.body.statements.filter(isImportDeclaration)); - ambientModuleImportGroupDecls.forEach(function (importGroupDecl) { return organizeImportsWorker(importGroupDecl, processImportsOfSameModuleSpecifier); }); - if (mode !== "RemoveUnused" /* RemoveUnused */) { - var ambientModuleExportDecls = ambientModule.body.statements.filter(isExportDeclaration); - organizeImportsWorker(ambientModuleExportDecls, function (group2) { return coalesceExportsWorker(group2, comparer); }); - } - } - } - catch (e_860_1) { e_860 = { error: e_860_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_860) throw e_860.error; } - } - return changeTracker.getChanges(); - function organizeImportsWorker(oldImportDecls, coalesce) { - if (length(oldImportDecls) === 0) { - return; - } - setEmitFlags(oldImportDecls[0], 1024 /* NoLeadingComments */); - var oldImportGroups = shouldCombine ? group(oldImportDecls, function (importDecl) { return getExternalModuleName2(importDecl.moduleSpecifier); }) : [oldImportDecls]; - var sortedImportGroups = shouldSort ? stableSort(oldImportGroups, function (group1, group2) { return compareModuleSpecifiersWorker(group1[0].moduleSpecifier, group2[0].moduleSpecifier, comparer); }) : oldImportGroups; - var newImportDecls = flatMap(sortedImportGroups, function (importGroup) { return getExternalModuleName2(importGroup[0].moduleSpecifier) || importGroup[0].moduleSpecifier === void 0 ? coalesce(importGroup) : importGroup; }); - if (newImportDecls.length === 0) { - changeTracker.deleteNodes(sourceFile, oldImportDecls, { - leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.Exclude, - trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.Include - }, - /*hasTrailingComment*/ - true); - } - else { - var replaceOptions = { - leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.Exclude, - // Leave header comment in place - trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.Include, - suffix: getNewLineOrDefaultFromHost(host, formatContext.options) - }; - changeTracker.replaceNodeWithNodes(sourceFile, oldImportDecls[0], newImportDecls, replaceOptions); - var hasTrailingComment = changeTracker.nodeHasTrailingComment(sourceFile, oldImportDecls[0], replaceOptions); - changeTracker.deleteNodes(sourceFile, oldImportDecls.slice(1), { - trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.Include - }, hasTrailingComment); - } - } -} -function groupByNewlineContiguous(sourceFile, decls) { - var e_861, _t; - var scanner2 = createScanner(sourceFile.languageVersion, - /*skipTrivia*/ - false, sourceFile.languageVariant); - var group2 = []; - var groupIndex = 0; - try { - for (var decls_2 = __values(decls), decls_2_1 = decls_2.next(); !decls_2_1.done; decls_2_1 = decls_2.next()) { - var decl = decls_2_1.value; - if (group2[groupIndex] && isNewGroup(sourceFile, decl, scanner2)) { - groupIndex++; - } - if (!group2[groupIndex]) { - group2[groupIndex] = []; - } - group2[groupIndex].push(decl); - } - } - catch (e_861_1) { e_861 = { error: e_861_1 }; } - finally { - try { - if (decls_2_1 && !decls_2_1.done && (_t = decls_2.return)) _t.call(decls_2); - } - finally { if (e_861) throw e_861.error; } - } - return group2; -} -function isNewGroup(sourceFile, decl, scanner2) { - var startPos = decl.getFullStart(); - var endPos = decl.getStart(); - scanner2.setText(sourceFile.text, startPos, endPos - startPos); - var numberOfNewLines = 0; - while (scanner2.getTokenStart() < endPos) { - var tokenKind = scanner2.scan(); - if (tokenKind === 4 /* NewLineTrivia */) { - numberOfNewLines++; - if (numberOfNewLines >= 2) { - return true; - } - } - } - return false; -} -function removeUnusedImports(oldImports, sourceFile, program) { - var e_862, _t; - var typeChecker = program.getTypeChecker(); - var compilerOptions = program.getCompilerOptions(); - var jsxNamespace = typeChecker.getJsxNamespace(sourceFile); - var jsxFragmentFactory = typeChecker.getJsxFragmentFactory(sourceFile); - var jsxElementsPresent = !!(sourceFile.transformFlags & 2 /* ContainsJsx */); - var usedImports = []; - try { - for (var oldImports_1 = __values(oldImports), oldImports_1_1 = oldImports_1.next(); !oldImports_1_1.done; oldImports_1_1 = oldImports_1.next()) { - var importDecl = oldImports_1_1.value; - var importClause = importDecl.importClause, moduleSpecifier = importDecl.moduleSpecifier; - if (!importClause) { - usedImports.push(importDecl); - continue; - } - var name_135 = importClause.name, namedBindings = importClause.namedBindings; - if (name_135 && !isDeclarationUsed(name_135)) { - name_135 = void 0; - } - if (namedBindings) { - if (isNamespaceImport(namedBindings)) { - if (!isDeclarationUsed(namedBindings.name)) { - namedBindings = void 0; - } - } - else { - var newElements = namedBindings.elements.filter(function (e) { return isDeclarationUsed(e.name); }); - if (newElements.length < namedBindings.elements.length) { - namedBindings = newElements.length ? factory.updateNamedImports(namedBindings, newElements) : void 0; - } - } - } - if (name_135 || namedBindings) { - usedImports.push(updateImportDeclarationAndClause(importDecl, name_135, namedBindings)); - } - else if (hasModuleDeclarationMatchingSpecifier(sourceFile, moduleSpecifier)) { - if (sourceFile.isDeclarationFile) { - usedImports.push(factory.createImportDeclaration(importDecl.modifiers, - /*importClause*/ - void 0, moduleSpecifier, - /*assertClause*/ - void 0)); - } - else { - usedImports.push(importDecl); - } - } - } - } - catch (e_862_1) { e_862 = { error: e_862_1 }; } - finally { - try { - if (oldImports_1_1 && !oldImports_1_1.done && (_t = oldImports_1.return)) _t.call(oldImports_1); - } - finally { if (e_862) throw e_862.error; } - } - return usedImports; - function isDeclarationUsed(identifier) { - return jsxElementsPresent && (identifier.text === jsxNamespace || jsxFragmentFactory && identifier.text === jsxFragmentFactory) && jsxModeNeedsExplicitImport(compilerOptions.jsx) || ts_FindAllReferences_exports.Core.isSymbolReferencedInFile(identifier, typeChecker, sourceFile); - } -} -function hasModuleDeclarationMatchingSpecifier(sourceFile, moduleSpecifier) { - var moduleSpecifierText = isStringLiteral(moduleSpecifier) && moduleSpecifier.text; - return isString(moduleSpecifierText) && some(sourceFile.moduleAugmentations, function (moduleName) { return isStringLiteral(moduleName) && moduleName.text === moduleSpecifierText; }); -} -function getExternalModuleName2(specifier) { - return specifier !== void 0 && isStringLiteralLike(specifier) ? specifier.text : void 0; -} -function coalesceImports(importGroup, ignoreCase, sourceFile) { - var comparer = getOrganizeImportsOrdinalStringComparer(ignoreCase); - return coalesceImportsWorker(importGroup, comparer, sourceFile); -} -function coalesceImportsWorker(importGroup, comparer, sourceFile) { - var e_863, _t, e_864, _u, e_865, _v; - if (importGroup.length === 0) { - return importGroup; - } - var _w = getCategorizedImports(importGroup), importWithoutClause = _w.importWithoutClause, typeOnlyImports = _w.typeOnlyImports, regularImports = _w.regularImports; - var coalescedImports = []; - if (importWithoutClause) { - coalescedImports.push(importWithoutClause); - } - try { - for (var _x = __values([regularImports, typeOnlyImports]), _y = _x.next(); !_y.done; _y = _x.next()) { - var group2 = _y.value; - var isTypeOnly = group2 === typeOnlyImports; - var defaultImports = group2.defaultImports, namespaceImports = group2.namespaceImports, namedImports = group2.namedImports; - if (!isTypeOnly && defaultImports.length === 1 && namespaceImports.length === 1 && namedImports.length === 0) { - var defaultImport = defaultImports[0]; - coalescedImports.push(updateImportDeclarationAndClause(defaultImport, defaultImport.importClause.name, namespaceImports[0].importClause.namedBindings)); - continue; - } - var sortedNamespaceImports = stableSort(namespaceImports, function (i1, i2) { return comparer(i1.importClause.namedBindings.name.text, i2.importClause.namedBindings.name.text); }); - try { - for (var sortedNamespaceImports_1 = (e_864 = void 0, __values(sortedNamespaceImports)), sortedNamespaceImports_1_1 = sortedNamespaceImports_1.next(); !sortedNamespaceImports_1_1.done; sortedNamespaceImports_1_1 = sortedNamespaceImports_1.next()) { - var namespaceImport = sortedNamespaceImports_1_1.value; - coalescedImports.push(updateImportDeclarationAndClause(namespaceImport, - /*name*/ - void 0, namespaceImport.importClause.namedBindings)); - } - } - catch (e_864_1) { e_864 = { error: e_864_1 }; } - finally { - try { - if (sortedNamespaceImports_1_1 && !sortedNamespaceImports_1_1.done && (_u = sortedNamespaceImports_1.return)) _u.call(sortedNamespaceImports_1); - } - finally { if (e_864) throw e_864.error; } - } - var firstDefaultImport = firstOrUndefined(defaultImports); - var firstNamedImport = firstOrUndefined(namedImports); - var importDecl = firstDefaultImport !== null && firstDefaultImport !== void 0 ? firstDefaultImport : firstNamedImport; - if (!importDecl) { - continue; - } - var newDefaultImport = void 0; - var newImportSpecifiers = []; - if (defaultImports.length === 1) { - newDefaultImport = defaultImports[0].importClause.name; - } - else { - try { - for (var defaultImports_1 = (e_865 = void 0, __values(defaultImports)), defaultImports_1_1 = defaultImports_1.next(); !defaultImports_1_1.done; defaultImports_1_1 = defaultImports_1.next()) { - var defaultImport = defaultImports_1_1.value; - newImportSpecifiers.push(factory.createImportSpecifier( - /*isTypeOnly*/ - false, factory.createIdentifier("default"), defaultImport.importClause.name)); - } - } - catch (e_865_1) { e_865 = { error: e_865_1 }; } - finally { - try { - if (defaultImports_1_1 && !defaultImports_1_1.done && (_v = defaultImports_1.return)) _v.call(defaultImports_1); - } - finally { if (e_865) throw e_865.error; } - } - } - newImportSpecifiers.push.apply(newImportSpecifiers, __spreadArray([], __read(getNewImportSpecifiers(namedImports)), false)); - var sortedImportSpecifiers = factory.createNodeArray(sortSpecifiers(newImportSpecifiers, comparer), firstNamedImport == null ? void 0 : firstNamedImport.importClause.namedBindings.elements.hasTrailingComma); - var newNamedImports = sortedImportSpecifiers.length === 0 ? newDefaultImport ? void 0 : factory.createNamedImports(emptyArray) : firstNamedImport ? factory.updateNamedImports(firstNamedImport.importClause.namedBindings, sortedImportSpecifiers) : factory.createNamedImports(sortedImportSpecifiers); - if (sourceFile && newNamedImports && (firstNamedImport == null ? void 0 : firstNamedImport.importClause.namedBindings) && !rangeIsOnSingleLine(firstNamedImport.importClause.namedBindings, sourceFile)) { - setEmitFlags(newNamedImports, 2 /* MultiLine */); - } - if (isTypeOnly && newDefaultImport && newNamedImports) { - coalescedImports.push(updateImportDeclarationAndClause(importDecl, newDefaultImport, - /*namedBindings*/ - void 0)); - coalescedImports.push(updateImportDeclarationAndClause(firstNamedImport !== null && firstNamedImport !== void 0 ? firstNamedImport : importDecl, - /*name*/ - void 0, newNamedImports)); - } - else { - coalescedImports.push(updateImportDeclarationAndClause(importDecl, newDefaultImport, newNamedImports)); - } - } - } - catch (e_863_1) { e_863 = { error: e_863_1 }; } - finally { - try { - if (_y && !_y.done && (_t = _x.return)) _t.call(_x); - } - finally { if (e_863) throw e_863.error; } - } - return coalescedImports; -} -function getCategorizedImports(importGroup) { - var e_866, _t; - var importWithoutClause; - var typeOnlyImports = { defaultImports: [], namespaceImports: [], namedImports: [] }; - var regularImports = { defaultImports: [], namespaceImports: [], namedImports: [] }; - try { - for (var importGroup_1 = __values(importGroup), importGroup_1_1 = importGroup_1.next(); !importGroup_1_1.done; importGroup_1_1 = importGroup_1.next()) { - var importDeclaration = importGroup_1_1.value; - if (importDeclaration.importClause === void 0) { - importWithoutClause = importWithoutClause || importDeclaration; - continue; - } - var group2 = importDeclaration.importClause.isTypeOnly ? typeOnlyImports : regularImports; - var _u = importDeclaration.importClause, name_136 = _u.name, namedBindings = _u.namedBindings; - if (name_136) { - group2.defaultImports.push(importDeclaration); - } - if (namedBindings) { - if (isNamespaceImport(namedBindings)) { - group2.namespaceImports.push(importDeclaration); - } - else { - group2.namedImports.push(importDeclaration); - } - } - } - } - catch (e_866_1) { e_866 = { error: e_866_1 }; } - finally { - try { - if (importGroup_1_1 && !importGroup_1_1.done && (_t = importGroup_1.return)) _t.call(importGroup_1); - } - finally { if (e_866) throw e_866.error; } - } - return { - importWithoutClause: importWithoutClause, - typeOnlyImports: typeOnlyImports, - regularImports: regularImports - }; -} -function coalesceExports(exportGroup, ignoreCase) { - var comparer = getOrganizeImportsOrdinalStringComparer(ignoreCase); - return coalesceExportsWorker(exportGroup, comparer); -} -function coalesceExportsWorker(exportGroup, comparer) { - var e_867, _t; - if (exportGroup.length === 0) { - return exportGroup; - } - var _u = getCategorizedExports(exportGroup), exportWithoutClause = _u.exportWithoutClause, namedExports = _u.namedExports, typeOnlyExports = _u.typeOnlyExports; - var coalescedExports = []; - if (exportWithoutClause) { - coalescedExports.push(exportWithoutClause); - } - try { - for (var _v = __values([namedExports, typeOnlyExports]), _w = _v.next(); !_w.done; _w = _v.next()) { - var exportGroup2 = _w.value; - if (exportGroup2.length === 0) { - continue; - } - var newExportSpecifiers = []; - newExportSpecifiers.push.apply(newExportSpecifiers, __spreadArray([], __read(flatMap(exportGroup2, function (i) { return i.exportClause && isNamedExports(i.exportClause) ? i.exportClause.elements : emptyArray; })), false)); - var sortedExportSpecifiers = sortSpecifiers(newExportSpecifiers, comparer); - var exportDecl = exportGroup2[0]; - coalescedExports.push(factory.updateExportDeclaration(exportDecl, exportDecl.modifiers, exportDecl.isTypeOnly, exportDecl.exportClause && (isNamedExports(exportDecl.exportClause) ? factory.updateNamedExports(exportDecl.exportClause, sortedExportSpecifiers) : factory.updateNamespaceExport(exportDecl.exportClause, exportDecl.exportClause.name)), exportDecl.moduleSpecifier, exportDecl.assertClause)); - } - } - catch (e_867_1) { e_867 = { error: e_867_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_867) throw e_867.error; } - } - return coalescedExports; - function getCategorizedExports(exportGroup2) { - var e_868, _t; - var exportWithoutClause2; - var namedExports2 = []; - var typeOnlyExports2 = []; - try { - for (var exportGroup2_1 = __values(exportGroup2), exportGroup2_1_1 = exportGroup2_1.next(); !exportGroup2_1_1.done; exportGroup2_1_1 = exportGroup2_1.next()) { - var exportDeclaration = exportGroup2_1_1.value; - if (exportDeclaration.exportClause === void 0) { - exportWithoutClause2 = exportWithoutClause2 || exportDeclaration; - } - else if (exportDeclaration.isTypeOnly) { - typeOnlyExports2.push(exportDeclaration); - } - else { - namedExports2.push(exportDeclaration); - } - } - } - catch (e_868_1) { e_868 = { error: e_868_1 }; } - finally { - try { - if (exportGroup2_1_1 && !exportGroup2_1_1.done && (_t = exportGroup2_1.return)) _t.call(exportGroup2_1); - } - finally { if (e_868) throw e_868.error; } - } - return { - exportWithoutClause: exportWithoutClause2, - namedExports: namedExports2, - typeOnlyExports: typeOnlyExports2 - }; - } -} -function updateImportDeclarationAndClause(importDeclaration, name, namedBindings) { - return factory.updateImportDeclaration(importDeclaration, importDeclaration.modifiers, factory.updateImportClause(importDeclaration.importClause, importDeclaration.importClause.isTypeOnly, name, namedBindings), - // TODO: GH#18217 - importDeclaration.moduleSpecifier, importDeclaration.assertClause); -} -function sortSpecifiers(specifiers, comparer) { - return stableSort(specifiers, function (s1, s2) { return compareImportOrExportSpecifiers(s1, s2, comparer); }); -} -function compareImportOrExportSpecifiers(s1, s2, comparer) { - return compareBooleans(s1.isTypeOnly, s2.isTypeOnly) || comparer(s1.name.text, s2.name.text); -} -function compareModuleSpecifiers2(m1, m2, ignoreCase) { - var comparer = getOrganizeImportsOrdinalStringComparer(!!ignoreCase); - return compareModuleSpecifiersWorker(m1, m2, comparer); -} -function compareModuleSpecifiersWorker(m1, m2, comparer) { - var name1 = m1 === void 0 ? void 0 : getExternalModuleName2(m1); - var name2 = m2 === void 0 ? void 0 : getExternalModuleName2(m2); - return compareBooleans(name1 === void 0, name2 === void 0) || compareBooleans(isExternalModuleNameRelative(name1), isExternalModuleNameRelative(name2)) || comparer(name1, name2); -} -function getModuleSpecifierExpression(declaration) { - var _a; - switch (declaration.kind) { - case 271 /* ImportEqualsDeclaration */: - return (_a = tryCast(declaration.moduleReference, isExternalModuleReference)) == null ? void 0 : _a.expression; - case 272 /* ImportDeclaration */: - return declaration.moduleSpecifier; - case 243 /* VariableStatement */: - return declaration.declarationList.declarations[0].initializer.arguments[0]; - } -} -function detectSorting(sourceFile, preferences) { - return detectSortingWorker(groupByNewlineContiguous(sourceFile, sourceFile.statements.filter(isImportDeclaration)), preferences); -} -function detectSortingWorker(importGroups, preferences) { - var e_869, _t; - var collateCaseSensitive = getOrganizeImportsComparer(preferences, - /*ignoreCase*/ - false); - var collateCaseInsensitive = getOrganizeImportsComparer(preferences, - /*ignoreCase*/ - true); - var sortState = 3 /* Both */; - var seenUnsortedGroup = false; - try { - for (var importGroups_1 = __values(importGroups), importGroups_1_1 = importGroups_1.next(); !importGroups_1_1.done; importGroups_1_1 = importGroups_1.next()) { - var importGroup = importGroups_1_1.value; - if (importGroup.length > 1) { - var moduleSpecifierSort = detectSortCaseSensitivity(importGroup, function (i) { - var _t; - var _a; - return (_t = ((_a = tryCast(i.moduleSpecifier, isStringLiteral)) == null ? void 0 : _a.text)) !== null && _t !== void 0 ? _t : ""; - }, collateCaseSensitive, collateCaseInsensitive); - if (moduleSpecifierSort) { - sortState &= moduleSpecifierSort; - seenUnsortedGroup = true; - } - if (!sortState) { - return sortState; - } - } - var declarationWithNamedImports = find(importGroup, function (i) { - var _a, _b; - return ((_b = tryCast((_a = i.importClause) == null ? void 0 : _a.namedBindings, isNamedImports)) == null ? void 0 : _b.elements.length) > 1; - }); - if (declarationWithNamedImports) { - var namedImportSort = detectImportSpecifierSorting(declarationWithNamedImports.importClause.namedBindings.elements, preferences); - if (namedImportSort) { - sortState &= namedImportSort; - seenUnsortedGroup = true; - } - if (!sortState) { - return sortState; - } - } - if (sortState !== 3 /* Both */) { - return sortState; - } - } - } - catch (e_869_1) { e_869 = { error: e_869_1 }; } - finally { - try { - if (importGroups_1_1 && !importGroups_1_1.done && (_t = importGroups_1.return)) _t.call(importGroups_1); - } - finally { if (e_869) throw e_869.error; } - } - return seenUnsortedGroup ? 0 /* None */ : sortState; -} -function detectImportDeclarationSorting(imports, preferences) { - var collateCaseSensitive = getOrganizeImportsComparer(preferences, - /*ignoreCase*/ - false); - var collateCaseInsensitive = getOrganizeImportsComparer(preferences, - /*ignoreCase*/ - true); - return detectSortCaseSensitivity(imports, function (s) { return getExternalModuleName2(getModuleSpecifierExpression(s)) || ""; }, collateCaseSensitive, collateCaseInsensitive); -} -var ImportSpecifierSortingCache = /** @class */ (function () { - function class_2() { - } - class_2.prototype.has = function (_t) { - var _u = __read(_t, 2), specifiers = _u[0], preferences = _u[1]; - if (this._lastPreferences !== preferences || !this._cache) - return false; - return this._cache.has(specifiers); - }; - class_2.prototype.get = function (_t) { - var _u = __read(_t, 2), specifiers = _u[0], preferences = _u[1]; - if (this._lastPreferences !== preferences || !this._cache) - return void 0; - return this._cache.get(specifiers); - }; - class_2.prototype.set = function (_t, value) { - var _u; - var _v = __read(_t, 2), specifiers = _v[0], preferences = _v[1]; - if (this._lastPreferences !== preferences) { - this._lastPreferences = preferences; - this._cache = void 0; - } - (_u = this._cache) !== null && _u !== void 0 ? _u : (this._cache = /* @__PURE__ */ new WeakMap()); - this._cache.set(specifiers, value); - }; - return class_2; -}()); -var detectImportSpecifierSorting = memoizeCached(function (specifiers, preferences) { - if (!arrayIsSorted(specifiers, function (s1, s2) { return compareBooleans(s1.isTypeOnly, s2.isTypeOnly); })) { - return 0 /* None */; - } - var collateCaseSensitive = getOrganizeImportsComparer(preferences, - /*ignoreCase*/ - false); - var collateCaseInsensitive = getOrganizeImportsComparer(preferences, - /*ignoreCase*/ - true); - return detectSortCaseSensitivity(specifiers, function (specifier) { return specifier.name.text; }, collateCaseSensitive, collateCaseInsensitive); -}, new ImportSpecifierSortingCache()); -function getImportDeclarationInsertionIndex(sortedImports, newImport, comparer) { - var index = binarySearch(sortedImports, newImport, identity, function (a, b) { return compareImportsOrRequireStatements(a, b, comparer); }); - return index < 0 ? ~index : index; -} -function getImportSpecifierInsertionIndex(sortedImports, newImport, comparer) { - var index = binarySearch(sortedImports, newImport, identity, function (s1, s2) { return compareImportOrExportSpecifiers(s1, s2, comparer); }); - return index < 0 ? ~index : index; -} -function compareImportsOrRequireStatements(s1, s2, comparer) { - return compareModuleSpecifiersWorker(getModuleSpecifierExpression(s1), getModuleSpecifierExpression(s2), comparer) || compareImportKind(s1, s2); -} -function compareImportKind(s1, s2) { - return compareValues(getImportKindOrder(s1), getImportKindOrder(s2)); -} -function getImportKindOrder(s1) { - var _a; - switch (s1.kind) { - case 272 /* ImportDeclaration */: - if (!s1.importClause) - return 0; - if (s1.importClause.isTypeOnly) - return 1; - if (((_a = s1.importClause.namedBindings) == null ? void 0 : _a.kind) === 274 /* NamespaceImport */) - return 2; - if (s1.importClause.name) - return 3; - return 4; - case 271 /* ImportEqualsDeclaration */: - return 5; - case 243 /* VariableStatement */: - return 6; - } -} -function getNewImportSpecifiers(namedImports) { - return flatMap(namedImports, function (namedImport) { return map(tryGetNamedBindingElements(namedImport), function (importSpecifier) { return importSpecifier.name && importSpecifier.propertyName && importSpecifier.name.escapedText === importSpecifier.propertyName.escapedText ? factory.updateImportSpecifier(importSpecifier, importSpecifier.isTypeOnly, - /*propertyName*/ - void 0, importSpecifier.name) : importSpecifier; }); }); -} -function tryGetNamedBindingElements(namedImport) { - var _a; - return ((_a = namedImport.importClause) == null ? void 0 : _a.namedBindings) && isNamedImports(namedImport.importClause.namedBindings) ? namedImport.importClause.namedBindings.elements : void 0; -} -function getOrganizeImportsOrdinalStringComparer(ignoreCase) { - return ignoreCase ? compareStringsCaseInsensitiveEslintCompatible : compareStringsCaseSensitive; -} -function getOrganizeImportsUnicodeStringComparer(ignoreCase, preferences) { - var _t, _u, _v; - var resolvedLocale = getOrganizeImportsLocale(preferences); - var caseFirst = (_t = preferences.organizeImportsCaseFirst) !== null && _t !== void 0 ? _t : false; - var numeric = (_u = preferences.organizeImportsNumericCollation) !== null && _u !== void 0 ? _u : false; - var accents = (_v = preferences.organizeImportsAccentCollation) !== null && _v !== void 0 ? _v : true; - var sensitivity = ignoreCase ? accents ? "accent" : "base" : accents ? "variant" : "case"; - var collator = new Intl.Collator(resolvedLocale, { - usage: "sort", - caseFirst: caseFirst || "false", - sensitivity: sensitivity, - numeric: numeric - }); - return collator.compare; -} -function getOrganizeImportsLocale(preferences) { - var locale = preferences.organizeImportsLocale; - if (locale === "auto") - locale = getUILocale(); - if (locale === void 0) - locale = "en"; - var supportedLocales = Intl.Collator.supportedLocalesOf(locale); - var resolvedLocale = supportedLocales.length ? supportedLocales[0] : "en"; - return resolvedLocale; -} -function getOrganizeImportsComparer(preferences, ignoreCase) { - var _t; - var collation = (_t = preferences.organizeImportsCollation) !== null && _t !== void 0 ? _t : "ordinal"; - return collation === "unicode" ? getOrganizeImportsUnicodeStringComparer(ignoreCase, preferences) : getOrganizeImportsOrdinalStringComparer(ignoreCase); -} -function getOrganizeImportsComparerWithDetection(preferences, detectIgnoreCase) { - var _t; - var ignoreCase = typeof preferences.organizeImportsIgnoreCase === "boolean" ? preferences.organizeImportsIgnoreCase : (_t = (detectIgnoreCase == null ? void 0 : detectIgnoreCase())) !== null && _t !== void 0 ? _t : false; - return getOrganizeImportsComparer(preferences, ignoreCase); -} -function getTopLevelExportGroups(sourceFile) { - var topLevelExportGroups = []; - var statements = sourceFile.statements; - var len = length(statements); - var i = 0; - var groupIndex = 0; - while (i < len) { - if (isExportDeclaration(statements[i])) { - if (topLevelExportGroups[groupIndex] === void 0) { - topLevelExportGroups[groupIndex] = []; - } - var exportDecl = statements[i]; - if (exportDecl.moduleSpecifier) { - topLevelExportGroups[groupIndex].push(exportDecl); - i++; - } - else { - while (i < len && isExportDeclaration(statements[i])) { - topLevelExportGroups[groupIndex].push(statements[i++]); - } - groupIndex++; - } - } - else { - i++; - } - } - return flatMap(topLevelExportGroups, function (exportGroupDecls) { return groupByNewlineContiguous(sourceFile, exportGroupDecls); }); -} -// src/services/_namespaces/ts.OutliningElementsCollector.ts -var ts_OutliningElementsCollector_exports = {}; -__export(ts_OutliningElementsCollector_exports, { - collectElements: function () { return collectElements; } -}); -// src/services/outliningElementsCollector.ts -function collectElements(sourceFile, cancellationToken) { - var res = []; - addNodeOutliningSpans(sourceFile, cancellationToken, res); - addRegionOutliningSpans(sourceFile, res); - return res.sort(function (span1, span2) { return span1.textSpan.start - span2.textSpan.start; }); -} -function addNodeOutliningSpans(sourceFile, cancellationToken, out) { - var depthRemaining = 40; - var current = 0; - var statements = __spreadArray(__spreadArray([], __read(sourceFile.statements), false), [sourceFile.endOfFileToken], false); - var n = statements.length; - while (current < n) { - while (current < n && !isAnyImportSyntax(statements[current])) { - visitNode3(statements[current]); - current++; - } - if (current === n) - break; - var firstImport = current; - while (current < n && isAnyImportSyntax(statements[current])) { - visitNode3(statements[current]); - current++; - } - var lastImport = current - 1; - if (lastImport !== firstImport) { - out.push(createOutliningSpanFromBounds(findChildOfKind(statements[firstImport], 102 /* ImportKeyword */, sourceFile).getStart(sourceFile), statements[lastImport].getEnd(), "imports" /* Imports */)); - } - } - function visitNode3(n2) { - var _a; - if (depthRemaining === 0) - return; - cancellationToken.throwIfCancellationRequested(); - if (isDeclaration(n2) || isVariableStatement(n2) || isReturnStatement(n2) || isCallOrNewExpression(n2) || n2.kind === 1 /* EndOfFileToken */) { - addOutliningForLeadingCommentsForNode(n2, sourceFile, cancellationToken, out); - } - if (isFunctionLike(n2) && isBinaryExpression(n2.parent) && isPropertyAccessExpression(n2.parent.left)) { - addOutliningForLeadingCommentsForNode(n2.parent.left, sourceFile, cancellationToken, out); - } - if (isBlock(n2) || isModuleBlock(n2)) { - addOutliningForLeadingCommentsForPos(n2.statements.end, sourceFile, cancellationToken, out); - } - if (isClassLike(n2) || isInterfaceDeclaration(n2)) { - addOutliningForLeadingCommentsForPos(n2.members.end, sourceFile, cancellationToken, out); - } - var span = getOutliningSpanForNode(n2, sourceFile); - if (span) - out.push(span); - depthRemaining--; - if (isCallExpression(n2)) { - depthRemaining++; - visitNode3(n2.expression); - depthRemaining--; - n2.arguments.forEach(visitNode3); - (_a = n2.typeArguments) == null ? void 0 : _a.forEach(visitNode3); - } - else if (isIfStatement(n2) && n2.elseStatement && isIfStatement(n2.elseStatement)) { - visitNode3(n2.expression); - visitNode3(n2.thenStatement); - depthRemaining++; - visitNode3(n2.elseStatement); - depthRemaining--; - } - else { - n2.forEachChild(visitNode3); - } - depthRemaining++; - } -} -function addRegionOutliningSpans(sourceFile, out) { - var e_870, _t; - var regions = []; - var lineStarts = sourceFile.getLineStarts(); - try { - for (var lineStarts_1 = __values(lineStarts), lineStarts_1_1 = lineStarts_1.next(); !lineStarts_1_1.done; lineStarts_1_1 = lineStarts_1.next()) { - var currentLineStart = lineStarts_1_1.value; - var lineEnd = sourceFile.getLineEndOfPosition(currentLineStart); - var lineText = sourceFile.text.substring(currentLineStart, lineEnd); - var result = isRegionDelimiter(lineText); - if (!result || isInComment(sourceFile, currentLineStart)) { - continue; - } - if (!result[1]) { - var span = createTextSpanFromBounds(sourceFile.text.indexOf("//", currentLineStart), lineEnd); - regions.push(createOutliningSpan(span, "region" /* Region */, span, - /*autoCollapse*/ - false, result[2] || "#region")); - } - else { - var region = regions.pop(); - if (region) { - region.textSpan.length = lineEnd - region.textSpan.start; - region.hintSpan.length = lineEnd - region.textSpan.start; - out.push(region); - } - } - } - } - catch (e_870_1) { e_870 = { error: e_870_1 }; } - finally { - try { - if (lineStarts_1_1 && !lineStarts_1_1.done && (_t = lineStarts_1.return)) _t.call(lineStarts_1); - } - finally { if (e_870) throw e_870.error; } - } -} -var regionDelimiterRegExp = /^#(end)?region(?:\s+(.*))?(?:\r)?$/; -function isRegionDelimiter(lineText) { - lineText = trimStringStart(lineText); - if (!startsWith(lineText, "//")) { - return null; - } - lineText = trimString(lineText.slice(2)); - return regionDelimiterRegExp.exec(lineText); -} -function addOutliningForLeadingCommentsForPos(pos, sourceFile, cancellationToken, out) { - var e_871, _t; - var comments = getLeadingCommentRanges(sourceFile.text, pos); - if (!comments) - return; - var firstSingleLineCommentStart = -1; - var lastSingleLineCommentEnd = -1; - var singleLineCommentCount = 0; - var sourceText = sourceFile.getFullText(); - try { - for (var comments_2 = __values(comments), comments_2_1 = comments_2.next(); !comments_2_1.done; comments_2_1 = comments_2.next()) { - var _u = comments_2_1.value, kind = _u.kind, pos2 = _u.pos, end = _u.end; - cancellationToken.throwIfCancellationRequested(); - switch (kind) { - case 2 /* SingleLineCommentTrivia */: - var commentText = sourceText.slice(pos2, end); - if (isRegionDelimiter(commentText)) { - combineAndAddMultipleSingleLineComments(); - singleLineCommentCount = 0; - break; - } - if (singleLineCommentCount === 0) { - firstSingleLineCommentStart = pos2; - } - lastSingleLineCommentEnd = end; - singleLineCommentCount++; - break; - case 3 /* MultiLineCommentTrivia */: - combineAndAddMultipleSingleLineComments(); - out.push(createOutliningSpanFromBounds(pos2, end, "comment" /* Comment */)); - singleLineCommentCount = 0; - break; - default: - Debug.assertNever(kind); - } - } - } - catch (e_871_1) { e_871 = { error: e_871_1 }; } - finally { - try { - if (comments_2_1 && !comments_2_1.done && (_t = comments_2.return)) _t.call(comments_2); - } - finally { if (e_871) throw e_871.error; } - } - combineAndAddMultipleSingleLineComments(); - function combineAndAddMultipleSingleLineComments() { - if (singleLineCommentCount > 1) { - out.push(createOutliningSpanFromBounds(firstSingleLineCommentStart, lastSingleLineCommentEnd, "comment" /* Comment */)); - } - } -} -function addOutliningForLeadingCommentsForNode(n, sourceFile, cancellationToken, out) { - if (isJsxText(n)) - return; - addOutliningForLeadingCommentsForPos(n.pos, sourceFile, cancellationToken, out); -} -function createOutliningSpanFromBounds(pos, end, kind) { - return createOutliningSpan(createTextSpanFromBounds(pos, end), kind); -} -function getOutliningSpanForNode(n, sourceFile) { - switch (n.kind) { - case 241 /* Block */: - if (isFunctionLike(n.parent)) { - return functionSpan(n.parent, n, sourceFile); - } - switch (n.parent.kind) { - case 246 /* DoStatement */: - case 249 /* ForInStatement */: - case 250 /* ForOfStatement */: - case 248 /* ForStatement */: - case 245 /* IfStatement */: - case 247 /* WhileStatement */: - case 254 /* WithStatement */: - case 299 /* CatchClause */: - return spanForNode(n.parent); - case 258 /* TryStatement */: - var tryStatement = n.parent; - if (tryStatement.tryBlock === n) { - return spanForNode(n.parent); - } - else if (tryStatement.finallyBlock === n) { - var node = findChildOfKind(tryStatement, 98 /* FinallyKeyword */, sourceFile); - if (node) - return spanForNode(node); - } - default: - return createOutliningSpan(createTextSpanFromNode(n, sourceFile), "code" /* Code */); - } - case 268 /* ModuleBlock */: - return spanForNode(n.parent); - case 263 /* ClassDeclaration */: - case 231 /* ClassExpression */: - case 264 /* InterfaceDeclaration */: - case 266 /* EnumDeclaration */: - case 269 /* CaseBlock */: - case 187 /* TypeLiteral */: - case 206 /* ObjectBindingPattern */: - return spanForNode(n); - case 189 /* TupleType */: - return spanForNode(n, - /*autoCollapse*/ - false, - /*useFullStart*/ - !isTupleTypeNode(n.parent), 23 /* OpenBracketToken */); - case 296 /* CaseClause */: - case 297 /* DefaultClause */: - return spanForNodeArray(n.statements); - case 210 /* ObjectLiteralExpression */: - return spanForObjectOrArrayLiteral(n); - case 209 /* ArrayLiteralExpression */: - return spanForObjectOrArrayLiteral(n, 23 /* OpenBracketToken */); - case 284 /* JsxElement */: - return spanForJSXElement(n); - case 288 /* JsxFragment */: - return spanForJSXFragment(n); - case 285 /* JsxSelfClosingElement */: - case 286 /* JsxOpeningElement */: - return spanForJSXAttributes(n.attributes); - case 228 /* TemplateExpression */: - case 15 /* NoSubstitutionTemplateLiteral */: - return spanForTemplateLiteral(n); - case 207 /* ArrayBindingPattern */: - return spanForNode(n, - /*autoCollapse*/ - false, - /*useFullStart*/ - !isBindingElement(n.parent), 23 /* OpenBracketToken */); - case 219 /* ArrowFunction */: - return spanForArrowFunction(n); - case 213 /* CallExpression */: - return spanForCallExpression(n); - case 217 /* ParenthesizedExpression */: - return spanForParenthesizedExpression(n); - case 275 /* NamedImports */: - case 279 /* NamedExports */: - case 300 /* AssertClause */: - return spanForNamedImportsOrExportsOrAssertClause(n); - } - function spanForNamedImportsOrExportsOrAssertClause(node) { - if (!node.elements.length) { - return void 0; - } - var openToken = findChildOfKind(node, 19 /* OpenBraceToken */, sourceFile); - var closeToken = findChildOfKind(node, 20 /* CloseBraceToken */, sourceFile); - if (!openToken || !closeToken || positionsAreOnSameLine(openToken.pos, closeToken.pos, sourceFile)) { - return void 0; - } - return spanBetweenTokens(openToken, closeToken, node, sourceFile, - /*autoCollapse*/ - false, - /*useFullStart*/ - false); - } - function spanForCallExpression(node) { - if (!node.arguments.length) { - return void 0; - } - var openToken = findChildOfKind(node, 21 /* OpenParenToken */, sourceFile); - var closeToken = findChildOfKind(node, 22 /* CloseParenToken */, sourceFile); - if (!openToken || !closeToken || positionsAreOnSameLine(openToken.pos, closeToken.pos, sourceFile)) { - return void 0; - } - return spanBetweenTokens(openToken, closeToken, node, sourceFile, - /*autoCollapse*/ - false, - /*useFullStart*/ - true); - } - function spanForArrowFunction(node) { - if (isBlock(node.body) || isParenthesizedExpression(node.body) || positionsAreOnSameLine(node.body.getFullStart(), node.body.getEnd(), sourceFile)) { - return void 0; - } - var textSpan = createTextSpanFromBounds(node.body.getFullStart(), node.body.getEnd()); - return createOutliningSpan(textSpan, "code" /* Code */, createTextSpanFromNode(node)); - } - function spanForJSXElement(node) { - var textSpan = createTextSpanFromBounds(node.openingElement.getStart(sourceFile), node.closingElement.getEnd()); - var tagName = node.openingElement.tagName.getText(sourceFile); - var bannerText = "<" + tagName + ">..."; - return createOutliningSpan(textSpan, "code" /* Code */, textSpan, - /*autoCollapse*/ - false, bannerText); - } - function spanForJSXFragment(node) { - var textSpan = createTextSpanFromBounds(node.openingFragment.getStart(sourceFile), node.closingFragment.getEnd()); - var bannerText = "<>..."; - return createOutliningSpan(textSpan, "code" /* Code */, textSpan, - /*autoCollapse*/ - false, bannerText); - } - function spanForJSXAttributes(node) { - if (node.properties.length === 0) { - return void 0; - } - return createOutliningSpanFromBounds(node.getStart(sourceFile), node.getEnd(), "code" /* Code */); - } - function spanForTemplateLiteral(node) { - if (node.kind === 15 /* NoSubstitutionTemplateLiteral */ && node.text.length === 0) { - return void 0; - } - return createOutliningSpanFromBounds(node.getStart(sourceFile), node.getEnd(), "code" /* Code */); - } - function spanForObjectOrArrayLiteral(node, open /* OpenBraceToken */) { - if (open === void 0) { open = 19; } - return spanForNode(node, - /*autoCollapse*/ - false, - /*useFullStart*/ - !isArrayLiteralExpression(node.parent) && !isCallExpression(node.parent), open); - } - function spanForNode(hintSpanNode, autoCollapse, useFullStart, open /* OpenBraceToken */, close /* CloseBracketToken */) { - if (autoCollapse === void 0) { autoCollapse = false; } - if (useFullStart === void 0) { useFullStart = true; } - if (open === void 0) { open = 19; } - if (close === void 0) { close = open === 19 /* OpenBraceToken */ ? 20 /* CloseBraceToken */ : 24; } - var openToken = findChildOfKind(n, open, sourceFile); - var closeToken = findChildOfKind(n, close, sourceFile); - return openToken && closeToken && spanBetweenTokens(openToken, closeToken, hintSpanNode, sourceFile, autoCollapse, useFullStart); - } - function spanForNodeArray(nodeArray) { - return nodeArray.length ? createOutliningSpan(createTextSpanFromRange(nodeArray), "code" /* Code */) : void 0; - } - function spanForParenthesizedExpression(node) { - if (positionsAreOnSameLine(node.getStart(), node.getEnd(), sourceFile)) - return void 0; - var textSpan = createTextSpanFromBounds(node.getStart(), node.getEnd()); - return createOutliningSpan(textSpan, "code" /* Code */, createTextSpanFromNode(node)); - } -} -function functionSpan(node, body, sourceFile) { - var openToken = tryGetFunctionOpenToken(node, body, sourceFile); - var closeToken = findChildOfKind(body, 20 /* CloseBraceToken */, sourceFile); - return openToken && closeToken && spanBetweenTokens(openToken, closeToken, node, sourceFile, - /*autoCollapse*/ - node.kind !== 219 /* ArrowFunction */); -} -function spanBetweenTokens(openToken, closeToken, hintSpanNode, sourceFile, autoCollapse, useFullStart) { - if (autoCollapse === void 0) { autoCollapse = false; } - if (useFullStart === void 0) { useFullStart = true; } - var textSpan = createTextSpanFromBounds(useFullStart ? openToken.getFullStart() : openToken.getStart(sourceFile), closeToken.getEnd()); - return createOutliningSpan(textSpan, "code" /* Code */, createTextSpanFromNode(hintSpanNode, sourceFile), autoCollapse); -} -function createOutliningSpan(textSpan, kind, hintSpan, autoCollapse, bannerText) { - if (hintSpan === void 0) { hintSpan = textSpan; } - if (autoCollapse === void 0) { autoCollapse = false; } - if (bannerText === void 0) { bannerText = "..."; } - return { textSpan: textSpan, kind: kind, hintSpan: hintSpan, bannerText: bannerText, autoCollapse: autoCollapse }; -} -function tryGetFunctionOpenToken(node, body, sourceFile) { - if (isNodeArrayMultiLine(node.parameters, sourceFile)) { - var openParenToken = findChildOfKind(node, 21 /* OpenParenToken */, sourceFile); - if (openParenToken) { - return openParenToken; - } - } - return findChildOfKind(body, 19 /* OpenBraceToken */, sourceFile); -} -// src/services/_namespaces/ts.Rename.ts -var ts_Rename_exports = {}; -__export(ts_Rename_exports, { - getRenameInfo: function () { return getRenameInfo; }, - nodeIsEligibleForRename: function () { return nodeIsEligibleForRename; } -}); -// src/services/rename.ts -function getRenameInfo(program, sourceFile, position, preferences) { - var node = getAdjustedRenameLocation(getTouchingPropertyName(sourceFile, position)); - if (nodeIsEligibleForRename(node)) { - var renameInfo = getRenameInfoForNode(node, program.getTypeChecker(), sourceFile, program, preferences); - if (renameInfo) { - return renameInfo; - } - } - return getRenameInfoError(Diagnostics.You_cannot_rename_this_element); -} -function getRenameInfoForNode(node, typeChecker, sourceFile, program, preferences) { - var symbol = typeChecker.getSymbolAtLocation(node); - if (!symbol) { - if (isStringLiteralLike(node)) { - var type = getContextualTypeFromParentOrAncestorTypeNode(node, typeChecker); - if (type && (type.flags & 128 /* StringLiteral */ || type.flags & 1048576 /* Union */ && every(type.types, function (type2) { return !!(type2.flags & 128 /* StringLiteral */); }))) { - return getRenameInfoSuccess(node.text, node.text, "string" /* string */, "", node, sourceFile); - } - } - else if (isLabelName(node)) { - var name_137 = getTextOfNode(node); - return getRenameInfoSuccess(name_137, name_137, "label" /* label */, "" /* none */, node, sourceFile); - } - return void 0; - } - var declarations = symbol.declarations; - if (!declarations || declarations.length === 0) - return; - if (declarations.some(function (declaration) { return isDefinedInLibraryFile(program, declaration); })) { - return getRenameInfoError(Diagnostics.You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library); - } - if (isIdentifier(node) && node.escapedText === "default" && symbol.parent && symbol.parent.flags & 1536 /* Module */) { - return void 0; - } - if (isStringLiteralLike(node) && tryGetImportFromModuleSpecifier(node)) { - return preferences.allowRenameOfImportPath ? getRenameInfoForModule(node, sourceFile, symbol) : void 0; - } - var wouldRenameNodeModules = wouldRenameInOtherNodeModules(sourceFile, symbol, typeChecker, preferences); - if (wouldRenameNodeModules) { - return getRenameInfoError(wouldRenameNodeModules); - } - var kind = ts_SymbolDisplay_exports.getSymbolKind(typeChecker, symbol, node); - var specifierName = isImportOrExportSpecifierName(node) || isStringOrNumericLiteralLike(node) && node.parent.kind === 167 /* ComputedPropertyName */ ? stripQuotes(getTextOfIdentifierOrLiteral(node)) : void 0; - var displayName = specifierName || typeChecker.symbolToString(symbol); - var fullDisplayName = specifierName || typeChecker.getFullyQualifiedName(symbol); - return getRenameInfoSuccess(displayName, fullDisplayName, kind, ts_SymbolDisplay_exports.getSymbolModifiers(typeChecker, symbol), node, sourceFile); -} -function isDefinedInLibraryFile(program, declaration) { - var sourceFile = declaration.getSourceFile(); - return program.isSourceFileDefaultLibrary(sourceFile) && fileExtensionIs(sourceFile.fileName, ".d.ts" /* Dts */); -} -function wouldRenameInOtherNodeModules(originalFile, symbol, checker, preferences) { - var e_872, _t; - if (!preferences.providePrefixAndSuffixTextForRename && symbol.flags & 2097152 /* Alias */) { - var importSpecifier = symbol.declarations && find(symbol.declarations, function (decl) { return isImportSpecifier(decl); }); - if (importSpecifier && !importSpecifier.propertyName) { - symbol = checker.getAliasedSymbol(symbol); - } - } - var declarations = symbol.declarations; - if (!declarations) { - return void 0; - } - var originalPackage = getPackagePathComponents(originalFile.path); - if (originalPackage === void 0) { - if (some(declarations, function (declaration) { return isInsideNodeModules(declaration.getSourceFile().path); })) { - return Diagnostics.You_cannot_rename_elements_that_are_defined_in_a_node_modules_folder; - } - else { - return void 0; - } - } - try { - for (var declarations_20 = __values(declarations), declarations_20_1 = declarations_20.next(); !declarations_20_1.done; declarations_20_1 = declarations_20.next()) { - var declaration = declarations_20_1.value; - var declPackage = getPackagePathComponents(declaration.getSourceFile().path); - if (declPackage) { - var length2 = Math.min(originalPackage.length, declPackage.length); - for (var i = 0; i <= length2; i++) { - if (compareStringsCaseSensitive(originalPackage[i], declPackage[i]) !== 0 /* EqualTo */) { - return Diagnostics.You_cannot_rename_elements_that_are_defined_in_another_node_modules_folder; - } - } - } - } - } - catch (e_872_1) { e_872 = { error: e_872_1 }; } - finally { - try { - if (declarations_20_1 && !declarations_20_1.done && (_t = declarations_20.return)) _t.call(declarations_20); - } - finally { if (e_872) throw e_872.error; } - } - return void 0; -} -function getPackagePathComponents(filePath) { - var components = getPathComponents(filePath); - var nodeModulesIdx = components.lastIndexOf("node_modules"); - if (nodeModulesIdx === -1) { - return void 0; - } - return components.slice(0, nodeModulesIdx + 2); -} -function getRenameInfoForModule(node, sourceFile, moduleSymbol) { - if (!isExternalModuleNameRelative(node.text)) { - return getRenameInfoError(Diagnostics.You_cannot_rename_a_module_via_a_global_import); - } - var moduleSourceFile = moduleSymbol.declarations && find(moduleSymbol.declarations, isSourceFile); - if (!moduleSourceFile) - return void 0; - var withoutIndex = endsWith(node.text, "/index") || endsWith(node.text, "/index.js") ? void 0 : tryRemoveSuffix(removeFileExtension(moduleSourceFile.fileName), "/index"); - var name = withoutIndex === void 0 ? moduleSourceFile.fileName : withoutIndex; - var kind = withoutIndex === void 0 ? "module" /* moduleElement */ : "directory" /* directory */; - var indexAfterLastSlash = node.text.lastIndexOf("/") + 1; - var triggerSpan = createTextSpan(node.getStart(sourceFile) + 1 + indexAfterLastSlash, node.text.length - indexAfterLastSlash); - return { - canRename: true, - fileToRename: name, - kind: kind, - displayName: name, - fullDisplayName: name, - kindModifiers: "" /* none */, - triggerSpan: triggerSpan - }; -} -function getRenameInfoSuccess(displayName, fullDisplayName, kind, kindModifiers, node, sourceFile) { - return { - canRename: true, - fileToRename: void 0, - kind: kind, - displayName: displayName, - fullDisplayName: fullDisplayName, - kindModifiers: kindModifiers, - triggerSpan: createTriggerSpanForNode(node, sourceFile) - }; -} -function getRenameInfoError(diagnostic) { - return { canRename: false, localizedErrorMessage: getLocaleSpecificMessage(diagnostic) }; -} -function createTriggerSpanForNode(node, sourceFile) { - var start2 = node.getStart(sourceFile); - var width = node.getWidth(sourceFile); - if (isStringLiteralLike(node)) { - start2 += 1; - width -= 2; - } - return createTextSpan(start2, width); -} -function nodeIsEligibleForRename(node) { - switch (node.kind) { - case 80 /* Identifier */: - case 81 /* PrivateIdentifier */: - case 11 /* StringLiteral */: - case 15 /* NoSubstitutionTemplateLiteral */: - case 110 /* ThisKeyword */: - return true; - case 9 /* NumericLiteral */: - return isLiteralNameOfPropertyDeclarationOrIndexAccess(node); - default: - return false; - } -} -// src/services/_namespaces/ts.SignatureHelp.ts -var ts_SignatureHelp_exports = {}; -__export(ts_SignatureHelp_exports, { - getArgumentInfoForCompletions: function () { return getArgumentInfoForCompletions; }, - getSignatureHelpItems: function () { return getSignatureHelpItems; } -}); -// src/services/signatureHelp.ts -function getSignatureHelpItems(program, sourceFile, position, triggerReason, cancellationToken) { - var typeChecker = program.getTypeChecker(); - var startingToken = findTokenOnLeftOfPosition(sourceFile, position); - if (!startingToken) { - return void 0; - } - var onlyUseSyntacticOwners = !!triggerReason && triggerReason.kind === "characterTyped"; - if (onlyUseSyntacticOwners && (isInString(sourceFile, position, startingToken) || isInComment(sourceFile, position))) { - return void 0; - } - var isManuallyInvoked = !!triggerReason && triggerReason.kind === "invoked"; - var argumentInfo = getContainingArgumentInfo(startingToken, position, sourceFile, typeChecker, isManuallyInvoked); - if (!argumentInfo) - return void 0; - cancellationToken.throwIfCancellationRequested(); - var candidateInfo = getCandidateOrTypeInfo(argumentInfo, typeChecker, sourceFile, startingToken, onlyUseSyntacticOwners); - cancellationToken.throwIfCancellationRequested(); - if (!candidateInfo) { - return isSourceFileJS(sourceFile) ? createJSSignatureHelpItems(argumentInfo, program, cancellationToken) : void 0; - } - return typeChecker.runWithCancellationToken(cancellationToken, function (typeChecker2) { return candidateInfo.kind === 0 /* Candidate */ ? createSignatureHelpItems(candidateInfo.candidates, candidateInfo.resolvedSignature, argumentInfo, sourceFile, typeChecker2) : createTypeHelpItems(candidateInfo.symbol, argumentInfo, sourceFile, typeChecker2); }); -} -function getCandidateOrTypeInfo(_t, checker, sourceFile, startingToken, onlyUseSyntacticOwners) { - var invocation = _t.invocation, argumentCount = _t.argumentCount; - switch (invocation.kind) { - case 0 /* Call */: { - if (onlyUseSyntacticOwners && !isSyntacticOwner(startingToken, invocation.node, sourceFile)) { - return void 0; - } - var candidates = []; - var resolvedSignature = checker.getResolvedSignatureForSignatureHelp(invocation.node, candidates, argumentCount); - return candidates.length === 0 ? void 0 : { kind: 0 /* Candidate */, candidates: candidates, resolvedSignature: resolvedSignature }; - } - case 1 /* TypeArgs */: { - var called = invocation.called; - if (onlyUseSyntacticOwners && !containsPrecedingToken(startingToken, sourceFile, isIdentifier(called) ? called.parent : called)) { - return void 0; - } - var candidates = getPossibleGenericSignatures(called, argumentCount, checker); - if (candidates.length !== 0) - return { kind: 0 /* Candidate */, candidates: candidates, resolvedSignature: first(candidates) }; - var symbol = checker.getSymbolAtLocation(called); - return symbol && { kind: 1 /* Type */, symbol: symbol }; - } - case 2 /* Contextual */: - return { kind: 0 /* Candidate */, candidates: [invocation.signature], resolvedSignature: invocation.signature }; - default: - return Debug.assertNever(invocation); - } -} -function isSyntacticOwner(startingToken, node, sourceFile) { - if (!isCallOrNewExpression(node)) - return false; - var invocationChildren = node.getChildren(sourceFile); - switch (startingToken.kind) { - case 21 /* OpenParenToken */: - return contains(invocationChildren, startingToken); - case 28 /* CommaToken */: { - var containingList = findContainingList(startingToken); - return !!containingList && contains(invocationChildren, containingList); - } - case 30 /* LessThanToken */: - return containsPrecedingToken(startingToken, sourceFile, node.expression); - default: - return false; - } -} -function createJSSignatureHelpItems(argumentInfo, program, cancellationToken) { - if (argumentInfo.invocation.kind === 2 /* Contextual */) - return void 0; - var expression = getExpressionFromInvocation(argumentInfo.invocation); - var name = isPropertyAccessExpression(expression) ? expression.name.text : void 0; - var typeChecker = program.getTypeChecker(); - return name === void 0 ? void 0 : firstDefined(program.getSourceFiles(), function (sourceFile) { return firstDefined(sourceFile.getNamedDeclarations().get(name), function (declaration) { - var type = declaration.symbol && typeChecker.getTypeOfSymbolAtLocation(declaration.symbol, declaration); - var callSignatures = type && type.getCallSignatures(); - if (callSignatures && callSignatures.length) { - return typeChecker.runWithCancellationToken(cancellationToken, function (typeChecker2) { return createSignatureHelpItems(callSignatures, callSignatures[0], argumentInfo, sourceFile, typeChecker2, - /*useFullPrefix*/ - true); }); - } - }); }); -} -function containsPrecedingToken(startingToken, sourceFile, container) { - var pos = startingToken.getFullStart(); - var currentParent = startingToken.parent; - while (currentParent) { - var precedingToken = findPrecedingToken(pos, sourceFile, currentParent, - /*excludeJsdoc*/ - true); - if (precedingToken) { - return rangeContainsRange(container, precedingToken); - } - currentParent = currentParent.parent; - } - return Debug.fail("Could not find preceding token"); -} -function getArgumentInfoForCompletions(node, position, sourceFile) { - var info = getImmediatelyContainingArgumentInfo(node, position, sourceFile); - return !info || info.isTypeParameterList || info.invocation.kind !== 0 /* Call */ ? void 0 : { invocation: info.invocation.node, argumentCount: info.argumentCount, argumentIndex: info.argumentIndex }; -} -function getArgumentOrParameterListInfo(node, position, sourceFile) { - var info = getArgumentOrParameterListAndIndex(node, sourceFile); - if (!info) - return void 0; - var list = info.list, argumentIndex = info.argumentIndex; - var argumentCount = getArgumentCount(list, - /*ignoreTrailingComma*/ - isInString(sourceFile, position, node)); - if (argumentIndex !== 0) { - Debug.assertLessThan(argumentIndex, argumentCount); - } - var argumentsSpan = getApplicableSpanForArguments(list, sourceFile); - return { list: list, argumentIndex: argumentIndex, argumentCount: argumentCount, argumentsSpan: argumentsSpan }; -} -function getArgumentOrParameterListAndIndex(node, sourceFile) { - if (node.kind === 30 /* LessThanToken */ || node.kind === 21 /* OpenParenToken */) { - return { list: getChildListThatStartsWithOpenerToken(node.parent, node, sourceFile), argumentIndex: 0 }; - } - else { - var list = findContainingList(node); - return list && { list: list, argumentIndex: getArgumentIndex(list, node) }; - } -} -function getImmediatelyContainingArgumentInfo(node, position, sourceFile) { - var parent2 = node.parent; - if (isCallOrNewExpression(parent2)) { - var invocation = parent2; - var info = getArgumentOrParameterListInfo(node, position, sourceFile); - if (!info) - return void 0; - var list = info.list, argumentIndex = info.argumentIndex, argumentCount = info.argumentCount, argumentsSpan = info.argumentsSpan; - var isTypeParameterList = !!parent2.typeArguments && parent2.typeArguments.pos === list.pos; - return { isTypeParameterList: isTypeParameterList, invocation: { kind: 0 /* Call */, node: invocation }, argumentsSpan: argumentsSpan, argumentIndex: argumentIndex, argumentCount: argumentCount }; - } - else if (isNoSubstitutionTemplateLiteral(node) && isTaggedTemplateExpression(parent2)) { - if (isInsideTemplateLiteral(node, position, sourceFile)) { - return getArgumentListInfoForTemplate(parent2, - /*argumentIndex*/ - 0, sourceFile); - } - return void 0; - } - else if (isTemplateHead(node) && parent2.parent.kind === 215 /* TaggedTemplateExpression */) { - var templateExpression = parent2; - var tagExpression = templateExpression.parent; - Debug.assert(templateExpression.kind === 228 /* TemplateExpression */); - var argumentIndex = isInsideTemplateLiteral(node, position, sourceFile) ? 0 : 1; - return getArgumentListInfoForTemplate(tagExpression, argumentIndex, sourceFile); - } - else if (isTemplateSpan(parent2) && isTaggedTemplateExpression(parent2.parent.parent)) { - var templateSpan = parent2; - var tagExpression = parent2.parent.parent; - if (isTemplateTail(node) && !isInsideTemplateLiteral(node, position, sourceFile)) { - return void 0; - } - var spanIndex = templateSpan.parent.templateSpans.indexOf(templateSpan); - var argumentIndex = getArgumentIndexForTemplatePiece(spanIndex, node, position, sourceFile); - return getArgumentListInfoForTemplate(tagExpression, argumentIndex, sourceFile); - } - else if (isJsxOpeningLikeElement(parent2)) { - var attributeSpanStart = parent2.attributes.pos; - var attributeSpanEnd = skipTrivia(sourceFile.text, parent2.attributes.end, - /*stopAfterLineBreak*/ - false); - return { - isTypeParameterList: false, - invocation: { kind: 0 /* Call */, node: parent2 }, - argumentsSpan: createTextSpan(attributeSpanStart, attributeSpanEnd - attributeSpanStart), - argumentIndex: 0, - argumentCount: 1 - }; - } - else { - var typeArgInfo = getPossibleTypeArgumentsInfo(node, sourceFile); - if (typeArgInfo) { - var called = typeArgInfo.called, nTypeArguments = typeArgInfo.nTypeArguments; - var invocation = { kind: 1 /* TypeArgs */, called: called }; - var argumentsSpan = createTextSpanFromBounds(called.getStart(sourceFile), node.end); - return { isTypeParameterList: true, invocation: invocation, argumentsSpan: argumentsSpan, argumentIndex: nTypeArguments, argumentCount: nTypeArguments + 1 }; - } - return void 0; - } -} -function getImmediatelyContainingArgumentOrContextualParameterInfo(node, position, sourceFile, checker) { - return tryGetParameterInfo(node, position, sourceFile, checker) || getImmediatelyContainingArgumentInfo(node, position, sourceFile); -} -function getHighestBinary(b) { - return isBinaryExpression(b.parent) ? getHighestBinary(b.parent) : b; -} -function countBinaryExpressionParameters(b) { - return isBinaryExpression(b.left) ? countBinaryExpressionParameters(b.left) + 1 : 2; -} -function tryGetParameterInfo(startingToken, position, sourceFile, checker) { - var node = getAdjustedNode(startingToken); - if (node === void 0) - return void 0; - var info = getContextualSignatureLocationInfo(node, sourceFile, position, checker); - if (info === void 0) - return void 0; - var contextualType = info.contextualType, argumentIndex = info.argumentIndex, argumentCount = info.argumentCount, argumentsSpan = info.argumentsSpan; - var nonNullableContextualType = contextualType.getNonNullableType(); - var symbol = nonNullableContextualType.symbol; - if (symbol === void 0) - return void 0; - var signature = lastOrUndefined(nonNullableContextualType.getCallSignatures()); - if (signature === void 0) - return void 0; - var invocation = { kind: 2 /* Contextual */, signature: signature, node: startingToken, symbol: chooseBetterSymbol(symbol) }; - return { isTypeParameterList: false, invocation: invocation, argumentsSpan: argumentsSpan, argumentIndex: argumentIndex, argumentCount: argumentCount }; -} -function getAdjustedNode(node) { - switch (node.kind) { - case 21 /* OpenParenToken */: - case 28 /* CommaToken */: - return node; - default: - return findAncestor(node.parent, function (n) { return isParameter(n) ? true : isBindingElement(n) || isObjectBindingPattern(n) || isArrayBindingPattern(n) ? false : "quit"; }); - } -} -function getContextualSignatureLocationInfo(node, sourceFile, position, checker) { - var parent2 = node.parent; - switch (parent2.kind) { - case 217 /* ParenthesizedExpression */: - case 174 /* MethodDeclaration */: - case 218 /* FunctionExpression */: - case 219 /* ArrowFunction */: - var info = getArgumentOrParameterListInfo(node, position, sourceFile); - if (!info) - return void 0; - var argumentIndex = info.argumentIndex, argumentCount = info.argumentCount, argumentsSpan = info.argumentsSpan; - var contextualType = isMethodDeclaration(parent2) ? checker.getContextualTypeForObjectLiteralElement(parent2) : checker.getContextualType(parent2); - return contextualType && { contextualType: contextualType, argumentIndex: argumentIndex, argumentCount: argumentCount, argumentsSpan: argumentsSpan }; - case 226 /* BinaryExpression */: { - var highestBinary = getHighestBinary(parent2); - var contextualType2 = checker.getContextualType(highestBinary); - var argumentIndex2 = node.kind === 21 /* OpenParenToken */ ? 0 : countBinaryExpressionParameters(parent2) - 1; - var argumentCount2 = countBinaryExpressionParameters(highestBinary); - return contextualType2 && { contextualType: contextualType2, argumentIndex: argumentIndex2, argumentCount: argumentCount2, argumentsSpan: createTextSpanFromNode(parent2) }; - } - default: - return void 0; - } -} -function chooseBetterSymbol(s) { - return s.name === "__type" /* Type */ ? firstDefined(s.declarations, function (d) { - var _a; - return isFunctionTypeNode(d) ? (_a = tryCast(d.parent, canHaveSymbol)) == null ? void 0 : _a.symbol : void 0; - }) || s : s; -} -function getArgumentIndex(argumentsList, node) { - var e_873, _t; - var argumentIndex = 0; - try { - for (var _u = __values(argumentsList.getChildren()), _v = _u.next(); !_v.done; _v = _u.next()) { - var child = _v.value; - if (child === node) { - break; - } - if (child.kind !== 28 /* CommaToken */) { - argumentIndex++; - } - } - } - catch (e_873_1) { e_873 = { error: e_873_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_873) throw e_873.error; } - } - return argumentIndex; -} -function getArgumentCount(argumentsList, ignoreTrailingComma) { - var listChildren = argumentsList.getChildren(); - var argumentCount = countWhere(listChildren, function (arg) { return arg.kind !== 28; } /* CommaToken */); - if (!ignoreTrailingComma && listChildren.length > 0 && last(listChildren).kind === 28 /* CommaToken */) { - argumentCount++; - } - return argumentCount; -} -function getArgumentIndexForTemplatePiece(spanIndex, node, position, sourceFile) { - Debug.assert(position >= node.getStart(), "Assumed 'position' could not occur before node."); - if (isTemplateLiteralToken(node)) { - if (isInsideTemplateLiteral(node, position, sourceFile)) { - return 0; - } - return spanIndex + 2; - } - return spanIndex + 1; -} -function getArgumentListInfoForTemplate(tagExpression, argumentIndex, sourceFile) { - var argumentCount = isNoSubstitutionTemplateLiteral(tagExpression.template) ? 1 : tagExpression.template.templateSpans.length + 1; - if (argumentIndex !== 0) { - Debug.assertLessThan(argumentIndex, argumentCount); - } - return { - isTypeParameterList: false, - invocation: { kind: 0 /* Call */, node: tagExpression }, - argumentsSpan: getApplicableSpanForTaggedTemplate(tagExpression, sourceFile), - argumentIndex: argumentIndex, - argumentCount: argumentCount - }; -} -function getApplicableSpanForArguments(argumentsList, sourceFile) { - var applicableSpanStart = argumentsList.getFullStart(); - var applicableSpanEnd = skipTrivia(sourceFile.text, argumentsList.getEnd(), - /*stopAfterLineBreak*/ - false); - return createTextSpan(applicableSpanStart, applicableSpanEnd - applicableSpanStart); -} -function getApplicableSpanForTaggedTemplate(taggedTemplate, sourceFile) { - var template = taggedTemplate.template; - var applicableSpanStart = template.getStart(); - var applicableSpanEnd = template.getEnd(); - if (template.kind === 228 /* TemplateExpression */) { - var lastSpan = last(template.templateSpans); - if (lastSpan.literal.getFullWidth() === 0) { - applicableSpanEnd = skipTrivia(sourceFile.text, applicableSpanEnd, - /*stopAfterLineBreak*/ - false); - } - } - return createTextSpan(applicableSpanStart, applicableSpanEnd - applicableSpanStart); -} -function getContainingArgumentInfo(node, position, sourceFile, checker, isManuallyInvoked) { - var _loop_59 = function (n) { - Debug.assert(rangeContainsRange(n.parent, n), "Not a subspan", function () { return "Child: ".concat(Debug.formatSyntaxKind(n.kind), ", parent: ").concat(Debug.formatSyntaxKind(n.parent.kind)); }); - var argumentInfo = getImmediatelyContainingArgumentOrContextualParameterInfo(n, position, sourceFile, checker); - if (argumentInfo) { - return { value: argumentInfo }; - } - }; - for (var n = node; !isSourceFile(n) && (isManuallyInvoked || !isBlock(n)); n = n.parent) { - var state_18 = _loop_59(n); - if (typeof state_18 === "object") - return state_18.value; - } - return void 0; -} -function getChildListThatStartsWithOpenerToken(parent2, openerToken, sourceFile) { - var children = parent2.getChildren(sourceFile); - var indexOfOpenerToken = children.indexOf(openerToken); - Debug.assert(indexOfOpenerToken >= 0 && children.length > indexOfOpenerToken + 1); - return children[indexOfOpenerToken + 1]; -} -function getExpressionFromInvocation(invocation) { - return invocation.kind === 0 /* Call */ ? getInvokedExpression(invocation.node) : invocation.called; -} -function getEnclosingDeclarationFromInvocation(invocation) { - return invocation.kind === 0 /* Call */ ? invocation.node : invocation.kind === 1 /* TypeArgs */ ? invocation.called : invocation.node; -} -var signatureHelpNodeBuilderFlags = 8192 /* OmitParameterModifiers */ | 70221824 /* IgnoreErrors */ | 16384 /* UseAliasDefinedOutsideCurrentScope */; -function createSignatureHelpItems(candidates, resolvedSignature, _t, sourceFile, typeChecker, useFullPrefix) { - var e_874, _u; - var isTypeParameterList = _t.isTypeParameterList, argumentCount = _t.argumentCount, applicableSpan = _t.argumentsSpan, invocation = _t.invocation, argumentIndex = _t.argumentIndex; - var _a; - var enclosingDeclaration = getEnclosingDeclarationFromInvocation(invocation); - var callTargetSymbol = invocation.kind === 2 /* Contextual */ ? invocation.symbol : typeChecker.getSymbolAtLocation(getExpressionFromInvocation(invocation)) || useFullPrefix && ((_a = resolvedSignature.declaration) == null ? void 0 : _a.symbol); - var callTargetDisplayParts = callTargetSymbol ? symbolToDisplayParts(typeChecker, callTargetSymbol, useFullPrefix ? sourceFile : void 0, - /*meaning*/ - void 0) : emptyArray; - var items = map(candidates, function (candidateSignature) { return getSignatureHelpItem(candidateSignature, callTargetDisplayParts, isTypeParameterList, typeChecker, enclosingDeclaration, sourceFile); }); - if (argumentIndex !== 0) { - Debug.assertLessThan(argumentIndex, argumentCount); - } - var selectedItemIndex = 0; - var itemsSeen = 0; - for (var i = 0; i < items.length; i++) { - var item = items[i]; - if (candidates[i] === resolvedSignature) { - selectedItemIndex = itemsSeen; - if (item.length > 1) { - var count = 0; - try { - for (var item_1 = (e_874 = void 0, __values(item)), item_1_1 = item_1.next(); !item_1_1.done; item_1_1 = item_1.next()) { - var i2 = item_1_1.value; - if (i2.isVariadic || i2.parameters.length >= argumentCount) { - selectedItemIndex = itemsSeen + count; - break; - } - count++; - } - } - catch (e_874_1) { e_874 = { error: e_874_1 }; } - finally { - try { - if (item_1_1 && !item_1_1.done && (_u = item_1.return)) _u.call(item_1); - } - finally { if (e_874) throw e_874.error; } - } - } - } - itemsSeen += item.length; - } - Debug.assert(selectedItemIndex !== -1); - var help = { items: flatMapToMutable(items, identity), applicableSpan: applicableSpan, selectedItemIndex: selectedItemIndex, argumentIndex: argumentIndex, argumentCount: argumentCount }; - var selected = help.items[selectedItemIndex]; - if (selected.isVariadic) { - var firstRest = findIndex(selected.parameters, function (p) { return !!p.isRest; }); - if (-1 < firstRest && firstRest < selected.parameters.length - 1) { - help.argumentIndex = selected.parameters.length; - } - else { - help.argumentIndex = Math.min(help.argumentIndex, selected.parameters.length - 1); - } - } - return help; -} -function createTypeHelpItems(symbol, _t, sourceFile, checker) { - var argumentCount = _t.argumentCount, applicableSpan = _t.argumentsSpan, invocation = _t.invocation, argumentIndex = _t.argumentIndex; - var typeParameters = checker.getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(symbol); - if (!typeParameters) - return void 0; - var items = [getTypeHelpItem(symbol, typeParameters, checker, getEnclosingDeclarationFromInvocation(invocation), sourceFile)]; - return { items: items, applicableSpan: applicableSpan, selectedItemIndex: 0, argumentIndex: argumentIndex, argumentCount: argumentCount }; -} -function getTypeHelpItem(symbol, typeParameters, checker, enclosingDeclaration, sourceFile) { - var typeSymbolDisplay = symbolToDisplayParts(checker, symbol); - var printer = createPrinterWithRemoveComments(); - var parameters = typeParameters.map(function (t) { return createSignatureHelpParameterForTypeParameter(t, checker, enclosingDeclaration, sourceFile, printer); }); - var documentation = symbol.getDocumentationComment(checker); - var tags = symbol.getJsDocTags(checker); - var prefixDisplayParts = __spreadArray(__spreadArray([], __read(typeSymbolDisplay), false), [punctuationPart(30 /* LessThanToken */)], false); - return { isVariadic: false, prefixDisplayParts: prefixDisplayParts, suffixDisplayParts: [punctuationPart(32 /* GreaterThanToken */)], separatorDisplayParts: separatorDisplayParts, parameters: parameters, documentation: documentation, tags: tags }; -} -var separatorDisplayParts = [punctuationPart(28 /* CommaToken */), spacePart()]; -function getSignatureHelpItem(candidateSignature, callTargetDisplayParts, isTypeParameterList, checker, enclosingDeclaration, sourceFile) { - var infos = (isTypeParameterList ? itemInfoForTypeParameters : itemInfoForParameters)(candidateSignature, checker, enclosingDeclaration, sourceFile); - return map(infos, function (_t) { - var isVariadic = _t.isVariadic, parameters = _t.parameters, prefix = _t.prefix, suffix = _t.suffix; - var prefixDisplayParts = __spreadArray(__spreadArray([], __read(callTargetDisplayParts), false), __read(prefix), false); - var suffixDisplayParts = __spreadArray(__spreadArray([], __read(suffix), false), __read(returnTypeToDisplayParts(candidateSignature, enclosingDeclaration, checker)), false); - var documentation = candidateSignature.getDocumentationComment(checker); - var tags = candidateSignature.getJsDocTags(); - return { isVariadic: isVariadic, prefixDisplayParts: prefixDisplayParts, suffixDisplayParts: suffixDisplayParts, separatorDisplayParts: separatorDisplayParts, parameters: parameters, documentation: documentation, tags: tags }; - }); -} -function returnTypeToDisplayParts(candidateSignature, enclosingDeclaration, checker) { - return mapToDisplayParts(function (writer) { - writer.writePunctuation(":"); - writer.writeSpace(" "); - var predicate = checker.getTypePredicateOfSignature(candidateSignature); - if (predicate) { - checker.writeTypePredicate(predicate, enclosingDeclaration, - /*flags*/ - void 0, writer); - } - else { - checker.writeType(checker.getReturnTypeOfSignature(candidateSignature), enclosingDeclaration, - /*flags*/ - void 0, writer); - } - }); -} -function itemInfoForTypeParameters(candidateSignature, checker, enclosingDeclaration, sourceFile) { - var typeParameters = (candidateSignature.target || candidateSignature).typeParameters; - var printer = createPrinterWithRemoveComments(); - var parameters = (typeParameters || emptyArray).map(function (t) { return createSignatureHelpParameterForTypeParameter(t, checker, enclosingDeclaration, sourceFile, printer); }); - var thisParameter = candidateSignature.thisParameter ? [checker.symbolToParameterDeclaration(candidateSignature.thisParameter, enclosingDeclaration, signatureHelpNodeBuilderFlags)] : []; - return checker.getExpandedParameters(candidateSignature).map(function (paramList) { - var params = factory.createNodeArray(__spreadArray(__spreadArray([], __read(thisParameter), false), __read(map(paramList, function (param) { return checker.symbolToParameterDeclaration(param, enclosingDeclaration, signatureHelpNodeBuilderFlags); })), false)); - var parameterParts = mapToDisplayParts(function (writer) { - printer.writeList(2576 /* CallExpressionArguments */, params, sourceFile, writer); - }); - return { isVariadic: false, parameters: parameters, prefix: [punctuationPart(30 /* LessThanToken */)], suffix: __spreadArray([punctuationPart(32 /* GreaterThanToken */)], __read(parameterParts), false) }; - }); -} -function itemInfoForParameters(candidateSignature, checker, enclosingDeclaration, sourceFile) { - var printer = createPrinterWithRemoveComments(); - var typeParameterParts = mapToDisplayParts(function (writer) { - if (candidateSignature.typeParameters && candidateSignature.typeParameters.length) { - var args = factory.createNodeArray(candidateSignature.typeParameters.map(function (p) { return checker.typeParameterToDeclaration(p, enclosingDeclaration, signatureHelpNodeBuilderFlags); })); - printer.writeList(53776 /* TypeParameters */, args, sourceFile, writer); - } - }); - var lists = checker.getExpandedParameters(candidateSignature); - var isVariadic = !checker.hasEffectiveRestParameter(candidateSignature) ? function (_) { return false; } : lists.length === 1 ? function (_) { return true; } : function (pList) { - var _a; - return !!(pList.length && ((_a = tryCast(pList[pList.length - 1], isTransientSymbol)) == null ? void 0 : _a.links.checkFlags) & 32768 /* RestParameter */); - }; - return lists.map(function (parameterList) { return ({ - isVariadic: isVariadic(parameterList), - parameters: parameterList.map(function (p) { return createSignatureHelpParameterForParameter(p, checker, enclosingDeclaration, sourceFile, printer); }), - prefix: __spreadArray(__spreadArray([], __read(typeParameterParts), false), [punctuationPart(21 /* OpenParenToken */)], false), - suffix: [punctuationPart(22 /* CloseParenToken */)] - }); }); -} -function createSignatureHelpParameterForParameter(parameter, checker, enclosingDeclaration, sourceFile, printer) { - var displayParts = mapToDisplayParts(function (writer) { - var param = checker.symbolToParameterDeclaration(parameter, enclosingDeclaration, signatureHelpNodeBuilderFlags); - printer.writeNode(4 /* Unspecified */, param, sourceFile, writer); - }); - var isOptional = checker.isOptionalParameter(parameter.valueDeclaration); - var isRest = isTransientSymbol(parameter) && !!(parameter.links.checkFlags & 32768 /* RestParameter */); - return { name: parameter.name, documentation: parameter.getDocumentationComment(checker), displayParts: displayParts, isOptional: isOptional, isRest: isRest }; -} -function createSignatureHelpParameterForTypeParameter(typeParameter, checker, enclosingDeclaration, sourceFile, printer) { - var displayParts = mapToDisplayParts(function (writer) { - var param = checker.typeParameterToDeclaration(typeParameter, enclosingDeclaration, signatureHelpNodeBuilderFlags); - printer.writeNode(4 /* Unspecified */, param, sourceFile, writer); - }); - return { name: typeParameter.symbol.name, documentation: typeParameter.symbol.getDocumentationComment(checker), displayParts: displayParts, isOptional: false, isRest: false }; -} -// src/services/_namespaces/ts.SmartSelectionRange.ts -var ts_SmartSelectionRange_exports = {}; -__export(ts_SmartSelectionRange_exports, { - getSmartSelectionRange: function () { return getSmartSelectionRange; } -}); -// src/services/smartSelection.ts -function getSmartSelectionRange(pos, sourceFile) { - var _a, _b; - var selectionRange = { - textSpan: createTextSpanFromBounds(sourceFile.getFullStart(), sourceFile.getEnd()) - }; - var parentNode = sourceFile; - outer: while (true) { - var children = getSelectionChildren(parentNode); - if (!children.length) - break; - for (var i = 0; i < children.length; i++) { - var prevNode = children[i - 1]; - var node = children[i]; - var nextNode = children[i + 1]; - if (getTokenPosOfNode(node, sourceFile, - /*includeJsDoc*/ - true) > pos) { - break outer; - } - var comment = singleOrUndefined(getTrailingCommentRanges(sourceFile.text, node.end)); - if (comment && comment.kind === 2 /* SingleLineCommentTrivia */) { - pushSelectionCommentRange(comment.pos, comment.end); - } - if (positionShouldSnapToNode(sourceFile, pos, node)) { - if (isFunctionBody(node) && isFunctionLikeDeclaration(parentNode) && !positionsAreOnSameLine(node.getStart(sourceFile), node.getEnd(), sourceFile)) { - pushSelectionRange(node.getStart(sourceFile), node.getEnd()); - } - if (isBlock(node) || isTemplateSpan(node) || isTemplateHead(node) || isTemplateTail(node) || prevNode && isTemplateHead(prevNode) || isVariableDeclarationList(node) && isVariableStatement(parentNode) || isSyntaxList(node) && isVariableDeclarationList(parentNode) || isVariableDeclaration(node) && isSyntaxList(parentNode) && children.length === 1 || isJSDocTypeExpression(node) || isJSDocSignature(node) || isJSDocTypeLiteral(node)) { - parentNode = node; - break; - } - if (isTemplateSpan(parentNode) && nextNode && isTemplateMiddleOrTemplateTail(nextNode)) { - var start3 = node.getFullStart() - "${".length; - var end2 = nextNode.getStart() + "}".length; - pushSelectionRange(start3, end2); - } - var isBetweenMultiLineBookends = isSyntaxList(node) && isListOpener(prevNode) && isListCloser(nextNode) && !positionsAreOnSameLine(prevNode.getStart(), nextNode.getStart(), sourceFile); - var start2 = isBetweenMultiLineBookends ? prevNode.getEnd() : node.getStart(); - var end = isBetweenMultiLineBookends ? nextNode.getStart() : getEndPos(sourceFile, node); - if (hasJSDocNodes(node) && ((_a = node.jsDoc) == null ? void 0 : _a.length)) { - pushSelectionRange(first(node.jsDoc).getStart(), end); - } - if (isSyntaxList(node)) { - var firstChild = node.getChildren()[0]; - if (firstChild && hasJSDocNodes(firstChild) && ((_b = firstChild.jsDoc) == null ? void 0 : _b.length) && firstChild.getStart() !== node.pos) { - start2 = Math.min(start2, first(firstChild.jsDoc).getStart()); - } - } - pushSelectionRange(start2, end); - if (isStringLiteral(node) || isTemplateLiteral(node)) { - pushSelectionRange(start2 + 1, end - 1); - } - parentNode = node; - break; - } - if (i === children.length - 1) { - break outer; - } - } - } - return selectionRange; - function pushSelectionRange(start2, end) { - if (start2 !== end) { - var textSpan = createTextSpanFromBounds(start2, end); - if (!selectionRange || // Skip ranges that are identical to the parent - !textSpansEqual(textSpan, selectionRange.textSpan) && // Skip ranges that don't contain the original position - textSpanIntersectsWithPosition(textSpan, pos)) { - selectionRange = __assign({ textSpan: textSpan }, selectionRange && { parent: selectionRange }); - } - } - } - function pushSelectionCommentRange(start2, end) { - pushSelectionRange(start2, end); - var pos2 = start2; - while (sourceFile.text.charCodeAt(pos2) === 47 /* slash */) { - pos2++; - } - pushSelectionRange(pos2, end); - } -} -function positionShouldSnapToNode(sourceFile, pos, node) { - Debug.assert(node.pos <= pos); - if (pos < node.end) { - return true; - } - var nodeEnd = node.getEnd(); - if (nodeEnd === pos) { - return getTouchingPropertyName(sourceFile, pos).pos < node.end; - } - return false; -} -var isImport2 = or(isImportDeclaration, isImportEqualsDeclaration); -function getSelectionChildren(node) { - var _a; - if (isSourceFile(node)) { - return groupChildren(node.getChildAt(0).getChildren(), isImport2); - } - if (isMappedTypeNode(node)) { - var _t = __read(node.getChildren()), openBraceToken = _t[0], children = _t.slice(1); - var closeBraceToken = Debug.checkDefined(children.pop()); - Debug.assertEqual(openBraceToken.kind, 19 /* OpenBraceToken */); - Debug.assertEqual(closeBraceToken.kind, 20 /* CloseBraceToken */); - var groupedWithPlusMinusTokens = groupChildren(children, function (child) { return child === node.readonlyToken || child.kind === 148 /* ReadonlyKeyword */ || child === node.questionToken || child.kind === 58; } /* QuestionToken */); - var groupedWithBrackets = groupChildren(groupedWithPlusMinusTokens, function (_t) { - var kind = _t.kind; - return kind === 23 /* OpenBracketToken */ || kind === 168 /* TypeParameter */ || kind === 24; - } /* CloseBracketToken */); - return [ - openBraceToken, - // Pivot on `:` - createSyntaxList2(splitChildren(groupedWithBrackets, function (_t) { - var kind = _t.kind; - return kind === 59; - } /* ColonToken */)), - closeBraceToken - ]; - } - if (isPropertySignature(node)) { - var children = groupChildren(node.getChildren(), function (child) { return child === node.name || contains(node.modifiers, child); }); - var firstJSDocChild = ((_a = children[0]) == null ? void 0 : _a.kind) === 327 /* JSDoc */ ? children[0] : void 0; - var withJSDocSeparated = firstJSDocChild ? children.slice(1) : children; - var splittedChildren = splitChildren(withJSDocSeparated, function (_t) { - var kind = _t.kind; - return kind === 59; - } /* ColonToken */); - return firstJSDocChild ? [firstJSDocChild, createSyntaxList2(splittedChildren)] : splittedChildren; - } - if (isParameter(node)) { - var groupedDotDotDotAndName_1 = groupChildren(node.getChildren(), function (child) { return child === node.dotDotDotToken || child === node.name; }); - var groupedWithQuestionToken = groupChildren(groupedDotDotDotAndName_1, function (child) { return child === groupedDotDotDotAndName_1[0] || child === node.questionToken; }); - return splitChildren(groupedWithQuestionToken, function (_t) { - var kind = _t.kind; - return kind === 64; - } /* EqualsToken */); - } - if (isBindingElement(node)) { - return splitChildren(node.getChildren(), function (_t) { - var kind = _t.kind; - return kind === 64; - } /* EqualsToken */); - } - return node.getChildren(); -} -function groupChildren(children, groupOn) { - var e_875, _t; - var result = []; - var group2; - try { - for (var children_5 = __values(children), children_5_1 = children_5.next(); !children_5_1.done; children_5_1 = children_5.next()) { - var child = children_5_1.value; - if (groupOn(child)) { - group2 = group2 || []; - group2.push(child); - } - else { - if (group2) { - result.push(createSyntaxList2(group2)); - group2 = void 0; - } - result.push(child); - } - } - } - catch (e_875_1) { e_875 = { error: e_875_1 }; } - finally { - try { - if (children_5_1 && !children_5_1.done && (_t = children_5.return)) _t.call(children_5); - } - finally { if (e_875) throw e_875.error; } - } - if (group2) { - result.push(createSyntaxList2(group2)); - } - return result; -} -function splitChildren(children, pivotOn, separateTrailingSemicolon) { - if (separateTrailingSemicolon === void 0) { separateTrailingSemicolon = true; } - if (children.length < 2) { - return children; - } - var splitTokenIndex = findIndex(children, pivotOn); - if (splitTokenIndex === -1) { - return children; - } - var leftChildren = children.slice(0, splitTokenIndex); - var splitToken = children[splitTokenIndex]; - var lastToken = last(children); - var separateLastToken = separateTrailingSemicolon && lastToken.kind === 27 /* SemicolonToken */; - var rightChildren = children.slice(splitTokenIndex + 1, separateLastToken ? children.length - 1 : void 0); - var result = compact([ - leftChildren.length ? createSyntaxList2(leftChildren) : void 0, - splitToken, - rightChildren.length ? createSyntaxList2(rightChildren) : void 0 - ]); - return separateLastToken ? result.concat(lastToken) : result; -} -function createSyntaxList2(children) { - Debug.assertGreaterThanOrEqual(children.length, 1); - return setTextRangePosEnd(parseNodeFactory.createSyntaxList(children), children[0].pos, last(children).end); -} -function isListOpener(token) { - var kind = token && token.kind; - return kind === 19 /* OpenBraceToken */ || kind === 23 /* OpenBracketToken */ || kind === 21 /* OpenParenToken */ || kind === 286 /* JsxOpeningElement */; -} -function isListCloser(token) { - var kind = token && token.kind; - return kind === 20 /* CloseBraceToken */ || kind === 24 /* CloseBracketToken */ || kind === 22 /* CloseParenToken */ || kind === 287 /* JsxClosingElement */; -} -function getEndPos(sourceFile, node) { - switch (node.kind) { - case 348 /* JSDocParameterTag */: - case 345 /* JSDocCallbackTag */: - case 355 /* JSDocPropertyTag */: - case 353 /* JSDocTypedefTag */: - case 350 /* JSDocThisTag */: - return sourceFile.getLineEndOfPosition(node.getStart()); - default: - return node.getEnd(); - } -} -// src/services/_namespaces/ts.SymbolDisplay.ts -var ts_SymbolDisplay_exports = {}; -__export(ts_SymbolDisplay_exports, { - getSymbolDisplayPartsDocumentationAndSymbolKind: function () { return getSymbolDisplayPartsDocumentationAndSymbolKind; }, - getSymbolKind: function () { return getSymbolKind; }, - getSymbolModifiers: function () { return getSymbolModifiers; } -}); -// src/services/symbolDisplay.ts -var symbolDisplayNodeBuilderFlags = 8192 /* OmitParameterModifiers */ | 70221824 /* IgnoreErrors */ | 16384 /* UseAliasDefinedOutsideCurrentScope */; -function getSymbolKind(typeChecker, symbol, location) { - var result = getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar(typeChecker, symbol, location); - if (result !== "" /* unknown */) { - return result; - } - var flags = getCombinedLocalAndExportSymbolFlags(symbol); - if (flags & 32 /* Class */) { - return getDeclarationOfKind(symbol, 231 /* ClassExpression */) ? "local class" /* localClassElement */ : "class" /* classElement */; - } - if (flags & 384 /* Enum */) - return "enum" /* enumElement */; - if (flags & 524288 /* TypeAlias */) - return "type" /* typeElement */; - if (flags & 64 /* Interface */) - return "interface" /* interfaceElement */; - if (flags & 262144 /* TypeParameter */) - return "type parameter" /* typeParameterElement */; - if (flags & 8 /* EnumMember */) - return "enum member" /* enumMemberElement */; - if (flags & 2097152 /* Alias */) - return "alias" /* alias */; - if (flags & 1536 /* Module */) - return "module" /* moduleElement */; - return result; -} -function getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar(typeChecker, symbol, location) { - var roots = typeChecker.getRootSymbols(symbol); - if (roots.length === 1 && first(roots).flags & 8192 /* Method */ && typeChecker.getTypeOfSymbolAtLocation(symbol, location).getNonNullableType().getCallSignatures().length !== 0) { - return "method" /* memberFunctionElement */; - } - if (typeChecker.isUndefinedSymbol(symbol)) { - return "var" /* variableElement */; - } - if (typeChecker.isArgumentsSymbol(symbol)) { - return "local var" /* localVariableElement */; - } - if (location.kind === 110 /* ThisKeyword */ && isExpression(location) || isThisInTypeQuery(location)) { - return "parameter" /* parameterElement */; - } - var flags = getCombinedLocalAndExportSymbolFlags(symbol); - if (flags & 3 /* Variable */) { - if (isFirstDeclarationOfSymbolParameter(symbol)) { - return "parameter" /* parameterElement */; - } - else if (symbol.valueDeclaration && isVarConst(symbol.valueDeclaration)) { - return "const" /* constElement */; - } - else if (symbol.valueDeclaration && isVarUsing(symbol.valueDeclaration)) { - return "using" /* variableUsingElement */; - } - else if (symbol.valueDeclaration && isVarAwaitUsing(symbol.valueDeclaration)) { - return "await using" /* variableAwaitUsingElement */; - } - else if (forEach(symbol.declarations, isLet)) { - return "let" /* letElement */; - } - return isLocalVariableOrFunction(symbol) ? "local var" /* localVariableElement */ : "var" /* variableElement */; - } - if (flags & 16 /* Function */) - return isLocalVariableOrFunction(symbol) ? "local function" /* localFunctionElement */ : "function" /* functionElement */; - if (flags & 32768 /* GetAccessor */) - return "getter" /* memberGetAccessorElement */; - if (flags & 65536 /* SetAccessor */) - return "setter" /* memberSetAccessorElement */; - if (flags & 8192 /* Method */) - return "method" /* memberFunctionElement */; - if (flags & 16384 /* Constructor */) - return "constructor" /* constructorImplementationElement */; - if (flags & 131072 /* Signature */) - return "index" /* indexSignatureElement */; - if (flags & 4 /* Property */) { - if (flags & 33554432 /* Transient */ && symbol.links.checkFlags & 6 /* Synthetic */) { - var unionPropertyKind = forEach(typeChecker.getRootSymbols(symbol), function (rootSymbol) { - var rootSymbolFlags = rootSymbol.getFlags(); - if (rootSymbolFlags & (98308 /* PropertyOrAccessor */ | 3 /* Variable */)) { - return "property" /* memberVariableElement */; - } - }); - if (!unionPropertyKind) { - var typeOfUnionProperty = typeChecker.getTypeOfSymbolAtLocation(symbol, location); - if (typeOfUnionProperty.getCallSignatures().length) { - return "method" /* memberFunctionElement */; - } - return "property" /* memberVariableElement */; - } - return unionPropertyKind; - } - return "property" /* memberVariableElement */; - } - return "" /* unknown */; -} -function getNormalizedSymbolModifiers(symbol) { - if (symbol.declarations && symbol.declarations.length) { - var _t = __read(symbol.declarations), declaration = _t[0], declarations = _t.slice(1); - var excludeFlags = length(declarations) && isDeprecatedDeclaration(declaration) && some(declarations, function (d) { return !isDeprecatedDeclaration(d); }) ? 8192 /* Deprecated */ : 0 /* None */; - var modifiers = getNodeModifiers(declaration, excludeFlags); - if (modifiers) { - return modifiers.split(","); - } - } - return []; -} -function getSymbolModifiers(typeChecker, symbol) { - if (!symbol) { - return "" /* none */; - } - var modifiers = new Set(getNormalizedSymbolModifiers(symbol)); - if (symbol.flags & 2097152 /* Alias */) { - var resolvedSymbol = typeChecker.getAliasedSymbol(symbol); - if (resolvedSymbol !== symbol) { - forEach(getNormalizedSymbolModifiers(resolvedSymbol), function (modifier) { - modifiers.add(modifier); - }); - } - } - if (symbol.flags & 16777216 /* Optional */) { - modifiers.add("optional" /* optionalModifier */); - } - return modifiers.size > 0 ? arrayFrom(modifiers.values()).join(",") : "" /* none */; -} -function getSymbolDisplayPartsDocumentationAndSymbolKindWorker(typeChecker, symbol, sourceFile, enclosingDeclaration, location, type, semanticMeaning, alias) { - var e_876, _t; - var _a; - var displayParts = []; - var documentation = []; - var tags = []; - var symbolFlags = getCombinedLocalAndExportSymbolFlags(symbol); - var symbolKind = semanticMeaning & 1 /* Value */ ? getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar(typeChecker, symbol, location) : "" /* unknown */; - var hasAddedSymbolInfo = false; - var isThisExpression = location.kind === 110 /* ThisKeyword */ && isInExpressionContext(location) || isThisInTypeQuery(location); - var documentationFromAlias; - var tagsFromAlias; - var hasMultipleSignatures = false; - if (location.kind === 110 /* ThisKeyword */ && !isThisExpression) { - return { displayParts: [keywordPart(110 /* ThisKeyword */)], documentation: [], symbolKind: "primitive type" /* primitiveType */, tags: void 0 }; - } - if (symbolKind !== "" /* unknown */ || symbolFlags & 32 /* Class */ || symbolFlags & 2097152 /* Alias */) { - if (symbolKind === "getter" /* memberGetAccessorElement */ || symbolKind === "setter" /* memberSetAccessorElement */) { - var declaration = find(symbol.declarations, function (declaration2) { return declaration2.name === location; }); - if (declaration) { - switch (declaration.kind) { - case 177 /* GetAccessor */: - symbolKind = "getter" /* memberGetAccessorElement */; - break; - case 178 /* SetAccessor */: - symbolKind = "setter" /* memberSetAccessorElement */; - break; - case 172 /* PropertyDeclaration */: - symbolKind = "accessor" /* memberAccessorVariableElement */; - break; - default: - Debug.assertNever(declaration); - } - } - else { - symbolKind = "property" /* memberVariableElement */; - } - } - var signature = void 0; - type !== null && type !== void 0 ? type : (type = isThisExpression ? typeChecker.getTypeAtLocation(location) : typeChecker.getTypeOfSymbolAtLocation(symbol, location)); - if (location.parent && location.parent.kind === 211 /* PropertyAccessExpression */) { - var right = location.parent.name; - if (right === location || right && right.getFullWidth() === 0) { - location = location.parent; - } - } - var callExpressionLike = void 0; - if (isCallOrNewExpression(location)) { - callExpressionLike = location; - } - else if (isCallExpressionTarget(location) || isNewExpressionTarget(location)) { - callExpressionLike = location.parent; - } - else if (location.parent && (isJsxOpeningLikeElement(location.parent) || isTaggedTemplateExpression(location.parent)) && isFunctionLike(symbol.valueDeclaration)) { - callExpressionLike = location.parent; - } - if (callExpressionLike) { - signature = typeChecker.getResolvedSignature(callExpressionLike); - var useConstructSignatures = callExpressionLike.kind === 214 /* NewExpression */ || isCallExpression(callExpressionLike) && callExpressionLike.expression.kind === 108 /* SuperKeyword */; - var allSignatures = useConstructSignatures ? type.getConstructSignatures() : type.getCallSignatures(); - if (signature && !contains(allSignatures, signature.target) && !contains(allSignatures, signature)) { - signature = allSignatures.length ? allSignatures[0] : void 0; - } - if (signature) { - if (useConstructSignatures && symbolFlags & 32 /* Class */) { - symbolKind = "constructor" /* constructorImplementationElement */; - addPrefixForAnyFunctionOrVar(type.symbol, symbolKind); - } - else if (symbolFlags & 2097152 /* Alias */) { - symbolKind = "alias" /* alias */; - pushSymbolKind(symbolKind); - displayParts.push(spacePart()); - if (useConstructSignatures) { - if (signature.flags & 4 /* Abstract */) { - displayParts.push(keywordPart(128 /* AbstractKeyword */)); - displayParts.push(spacePart()); - } - displayParts.push(keywordPart(105 /* NewKeyword */)); - displayParts.push(spacePart()); - } - addFullSymbolName(symbol); - } - else { - addPrefixForAnyFunctionOrVar(symbol, symbolKind); - } - switch (symbolKind) { - case "JSX attribute" /* jsxAttribute */: - case "property" /* memberVariableElement */: - case "var" /* variableElement */: - case "const" /* constElement */: - case "let" /* letElement */: - case "parameter" /* parameterElement */: - case "local var" /* localVariableElement */: - displayParts.push(punctuationPart(59 /* ColonToken */)); - displayParts.push(spacePart()); - if (!(getObjectFlags(type) & 16 /* Anonymous */) && type.symbol) { - addRange(displayParts, symbolToDisplayParts(typeChecker, type.symbol, enclosingDeclaration, - /*meaning*/ - void 0, 4 /* AllowAnyNodeKind */ | 1 /* WriteTypeParametersOrArguments */)); - displayParts.push(lineBreakPart()); - } - if (useConstructSignatures) { - if (signature.flags & 4 /* Abstract */) { - displayParts.push(keywordPart(128 /* AbstractKeyword */)); - displayParts.push(spacePart()); - } - displayParts.push(keywordPart(105 /* NewKeyword */)); - displayParts.push(spacePart()); - } - addSignatureDisplayParts(signature, allSignatures, 262144 /* WriteArrowStyleSignature */); - break; - default: - addSignatureDisplayParts(signature, allSignatures); - } - hasAddedSymbolInfo = true; - hasMultipleSignatures = allSignatures.length > 1; - } - } - else if (isNameOfFunctionDeclaration(location) && !(symbolFlags & 98304 /* Accessor */) || // name of function declaration - location.kind === 137 /* ConstructorKeyword */ && location.parent.kind === 176 /* Constructor */) { - var functionDeclaration_1 = location.parent; - var locationIsSymbolDeclaration = symbol.declarations && find(symbol.declarations, function (declaration) { return declaration === (location.kind === 137 /* ConstructorKeyword */ ? functionDeclaration_1.parent : functionDeclaration_1); }); - if (locationIsSymbolDeclaration) { - var allSignatures = functionDeclaration_1.kind === 176 /* Constructor */ ? type.getNonNullableType().getConstructSignatures() : type.getNonNullableType().getCallSignatures(); - if (!typeChecker.isImplementationOfOverload(functionDeclaration_1)) { - signature = typeChecker.getSignatureFromDeclaration(functionDeclaration_1); - } - else { - signature = allSignatures[0]; - } - if (functionDeclaration_1.kind === 176 /* Constructor */) { - symbolKind = "constructor" /* constructorImplementationElement */; - addPrefixForAnyFunctionOrVar(type.symbol, symbolKind); - } - else { - addPrefixForAnyFunctionOrVar(functionDeclaration_1.kind === 179 /* CallSignature */ && !(type.symbol.flags & 2048 /* TypeLiteral */ || type.symbol.flags & 4096 /* ObjectLiteral */) ? type.symbol : symbol, symbolKind); - } - if (signature) { - addSignatureDisplayParts(signature, allSignatures); - } - hasAddedSymbolInfo = true; - hasMultipleSignatures = allSignatures.length > 1; - } - } - } - if (symbolFlags & 32 /* Class */ && !hasAddedSymbolInfo && !isThisExpression) { - addAliasPrefixIfNecessary(); - if (getDeclarationOfKind(symbol, 231 /* ClassExpression */)) { - pushSymbolKind("local class" /* localClassElement */); - } - else { - displayParts.push(keywordPart(86 /* ClassKeyword */)); - } - displayParts.push(spacePart()); - addFullSymbolName(symbol); - writeTypeParametersOfSymbol(symbol, sourceFile); - } - if (symbolFlags & 64 /* Interface */ && semanticMeaning & 2 /* Type */) { - prefixNextMeaning(); - displayParts.push(keywordPart(120 /* InterfaceKeyword */)); - displayParts.push(spacePart()); - addFullSymbolName(symbol); - writeTypeParametersOfSymbol(symbol, sourceFile); - } - if (symbolFlags & 524288 /* TypeAlias */ && semanticMeaning & 2 /* Type */) { - prefixNextMeaning(); - displayParts.push(keywordPart(156 /* TypeKeyword */)); - displayParts.push(spacePart()); - addFullSymbolName(symbol); - writeTypeParametersOfSymbol(symbol, sourceFile); - displayParts.push(spacePart()); - displayParts.push(operatorPart(64 /* EqualsToken */)); - displayParts.push(spacePart()); - addRange(displayParts, typeToDisplayParts(typeChecker, location.parent && isConstTypeReference(location.parent) ? typeChecker.getTypeAtLocation(location.parent) : typeChecker.getDeclaredTypeOfSymbol(symbol), enclosingDeclaration, 8388608 /* InTypeAlias */)); - } - if (symbolFlags & 384 /* Enum */) { - prefixNextMeaning(); - if (some(symbol.declarations, function (d) { return isEnumDeclaration(d) && isEnumConst(d); })) { - displayParts.push(keywordPart(87 /* ConstKeyword */)); - displayParts.push(spacePart()); - } - displayParts.push(keywordPart(94 /* EnumKeyword */)); - displayParts.push(spacePart()); - addFullSymbolName(symbol); - } - if (symbolFlags & 1536 /* Module */ && !isThisExpression) { - prefixNextMeaning(); - var declaration = getDeclarationOfKind(symbol, 267 /* ModuleDeclaration */); - var isNamespace = declaration && declaration.name && declaration.name.kind === 80 /* Identifier */; - displayParts.push(keywordPart(isNamespace ? 145 /* NamespaceKeyword */ : 144 /* ModuleKeyword */)); - displayParts.push(spacePart()); - addFullSymbolName(symbol); - } - if (symbolFlags & 262144 /* TypeParameter */ && semanticMeaning & 2 /* Type */) { - prefixNextMeaning(); - displayParts.push(punctuationPart(21 /* OpenParenToken */)); - displayParts.push(textPart("type parameter")); - displayParts.push(punctuationPart(22 /* CloseParenToken */)); - displayParts.push(spacePart()); - addFullSymbolName(symbol); - if (symbol.parent) { - addInPrefix(); - addFullSymbolName(symbol.parent, enclosingDeclaration); - writeTypeParametersOfSymbol(symbol.parent, enclosingDeclaration); - } - else { - var decl = getDeclarationOfKind(symbol, 168 /* TypeParameter */); - if (decl === void 0) - return Debug.fail(); - var declaration = decl.parent; - if (declaration) { - if (isFunctionLike(declaration)) { - addInPrefix(); - var signature = typeChecker.getSignatureFromDeclaration(declaration); - if (declaration.kind === 180 /* ConstructSignature */) { - displayParts.push(keywordPart(105 /* NewKeyword */)); - displayParts.push(spacePart()); - } - else if (declaration.kind !== 179 /* CallSignature */ && declaration.name) { - addFullSymbolName(declaration.symbol); - } - addRange(displayParts, signatureToDisplayParts(typeChecker, signature, sourceFile, 32 /* WriteTypeArgumentsOfSignature */)); - } - else if (isTypeAliasDeclaration(declaration)) { - addInPrefix(); - displayParts.push(keywordPart(156 /* TypeKeyword */)); - displayParts.push(spacePart()); - addFullSymbolName(declaration.symbol); - writeTypeParametersOfSymbol(declaration.symbol, sourceFile); - } - } - } - } - if (symbolFlags & 8 /* EnumMember */) { - symbolKind = "enum member" /* enumMemberElement */; - addPrefixForAnyFunctionOrVar(symbol, "enum member"); - var declaration = (_a = symbol.declarations) == null ? void 0 : _a[0]; - if ((declaration == null ? void 0 : declaration.kind) === 306 /* EnumMember */) { - var constantValue = typeChecker.getConstantValue(declaration); - if (constantValue !== void 0) { - displayParts.push(spacePart()); - displayParts.push(operatorPart(64 /* EqualsToken */)); - displayParts.push(spacePart()); - displayParts.push(displayPart(getTextOfConstantValue(constantValue), typeof constantValue === "number" ? 7 /* numericLiteral */ : 8 /* stringLiteral */)); - } - } - } - if (symbol.flags & 2097152 /* Alias */) { - prefixNextMeaning(); - if (!hasAddedSymbolInfo || documentation.length === 0 && tags.length === 0) { - var resolvedSymbol = typeChecker.getAliasedSymbol(symbol); - if (resolvedSymbol !== symbol && resolvedSymbol.declarations && resolvedSymbol.declarations.length > 0) { - var resolvedNode = resolvedSymbol.declarations[0]; - var declarationName = getNameOfDeclaration(resolvedNode); - if (declarationName && !hasAddedSymbolInfo) { - var isExternalModuleDeclaration = isModuleWithStringLiteralName(resolvedNode) && hasSyntacticModifier(resolvedNode, 2 /* Ambient */); - var shouldUseAliasName = symbol.name !== "default" && !isExternalModuleDeclaration; - var resolvedInfo = getSymbolDisplayPartsDocumentationAndSymbolKindWorker(typeChecker, resolvedSymbol, getSourceFileOfNode(resolvedNode), resolvedNode, declarationName, type, semanticMeaning, shouldUseAliasName ? symbol : resolvedSymbol); - displayParts.push.apply(displayParts, __spreadArray([], __read(resolvedInfo.displayParts), false)); - displayParts.push(lineBreakPart()); - documentationFromAlias = resolvedInfo.documentation; - tagsFromAlias = resolvedInfo.tags; - } - else { - documentationFromAlias = resolvedSymbol.getContextualDocumentationComment(resolvedNode, typeChecker); - tagsFromAlias = resolvedSymbol.getJsDocTags(typeChecker); - } - } - } - if (symbol.declarations) { - switch (symbol.declarations[0].kind) { - case 270 /* NamespaceExportDeclaration */: - displayParts.push(keywordPart(95 /* ExportKeyword */)); - displayParts.push(spacePart()); - displayParts.push(keywordPart(145 /* NamespaceKeyword */)); - break; - case 277 /* ExportAssignment */: - displayParts.push(keywordPart(95 /* ExportKeyword */)); - displayParts.push(spacePart()); - displayParts.push(keywordPart(symbol.declarations[0].isExportEquals ? 64 /* EqualsToken */ : 90 /* DefaultKeyword */)); - break; - case 281 /* ExportSpecifier */: - displayParts.push(keywordPart(95 /* ExportKeyword */)); - break; - default: - displayParts.push(keywordPart(102 /* ImportKeyword */)); - } - } - displayParts.push(spacePart()); - addFullSymbolName(symbol); - forEach(symbol.declarations, function (declaration) { - if (declaration.kind === 271 /* ImportEqualsDeclaration */) { - var importEqualsDeclaration = declaration; - if (isExternalModuleImportEqualsDeclaration(importEqualsDeclaration)) { - displayParts.push(spacePart()); - displayParts.push(operatorPart(64 /* EqualsToken */)); - displayParts.push(spacePart()); - displayParts.push(keywordPart(149 /* RequireKeyword */)); - displayParts.push(punctuationPart(21 /* OpenParenToken */)); - displayParts.push(displayPart(getTextOfNode(getExternalModuleImportEqualsDeclarationExpression(importEqualsDeclaration)), 8 /* stringLiteral */)); - displayParts.push(punctuationPart(22 /* CloseParenToken */)); - } - else { - var internalAliasSymbol = typeChecker.getSymbolAtLocation(importEqualsDeclaration.moduleReference); - if (internalAliasSymbol) { - displayParts.push(spacePart()); - displayParts.push(operatorPart(64 /* EqualsToken */)); - displayParts.push(spacePart()); - addFullSymbolName(internalAliasSymbol, enclosingDeclaration); - } - } - return true; - } - }); - } - if (!hasAddedSymbolInfo) { - if (symbolKind !== "" /* unknown */) { - if (type) { - if (isThisExpression) { - prefixNextMeaning(); - displayParts.push(keywordPart(110 /* ThisKeyword */)); - } - else { - addPrefixForAnyFunctionOrVar(symbol, symbolKind); - } - if (symbolKind === "property" /* memberVariableElement */ || symbolKind === "accessor" /* memberAccessorVariableElement */ || symbolKind === "getter" /* memberGetAccessorElement */ || symbolKind === "setter" /* memberSetAccessorElement */ || symbolKind === "JSX attribute" /* jsxAttribute */ || symbolFlags & 3 /* Variable */ || symbolKind === "local var" /* localVariableElement */ || symbolKind === "index" /* indexSignatureElement */ || symbolKind === "using" /* variableUsingElement */ || symbolKind === "await using" /* variableAwaitUsingElement */ || isThisExpression) { - displayParts.push(punctuationPart(59 /* ColonToken */)); - displayParts.push(spacePart()); - if (type.symbol && type.symbol.flags & 262144 /* TypeParameter */ && symbolKind !== "index" /* indexSignatureElement */) { - var typeParameterParts = mapToDisplayParts(function (writer) { - var param = typeChecker.typeParameterToDeclaration(type, enclosingDeclaration, symbolDisplayNodeBuilderFlags); - getPrinter().writeNode(4 /* Unspecified */, param, getSourceFileOfNode(getParseTreeNode(enclosingDeclaration)), writer); - }); - addRange(displayParts, typeParameterParts); - } - else { - addRange(displayParts, typeToDisplayParts(typeChecker, type, enclosingDeclaration)); - } - if (isTransientSymbol(symbol) && symbol.links.target && isTransientSymbol(symbol.links.target) && symbol.links.target.links.tupleLabelDeclaration) { - var labelDecl = symbol.links.target.links.tupleLabelDeclaration; - Debug.assertNode(labelDecl.name, isIdentifier); - displayParts.push(spacePart()); - displayParts.push(punctuationPart(21 /* OpenParenToken */)); - displayParts.push(textPart(idText(labelDecl.name))); - displayParts.push(punctuationPart(22 /* CloseParenToken */)); - } - } - else if (symbolFlags & 16 /* Function */ || symbolFlags & 8192 /* Method */ || symbolFlags & 16384 /* Constructor */ || symbolFlags & 131072 /* Signature */ || symbolFlags & 98304 /* Accessor */ || symbolKind === "method" /* memberFunctionElement */) { - var allSignatures = type.getNonNullableType().getCallSignatures(); - if (allSignatures.length) { - addSignatureDisplayParts(allSignatures[0], allSignatures); - hasMultipleSignatures = allSignatures.length > 1; - } - } - } - } - else { - symbolKind = getSymbolKind(typeChecker, symbol, location); - } - } - if (documentation.length === 0 && !hasMultipleSignatures) { - documentation = symbol.getContextualDocumentationComment(enclosingDeclaration, typeChecker); - } - if (documentation.length === 0 && symbolFlags & 4 /* Property */) { - if (symbol.parent && symbol.declarations && forEach(symbol.parent.declarations, function (declaration) { return declaration.kind === 312; } /* SourceFile */)) { - try { - for (var _u = __values(symbol.declarations), _v = _u.next(); !_v.done; _v = _u.next()) { - var declaration = _v.value; - if (!declaration.parent || declaration.parent.kind !== 226 /* BinaryExpression */) { - continue; - } - var rhsSymbol = typeChecker.getSymbolAtLocation(declaration.parent.right); - if (!rhsSymbol) { - continue; - } - documentation = rhsSymbol.getDocumentationComment(typeChecker); - tags = rhsSymbol.getJsDocTags(typeChecker); - if (documentation.length > 0) { - break; - } - } - } - catch (e_876_1) { e_876 = { error: e_876_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_876) throw e_876.error; } - } - } - } - if (documentation.length === 0 && isIdentifier(location) && symbol.valueDeclaration && isBindingElement(symbol.valueDeclaration)) { - var declaration = symbol.valueDeclaration; - var parent2 = declaration.parent; - if (isIdentifier(declaration.name) && isObjectBindingPattern(parent2)) { - var name_138 = getTextOfIdentifierOrLiteral(declaration.name); - var objectType = typeChecker.getTypeAtLocation(parent2); - documentation = firstDefined(objectType.isUnion() ? objectType.types : [objectType], function (t) { - var prop = t.getProperty(name_138); - return prop ? prop.getDocumentationComment(typeChecker) : void 0; - }) || emptyArray; - } - } - if (tags.length === 0 && !hasMultipleSignatures) { - tags = symbol.getContextualJsDocTags(enclosingDeclaration, typeChecker); - } - if (documentation.length === 0 && documentationFromAlias) { - documentation = documentationFromAlias; - } - if (tags.length === 0 && tagsFromAlias) { - tags = tagsFromAlias; - } - return { displayParts: displayParts, documentation: documentation, symbolKind: symbolKind, tags: tags.length === 0 ? void 0 : tags }; - function getPrinter() { - return createPrinterWithRemoveComments(); - } - function prefixNextMeaning() { - if (displayParts.length) { - displayParts.push(lineBreakPart()); - } - addAliasPrefixIfNecessary(); - } - function addAliasPrefixIfNecessary() { - if (alias) { - pushSymbolKind("alias" /* alias */); - displayParts.push(spacePart()); - } - } - function addInPrefix() { - displayParts.push(spacePart()); - displayParts.push(keywordPart(103 /* InKeyword */)); - displayParts.push(spacePart()); - } - function addFullSymbolName(symbolToDisplay, enclosingDeclaration2) { - var indexInfos; - if (alias && symbolToDisplay === symbol) { - symbolToDisplay = alias; - } - if (symbolKind === "index" /* indexSignatureElement */) { - indexInfos = typeChecker.getIndexInfosOfIndexSymbol(symbolToDisplay); - } - var fullSymbolDisplayParts = []; - if (symbolToDisplay.flags & 131072 /* Signature */ && indexInfos) { - if (symbolToDisplay.parent) { - fullSymbolDisplayParts = symbolToDisplayParts(typeChecker, symbolToDisplay.parent); - } - fullSymbolDisplayParts.push(punctuationPart(23 /* OpenBracketToken */)); - indexInfos.forEach(function (info, i) { - fullSymbolDisplayParts.push.apply(fullSymbolDisplayParts, __spreadArray([], __read(typeToDisplayParts(typeChecker, info.keyType)), false)); - if (i !== indexInfos.length - 1) { - fullSymbolDisplayParts.push(spacePart()); - fullSymbolDisplayParts.push(punctuationPart(52 /* BarToken */)); - fullSymbolDisplayParts.push(spacePart()); - } - }); - fullSymbolDisplayParts.push(punctuationPart(24 /* CloseBracketToken */)); - } - else { - fullSymbolDisplayParts = symbolToDisplayParts(typeChecker, symbolToDisplay, enclosingDeclaration2 || sourceFile, - /*meaning*/ - void 0, 1 /* WriteTypeParametersOrArguments */ | 2 /* UseOnlyExternalAliasing */ | 4 /* AllowAnyNodeKind */); - } - addRange(displayParts, fullSymbolDisplayParts); - if (symbol.flags & 16777216 /* Optional */) { - displayParts.push(punctuationPart(58 /* QuestionToken */)); - } - } - function addPrefixForAnyFunctionOrVar(symbol2, symbolKind2) { - prefixNextMeaning(); - if (symbolKind2) { - pushSymbolKind(symbolKind2); - if (symbol2 && !some(symbol2.declarations, function (d) { return isArrowFunction(d) || (isFunctionExpression(d) || isClassExpression(d)) && !d.name; })) { - displayParts.push(spacePart()); - addFullSymbolName(symbol2); - } - } - } - function pushSymbolKind(symbolKind2) { - switch (symbolKind2) { - case "var" /* variableElement */: - case "function" /* functionElement */: - case "let" /* letElement */: - case "const" /* constElement */: - case "constructor" /* constructorImplementationElement */: - case "using" /* variableUsingElement */: - case "await using" /* variableAwaitUsingElement */: - displayParts.push(textOrKeywordPart(symbolKind2)); - return; - default: - displayParts.push(punctuationPart(21 /* OpenParenToken */)); - displayParts.push(textOrKeywordPart(symbolKind2)); - displayParts.push(punctuationPart(22 /* CloseParenToken */)); - return; - } - } - function addSignatureDisplayParts(signature, allSignatures, flags /* None */) { - if (flags === void 0) { flags = 0; } - addRange(displayParts, signatureToDisplayParts(typeChecker, signature, enclosingDeclaration, flags | 32 /* WriteTypeArgumentsOfSignature */)); - if (allSignatures.length > 1) { - displayParts.push(spacePart()); - displayParts.push(punctuationPart(21 /* OpenParenToken */)); - displayParts.push(operatorPart(40 /* PlusToken */)); - displayParts.push(displayPart((allSignatures.length - 1).toString(), 7 /* numericLiteral */)); - displayParts.push(spacePart()); - displayParts.push(textPart(allSignatures.length === 2 ? "overload" : "overloads")); - displayParts.push(punctuationPart(22 /* CloseParenToken */)); - } - documentation = signature.getDocumentationComment(typeChecker); - tags = signature.getJsDocTags(); - if (allSignatures.length > 1 && documentation.length === 0 && tags.length === 0) { - documentation = allSignatures[0].getDocumentationComment(typeChecker); - tags = allSignatures[0].getJsDocTags().filter(function (tag) { return tag.name !== "deprecated"; }); - } - } - function writeTypeParametersOfSymbol(symbol2, enclosingDeclaration2) { - var typeParameterParts = mapToDisplayParts(function (writer) { - var params = typeChecker.symbolToTypeParameterDeclarations(symbol2, enclosingDeclaration2, symbolDisplayNodeBuilderFlags); - getPrinter().writeList(53776 /* TypeParameters */, params, getSourceFileOfNode(getParseTreeNode(enclosingDeclaration2)), writer); - }); - addRange(displayParts, typeParameterParts); - } -} -function getSymbolDisplayPartsDocumentationAndSymbolKind(typeChecker, symbol, sourceFile, enclosingDeclaration, location, semanticMeaning, alias) { - if (semanticMeaning === void 0) { semanticMeaning = getMeaningFromLocation(location); } - return getSymbolDisplayPartsDocumentationAndSymbolKindWorker(typeChecker, symbol, sourceFile, enclosingDeclaration, location, - /*type*/ - void 0, semanticMeaning, alias); -} -function isLocalVariableOrFunction(symbol) { - if (symbol.parent) { - return false; - } - return forEach(symbol.declarations, function (declaration) { - if (declaration.kind === 218 /* FunctionExpression */) { - return true; - } - if (declaration.kind !== 260 /* VariableDeclaration */ && declaration.kind !== 262 /* FunctionDeclaration */) { - return false; - } - for (var parent2 = declaration.parent; !isFunctionBlock(parent2); parent2 = parent2.parent) { - if (parent2.kind === 312 /* SourceFile */ || parent2.kind === 268 /* ModuleBlock */) { - return false; - } - } - return true; - }); -} -// src/services/_namespaces/ts.textChanges.ts -var ts_textChanges_exports = {}; -__export(ts_textChanges_exports, { - ChangeTracker: function () { return ChangeTracker; }, - LeadingTriviaOption: function () { return LeadingTriviaOption; }, - TrailingTriviaOption: function () { return TrailingTriviaOption; }, - applyChanges: function () { return applyChanges; }, - assignPositionsToNode: function () { return assignPositionsToNode; }, - createWriter: function () { return createWriter; }, - deleteNode: function () { return deleteNode; }, - isThisTypeAnnotatable: function () { return isThisTypeAnnotatable; }, - isValidLocationToAddComment: function () { return isValidLocationToAddComment; } -}); -// src/services/textChanges.ts -function getPos2(n) { - var result = n.__pos; - Debug.assert(typeof result === "number"); - return result; -} -function setPos(n, pos) { - Debug.assert(typeof pos === "number"); - n.__pos = pos; -} -function getEnd(n) { - var result = n.__end; - Debug.assert(typeof result === "number"); - return result; -} -function setEnd(n, end) { - Debug.assert(typeof end === "number"); - n.__end = end; -} -var LeadingTriviaOption = /* @__PURE__ */ (function (LeadingTriviaOption2) { - LeadingTriviaOption2[LeadingTriviaOption2["Exclude"] = 0] = "Exclude"; - LeadingTriviaOption2[LeadingTriviaOption2["IncludeAll"] = 1] = "IncludeAll"; - LeadingTriviaOption2[LeadingTriviaOption2["JSDoc"] = 2] = "JSDoc"; - LeadingTriviaOption2[LeadingTriviaOption2["StartLine"] = 3] = "StartLine"; - return LeadingTriviaOption2; -})(LeadingTriviaOption || {}); -var TrailingTriviaOption = /* @__PURE__ */ (function (TrailingTriviaOption2) { - TrailingTriviaOption2[TrailingTriviaOption2["Exclude"] = 0] = "Exclude"; - TrailingTriviaOption2[TrailingTriviaOption2["ExcludeWhitespace"] = 1] = "ExcludeWhitespace"; - TrailingTriviaOption2[TrailingTriviaOption2["Include"] = 2] = "Include"; - return TrailingTriviaOption2; -})(TrailingTriviaOption || {}); -function skipWhitespacesAndLineBreaks(text, start2) { - return skipTrivia(text, start2, - /*stopAfterLineBreak*/ - false, - /*stopAtComments*/ - true); -} -function hasCommentsBeforeLineBreak(text, start2) { - var i = start2; - while (i < text.length) { - var ch = text.charCodeAt(i); - if (isWhiteSpaceSingleLine(ch)) { - i++; - continue; - } - return ch === 47 /* slash */; - } - return false; -} -var useNonAdjustedPositions = { - leadingTriviaOption: 0 /* Exclude */, - trailingTriviaOption: 0 /* Exclude */ -}; -function getAdjustedRange(sourceFile, startNode2, endNode2, options) { - return { pos: getAdjustedStartPosition(sourceFile, startNode2, options), end: getAdjustedEndPosition(sourceFile, endNode2, options) }; -} -function getAdjustedStartPosition(sourceFile, node, options, hasTrailingComment) { - if (hasTrailingComment === void 0) { hasTrailingComment = false; } - var _a, _b; - var leadingTriviaOption = options.leadingTriviaOption; - if (leadingTriviaOption === 0 /* Exclude */) { - return node.getStart(sourceFile); - } - if (leadingTriviaOption === 3 /* StartLine */) { - var startPos = node.getStart(sourceFile); - var pos = getLineStartPositionForPosition(startPos, sourceFile); - return rangeContainsPosition(node, pos) ? pos : startPos; - } - if (leadingTriviaOption === 2 /* JSDoc */) { - var JSDocComments = getJSDocCommentRanges(node, sourceFile.text); - if (JSDocComments == null ? void 0 : JSDocComments.length) { - return getLineStartPositionForPosition(JSDocComments[0].pos, sourceFile); - } - } - var fullStart = node.getFullStart(); - var start2 = node.getStart(sourceFile); - if (fullStart === start2) { - return start2; - } - var fullStartLine = getLineStartPositionForPosition(fullStart, sourceFile); - var startLine = getLineStartPositionForPosition(start2, sourceFile); - if (startLine === fullStartLine) { - return leadingTriviaOption === 1 /* IncludeAll */ ? fullStart : start2; - } - if (hasTrailingComment) { - var comment = ((_a = getLeadingCommentRanges(sourceFile.text, fullStart)) == null ? void 0 : _a[0]) || ((_b = getTrailingCommentRanges(sourceFile.text, fullStart)) == null ? void 0 : _b[0]); - if (comment) { - return skipTrivia(sourceFile.text, comment.end, - /*stopAfterLineBreak*/ - true, - /*stopAtComments*/ - true); - } - } - var nextLineStart = fullStart > 0 ? 1 : 0; - var adjustedStartPosition = getStartPositionOfLine(getLineOfLocalPosition(sourceFile, fullStartLine) + nextLineStart, sourceFile); - adjustedStartPosition = skipWhitespacesAndLineBreaks(sourceFile.text, adjustedStartPosition); - return getStartPositionOfLine(getLineOfLocalPosition(sourceFile, adjustedStartPosition), sourceFile); -} -function getEndPositionOfMultilineTrailingComment(sourceFile, node, options) { - var e_877, _t; - var end = node.end; - var trailingTriviaOption = options.trailingTriviaOption; - if (trailingTriviaOption === 2 /* Include */) { - var comments = getTrailingCommentRanges(sourceFile.text, end); - if (comments) { - var nodeEndLine = getLineOfLocalPosition(sourceFile, node.end); - try { - for (var comments_3 = __values(comments), comments_3_1 = comments_3.next(); !comments_3_1.done; comments_3_1 = comments_3.next()) { - var comment = comments_3_1.value; - if (comment.kind === 2 /* SingleLineCommentTrivia */ || getLineOfLocalPosition(sourceFile, comment.pos) > nodeEndLine) { - break; - } - var commentEndLine = getLineOfLocalPosition(sourceFile, comment.end); - if (commentEndLine > nodeEndLine) { - return skipTrivia(sourceFile.text, comment.end, - /*stopAfterLineBreak*/ - true, - /*stopAtComments*/ - true); - } - } - } - catch (e_877_1) { e_877 = { error: e_877_1 }; } - finally { - try { - if (comments_3_1 && !comments_3_1.done && (_t = comments_3.return)) _t.call(comments_3); - } - finally { if (e_877) throw e_877.error; } - } - } - } - return void 0; -} -function getAdjustedEndPosition(sourceFile, node, options) { - var _a; - var end = node.end; - var trailingTriviaOption = options.trailingTriviaOption; - if (trailingTriviaOption === 0 /* Exclude */) { - return end; - } - if (trailingTriviaOption === 1 /* ExcludeWhitespace */) { - var comments = concatenate(getTrailingCommentRanges(sourceFile.text, end), getLeadingCommentRanges(sourceFile.text, end)); - var realEnd = (_a = comments == null ? void 0 : comments[comments.length - 1]) == null ? void 0 : _a.end; - if (realEnd) { - return realEnd; - } - return end; - } - var multilineEndPosition = getEndPositionOfMultilineTrailingComment(sourceFile, node, options); - if (multilineEndPosition) { - return multilineEndPosition; - } - var newEnd = skipTrivia(sourceFile.text, end, - /*stopAfterLineBreak*/ - true); - return newEnd !== end && (trailingTriviaOption === 2 /* Include */ || isLineBreak(sourceFile.text.charCodeAt(newEnd - 1))) ? newEnd : end; -} -function isSeparator(node, candidate) { - return !!candidate && !!node.parent && (candidate.kind === 28 /* CommaToken */ || candidate.kind === 27 /* SemicolonToken */ && node.parent.kind === 210 /* ObjectLiteralExpression */); -} -function isThisTypeAnnotatable(containingFunction) { - return isFunctionExpression(containingFunction) || isFunctionDeclaration(containingFunction); -} -var ChangeTracker = /** @class */ (function () { - /** Public for tests only. Other callers should use `ChangeTracker.with`. */ - function _ChangeTracker(newLineCharacter, formatContext) { - this.newLineCharacter = newLineCharacter; - this.formatContext = formatContext; - this.changes = []; - this.classesWithNodesInsertedAtStart = /* @__PURE__ */ new Map(); - // Set implemented as Map - this.deletedNodes = []; - } - _ChangeTracker.fromContext = function (context) { - return new _ChangeTracker(getNewLineOrDefaultFromHost(context.host, context.formatContext.options), context.formatContext); - }; - _ChangeTracker.with = function (context, cb) { - var tracker = _ChangeTracker.fromContext(context); - cb(tracker); - return tracker.getChanges(); - }; - _ChangeTracker.prototype.pushRaw = function (sourceFile, change) { - var e_878, _t; - Debug.assertEqual(sourceFile.fileName, change.fileName); - try { - for (var _u = __values(change.textChanges), _v = _u.next(); !_v.done; _v = _u.next()) { - var c = _v.value; - this.changes.push({ - kind: 3 /* Text */, - sourceFile: sourceFile, - text: c.newText, - range: createTextRangeFromSpan(c.span) - }); - } - } - catch (e_878_1) { e_878 = { error: e_878_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_878) throw e_878.error; } - } - }; - _ChangeTracker.prototype.deleteRange = function (sourceFile, range) { - this.changes.push({ kind: 0 /* Remove */, sourceFile: sourceFile, range: range }); - }; - _ChangeTracker.prototype.delete = function (sourceFile, node) { - this.deletedNodes.push({ sourceFile: sourceFile, node: node }); - }; - /** Stop! Consider using `delete` instead, which has logic for deleting nodes from delimited lists. */ - _ChangeTracker.prototype.deleteNode = function (sourceFile, node, options) { - if (options === void 0) { options = { leadingTriviaOption: 1 /* IncludeAll */ }; } - this.deleteRange(sourceFile, getAdjustedRange(sourceFile, node, node, options)); - }; - _ChangeTracker.prototype.deleteNodes = function (sourceFile, nodes, options, hasTrailingComment) { - var e_879, _t; - if (options === void 0) { options = { leadingTriviaOption: 1 /* IncludeAll */ }; } - try { - for (var nodes_10 = __values(nodes), nodes_10_1 = nodes_10.next(); !nodes_10_1.done; nodes_10_1 = nodes_10.next()) { - var node = nodes_10_1.value; - var pos = getAdjustedStartPosition(sourceFile, node, options, hasTrailingComment); - var end = getAdjustedEndPosition(sourceFile, node, options); - this.deleteRange(sourceFile, { pos: pos, end: end }); - hasTrailingComment = !!getEndPositionOfMultilineTrailingComment(sourceFile, node, options); - } - } - catch (e_879_1) { e_879 = { error: e_879_1 }; } - finally { - try { - if (nodes_10_1 && !nodes_10_1.done && (_t = nodes_10.return)) _t.call(nodes_10); - } - finally { if (e_879) throw e_879.error; } - } - }; - _ChangeTracker.prototype.deleteModifier = function (sourceFile, modifier) { - this.deleteRange(sourceFile, { pos: modifier.getStart(sourceFile), end: skipTrivia(sourceFile.text, modifier.end, - /*stopAfterLineBreak*/ - true) }); - }; - _ChangeTracker.prototype.deleteNodeRange = function (sourceFile, startNode2, endNode2, options) { - if (options === void 0) { options = { leadingTriviaOption: 1 /* IncludeAll */ }; } - var startPosition = getAdjustedStartPosition(sourceFile, startNode2, options); - var endPosition = getAdjustedEndPosition(sourceFile, endNode2, options); - this.deleteRange(sourceFile, { pos: startPosition, end: endPosition }); - }; - _ChangeTracker.prototype.deleteNodeRangeExcludingEnd = function (sourceFile, startNode2, afterEndNode, options) { - if (options === void 0) { options = { leadingTriviaOption: 1 /* IncludeAll */ }; } - var startPosition = getAdjustedStartPosition(sourceFile, startNode2, options); - var endPosition = afterEndNode === void 0 ? sourceFile.text.length : getAdjustedStartPosition(sourceFile, afterEndNode, options); - this.deleteRange(sourceFile, { pos: startPosition, end: endPosition }); - }; - _ChangeTracker.prototype.replaceRange = function (sourceFile, range, newNode, options) { - if (options === void 0) { options = {}; } - this.changes.push({ kind: 1 /* ReplaceWithSingleNode */, sourceFile: sourceFile, range: range, options: options, node: newNode }); - }; - _ChangeTracker.prototype.replaceNode = function (sourceFile, oldNode, newNode, options) { - if (options === void 0) { options = useNonAdjustedPositions; } - this.replaceRange(sourceFile, getAdjustedRange(sourceFile, oldNode, oldNode, options), newNode, options); - }; - _ChangeTracker.prototype.replaceNodeRange = function (sourceFile, startNode2, endNode2, newNode, options) { - if (options === void 0) { options = useNonAdjustedPositions; } - this.replaceRange(sourceFile, getAdjustedRange(sourceFile, startNode2, endNode2, options), newNode, options); - }; - _ChangeTracker.prototype.replaceRangeWithNodes = function (sourceFile, range, newNodes, options) { - if (options === void 0) { options = {}; } - this.changes.push({ kind: 2 /* ReplaceWithMultipleNodes */, sourceFile: sourceFile, range: range, options: options, nodes: newNodes }); - }; - _ChangeTracker.prototype.replaceNodeWithNodes = function (sourceFile, oldNode, newNodes, options) { - if (options === void 0) { options = useNonAdjustedPositions; } - this.replaceRangeWithNodes(sourceFile, getAdjustedRange(sourceFile, oldNode, oldNode, options), newNodes, options); - }; - _ChangeTracker.prototype.replaceNodeWithText = function (sourceFile, oldNode, text) { - this.replaceRangeWithText(sourceFile, getAdjustedRange(sourceFile, oldNode, oldNode, useNonAdjustedPositions), text); - }; - _ChangeTracker.prototype.replaceNodeRangeWithNodes = function (sourceFile, startNode2, endNode2, newNodes, options) { - if (options === void 0) { options = useNonAdjustedPositions; } - this.replaceRangeWithNodes(sourceFile, getAdjustedRange(sourceFile, startNode2, endNode2, options), newNodes, options); - }; - _ChangeTracker.prototype.nodeHasTrailingComment = function (sourceFile, oldNode, configurableEnd) { - if (configurableEnd === void 0) { configurableEnd = useNonAdjustedPositions; } - return !!getEndPositionOfMultilineTrailingComment(sourceFile, oldNode, configurableEnd); - }; - _ChangeTracker.prototype.nextCommaToken = function (sourceFile, node) { - var next = findNextToken(node, node.parent, sourceFile); - return next && next.kind === 28 /* CommaToken */ ? next : void 0; - }; - _ChangeTracker.prototype.replacePropertyAssignment = function (sourceFile, oldNode, newNode) { - var suffix = this.nextCommaToken(sourceFile, oldNode) ? "" : "," + this.newLineCharacter; - this.replaceNode(sourceFile, oldNode, newNode, { suffix: suffix }); - }; - _ChangeTracker.prototype.insertNodeAt = function (sourceFile, pos, newNode, options) { - if (options === void 0) { options = {}; } - this.replaceRange(sourceFile, createRange(pos), newNode, options); - }; - _ChangeTracker.prototype.insertNodesAt = function (sourceFile, pos, newNodes, options) { - if (options === void 0) { options = {}; } - this.replaceRangeWithNodes(sourceFile, createRange(pos), newNodes, options); - }; - _ChangeTracker.prototype.insertNodeAtTopOfFile = function (sourceFile, newNode, blankLineBetween) { - this.insertAtTopOfFile(sourceFile, newNode, blankLineBetween); - }; - _ChangeTracker.prototype.insertNodesAtTopOfFile = function (sourceFile, newNodes, blankLineBetween) { - this.insertAtTopOfFile(sourceFile, newNodes, blankLineBetween); - }; - _ChangeTracker.prototype.insertAtTopOfFile = function (sourceFile, insert, blankLineBetween) { - var pos = getInsertionPositionAtSourceFileTop(sourceFile); - var options = { - prefix: pos === 0 ? void 0 : this.newLineCharacter, - suffix: (isLineBreak(sourceFile.text.charCodeAt(pos)) ? "" : this.newLineCharacter) + (blankLineBetween ? this.newLineCharacter : "") - }; - if (isArray(insert)) { - this.insertNodesAt(sourceFile, pos, insert, options); - } - else { - this.insertNodeAt(sourceFile, pos, insert, options); - } - }; - _ChangeTracker.prototype.insertNodesAtEndOfFile = function (sourceFile, newNodes, blankLineBetween) { - this.insertAtEndOfFile(sourceFile, newNodes, blankLineBetween); - }; - _ChangeTracker.prototype.insertAtEndOfFile = function (sourceFile, insert, blankLineBetween) { - var pos = sourceFile.end + 1; - var options = { - prefix: this.newLineCharacter, - suffix: this.newLineCharacter + (blankLineBetween ? this.newLineCharacter : "") - }; - this.insertNodesAt(sourceFile, pos, insert, options); - }; - _ChangeTracker.prototype.insertStatementsInNewFile = function (fileName, statements, oldFile) { - if (!this.newFileChanges) { - this.newFileChanges = createMultiMap(); - } - this.newFileChanges.add(fileName, { oldFile: oldFile, statements: statements }); - }; - _ChangeTracker.prototype.insertFirstParameter = function (sourceFile, parameters, newParam) { - var p0 = firstOrUndefined(parameters); - if (p0) { - this.insertNodeBefore(sourceFile, p0, newParam); - } - else { - this.insertNodeAt(sourceFile, parameters.pos, newParam); - } - }; - _ChangeTracker.prototype.insertNodeBefore = function (sourceFile, before, newNode, blankLineBetween, options) { - if (blankLineBetween === void 0) { blankLineBetween = false; } - if (options === void 0) { options = {}; } - this.insertNodeAt(sourceFile, getAdjustedStartPosition(sourceFile, before, options), newNode, this.getOptionsForInsertNodeBefore(before, newNode, blankLineBetween)); - }; - _ChangeTracker.prototype.insertNodesBefore = function (sourceFile, before, newNodes, blankLineBetween, options) { - if (blankLineBetween === void 0) { blankLineBetween = false; } - if (options === void 0) { options = {}; } - this.insertNodesAt(sourceFile, getAdjustedStartPosition(sourceFile, before, options), newNodes, this.getOptionsForInsertNodeBefore(before, first(newNodes), blankLineBetween)); - }; - _ChangeTracker.prototype.insertModifierAt = function (sourceFile, pos, modifier, options) { - if (options === void 0) { options = {}; } - this.insertNodeAt(sourceFile, pos, factory.createToken(modifier), options); - }; - _ChangeTracker.prototype.insertModifierBefore = function (sourceFile, modifier, before) { - return this.insertModifierAt(sourceFile, before.getStart(sourceFile), modifier, { suffix: " " }); - }; - _ChangeTracker.prototype.insertCommentBeforeLine = function (sourceFile, lineNumber, position, commentText) { - var lineStartPosition = getStartPositionOfLine(lineNumber, sourceFile); - var startPosition = getFirstNonSpaceCharacterPosition(sourceFile.text, lineStartPosition); - var insertAtLineStart = isValidLocationToAddComment(sourceFile, startPosition); - var token = getTouchingToken(sourceFile, insertAtLineStart ? startPosition : position); - var indent3 = sourceFile.text.slice(lineStartPosition, startPosition); - var text = "".concat(insertAtLineStart ? "" : this.newLineCharacter, "//").concat(commentText).concat(this.newLineCharacter).concat(indent3); - this.insertText(sourceFile, token.getStart(sourceFile), text); - }; - _ChangeTracker.prototype.insertJsdocCommentBefore = function (sourceFile, node, tag) { - var e_880, _t; - var fnStart = node.getStart(sourceFile); - if (node.jsDoc) { - try { - for (var _u = __values(node.jsDoc), _v = _u.next(); !_v.done; _v = _u.next()) { - var jsdoc = _v.value; - this.deleteRange(sourceFile, { - pos: getLineStartPositionForPosition(jsdoc.getStart(sourceFile), sourceFile), - end: getAdjustedEndPosition(sourceFile, jsdoc, - /*options*/ - {}) - }); - } - } - catch (e_880_1) { e_880 = { error: e_880_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_880) throw e_880.error; } - } - } - var startPosition = getPrecedingNonSpaceCharacterPosition(sourceFile.text, fnStart - 1); - var indent3 = sourceFile.text.slice(startPosition, fnStart); - this.insertNodeAt(sourceFile, fnStart, tag, { suffix: this.newLineCharacter + indent3 }); - }; - _ChangeTracker.prototype.createJSDocText = function (sourceFile, node) { - var comments = flatMap(node.jsDoc, function (jsDoc2) { return isString(jsDoc2.comment) ? factory.createJSDocText(jsDoc2.comment) : jsDoc2.comment; }); - var jsDoc = singleOrUndefined(node.jsDoc); - return jsDoc && positionsAreOnSameLine(jsDoc.pos, jsDoc.end, sourceFile) && length(comments) === 0 ? void 0 : factory.createNodeArray(intersperse(comments, factory.createJSDocText("\n"))); - }; - _ChangeTracker.prototype.replaceJSDocComment = function (sourceFile, node, tags) { - this.insertJsdocCommentBefore(sourceFile, updateJSDocHost(node), factory.createJSDocComment(this.createJSDocText(sourceFile, node), factory.createNodeArray(tags))); - }; - _ChangeTracker.prototype.addJSDocTags = function (sourceFile, parent2, newTags) { - var oldTags = flatMapToMutable(parent2.jsDoc, function (j) { return j.tags; }); - var unmergedNewTags = newTags.filter(function (newTag) { return !oldTags.some(function (tag, i) { - var merged = tryMergeJsdocTags(tag, newTag); - if (merged) - oldTags[i] = merged; - return !!merged; - }); }); - this.replaceJSDocComment(sourceFile, parent2, __spreadArray(__spreadArray([], __read(oldTags), false), __read(unmergedNewTags), false)); - }; - _ChangeTracker.prototype.filterJSDocTags = function (sourceFile, parent2, predicate) { - this.replaceJSDocComment(sourceFile, parent2, filter(flatMapToMutable(parent2.jsDoc, function (j) { return j.tags; }), predicate)); - }; - _ChangeTracker.prototype.replaceRangeWithText = function (sourceFile, range, text) { - this.changes.push({ kind: 3 /* Text */, sourceFile: sourceFile, range: range, text: text }); - }; - _ChangeTracker.prototype.insertText = function (sourceFile, pos, text) { - this.replaceRangeWithText(sourceFile, createRange(pos), text); - }; - /** Prefer this over replacing a node with another that has a type annotation, as it avoids reformatting the other parts of the node. */ - _ChangeTracker.prototype.tryInsertTypeAnnotation = function (sourceFile, node, type) { - var _t; - var endNode2; - if (isFunctionLike(node)) { - endNode2 = findChildOfKind(node, 22 /* CloseParenToken */, sourceFile); - if (!endNode2) { - if (!isArrowFunction(node)) - return false; - endNode2 = first(node.parameters); - } - } - else { - endNode2 = (_t = (node.kind === 260 /* VariableDeclaration */ ? node.exclamationToken : node.questionToken)) !== null && _t !== void 0 ? _t : node.name; - } - this.insertNodeAt(sourceFile, endNode2.end, type, { prefix: ": " }); - return true; - }; - _ChangeTracker.prototype.tryInsertThisTypeAnnotation = function (sourceFile, node, type) { - var start2 = findChildOfKind(node, 21 /* OpenParenToken */, sourceFile).getStart(sourceFile) + 1; - var suffix = node.parameters.length ? ", " : ""; - this.insertNodeAt(sourceFile, start2, type, { prefix: "this: ", suffix: suffix }); - }; - _ChangeTracker.prototype.insertTypeParameters = function (sourceFile, node, typeParameters) { - var start2 = (findChildOfKind(node, 21 /* OpenParenToken */, sourceFile) || first(node.parameters)).getStart(sourceFile); - this.insertNodesAt(sourceFile, start2, typeParameters, { prefix: "<", suffix: ">", joiner: ", " }); - }; - _ChangeTracker.prototype.getOptionsForInsertNodeBefore = function (before, inserted, blankLineBetween) { - if (isStatement(before) || isClassElement(before)) { - return { suffix: blankLineBetween ? this.newLineCharacter + this.newLineCharacter : this.newLineCharacter }; - } - else if (isVariableDeclaration(before)) { - return { suffix: ", " }; - } - else if (isParameter(before)) { - return isParameter(inserted) ? { suffix: ", " } : {}; - } - else if (isStringLiteral(before) && isImportDeclaration(before.parent) || isNamedImports(before)) { - return { suffix: ", " }; - } - else if (isImportSpecifier(before)) { - return { suffix: "," + (blankLineBetween ? this.newLineCharacter : " ") }; - } - return Debug.failBadSyntaxKind(before); - }; - _ChangeTracker.prototype.insertNodeAtConstructorStart = function (sourceFile, ctr, newStatement) { - var firstStatement = firstOrUndefined(ctr.body.statements); - if (!firstStatement || !ctr.body.multiLine) { - this.replaceConstructorBody(sourceFile, ctr, __spreadArray([newStatement], __read(ctr.body.statements), false)); - } - else { - this.insertNodeBefore(sourceFile, firstStatement, newStatement); - } - }; - _ChangeTracker.prototype.insertNodeAtConstructorStartAfterSuperCall = function (sourceFile, ctr, newStatement) { - var superCallStatement = find(ctr.body.statements, function (stmt) { return isExpressionStatement(stmt) && isSuperCall(stmt.expression); }); - if (!superCallStatement || !ctr.body.multiLine) { - this.replaceConstructorBody(sourceFile, ctr, __spreadArray(__spreadArray([], __read(ctr.body.statements), false), [newStatement], false)); - } - else { - this.insertNodeAfter(sourceFile, superCallStatement, newStatement); - } - }; - _ChangeTracker.prototype.insertNodeAtConstructorEnd = function (sourceFile, ctr, newStatement) { - var lastStatement = lastOrUndefined(ctr.body.statements); - if (!lastStatement || !ctr.body.multiLine) { - this.replaceConstructorBody(sourceFile, ctr, __spreadArray(__spreadArray([], __read(ctr.body.statements), false), [newStatement], false)); - } - else { - this.insertNodeAfter(sourceFile, lastStatement, newStatement); - } - }; - _ChangeTracker.prototype.replaceConstructorBody = function (sourceFile, ctr, statements) { - this.replaceNode(sourceFile, ctr.body, factory.createBlock(statements, - /*multiLine*/ - true)); - }; - _ChangeTracker.prototype.insertNodeAtEndOfScope = function (sourceFile, scope, newNode) { - var pos = getAdjustedStartPosition(sourceFile, scope.getLastToken(), {}); - this.insertNodeAt(sourceFile, pos, newNode, { - prefix: isLineBreak(sourceFile.text.charCodeAt(scope.getLastToken().pos)) ? this.newLineCharacter : this.newLineCharacter + this.newLineCharacter, - suffix: this.newLineCharacter - }); - }; - _ChangeTracker.prototype.insertMemberAtStart = function (sourceFile, node, newElement) { - this.insertNodeAtStartWorker(sourceFile, node, newElement); - }; - _ChangeTracker.prototype.insertNodeAtObjectStart = function (sourceFile, obj, newElement) { - this.insertNodeAtStartWorker(sourceFile, obj, newElement); - }; - _ChangeTracker.prototype.insertNodeAtStartWorker = function (sourceFile, node, newElement) { - var _t; - var indentation = (_t = this.guessIndentationFromExistingMembers(sourceFile, node)) !== null && _t !== void 0 ? _t : this.computeIndentationForNewMember(sourceFile, node); - this.insertNodeAt(sourceFile, getMembersOrProperties(node).pos, newElement, this.getInsertNodeAtStartInsertOptions(sourceFile, node, indentation)); - }; - /** - * Tries to guess the indentation from the existing members of a class/interface/object. All members must be on - * new lines and must share the same indentation. - */ - _ChangeTracker.prototype.guessIndentationFromExistingMembers = function (sourceFile, node) { - var e_881, _t; - var indentation; - var lastRange = node; - try { - for (var _u = __values(getMembersOrProperties(node)), _v = _u.next(); !_v.done; _v = _u.next()) { - var member = _v.value; - if (rangeStartPositionsAreOnSameLine(lastRange, member, sourceFile)) { - return void 0; - } - var memberStart = member.getStart(sourceFile); - var memberIndentation = ts_formatting_exports.SmartIndenter.findFirstNonWhitespaceColumn(getLineStartPositionForPosition(memberStart, sourceFile), memberStart, sourceFile, this.formatContext.options); - if (indentation === void 0) { - indentation = memberIndentation; - } - else if (memberIndentation !== indentation) { - return void 0; - } - lastRange = member; - } - } - catch (e_881_1) { e_881 = { error: e_881_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_881) throw e_881.error; } - } - return indentation; - }; - _ChangeTracker.prototype.computeIndentationForNewMember = function (sourceFile, node) { - var _t; - var nodeStart = node.getStart(sourceFile); - return ts_formatting_exports.SmartIndenter.findFirstNonWhitespaceColumn(getLineStartPositionForPosition(nodeStart, sourceFile), nodeStart, sourceFile, this.formatContext.options) + ((_t = this.formatContext.options.indentSize) !== null && _t !== void 0 ? _t : 4); - }; - _ChangeTracker.prototype.getInsertNodeAtStartInsertOptions = function (sourceFile, node, indentation) { - var members = getMembersOrProperties(node); - var isEmpty = members.length === 0; - var isFirstInsertion = addToSeen(this.classesWithNodesInsertedAtStart, getNodeId(node), { node: node, sourceFile: sourceFile }); - var insertTrailingComma = isObjectLiteralExpression(node) && (!isJsonSourceFile(sourceFile) || !isEmpty); - var insertLeadingComma = isObjectLiteralExpression(node) && isJsonSourceFile(sourceFile) && isEmpty && !isFirstInsertion; - return { - indentation: indentation, - prefix: (insertLeadingComma ? "," : "") + this.newLineCharacter, - suffix: insertTrailingComma ? "," : isInterfaceDeclaration(node) && isEmpty ? ";" : "" - }; - }; - _ChangeTracker.prototype.insertNodeAfterComma = function (sourceFile, after, newNode) { - var endPosition = this.insertNodeAfterWorker(sourceFile, this.nextCommaToken(sourceFile, after) || after, newNode); - this.insertNodeAt(sourceFile, endPosition, newNode, this.getInsertNodeAfterOptions(sourceFile, after)); - }; - _ChangeTracker.prototype.insertNodeAfter = function (sourceFile, after, newNode) { - var endPosition = this.insertNodeAfterWorker(sourceFile, after, newNode); - this.insertNodeAt(sourceFile, endPosition, newNode, this.getInsertNodeAfterOptions(sourceFile, after)); - }; - _ChangeTracker.prototype.insertNodeAtEndOfList = function (sourceFile, list, newNode) { - this.insertNodeAt(sourceFile, list.end, newNode, { prefix: ", " }); - }; - _ChangeTracker.prototype.insertNodesAfter = function (sourceFile, after, newNodes) { - var endPosition = this.insertNodeAfterWorker(sourceFile, after, first(newNodes)); - this.insertNodesAt(sourceFile, endPosition, newNodes, this.getInsertNodeAfterOptions(sourceFile, after)); - }; - _ChangeTracker.prototype.insertNodeAfterWorker = function (sourceFile, after, newNode) { - if (needSemicolonBetween(after, newNode)) { - if (sourceFile.text.charCodeAt(after.end - 1) !== 59 /* semicolon */) { - this.replaceRange(sourceFile, createRange(after.end), factory.createToken(27 /* SemicolonToken */)); - } - } - var endPosition = getAdjustedEndPosition(sourceFile, after, {}); - return endPosition; - }; - _ChangeTracker.prototype.getInsertNodeAfterOptions = function (sourceFile, after) { - var options = this.getInsertNodeAfterOptionsWorker(after); - return __assign(__assign({}, options), { prefix: after.end === sourceFile.end && isStatement(after) ? options.prefix ? "\n".concat(options.prefix) : "\n" : options.prefix }); - }; - _ChangeTracker.prototype.getInsertNodeAfterOptionsWorker = function (node) { - switch (node.kind) { - case 263 /* ClassDeclaration */: - case 267 /* ModuleDeclaration */: - return { prefix: this.newLineCharacter, suffix: this.newLineCharacter }; - case 260 /* VariableDeclaration */: - case 11 /* StringLiteral */: - case 80 /* Identifier */: - return { prefix: ", " }; - case 303 /* PropertyAssignment */: - return { suffix: "," + this.newLineCharacter }; - case 95 /* ExportKeyword */: - return { prefix: " " }; - case 169 /* Parameter */: - return {}; - default: - Debug.assert(isStatement(node) || isClassOrTypeElement(node)); - return { suffix: this.newLineCharacter }; - } - }; - _ChangeTracker.prototype.insertName = function (sourceFile, node, name) { - Debug.assert(!node.name); - if (node.kind === 219 /* ArrowFunction */) { - var arrow = findChildOfKind(node, 39 /* EqualsGreaterThanToken */, sourceFile); - var lparen = findChildOfKind(node, 21 /* OpenParenToken */, sourceFile); - if (lparen) { - this.insertNodesAt(sourceFile, lparen.getStart(sourceFile), [factory.createToken(100 /* FunctionKeyword */), factory.createIdentifier(name)], { joiner: " " }); - deleteNode(this, sourceFile, arrow); - } - else { - this.insertText(sourceFile, first(node.parameters).getStart(sourceFile), "function ".concat(name, "(")); - this.replaceRange(sourceFile, arrow, factory.createToken(22 /* CloseParenToken */)); - } - if (node.body.kind !== 241 /* Block */) { - this.insertNodesAt(sourceFile, node.body.getStart(sourceFile), [factory.createToken(19 /* OpenBraceToken */), factory.createToken(107 /* ReturnKeyword */)], { joiner: " ", suffix: " " }); - this.insertNodesAt(sourceFile, node.body.end, [factory.createToken(27 /* SemicolonToken */), factory.createToken(20 /* CloseBraceToken */)], { joiner: " " }); - } - } - else { - var pos = findChildOfKind(node, node.kind === 218 /* FunctionExpression */ ? 100 /* FunctionKeyword */ : 86 /* ClassKeyword */, sourceFile).end; - this.insertNodeAt(sourceFile, pos, factory.createIdentifier(name), { prefix: " " }); - } - }; - _ChangeTracker.prototype.insertExportModifier = function (sourceFile, node) { - this.insertText(sourceFile, node.getStart(sourceFile), "export "); - }; - _ChangeTracker.prototype.insertImportSpecifierAtIndex = function (sourceFile, importSpecifier, namedImports, index) { - var prevSpecifier = namedImports.elements[index - 1]; - if (prevSpecifier) { - this.insertNodeInListAfter(sourceFile, prevSpecifier, importSpecifier); - } - else { - this.insertNodeBefore(sourceFile, namedImports.elements[0], importSpecifier, !positionsAreOnSameLine(namedImports.elements[0].getStart(), namedImports.parent.parent.getStart(), sourceFile)); - } - }; - /** - * This function should be used to insert nodes in lists when nodes don't carry separators as the part of the node range, - * i.e. arguments in arguments lists, parameters in parameter lists etc. - * Note that separators are part of the node in statements and class elements. - */ - _ChangeTracker.prototype.insertNodeInListAfter = function (sourceFile, after, newNode, containingList) { - if (containingList === void 0) { containingList = ts_formatting_exports.SmartIndenter.getContainingList(after, sourceFile); } - if (!containingList) { - Debug.fail("node is not a list element"); - return; - } - var index = indexOfNode(containingList, after); - if (index < 0) { - return; - } - var end = after.getEnd(); - if (index !== containingList.length - 1) { - var nextToken = getTokenAtPosition(sourceFile, after.end); - if (nextToken && isSeparator(after, nextToken)) { - var nextNode = containingList[index + 1]; - var startPos = skipWhitespacesAndLineBreaks(sourceFile.text, nextNode.getFullStart()); - var suffix = "".concat(tokenToString(nextToken.kind)).concat(sourceFile.text.substring(nextToken.end, startPos)); - this.insertNodesAt(sourceFile, startPos, [newNode], { suffix: suffix }); - } - } - else { - var afterStart = after.getStart(sourceFile); - var afterStartLinePosition = getLineStartPositionForPosition(afterStart, sourceFile); - var separator = void 0; - var multilineList = false; - if (containingList.length === 1) { - separator = 28 /* CommaToken */; - } - else { - var tokenBeforeInsertPosition = findPrecedingToken(after.pos, sourceFile); - separator = isSeparator(after, tokenBeforeInsertPosition) ? tokenBeforeInsertPosition.kind : 28 /* CommaToken */; - var afterMinusOneStartLinePosition = getLineStartPositionForPosition(containingList[index - 1].getStart(sourceFile), sourceFile); - multilineList = afterMinusOneStartLinePosition !== afterStartLinePosition; - } - if (hasCommentsBeforeLineBreak(sourceFile.text, after.end)) { - multilineList = true; - } - if (multilineList) { - this.replaceRange(sourceFile, createRange(end), factory.createToken(separator)); - var indentation = ts_formatting_exports.SmartIndenter.findFirstNonWhitespaceColumn(afterStartLinePosition, afterStart, sourceFile, this.formatContext.options); - var insertPos = skipTrivia(sourceFile.text, end, - /*stopAfterLineBreak*/ - true, - /*stopAtComments*/ - false); - while (insertPos !== end && isLineBreak(sourceFile.text.charCodeAt(insertPos - 1))) { - insertPos--; - } - this.replaceRange(sourceFile, createRange(insertPos), newNode, { indentation: indentation, prefix: this.newLineCharacter }); - } - else { - this.replaceRange(sourceFile, createRange(end), newNode, { prefix: "".concat(tokenToString(separator), " ") }); - } - } - }; - _ChangeTracker.prototype.parenthesizeExpression = function (sourceFile, expression) { - this.replaceRange(sourceFile, rangeOfNode(expression), factory.createParenthesizedExpression(expression)); - }; - _ChangeTracker.prototype.finishClassesWithNodesInsertedAtStart = function () { - var _this = this; - this.classesWithNodesInsertedAtStart.forEach(function (_t) { - var node = _t.node, sourceFile = _t.sourceFile; - var _u = __read(getClassOrObjectBraceEnds(node, sourceFile), 2), openBraceEnd = _u[0], closeBraceEnd = _u[1]; - if (openBraceEnd !== void 0 && closeBraceEnd !== void 0) { - var isEmpty = getMembersOrProperties(node).length === 0; - var isSingleLine = positionsAreOnSameLine(openBraceEnd, closeBraceEnd, sourceFile); - if (isEmpty && isSingleLine && openBraceEnd !== closeBraceEnd - 1) { - _this.deleteRange(sourceFile, createRange(openBraceEnd, closeBraceEnd - 1)); - } - if (isSingleLine) { - _this.insertText(sourceFile, closeBraceEnd - 1, _this.newLineCharacter); - } - } - }); - }; - _ChangeTracker.prototype.finishDeleteDeclarations = function () { - var e_882, _t; - var _this = this; - var deletedNodesInLists = /* @__PURE__ */ new Set(); - var _loop_60 = function (sourceFile, node) { - if (!this_1.deletedNodes.some(function (d) { return d.sourceFile === sourceFile && rangeContainsRangeExclusive(d.node, node); })) { - if (isArray(node)) { - this_1.deleteRange(sourceFile, rangeOfTypeParameters(sourceFile, node)); - } - else { - deleteDeclaration.deleteDeclaration(this_1, deletedNodesInLists, sourceFile, node); - } - } - }; - var this_1 = this; - try { - for (var _u = __values(this.deletedNodes), _v = _u.next(); !_v.done; _v = _u.next()) { - var _w = _v.value, sourceFile = _w.sourceFile, node = _w.node; - _loop_60(sourceFile, node); - } - } - catch (e_882_1) { e_882 = { error: e_882_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_882) throw e_882.error; } - } - deletedNodesInLists.forEach(function (node) { - var sourceFile = node.getSourceFile(); - var list = ts_formatting_exports.SmartIndenter.getContainingList(node, sourceFile); - if (node !== last(list)) - return; - var lastNonDeletedIndex = findLastIndex(list, function (n) { return !deletedNodesInLists.has(n); }, list.length - 2); - if (lastNonDeletedIndex !== -1) { - _this.deleteRange(sourceFile, { pos: list[lastNonDeletedIndex].end, end: startPositionToDeleteNodeInList(sourceFile, list[lastNonDeletedIndex + 1]) }); - } - }); - }; - /** - * Note: after calling this, the TextChanges object must be discarded! - * @param validate only for tests - * The reason we must validate as part of this method is that `getNonFormattedText` changes the node's positions, - * so we can only call this once and can't get the non-formatted text separately. - */ - _ChangeTracker.prototype.getChanges = function (validate) { - var _this = this; - this.finishDeleteDeclarations(); - this.finishClassesWithNodesInsertedAtStart(); - var changes = changesToText.getTextChangesFromChanges(this.changes, this.newLineCharacter, this.formatContext, validate); - if (this.newFileChanges) { - this.newFileChanges.forEach(function (insertions, fileName) { - changes.push(changesToText.newFileChanges(fileName, insertions, _this.newLineCharacter, _this.formatContext)); - }); - } - return changes; - }; - _ChangeTracker.prototype.createNewFile = function (oldFile, fileName, statements) { - this.insertStatementsInNewFile(fileName, statements, oldFile); - }; - return _ChangeTracker; -}()); -function updateJSDocHost(parent2) { - if (parent2.kind !== 219 /* ArrowFunction */) { - return parent2; - } - var jsDocNode = parent2.parent.kind === 172 /* PropertyDeclaration */ ? parent2.parent : parent2.parent.parent; - jsDocNode.jsDoc = parent2.jsDoc; - return jsDocNode; -} -function tryMergeJsdocTags(oldTag, newTag) { - if (oldTag.kind !== newTag.kind) { - return void 0; - } - switch (oldTag.kind) { - case 348 /* JSDocParameterTag */: { - var oldParam = oldTag; - var newParam = newTag; - return isIdentifier(oldParam.name) && isIdentifier(newParam.name) && oldParam.name.escapedText === newParam.name.escapedText ? factory.createJSDocParameterTag( - /*tagName*/ - void 0, newParam.name, - /*isBracketed*/ - false, newParam.typeExpression, newParam.isNameFirst, oldParam.comment) : void 0; - } - case 349 /* JSDocReturnTag */: - return factory.createJSDocReturnTag( - /*tagName*/ - void 0, newTag.typeExpression, oldTag.comment); - case 351 /* JSDocTypeTag */: - return factory.createJSDocTypeTag( - /*tagName*/ - void 0, newTag.typeExpression, oldTag.comment); - } -} -function startPositionToDeleteNodeInList(sourceFile, node) { - return skipTrivia(sourceFile.text, getAdjustedStartPosition(sourceFile, node, { leadingTriviaOption: 1 /* IncludeAll */ }), - /*stopAfterLineBreak*/ - false, - /*stopAtComments*/ - true); -} -function endPositionToDeleteNodeInList(sourceFile, node, prevNode, nextNode) { - var end = startPositionToDeleteNodeInList(sourceFile, nextNode); - if (prevNode === void 0 || positionsAreOnSameLine(getAdjustedEndPosition(sourceFile, node, {}), end, sourceFile)) { - return end; - } - var token = findPrecedingToken(nextNode.getStart(sourceFile), sourceFile); - if (isSeparator(node, token)) { - var prevToken = findPrecedingToken(node.getStart(sourceFile), sourceFile); - if (isSeparator(prevNode, prevToken)) { - var pos = skipTrivia(sourceFile.text, token.getEnd(), - /*stopAfterLineBreak*/ - true, - /*stopAtComments*/ - true); - if (positionsAreOnSameLine(prevToken.getStart(sourceFile), token.getStart(sourceFile), sourceFile)) { - return isLineBreak(sourceFile.text.charCodeAt(pos - 1)) ? pos - 1 : pos; - } - if (isLineBreak(sourceFile.text.charCodeAt(pos))) { - return pos; - } - } - } - return end; -} -function getClassOrObjectBraceEnds(cls, sourceFile) { - var open = findChildOfKind(cls, 19 /* OpenBraceToken */, sourceFile); - var close = findChildOfKind(cls, 20 /* CloseBraceToken */, sourceFile); - return [open == null ? void 0 : open.end, close == null ? void 0 : close.end]; -} -function getMembersOrProperties(node) { - return isObjectLiteralExpression(node) ? node.properties : node.members; -} -var changesToText; -(function (changesToText2) { - function getTextChangesFromChanges(changes, newLineCharacter, formatContext, validate) { - return mapDefined(group(changes, function (c) { return c.sourceFile.path; }), function (changesInFile) { - var sourceFile = changesInFile[0].sourceFile; - var normalized = stableSort(changesInFile, function (a, b) { return a.range.pos - b.range.pos || a.range.end - b.range.end; }); - var _loop_61 = function (i) { - Debug.assert(normalized[i].range.end <= normalized[i + 1].range.pos, "Changes overlap", function () { return "".concat(JSON.stringify(normalized[i].range), " and ").concat(JSON.stringify(normalized[i + 1].range)); }); - }; - for (var i = 0; i < normalized.length - 1; i++) { - _loop_61(i); - } - var textChanges2 = mapDefined(normalized, function (c) { - var _t, _u; - var span = createTextSpanFromRange(c.range); - var targetSourceFile = c.kind === 1 /* ReplaceWithSingleNode */ ? (_t = getSourceFileOfNode(getOriginalNode(c.node))) !== null && _t !== void 0 ? _t : c.sourceFile : c.kind === 2 /* ReplaceWithMultipleNodes */ ? (_u = getSourceFileOfNode(getOriginalNode(c.nodes[0]))) !== null && _u !== void 0 ? _u : c.sourceFile : c.sourceFile; - var newText = computeNewText(c, targetSourceFile, sourceFile, newLineCharacter, formatContext, validate); - if (span.length === newText.length && stringContainsAt(targetSourceFile.text, newText, span.start)) { - return void 0; - } - return createTextChange(span, newText); - }); - return textChanges2.length > 0 ? { fileName: sourceFile.fileName, textChanges: textChanges2 } : void 0; - }); - } - changesToText2.getTextChangesFromChanges = getTextChangesFromChanges; - function newFileChanges(fileName, insertions, newLineCharacter, formatContext) { - var text = newFileChangesWorker(getScriptKindFromFileName(fileName), insertions, newLineCharacter, formatContext); - return { fileName: fileName, textChanges: [createTextChange(createTextSpan(0, 0), text)], isNewFile: true }; - } - changesToText2.newFileChanges = newFileChanges; - function newFileChangesWorker(scriptKind, insertions, newLineCharacter, formatContext) { - var nonFormattedText = flatMap(insertions, function (insertion) { return insertion.statements.map(function (s) { return s === 4 /* NewLineTrivia */ ? "" : getNonformattedText(s, insertion.oldFile, newLineCharacter).text; }); }).join(newLineCharacter); - var sourceFile = createSourceFile("any file name", nonFormattedText, 99 /* ESNext */, - /*setParentNodes*/ - true, scriptKind); - var changes = ts_formatting_exports.formatDocument(sourceFile, formatContext); - return applyChanges(nonFormattedText, changes) + newLineCharacter; - } - changesToText2.newFileChangesWorker = newFileChangesWorker; - function computeNewText(change, targetSourceFile, sourceFile, newLineCharacter, formatContext, validate) { - var _a; - if (change.kind === 0 /* Remove */) { - return ""; - } - if (change.kind === 3 /* Text */) { - return change.text; - } - var _t = change.options, options = _t === void 0 ? {} : _t, pos = change.range.pos; - var format = function (n) { return getFormattedTextOfNode(n, targetSourceFile, sourceFile, pos, options, newLineCharacter, formatContext, validate); }; - var text = change.kind === 2 /* ReplaceWithMultipleNodes */ ? change.nodes.map(function (n) { return removeSuffix(format(n), newLineCharacter); }).join(((_a = change.options) == null ? void 0 : _a.joiner) || newLineCharacter) : format(change.node); - var noIndent = options.indentation !== void 0 || getLineStartPositionForPosition(pos, targetSourceFile) === pos ? text : text.replace(/^\s+/, ""); - return (options.prefix || "") + noIndent + (!options.suffix || endsWith(noIndent, options.suffix) ? "" : options.suffix); - } - function getFormattedTextOfNode(nodeIn, targetSourceFile, sourceFile, pos, _t, newLineCharacter, formatContext, validate) { - var indentation = _t.indentation, prefix = _t.prefix, delta = _t.delta; - var _u = getNonformattedText(nodeIn, targetSourceFile, newLineCharacter), node = _u.node, text = _u.text; - if (validate) - validate(node, text); - var formatOptions = getFormatCodeSettingsForWriting(formatContext, targetSourceFile); - var initialIndentation = indentation !== void 0 ? indentation : ts_formatting_exports.SmartIndenter.getIndentation(pos, sourceFile, formatOptions, prefix === newLineCharacter || getLineStartPositionForPosition(pos, targetSourceFile) === pos); - if (delta === void 0) { - delta = ts_formatting_exports.SmartIndenter.shouldIndentChildNode(formatOptions, nodeIn) ? formatOptions.indentSize || 0 : 0; - } - var file = { - text: text, - getLineAndCharacterOfPosition: function (pos2) { - return getLineAndCharacterOfPosition(this, pos2); - } - }; - var changes = ts_formatting_exports.formatNodeGivenIndentation(node, file, targetSourceFile.languageVariant, initialIndentation, delta, __assign(__assign({}, formatContext), { options: formatOptions })); - return applyChanges(text, changes); - } - function getNonformattedText(node, sourceFile, newLineCharacter) { - var writer = createWriter(newLineCharacter); - var newLine = getNewLineKind(newLineCharacter); - createPrinter({ - newLine: newLine, - neverAsciiEscape: true, - preserveSourceNewlines: true, - terminateUnterminatedLiterals: true - }, writer).writeNode(4 /* Unspecified */, node, sourceFile, writer); - return { text: writer.getText(), node: assignPositionsToNode(node) }; - } - changesToText2.getNonformattedText = getNonformattedText; -})(changesToText || (changesToText = {})); -function applyChanges(text, changes) { - for (var i = changes.length - 1; i >= 0; i--) { - var _t = changes[i], span = _t.span, newText = _t.newText; - text = "".concat(text.substring(0, span.start)).concat(newText).concat(text.substring(textSpanEnd(span))); - } - return text; -} -function isTrivia2(s) { - return skipTrivia(s, 0) === s.length; -} -var textChangesTransformationContext = __assign(__assign({}, nullTransformationContext), { factory: createNodeFactory(nullTransformationContext.factory.flags | 1 /* NoParenthesizerRules */, nullTransformationContext.factory.baseFactory) }); -function assignPositionsToNode(node) { - var visited = visitEachChild(node, assignPositionsToNode, textChangesTransformationContext, assignPositionsToNodeArray, assignPositionsToNode); - var newNode = nodeIsSynthesized(visited) ? visited : Object.create(visited); - setTextRangePosEnd(newNode, getPos2(node), getEnd(node)); - return newNode; -} -function assignPositionsToNodeArray(nodes, visitor, test, start2, count) { - var visited = visitNodes2(nodes, visitor, test, start2, count); - if (!visited) { - return visited; - } - Debug.assert(nodes); - var nodeArray = visited === nodes ? factory.createNodeArray(visited.slice(0)) : visited; - setTextRangePosEnd(nodeArray, getPos2(nodes), getEnd(nodes)); - return nodeArray; -} -function createWriter(newLine) { - var lastNonTriviaPosition = 0; - var writer = createTextWriter(newLine); - var onBeforeEmitNode = function (node) { - if (node) { - setPos(node, lastNonTriviaPosition); - } - }; - var onAfterEmitNode = function (node) { - if (node) { - setEnd(node, lastNonTriviaPosition); - } - }; - var onBeforeEmitNodeArray = function (nodes) { - if (nodes) { - setPos(nodes, lastNonTriviaPosition); - } - }; - var onAfterEmitNodeArray = function (nodes) { - if (nodes) { - setEnd(nodes, lastNonTriviaPosition); - } - }; - var onBeforeEmitToken = function (node) { - if (node) { - setPos(node, lastNonTriviaPosition); - } - }; - var onAfterEmitToken = function (node) { - if (node) { - setEnd(node, lastNonTriviaPosition); - } - }; - function setLastNonTriviaPosition(s, force) { - if (force || !isTrivia2(s)) { - lastNonTriviaPosition = writer.getTextPos(); - var i = 0; - while (isWhiteSpaceLike(s.charCodeAt(s.length - i - 1))) { - i++; - } - lastNonTriviaPosition -= i; - } - } - function write(s) { - writer.write(s); - setLastNonTriviaPosition(s, - /*force*/ - false); - } - function writeComment(s) { - writer.writeComment(s); - } - function writeKeyword(s) { - writer.writeKeyword(s); - setLastNonTriviaPosition(s, - /*force*/ - false); - } - function writeOperator(s) { - writer.writeOperator(s); - setLastNonTriviaPosition(s, - /*force*/ - false); - } - function writePunctuation(s) { - writer.writePunctuation(s); - setLastNonTriviaPosition(s, - /*force*/ - false); - } - function writeTrailingSemicolon(s) { - writer.writeTrailingSemicolon(s); - setLastNonTriviaPosition(s, - /*force*/ - false); - } - function writeParameter(s) { - writer.writeParameter(s); - setLastNonTriviaPosition(s, - /*force*/ - false); - } - function writeProperty(s) { - writer.writeProperty(s); - setLastNonTriviaPosition(s, - /*force*/ - false); - } - function writeSpace(s) { - writer.writeSpace(s); - setLastNonTriviaPosition(s, - /*force*/ - false); - } - function writeStringLiteral(s) { - writer.writeStringLiteral(s); - setLastNonTriviaPosition(s, - /*force*/ - false); - } - function writeSymbol(s, sym) { - writer.writeSymbol(s, sym); - setLastNonTriviaPosition(s, - /*force*/ - false); - } - function writeLine(force) { - writer.writeLine(force); - } - function increaseIndent() { - writer.increaseIndent(); - } - function decreaseIndent() { - writer.decreaseIndent(); - } - function getText() { - return writer.getText(); - } - function rawWrite(s) { - writer.rawWrite(s); - setLastNonTriviaPosition(s, - /*force*/ - false); - } - function writeLiteral(s) { - writer.writeLiteral(s); - setLastNonTriviaPosition(s, - /*force*/ - true); - } - function getTextPos() { - return writer.getTextPos(); - } - function getLine() { - return writer.getLine(); - } - function getColumn() { - return writer.getColumn(); - } - function getIndent() { - return writer.getIndent(); - } - function isAtStartOfLine() { - return writer.isAtStartOfLine(); - } - function clear2() { - writer.clear(); - lastNonTriviaPosition = 0; - } - return { - onBeforeEmitNode: onBeforeEmitNode, - onAfterEmitNode: onAfterEmitNode, - onBeforeEmitNodeArray: onBeforeEmitNodeArray, - onAfterEmitNodeArray: onAfterEmitNodeArray, - onBeforeEmitToken: onBeforeEmitToken, - onAfterEmitToken: onAfterEmitToken, - write: write, - writeComment: writeComment, - writeKeyword: writeKeyword, - writeOperator: writeOperator, - writePunctuation: writePunctuation, - writeTrailingSemicolon: writeTrailingSemicolon, - writeParameter: writeParameter, - writeProperty: writeProperty, - writeSpace: writeSpace, - writeStringLiteral: writeStringLiteral, - writeSymbol: writeSymbol, - writeLine: writeLine, - increaseIndent: increaseIndent, - decreaseIndent: decreaseIndent, - getText: getText, - rawWrite: rawWrite, - writeLiteral: writeLiteral, - getTextPos: getTextPos, - getLine: getLine, - getColumn: getColumn, - getIndent: getIndent, - isAtStartOfLine: isAtStartOfLine, - hasTrailingComment: function () { return writer.hasTrailingComment(); }, - hasTrailingWhitespace: function () { return writer.hasTrailingWhitespace(); }, - clear: clear2 - }; -} -function getInsertionPositionAtSourceFileTop(sourceFile) { - var e_883, _t, e_884, _u; - var lastPrologue; - try { - for (var _v = __values(sourceFile.statements), _w = _v.next(); !_w.done; _w = _v.next()) { - var node = _w.value; - if (isPrologueDirective(node)) { - lastPrologue = node; - } - else { - break; - } - } - } - catch (e_883_1) { e_883 = { error: e_883_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_883) throw e_883.error; } - } - var position = 0; - var text = sourceFile.text; - if (lastPrologue) { - position = lastPrologue.end; - advancePastLineBreak(); - return position; - } - var shebang = getShebang(text); - if (shebang !== void 0) { - position = shebang.length; - advancePastLineBreak(); - } - var ranges = getLeadingCommentRanges(text, position); - if (!ranges) - return position; - var lastComment; - var firstNodeLine; - try { - for (var ranges_1 = __values(ranges), ranges_1_1 = ranges_1.next(); !ranges_1_1.done; ranges_1_1 = ranges_1.next()) { - var range = ranges_1_1.value; - if (range.kind === 3 /* MultiLineCommentTrivia */) { - if (isPinnedComment(text, range.pos)) { - lastComment = { range: range, pinnedOrTripleSlash: true }; - continue; - } - } - else if (isRecognizedTripleSlashComment(text, range.pos, range.end)) { - lastComment = { range: range, pinnedOrTripleSlash: true }; - continue; - } - if (lastComment) { - if (lastComment.pinnedOrTripleSlash) - break; - var commentLine = sourceFile.getLineAndCharacterOfPosition(range.pos).line; - var lastCommentEndLine = sourceFile.getLineAndCharacterOfPosition(lastComment.range.end).line; - if (commentLine >= lastCommentEndLine + 2) - break; - } - if (sourceFile.statements.length) { - if (firstNodeLine === void 0) - firstNodeLine = sourceFile.getLineAndCharacterOfPosition(sourceFile.statements[0].getStart()).line; - var commentEndLine = sourceFile.getLineAndCharacterOfPosition(range.end).line; - if (firstNodeLine < commentEndLine + 2) - break; - } - lastComment = { range: range, pinnedOrTripleSlash: false }; - } - } - catch (e_884_1) { e_884 = { error: e_884_1 }; } - finally { - try { - if (ranges_1_1 && !ranges_1_1.done && (_u = ranges_1.return)) _u.call(ranges_1); - } - finally { if (e_884) throw e_884.error; } - } - if (lastComment) { - position = lastComment.range.end; - advancePastLineBreak(); - } - return position; - function advancePastLineBreak() { - if (position < text.length) { - var charCode = text.charCodeAt(position); - if (isLineBreak(charCode)) { - position++; - if (position < text.length && charCode === 13 /* carriageReturn */ && text.charCodeAt(position) === 10 /* lineFeed */) { - position++; - } - } - } - } -} -function isValidLocationToAddComment(sourceFile, position) { - return !isInComment(sourceFile, position) && !isInString(sourceFile, position) && !isInTemplateString(sourceFile, position) && !isInJSXText(sourceFile, position); -} -function needSemicolonBetween(a, b) { - return (isPropertySignature(a) || isPropertyDeclaration(a)) && isClassOrTypeElement(b) && b.name.kind === 167 /* ComputedPropertyName */ || isStatementButNotDeclaration(a) && isStatementButNotDeclaration(b); -} -var deleteDeclaration; -(function (_deleteDeclaration) { - function deleteDeclaration2(changes, deletedNodesInLists, sourceFile, node) { - switch (node.kind) { - case 169 /* Parameter */: { - var oldFunction = node.parent; - if (isArrowFunction(oldFunction) && oldFunction.parameters.length === 1 && !findChildOfKind(oldFunction, 21 /* OpenParenToken */, sourceFile)) { - changes.replaceNodeWithText(sourceFile, node, "()"); - } - else { - deleteNodeInList(changes, deletedNodesInLists, sourceFile, node); - } - break; - } - case 272 /* ImportDeclaration */: - case 271 /* ImportEqualsDeclaration */: - var isFirstImport = sourceFile.imports.length && node === first(sourceFile.imports).parent || node === find(sourceFile.statements, isAnyImportSyntax); - deleteNode(changes, sourceFile, node, { - leadingTriviaOption: isFirstImport ? 0 /* Exclude */ : hasJSDocNodes(node) ? 2 /* JSDoc */ : 3 /* StartLine */ - }); - break; - case 208 /* BindingElement */: - var pattern = node.parent; - var preserveComma = pattern.kind === 207 /* ArrayBindingPattern */ && node !== last(pattern.elements); - if (preserveComma) { - deleteNode(changes, sourceFile, node); - } - else { - deleteNodeInList(changes, deletedNodesInLists, sourceFile, node); - } - break; - case 260 /* VariableDeclaration */: - deleteVariableDeclaration(changes, deletedNodesInLists, sourceFile, node); - break; - case 168 /* TypeParameter */: - deleteNodeInList(changes, deletedNodesInLists, sourceFile, node); - break; - case 276 /* ImportSpecifier */: - var namedImports = node.parent; - if (namedImports.elements.length === 1) { - deleteImportBinding(changes, sourceFile, namedImports); - } - else { - deleteNodeInList(changes, deletedNodesInLists, sourceFile, node); - } - break; - case 274 /* NamespaceImport */: - deleteImportBinding(changes, sourceFile, node); - break; - case 27 /* SemicolonToken */: - deleteNode(changes, sourceFile, node, { trailingTriviaOption: 0 /* Exclude */ }); - break; - case 100 /* FunctionKeyword */: - deleteNode(changes, sourceFile, node, { leadingTriviaOption: 0 /* Exclude */ }); - break; - case 263 /* ClassDeclaration */: - case 262 /* FunctionDeclaration */: - deleteNode(changes, sourceFile, node, { leadingTriviaOption: hasJSDocNodes(node) ? 2 /* JSDoc */ : 3 /* StartLine */ }); - break; - default: - if (!node.parent) { - deleteNode(changes, sourceFile, node); - } - else if (isImportClause(node.parent) && node.parent.name === node) { - deleteDefaultImport(changes, sourceFile, node.parent); - } - else if (isCallExpression(node.parent) && contains(node.parent.arguments, node)) { - deleteNodeInList(changes, deletedNodesInLists, sourceFile, node); - } - else { - deleteNode(changes, sourceFile, node); - } - } - } - _deleteDeclaration.deleteDeclaration = deleteDeclaration2; - function deleteDefaultImport(changes, sourceFile, importClause) { - if (!importClause.namedBindings) { - deleteNode(changes, sourceFile, importClause.parent); - } - else { - var start2 = importClause.name.getStart(sourceFile); - var nextToken = getTokenAtPosition(sourceFile, importClause.name.end); - if (nextToken && nextToken.kind === 28 /* CommaToken */) { - var end = skipTrivia(sourceFile.text, nextToken.end, - /*stopAfterLineBreak*/ - false, - /*stopAtComments*/ - true); - changes.deleteRange(sourceFile, { pos: start2, end: end }); - } - else { - deleteNode(changes, sourceFile, importClause.name); - } - } - } - function deleteImportBinding(changes, sourceFile, node) { - if (node.parent.name) { - var previousToken = Debug.checkDefined(getTokenAtPosition(sourceFile, node.pos - 1)); - changes.deleteRange(sourceFile, { pos: previousToken.getStart(sourceFile), end: node.end }); - } - else { - var importDecl = getAncestor(node, 272 /* ImportDeclaration */); - deleteNode(changes, sourceFile, importDecl); - } - } - function deleteVariableDeclaration(changes, deletedNodesInLists, sourceFile, node) { - var parent2 = node.parent; - if (parent2.kind === 299 /* CatchClause */) { - changes.deleteNodeRange(sourceFile, findChildOfKind(parent2, 21 /* OpenParenToken */, sourceFile), findChildOfKind(parent2, 22 /* CloseParenToken */, sourceFile)); - return; - } - if (parent2.declarations.length !== 1) { - deleteNodeInList(changes, deletedNodesInLists, sourceFile, node); - return; - } - var gp = parent2.parent; - switch (gp.kind) { - case 250 /* ForOfStatement */: - case 249 /* ForInStatement */: - changes.replaceNode(sourceFile, node, factory.createObjectLiteralExpression()); - break; - case 248 /* ForStatement */: - deleteNode(changes, sourceFile, parent2); - break; - case 243 /* VariableStatement */: - deleteNode(changes, sourceFile, gp, { leadingTriviaOption: hasJSDocNodes(gp) ? 2 /* JSDoc */ : 3 /* StartLine */ }); - break; - default: - Debug.assertNever(gp); - } - } -})(deleteDeclaration || (deleteDeclaration = {})); -function deleteNode(changes, sourceFile, node, options) { - if (options === void 0) { options = { leadingTriviaOption: 1 /* IncludeAll */ }; } - var startPosition = getAdjustedStartPosition(sourceFile, node, options); - var endPosition = getAdjustedEndPosition(sourceFile, node, options); - changes.deleteRange(sourceFile, { pos: startPosition, end: endPosition }); -} -function deleteNodeInList(changes, deletedNodesInLists, sourceFile, node) { - var containingList = Debug.checkDefined(ts_formatting_exports.SmartIndenter.getContainingList(node, sourceFile)); - var index = indexOfNode(containingList, node); - Debug.assert(index !== -1); - if (containingList.length === 1) { - deleteNode(changes, sourceFile, node); - return; - } - Debug.assert(!deletedNodesInLists.has(node), "Deleting a node twice"); - deletedNodesInLists.add(node); - changes.deleteRange(sourceFile, { - pos: startPositionToDeleteNodeInList(sourceFile, node), - end: index === containingList.length - 1 ? getAdjustedEndPosition(sourceFile, node, {}) : endPositionToDeleteNodeInList(sourceFile, node, containingList[index - 1], containingList[index + 1]) - }); -} -// src/services/_namespaces/ts.formatting.ts -var ts_formatting_exports = {}; -__export(ts_formatting_exports, { - FormattingContext: function () { return FormattingContext; }, - FormattingRequestKind: function () { return FormattingRequestKind; }, - RuleAction: function () { return RuleAction; }, - RuleFlags: function () { return RuleFlags; }, - SmartIndenter: function () { return SmartIndenter; }, - anyContext: function () { return anyContext; }, - createTextRangeWithKind: function () { return createTextRangeWithKind; }, - formatDocument: function () { return formatDocument; }, - formatNodeGivenIndentation: function () { return formatNodeGivenIndentation; }, - formatOnClosingCurly: function () { return formatOnClosingCurly; }, - formatOnEnter: function () { return formatOnEnter; }, - formatOnOpeningCurly: function () { return formatOnOpeningCurly; }, - formatOnSemicolon: function () { return formatOnSemicolon; }, - formatSelection: function () { return formatSelection; }, - getAllRules: function () { return getAllRules; }, - getFormatContext: function () { return getFormatContext; }, - getFormattingScanner: function () { return getFormattingScanner; }, - getIndentationString: function () { return getIndentationString; }, - getRangeOfEnclosingComment: function () { return getRangeOfEnclosingComment; } -}); -// src/services/formatting/formattingContext.ts -var FormattingRequestKind = /* @__PURE__ */ (function (FormattingRequestKind2) { - FormattingRequestKind2[FormattingRequestKind2["FormatDocument"] = 0] = "FormatDocument"; - FormattingRequestKind2[FormattingRequestKind2["FormatSelection"] = 1] = "FormatSelection"; - FormattingRequestKind2[FormattingRequestKind2["FormatOnEnter"] = 2] = "FormatOnEnter"; - FormattingRequestKind2[FormattingRequestKind2["FormatOnSemicolon"] = 3] = "FormatOnSemicolon"; - FormattingRequestKind2[FormattingRequestKind2["FormatOnOpeningCurlyBrace"] = 4] = "FormatOnOpeningCurlyBrace"; - FormattingRequestKind2[FormattingRequestKind2["FormatOnClosingCurlyBrace"] = 5] = "FormatOnClosingCurlyBrace"; - return FormattingRequestKind2; -})(FormattingRequestKind || {}); -var FormattingContext = /** @class */ (function () { - function FormattingContext(sourceFile, formattingRequestKind, options) { - this.sourceFile = sourceFile; - this.formattingRequestKind = formattingRequestKind; - this.options = options; - } - FormattingContext.prototype.updateContext = function (currentRange, currentTokenParent, nextRange, nextTokenParent, commonParent) { - this.currentTokenSpan = Debug.checkDefined(currentRange); - this.currentTokenParent = Debug.checkDefined(currentTokenParent); - this.nextTokenSpan = Debug.checkDefined(nextRange); - this.nextTokenParent = Debug.checkDefined(nextTokenParent); - this.contextNode = Debug.checkDefined(commonParent); - this.contextNodeAllOnSameLine = void 0; - this.nextNodeAllOnSameLine = void 0; - this.tokensAreOnSameLine = void 0; - this.contextNodeBlockIsOnOneLine = void 0; - this.nextNodeBlockIsOnOneLine = void 0; - }; - FormattingContext.prototype.ContextNodeAllOnSameLine = function () { - if (this.contextNodeAllOnSameLine === void 0) { - this.contextNodeAllOnSameLine = this.NodeIsOnOneLine(this.contextNode); - } - return this.contextNodeAllOnSameLine; - }; - FormattingContext.prototype.NextNodeAllOnSameLine = function () { - if (this.nextNodeAllOnSameLine === void 0) { - this.nextNodeAllOnSameLine = this.NodeIsOnOneLine(this.nextTokenParent); - } - return this.nextNodeAllOnSameLine; - }; - FormattingContext.prototype.TokensAreOnSameLine = function () { - if (this.tokensAreOnSameLine === void 0) { - var startLine = this.sourceFile.getLineAndCharacterOfPosition(this.currentTokenSpan.pos).line; - var endLine = this.sourceFile.getLineAndCharacterOfPosition(this.nextTokenSpan.pos).line; - this.tokensAreOnSameLine = startLine === endLine; - } - return this.tokensAreOnSameLine; - }; - FormattingContext.prototype.ContextNodeBlockIsOnOneLine = function () { - if (this.contextNodeBlockIsOnOneLine === void 0) { - this.contextNodeBlockIsOnOneLine = this.BlockIsOnOneLine(this.contextNode); - } - return this.contextNodeBlockIsOnOneLine; - }; - FormattingContext.prototype.NextNodeBlockIsOnOneLine = function () { - if (this.nextNodeBlockIsOnOneLine === void 0) { - this.nextNodeBlockIsOnOneLine = this.BlockIsOnOneLine(this.nextTokenParent); - } - return this.nextNodeBlockIsOnOneLine; - }; - FormattingContext.prototype.NodeIsOnOneLine = function (node) { - var startLine = this.sourceFile.getLineAndCharacterOfPosition(node.getStart(this.sourceFile)).line; - var endLine = this.sourceFile.getLineAndCharacterOfPosition(node.getEnd()).line; - return startLine === endLine; - }; - FormattingContext.prototype.BlockIsOnOneLine = function (node) { - var openBrace = findChildOfKind(node, 19 /* OpenBraceToken */, this.sourceFile); - var closeBrace = findChildOfKind(node, 20 /* CloseBraceToken */, this.sourceFile); - if (openBrace && closeBrace) { - var startLine = this.sourceFile.getLineAndCharacterOfPosition(openBrace.getEnd()).line; - var endLine = this.sourceFile.getLineAndCharacterOfPosition(closeBrace.getStart(this.sourceFile)).line; - return startLine === endLine; - } - return false; - }; - return FormattingContext; -}()); -// src/services/formatting/formattingScanner.ts -var standardScanner = createScanner(99 /* Latest */, -/*skipTrivia*/ -false, 0 /* Standard */); -var jsxScanner = createScanner(99 /* Latest */, -/*skipTrivia*/ -false, 1 /* JSX */); -function getFormattingScanner(text, languageVariant, startPos, endPos, cb) { - var scanner2 = languageVariant === 1 /* JSX */ ? jsxScanner : standardScanner; - scanner2.setText(text); - scanner2.resetTokenState(startPos); - var wasNewLine = true; - var leadingTrivia; - var trailingTrivia; - var savedPos; - var lastScanAction; - var lastTokenInfo; - var res = cb({ - advance: advance, - readTokenInfo: readTokenInfo, - readEOFTokenRange: readEOFTokenRange, - isOnToken: isOnToken, - isOnEOF: isOnEOF, - getCurrentLeadingTrivia: function () { return leadingTrivia; }, - lastTrailingTriviaWasNewLine: function () { return wasNewLine; }, - skipToEndOf: skipToEndOf, - skipToStartOf: skipToStartOf, - getTokenFullStart: function () { var _t; return (_t = (lastTokenInfo == null ? void 0 : lastTokenInfo.token.pos)) !== null && _t !== void 0 ? _t : scanner2.getTokenStart(); }, - getStartPos: function () { var _t; return (_t = (lastTokenInfo == null ? void 0 : lastTokenInfo.token.pos)) !== null && _t !== void 0 ? _t : scanner2.getTokenStart(); } - }); - lastTokenInfo = void 0; - scanner2.setText(void 0); - return res; - function advance() { - lastTokenInfo = void 0; - var isStarted = scanner2.getTokenFullStart() !== startPos; - if (isStarted) { - wasNewLine = !!trailingTrivia && last(trailingTrivia).kind === 4 /* NewLineTrivia */; - } - else { - scanner2.scan(); - } - leadingTrivia = void 0; - trailingTrivia = void 0; - var pos = scanner2.getTokenFullStart(); - while (pos < endPos) { - var t = scanner2.getToken(); - if (!isTrivia(t)) { - break; - } - scanner2.scan(); - var item = { - pos: pos, - end: scanner2.getTokenFullStart(), - kind: t - }; - pos = scanner2.getTokenFullStart(); - leadingTrivia = append(leadingTrivia, item); - } - savedPos = scanner2.getTokenFullStart(); - } - function shouldRescanGreaterThanToken(node) { - switch (node.kind) { - case 34 /* GreaterThanEqualsToken */: - case 72 /* GreaterThanGreaterThanEqualsToken */: - case 73 /* GreaterThanGreaterThanGreaterThanEqualsToken */: - case 50 /* GreaterThanGreaterThanGreaterThanToken */: - case 49 /* GreaterThanGreaterThanToken */: - return true; - } - return false; - } - function shouldRescanJsxIdentifier(node) { - if (node.parent) { - switch (node.parent.kind) { - case 291 /* JsxAttribute */: - case 286 /* JsxOpeningElement */: - case 287 /* JsxClosingElement */: - case 285 /* JsxSelfClosingElement */: - return isKeyword(node.kind) || node.kind === 80 /* Identifier */; - } - } - return false; - } - function shouldRescanJsxText(node) { - return isJsxText(node) || isJsxElement(node) && (lastTokenInfo == null ? void 0 : lastTokenInfo.token.kind) === 12 /* JsxText */; - } - function shouldRescanSlashToken(container) { - return container.kind === 14 /* RegularExpressionLiteral */; - } - function shouldRescanTemplateToken(container) { - return container.kind === 17 /* TemplateMiddle */ || container.kind === 18 /* TemplateTail */; - } - function shouldRescanJsxAttributeValue(node) { - return node.parent && isJsxAttribute(node.parent) && node.parent.initializer === node; - } - function startsWithSlashToken(t) { - return t === 44 /* SlashToken */ || t === 69 /* SlashEqualsToken */; - } - function readTokenInfo(n) { - Debug.assert(isOnToken()); - var expectedScanAction = shouldRescanGreaterThanToken(n) ? 1 /* RescanGreaterThanToken */ : shouldRescanSlashToken(n) ? 2 /* RescanSlashToken */ : shouldRescanTemplateToken(n) ? 3 /* RescanTemplateToken */ : shouldRescanJsxIdentifier(n) ? 4 /* RescanJsxIdentifier */ : shouldRescanJsxText(n) ? 5 /* RescanJsxText */ : shouldRescanJsxAttributeValue(n) ? 6 /* RescanJsxAttributeValue */ : 0 /* Scan */; - if (lastTokenInfo && expectedScanAction === lastScanAction) { - return fixTokenKind(lastTokenInfo, n); - } - if (scanner2.getTokenFullStart() !== savedPos) { - Debug.assert(lastTokenInfo !== void 0); - scanner2.resetTokenState(savedPos); - scanner2.scan(); - } - var currentToken = getNextToken(n, expectedScanAction); - var token = createTextRangeWithKind(scanner2.getTokenFullStart(), scanner2.getTokenEnd(), currentToken); - if (trailingTrivia) { - trailingTrivia = void 0; - } - while (scanner2.getTokenFullStart() < endPos) { - currentToken = scanner2.scan(); - if (!isTrivia(currentToken)) { - break; - } - var trivia = createTextRangeWithKind(scanner2.getTokenFullStart(), scanner2.getTokenEnd(), currentToken); - if (!trailingTrivia) { - trailingTrivia = []; - } - trailingTrivia.push(trivia); - if (currentToken === 4 /* NewLineTrivia */) { - scanner2.scan(); - break; - } - } - lastTokenInfo = { leadingTrivia: leadingTrivia, trailingTrivia: trailingTrivia, token: token }; - return fixTokenKind(lastTokenInfo, n); - } - function getNextToken(n, expectedScanAction) { - var token = scanner2.getToken(); - lastScanAction = 0 /* Scan */; - switch (expectedScanAction) { - case 1 /* RescanGreaterThanToken */: - if (token === 32 /* GreaterThanToken */) { - lastScanAction = 1 /* RescanGreaterThanToken */; - var newToken = scanner2.reScanGreaterToken(); - Debug.assert(n.kind === newToken); - return newToken; - } - break; - case 2 /* RescanSlashToken */: - if (startsWithSlashToken(token)) { - lastScanAction = 2 /* RescanSlashToken */; - var newToken = scanner2.reScanSlashToken(); - Debug.assert(n.kind === newToken); - return newToken; - } - break; - case 3 /* RescanTemplateToken */: - if (token === 20 /* CloseBraceToken */) { - lastScanAction = 3 /* RescanTemplateToken */; - return scanner2.reScanTemplateToken( - /*isTaggedTemplate*/ - false); - } - break; - case 4 /* RescanJsxIdentifier */: - lastScanAction = 4 /* RescanJsxIdentifier */; - return scanner2.scanJsxIdentifier(); - case 5 /* RescanJsxText */: - lastScanAction = 5 /* RescanJsxText */; - return scanner2.reScanJsxToken( - /*allowMultilineJsxText*/ - false); - case 6 /* RescanJsxAttributeValue */: - lastScanAction = 6 /* RescanJsxAttributeValue */; - return scanner2.reScanJsxAttributeValue(); - case 0 /* Scan */: - break; - default: - Debug.assertNever(expectedScanAction); - } - return token; - } - function readEOFTokenRange() { - Debug.assert(isOnEOF()); - return createTextRangeWithKind(scanner2.getTokenFullStart(), scanner2.getTokenEnd(), 1 /* EndOfFileToken */); - } - function isOnToken() { - var current = lastTokenInfo ? lastTokenInfo.token.kind : scanner2.getToken(); - return current !== 1 /* EndOfFileToken */ && !isTrivia(current); - } - function isOnEOF() { - var current = lastTokenInfo ? lastTokenInfo.token.kind : scanner2.getToken(); - return current === 1 /* EndOfFileToken */; - } - function fixTokenKind(tokenInfo, container) { - if (isToken(container) && tokenInfo.token.kind !== container.kind) { - tokenInfo.token.kind = container.kind; - } - return tokenInfo; - } - function skipToEndOf(node) { - scanner2.resetTokenState(node.end); - savedPos = scanner2.getTokenFullStart(); - lastScanAction = void 0; - lastTokenInfo = void 0; - wasNewLine = false; - leadingTrivia = void 0; - trailingTrivia = void 0; - } - function skipToStartOf(node) { - scanner2.resetTokenState(node.pos); - savedPos = scanner2.getTokenFullStart(); - lastScanAction = void 0; - lastTokenInfo = void 0; - wasNewLine = false; - leadingTrivia = void 0; - trailingTrivia = void 0; - } -} -// src/services/formatting/rule.ts -var anyContext = emptyArray; -var RuleAction = /* @__PURE__ */ (function (RuleAction2) { - RuleAction2[RuleAction2["None"] = 0] = "None"; - RuleAction2[RuleAction2["StopProcessingSpaceActions"] = 1] = "StopProcessingSpaceActions"; - RuleAction2[RuleAction2["StopProcessingTokenActions"] = 2] = "StopProcessingTokenActions"; - RuleAction2[RuleAction2["InsertSpace"] = 4] = "InsertSpace"; - RuleAction2[RuleAction2["InsertNewLine"] = 8] = "InsertNewLine"; - RuleAction2[RuleAction2["DeleteSpace"] = 16] = "DeleteSpace"; - RuleAction2[RuleAction2["DeleteToken"] = 32] = "DeleteToken"; - RuleAction2[RuleAction2["InsertTrailingSemicolon"] = 64] = "InsertTrailingSemicolon"; - RuleAction2[RuleAction2["StopAction"] = 3] = "StopAction"; - RuleAction2[RuleAction2["ModifySpaceAction"] = 28] = "ModifySpaceAction"; - RuleAction2[RuleAction2["ModifyTokenAction"] = 96] = "ModifyTokenAction"; - return RuleAction2; -})(RuleAction || {}); -var RuleFlags = /* @__PURE__ */ (function (RuleFlags2) { - RuleFlags2[RuleFlags2["None"] = 0] = "None"; - RuleFlags2[RuleFlags2["CanDeleteNewLines"] = 1] = "CanDeleteNewLines"; - return RuleFlags2; -})(RuleFlags || {}); -// src/services/formatting/rules.ts -function getAllRules() { - var allTokens = []; - for (var token = 0 /* FirstToken */; token <= 165 /* LastToken */; token++) { - if (token !== 1 /* EndOfFileToken */) { - allTokens.push(token); - } - } - function anyTokenExcept() { - var tokens = []; - for (var _t = 0; _t < arguments.length; _t++) { - tokens[_t] = arguments[_t]; - } - return { tokens: allTokens.filter(function (t) { return !tokens.some(function (t2) { return t2 === t; }); }), isSpecific: false }; - } - var anyToken = { tokens: allTokens, isSpecific: false }; - var anyTokenIncludingMultilineComments = tokenRangeFrom(__spreadArray(__spreadArray([], __read(allTokens), false), [3 /* MultiLineCommentTrivia */], false)); - var anyTokenIncludingEOF = tokenRangeFrom(__spreadArray(__spreadArray([], __read(allTokens), false), [1 /* EndOfFileToken */], false)); - var keywords = tokenRangeFromRange(83 /* FirstKeyword */, 165 /* LastKeyword */); - var binaryOperators = tokenRangeFromRange(30 /* FirstBinaryOperator */, 79 /* LastBinaryOperator */); - var binaryKeywordOperators = [ - 103 /* InKeyword */, - 104 /* InstanceOfKeyword */, - 165 /* OfKeyword */, - 130 /* AsKeyword */, - 142 /* IsKeyword */, - 152 /* SatisfiesKeyword */ - ]; - var unaryPrefixOperators = [46 /* PlusPlusToken */, 47 /* MinusMinusToken */, 55 /* TildeToken */, 54 /* ExclamationToken */]; - var unaryPrefixExpressions = [ - 9 /* NumericLiteral */, - 10 /* BigIntLiteral */, - 80 /* Identifier */, - 21 /* OpenParenToken */, - 23 /* OpenBracketToken */, - 19 /* OpenBraceToken */, - 110 /* ThisKeyword */, - 105 /* NewKeyword */ - ]; - var unaryPreincrementExpressions = [80 /* Identifier */, 21 /* OpenParenToken */, 110 /* ThisKeyword */, 105 /* NewKeyword */]; - var unaryPostincrementExpressions = [80 /* Identifier */, 22 /* CloseParenToken */, 24 /* CloseBracketToken */, 105 /* NewKeyword */]; - var unaryPredecrementExpressions = [80 /* Identifier */, 21 /* OpenParenToken */, 110 /* ThisKeyword */, 105 /* NewKeyword */]; - var unaryPostdecrementExpressions = [80 /* Identifier */, 22 /* CloseParenToken */, 24 /* CloseBracketToken */, 105 /* NewKeyword */]; - var comments = [2 /* SingleLineCommentTrivia */, 3 /* MultiLineCommentTrivia */]; - var typeNames = __spreadArray([80 /* Identifier */], __read(typeKeywords), false); - var functionOpenBraceLeftTokenRange = anyTokenIncludingMultilineComments; - var typeScriptOpenBraceLeftTokenRange = tokenRangeFrom([80 /* Identifier */, 3 /* MultiLineCommentTrivia */, 86 /* ClassKeyword */, 95 /* ExportKeyword */, 102 /* ImportKeyword */]); - var controlOpenBraceLeftTokenRange = tokenRangeFrom([22 /* CloseParenToken */, 3 /* MultiLineCommentTrivia */, 92 /* DoKeyword */, 113 /* TryKeyword */, 98 /* FinallyKeyword */, 93 /* ElseKeyword */]); - var highPriorityCommonRules = [ - // Leave comments alone - rule("IgnoreBeforeComment", anyToken, comments, anyContext, 1 /* StopProcessingSpaceActions */), - rule("IgnoreAfterLineComment", 2 /* SingleLineCommentTrivia */, anyToken, anyContext, 1 /* StopProcessingSpaceActions */), - rule("NotSpaceBeforeColon", anyToken, 59 /* ColonToken */, [isNonJsxSameLineTokenContext, isNotBinaryOpContext, isNotTypeAnnotationContext], 16 /* DeleteSpace */), - rule("SpaceAfterColon", 59 /* ColonToken */, anyToken, [isNonJsxSameLineTokenContext, isNotBinaryOpContext], 4 /* InsertSpace */), - rule("NoSpaceBeforeQuestionMark", anyToken, 58 /* QuestionToken */, [isNonJsxSameLineTokenContext, isNotBinaryOpContext, isNotTypeAnnotationContext], 16 /* DeleteSpace */), - // insert space after '?' only when it is used in conditional operator - rule("SpaceAfterQuestionMarkInConditionalOperator", 58 /* QuestionToken */, anyToken, [isNonJsxSameLineTokenContext, isConditionalOperatorContext], 4 /* InsertSpace */), - // in other cases there should be no space between '?' and next token - rule("NoSpaceAfterQuestionMark", 58 /* QuestionToken */, anyToken, [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */), - rule("NoSpaceBeforeDot", anyToken, [25 /* DotToken */, 29 /* QuestionDotToken */], [isNonJsxSameLineTokenContext, isNotPropertyAccessOnIntegerLiteral], 16 /* DeleteSpace */), - rule("NoSpaceAfterDot", [25 /* DotToken */, 29 /* QuestionDotToken */], anyToken, [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */), - rule("NoSpaceBetweenImportParenInImportType", 102 /* ImportKeyword */, 21 /* OpenParenToken */, [isNonJsxSameLineTokenContext, isImportTypeContext], 16 /* DeleteSpace */), - // Special handling of unary operators. - // Prefix operators generally shouldn't have a space between - // them and their target unary expression. - rule("NoSpaceAfterUnaryPrefixOperator", unaryPrefixOperators, unaryPrefixExpressions, [isNonJsxSameLineTokenContext, isNotBinaryOpContext], 16 /* DeleteSpace */), - rule("NoSpaceAfterUnaryPreincrementOperator", 46 /* PlusPlusToken */, unaryPreincrementExpressions, [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */), - rule("NoSpaceAfterUnaryPredecrementOperator", 47 /* MinusMinusToken */, unaryPredecrementExpressions, [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */), - rule("NoSpaceBeforeUnaryPostincrementOperator", unaryPostincrementExpressions, 46 /* PlusPlusToken */, [isNonJsxSameLineTokenContext, isNotStatementConditionContext], 16 /* DeleteSpace */), - rule("NoSpaceBeforeUnaryPostdecrementOperator", unaryPostdecrementExpressions, 47 /* MinusMinusToken */, [isNonJsxSameLineTokenContext, isNotStatementConditionContext], 16 /* DeleteSpace */), - // More unary operator special-casing. - // DevDiv 181814: Be careful when removing leading whitespace - // around unary operators. Examples: - // 1 - -2 --X--> 1--2 - // a + ++b --X--> a+++b - rule("SpaceAfterPostincrementWhenFollowedByAdd", 46 /* PlusPlusToken */, 40 /* PlusToken */, [isNonJsxSameLineTokenContext, isBinaryOpContext], 4 /* InsertSpace */), - rule("SpaceAfterAddWhenFollowedByUnaryPlus", 40 /* PlusToken */, 40 /* PlusToken */, [isNonJsxSameLineTokenContext, isBinaryOpContext], 4 /* InsertSpace */), - rule("SpaceAfterAddWhenFollowedByPreincrement", 40 /* PlusToken */, 46 /* PlusPlusToken */, [isNonJsxSameLineTokenContext, isBinaryOpContext], 4 /* InsertSpace */), - rule("SpaceAfterPostdecrementWhenFollowedBySubtract", 47 /* MinusMinusToken */, 41 /* MinusToken */, [isNonJsxSameLineTokenContext, isBinaryOpContext], 4 /* InsertSpace */), - rule("SpaceAfterSubtractWhenFollowedByUnaryMinus", 41 /* MinusToken */, 41 /* MinusToken */, [isNonJsxSameLineTokenContext, isBinaryOpContext], 4 /* InsertSpace */), - rule("SpaceAfterSubtractWhenFollowedByPredecrement", 41 /* MinusToken */, 47 /* MinusMinusToken */, [isNonJsxSameLineTokenContext, isBinaryOpContext], 4 /* InsertSpace */), - rule("NoSpaceAfterCloseBrace", 20 /* CloseBraceToken */, [28 /* CommaToken */, 27 /* SemicolonToken */], [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */), - // For functions and control block place } on a new line [multi-line rule] - rule("NewLineBeforeCloseBraceInBlockContext", anyTokenIncludingMultilineComments, 20 /* CloseBraceToken */, [isMultilineBlockContext], 8 /* InsertNewLine */), - // Space/new line after }. - rule("SpaceAfterCloseBrace", 20 /* CloseBraceToken */, anyTokenExcept(22 /* CloseParenToken */), [isNonJsxSameLineTokenContext, isAfterCodeBlockContext], 4 /* InsertSpace */), - // Special case for (}, else) and (}, while) since else & while tokens are not part of the tree which makes SpaceAfterCloseBrace rule not applied - // Also should not apply to }) - rule("SpaceBetweenCloseBraceAndElse", 20 /* CloseBraceToken */, 93 /* ElseKeyword */, [isNonJsxSameLineTokenContext], 4 /* InsertSpace */), - rule("SpaceBetweenCloseBraceAndWhile", 20 /* CloseBraceToken */, 117 /* WhileKeyword */, [isNonJsxSameLineTokenContext], 4 /* InsertSpace */), - rule("NoSpaceBetweenEmptyBraceBrackets", 19 /* OpenBraceToken */, 20 /* CloseBraceToken */, [isNonJsxSameLineTokenContext, isObjectContext], 16 /* DeleteSpace */), - // Add a space after control dec context if the next character is an open bracket ex: 'if (false)[a, b] = [1, 2];' -> 'if (false) [a, b] = [1, 2];' - rule("SpaceAfterConditionalClosingParen", 22 /* CloseParenToken */, 23 /* OpenBracketToken */, [isControlDeclContext], 4 /* InsertSpace */), - rule("NoSpaceBetweenFunctionKeywordAndStar", 100 /* FunctionKeyword */, 42 /* AsteriskToken */, [isFunctionDeclarationOrFunctionExpressionContext], 16 /* DeleteSpace */), - rule("SpaceAfterStarInGeneratorDeclaration", 42 /* AsteriskToken */, 80 /* Identifier */, [isFunctionDeclarationOrFunctionExpressionContext], 4 /* InsertSpace */), - rule("SpaceAfterFunctionInFuncDecl", 100 /* FunctionKeyword */, anyToken, [isFunctionDeclContext], 4 /* InsertSpace */), - // Insert new line after { and before } in multi-line contexts. - rule("NewLineAfterOpenBraceInBlockContext", 19 /* OpenBraceToken */, anyToken, [isMultilineBlockContext], 8 /* InsertNewLine */), - // For get/set members, we check for (identifier,identifier) since get/set don't have tokens and they are represented as just an identifier token. - // Though, we do extra check on the context to make sure we are dealing with get/set node. Example: - // get x() {} - // set x(val) {} - rule("SpaceAfterGetSetInMember", [139 /* GetKeyword */, 153 /* SetKeyword */], 80 /* Identifier */, [isFunctionDeclContext], 4 /* InsertSpace */), - rule("NoSpaceBetweenYieldKeywordAndStar", 127 /* YieldKeyword */, 42 /* AsteriskToken */, [isNonJsxSameLineTokenContext, isYieldOrYieldStarWithOperand], 16 /* DeleteSpace */), - rule("SpaceBetweenYieldOrYieldStarAndOperand", [127 /* YieldKeyword */, 42 /* AsteriskToken */], anyToken, [isNonJsxSameLineTokenContext, isYieldOrYieldStarWithOperand], 4 /* InsertSpace */), - rule("NoSpaceBetweenReturnAndSemicolon", 107 /* ReturnKeyword */, 27 /* SemicolonToken */, [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */), - rule("SpaceAfterCertainKeywords", [115 /* VarKeyword */, 111 /* ThrowKeyword */, 105 /* NewKeyword */, 91 /* DeleteKeyword */, 107 /* ReturnKeyword */, 114 /* TypeOfKeyword */, 135 /* AwaitKeyword */], anyToken, [isNonJsxSameLineTokenContext], 4 /* InsertSpace */), - rule("SpaceAfterLetConstInVariableDeclaration", [121 /* LetKeyword */, 87 /* ConstKeyword */], anyToken, [isNonJsxSameLineTokenContext, isStartOfVariableDeclarationList], 4 /* InsertSpace */), - rule("NoSpaceBeforeOpenParenInFuncCall", anyToken, 21 /* OpenParenToken */, [isNonJsxSameLineTokenContext, isFunctionCallOrNewContext, isPreviousTokenNotComma], 16 /* DeleteSpace */), - // Special case for binary operators (that are keywords). For these we have to add a space and shouldn't follow any user options. - rule("SpaceBeforeBinaryKeywordOperator", anyToken, binaryKeywordOperators, [isNonJsxSameLineTokenContext, isBinaryOpContext], 4 /* InsertSpace */), - rule("SpaceAfterBinaryKeywordOperator", binaryKeywordOperators, anyToken, [isNonJsxSameLineTokenContext, isBinaryOpContext], 4 /* InsertSpace */), - rule("SpaceAfterVoidOperator", 116 /* VoidKeyword */, anyToken, [isNonJsxSameLineTokenContext, isVoidOpContext], 4 /* InsertSpace */), - // Async-await - rule("SpaceBetweenAsyncAndOpenParen", 134 /* AsyncKeyword */, 21 /* OpenParenToken */, [isArrowFunctionContext, isNonJsxSameLineTokenContext], 4 /* InsertSpace */), - rule("SpaceBetweenAsyncAndFunctionKeyword", 134 /* AsyncKeyword */, [100 /* FunctionKeyword */, 80 /* Identifier */], [isNonJsxSameLineTokenContext], 4 /* InsertSpace */), - // Template string - rule("NoSpaceBetweenTagAndTemplateString", [80 /* Identifier */, 22 /* CloseParenToken */], [15 /* NoSubstitutionTemplateLiteral */, 16 /* TemplateHead */], [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */), - // JSX opening elements - rule("SpaceBeforeJsxAttribute", anyToken, 80 /* Identifier */, [isNextTokenParentJsxAttribute, isNonJsxSameLineTokenContext], 4 /* InsertSpace */), - rule("SpaceBeforeSlashInJsxOpeningElement", anyToken, 44 /* SlashToken */, [isJsxSelfClosingElementContext, isNonJsxSameLineTokenContext], 4 /* InsertSpace */), - rule("NoSpaceBeforeGreaterThanTokenInJsxOpeningElement", 44 /* SlashToken */, 32 /* GreaterThanToken */, [isJsxSelfClosingElementContext, isNonJsxSameLineTokenContext], 16 /* DeleteSpace */), - rule("NoSpaceBeforeEqualInJsxAttribute", anyToken, 64 /* EqualsToken */, [isJsxAttributeContext, isNonJsxSameLineTokenContext], 16 /* DeleteSpace */), - rule("NoSpaceAfterEqualInJsxAttribute", 64 /* EqualsToken */, anyToken, [isJsxAttributeContext, isNonJsxSameLineTokenContext], 16 /* DeleteSpace */), - // TypeScript-specific rules - // Use of module as a function call. e.g.: import m2 = module("m2"); - rule("NoSpaceAfterModuleImport", [144 /* ModuleKeyword */, 149 /* RequireKeyword */], 21 /* OpenParenToken */, [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */), - // Add a space around certain TypeScript keywords - rule("SpaceAfterCertainTypeScriptKeywords", [ - 128 /* AbstractKeyword */, - 129 /* AccessorKeyword */, - 86 /* ClassKeyword */, - 138 /* DeclareKeyword */, - 90 /* DefaultKeyword */, - 94 /* EnumKeyword */, - 95 /* ExportKeyword */, - 96 /* ExtendsKeyword */, - 139 /* GetKeyword */, - 119 /* ImplementsKeyword */, - 102 /* ImportKeyword */, - 120 /* InterfaceKeyword */, - 144 /* ModuleKeyword */, - 145 /* NamespaceKeyword */, - 123 /* PrivateKeyword */, - 125 /* PublicKeyword */, - 124 /* ProtectedKeyword */, - 148 /* ReadonlyKeyword */, - 153 /* SetKeyword */, - 126 /* StaticKeyword */, - 156 /* TypeKeyword */, - 161 /* FromKeyword */, - 143 /* KeyOfKeyword */, - 140 /* InferKeyword */ - ], anyToken, [isNonJsxSameLineTokenContext], 4 /* InsertSpace */), - rule("SpaceBeforeCertainTypeScriptKeywords", anyToken, [96 /* ExtendsKeyword */, 119 /* ImplementsKeyword */, 161 /* FromKeyword */], [isNonJsxSameLineTokenContext], 4 /* InsertSpace */), - // Treat string literals in module names as identifiers, and add a space between the literal and the opening Brace braces, e.g.: module "m2" { - rule("SpaceAfterModuleName", 11 /* StringLiteral */, 19 /* OpenBraceToken */, [isModuleDeclContext], 4 /* InsertSpace */), - // Lambda expressions - rule("SpaceBeforeArrow", anyToken, 39 /* EqualsGreaterThanToken */, [isNonJsxSameLineTokenContext], 4 /* InsertSpace */), - rule("SpaceAfterArrow", 39 /* EqualsGreaterThanToken */, anyToken, [isNonJsxSameLineTokenContext], 4 /* InsertSpace */), - // Optional parameters and let args - rule("NoSpaceAfterEllipsis", 26 /* DotDotDotToken */, 80 /* Identifier */, [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */), - rule("NoSpaceAfterOptionalParameters", 58 /* QuestionToken */, [22 /* CloseParenToken */, 28 /* CommaToken */], [isNonJsxSameLineTokenContext, isNotBinaryOpContext], 16 /* DeleteSpace */), - // Remove spaces in empty interface literals. e.g.: x: {} - rule("NoSpaceBetweenEmptyInterfaceBraceBrackets", 19 /* OpenBraceToken */, 20 /* CloseBraceToken */, [isNonJsxSameLineTokenContext, isObjectTypeContext], 16 /* DeleteSpace */), - // generics and type assertions - rule("NoSpaceBeforeOpenAngularBracket", typeNames, 30 /* LessThanToken */, [isNonJsxSameLineTokenContext, isTypeArgumentOrParameterOrAssertionContext], 16 /* DeleteSpace */), - rule("NoSpaceBetweenCloseParenAndAngularBracket", 22 /* CloseParenToken */, 30 /* LessThanToken */, [isNonJsxSameLineTokenContext, isTypeArgumentOrParameterOrAssertionContext], 16 /* DeleteSpace */), - rule("NoSpaceAfterOpenAngularBracket", 30 /* LessThanToken */, anyToken, [isNonJsxSameLineTokenContext, isTypeArgumentOrParameterOrAssertionContext], 16 /* DeleteSpace */), - rule("NoSpaceBeforeCloseAngularBracket", anyToken, 32 /* GreaterThanToken */, [isNonJsxSameLineTokenContext, isTypeArgumentOrParameterOrAssertionContext], 16 /* DeleteSpace */), - rule("NoSpaceAfterCloseAngularBracket", 32 /* GreaterThanToken */, [21 /* OpenParenToken */, 23 /* OpenBracketToken */, 32 /* GreaterThanToken */, 28 /* CommaToken */], [ - isNonJsxSameLineTokenContext, - isTypeArgumentOrParameterOrAssertionContext, - isNotFunctionDeclContext, - isNonTypeAssertionContext - ], 16 /* DeleteSpace */), - // decorators - rule("SpaceBeforeAt", [22 /* CloseParenToken */, 80 /* Identifier */], 60 /* AtToken */, [isNonJsxSameLineTokenContext], 4 /* InsertSpace */), - rule("NoSpaceAfterAt", 60 /* AtToken */, anyToken, [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */), - // Insert space after @ in decorator - rule("SpaceAfterDecorator", anyToken, [ - 128 /* AbstractKeyword */, - 80 /* Identifier */, - 95 /* ExportKeyword */, - 90 /* DefaultKeyword */, - 86 /* ClassKeyword */, - 126 /* StaticKeyword */, - 125 /* PublicKeyword */, - 123 /* PrivateKeyword */, - 124 /* ProtectedKeyword */, - 139 /* GetKeyword */, - 153 /* SetKeyword */, - 23 /* OpenBracketToken */, - 42 /* AsteriskToken */ - ], [isEndOfDecoratorContextOnSameLine], 4 /* InsertSpace */), - rule("NoSpaceBeforeNonNullAssertionOperator", anyToken, 54 /* ExclamationToken */, [isNonJsxSameLineTokenContext, isNonNullAssertionContext], 16 /* DeleteSpace */), - rule("NoSpaceAfterNewKeywordOnConstructorSignature", 105 /* NewKeyword */, 21 /* OpenParenToken */, [isNonJsxSameLineTokenContext, isConstructorSignatureContext], 16 /* DeleteSpace */), - rule("SpaceLessThanAndNonJSXTypeAnnotation", 30 /* LessThanToken */, 30 /* LessThanToken */, [isNonJsxSameLineTokenContext], 4 /* InsertSpace */) - ]; - var userConfigurableRules = [ - // Treat constructor as an identifier in a function declaration, and remove spaces between constructor and following left parentheses - rule("SpaceAfterConstructor", 137 /* ConstructorKeyword */, 21 /* OpenParenToken */, [isOptionEnabled("insertSpaceAfterConstructor"), isNonJsxSameLineTokenContext], 4 /* InsertSpace */), - rule("NoSpaceAfterConstructor", 137 /* ConstructorKeyword */, 21 /* OpenParenToken */, [isOptionDisabledOrUndefined("insertSpaceAfterConstructor"), isNonJsxSameLineTokenContext], 16 /* DeleteSpace */), - rule("SpaceAfterComma", 28 /* CommaToken */, anyToken, [isOptionEnabled("insertSpaceAfterCommaDelimiter"), isNonJsxSameLineTokenContext, isNonJsxElementOrFragmentContext, isNextTokenNotCloseBracket, isNextTokenNotCloseParen], 4 /* InsertSpace */), - rule("NoSpaceAfterComma", 28 /* CommaToken */, anyToken, [isOptionDisabledOrUndefined("insertSpaceAfterCommaDelimiter"), isNonJsxSameLineTokenContext, isNonJsxElementOrFragmentContext], 16 /* DeleteSpace */), - // Insert space after function keyword for anonymous functions - rule("SpaceAfterAnonymousFunctionKeyword", [100 /* FunctionKeyword */, 42 /* AsteriskToken */], 21 /* OpenParenToken */, [isOptionEnabled("insertSpaceAfterFunctionKeywordForAnonymousFunctions"), isFunctionDeclContext], 4 /* InsertSpace */), - rule("NoSpaceAfterAnonymousFunctionKeyword", [100 /* FunctionKeyword */, 42 /* AsteriskToken */], 21 /* OpenParenToken */, [isOptionDisabledOrUndefined("insertSpaceAfterFunctionKeywordForAnonymousFunctions"), isFunctionDeclContext], 16 /* DeleteSpace */), - // Insert space after keywords in control flow statements - rule("SpaceAfterKeywordInControl", keywords, 21 /* OpenParenToken */, [isOptionEnabled("insertSpaceAfterKeywordsInControlFlowStatements"), isControlDeclContext], 4 /* InsertSpace */), - rule("NoSpaceAfterKeywordInControl", keywords, 21 /* OpenParenToken */, [isOptionDisabledOrUndefined("insertSpaceAfterKeywordsInControlFlowStatements"), isControlDeclContext], 16 /* DeleteSpace */), - // Insert space after opening and before closing nonempty parenthesis - rule("SpaceAfterOpenParen", 21 /* OpenParenToken */, anyToken, [isOptionEnabled("insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis"), isNonJsxSameLineTokenContext], 4 /* InsertSpace */), - rule("SpaceBeforeCloseParen", anyToken, 22 /* CloseParenToken */, [isOptionEnabled("insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis"), isNonJsxSameLineTokenContext], 4 /* InsertSpace */), - rule("SpaceBetweenOpenParens", 21 /* OpenParenToken */, 21 /* OpenParenToken */, [isOptionEnabled("insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis"), isNonJsxSameLineTokenContext], 4 /* InsertSpace */), - rule("NoSpaceBetweenParens", 21 /* OpenParenToken */, 22 /* CloseParenToken */, [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */), - rule("NoSpaceAfterOpenParen", 21 /* OpenParenToken */, anyToken, [isOptionDisabledOrUndefined("insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis"), isNonJsxSameLineTokenContext], 16 /* DeleteSpace */), - rule("NoSpaceBeforeCloseParen", anyToken, 22 /* CloseParenToken */, [isOptionDisabledOrUndefined("insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis"), isNonJsxSameLineTokenContext], 16 /* DeleteSpace */), - // Insert space after opening and before closing nonempty brackets - rule("SpaceAfterOpenBracket", 23 /* OpenBracketToken */, anyToken, [isOptionEnabled("insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets"), isNonJsxSameLineTokenContext], 4 /* InsertSpace */), - rule("SpaceBeforeCloseBracket", anyToken, 24 /* CloseBracketToken */, [isOptionEnabled("insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets"), isNonJsxSameLineTokenContext], 4 /* InsertSpace */), - rule("NoSpaceBetweenBrackets", 23 /* OpenBracketToken */, 24 /* CloseBracketToken */, [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */), - rule("NoSpaceAfterOpenBracket", 23 /* OpenBracketToken */, anyToken, [isOptionDisabledOrUndefined("insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets"), isNonJsxSameLineTokenContext], 16 /* DeleteSpace */), - rule("NoSpaceBeforeCloseBracket", anyToken, 24 /* CloseBracketToken */, [isOptionDisabledOrUndefined("insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets"), isNonJsxSameLineTokenContext], 16 /* DeleteSpace */), - // Insert a space after { and before } in single-line contexts, but remove space from empty object literals {}. - rule("SpaceAfterOpenBrace", 19 /* OpenBraceToken */, anyToken, [isOptionEnabledOrUndefined("insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces"), isBraceWrappedContext], 4 /* InsertSpace */), - rule("SpaceBeforeCloseBrace", anyToken, 20 /* CloseBraceToken */, [isOptionEnabledOrUndefined("insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces"), isBraceWrappedContext], 4 /* InsertSpace */), - rule("NoSpaceBetweenEmptyBraceBrackets", 19 /* OpenBraceToken */, 20 /* CloseBraceToken */, [isNonJsxSameLineTokenContext, isObjectContext], 16 /* DeleteSpace */), - rule("NoSpaceAfterOpenBrace", 19 /* OpenBraceToken */, anyToken, [isOptionDisabled("insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces"), isNonJsxSameLineTokenContext], 16 /* DeleteSpace */), - rule("NoSpaceBeforeCloseBrace", anyToken, 20 /* CloseBraceToken */, [isOptionDisabled("insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces"), isNonJsxSameLineTokenContext], 16 /* DeleteSpace */), - // Insert a space after opening and before closing empty brace brackets - rule("SpaceBetweenEmptyBraceBrackets", 19 /* OpenBraceToken */, 20 /* CloseBraceToken */, [isOptionEnabled("insertSpaceAfterOpeningAndBeforeClosingEmptyBraces")], 4 /* InsertSpace */), - rule("NoSpaceBetweenEmptyBraceBrackets", 19 /* OpenBraceToken */, 20 /* CloseBraceToken */, [isOptionDisabled("insertSpaceAfterOpeningAndBeforeClosingEmptyBraces"), isNonJsxSameLineTokenContext], 16 /* DeleteSpace */), - // Insert space after opening and before closing template string braces - rule("SpaceAfterTemplateHeadAndMiddle", [16 /* TemplateHead */, 17 /* TemplateMiddle */], anyToken, [isOptionEnabled("insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces"), isNonJsxTextContext], 4 /* InsertSpace */, 1 /* CanDeleteNewLines */), - rule("SpaceBeforeTemplateMiddleAndTail", anyToken, [17 /* TemplateMiddle */, 18 /* TemplateTail */], [isOptionEnabled("insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces"), isNonJsxSameLineTokenContext], 4 /* InsertSpace */), - rule("NoSpaceAfterTemplateHeadAndMiddle", [16 /* TemplateHead */, 17 /* TemplateMiddle */], anyToken, [isOptionDisabledOrUndefined("insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces"), isNonJsxTextContext], 16 /* DeleteSpace */, 1 /* CanDeleteNewLines */), - rule("NoSpaceBeforeTemplateMiddleAndTail", anyToken, [17 /* TemplateMiddle */, 18 /* TemplateTail */], [isOptionDisabledOrUndefined("insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces"), isNonJsxSameLineTokenContext], 16 /* DeleteSpace */), - // No space after { and before } in JSX expression - rule("SpaceAfterOpenBraceInJsxExpression", 19 /* OpenBraceToken */, anyToken, [isOptionEnabled("insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces"), isNonJsxSameLineTokenContext, isJsxExpressionContext], 4 /* InsertSpace */), - rule("SpaceBeforeCloseBraceInJsxExpression", anyToken, 20 /* CloseBraceToken */, [isOptionEnabled("insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces"), isNonJsxSameLineTokenContext, isJsxExpressionContext], 4 /* InsertSpace */), - rule("NoSpaceAfterOpenBraceInJsxExpression", 19 /* OpenBraceToken */, anyToken, [isOptionDisabledOrUndefined("insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces"), isNonJsxSameLineTokenContext, isJsxExpressionContext], 16 /* DeleteSpace */), - rule("NoSpaceBeforeCloseBraceInJsxExpression", anyToken, 20 /* CloseBraceToken */, [isOptionDisabledOrUndefined("insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces"), isNonJsxSameLineTokenContext, isJsxExpressionContext], 16 /* DeleteSpace */), - // Insert space after semicolon in for statement - rule("SpaceAfterSemicolonInFor", 27 /* SemicolonToken */, anyToken, [isOptionEnabled("insertSpaceAfterSemicolonInForStatements"), isNonJsxSameLineTokenContext, isForContext], 4 /* InsertSpace */), - rule("NoSpaceAfterSemicolonInFor", 27 /* SemicolonToken */, anyToken, [isOptionDisabledOrUndefined("insertSpaceAfterSemicolonInForStatements"), isNonJsxSameLineTokenContext, isForContext], 16 /* DeleteSpace */), - // Insert space before and after binary operators - rule("SpaceBeforeBinaryOperator", anyToken, binaryOperators, [isOptionEnabled("insertSpaceBeforeAndAfterBinaryOperators"), isNonJsxSameLineTokenContext, isBinaryOpContext], 4 /* InsertSpace */), - rule("SpaceAfterBinaryOperator", binaryOperators, anyToken, [isOptionEnabled("insertSpaceBeforeAndAfterBinaryOperators"), isNonJsxSameLineTokenContext, isBinaryOpContext], 4 /* InsertSpace */), - rule("NoSpaceBeforeBinaryOperator", anyToken, binaryOperators, [isOptionDisabledOrUndefined("insertSpaceBeforeAndAfterBinaryOperators"), isNonJsxSameLineTokenContext, isBinaryOpContext], 16 /* DeleteSpace */), - rule("NoSpaceAfterBinaryOperator", binaryOperators, anyToken, [isOptionDisabledOrUndefined("insertSpaceBeforeAndAfterBinaryOperators"), isNonJsxSameLineTokenContext, isBinaryOpContext], 16 /* DeleteSpace */), - rule("SpaceBeforeOpenParenInFuncDecl", anyToken, 21 /* OpenParenToken */, [isOptionEnabled("insertSpaceBeforeFunctionParenthesis"), isNonJsxSameLineTokenContext, isFunctionDeclContext], 4 /* InsertSpace */), - rule("NoSpaceBeforeOpenParenInFuncDecl", anyToken, 21 /* OpenParenToken */, [isOptionDisabledOrUndefined("insertSpaceBeforeFunctionParenthesis"), isNonJsxSameLineTokenContext, isFunctionDeclContext], 16 /* DeleteSpace */), - // Open Brace braces after control block - rule("NewLineBeforeOpenBraceInControl", controlOpenBraceLeftTokenRange, 19 /* OpenBraceToken */, [isOptionEnabled("placeOpenBraceOnNewLineForControlBlocks"), isControlDeclContext, isBeforeMultilineBlockContext], 8 /* InsertNewLine */, 1 /* CanDeleteNewLines */), - // Open Brace braces after function - // TypeScript: Function can have return types, which can be made of tons of different token kinds - rule("NewLineBeforeOpenBraceInFunction", functionOpenBraceLeftTokenRange, 19 /* OpenBraceToken */, [isOptionEnabled("placeOpenBraceOnNewLineForFunctions"), isFunctionDeclContext, isBeforeMultilineBlockContext], 8 /* InsertNewLine */, 1 /* CanDeleteNewLines */), - // Open Brace braces after TypeScript module/class/interface - rule("NewLineBeforeOpenBraceInTypeScriptDeclWithBlock", typeScriptOpenBraceLeftTokenRange, 19 /* OpenBraceToken */, [isOptionEnabled("placeOpenBraceOnNewLineForFunctions"), isTypeScriptDeclWithBlockContext, isBeforeMultilineBlockContext], 8 /* InsertNewLine */, 1 /* CanDeleteNewLines */), - rule("SpaceAfterTypeAssertion", 32 /* GreaterThanToken */, anyToken, [isOptionEnabled("insertSpaceAfterTypeAssertion"), isNonJsxSameLineTokenContext, isTypeAssertionContext], 4 /* InsertSpace */), - rule("NoSpaceAfterTypeAssertion", 32 /* GreaterThanToken */, anyToken, [isOptionDisabledOrUndefined("insertSpaceAfterTypeAssertion"), isNonJsxSameLineTokenContext, isTypeAssertionContext], 16 /* DeleteSpace */), - rule("SpaceBeforeTypeAnnotation", anyToken, [58 /* QuestionToken */, 59 /* ColonToken */], [isOptionEnabled("insertSpaceBeforeTypeAnnotation"), isNonJsxSameLineTokenContext, isTypeAnnotationContext], 4 /* InsertSpace */), - rule("NoSpaceBeforeTypeAnnotation", anyToken, [58 /* QuestionToken */, 59 /* ColonToken */], [isOptionDisabledOrUndefined("insertSpaceBeforeTypeAnnotation"), isNonJsxSameLineTokenContext, isTypeAnnotationContext], 16 /* DeleteSpace */), - rule("NoOptionalSemicolon", 27 /* SemicolonToken */, anyTokenIncludingEOF, [optionEquals("semicolons", "remove" /* Remove */), isSemicolonDeletionContext], 32 /* DeleteToken */), - rule("OptionalSemicolon", anyToken, anyTokenIncludingEOF, [optionEquals("semicolons", "insert" /* Insert */), isSemicolonInsertionContext], 64 /* InsertTrailingSemicolon */) - ]; - var lowPriorityCommonRules = [ - // Space after keyword but not before ; or : or ? - rule("NoSpaceBeforeSemicolon", anyToken, 27 /* SemicolonToken */, [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */), - rule("SpaceBeforeOpenBraceInControl", controlOpenBraceLeftTokenRange, 19 /* OpenBraceToken */, [isOptionDisabledOrUndefinedOrTokensOnSameLine("placeOpenBraceOnNewLineForControlBlocks"), isControlDeclContext, isNotFormatOnEnter, isSameLineTokenOrBeforeBlockContext], 4 /* InsertSpace */, 1 /* CanDeleteNewLines */), - rule("SpaceBeforeOpenBraceInFunction", functionOpenBraceLeftTokenRange, 19 /* OpenBraceToken */, [isOptionDisabledOrUndefinedOrTokensOnSameLine("placeOpenBraceOnNewLineForFunctions"), isFunctionDeclContext, isBeforeBlockContext, isNotFormatOnEnter, isSameLineTokenOrBeforeBlockContext], 4 /* InsertSpace */, 1 /* CanDeleteNewLines */), - rule("SpaceBeforeOpenBraceInTypeScriptDeclWithBlock", typeScriptOpenBraceLeftTokenRange, 19 /* OpenBraceToken */, [isOptionDisabledOrUndefinedOrTokensOnSameLine("placeOpenBraceOnNewLineForFunctions"), isTypeScriptDeclWithBlockContext, isNotFormatOnEnter, isSameLineTokenOrBeforeBlockContext], 4 /* InsertSpace */, 1 /* CanDeleteNewLines */), - rule("NoSpaceBeforeComma", anyToken, 28 /* CommaToken */, [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */), - // No space before and after indexer `x[]` - rule("NoSpaceBeforeOpenBracket", anyTokenExcept(134 /* AsyncKeyword */, 84 /* CaseKeyword */), 23 /* OpenBracketToken */, [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */), - rule("NoSpaceAfterCloseBracket", 24 /* CloseBracketToken */, anyToken, [isNonJsxSameLineTokenContext, isNotBeforeBlockInFunctionDeclarationContext], 16 /* DeleteSpace */), - rule("SpaceAfterSemicolon", 27 /* SemicolonToken */, anyToken, [isNonJsxSameLineTokenContext], 4 /* InsertSpace */), - // Remove extra space between for and await - rule("SpaceBetweenForAndAwaitKeyword", 99 /* ForKeyword */, 135 /* AwaitKeyword */, [isNonJsxSameLineTokenContext], 4 /* InsertSpace */), - // Add a space between statements. All keywords except (do,else,case) has open/close parens after them. - // So, we have a rule to add a space for [),Any], [do,Any], [else,Any], and [case,Any] - rule("SpaceBetweenStatements", [22 /* CloseParenToken */, 92 /* DoKeyword */, 93 /* ElseKeyword */, 84 /* CaseKeyword */], anyToken, [isNonJsxSameLineTokenContext, isNonJsxElementOrFragmentContext, isNotForContext], 4 /* InsertSpace */), - // This low-pri rule takes care of "try {", "catch {" and "finally {" in case the rule SpaceBeforeOpenBraceInControl didn't execute on FormatOnEnter. - rule("SpaceAfterTryCatchFinally", [113 /* TryKeyword */, 85 /* CatchKeyword */, 98 /* FinallyKeyword */], 19 /* OpenBraceToken */, [isNonJsxSameLineTokenContext], 4 /* InsertSpace */) - ]; - return __spreadArray(__spreadArray(__spreadArray([], __read(highPriorityCommonRules), false), __read(userConfigurableRules), false), __read(lowPriorityCommonRules), false); -} -function rule(debugName, left, right, context, action, flags /* None */) { - if (flags === void 0) { flags = 0; } - return { leftTokenRange: toTokenRange(left), rightTokenRange: toTokenRange(right), rule: { debugName: debugName, context: context, action: action, flags: flags } }; -} -function tokenRangeFrom(tokens) { - return { tokens: tokens, isSpecific: true }; -} -function toTokenRange(arg) { - return typeof arg === "number" ? tokenRangeFrom([arg]) : isArray(arg) ? tokenRangeFrom(arg) : arg; -} -function tokenRangeFromRange(from, to, except) { - if (except === void 0) { except = []; } - var tokens = []; - for (var token = from; token <= to; token++) { - if (!contains(except, token)) { - tokens.push(token); - } - } - return tokenRangeFrom(tokens); -} -function optionEquals(optionName, optionValue) { - return function (context) { return context.options && context.options[optionName] === optionValue; }; -} -function isOptionEnabled(optionName) { - return function (context) { return context.options && hasProperty(context.options, optionName) && !!context.options[optionName]; }; -} -function isOptionDisabled(optionName) { - return function (context) { return context.options && hasProperty(context.options, optionName) && !context.options[optionName]; }; -} -function isOptionDisabledOrUndefined(optionName) { - return function (context) { return !context.options || !hasProperty(context.options, optionName) || !context.options[optionName]; }; -} -function isOptionDisabledOrUndefinedOrTokensOnSameLine(optionName) { - return function (context) { return !context.options || !hasProperty(context.options, optionName) || !context.options[optionName] || context.TokensAreOnSameLine(); }; -} -function isOptionEnabledOrUndefined(optionName) { - return function (context) { return !context.options || !hasProperty(context.options, optionName) || !!context.options[optionName]; }; -} -function isForContext(context) { - return context.contextNode.kind === 248 /* ForStatement */; -} -function isNotForContext(context) { - return !isForContext(context); -} -function isBinaryOpContext(context) { - switch (context.contextNode.kind) { - case 226 /* BinaryExpression */: - return context.contextNode.operatorToken.kind !== 28 /* CommaToken */; - case 227 /* ConditionalExpression */: - case 194 /* ConditionalType */: - case 234 /* AsExpression */: - case 281 /* ExportSpecifier */: - case 276 /* ImportSpecifier */: - case 182 /* TypePredicate */: - case 192 /* UnionType */: - case 193 /* IntersectionType */: - case 238 /* SatisfiesExpression */: - return true; - case 208 /* BindingElement */: - case 265 /* TypeAliasDeclaration */: - case 271 /* ImportEqualsDeclaration */: - case 277 /* ExportAssignment */: - case 260 /* VariableDeclaration */: - case 169 /* Parameter */: - case 306 /* EnumMember */: - case 172 /* PropertyDeclaration */: - case 171 /* PropertySignature */: - return context.currentTokenSpan.kind === 64 /* EqualsToken */ || context.nextTokenSpan.kind === 64 /* EqualsToken */; - case 249 /* ForInStatement */: - case 168 /* TypeParameter */: - return context.currentTokenSpan.kind === 103 /* InKeyword */ || context.nextTokenSpan.kind === 103 /* InKeyword */ || context.currentTokenSpan.kind === 64 /* EqualsToken */ || context.nextTokenSpan.kind === 64 /* EqualsToken */; - case 250 /* ForOfStatement */: - return context.currentTokenSpan.kind === 165 /* OfKeyword */ || context.nextTokenSpan.kind === 165 /* OfKeyword */; - } - return false; -} -function isNotBinaryOpContext(context) { - return !isBinaryOpContext(context); -} -function isNotTypeAnnotationContext(context) { - return !isTypeAnnotationContext(context); -} -function isTypeAnnotationContext(context) { - var contextKind = context.contextNode.kind; - return contextKind === 172 /* PropertyDeclaration */ || contextKind === 171 /* PropertySignature */ || contextKind === 169 /* Parameter */ || contextKind === 260 /* VariableDeclaration */ || isFunctionLikeKind(contextKind); -} -function isConditionalOperatorContext(context) { - return context.contextNode.kind === 227 /* ConditionalExpression */ || context.contextNode.kind === 194 /* ConditionalType */; -} -function isSameLineTokenOrBeforeBlockContext(context) { - return context.TokensAreOnSameLine() || isBeforeBlockContext(context); -} -function isBraceWrappedContext(context) { - return context.contextNode.kind === 206 /* ObjectBindingPattern */ || context.contextNode.kind === 200 /* MappedType */ || isSingleLineBlockContext(context); -} -function isBeforeMultilineBlockContext(context) { - return isBeforeBlockContext(context) && !(context.NextNodeAllOnSameLine() || context.NextNodeBlockIsOnOneLine()); -} -function isMultilineBlockContext(context) { - return isBlockContext(context) && !(context.ContextNodeAllOnSameLine() || context.ContextNodeBlockIsOnOneLine()); -} -function isSingleLineBlockContext(context) { - return isBlockContext(context) && (context.ContextNodeAllOnSameLine() || context.ContextNodeBlockIsOnOneLine()); -} -function isBlockContext(context) { - return nodeIsBlockContext(context.contextNode); -} -function isBeforeBlockContext(context) { - return nodeIsBlockContext(context.nextTokenParent); -} -function nodeIsBlockContext(node) { - if (nodeIsTypeScriptDeclWithBlockContext(node)) { - return true; - } - switch (node.kind) { - case 241 /* Block */: - case 269 /* CaseBlock */: - case 210 /* ObjectLiteralExpression */: - case 268 /* ModuleBlock */: - return true; - } - return false; -} -function isFunctionDeclContext(context) { - switch (context.contextNode.kind) { - case 262 /* FunctionDeclaration */: - case 174 /* MethodDeclaration */: - case 173 /* MethodSignature */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - case 179 /* CallSignature */: - case 218 /* FunctionExpression */: - case 176 /* Constructor */: - case 219 /* ArrowFunction */: - case 264 /* InterfaceDeclaration */: - return true; - } - return false; -} -function isNotFunctionDeclContext(context) { - return !isFunctionDeclContext(context); -} -function isFunctionDeclarationOrFunctionExpressionContext(context) { - return context.contextNode.kind === 262 /* FunctionDeclaration */ || context.contextNode.kind === 218 /* FunctionExpression */; -} -function isTypeScriptDeclWithBlockContext(context) { - return nodeIsTypeScriptDeclWithBlockContext(context.contextNode); -} -function nodeIsTypeScriptDeclWithBlockContext(node) { - switch (node.kind) { - case 263 /* ClassDeclaration */: - case 231 /* ClassExpression */: - case 264 /* InterfaceDeclaration */: - case 266 /* EnumDeclaration */: - case 187 /* TypeLiteral */: - case 267 /* ModuleDeclaration */: - case 278 /* ExportDeclaration */: - case 279 /* NamedExports */: - case 272 /* ImportDeclaration */: - case 275 /* NamedImports */: - return true; - } - return false; -} -function isAfterCodeBlockContext(context) { - switch (context.currentTokenParent.kind) { - case 263 /* ClassDeclaration */: - case 267 /* ModuleDeclaration */: - case 266 /* EnumDeclaration */: - case 299 /* CatchClause */: - case 268 /* ModuleBlock */: - case 255 /* SwitchStatement */: - return true; - case 241 /* Block */: { - var blockParent = context.currentTokenParent.parent; - if (!blockParent || blockParent.kind !== 219 /* ArrowFunction */ && blockParent.kind !== 218 /* FunctionExpression */) { - return true; - } - } - } - return false; -} -function isControlDeclContext(context) { - switch (context.contextNode.kind) { - case 245 /* IfStatement */: - case 255 /* SwitchStatement */: - case 248 /* ForStatement */: - case 249 /* ForInStatement */: - case 250 /* ForOfStatement */: - case 247 /* WhileStatement */: - case 258 /* TryStatement */: - case 246 /* DoStatement */: - case 254 /* WithStatement */: - case 299 /* CatchClause */: - return true; - default: - return false; - } -} -function isObjectContext(context) { - return context.contextNode.kind === 210 /* ObjectLiteralExpression */; -} -function isFunctionCallContext(context) { - return context.contextNode.kind === 213 /* CallExpression */; -} -function isNewContext(context) { - return context.contextNode.kind === 214 /* NewExpression */; -} -function isFunctionCallOrNewContext(context) { - return isFunctionCallContext(context) || isNewContext(context); -} -function isPreviousTokenNotComma(context) { - return context.currentTokenSpan.kind !== 28 /* CommaToken */; -} -function isNextTokenNotCloseBracket(context) { - return context.nextTokenSpan.kind !== 24 /* CloseBracketToken */; -} -function isNextTokenNotCloseParen(context) { - return context.nextTokenSpan.kind !== 22 /* CloseParenToken */; -} -function isArrowFunctionContext(context) { - return context.contextNode.kind === 219 /* ArrowFunction */; -} -function isImportTypeContext(context) { - return context.contextNode.kind === 205 /* ImportType */; -} -function isNonJsxSameLineTokenContext(context) { - return context.TokensAreOnSameLine() && context.contextNode.kind !== 12 /* JsxText */; -} -function isNonJsxTextContext(context) { - return context.contextNode.kind !== 12 /* JsxText */; -} -function isNonJsxElementOrFragmentContext(context) { - return context.contextNode.kind !== 284 /* JsxElement */ && context.contextNode.kind !== 288 /* JsxFragment */; -} -function isJsxExpressionContext(context) { - return context.contextNode.kind === 294 /* JsxExpression */ || context.contextNode.kind === 293 /* JsxSpreadAttribute */; -} -function isNextTokenParentJsxAttribute(context) { - return context.nextTokenParent.kind === 291 /* JsxAttribute */; -} -function isJsxAttributeContext(context) { - return context.contextNode.kind === 291 /* JsxAttribute */; -} -function isJsxSelfClosingElementContext(context) { - return context.contextNode.kind === 285 /* JsxSelfClosingElement */; -} -function isNotBeforeBlockInFunctionDeclarationContext(context) { - return !isFunctionDeclContext(context) && !isBeforeBlockContext(context); -} -function isEndOfDecoratorContextOnSameLine(context) { - return context.TokensAreOnSameLine() && hasDecorators(context.contextNode) && nodeIsInDecoratorContext(context.currentTokenParent) && !nodeIsInDecoratorContext(context.nextTokenParent); -} -function nodeIsInDecoratorContext(node) { - while (node && isExpression(node)) { - node = node.parent; - } - return node && node.kind === 170 /* Decorator */; -} -function isStartOfVariableDeclarationList(context) { - return context.currentTokenParent.kind === 261 /* VariableDeclarationList */ && context.currentTokenParent.getStart(context.sourceFile) === context.currentTokenSpan.pos; -} -function isNotFormatOnEnter(context) { - return context.formattingRequestKind !== 2 /* FormatOnEnter */; -} -function isModuleDeclContext(context) { - return context.contextNode.kind === 267 /* ModuleDeclaration */; -} -function isObjectTypeContext(context) { - return context.contextNode.kind === 187 /* TypeLiteral */; -} -function isConstructorSignatureContext(context) { - return context.contextNode.kind === 180 /* ConstructSignature */; -} -function isTypeArgumentOrParameterOrAssertion(token, parent2) { - if (token.kind !== 30 /* LessThanToken */ && token.kind !== 32 /* GreaterThanToken */) { - return false; - } - switch (parent2.kind) { - case 183 /* TypeReference */: - case 216 /* TypeAssertionExpression */: - case 265 /* TypeAliasDeclaration */: - case 263 /* ClassDeclaration */: - case 231 /* ClassExpression */: - case 264 /* InterfaceDeclaration */: - case 262 /* FunctionDeclaration */: - case 218 /* FunctionExpression */: - case 219 /* ArrowFunction */: - case 174 /* MethodDeclaration */: - case 173 /* MethodSignature */: - case 179 /* CallSignature */: - case 180 /* ConstructSignature */: - case 213 /* CallExpression */: - case 214 /* NewExpression */: - case 233 /* ExpressionWithTypeArguments */: - return true; - default: - return false; - } -} -function isTypeArgumentOrParameterOrAssertionContext(context) { - return isTypeArgumentOrParameterOrAssertion(context.currentTokenSpan, context.currentTokenParent) || isTypeArgumentOrParameterOrAssertion(context.nextTokenSpan, context.nextTokenParent); -} -function isTypeAssertionContext(context) { - return context.contextNode.kind === 216 /* TypeAssertionExpression */; -} -function isNonTypeAssertionContext(context) { - return !isTypeAssertionContext(context); -} -function isVoidOpContext(context) { - return context.currentTokenSpan.kind === 116 /* VoidKeyword */ && context.currentTokenParent.kind === 222 /* VoidExpression */; -} -function isYieldOrYieldStarWithOperand(context) { - return context.contextNode.kind === 229 /* YieldExpression */ && context.contextNode.expression !== void 0; -} -function isNonNullAssertionContext(context) { - return context.contextNode.kind === 235 /* NonNullExpression */; -} -function isNotStatementConditionContext(context) { - return !isStatementConditionContext(context); -} -function isStatementConditionContext(context) { - switch (context.contextNode.kind) { - case 245 /* IfStatement */: - case 248 /* ForStatement */: - case 249 /* ForInStatement */: - case 250 /* ForOfStatement */: - case 246 /* DoStatement */: - case 247 /* WhileStatement */: - return true; - default: - return false; - } -} -function isSemicolonDeletionContext(context) { - var nextTokenKind = context.nextTokenSpan.kind; - var nextTokenStart = context.nextTokenSpan.pos; - if (isTrivia(nextTokenKind)) { - var nextRealToken = context.nextTokenParent === context.currentTokenParent ? findNextToken(context.currentTokenParent, findAncestor(context.currentTokenParent, function (a) { return !a.parent; }), context.sourceFile) : context.nextTokenParent.getFirstToken(context.sourceFile); - if (!nextRealToken) { - return true; - } - nextTokenKind = nextRealToken.kind; - nextTokenStart = nextRealToken.getStart(context.sourceFile); - } - var startLine = context.sourceFile.getLineAndCharacterOfPosition(context.currentTokenSpan.pos).line; - var endLine = context.sourceFile.getLineAndCharacterOfPosition(nextTokenStart).line; - if (startLine === endLine) { - return nextTokenKind === 20 /* CloseBraceToken */ || nextTokenKind === 1 /* EndOfFileToken */; - } - if (nextTokenKind === 240 /* SemicolonClassElement */ || nextTokenKind === 27 /* SemicolonToken */) { - return false; - } - if (context.contextNode.kind === 264 /* InterfaceDeclaration */ || context.contextNode.kind === 265 /* TypeAliasDeclaration */) { - return !isPropertySignature(context.currentTokenParent) || !!context.currentTokenParent.type || nextTokenKind !== 21 /* OpenParenToken */; - } - if (isPropertyDeclaration(context.currentTokenParent)) { - return !context.currentTokenParent.initializer; - } - return context.currentTokenParent.kind !== 248 /* ForStatement */ && context.currentTokenParent.kind !== 242 /* EmptyStatement */ && context.currentTokenParent.kind !== 240 /* SemicolonClassElement */ && nextTokenKind !== 23 /* OpenBracketToken */ && nextTokenKind !== 21 /* OpenParenToken */ && nextTokenKind !== 40 /* PlusToken */ && nextTokenKind !== 41 /* MinusToken */ && nextTokenKind !== 44 /* SlashToken */ && nextTokenKind !== 14 /* RegularExpressionLiteral */ && nextTokenKind !== 28 /* CommaToken */ && nextTokenKind !== 228 /* TemplateExpression */ && nextTokenKind !== 16 /* TemplateHead */ && nextTokenKind !== 15 /* NoSubstitutionTemplateLiteral */ && nextTokenKind !== 25 /* DotToken */; -} -function isSemicolonInsertionContext(context) { - return positionIsASICandidate(context.currentTokenSpan.end, context.currentTokenParent, context.sourceFile); -} -function isNotPropertyAccessOnIntegerLiteral(context) { - return !isPropertyAccessExpression(context.contextNode) || !isNumericLiteral(context.contextNode.expression) || context.contextNode.expression.getText().indexOf(".") !== -1; -} -// src/services/formatting/rulesMap.ts -function getFormatContext(options, host) { - return { options: options, getRules: getRulesMap(), host: host }; -} -var rulesMapCache; -function getRulesMap() { - if (rulesMapCache === void 0) { - rulesMapCache = createRulesMap(getAllRules()); - } - return rulesMapCache; -} -function getRuleActionExclusion(ruleAction) { - var mask2 = 0 /* None */; - if (ruleAction & 1 /* StopProcessingSpaceActions */) { - mask2 |= 28 /* ModifySpaceAction */; - } - if (ruleAction & 2 /* StopProcessingTokenActions */) { - mask2 |= 96 /* ModifyTokenAction */; - } - if (ruleAction & 28 /* ModifySpaceAction */) { - mask2 |= 28 /* ModifySpaceAction */; - } - if (ruleAction & 96 /* ModifyTokenAction */) { - mask2 |= 96 /* ModifyTokenAction */; - } - return mask2; -} -function createRulesMap(rules) { - var map2 = buildMap(rules); - return function (context) { - var e_885, _t; - var bucket = map2[getRuleBucketIndex(context.currentTokenSpan.kind, context.nextTokenSpan.kind)]; - if (bucket) { - var rules2 = []; - var ruleActionMask = 0; - try { - for (var bucket_1 = __values(bucket), bucket_1_1 = bucket_1.next(); !bucket_1_1.done; bucket_1_1 = bucket_1.next()) { - var rule2 = bucket_1_1.value; - var acceptRuleActions = ~getRuleActionExclusion(ruleActionMask); - if (rule2.action & acceptRuleActions && every(rule2.context, function (c) { return c(context); })) { - rules2.push(rule2); - ruleActionMask |= rule2.action; - } - } - } - catch (e_885_1) { e_885 = { error: e_885_1 }; } - finally { - try { - if (bucket_1_1 && !bucket_1_1.done && (_t = bucket_1.return)) _t.call(bucket_1); - } - finally { if (e_885) throw e_885.error; } - } - if (rules2.length) { - return rules2; - } - } - }; -} -function buildMap(rules) { - var e_886, _t, e_887, _u, e_888, _v; - var map2 = new Array(mapRowLength * mapRowLength); - var rulesBucketConstructionStateList = new Array(map2.length); - try { - for (var rules_1 = __values(rules), rules_1_1 = rules_1.next(); !rules_1_1.done; rules_1_1 = rules_1.next()) { - var rule2 = rules_1_1.value; - var specificRule = rule2.leftTokenRange.isSpecific && rule2.rightTokenRange.isSpecific; - try { - for (var _w = (e_887 = void 0, __values(rule2.leftTokenRange.tokens)), _x = _w.next(); !_x.done; _x = _w.next()) { - var left = _x.value; - try { - for (var _y = (e_888 = void 0, __values(rule2.rightTokenRange.tokens)), _z = _y.next(); !_z.done; _z = _y.next()) { - var right = _z.value; - var index = getRuleBucketIndex(left, right); - var rulesBucket = map2[index]; - if (rulesBucket === void 0) { - rulesBucket = map2[index] = []; - } - addRule(rulesBucket, rule2.rule, specificRule, rulesBucketConstructionStateList, index); - } - } - catch (e_888_1) { e_888 = { error: e_888_1 }; } - finally { - try { - if (_z && !_z.done && (_v = _y.return)) _v.call(_y); - } - finally { if (e_888) throw e_888.error; } - } - } - } - catch (e_887_1) { e_887 = { error: e_887_1 }; } - finally { - try { - if (_x && !_x.done && (_u = _w.return)) _u.call(_w); - } - finally { if (e_887) throw e_887.error; } - } - } - } - catch (e_886_1) { e_886 = { error: e_886_1 }; } - finally { - try { - if (rules_1_1 && !rules_1_1.done && (_t = rules_1.return)) _t.call(rules_1); - } - finally { if (e_886) throw e_886.error; } - } - return map2; -} -function getRuleBucketIndex(row, column) { - Debug.assert(row <= 165 /* LastKeyword */ && column <= 165 /* LastKeyword */, "Must compute formatting context from tokens"); - return row * mapRowLength + column; -} -var maskBitSize = 5; -var mask = 31; -var mapRowLength = 165 /* LastToken */ + 1; -var RulesPosition = (function (RulesPosition2) { - RulesPosition2[RulesPosition2["StopRulesSpecific"] = 0] = "StopRulesSpecific"; - RulesPosition2[RulesPosition2["StopRulesAny"] = maskBitSize * 1] = "StopRulesAny"; - RulesPosition2[RulesPosition2["ContextRulesSpecific"] = maskBitSize * 2] = "ContextRulesSpecific"; - RulesPosition2[RulesPosition2["ContextRulesAny"] = maskBitSize * 3] = "ContextRulesAny"; - RulesPosition2[RulesPosition2["NoContextRulesSpecific"] = maskBitSize * 4] = "NoContextRulesSpecific"; - RulesPosition2[RulesPosition2["NoContextRulesAny"] = maskBitSize * 5] = "NoContextRulesAny"; - return RulesPosition2; -})(RulesPosition || {}); -function addRule(rules, rule2, specificTokens, constructionState, rulesBucketIndex) { - var position = rule2.action & 3 /* StopAction */ ? specificTokens ? 0 /* StopRulesSpecific */ : RulesPosition.StopRulesAny : rule2.context !== anyContext ? specificTokens ? RulesPosition.ContextRulesSpecific : RulesPosition.ContextRulesAny : specificTokens ? RulesPosition.NoContextRulesSpecific : RulesPosition.NoContextRulesAny; - var state = constructionState[rulesBucketIndex] || 0; - rules.splice(getInsertionIndex(state, position), 0, rule2); - constructionState[rulesBucketIndex] = increaseInsertionIndex(state, position); -} -function getInsertionIndex(indexBitmap, maskPosition) { - var index = 0; - for (var pos = 0; pos <= maskPosition; pos += maskBitSize) { - index += indexBitmap & mask; - indexBitmap >>= maskBitSize; - } - return index; -} -function increaseInsertionIndex(indexBitmap, maskPosition) { - var value = (indexBitmap >> maskPosition & mask) + 1; - Debug.assert((value & mask) === value, "Adding more rules into the sub-bucket than allowed. Maximum allowed is 32 rules."); - return indexBitmap & ~(mask << maskPosition) | value << maskPosition; -} -// src/services/formatting/formatting.ts -function createTextRangeWithKind(pos, end, kind) { - var textRangeWithKind = { pos: pos, end: end, kind: kind }; - if (Debug.isDebugging) { - Object.defineProperty(textRangeWithKind, "__debugKind", { - get: function () { return Debug.formatSyntaxKind(kind); } - }); - } - return textRangeWithKind; -} -function formatOnEnter(position, sourceFile, formatContext) { - var line = sourceFile.getLineAndCharacterOfPosition(position).line; - if (line === 0) { - return []; - } - var endOfFormatSpan = getEndLinePosition(line, sourceFile); - while (isWhiteSpaceSingleLine(sourceFile.text.charCodeAt(endOfFormatSpan))) { - endOfFormatSpan--; - } - if (isLineBreak(sourceFile.text.charCodeAt(endOfFormatSpan))) { - endOfFormatSpan--; - } - var span = { - // get start position for the previous line - pos: getStartPositionOfLine(line - 1, sourceFile), - // end value is exclusive so add 1 to the result - end: endOfFormatSpan + 1 - }; - return formatSpan(span, sourceFile, formatContext, 2 /* FormatOnEnter */); -} -function formatOnSemicolon(position, sourceFile, formatContext) { - var semicolon = findImmediatelyPrecedingTokenOfKind(position, 27 /* SemicolonToken */, sourceFile); - return formatNodeLines(findOutermostNodeWithinListLevel(semicolon), sourceFile, formatContext, 3 /* FormatOnSemicolon */); -} -function formatOnOpeningCurly(position, sourceFile, formatContext) { - var openingCurly = findImmediatelyPrecedingTokenOfKind(position, 19 /* OpenBraceToken */, sourceFile); - if (!openingCurly) { - return []; - } - var curlyBraceRange = openingCurly.parent; - var outermostNode = findOutermostNodeWithinListLevel(curlyBraceRange); - var textRange = { - pos: getLineStartPositionForPosition(outermostNode.getStart(sourceFile), sourceFile), - // TODO: GH#18217 - end: position - }; - return formatSpan(textRange, sourceFile, formatContext, 4 /* FormatOnOpeningCurlyBrace */); -} -function formatOnClosingCurly(position, sourceFile, formatContext) { - var precedingToken = findImmediatelyPrecedingTokenOfKind(position, 20 /* CloseBraceToken */, sourceFile); - return formatNodeLines(findOutermostNodeWithinListLevel(precedingToken), sourceFile, formatContext, 5 /* FormatOnClosingCurlyBrace */); -} -function formatDocument(sourceFile, formatContext) { - var span = { - pos: 0, - end: sourceFile.text.length - }; - return formatSpan(span, sourceFile, formatContext, 0 /* FormatDocument */); -} -function formatSelection(start2, end, sourceFile, formatContext) { - var span = { - pos: getLineStartPositionForPosition(start2, sourceFile), - end: end - }; - return formatSpan(span, sourceFile, formatContext, 1 /* FormatSelection */); -} -function findImmediatelyPrecedingTokenOfKind(end, expectedTokenKind, sourceFile) { - var precedingToken = findPrecedingToken(end, sourceFile); - return precedingToken && precedingToken.kind === expectedTokenKind && end === precedingToken.getEnd() ? precedingToken : void 0; -} -function findOutermostNodeWithinListLevel(node) { - var current = node; - while (current && current.parent && current.parent.end === node.end && !isListElement(current.parent, current)) { - current = current.parent; - } - return current; -} -function isListElement(parent2, node) { - switch (parent2.kind) { - case 263 /* ClassDeclaration */: - case 264 /* InterfaceDeclaration */: - return rangeContainsRange(parent2.members, node); - case 267 /* ModuleDeclaration */: - var body = parent2.body; - return !!body && body.kind === 268 /* ModuleBlock */ && rangeContainsRange(body.statements, node); - case 312 /* SourceFile */: - case 241 /* Block */: - case 268 /* ModuleBlock */: - return rangeContainsRange(parent2.statements, node); - case 299 /* CatchClause */: - return rangeContainsRange(parent2.block.statements, node); - } - return false; -} -function findEnclosingNode(range, sourceFile) { - return find2(sourceFile); - function find2(n) { - var candidate = forEachChild(n, function (c) { return startEndContainsRange(c.getStart(sourceFile), c.end, range) && c; }); - if (candidate) { - var result = find2(candidate); - if (result) { - return result; - } - } - return n; - } -} -function prepareRangeContainsErrorFunction(errors, originalRange) { - if (!errors.length) { - return rangeHasNoErrors; - } - var sorted = errors.filter(function (d) { return rangeOverlapsWithStartEnd(originalRange, d.start, d.start + d.length); }).sort(function (e1, e2) { return e1.start - e2.start; }); - if (!sorted.length) { - return rangeHasNoErrors; - } - var index = 0; - return function (r) { - while (true) { - if (index >= sorted.length) { - return false; - } - var error2 = sorted[index]; - if (r.end <= error2.start) { - return false; - } - if (startEndOverlapsWithStartEnd(r.pos, r.end, error2.start, error2.start + error2.length)) { - return true; - } - index++; - } - }; - function rangeHasNoErrors() { - return false; - } -} -function getScanStartPosition(enclosingNode, originalRange, sourceFile) { - var start2 = enclosingNode.getStart(sourceFile); - if (start2 === originalRange.pos && enclosingNode.end === originalRange.end) { - return start2; - } - var precedingToken = findPrecedingToken(originalRange.pos, sourceFile); - if (!precedingToken) { - return enclosingNode.pos; - } - if (precedingToken.end >= originalRange.pos) { - return enclosingNode.pos; - } - return precedingToken.end; -} -function getOwnOrInheritedDelta(n, options, sourceFile) { - var previousLine = -1 /* Unknown */; - var child; - while (n) { - var line = sourceFile.getLineAndCharacterOfPosition(n.getStart(sourceFile)).line; - if (previousLine !== -1 /* Unknown */ && line !== previousLine) { - break; - } - if (SmartIndenter.shouldIndentChildNode(options, n, child, sourceFile)) { - return options.indentSize; - } - previousLine = line; - child = n; - n = n.parent; - } - return 0; -} -function formatNodeGivenIndentation(node, sourceFileLike, languageVariant, initialIndentation, delta, formatContext) { - var range = { pos: node.pos, end: node.end }; - return getFormattingScanner(sourceFileLike.text, languageVariant, range.pos, range.end, function (scanner2) { return formatSpanWorker(range, node, initialIndentation, delta, scanner2, formatContext, 1 /* FormatSelection */, function (_) { return false; }, - // assume that node does not have any errors - sourceFileLike); }); -} -function formatNodeLines(node, sourceFile, formatContext, requestKind) { - if (!node) { - return []; - } - var span = { - pos: getLineStartPositionForPosition(node.getStart(sourceFile), sourceFile), - end: node.end - }; - return formatSpan(span, sourceFile, formatContext, requestKind); -} -function formatSpan(originalRange, sourceFile, formatContext, requestKind) { - var enclosingNode = findEnclosingNode(originalRange, sourceFile); - return getFormattingScanner(sourceFile.text, sourceFile.languageVariant, getScanStartPosition(enclosingNode, originalRange, sourceFile), originalRange.end, function (scanner2) { return formatSpanWorker(originalRange, enclosingNode, SmartIndenter.getIndentationForNode(enclosingNode, originalRange, sourceFile, formatContext.options), getOwnOrInheritedDelta(enclosingNode, formatContext.options, sourceFile), scanner2, formatContext, requestKind, prepareRangeContainsErrorFunction(sourceFile.parseDiagnostics, originalRange), sourceFile); }); -} -function formatSpanWorker(originalRange, enclosingNode, initialIndentation, delta, formattingScanner, _t, requestKind, rangeContainsError, sourceFile) { - var options = _t.options, getRules = _t.getRules, host = _t.host; - var _a; - var formattingContext = new FormattingContext(sourceFile, requestKind, options); - var previousRangeTriviaEnd; - var previousRange; - var previousParent; - var previousRangeStartLine; - var lastIndentedLine; - var indentationOnLastIndentedLine = -1 /* Unknown */; - var edits = []; - formattingScanner.advance(); - if (formattingScanner.isOnToken()) { - var startLine = sourceFile.getLineAndCharacterOfPosition(enclosingNode.getStart(sourceFile)).line; - var undecoratedStartLine = startLine; - if (hasDecorators(enclosingNode)) { - undecoratedStartLine = sourceFile.getLineAndCharacterOfPosition(getNonDecoratorTokenPosOfNode(enclosingNode, sourceFile)).line; - } - processNode(enclosingNode, enclosingNode, startLine, undecoratedStartLine, initialIndentation, delta); - } - var remainingTrivia = formattingScanner.getCurrentLeadingTrivia(); - if (remainingTrivia) { - var indentation_1 = SmartIndenter.nodeWillIndentChild(options, enclosingNode, - /*child*/ - void 0, sourceFile, - /*indentByDefault*/ - false) ? initialIndentation + options.indentSize : initialIndentation; - indentTriviaItems(remainingTrivia, indentation_1, - /*indentNextTokenOrTrivia*/ - true, function (item) { - processRange(item, sourceFile.getLineAndCharacterOfPosition(item.pos), enclosingNode, enclosingNode, - /*dynamicIndentation*/ - void 0); - insertIndentation(item.pos, indentation_1, - /*lineAdded*/ - false); - }); - if (options.trimTrailingWhitespace !== false) { - trimTrailingWhitespacesForRemainingRange(remainingTrivia); - } - } - if (previousRange && formattingScanner.getTokenFullStart() >= originalRange.end) { - var tokenInfo = formattingScanner.isOnEOF() ? formattingScanner.readEOFTokenRange() : formattingScanner.isOnToken() ? formattingScanner.readTokenInfo(enclosingNode).token : void 0; - if (tokenInfo && tokenInfo.pos === previousRangeTriviaEnd) { - var parent2 = ((_a = findPrecedingToken(tokenInfo.end, sourceFile, enclosingNode)) == null ? void 0 : _a.parent) || previousParent; - processPair(tokenInfo, sourceFile.getLineAndCharacterOfPosition(tokenInfo.pos).line, parent2, previousRange, previousRangeStartLine, previousParent, parent2, - /*dynamicIndentation*/ - void 0); - } - } - return edits; - function tryComputeIndentationForListItem(startPos, endPos, parentStartLine, range, inheritedIndentation) { - if (rangeOverlapsWithStartEnd(range, startPos, endPos) || rangeContainsStartEnd(range, startPos, endPos)) { - if (inheritedIndentation !== -1 /* Unknown */) { - return inheritedIndentation; - } - } - else { - var startLine = sourceFile.getLineAndCharacterOfPosition(startPos).line; - var startLinePosition = getLineStartPositionForPosition(startPos, sourceFile); - var column = SmartIndenter.findFirstNonWhitespaceColumn(startLinePosition, startPos, sourceFile, options); - if (startLine !== parentStartLine || startPos === column) { - var baseIndentSize = SmartIndenter.getBaseIndentation(options); - return baseIndentSize > column ? baseIndentSize : column; - } - } - return -1 /* Unknown */; - } - function computeIndentation(node, startLine, inheritedIndentation, parent2, parentDynamicIndentation, effectiveParentStartLine) { - var delta2 = SmartIndenter.shouldIndentChildNode(options, node) ? options.indentSize : 0; - if (effectiveParentStartLine === startLine) { - return { - indentation: startLine === lastIndentedLine ? indentationOnLastIndentedLine : parentDynamicIndentation.getIndentation(), - delta: Math.min(options.indentSize, parentDynamicIndentation.getDelta(node) + delta2) - }; - } - else if (inheritedIndentation === -1 /* Unknown */) { - if (node.kind === 21 /* OpenParenToken */ && startLine === lastIndentedLine) { - return { indentation: indentationOnLastIndentedLine, delta: parentDynamicIndentation.getDelta(node) }; - } - else if (SmartIndenter.childStartsOnTheSameLineWithElseInIfStatement(parent2, node, startLine, sourceFile) || SmartIndenter.childIsUnindentedBranchOfConditionalExpression(parent2, node, startLine, sourceFile) || SmartIndenter.argumentStartsOnSameLineAsPreviousArgument(parent2, node, startLine, sourceFile)) { - return { indentation: parentDynamicIndentation.getIndentation(), delta: delta2 }; - } - else { - return { indentation: parentDynamicIndentation.getIndentation() + parentDynamicIndentation.getDelta(node), delta: delta2 }; - } - } - else { - return { indentation: inheritedIndentation, delta: delta2 }; - } - } - function getFirstNonDecoratorTokenOfNode(node) { - if (canHaveModifiers(node)) { - var modifier = find(node.modifiers, isModifier, findIndex(node.modifiers, isDecorator)); - if (modifier) - return modifier.kind; - } - switch (node.kind) { - case 263 /* ClassDeclaration */: - return 86 /* ClassKeyword */; - case 264 /* InterfaceDeclaration */: - return 120 /* InterfaceKeyword */; - case 262 /* FunctionDeclaration */: - return 100 /* FunctionKeyword */; - case 266 /* EnumDeclaration */: - return 266 /* EnumDeclaration */; - case 177 /* GetAccessor */: - return 139 /* GetKeyword */; - case 178 /* SetAccessor */: - return 153 /* SetKeyword */; - case 174 /* MethodDeclaration */: - if (node.asteriskToken) { - return 42 /* AsteriskToken */; - } - case 172 /* PropertyDeclaration */: - case 169 /* Parameter */: - var name_139 = getNameOfDeclaration(node); - if (name_139) { - return name_139.kind; - } - } - } - function getDynamicIndentation(node, nodeStartLine, indentation, delta2) { - return { - getIndentationForComment: function (kind, tokenIndentation, container) { - switch (kind) { - case 20 /* CloseBraceToken */: - case 24 /* CloseBracketToken */: - case 22 /* CloseParenToken */: - return indentation + getDelta(container); - } - return tokenIndentation !== -1 /* Unknown */ ? tokenIndentation : indentation; - }, - // if list end token is LessThanToken '>' then its delta should be explicitly suppressed - // so that LessThanToken as a binary operator can still be indented. - // foo.then - // < - // number, - // string, - // >(); - // vs - // var a = xValue - // > yValue; - getIndentationForToken: function (line, kind, container, suppressDelta) { return !suppressDelta && shouldAddDelta(line, kind, container) ? indentation + getDelta(container) : indentation; }, - getIndentation: function () { return indentation; }, - getDelta: getDelta, - recomputeIndentation: function (lineAdded, parent2) { - if (SmartIndenter.shouldIndentChildNode(options, parent2, node, sourceFile)) { - indentation += lineAdded ? options.indentSize : -options.indentSize; - delta2 = SmartIndenter.shouldIndentChildNode(options, node) ? options.indentSize : 0; - } - } - }; - function shouldAddDelta(line, kind, container) { - switch (kind) { - case 19 /* OpenBraceToken */: - case 20 /* CloseBraceToken */: - case 22 /* CloseParenToken */: - case 93 /* ElseKeyword */: - case 117 /* WhileKeyword */: - case 60 /* AtToken */: - return false; - case 44 /* SlashToken */: - case 32 /* GreaterThanToken */: - switch (container.kind) { - case 286 /* JsxOpeningElement */: - case 287 /* JsxClosingElement */: - case 285 /* JsxSelfClosingElement */: - return false; - } - break; - case 23 /* OpenBracketToken */: - case 24 /* CloseBracketToken */: - if (container.kind !== 200 /* MappedType */) { - return false; - } - break; - } - return nodeStartLine !== line && !(hasDecorators(node) && kind === getFirstNonDecoratorTokenOfNode(node)); - } - function getDelta(child) { - return SmartIndenter.nodeWillIndentChild(options, node, child, sourceFile, - /*indentByDefault*/ - true) ? delta2 : 0; - } - } - function processNode(node, contextNode, nodeStartLine, undecoratedNodeStartLine, indentation, delta2) { - if (!rangeOverlapsWithStartEnd(originalRange, node.getStart(sourceFile), node.getEnd())) { - return; - } - var nodeDynamicIndentation = getDynamicIndentation(node, nodeStartLine, indentation, delta2); - var childContextNode = contextNode; - forEachChild(node, function (child) { - processChildNode(child, - /*inheritedIndentation*/ - -1 /* Unknown */, node, nodeDynamicIndentation, nodeStartLine, undecoratedNodeStartLine, - /*isListItem*/ - false); - }, function (nodes) { - processChildNodes(nodes, node, nodeStartLine, nodeDynamicIndentation); - }); - while (formattingScanner.isOnToken() && formattingScanner.getTokenFullStart() < originalRange.end) { - var tokenInfo = formattingScanner.readTokenInfo(node); - if (tokenInfo.token.end > Math.min(node.end, originalRange.end)) { - break; - } - consumeTokenAndAdvanceScanner(tokenInfo, node, nodeDynamicIndentation, node); - } - function processChildNode(child, inheritedIndentation, parent2, parentDynamicIndentation, parentStartLine, undecoratedParentStartLine, isListItem, isFirstListItem) { - Debug.assert(!nodeIsSynthesized(child)); - if (nodeIsMissing(child) || isGrammarError(parent2, child)) { - return inheritedIndentation; - } - var childStartPos = child.getStart(sourceFile); - var childStartLine = sourceFile.getLineAndCharacterOfPosition(childStartPos).line; - var undecoratedChildStartLine = childStartLine; - if (hasDecorators(child)) { - undecoratedChildStartLine = sourceFile.getLineAndCharacterOfPosition(getNonDecoratorTokenPosOfNode(child, sourceFile)).line; - } - var childIndentationAmount = -1 /* Unknown */; - if (isListItem && rangeContainsRange(originalRange, parent2)) { - childIndentationAmount = tryComputeIndentationForListItem(childStartPos, child.end, parentStartLine, originalRange, inheritedIndentation); - if (childIndentationAmount !== -1 /* Unknown */) { - inheritedIndentation = childIndentationAmount; - } - } - if (!rangeOverlapsWithStartEnd(originalRange, child.pos, child.end)) { - if (child.end < originalRange.pos) { - formattingScanner.skipToEndOf(child); - } - return inheritedIndentation; - } - if (child.getFullWidth() === 0) { - return inheritedIndentation; - } - while (formattingScanner.isOnToken() && formattingScanner.getTokenFullStart() < originalRange.end) { - var tokenInfo = formattingScanner.readTokenInfo(node); - if (tokenInfo.token.end > originalRange.end) { - return inheritedIndentation; - } - if (tokenInfo.token.end > childStartPos) { - if (tokenInfo.token.pos > childStartPos) { - formattingScanner.skipToStartOf(child); - } - break; - } - consumeTokenAndAdvanceScanner(tokenInfo, node, parentDynamicIndentation, node); - } - if (!formattingScanner.isOnToken() || formattingScanner.getTokenFullStart() >= originalRange.end) { - return inheritedIndentation; - } - if (isToken(child)) { - var tokenInfo = formattingScanner.readTokenInfo(child); - if (child.kind !== 12 /* JsxText */) { - Debug.assert(tokenInfo.token.end === child.end, "Token end is child end"); - consumeTokenAndAdvanceScanner(tokenInfo, node, parentDynamicIndentation, child); - return inheritedIndentation; - } - } - var effectiveParentStartLine = child.kind === 170 /* Decorator */ ? childStartLine : undecoratedParentStartLine; - var childIndentation = computeIndentation(child, childStartLine, childIndentationAmount, node, parentDynamicIndentation, effectiveParentStartLine); - processNode(child, childContextNode, childStartLine, undecoratedChildStartLine, childIndentation.indentation, childIndentation.delta); - childContextNode = node; - if (isFirstListItem && parent2.kind === 209 /* ArrayLiteralExpression */ && inheritedIndentation === -1 /* Unknown */) { - inheritedIndentation = childIndentation.indentation; - } - return inheritedIndentation; - } - function processChildNodes(nodes, parent2, parentStartLine, parentDynamicIndentation) { - Debug.assert(isNodeArray(nodes)); - Debug.assert(!nodeIsSynthesized(nodes)); - var listStartToken = getOpenTokenForList(parent2, nodes); - var listDynamicIndentation = parentDynamicIndentation; - var startLine = parentStartLine; - if (!rangeOverlapsWithStartEnd(originalRange, nodes.pos, nodes.end)) { - if (nodes.end < originalRange.pos) { - formattingScanner.skipToEndOf(nodes); - } - return; - } - if (listStartToken !== 0 /* Unknown */) { - while (formattingScanner.isOnToken() && formattingScanner.getTokenFullStart() < originalRange.end) { - var tokenInfo = formattingScanner.readTokenInfo(parent2); - if (tokenInfo.token.end > nodes.pos) { - break; - } - else if (tokenInfo.token.kind === listStartToken) { - startLine = sourceFile.getLineAndCharacterOfPosition(tokenInfo.token.pos).line; - consumeTokenAndAdvanceScanner(tokenInfo, parent2, parentDynamicIndentation, parent2); - var indentationOnListStartToken = void 0; - if (indentationOnLastIndentedLine !== -1 /* Unknown */) { - indentationOnListStartToken = indentationOnLastIndentedLine; - } - else { - var startLinePosition = getLineStartPositionForPosition(tokenInfo.token.pos, sourceFile); - indentationOnListStartToken = SmartIndenter.findFirstNonWhitespaceColumn(startLinePosition, tokenInfo.token.pos, sourceFile, options); - } - listDynamicIndentation = getDynamicIndentation(parent2, parentStartLine, indentationOnListStartToken, options.indentSize); - } - else { - consumeTokenAndAdvanceScanner(tokenInfo, parent2, parentDynamicIndentation, parent2); - } - } - } - var inheritedIndentation = -1 /* Unknown */; - for (var i = 0; i < nodes.length; i++) { - var child = nodes[i]; - inheritedIndentation = processChildNode(child, inheritedIndentation, node, listDynamicIndentation, startLine, startLine, - /*isListItem*/ - true, - /*isFirstListItem*/ - i === 0); - } - var listEndToken = getCloseTokenForOpenToken(listStartToken); - if (listEndToken !== 0 /* Unknown */ && formattingScanner.isOnToken() && formattingScanner.getTokenFullStart() < originalRange.end) { - var tokenInfo = formattingScanner.readTokenInfo(parent2); - if (tokenInfo.token.kind === 28 /* CommaToken */) { - consumeTokenAndAdvanceScanner(tokenInfo, parent2, listDynamicIndentation, parent2); - tokenInfo = formattingScanner.isOnToken() ? formattingScanner.readTokenInfo(parent2) : void 0; - } - if (tokenInfo && tokenInfo.token.kind === listEndToken && rangeContainsRange(parent2, tokenInfo.token)) { - consumeTokenAndAdvanceScanner(tokenInfo, parent2, listDynamicIndentation, parent2, - /*isListEndToken*/ - true); - } - } - } - function consumeTokenAndAdvanceScanner(currentTokenInfo, parent2, dynamicIndentation, container, isListEndToken) { - Debug.assert(rangeContainsRange(parent2, currentTokenInfo.token)); - var lastTriviaWasNewLine = formattingScanner.lastTrailingTriviaWasNewLine(); - var indentToken = false; - if (currentTokenInfo.leadingTrivia) { - processTrivia(currentTokenInfo.leadingTrivia, parent2, childContextNode, dynamicIndentation); - } - var lineAction = 0 /* None */; - var isTokenInRange = rangeContainsRange(originalRange, currentTokenInfo.token); - var tokenStart = sourceFile.getLineAndCharacterOfPosition(currentTokenInfo.token.pos); - if (isTokenInRange) { - var rangeHasError = rangeContainsError(currentTokenInfo.token); - var savePreviousRange = previousRange; - lineAction = processRange(currentTokenInfo.token, tokenStart, parent2, childContextNode, dynamicIndentation); - if (!rangeHasError) { - if (lineAction === 0 /* None */) { - var prevEndLine = savePreviousRange && sourceFile.getLineAndCharacterOfPosition(savePreviousRange.end).line; - indentToken = lastTriviaWasNewLine && tokenStart.line !== prevEndLine; - } - else { - indentToken = lineAction === 1 /* LineAdded */; - } - } - } - if (currentTokenInfo.trailingTrivia) { - previousRangeTriviaEnd = last(currentTokenInfo.trailingTrivia).end; - processTrivia(currentTokenInfo.trailingTrivia, parent2, childContextNode, dynamicIndentation); - } - if (indentToken) { - var tokenIndentation = isTokenInRange && !rangeContainsError(currentTokenInfo.token) ? dynamicIndentation.getIndentationForToken(tokenStart.line, currentTokenInfo.token.kind, container, !!isListEndToken) : -1 /* Unknown */; - var indentNextTokenOrTrivia = true; - if (currentTokenInfo.leadingTrivia) { - var commentIndentation_1 = dynamicIndentation.getIndentationForComment(currentTokenInfo.token.kind, tokenIndentation, container); - indentNextTokenOrTrivia = indentTriviaItems(currentTokenInfo.leadingTrivia, commentIndentation_1, indentNextTokenOrTrivia, function (item) { return insertIndentation(item.pos, commentIndentation_1, - /*lineAdded*/ - false); }); - } - if (tokenIndentation !== -1 /* Unknown */ && indentNextTokenOrTrivia) { - insertIndentation(currentTokenInfo.token.pos, tokenIndentation, lineAction === 1 /* LineAdded */); - lastIndentedLine = tokenStart.line; - indentationOnLastIndentedLine = tokenIndentation; - } - } - formattingScanner.advance(); - childContextNode = parent2; - } - } - function indentTriviaItems(trivia, commentIndentation, indentNextTokenOrTrivia, indentSingleLine) { - var e_889, _t; - try { - for (var trivia_1 = __values(trivia), trivia_1_1 = trivia_1.next(); !trivia_1_1.done; trivia_1_1 = trivia_1.next()) { - var triviaItem = trivia_1_1.value; - var triviaInRange = rangeContainsRange(originalRange, triviaItem); - switch (triviaItem.kind) { - case 3 /* MultiLineCommentTrivia */: - if (triviaInRange) { - indentMultilineComment(triviaItem, commentIndentation, - /*firstLineIsIndented*/ - !indentNextTokenOrTrivia); - } - indentNextTokenOrTrivia = false; - break; - case 2 /* SingleLineCommentTrivia */: - if (indentNextTokenOrTrivia && triviaInRange) { - indentSingleLine(triviaItem); - } - indentNextTokenOrTrivia = false; - break; - case 4 /* NewLineTrivia */: - indentNextTokenOrTrivia = true; - break; - } - } - } - catch (e_889_1) { e_889 = { error: e_889_1 }; } - finally { - try { - if (trivia_1_1 && !trivia_1_1.done && (_t = trivia_1.return)) _t.call(trivia_1); - } - finally { if (e_889) throw e_889.error; } - } - return indentNextTokenOrTrivia; - } - function processTrivia(trivia, parent2, contextNode, dynamicIndentation) { - var e_890, _t; - try { - for (var trivia_2 = __values(trivia), trivia_2_1 = trivia_2.next(); !trivia_2_1.done; trivia_2_1 = trivia_2.next()) { - var triviaItem = trivia_2_1.value; - if (isComment(triviaItem.kind) && rangeContainsRange(originalRange, triviaItem)) { - var triviaItemStart = sourceFile.getLineAndCharacterOfPosition(triviaItem.pos); - processRange(triviaItem, triviaItemStart, parent2, contextNode, dynamicIndentation); - } - } - } - catch (e_890_1) { e_890 = { error: e_890_1 }; } - finally { - try { - if (trivia_2_1 && !trivia_2_1.done && (_t = trivia_2.return)) _t.call(trivia_2); - } - finally { if (e_890) throw e_890.error; } - } - } - function processRange(range, rangeStart, parent2, contextNode, dynamicIndentation) { - var rangeHasError = rangeContainsError(range); - var lineAction = 0 /* None */; - if (!rangeHasError) { - if (!previousRange) { - var originalStart = sourceFile.getLineAndCharacterOfPosition(originalRange.pos); - trimTrailingWhitespacesForLines(originalStart.line, rangeStart.line); - } - else { - lineAction = processPair(range, rangeStart.line, parent2, previousRange, previousRangeStartLine, previousParent, contextNode, dynamicIndentation); - } - } - previousRange = range; - previousRangeTriviaEnd = range.end; - previousParent = parent2; - previousRangeStartLine = rangeStart.line; - return lineAction; - } - function processPair(currentItem, currentStartLine, currentParent, previousItem, previousStartLine, previousParent2, contextNode, dynamicIndentation) { - formattingContext.updateContext(previousItem, previousParent2, currentItem, currentParent, contextNode); - var rules = getRules(formattingContext); - var trimTrailingWhitespaces = formattingContext.options.trimTrailingWhitespace !== false; - var lineAction = 0 /* None */; - if (rules) { - forEachRight(rules, function (rule2) { - lineAction = applyRuleEdits(rule2, previousItem, previousStartLine, currentItem, currentStartLine); - if (dynamicIndentation) { - switch (lineAction) { - case 2 /* LineRemoved */: - if (currentParent.getStart(sourceFile) === currentItem.pos) { - dynamicIndentation.recomputeIndentation( - /*lineAddedByFormatting*/ - false, contextNode); - } - break; - case 1 /* LineAdded */: - if (currentParent.getStart(sourceFile) === currentItem.pos) { - dynamicIndentation.recomputeIndentation( - /*lineAddedByFormatting*/ - true, contextNode); - } - break; - default: - Debug.assert(lineAction === 0 /* None */); - } - } - trimTrailingWhitespaces = trimTrailingWhitespaces && !(rule2.action & 16 /* DeleteSpace */) && rule2.flags !== 1 /* CanDeleteNewLines */; - }); - } - else { - trimTrailingWhitespaces = trimTrailingWhitespaces && currentItem.kind !== 1 /* EndOfFileToken */; - } - if (currentStartLine !== previousStartLine && trimTrailingWhitespaces) { - trimTrailingWhitespacesForLines(previousStartLine, currentStartLine, previousItem); - } - return lineAction; - } - function insertIndentation(pos, indentation, lineAdded) { - var indentationString = getIndentationString(indentation, options); - if (lineAdded) { - recordReplace(pos, 0, indentationString); - } - else { - var tokenStart = sourceFile.getLineAndCharacterOfPosition(pos); - var startLinePosition = getStartPositionOfLine(tokenStart.line, sourceFile); - if (indentation !== characterToColumn(startLinePosition, tokenStart.character) || indentationIsDifferent(indentationString, startLinePosition)) { - recordReplace(startLinePosition, tokenStart.character, indentationString); - } - } - } - function characterToColumn(startLinePosition, characterInLine) { - var column = 0; - for (var i = 0; i < characterInLine; i++) { - if (sourceFile.text.charCodeAt(startLinePosition + i) === 9 /* tab */) { - column += options.tabSize - column % options.tabSize; - } - else { - column++; - } - } - return column; - } - function indentationIsDifferent(indentationString, startLinePosition) { - return indentationString !== sourceFile.text.substr(startLinePosition, indentationString.length); - } - function indentMultilineComment(commentRange, indentation, firstLineIsIndented, indentFinalLine) { - if (indentFinalLine === void 0) { indentFinalLine = true; } - var startLine = sourceFile.getLineAndCharacterOfPosition(commentRange.pos).line; - var endLine = sourceFile.getLineAndCharacterOfPosition(commentRange.end).line; - if (startLine === endLine) { - if (!firstLineIsIndented) { - insertIndentation(commentRange.pos, indentation, - /*lineAdded*/ - false); - } - return; - } - var parts = []; - var startPos = commentRange.pos; - for (var line = startLine; line < endLine; line++) { - var endOfLine = getEndLinePosition(line, sourceFile); - parts.push({ pos: startPos, end: endOfLine }); - startPos = getStartPositionOfLine(line + 1, sourceFile); - } - if (indentFinalLine) { - parts.push({ pos: startPos, end: commentRange.end }); - } - if (parts.length === 0) - return; - var startLinePos = getStartPositionOfLine(startLine, sourceFile); - var nonWhitespaceColumnInFirstPart = SmartIndenter.findFirstNonWhitespaceCharacterAndColumn(startLinePos, parts[0].pos, sourceFile, options); - var startIndex = 0; - if (firstLineIsIndented) { - startIndex = 1; - startLine++; - } - var delta2 = indentation - nonWhitespaceColumnInFirstPart.column; - for (var i = startIndex; i < parts.length; i++, startLine++) { - var startLinePos2 = getStartPositionOfLine(startLine, sourceFile); - var nonWhitespaceCharacterAndColumn = i === 0 ? nonWhitespaceColumnInFirstPart : SmartIndenter.findFirstNonWhitespaceCharacterAndColumn(parts[i].pos, parts[i].end, sourceFile, options); - var newIndentation = nonWhitespaceCharacterAndColumn.column + delta2; - if (newIndentation > 0) { - var indentationString = getIndentationString(newIndentation, options); - recordReplace(startLinePos2, nonWhitespaceCharacterAndColumn.character, indentationString); - } - else { - recordDelete(startLinePos2, nonWhitespaceCharacterAndColumn.character); - } - } - } - function trimTrailingWhitespacesForLines(line1, line2, range) { - for (var line = line1; line < line2; line++) { - var lineStartPosition = getStartPositionOfLine(line, sourceFile); - var lineEndPosition = getEndLinePosition(line, sourceFile); - if (range && (isComment(range.kind) || isStringOrRegularExpressionOrTemplateLiteral(range.kind)) && range.pos <= lineEndPosition && range.end > lineEndPosition) { - continue; - } - var whitespaceStart = getTrailingWhitespaceStartPosition(lineStartPosition, lineEndPosition); - if (whitespaceStart !== -1) { - Debug.assert(whitespaceStart === lineStartPosition || !isWhiteSpaceSingleLine(sourceFile.text.charCodeAt(whitespaceStart - 1))); - recordDelete(whitespaceStart, lineEndPosition + 1 - whitespaceStart); - } - } - } - function getTrailingWhitespaceStartPosition(start2, end) { - var pos = end; - while (pos >= start2 && isWhiteSpaceSingleLine(sourceFile.text.charCodeAt(pos))) { - pos--; - } - if (pos !== end) { - return pos + 1; - } - return -1; - } - function trimTrailingWhitespacesForRemainingRange(trivias) { - var e_891, _t; - var startPos = previousRange ? previousRange.end : originalRange.pos; - try { - for (var trivias_1 = __values(trivias), trivias_1_1 = trivias_1.next(); !trivias_1_1.done; trivias_1_1 = trivias_1.next()) { - var trivia = trivias_1_1.value; - if (isComment(trivia.kind)) { - if (startPos < trivia.pos) { - trimTrailingWitespacesForPositions(startPos, trivia.pos - 1, previousRange); - } - startPos = trivia.end + 1; - } - } - } - catch (e_891_1) { e_891 = { error: e_891_1 }; } - finally { - try { - if (trivias_1_1 && !trivias_1_1.done && (_t = trivias_1.return)) _t.call(trivias_1); - } - finally { if (e_891) throw e_891.error; } - } - if (startPos < originalRange.end) { - trimTrailingWitespacesForPositions(startPos, originalRange.end, previousRange); - } - } - function trimTrailingWitespacesForPositions(startPos, endPos, previousRange2) { - var startLine = sourceFile.getLineAndCharacterOfPosition(startPos).line; - var endLine = sourceFile.getLineAndCharacterOfPosition(endPos).line; - trimTrailingWhitespacesForLines(startLine, endLine + 1, previousRange2); - } - function recordDelete(start2, len) { - if (len) { - edits.push(createTextChangeFromStartLength(start2, len, "")); - } - } - function recordReplace(start2, len, newText) { - if (len || newText) { - edits.push(createTextChangeFromStartLength(start2, len, newText)); - } - } - function recordInsert(start2, text) { - if (text) { - edits.push(createTextChangeFromStartLength(start2, 0, text)); - } - } - function applyRuleEdits(rule2, previousRange2, previousStartLine, currentRange, currentStartLine) { - var onLaterLine = currentStartLine !== previousStartLine; - switch (rule2.action) { - case 1 /* StopProcessingSpaceActions */: - return 0 /* None */; - case 16 /* DeleteSpace */: - if (previousRange2.end !== currentRange.pos) { - recordDelete(previousRange2.end, currentRange.pos - previousRange2.end); - return onLaterLine ? 2 /* LineRemoved */ : 0 /* None */; - } - break; - case 32 /* DeleteToken */: - recordDelete(previousRange2.pos, previousRange2.end - previousRange2.pos); - break; - case 8 /* InsertNewLine */: - if (rule2.flags !== 1 /* CanDeleteNewLines */ && previousStartLine !== currentStartLine) { - return 0 /* None */; - } - var lineDelta = currentStartLine - previousStartLine; - if (lineDelta !== 1) { - recordReplace(previousRange2.end, currentRange.pos - previousRange2.end, getNewLineOrDefaultFromHost(host, options)); - return onLaterLine ? 0 /* None */ : 1 /* LineAdded */; - } - break; - case 4 /* InsertSpace */: - if (rule2.flags !== 1 /* CanDeleteNewLines */ && previousStartLine !== currentStartLine) { - return 0 /* None */; - } - var posDelta = currentRange.pos - previousRange2.end; - if (posDelta !== 1 || sourceFile.text.charCodeAt(previousRange2.end) !== 32 /* space */) { - recordReplace(previousRange2.end, currentRange.pos - previousRange2.end, " "); - return onLaterLine ? 2 /* LineRemoved */ : 0 /* None */; - } - break; - case 64 /* InsertTrailingSemicolon */: - recordInsert(previousRange2.end, ";"); - } - return 0 /* None */; - } -} -function getRangeOfEnclosingComment(sourceFile, position, precedingToken, tokenAtPosition) { - if (tokenAtPosition === void 0) { tokenAtPosition = getTokenAtPosition(sourceFile, position); } - var jsdoc = findAncestor(tokenAtPosition, isJSDoc); - if (jsdoc) - tokenAtPosition = jsdoc.parent; - var tokenStart = tokenAtPosition.getStart(sourceFile); - if (tokenStart <= position && position < tokenAtPosition.getEnd()) { - return void 0; - } - precedingToken = precedingToken === null ? void 0 : precedingToken === void 0 ? findPrecedingToken(position, sourceFile) : precedingToken; - var trailingRangesOfPreviousToken = precedingToken && getTrailingCommentRanges(sourceFile.text, precedingToken.end); - var leadingCommentRangesOfNextToken = getLeadingCommentRangesOfNode(tokenAtPosition, sourceFile); - var commentRanges = concatenate(trailingRangesOfPreviousToken, leadingCommentRangesOfNextToken); - return commentRanges && find(commentRanges, function (range) { return rangeContainsPositionExclusive(range, position) || // The end marker of a single-line comment does not include the newline character. - // With caret at `^`, in the following case, we are inside a comment (^ denotes the cursor position): - // - // // asdf ^\n - // - // But for closed multi-line comments, we don't want to be inside the comment in the following case: - // - // /* asdf */^ - // - // However, unterminated multi-line comments *do* contain their end. - // - // Internally, we represent the end of the comment at the newline and closing '/', respectively. - // - position === range.end && (range.kind === 2 /* SingleLineCommentTrivia */ || position === sourceFile.getFullWidth()); }); -} -function getOpenTokenForList(node, list) { - switch (node.kind) { - case 176 /* Constructor */: - case 262 /* FunctionDeclaration */: - case 218 /* FunctionExpression */: - case 174 /* MethodDeclaration */: - case 173 /* MethodSignature */: - case 219 /* ArrowFunction */: - case 179 /* CallSignature */: - case 180 /* ConstructSignature */: - case 184 /* FunctionType */: - case 185 /* ConstructorType */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - if (node.typeParameters === list) { - return 30 /* LessThanToken */; - } - else if (node.parameters === list) { - return 21 /* OpenParenToken */; - } - break; - case 213 /* CallExpression */: - case 214 /* NewExpression */: - if (node.typeArguments === list) { - return 30 /* LessThanToken */; - } - else if (node.arguments === list) { - return 21 /* OpenParenToken */; - } - break; - case 263 /* ClassDeclaration */: - case 231 /* ClassExpression */: - case 264 /* InterfaceDeclaration */: - case 265 /* TypeAliasDeclaration */: - if (node.typeParameters === list) { - return 30 /* LessThanToken */; - } - break; - case 183 /* TypeReference */: - case 215 /* TaggedTemplateExpression */: - case 186 /* TypeQuery */: - case 233 /* ExpressionWithTypeArguments */: - case 205 /* ImportType */: - if (node.typeArguments === list) { - return 30 /* LessThanToken */; - } - break; - case 187 /* TypeLiteral */: - return 19 /* OpenBraceToken */; - } - return 0 /* Unknown */; -} -function getCloseTokenForOpenToken(kind) { - switch (kind) { - case 21 /* OpenParenToken */: - return 22 /* CloseParenToken */; - case 30 /* LessThanToken */: - return 32 /* GreaterThanToken */; - case 19 /* OpenBraceToken */: - return 20 /* CloseBraceToken */; - } - return 0 /* Unknown */; -} -var internedSizes; -var internedTabsIndentation; -var internedSpacesIndentation; -function getIndentationString(indentation, options) { - var resetInternedStrings = !internedSizes || (internedSizes.tabSize !== options.tabSize || internedSizes.indentSize !== options.indentSize); - if (resetInternedStrings) { - internedSizes = { tabSize: options.tabSize, indentSize: options.indentSize }; - internedTabsIndentation = internedSpacesIndentation = void 0; - } - if (!options.convertTabsToSpaces) { - var tabs = Math.floor(indentation / options.tabSize); - var spaces = indentation - tabs * options.tabSize; - var tabString = void 0; - if (!internedTabsIndentation) { - internedTabsIndentation = []; - } - if (internedTabsIndentation[tabs] === void 0) { - internedTabsIndentation[tabs] = tabString = repeatString(" ", tabs); - } - else { - tabString = internedTabsIndentation[tabs]; - } - return spaces ? tabString + repeatString(" ", spaces) : tabString; - } - else { - var spacesString = void 0; - var quotient = Math.floor(indentation / options.indentSize); - var remainder = indentation % options.indentSize; - if (!internedSpacesIndentation) { - internedSpacesIndentation = []; - } - if (internedSpacesIndentation[quotient] === void 0) { - spacesString = repeatString(" ", options.indentSize * quotient); - internedSpacesIndentation[quotient] = spacesString; - } - else { - spacesString = internedSpacesIndentation[quotient]; - } - return remainder ? spacesString + repeatString(" ", remainder) : spacesString; - } -} -// src/services/formatting/smartIndenter.ts -var SmartIndenter; -(function (SmartIndenter2) { - var Value; - (function (Value2) { - Value2[Value2["Unknown"] = -1] = "Unknown"; - })(Value || (Value = {})); - function getIndentation(position, sourceFile, options, assumeNewLineBeforeCloseBrace) { - if (assumeNewLineBeforeCloseBrace === void 0) { assumeNewLineBeforeCloseBrace = false; } - if (position > sourceFile.text.length) { - return getBaseIndentation(options); - } - if (options.indentStyle === 0 /* None */) { - return 0; - } - var precedingToken = findPrecedingToken(position, sourceFile, - /*startNode*/ - void 0, - /*excludeJsdoc*/ - true); - var enclosingCommentRange = getRangeOfEnclosingComment(sourceFile, position, precedingToken || null); - if (enclosingCommentRange && enclosingCommentRange.kind === 3 /* MultiLineCommentTrivia */) { - return getCommentIndent(sourceFile, position, options, enclosingCommentRange); - } - if (!precedingToken) { - return getBaseIndentation(options); - } - var precedingTokenIsLiteral = isStringOrRegularExpressionOrTemplateLiteral(precedingToken.kind); - if (precedingTokenIsLiteral && precedingToken.getStart(sourceFile) <= position && position < precedingToken.end) { - return 0; - } - var lineAtPosition = sourceFile.getLineAndCharacterOfPosition(position).line; - var currentToken = getTokenAtPosition(sourceFile, position); - var isObjectLiteral = currentToken.kind === 19 /* OpenBraceToken */ && currentToken.parent.kind === 210 /* ObjectLiteralExpression */; - if (options.indentStyle === 1 /* Block */ || isObjectLiteral) { - return getBlockIndent(sourceFile, position, options); - } - if (precedingToken.kind === 28 /* CommaToken */ && precedingToken.parent.kind !== 226 /* BinaryExpression */) { - var actualIndentation = getActualIndentationForListItemBeforeComma(precedingToken, sourceFile, options); - if (actualIndentation !== -1 /* Unknown */) { - return actualIndentation; - } - } - var containerList = getListByPosition(position, precedingToken.parent, sourceFile); - if (containerList && !rangeContainsRange(containerList, precedingToken)) { - var useTheSameBaseIndentation = [218 /* FunctionExpression */, 219 /* ArrowFunction */].indexOf(currentToken.parent.kind) !== -1; - var indentSize = useTheSameBaseIndentation ? 0 : options.indentSize; - return getActualIndentationForListStartLine(containerList, sourceFile, options) + indentSize; - } - return getSmartIndent(sourceFile, position, precedingToken, lineAtPosition, assumeNewLineBeforeCloseBrace, options); - } - SmartIndenter2.getIndentation = getIndentation; - function getCommentIndent(sourceFile, position, options, enclosingCommentRange) { - var previousLine = getLineAndCharacterOfPosition(sourceFile, position).line - 1; - var commentStartLine = getLineAndCharacterOfPosition(sourceFile, enclosingCommentRange.pos).line; - Debug.assert(commentStartLine >= 0); - if (previousLine <= commentStartLine) { - return findFirstNonWhitespaceColumn(getStartPositionOfLine(commentStartLine, sourceFile), position, sourceFile, options); - } - var startPositionOfLine = getStartPositionOfLine(previousLine, sourceFile); - var _t = findFirstNonWhitespaceCharacterAndColumn(startPositionOfLine, position, sourceFile, options), column = _t.column, character = _t.character; - if (column === 0) { - return column; - } - var firstNonWhitespaceCharacterCode = sourceFile.text.charCodeAt(startPositionOfLine + character); - return firstNonWhitespaceCharacterCode === 42 /* asterisk */ ? column - 1 : column; - } - function getBlockIndent(sourceFile, position, options) { - var current = position; - while (current > 0) { - var char = sourceFile.text.charCodeAt(current); - if (!isWhiteSpaceLike(char)) { - break; - } - current--; - } - var lineStart = getLineStartPositionForPosition(current, sourceFile); - return findFirstNonWhitespaceColumn(lineStart, current, sourceFile, options); - } - function getSmartIndent(sourceFile, position, precedingToken, lineAtPosition, assumeNewLineBeforeCloseBrace, options) { - var previous; - var current = precedingToken; - while (current) { - if (positionBelongsToNode(current, position, sourceFile) && shouldIndentChildNode(options, current, previous, sourceFile, - /*isNextChild*/ - true)) { - var currentStart = getStartLineAndCharacterForNode(current, sourceFile); - var nextTokenKind = nextTokenIsCurlyBraceOnSameLineAsCursor(precedingToken, current, lineAtPosition, sourceFile); - var indentationDelta = nextTokenKind !== 0 /* Unknown */ ? assumeNewLineBeforeCloseBrace && nextTokenKind === 2 /* CloseBrace */ ? options.indentSize : 0 : lineAtPosition !== currentStart.line ? options.indentSize : 0; - return getIndentationForNodeWorker(current, currentStart, - /*ignoreActualIndentationRange*/ - void 0, indentationDelta, sourceFile, - /*isNextChild*/ - true, options); - } - var actualIndentation = getActualIndentationForListItem(current, sourceFile, options, - /*listIndentsChild*/ - true); - if (actualIndentation !== -1 /* Unknown */) { - return actualIndentation; - } - previous = current; - current = current.parent; - } - return getBaseIndentation(options); - } - function getIndentationForNode(n, ignoreActualIndentationRange, sourceFile, options) { - var start2 = sourceFile.getLineAndCharacterOfPosition(n.getStart(sourceFile)); - return getIndentationForNodeWorker(n, start2, ignoreActualIndentationRange, - /*indentationDelta*/ - 0, sourceFile, - /*isNextChild*/ - false, options); - } - SmartIndenter2.getIndentationForNode = getIndentationForNode; - function getBaseIndentation(options) { - return options.baseIndentSize || 0; - } - SmartIndenter2.getBaseIndentation = getBaseIndentation; - function getIndentationForNodeWorker(current, currentStart, ignoreActualIndentationRange, indentationDelta, sourceFile, isNextChild, options) { - var _a; - var parent2 = current.parent; - while (parent2) { - var useActualIndentation = true; - if (ignoreActualIndentationRange) { - var start2 = current.getStart(sourceFile); - useActualIndentation = start2 < ignoreActualIndentationRange.pos || start2 > ignoreActualIndentationRange.end; - } - var containingListOrParentStart = getContainingListOrParentStart(parent2, current, sourceFile); - var parentAndChildShareLine = containingListOrParentStart.line === currentStart.line || childStartsOnTheSameLineWithElseInIfStatement(parent2, current, currentStart.line, sourceFile); - if (useActualIndentation) { - var firstListChild = (_a = getContainingList(current, sourceFile)) == null ? void 0 : _a[0]; - var listIndentsChild = !!firstListChild && getStartLineAndCharacterForNode(firstListChild, sourceFile).line > containingListOrParentStart.line; - var actualIndentation = getActualIndentationForListItem(current, sourceFile, options, listIndentsChild); - if (actualIndentation !== -1 /* Unknown */) { - return actualIndentation + indentationDelta; - } - actualIndentation = getActualIndentationForNode(current, parent2, currentStart, parentAndChildShareLine, sourceFile, options); - if (actualIndentation !== -1 /* Unknown */) { - return actualIndentation + indentationDelta; - } - } - if (shouldIndentChildNode(options, parent2, current, sourceFile, isNextChild) && !parentAndChildShareLine) { - indentationDelta += options.indentSize; - } - var useTrueStart = isArgumentAndStartLineOverlapsExpressionBeingCalled(parent2, current, currentStart.line, sourceFile); - current = parent2; - parent2 = current.parent; - currentStart = useTrueStart ? sourceFile.getLineAndCharacterOfPosition(current.getStart(sourceFile)) : containingListOrParentStart; - } - return indentationDelta + getBaseIndentation(options); - } - function getContainingListOrParentStart(parent2, child, sourceFile) { - var containingList = getContainingList(child, sourceFile); - var startPos = containingList ? containingList.pos : parent2.getStart(sourceFile); - return sourceFile.getLineAndCharacterOfPosition(startPos); - } - function getActualIndentationForListItemBeforeComma(commaToken, sourceFile, options) { - var commaItemInfo = findListItemInfo(commaToken); - if (commaItemInfo && commaItemInfo.listItemIndex > 0) { - return deriveActualIndentationFromList(commaItemInfo.list.getChildren(), commaItemInfo.listItemIndex - 1, sourceFile, options); - } - else { - return -1 /* Unknown */; - } - } - function getActualIndentationForNode(current, parent2, currentLineAndChar, parentAndChildShareLine, sourceFile, options) { - var useActualIndentation = (isDeclaration(current) || isStatementButNotDeclaration(current)) && (parent2.kind === 312 /* SourceFile */ || !parentAndChildShareLine); - if (!useActualIndentation) { - return -1 /* Unknown */; - } - return findColumnForFirstNonWhitespaceCharacterInLine(currentLineAndChar, sourceFile, options); - } - var NextTokenKind; - (function (NextTokenKind2) { - NextTokenKind2[NextTokenKind2["Unknown"] = 0] = "Unknown"; - NextTokenKind2[NextTokenKind2["OpenBrace"] = 1] = "OpenBrace"; - NextTokenKind2[NextTokenKind2["CloseBrace"] = 2] = "CloseBrace"; - })(NextTokenKind || (NextTokenKind = {})); - function nextTokenIsCurlyBraceOnSameLineAsCursor(precedingToken, current, lineAtPosition, sourceFile) { - var nextToken = findNextToken(precedingToken, current, sourceFile); - if (!nextToken) { - return 0 /* Unknown */; - } - if (nextToken.kind === 19 /* OpenBraceToken */) { - return 1 /* OpenBrace */; - } - else if (nextToken.kind === 20 /* CloseBraceToken */) { - var nextTokenStartLine = getStartLineAndCharacterForNode(nextToken, sourceFile).line; - return lineAtPosition === nextTokenStartLine ? 2 /* CloseBrace */ : 0 /* Unknown */; - } - return 0 /* Unknown */; - } - function getStartLineAndCharacterForNode(n, sourceFile) { - return sourceFile.getLineAndCharacterOfPosition(n.getStart(sourceFile)); - } - function isArgumentAndStartLineOverlapsExpressionBeingCalled(parent2, child, childStartLine, sourceFile) { - if (!(isCallExpression(parent2) && contains(parent2.arguments, child))) { - return false; - } - var expressionOfCallExpressionEnd = parent2.expression.getEnd(); - var expressionOfCallExpressionEndLine = getLineAndCharacterOfPosition(sourceFile, expressionOfCallExpressionEnd).line; - return expressionOfCallExpressionEndLine === childStartLine; - } - SmartIndenter2.isArgumentAndStartLineOverlapsExpressionBeingCalled = isArgumentAndStartLineOverlapsExpressionBeingCalled; - function childStartsOnTheSameLineWithElseInIfStatement(parent2, child, childStartLine, sourceFile) { - if (parent2.kind === 245 /* IfStatement */ && parent2.elseStatement === child) { - var elseKeyword = findChildOfKind(parent2, 93 /* ElseKeyword */, sourceFile); - Debug.assert(elseKeyword !== void 0); - var elseKeywordStartLine = getStartLineAndCharacterForNode(elseKeyword, sourceFile).line; - return elseKeywordStartLine === childStartLine; - } - return false; - } - SmartIndenter2.childStartsOnTheSameLineWithElseInIfStatement = childStartsOnTheSameLineWithElseInIfStatement; - function childIsUnindentedBranchOfConditionalExpression(parent2, child, childStartLine, sourceFile) { - if (isConditionalExpression(parent2) && (child === parent2.whenTrue || child === parent2.whenFalse)) { - var conditionEndLine = getLineAndCharacterOfPosition(sourceFile, parent2.condition.end).line; - if (child === parent2.whenTrue) { - return childStartLine === conditionEndLine; - } - else { - var trueStartLine = getStartLineAndCharacterForNode(parent2.whenTrue, sourceFile).line; - var trueEndLine = getLineAndCharacterOfPosition(sourceFile, parent2.whenTrue.end).line; - return conditionEndLine === trueStartLine && trueEndLine === childStartLine; - } - } - return false; - } - SmartIndenter2.childIsUnindentedBranchOfConditionalExpression = childIsUnindentedBranchOfConditionalExpression; - function argumentStartsOnSameLineAsPreviousArgument(parent2, child, childStartLine, sourceFile) { - if (isCallOrNewExpression(parent2)) { - if (!parent2.arguments) - return false; - var currentNode = find(parent2.arguments, function (arg) { return arg.pos === child.pos; }); - if (!currentNode) - return false; - var currentIndex = parent2.arguments.indexOf(currentNode); - if (currentIndex === 0) - return false; - var previousNode = parent2.arguments[currentIndex - 1]; - var lineOfPreviousNode = getLineAndCharacterOfPosition(sourceFile, previousNode.getEnd()).line; - if (childStartLine === lineOfPreviousNode) { - return true; - } - } - return false; - } - SmartIndenter2.argumentStartsOnSameLineAsPreviousArgument = argumentStartsOnSameLineAsPreviousArgument; - function getContainingList(node, sourceFile) { - return node.parent && getListByRange(node.getStart(sourceFile), node.getEnd(), node.parent, sourceFile); - } - SmartIndenter2.getContainingList = getContainingList; - function getListByPosition(pos, node, sourceFile) { - return node && getListByRange(pos, pos, node, sourceFile); - } - function getListByRange(start2, end, node, sourceFile) { - switch (node.kind) { - case 183 /* TypeReference */: - return getList(node.typeArguments); - case 210 /* ObjectLiteralExpression */: - return getList(node.properties); - case 209 /* ArrayLiteralExpression */: - return getList(node.elements); - case 187 /* TypeLiteral */: - return getList(node.members); - case 262 /* FunctionDeclaration */: - case 218 /* FunctionExpression */: - case 219 /* ArrowFunction */: - case 174 /* MethodDeclaration */: - case 173 /* MethodSignature */: - case 179 /* CallSignature */: - case 176 /* Constructor */: - case 185 /* ConstructorType */: - case 180 /* ConstructSignature */: - return getList(node.typeParameters) || getList(node.parameters); - case 177 /* GetAccessor */: - return getList(node.parameters); - case 263 /* ClassDeclaration */: - case 231 /* ClassExpression */: - case 264 /* InterfaceDeclaration */: - case 265 /* TypeAliasDeclaration */: - case 352 /* JSDocTemplateTag */: - return getList(node.typeParameters); - case 214 /* NewExpression */: - case 213 /* CallExpression */: - return getList(node.typeArguments) || getList(node.arguments); - case 261 /* VariableDeclarationList */: - return getList(node.declarations); - case 275 /* NamedImports */: - case 279 /* NamedExports */: - return getList(node.elements); - case 206 /* ObjectBindingPattern */: - case 207 /* ArrayBindingPattern */: - return getList(node.elements); - } - function getList(list) { - return list && rangeContainsStartEnd(getVisualListRange(node, list, sourceFile), start2, end) ? list : void 0; - } - } - function getVisualListRange(node, list, sourceFile) { - var children = node.getChildren(sourceFile); - for (var i = 1; i < children.length - 1; i++) { - if (children[i].pos === list.pos && children[i].end === list.end) { - return { pos: children[i - 1].end, end: children[i + 1].getStart(sourceFile) }; - } - } - return list; - } - function getActualIndentationForListStartLine(list, sourceFile, options) { - if (!list) { - return -1 /* Unknown */; - } - return findColumnForFirstNonWhitespaceCharacterInLine(sourceFile.getLineAndCharacterOfPosition(list.pos), sourceFile, options); - } - function getActualIndentationForListItem(node, sourceFile, options, listIndentsChild) { - if (node.parent && node.parent.kind === 261 /* VariableDeclarationList */) { - return -1 /* Unknown */; - } - var containingList = getContainingList(node, sourceFile); - if (containingList) { - var index = containingList.indexOf(node); - if (index !== -1) { - var result = deriveActualIndentationFromList(containingList, index, sourceFile, options); - if (result !== -1 /* Unknown */) { - return result; - } - } - return getActualIndentationForListStartLine(containingList, sourceFile, options) + (listIndentsChild ? options.indentSize : 0); - } - return -1 /* Unknown */; - } - function deriveActualIndentationFromList(list, index, sourceFile, options) { - Debug.assert(index >= 0 && index < list.length); - var node = list[index]; - var lineAndCharacter = getStartLineAndCharacterForNode(node, sourceFile); - for (var i = index - 1; i >= 0; i--) { - if (list[i].kind === 28 /* CommaToken */) { - continue; - } - var prevEndLine = sourceFile.getLineAndCharacterOfPosition(list[i].end).line; - if (prevEndLine !== lineAndCharacter.line) { - return findColumnForFirstNonWhitespaceCharacterInLine(lineAndCharacter, sourceFile, options); - } - lineAndCharacter = getStartLineAndCharacterForNode(list[i], sourceFile); - } - return -1 /* Unknown */; - } - function findColumnForFirstNonWhitespaceCharacterInLine(lineAndCharacter, sourceFile, options) { - var lineStart = sourceFile.getPositionOfLineAndCharacter(lineAndCharacter.line, 0); - return findFirstNonWhitespaceColumn(lineStart, lineStart + lineAndCharacter.character, sourceFile, options); - } - function findFirstNonWhitespaceCharacterAndColumn(startPos, endPos, sourceFile, options) { - var character = 0; - var column = 0; - for (var pos = startPos; pos < endPos; pos++) { - var ch = sourceFile.text.charCodeAt(pos); - if (!isWhiteSpaceSingleLine(ch)) { - break; - } - if (ch === 9 /* tab */) { - column += options.tabSize + column % options.tabSize; - } - else { - column++; - } - character++; - } - return { column: column, character: character }; - } - SmartIndenter2.findFirstNonWhitespaceCharacterAndColumn = findFirstNonWhitespaceCharacterAndColumn; - function findFirstNonWhitespaceColumn(startPos, endPos, sourceFile, options) { - return findFirstNonWhitespaceCharacterAndColumn(startPos, endPos, sourceFile, options).column; - } - SmartIndenter2.findFirstNonWhitespaceColumn = findFirstNonWhitespaceColumn; - function nodeWillIndentChild(settings, parent2, child, sourceFile, indentByDefault) { - var _t; - var childKind = child ? child.kind : 0 /* Unknown */; - switch (parent2.kind) { - case 244 /* ExpressionStatement */: - case 263 /* ClassDeclaration */: - case 231 /* ClassExpression */: - case 264 /* InterfaceDeclaration */: - case 266 /* EnumDeclaration */: - case 265 /* TypeAliasDeclaration */: - case 209 /* ArrayLiteralExpression */: - case 241 /* Block */: - case 268 /* ModuleBlock */: - case 210 /* ObjectLiteralExpression */: - case 187 /* TypeLiteral */: - case 200 /* MappedType */: - case 189 /* TupleType */: - case 217 /* ParenthesizedExpression */: - case 211 /* PropertyAccessExpression */: - case 213 /* CallExpression */: - case 214 /* NewExpression */: - case 243 /* VariableStatement */: - case 277 /* ExportAssignment */: - case 253 /* ReturnStatement */: - case 227 /* ConditionalExpression */: - case 207 /* ArrayBindingPattern */: - case 206 /* ObjectBindingPattern */: - case 286 /* JsxOpeningElement */: - case 289 /* JsxOpeningFragment */: - case 285 /* JsxSelfClosingElement */: - case 294 /* JsxExpression */: - case 173 /* MethodSignature */: - case 179 /* CallSignature */: - case 180 /* ConstructSignature */: - case 169 /* Parameter */: - case 184 /* FunctionType */: - case 185 /* ConstructorType */: - case 196 /* ParenthesizedType */: - case 215 /* TaggedTemplateExpression */: - case 223 /* AwaitExpression */: - case 279 /* NamedExports */: - case 275 /* NamedImports */: - case 281 /* ExportSpecifier */: - case 276 /* ImportSpecifier */: - case 172 /* PropertyDeclaration */: - case 296 /* CaseClause */: - case 297 /* DefaultClause */: - return true; - case 269 /* CaseBlock */: - return (_t = settings.indentSwitchCase) !== null && _t !== void 0 ? _t : true; - case 260 /* VariableDeclaration */: - case 303 /* PropertyAssignment */: - case 226 /* BinaryExpression */: - if (!settings.indentMultiLineObjectLiteralBeginningOnBlankLine && sourceFile && childKind === 210 /* ObjectLiteralExpression */) { - return rangeIsOnOneLine(sourceFile, child); - } - if (parent2.kind === 226 /* BinaryExpression */ && sourceFile && child && childKind === 284 /* JsxElement */) { - var parentStartLine = sourceFile.getLineAndCharacterOfPosition(skipTrivia(sourceFile.text, parent2.pos)).line; - var childStartLine = sourceFile.getLineAndCharacterOfPosition(skipTrivia(sourceFile.text, child.pos)).line; - return parentStartLine !== childStartLine; - } - if (parent2.kind !== 226 /* BinaryExpression */) { - return true; - } - break; - case 246 /* DoStatement */: - case 247 /* WhileStatement */: - case 249 /* ForInStatement */: - case 250 /* ForOfStatement */: - case 248 /* ForStatement */: - case 245 /* IfStatement */: - case 262 /* FunctionDeclaration */: - case 218 /* FunctionExpression */: - case 174 /* MethodDeclaration */: - case 176 /* Constructor */: - case 177 /* GetAccessor */: - case 178 /* SetAccessor */: - return childKind !== 241 /* Block */; - case 219 /* ArrowFunction */: - if (sourceFile && childKind === 217 /* ParenthesizedExpression */) { - return rangeIsOnOneLine(sourceFile, child); - } - return childKind !== 241 /* Block */; - case 278 /* ExportDeclaration */: - return childKind !== 279 /* NamedExports */; - case 272 /* ImportDeclaration */: - return childKind !== 273 /* ImportClause */ || !!child.namedBindings && child.namedBindings.kind !== 275 /* NamedImports */; - case 284 /* JsxElement */: - return childKind !== 287 /* JsxClosingElement */; - case 288 /* JsxFragment */: - return childKind !== 290 /* JsxClosingFragment */; - case 193 /* IntersectionType */: - case 192 /* UnionType */: - if (childKind === 187 /* TypeLiteral */ || childKind === 189 /* TupleType */) { - return false; - } - break; - } - return indentByDefault; - } - SmartIndenter2.nodeWillIndentChild = nodeWillIndentChild; - function isControlFlowEndingStatement(kind, parent2) { - switch (kind) { - case 253 /* ReturnStatement */: - case 257 /* ThrowStatement */: - case 251 /* ContinueStatement */: - case 252 /* BreakStatement */: - return parent2.kind !== 241 /* Block */; - default: - return false; - } - } - function shouldIndentChildNode(settings, parent2, child, sourceFile, isNextChild) { - if (isNextChild === void 0) { isNextChild = false; } - return nodeWillIndentChild(settings, parent2, child, sourceFile, - /*indentByDefault*/ - false) && !(isNextChild && child && isControlFlowEndingStatement(child.kind, parent2)); - } - SmartIndenter2.shouldIndentChildNode = shouldIndentChildNode; - function rangeIsOnOneLine(sourceFile, range) { - var rangeStart = skipTrivia(sourceFile.text, range.pos); - var startLine = sourceFile.getLineAndCharacterOfPosition(rangeStart).line; - var endLine = sourceFile.getLineAndCharacterOfPosition(range.end).line; - return startLine === endLine; - } -})(SmartIndenter || (SmartIndenter = {})); -// src/server/_namespaces/ts.ts -var ts_exports2 = {}; -__export(ts_exports2, { - ANONYMOUS: function () { return ANONYMOUS; }, - AccessFlags: function () { return AccessFlags; }, - AssertionLevel: function () { return AssertionLevel; }, - AssignmentDeclarationKind: function () { return AssignmentDeclarationKind; }, - AssignmentKind: function () { return AssignmentKind; }, - Associativity: function () { return Associativity; }, - BreakpointResolver: function () { return ts_BreakpointResolver_exports; }, - BuilderFileEmit: function () { return BuilderFileEmit; }, - BuilderProgramKind: function () { return BuilderProgramKind; }, - BuilderState: function () { return BuilderState; }, - BundleFileSectionKind: function () { return BundleFileSectionKind; }, - CallHierarchy: function () { return ts_CallHierarchy_exports; }, - CharacterCodes: function () { return CharacterCodes; }, - CheckFlags: function () { return CheckFlags; }, - CheckMode: function () { return CheckMode; }, - ClassificationType: function () { return ClassificationType; }, - ClassificationTypeNames: function () { return ClassificationTypeNames; }, - CommentDirectiveType: function () { return CommentDirectiveType; }, - Comparison: function () { return Comparison; }, - CompletionInfoFlags: function () { return CompletionInfoFlags; }, - CompletionTriggerKind: function () { return CompletionTriggerKind; }, - Completions: function () { return ts_Completions_exports; }, - ConfigFileProgramReloadLevel: function () { return ConfigFileProgramReloadLevel; }, - ContainerFlags: function () { return ContainerFlags; }, - ContextFlags: function () { return ContextFlags; }, - CoreServicesShimHostAdapter: function () { return CoreServicesShimHostAdapter; }, - Debug: function () { return Debug; }, - DiagnosticCategory: function () { return DiagnosticCategory; }, - Diagnostics: function () { return Diagnostics; }, - DocumentHighlights: function () { return DocumentHighlights; }, - ElementFlags: function () { return ElementFlags; }, - EmitFlags: function () { return EmitFlags; }, - EmitHint: function () { return EmitHint; }, - EmitOnly: function () { return EmitOnly; }, - EndOfLineState: function () { return EndOfLineState; }, - EnumKind: function () { return EnumKind; }, - ExitStatus: function () { return ExitStatus; }, - ExportKind: function () { return ExportKind; }, - Extension: function () { return Extension; }, - ExternalEmitHelpers: function () { return ExternalEmitHelpers; }, - FileIncludeKind: function () { return FileIncludeKind; }, - FilePreprocessingDiagnosticsKind: function () { return FilePreprocessingDiagnosticsKind; }, - FileSystemEntryKind: function () { return FileSystemEntryKind; }, - FileWatcherEventKind: function () { return FileWatcherEventKind; }, - FindAllReferences: function () { return ts_FindAllReferences_exports; }, - FlattenLevel: function () { return FlattenLevel; }, - FlowFlags: function () { return FlowFlags; }, - ForegroundColorEscapeSequences: function () { return ForegroundColorEscapeSequences; }, - FunctionFlags: function () { return FunctionFlags; }, - GeneratedIdentifierFlags: function () { return GeneratedIdentifierFlags; }, - GetLiteralTextFlags: function () { return GetLiteralTextFlags; }, - GoToDefinition: function () { return ts_GoToDefinition_exports; }, - HighlightSpanKind: function () { return HighlightSpanKind; }, - IdentifierNameMap: function () { return IdentifierNameMap; }, - IdentifierNameMultiMap: function () { return IdentifierNameMultiMap; }, - ImportKind: function () { return ImportKind; }, - ImportsNotUsedAsValues: function () { return ImportsNotUsedAsValues; }, - IndentStyle: function () { return IndentStyle; }, - IndexFlags: function () { return IndexFlags; }, - IndexKind: function () { return IndexKind; }, - InferenceFlags: function () { return InferenceFlags; }, - InferencePriority: function () { return InferencePriority; }, - InlayHintKind: function () { return InlayHintKind; }, - InlayHints: function () { return ts_InlayHints_exports; }, - InternalEmitFlags: function () { return InternalEmitFlags; }, - InternalSymbolName: function () { return InternalSymbolName; }, - InvalidatedProjectKind: function () { return InvalidatedProjectKind; }, - JsDoc: function () { return ts_JsDoc_exports; }, - JsTyping: function () { return ts_JsTyping_exports; }, - JsxEmit: function () { return JsxEmit; }, - JsxFlags: function () { return JsxFlags; }, - JsxReferenceKind: function () { return JsxReferenceKind; }, - LanguageServiceMode: function () { return LanguageServiceMode; }, - LanguageServiceShimHostAdapter: function () { return LanguageServiceShimHostAdapter; }, - LanguageVariant: function () { return LanguageVariant; }, - LexicalEnvironmentFlags: function () { return LexicalEnvironmentFlags; }, - ListFormat: function () { return ListFormat; }, - LogLevel: function () { return LogLevel; }, - MemberOverrideStatus: function () { return MemberOverrideStatus; }, - ModifierFlags: function () { return ModifierFlags; }, - ModuleDetectionKind: function () { return ModuleDetectionKind; }, - ModuleInstanceState: function () { return ModuleInstanceState; }, - ModuleKind: function () { return ModuleKind; }, - ModuleResolutionKind: function () { return ModuleResolutionKind; }, - ModuleSpecifierEnding: function () { return ModuleSpecifierEnding; }, - NavigateTo: function () { return ts_NavigateTo_exports; }, - NavigationBar: function () { return ts_NavigationBar_exports; }, - NewLineKind: function () { return NewLineKind; }, - NodeBuilderFlags: function () { return NodeBuilderFlags; }, - NodeCheckFlags: function () { return NodeCheckFlags; }, - NodeFactoryFlags: function () { return NodeFactoryFlags; }, - NodeFlags: function () { return NodeFlags; }, - NodeResolutionFeatures: function () { return NodeResolutionFeatures; }, - ObjectFlags: function () { return ObjectFlags; }, - OperationCanceledException: function () { return OperationCanceledException; }, - OperatorPrecedence: function () { return OperatorPrecedence; }, - OrganizeImports: function () { return ts_OrganizeImports_exports; }, - OrganizeImportsMode: function () { return OrganizeImportsMode; }, - OuterExpressionKinds: function () { return OuterExpressionKinds; }, - OutliningElementsCollector: function () { return ts_OutliningElementsCollector_exports; }, - OutliningSpanKind: function () { return OutliningSpanKind; }, - OutputFileType: function () { return OutputFileType; }, - PackageJsonAutoImportPreference: function () { return PackageJsonAutoImportPreference; }, - PackageJsonDependencyGroup: function () { return PackageJsonDependencyGroup; }, - PatternMatchKind: function () { return PatternMatchKind; }, - PollingInterval: function () { return PollingInterval; }, - PollingWatchKind: function () { return PollingWatchKind; }, - PragmaKindFlags: function () { return PragmaKindFlags; }, - PrivateIdentifierKind: function () { return PrivateIdentifierKind; }, - ProcessLevel: function () { return ProcessLevel; }, - QuotePreference: function () { return QuotePreference; }, - RelationComparisonResult: function () { return RelationComparisonResult; }, - Rename: function () { return ts_Rename_exports; }, - ScriptElementKind: function () { return ScriptElementKind; }, - ScriptElementKindModifier: function () { return ScriptElementKindModifier; }, - ScriptKind: function () { return ScriptKind; }, - ScriptSnapshot: function () { return ScriptSnapshot; }, - ScriptTarget: function () { return ScriptTarget; }, - SemanticClassificationFormat: function () { return SemanticClassificationFormat; }, - SemanticMeaning: function () { return SemanticMeaning; }, - SemicolonPreference: function () { return SemicolonPreference; }, - SignatureCheckMode: function () { return SignatureCheckMode; }, - SignatureFlags: function () { return SignatureFlags; }, - SignatureHelp: function () { return ts_SignatureHelp_exports; }, - SignatureKind: function () { return SignatureKind; }, - SmartSelectionRange: function () { return ts_SmartSelectionRange_exports; }, - SnippetKind: function () { return SnippetKind; }, - SortKind: function () { return SortKind; }, - StructureIsReused: function () { return StructureIsReused; }, - SymbolAccessibility: function () { return SymbolAccessibility; }, - SymbolDisplay: function () { return ts_SymbolDisplay_exports; }, - SymbolDisplayPartKind: function () { return SymbolDisplayPartKind; }, - SymbolFlags: function () { return SymbolFlags; }, - SymbolFormatFlags: function () { return SymbolFormatFlags; }, - SyntaxKind: function () { return SyntaxKind; }, - SyntheticSymbolKind: function () { return SyntheticSymbolKind; }, - Ternary: function () { return Ternary; }, - ThrottledCancellationToken: function () { return ThrottledCancellationToken; }, - TokenClass: function () { return TokenClass; }, - TokenFlags: function () { return TokenFlags; }, - TransformFlags: function () { return TransformFlags; }, - TypeFacts: function () { return TypeFacts; }, - TypeFlags: function () { return TypeFlags; }, - TypeFormatFlags: function () { return TypeFormatFlags; }, - TypeMapKind: function () { return TypeMapKind; }, - TypePredicateKind: function () { return TypePredicateKind; }, - TypeReferenceSerializationKind: function () { return TypeReferenceSerializationKind; }, - TypeScriptServicesFactory: function () { return TypeScriptServicesFactory; }, - UnionReduction: function () { return UnionReduction; }, - UpToDateStatusType: function () { return UpToDateStatusType; }, - VarianceFlags: function () { return VarianceFlags; }, - Version: function () { return Version; }, - VersionRange: function () { return VersionRange; }, - WatchDirectoryFlags: function () { return WatchDirectoryFlags; }, - WatchDirectoryKind: function () { return WatchDirectoryKind; }, - WatchFileKind: function () { return WatchFileKind; }, - WatchLogLevel: function () { return WatchLogLevel; }, - WatchType: function () { return WatchType; }, - accessPrivateIdentifier: function () { return accessPrivateIdentifier; }, - addDisposableResourceHelper: function () { return addDisposableResourceHelper; }, - addEmitFlags: function () { return addEmitFlags; }, - addEmitHelper: function () { return addEmitHelper; }, - addEmitHelpers: function () { return addEmitHelpers; }, - addInternalEmitFlags: function () { return addInternalEmitFlags; }, - addNodeFactoryPatcher: function () { return addNodeFactoryPatcher; }, - addObjectAllocatorPatcher: function () { return addObjectAllocatorPatcher; }, - addRange: function () { return addRange; }, - addRelatedInfo: function () { return addRelatedInfo; }, - addSyntheticLeadingComment: function () { return addSyntheticLeadingComment; }, - addSyntheticTrailingComment: function () { return addSyntheticTrailingComment; }, - addToSeen: function () { return addToSeen; }, - advancedAsyncSuperHelper: function () { return advancedAsyncSuperHelper; }, - affectsDeclarationPathOptionDeclarations: function () { return affectsDeclarationPathOptionDeclarations; }, - affectsEmitOptionDeclarations: function () { return affectsEmitOptionDeclarations; }, - allKeysStartWithDot: function () { return allKeysStartWithDot; }, - altDirectorySeparator: function () { return altDirectorySeparator; }, - and: function () { return and; }, - append: function () { return append; }, - appendIfUnique: function () { return appendIfUnique; }, - arrayFrom: function () { return arrayFrom; }, - arrayIsEqualTo: function () { return arrayIsEqualTo; }, - arrayIsHomogeneous: function () { return arrayIsHomogeneous; }, - arrayIsSorted: function () { return arrayIsSorted; }, - arrayOf: function () { return arrayOf; }, - arrayReverseIterator: function () { return arrayReverseIterator; }, - arrayToMap: function () { return arrayToMap; }, - arrayToMultiMap: function () { return arrayToMultiMap; }, - arrayToNumericMap: function () { return arrayToNumericMap; }, - arraysEqual: function () { return arraysEqual; }, - assertType: function () { return assertType; }, - assign: function () { return assign; }, - assignHelper: function () { return assignHelper; }, - asyncDelegator: function () { return asyncDelegator; }, - asyncGeneratorHelper: function () { return asyncGeneratorHelper; }, - asyncSuperHelper: function () { return asyncSuperHelper; }, - asyncValues: function () { return asyncValues; }, - attachFileToDiagnostics: function () { return attachFileToDiagnostics; }, - awaitHelper: function () { return awaitHelper; }, - awaiterHelper: function () { return awaiterHelper; }, - base64decode: function () { return base64decode; }, - base64encode: function () { return base64encode; }, - binarySearch: function () { return binarySearch; }, - binarySearchKey: function () { return binarySearchKey; }, - bindSourceFile: function () { return bindSourceFile; }, - breakIntoCharacterSpans: function () { return breakIntoCharacterSpans; }, - breakIntoWordSpans: function () { return breakIntoWordSpans; }, - buildLinkParts: function () { return buildLinkParts; }, - buildOpts: function () { return buildOpts; }, - buildOverload: function () { return buildOverload; }, - bundlerModuleNameResolver: function () { return bundlerModuleNameResolver; }, - canBeConvertedToAsync: function () { return canBeConvertedToAsync; }, - canHaveDecorators: function () { return canHaveDecorators; }, - canHaveExportModifier: function () { return canHaveExportModifier; }, - canHaveFlowNode: function () { return canHaveFlowNode; }, - canHaveIllegalDecorators: function () { return canHaveIllegalDecorators; }, - canHaveIllegalModifiers: function () { return canHaveIllegalModifiers; }, - canHaveIllegalType: function () { return canHaveIllegalType; }, - canHaveIllegalTypeParameters: function () { return canHaveIllegalTypeParameters; }, - canHaveJSDoc: function () { return canHaveJSDoc; }, - canHaveLocals: function () { return canHaveLocals; }, - canHaveModifiers: function () { return canHaveModifiers; }, - canHaveSymbol: function () { return canHaveSymbol; }, - canJsonReportNoInputFiles: function () { return canJsonReportNoInputFiles; }, - canProduceDiagnostics: function () { return canProduceDiagnostics; }, - canUsePropertyAccess: function () { return canUsePropertyAccess; }, - canWatchAffectingLocation: function () { return canWatchAffectingLocation; }, - canWatchAtTypes: function () { return canWatchAtTypes; }, - canWatchDirectoryOrFile: function () { return canWatchDirectoryOrFile; }, - cartesianProduct: function () { return cartesianProduct; }, - cast: function () { return cast; }, - chainBundle: function () { return chainBundle; }, - chainDiagnosticMessages: function () { return chainDiagnosticMessages; }, - changeAnyExtension: function () { return changeAnyExtension; }, - changeCompilerHostLikeToUseCache: function () { return changeCompilerHostLikeToUseCache; }, - changeExtension: function () { return changeExtension; }, - changesAffectModuleResolution: function () { return changesAffectModuleResolution; }, - changesAffectingProgramStructure: function () { return changesAffectingProgramStructure; }, - childIsDecorated: function () { return childIsDecorated; }, - classElementOrClassElementParameterIsDecorated: function () { return classElementOrClassElementParameterIsDecorated; }, - classHasClassThisAssignment: function () { return classHasClassThisAssignment; }, - classHasDeclaredOrExplicitlyAssignedName: function () { return classHasDeclaredOrExplicitlyAssignedName; }, - classHasExplicitlyAssignedName: function () { return classHasExplicitlyAssignedName; }, - classOrConstructorParameterIsDecorated: function () { return classOrConstructorParameterIsDecorated; }, - classPrivateFieldGetHelper: function () { return classPrivateFieldGetHelper; }, - classPrivateFieldInHelper: function () { return classPrivateFieldInHelper; }, - classPrivateFieldSetHelper: function () { return classPrivateFieldSetHelper; }, - classicNameResolver: function () { return classicNameResolver; }, - classifier: function () { return ts_classifier_exports; }, - cleanExtendedConfigCache: function () { return cleanExtendedConfigCache; }, - clear: function () { return clear; }, - clearMap: function () { return clearMap; }, - clearSharedExtendedConfigFileWatcher: function () { return clearSharedExtendedConfigFileWatcher; }, - climbPastPropertyAccess: function () { return climbPastPropertyAccess; }, - climbPastPropertyOrElementAccess: function () { return climbPastPropertyOrElementAccess; }, - clone: function () { return clone; }, - cloneCompilerOptions: function () { return cloneCompilerOptions; }, - closeFileWatcher: function () { return closeFileWatcher; }, - closeFileWatcherOf: function () { return closeFileWatcherOf; }, - codefix: function () { return ts_codefix_exports; }, - collapseTextChangeRangesAcrossMultipleVersions: function () { return collapseTextChangeRangesAcrossMultipleVersions; }, - collectExternalModuleInfo: function () { return collectExternalModuleInfo; }, - combine: function () { return combine; }, - combinePaths: function () { return combinePaths; }, - commentPragmas: function () { return commentPragmas; }, - commonOptionsWithBuild: function () { return commonOptionsWithBuild; }, - commonPackageFolders: function () { return commonPackageFolders; }, - compact: function () { return compact; }, - compareBooleans: function () { return compareBooleans; }, - compareDataObjects: function () { return compareDataObjects; }, - compareDiagnostics: function () { return compareDiagnostics; }, - compareDiagnosticsSkipRelatedInformation: function () { return compareDiagnosticsSkipRelatedInformation; }, - compareEmitHelpers: function () { return compareEmitHelpers; }, - compareNumberOfDirectorySeparators: function () { return compareNumberOfDirectorySeparators; }, - comparePaths: function () { return comparePaths; }, - comparePathsCaseInsensitive: function () { return comparePathsCaseInsensitive; }, - comparePathsCaseSensitive: function () { return comparePathsCaseSensitive; }, - comparePatternKeys: function () { return comparePatternKeys; }, - compareProperties: function () { return compareProperties; }, - compareStringsCaseInsensitive: function () { return compareStringsCaseInsensitive; }, - compareStringsCaseInsensitiveEslintCompatible: function () { return compareStringsCaseInsensitiveEslintCompatible; }, - compareStringsCaseSensitive: function () { return compareStringsCaseSensitive; }, - compareStringsCaseSensitiveUI: function () { return compareStringsCaseSensitiveUI; }, - compareTextSpans: function () { return compareTextSpans; }, - compareValues: function () { return compareValues; }, - compileOnSaveCommandLineOption: function () { return compileOnSaveCommandLineOption; }, - compilerOptionsAffectDeclarationPath: function () { return compilerOptionsAffectDeclarationPath; }, - compilerOptionsAffectEmit: function () { return compilerOptionsAffectEmit; }, - compilerOptionsAffectSemanticDiagnostics: function () { return compilerOptionsAffectSemanticDiagnostics; }, - compilerOptionsDidYouMeanDiagnostics: function () { return compilerOptionsDidYouMeanDiagnostics; }, - compilerOptionsIndicateEsModules: function () { return compilerOptionsIndicateEsModules; }, - compose: function () { return compose; }, - computeCommonSourceDirectoryOfFilenames: function () { return computeCommonSourceDirectoryOfFilenames; }, - computeLineAndCharacterOfPosition: function () { return computeLineAndCharacterOfPosition; }, - computeLineOfPosition: function () { return computeLineOfPosition; }, - computeLineStarts: function () { return computeLineStarts; }, - computePositionOfLineAndCharacter: function () { return computePositionOfLineAndCharacter; }, - computeSignature: function () { return computeSignature; }, - computeSignatureWithDiagnostics: function () { return computeSignatureWithDiagnostics; }, - computeSuggestionDiagnostics: function () { return computeSuggestionDiagnostics; }, - concatenate: function () { return concatenate; }, - concatenateDiagnosticMessageChains: function () { return concatenateDiagnosticMessageChains; }, - consumesNodeCoreModules: function () { return consumesNodeCoreModules; }, - contains: function () { return contains; }, - containsIgnoredPath: function () { return containsIgnoredPath; }, - containsObjectRestOrSpread: function () { return containsObjectRestOrSpread; }, - containsParseError: function () { return containsParseError; }, - containsPath: function () { return containsPath; }, - convertCompilerOptionsForTelemetry: function () { return convertCompilerOptionsForTelemetry; }, - convertCompilerOptionsFromJson: function () { return convertCompilerOptionsFromJson; }, - convertJsonOption: function () { return convertJsonOption; }, - convertToBase64: function () { return convertToBase64; }, - convertToJson: function () { return convertToJson; }, - convertToObject: function () { return convertToObject; }, - convertToOptionsWithAbsolutePaths: function () { return convertToOptionsWithAbsolutePaths; }, - convertToRelativePath: function () { return convertToRelativePath; }, - convertToTSConfig: function () { return convertToTSConfig; }, - convertTypeAcquisitionFromJson: function () { return convertTypeAcquisitionFromJson; }, - copyComments: function () { return copyComments; }, - copyEntries: function () { return copyEntries; }, - copyLeadingComments: function () { return copyLeadingComments; }, - copyProperties: function () { return copyProperties; }, - copyTrailingAsLeadingComments: function () { return copyTrailingAsLeadingComments; }, - copyTrailingComments: function () { return copyTrailingComments; }, - couldStartTrivia: function () { return couldStartTrivia; }, - countWhere: function () { return countWhere; }, - createAbstractBuilder: function () { return createAbstractBuilder; }, - createAccessorPropertyBackingField: function () { return createAccessorPropertyBackingField; }, - createAccessorPropertyGetRedirector: function () { return createAccessorPropertyGetRedirector; }, - createAccessorPropertySetRedirector: function () { return createAccessorPropertySetRedirector; }, - createBaseNodeFactory: function () { return createBaseNodeFactory; }, - createBinaryExpressionTrampoline: function () { return createBinaryExpressionTrampoline; }, - createBindingHelper: function () { return createBindingHelper; }, - createBuildInfo: function () { return createBuildInfo; }, - createBuilderProgram: function () { return createBuilderProgram; }, - createBuilderProgramUsingProgramBuildInfo: function () { return createBuilderProgramUsingProgramBuildInfo; }, - createBuilderStatusReporter: function () { return createBuilderStatusReporter; }, - createCacheWithRedirects: function () { return createCacheWithRedirects; }, - createCacheableExportInfoMap: function () { return createCacheableExportInfoMap; }, - createCachedDirectoryStructureHost: function () { return createCachedDirectoryStructureHost; }, - createClassNamedEvaluationHelperBlock: function () { return createClassNamedEvaluationHelperBlock; }, - createClassThisAssignmentBlock: function () { return createClassThisAssignmentBlock; }, - createClassifier: function () { return createClassifier; }, - createCommentDirectivesMap: function () { return createCommentDirectivesMap; }, - createCompilerDiagnostic: function () { return createCompilerDiagnostic; }, - createCompilerDiagnosticForInvalidCustomType: function () { return createCompilerDiagnosticForInvalidCustomType; }, - createCompilerDiagnosticFromMessageChain: function () { return createCompilerDiagnosticFromMessageChain; }, - createCompilerHost: function () { return createCompilerHost; }, - createCompilerHostFromProgramHost: function () { return createCompilerHostFromProgramHost; }, - createCompilerHostWorker: function () { return createCompilerHostWorker; }, - createDetachedDiagnostic: function () { return createDetachedDiagnostic; }, - createDiagnosticCollection: function () { return createDiagnosticCollection; }, - createDiagnosticForFileFromMessageChain: function () { return createDiagnosticForFileFromMessageChain; }, - createDiagnosticForNode: function () { return createDiagnosticForNode; }, - createDiagnosticForNodeArray: function () { return createDiagnosticForNodeArray; }, - createDiagnosticForNodeArrayFromMessageChain: function () { return createDiagnosticForNodeArrayFromMessageChain; }, - createDiagnosticForNodeFromMessageChain: function () { return createDiagnosticForNodeFromMessageChain; }, - createDiagnosticForNodeInSourceFile: function () { return createDiagnosticForNodeInSourceFile; }, - createDiagnosticForRange: function () { return createDiagnosticForRange; }, - createDiagnosticMessageChainFromDiagnostic: function () { return createDiagnosticMessageChainFromDiagnostic; }, - createDiagnosticReporter: function () { return createDiagnosticReporter; }, - createDocumentPositionMapper: function () { return createDocumentPositionMapper; }, - createDocumentRegistry: function () { return createDocumentRegistry; }, - createDocumentRegistryInternal: function () { return createDocumentRegistryInternal; }, - createEmitAndSemanticDiagnosticsBuilderProgram: function () { return createEmitAndSemanticDiagnosticsBuilderProgram; }, - createEmitHelperFactory: function () { return createEmitHelperFactory; }, - createEmptyExports: function () { return createEmptyExports; }, - createExpressionForJsxElement: function () { return createExpressionForJsxElement; }, - createExpressionForJsxFragment: function () { return createExpressionForJsxFragment; }, - createExpressionForObjectLiteralElementLike: function () { return createExpressionForObjectLiteralElementLike; }, - createExpressionForPropertyName: function () { return createExpressionForPropertyName; }, - createExpressionFromEntityName: function () { return createExpressionFromEntityName; }, - createExternalHelpersImportDeclarationIfNeeded: function () { return createExternalHelpersImportDeclarationIfNeeded; }, - createFileDiagnostic: function () { return createFileDiagnostic; }, - createFileDiagnosticFromMessageChain: function () { return createFileDiagnosticFromMessageChain; }, - createForOfBindingStatement: function () { return createForOfBindingStatement; }, - createGetCanonicalFileName: function () { return createGetCanonicalFileName; }, - createGetSourceFile: function () { return createGetSourceFile; }, - createGetSymbolAccessibilityDiagnosticForNode: function () { return createGetSymbolAccessibilityDiagnosticForNode; }, - createGetSymbolAccessibilityDiagnosticForNodeName: function () { return createGetSymbolAccessibilityDiagnosticForNodeName; }, - createGetSymbolWalker: function () { return createGetSymbolWalker; }, - createIncrementalCompilerHost: function () { return createIncrementalCompilerHost; }, - createIncrementalProgram: function () { return createIncrementalProgram; }, - createInputFiles: function () { return createInputFiles; }, - createInputFilesWithFilePaths: function () { return createInputFilesWithFilePaths; }, - createInputFilesWithFileTexts: function () { return createInputFilesWithFileTexts; }, - createJsxFactoryExpression: function () { return createJsxFactoryExpression; }, - createLanguageService: function () { return createLanguageService; }, - createLanguageServiceSourceFile: function () { return createLanguageServiceSourceFile; }, - createMemberAccessForPropertyName: function () { return createMemberAccessForPropertyName; }, - createModeAwareCache: function () { return createModeAwareCache; }, - createModeAwareCacheKey: function () { return createModeAwareCacheKey; }, - createModuleNotFoundChain: function () { return createModuleNotFoundChain; }, - createModuleResolutionCache: function () { return createModuleResolutionCache; }, - createModuleResolutionLoader: function () { return createModuleResolutionLoader; }, - createModuleSpecifierResolutionHost: function () { return createModuleSpecifierResolutionHost; }, - createMultiMap: function () { return createMultiMap; }, - createNodeConverters: function () { return createNodeConverters; }, - createNodeFactory: function () { return createNodeFactory; }, - createOptionNameMap: function () { return createOptionNameMap; }, - createOverload: function () { return createOverload; }, - createPackageJsonImportFilter: function () { return createPackageJsonImportFilter; }, - createPackageJsonInfo: function () { return createPackageJsonInfo; }, - createParenthesizerRules: function () { return createParenthesizerRules; }, - createPatternMatcher: function () { return createPatternMatcher; }, - createPrependNodes: function () { return createPrependNodes; }, - createPrinter: function () { return createPrinter; }, - createPrinterWithDefaults: function () { return createPrinterWithDefaults; }, - createPrinterWithRemoveComments: function () { return createPrinterWithRemoveComments; }, - createPrinterWithRemoveCommentsNeverAsciiEscape: function () { return createPrinterWithRemoveCommentsNeverAsciiEscape; }, - createPrinterWithRemoveCommentsOmitTrailingSemicolon: function () { return createPrinterWithRemoveCommentsOmitTrailingSemicolon; }, - createProgram: function () { return createProgram; }, - createProgramHost: function () { return createProgramHost; }, - createPropertyNameNodeForIdentifierOrLiteral: function () { return createPropertyNameNodeForIdentifierOrLiteral; }, - createQueue: function () { return createQueue; }, - createRange: function () { return createRange; }, - createRedirectedBuilderProgram: function () { return createRedirectedBuilderProgram; }, - createResolutionCache: function () { return createResolutionCache; }, - createRuntimeTypeSerializer: function () { return createRuntimeTypeSerializer; }, - createScanner: function () { return createScanner; }, - createSemanticDiagnosticsBuilderProgram: function () { return createSemanticDiagnosticsBuilderProgram; }, - createSet: function () { return createSet; }, - createSolutionBuilder: function () { return createSolutionBuilder; }, - createSolutionBuilderHost: function () { return createSolutionBuilderHost; }, - createSolutionBuilderWithWatch: function () { return createSolutionBuilderWithWatch; }, - createSolutionBuilderWithWatchHost: function () { return createSolutionBuilderWithWatchHost; }, - createSortedArray: function () { return createSortedArray; }, - createSourceFile: function () { return createSourceFile; }, - createSourceMapGenerator: function () { return createSourceMapGenerator; }, - createSourceMapSource: function () { return createSourceMapSource; }, - createSuperAccessVariableStatement: function () { return createSuperAccessVariableStatement; }, - createSymbolTable: function () { return createSymbolTable; }, - createSymlinkCache: function () { return createSymlinkCache; }, - createSystemWatchFunctions: function () { return createSystemWatchFunctions; }, - createTextChange: function () { return createTextChange; }, - createTextChangeFromStartLength: function () { return createTextChangeFromStartLength; }, - createTextChangeRange: function () { return createTextChangeRange; }, - createTextRangeFromNode: function () { return createTextRangeFromNode; }, - createTextRangeFromSpan: function () { return createTextRangeFromSpan; }, - createTextSpan: function () { return createTextSpan; }, - createTextSpanFromBounds: function () { return createTextSpanFromBounds; }, - createTextSpanFromNode: function () { return createTextSpanFromNode; }, - createTextSpanFromRange: function () { return createTextSpanFromRange; }, - createTextSpanFromStringLiteralLikeContent: function () { return createTextSpanFromStringLiteralLikeContent; }, - createTextWriter: function () { return createTextWriter; }, - createTokenRange: function () { return createTokenRange; }, - createTypeChecker: function () { return createTypeChecker; }, - createTypeReferenceDirectiveResolutionCache: function () { return createTypeReferenceDirectiveResolutionCache; }, - createTypeReferenceResolutionLoader: function () { return createTypeReferenceResolutionLoader; }, - createUnparsedSourceFile: function () { return createUnparsedSourceFile; }, - createWatchCompilerHost: function () { return createWatchCompilerHost2; }, - createWatchCompilerHostOfConfigFile: function () { return createWatchCompilerHostOfConfigFile; }, - createWatchCompilerHostOfFilesAndCompilerOptions: function () { return createWatchCompilerHostOfFilesAndCompilerOptions; }, - createWatchFactory: function () { return createWatchFactory; }, - createWatchHost: function () { return createWatchHost; }, - createWatchProgram: function () { return createWatchProgram; }, - createWatchStatusReporter: function () { return createWatchStatusReporter; }, - createWriteFileMeasuringIO: function () { return createWriteFileMeasuringIO; }, - declarationNameToString: function () { return declarationNameToString; }, - decodeMappings: function () { return decodeMappings; }, - decodedTextSpanIntersectsWith: function () { return decodedTextSpanIntersectsWith; }, - decorateHelper: function () { return decorateHelper; }, - deduplicate: function () { return deduplicate; }, - defaultIncludeSpec: function () { return defaultIncludeSpec; }, - defaultInitCompilerOptions: function () { return defaultInitCompilerOptions; }, - defaultMaximumTruncationLength: function () { return defaultMaximumTruncationLength; }, - detectSortCaseSensitivity: function () { return detectSortCaseSensitivity; }, - diagnosticCategoryName: function () { return diagnosticCategoryName; }, - diagnosticToString: function () { return diagnosticToString; }, - directoryProbablyExists: function () { return directoryProbablyExists; }, - directorySeparator: function () { return directorySeparator; }, - displayPart: function () { return displayPart; }, - displayPartsToString: function () { return displayPartsToString; }, - disposeEmitNodes: function () { return disposeEmitNodes; }, - disposeResourcesHelper: function () { return disposeResourcesHelper; }, - documentSpansEqual: function () { return documentSpansEqual; }, - dumpTracingLegend: function () { return dumpTracingLegend; }, - elementAt: function () { return elementAt; }, - elideNodes: function () { return elideNodes; }, - emitComments: function () { return emitComments; }, - emitDetachedComments: function () { return emitDetachedComments; }, - emitFiles: function () { return emitFiles; }, - emitFilesAndReportErrors: function () { return emitFilesAndReportErrors; }, - emitFilesAndReportErrorsAndGetExitStatus: function () { return emitFilesAndReportErrorsAndGetExitStatus; }, - emitModuleKindIsNonNodeESM: function () { return emitModuleKindIsNonNodeESM; }, - emitNewLineBeforeLeadingCommentOfPosition: function () { return emitNewLineBeforeLeadingCommentOfPosition; }, - emitNewLineBeforeLeadingComments: function () { return emitNewLineBeforeLeadingComments; }, - emitNewLineBeforeLeadingCommentsOfPosition: function () { return emitNewLineBeforeLeadingCommentsOfPosition; }, - emitSkippedWithNoDiagnostics: function () { return emitSkippedWithNoDiagnostics; }, - emitUsingBuildInfo: function () { return emitUsingBuildInfo; }, - emptyArray: function () { return emptyArray; }, - emptyFileSystemEntries: function () { return emptyFileSystemEntries; }, - emptyMap: function () { return emptyMap; }, - emptyOptions: function () { return emptyOptions; }, - emptySet: function () { return emptySet; }, - endsWith: function () { return endsWith; }, - ensurePathIsNonModuleName: function () { return ensurePathIsNonModuleName; }, - ensureScriptKind: function () { return ensureScriptKind; }, - ensureTrailingDirectorySeparator: function () { return ensureTrailingDirectorySeparator; }, - entityNameToString: function () { return entityNameToString; }, - enumerateInsertsAndDeletes: function () { return enumerateInsertsAndDeletes; }, - equalOwnProperties: function () { return equalOwnProperties; }, - equateStringsCaseInsensitive: function () { return equateStringsCaseInsensitive; }, - equateStringsCaseSensitive: function () { return equateStringsCaseSensitive; }, - equateValues: function () { return equateValues; }, - esDecorateHelper: function () { return esDecorateHelper; }, - escapeJsxAttributeString: function () { return escapeJsxAttributeString; }, - escapeLeadingUnderscores: function () { return escapeLeadingUnderscores; }, - escapeNonAsciiString: function () { return escapeNonAsciiString; }, - escapeSnippetText: function () { return escapeSnippetText; }, - escapeString: function () { return escapeString; }, - every: function () { return every; }, - expandPreOrPostfixIncrementOrDecrementExpression: function () { return expandPreOrPostfixIncrementOrDecrementExpression; }, - explainFiles: function () { return explainFiles; }, - explainIfFileIsRedirectAndImpliedFormat: function () { return explainIfFileIsRedirectAndImpliedFormat; }, - exportAssignmentIsAlias: function () { return exportAssignmentIsAlias; }, - exportStarHelper: function () { return exportStarHelper; }, - expressionResultIsUnused: function () { return expressionResultIsUnused; }, - extend: function () { return extend; }, - extendsHelper: function () { return extendsHelper; }, - extensionFromPath: function () { return extensionFromPath; }, - extensionIsTS: function () { return extensionIsTS; }, - extensionsNotSupportingExtensionlessResolution: function () { return extensionsNotSupportingExtensionlessResolution; }, - externalHelpersModuleNameText: function () { return externalHelpersModuleNameText; }, - factory: function () { return factory; }, - fileExtensionIs: function () { return fileExtensionIs; }, - fileExtensionIsOneOf: function () { return fileExtensionIsOneOf; }, - fileIncludeReasonToDiagnostics: function () { return fileIncludeReasonToDiagnostics; }, - fileShouldUseJavaScriptRequire: function () { return fileShouldUseJavaScriptRequire; }, - filter: function () { return filter; }, - filterMutate: function () { return filterMutate; }, - filterSemanticDiagnostics: function () { return filterSemanticDiagnostics; }, - find: function () { return find; }, - findAncestor: function () { return findAncestor; }, - findBestPatternMatch: function () { return findBestPatternMatch; }, - findChildOfKind: function () { return findChildOfKind; }, - findComputedPropertyNameCacheAssignment: function () { return findComputedPropertyNameCacheAssignment; }, - findConfigFile: function () { return findConfigFile; }, - findContainingList: function () { return findContainingList; }, - findDiagnosticForNode: function () { return findDiagnosticForNode; }, - findFirstNonJsxWhitespaceToken: function () { return findFirstNonJsxWhitespaceToken; }, - findIndex: function () { return findIndex; }, - findLast: function () { return findLast; }, - findLastIndex: function () { return findLastIndex; }, - findListItemInfo: function () { return findListItemInfo; }, - findMap: function () { return findMap; }, - findModifier: function () { return findModifier; }, - findNextToken: function () { return findNextToken; }, - findPackageJson: function () { return findPackageJson; }, - findPackageJsons: function () { return findPackageJsons; }, - findPrecedingMatchingToken: function () { return findPrecedingMatchingToken; }, - findPrecedingToken: function () { return findPrecedingToken; }, - findSuperStatementIndexPath: function () { return findSuperStatementIndexPath; }, - findTokenOnLeftOfPosition: function () { return findTokenOnLeftOfPosition; }, - findUseStrictPrologue: function () { return findUseStrictPrologue; }, - first: function () { return first; }, - firstDefined: function () { return firstDefined; }, - firstDefinedIterator: function () { return firstDefinedIterator; }, - firstIterator: function () { return firstIterator; }, - firstOrOnly: function () { return firstOrOnly; }, - firstOrUndefined: function () { return firstOrUndefined; }, - firstOrUndefinedIterator: function () { return firstOrUndefinedIterator; }, - fixupCompilerOptions: function () { return fixupCompilerOptions; }, - flatMap: function () { return flatMap; }, - flatMapIterator: function () { return flatMapIterator; }, - flatMapToMutable: function () { return flatMapToMutable; }, - flatten: function () { return flatten; }, - flattenCommaList: function () { return flattenCommaList; }, - flattenDestructuringAssignment: function () { return flattenDestructuringAssignment; }, - flattenDestructuringBinding: function () { return flattenDestructuringBinding; }, - flattenDiagnosticMessageText: function () { return flattenDiagnosticMessageText; }, - forEach: function () { return forEach; }, - forEachAncestor: function () { return forEachAncestor; }, - forEachAncestorDirectory: function () { return forEachAncestorDirectory; }, - forEachChild: function () { return forEachChild; }, - forEachChildRecursively: function () { return forEachChildRecursively; }, - forEachEmittedFile: function () { return forEachEmittedFile; }, - forEachEnclosingBlockScopeContainer: function () { return forEachEnclosingBlockScopeContainer; }, - forEachEntry: function () { return forEachEntry; }, - forEachExternalModuleToImportFrom: function () { return forEachExternalModuleToImportFrom; }, - forEachImportClauseDeclaration: function () { return forEachImportClauseDeclaration; }, - forEachKey: function () { return forEachKey; }, - forEachLeadingCommentRange: function () { return forEachLeadingCommentRange; }, - forEachNameInAccessChainWalkingLeft: function () { return forEachNameInAccessChainWalkingLeft; }, - forEachPropertyAssignment: function () { return forEachPropertyAssignment; }, - forEachResolvedProjectReference: function () { return forEachResolvedProjectReference; }, - forEachReturnStatement: function () { return forEachReturnStatement; }, - forEachRight: function () { return forEachRight; }, - forEachTrailingCommentRange: function () { return forEachTrailingCommentRange; }, - forEachTsConfigPropArray: function () { return forEachTsConfigPropArray; }, - forEachUnique: function () { return forEachUnique; }, - forEachYieldExpression: function () { return forEachYieldExpression; }, - forSomeAncestorDirectory: function () { return forSomeAncestorDirectory; }, - formatColorAndReset: function () { return formatColorAndReset; }, - formatDiagnostic: function () { return formatDiagnostic; }, - formatDiagnostics: function () { return formatDiagnostics; }, - formatDiagnosticsWithColorAndContext: function () { return formatDiagnosticsWithColorAndContext; }, - formatGeneratedName: function () { return formatGeneratedName; }, - formatGeneratedNamePart: function () { return formatGeneratedNamePart; }, - formatLocation: function () { return formatLocation; }, - formatMessage: function () { return formatMessage; }, - formatStringFromArgs: function () { return formatStringFromArgs; }, - formatting: function () { return ts_formatting_exports; }, - fullTripleSlashAMDReferencePathRegEx: function () { return fullTripleSlashAMDReferencePathRegEx; }, - fullTripleSlashReferencePathRegEx: function () { return fullTripleSlashReferencePathRegEx; }, - generateDjb2Hash: function () { return generateDjb2Hash; }, - generateTSConfig: function () { return generateTSConfig; }, - generatorHelper: function () { return generatorHelper; }, - getAdjustedReferenceLocation: function () { return getAdjustedReferenceLocation; }, - getAdjustedRenameLocation: function () { return getAdjustedRenameLocation; }, - getAliasDeclarationFromName: function () { return getAliasDeclarationFromName; }, - getAllAccessorDeclarations: function () { return getAllAccessorDeclarations; }, - getAllDecoratorsOfClass: function () { return getAllDecoratorsOfClass; }, - getAllDecoratorsOfClassElement: function () { return getAllDecoratorsOfClassElement; }, - getAllJSDocTags: function () { return getAllJSDocTags; }, - getAllJSDocTagsOfKind: function () { return getAllJSDocTagsOfKind; }, - getAllKeys: function () { return getAllKeys; }, - getAllProjectOutputs: function () { return getAllProjectOutputs; }, - getAllSuperTypeNodes: function () { return getAllSuperTypeNodes; }, - getAllUnscopedEmitHelpers: function () { return getAllUnscopedEmitHelpers; }, - getAllowJSCompilerOption: function () { return getAllowJSCompilerOption; }, - getAllowSyntheticDefaultImports: function () { return getAllowSyntheticDefaultImports; }, - getAncestor: function () { return getAncestor; }, - getAnyExtensionFromPath: function () { return getAnyExtensionFromPath; }, - getAreDeclarationMapsEnabled: function () { return getAreDeclarationMapsEnabled; }, - getAssignedExpandoInitializer: function () { return getAssignedExpandoInitializer; }, - getAssignedName: function () { return getAssignedName; }, - getAssignedNameOfIdentifier: function () { return getAssignedNameOfIdentifier; }, - getAssignmentDeclarationKind: function () { return getAssignmentDeclarationKind; }, - getAssignmentDeclarationPropertyAccessKind: function () { return getAssignmentDeclarationPropertyAccessKind; }, - getAssignmentTargetKind: function () { return getAssignmentTargetKind; }, - getAutomaticTypeDirectiveNames: function () { return getAutomaticTypeDirectiveNames; }, - getBaseFileName: function () { return getBaseFileName; }, - getBinaryOperatorPrecedence: function () { return getBinaryOperatorPrecedence; }, - getBuildInfo: function () { return getBuildInfo; }, - getBuildInfoFileVersionMap: function () { return getBuildInfoFileVersionMap; }, - getBuildInfoText: function () { return getBuildInfoText; }, - getBuildOrderFromAnyBuildOrder: function () { return getBuildOrderFromAnyBuildOrder; }, - getBuilderCreationParameters: function () { return getBuilderCreationParameters; }, - getBuilderFileEmit: function () { return getBuilderFileEmit; }, - getCheckFlags: function () { return getCheckFlags; }, - getClassExtendsHeritageElement: function () { return getClassExtendsHeritageElement; }, - getClassLikeDeclarationOfSymbol: function () { return getClassLikeDeclarationOfSymbol; }, - getCombinedLocalAndExportSymbolFlags: function () { return getCombinedLocalAndExportSymbolFlags; }, - getCombinedModifierFlags: function () { return getCombinedModifierFlags; }, - getCombinedNodeFlags: function () { return getCombinedNodeFlags; }, - getCombinedNodeFlagsAlwaysIncludeJSDoc: function () { return getCombinedNodeFlagsAlwaysIncludeJSDoc; }, - getCommentRange: function () { return getCommentRange; }, - getCommonSourceDirectory: function () { return getCommonSourceDirectory; }, - getCommonSourceDirectoryOfConfig: function () { return getCommonSourceDirectoryOfConfig; }, - getCompilerOptionValue: function () { return getCompilerOptionValue; }, - getCompilerOptionsDiffValue: function () { return getCompilerOptionsDiffValue; }, - getConditions: function () { return getConditions; }, - getConfigFileParsingDiagnostics: function () { return getConfigFileParsingDiagnostics; }, - getConstantValue: function () { return getConstantValue; }, - getContainerFlags: function () { return getContainerFlags; }, - getContainerNode: function () { return getContainerNode; }, - getContainingClass: function () { return getContainingClass; }, - getContainingClassExcludingClassDecorators: function () { return getContainingClassExcludingClassDecorators; }, - getContainingClassStaticBlock: function () { return getContainingClassStaticBlock; }, - getContainingFunction: function () { return getContainingFunction; }, - getContainingFunctionDeclaration: function () { return getContainingFunctionDeclaration; }, - getContainingFunctionOrClassStaticBlock: function () { return getContainingFunctionOrClassStaticBlock; }, - getContainingNodeArray: function () { return getContainingNodeArray; }, - getContainingObjectLiteralElement: function () { return getContainingObjectLiteralElement; }, - getContextualTypeFromParent: function () { return getContextualTypeFromParent; }, - getContextualTypeFromParentOrAncestorTypeNode: function () { return getContextualTypeFromParentOrAncestorTypeNode; }, - getCurrentTime: function () { return getCurrentTime; }, - getDeclarationDiagnostics: function () { return getDeclarationDiagnostics; }, - getDeclarationEmitExtensionForPath: function () { return getDeclarationEmitExtensionForPath; }, - getDeclarationEmitOutputFilePath: function () { return getDeclarationEmitOutputFilePath; }, - getDeclarationEmitOutputFilePathWorker: function () { return getDeclarationEmitOutputFilePathWorker; }, - getDeclarationFromName: function () { return getDeclarationFromName; }, - getDeclarationModifierFlagsFromSymbol: function () { return getDeclarationModifierFlagsFromSymbol; }, - getDeclarationOfKind: function () { return getDeclarationOfKind; }, - getDeclarationsOfKind: function () { return getDeclarationsOfKind; }, - getDeclaredExpandoInitializer: function () { return getDeclaredExpandoInitializer; }, - getDecorators: function () { return getDecorators; }, - getDefaultCompilerOptions: function () { return getDefaultCompilerOptions2; }, - getDefaultExportInfoWorker: function () { return getDefaultExportInfoWorker; }, - getDefaultFormatCodeSettings: function () { return getDefaultFormatCodeSettings; }, - getDefaultLibFileName: function () { return getDefaultLibFileName; }, - getDefaultLibFilePath: function () { return getDefaultLibFilePath; }, - getDefaultLikeExportInfo: function () { return getDefaultLikeExportInfo; }, - getDiagnosticText: function () { return getDiagnosticText; }, - getDiagnosticsWithinSpan: function () { return getDiagnosticsWithinSpan; }, - getDirectoryPath: function () { return getDirectoryPath; }, - getDirectoryToWatchFailedLookupLocation: function () { return getDirectoryToWatchFailedLookupLocation; }, - getDirectoryToWatchFailedLookupLocationFromTypeRoot: function () { return getDirectoryToWatchFailedLookupLocationFromTypeRoot; }, - getDocumentPositionMapper: function () { return getDocumentPositionMapper; }, - getESModuleInterop: function () { return getESModuleInterop; }, - getEditsForFileRename: function () { return getEditsForFileRename; }, - getEffectiveBaseTypeNode: function () { return getEffectiveBaseTypeNode; }, - getEffectiveConstraintOfTypeParameter: function () { return getEffectiveConstraintOfTypeParameter; }, - getEffectiveContainerForJSDocTemplateTag: function () { return getEffectiveContainerForJSDocTemplateTag; }, - getEffectiveImplementsTypeNodes: function () { return getEffectiveImplementsTypeNodes; }, - getEffectiveInitializer: function () { return getEffectiveInitializer; }, - getEffectiveJSDocHost: function () { return getEffectiveJSDocHost; }, - getEffectiveModifierFlags: function () { return getEffectiveModifierFlags; }, - getEffectiveModifierFlagsAlwaysIncludeJSDoc: function () { return getEffectiveModifierFlagsAlwaysIncludeJSDoc; }, - getEffectiveModifierFlagsNoCache: function () { return getEffectiveModifierFlagsNoCache; }, - getEffectiveReturnTypeNode: function () { return getEffectiveReturnTypeNode; }, - getEffectiveSetAccessorTypeAnnotationNode: function () { return getEffectiveSetAccessorTypeAnnotationNode; }, - getEffectiveTypeAnnotationNode: function () { return getEffectiveTypeAnnotationNode; }, - getEffectiveTypeParameterDeclarations: function () { return getEffectiveTypeParameterDeclarations; }, - getEffectiveTypeRoots: function () { return getEffectiveTypeRoots; }, - getElementOrPropertyAccessArgumentExpressionOrName: function () { return getElementOrPropertyAccessArgumentExpressionOrName; }, - getElementOrPropertyAccessName: function () { return getElementOrPropertyAccessName; }, - getElementsOfBindingOrAssignmentPattern: function () { return getElementsOfBindingOrAssignmentPattern; }, - getEmitDeclarations: function () { return getEmitDeclarations; }, - getEmitFlags: function () { return getEmitFlags; }, - getEmitHelpers: function () { return getEmitHelpers; }, - getEmitModuleDetectionKind: function () { return getEmitModuleDetectionKind; }, - getEmitModuleKind: function () { return getEmitModuleKind; }, - getEmitModuleResolutionKind: function () { return getEmitModuleResolutionKind; }, - getEmitScriptTarget: function () { return getEmitScriptTarget; }, - getEmitStandardClassFields: function () { return getEmitStandardClassFields; }, - getEnclosingBlockScopeContainer: function () { return getEnclosingBlockScopeContainer; }, - getEnclosingContainer: function () { return getEnclosingContainer; }, - getEncodedSemanticClassifications: function () { return getEncodedSemanticClassifications; }, - getEncodedSyntacticClassifications: function () { return getEncodedSyntacticClassifications; }, - getEndLinePosition: function () { return getEndLinePosition; }, - getEntityNameFromTypeNode: function () { return getEntityNameFromTypeNode; }, - getEntrypointsFromPackageJsonInfo: function () { return getEntrypointsFromPackageJsonInfo; }, - getErrorCountForSummary: function () { return getErrorCountForSummary; }, - getErrorSpanForNode: function () { return getErrorSpanForNode; }, - getErrorSummaryText: function () { return getErrorSummaryText; }, - getEscapedTextOfIdentifierOrLiteral: function () { return getEscapedTextOfIdentifierOrLiteral; }, - getEscapedTextOfJsxAttributeName: function () { return getEscapedTextOfJsxAttributeName; }, - getEscapedTextOfJsxNamespacedName: function () { return getEscapedTextOfJsxNamespacedName; }, - getExpandoInitializer: function () { return getExpandoInitializer; }, - getExportAssignmentExpression: function () { return getExportAssignmentExpression; }, - getExportInfoMap: function () { return getExportInfoMap; }, - getExportNeedsImportStarHelper: function () { return getExportNeedsImportStarHelper; }, - getExpressionAssociativity: function () { return getExpressionAssociativity; }, - getExpressionPrecedence: function () { return getExpressionPrecedence; }, - getExternalHelpersModuleName: function () { return getExternalHelpersModuleName; }, - getExternalModuleImportEqualsDeclarationExpression: function () { return getExternalModuleImportEqualsDeclarationExpression; }, - getExternalModuleName: function () { return getExternalModuleName; }, - getExternalModuleNameFromDeclaration: function () { return getExternalModuleNameFromDeclaration; }, - getExternalModuleNameFromPath: function () { return getExternalModuleNameFromPath; }, - getExternalModuleNameLiteral: function () { return getExternalModuleNameLiteral; }, - getExternalModuleRequireArgument: function () { return getExternalModuleRequireArgument; }, - getFallbackOptions: function () { return getFallbackOptions; }, - getFileEmitOutput: function () { return getFileEmitOutput; }, - getFileMatcherPatterns: function () { return getFileMatcherPatterns; }, - getFileNamesFromConfigSpecs: function () { return getFileNamesFromConfigSpecs; }, - getFileWatcherEventKind: function () { return getFileWatcherEventKind; }, - getFilesInErrorForSummary: function () { return getFilesInErrorForSummary; }, - getFirstConstructorWithBody: function () { return getFirstConstructorWithBody; }, - getFirstIdentifier: function () { return getFirstIdentifier; }, - getFirstNonSpaceCharacterPosition: function () { return getFirstNonSpaceCharacterPosition; }, - getFirstProjectOutput: function () { return getFirstProjectOutput; }, - getFixableErrorSpanExpression: function () { return getFixableErrorSpanExpression; }, - getFormatCodeSettingsForWriting: function () { return getFormatCodeSettingsForWriting; }, - getFullWidth: function () { return getFullWidth; }, - getFunctionFlags: function () { return getFunctionFlags; }, - getHeritageClause: function () { return getHeritageClause; }, - getHostSignatureFromJSDoc: function () { return getHostSignatureFromJSDoc; }, - getIdentifierAutoGenerate: function () { return getIdentifierAutoGenerate; }, - getIdentifierGeneratedImportReference: function () { return getIdentifierGeneratedImportReference; }, - getIdentifierTypeArguments: function () { return getIdentifierTypeArguments; }, - getImmediatelyInvokedFunctionExpression: function () { return getImmediatelyInvokedFunctionExpression; }, - getImpliedNodeFormatForFile: function () { return getImpliedNodeFormatForFile; }, - getImpliedNodeFormatForFileWorker: function () { return getImpliedNodeFormatForFileWorker; }, - getImportNeedsImportDefaultHelper: function () { return getImportNeedsImportDefaultHelper; }, - getImportNeedsImportStarHelper: function () { return getImportNeedsImportStarHelper; }, - getIndentSize: function () { return getIndentSize; }, - getIndentString: function () { return getIndentString; }, - getInferredLibraryNameResolveFrom: function () { return getInferredLibraryNameResolveFrom; }, - getInitializedVariables: function () { return getInitializedVariables; }, - getInitializerOfBinaryExpression: function () { return getInitializerOfBinaryExpression; }, - getInitializerOfBindingOrAssignmentElement: function () { return getInitializerOfBindingOrAssignmentElement; }, - getInterfaceBaseTypeNodes: function () { return getInterfaceBaseTypeNodes; }, - getInternalEmitFlags: function () { return getInternalEmitFlags; }, - getInvokedExpression: function () { return getInvokedExpression; }, - getIsolatedModules: function () { return getIsolatedModules; }, - getJSDocAugmentsTag: function () { return getJSDocAugmentsTag; }, - getJSDocClassTag: function () { return getJSDocClassTag; }, - getJSDocCommentRanges: function () { return getJSDocCommentRanges; }, - getJSDocCommentsAndTags: function () { return getJSDocCommentsAndTags; }, - getJSDocDeprecatedTag: function () { return getJSDocDeprecatedTag; }, - getJSDocDeprecatedTagNoCache: function () { return getJSDocDeprecatedTagNoCache; }, - getJSDocEnumTag: function () { return getJSDocEnumTag; }, - getJSDocHost: function () { return getJSDocHost; }, - getJSDocImplementsTags: function () { return getJSDocImplementsTags; }, - getJSDocOverrideTagNoCache: function () { return getJSDocOverrideTagNoCache; }, - getJSDocParameterTags: function () { return getJSDocParameterTags; }, - getJSDocParameterTagsNoCache: function () { return getJSDocParameterTagsNoCache; }, - getJSDocPrivateTag: function () { return getJSDocPrivateTag; }, - getJSDocPrivateTagNoCache: function () { return getJSDocPrivateTagNoCache; }, - getJSDocProtectedTag: function () { return getJSDocProtectedTag; }, - getJSDocProtectedTagNoCache: function () { return getJSDocProtectedTagNoCache; }, - getJSDocPublicTag: function () { return getJSDocPublicTag; }, - getJSDocPublicTagNoCache: function () { return getJSDocPublicTagNoCache; }, - getJSDocReadonlyTag: function () { return getJSDocReadonlyTag; }, - getJSDocReadonlyTagNoCache: function () { return getJSDocReadonlyTagNoCache; }, - getJSDocReturnTag: function () { return getJSDocReturnTag; }, - getJSDocReturnType: function () { return getJSDocReturnType; }, - getJSDocRoot: function () { return getJSDocRoot; }, - getJSDocSatisfiesExpressionType: function () { return getJSDocSatisfiesExpressionType; }, - getJSDocSatisfiesTag: function () { return getJSDocSatisfiesTag; }, - getJSDocTags: function () { return getJSDocTags; }, - getJSDocTagsNoCache: function () { return getJSDocTagsNoCache; }, - getJSDocTemplateTag: function () { return getJSDocTemplateTag; }, - getJSDocThisTag: function () { return getJSDocThisTag; }, - getJSDocType: function () { return getJSDocType; }, - getJSDocTypeAliasName: function () { return getJSDocTypeAliasName; }, - getJSDocTypeAssertionType: function () { return getJSDocTypeAssertionType; }, - getJSDocTypeParameterDeclarations: function () { return getJSDocTypeParameterDeclarations; }, - getJSDocTypeParameterTags: function () { return getJSDocTypeParameterTags; }, - getJSDocTypeParameterTagsNoCache: function () { return getJSDocTypeParameterTagsNoCache; }, - getJSDocTypeTag: function () { return getJSDocTypeTag; }, - getJSXImplicitImportBase: function () { return getJSXImplicitImportBase; }, - getJSXRuntimeImport: function () { return getJSXRuntimeImport; }, - getJSXTransformEnabled: function () { return getJSXTransformEnabled; }, - getKeyForCompilerOptions: function () { return getKeyForCompilerOptions; }, - getLanguageVariant: function () { return getLanguageVariant; }, - getLastChild: function () { return getLastChild; }, - getLeadingCommentRanges: function () { return getLeadingCommentRanges; }, - getLeadingCommentRangesOfNode: function () { return getLeadingCommentRangesOfNode; }, - getLeftmostAccessExpression: function () { return getLeftmostAccessExpression; }, - getLeftmostExpression: function () { return getLeftmostExpression; }, - getLineAndCharacterOfPosition: function () { return getLineAndCharacterOfPosition; }, - getLineInfo: function () { return getLineInfo; }, - getLineOfLocalPosition: function () { return getLineOfLocalPosition; }, - getLineOfLocalPositionFromLineMap: function () { return getLineOfLocalPositionFromLineMap; }, - getLineStartPositionForPosition: function () { return getLineStartPositionForPosition; }, - getLineStarts: function () { return getLineStarts; }, - getLinesBetweenPositionAndNextNonWhitespaceCharacter: function () { return getLinesBetweenPositionAndNextNonWhitespaceCharacter; }, - getLinesBetweenPositionAndPrecedingNonWhitespaceCharacter: function () { return getLinesBetweenPositionAndPrecedingNonWhitespaceCharacter; }, - getLinesBetweenPositions: function () { return getLinesBetweenPositions; }, - getLinesBetweenRangeEndAndRangeStart: function () { return getLinesBetweenRangeEndAndRangeStart; }, - getLinesBetweenRangeEndPositions: function () { return getLinesBetweenRangeEndPositions; }, - getLiteralText: function () { return getLiteralText; }, - getLocalNameForExternalImport: function () { return getLocalNameForExternalImport; }, - getLocalSymbolForExportDefault: function () { return getLocalSymbolForExportDefault; }, - getLocaleSpecificMessage: function () { return getLocaleSpecificMessage; }, - getLocaleTimeString: function () { return getLocaleTimeString; }, - getMappedContextSpan: function () { return getMappedContextSpan; }, - getMappedDocumentSpan: function () { return getMappedDocumentSpan; }, - getMappedLocation: function () { return getMappedLocation; }, - getMatchedFileSpec: function () { return getMatchedFileSpec; }, - getMatchedIncludeSpec: function () { return getMatchedIncludeSpec; }, - getMeaningFromDeclaration: function () { return getMeaningFromDeclaration; }, - getMeaningFromLocation: function () { return getMeaningFromLocation; }, - getMembersOfDeclaration: function () { return getMembersOfDeclaration; }, - getModeForFileReference: function () { return getModeForFileReference; }, - getModeForResolutionAtIndex: function () { return getModeForResolutionAtIndex; }, - getModeForUsageLocation: function () { return getModeForUsageLocation; }, - getModifiedTime: function () { return getModifiedTime; }, - getModifiers: function () { return getModifiers; }, - getModuleInstanceState: function () { return getModuleInstanceState; }, - getModuleNameStringLiteralAt: function () { return getModuleNameStringLiteralAt; }, - getModuleSpecifierEndingPreference: function () { return getModuleSpecifierEndingPreference; }, - getModuleSpecifierResolverHost: function () { return getModuleSpecifierResolverHost; }, - getNameForExportedSymbol: function () { return getNameForExportedSymbol; }, - getNameFromIndexInfo: function () { return getNameFromIndexInfo; }, - getNameFromPropertyName: function () { return getNameFromPropertyName; }, - getNameOfAccessExpression: function () { return getNameOfAccessExpression; }, - getNameOfCompilerOptionValue: function () { return getNameOfCompilerOptionValue; }, - getNameOfDeclaration: function () { return getNameOfDeclaration; }, - getNameOfExpando: function () { return getNameOfExpando; }, - getNameOfJSDocTypedef: function () { return getNameOfJSDocTypedef; }, - getNameOrArgument: function () { return getNameOrArgument; }, - getNameTable: function () { return getNameTable; }, - getNamesForExportedSymbol: function () { return getNamesForExportedSymbol; }, - getNamespaceDeclarationNode: function () { return getNamespaceDeclarationNode; }, - getNewLineCharacter: function () { return getNewLineCharacter; }, - getNewLineKind: function () { return getNewLineKind; }, - getNewLineOrDefaultFromHost: function () { return getNewLineOrDefaultFromHost; }, - getNewTargetContainer: function () { return getNewTargetContainer; }, - getNextJSDocCommentLocation: function () { return getNextJSDocCommentLocation; }, - getNodeForGeneratedName: function () { return getNodeForGeneratedName; }, - getNodeId: function () { return getNodeId; }, - getNodeKind: function () { return getNodeKind; }, - getNodeModifiers: function () { return getNodeModifiers; }, - getNodeModulePathParts: function () { return getNodeModulePathParts; }, - getNonAssignedNameOfDeclaration: function () { return getNonAssignedNameOfDeclaration; }, - getNonAssignmentOperatorForCompoundAssignment: function () { return getNonAssignmentOperatorForCompoundAssignment; }, - getNonAugmentationDeclaration: function () { return getNonAugmentationDeclaration; }, - getNonDecoratorTokenPosOfNode: function () { return getNonDecoratorTokenPosOfNode; }, - getNormalizedAbsolutePath: function () { return getNormalizedAbsolutePath; }, - getNormalizedAbsolutePathWithoutRoot: function () { return getNormalizedAbsolutePathWithoutRoot; }, - getNormalizedPathComponents: function () { return getNormalizedPathComponents; }, - getObjectFlags: function () { return getObjectFlags; }, - getOperator: function () { return getOperator; }, - getOperatorAssociativity: function () { return getOperatorAssociativity; }, - getOperatorPrecedence: function () { return getOperatorPrecedence; }, - getOptionFromName: function () { return getOptionFromName; }, - getOptionsForLibraryResolution: function () { return getOptionsForLibraryResolution; }, - getOptionsNameMap: function () { return getOptionsNameMap; }, - getOrCreateEmitNode: function () { return getOrCreateEmitNode; }, - getOrCreateExternalHelpersModuleNameIfNeeded: function () { return getOrCreateExternalHelpersModuleNameIfNeeded; }, - getOrUpdate: function () { return getOrUpdate; }, - getOriginalNode: function () { return getOriginalNode; }, - getOriginalNodeId: function () { return getOriginalNodeId; }, - getOriginalSourceFile: function () { return getOriginalSourceFile; }, - getOutputDeclarationFileName: function () { return getOutputDeclarationFileName; }, - getOutputExtension: function () { return getOutputExtension; }, - getOutputFileNames: function () { return getOutputFileNames; }, - getOutputPathsFor: function () { return getOutputPathsFor; }, - getOutputPathsForBundle: function () { return getOutputPathsForBundle; }, - getOwnEmitOutputFilePath: function () { return getOwnEmitOutputFilePath; }, - getOwnKeys: function () { return getOwnKeys; }, - getOwnValues: function () { return getOwnValues; }, - getPackageJsonInfo: function () { return getPackageJsonInfo; }, - getPackageJsonTypesVersionsPaths: function () { return getPackageJsonTypesVersionsPaths; }, - getPackageJsonsVisibleToFile: function () { return getPackageJsonsVisibleToFile; }, - getPackageNameFromTypesPackageName: function () { return getPackageNameFromTypesPackageName; }, - getPackageScopeForPath: function () { return getPackageScopeForPath; }, - getParameterSymbolFromJSDoc: function () { return getParameterSymbolFromJSDoc; }, - getParameterTypeNode: function () { return getParameterTypeNode; }, - getParentNodeInSpan: function () { return getParentNodeInSpan; }, - getParseTreeNode: function () { return getParseTreeNode; }, - getParsedCommandLineOfConfigFile: function () { return getParsedCommandLineOfConfigFile; }, - getPathComponents: function () { return getPathComponents; }, - getPathComponentsRelativeTo: function () { return getPathComponentsRelativeTo; }, - getPathFromPathComponents: function () { return getPathFromPathComponents; }, - getPathUpdater: function () { return getPathUpdater; }, - getPathsBasePath: function () { return getPathsBasePath; }, - getPatternFromSpec: function () { return getPatternFromSpec; }, - getPendingEmitKind: function () { return getPendingEmitKind; }, - getPositionOfLineAndCharacter: function () { return getPositionOfLineAndCharacter; }, - getPossibleGenericSignatures: function () { return getPossibleGenericSignatures; }, - getPossibleOriginalInputExtensionForExtension: function () { return getPossibleOriginalInputExtensionForExtension; }, - getPossibleTypeArgumentsInfo: function () { return getPossibleTypeArgumentsInfo; }, - getPreEmitDiagnostics: function () { return getPreEmitDiagnostics; }, - getPrecedingNonSpaceCharacterPosition: function () { return getPrecedingNonSpaceCharacterPosition; }, - getPrivateIdentifier: function () { return getPrivateIdentifier; }, - getProperties: function () { return getProperties; }, - getProperty: function () { return getProperty; }, - getPropertyArrayElementValue: function () { return getPropertyArrayElementValue; }, - getPropertyAssignmentAliasLikeExpression: function () { return getPropertyAssignmentAliasLikeExpression; }, - getPropertyNameForPropertyNameNode: function () { return getPropertyNameForPropertyNameNode; }, - getPropertyNameForUniqueESSymbol: function () { return getPropertyNameForUniqueESSymbol; }, - getPropertyNameFromType: function () { return getPropertyNameFromType; }, - getPropertyNameOfBindingOrAssignmentElement: function () { return getPropertyNameOfBindingOrAssignmentElement; }, - getPropertySymbolFromBindingElement: function () { return getPropertySymbolFromBindingElement; }, - getPropertySymbolsFromContextualType: function () { return getPropertySymbolsFromContextualType; }, - getQuoteFromPreference: function () { return getQuoteFromPreference; }, - getQuotePreference: function () { return getQuotePreference; }, - getRangesWhere: function () { return getRangesWhere; }, - getRefactorContextSpan: function () { return getRefactorContextSpan; }, - getReferencedFileLocation: function () { return getReferencedFileLocation; }, - getRegexFromPattern: function () { return getRegexFromPattern; }, - getRegularExpressionForWildcard: function () { return getRegularExpressionForWildcard; }, - getRegularExpressionsForWildcards: function () { return getRegularExpressionsForWildcards; }, - getRelativePathFromDirectory: function () { return getRelativePathFromDirectory; }, - getRelativePathFromFile: function () { return getRelativePathFromFile; }, - getRelativePathToDirectoryOrUrl: function () { return getRelativePathToDirectoryOrUrl; }, - getRenameLocation: function () { return getRenameLocation; }, - getReplacementSpanForContextToken: function () { return getReplacementSpanForContextToken; }, - getResolutionDiagnostic: function () { return getResolutionDiagnostic; }, - getResolutionModeOverrideForClause: function () { return getResolutionModeOverrideForClause; }, - getResolveJsonModule: function () { return getResolveJsonModule; }, - getResolvePackageJsonExports: function () { return getResolvePackageJsonExports; }, - getResolvePackageJsonImports: function () { return getResolvePackageJsonImports; }, - getResolvedExternalModuleName: function () { return getResolvedExternalModuleName; }, - getResolvedModule: function () { return getResolvedModule; }, - getResolvedTypeReferenceDirective: function () { return getResolvedTypeReferenceDirective; }, - getRestIndicatorOfBindingOrAssignmentElement: function () { return getRestIndicatorOfBindingOrAssignmentElement; }, - getRestParameterElementType: function () { return getRestParameterElementType; }, - getRightMostAssignedExpression: function () { return getRightMostAssignedExpression; }, - getRootDeclaration: function () { return getRootDeclaration; }, - getRootDirectoryOfResolutionCache: function () { return getRootDirectoryOfResolutionCache; }, - getRootLength: function () { return getRootLength; }, - getRootPathSplitLength: function () { return getRootPathSplitLength; }, - getScriptKind: function () { return getScriptKind; }, - getScriptKindFromFileName: function () { return getScriptKindFromFileName; }, - getScriptTargetFeatures: function () { return getScriptTargetFeatures; }, - getSelectedEffectiveModifierFlags: function () { return getSelectedEffectiveModifierFlags; }, - getSelectedSyntacticModifierFlags: function () { return getSelectedSyntacticModifierFlags; }, - getSemanticClassifications: function () { return getSemanticClassifications; }, - getSemanticJsxChildren: function () { return getSemanticJsxChildren; }, - getSetAccessorTypeAnnotationNode: function () { return getSetAccessorTypeAnnotationNode; }, - getSetAccessorValueParameter: function () { return getSetAccessorValueParameter; }, - getSetExternalModuleIndicator: function () { return getSetExternalModuleIndicator; }, - getShebang: function () { return getShebang; }, - getSingleInitializerOfVariableStatementOrPropertyDeclaration: function () { return getSingleInitializerOfVariableStatementOrPropertyDeclaration; }, - getSingleVariableOfVariableStatement: function () { return getSingleVariableOfVariableStatement; }, - getSnapshotText: function () { return getSnapshotText; }, - getSnippetElement: function () { return getSnippetElement; }, - getSourceFileOfModule: function () { return getSourceFileOfModule; }, - getSourceFileOfNode: function () { return getSourceFileOfNode; }, - getSourceFilePathInNewDir: function () { return getSourceFilePathInNewDir; }, - getSourceFilePathInNewDirWorker: function () { return getSourceFilePathInNewDirWorker; }, - getSourceFileVersionAsHashFromText: function () { return getSourceFileVersionAsHashFromText; }, - getSourceFilesToEmit: function () { return getSourceFilesToEmit; }, - getSourceMapRange: function () { return getSourceMapRange; }, - getSourceMapper: function () { return getSourceMapper; }, - getSourceTextOfNodeFromSourceFile: function () { return getSourceTextOfNodeFromSourceFile; }, - getSpanOfTokenAtPosition: function () { return getSpanOfTokenAtPosition; }, - getSpellingSuggestion: function () { return getSpellingSuggestion; }, - getStartPositionOfLine: function () { return getStartPositionOfLine; }, - getStartPositionOfRange: function () { return getStartPositionOfRange; }, - getStartsOnNewLine: function () { return getStartsOnNewLine; }, - getStaticPropertiesAndClassStaticBlock: function () { return getStaticPropertiesAndClassStaticBlock; }, - getStrictOptionValue: function () { return getStrictOptionValue; }, - getStringComparer: function () { return getStringComparer; }, - getSuperCallFromStatement: function () { return getSuperCallFromStatement; }, - getSuperContainer: function () { return getSuperContainer; }, - getSupportedCodeFixes: function () { return getSupportedCodeFixes; }, - getSupportedExtensions: function () { return getSupportedExtensions; }, - getSupportedExtensionsWithJsonIfResolveJsonModule: function () { return getSupportedExtensionsWithJsonIfResolveJsonModule; }, - getSwitchedType: function () { return getSwitchedType; }, - getSymbolId: function () { return getSymbolId; }, - getSymbolNameForPrivateIdentifier: function () { return getSymbolNameForPrivateIdentifier; }, - getSymbolTarget: function () { return getSymbolTarget; }, - getSyntacticClassifications: function () { return getSyntacticClassifications; }, - getSyntacticModifierFlags: function () { return getSyntacticModifierFlags; }, - getSyntacticModifierFlagsNoCache: function () { return getSyntacticModifierFlagsNoCache; }, - getSynthesizedDeepClone: function () { return getSynthesizedDeepClone; }, - getSynthesizedDeepCloneWithReplacements: function () { return getSynthesizedDeepCloneWithReplacements; }, - getSynthesizedDeepClones: function () { return getSynthesizedDeepClones; }, - getSynthesizedDeepClonesWithReplacements: function () { return getSynthesizedDeepClonesWithReplacements; }, - getSyntheticLeadingComments: function () { return getSyntheticLeadingComments; }, - getSyntheticTrailingComments: function () { return getSyntheticTrailingComments; }, - getTargetLabel: function () { return getTargetLabel; }, - getTargetOfBindingOrAssignmentElement: function () { return getTargetOfBindingOrAssignmentElement; }, - getTemporaryModuleResolutionState: function () { return getTemporaryModuleResolutionState; }, - getTextOfConstantValue: function () { return getTextOfConstantValue; }, - getTextOfIdentifierOrLiteral: function () { return getTextOfIdentifierOrLiteral; }, - getTextOfJSDocComment: function () { return getTextOfJSDocComment; }, - getTextOfJsxAttributeName: function () { return getTextOfJsxAttributeName; }, - getTextOfJsxNamespacedName: function () { return getTextOfJsxNamespacedName; }, - getTextOfNode: function () { return getTextOfNode; }, - getTextOfNodeFromSourceText: function () { return getTextOfNodeFromSourceText; }, - getTextOfPropertyName: function () { return getTextOfPropertyName; }, - getThisContainer: function () { return getThisContainer; }, - getThisParameter: function () { return getThisParameter; }, - getTokenAtPosition: function () { return getTokenAtPosition; }, - getTokenPosOfNode: function () { return getTokenPosOfNode; }, - getTokenSourceMapRange: function () { return getTokenSourceMapRange; }, - getTouchingPropertyName: function () { return getTouchingPropertyName; }, - getTouchingToken: function () { return getTouchingToken; }, - getTrailingCommentRanges: function () { return getTrailingCommentRanges; }, - getTrailingSemicolonDeferringWriter: function () { return getTrailingSemicolonDeferringWriter; }, - getTransformFlagsSubtreeExclusions: function () { return getTransformFlagsSubtreeExclusions; }, - getTransformers: function () { return getTransformers; }, - getTsBuildInfoEmitOutputFilePath: function () { return getTsBuildInfoEmitOutputFilePath; }, - getTsConfigObjectLiteralExpression: function () { return getTsConfigObjectLiteralExpression; }, - getTsConfigPropArrayElementValue: function () { return getTsConfigPropArrayElementValue; }, - getTypeAnnotationNode: function () { return getTypeAnnotationNode; }, - getTypeArgumentOrTypeParameterList: function () { return getTypeArgumentOrTypeParameterList; }, - getTypeKeywordOfTypeOnlyImport: function () { return getTypeKeywordOfTypeOnlyImport; }, - getTypeNode: function () { return getTypeNode; }, - getTypeNodeIfAccessible: function () { return getTypeNodeIfAccessible; }, - getTypeParameterFromJsDoc: function () { return getTypeParameterFromJsDoc; }, - getTypeParameterOwner: function () { return getTypeParameterOwner; }, - getTypesPackageName: function () { return getTypesPackageName; }, - getUILocale: function () { return getUILocale; }, - getUniqueName: function () { return getUniqueName; }, - getUniqueSymbolId: function () { return getUniqueSymbolId; }, - getUseDefineForClassFields: function () { return getUseDefineForClassFields; }, - getWatchErrorSummaryDiagnosticMessage: function () { return getWatchErrorSummaryDiagnosticMessage; }, - getWatchFactory: function () { return getWatchFactory; }, - group: function () { return group; }, - groupBy: function () { return groupBy; }, - guessIndentation: function () { return guessIndentation; }, - handleNoEmitOptions: function () { return handleNoEmitOptions; }, - hasAbstractModifier: function () { return hasAbstractModifier; }, - hasAccessorModifier: function () { return hasAccessorModifier; }, - hasAmbientModifier: function () { return hasAmbientModifier; }, - hasChangesInResolutions: function () { return hasChangesInResolutions; }, - hasChildOfKind: function () { return hasChildOfKind; }, - hasContextSensitiveParameters: function () { return hasContextSensitiveParameters; }, - hasDecorators: function () { return hasDecorators; }, - hasDocComment: function () { return hasDocComment; }, - hasDynamicName: function () { return hasDynamicName; }, - hasEffectiveModifier: function () { return hasEffectiveModifier; }, - hasEffectiveModifiers: function () { return hasEffectiveModifiers; }, - hasEffectiveReadonlyModifier: function () { return hasEffectiveReadonlyModifier; }, - hasExtension: function () { return hasExtension; }, - hasIndexSignature: function () { return hasIndexSignature; }, - hasInitializer: function () { return hasInitializer; }, - hasInvalidEscape: function () { return hasInvalidEscape; }, - hasJSDocNodes: function () { return hasJSDocNodes; }, - hasJSDocParameterTags: function () { return hasJSDocParameterTags; }, - hasJSFileExtension: function () { return hasJSFileExtension; }, - hasJsonModuleEmitEnabled: function () { return hasJsonModuleEmitEnabled; }, - hasOnlyExpressionInitializer: function () { return hasOnlyExpressionInitializer; }, - hasOverrideModifier: function () { return hasOverrideModifier; }, - hasPossibleExternalModuleReference: function () { return hasPossibleExternalModuleReference; }, - hasProperty: function () { return hasProperty; }, - hasPropertyAccessExpressionWithName: function () { return hasPropertyAccessExpressionWithName; }, - hasQuestionToken: function () { return hasQuestionToken; }, - hasRecordedExternalHelpers: function () { return hasRecordedExternalHelpers; }, - hasRestParameter: function () { return hasRestParameter; }, - hasScopeMarker: function () { return hasScopeMarker; }, - hasStaticModifier: function () { return hasStaticModifier; }, - hasSyntacticModifier: function () { return hasSyntacticModifier; }, - hasSyntacticModifiers: function () { return hasSyntacticModifiers; }, - hasTSFileExtension: function () { return hasTSFileExtension; }, - hasTabstop: function () { return hasTabstop; }, - hasTrailingDirectorySeparator: function () { return hasTrailingDirectorySeparator; }, - hasType: function () { return hasType; }, - hasTypeArguments: function () { return hasTypeArguments; }, - hasZeroOrOneAsteriskCharacter: function () { return hasZeroOrOneAsteriskCharacter; }, - helperString: function () { return helperString; }, - hostGetCanonicalFileName: function () { return hostGetCanonicalFileName; }, - hostUsesCaseSensitiveFileNames: function () { return hostUsesCaseSensitiveFileNames; }, - idText: function () { return idText; }, - identifierIsThisKeyword: function () { return identifierIsThisKeyword; }, - identifierToKeywordKind: function () { return identifierToKeywordKind; }, - identity: function () { return identity; }, - identitySourceMapConsumer: function () { return identitySourceMapConsumer; }, - ignoreSourceNewlines: function () { return ignoreSourceNewlines; }, - ignoredPaths: function () { return ignoredPaths; }, - importDefaultHelper: function () { return importDefaultHelper; }, - importFromModuleSpecifier: function () { return importFromModuleSpecifier; }, - importNameElisionDisabled: function () { return importNameElisionDisabled; }, - importStarHelper: function () { return importStarHelper; }, - indexOfAnyCharCode: function () { return indexOfAnyCharCode; }, - indexOfNode: function () { return indexOfNode; }, - indicesOf: function () { return indicesOf; }, - inferredTypesContainingFile: function () { return inferredTypesContainingFile; }, - injectClassNamedEvaluationHelperBlockIfMissing: function () { return injectClassNamedEvaluationHelperBlockIfMissing; }, - injectClassThisAssignmentIfMissing: function () { return injectClassThisAssignmentIfMissing; }, - insertImports: function () { return insertImports; }, - insertLeadingStatement: function () { return insertLeadingStatement; }, - insertSorted: function () { return insertSorted; }, - insertStatementAfterCustomPrologue: function () { return insertStatementAfterCustomPrologue; }, - insertStatementAfterStandardPrologue: function () { return insertStatementAfterStandardPrologue; }, - insertStatementsAfterCustomPrologue: function () { return insertStatementsAfterCustomPrologue; }, - insertStatementsAfterStandardPrologue: function () { return insertStatementsAfterStandardPrologue; }, - intersperse: function () { return intersperse; }, - intrinsicTagNameToString: function () { return intrinsicTagNameToString; }, - introducesArgumentsExoticObject: function () { return introducesArgumentsExoticObject; }, - inverseJsxOptionMap: function () { return inverseJsxOptionMap; }, - isAbstractConstructorSymbol: function () { return isAbstractConstructorSymbol; }, - isAbstractModifier: function () { return isAbstractModifier; }, - isAccessExpression: function () { return isAccessExpression; }, - isAccessibilityModifier: function () { return isAccessibilityModifier; }, - isAccessor: function () { return isAccessor; }, - isAccessorModifier: function () { return isAccessorModifier; }, - isAliasSymbolDeclaration: function () { return isAliasSymbolDeclaration; }, - isAliasableExpression: function () { return isAliasableExpression; }, - isAmbientModule: function () { return isAmbientModule; }, - isAmbientPropertyDeclaration: function () { return isAmbientPropertyDeclaration; }, - isAnonymousFunctionDefinition: function () { return isAnonymousFunctionDefinition; }, - isAnyDirectorySeparator: function () { return isAnyDirectorySeparator; }, - isAnyImportOrBareOrAccessedRequire: function () { return isAnyImportOrBareOrAccessedRequire; }, - isAnyImportOrReExport: function () { return isAnyImportOrReExport; }, - isAnyImportSyntax: function () { return isAnyImportSyntax; }, - isAnySupportedFileExtension: function () { return isAnySupportedFileExtension; }, - isApplicableVersionedTypesKey: function () { return isApplicableVersionedTypesKey; }, - isArgumentExpressionOfElementAccess: function () { return isArgumentExpressionOfElementAccess; }, - isArray: function () { return isArray; }, - isArrayBindingElement: function () { return isArrayBindingElement; }, - isArrayBindingOrAssignmentElement: function () { return isArrayBindingOrAssignmentElement; }, - isArrayBindingOrAssignmentPattern: function () { return isArrayBindingOrAssignmentPattern; }, - isArrayBindingPattern: function () { return isArrayBindingPattern; }, - isArrayLiteralExpression: function () { return isArrayLiteralExpression; }, - isArrayLiteralOrObjectLiteralDestructuringPattern: function () { return isArrayLiteralOrObjectLiteralDestructuringPattern; }, - isArrayTypeNode: function () { return isArrayTypeNode; }, - isArrowFunction: function () { return isArrowFunction; }, - isAsExpression: function () { return isAsExpression; }, - isAssertClause: function () { return isAssertClause; }, - isAssertEntry: function () { return isAssertEntry; }, - isAssertionExpression: function () { return isAssertionExpression; }, - isAssertionKey: function () { return isAssertionKey; }, - isAssertsKeyword: function () { return isAssertsKeyword; }, - isAssignmentDeclaration: function () { return isAssignmentDeclaration; }, - isAssignmentExpression: function () { return isAssignmentExpression; }, - isAssignmentOperator: function () { return isAssignmentOperator; }, - isAssignmentPattern: function () { return isAssignmentPattern; }, - isAssignmentTarget: function () { return isAssignmentTarget; }, - isAsteriskToken: function () { return isAsteriskToken; }, - isAsyncFunction: function () { return isAsyncFunction; }, - isAsyncModifier: function () { return isAsyncModifier; }, - isAutoAccessorPropertyDeclaration: function () { return isAutoAccessorPropertyDeclaration; }, - isAwaitExpression: function () { return isAwaitExpression; }, - isAwaitKeyword: function () { return isAwaitKeyword; }, - isBigIntLiteral: function () { return isBigIntLiteral; }, - isBinaryExpression: function () { return isBinaryExpression; }, - isBinaryOperatorToken: function () { return isBinaryOperatorToken; }, - isBindableObjectDefinePropertyCall: function () { return isBindableObjectDefinePropertyCall; }, - isBindableStaticAccessExpression: function () { return isBindableStaticAccessExpression; }, - isBindableStaticElementAccessExpression: function () { return isBindableStaticElementAccessExpression; }, - isBindableStaticNameExpression: function () { return isBindableStaticNameExpression; }, - isBindingElement: function () { return isBindingElement; }, - isBindingElementOfBareOrAccessedRequire: function () { return isBindingElementOfBareOrAccessedRequire; }, - isBindingName: function () { return isBindingName; }, - isBindingOrAssignmentElement: function () { return isBindingOrAssignmentElement; }, - isBindingOrAssignmentPattern: function () { return isBindingOrAssignmentPattern; }, - isBindingPattern: function () { return isBindingPattern; }, - isBlock: function () { return isBlock; }, - isBlockOrCatchScoped: function () { return isBlockOrCatchScoped; }, - isBlockScope: function () { return isBlockScope; }, - isBlockScopedContainerTopLevel: function () { return isBlockScopedContainerTopLevel; }, - isBooleanLiteral: function () { return isBooleanLiteral; }, - isBreakOrContinueStatement: function () { return isBreakOrContinueStatement; }, - isBreakStatement: function () { return isBreakStatement; }, - isBuildInfoFile: function () { return isBuildInfoFile; }, - isBuilderProgram: function () { return isBuilderProgram2; }, - isBundle: function () { return isBundle; }, - isBundleFileTextLike: function () { return isBundleFileTextLike; }, - isCallChain: function () { return isCallChain; }, - isCallExpression: function () { return isCallExpression; }, - isCallExpressionTarget: function () { return isCallExpressionTarget; }, - isCallLikeExpression: function () { return isCallLikeExpression; }, - isCallOrNewExpression: function () { return isCallOrNewExpression; }, - isCallOrNewExpressionTarget: function () { return isCallOrNewExpressionTarget; }, - isCallSignatureDeclaration: function () { return isCallSignatureDeclaration; }, - isCallToHelper: function () { return isCallToHelper; }, - isCaseBlock: function () { return isCaseBlock; }, - isCaseClause: function () { return isCaseClause; }, - isCaseKeyword: function () { return isCaseKeyword; }, - isCaseOrDefaultClause: function () { return isCaseOrDefaultClause; }, - isCatchClause: function () { return isCatchClause; }, - isCatchClauseVariableDeclaration: function () { return isCatchClauseVariableDeclaration; }, - isCatchClauseVariableDeclarationOrBindingElement: function () { return isCatchClauseVariableDeclarationOrBindingElement; }, - isCheckJsEnabledForFile: function () { return isCheckJsEnabledForFile; }, - isChildOfNodeWithKind: function () { return isChildOfNodeWithKind; }, - isCircularBuildOrder: function () { return isCircularBuildOrder; }, - isClassDeclaration: function () { return isClassDeclaration; }, - isClassElement: function () { return isClassElement; }, - isClassExpression: function () { return isClassExpression; }, - isClassLike: function () { return isClassLike; }, - isClassMemberModifier: function () { return isClassMemberModifier; }, - isClassNamedEvaluationHelperBlock: function () { return isClassNamedEvaluationHelperBlock; }, - isClassOrTypeElement: function () { return isClassOrTypeElement; }, - isClassStaticBlockDeclaration: function () { return isClassStaticBlockDeclaration; }, - isClassThisAssignmentBlock: function () { return isClassThisAssignmentBlock; }, - isCollapsedRange: function () { return isCollapsedRange; }, - isColonToken: function () { return isColonToken; }, - isCommaExpression: function () { return isCommaExpression; }, - isCommaListExpression: function () { return isCommaListExpression; }, - isCommaSequence: function () { return isCommaSequence; }, - isCommaToken: function () { return isCommaToken; }, - isComment: function () { return isComment; }, - isCommonJsExportPropertyAssignment: function () { return isCommonJsExportPropertyAssignment; }, - isCommonJsExportedExpression: function () { return isCommonJsExportedExpression; }, - isCompoundAssignment: function () { return isCompoundAssignment; }, - isComputedNonLiteralName: function () { return isComputedNonLiteralName; }, - isComputedPropertyName: function () { return isComputedPropertyName; }, - isConciseBody: function () { return isConciseBody; }, - isConditionalExpression: function () { return isConditionalExpression; }, - isConditionalTypeNode: function () { return isConditionalTypeNode; }, - isConstTypeReference: function () { return isConstTypeReference; }, - isConstructSignatureDeclaration: function () { return isConstructSignatureDeclaration; }, - isConstructorDeclaration: function () { return isConstructorDeclaration; }, - isConstructorTypeNode: function () { return isConstructorTypeNode; }, - isContextualKeyword: function () { return isContextualKeyword; }, - isContinueStatement: function () { return isContinueStatement; }, - isCustomPrologue: function () { return isCustomPrologue; }, - isDebuggerStatement: function () { return isDebuggerStatement; }, - isDeclaration: function () { return isDeclaration; }, - isDeclarationBindingElement: function () { return isDeclarationBindingElement; }, - isDeclarationFileName: function () { return isDeclarationFileName; }, - isDeclarationName: function () { return isDeclarationName; }, - isDeclarationNameOfEnumOrNamespace: function () { return isDeclarationNameOfEnumOrNamespace; }, - isDeclarationReadonly: function () { return isDeclarationReadonly; }, - isDeclarationStatement: function () { return isDeclarationStatement; }, - isDeclarationWithTypeParameterChildren: function () { return isDeclarationWithTypeParameterChildren; }, - isDeclarationWithTypeParameters: function () { return isDeclarationWithTypeParameters; }, - isDecorator: function () { return isDecorator; }, - isDecoratorTarget: function () { return isDecoratorTarget; }, - isDefaultClause: function () { return isDefaultClause; }, - isDefaultImport: function () { return isDefaultImport; }, - isDefaultModifier: function () { return isDefaultModifier; }, - isDefaultedExpandoInitializer: function () { return isDefaultedExpandoInitializer; }, - isDeleteExpression: function () { return isDeleteExpression; }, - isDeleteTarget: function () { return isDeleteTarget; }, - isDeprecatedDeclaration: function () { return isDeprecatedDeclaration; }, - isDestructuringAssignment: function () { return isDestructuringAssignment; }, - isDiagnosticWithLocation: function () { return isDiagnosticWithLocation; }, - isDiskPathRoot: function () { return isDiskPathRoot; }, - isDoStatement: function () { return isDoStatement; }, - isDocumentRegistryEntry: function () { return isDocumentRegistryEntry; }, - isDotDotDotToken: function () { return isDotDotDotToken; }, - isDottedName: function () { return isDottedName; }, - isDynamicName: function () { return isDynamicName; }, - isESSymbolIdentifier: function () { return isESSymbolIdentifier; }, - isEffectiveExternalModule: function () { return isEffectiveExternalModule; }, - isEffectiveModuleDeclaration: function () { return isEffectiveModuleDeclaration; }, - isEffectiveStrictModeSourceFile: function () { return isEffectiveStrictModeSourceFile; }, - isElementAccessChain: function () { return isElementAccessChain; }, - isElementAccessExpression: function () { return isElementAccessExpression; }, - isEmittedFileOfProgram: function () { return isEmittedFileOfProgram; }, - isEmptyArrayLiteral: function () { return isEmptyArrayLiteral; }, - isEmptyBindingElement: function () { return isEmptyBindingElement; }, - isEmptyBindingPattern: function () { return isEmptyBindingPattern; }, - isEmptyObjectLiteral: function () { return isEmptyObjectLiteral; }, - isEmptyStatement: function () { return isEmptyStatement; }, - isEmptyStringLiteral: function () { return isEmptyStringLiteral; }, - isEntityName: function () { return isEntityName; }, - isEntityNameExpression: function () { return isEntityNameExpression; }, - isEnumConst: function () { return isEnumConst; }, - isEnumDeclaration: function () { return isEnumDeclaration; }, - isEnumMember: function () { return isEnumMember; }, - isEqualityOperatorKind: function () { return isEqualityOperatorKind; }, - isEqualsGreaterThanToken: function () { return isEqualsGreaterThanToken; }, - isExclamationToken: function () { return isExclamationToken; }, - isExcludedFile: function () { return isExcludedFile; }, - isExclusivelyTypeOnlyImportOrExport: function () { return isExclusivelyTypeOnlyImportOrExport; }, - isExportAssignment: function () { return isExportAssignment; }, - isExportDeclaration: function () { return isExportDeclaration; }, - isExportModifier: function () { return isExportModifier; }, - isExportName: function () { return isExportName; }, - isExportNamespaceAsDefaultDeclaration: function () { return isExportNamespaceAsDefaultDeclaration; }, - isExportOrDefaultModifier: function () { return isExportOrDefaultModifier; }, - isExportSpecifier: function () { return isExportSpecifier; }, - isExportsIdentifier: function () { return isExportsIdentifier; }, - isExportsOrModuleExportsOrAlias: function () { return isExportsOrModuleExportsOrAlias; }, - isExpression: function () { return isExpression; }, - isExpressionNode: function () { return isExpressionNode; }, - isExpressionOfExternalModuleImportEqualsDeclaration: function () { return isExpressionOfExternalModuleImportEqualsDeclaration; }, - isExpressionOfOptionalChainRoot: function () { return isExpressionOfOptionalChainRoot; }, - isExpressionStatement: function () { return isExpressionStatement; }, - isExpressionWithTypeArguments: function () { return isExpressionWithTypeArguments; }, - isExpressionWithTypeArgumentsInClassExtendsClause: function () { return isExpressionWithTypeArgumentsInClassExtendsClause; }, - isExternalModule: function () { return isExternalModule; }, - isExternalModuleAugmentation: function () { return isExternalModuleAugmentation; }, - isExternalModuleImportEqualsDeclaration: function () { return isExternalModuleImportEqualsDeclaration; }, - isExternalModuleIndicator: function () { return isExternalModuleIndicator; }, - isExternalModuleNameRelative: function () { return isExternalModuleNameRelative; }, - isExternalModuleReference: function () { return isExternalModuleReference; }, - isExternalModuleSymbol: function () { return isExternalModuleSymbol; }, - isExternalOrCommonJsModule: function () { return isExternalOrCommonJsModule; }, - isFileLevelReservedGeneratedIdentifier: function () { return isFileLevelReservedGeneratedIdentifier; }, - isFileLevelUniqueName: function () { return isFileLevelUniqueName; }, - isFileProbablyExternalModule: function () { return isFileProbablyExternalModule; }, - isFirstDeclarationOfSymbolParameter: function () { return isFirstDeclarationOfSymbolParameter; }, - isFixablePromiseHandler: function () { return isFixablePromiseHandler; }, - isForInOrOfStatement: function () { return isForInOrOfStatement; }, - isForInStatement: function () { return isForInStatement; }, - isForInitializer: function () { return isForInitializer; }, - isForOfStatement: function () { return isForOfStatement; }, - isForStatement: function () { return isForStatement; }, - isFunctionBlock: function () { return isFunctionBlock; }, - isFunctionBody: function () { return isFunctionBody; }, - isFunctionDeclaration: function () { return isFunctionDeclaration; }, - isFunctionExpression: function () { return isFunctionExpression; }, - isFunctionExpressionOrArrowFunction: function () { return isFunctionExpressionOrArrowFunction; }, - isFunctionLike: function () { return isFunctionLike; }, - isFunctionLikeDeclaration: function () { return isFunctionLikeDeclaration; }, - isFunctionLikeKind: function () { return isFunctionLikeKind; }, - isFunctionLikeOrClassStaticBlockDeclaration: function () { return isFunctionLikeOrClassStaticBlockDeclaration; }, - isFunctionOrConstructorTypeNode: function () { return isFunctionOrConstructorTypeNode; }, - isFunctionOrModuleBlock: function () { return isFunctionOrModuleBlock; }, - isFunctionSymbol: function () { return isFunctionSymbol; }, - isFunctionTypeNode: function () { return isFunctionTypeNode; }, - isFutureReservedKeyword: function () { return isFutureReservedKeyword; }, - isGeneratedIdentifier: function () { return isGeneratedIdentifier; }, - isGeneratedPrivateIdentifier: function () { return isGeneratedPrivateIdentifier; }, - isGetAccessor: function () { return isGetAccessor; }, - isGetAccessorDeclaration: function () { return isGetAccessorDeclaration; }, - isGetOrSetAccessorDeclaration: function () { return isGetOrSetAccessorDeclaration; }, - isGlobalDeclaration: function () { return isGlobalDeclaration; }, - isGlobalScopeAugmentation: function () { return isGlobalScopeAugmentation; }, - isGrammarError: function () { return isGrammarError; }, - isHeritageClause: function () { return isHeritageClause; }, - isHoistedFunction: function () { return isHoistedFunction; }, - isHoistedVariableStatement: function () { return isHoistedVariableStatement; }, - isIdentifier: function () { return isIdentifier; }, - isIdentifierANonContextualKeyword: function () { return isIdentifierANonContextualKeyword; }, - isIdentifierName: function () { return isIdentifierName; }, - isIdentifierOrThisTypeNode: function () { return isIdentifierOrThisTypeNode; }, - isIdentifierPart: function () { return isIdentifierPart; }, - isIdentifierStart: function () { return isIdentifierStart; }, - isIdentifierText: function () { return isIdentifierText; }, - isIdentifierTypePredicate: function () { return isIdentifierTypePredicate; }, - isIdentifierTypeReference: function () { return isIdentifierTypeReference; }, - isIfStatement: function () { return isIfStatement; }, - isIgnoredFileFromWildCardWatching: function () { return isIgnoredFileFromWildCardWatching; }, - isImplicitGlob: function () { return isImplicitGlob; }, - isImportCall: function () { return isImportCall; }, - isImportClause: function () { return isImportClause; }, - isImportDeclaration: function () { return isImportDeclaration; }, - isImportEqualsDeclaration: function () { return isImportEqualsDeclaration; }, - isImportKeyword: function () { return isImportKeyword; }, - isImportMeta: function () { return isImportMeta; }, - isImportOrExportSpecifier: function () { return isImportOrExportSpecifier; }, - isImportOrExportSpecifierName: function () { return isImportOrExportSpecifierName; }, - isImportSpecifier: function () { return isImportSpecifier; }, - isImportTypeAssertionContainer: function () { return isImportTypeAssertionContainer; }, - isImportTypeNode: function () { return isImportTypeNode; }, - isImportableFile: function () { return isImportableFile; }, - isInComment: function () { return isInComment; }, - isInExpressionContext: function () { return isInExpressionContext; }, - isInJSDoc: function () { return isInJSDoc; }, - isInJSFile: function () { return isInJSFile; }, - isInJSXText: function () { return isInJSXText; }, - isInJsonFile: function () { return isInJsonFile; }, - isInNonReferenceComment: function () { return isInNonReferenceComment; }, - isInReferenceComment: function () { return isInReferenceComment; }, - isInRightSideOfInternalImportEqualsDeclaration: function () { return isInRightSideOfInternalImportEqualsDeclaration; }, - isInString: function () { return isInString; }, - isInTemplateString: function () { return isInTemplateString; }, - isInTopLevelContext: function () { return isInTopLevelContext; }, - isInTypeQuery: function () { return isInTypeQuery; }, - isIncrementalCompilation: function () { return isIncrementalCompilation; }, - isIndexSignatureDeclaration: function () { return isIndexSignatureDeclaration; }, - isIndexedAccessTypeNode: function () { return isIndexedAccessTypeNode; }, - isInferTypeNode: function () { return isInferTypeNode; }, - isInfinityOrNaNString: function () { return isInfinityOrNaNString; }, - isInitializedProperty: function () { return isInitializedProperty; }, - isInitializedVariable: function () { return isInitializedVariable; }, - isInsideJsxElement: function () { return isInsideJsxElement; }, - isInsideJsxElementOrAttribute: function () { return isInsideJsxElementOrAttribute; }, - isInsideNodeModules: function () { return isInsideNodeModules; }, - isInsideTemplateLiteral: function () { return isInsideTemplateLiteral; }, - isInstantiatedModule: function () { return isInstantiatedModule; }, - isInterfaceDeclaration: function () { return isInterfaceDeclaration; }, - isInternalDeclaration: function () { return isInternalDeclaration; }, - isInternalModuleImportEqualsDeclaration: function () { return isInternalModuleImportEqualsDeclaration; }, - isInternalName: function () { return isInternalName; }, - isIntersectionTypeNode: function () { return isIntersectionTypeNode; }, - isIntrinsicJsxName: function () { return isIntrinsicJsxName; }, - isIterationStatement: function () { return isIterationStatement; }, - isJSDoc: function () { return isJSDoc; }, - isJSDocAllType: function () { return isJSDocAllType; }, - isJSDocAugmentsTag: function () { return isJSDocAugmentsTag; }, - isJSDocAuthorTag: function () { return isJSDocAuthorTag; }, - isJSDocCallbackTag: function () { return isJSDocCallbackTag; }, - isJSDocClassTag: function () { return isJSDocClassTag; }, - isJSDocCommentContainingNode: function () { return isJSDocCommentContainingNode; }, - isJSDocConstructSignature: function () { return isJSDocConstructSignature; }, - isJSDocDeprecatedTag: function () { return isJSDocDeprecatedTag; }, - isJSDocEnumTag: function () { return isJSDocEnumTag; }, - isJSDocFunctionType: function () { return isJSDocFunctionType; }, - isJSDocImplementsTag: function () { return isJSDocImplementsTag; }, - isJSDocIndexSignature: function () { return isJSDocIndexSignature; }, - isJSDocLikeText: function () { return isJSDocLikeText; }, - isJSDocLink: function () { return isJSDocLink; }, - isJSDocLinkCode: function () { return isJSDocLinkCode; }, - isJSDocLinkLike: function () { return isJSDocLinkLike; }, - isJSDocLinkPlain: function () { return isJSDocLinkPlain; }, - isJSDocMemberName: function () { return isJSDocMemberName; }, - isJSDocNameReference: function () { return isJSDocNameReference; }, - isJSDocNamepathType: function () { return isJSDocNamepathType; }, - isJSDocNamespaceBody: function () { return isJSDocNamespaceBody; }, - isJSDocNode: function () { return isJSDocNode; }, - isJSDocNonNullableType: function () { return isJSDocNonNullableType; }, - isJSDocNullableType: function () { return isJSDocNullableType; }, - isJSDocOptionalParameter: function () { return isJSDocOptionalParameter; }, - isJSDocOptionalType: function () { return isJSDocOptionalType; }, - isJSDocOverloadTag: function () { return isJSDocOverloadTag; }, - isJSDocOverrideTag: function () { return isJSDocOverrideTag; }, - isJSDocParameterTag: function () { return isJSDocParameterTag; }, - isJSDocPrivateTag: function () { return isJSDocPrivateTag; }, - isJSDocPropertyLikeTag: function () { return isJSDocPropertyLikeTag; }, - isJSDocPropertyTag: function () { return isJSDocPropertyTag; }, - isJSDocProtectedTag: function () { return isJSDocProtectedTag; }, - isJSDocPublicTag: function () { return isJSDocPublicTag; }, - isJSDocReadonlyTag: function () { return isJSDocReadonlyTag; }, - isJSDocReturnTag: function () { return isJSDocReturnTag; }, - isJSDocSatisfiesExpression: function () { return isJSDocSatisfiesExpression; }, - isJSDocSatisfiesTag: function () { return isJSDocSatisfiesTag; }, - isJSDocSeeTag: function () { return isJSDocSeeTag; }, - isJSDocSignature: function () { return isJSDocSignature; }, - isJSDocTag: function () { return isJSDocTag; }, - isJSDocTemplateTag: function () { return isJSDocTemplateTag; }, - isJSDocThisTag: function () { return isJSDocThisTag; }, - isJSDocThrowsTag: function () { return isJSDocThrowsTag; }, - isJSDocTypeAlias: function () { return isJSDocTypeAlias; }, - isJSDocTypeAssertion: function () { return isJSDocTypeAssertion; }, - isJSDocTypeExpression: function () { return isJSDocTypeExpression; }, - isJSDocTypeLiteral: function () { return isJSDocTypeLiteral; }, - isJSDocTypeTag: function () { return isJSDocTypeTag; }, - isJSDocTypedefTag: function () { return isJSDocTypedefTag; }, - isJSDocUnknownTag: function () { return isJSDocUnknownTag; }, - isJSDocUnknownType: function () { return isJSDocUnknownType; }, - isJSDocVariadicType: function () { return isJSDocVariadicType; }, - isJSXTagName: function () { return isJSXTagName; }, - isJsonEqual: function () { return isJsonEqual; }, - isJsonSourceFile: function () { return isJsonSourceFile; }, - isJsxAttribute: function () { return isJsxAttribute; }, - isJsxAttributeLike: function () { return isJsxAttributeLike; }, - isJsxAttributeName: function () { return isJsxAttributeName; }, - isJsxAttributes: function () { return isJsxAttributes; }, - isJsxChild: function () { return isJsxChild; }, - isJsxClosingElement: function () { return isJsxClosingElement; }, - isJsxClosingFragment: function () { return isJsxClosingFragment; }, - isJsxElement: function () { return isJsxElement; }, - isJsxExpression: function () { return isJsxExpression; }, - isJsxFragment: function () { return isJsxFragment; }, - isJsxNamespacedName: function () { return isJsxNamespacedName; }, - isJsxOpeningElement: function () { return isJsxOpeningElement; }, - isJsxOpeningFragment: function () { return isJsxOpeningFragment; }, - isJsxOpeningLikeElement: function () { return isJsxOpeningLikeElement; }, - isJsxOpeningLikeElementTagName: function () { return isJsxOpeningLikeElementTagName; }, - isJsxSelfClosingElement: function () { return isJsxSelfClosingElement; }, - isJsxSpreadAttribute: function () { return isJsxSpreadAttribute; }, - isJsxTagNameExpression: function () { return isJsxTagNameExpression; }, - isJsxText: function () { return isJsxText; }, - isJumpStatementTarget: function () { return isJumpStatementTarget; }, - isKeyword: function () { return isKeyword; }, - isKeywordOrPunctuation: function () { return isKeywordOrPunctuation; }, - isKnownSymbol: function () { return isKnownSymbol; }, - isLabelName: function () { return isLabelName; }, - isLabelOfLabeledStatement: function () { return isLabelOfLabeledStatement; }, - isLabeledStatement: function () { return isLabeledStatement; }, - isLateVisibilityPaintedStatement: function () { return isLateVisibilityPaintedStatement; }, - isLeftHandSideExpression: function () { return isLeftHandSideExpression; }, - isLeftHandSideOfAssignment: function () { return isLeftHandSideOfAssignment; }, - isLet: function () { return isLet; }, - isLineBreak: function () { return isLineBreak; }, - isLiteralComputedPropertyDeclarationName: function () { return isLiteralComputedPropertyDeclarationName; }, - isLiteralExpression: function () { return isLiteralExpression; }, - isLiteralExpressionOfObject: function () { return isLiteralExpressionOfObject; }, - isLiteralImportTypeNode: function () { return isLiteralImportTypeNode; }, - isLiteralKind: function () { return isLiteralKind; }, - isLiteralLikeAccess: function () { return isLiteralLikeAccess; }, - isLiteralLikeElementAccess: function () { return isLiteralLikeElementAccess; }, - isLiteralNameOfPropertyDeclarationOrIndexAccess: function () { return isLiteralNameOfPropertyDeclarationOrIndexAccess; }, - isLiteralTypeLikeExpression: function () { return isLiteralTypeLikeExpression; }, - isLiteralTypeLiteral: function () { return isLiteralTypeLiteral; }, - isLiteralTypeNode: function () { return isLiteralTypeNode; }, - isLocalName: function () { return isLocalName; }, - isLogicalOperator: function () { return isLogicalOperator; }, - isLogicalOrCoalescingAssignmentExpression: function () { return isLogicalOrCoalescingAssignmentExpression; }, - isLogicalOrCoalescingAssignmentOperator: function () { return isLogicalOrCoalescingAssignmentOperator; }, - isLogicalOrCoalescingBinaryExpression: function () { return isLogicalOrCoalescingBinaryExpression; }, - isLogicalOrCoalescingBinaryOperator: function () { return isLogicalOrCoalescingBinaryOperator; }, - isMappedTypeNode: function () { return isMappedTypeNode; }, - isMemberName: function () { return isMemberName; }, - isMetaProperty: function () { return isMetaProperty; }, - isMethodDeclaration: function () { return isMethodDeclaration; }, - isMethodOrAccessor: function () { return isMethodOrAccessor; }, - isMethodSignature: function () { return isMethodSignature; }, - isMinusToken: function () { return isMinusToken; }, - isMissingDeclaration: function () { return isMissingDeclaration; }, - isModifier: function () { return isModifier; }, - isModifierKind: function () { return isModifierKind; }, - isModifierLike: function () { return isModifierLike; }, - isModuleAugmentationExternal: function () { return isModuleAugmentationExternal; }, - isModuleBlock: function () { return isModuleBlock; }, - isModuleBody: function () { return isModuleBody; }, - isModuleDeclaration: function () { return isModuleDeclaration; }, - isModuleExportsAccessExpression: function () { return isModuleExportsAccessExpression; }, - isModuleIdentifier: function () { return isModuleIdentifier; }, - isModuleName: function () { return isModuleName; }, - isModuleOrEnumDeclaration: function () { return isModuleOrEnumDeclaration; }, - isModuleReference: function () { return isModuleReference; }, - isModuleSpecifierLike: function () { return isModuleSpecifierLike; }, - isModuleWithStringLiteralName: function () { return isModuleWithStringLiteralName; }, - isNameOfFunctionDeclaration: function () { return isNameOfFunctionDeclaration; }, - isNameOfModuleDeclaration: function () { return isNameOfModuleDeclaration; }, - isNamedClassElement: function () { return isNamedClassElement; }, - isNamedDeclaration: function () { return isNamedDeclaration; }, - isNamedEvaluation: function () { return isNamedEvaluation; }, - isNamedEvaluationSource: function () { return isNamedEvaluationSource; }, - isNamedExportBindings: function () { return isNamedExportBindings; }, - isNamedExports: function () { return isNamedExports; }, - isNamedImportBindings: function () { return isNamedImportBindings; }, - isNamedImports: function () { return isNamedImports; }, - isNamedImportsOrExports: function () { return isNamedImportsOrExports; }, - isNamedTupleMember: function () { return isNamedTupleMember; }, - isNamespaceBody: function () { return isNamespaceBody; }, - isNamespaceExport: function () { return isNamespaceExport; }, - isNamespaceExportDeclaration: function () { return isNamespaceExportDeclaration; }, - isNamespaceImport: function () { return isNamespaceImport; }, - isNamespaceReexportDeclaration: function () { return isNamespaceReexportDeclaration; }, - isNewExpression: function () { return isNewExpression; }, - isNewExpressionTarget: function () { return isNewExpressionTarget; }, - isNightly: function () { return isNightly; }, - isNoSubstitutionTemplateLiteral: function () { return isNoSubstitutionTemplateLiteral; }, - isNode: function () { return isNode; }, - isNodeArray: function () { return isNodeArray; }, - isNodeArrayMultiLine: function () { return isNodeArrayMultiLine; }, - isNodeDescendantOf: function () { return isNodeDescendantOf; }, - isNodeKind: function () { return isNodeKind; }, - isNodeLikeSystem: function () { return isNodeLikeSystem; }, - isNodeModulesDirectory: function () { return isNodeModulesDirectory; }, - isNodeWithPossibleHoistedDeclaration: function () { return isNodeWithPossibleHoistedDeclaration; }, - isNonContextualKeyword: function () { return isNonContextualKeyword; }, - isNonExportDefaultModifier: function () { return isNonExportDefaultModifier; }, - isNonGlobalAmbientModule: function () { return isNonGlobalAmbientModule; }, - isNonGlobalDeclaration: function () { return isNonGlobalDeclaration; }, - isNonNullAccess: function () { return isNonNullAccess; }, - isNonNullChain: function () { return isNonNullChain; }, - isNonNullExpression: function () { return isNonNullExpression; }, - isNonStaticMethodOrAccessorWithPrivateName: function () { return isNonStaticMethodOrAccessorWithPrivateName; }, - isNotEmittedOrPartiallyEmittedNode: function () { return isNotEmittedOrPartiallyEmittedNode; }, - isNotEmittedStatement: function () { return isNotEmittedStatement; }, - isNullishCoalesce: function () { return isNullishCoalesce; }, - isNumber: function () { return isNumber; }, - isNumericLiteral: function () { return isNumericLiteral; }, - isNumericLiteralName: function () { return isNumericLiteralName; }, - isObjectBindingElementWithoutPropertyName: function () { return isObjectBindingElementWithoutPropertyName; }, - isObjectBindingOrAssignmentElement: function () { return isObjectBindingOrAssignmentElement; }, - isObjectBindingOrAssignmentPattern: function () { return isObjectBindingOrAssignmentPattern; }, - isObjectBindingPattern: function () { return isObjectBindingPattern; }, - isObjectLiteralElement: function () { return isObjectLiteralElement; }, - isObjectLiteralElementLike: function () { return isObjectLiteralElementLike; }, - isObjectLiteralExpression: function () { return isObjectLiteralExpression; }, - isObjectLiteralMethod: function () { return isObjectLiteralMethod; }, - isObjectLiteralOrClassExpressionMethodOrAccessor: function () { return isObjectLiteralOrClassExpressionMethodOrAccessor; }, - isObjectTypeDeclaration: function () { return isObjectTypeDeclaration; }, - isOctalDigit: function () { return isOctalDigit; }, - isOmittedExpression: function () { return isOmittedExpression; }, - isOptionalChain: function () { return isOptionalChain; }, - isOptionalChainRoot: function () { return isOptionalChainRoot; }, - isOptionalDeclaration: function () { return isOptionalDeclaration; }, - isOptionalJSDocPropertyLikeTag: function () { return isOptionalJSDocPropertyLikeTag; }, - isOptionalTypeNode: function () { return isOptionalTypeNode; }, - isOuterExpression: function () { return isOuterExpression; }, - isOutermostOptionalChain: function () { return isOutermostOptionalChain; }, - isOverrideModifier: function () { return isOverrideModifier; }, - isPackedArrayLiteral: function () { return isPackedArrayLiteral; }, - isParameter: function () { return isParameter; }, - isParameterDeclaration: function () { return isParameterDeclaration; }, - isParameterOrCatchClauseVariable: function () { return isParameterOrCatchClauseVariable; }, - isParameterPropertyDeclaration: function () { return isParameterPropertyDeclaration; }, - isParameterPropertyModifier: function () { return isParameterPropertyModifier; }, - isParenthesizedExpression: function () { return isParenthesizedExpression; }, - isParenthesizedTypeNode: function () { return isParenthesizedTypeNode; }, - isParseTreeNode: function () { return isParseTreeNode; }, - isPartOfTypeNode: function () { return isPartOfTypeNode; }, - isPartOfTypeQuery: function () { return isPartOfTypeQuery; }, - isPartiallyEmittedExpression: function () { return isPartiallyEmittedExpression; }, - isPatternMatch: function () { return isPatternMatch; }, - isPinnedComment: function () { return isPinnedComment; }, - isPlainJsFile: function () { return isPlainJsFile; }, - isPlusToken: function () { return isPlusToken; }, - isPossiblyTypeArgumentPosition: function () { return isPossiblyTypeArgumentPosition; }, - isPostfixUnaryExpression: function () { return isPostfixUnaryExpression; }, - isPrefixUnaryExpression: function () { return isPrefixUnaryExpression; }, - isPrivateIdentifier: function () { return isPrivateIdentifier; }, - isPrivateIdentifierClassElementDeclaration: function () { return isPrivateIdentifierClassElementDeclaration; }, - isPrivateIdentifierPropertyAccessExpression: function () { return isPrivateIdentifierPropertyAccessExpression; }, - isPrivateIdentifierSymbol: function () { return isPrivateIdentifierSymbol; }, - isProgramBundleEmitBuildInfo: function () { return isProgramBundleEmitBuildInfo; }, - isProgramUptoDate: function () { return isProgramUptoDate; }, - isPrologueDirective: function () { return isPrologueDirective; }, - isPropertyAccessChain: function () { return isPropertyAccessChain; }, - isPropertyAccessEntityNameExpression: function () { return isPropertyAccessEntityNameExpression; }, - isPropertyAccessExpression: function () { return isPropertyAccessExpression; }, - isPropertyAccessOrQualifiedName: function () { return isPropertyAccessOrQualifiedName; }, - isPropertyAccessOrQualifiedNameOrImportTypeNode: function () { return isPropertyAccessOrQualifiedNameOrImportTypeNode; }, - isPropertyAssignment: function () { return isPropertyAssignment; }, - isPropertyDeclaration: function () { return isPropertyDeclaration; }, - isPropertyName: function () { return isPropertyName; }, - isPropertyNameLiteral: function () { return isPropertyNameLiteral; }, - isPropertySignature: function () { return isPropertySignature; }, - isProtoSetter: function () { return isProtoSetter; }, - isPrototypeAccess: function () { return isPrototypeAccess; }, - isPrototypePropertyAssignment: function () { return isPrototypePropertyAssignment; }, - isPunctuation: function () { return isPunctuation; }, - isPushOrUnshiftIdentifier: function () { return isPushOrUnshiftIdentifier; }, - isQualifiedName: function () { return isQualifiedName; }, - isQuestionDotToken: function () { return isQuestionDotToken; }, - isQuestionOrExclamationToken: function () { return isQuestionOrExclamationToken; }, - isQuestionOrPlusOrMinusToken: function () { return isQuestionOrPlusOrMinusToken; }, - isQuestionToken: function () { return isQuestionToken; }, - isRawSourceMap: function () { return isRawSourceMap; }, - isReadonlyKeyword: function () { return isReadonlyKeyword; }, - isReadonlyKeywordOrPlusOrMinusToken: function () { return isReadonlyKeywordOrPlusOrMinusToken; }, - isRecognizedTripleSlashComment: function () { return isRecognizedTripleSlashComment; }, - isReferenceFileLocation: function () { return isReferenceFileLocation; }, - isReferencedFile: function () { return isReferencedFile; }, - isRegularExpressionLiteral: function () { return isRegularExpressionLiteral; }, - isRequireCall: function () { return isRequireCall; }, - isRequireVariableStatement: function () { return isRequireVariableStatement; }, - isRestParameter: function () { return isRestParameter; }, - isRestTypeNode: function () { return isRestTypeNode; }, - isReturnStatement: function () { return isReturnStatement; }, - isReturnStatementWithFixablePromiseHandler: function () { return isReturnStatementWithFixablePromiseHandler; }, - isRightSideOfAccessExpression: function () { return isRightSideOfAccessExpression; }, - isRightSideOfPropertyAccess: function () { return isRightSideOfPropertyAccess; }, - isRightSideOfQualifiedName: function () { return isRightSideOfQualifiedName; }, - isRightSideOfQualifiedNameOrPropertyAccess: function () { return isRightSideOfQualifiedNameOrPropertyAccess; }, - isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName: function () { return isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName; }, - isRootedDiskPath: function () { return isRootedDiskPath; }, - isSameEntityName: function () { return isSameEntityName; }, - isSatisfiesExpression: function () { return isSatisfiesExpression; }, - isScopeMarker: function () { return isScopeMarker; }, - isSemicolonClassElement: function () { return isSemicolonClassElement; }, - isSetAccessor: function () { return isSetAccessor; }, - isSetAccessorDeclaration: function () { return isSetAccessorDeclaration; }, - isShebangTrivia: function () { return isShebangTrivia; }, - isShorthandAmbientModuleSymbol: function () { return isShorthandAmbientModuleSymbol; }, - isShorthandPropertyAssignment: function () { return isShorthandPropertyAssignment; }, - isSignedNumericLiteral: function () { return isSignedNumericLiteral; }, - isSimpleCopiableExpression: function () { return isSimpleCopiableExpression; }, - isSimpleInlineableExpression: function () { return isSimpleInlineableExpression; }, - isSingleOrDoubleQuote: function () { return isSingleOrDoubleQuote; }, - isSourceFile: function () { return isSourceFile; }, - isSourceFileFromLibrary: function () { return isSourceFileFromLibrary; }, - isSourceFileJS: function () { return isSourceFileJS; }, - isSourceFileNotJS: function () { return isSourceFileNotJS; }, - isSourceFileNotJson: function () { return isSourceFileNotJson; }, - isSourceMapping: function () { return isSourceMapping; }, - isSpecialPropertyDeclaration: function () { return isSpecialPropertyDeclaration; }, - isSpreadAssignment: function () { return isSpreadAssignment; }, - isSpreadElement: function () { return isSpreadElement; }, - isStatement: function () { return isStatement; }, - isStatementButNotDeclaration: function () { return isStatementButNotDeclaration; }, - isStatementOrBlock: function () { return isStatementOrBlock; }, - isStatementWithLocals: function () { return isStatementWithLocals; }, - isStatic: function () { return isStatic; }, - isStaticModifier: function () { return isStaticModifier; }, - isString: function () { return isString; }, - isStringAKeyword: function () { return isStringAKeyword; }, - isStringANonContextualKeyword: function () { return isStringANonContextualKeyword; }, - isStringAndEmptyAnonymousObjectIntersection: function () { return isStringAndEmptyAnonymousObjectIntersection; }, - isStringDoubleQuoted: function () { return isStringDoubleQuoted; }, - isStringLiteral: function () { return isStringLiteral; }, - isStringLiteralLike: function () { return isStringLiteralLike; }, - isStringLiteralOrJsxExpression: function () { return isStringLiteralOrJsxExpression; }, - isStringLiteralOrTemplate: function () { return isStringLiteralOrTemplate; }, - isStringOrNumericLiteralLike: function () { return isStringOrNumericLiteralLike; }, - isStringOrRegularExpressionOrTemplateLiteral: function () { return isStringOrRegularExpressionOrTemplateLiteral; }, - isStringTextContainingNode: function () { return isStringTextContainingNode; }, - isSuperCall: function () { return isSuperCall; }, - isSuperKeyword: function () { return isSuperKeyword; }, - isSuperOrSuperProperty: function () { return isSuperOrSuperProperty; }, - isSuperProperty: function () { return isSuperProperty; }, - isSupportedSourceFileName: function () { return isSupportedSourceFileName; }, - isSwitchStatement: function () { return isSwitchStatement; }, - isSyntaxList: function () { return isSyntaxList; }, - isSyntheticExpression: function () { return isSyntheticExpression; }, - isSyntheticReference: function () { return isSyntheticReference; }, - isTagName: function () { return isTagName; }, - isTaggedTemplateExpression: function () { return isTaggedTemplateExpression; }, - isTaggedTemplateTag: function () { return isTaggedTemplateTag; }, - isTemplateExpression: function () { return isTemplateExpression; }, - isTemplateHead: function () { return isTemplateHead; }, - isTemplateLiteral: function () { return isTemplateLiteral; }, - isTemplateLiteralKind: function () { return isTemplateLiteralKind; }, - isTemplateLiteralToken: function () { return isTemplateLiteralToken; }, - isTemplateLiteralTypeNode: function () { return isTemplateLiteralTypeNode; }, - isTemplateLiteralTypeSpan: function () { return isTemplateLiteralTypeSpan; }, - isTemplateMiddle: function () { return isTemplateMiddle; }, - isTemplateMiddleOrTemplateTail: function () { return isTemplateMiddleOrTemplateTail; }, - isTemplateSpan: function () { return isTemplateSpan; }, - isTemplateTail: function () { return isTemplateTail; }, - isTextWhiteSpaceLike: function () { return isTextWhiteSpaceLike; }, - isThis: function () { return isThis; }, - isThisContainerOrFunctionBlock: function () { return isThisContainerOrFunctionBlock; }, - isThisIdentifier: function () { return isThisIdentifier; }, - isThisInTypeQuery: function () { return isThisInTypeQuery; }, - isThisInitializedDeclaration: function () { return isThisInitializedDeclaration; }, - isThisInitializedObjectBindingExpression: function () { return isThisInitializedObjectBindingExpression; }, - isThisProperty: function () { return isThisProperty; }, - isThisTypeNode: function () { return isThisTypeNode; }, - isThisTypeParameter: function () { return isThisTypeParameter; }, - isThisTypePredicate: function () { return isThisTypePredicate; }, - isThrowStatement: function () { return isThrowStatement; }, - isToken: function () { return isToken; }, - isTokenKind: function () { return isTokenKind; }, - isTraceEnabled: function () { return isTraceEnabled; }, - isTransientSymbol: function () { return isTransientSymbol; }, - isTrivia: function () { return isTrivia; }, - isTryStatement: function () { return isTryStatement; }, - isTupleTypeNode: function () { return isTupleTypeNode; }, - isTypeAlias: function () { return isTypeAlias; }, - isTypeAliasDeclaration: function () { return isTypeAliasDeclaration; }, - isTypeAssertionExpression: function () { return isTypeAssertionExpression; }, - isTypeDeclaration: function () { return isTypeDeclaration; }, - isTypeElement: function () { return isTypeElement; }, - isTypeKeyword: function () { return isTypeKeyword; }, - isTypeKeywordToken: function () { return isTypeKeywordToken; }, - isTypeKeywordTokenOrIdentifier: function () { return isTypeKeywordTokenOrIdentifier; }, - isTypeLiteralNode: function () { return isTypeLiteralNode; }, - isTypeNode: function () { return isTypeNode; }, - isTypeNodeKind: function () { return isTypeNodeKind; }, - isTypeOfExpression: function () { return isTypeOfExpression; }, - isTypeOnlyExportDeclaration: function () { return isTypeOnlyExportDeclaration; }, - isTypeOnlyImportDeclaration: function () { return isTypeOnlyImportDeclaration; }, - isTypeOnlyImportOrExportDeclaration: function () { return isTypeOnlyImportOrExportDeclaration; }, - isTypeOperatorNode: function () { return isTypeOperatorNode; }, - isTypeParameterDeclaration: function () { return isTypeParameterDeclaration; }, - isTypePredicateNode: function () { return isTypePredicateNode; }, - isTypeQueryNode: function () { return isTypeQueryNode; }, - isTypeReferenceNode: function () { return isTypeReferenceNode; }, - isTypeReferenceType: function () { return isTypeReferenceType; }, - isTypeUsableAsPropertyName: function () { return isTypeUsableAsPropertyName; }, - isUMDExportSymbol: function () { return isUMDExportSymbol; }, - isUnaryExpression: function () { return isUnaryExpression; }, - isUnaryExpressionWithWrite: function () { return isUnaryExpressionWithWrite; }, - isUnicodeIdentifierStart: function () { return isUnicodeIdentifierStart; }, - isUnionTypeNode: function () { return isUnionTypeNode; }, - isUnparsedNode: function () { return isUnparsedNode; }, - isUnparsedPrepend: function () { return isUnparsedPrepend; }, - isUnparsedSource: function () { return isUnparsedSource; }, - isUnparsedTextLike: function () { return isUnparsedTextLike; }, - isUrl: function () { return isUrl; }, - isValidBigIntString: function () { return isValidBigIntString; }, - isValidESSymbolDeclaration: function () { return isValidESSymbolDeclaration; }, - isValidTypeOnlyAliasUseSite: function () { return isValidTypeOnlyAliasUseSite; }, - isValueSignatureDeclaration: function () { return isValueSignatureDeclaration; }, - isVarAwaitUsing: function () { return isVarAwaitUsing; }, - isVarConst: function () { return isVarConst; }, - isVarUsing: function () { return isVarUsing; }, - isVariableDeclaration: function () { return isVariableDeclaration; }, - isVariableDeclarationInVariableStatement: function () { return isVariableDeclarationInVariableStatement; }, - isVariableDeclarationInitializedToBareOrAccessedRequire: function () { return isVariableDeclarationInitializedToBareOrAccessedRequire; }, - isVariableDeclarationInitializedToRequire: function () { return isVariableDeclarationInitializedToRequire; }, - isVariableDeclarationList: function () { return isVariableDeclarationList; }, - isVariableLike: function () { return isVariableLike; }, - isVariableLikeOrAccessor: function () { return isVariableLikeOrAccessor; }, - isVariableStatement: function () { return isVariableStatement; }, - isVoidExpression: function () { return isVoidExpression; }, - isWatchSet: function () { return isWatchSet; }, - isWhileStatement: function () { return isWhileStatement; }, - isWhiteSpaceLike: function () { return isWhiteSpaceLike; }, - isWhiteSpaceSingleLine: function () { return isWhiteSpaceSingleLine; }, - isWithStatement: function () { return isWithStatement; }, - isWriteAccess: function () { return isWriteAccess; }, - isWriteOnlyAccess: function () { return isWriteOnlyAccess; }, - isYieldExpression: function () { return isYieldExpression; }, - jsxModeNeedsExplicitImport: function () { return jsxModeNeedsExplicitImport; }, - keywordPart: function () { return keywordPart; }, - last: function () { return last; }, - lastOrUndefined: function () { return lastOrUndefined; }, - length: function () { return length; }, - libMap: function () { return libMap; }, - libs: function () { return libs; }, - lineBreakPart: function () { return lineBreakPart; }, - linkNamePart: function () { return linkNamePart; }, - linkPart: function () { return linkPart; }, - linkTextPart: function () { return linkTextPart; }, - listFiles: function () { return listFiles; }, - loadModuleFromGlobalCache: function () { return loadModuleFromGlobalCache; }, - loadWithModeAwareCache: function () { return loadWithModeAwareCache; }, - makeIdentifierFromModuleName: function () { return makeIdentifierFromModuleName; }, - makeImport: function () { return makeImport; }, - makeImportIfNecessary: function () { return makeImportIfNecessary; }, - makeStringLiteral: function () { return makeStringLiteral; }, - mangleScopedPackageName: function () { return mangleScopedPackageName; }, - map: function () { return map; }, - mapAllOrFail: function () { return mapAllOrFail; }, - mapDefined: function () { return mapDefined; }, - mapDefinedEntries: function () { return mapDefinedEntries; }, - mapDefinedIterator: function () { return mapDefinedIterator; }, - mapEntries: function () { return mapEntries; }, - mapIterator: function () { return mapIterator; }, - mapOneOrMany: function () { return mapOneOrMany; }, - mapToDisplayParts: function () { return mapToDisplayParts; }, - matchFiles: function () { return matchFiles; }, - matchPatternOrExact: function () { return matchPatternOrExact; }, - matchedText: function () { return matchedText; }, - matchesExclude: function () { return matchesExclude; }, - maybeBind: function () { return maybeBind; }, - maybeSetLocalizedDiagnosticMessages: function () { return maybeSetLocalizedDiagnosticMessages; }, - memoize: function () { return memoize; }, - memoizeCached: function () { return memoizeCached; }, - memoizeOne: function () { return memoizeOne; }, - memoizeWeak: function () { return memoizeWeak; }, - metadataHelper: function () { return metadataHelper; }, - min: function () { return min; }, - minAndMax: function () { return minAndMax; }, - missingFileModifiedTime: function () { return missingFileModifiedTime; }, - modifierToFlag: function () { return modifierToFlag; }, - modifiersToFlags: function () { return modifiersToFlags; }, - moduleOptionDeclaration: function () { return moduleOptionDeclaration; }, - moduleResolutionIsEqualTo: function () { return moduleResolutionIsEqualTo; }, - moduleResolutionNameAndModeGetter: function () { return moduleResolutionNameAndModeGetter; }, - moduleResolutionOptionDeclarations: function () { return moduleResolutionOptionDeclarations; }, - moduleResolutionSupportsPackageJsonExportsAndImports: function () { return moduleResolutionSupportsPackageJsonExportsAndImports; }, - moduleResolutionUsesNodeModules: function () { return moduleResolutionUsesNodeModules; }, - moduleSpecifiers: function () { return ts_moduleSpecifiers_exports; }, - moveEmitHelpers: function () { return moveEmitHelpers; }, - moveRangeEnd: function () { return moveRangeEnd; }, - moveRangePastDecorators: function () { return moveRangePastDecorators; }, - moveRangePastModifiers: function () { return moveRangePastModifiers; }, - moveRangePos: function () { return moveRangePos; }, - moveSyntheticComments: function () { return moveSyntheticComments; }, - mutateMap: function () { return mutateMap; }, - mutateMapSkippingNewValues: function () { return mutateMapSkippingNewValues; }, - needsParentheses: function () { return needsParentheses; }, - needsScopeMarker: function () { return needsScopeMarker; }, - newCaseClauseTracker: function () { return newCaseClauseTracker; }, - newPrivateEnvironment: function () { return newPrivateEnvironment; }, - noEmitNotification: function () { return noEmitNotification; }, - noEmitSubstitution: function () { return noEmitSubstitution; }, - noTransformers: function () { return noTransformers; }, - noTruncationMaximumTruncationLength: function () { return noTruncationMaximumTruncationLength; }, - nodeCanBeDecorated: function () { return nodeCanBeDecorated; }, - nodeHasName: function () { return nodeHasName; }, - nodeIsDecorated: function () { return nodeIsDecorated; }, - nodeIsMissing: function () { return nodeIsMissing; }, - nodeIsPresent: function () { return nodeIsPresent; }, - nodeIsSynthesized: function () { return nodeIsSynthesized; }, - nodeModuleNameResolver: function () { return nodeModuleNameResolver; }, - nodeModulesPathPart: function () { return nodeModulesPathPart; }, - nodeNextJsonConfigResolver: function () { return nodeNextJsonConfigResolver; }, - nodeOrChildIsDecorated: function () { return nodeOrChildIsDecorated; }, - nodeOverlapsWithStartEnd: function () { return nodeOverlapsWithStartEnd; }, - nodePosToString: function () { return nodePosToString; }, - nodeSeenTracker: function () { return nodeSeenTracker; }, - nodeStartsNewLexicalEnvironment: function () { return nodeStartsNewLexicalEnvironment; }, - nodeToDisplayParts: function () { return nodeToDisplayParts; }, - noop: function () { return noop; }, - noopFileWatcher: function () { return noopFileWatcher; }, - normalizePath: function () { return normalizePath; }, - normalizeSlashes: function () { return normalizeSlashes; }, - not: function () { return not; }, - notImplemented: function () { return notImplemented; }, - notImplementedResolver: function () { return notImplementedResolver; }, - nullNodeConverters: function () { return nullNodeConverters; }, - nullParenthesizerRules: function () { return nullParenthesizerRules; }, - nullTransformationContext: function () { return nullTransformationContext; }, - objectAllocator: function () { return objectAllocator; }, - operatorPart: function () { return operatorPart; }, - optionDeclarations: function () { return optionDeclarations; }, - optionMapToObject: function () { return optionMapToObject; }, - optionsAffectingProgramStructure: function () { return optionsAffectingProgramStructure; }, - optionsForBuild: function () { return optionsForBuild; }, - optionsForWatch: function () { return optionsForWatch; }, - optionsHaveChanges: function () { return optionsHaveChanges; }, - optionsHaveModuleResolutionChanges: function () { return optionsHaveModuleResolutionChanges; }, - or: function () { return or; }, - orderedRemoveItem: function () { return orderedRemoveItem; }, - orderedRemoveItemAt: function () { return orderedRemoveItemAt; }, - outFile: function () { return outFile; }, - packageIdToPackageName: function () { return packageIdToPackageName; }, - packageIdToString: function () { return packageIdToString; }, - padLeft: function () { return padLeft; }, - padRight: function () { return padRight; }, - paramHelper: function () { return paramHelper; }, - parameterIsThisKeyword: function () { return parameterIsThisKeyword; }, - parameterNamePart: function () { return parameterNamePart; }, - parseBaseNodeFactory: function () { return parseBaseNodeFactory; }, - parseBigInt: function () { return parseBigInt; }, - parseBuildCommand: function () { return parseBuildCommand; }, - parseCommandLine: function () { return parseCommandLine; }, - parseCommandLineWorker: function () { return parseCommandLineWorker; }, - parseConfigFileTextToJson: function () { return parseConfigFileTextToJson; }, - parseConfigFileWithSystem: function () { return parseConfigFileWithSystem; }, - parseConfigHostFromCompilerHostLike: function () { return parseConfigHostFromCompilerHostLike; }, - parseCustomTypeOption: function () { return parseCustomTypeOption; }, - parseIsolatedEntityName: function () { return parseIsolatedEntityName; }, - parseIsolatedJSDocComment: function () { return parseIsolatedJSDocComment; }, - parseJSDocTypeExpressionForTests: function () { return parseJSDocTypeExpressionForTests; }, - parseJsonConfigFileContent: function () { return parseJsonConfigFileContent; }, - parseJsonSourceFileConfigFileContent: function () { return parseJsonSourceFileConfigFileContent; }, - parseJsonText: function () { return parseJsonText; }, - parseListTypeOption: function () { return parseListTypeOption; }, - parseNodeFactory: function () { return parseNodeFactory; }, - parseNodeModuleFromPath: function () { return parseNodeModuleFromPath; }, - parsePackageName: function () { return parsePackageName; }, - parsePseudoBigInt: function () { return parsePseudoBigInt; }, - parseValidBigInt: function () { return parseValidBigInt; }, - patchWriteFileEnsuringDirectory: function () { return patchWriteFileEnsuringDirectory; }, - pathContainsNodeModules: function () { return pathContainsNodeModules; }, - pathIsAbsolute: function () { return pathIsAbsolute; }, - pathIsBareSpecifier: function () { return pathIsBareSpecifier; }, - pathIsRelative: function () { return pathIsRelative; }, - patternText: function () { return patternText; }, - perfLogger: function () { return perfLogger; }, - performIncrementalCompilation: function () { return performIncrementalCompilation; }, - performance: function () { return ts_performance_exports; }, - plainJSErrors: function () { return plainJSErrors; }, - positionBelongsToNode: function () { return positionBelongsToNode; }, - positionIsASICandidate: function () { return positionIsASICandidate; }, - positionIsSynthesized: function () { return positionIsSynthesized; }, - positionsAreOnSameLine: function () { return positionsAreOnSameLine; }, - preProcessFile: function () { return preProcessFile; }, - probablyUsesSemicolons: function () { return probablyUsesSemicolons; }, - processCommentPragmas: function () { return processCommentPragmas; }, - processPragmasIntoFields: function () { return processPragmasIntoFields; }, - processTaggedTemplateExpression: function () { return processTaggedTemplateExpression; }, - programContainsEsModules: function () { return programContainsEsModules; }, - programContainsModules: function () { return programContainsModules; }, - projectReferenceIsEqualTo: function () { return projectReferenceIsEqualTo; }, - propKeyHelper: function () { return propKeyHelper; }, - propertyNamePart: function () { return propertyNamePart; }, - pseudoBigIntToString: function () { return pseudoBigIntToString; }, - punctuationPart: function () { return punctuationPart; }, - pushIfUnique: function () { return pushIfUnique; }, - quote: function () { return quote; }, - quotePreferenceFromString: function () { return quotePreferenceFromString; }, - rangeContainsPosition: function () { return rangeContainsPosition; }, - rangeContainsPositionExclusive: function () { return rangeContainsPositionExclusive; }, - rangeContainsRange: function () { return rangeContainsRange; }, - rangeContainsRangeExclusive: function () { return rangeContainsRangeExclusive; }, - rangeContainsStartEnd: function () { return rangeContainsStartEnd; }, - rangeEndIsOnSameLineAsRangeStart: function () { return rangeEndIsOnSameLineAsRangeStart; }, - rangeEndPositionsAreOnSameLine: function () { return rangeEndPositionsAreOnSameLine; }, - rangeEquals: function () { return rangeEquals; }, - rangeIsOnSingleLine: function () { return rangeIsOnSingleLine; }, - rangeOfNode: function () { return rangeOfNode; }, - rangeOfTypeParameters: function () { return rangeOfTypeParameters; }, - rangeOverlapsWithStartEnd: function () { return rangeOverlapsWithStartEnd; }, - rangeStartIsOnSameLineAsRangeEnd: function () { return rangeStartIsOnSameLineAsRangeEnd; }, - rangeStartPositionsAreOnSameLine: function () { return rangeStartPositionsAreOnSameLine; }, - readBuilderProgram: function () { return readBuilderProgram; }, - readConfigFile: function () { return readConfigFile; }, - readHelper: function () { return readHelper; }, - readJson: function () { return readJson; }, - readJsonConfigFile: function () { return readJsonConfigFile; }, - readJsonOrUndefined: function () { return readJsonOrUndefined; }, - realizeDiagnostics: function () { return realizeDiagnostics; }, - reduceEachLeadingCommentRange: function () { return reduceEachLeadingCommentRange; }, - reduceEachTrailingCommentRange: function () { return reduceEachTrailingCommentRange; }, - reduceLeft: function () { return reduceLeft; }, - reduceLeftIterator: function () { return reduceLeftIterator; }, - reducePathComponents: function () { return reducePathComponents; }, - refactor: function () { return ts_refactor_exports; }, - regExpEscape: function () { return regExpEscape; }, - relativeComplement: function () { return relativeComplement; }, - removeAllComments: function () { return removeAllComments; }, - removeEmitHelper: function () { return removeEmitHelper; }, - removeExtension: function () { return removeExtension; }, - removeFileExtension: function () { return removeFileExtension; }, - removeIgnoredPath: function () { return removeIgnoredPath; }, - removeMinAndVersionNumbers: function () { return removeMinAndVersionNumbers; }, - removeOptionality: function () { return removeOptionality; }, - removePrefix: function () { return removePrefix; }, - removeSuffix: function () { return removeSuffix; }, - removeTrailingDirectorySeparator: function () { return removeTrailingDirectorySeparator; }, - repeatString: function () { return repeatString; }, - replaceElement: function () { return replaceElement; }, - resolutionExtensionIsTSOrJson: function () { return resolutionExtensionIsTSOrJson; }, - resolveConfigFileProjectName: function () { return resolveConfigFileProjectName; }, - resolveJSModule: function () { return resolveJSModule; }, - resolveLibrary: function () { return resolveLibrary; }, - resolveModuleName: function () { return resolveModuleName; }, - resolveModuleNameFromCache: function () { return resolveModuleNameFromCache; }, - resolvePackageNameToPackageJson: function () { return resolvePackageNameToPackageJson; }, - resolvePath: function () { return resolvePath; }, - resolveProjectReferencePath: function () { return resolveProjectReferencePath; }, - resolveTripleslashReference: function () { return resolveTripleslashReference; }, - resolveTypeReferenceDirective: function () { return resolveTypeReferenceDirective; }, - resolvingEmptyArray: function () { return resolvingEmptyArray; }, - restHelper: function () { return restHelper; }, - returnFalse: function () { return returnFalse; }, - returnNoopFileWatcher: function () { return returnNoopFileWatcher; }, - returnTrue: function () { return returnTrue; }, - returnUndefined: function () { return returnUndefined; }, - returnsPromise: function () { return returnsPromise; }, - runInitializersHelper: function () { return runInitializersHelper; }, - sameFlatMap: function () { return sameFlatMap; }, - sameMap: function () { return sameMap; }, - sameMapping: function () { return sameMapping; }, - scanShebangTrivia: function () { return scanShebangTrivia; }, - scanTokenAtPosition: function () { return scanTokenAtPosition; }, - scanner: function () { return scanner; }, - screenStartingMessageCodes: function () { return screenStartingMessageCodes; }, - semanticDiagnosticsOptionDeclarations: function () { return semanticDiagnosticsOptionDeclarations; }, - serializeCompilerOptions: function () { return serializeCompilerOptions; }, - server: function () { return ts_server_exports3; }, - servicesVersion: function () { return servicesVersion; }, - setCommentRange: function () { return setCommentRange; }, - setConfigFileInOptions: function () { return setConfigFileInOptions; }, - setConstantValue: function () { return setConstantValue; }, - setEachParent: function () { return setEachParent; }, - setEmitFlags: function () { return setEmitFlags; }, - setFunctionNameHelper: function () { return setFunctionNameHelper; }, - setGetSourceFileAsHashVersioned: function () { return setGetSourceFileAsHashVersioned; }, - setIdentifierAutoGenerate: function () { return setIdentifierAutoGenerate; }, - setIdentifierGeneratedImportReference: function () { return setIdentifierGeneratedImportReference; }, - setIdentifierTypeArguments: function () { return setIdentifierTypeArguments; }, - setInternalEmitFlags: function () { return setInternalEmitFlags; }, - setLocalizedDiagnosticMessages: function () { return setLocalizedDiagnosticMessages; }, - setModuleDefaultHelper: function () { return setModuleDefaultHelper; }, - setNodeFlags: function () { return setNodeFlags; }, - setObjectAllocator: function () { return setObjectAllocator; }, - setOriginalNode: function () { return setOriginalNode; }, - setParent: function () { return setParent; }, - setParentRecursive: function () { return setParentRecursive; }, - setPrivateIdentifier: function () { return setPrivateIdentifier; }, - setResolvedModule: function () { return setResolvedModule; }, - setResolvedTypeReferenceDirective: function () { return setResolvedTypeReferenceDirective; }, - setSnippetElement: function () { return setSnippetElement; }, - setSourceMapRange: function () { return setSourceMapRange; }, - setStackTraceLimit: function () { return setStackTraceLimit; }, - setStartsOnNewLine: function () { return setStartsOnNewLine; }, - setSyntheticLeadingComments: function () { return setSyntheticLeadingComments; }, - setSyntheticTrailingComments: function () { return setSyntheticTrailingComments; }, - setSys: function () { return setSys; }, - setSysLog: function () { return setSysLog; }, - setTextRange: function () { return setTextRange; }, - setTextRangeEnd: function () { return setTextRangeEnd; }, - setTextRangePos: function () { return setTextRangePos; }, - setTextRangePosEnd: function () { return setTextRangePosEnd; }, - setTextRangePosWidth: function () { return setTextRangePosWidth; }, - setTokenSourceMapRange: function () { return setTokenSourceMapRange; }, - setTypeNode: function () { return setTypeNode; }, - setUILocale: function () { return setUILocale; }, - setValueDeclaration: function () { return setValueDeclaration; }, - shouldAllowImportingTsExtension: function () { return shouldAllowImportingTsExtension; }, - shouldPreserveConstEnums: function () { return shouldPreserveConstEnums; }, - shouldResolveJsRequire: function () { return shouldResolveJsRequire; }, - shouldUseUriStyleNodeCoreModules: function () { return shouldUseUriStyleNodeCoreModules; }, - showModuleSpecifier: function () { return showModuleSpecifier; }, - signatureHasLiteralTypes: function () { return signatureHasLiteralTypes; }, - signatureHasRestParameter: function () { return signatureHasRestParameter; }, - signatureToDisplayParts: function () { return signatureToDisplayParts; }, - single: function () { return single; }, - singleElementArray: function () { return singleElementArray; }, - singleIterator: function () { return singleIterator; }, - singleOrMany: function () { return singleOrMany; }, - singleOrUndefined: function () { return singleOrUndefined; }, - skipAlias: function () { return skipAlias; }, - skipAssertions: function () { return skipAssertions; }, - skipConstraint: function () { return skipConstraint; }, - skipOuterExpressions: function () { return skipOuterExpressions; }, - skipParentheses: function () { return skipParentheses; }, - skipPartiallyEmittedExpressions: function () { return skipPartiallyEmittedExpressions; }, - skipTrivia: function () { return skipTrivia; }, - skipTypeChecking: function () { return skipTypeChecking; }, - skipTypeParentheses: function () { return skipTypeParentheses; }, - skipWhile: function () { return skipWhile; }, - sliceAfter: function () { return sliceAfter; }, - some: function () { return some; }, - sort: function () { return sort; }, - sortAndDeduplicate: function () { return sortAndDeduplicate; }, - sortAndDeduplicateDiagnostics: function () { return sortAndDeduplicateDiagnostics; }, - sourceFileAffectingCompilerOptions: function () { return sourceFileAffectingCompilerOptions; }, - sourceFileMayBeEmitted: function () { return sourceFileMayBeEmitted; }, - sourceMapCommentRegExp: function () { return sourceMapCommentRegExp; }, - sourceMapCommentRegExpDontCareLineStart: function () { return sourceMapCommentRegExpDontCareLineStart; }, - spacePart: function () { return spacePart; }, - spanMap: function () { return spanMap; }, - spreadArrayHelper: function () { return spreadArrayHelper; }, - stableSort: function () { return stableSort; }, - startEndContainsRange: function () { return startEndContainsRange; }, - startEndOverlapsWithStartEnd: function () { return startEndOverlapsWithStartEnd; }, - startOnNewLine: function () { return startOnNewLine; }, - startTracing: function () { return startTracing; }, - startsWith: function () { return startsWith; }, - startsWithDirectory: function () { return startsWithDirectory; }, - startsWithUnderscore: function () { return startsWithUnderscore; }, - startsWithUseStrict: function () { return startsWithUseStrict; }, - stringContains: function () { return stringContains; }, - stringContainsAt: function () { return stringContainsAt; }, - stringToToken: function () { return stringToToken; }, - stripQuotes: function () { return stripQuotes; }, - supportedDeclarationExtensions: function () { return supportedDeclarationExtensions; }, - supportedJSExtensions: function () { return supportedJSExtensions; }, - supportedJSExtensionsFlat: function () { return supportedJSExtensionsFlat; }, - supportedLocaleDirectories: function () { return supportedLocaleDirectories; }, - supportedTSExtensions: function () { return supportedTSExtensions; }, - supportedTSExtensionsFlat: function () { return supportedTSExtensionsFlat; }, - supportedTSImplementationExtensions: function () { return supportedTSImplementationExtensions; }, - suppressLeadingAndTrailingTrivia: function () { return suppressLeadingAndTrailingTrivia; }, - suppressLeadingTrivia: function () { return suppressLeadingTrivia; }, - suppressTrailingTrivia: function () { return suppressTrailingTrivia; }, - symbolEscapedNameNoDefault: function () { return symbolEscapedNameNoDefault; }, - symbolName: function () { return symbolName; }, - symbolNameNoDefault: function () { return symbolNameNoDefault; }, - symbolPart: function () { return symbolPart; }, - symbolToDisplayParts: function () { return symbolToDisplayParts; }, - syntaxMayBeASICandidate: function () { return syntaxMayBeASICandidate; }, - syntaxRequiresTrailingSemicolonOrASI: function () { return syntaxRequiresTrailingSemicolonOrASI; }, - sys: function () { return sys; }, - sysLog: function () { return sysLog; }, - tagNamesAreEquivalent: function () { return tagNamesAreEquivalent; }, - takeWhile: function () { return takeWhile; }, - targetOptionDeclaration: function () { return targetOptionDeclaration; }, - templateObjectHelper: function () { return templateObjectHelper; }, - testFormatSettings: function () { return testFormatSettings; }, - textChangeRangeIsUnchanged: function () { return textChangeRangeIsUnchanged; }, - textChangeRangeNewSpan: function () { return textChangeRangeNewSpan; }, - textChanges: function () { return ts_textChanges_exports; }, - textOrKeywordPart: function () { return textOrKeywordPart; }, - textPart: function () { return textPart; }, - textRangeContainsPositionInclusive: function () { return textRangeContainsPositionInclusive; }, - textSpanContainsPosition: function () { return textSpanContainsPosition; }, - textSpanContainsTextSpan: function () { return textSpanContainsTextSpan; }, - textSpanEnd: function () { return textSpanEnd; }, - textSpanIntersection: function () { return textSpanIntersection; }, - textSpanIntersectsWith: function () { return textSpanIntersectsWith; }, - textSpanIntersectsWithPosition: function () { return textSpanIntersectsWithPosition; }, - textSpanIntersectsWithTextSpan: function () { return textSpanIntersectsWithTextSpan; }, - textSpanIsEmpty: function () { return textSpanIsEmpty; }, - textSpanOverlap: function () { return textSpanOverlap; }, - textSpanOverlapsWith: function () { return textSpanOverlapsWith; }, - textSpansEqual: function () { return textSpansEqual; }, - textToKeywordObj: function () { return textToKeywordObj; }, - timestamp: function () { return timestamp; }, - toArray: function () { return toArray; }, - toBuilderFileEmit: function () { return toBuilderFileEmit; }, - toBuilderStateFileInfoForMultiEmit: function () { return toBuilderStateFileInfoForMultiEmit; }, - toEditorSettings: function () { return toEditorSettings; }, - toFileNameLowerCase: function () { return toFileNameLowerCase; }, - toLowerCase: function () { return toLowerCase; }, - toPath: function () { return toPath; }, - toProgramEmitPending: function () { return toProgramEmitPending; }, - tokenIsIdentifierOrKeyword: function () { return tokenIsIdentifierOrKeyword; }, - tokenIsIdentifierOrKeywordOrGreaterThan: function () { return tokenIsIdentifierOrKeywordOrGreaterThan; }, - tokenToString: function () { return tokenToString; }, - trace: function () { return trace; }, - tracing: function () { return tracing; }, - tracingEnabled: function () { return tracingEnabled; }, - transform: function () { return transform; }, - transformClassFields: function () { return transformClassFields; }, - transformDeclarations: function () { return transformDeclarations; }, - transformECMAScriptModule: function () { return transformECMAScriptModule; }, - transformES2015: function () { return transformES2015; }, - transformES2016: function () { return transformES2016; }, - transformES2017: function () { return transformES2017; }, - transformES2018: function () { return transformES2018; }, - transformES2019: function () { return transformES2019; }, - transformES2020: function () { return transformES2020; }, - transformES2021: function () { return transformES2021; }, - transformES5: function () { return transformES5; }, - transformESDecorators: function () { return transformESDecorators; }, - transformESNext: function () { return transformESNext; }, - transformGenerators: function () { return transformGenerators; }, - transformJsx: function () { return transformJsx; }, - transformLegacyDecorators: function () { return transformLegacyDecorators; }, - transformModule: function () { return transformModule; }, - transformNamedEvaluation: function () { return transformNamedEvaluation; }, - transformNodeModule: function () { return transformNodeModule; }, - transformNodes: function () { return transformNodes; }, - transformSystemModule: function () { return transformSystemModule; }, - transformTypeScript: function () { return transformTypeScript; }, - transpile: function () { return transpile; }, - transpileModule: function () { return transpileModule; }, - transpileOptionValueCompilerOptions: function () { return transpileOptionValueCompilerOptions; }, - trimString: function () { return trimString; }, - trimStringEnd: function () { return trimStringEnd; }, - trimStringStart: function () { return trimStringStart; }, - tryAddToSet: function () { return tryAddToSet; }, - tryAndIgnoreErrors: function () { return tryAndIgnoreErrors; }, - tryCast: function () { return tryCast; }, - tryDirectoryExists: function () { return tryDirectoryExists; }, - tryExtractTSExtension: function () { return tryExtractTSExtension; }, - tryFileExists: function () { return tryFileExists; }, - tryGetClassExtendingExpressionWithTypeArguments: function () { return tryGetClassExtendingExpressionWithTypeArguments; }, - tryGetClassImplementingOrExtendingExpressionWithTypeArguments: function () { return tryGetClassImplementingOrExtendingExpressionWithTypeArguments; }, - tryGetDirectories: function () { return tryGetDirectories; }, - tryGetExtensionFromPath: function () { return tryGetExtensionFromPath2; }, - tryGetImportFromModuleSpecifier: function () { return tryGetImportFromModuleSpecifier; }, - tryGetJSDocSatisfiesTypeNode: function () { return tryGetJSDocSatisfiesTypeNode; }, - tryGetModuleNameFromFile: function () { return tryGetModuleNameFromFile; }, - tryGetModuleSpecifierFromDeclaration: function () { return tryGetModuleSpecifierFromDeclaration; }, - tryGetNativePerformanceHooks: function () { return tryGetNativePerformanceHooks; }, - tryGetPropertyAccessOrIdentifierToString: function () { return tryGetPropertyAccessOrIdentifierToString; }, - tryGetPropertyNameOfBindingOrAssignmentElement: function () { return tryGetPropertyNameOfBindingOrAssignmentElement; }, - tryGetSourceMappingURL: function () { return tryGetSourceMappingURL; }, - tryGetTextOfPropertyName: function () { return tryGetTextOfPropertyName; }, - tryIOAndConsumeErrors: function () { return tryIOAndConsumeErrors; }, - tryParsePattern: function () { return tryParsePattern; }, - tryParsePatterns: function () { return tryParsePatterns; }, - tryParseRawSourceMap: function () { return tryParseRawSourceMap; }, - tryReadDirectory: function () { return tryReadDirectory; }, - tryReadFile: function () { return tryReadFile; }, - tryRemoveDirectoryPrefix: function () { return tryRemoveDirectoryPrefix; }, - tryRemoveExtension: function () { return tryRemoveExtension; }, - tryRemovePrefix: function () { return tryRemovePrefix; }, - tryRemoveSuffix: function () { return tryRemoveSuffix; }, - typeAcquisitionDeclarations: function () { return typeAcquisitionDeclarations; }, - typeAliasNamePart: function () { return typeAliasNamePart; }, - typeDirectiveIsEqualTo: function () { return typeDirectiveIsEqualTo; }, - typeKeywords: function () { return typeKeywords; }, - typeParameterNamePart: function () { return typeParameterNamePart; }, - typeReferenceResolutionNameAndModeGetter: function () { return typeReferenceResolutionNameAndModeGetter; }, - typeToDisplayParts: function () { return typeToDisplayParts; }, - unchangedPollThresholds: function () { return unchangedPollThresholds; }, - unchangedTextChangeRange: function () { return unchangedTextChangeRange; }, - unescapeLeadingUnderscores: function () { return unescapeLeadingUnderscores; }, - unmangleScopedPackageName: function () { return unmangleScopedPackageName; }, - unorderedRemoveItem: function () { return unorderedRemoveItem; }, - unorderedRemoveItemAt: function () { return unorderedRemoveItemAt; }, - unreachableCodeIsError: function () { return unreachableCodeIsError; }, - unusedLabelIsError: function () { return unusedLabelIsError; }, - unwrapInnermostStatementOfLabel: function () { return unwrapInnermostStatementOfLabel; }, - updateErrorForNoInputFiles: function () { return updateErrorForNoInputFiles; }, - updateLanguageServiceSourceFile: function () { return updateLanguageServiceSourceFile; }, - updateMissingFilePathsWatch: function () { return updateMissingFilePathsWatch; }, - updatePackageJsonWatch: function () { return updatePackageJsonWatch; }, - updateResolutionField: function () { return updateResolutionField; }, - updateSharedExtendedConfigFileWatcher: function () { return updateSharedExtendedConfigFileWatcher; }, - updateSourceFile: function () { return updateSourceFile; }, - updateWatchingWildcardDirectories: function () { return updateWatchingWildcardDirectories; }, - usesExtensionsOnImports: function () { return usesExtensionsOnImports; }, - usingSingleLineStringWriter: function () { return usingSingleLineStringWriter; }, - utf16EncodeAsString: function () { return utf16EncodeAsString; }, - validateLocaleAndSetLanguage: function () { return validateLocaleAndSetLanguage; }, - valuesHelper: function () { return valuesHelper; }, - version: function () { return version; }, - versionMajorMinor: function () { return versionMajorMinor; }, - visitArray: function () { return visitArray; }, - visitCommaListElements: function () { return visitCommaListElements; }, - visitEachChild: function () { return visitEachChild; }, - visitFunctionBody: function () { return visitFunctionBody; }, - visitIterationBody: function () { return visitIterationBody; }, - visitLexicalEnvironment: function () { return visitLexicalEnvironment; }, - visitNode: function () { return visitNode; }, - visitNodes: function () { return visitNodes2; }, - visitParameterList: function () { return visitParameterList; }, - walkUpBindingElementsAndPatterns: function () { return walkUpBindingElementsAndPatterns; }, - walkUpLexicalEnvironments: function () { return walkUpLexicalEnvironments; }, - walkUpOuterExpressions: function () { return walkUpOuterExpressions; }, - walkUpParenthesizedExpressions: function () { return walkUpParenthesizedExpressions; }, - walkUpParenthesizedTypes: function () { return walkUpParenthesizedTypes; }, - walkUpParenthesizedTypesAndGetParentAndChild: function () { return walkUpParenthesizedTypesAndGetParentAndChild; }, - whitespaceOrMapCommentRegExp: function () { return whitespaceOrMapCommentRegExp; }, - writeCommentRange: function () { return writeCommentRange; }, - writeFile: function () { return writeFile; }, - writeFileEnsuringDirectories: function () { return writeFileEnsuringDirectories; }, - zipToModeAwareCache: function () { return zipToModeAwareCache; }, - zipWith: function () { return zipWith; } -}); -// src/deprecatedCompat/deprecate.ts -var enableDeprecationWarnings = true; -var typeScriptVersion2; -function getTypeScriptVersion() { - return typeScriptVersion2 !== null && typeScriptVersion2 !== void 0 ? typeScriptVersion2 : (typeScriptVersion2 = new Version(version)); -} -function formatDeprecationMessage(name, error2, errorAfter, since, message) { - var deprecationMessage = error2 ? "DeprecationError: " : "DeprecationWarning: "; - deprecationMessage += "'".concat(name, "' "); - deprecationMessage += since ? "has been deprecated since v".concat(since) : "is deprecated"; - deprecationMessage += error2 ? " and can no longer be used." : errorAfter ? " and will no longer be usable after v".concat(errorAfter, ".") : "."; - deprecationMessage += message ? " ".concat(formatStringFromArgs(message, [name], 0)) : ""; - return deprecationMessage; -} -function createErrorDeprecation(name, errorAfter, since, message) { - var deprecationMessage = formatDeprecationMessage(name, - /*error*/ - true, errorAfter, since, message); - return function () { - throw new TypeError(deprecationMessage); - }; -} -function createWarningDeprecation(name, errorAfter, since, message) { - var hasWrittenDeprecation = false; - return function () { - if (enableDeprecationWarnings && !hasWrittenDeprecation) { - Debug.log.warn(formatDeprecationMessage(name, - /*error*/ - false, errorAfter, since, message)); - hasWrittenDeprecation = true; - } - }; -} -function createDeprecation(name, options) { - var _t, _u; - if (options === void 0) { options = {}; } - var version2 = typeof options.typeScriptVersion === "string" ? new Version(options.typeScriptVersion) : (_t = options.typeScriptVersion) !== null && _t !== void 0 ? _t : getTypeScriptVersion(); - var errorAfter = typeof options.errorAfter === "string" ? new Version(options.errorAfter) : options.errorAfter; - var warnAfter = typeof options.warnAfter === "string" ? new Version(options.warnAfter) : options.warnAfter; - var since = typeof options.since === "string" ? new Version(options.since) : (_u = options.since) !== null && _u !== void 0 ? _u : warnAfter; - var error2 = options.error || errorAfter && version2.compareTo(errorAfter) >= 0; - var warn = !warnAfter || version2.compareTo(warnAfter) >= 0; - return error2 ? createErrorDeprecation(name, errorAfter, since, options.message) : warn ? createWarningDeprecation(name, errorAfter, since, options.message) : noop; -} -function wrapFunction(deprecation, func) { - return function () { - deprecation(); - return func.apply(this, arguments); - }; -} -function deprecate(func, options) { - var _t; - var deprecation = createDeprecation((_t = (options == null ? void 0 : options.name)) !== null && _t !== void 0 ? _t : Debug.getFunctionName(func), options); - return wrapFunction(deprecation, func); -} -// src/deprecatedCompat/deprecations.ts -function createOverload(name, overloads, binder2, deprecations) { - var e_892, _t; - Object.defineProperty(call, "name", __assign(__assign({}, Object.getOwnPropertyDescriptor(call, "name")), { value: name })); - if (deprecations) { - try { - for (var _u = __values(Object.keys(deprecations)), _v = _u.next(); !_v.done; _v = _u.next()) { - var key = _v.value; - var index = +key; - if (!isNaN(index) && hasProperty(overloads, "".concat(index))) { - overloads[index] = deprecate(overloads[index], __assign(__assign({}, deprecations[index]), { name: name })); - } - } - } - catch (e_892_1) { e_892 = { error: e_892_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_892) throw e_892.error; } - } - } - var bind = createBinder2(overloads, binder2); - return call; - function call() { - var args = []; - for (var _t = 0; _t < arguments.length; _t++) { - args[_t] = arguments[_t]; - } - var index = bind(args); - var fn = index !== void 0 ? overloads[index] : void 0; - if (typeof fn === "function") { - return fn.apply(void 0, __spreadArray([], __read(args), false)); - } - throw new TypeError("Invalid arguments"); - } -} -function createBinder2(overloads, binder2) { - return function (args) { - for (var i = 0; hasProperty(overloads, "".concat(i)) && hasProperty(binder2, "".concat(i)); i++) { - var fn = binder2[i]; - if (fn(args)) { - return i; - } - } - }; -} -function buildOverload(name) { - return { - overload: function (overloads) { return ({ - bind: function (binder2) { return ({ - finish: function () { return createOverload(name, overloads, binder2); }, - deprecate: function (deprecations) { return ({ - finish: function () { return createOverload(name, overloads, binder2, deprecations); } - }); } - }); } - }); } - }; -} -// src/deprecatedCompat/5.0/identifierProperties.ts -addObjectAllocatorPatcher(function (objectAllocator2) { - var Identifier78 = objectAllocator2.getIdentifierConstructor(); - if (!hasProperty(Identifier78.prototype, "originalKeywordKind")) { - Object.defineProperty(Identifier78.prototype, "originalKeywordKind", { - get: deprecate(function () { - return identifierToKeywordKind(this); - }, { - name: "originalKeywordKind", - since: "5.0", - warnAfter: "5.1", - errorAfter: "5.2", - message: "Use 'identifierToKeywordKind(identifier)' instead." - }) - }); - } - if (!hasProperty(Identifier78.prototype, "isInJSDocNamespace")) { - Object.defineProperty(Identifier78.prototype, "isInJSDocNamespace", { - get: deprecate(function () { - return this.flags & 4096 /* IdentifierIsInJSDocNamespace */ ? true : void 0; - }, { - name: "isInJSDocNamespace", - since: "5.0", - warnAfter: "5.1", - errorAfter: "5.2", - message: "Use '.parent' or the surrounding context to determine this instead." - }) - }); - } -}); -// src/server/_namespaces/ts.server.ts -var ts_server_exports3 = {}; -__export(ts_server_exports3, { - ActionInvalidate: function () { return ActionInvalidate; }, - ActionPackageInstalled: function () { return ActionPackageInstalled; }, - ActionSet: function () { return ActionSet; }, - ActionWatchTypingLocations: function () { return ActionWatchTypingLocations; }, - Arguments: function () { return Arguments; }, - AutoImportProviderProject: function () { return AutoImportProviderProject; }, - AuxiliaryProject: function () { return AuxiliaryProject; }, - CharRangeSection: function () { return CharRangeSection; }, - CommandNames: function () { return CommandNames; }, - ConfigFileDiagEvent: function () { return ConfigFileDiagEvent; }, - ConfiguredProject: function () { return ConfiguredProject2; }, - Errors: function () { return Errors; }, - EventBeginInstallTypes: function () { return EventBeginInstallTypes; }, - EventEndInstallTypes: function () { return EventEndInstallTypes; }, - EventInitializationFailed: function () { return EventInitializationFailed; }, - EventTypesRegistry: function () { return EventTypesRegistry; }, - ExternalProject: function () { return ExternalProject2; }, - GcTimer: function () { return GcTimer; }, - InferredProject: function () { return InferredProject2; }, - LargeFileReferencedEvent: function () { return LargeFileReferencedEvent; }, - LineIndex: function () { return LineIndex; }, - LineLeaf: function () { return LineLeaf; }, - LineNode: function () { return LineNode; }, - LogLevel: function () { return LogLevel2; }, - Msg: function () { return Msg; }, - OpenFileInfoTelemetryEvent: function () { return OpenFileInfoTelemetryEvent; }, - Project: function () { return Project3; }, - ProjectInfoTelemetryEvent: function () { return ProjectInfoTelemetryEvent; }, - ProjectKind: function () { return ProjectKind; }, - ProjectLanguageServiceStateEvent: function () { return ProjectLanguageServiceStateEvent; }, - ProjectLoadingFinishEvent: function () { return ProjectLoadingFinishEvent; }, - ProjectLoadingStartEvent: function () { return ProjectLoadingStartEvent; }, - ProjectReferenceProjectLoadKind: function () { return ProjectReferenceProjectLoadKind; }, - ProjectService: function () { return ProjectService3; }, - ProjectsUpdatedInBackgroundEvent: function () { return ProjectsUpdatedInBackgroundEvent; }, - ScriptInfo: function () { return ScriptInfo; }, - ScriptVersionCache: function () { return ScriptVersionCache; }, - Session: function () { return Session3; }, - TextStorage: function () { return TextStorage; }, - ThrottledOperations: function () { return ThrottledOperations; }, - TypingsCache: function () { return TypingsCache; }, - allFilesAreJsOrDts: function () { return allFilesAreJsOrDts; }, - allRootFilesAreJsOrDts: function () { return allRootFilesAreJsOrDts; }, - asNormalizedPath: function () { return asNormalizedPath; }, - convertCompilerOptions: function () { return convertCompilerOptions; }, - convertFormatOptions: function () { return convertFormatOptions; }, - convertScriptKindName: function () { return convertScriptKindName; }, - convertTypeAcquisition: function () { return convertTypeAcquisition; }, - convertUserPreferences: function () { return convertUserPreferences; }, - convertWatchOptions: function () { return convertWatchOptions; }, - countEachFileTypes: function () { return countEachFileTypes; }, - createInstallTypingsRequest: function () { return createInstallTypingsRequest; }, - createModuleSpecifierCache: function () { return createModuleSpecifierCache; }, - createNormalizedPathMap: function () { return createNormalizedPathMap; }, - createPackageJsonCache: function () { return createPackageJsonCache; }, - createSortedArray: function () { return createSortedArray2; }, - emptyArray: function () { return emptyArray2; }, - findArgument: function () { return findArgument; }, - forEachResolvedProjectReferenceProject: function () { return forEachResolvedProjectReferenceProject; }, - formatDiagnosticToProtocol: function () { return formatDiagnosticToProtocol; }, - formatMessage: function () { return formatMessage2; }, - getBaseConfigFileName: function () { return getBaseConfigFileName; }, - getLocationInNewDocument: function () { return getLocationInNewDocument; }, - hasArgument: function () { return hasArgument; }, - hasNoTypeScriptSource: function () { return hasNoTypeScriptSource; }, - indent: function () { return indent2; }, - isConfigFile: function () { return isConfigFile; }, - isConfiguredProject: function () { return isConfiguredProject; }, - isDynamicFileName: function () { return isDynamicFileName; }, - isExternalProject: function () { return isExternalProject; }, - isInferredProject: function () { return isInferredProject; }, - isInferredProjectName: function () { return isInferredProjectName; }, - makeAutoImportProviderProjectName: function () { return makeAutoImportProviderProjectName; }, - makeAuxiliaryProjectName: function () { return makeAuxiliaryProjectName; }, - makeInferredProjectName: function () { return makeInferredProjectName; }, - maxFileSize: function () { return maxFileSize; }, - maxProgramSizeForNonTsFiles: function () { return maxProgramSizeForNonTsFiles; }, - normalizedPathToPath: function () { return normalizedPathToPath; }, - nowString: function () { return nowString; }, - nullCancellationToken: function () { return nullCancellationToken; }, - nullTypingsInstaller: function () { return nullTypingsInstaller; }, - projectContainsInfoDirectly: function () { return projectContainsInfoDirectly; }, - protocol: function () { return ts_server_protocol_exports; }, - removeSorted: function () { return removeSorted; }, - stringifyIndented: function () { return stringifyIndented; }, - toEvent: function () { return toEvent; }, - toNormalizedPath: function () { return toNormalizedPath; }, - tryConvertScriptKindName: function () { return tryConvertScriptKindName; }, - typingsInstaller: function () { return ts_server_typingsInstaller_exports; }, - updateProjectIfDirty: function () { return updateProjectIfDirty; } -}); -// src/typingsInstallerCore/_namespaces/ts.server.typingsInstaller.ts -var ts_server_typingsInstaller_exports = {}; -__export(ts_server_typingsInstaller_exports, { - TypingsInstaller: function () { return TypingsInstaller; }, - getNpmCommandForInstallation: function () { return getNpmCommandForInstallation; }, - installNpmPackages: function () { return installNpmPackages; }, - typingsName: function () { return typingsName; } -}); -// src/typingsInstallerCore/typingsInstaller.ts -var nullLog = { - isEnabled: function () { return false; }, - writeLine: noop -}; -function typingToFileName(cachePath, packageName, installTypingHost, log) { - try { - var result = resolveModuleName(packageName, combinePaths(cachePath, "index.d.ts"), { moduleResolution: 2 /* Node10 */ }, installTypingHost); - return result.resolvedModule && result.resolvedModule.resolvedFileName; - } - catch (e) { - if (log.isEnabled()) { - log.writeLine("Failed to resolve ".concat(packageName, " in folder '").concat(cachePath, "': ").concat(e.message)); - } - return void 0; - } -} -function installNpmPackages(npmPath, tsVersion, packageNames, install) { - var hasError = false; - for (var remaining = packageNames.length; remaining > 0;) { - var result = getNpmCommandForInstallation(npmPath, tsVersion, packageNames, remaining); - remaining = result.remaining; - hasError = install(result.command) || hasError; - } - return hasError; -} -function getNpmCommandForInstallation(npmPath, tsVersion, packageNames, remaining) { - var sliceStart = packageNames.length - remaining; - var command, toSlice = remaining; - while (true) { - command = "".concat(npmPath, " install --ignore-scripts ").concat((toSlice === packageNames.length ? packageNames : packageNames.slice(sliceStart, sliceStart + toSlice)).join(" "), " --save-dev --user-agent=\"typesInstaller/").concat(tsVersion, "\""); - if (command.length < 8e3) { - break; - } - toSlice = toSlice - Math.floor(toSlice / 2); - } - return { command: command, remaining: remaining - toSlice }; -} -var TypingsInstaller = /** @class */ (function () { - function TypingsInstaller(installTypingHost, globalCachePath, safeListPath, typesMapLocation, throttleLimit, log) { - if (log === void 0) { log = nullLog; } - this.installTypingHost = installTypingHost; - this.globalCachePath = globalCachePath; - this.safeListPath = safeListPath; - this.typesMapLocation = typesMapLocation; - this.throttleLimit = throttleLimit; - this.log = log; - this.packageNameToTypingLocation = /* @__PURE__ */ new Map(); - this.missingTypingsSet = /* @__PURE__ */ new Set(); - this.knownCachesSet = /* @__PURE__ */ new Set(); - this.projectWatchers = /* @__PURE__ */ new Map(); - /** @internal */ - this.pendingRunRequests = []; - this.installRunCount = 1; - this.inFlightRequestCount = 0; - this.latestDistTag = "latest"; - var isLoggingEnabled = this.log.isEnabled(); - if (isLoggingEnabled) { - this.log.writeLine("Global cache location '".concat(globalCachePath, "', safe file path '").concat(safeListPath, "', types map path ").concat(typesMapLocation)); - } - this.processCacheLocation(this.globalCachePath); - } - TypingsInstaller.prototype.closeProject = function (req) { - this.closeWatchers(req.projectName); - }; - TypingsInstaller.prototype.closeWatchers = function (projectName) { - if (this.log.isEnabled()) { - this.log.writeLine("Closing file watchers for project '".concat(projectName, "'")); - } - var watchers = this.projectWatchers.get(projectName); - if (!watchers) { - if (this.log.isEnabled()) { - this.log.writeLine("No watchers are registered for project '".concat(projectName, "'")); - } - return; - } - this.projectWatchers.delete(projectName); - this.sendResponse({ kind: ActionWatchTypingLocations, projectName: projectName, files: [] }); - if (this.log.isEnabled()) { - this.log.writeLine("Closing file watchers for project '".concat(projectName, "' - done.")); - } - }; - TypingsInstaller.prototype.install = function (req) { - var _this = this; - if (this.log.isEnabled()) { - this.log.writeLine("Got install request ".concat(JSON.stringify(req))); - } - if (req.cachePath) { - if (this.log.isEnabled()) { - this.log.writeLine("Request specifies cache path '".concat(req.cachePath, "', loading cached information...")); - } - this.processCacheLocation(req.cachePath); - } - if (this.safeList === void 0) { - this.initializeSafeList(); - } - var discoverTypingsResult = ts_JsTyping_exports.discoverTypings(this.installTypingHost, this.log.isEnabled() ? function (s) { return _this.log.writeLine(s); } : void 0, req.fileNames, req.projectRootPath, this.safeList, this.packageNameToTypingLocation, req.typeAcquisition, req.unresolvedImports, this.typesRegistry, req.compilerOptions); - if (this.log.isEnabled()) { - this.log.writeLine("Finished typings discovery: ".concat(JSON.stringify(discoverTypingsResult))); - } - this.watchFiles(req.projectName, discoverTypingsResult.filesToWatch); - if (discoverTypingsResult.newTypingNames.length) { - this.installTypings(req, req.cachePath || this.globalCachePath, discoverTypingsResult.cachedTypingPaths, discoverTypingsResult.newTypingNames); - } - else { - this.sendResponse(this.createSetTypings(req, discoverTypingsResult.cachedTypingPaths)); - if (this.log.isEnabled()) { - this.log.writeLine("No new typings were requested as a result of typings discovery"); - } - } - }; - TypingsInstaller.prototype.initializeSafeList = function () { - if (this.typesMapLocation) { - var safeListFromMap = ts_JsTyping_exports.loadTypesMap(this.installTypingHost, this.typesMapLocation); - if (safeListFromMap) { - this.log.writeLine("Loaded safelist from types map file '".concat(this.typesMapLocation, "'")); - this.safeList = safeListFromMap; - return; - } - this.log.writeLine("Failed to load safelist from types map file '".concat(this.typesMapLocation, "'")); - } - this.safeList = ts_JsTyping_exports.loadSafeList(this.installTypingHost, this.safeListPath); - }; - TypingsInstaller.prototype.processCacheLocation = function (cacheLocation) { - if (this.log.isEnabled()) { - this.log.writeLine("Processing cache location '".concat(cacheLocation, "'")); - } - if (this.knownCachesSet.has(cacheLocation)) { - if (this.log.isEnabled()) { - this.log.writeLine("Cache location was already processed..."); - } - return; - } - var packageJson = combinePaths(cacheLocation, "package.json"); - var packageLockJson = combinePaths(cacheLocation, "package-lock.json"); - if (this.log.isEnabled()) { - this.log.writeLine("Trying to find '".concat(packageJson, "'...")); - } - if (this.installTypingHost.fileExists(packageJson) && this.installTypingHost.fileExists(packageLockJson)) { - var npmConfig = JSON.parse(this.installTypingHost.readFile(packageJson)); - var npmLock = JSON.parse(this.installTypingHost.readFile(packageLockJson)); - if (this.log.isEnabled()) { - this.log.writeLine("Loaded content of '".concat(packageJson, "': ").concat(JSON.stringify(npmConfig))); - this.log.writeLine("Loaded content of '".concat(packageLockJson, "'")); - } - if (npmConfig.devDependencies && npmLock.dependencies) { - for (var key in npmConfig.devDependencies) { - if (!hasProperty(npmLock.dependencies, key)) { - continue; - } - var packageName = getBaseFileName(key); - if (!packageName) { - continue; - } - var typingFile = typingToFileName(cacheLocation, packageName, this.installTypingHost, this.log); - if (!typingFile) { - this.missingTypingsSet.add(packageName); - continue; - } - var existingTypingFile = this.packageNameToTypingLocation.get(packageName); - if (existingTypingFile) { - if (existingTypingFile.typingLocation === typingFile) { - continue; - } - if (this.log.isEnabled()) { - this.log.writeLine("New typing for package ".concat(packageName, " from '").concat(typingFile, "' conflicts with existing typing file '").concat(existingTypingFile, "'")); - } - } - if (this.log.isEnabled()) { - this.log.writeLine("Adding entry into typings cache: '".concat(packageName, "' => '").concat(typingFile, "'")); - } - var info = getProperty(npmLock.dependencies, key); - var version2 = info && info.version; - if (!version2) { - continue; - } - var newTyping = { typingLocation: typingFile, version: new Version(version2) }; - this.packageNameToTypingLocation.set(packageName, newTyping); - } - } - } - if (this.log.isEnabled()) { - this.log.writeLine("Finished processing cache location '".concat(cacheLocation, "'")); - } - this.knownCachesSet.add(cacheLocation); - }; - TypingsInstaller.prototype.filterTypings = function (typingsToInstall) { - var _this = this; - return mapDefined(typingsToInstall, function (typing) { - var typingKey = mangleScopedPackageName(typing); - if (_this.missingTypingsSet.has(typingKey)) { - if (_this.log.isEnabled()) - _this.log.writeLine("'".concat(typing, "':: '").concat(typingKey, "' is in missingTypingsSet - skipping...")); - return void 0; - } - var validationResult = ts_JsTyping_exports.validatePackageName(typing); - if (validationResult !== ts_JsTyping_exports.NameValidationResult.Ok) { - _this.missingTypingsSet.add(typingKey); - if (_this.log.isEnabled()) - _this.log.writeLine(ts_JsTyping_exports.renderPackageNameValidationFailure(validationResult, typing)); - return void 0; - } - if (!_this.typesRegistry.has(typingKey)) { - if (_this.log.isEnabled()) - _this.log.writeLine("'".concat(typing, "':: Entry for package '").concat(typingKey, "' does not exist in local types registry - skipping...")); - return void 0; - } - if (_this.packageNameToTypingLocation.get(typingKey) && ts_JsTyping_exports.isTypingUpToDate(_this.packageNameToTypingLocation.get(typingKey), _this.typesRegistry.get(typingKey))) { - if (_this.log.isEnabled()) - _this.log.writeLine("'".concat(typing, "':: '").concat(typingKey, "' already has an up-to-date typing - skipping...")); - return void 0; - } - return typingKey; - }); - }; - TypingsInstaller.prototype.ensurePackageDirectoryExists = function (directory) { - var npmConfigPath = combinePaths(directory, "package.json"); - if (this.log.isEnabled()) { - this.log.writeLine("Npm config file: ".concat(npmConfigPath)); - } - if (!this.installTypingHost.fileExists(npmConfigPath)) { - if (this.log.isEnabled()) { - this.log.writeLine("Npm config file: '".concat(npmConfigPath, "' is missing, creating new one...")); - } - this.ensureDirectoryExists(directory, this.installTypingHost); - this.installTypingHost.writeFile(npmConfigPath, '{ "private": true }'); - } - }; - TypingsInstaller.prototype.installTypings = function (req, cachePath, currentlyCachedTypings, typingsToInstall) { - var _this = this; - if (this.log.isEnabled()) { - this.log.writeLine("Installing typings ".concat(JSON.stringify(typingsToInstall))); - } - var filteredTypings = this.filterTypings(typingsToInstall); - if (filteredTypings.length === 0) { - if (this.log.isEnabled()) { - this.log.writeLine("All typings are known to be missing or invalid - no need to install more typings"); - } - this.sendResponse(this.createSetTypings(req, currentlyCachedTypings)); - return; - } - this.ensurePackageDirectoryExists(cachePath); - var requestId = this.installRunCount; - this.installRunCount++; - this.sendResponse({ - kind: EventBeginInstallTypes, - eventId: requestId, - typingsInstallerVersion: version, - projectName: req.projectName - }); - var scopedTypings = filteredTypings.map(typingsName); - this.installTypingsAsync(requestId, scopedTypings, cachePath, function (ok) { - var e_893, _t, e_894, _u; - try { - if (!ok) { - if (_this.log.isEnabled()) { - _this.log.writeLine("install request failed, marking packages as missing to prevent repeated requests: ".concat(JSON.stringify(filteredTypings))); - } - try { - for (var filteredTypings_1 = __values(filteredTypings), filteredTypings_1_1 = filteredTypings_1.next(); !filteredTypings_1_1.done; filteredTypings_1_1 = filteredTypings_1.next()) { - var typing = filteredTypings_1_1.value; - _this.missingTypingsSet.add(typing); - } - } - catch (e_893_1) { e_893 = { error: e_893_1 }; } - finally { - try { - if (filteredTypings_1_1 && !filteredTypings_1_1.done && (_t = filteredTypings_1.return)) _t.call(filteredTypings_1); - } - finally { if (e_893) throw e_893.error; } - } - return; - } - if (_this.log.isEnabled()) { - _this.log.writeLine("Installed typings ".concat(JSON.stringify(scopedTypings))); - } - var installedTypingFiles = []; - try { - for (var filteredTypings_2 = __values(filteredTypings), filteredTypings_2_1 = filteredTypings_2.next(); !filteredTypings_2_1.done; filteredTypings_2_1 = filteredTypings_2.next()) { - var packageName = filteredTypings_2_1.value; - var typingFile = typingToFileName(cachePath, packageName, _this.installTypingHost, _this.log); - if (!typingFile) { - _this.missingTypingsSet.add(packageName); - continue; - } - var distTags = _this.typesRegistry.get(packageName); - var newVersion = new Version(distTags["ts".concat(versionMajorMinor)] || distTags[_this.latestDistTag]); - var newTyping = { typingLocation: typingFile, version: newVersion }; - _this.packageNameToTypingLocation.set(packageName, newTyping); - installedTypingFiles.push(typingFile); - } - } - catch (e_894_1) { e_894 = { error: e_894_1 }; } - finally { - try { - if (filteredTypings_2_1 && !filteredTypings_2_1.done && (_u = filteredTypings_2.return)) _u.call(filteredTypings_2); - } - finally { if (e_894) throw e_894.error; } - } - if (_this.log.isEnabled()) { - _this.log.writeLine("Installed typing files ".concat(JSON.stringify(installedTypingFiles))); - } - _this.sendResponse(_this.createSetTypings(req, currentlyCachedTypings.concat(installedTypingFiles))); - } - finally { - var response = { - kind: EventEndInstallTypes, - eventId: requestId, - projectName: req.projectName, - packagesToInstall: scopedTypings, - installSuccess: ok, - typingsInstallerVersion: version - }; - _this.sendResponse(response); - } - }); - }; - TypingsInstaller.prototype.ensureDirectoryExists = function (directory, host) { - var directoryName = getDirectoryPath(directory); - if (!host.directoryExists(directoryName)) { - this.ensureDirectoryExists(directoryName, host); - } - if (!host.directoryExists(directory)) { - host.createDirectory(directory); - } - }; - TypingsInstaller.prototype.watchFiles = function (projectName, files) { - if (!files.length) { - this.closeWatchers(projectName); - return; - } - var existing = this.projectWatchers.get(projectName); - var newSet = new Set(files); - if (!existing || forEachKey(newSet, function (s) { return !existing.has(s); }) || forEachKey(existing, function (s) { return !newSet.has(s); })) { - this.projectWatchers.set(projectName, newSet); - this.sendResponse({ kind: ActionWatchTypingLocations, projectName: projectName, files: files }); - } - else { - this.sendResponse({ kind: ActionWatchTypingLocations, projectName: projectName, files: void 0 }); - } - }; - TypingsInstaller.prototype.createSetTypings = function (request, typings) { - return { - projectName: request.projectName, - typeAcquisition: request.typeAcquisition, - compilerOptions: request.compilerOptions, - typings: typings, - unresolvedImports: request.unresolvedImports, - kind: ActionSet - }; - }; - TypingsInstaller.prototype.installTypingsAsync = function (requestId, packageNames, cwd, onRequestCompleted) { - this.pendingRunRequests.unshift({ requestId: requestId, packageNames: packageNames, cwd: cwd, onRequestCompleted: onRequestCompleted }); - this.executeWithThrottling(); - }; - TypingsInstaller.prototype.executeWithThrottling = function () { - var _this = this; - var _loop_62 = function () { - this_2.inFlightRequestCount++; - var request = this_2.pendingRunRequests.pop(); - this_2.installWorker(request.requestId, request.packageNames, request.cwd, function (ok) { - _this.inFlightRequestCount--; - request.onRequestCompleted(ok); - _this.executeWithThrottling(); - }); - }; - var this_2 = this; - while (this.inFlightRequestCount < this.throttleLimit && this.pendingRunRequests.length) { - _loop_62(); - } - }; - return TypingsInstaller; -}()); -function typingsName(packageName) { - return "@types/".concat(packageName, "@ts").concat(versionMajorMinor); -} -// src/server/utilitiesPublic.ts -var LogLevel2 = /* @__PURE__ */ (function (LogLevel3) { - LogLevel3[LogLevel3["terse"] = 0] = "terse"; - LogLevel3[LogLevel3["normal"] = 1] = "normal"; - LogLevel3[LogLevel3["requestTime"] = 2] = "requestTime"; - LogLevel3[LogLevel3["verbose"] = 3] = "verbose"; - return LogLevel3; -})(LogLevel2 || {}); -var emptyArray2 = createSortedArray2(); -var Msg = /* @__PURE__ */ (function (Msg2) { - Msg2["Err"] = "Err"; - Msg2["Info"] = "Info"; - Msg2["Perf"] = "Perf"; - return Msg2; -})(Msg || {}); -function createInstallTypingsRequest(project, typeAcquisition, unresolvedImports, cachePath) { - return { - projectName: project.getProjectName(), - fileNames: project.getFileNames( - /*excludeFilesFromExternalLibraries*/ - true, - /*excludeConfigFiles*/ - true).concat(project.getExcludedFiles()), - compilerOptions: project.getCompilationSettings(), - typeAcquisition: typeAcquisition, - unresolvedImports: unresolvedImports, - projectRootPath: project.getCurrentDirectory(), - cachePath: cachePath, - kind: "discover" - }; -} -var Errors; -(function (Errors2) { - function ThrowNoProject() { - throw new Error("No Project."); - } - Errors2.ThrowNoProject = ThrowNoProject; - function ThrowProjectLanguageServiceDisabled() { - throw new Error("The project's language service is disabled."); - } - Errors2.ThrowProjectLanguageServiceDisabled = ThrowProjectLanguageServiceDisabled; - function ThrowProjectDoesNotContainDocument(fileName, project) { - throw new Error("Project '".concat(project.getProjectName(), "' does not contain document '").concat(fileName, "'")); - } - Errors2.ThrowProjectDoesNotContainDocument = ThrowProjectDoesNotContainDocument; -})(Errors || (Errors = {})); -function toNormalizedPath(fileName) { - return normalizePath(fileName); -} -function normalizedPathToPath(normalizedPath, currentDirectory, getCanonicalFileName) { - var f = isRootedDiskPath(normalizedPath) ? normalizedPath : getNormalizedAbsolutePath(normalizedPath, currentDirectory); - return getCanonicalFileName(f); -} -function asNormalizedPath(fileName) { - return fileName; -} -function createNormalizedPathMap() { - var map2 = /* @__PURE__ */ new Map(); - return { - get: function (path) { - return map2.get(path); - }, - set: function (path, value) { - map2.set(path, value); - }, - contains: function (path) { - return map2.has(path); - }, - remove: function (path) { - map2.delete(path); - } - }; -} -function isInferredProjectName(name) { - return /dev\/null\/inferredProject\d+\*/.test(name); -} -function makeInferredProjectName(counter) { - return "/dev/null/inferredProject".concat(counter, "*"); -} -function makeAutoImportProviderProjectName(counter) { - return "/dev/null/autoImportProviderProject".concat(counter, "*"); -} -function makeAuxiliaryProjectName(counter) { - return "/dev/null/auxiliaryProject".concat(counter, "*"); -} -function createSortedArray2() { - return []; -} -// src/server/utilities.ts -var ThrottledOperations = /** @class */ (function () { - function _ThrottledOperations(host, logger) { - this.host = host; - this.pendingTimeouts = /* @__PURE__ */ new Map(); - this.logger = logger.hasLevel(3 /* verbose */) ? logger : void 0; - } - /** - * Wait `number` milliseconds and then invoke `cb`. If, while waiting, schedule - * is called again with the same `operationId`, cancel this operation in favor - * of the new one. (Note that the amount of time the canceled operation had been - * waiting does not affect the amount of time that the new operation waits.) - */ - _ThrottledOperations.prototype.schedule = function (operationId, delay, cb) { - var pendingTimeout = this.pendingTimeouts.get(operationId); - if (pendingTimeout) { - this.host.clearTimeout(pendingTimeout); - } - this.pendingTimeouts.set(operationId, this.host.setTimeout(_ThrottledOperations.run, delay, operationId, this, cb)); - if (this.logger) { - this.logger.info("Scheduled: ".concat(operationId).concat(pendingTimeout ? ", Cancelled earlier one" : "")); - } - }; - _ThrottledOperations.prototype.cancel = function (operationId) { - var pendingTimeout = this.pendingTimeouts.get(operationId); - if (!pendingTimeout) - return false; - this.host.clearTimeout(pendingTimeout); - return this.pendingTimeouts.delete(operationId); - }; - _ThrottledOperations.run = function (operationId, self, cb) { - var _a, _b; - (_a = perfLogger) == null ? void 0 : _a.logStartScheduledOperation(operationId); - self.pendingTimeouts.delete(operationId); - if (self.logger) { - self.logger.info("Running: ".concat(operationId)); - } - cb(); - (_b = perfLogger) == null ? void 0 : _b.logStopScheduledOperation(); - }; - return _ThrottledOperations; -}()); -var GcTimer = /** @class */ (function () { - function _GcTimer(host, delay, logger) { - this.host = host; - this.delay = delay; - this.logger = logger; - } - _GcTimer.prototype.scheduleCollect = function () { - if (!this.host.gc || this.timerId !== void 0) { - return; - } - this.timerId = this.host.setTimeout(_GcTimer.run, this.delay, this); - }; - _GcTimer.run = function (self) { - var _a, _b; - self.timerId = void 0; - (_a = perfLogger) == null ? void 0 : _a.logStartScheduledOperation("GC collect"); - var log = self.logger.hasLevel(2 /* requestTime */); - var before = log && self.host.getMemoryUsage(); - self.host.gc(); - if (log) { - var after = self.host.getMemoryUsage(); - self.logger.perftrc("GC::before ".concat(before, ", after ").concat(after)); - } - (_b = perfLogger) == null ? void 0 : _b.logStopScheduledOperation(); - }; - return _GcTimer; -}()); -function getBaseConfigFileName(configFilePath) { - var base = getBaseFileName(configFilePath); - return base === "tsconfig.json" || base === "jsconfig.json" ? base : void 0; -} -function removeSorted(array, remove, compare) { - if (!array || array.length === 0) { - return; - } - if (array[0] === remove) { - array.splice(0, 1); - return; - } - var removeIndex = binarySearch(array, remove, identity, compare); - if (removeIndex >= 0) { - array.splice(removeIndex, 1); - } -} -var indentStr = "\n "; -function indent2(str) { - return indentStr + str.replace(/\n/g, indentStr); -} -function stringifyIndented(json) { - return indentStr + JSON.stringify(json); -} -// src/server/_namespaces/ts.server.protocol.ts -var ts_server_protocol_exports = {}; -__export(ts_server_protocol_exports, { - ClassificationType: function () { return ClassificationType2; }, - CommandTypes: function () { return CommandTypes; }, - CompletionTriggerKind: function () { return CompletionTriggerKind2; }, - IndentStyle: function () { return IndentStyle2; }, - JsxEmit: function () { return JsxEmit2; }, - ModuleKind: function () { return ModuleKind2; }, - ModuleResolutionKind: function () { return ModuleResolutionKind2; }, - NewLineKind: function () { return NewLineKind2; }, - OrganizeImportsMode: function () { return OrganizeImportsMode2; }, - PollingWatchKind: function () { return PollingWatchKind2; }, - ScriptTarget: function () { return ScriptTarget10; }, - SemicolonPreference: function () { return SemicolonPreference2; }, - WatchDirectoryKind: function () { return WatchDirectoryKind2; }, - WatchFileKind: function () { return WatchFileKind2; } -}); -// src/server/protocol.ts -var CommandTypes = /* @__PURE__ */ (function (CommandTypes2) { - CommandTypes2["JsxClosingTag"] = "jsxClosingTag"; - CommandTypes2["LinkedEditingRange"] = "linkedEditingRange"; - CommandTypes2["Brace"] = "brace"; - CommandTypes2["BraceFull"] = "brace-full"; - CommandTypes2["BraceCompletion"] = "braceCompletion"; - CommandTypes2["GetSpanOfEnclosingComment"] = "getSpanOfEnclosingComment"; - CommandTypes2["Change"] = "change"; - CommandTypes2["Close"] = "close"; - CommandTypes2["Completions"] = "completions"; - CommandTypes2["CompletionInfo"] = "completionInfo"; - CommandTypes2["CompletionsFull"] = "completions-full"; - CommandTypes2["CompletionDetails"] = "completionEntryDetails"; - CommandTypes2["CompletionDetailsFull"] = "completionEntryDetails-full"; - CommandTypes2["CompileOnSaveAffectedFileList"] = "compileOnSaveAffectedFileList"; - CommandTypes2["CompileOnSaveEmitFile"] = "compileOnSaveEmitFile"; - CommandTypes2["Configure"] = "configure"; - CommandTypes2["Definition"] = "definition"; - CommandTypes2["DefinitionFull"] = "definition-full"; - CommandTypes2["DefinitionAndBoundSpan"] = "definitionAndBoundSpan"; - CommandTypes2["DefinitionAndBoundSpanFull"] = "definitionAndBoundSpan-full"; - CommandTypes2["Implementation"] = "implementation"; - CommandTypes2["ImplementationFull"] = "implementation-full"; - CommandTypes2["EmitOutput"] = "emit-output"; - CommandTypes2["Exit"] = "exit"; - CommandTypes2["FileReferences"] = "fileReferences"; - CommandTypes2["FileReferencesFull"] = "fileReferences-full"; - CommandTypes2["Format"] = "format"; - CommandTypes2["Formatonkey"] = "formatonkey"; - CommandTypes2["FormatFull"] = "format-full"; - CommandTypes2["FormatonkeyFull"] = "formatonkey-full"; - CommandTypes2["FormatRangeFull"] = "formatRange-full"; - CommandTypes2["Geterr"] = "geterr"; - CommandTypes2["GeterrForProject"] = "geterrForProject"; - CommandTypes2["SemanticDiagnosticsSync"] = "semanticDiagnosticsSync"; - CommandTypes2["SyntacticDiagnosticsSync"] = "syntacticDiagnosticsSync"; - CommandTypes2["SuggestionDiagnosticsSync"] = "suggestionDiagnosticsSync"; - CommandTypes2["NavBar"] = "navbar"; - CommandTypes2["NavBarFull"] = "navbar-full"; - CommandTypes2["Navto"] = "navto"; - CommandTypes2["NavtoFull"] = "navto-full"; - CommandTypes2["NavTree"] = "navtree"; - CommandTypes2["NavTreeFull"] = "navtree-full"; - CommandTypes2["DocumentHighlights"] = "documentHighlights"; - CommandTypes2["DocumentHighlightsFull"] = "documentHighlights-full"; - CommandTypes2["Open"] = "open"; - CommandTypes2["Quickinfo"] = "quickinfo"; - CommandTypes2["QuickinfoFull"] = "quickinfo-full"; - CommandTypes2["References"] = "references"; - CommandTypes2["ReferencesFull"] = "references-full"; - CommandTypes2["Reload"] = "reload"; - CommandTypes2["Rename"] = "rename"; - CommandTypes2["RenameInfoFull"] = "rename-full"; - CommandTypes2["RenameLocationsFull"] = "renameLocations-full"; - CommandTypes2["Saveto"] = "saveto"; - CommandTypes2["SignatureHelp"] = "signatureHelp"; - CommandTypes2["SignatureHelpFull"] = "signatureHelp-full"; - CommandTypes2["FindSourceDefinition"] = "findSourceDefinition"; - CommandTypes2["Status"] = "status"; - CommandTypes2["TypeDefinition"] = "typeDefinition"; - CommandTypes2["ProjectInfo"] = "projectInfo"; - CommandTypes2["ReloadProjects"] = "reloadProjects"; - CommandTypes2["Unknown"] = "unknown"; - CommandTypes2["OpenExternalProject"] = "openExternalProject"; - CommandTypes2["OpenExternalProjects"] = "openExternalProjects"; - CommandTypes2["CloseExternalProject"] = "closeExternalProject"; - CommandTypes2["SynchronizeProjectList"] = "synchronizeProjectList"; - CommandTypes2["ApplyChangedToOpenFiles"] = "applyChangedToOpenFiles"; - CommandTypes2["UpdateOpen"] = "updateOpen"; - CommandTypes2["EncodedSyntacticClassificationsFull"] = "encodedSyntacticClassifications-full"; - CommandTypes2["EncodedSemanticClassificationsFull"] = "encodedSemanticClassifications-full"; - CommandTypes2["Cleanup"] = "cleanup"; - CommandTypes2["GetOutliningSpans"] = "getOutliningSpans"; - CommandTypes2["GetOutliningSpansFull"] = "outliningSpans"; - CommandTypes2["TodoComments"] = "todoComments"; - CommandTypes2["Indentation"] = "indentation"; - CommandTypes2["DocCommentTemplate"] = "docCommentTemplate"; - CommandTypes2["CompilerOptionsDiagnosticsFull"] = "compilerOptionsDiagnostics-full"; - CommandTypes2["NameOrDottedNameSpan"] = "nameOrDottedNameSpan"; - CommandTypes2["BreakpointStatement"] = "breakpointStatement"; - CommandTypes2["CompilerOptionsForInferredProjects"] = "compilerOptionsForInferredProjects"; - CommandTypes2["GetCodeFixes"] = "getCodeFixes"; - CommandTypes2["GetCodeFixesFull"] = "getCodeFixes-full"; - CommandTypes2["GetCombinedCodeFix"] = "getCombinedCodeFix"; - CommandTypes2["GetCombinedCodeFixFull"] = "getCombinedCodeFix-full"; - CommandTypes2["ApplyCodeActionCommand"] = "applyCodeActionCommand"; - CommandTypes2["GetSupportedCodeFixes"] = "getSupportedCodeFixes"; - CommandTypes2["GetApplicableRefactors"] = "getApplicableRefactors"; - CommandTypes2["GetEditsForRefactor"] = "getEditsForRefactor"; - CommandTypes2["GetMoveToRefactoringFileSuggestions"] = "getMoveToRefactoringFileSuggestions"; - CommandTypes2["GetEditsForRefactorFull"] = "getEditsForRefactor-full"; - CommandTypes2["OrganizeImports"] = "organizeImports"; - CommandTypes2["OrganizeImportsFull"] = "organizeImports-full"; - CommandTypes2["GetEditsForFileRename"] = "getEditsForFileRename"; - CommandTypes2["GetEditsForFileRenameFull"] = "getEditsForFileRename-full"; - CommandTypes2["ConfigurePlugin"] = "configurePlugin"; - CommandTypes2["SelectionRange"] = "selectionRange"; - CommandTypes2["SelectionRangeFull"] = "selectionRange-full"; - CommandTypes2["ToggleLineComment"] = "toggleLineComment"; - CommandTypes2["ToggleLineCommentFull"] = "toggleLineComment-full"; - CommandTypes2["ToggleMultilineComment"] = "toggleMultilineComment"; - CommandTypes2["ToggleMultilineCommentFull"] = "toggleMultilineComment-full"; - CommandTypes2["CommentSelection"] = "commentSelection"; - CommandTypes2["CommentSelectionFull"] = "commentSelection-full"; - CommandTypes2["UncommentSelection"] = "uncommentSelection"; - CommandTypes2["UncommentSelectionFull"] = "uncommentSelection-full"; - CommandTypes2["PrepareCallHierarchy"] = "prepareCallHierarchy"; - CommandTypes2["ProvideCallHierarchyIncomingCalls"] = "provideCallHierarchyIncomingCalls"; - CommandTypes2["ProvideCallHierarchyOutgoingCalls"] = "provideCallHierarchyOutgoingCalls"; - CommandTypes2["ProvideInlayHints"] = "provideInlayHints"; - return CommandTypes2; -})(CommandTypes || {}); -var OrganizeImportsMode2 = /* @__PURE__ */ (function (OrganizeImportsMode3) { - OrganizeImportsMode3["All"] = "All"; - OrganizeImportsMode3["SortAndCombine"] = "SortAndCombine"; - OrganizeImportsMode3["RemoveUnused"] = "RemoveUnused"; - return OrganizeImportsMode3; -})(OrganizeImportsMode2 || {}); -var WatchFileKind2 = /* @__PURE__ */ (function (WatchFileKind3) { - WatchFileKind3["FixedPollingInterval"] = "FixedPollingInterval"; - WatchFileKind3["PriorityPollingInterval"] = "PriorityPollingInterval"; - WatchFileKind3["DynamicPriorityPolling"] = "DynamicPriorityPolling"; - WatchFileKind3["FixedChunkSizePolling"] = "FixedChunkSizePolling"; - WatchFileKind3["UseFsEvents"] = "UseFsEvents"; - WatchFileKind3["UseFsEventsOnParentDirectory"] = "UseFsEventsOnParentDirectory"; - return WatchFileKind3; -})(WatchFileKind2 || {}); -var WatchDirectoryKind2 = /* @__PURE__ */ (function (WatchDirectoryKind3) { - WatchDirectoryKind3["UseFsEvents"] = "UseFsEvents"; - WatchDirectoryKind3["FixedPollingInterval"] = "FixedPollingInterval"; - WatchDirectoryKind3["DynamicPriorityPolling"] = "DynamicPriorityPolling"; - WatchDirectoryKind3["FixedChunkSizePolling"] = "FixedChunkSizePolling"; - return WatchDirectoryKind3; -})(WatchDirectoryKind2 || {}); -var PollingWatchKind2 = /* @__PURE__ */ (function (PollingWatchKind3) { - PollingWatchKind3["FixedInterval"] = "FixedInterval"; - PollingWatchKind3["PriorityInterval"] = "PriorityInterval"; - PollingWatchKind3["DynamicPriority"] = "DynamicPriority"; - PollingWatchKind3["FixedChunkSize"] = "FixedChunkSize"; - return PollingWatchKind3; -})(PollingWatchKind2 || {}); -var CompletionTriggerKind2 = /* @__PURE__ */ (function (CompletionTriggerKind4) { - CompletionTriggerKind4[CompletionTriggerKind4["Invoked"] = 1] = "Invoked"; - CompletionTriggerKind4[CompletionTriggerKind4["TriggerCharacter"] = 2] = "TriggerCharacter"; - CompletionTriggerKind4[CompletionTriggerKind4["TriggerForIncompleteCompletions"] = 3] = "TriggerForIncompleteCompletions"; - return CompletionTriggerKind4; -})(CompletionTriggerKind2 || {}); -var IndentStyle2 = /* @__PURE__ */ (function (IndentStyle3) { - IndentStyle3["None"] = "None"; - IndentStyle3["Block"] = "Block"; - IndentStyle3["Smart"] = "Smart"; - return IndentStyle3; -})(IndentStyle2 || {}); -var SemicolonPreference2 = /* @__PURE__ */ (function (SemicolonPreference3) { - SemicolonPreference3["Ignore"] = "ignore"; - SemicolonPreference3["Insert"] = "insert"; - SemicolonPreference3["Remove"] = "remove"; - return SemicolonPreference3; -})(SemicolonPreference2 || {}); -var JsxEmit2 = /* @__PURE__ */ (function (JsxEmit3) { - JsxEmit3["None"] = "None"; - JsxEmit3["Preserve"] = "Preserve"; - JsxEmit3["ReactNative"] = "ReactNative"; - JsxEmit3["React"] = "React"; - return JsxEmit3; -})(JsxEmit2 || {}); -var ModuleKind2 = /* @__PURE__ */ (function (ModuleKind3) { - ModuleKind3["None"] = "None"; - ModuleKind3["CommonJS"] = "CommonJS"; - ModuleKind3["AMD"] = "AMD"; - ModuleKind3["UMD"] = "UMD"; - ModuleKind3["System"] = "System"; - ModuleKind3["ES6"] = "ES6"; - ModuleKind3["ES2015"] = "ES2015"; - ModuleKind3["ESNext"] = "ESNext"; - return ModuleKind3; -})(ModuleKind2 || {}); -var ModuleResolutionKind2 = /* @__PURE__ */ (function (ModuleResolutionKind3) { - ModuleResolutionKind3["Classic"] = "Classic"; - ModuleResolutionKind3["Node"] = "Node"; - return ModuleResolutionKind3; -})(ModuleResolutionKind2 || {}); -var NewLineKind2 = /* @__PURE__ */ (function (NewLineKind3) { - NewLineKind3["Crlf"] = "Crlf"; - NewLineKind3["Lf"] = "Lf"; - return NewLineKind3; -})(NewLineKind2 || {}); -var ScriptTarget10 = /* @__PURE__ */ (function (ScriptTarget11) { - ScriptTarget11["ES3"] = "ES3"; - ScriptTarget11["ES5"] = "ES5"; - ScriptTarget11["ES6"] = "ES6"; - ScriptTarget11["ES2015"] = "ES2015"; - ScriptTarget11["ES2016"] = "ES2016"; - ScriptTarget11["ES2017"] = "ES2017"; - ScriptTarget11["ES2018"] = "ES2018"; - ScriptTarget11["ES2019"] = "ES2019"; - ScriptTarget11["ES2020"] = "ES2020"; - ScriptTarget11["ES2021"] = "ES2021"; - ScriptTarget11["ES2022"] = "ES2022"; - ScriptTarget11["ESNext"] = "ESNext"; - return ScriptTarget11; -})(ScriptTarget10 || {}); -var ClassificationType2 = /* @__PURE__ */ (function (ClassificationType3) { - ClassificationType3[ClassificationType3["comment"] = 1] = "comment"; - ClassificationType3[ClassificationType3["identifier"] = 2] = "identifier"; - ClassificationType3[ClassificationType3["keyword"] = 3] = "keyword"; - ClassificationType3[ClassificationType3["numericLiteral"] = 4] = "numericLiteral"; - ClassificationType3[ClassificationType3["operator"] = 5] = "operator"; - ClassificationType3[ClassificationType3["stringLiteral"] = 6] = "stringLiteral"; - ClassificationType3[ClassificationType3["regularExpressionLiteral"] = 7] = "regularExpressionLiteral"; - ClassificationType3[ClassificationType3["whiteSpace"] = 8] = "whiteSpace"; - ClassificationType3[ClassificationType3["text"] = 9] = "text"; - ClassificationType3[ClassificationType3["punctuation"] = 10] = "punctuation"; - ClassificationType3[ClassificationType3["className"] = 11] = "className"; - ClassificationType3[ClassificationType3["enumName"] = 12] = "enumName"; - ClassificationType3[ClassificationType3["interfaceName"] = 13] = "interfaceName"; - ClassificationType3[ClassificationType3["moduleName"] = 14] = "moduleName"; - ClassificationType3[ClassificationType3["typeParameterName"] = 15] = "typeParameterName"; - ClassificationType3[ClassificationType3["typeAliasName"] = 16] = "typeAliasName"; - ClassificationType3[ClassificationType3["parameterName"] = 17] = "parameterName"; - ClassificationType3[ClassificationType3["docCommentTagName"] = 18] = "docCommentTagName"; - ClassificationType3[ClassificationType3["jsxOpenTagName"] = 19] = "jsxOpenTagName"; - ClassificationType3[ClassificationType3["jsxCloseTagName"] = 20] = "jsxCloseTagName"; - ClassificationType3[ClassificationType3["jsxSelfClosingTagName"] = 21] = "jsxSelfClosingTagName"; - ClassificationType3[ClassificationType3["jsxAttribute"] = 22] = "jsxAttribute"; - ClassificationType3[ClassificationType3["jsxText"] = 23] = "jsxText"; - ClassificationType3[ClassificationType3["jsxAttributeStringLiteralValue"] = 24] = "jsxAttributeStringLiteralValue"; - ClassificationType3[ClassificationType3["bigintLiteral"] = 25] = "bigintLiteral"; - return ClassificationType3; -})(ClassificationType2 || {}); -// src/server/scriptInfo.ts -var TextStorage = /** @class */ (function () { - function class_3(host, info, initialVersion) { - this.host = host; - this.info = info; - /** - * True if the text is for the file thats open in the editor - */ - this.isOpen = false; - /** - * True if the text present is the text from the file on the disk - */ - this.ownFileText = false; - /** - * True when reloading contents of file from the disk is pending - */ - this.pendingReloadFromDisk = false; - this.version = initialVersion || 0; - } - class_3.prototype.getVersion = function () { - return this.svc ? "SVC-".concat(this.version, "-").concat(this.svc.getSnapshotVersion()) : "Text-".concat(this.version); - }; - class_3.prototype.hasScriptVersionCache_TestOnly = function () { - return this.svc !== void 0; - }; - class_3.prototype.resetSourceMapInfo = function () { - this.info.sourceFileLike = void 0; - this.info.closeSourceMapFileWatcher(); - this.info.sourceMapFilePath = void 0; - this.info.declarationInfoPath = void 0; - this.info.sourceInfos = void 0; - this.info.documentPositionMapper = void 0; - }; - /** Public for testing */ - class_3.prototype.useText = function (newText) { - this.svc = void 0; - this.text = newText; - this.textSnapshot = void 0; - this.lineMap = void 0; - this.fileSize = void 0; - this.resetSourceMapInfo(); - this.version++; - }; - class_3.prototype.edit = function (start2, end, newText) { - this.switchToScriptVersionCache().edit(start2, end - start2, newText); - this.ownFileText = false; - this.text = void 0; - this.textSnapshot = void 0; - this.lineMap = void 0; - this.fileSize = void 0; - this.resetSourceMapInfo(); - }; - /** - * Set the contents as newText - * returns true if text changed - */ - class_3.prototype.reload = function (newText) { - Debug.assert(newText !== void 0); - this.pendingReloadFromDisk = false; - if (!this.text && this.svc) { - this.text = getSnapshotText(this.svc.getSnapshot()); - } - if (this.text !== newText) { - this.useText(newText); - this.ownFileText = false; - return true; - } - return false; - }; - /** - * Reads the contents from tempFile(if supplied) or own file and sets it as contents - * returns true if text changed - */ - class_3.prototype.reloadWithFileText = function (tempFileName) { - var _t = tempFileName || !this.info.isDynamicOrHasMixedContent() ? this.getFileTextAndSize(tempFileName) : { text: "", fileSize: void 0 }, newText = _t.text, fileSize = _t.fileSize; - var reloaded = this.reload(newText); - this.fileSize = fileSize; - this.ownFileText = !tempFileName || tempFileName === this.info.fileName; - return reloaded; - }; - /** - * Schedule reload from the disk if its not already scheduled and its not own text - * returns true when scheduling reload - */ - class_3.prototype.scheduleReloadIfNeeded = function () { - return !this.pendingReloadFromDisk && !this.ownFileText ? this.pendingReloadFromDisk = true : false; - }; - class_3.prototype.delayReloadFromFileIntoText = function () { - this.pendingReloadFromDisk = true; - }; - /** - * For telemetry purposes, we would like to be able to report the size of the file. - * However, we do not want telemetry to require extra file I/O so we report a size - * that may be stale (e.g. may not reflect change made on disk since the last reload). - * NB: Will read from disk if the file contents have never been loaded because - * telemetry falsely indicating size 0 would be counter-productive. - */ - class_3.prototype.getTelemetryFileSize = function () { - return !!this.fileSize ? this.fileSize : !!this.text ? this.text.length : !!this.svc ? this.svc.getSnapshot().getLength() : this.getSnapshot().getLength(); - }; - class_3.prototype.getSnapshot = function () { - var _t; - var _a; - return ((_a = this.tryUseScriptVersionCache()) == null ? void 0 : _a.getSnapshot()) || ((_t = this.textSnapshot) !== null && _t !== void 0 ? _t : (this.textSnapshot = ScriptSnapshot.fromString(Debug.checkDefined(this.text)))); - }; - class_3.prototype.getAbsolutePositionAndLineText = function (oneBasedLine) { - var svc = this.tryUseScriptVersionCache(); - if (svc) - return svc.getAbsolutePositionAndLineText(oneBasedLine); - var lineMap = this.getLineMap(); - return oneBasedLine <= lineMap.length ? { - absolutePosition: lineMap[oneBasedLine - 1], - lineText: this.text.substring(lineMap[oneBasedLine - 1], lineMap[oneBasedLine]) - } : { - absolutePosition: this.text.length, - lineText: void 0 - }; - }; - /** - * @param line 0 based index - */ - class_3.prototype.lineToTextSpan = function (line) { - var svc = this.tryUseScriptVersionCache(); - if (svc) - return svc.lineToTextSpan(line); - var lineMap = this.getLineMap(); - var start2 = lineMap[line]; - var end = line + 1 < lineMap.length ? lineMap[line + 1] : this.text.length; - return createTextSpanFromBounds(start2, end); - }; - /** - * @param line 1 based index - * @param offset 1 based index - */ - class_3.prototype.lineOffsetToPosition = function (line, offset, allowEdits) { - var svc = this.tryUseScriptVersionCache(); - return svc ? svc.lineOffsetToPosition(line, offset) : computePositionOfLineAndCharacter(this.getLineMap(), line - 1, offset - 1, this.text, allowEdits); - }; - class_3.prototype.positionToLineOffset = function (position) { - var svc = this.tryUseScriptVersionCache(); - if (svc) - return svc.positionToLineOffset(position); - var _t = computeLineAndCharacterOfPosition(this.getLineMap(), position), line = _t.line, character = _t.character; - return { line: line + 1, offset: character + 1 }; - }; - class_3.prototype.getFileTextAndSize = function (tempFileName) { - var _this = this; - var text; - var fileName = tempFileName || this.info.fileName; - var getText = function () { return text === void 0 ? text = _this.host.readFile(fileName) || "" : text; }; - if (!hasTSFileExtension(this.info.fileName)) { - var fileSize = this.host.getFileSize ? this.host.getFileSize(fileName) : getText().length; - if (fileSize > maxFileSize) { - Debug.assert(!!this.info.containingProjects.length); - var service = this.info.containingProjects[0].projectService; - service.logger.info("Skipped loading contents of large file ".concat(fileName, " for info ").concat(this.info.fileName, ": fileSize: ").concat(fileSize)); - this.info.containingProjects[0].projectService.sendLargeFileReferencedEvent(fileName, fileSize); - return { text: "", fileSize: fileSize }; - } - } - return { text: getText() }; - }; - /** @internal */ - class_3.prototype.switchToScriptVersionCache = function () { - if (!this.svc || this.pendingReloadFromDisk) { - this.svc = ScriptVersionCache.fromString(this.getOrLoadText()); - this.textSnapshot = void 0; - this.version++; - } - return this.svc; - }; - class_3.prototype.tryUseScriptVersionCache = function () { - if (!this.svc || this.pendingReloadFromDisk) { - this.getOrLoadText(); - } - if (this.isOpen) { - if (!this.svc && !this.textSnapshot) { - this.svc = ScriptVersionCache.fromString(Debug.checkDefined(this.text)); - this.textSnapshot = void 0; - } - return this.svc; - } - return this.svc; - }; - class_3.prototype.getOrLoadText = function () { - if (this.text === void 0 || this.pendingReloadFromDisk) { - Debug.assert(!this.svc || this.pendingReloadFromDisk, "ScriptVersionCache should not be set when reloading from disk"); - this.reloadWithFileText(); - } - return this.text; - }; - class_3.prototype.getLineMap = function () { - Debug.assert(!this.svc, "ScriptVersionCache should not be set"); - return this.lineMap || (this.lineMap = computeLineStarts(Debug.checkDefined(this.text))); - }; - class_3.prototype.getLineInfo = function () { - var svc = this.tryUseScriptVersionCache(); - if (svc) { - return { - getLineCount: function () { return svc.getLineCount(); }, - getLineText: function (line) { return svc.getAbsolutePositionAndLineText(line + 1).lineText; } - }; - } - var lineMap = this.getLineMap(); - return getLineInfo(this.text, lineMap); - }; - return class_3; -}()); -function isDynamicFileName(fileName) { - return fileName[0] === "^" || (stringContains(fileName, "walkThroughSnippet:/") || stringContains(fileName, "untitled:/")) && getBaseFileName(fileName)[0] === "^" || stringContains(fileName, ":^") && !stringContains(fileName, directorySeparator); -} -var ScriptInfo = /** @class */ (function () { - function class_4(host, fileName, scriptKind, hasMixedContent, path, initialVersion) { - this.host = host; - this.fileName = fileName; - this.scriptKind = scriptKind; - this.hasMixedContent = hasMixedContent; - this.path = path; - /** - * All projects that include this file - */ - this.containingProjects = []; - this.isDynamic = isDynamicFileName(fileName); - this.textStorage = new TextStorage(host, this, initialVersion); - if (hasMixedContent || this.isDynamic) { - this.realpath = this.path; - } - this.scriptKind = scriptKind ? scriptKind : getScriptKindFromFileName(fileName); - } - /** @internal */ - class_4.prototype.isDynamicOrHasMixedContent = function () { - return this.hasMixedContent || this.isDynamic; - }; - class_4.prototype.isScriptOpen = function () { - return this.textStorage.isOpen; - }; - class_4.prototype.open = function (newText) { - this.textStorage.isOpen = true; - if (newText !== void 0 && this.textStorage.reload(newText)) { - this.markContainingProjectsAsDirty(); - } - }; - class_4.prototype.close = function (fileExists) { - if (fileExists === void 0) { fileExists = true; } - this.textStorage.isOpen = false; - if (fileExists && this.textStorage.scheduleReloadIfNeeded()) { - this.markContainingProjectsAsDirty(); - } - }; - class_4.prototype.getSnapshot = function () { - return this.textStorage.getSnapshot(); - }; - class_4.prototype.ensureRealPath = function () { - if (this.realpath === void 0) { - this.realpath = this.path; - if (this.host.realpath) { - Debug.assert(!!this.containingProjects.length); - var project = this.containingProjects[0]; - var realpath = this.host.realpath(this.path); - if (realpath) { - this.realpath = project.toPath(realpath); - if (this.realpath !== this.path) { - project.projectService.realpathToScriptInfos.add(this.realpath, this); - } - } - } - } - }; - /** @internal */ - class_4.prototype.getRealpathIfDifferent = function () { - return this.realpath && this.realpath !== this.path ? this.realpath : void 0; - }; - /** - * @internal - * Does not compute realpath; uses precomputed result. Use `ensureRealPath` - * first if a definite result is needed. - */ - class_4.prototype.isSymlink = function () { - return this.realpath && this.realpath !== this.path; - }; - class_4.prototype.getFormatCodeSettings = function () { - return this.formatSettings; - }; - class_4.prototype.getPreferences = function () { - return this.preferences; - }; - class_4.prototype.attachToProject = function (project) { - var isNew = !this.isAttached(project); - if (isNew) { - this.containingProjects.push(project); - if (!project.getCompilerOptions().preserveSymlinks) { - this.ensureRealPath(); - } - project.onFileAddedOrRemoved(this.isSymlink()); - } - return isNew; - }; - class_4.prototype.isAttached = function (project) { - switch (this.containingProjects.length) { - case 0: - return false; - case 1: - return this.containingProjects[0] === project; - case 2: - return this.containingProjects[0] === project || this.containingProjects[1] === project; - default: - return contains(this.containingProjects, project); - } - }; - class_4.prototype.detachFromProject = function (project) { - switch (this.containingProjects.length) { - case 0: - return; - case 1: - if (this.containingProjects[0] === project) { - project.onFileAddedOrRemoved(this.isSymlink()); - this.containingProjects.pop(); - } - break; - case 2: - if (this.containingProjects[0] === project) { - project.onFileAddedOrRemoved(this.isSymlink()); - this.containingProjects[0] = this.containingProjects.pop(); - } - else if (this.containingProjects[1] === project) { - project.onFileAddedOrRemoved(this.isSymlink()); - this.containingProjects.pop(); - } - break; - default: - if (unorderedRemoveItem(this.containingProjects, project)) { - project.onFileAddedOrRemoved(this.isSymlink()); - } - break; - } - }; - class_4.prototype.detachAllProjects = function () { - var e_895, _t; - try { - for (var _u = __values(this.containingProjects), _v = _u.next(); !_v.done; _v = _u.next()) { - var p = _v.value; - if (isConfiguredProject(p)) { - p.getCachedDirectoryStructureHost().addOrDeleteFile(this.fileName, this.path, 2 /* Deleted */); - } - var existingRoot = p.getRootFilesMap().get(this.path); - p.removeFile(this, - /*fileExists*/ - false, - /*detachFromProject*/ - false); - p.onFileAddedOrRemoved(this.isSymlink()); - if (existingRoot && !isInferredProject(p)) { - p.addMissingFileRoot(existingRoot.fileName); - } - } - } - catch (e_895_1) { e_895 = { error: e_895_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_895) throw e_895.error; } - } - clear(this.containingProjects); - }; - class_4.prototype.getDefaultProject = function () { - switch (this.containingProjects.length) { - case 0: - return Errors.ThrowNoProject(); - case 1: - return ensurePrimaryProjectKind(this.containingProjects[0]); - default: - var firstExternalProject = void 0; - var firstConfiguredProject = void 0; - var firstInferredProject = void 0; - var firstNonSourceOfProjectReferenceRedirect = void 0; - var defaultConfiguredProject = void 0; - for (var index = 0; index < this.containingProjects.length; index++) { - var project = this.containingProjects[index]; - if (isConfiguredProject(project)) { - if (!project.isSourceOfProjectReferenceRedirect(this.fileName)) { - if (defaultConfiguredProject === void 0 && index !== this.containingProjects.length - 1) { - defaultConfiguredProject = project.projectService.findDefaultConfiguredProject(this) || false; - } - if (defaultConfiguredProject === project) - return project; - if (!firstNonSourceOfProjectReferenceRedirect) - firstNonSourceOfProjectReferenceRedirect = project; - } - if (!firstConfiguredProject) - firstConfiguredProject = project; - } - else if (!firstExternalProject && isExternalProject(project)) { - firstExternalProject = project; - } - else if (!firstInferredProject && isInferredProject(project)) { - firstInferredProject = project; - } - } - return ensurePrimaryProjectKind(defaultConfiguredProject || firstNonSourceOfProjectReferenceRedirect || firstConfiguredProject || firstExternalProject || firstInferredProject); - } - }; - class_4.prototype.registerFileUpdate = function () { - var e_896, _t; - try { - for (var _u = __values(this.containingProjects), _v = _u.next(); !_v.done; _v = _u.next()) { - var p = _v.value; - p.registerFileUpdate(this.path); - } - } - catch (e_896_1) { e_896 = { error: e_896_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_896) throw e_896.error; } - } - }; - class_4.prototype.setOptions = function (formatSettings, preferences) { - if (formatSettings) { - if (!this.formatSettings) { - this.formatSettings = getDefaultFormatCodeSettings(this.host.newLine); - assign(this.formatSettings, formatSettings); - } - else { - this.formatSettings = __assign(__assign({}, this.formatSettings), formatSettings); - } - } - if (preferences) { - if (!this.preferences) { - this.preferences = emptyOptions; - } - this.preferences = __assign(__assign({}, this.preferences), preferences); - } - }; - class_4.prototype.getLatestVersion = function () { - this.textStorage.getSnapshot(); - return this.textStorage.getVersion(); - }; - class_4.prototype.saveTo = function (fileName) { - this.host.writeFile(fileName, getSnapshotText(this.textStorage.getSnapshot())); - }; - /** @internal */ - class_4.prototype.delayReloadNonMixedContentFile = function () { - Debug.assert(!this.isDynamicOrHasMixedContent()); - this.textStorage.delayReloadFromFileIntoText(); - this.markContainingProjectsAsDirty(); - }; - class_4.prototype.reloadFromFile = function (tempFileName) { - if (this.textStorage.reloadWithFileText(tempFileName)) { - this.markContainingProjectsAsDirty(); - return true; - } - return false; - }; - class_4.prototype.editContent = function (start2, end, newText) { - this.textStorage.edit(start2, end, newText); - this.markContainingProjectsAsDirty(); - }; - class_4.prototype.markContainingProjectsAsDirty = function () { - var e_897, _t; - try { - for (var _u = __values(this.containingProjects), _v = _u.next(); !_v.done; _v = _u.next()) { - var p = _v.value; - p.markFileAsDirty(this.path); - } - } - catch (e_897_1) { e_897 = { error: e_897_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_897) throw e_897.error; } - } - }; - class_4.prototype.isOrphan = function () { - return !forEach(this.containingProjects, function (p) { return !p.isOrphan(); }); - }; - /** @internal */ - class_4.prototype.isContainedByBackgroundProject = function () { - return some(this.containingProjects, function (p) { return p.projectKind === 3 /* AutoImportProvider */ || p.projectKind === 4; } /* Auxiliary */); - }; - /** - * @param line 1 based index - */ - class_4.prototype.lineToTextSpan = function (line) { - return this.textStorage.lineToTextSpan(line); - }; - // eslint-disable-line @typescript-eslint/unified-signatures - class_4.prototype.lineOffsetToPosition = function (line, offset, allowEdits) { - return this.textStorage.lineOffsetToPosition(line, offset, allowEdits); - }; - class_4.prototype.positionToLineOffset = function (position) { - failIfInvalidPosition(position); - var location = this.textStorage.positionToLineOffset(position); - failIfInvalidLocation(location); - return location; - }; - class_4.prototype.isJavaScript = function () { - return this.scriptKind === 1 /* JS */ || this.scriptKind === 2 /* JSX */; - }; - /** @internal */ - class_4.prototype.closeSourceMapFileWatcher = function () { - if (this.sourceMapFilePath && !isString(this.sourceMapFilePath)) { - closeFileWatcherOf(this.sourceMapFilePath); - this.sourceMapFilePath = void 0; - } - }; - return class_4; -}()); -function ensurePrimaryProjectKind(project) { - if (!project || project.projectKind === 3 /* AutoImportProvider */ || project.projectKind === 4 /* Auxiliary */) { - return Errors.ThrowNoProject(); - } - return project; -} -function failIfInvalidPosition(position) { - Debug.assert(typeof position === "number", "Expected position ".concat(position, " to be a number.")); - Debug.assert(position >= 0, "Expected position to be non-negative."); -} -function failIfInvalidLocation(location) { - Debug.assert(typeof location.line === "number", "Expected line ".concat(location.line, " to be a number.")); - Debug.assert(typeof location.offset === "number", "Expected offset ".concat(location.offset, " to be a number.")); - Debug.assert(location.line > 0, "Expected line to be non-".concat(location.line === 0 ? "zero" : "negative")); - Debug.assert(location.offset > 0, "Expected offset to be non-".concat(location.offset === 0 ? "zero" : "negative")); -} -// src/server/typingsCache.ts -var nullTypingsInstaller = { - isKnownTypesPackageName: returnFalse, - // Should never be called because we never provide a types registry. - installPackage: notImplemented, - enqueueInstallTypingsRequest: noop, - attach: noop, - onProjectClosed: noop, - globalTypingsCacheLocation: void 0 - // TODO: GH#18217 -}; -function setIsEqualTo(arr1, arr2) { - var e_898, _t, e_899, _u; - if (arr1 === arr2) { - return true; - } - if ((arr1 || emptyArray2).length === 0 && (arr2 || emptyArray2).length === 0) { - return true; - } - var set = /* @__PURE__ */ new Map(); - var unique = 0; - try { - for (var arr1_1 = __values(arr1), arr1_1_1 = arr1_1.next(); !arr1_1_1.done; arr1_1_1 = arr1_1.next()) { - var v = arr1_1_1.value; - if (set.get(v) !== true) { - set.set(v, true); - unique++; - } - } - } - catch (e_898_1) { e_898 = { error: e_898_1 }; } - finally { - try { - if (arr1_1_1 && !arr1_1_1.done && (_t = arr1_1.return)) _t.call(arr1_1); - } - finally { if (e_898) throw e_898.error; } - } - try { - for (var arr2_1 = __values(arr2), arr2_1_1 = arr2_1.next(); !arr2_1_1.done; arr2_1_1 = arr2_1.next()) { - var v = arr2_1_1.value; - var isSet = set.get(v); - if (isSet === void 0) { - return false; - } - if (isSet === true) { - set.set(v, false); - unique--; - } - } - } - catch (e_899_1) { e_899 = { error: e_899_1 }; } - finally { - try { - if (arr2_1_1 && !arr2_1_1.done && (_u = arr2_1.return)) _u.call(arr2_1); - } - finally { if (e_899) throw e_899.error; } - } - return unique === 0; -} -function typeAcquisitionChanged(opt1, opt2) { - return opt1.enable !== opt2.enable || !setIsEqualTo(opt1.include, opt2.include) || !setIsEqualTo(opt1.exclude, opt2.exclude); -} -function compilerOptionsChanged(opt1, opt2) { - return getAllowJSCompilerOption(opt1) !== getAllowJSCompilerOption(opt2); -} -function unresolvedImportsChanged(imports1, imports2) { - if (imports1 === imports2) { - return false; - } - return !arrayIsEqualTo(imports1, imports2); -} -var TypingsCache = /** @class */ (function () { - function TypingsCache(installer) { - this.installer = installer; - this.perProjectCache = /* @__PURE__ */ new Map(); - } - TypingsCache.prototype.isKnownTypesPackageName = function (name) { - return this.installer.isKnownTypesPackageName(name); - }; - TypingsCache.prototype.installPackage = function (options) { - return this.installer.installPackage(options); - }; - TypingsCache.prototype.enqueueInstallTypingsForProject = function (project, unresolvedImports, forceRefresh) { - var typeAcquisition = project.getTypeAcquisition(); - if (!typeAcquisition || !typeAcquisition.enable) { - return; - } - var entry = this.perProjectCache.get(project.getProjectName()); - if (forceRefresh || !entry || typeAcquisitionChanged(typeAcquisition, entry.typeAcquisition) || compilerOptionsChanged(project.getCompilationSettings(), entry.compilerOptions) || unresolvedImportsChanged(unresolvedImports, entry.unresolvedImports)) { - this.perProjectCache.set(project.getProjectName(), { - compilerOptions: project.getCompilationSettings(), - typeAcquisition: typeAcquisition, - typings: entry ? entry.typings : emptyArray2, - unresolvedImports: unresolvedImports, - poisoned: true - }); - this.installer.enqueueInstallTypingsRequest(project, typeAcquisition, unresolvedImports); - } - }; - TypingsCache.prototype.updateTypingsForProject = function (projectName, compilerOptions, typeAcquisition, unresolvedImports, newTypings) { - var typings = sort(newTypings); - this.perProjectCache.set(projectName, { - compilerOptions: compilerOptions, - typeAcquisition: typeAcquisition, - typings: typings, - unresolvedImports: unresolvedImports, - poisoned: false - }); - return !typeAcquisition || !typeAcquisition.enable ? emptyArray2 : typings; - }; - TypingsCache.prototype.onProjectClosed = function (project) { - this.perProjectCache.delete(project.getProjectName()); - this.installer.onProjectClosed(project); - }; - return TypingsCache; -}()); -// src/server/project.ts -var ProjectKind = /* @__PURE__ */ (function (ProjectKind2) { - ProjectKind2[ProjectKind2["Inferred"] = 0] = "Inferred"; - ProjectKind2[ProjectKind2["Configured"] = 1] = "Configured"; - ProjectKind2[ProjectKind2["External"] = 2] = "External"; - ProjectKind2[ProjectKind2["AutoImportProvider"] = 3] = "AutoImportProvider"; - ProjectKind2[ProjectKind2["Auxiliary"] = 4] = "Auxiliary"; - return ProjectKind2; -})(ProjectKind || {}); -function countEachFileTypes(infos, includeSizes) { - var e_900, _t; - if (includeSizes === void 0) { includeSizes = false; } - var result = { - js: 0, - jsSize: 0, - jsx: 0, - jsxSize: 0, - ts: 0, - tsSize: 0, - tsx: 0, - tsxSize: 0, - dts: 0, - dtsSize: 0, - deferred: 0, - deferredSize: 0 - }; - try { - for (var infos_2 = __values(infos), infos_2_1 = infos_2.next(); !infos_2_1.done; infos_2_1 = infos_2.next()) { - var info = infos_2_1.value; - var fileSize = includeSizes ? info.textStorage.getTelemetryFileSize() : 0; - switch (info.scriptKind) { - case 1 /* JS */: - result.js += 1; - result.jsSize += fileSize; - break; - case 2 /* JSX */: - result.jsx += 1; - result.jsxSize += fileSize; - break; - case 3 /* TS */: - if (isDeclarationFileName(info.fileName)) { - result.dts += 1; - result.dtsSize += fileSize; - } - else { - result.ts += 1; - result.tsSize += fileSize; - } - break; - case 4 /* TSX */: - result.tsx += 1; - result.tsxSize += fileSize; - break; - case 7 /* Deferred */: - result.deferred += 1; - result.deferredSize += fileSize; - break; - } - } - } - catch (e_900_1) { e_900 = { error: e_900_1 }; } - finally { - try { - if (infos_2_1 && !infos_2_1.done && (_t = infos_2.return)) _t.call(infos_2); - } - finally { if (e_900) throw e_900.error; } - } - return result; -} -function hasOneOrMoreJsAndNoTsFiles(project) { - var counts2 = countEachFileTypes(project.getScriptInfos()); - return counts2.js > 0 && counts2.ts === 0 && counts2.tsx === 0; -} -function allRootFilesAreJsOrDts(project) { - var counts2 = countEachFileTypes(project.getRootScriptInfos()); - return counts2.ts === 0 && counts2.tsx === 0; -} -function allFilesAreJsOrDts(project) { - var counts2 = countEachFileTypes(project.getScriptInfos()); - return counts2.ts === 0 && counts2.tsx === 0; -} -function hasNoTypeScriptSource(fileNames) { - return !fileNames.some(function (fileName) { return fileExtensionIs(fileName, ".ts" /* Ts */) && !isDeclarationFileName(fileName) || fileExtensionIs(fileName, ".tsx" /* Tsx */); }); -} -function isGeneratedFileWatcher(watch) { - return watch.generatedFilePath !== void 0; -} -var Project3 = /** @class */ (function () { - /** @internal */ - function _Project(projectName, projectKind, projectService, documentRegistry, hasExplicitListOfFiles, lastFileExceededProgramSize, compilerOptions, compileOnSaveEnabled, watchOptions, directoryStructureHost, currentDirectory) { - var _this = this; - this.projectKind = projectKind; - this.projectService = projectService; - this.documentRegistry = documentRegistry; - this.compilerOptions = compilerOptions; - this.compileOnSaveEnabled = compileOnSaveEnabled; - this.watchOptions = watchOptions; - this.rootFiles = []; - this.rootFilesMap = /* @__PURE__ */ new Map(); - /** @internal */ - this.plugins = []; - /** - * This is map from files to unresolved imports in it - * Maop does not contain entries for files that do not have unresolved imports - * This helps in containing the set of files to invalidate - * - * @internal - */ - this.cachedUnresolvedImportsPerFile = /* @__PURE__ */ new Map(); - /** @internal */ - this.hasAddedorRemovedFiles = false; - /** @internal */ - this.hasAddedOrRemovedSymlinks = false; - /** - * Last version that was reported. - */ - this.lastReportedVersion = 0; - /** - * Current project's program version. (incremented everytime new program is created that is not complete reuse from the old one) - * This property is changed in 'updateGraph' based on the set of files in program - */ - this.projectProgramVersion = 0; - /** - * Current version of the project state. It is changed when: - * - new root file was added/removed - * - edit happen in some file that is currently included in the project. - * This property is different from projectStructureVersion since in most cases edits don't affect set of files in the project - */ - this.projectStateVersion = 0; - this.isInitialLoadPending = returnFalse; - /** @internal */ - this.dirty = false; - /** @internal */ - this.typingFiles = emptyArray2; - /** @internal */ - this.moduleSpecifierCache = createModuleSpecifierCache(this); - /** @internal */ - this.createHash = maybeBind(this.projectService.host, this.projectService.host.createHash); - /** @internal */ - this.globalCacheResolutionModuleName = ts_JsTyping_exports.nonRelativeModuleNameForTypingCache; - this.projectName = projectName; - this.directoryStructureHost = directoryStructureHost; - this.currentDirectory = this.projectService.getNormalizedAbsolutePath(currentDirectory); - this.getCanonicalFileName = this.projectService.toCanonicalFileName; - this.cancellationToken = new ThrottledCancellationToken(this.projectService.cancellationToken, this.projectService.throttleWaitMilliseconds); - if (!this.compilerOptions) { - this.compilerOptions = getDefaultCompilerOptions2(); - this.compilerOptions.allowNonTsExtensions = true; - this.compilerOptions.allowJs = true; - } - else if (hasExplicitListOfFiles || getAllowJSCompilerOption(this.compilerOptions) || this.projectService.hasDeferredExtension()) { - this.compilerOptions.allowNonTsExtensions = true; - } - switch (projectService.serverMode) { - case 0 /* Semantic */: - this.languageServiceEnabled = true; - break; - case 1 /* PartialSemantic */: - this.languageServiceEnabled = true; - this.compilerOptions.noResolve = true; - this.compilerOptions.types = []; - break; - case 2 /* Syntactic */: - this.languageServiceEnabled = false; - this.compilerOptions.noResolve = true; - this.compilerOptions.types = []; - break; - default: - Debug.assertNever(projectService.serverMode); - } - this.setInternalCompilerOptionsForEmittingJsFiles(); - var host = this.projectService.host; - if (this.projectService.logger.loggingEnabled()) { - this.trace = function (s) { return _this.writeLog(s); }; - } - else if (host.trace) { - this.trace = function (s) { return host.trace(s); }; - } - this.realpath = maybeBind(host, host.realpath); - this.resolutionCache = createResolutionCache(this, this.currentDirectory, - /*logChangesWhenResolvingModule*/ - true); - this.languageService = createLanguageService(this, this.documentRegistry, this.projectService.serverMode); - if (lastFileExceededProgramSize) { - this.disableLanguageService(lastFileExceededProgramSize); - } - this.markAsDirty(); - if (projectKind !== 3 /* AutoImportProvider */) { - this.projectService.pendingEnsureProjectForOpenFiles = true; - } - } - /** @internal */ - _Project.prototype.getResolvedProjectReferenceToRedirect = function (_fileName) { - return void 0; - }; - _Project.prototype.isNonTsProject = function () { - updateProjectIfDirty(this); - return allFilesAreJsOrDts(this); - }; - _Project.prototype.isJsOnlyProject = function () { - updateProjectIfDirty(this); - return hasOneOrMoreJsAndNoTsFiles(this); - }; - _Project.resolveModule = function (moduleName, initialDir, host, log) { - return _Project.importServicePluginSync({ name: moduleName }, [initialDir], host, log).resolvedModule; - }; - /** @internal */ - _Project.importServicePluginSync = function (pluginConfigEntry, searchPaths, host, log) { - var e_901, _t; - Debug.assertIsDefined(host.require); - var errorLogs; - var resolvedModule; - try { - for (var searchPaths_1 = __values(searchPaths), searchPaths_1_1 = searchPaths_1.next(); !searchPaths_1_1.done; searchPaths_1_1 = searchPaths_1.next()) { - var initialDir = searchPaths_1_1.value; - var resolvedPath = normalizeSlashes(host.resolvePath(combinePaths(initialDir, "node_modules"))); - log("Loading ".concat(pluginConfigEntry.name, " from ").concat(initialDir, " (resolved to ").concat(resolvedPath, ")")); - var result = host.require(resolvedPath, pluginConfigEntry.name); - if (!result.error) { - resolvedModule = result.module; - break; - } - var err = result.error.stack || result.error.message || JSON.stringify(result.error); - (errorLogs !== null && errorLogs !== void 0 ? errorLogs : (errorLogs = [])).push("Failed to load module '".concat(pluginConfigEntry.name, "' from ").concat(resolvedPath, ": ").concat(err)); - } - } - catch (e_901_1) { e_901 = { error: e_901_1 }; } - finally { - try { - if (searchPaths_1_1 && !searchPaths_1_1.done && (_t = searchPaths_1.return)) _t.call(searchPaths_1); - } - finally { if (e_901) throw e_901.error; } - } - return { pluginConfigEntry: pluginConfigEntry, resolvedModule: resolvedModule, errorLogs: errorLogs }; - }; - /** @internal */ - _Project.importServicePluginAsync = function (pluginConfigEntry, searchPaths, host, log) { - return __awaiter(this, void 0, void 0, function () { - var errorLogs, resolvedModule, searchPaths_2, searchPaths_2_1, initialDir, resolvedPath, result, e_902, err, e_903_1; - var e_903, _t; - return __generator(this, function (_u) { - switch (_u.label) { - case 0: - Debug.assertIsDefined(host.importPlugin); - _u.label = 1; - case 1: - _u.trys.push([1, 9, 10, 11]); - searchPaths_2 = __values(searchPaths), searchPaths_2_1 = searchPaths_2.next(); - _u.label = 2; - case 2: - if (!!searchPaths_2_1.done) return [3 /*break*/, 8]; - initialDir = searchPaths_2_1.value; - resolvedPath = combinePaths(initialDir, "node_modules"); - log("Dynamically importing ".concat(pluginConfigEntry.name, " from ").concat(initialDir, " (resolved to ").concat(resolvedPath, ")")); - result = void 0; - _u.label = 3; - case 3: - _u.trys.push([3, 5, , 6]); - return [4 /*yield*/, host.importPlugin(resolvedPath, pluginConfigEntry.name)]; - case 4: - result = _u.sent(); - return [3 /*break*/, 6]; - case 5: - e_902 = _u.sent(); - result = { module: void 0, error: e_902 }; - return [3 /*break*/, 6]; - case 6: - if (!result.error) { - resolvedModule = result.module; - return [3 /*break*/, 8]; - } - err = result.error.stack || result.error.message || JSON.stringify(result.error); - (errorLogs !== null && errorLogs !== void 0 ? errorLogs : (errorLogs = [])).push("Failed to dynamically import module '".concat(pluginConfigEntry.name, "' from ").concat(resolvedPath, ": ").concat(err)); - _u.label = 7; - case 7: - searchPaths_2_1 = searchPaths_2.next(); - return [3 /*break*/, 2]; - case 8: return [3 /*break*/, 11]; - case 9: - e_903_1 = _u.sent(); - e_903 = { error: e_903_1 }; - return [3 /*break*/, 11]; - case 10: - try { - if (searchPaths_2_1 && !searchPaths_2_1.done && (_t = searchPaths_2.return)) _t.call(searchPaths_2); - } - finally { if (e_903) throw e_903.error; } - return [7 /*endfinally*/]; - case 11: return [2 /*return*/, { pluginConfigEntry: pluginConfigEntry, resolvedModule: resolvedModule, errorLogs: errorLogs }]; - } - }); - }); - }; - _Project.prototype.isKnownTypesPackageName = function (name) { - return this.typingsCache.isKnownTypesPackageName(name); - }; - _Project.prototype.installPackage = function (options) { - return this.typingsCache.installPackage(__assign(__assign({}, options), { projectName: this.projectName, projectRootPath: this.toPath(this.currentDirectory) })); - }; - /** @internal */ - _Project.prototype.getGlobalTypingsCacheLocation = function () { - return this.getGlobalCache(); - }; - Object.defineProperty(_Project.prototype, "typingsCache", { - get: function () { - return this.projectService.typingsCache; - }, - enumerable: false, - configurable: true - }); - /** @internal */ - _Project.prototype.getSymlinkCache = function () { - if (!this.symlinks) { - this.symlinks = createSymlinkCache(this.getCurrentDirectory(), this.getCanonicalFileName); - } - if (this.program && !this.symlinks.hasProcessedResolutions()) { - this.symlinks.setSymlinksFromResolutions(this.program.getSourceFiles(), this.program.getAutomaticTypeDirectiveResolutions()); - } - return this.symlinks; - }; - // Method of LanguageServiceHost - _Project.prototype.getCompilationSettings = function () { - return this.compilerOptions; - }; - // Method to support public API - _Project.prototype.getCompilerOptions = function () { - return this.getCompilationSettings(); - }; - _Project.prototype.getNewLine = function () { - return this.projectService.host.newLine; - }; - _Project.prototype.getProjectVersion = function () { - return this.projectStateVersion.toString(); - }; - _Project.prototype.getProjectReferences = function () { - return void 0; - }; - _Project.prototype.getScriptFileNames = function () { - var _this = this; - if (!this.rootFiles) { - return emptyArray; - } - var result; - this.rootFilesMap.forEach(function (value) { - if (_this.languageServiceEnabled || value.info && value.info.isScriptOpen()) { - (result || (result = [])).push(value.fileName); - } - }); - return addRange(result, this.typingFiles) || emptyArray; - }; - _Project.prototype.getOrCreateScriptInfoAndAttachToProject = function (fileName) { - var scriptInfo = this.projectService.getOrCreateScriptInfoNotOpenedByClient(fileName, this.currentDirectory, this.directoryStructureHost); - if (scriptInfo) { - var existingValue = this.rootFilesMap.get(scriptInfo.path); - if (existingValue && existingValue.info !== scriptInfo) { - this.rootFiles.push(scriptInfo); - existingValue.info = scriptInfo; - } - scriptInfo.attachToProject(this); - } - return scriptInfo; - }; - _Project.prototype.getScriptKind = function (fileName) { - var info = this.getOrCreateScriptInfoAndAttachToProject(fileName); - return info && info.scriptKind; - }; - _Project.prototype.getScriptVersion = function (filename) { - var info = this.projectService.getOrCreateScriptInfoNotOpenedByClient(filename, this.currentDirectory, this.directoryStructureHost); - return info && info.getLatestVersion(); - }; - _Project.prototype.getScriptSnapshot = function (filename) { - var scriptInfo = this.getOrCreateScriptInfoAndAttachToProject(filename); - if (scriptInfo) { - return scriptInfo.getSnapshot(); - } - }; - _Project.prototype.getCancellationToken = function () { - return this.cancellationToken; - }; - _Project.prototype.getCurrentDirectory = function () { - return this.currentDirectory; - }; - _Project.prototype.getDefaultLibFileName = function () { - var nodeModuleBinDir = getDirectoryPath(normalizePath(this.projectService.getExecutingFilePath())); - return combinePaths(nodeModuleBinDir, getDefaultLibFileName(this.compilerOptions)); - }; - _Project.prototype.useCaseSensitiveFileNames = function () { - return this.projectService.host.useCaseSensitiveFileNames; - }; - _Project.prototype.readDirectory = function (path, extensions, exclude, include, depth) { - return this.directoryStructureHost.readDirectory(path, extensions, exclude, include, depth); - }; - _Project.prototype.readFile = function (fileName) { - return this.projectService.host.readFile(fileName); - }; - _Project.prototype.writeFile = function (fileName, content) { - return this.projectService.host.writeFile(fileName, content); - }; - _Project.prototype.fileExists = function (file) { - var path = this.toPath(file); - return !this.isWatchedMissingFile(path) && this.directoryStructureHost.fileExists(file); - }; - /** @internal */ - _Project.prototype.resolveModuleNameLiterals = function (moduleLiterals, containingFile, redirectedReference, options, containingSourceFile, reusedNames) { - return this.resolutionCache.resolveModuleNameLiterals(moduleLiterals, containingFile, redirectedReference, options, containingSourceFile, reusedNames); - }; - _Project.prototype.getModuleResolutionCache = function () { - return this.resolutionCache.getModuleResolutionCache(); - }; - /** @internal */ - _Project.prototype.resolveTypeReferenceDirectiveReferences = function (typeDirectiveReferences, containingFile, redirectedReference, options, containingSourceFile, reusedNames) { - return this.resolutionCache.resolveTypeReferenceDirectiveReferences(typeDirectiveReferences, containingFile, redirectedReference, options, containingSourceFile, reusedNames); - }; - /** @internal */ - _Project.prototype.resolveLibrary = function (libraryName, resolveFrom, options, libFileName) { - return this.resolutionCache.resolveLibrary(libraryName, resolveFrom, options, libFileName); - }; - _Project.prototype.directoryExists = function (path) { - return this.directoryStructureHost.directoryExists(path); - }; - _Project.prototype.getDirectories = function (path) { - return this.directoryStructureHost.getDirectories(path); - }; - /** @internal */ - _Project.prototype.getCachedDirectoryStructureHost = function () { - return void 0; - }; - /** @internal */ - _Project.prototype.toPath = function (fileName) { - return toPath(fileName, this.currentDirectory, this.projectService.toCanonicalFileName); - }; - /** @internal */ - _Project.prototype.watchDirectoryOfFailedLookupLocation = function (directory, cb, flags) { - return this.projectService.watchFactory.watchDirectory(directory, cb, flags, this.projectService.getWatchOptions(this), WatchType.FailedLookupLocations, this); - }; - /** @internal */ - _Project.prototype.watchAffectingFileLocation = function (file, cb) { - return this.projectService.watchFactory.watchFile(file, cb, 2e3 /* High */, this.projectService.getWatchOptions(this), WatchType.AffectingFileLocation, this); - }; - /** @internal */ - _Project.prototype.clearInvalidateResolutionOfFailedLookupTimer = function () { - return this.projectService.throttledOperations.cancel("".concat(this.getProjectName(), "FailedLookupInvalidation")); - }; - /** @internal */ - _Project.prototype.scheduleInvalidateResolutionsOfFailedLookupLocations = function () { - var _this = this; - this.projectService.throttledOperations.schedule("".concat(this.getProjectName(), "FailedLookupInvalidation"), - /*delay*/ - 1e3, function () { - if (_this.resolutionCache.invalidateResolutionsOfFailedLookupLocations()) { - _this.projectService.delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles(_this); - } - }); - }; - /** @internal */ - _Project.prototype.invalidateResolutionsOfFailedLookupLocations = function () { - if (this.clearInvalidateResolutionOfFailedLookupTimer() && this.resolutionCache.invalidateResolutionsOfFailedLookupLocations()) { - this.markAsDirty(); - this.projectService.delayEnsureProjectForOpenFiles(); - } - }; - /** @internal */ - _Project.prototype.onInvalidatedResolution = function () { - this.projectService.delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles(this); - }; - /** @internal */ - _Project.prototype.watchTypeRootsDirectory = function (directory, cb, flags) { - return this.projectService.watchFactory.watchDirectory(directory, cb, flags, this.projectService.getWatchOptions(this), WatchType.TypeRoots, this); - }; - /** @internal */ - _Project.prototype.hasChangedAutomaticTypeDirectiveNames = function () { - return this.resolutionCache.hasChangedAutomaticTypeDirectiveNames(); - }; - /** @internal */ - _Project.prototype.onChangedAutomaticTypeDirectiveNames = function () { - this.projectService.delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles(this); - }; - /** @internal */ - _Project.prototype.getGlobalCache = function () { - return this.getTypeAcquisition().enable ? this.projectService.typingsInstaller.globalTypingsCacheLocation : void 0; - }; - /** @internal */ - _Project.prototype.fileIsOpen = function (filePath) { - return this.projectService.openFiles.has(filePath); - }; - /** @internal */ - _Project.prototype.writeLog = function (s) { - this.projectService.logger.info(s); - }; - _Project.prototype.log = function (s) { - this.writeLog(s); - }; - _Project.prototype.error = function (s) { - this.projectService.logger.msg(s, "Err" /* Err */); - }; - _Project.prototype.setInternalCompilerOptionsForEmittingJsFiles = function () { - if (this.projectKind === 0 /* Inferred */ || this.projectKind === 2 /* External */) { - this.compilerOptions.noEmitForJsFiles = true; - } - }; - /** - * Get the errors that dont have any file name associated - */ - _Project.prototype.getGlobalProjectErrors = function () { - return filter(this.projectErrors, function (diagnostic) { return !diagnostic.file; }) || emptyArray2; - }; - /** - * Get all the project errors - */ - _Project.prototype.getAllProjectErrors = function () { - return this.projectErrors || emptyArray2; - }; - _Project.prototype.setProjectErrors = function (projectErrors) { - this.projectErrors = projectErrors; - }; - _Project.prototype.getLanguageService = function (ensureSynchronized) { - if (ensureSynchronized === void 0) { ensureSynchronized = true; } - if (ensureSynchronized) { - updateProjectIfDirty(this); - } - return this.languageService; - }; - /** @internal */ - _Project.prototype.getSourceMapper = function () { - return this.getLanguageService().getSourceMapper(); - }; - /** @internal */ - _Project.prototype.clearSourceMapperCache = function () { - this.languageService.clearSourceMapperCache(); - }; - /** @internal */ - _Project.prototype.getDocumentPositionMapper = function (generatedFileName, sourceFileName) { - return this.projectService.getDocumentPositionMapper(this, generatedFileName, sourceFileName); - }; - /** @internal */ - _Project.prototype.getSourceFileLike = function (fileName) { - return this.projectService.getSourceFileLike(fileName, this); - }; - /** @internal */ - _Project.prototype.shouldEmitFile = function (scriptInfo) { - return scriptInfo && !scriptInfo.isDynamicOrHasMixedContent() && !this.program.isSourceOfProjectReferenceRedirect(scriptInfo.path); - }; - _Project.prototype.getCompileOnSaveAffectedFileList = function (scriptInfo) { - var _this = this; - if (!this.languageServiceEnabled) { - return []; - } - updateProjectIfDirty(this); - this.builderState = BuilderState.create(this.program, this.builderState, - /*disableUseFileVersionAsSignature*/ - true); - return mapDefined(BuilderState.getFilesAffectedBy(this.builderState, this.program, scriptInfo.path, this.cancellationToken, this.projectService.host), function (sourceFile) { return _this.shouldEmitFile(_this.projectService.getScriptInfoForPath(sourceFile.path)) ? sourceFile.fileName : void 0; }); - }; - /** - * Returns true if emit was conducted - */ - _Project.prototype.emitFile = function (scriptInfo, writeFile2) { - var e_904, _t; - if (!this.languageServiceEnabled || !this.shouldEmitFile(scriptInfo)) { - return { emitSkipped: true, diagnostics: emptyArray2 }; - } - var _u = this.getLanguageService().getEmitOutput(scriptInfo.fileName), emitSkipped = _u.emitSkipped, diagnostics = _u.diagnostics, outputFiles = _u.outputFiles; - if (!emitSkipped) { - try { - for (var outputFiles_1 = __values(outputFiles), outputFiles_1_1 = outputFiles_1.next(); !outputFiles_1_1.done; outputFiles_1_1 = outputFiles_1.next()) { - var outputFile = outputFiles_1_1.value; - var outputFileAbsoluteFileName = getNormalizedAbsolutePath(outputFile.name, this.currentDirectory); - writeFile2(outputFileAbsoluteFileName, outputFile.text, outputFile.writeByteOrderMark); - } - } - catch (e_904_1) { e_904 = { error: e_904_1 }; } - finally { - try { - if (outputFiles_1_1 && !outputFiles_1_1.done && (_t = outputFiles_1.return)) _t.call(outputFiles_1); - } - finally { if (e_904) throw e_904.error; } - } - if (this.builderState && getEmitDeclarations(this.compilerOptions)) { - var dtsFiles = outputFiles.filter(function (f) { return isDeclarationFileName(f.name); }); - if (dtsFiles.length === 1) { - var sourceFile = this.program.getSourceFile(scriptInfo.fileName); - var signature = this.projectService.host.createHash ? this.projectService.host.createHash(dtsFiles[0].text) : generateDjb2Hash(dtsFiles[0].text); - BuilderState.updateSignatureOfFile(this.builderState, signature, sourceFile.resolvedPath); - } - } - } - return { emitSkipped: emitSkipped, diagnostics: diagnostics }; - }; - _Project.prototype.enableLanguageService = function () { - if (this.languageServiceEnabled || this.projectService.serverMode === 2 /* Syntactic */) { - return; - } - this.languageServiceEnabled = true; - this.lastFileExceededProgramSize = void 0; - this.projectService.onUpdateLanguageServiceStateForProject(this, - /*languageServiceEnabled*/ - true); - }; - /** @internal */ - _Project.prototype.cleanupProgram = function () { - var e_905, _t; - var _this = this; - if (this.program) { - try { - for (var _u = __values(this.program.getSourceFiles()), _v = _u.next(); !_v.done; _v = _u.next()) { - var f = _v.value; - this.detachScriptInfoIfNotRoot(f.fileName); - } - } - catch (e_905_1) { e_905 = { error: e_905_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_905) throw e_905.error; } - } - this.program.forEachResolvedProjectReference(function (ref) { return _this.detachScriptInfoFromProject(ref.sourceFile.fileName); }); - this.program = void 0; - } - }; - _Project.prototype.disableLanguageService = function (lastFileExceededProgramSize) { - if (!this.languageServiceEnabled) { - return; - } - Debug.assert(this.projectService.serverMode !== 2 /* Syntactic */); - this.languageService.cleanupSemanticCache(); - this.languageServiceEnabled = false; - this.cleanupProgram(); - this.lastFileExceededProgramSize = lastFileExceededProgramSize; - this.builderState = void 0; - if (this.autoImportProviderHost) { - this.autoImportProviderHost.close(); - } - this.autoImportProviderHost = void 0; - this.resolutionCache.closeTypeRootsWatch(); - this.clearGeneratedFileWatch(); - this.projectService.verifyDocumentRegistry(); - this.projectService.onUpdateLanguageServiceStateForProject(this, - /*languageServiceEnabled*/ - false); - }; - _Project.prototype.getProjectName = function () { - return this.projectName; - }; - _Project.prototype.removeLocalTypingsFromTypeAcquisition = function (newTypeAcquisition) { - if (!newTypeAcquisition || !newTypeAcquisition.include) { - return newTypeAcquisition; - } - return __assign(__assign({}, newTypeAcquisition), { include: this.removeExistingTypings(newTypeAcquisition.include) }); - }; - _Project.prototype.getExternalFiles = function () { - var _this = this; - return sort(flatMap(this.plugins, function (plugin) { - if (typeof plugin.module.getExternalFiles !== "function") - return; - try { - return plugin.module.getExternalFiles(_this); - } - catch (e) { - _this.projectService.logger.info("A plugin threw an exception in getExternalFiles: ".concat(e)); - if (e.stack) { - _this.projectService.logger.info(e.stack); - } - } - })); - }; - _Project.prototype.getSourceFile = function (path) { - if (!this.program) { - return void 0; - } - return this.program.getSourceFileByPath(path); - }; - /** @internal */ - _Project.prototype.getSourceFileOrConfigFile = function (path) { - var options = this.program.getCompilerOptions(); - return path === options.configFilePath ? options.configFile : this.getSourceFile(path); - }; - _Project.prototype.close = function () { - var e_906, _t; - var _this = this; - this.projectService.typingsCache.onProjectClosed(this); - this.closeWatchingTypingLocations(); - this.cleanupProgram(); - forEach(this.externalFiles, function (externalFile) { return _this.detachScriptInfoIfNotRoot(externalFile); }); - try { - for (var _u = __values(this.rootFiles), _v = _u.next(); !_v.done; _v = _u.next()) { - var root = _v.value; - root.detachFromProject(this); - } - } - catch (e_906_1) { e_906 = { error: e_906_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_906) throw e_906.error; } - } - this.projectService.pendingEnsureProjectForOpenFiles = true; - this.rootFiles = void 0; - this.rootFilesMap = void 0; - this.externalFiles = void 0; - this.program = void 0; - this.builderState = void 0; - this.resolutionCache.clear(); - this.resolutionCache = void 0; - this.cachedUnresolvedImportsPerFile = void 0; - this.moduleSpecifierCache = void 0; - this.directoryStructureHost = void 0; - this.exportMapCache = void 0; - this.projectErrors = void 0; - this.plugins.length = 0; - if (this.missingFilesMap) { - clearMap(this.missingFilesMap, closeFileWatcher); - this.missingFilesMap = void 0; - } - this.clearGeneratedFileWatch(); - this.clearInvalidateResolutionOfFailedLookupTimer(); - if (this.autoImportProviderHost) { - this.autoImportProviderHost.close(); - } - this.autoImportProviderHost = void 0; - if (this.noDtsResolutionProject) { - this.noDtsResolutionProject.close(); - } - this.noDtsResolutionProject = void 0; - this.languageService.dispose(); - this.languageService = void 0; - }; - _Project.prototype.detachScriptInfoIfNotRoot = function (uncheckedFilename) { - var info = this.projectService.getScriptInfo(uncheckedFilename); - if (info && !this.isRoot(info)) { - info.detachFromProject(this); - } - }; - _Project.prototype.isClosed = function () { - return this.rootFiles === void 0; - }; - _Project.prototype.hasRoots = function () { - return this.rootFiles && this.rootFiles.length > 0; - }; - /** @internal */ - _Project.prototype.isOrphan = function () { - return false; - }; - _Project.prototype.getRootFiles = function () { - return this.rootFiles && this.rootFiles.map(function (info) { return info.fileName; }); - }; - /** @internal */ - _Project.prototype.getRootFilesMap = function () { - return this.rootFilesMap; - }; - _Project.prototype.getRootScriptInfos = function () { - return this.rootFiles; - }; - _Project.prototype.getScriptInfos = function () { - var _this = this; - if (!this.languageServiceEnabled) { - return this.rootFiles; - } - return map(this.program.getSourceFiles(), function (sourceFile) { - var scriptInfo = _this.projectService.getScriptInfoForPath(sourceFile.resolvedPath); - Debug.assert(!!scriptInfo, "getScriptInfo", function () { return "scriptInfo for a file '".concat(sourceFile.fileName, "' Path: '").concat(sourceFile.path, "' / '").concat(sourceFile.resolvedPath, "' is missing."); }); - return scriptInfo; - }); - }; - _Project.prototype.getExcludedFiles = function () { - return emptyArray2; - }; - _Project.prototype.getFileNames = function (excludeFilesFromExternalLibraries, excludeConfigFiles) { - var e_907, _t, e_908, _u; - if (!this.program) { - return []; - } - if (!this.languageServiceEnabled) { - var rootFiles = this.getRootFiles(); - if (this.compilerOptions) { - var defaultLibrary = getDefaultLibFilePath(this.compilerOptions); - if (defaultLibrary) { - (rootFiles || (rootFiles = [])).push(asNormalizedPath(defaultLibrary)); - } - } - return rootFiles; - } - var result = []; - try { - for (var _v = __values(this.program.getSourceFiles()), _w = _v.next(); !_w.done; _w = _v.next()) { - var f = _w.value; - if (excludeFilesFromExternalLibraries && this.program.isSourceFileFromExternalLibrary(f)) { - continue; - } - result.push(asNormalizedPath(f.fileName)); - } - } - catch (e_907_1) { e_907 = { error: e_907_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_907) throw e_907.error; } - } - if (!excludeConfigFiles) { - var configFile = this.program.getCompilerOptions().configFile; - if (configFile) { - result.push(asNormalizedPath(configFile.fileName)); - if (configFile.extendedSourceFiles) { - try { - for (var _x = __values(configFile.extendedSourceFiles), _y = _x.next(); !_y.done; _y = _x.next()) { - var f = _y.value; - result.push(asNormalizedPath(f)); - } - } - catch (e_908_1) { e_908 = { error: e_908_1 }; } - finally { - try { - if (_y && !_y.done && (_u = _x.return)) _u.call(_x); - } - finally { if (e_908) throw e_908.error; } - } - } - } - } - return result; - }; - /** @internal */ - _Project.prototype.getFileNamesWithRedirectInfo = function (includeProjectReferenceRedirectInfo) { - var _this = this; - return this.getFileNames().map(function (fileName) { return ({ - fileName: fileName, - isSourceOfProjectReferenceRedirect: includeProjectReferenceRedirectInfo && _this.isSourceOfProjectReferenceRedirect(fileName) - }); }); - }; - _Project.prototype.hasConfigFile = function (configFilePath) { - var e_909, _t; - if (this.program && this.languageServiceEnabled) { - var configFile = this.program.getCompilerOptions().configFile; - if (configFile) { - if (configFilePath === asNormalizedPath(configFile.fileName)) { - return true; - } - if (configFile.extendedSourceFiles) { - try { - for (var _u = __values(configFile.extendedSourceFiles), _v = _u.next(); !_v.done; _v = _u.next()) { - var f = _v.value; - if (configFilePath === asNormalizedPath(f)) { - return true; - } - } - } - catch (e_909_1) { e_909 = { error: e_909_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_909) throw e_909.error; } - } - } - } - } - return false; - }; - _Project.prototype.containsScriptInfo = function (info) { - if (this.isRoot(info)) - return true; - if (!this.program) - return false; - var file = this.program.getSourceFileByPath(info.path); - return !!file && file.resolvedPath === info.path; - }; - _Project.prototype.containsFile = function (filename, requireOpen) { - var info = this.projectService.getScriptInfoForNormalizedPath(filename); - if (info && (info.isScriptOpen() || !requireOpen)) { - return this.containsScriptInfo(info); - } - return false; - }; - _Project.prototype.isRoot = function (info) { - var _a; - return this.rootFilesMap && ((_a = this.rootFilesMap.get(info.path)) == null ? void 0 : _a.info) === info; - }; - // add a root file to project - _Project.prototype.addRoot = function (info, fileName) { - Debug.assert(!this.isRoot(info)); - this.rootFiles.push(info); - this.rootFilesMap.set(info.path, { fileName: fileName || info.fileName, info: info }); - info.attachToProject(this); - this.markAsDirty(); - }; - // add a root file that doesnt exist on host - _Project.prototype.addMissingFileRoot = function (fileName) { - var path = this.projectService.toPath(fileName); - this.rootFilesMap.set(path, { fileName: fileName }); - this.markAsDirty(); - }; - _Project.prototype.removeFile = function (info, fileExists, detachFromProject) { - if (this.isRoot(info)) { - this.removeRoot(info); - } - if (fileExists) { - this.resolutionCache.removeResolutionsOfFile(info.path); - } - else { - this.resolutionCache.invalidateResolutionOfFile(info.path); - } - this.cachedUnresolvedImportsPerFile.delete(info.path); - if (detachFromProject) { - info.detachFromProject(this); - } - this.markAsDirty(); - }; - _Project.prototype.registerFileUpdate = function (fileName) { - (this.updatedFileNames || (this.updatedFileNames = /* @__PURE__ */ new Set())).add(fileName); - }; - /** @internal */ - _Project.prototype.markFileAsDirty = function (changedFile) { - this.markAsDirty(); - if (this.exportMapCache && !this.exportMapCache.isEmpty()) { - (this.changedFilesForExportMapCache || (this.changedFilesForExportMapCache = /* @__PURE__ */ new Set())).add(changedFile); - } - }; - _Project.prototype.markAsDirty = function () { - if (!this.dirty) { - this.projectStateVersion++; - this.dirty = true; - } - }; - /** @internal */ - _Project.prototype.onAutoImportProviderSettingsChanged = function () { - var _a; - if (this.autoImportProviderHost === false) { - this.autoImportProviderHost = void 0; - } - else { - (_a = this.autoImportProviderHost) == null ? void 0 : _a.markAsDirty(); - } - }; - /** @internal */ - _Project.prototype.onPackageJsonChange = function (packageJsonPath) { - var _a; - if ((_a = this.packageJsonsForAutoImport) == null ? void 0 : _a.has(packageJsonPath)) { - this.moduleSpecifierCache.clear(); - if (this.autoImportProviderHost) { - this.autoImportProviderHost.markAsDirty(); - } - } - }; - /** @internal */ - _Project.prototype.onFileAddedOrRemoved = function (isSymlink) { - this.hasAddedorRemovedFiles = true; - if (isSymlink) { - this.hasAddedOrRemovedSymlinks = true; - } - }; - /** @internal */ - _Project.prototype.onDiscoveredSymlink = function () { - this.hasAddedOrRemovedSymlinks = true; - }; - /** - * Updates set of files that contribute to this project - * @returns: true if set of files in the project stays the same and false - otherwise. - */ - _Project.prototype.updateGraph = function () { - var e_910, _t; - var _a, _b, _c, _d, _e; - (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Session, "updateGraph", { name: this.projectName, kind: ProjectKind[this.projectKind] }); - (_b = perfLogger) == null ? void 0 : _b.logStartUpdateGraph(); - this.resolutionCache.startRecordingFilesWithChangedResolutions(); - var hasNewProgram = this.updateGraphWorker(); - var hasAddedorRemovedFiles = this.hasAddedorRemovedFiles; - this.hasAddedorRemovedFiles = false; - this.hasAddedOrRemovedSymlinks = false; - var changedFiles = this.resolutionCache.finishRecordingFilesWithChangedResolutions() || emptyArray2; - try { - for (var changedFiles_1 = __values(changedFiles), changedFiles_1_1 = changedFiles_1.next(); !changedFiles_1_1.done; changedFiles_1_1 = changedFiles_1.next()) { - var file = changedFiles_1_1.value; - this.cachedUnresolvedImportsPerFile.delete(file); - } - } - catch (e_910_1) { e_910 = { error: e_910_1 }; } - finally { - try { - if (changedFiles_1_1 && !changedFiles_1_1.done && (_t = changedFiles_1.return)) _t.call(changedFiles_1); - } - finally { if (e_910) throw e_910.error; } - } - if (this.languageServiceEnabled && this.projectService.serverMode === 0 /* Semantic */) { - if (hasNewProgram || changedFiles.length) { - this.lastCachedUnresolvedImportsList = getUnresolvedImports(this.program, this.cachedUnresolvedImportsPerFile); - } - this.projectService.typingsCache.enqueueInstallTypingsForProject(this, this.lastCachedUnresolvedImportsList, hasAddedorRemovedFiles); - } - else { - this.lastCachedUnresolvedImportsList = void 0; - } - var isFirstProgramLoad = this.projectProgramVersion === 0 && hasNewProgram; - if (hasNewProgram) { - this.projectProgramVersion++; - } - if (hasAddedorRemovedFiles) { - if (!this.autoImportProviderHost) - this.autoImportProviderHost = void 0; - (_c = this.autoImportProviderHost) == null ? void 0 : _c.markAsDirty(); - } - if (isFirstProgramLoad) { - this.getPackageJsonAutoImportProvider(); - } - (_d = perfLogger) == null ? void 0 : _d.logStopUpdateGraph(); - (_e = tracing) == null ? void 0 : _e.pop(); - return !hasNewProgram; - }; - /** @internal */ - _Project.prototype.updateTypingFiles = function (typingFiles) { - var _this = this; - if (enumerateInsertsAndDeletes(typingFiles, this.typingFiles, getStringComparer(!this.useCaseSensitiveFileNames()), - /*inserted*/ - noop, function (removed) { return _this.detachScriptInfoFromProject(removed); })) { - this.typingFiles = typingFiles; - this.resolutionCache.setFilesWithInvalidatedNonRelativeUnresolvedImports(this.cachedUnresolvedImportsPerFile); - this.projectService.delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles(this); - } - }; - /** @internal */ - _Project.prototype.closeWatchingTypingLocations = function () { - if (this.typingWatchers) - clearMap(this.typingWatchers, closeFileWatcher); - this.typingWatchers = void 0; - }; - /** @internal */ - _Project.prototype.onTypingInstallerWatchInvoke = function () { - this.typingWatchers.isInvoked = true; - this.projectService.updateTypingsForProject({ projectName: this.getProjectName(), kind: ActionInvalidate }); - }; - /** @internal */ - _Project.prototype.watchTypingLocations = function (files) { - var e_911, _t; - var _this = this; - if (!files) { - this.typingWatchers.isInvoked = false; - return; - } - if (!files.length) { - this.closeWatchingTypingLocations(); - return; - } - var toRemove = new Map(this.typingWatchers); - if (!this.typingWatchers) - this.typingWatchers = /* @__PURE__ */ new Map(); - this.typingWatchers.isInvoked = false; - var createProjectWatcher = function (path, typingsWatcherType) { - var canonicalPath = _this.toPath(path); - toRemove.delete(canonicalPath); - if (!_this.typingWatchers.has(canonicalPath)) { - _this.typingWatchers.set(canonicalPath, typingsWatcherType === "FileWatcher" /* FileWatcher */ ? _this.projectService.watchFactory.watchFile(path, function () { return !_this.typingWatchers.isInvoked ? _this.onTypingInstallerWatchInvoke() : _this.writeLog("TypingWatchers already invoked"); }, 2e3 /* High */, _this.projectService.getWatchOptions(_this), WatchType.TypingInstallerLocationFile, _this) : _this.projectService.watchFactory.watchDirectory(path, function (f) { - if (_this.typingWatchers.isInvoked) - return _this.writeLog("TypingWatchers already invoked"); - if (!fileExtensionIs(f, ".json" /* Json */)) - return _this.writeLog("Ignoring files that are not *.json"); - if (comparePaths(f, combinePaths(_this.projectService.typingsInstaller.globalTypingsCacheLocation, "package.json"), !_this.useCaseSensitiveFileNames())) - return _this.writeLog("Ignoring package.json change at global typings location"); - _this.onTypingInstallerWatchInvoke(); - }, 1 /* Recursive */, _this.projectService.getWatchOptions(_this), WatchType.TypingInstallerLocationDirectory, _this)); - } - }; - try { - for (var files_6 = __values(files), files_6_1 = files_6.next(); !files_6_1.done; files_6_1 = files_6.next()) { - var file = files_6_1.value; - var basename = getBaseFileName(file); - if (basename === "package.json" || basename === "bower.json") { - createProjectWatcher(file, "FileWatcher" /* FileWatcher */); - continue; - } - if (containsPath(this.currentDirectory, file, this.currentDirectory, !this.useCaseSensitiveFileNames())) { - var subDirectory = file.indexOf(directorySeparator, this.currentDirectory.length + 1); - if (subDirectory !== -1) { - createProjectWatcher(file.substr(0, subDirectory), "DirectoryWatcher" /* DirectoryWatcher */); - } - else { - createProjectWatcher(file, "DirectoryWatcher" /* DirectoryWatcher */); - } - continue; - } - if (containsPath(this.projectService.typingsInstaller.globalTypingsCacheLocation, file, this.currentDirectory, !this.useCaseSensitiveFileNames())) { - createProjectWatcher(this.projectService.typingsInstaller.globalTypingsCacheLocation, "DirectoryWatcher" /* DirectoryWatcher */); - continue; - } - createProjectWatcher(file, "DirectoryWatcher" /* DirectoryWatcher */); - } - } - catch (e_911_1) { e_911 = { error: e_911_1 }; } - finally { - try { - if (files_6_1 && !files_6_1.done && (_t = files_6.return)) _t.call(files_6); - } - finally { if (e_911) throw e_911.error; } - } - toRemove.forEach(function (watch, path) { - watch.close(); - _this.typingWatchers.delete(path); - }); - }; - /** @internal */ - _Project.prototype.getCurrentProgram = function () { - return this.program; - }; - _Project.prototype.removeExistingTypings = function (include) { - var existing = getAutomaticTypeDirectiveNames(this.getCompilerOptions(), this.directoryStructureHost); - return include.filter(function (i) { return existing.indexOf(i) < 0; }); - }; - _Project.prototype.updateGraphWorker = function () { - var e_912, _t; - var _this = this; - var _a, _b; - var oldProgram = this.languageService.getCurrentProgram(); - Debug.assert(oldProgram === this.program); - Debug.assert(!this.isClosed(), "Called update graph worker of closed project"); - this.writeLog("Starting updateGraphWorker: Project: ".concat(this.getProjectName())); - var start2 = timestamp(); - var _u = this.resolutionCache.createHasInvalidatedResolutions(returnFalse, returnFalse), hasInvalidatedResolutions = _u.hasInvalidatedResolutions, hasInvalidatedLibResolutions = _u.hasInvalidatedLibResolutions; - this.hasInvalidatedResolutions = hasInvalidatedResolutions; - this.hasInvalidatedLibResolutions = hasInvalidatedLibResolutions; - this.resolutionCache.startCachingPerDirectoryResolution(); - this.program = this.languageService.getProgram(); - this.dirty = false; - (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Session, "finishCachingPerDirectoryResolution"); - this.resolutionCache.finishCachingPerDirectoryResolution(this.program, oldProgram); - (_b = tracing) == null ? void 0 : _b.pop(); - Debug.assert(oldProgram === void 0 || this.program !== void 0); - var hasNewProgram = false; - if (this.program && (!oldProgram || this.program !== oldProgram && this.program.structureIsReused !== 2 /* Completely */)) { - hasNewProgram = true; - if (oldProgram) { - try { - for (var _v = __values(oldProgram.getSourceFiles()), _w = _v.next(); !_w.done; _w = _v.next()) { - var f = _w.value; - var newFile = this.program.getSourceFileByPath(f.resolvedPath); - if (!newFile || f.resolvedPath === f.path && newFile.resolvedPath !== f.path) { - this.detachScriptInfoFromProject(f.fileName, !!this.program.getSourceFileByPath(f.path)); - } - } - } - catch (e_912_1) { e_912 = { error: e_912_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_912) throw e_912.error; } - } - oldProgram.forEachResolvedProjectReference(function (resolvedProjectReference) { - if (!_this.program.getResolvedProjectReferenceByPath(resolvedProjectReference.sourceFile.path)) { - _this.detachScriptInfoFromProject(resolvedProjectReference.sourceFile.fileName); - } - }); - } - updateMissingFilePathsWatch(this.program, this.missingFilesMap || (this.missingFilesMap = /* @__PURE__ */ new Map()), - // Watch the missing files - function (missingFilePath) { return _this.addMissingFileWatcher(missingFilePath); }); - if (this.generatedFilesMap) { - var outPath = outFile(this.compilerOptions); - if (isGeneratedFileWatcher(this.generatedFilesMap)) { - if (!outPath || !this.isValidGeneratedFileWatcher(removeFileExtension(outPath) + ".d.ts" /* Dts */, this.generatedFilesMap)) { - this.clearGeneratedFileWatch(); - } - } - else { - if (outPath) { - this.clearGeneratedFileWatch(); - } - else { - this.generatedFilesMap.forEach(function (watcher, source) { - var sourceFile = _this.program.getSourceFileByPath(source); - if (!sourceFile || sourceFile.resolvedPath !== source || !_this.isValidGeneratedFileWatcher(getDeclarationEmitOutputFilePathWorker(sourceFile.fileName, _this.compilerOptions, _this.currentDirectory, _this.program.getCommonSourceDirectory(), _this.getCanonicalFileName), watcher)) { - closeFileWatcherOf(watcher); - _this.generatedFilesMap.delete(source); - } - }); - } - } - } - if (this.languageServiceEnabled && this.projectService.serverMode === 0 /* Semantic */) { - this.resolutionCache.updateTypeRootsWatch(); - } - } - if (this.exportMapCache && !this.exportMapCache.isEmpty()) { - this.exportMapCache.releaseSymbols(); - if (this.hasAddedorRemovedFiles || oldProgram && !this.program.structureIsReused) { - this.exportMapCache.clear(); - } - else if (this.changedFilesForExportMapCache && oldProgram && this.program) { - forEachKey(this.changedFilesForExportMapCache, function (fileName) { - var oldSourceFile = oldProgram.getSourceFileByPath(fileName); - var sourceFile = _this.program.getSourceFileByPath(fileName); - if (!oldSourceFile || !sourceFile) { - _this.exportMapCache.clear(); - return true; - } - return _this.exportMapCache.onFileChanged(oldSourceFile, sourceFile, !!_this.getTypeAcquisition().enable); - }); - } - } - if (this.changedFilesForExportMapCache) { - this.changedFilesForExportMapCache.clear(); - } - if (this.hasAddedOrRemovedSymlinks || this.program && !this.program.structureIsReused && this.getCompilerOptions().preserveSymlinks) { - this.symlinks = void 0; - this.moduleSpecifierCache.clear(); - } - var oldExternalFiles = this.externalFiles || emptyArray2; - this.externalFiles = this.getExternalFiles(); - enumerateInsertsAndDeletes(this.externalFiles, oldExternalFiles, getStringComparer(!this.useCaseSensitiveFileNames()), - // Ensure a ScriptInfo is created for new external files. This is performed indirectly - // by the host for files in the program when the program is retrieved above but - // the program doesn't contain external files so this must be done explicitly. - function (inserted) { - var scriptInfo = _this.projectService.getOrCreateScriptInfoNotOpenedByClient(inserted, _this.currentDirectory, _this.directoryStructureHost); - scriptInfo == null ? void 0 : scriptInfo.attachToProject(_this); - }, function (removed) { return _this.detachScriptInfoFromProject(removed); }); - var elapsed = timestamp() - start2; - this.sendPerformanceEvent("UpdateGraph", elapsed); - this.writeLog("Finishing updateGraphWorker: Project: ".concat(this.getProjectName(), " Version: ").concat(this.getProjectVersion(), " structureChanged: ").concat(hasNewProgram).concat(this.program ? " structureIsReused:: ".concat(StructureIsReused[this.program.structureIsReused]) : "", " Elapsed: ").concat(elapsed, "ms")); - if (this.projectService.logger.isTestLogger) { - if (this.program !== oldProgram) { - this.print( - /*writeProjectFileNames*/ - true, this.hasAddedorRemovedFiles, - /*writeFileVersionAndText*/ - true); - } - else { - this.writeLog("Same program as before"); - } - } - else if (this.hasAddedorRemovedFiles) { - this.print( - /*writeProjectFileNames*/ - true, - /*writeFileExplaination*/ - true, - /*writeFileVersionAndText*/ - false); - } - else if (this.program !== oldProgram) { - this.writeLog("Different program with same set of files"); - } - this.projectService.verifyDocumentRegistry(); - return hasNewProgram; - }; - /** @internal */ - _Project.prototype.sendPerformanceEvent = function (kind, durationMs) { - this.projectService.sendPerformanceEvent(kind, durationMs); - }; - _Project.prototype.detachScriptInfoFromProject = function (uncheckedFileName, noRemoveResolution) { - var scriptInfoToDetach = this.projectService.getScriptInfo(uncheckedFileName); - if (scriptInfoToDetach) { - scriptInfoToDetach.detachFromProject(this); - if (!noRemoveResolution) { - this.resolutionCache.removeResolutionsOfFile(scriptInfoToDetach.path); - } - } - }; - _Project.prototype.addMissingFileWatcher = function (missingFilePath) { - var _this = this; - var _a; - if (isConfiguredProject(this)) { - var configFileExistenceInfo = this.projectService.configFileExistenceInfoCache.get(missingFilePath); - if ((_a = configFileExistenceInfo == null ? void 0 : configFileExistenceInfo.config) == null ? void 0 : _a.projects.has(this.canonicalConfigFilePath)) - return noopFileWatcher; - } - var fileWatcher = this.projectService.watchFactory.watchFile(missingFilePath, function (fileName, eventKind) { - if (isConfiguredProject(_this)) { - _this.getCachedDirectoryStructureHost().addOrDeleteFile(fileName, missingFilePath, eventKind); - } - if (eventKind === 0 /* Created */ && _this.missingFilesMap.has(missingFilePath)) { - _this.missingFilesMap.delete(missingFilePath); - fileWatcher.close(); - _this.projectService.delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles(_this); - } - }, 500 /* Medium */, this.projectService.getWatchOptions(this), WatchType.MissingFile, this); - return fileWatcher; - }; - _Project.prototype.isWatchedMissingFile = function (path) { - return !!this.missingFilesMap && this.missingFilesMap.has(path); - }; - /** @internal */ - _Project.prototype.addGeneratedFileWatch = function (generatedFile, sourceFile) { - if (outFile(this.compilerOptions)) { - if (!this.generatedFilesMap) { - this.generatedFilesMap = this.createGeneratedFileWatcher(generatedFile); - } - } - else { - var path = this.toPath(sourceFile); - if (this.generatedFilesMap) { - if (isGeneratedFileWatcher(this.generatedFilesMap)) { - Debug.fail("".concat(this.projectName, " Expected to not have --out watcher for generated file with options: ").concat(JSON.stringify(this.compilerOptions))); - return; - } - if (this.generatedFilesMap.has(path)) - return; - } - else { - this.generatedFilesMap = /* @__PURE__ */ new Map(); - } - this.generatedFilesMap.set(path, this.createGeneratedFileWatcher(generatedFile)); - } - }; - _Project.prototype.createGeneratedFileWatcher = function (generatedFile) { - var _this = this; - return { - generatedFilePath: this.toPath(generatedFile), - watcher: this.projectService.watchFactory.watchFile(generatedFile, function () { - _this.clearSourceMapperCache(); - _this.projectService.delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles(_this); - }, 2e3 /* High */, this.projectService.getWatchOptions(this), WatchType.MissingGeneratedFile, this) - }; - }; - _Project.prototype.isValidGeneratedFileWatcher = function (generateFile, watcher) { - return this.toPath(generateFile) === watcher.generatedFilePath; - }; - _Project.prototype.clearGeneratedFileWatch = function () { - if (this.generatedFilesMap) { - if (isGeneratedFileWatcher(this.generatedFilesMap)) { - closeFileWatcherOf(this.generatedFilesMap); - } - else { - clearMap(this.generatedFilesMap, closeFileWatcherOf); - } - this.generatedFilesMap = void 0; - } - }; - _Project.prototype.getScriptInfoForNormalizedPath = function (fileName) { - var scriptInfo = this.projectService.getScriptInfoForPath(this.toPath(fileName)); - if (scriptInfo && !scriptInfo.isAttached(this)) { - return Errors.ThrowProjectDoesNotContainDocument(fileName, this); - } - return scriptInfo; - }; - _Project.prototype.getScriptInfo = function (uncheckedFileName) { - return this.projectService.getScriptInfo(uncheckedFileName); - }; - _Project.prototype.filesToString = function (writeProjectFileNames) { - return this.filesToStringWorker(writeProjectFileNames, - /*writeFileExplaination*/ - true, - /*writeFileVersionAndText*/ - false); - }; - /** @internal */ - _Project.prototype.filesToStringWorker = function (writeProjectFileNames, writeFileExplaination, writeFileVersionAndText) { - var e_913, _t; - if (this.isInitialLoadPending()) - return " Files (0) InitialLoadPending\n"; - if (!this.program) - return " Files (0) NoProgram\n"; - var sourceFiles = this.program.getSourceFiles(); - var strBuilder = "\tFiles (".concat(sourceFiles.length, ")\n"); - if (writeProjectFileNames) { - try { - for (var sourceFiles_7 = __values(sourceFiles), sourceFiles_7_1 = sourceFiles_7.next(); !sourceFiles_7_1.done; sourceFiles_7_1 = sourceFiles_7.next()) { - var file = sourceFiles_7_1.value; - strBuilder += "\t".concat(file.fileName).concat(writeFileVersionAndText ? " ".concat(file.version, " ").concat(JSON.stringify(file.text)) : "", "\n"); - } - } - catch (e_913_1) { e_913 = { error: e_913_1 }; } - finally { - try { - if (sourceFiles_7_1 && !sourceFiles_7_1.done && (_t = sourceFiles_7.return)) _t.call(sourceFiles_7); - } - finally { if (e_913) throw e_913.error; } - } - if (writeFileExplaination) { - strBuilder += "\n\n"; - explainFiles(this.program, function (s) { return strBuilder += "\t".concat(s, "\n"); }); - } - } - return strBuilder; - }; - /** @internal */ - _Project.prototype.print = function (writeProjectFileNames, writeFileExplaination, writeFileVersionAndText) { - this.writeLog("Project '".concat(this.projectName, "' (").concat(ProjectKind[this.projectKind], ")")); - this.writeLog(this.filesToStringWorker(writeProjectFileNames && this.projectService.logger.hasLevel(3 /* verbose */), writeFileExplaination && this.projectService.logger.hasLevel(3 /* verbose */), writeFileVersionAndText && this.projectService.logger.hasLevel(3 /* verbose */))); - this.writeLog("-----------------------------------------------"); - if (this.autoImportProviderHost) { - this.autoImportProviderHost.print( - /*writeProjectFileNames*/ - false, - /*writeFileExplaination*/ - false, - /*writeFileVersionAndText*/ - false); - } - }; - _Project.prototype.setCompilerOptions = function (compilerOptions) { - var _a; - if (compilerOptions) { - compilerOptions.allowNonTsExtensions = true; - var oldOptions = this.compilerOptions; - this.compilerOptions = compilerOptions; - this.setInternalCompilerOptionsForEmittingJsFiles(); - (_a = this.noDtsResolutionProject) == null ? void 0 : _a.setCompilerOptions(this.getCompilerOptionsForNoDtsResolutionProject()); - if (changesAffectModuleResolution(oldOptions, compilerOptions)) { - this.cachedUnresolvedImportsPerFile.clear(); - this.lastCachedUnresolvedImportsList = void 0; - this.resolutionCache.onChangesAffectModuleResolution(); - this.moduleSpecifierCache.clear(); - } - this.markAsDirty(); - } - }; - /** @internal */ - _Project.prototype.setWatchOptions = function (watchOptions) { - this.watchOptions = watchOptions; - }; - /** @internal */ - _Project.prototype.getWatchOptions = function () { - return this.watchOptions; - }; - _Project.prototype.setTypeAcquisition = function (newTypeAcquisition) { - if (newTypeAcquisition) { - this.typeAcquisition = this.removeLocalTypingsFromTypeAcquisition(newTypeAcquisition); - } - }; - _Project.prototype.getTypeAcquisition = function () { - return this.typeAcquisition || {}; - }; - /** @internal */ - _Project.prototype.getChangesSinceVersion = function (lastKnownVersion, includeProjectReferenceRedirectInfo) { - var _this = this; - var includeProjectReferenceRedirectInfoIfRequested = includeProjectReferenceRedirectInfo ? function (files) { return arrayFrom(files.entries(), function (_t) { - var _u = __read(_t, 2), fileName = _u[0], isSourceOfProjectReferenceRedirect = _u[1]; - return ({ - fileName: fileName, - isSourceOfProjectReferenceRedirect: isSourceOfProjectReferenceRedirect - }); - }); } : function (files) { return arrayFrom(files.keys()); }; - if (!this.isInitialLoadPending()) { - updateProjectIfDirty(this); - } - var info = { - projectName: this.getProjectName(), - version: this.projectProgramVersion, - isInferred: isInferredProject(this), - options: this.getCompilationSettings(), - languageServiceDisabled: !this.languageServiceEnabled, - lastFileExceededProgramSize: this.lastFileExceededProgramSize - }; - var updatedFileNames = this.updatedFileNames; - this.updatedFileNames = void 0; - if (this.lastReportedFileNames && lastKnownVersion === this.lastReportedVersion) { - if (this.projectProgramVersion === this.lastReportedVersion && !updatedFileNames) { - return { info: info, projectErrors: this.getGlobalProjectErrors() }; - } - var lastReportedFileNames_1 = this.lastReportedFileNames; - var externalFiles = this.getExternalFiles().map(function (f) { return ({ - fileName: toNormalizedPath(f), - isSourceOfProjectReferenceRedirect: false - }); }); - var currentFiles_1 = arrayToMap(this.getFileNamesWithRedirectInfo(!!includeProjectReferenceRedirectInfo).concat(externalFiles), function (info2) { return info2.fileName; }, function (info2) { return info2.isSourceOfProjectReferenceRedirect; }); - var added_1 = /* @__PURE__ */ new Map(); - var removed_1 = /* @__PURE__ */ new Map(); - var updated = updatedFileNames ? arrayFrom(updatedFileNames.keys()) : []; - var updatedRedirects_1 = []; - forEachEntry(currentFiles_1, function (isSourceOfProjectReferenceRedirect, fileName) { - if (!lastReportedFileNames_1.has(fileName)) { - added_1.set(fileName, isSourceOfProjectReferenceRedirect); - } - else if (includeProjectReferenceRedirectInfo && isSourceOfProjectReferenceRedirect !== lastReportedFileNames_1.get(fileName)) { - updatedRedirects_1.push({ - fileName: fileName, - isSourceOfProjectReferenceRedirect: isSourceOfProjectReferenceRedirect - }); - } - }); - forEachEntry(lastReportedFileNames_1, function (isSourceOfProjectReferenceRedirect, fileName) { - if (!currentFiles_1.has(fileName)) { - removed_1.set(fileName, isSourceOfProjectReferenceRedirect); - } - }); - this.lastReportedFileNames = currentFiles_1; - this.lastReportedVersion = this.projectProgramVersion; - return { - info: info, - changes: { - added: includeProjectReferenceRedirectInfoIfRequested(added_1), - removed: includeProjectReferenceRedirectInfoIfRequested(removed_1), - updated: includeProjectReferenceRedirectInfo ? updated.map(function (fileName) { return ({ - fileName: fileName, - isSourceOfProjectReferenceRedirect: _this.isSourceOfProjectReferenceRedirect(fileName) - }); }) : updated, - updatedRedirects: includeProjectReferenceRedirectInfo ? updatedRedirects_1 : void 0 - }, - projectErrors: this.getGlobalProjectErrors() - }; - } - else { - var projectFileNames = this.getFileNamesWithRedirectInfo(!!includeProjectReferenceRedirectInfo); - var externalFiles = this.getExternalFiles().map(function (f) { return ({ - fileName: toNormalizedPath(f), - isSourceOfProjectReferenceRedirect: false - }); }); - var allFiles = projectFileNames.concat(externalFiles); - this.lastReportedFileNames = arrayToMap(allFiles, function (info2) { return info2.fileName; }, function (info2) { return info2.isSourceOfProjectReferenceRedirect; }); - this.lastReportedVersion = this.projectProgramVersion; - return { - info: info, - files: includeProjectReferenceRedirectInfo ? allFiles : allFiles.map(function (f) { return f.fileName; }), - projectErrors: this.getGlobalProjectErrors() - }; - } - }; - // remove a root file from project - _Project.prototype.removeRoot = function (info) { - orderedRemoveItem(this.rootFiles, info); - this.rootFilesMap.delete(info.path); - }; - /** @internal */ - _Project.prototype.isSourceOfProjectReferenceRedirect = function (fileName) { - return !!this.program && this.program.isSourceOfProjectReferenceRedirect(fileName); - }; - /** @internal */ - _Project.prototype.getGlobalPluginSearchPaths = function () { - return __spreadArray(__spreadArray([], __read(this.projectService.pluginProbeLocations), false), [ - // ../../.. to walk from X/node_modules/typescript/lib/tsserver.js to X/node_modules/ - combinePaths(this.projectService.getExecutingFilePath(), "../../..") - ], false); - }; - _Project.prototype.enableGlobalPlugins = function (options) { - var e_914, _t; - if (!this.projectService.globalPlugins.length) - return; - var host = this.projectService.host; - if (!host.require && !host.importPlugin) { - this.projectService.logger.info("Plugins were requested but not running in environment that supports 'require'. Nothing will be loaded"); - return; - } - var searchPaths = this.getGlobalPluginSearchPaths(); - var _loop_63 = function (globalPluginName) { - if (!globalPluginName) - return "continue"; - if (options.plugins && options.plugins.some(function (p) { return p.name === globalPluginName; })) - return "continue"; - this_3.projectService.logger.info("Loading global plugin ".concat(globalPluginName)); - this_3.enablePlugin({ name: globalPluginName, global: true }, searchPaths); - }; - var this_3 = this; - try { - for (var _u = __values(this.projectService.globalPlugins), _v = _u.next(); !_v.done; _v = _u.next()) { - var globalPluginName = _v.value; - _loop_63(globalPluginName); - } - } - catch (e_914_1) { e_914 = { error: e_914_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_914) throw e_914.error; } - } - }; - _Project.prototype.enablePlugin = function (pluginConfigEntry, searchPaths) { - this.projectService.requestEnablePlugin(this, pluginConfigEntry, searchPaths); - }; - /** @internal */ - _Project.prototype.enableProxy = function (pluginModuleFactory, configEntry) { - var e_915, _t; - try { - if (typeof pluginModuleFactory !== "function") { - this.projectService.logger.info("Skipped loading plugin ".concat(configEntry.name, " because it did not expose a proper factory function")); - return; - } - var info = { - config: configEntry, - project: this, - languageService: this.languageService, - languageServiceHost: this, - serverHost: this.projectService.host, - session: this.projectService.session - }; - var pluginModule = pluginModuleFactory({ typescript: ts_exports2 }); - var newLS = pluginModule.create(info); - try { - for (var _u = __values(Object.keys(this.languageService)), _v = _u.next(); !_v.done; _v = _u.next()) { - var k = _v.value; - if (!(k in newLS)) { - this.projectService.logger.info("Plugin activation warning: Missing proxied method ".concat(k, " in created LS. Patching.")); - newLS[k] = this.languageService[k]; - } - } - } - catch (e_915_1) { e_915 = { error: e_915_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_915) throw e_915.error; } - } - this.projectService.logger.info("Plugin validation succeeded"); - this.languageService = newLS; - this.plugins.push({ name: configEntry.name, module: pluginModule }); - } - catch (e) { - this.projectService.logger.info("Plugin activation failed: ".concat(e)); - } - }; - /** @internal */ - _Project.prototype.onPluginConfigurationChanged = function (pluginName, configuration) { - this.plugins.filter(function (plugin) { return plugin.name === pluginName; }).forEach(function (plugin) { - if (plugin.module.onConfigurationChanged) { - plugin.module.onConfigurationChanged(configuration); - } - }); - }; - /** Starts a new check for diagnostics. Call this if some file has updated that would cause diagnostics to be changed. */ - _Project.prototype.refreshDiagnostics = function () { - this.projectService.sendProjectsUpdatedInBackgroundEvent(); - }; - /** @internal */ - _Project.prototype.getPackageJsonsVisibleToFile = function (fileName, rootDir) { - if (this.projectService.serverMode !== 0 /* Semantic */) - return emptyArray2; - return this.projectService.getPackageJsonsVisibleToFile(fileName, rootDir); - }; - /** @internal */ - _Project.prototype.getNearestAncestorDirectoryWithPackageJson = function (fileName) { - return this.projectService.getNearestAncestorDirectoryWithPackageJson(fileName); - }; - /** @internal */ - _Project.prototype.getPackageJsonsForAutoImport = function (rootDir) { - var packageJsons = this.getPackageJsonsVisibleToFile(combinePaths(this.currentDirectory, inferredTypesContainingFile), rootDir); - this.packageJsonsForAutoImport = new Set(packageJsons.map(function (p) { return p.fileName; })); - return packageJsons; - }; - /** @internal */ - _Project.prototype.getPackageJsonCache = function () { - return this.projectService.packageJsonCache; - }; - /** @internal */ - _Project.prototype.getCachedExportInfoMap = function () { - return this.exportMapCache || (this.exportMapCache = createCacheableExportInfoMap(this)); - }; - /** @internal */ - _Project.prototype.clearCachedExportInfoMap = function () { - var _a; - (_a = this.exportMapCache) == null ? void 0 : _a.clear(); - }; - /** @internal */ - _Project.prototype.getModuleSpecifierCache = function () { - return this.moduleSpecifierCache; - }; - /** @internal */ - _Project.prototype.includePackageJsonAutoImports = function () { - if (this.projectService.includePackageJsonAutoImports() === 0 /* Off */ || !this.languageServiceEnabled || isInsideNodeModules(this.currentDirectory) || !this.isDefaultProjectForOpenFiles()) { - return 0 /* Off */; - } - return this.projectService.includePackageJsonAutoImports(); - }; - /** @internal */ - _Project.prototype.getHostForAutoImportProvider = function () { - var _a, _b; - if (this.program) { - return { - fileExists: this.program.fileExists, - directoryExists: this.program.directoryExists, - realpath: this.program.realpath || ((_a = this.projectService.host.realpath) == null ? void 0 : _a.bind(this.projectService.host)), - getCurrentDirectory: this.getCurrentDirectory.bind(this), - readFile: this.projectService.host.readFile.bind(this.projectService.host), - getDirectories: this.projectService.host.getDirectories.bind(this.projectService.host), - trace: (_b = this.projectService.host.trace) == null ? void 0 : _b.bind(this.projectService.host), - useCaseSensitiveFileNames: this.program.useCaseSensitiveFileNames(), - readDirectory: this.projectService.host.readDirectory.bind(this.projectService.host) - }; - } - return this.projectService.host; - }; - /** @internal */ - _Project.prototype.getPackageJsonAutoImportProvider = function () { - var _a, _b, _c; - if (this.autoImportProviderHost === false) { - return void 0; - } - if (this.projectService.serverMode !== 0 /* Semantic */) { - this.autoImportProviderHost = false; - return void 0; - } - if (this.autoImportProviderHost) { - updateProjectIfDirty(this.autoImportProviderHost); - if (this.autoImportProviderHost.isEmpty()) { - this.autoImportProviderHost.close(); - this.autoImportProviderHost = void 0; - return void 0; - } - return this.autoImportProviderHost.getCurrentProgram(); - } - var dependencySelection = this.includePackageJsonAutoImports(); - if (dependencySelection) { - (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Session, "getPackageJsonAutoImportProvider"); - var start2 = timestamp(); - this.autoImportProviderHost = AutoImportProviderProject.create(dependencySelection, this, this.getHostForAutoImportProvider(), this.documentRegistry); - if (this.autoImportProviderHost) { - updateProjectIfDirty(this.autoImportProviderHost); - this.sendPerformanceEvent("CreatePackageJsonAutoImportProvider", timestamp() - start2); - (_b = tracing) == null ? void 0 : _b.pop(); - return this.autoImportProviderHost.getCurrentProgram(); - } - (_c = tracing) == null ? void 0 : _c.pop(); - } - }; - /** @internal */ - _Project.prototype.isDefaultProjectForOpenFiles = function () { - var _this = this; - return !!forEachEntry(this.projectService.openFiles, function (_, fileName) { return _this.projectService.tryGetDefaultProjectForFile(toNormalizedPath(fileName)) === _this; }); - }; - /** @internal */ - _Project.prototype.watchNodeModulesForPackageJsonChanges = function (directoryPath) { - return this.projectService.watchPackageJsonsInNodeModules(this.toPath(directoryPath), this); - }; - /** @internal */ - _Project.prototype.getIncompleteCompletionsCache = function () { - return this.projectService.getIncompleteCompletionsCache(); - }; - /** @internal */ - _Project.prototype.getNoDtsResolutionProject = function (rootFileNames) { - var _this = this; - Debug.assert(this.projectService.serverMode === 0 /* Semantic */); - if (!this.noDtsResolutionProject) { - this.noDtsResolutionProject = new AuxiliaryProject(this.projectService, this.documentRegistry, this.getCompilerOptionsForNoDtsResolutionProject(), this.currentDirectory); - } - enumerateInsertsAndDeletes(rootFileNames.map(toNormalizedPath), this.noDtsResolutionProject.getRootFiles(), getStringComparer(!this.useCaseSensitiveFileNames()), function (pathToAdd) { - var info = _this.projectService.getOrCreateScriptInfoNotOpenedByClient(pathToAdd, _this.currentDirectory, _this.noDtsResolutionProject.directoryStructureHost); - if (info) { - _this.noDtsResolutionProject.addRoot(info, pathToAdd); - } - }, function (pathToRemove) { - var info = _this.noDtsResolutionProject.getScriptInfo(pathToRemove); - if (info) { - _this.noDtsResolutionProject.removeRoot(info); - } - }); - return this.noDtsResolutionProject; - }; - /** @internal */ - _Project.prototype.getCompilerOptionsForNoDtsResolutionProject = function () { - return __assign(__assign({}, this.getCompilerOptions()), { noDtsResolution: true, allowJs: true, maxNodeModuleJsDepth: 3, diagnostics: false, skipLibCheck: true, sourceMap: false, types: emptyArray, lib: emptyArray, noLib: true }); - }; - return _Project; -}()); -function getUnresolvedImports(program, cachedUnresolvedImportsPerFile) { - var _a, _b; - var sourceFiles = program.getSourceFiles(); - (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Session, "getUnresolvedImports", { count: sourceFiles.length }); - var ambientModules = program.getTypeChecker().getAmbientModules().map(function (mod) { return stripQuotes(mod.getName()); }); - var result = sortAndDeduplicate(flatMap(sourceFiles, function (sourceFile) { return extractUnresolvedImportsFromSourceFile(sourceFile, ambientModules, cachedUnresolvedImportsPerFile); })); - (_b = tracing) == null ? void 0 : _b.pop(); - return result; -} -function extractUnresolvedImportsFromSourceFile(file, ambientModules, cachedUnresolvedImportsPerFile) { - return getOrUpdate(cachedUnresolvedImportsPerFile, file.path, function () { - if (!file.resolvedModules) - return emptyArray2; - var unresolvedImports; - file.resolvedModules.forEach(function (_t, name) { - var resolvedModule = _t.resolvedModule; - if ((!resolvedModule || !resolutionExtensionIsTSOrJson(resolvedModule.extension)) && !isExternalModuleNameRelative(name) && !ambientModules.some(function (m) { return m === name; })) { - unresolvedImports = append(unresolvedImports, parsePackageName(name).packageName); - } - }); - return unresolvedImports || emptyArray2; - }); -} -var InferredProject2 = /** @class */ (function (_super) { - __extends(InferredProject2, _super); - /** @internal */ - function InferredProject2(projectService, documentRegistry, compilerOptions, watchOptions, projectRootPath, currentDirectory, typeAcquisition) { - var _this = _super.call(this, projectService.newInferredProjectName(), 0 /* Inferred */, projectService, documentRegistry, - // TODO: GH#18217 - /*files*/ - void 0, - /*lastFileExceededProgramSize*/ - void 0, compilerOptions, - /*compileOnSaveEnabled*/ - false, watchOptions, projectService.host, currentDirectory) || this; - _this._isJsInferredProject = false; - _this.typeAcquisition = typeAcquisition; - _this.projectRootPath = projectRootPath && projectService.toCanonicalFileName(projectRootPath); - if (!projectRootPath && !projectService.useSingleInferredProject) { - _this.canonicalCurrentDirectory = projectService.toCanonicalFileName(_this.currentDirectory); - } - _this.enableGlobalPlugins(_this.getCompilerOptions()); - return _this; - } - InferredProject2.prototype.toggleJsInferredProject = function (isJsInferredProject) { - if (isJsInferredProject !== this._isJsInferredProject) { - this._isJsInferredProject = isJsInferredProject; - this.setCompilerOptions(); - } - }; - InferredProject2.prototype.setCompilerOptions = function (options) { - if (!options && !this.getCompilationSettings()) { - return; - } - var newOptions = cloneCompilerOptions(options || this.getCompilationSettings()); - if (this._isJsInferredProject && typeof newOptions.maxNodeModuleJsDepth !== "number") { - newOptions.maxNodeModuleJsDepth = 2; - } - else if (!this._isJsInferredProject) { - newOptions.maxNodeModuleJsDepth = void 0; - } - newOptions.allowJs = true; - _super.prototype.setCompilerOptions.call(this, newOptions); - }; - InferredProject2.prototype.addRoot = function (info) { - Debug.assert(info.isScriptOpen()); - this.projectService.startWatchingConfigFilesForInferredProjectRoot(info); - if (!this._isJsInferredProject && info.isJavaScript()) { - this.toggleJsInferredProject( - /*isJsInferredProject*/ - true); - } - else if (this.isOrphan() && this._isJsInferredProject && !info.isJavaScript()) { - this.toggleJsInferredProject( - /*isJsInferredProject*/ - false); - } - _super.prototype.addRoot.call(this, info); - }; - InferredProject2.prototype.removeRoot = function (info) { - this.projectService.stopWatchingConfigFilesForInferredProjectRoot(info); - _super.prototype.removeRoot.call(this, info); - if (!this.isOrphan() && this._isJsInferredProject && info.isJavaScript()) { - if (every(this.getRootScriptInfos(), function (rootInfo) { return !rootInfo.isJavaScript(); })) { - this.toggleJsInferredProject( - /*isJsInferredProject*/ - false); - } - } - }; - /** @internal */ - InferredProject2.prototype.isOrphan = function () { - return !this.hasRoots(); - }; - InferredProject2.prototype.isProjectWithSingleRoot = function () { - return !this.projectRootPath && !this.projectService.useSingleInferredProject || this.getRootScriptInfos().length === 1; - }; - InferredProject2.prototype.close = function () { - var _this = this; - forEach(this.getRootScriptInfos(), function (info) { return _this.projectService.stopWatchingConfigFilesForInferredProjectRoot(info); }); - _super.prototype.close.call(this); - }; - InferredProject2.prototype.getTypeAcquisition = function () { - return this.typeAcquisition || { - enable: allRootFilesAreJsOrDts(this), - include: emptyArray, - exclude: emptyArray - }; - }; - return InferredProject2; -}(Project3)); -var AuxiliaryProject = /** @class */ (function (_super) { - __extends(AuxiliaryProject, _super); - function AuxiliaryProject(projectService, documentRegistry, compilerOptions, currentDirectory) { - return _super.call(this, projectService.newAuxiliaryProjectName(), 4 /* Auxiliary */, projectService, documentRegistry, - /*hasExplicitListOfFiles*/ - false, - /*lastFileExceededProgramSize*/ - void 0, compilerOptions, - /*compileOnSaveEnabled*/ - false, - /*watchOptions*/ - void 0, projectService.host, currentDirectory) || this; - } - AuxiliaryProject.prototype.isOrphan = function () { - return true; - }; - AuxiliaryProject.prototype.scheduleInvalidateResolutionsOfFailedLookupLocations = function () { - return; - }; - return AuxiliaryProject; -}(Project3)); -var _AutoImportProviderProject = /** @class */ (function (_super) { - __extends(_AutoImportProviderProject, _super); - /** @internal */ - function _AutoImportProviderProject(hostProject, initialRootNames, documentRegistry, compilerOptions) { - var _this = _super.call(this, hostProject.projectService.newAutoImportProviderProjectName(), 3 /* AutoImportProvider */, hostProject.projectService, documentRegistry, - /*hasExplicitListOfFiles*/ - false, - /*lastFileExceededProgramSize*/ - void 0, compilerOptions, - /*compileOnSaveEnabled*/ - false, hostProject.getWatchOptions(), hostProject.projectService.host, hostProject.currentDirectory) || this; - _this.hostProject = hostProject; - _this.rootFileNames = initialRootNames; - _this.useSourceOfProjectReferenceRedirect = maybeBind(_this.hostProject, _this.hostProject.useSourceOfProjectReferenceRedirect); - _this.getParsedCommandLine = maybeBind(_this.hostProject, _this.hostProject.getParsedCommandLine); - return _this; - } - /** @internal */ - _AutoImportProviderProject.getRootFileNames = function (dependencySelection, hostProject, host, compilerOptions) { - var e_916, _t, e_917, _u; - var _a, _b; - if (!dependencySelection) { - return emptyArray; - } - var program = hostProject.getCurrentProgram(); - if (!program) { - return emptyArray; - } - var start2 = timestamp(); - var dependencyNames; - var rootNames; - var rootFileName = combinePaths(hostProject.currentDirectory, inferredTypesContainingFile); - var packageJsons = hostProject.getPackageJsonsForAutoImport(combinePaths(hostProject.currentDirectory, rootFileName)); - try { - for (var packageJsons_2 = __values(packageJsons), packageJsons_2_1 = packageJsons_2.next(); !packageJsons_2_1.done; packageJsons_2_1 = packageJsons_2.next()) { - var packageJson = packageJsons_2_1.value; - (_a = packageJson.dependencies) == null ? void 0 : _a.forEach(function (_, dependenyName) { return addDependency(dependenyName); }); - (_b = packageJson.peerDependencies) == null ? void 0 : _b.forEach(function (_, dependencyName) { return addDependency(dependencyName); }); - } - } - catch (e_916_1) { e_916 = { error: e_916_1 }; } - finally { - try { - if (packageJsons_2_1 && !packageJsons_2_1.done && (_t = packageJsons_2.return)) _t.call(packageJsons_2); - } - finally { if (e_916) throw e_916.error; } - } - var dependenciesAdded = 0; - if (dependencyNames) { - var symlinkCache_1 = hostProject.getSymlinkCache(); - var _loop_64 = function (name_140) { - if (dependencySelection === 2 /* Auto */ && dependenciesAdded > this_4.maxDependencies) { - hostProject.log("AutoImportProviderProject: attempted to add more than ".concat(this_4.maxDependencies, " dependencies. Aborting.")); - return { value: emptyArray }; - } - var packageJson = resolvePackageNameToPackageJson(name_140, hostProject.currentDirectory, compilerOptions, host, program.getModuleResolutionCache()); - if (packageJson) { - var entrypoints = getRootNamesFromPackageJson(packageJson, program, symlinkCache_1); - if (entrypoints) { - rootNames = concatenate(rootNames, entrypoints); - dependenciesAdded += entrypoints.length ? 1 : 0; - return "continue"; - } - } - var done = forEach([hostProject.currentDirectory, hostProject.getGlobalTypingsCacheLocation()], function (directory) { - if (directory) { - var typesPackageJson = resolvePackageNameToPackageJson("@types/".concat(name_140), directory, compilerOptions, host, program.getModuleResolutionCache()); - if (typesPackageJson) { - var entrypoints = getRootNamesFromPackageJson(typesPackageJson, program, symlinkCache_1); - rootNames = concatenate(rootNames, entrypoints); - dependenciesAdded += (entrypoints == null ? void 0 : entrypoints.length) ? 1 : 0; - return true; - } - } - }); - if (done) - return "continue"; - if (packageJson && compilerOptions.allowJs && compilerOptions.maxNodeModuleJsDepth) { - var entrypoints = getRootNamesFromPackageJson(packageJson, program, symlinkCache_1, - /*resolveJs*/ - true); - rootNames = concatenate(rootNames, entrypoints); - dependenciesAdded += (entrypoints == null ? void 0 : entrypoints.length) ? 1 : 0; - } - }; - var this_4 = this; - try { - for (var _v = __values(arrayFrom(dependencyNames.keys())), _w = _v.next(); !_w.done; _w = _v.next()) { - var name_140 = _w.value; - var state_19 = _loop_64(name_140); - if (typeof state_19 === "object") - return state_19.value; - } - } - catch (e_917_1) { e_917 = { error: e_917_1 }; } - finally { - try { - if (_w && !_w.done && (_u = _v.return)) _u.call(_v); - } - finally { if (e_917) throw e_917.error; } - } - } - if (rootNames == null ? void 0 : rootNames.length) { - hostProject.log("AutoImportProviderProject: found ".concat(rootNames.length, " root files in ").concat(dependenciesAdded, " dependencies in ").concat(timestamp() - start2, " ms")); - } - return rootNames || emptyArray; - function addDependency(dependency) { - if (!startsWith(dependency, "@types/")) { - (dependencyNames || (dependencyNames = /* @__PURE__ */ new Set())).add(dependency); - } - } - function getRootNamesFromPackageJson(packageJson, program2, symlinkCache, resolveJs) { - var _a2; - var entrypoints = getEntrypointsFromPackageJsonInfo(packageJson, compilerOptions, host, program2.getModuleResolutionCache(), resolveJs); - if (entrypoints) { - var real_1 = (_a2 = host.realpath) == null ? void 0 : _a2.call(host, packageJson.packageDirectory); - var isSymlink_1 = real_1 && real_1 !== packageJson.packageDirectory; - if (isSymlink_1) { - symlinkCache.setSymlinkedDirectory(packageJson.packageDirectory, { - real: real_1, - realPath: hostProject.toPath(real_1) - }); - } - return mapDefined(entrypoints, function (entrypoint) { - var resolvedFileName = isSymlink_1 ? entrypoint.replace(packageJson.packageDirectory, real_1) : entrypoint; - if (!program2.getSourceFile(resolvedFileName) && !(isSymlink_1 && program2.getSourceFile(entrypoint))) { - return resolvedFileName; - } - }); - } - } - }; - /** @internal */ - _AutoImportProviderProject.create = function (dependencySelection, hostProject, host, documentRegistry) { - if (dependencySelection === 0 /* Off */) { - return void 0; - } - var compilerOptions = __assign(__assign({}, hostProject.getCompilerOptions()), this.compilerOptionsOverrides); - var rootNames = this.getRootFileNames(dependencySelection, hostProject, host, compilerOptions); - if (!rootNames.length) { - return void 0; - } - return new _AutoImportProviderProject(hostProject, rootNames, documentRegistry, compilerOptions); - }; - /** @internal */ - _AutoImportProviderProject.prototype.isEmpty = function () { - return !some(this.rootFileNames); - }; - _AutoImportProviderProject.prototype.isOrphan = function () { - return true; - }; - _AutoImportProviderProject.prototype.updateGraph = function () { - var rootFileNames = this.rootFileNames; - if (!rootFileNames) { - rootFileNames = _AutoImportProviderProject.getRootFileNames(this.hostProject.includePackageJsonAutoImports(), this.hostProject, this.hostProject.getHostForAutoImportProvider(), this.getCompilationSettings()); - } - this.projectService.setFileNamesOfAutoImportProviderProject(this, rootFileNames); - this.rootFileNames = rootFileNames; - var oldProgram = this.getCurrentProgram(); - var hasSameSetOfFiles = _super.prototype.updateGraph.call(this); - if (oldProgram && oldProgram !== this.getCurrentProgram()) { - this.hostProject.clearCachedExportInfoMap(); - } - return hasSameSetOfFiles; - }; - /** @internal */ - _AutoImportProviderProject.prototype.scheduleInvalidateResolutionsOfFailedLookupLocations = function () { - return; - }; - _AutoImportProviderProject.prototype.hasRoots = function () { - var _a; - return !!((_a = this.rootFileNames) == null ? void 0 : _a.length); - }; - _AutoImportProviderProject.prototype.markAsDirty = function () { - this.rootFileNames = void 0; - _super.prototype.markAsDirty.call(this); - }; - _AutoImportProviderProject.prototype.getScriptFileNames = function () { - return this.rootFileNames || emptyArray; - }; - _AutoImportProviderProject.prototype.getLanguageService = function () { - throw new Error("AutoImportProviderProject language service should never be used. To get the program, use `project.getCurrentProgram()`."); - }; - /** @internal */ - _AutoImportProviderProject.prototype.onAutoImportProviderSettingsChanged = function () { - throw new Error("AutoImportProviderProject is an auto import provider; use `markAsDirty()` instead."); - }; - /** @internal */ - _AutoImportProviderProject.prototype.onPackageJsonChange = function () { - throw new Error("package.json changes should be notified on an AutoImportProvider's host project"); - }; - _AutoImportProviderProject.prototype.getHostForAutoImportProvider = function () { - throw new Error("AutoImportProviderProject cannot provide its own host; use `hostProject.getModuleResolutionHostForAutomImportProvider()` instead."); - }; - _AutoImportProviderProject.prototype.getProjectReferences = function () { - return this.hostProject.getProjectReferences(); - }; - /** @internal */ - _AutoImportProviderProject.prototype.includePackageJsonAutoImports = function () { - return 0 /* Off */; - }; - _AutoImportProviderProject.prototype.getTypeAcquisition = function () { - return { enable: false }; - }; - /** @internal */ - _AutoImportProviderProject.prototype.getSymlinkCache = function () { - return this.hostProject.getSymlinkCache(); - }; - /** @internal */ - _AutoImportProviderProject.prototype.getModuleResolutionCache = function () { - var _a; - return (_a = this.hostProject.getCurrentProgram()) == null ? void 0 : _a.getModuleResolutionCache(); - }; - return _AutoImportProviderProject; -}(Project3)); -/** @internal */ -_AutoImportProviderProject.maxDependencies = 10; -/** @internal */ -_AutoImportProviderProject.compilerOptionsOverrides = { - diagnostics: false, - skipLibCheck: true, - sourceMap: false, - types: emptyArray, - lib: emptyArray, - noLib: true -}; -var AutoImportProviderProject = _AutoImportProviderProject; -var ConfiguredProject2 = /** @class */ (function (_super) { - __extends(ConfiguredProject2, _super); - /** @internal */ - function ConfiguredProject2(configFileName, canonicalConfigFilePath, projectService, documentRegistry, cachedDirectoryStructureHost) { - var _this = _super.call(this, configFileName, 1 /* Configured */, projectService, documentRegistry, - /*hasExplicitListOfFiles*/ - false, - /*lastFileExceededProgramSize*/ - void 0, - /*compilerOptions*/ - {}, - /*compileOnSaveEnabled*/ - false, - /*watchOptions*/ - void 0, cachedDirectoryStructureHost, getDirectoryPath(configFileName)) || this; - _this.canonicalConfigFilePath = canonicalConfigFilePath; - /** @internal */ - _this.openFileWatchTriggered = /* @__PURE__ */ new Map(); - /** @internal */ - _this.canConfigFileJsonReportNoInputFiles = false; - /** Ref count to the project when opened from external project */ - _this.externalProjectRefCount = 0; - /** @internal */ - _this.isInitialLoadPending = returnTrue; - /** @internal */ - _this.sendLoadingProjectFinish = false; - return _this; - } - /** @internal */ - ConfiguredProject2.prototype.setCompilerHost = function (host) { - this.compilerHost = host; - }; - /** @internal */ - ConfiguredProject2.prototype.getCompilerHost = function () { - return this.compilerHost; - }; - /** @internal */ - ConfiguredProject2.prototype.useSourceOfProjectReferenceRedirect = function () { - return this.languageServiceEnabled; - }; - /** @internal */ - ConfiguredProject2.prototype.getParsedCommandLine = function (fileName) { - var configFileName = asNormalizedPath(normalizePath(fileName)); - var canonicalConfigFilePath = asNormalizedPath(this.projectService.toCanonicalFileName(configFileName)); - var configFileExistenceInfo = this.projectService.configFileExistenceInfoCache.get(canonicalConfigFilePath); - if (!configFileExistenceInfo) { - this.projectService.configFileExistenceInfoCache.set(canonicalConfigFilePath, configFileExistenceInfo = { exists: this.projectService.host.fileExists(configFileName) }); - } - this.projectService.ensureParsedConfigUptoDate(configFileName, canonicalConfigFilePath, configFileExistenceInfo, this); - if (this.languageServiceEnabled && this.projectService.serverMode === 0 /* Semantic */) { - this.projectService.watchWildcards(configFileName, configFileExistenceInfo, this); - } - return configFileExistenceInfo.exists ? configFileExistenceInfo.config.parsedCommandLine : void 0; - }; - /** @internal */ - ConfiguredProject2.prototype.onReleaseParsedCommandLine = function (fileName) { - this.releaseParsedConfig(asNormalizedPath(this.projectService.toCanonicalFileName(asNormalizedPath(normalizePath(fileName))))); - }; - /** @internal */ - ConfiguredProject2.prototype.releaseParsedConfig = function (canonicalConfigFilePath) { - this.projectService.stopWatchingWildCards(canonicalConfigFilePath, this); - this.projectService.releaseParsedConfig(canonicalConfigFilePath, this); - }; - /** - * If the project has reload from disk pending, it reloads (and then updates graph as part of that) instead of just updating the graph - * @returns: true if set of files in the project stays the same and false - otherwise. - */ - ConfiguredProject2.prototype.updateGraph = function () { - var isInitialLoad = this.isInitialLoadPending(); - this.isInitialLoadPending = returnFalse; - var reloadLevel = this.pendingReload; - this.pendingReload = 0 /* None */; - var result; - switch (reloadLevel) { - case 1 /* Partial */: - this.openFileWatchTriggered.clear(); - result = this.projectService.reloadFileNamesOfConfiguredProject(this); - break; - case 2 /* Full */: - this.openFileWatchTriggered.clear(); - var reason = Debug.checkDefined(this.pendingReloadReason); - this.pendingReloadReason = void 0; - this.projectService.reloadConfiguredProject(this, reason, isInitialLoad, - /*clearSemanticCache*/ - false); - result = true; - break; - default: - result = _super.prototype.updateGraph.call(this); - } - this.compilerHost = void 0; - this.projectService.sendProjectLoadingFinishEvent(this); - this.projectService.sendProjectTelemetry(this); - return result; - }; - /** @internal */ - ConfiguredProject2.prototype.getCachedDirectoryStructureHost = function () { - return this.directoryStructureHost; - }; - ConfiguredProject2.prototype.getConfigFilePath = function () { - return asNormalizedPath(this.getProjectName()); - }; - ConfiguredProject2.prototype.getProjectReferences = function () { - return this.projectReferences; - }; - ConfiguredProject2.prototype.updateReferences = function (refs) { - this.projectReferences = refs; - this.potentialProjectReferences = void 0; - }; - /** @internal */ - ConfiguredProject2.prototype.setPotentialProjectReference = function (canonicalConfigPath) { - Debug.assert(this.isInitialLoadPending()); - (this.potentialProjectReferences || (this.potentialProjectReferences = /* @__PURE__ */ new Set())).add(canonicalConfigPath); - }; - /** @internal */ - ConfiguredProject2.prototype.getResolvedProjectReferenceToRedirect = function (fileName) { - var program = this.getCurrentProgram(); - return program && program.getResolvedProjectReferenceToRedirect(fileName); - }; - /** @internal */ - ConfiguredProject2.prototype.forEachResolvedProjectReference = function (cb) { - var _a; - return (_a = this.getCurrentProgram()) == null ? void 0 : _a.forEachResolvedProjectReference(cb); - }; - /** @internal */ - ConfiguredProject2.prototype.enablePluginsWithOptions = function (options) { - var e_918, _t; - var _a; - this.plugins.length = 0; - if (!((_a = options.plugins) == null ? void 0 : _a.length) && !this.projectService.globalPlugins.length) - return; - var host = this.projectService.host; - if (!host.require && !host.importPlugin) { - this.projectService.logger.info("Plugins were requested but not running in environment that supports 'require'. Nothing will be loaded"); - return; - } - var searchPaths = this.getGlobalPluginSearchPaths(); - if (this.projectService.allowLocalPluginLoads) { - var local = getDirectoryPath(this.canonicalConfigFilePath); - this.projectService.logger.info("Local plugin loading enabled; adding ".concat(local, " to search paths")); - searchPaths.unshift(local); - } - if (options.plugins) { - try { - for (var _u = __values(options.plugins), _v = _u.next(); !_v.done; _v = _u.next()) { - var pluginConfigEntry = _v.value; - this.enablePlugin(pluginConfigEntry, searchPaths); - } - } - catch (e_918_1) { e_918 = { error: e_918_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_918) throw e_918.error; } - } - } - return this.enableGlobalPlugins(options); - }; - /** - * Get the errors that dont have any file name associated - */ - ConfiguredProject2.prototype.getGlobalProjectErrors = function () { - return filter(this.projectErrors, function (diagnostic) { return !diagnostic.file; }) || emptyArray2; - }; - /** - * Get all the project errors - */ - ConfiguredProject2.prototype.getAllProjectErrors = function () { - return this.projectErrors || emptyArray2; - }; - ConfiguredProject2.prototype.setProjectErrors = function (projectErrors) { - this.projectErrors = projectErrors; - }; - ConfiguredProject2.prototype.close = function () { - var _this = this; - this.projectService.configFileExistenceInfoCache.forEach(function (_configFileExistenceInfo, canonicalConfigFilePath) { return _this.releaseParsedConfig(canonicalConfigFilePath); }); - this.projectErrors = void 0; - this.openFileWatchTriggered.clear(); - this.compilerHost = void 0; - _super.prototype.close.call(this); - }; - /** @internal */ - ConfiguredProject2.prototype.addExternalProjectReference = function () { - this.externalProjectRefCount++; - }; - /** @internal */ - ConfiguredProject2.prototype.deleteExternalProjectReference = function () { - this.externalProjectRefCount--; - }; - /** @internal */ - ConfiguredProject2.prototype.isSolution = function () { - return this.getRootFilesMap().size === 0 && !this.canConfigFileJsonReportNoInputFiles; - }; - /** - * Find the configured project from the project references in project which contains the info directly - * - * @internal - */ - ConfiguredProject2.prototype.getDefaultChildProjectFromProjectWithReferences = function (info) { - return forEachResolvedProjectReferenceProject(this, info.path, function (child) { return projectContainsInfoDirectly(child, info) ? child : void 0; }, 0 /* Find */); - }; - /** - * Returns true if the project is needed by any of the open script info/external project - * - * @internal - */ - ConfiguredProject2.prototype.hasOpenRef = function () { - var _this = this; - var _a; - if (!!this.externalProjectRefCount) { - return true; - } - if (this.isClosed()) { - return false; - } - var configFileExistenceInfo = this.projectService.configFileExistenceInfoCache.get(this.canonicalConfigFilePath); - if (this.projectService.hasPendingProjectUpdate(this)) { - return !!((_a = configFileExistenceInfo.openFilesImpactedByConfigFile) == null ? void 0 : _a.size); - } - return !!configFileExistenceInfo.openFilesImpactedByConfigFile && forEachEntry(configFileExistenceInfo.openFilesImpactedByConfigFile, function (_value, infoPath) { - var info = _this.projectService.getScriptInfoForPath(infoPath); - return _this.containsScriptInfo(info) || !!forEachResolvedProjectReferenceProject(_this, info.path, function (child) { return child.containsScriptInfo(info); }, 0 /* Find */); - }) || false; - }; - /** @internal */ - ConfiguredProject2.prototype.hasExternalProjectRef = function () { - return !!this.externalProjectRefCount; - }; - ConfiguredProject2.prototype.getEffectiveTypeRoots = function () { - return getEffectiveTypeRoots(this.getCompilationSettings(), this) || []; - }; - /** @internal */ - ConfiguredProject2.prototype.updateErrorOnNoInputFiles = function (fileNames) { - updateErrorForNoInputFiles(fileNames, this.getConfigFilePath(), this.getCompilerOptions().configFile.configFileSpecs, this.projectErrors, this.canConfigFileJsonReportNoInputFiles); - }; - return ConfiguredProject2; -}(Project3)); -var ExternalProject2 = /** @class */ (function (_super) { - __extends(ExternalProject2, _super); - /** @internal */ - function ExternalProject2(externalProjectName, projectService, documentRegistry, compilerOptions, lastFileExceededProgramSize, compileOnSaveEnabled, projectFilePath, watchOptions) { - var _this = _super.call(this, externalProjectName, 2 /* External */, projectService, documentRegistry, - /*hasExplicitListOfFiles*/ - true, lastFileExceededProgramSize, compilerOptions, compileOnSaveEnabled, watchOptions, projectService.host, getDirectoryPath(projectFilePath || normalizeSlashes(externalProjectName))) || this; - _this.externalProjectName = externalProjectName; - _this.compileOnSaveEnabled = compileOnSaveEnabled; - _this.excludedFiles = []; - _this.enableGlobalPlugins(_this.getCompilerOptions()); - return _this; - } - ExternalProject2.prototype.updateGraph = function () { - var result = _super.prototype.updateGraph.call(this); - this.projectService.sendProjectTelemetry(this); - return result; - }; - ExternalProject2.prototype.getExcludedFiles = function () { - return this.excludedFiles; - }; - return ExternalProject2; -}(Project3)); -function isInferredProject(project) { - return project.projectKind === 0 /* Inferred */; -} -function isConfiguredProject(project) { - return project.projectKind === 1 /* Configured */; -} -function isExternalProject(project) { - return project.projectKind === 2 /* External */; -} -// src/server/editorServices.ts -var maxProgramSizeForNonTsFiles = 20 * 1024 * 1024; -var maxFileSize = 4 * 1024 * 1024; -var ProjectsUpdatedInBackgroundEvent = "projectsUpdatedInBackground"; -var ProjectLoadingStartEvent = "projectLoadingStart"; -var ProjectLoadingFinishEvent = "projectLoadingFinish"; -var LargeFileReferencedEvent = "largeFileReferenced"; -var ConfigFileDiagEvent = "configFileDiag"; -var ProjectLanguageServiceStateEvent = "projectLanguageServiceState"; -var ProjectInfoTelemetryEvent = "projectInfo"; -var OpenFileInfoTelemetryEvent = "openFileInfo"; -var ensureProjectForOpenFileSchedule = "*ensureProjectForOpenFiles*"; -function prepareConvertersForEnumLikeCompilerOptions(commandLineOptions) { - var e_919, _t; - var map2 = /* @__PURE__ */ new Map(); - try { - for (var commandLineOptions_1 = __values(commandLineOptions), commandLineOptions_1_1 = commandLineOptions_1.next(); !commandLineOptions_1_1.done; commandLineOptions_1_1 = commandLineOptions_1.next()) { - var option = commandLineOptions_1_1.value; - if (typeof option.type === "object") { - var optionMap = option.type; - optionMap.forEach(function (value) { - Debug.assert(typeof value === "number"); - }); - map2.set(option.name, optionMap); - } - } - } - catch (e_919_1) { e_919 = { error: e_919_1 }; } - finally { - try { - if (commandLineOptions_1_1 && !commandLineOptions_1_1.done && (_t = commandLineOptions_1.return)) _t.call(commandLineOptions_1); - } - finally { if (e_919) throw e_919.error; } - } - return map2; -} -var compilerOptionConverters = prepareConvertersForEnumLikeCompilerOptions(optionDeclarations); -var watchOptionsConverters = prepareConvertersForEnumLikeCompilerOptions(optionsForWatch); -var indentStyle = new Map(Object.entries({ - none: 0 /* None */, - block: 1 /* Block */, - smart: 2 /* Smart */ -})); -var defaultTypeSafeList = { - "jquery": { - // jquery files can have names like "jquery-1.10.2.min.js" (or "jquery.intellisense.js") - match: /jquery(-[\d.]+)?(\.intellisense)?(\.min)?\.js$/i, - types: ["jquery"] - }, - "WinJS": { - // e.g. c:/temp/UWApp1/lib/winjs-4.0.1/js/base.js - match: /^(.*\/winjs-[.\d]+)\/js\/base\.js$/i, - // If the winjs/base.js file is found.. - exclude: [["^", 1, "/.*"]], - // ..then exclude all files under the winjs folder - types: ["winjs"] - // And fetch the @types package for WinJS - }, - "Kendo": { - // e.g. /Kendo3/wwwroot/lib/kendo/kendo.all.min.js - match: /^(.*\/kendo(-ui)?)\/kendo\.all(\.min)?\.js$/i, - exclude: [["^", 1, "/.*"]], - types: ["kendo-ui"] - }, - "Office Nuget": { - // e.g. /scripts/Office/1/excel-15.debug.js - match: /^(.*\/office\/1)\/excel-\d+\.debug\.js$/i, - // Office NuGet package is installed under a "1/office" folder - exclude: [["^", 1, "/.*"]], - // Exclude that whole folder if the file indicated above is found in it - types: ["office"] - // @types package to fetch instead - }, - "References": { - match: /^(.*\/_references\.js)$/i, - exclude: [["^", 1, "$"]] - } -}; -function convertFormatOptions(protocolOptions) { - if (isString(protocolOptions.indentStyle)) { - protocolOptions.indentStyle = indentStyle.get(protocolOptions.indentStyle.toLowerCase()); - Debug.assert(protocolOptions.indentStyle !== void 0); - } - return protocolOptions; -} -function convertCompilerOptions(protocolOptions) { - compilerOptionConverters.forEach(function (mappedValues, id) { - var propertyValue = protocolOptions[id]; - if (isString(propertyValue)) { - protocolOptions[id] = mappedValues.get(propertyValue.toLowerCase()); - } - }); - return protocolOptions; -} -function convertWatchOptions(protocolOptions, currentDirectory) { - var watchOptions; - var errors; - optionsForWatch.forEach(function (option) { - var propertyValue = protocolOptions[option.name]; - if (propertyValue === void 0) - return; - var mappedValues = watchOptionsConverters.get(option.name); - (watchOptions || (watchOptions = {}))[option.name] = mappedValues ? isString(propertyValue) ? mappedValues.get(propertyValue.toLowerCase()) : propertyValue : convertJsonOption(option, propertyValue, currentDirectory || "", errors || (errors = [])); - }); - return watchOptions && { watchOptions: watchOptions, errors: errors }; -} -function convertTypeAcquisition(protocolOptions) { - var result; - typeAcquisitionDeclarations.forEach(function (option) { - var propertyValue = protocolOptions[option.name]; - if (propertyValue === void 0) - return; - (result || (result = {}))[option.name] = propertyValue; - }); - return result; -} -function tryConvertScriptKindName(scriptKindName) { - return isString(scriptKindName) ? convertScriptKindName(scriptKindName) : scriptKindName; -} -function convertScriptKindName(scriptKindName) { - switch (scriptKindName) { - case "JS": - return 1 /* JS */; - case "JSX": - return 2 /* JSX */; - case "TS": - return 3 /* TS */; - case "TSX": - return 4 /* TSX */; - default: - return 0 /* Unknown */; - } -} -function convertUserPreferences(preferences) { - var lazyConfiguredProjectsFromExternalProject = preferences.lazyConfiguredProjectsFromExternalProject, userPreferences = __rest(preferences, ["lazyConfiguredProjectsFromExternalProject"]); - return userPreferences; -} -var fileNamePropertyReader = { - getFileName: function (x) { return x; }, - getScriptKind: function (fileName, extraFileExtensions) { - var result; - if (extraFileExtensions) { - var fileExtension_1 = getAnyExtensionFromPath(fileName); - if (fileExtension_1) { - some(extraFileExtensions, function (info) { - if (info.extension === fileExtension_1) { - result = info.scriptKind; - return true; - } - return false; - }); - } - } - return result; - }, - hasMixedContent: function (fileName, extraFileExtensions) { return some(extraFileExtensions, function (ext) { return ext.isMixedContent && fileExtensionIs(fileName, ext.extension); }); } -}; -var externalFilePropertyReader = { - getFileName: function (x) { return x.fileName; }, - getScriptKind: function (x) { return tryConvertScriptKindName(x.scriptKind); }, - // TODO: GH#18217 - hasMixedContent: function (x) { return !!x.hasMixedContent; } -}; -function findProjectByName(projectName, projects) { - var e_920, _t; - try { - for (var projects_1 = __values(projects), projects_1_1 = projects_1.next(); !projects_1_1.done; projects_1_1 = projects_1.next()) { - var proj = projects_1_1.value; - if (proj.getProjectName() === projectName) { - return proj; - } - } - } - catch (e_920_1) { e_920 = { error: e_920_1 }; } - finally { - try { - if (projects_1_1 && !projects_1_1.done && (_t = projects_1.return)) _t.call(projects_1); - } - finally { if (e_920) throw e_920.error; } - } -} -var noopConfigFileWatcher = { close: noop }; -function isOpenScriptInfo(infoOrFileNameOrConfig) { - return !!infoOrFileNameOrConfig.containingProjects; -} -function isAncestorConfigFileInfo(infoOrFileNameOrConfig) { - return !!infoOrFileNameOrConfig.configFileInfo; -} -var ProjectReferenceProjectLoadKind = /* @__PURE__ */ (function (ProjectReferenceProjectLoadKind2) { - ProjectReferenceProjectLoadKind2[ProjectReferenceProjectLoadKind2["Find"] = 0] = "Find"; - ProjectReferenceProjectLoadKind2[ProjectReferenceProjectLoadKind2["FindCreate"] = 1] = "FindCreate"; - ProjectReferenceProjectLoadKind2[ProjectReferenceProjectLoadKind2["FindCreateLoad"] = 2] = "FindCreateLoad"; - return ProjectReferenceProjectLoadKind2; -})(ProjectReferenceProjectLoadKind || {}); -function forEachResolvedProjectReferenceProject(project, fileName, cb, projectReferenceProjectLoadKind, reason) { - var _a; - var resolvedRefs = (_a = project.getCurrentProgram()) == null ? void 0 : _a.getResolvedProjectReferences(); - if (!resolvedRefs) - return void 0; - var seenResolvedRefs; - var possibleDefaultRef = fileName ? project.getResolvedProjectReferenceToRedirect(fileName) : void 0; - if (possibleDefaultRef) { - var configFileName = toNormalizedPath(possibleDefaultRef.sourceFile.fileName); - var child = project.projectService.findConfiguredProjectByProjectName(configFileName); - if (child) { - var result = cb(child); - if (result) - return result; - } - else if (projectReferenceProjectLoadKind !== 0 /* Find */) { - seenResolvedRefs = /* @__PURE__ */ new Map(); - var result = forEachResolvedProjectReferenceProjectWorker(resolvedRefs, project.getCompilerOptions(), function (ref, loadKind) { return possibleDefaultRef === ref ? callback(ref, loadKind) : void 0; }, projectReferenceProjectLoadKind, project.projectService, seenResolvedRefs); - if (result) - return result; - seenResolvedRefs.clear(); - } - } - return forEachResolvedProjectReferenceProjectWorker(resolvedRefs, project.getCompilerOptions(), function (ref, loadKind) { return possibleDefaultRef !== ref ? callback(ref, loadKind) : void 0; }, projectReferenceProjectLoadKind, project.projectService, seenResolvedRefs); - function callback(ref, loadKind) { - var configFileName = toNormalizedPath(ref.sourceFile.fileName); - var child = project.projectService.findConfiguredProjectByProjectName(configFileName) || (loadKind === 0 /* Find */ ? void 0 : loadKind === 1 /* FindCreate */ ? project.projectService.createConfiguredProject(configFileName) : loadKind === 2 /* FindCreateLoad */ ? project.projectService.createAndLoadConfiguredProject(configFileName, reason) : Debug.assertNever(loadKind)); - return child && cb(child); - } -} -function forEachResolvedProjectReferenceProjectWorker(resolvedProjectReferences, parentOptions, cb, projectReferenceProjectLoadKind, projectService, seenResolvedRefs) { - var loadKind = parentOptions.disableReferencedProjectLoad ? 0 /* Find */ : projectReferenceProjectLoadKind; - return forEach(resolvedProjectReferences, function (ref) { - if (!ref) - return void 0; - var configFileName = toNormalizedPath(ref.sourceFile.fileName); - var canonicalPath = projectService.toCanonicalFileName(configFileName); - var seenValue = seenResolvedRefs == null ? void 0 : seenResolvedRefs.get(canonicalPath); - if (seenValue !== void 0 && seenValue >= loadKind) { - return void 0; - } - var result = cb(ref, loadKind); - if (result) { - return result; - } - (seenResolvedRefs || (seenResolvedRefs = /* @__PURE__ */ new Map())).set(canonicalPath, loadKind); - return ref.references && forEachResolvedProjectReferenceProjectWorker(ref.references, ref.commandLine.options, cb, loadKind, projectService, seenResolvedRefs); - }); -} -function forEachPotentialProjectReference(project, cb) { - return project.potentialProjectReferences && forEachKey(project.potentialProjectReferences, cb); -} -function forEachAnyProjectReferenceKind(project, cb, cbProjectRef, cbPotentialProjectRef) { - return project.getCurrentProgram() ? project.forEachResolvedProjectReference(cb) : project.isInitialLoadPending() ? forEachPotentialProjectReference(project, cbPotentialProjectRef) : forEach(project.getProjectReferences(), cbProjectRef); -} -function callbackRefProject(project, cb, refPath) { - var refProject = refPath && project.projectService.configuredProjects.get(refPath); - return refProject && cb(refProject); -} -function forEachReferencedProject(project, cb) { - return forEachAnyProjectReferenceKind(project, function (resolvedRef) { return callbackRefProject(project, cb, resolvedRef.sourceFile.path); }, function (projectRef) { return callbackRefProject(project, cb, project.toPath(resolveProjectReferencePath(projectRef))); }, function (potentialProjectRef) { return callbackRefProject(project, cb, potentialProjectRef); }); -} -function getDetailWatchInfo(watchType, project) { - return "".concat(isString(project) ? "Config: ".concat(project, " ") : project ? "Project: ".concat(project.getProjectName(), " ") : "", "WatchType: ").concat(watchType); -} -function isScriptInfoWatchedFromNodeModules(info) { - return !info.isScriptOpen() && info.mTime !== void 0; -} -function projectContainsInfoDirectly(project, info) { - return project.containsScriptInfo(info) && !project.isSourceOfProjectReferenceRedirect(info.path); -} -function updateProjectIfDirty(project) { - project.invalidateResolutionsOfFailedLookupLocations(); - return project.dirty && project.updateGraph(); -} -function setProjectOptionsUsed(project) { - if (isConfiguredProject(project)) { - project.projectOptions = true; - } -} -function createProjectNameFactoryWithCounter(nameFactory) { - var nextId = 1; - return function () { return nameFactory(nextId++); }; -} -var _ProjectService = /** @class */ (function () { - function _ProjectService(opts) { - var _this = this; - /** - * Container of all known scripts - * - * @internal - */ - this.filenameToScriptInfo = /* @__PURE__ */ new Map(); - this.nodeModulesWatchers = /* @__PURE__ */ new Map(); - /** - * Contains all the deleted script info's version information so that - * it does not reset when creating script info again - * (and could have potentially collided with version where contents mismatch) - */ - this.filenameToScriptInfoVersion = /* @__PURE__ */ new Map(); - // Set of all '.js' files ever opened. - this.allJsFilesForOpenFileTelemetry = /* @__PURE__ */ new Map(); - /** - * maps external project file name to list of config files that were the part of this project - */ - this.externalProjectToConfiguredProjectMap = /* @__PURE__ */ new Map(); - /** - * external projects (configuration and list of root files is not controlled by tsserver) - */ - this.externalProjects = []; - /** - * projects built from openFileRoots - */ - this.inferredProjects = []; - /** - * projects specified by a tsconfig.json file - */ - this.configuredProjects = /* @__PURE__ */ new Map(); - /** @internal */ - this.newInferredProjectName = createProjectNameFactoryWithCounter(makeInferredProjectName); - /** @internal */ - this.newAutoImportProviderProjectName = createProjectNameFactoryWithCounter(makeAutoImportProviderProjectName); - /** @internal */ - this.newAuxiliaryProjectName = createProjectNameFactoryWithCounter(makeAuxiliaryProjectName); - /** - * Open files: with value being project root path, and key being Path of the file that is open - */ - this.openFiles = /* @__PURE__ */ new Map(); - /** @internal */ - this.configFileForOpenFiles = /* @__PURE__ */ new Map(); - /** - * Map of open files that are opened without complete path but have projectRoot as current directory - */ - this.openFilesWithNonRootedDiskPath = /* @__PURE__ */ new Map(); - this.compilerOptionsForInferredProjectsPerProjectRoot = /* @__PURE__ */ new Map(); - this.watchOptionsForInferredProjectsPerProjectRoot = /* @__PURE__ */ new Map(); - this.typeAcquisitionForInferredProjectsPerProjectRoot = /* @__PURE__ */ new Map(); - /** - * Project size for configured or external projects - */ - this.projectToSizeMap = /* @__PURE__ */ new Map(); - /** - * This is a map of config file paths existence that doesnt need query to disk - * - The entry can be present because there is inferred project that needs to watch addition of config file to directory - * In this case the exists could be true/false based on config file is present or not - * - Or it is present if we have configured project open with config file at that location - * In this case the exists property is always true - * - * - * @internal - */ - this.configFileExistenceInfoCache = /* @__PURE__ */ new Map(); - this.safelist = defaultTypeSafeList; - this.legacySafelist = /* @__PURE__ */ new Map(); - this.pendingProjectUpdates = /* @__PURE__ */ new Map(); - /** @internal */ - this.pendingEnsureProjectForOpenFiles = false; - /** Tracks projects that we have already sent telemetry for. */ - this.seenProjects = /* @__PURE__ */ new Map(); - /** @internal */ - this.sharedExtendedConfigFileWatchers = /* @__PURE__ */ new Map(); - /** @internal */ - this.extendedConfigCache = /* @__PURE__ */ new Map(); - /** @internal */ - this.verifyDocumentRegistry = noop; - var _a; - this.host = opts.host; - this.logger = opts.logger; - this.cancellationToken = opts.cancellationToken; - this.useSingleInferredProject = opts.useSingleInferredProject; - this.useInferredProjectPerProjectRoot = opts.useInferredProjectPerProjectRoot; - this.typingsInstaller = opts.typingsInstaller || nullTypingsInstaller; - this.throttleWaitMilliseconds = opts.throttleWaitMilliseconds; - this.eventHandler = opts.eventHandler; - this.suppressDiagnosticEvents = opts.suppressDiagnosticEvents; - this.globalPlugins = opts.globalPlugins || emptyArray2; - this.pluginProbeLocations = opts.pluginProbeLocations || emptyArray2; - this.allowLocalPluginLoads = !!opts.allowLocalPluginLoads; - this.typesMapLocation = opts.typesMapLocation === void 0 ? combinePaths(getDirectoryPath(this.getExecutingFilePath()), "typesMap.json") : opts.typesMapLocation; - this.session = opts.session; - if (opts.serverMode !== void 0) { - this.serverMode = opts.serverMode; - } - else { - this.serverMode = 0 /* Semantic */; - } - if (this.host.realpath) { - this.realpathToScriptInfos = createMultiMap(); - } - this.currentDirectory = toNormalizedPath(this.host.getCurrentDirectory()); - this.toCanonicalFileName = createGetCanonicalFileName(this.host.useCaseSensitiveFileNames); - this.globalCacheLocationDirectoryPath = this.typingsInstaller.globalTypingsCacheLocation ? ensureTrailingDirectorySeparator(this.toPath(this.typingsInstaller.globalTypingsCacheLocation)) : void 0; - this.throttledOperations = new ThrottledOperations(this.host, this.logger); - if (this.typesMapLocation) { - this.loadTypesMap(); - } - else { - this.logger.info("No types map provided; using the default"); - } - this.typingsInstaller.attach(this); - this.typingsCache = new TypingsCache(this.typingsInstaller); - this.hostConfiguration = { - formatCodeOptions: getDefaultFormatCodeSettings(this.host.newLine), - preferences: emptyOptions, - hostInfo: "Unknown host", - extraFileExtensions: [] - }; - this.documentRegistry = createDocumentRegistryInternal(this.host.useCaseSensitiveFileNames, this.currentDirectory, this); - var watchLogLevel = this.logger.hasLevel(3 /* verbose */) ? 2 /* Verbose */ : this.logger.loggingEnabled() ? 1 /* TriggerOnly */ : 0 /* None */; - var log = watchLogLevel !== 0 /* None */ ? function (s) { return _this.logger.info(s); } : noop; - this.packageJsonCache = createPackageJsonCache(this); - this.watchFactory = this.serverMode !== 0 /* Semantic */ ? { - watchFile: returnNoopFileWatcher, - watchDirectory: returnNoopFileWatcher - } : getWatchFactory(this.host, watchLogLevel, log, getDetailWatchInfo); - (_a = opts.incrementalVerifier) == null ? void 0 : _a.call(opts, this); - } - _ProjectService.prototype.toPath = function (fileName) { - return toPath(fileName, this.currentDirectory, this.toCanonicalFileName); - }; - /** @internal */ - _ProjectService.prototype.getExecutingFilePath = function () { - return this.getNormalizedAbsolutePath(this.host.getExecutingFilePath()); - }; - /** @internal */ - _ProjectService.prototype.getNormalizedAbsolutePath = function (fileName) { - return getNormalizedAbsolutePath(fileName, this.host.getCurrentDirectory()); - }; - /** @internal */ - _ProjectService.prototype.setDocument = function (key, path, sourceFile) { - var info = Debug.checkDefined(this.getScriptInfoForPath(path)); - info.cacheSourceFile = { key: key, sourceFile: sourceFile }; - }; - /** @internal */ - _ProjectService.prototype.getDocument = function (key, path) { - var info = this.getScriptInfoForPath(path); - return info && info.cacheSourceFile && info.cacheSourceFile.key === key ? info.cacheSourceFile.sourceFile : void 0; - }; - /** @internal */ - _ProjectService.prototype.ensureInferredProjectsUpToDate_TestOnly = function () { - this.ensureProjectStructuresUptoDate(); - }; - /** @internal */ - _ProjectService.prototype.getCompilerOptionsForInferredProjects = function () { - return this.compilerOptionsForInferredProjects; - }; - /** @internal */ - _ProjectService.prototype.onUpdateLanguageServiceStateForProject = function (project, languageServiceEnabled) { - if (!this.eventHandler) { - return; - } - var event = { - eventName: ProjectLanguageServiceStateEvent, - data: { project: project, languageServiceEnabled: languageServiceEnabled } - }; - this.eventHandler(event); - }; - _ProjectService.prototype.loadTypesMap = function () { - var e_921, _t; - try { - var fileContent = this.host.readFile(this.typesMapLocation); - if (fileContent === void 0) { - this.logger.info("Provided types map file \"".concat(this.typesMapLocation, "\" doesn't exist")); - return; - } - var raw = JSON.parse(fileContent); - try { - for (var _u = __values(Object.keys(raw.typesMap)), _v = _u.next(); !_v.done; _v = _u.next()) { - var k = _v.value; - raw.typesMap[k].match = new RegExp(raw.typesMap[k].match, "i"); - } - } - catch (e_921_1) { e_921 = { error: e_921_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_921) throw e_921.error; } - } - this.safelist = raw.typesMap; - for (var key in raw.simpleMap) { - if (hasProperty(raw.simpleMap, key)) { - this.legacySafelist.set(key, raw.simpleMap[key].toLowerCase()); - } - } - } - catch (e) { - this.logger.info("Error loading types map: ".concat(e)); - this.safelist = defaultTypeSafeList; - this.legacySafelist.clear(); - } - }; - // eslint-disable-line @typescript-eslint/unified-signatures - _ProjectService.prototype.updateTypingsForProject = function (response) { - var project = this.findProject(response.projectName); - if (!project) { - return; - } - switch (response.kind) { - case ActionSet: - project.updateTypingFiles(this.typingsCache.updateTypingsForProject(response.projectName, response.compilerOptions, response.typeAcquisition, response.unresolvedImports, response.typings)); - return; - case ActionInvalidate: - this.typingsCache.enqueueInstallTypingsForProject(project, project.lastCachedUnresolvedImportsList, - /*forceRefresh*/ - true); - return; - } - }; - /** @internal */ - _ProjectService.prototype.watchTypingLocations = function (response) { - var _a; - (_a = this.findProject(response.projectName)) == null ? void 0 : _a.watchTypingLocations(response.files); - }; - /** @internal */ - _ProjectService.prototype.delayEnsureProjectForOpenFiles = function () { - var _this = this; - if (!this.openFiles.size) - return; - this.pendingEnsureProjectForOpenFiles = true; - this.throttledOperations.schedule(ensureProjectForOpenFileSchedule, - /*delay*/ - 2500, function () { - if (_this.pendingProjectUpdates.size !== 0) { - _this.delayEnsureProjectForOpenFiles(); - } - else { - if (_this.pendingEnsureProjectForOpenFiles) { - _this.ensureProjectForOpenFiles(); - _this.sendProjectsUpdatedInBackgroundEvent(); - } - } - }); - }; - _ProjectService.prototype.delayUpdateProjectGraph = function (project) { - var _this = this; - project.markAsDirty(); - if (project.projectKind !== 3 /* AutoImportProvider */ && project.projectKind !== 4 /* Auxiliary */) { - var projectName_1 = project.getProjectName(); - this.pendingProjectUpdates.set(projectName_1, project); - this.throttledOperations.schedule(projectName_1, - /*delay*/ - 250, function () { - if (_this.pendingProjectUpdates.delete(projectName_1)) { - updateProjectIfDirty(project); - } - }); - } - }; - /** @internal */ - _ProjectService.prototype.hasPendingProjectUpdate = function (project) { - return this.pendingProjectUpdates.has(project.getProjectName()); - }; - /** @internal */ - _ProjectService.prototype.sendProjectsUpdatedInBackgroundEvent = function () { - var _this = this; - if (!this.eventHandler) { - return; - } - var event = { - eventName: ProjectsUpdatedInBackgroundEvent, - data: { - openFiles: arrayFrom(this.openFiles.keys(), function (path) { return _this.getScriptInfoForPath(path).fileName; }) - } - }; - this.eventHandler(event); - }; - /** @internal */ - _ProjectService.prototype.sendLargeFileReferencedEvent = function (file, fileSize) { - if (!this.eventHandler) { - return; - } - var event = { - eventName: LargeFileReferencedEvent, - data: { file: file, fileSize: fileSize, maxFileSize: maxFileSize } - }; - this.eventHandler(event); - }; - /** @internal */ - _ProjectService.prototype.sendProjectLoadingStartEvent = function (project, reason) { - if (!this.eventHandler) { - return; - } - project.sendLoadingProjectFinish = true; - var event = { - eventName: ProjectLoadingStartEvent, - data: { project: project, reason: reason } - }; - this.eventHandler(event); - }; - /** @internal */ - _ProjectService.prototype.sendProjectLoadingFinishEvent = function (project) { - if (!this.eventHandler || !project.sendLoadingProjectFinish) { - return; - } - project.sendLoadingProjectFinish = false; - var event = { - eventName: ProjectLoadingFinishEvent, - data: { project: project } - }; - this.eventHandler(event); - }; - /** @internal */ - _ProjectService.prototype.sendPerformanceEvent = function (kind, durationMs) { - if (this.performanceEventHandler) { - this.performanceEventHandler({ kind: kind, durationMs: durationMs }); - } - }; - /** @internal */ - _ProjectService.prototype.delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles = function (project) { - this.delayUpdateProjectGraph(project); - this.delayEnsureProjectForOpenFiles(); - }; - _ProjectService.prototype.delayUpdateProjectGraphs = function (projects, clearSourceMapperCache) { - var e_922, _t; - if (projects.length) { - try { - for (var projects_2 = __values(projects), projects_2_1 = projects_2.next(); !projects_2_1.done; projects_2_1 = projects_2.next()) { - var project = projects_2_1.value; - if (clearSourceMapperCache) - project.clearSourceMapperCache(); - this.delayUpdateProjectGraph(project); - } - } - catch (e_922_1) { e_922 = { error: e_922_1 }; } - finally { - try { - if (projects_2_1 && !projects_2_1.done && (_t = projects_2.return)) _t.call(projects_2); - } - finally { if (e_922) throw e_922.error; } - } - this.delayEnsureProjectForOpenFiles(); - } - }; - _ProjectService.prototype.setCompilerOptionsForInferredProjects = function (projectCompilerOptions, projectRootPath) { - var e_923, _t; - Debug.assert(projectRootPath === void 0 || this.useInferredProjectPerProjectRoot, "Setting compiler options per project root path is only supported when useInferredProjectPerProjectRoot is enabled"); - var compilerOptions = convertCompilerOptions(projectCompilerOptions); - var watchOptions = convertWatchOptions(projectCompilerOptions, projectRootPath); - var typeAcquisition = convertTypeAcquisition(projectCompilerOptions); - compilerOptions.allowNonTsExtensions = true; - var canonicalProjectRootPath = projectRootPath && this.toCanonicalFileName(projectRootPath); - if (canonicalProjectRootPath) { - this.compilerOptionsForInferredProjectsPerProjectRoot.set(canonicalProjectRootPath, compilerOptions); - this.watchOptionsForInferredProjectsPerProjectRoot.set(canonicalProjectRootPath, watchOptions || false); - this.typeAcquisitionForInferredProjectsPerProjectRoot.set(canonicalProjectRootPath, typeAcquisition); - } - else { - this.compilerOptionsForInferredProjects = compilerOptions; - this.watchOptionsForInferredProjects = watchOptions; - this.typeAcquisitionForInferredProjects = typeAcquisition; - } - try { - for (var _u = __values(this.inferredProjects), _v = _u.next(); !_v.done; _v = _u.next()) { - var project = _v.value; - if (canonicalProjectRootPath ? project.projectRootPath === canonicalProjectRootPath : !project.projectRootPath || !this.compilerOptionsForInferredProjectsPerProjectRoot.has(project.projectRootPath)) { - project.setCompilerOptions(compilerOptions); - project.setTypeAcquisition(typeAcquisition); - project.setWatchOptions(watchOptions == null ? void 0 : watchOptions.watchOptions); - project.setProjectErrors(watchOptions == null ? void 0 : watchOptions.errors); - project.compileOnSaveEnabled = compilerOptions.compileOnSave; - project.markAsDirty(); - this.delayUpdateProjectGraph(project); - } - } - } - catch (e_923_1) { e_923 = { error: e_923_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_923) throw e_923.error; } - } - this.delayEnsureProjectForOpenFiles(); - }; - _ProjectService.prototype.findProject = function (projectName) { - if (projectName === void 0) { - return void 0; - } - if (isInferredProjectName(projectName)) { - return findProjectByName(projectName, this.inferredProjects); - } - return this.findExternalProjectByProjectName(projectName) || this.findConfiguredProjectByProjectName(toNormalizedPath(projectName)); - }; - /** @internal */ - _ProjectService.prototype.forEachProject = function (cb) { - this.externalProjects.forEach(cb); - this.configuredProjects.forEach(cb); - this.inferredProjects.forEach(cb); - }; - /** @internal */ - _ProjectService.prototype.forEachEnabledProject = function (cb) { - this.forEachProject(function (project) { - if (!project.isOrphan() && project.languageServiceEnabled) { - cb(project); - } - }); - }; - _ProjectService.prototype.getDefaultProjectForFile = function (fileName, ensureProject) { - return ensureProject ? this.ensureDefaultProjectForFile(fileName) : this.tryGetDefaultProjectForFile(fileName); - }; - /** @internal */ - _ProjectService.prototype.tryGetDefaultProjectForFile = function (fileNameOrScriptInfo) { - var scriptInfo = isString(fileNameOrScriptInfo) ? this.getScriptInfoForNormalizedPath(fileNameOrScriptInfo) : fileNameOrScriptInfo; - return scriptInfo && !scriptInfo.isOrphan() ? scriptInfo.getDefaultProject() : void 0; - }; - /** @internal */ - _ProjectService.prototype.ensureDefaultProjectForFile = function (fileNameOrScriptInfo) { - return this.tryGetDefaultProjectForFile(fileNameOrScriptInfo) || this.doEnsureDefaultProjectForFile(fileNameOrScriptInfo); - }; - _ProjectService.prototype.doEnsureDefaultProjectForFile = function (fileNameOrScriptInfo) { - this.ensureProjectStructuresUptoDate(); - var scriptInfo = isString(fileNameOrScriptInfo) ? this.getScriptInfoForNormalizedPath(fileNameOrScriptInfo) : fileNameOrScriptInfo; - return scriptInfo ? scriptInfo.getDefaultProject() : (this.logErrorForScriptInfoNotFound(isString(fileNameOrScriptInfo) ? fileNameOrScriptInfo : fileNameOrScriptInfo.fileName), Errors.ThrowNoProject()); - }; - _ProjectService.prototype.getScriptInfoEnsuringProjectsUptoDate = function (uncheckedFileName) { - this.ensureProjectStructuresUptoDate(); - return this.getScriptInfo(uncheckedFileName); - }; - /** - * Ensures the project structures are upto date - * This means, - * - we go through all the projects and update them if they are dirty - * - if updates reflect some change in structure or there was pending request to ensure projects for open files - * ensure that each open script info has project - */ - _ProjectService.prototype.ensureProjectStructuresUptoDate = function () { - var hasChanges = this.pendingEnsureProjectForOpenFiles; - this.pendingProjectUpdates.clear(); - var updateGraph = function (project) { - hasChanges = updateProjectIfDirty(project) || hasChanges; - }; - this.externalProjects.forEach(updateGraph); - this.configuredProjects.forEach(updateGraph); - this.inferredProjects.forEach(updateGraph); - if (hasChanges) { - this.ensureProjectForOpenFiles(); - } - }; - _ProjectService.prototype.getFormatCodeOptions = function (file) { - var info = this.getScriptInfoForNormalizedPath(file); - return info && info.getFormatCodeSettings() || this.hostConfiguration.formatCodeOptions; - }; - _ProjectService.prototype.getPreferences = function (file) { - var info = this.getScriptInfoForNormalizedPath(file); - return __assign(__assign({}, this.hostConfiguration.preferences), info && info.getPreferences()); - }; - _ProjectService.prototype.getHostFormatCodeOptions = function () { - return this.hostConfiguration.formatCodeOptions; - }; - _ProjectService.prototype.getHostPreferences = function () { - return this.hostConfiguration.preferences; - }; - _ProjectService.prototype.onSourceFileChanged = function (info, eventKind) { - if (eventKind === 2 /* Deleted */) { - this.handleDeletedFile(info); - } - else if (!info.isScriptOpen()) { - info.delayReloadNonMixedContentFile(); - this.delayUpdateProjectGraphs(info.containingProjects, - /*clearSourceMapperCache*/ - false); - this.handleSourceMapProjects(info); - } - }; - _ProjectService.prototype.handleSourceMapProjects = function (info) { - if (info.sourceMapFilePath) { - if (isString(info.sourceMapFilePath)) { - var sourceMapFileInfo = this.getScriptInfoForPath(info.sourceMapFilePath); - this.delayUpdateSourceInfoProjects(sourceMapFileInfo && sourceMapFileInfo.sourceInfos); - } - else { - this.delayUpdateSourceInfoProjects(info.sourceMapFilePath.sourceInfos); - } - } - this.delayUpdateSourceInfoProjects(info.sourceInfos); - if (info.declarationInfoPath) { - this.delayUpdateProjectsOfScriptInfoPath(info.declarationInfoPath); - } - }; - _ProjectService.prototype.delayUpdateSourceInfoProjects = function (sourceInfos) { - var _this = this; - if (sourceInfos) { - sourceInfos.forEach(function (_value, path) { return _this.delayUpdateProjectsOfScriptInfoPath(path); }); - } - }; - _ProjectService.prototype.delayUpdateProjectsOfScriptInfoPath = function (path) { - var info = this.getScriptInfoForPath(path); - if (info) { - this.delayUpdateProjectGraphs(info.containingProjects, - /*clearSourceMapperCache*/ - true); - } - }; - _ProjectService.prototype.handleDeletedFile = function (info) { - this.stopWatchingScriptInfo(info); - if (!info.isScriptOpen()) { - this.deleteScriptInfo(info); - var containingProjects = info.containingProjects.slice(); - info.detachAllProjects(); - this.delayUpdateProjectGraphs(containingProjects, - /*clearSourceMapperCache*/ - false); - this.handleSourceMapProjects(info); - info.closeSourceMapFileWatcher(); - if (info.declarationInfoPath) { - var declarationInfo = this.getScriptInfoForPath(info.declarationInfoPath); - if (declarationInfo) { - declarationInfo.sourceMapFilePath = void 0; - } - } - } - }; - /** - * This is to watch whenever files are added or removed to the wildcard directories - * - * @internal - */ - _ProjectService.prototype.watchWildcardDirectory = function (directory, flags, configFileName, config) { - var _this = this; - return this.watchFactory.watchDirectory(directory, function (fileOrDirectory) { - var fileOrDirectoryPath = _this.toPath(fileOrDirectory); - var fsResult = config.cachedDirectoryStructureHost.addOrDeleteFileOrDirectory(fileOrDirectory, fileOrDirectoryPath); - if (getBaseFileName(fileOrDirectoryPath) === "package.json" && !isInsideNodeModules(fileOrDirectoryPath) && (fsResult && fsResult.fileExists || !fsResult && _this.host.fileExists(fileOrDirectoryPath))) { - _this.logger.info("Config: ".concat(configFileName, " Detected new package.json: ").concat(fileOrDirectory)); - _this.onAddPackageJson(fileOrDirectoryPath); - } - var configuredProjectForConfig = _this.findConfiguredProjectByProjectName(configFileName); - if (isIgnoredFileFromWildCardWatching({ - watchedDirPath: directory, - fileOrDirectory: fileOrDirectory, - fileOrDirectoryPath: fileOrDirectoryPath, - configFileName: configFileName, - extraFileExtensions: _this.hostConfiguration.extraFileExtensions, - currentDirectory: _this.currentDirectory, - options: config.parsedCommandLine.options, - program: (configuredProjectForConfig == null ? void 0 : configuredProjectForConfig.getCurrentProgram()) || config.parsedCommandLine.fileNames, - useCaseSensitiveFileNames: _this.host.useCaseSensitiveFileNames, - writeLog: function (s) { return _this.logger.info(s); }, - toPath: function (s) { return _this.toPath(s); } - })) - return; - if (config.reloadLevel !== 2 /* Full */) - config.reloadLevel = 1 /* Partial */; - config.projects.forEach(function (watchWildcardDirectories, projectCanonicalPath) { - if (!watchWildcardDirectories) - return; - var project = _this.getConfiguredProjectByCanonicalConfigFilePath(projectCanonicalPath); - if (!project) - return; - var reloadLevel = configuredProjectForConfig === project ? 1 /* Partial */ : 0 /* None */; - if (project.pendingReload !== void 0 && project.pendingReload > reloadLevel) - return; - if (_this.openFiles.has(fileOrDirectoryPath)) { - var info = Debug.checkDefined(_this.getScriptInfoForPath(fileOrDirectoryPath)); - if (info.isAttached(project)) { - var loadLevelToSet = Math.max(reloadLevel, project.openFileWatchTriggered.get(fileOrDirectoryPath) || 0 /* None */); - project.openFileWatchTriggered.set(fileOrDirectoryPath, loadLevelToSet); - } - else { - project.pendingReload = reloadLevel; - _this.delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles(project); - } - } - else { - project.pendingReload = reloadLevel; - _this.delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles(project); - } - }); - }, flags, this.getWatchOptionsFromProjectWatchOptions(config.parsedCommandLine.watchOptions), WatchType.WildcardDirectory, configFileName); - }; - /** @internal */ - _ProjectService.prototype.delayUpdateProjectsFromParsedConfigOnConfigFileChange = function (canonicalConfigFilePath, reloadReason) { - var _this = this; - var configFileExistenceInfo = this.configFileExistenceInfoCache.get(canonicalConfigFilePath); - if (!(configFileExistenceInfo == null ? void 0 : configFileExistenceInfo.config)) - return false; - var scheduledAnyProjectUpdate = false; - configFileExistenceInfo.config.reloadLevel = 2 /* Full */; - configFileExistenceInfo.config.projects.forEach(function (_watchWildcardDirectories, projectCanonicalPath) { - var project = _this.getConfiguredProjectByCanonicalConfigFilePath(projectCanonicalPath); - if (!project) - return; - scheduledAnyProjectUpdate = true; - if (projectCanonicalPath === canonicalConfigFilePath) { - if (project.isInitialLoadPending()) - return; - project.pendingReload = 2 /* Full */; - project.pendingReloadReason = reloadReason; - _this.delayUpdateProjectGraph(project); - } - else { - project.resolutionCache.removeResolutionsFromProjectReferenceRedirects(_this.toPath(canonicalConfigFilePath)); - _this.delayUpdateProjectGraph(project); - } - }); - return scheduledAnyProjectUpdate; - }; - /** @internal */ - _ProjectService.prototype.onConfigFileChanged = function (canonicalConfigFilePath, eventKind) { - var _a; - var configFileExistenceInfo = this.configFileExistenceInfoCache.get(canonicalConfigFilePath); - if (eventKind === 2 /* Deleted */) { - configFileExistenceInfo.exists = false; - var project = ((_a = configFileExistenceInfo.config) == null ? void 0 : _a.projects.has(canonicalConfigFilePath)) ? this.getConfiguredProjectByCanonicalConfigFilePath(canonicalConfigFilePath) : void 0; - if (project) - this.removeProject(project); - } - else { - configFileExistenceInfo.exists = true; - } - this.delayUpdateProjectsFromParsedConfigOnConfigFileChange(canonicalConfigFilePath, "Change in config file detected"); - this.reloadConfiguredProjectForFiles(configFileExistenceInfo.openFilesImpactedByConfigFile, - /*clearSemanticCache*/ - false, - /*delayReload*/ - true, eventKind !== 2 /* Deleted */ ? identity : ( - // Reload open files if they are root of inferred project - returnTrue), - // Reload all the open files impacted by config file - "Change in config file detected"); - this.delayEnsureProjectForOpenFiles(); - }; - _ProjectService.prototype.removeProject = function (project) { - var _this = this; - this.logger.info("`remove Project::"); - project.print( - /*writeProjectFileNames*/ - true, - /*writeFileExplaination*/ - true, - /*writeFileVersionAndText*/ - false); - project.close(); - if (Debug.shouldAssert(1 /* Normal */)) { - this.filenameToScriptInfo.forEach(function (info) { return Debug.assert(!info.isAttached(project), "Found script Info still attached to project", function () { return "".concat(project.projectName, ": ScriptInfos still attached: ").concat(JSON.stringify(arrayFrom(mapDefinedIterator(_this.filenameToScriptInfo.values(), function (info2) { return info2.isAttached(project) ? { - fileName: info2.fileName, - projects: info2.containingProjects.map(function (p) { return p.projectName; }), - hasMixedContent: info2.hasMixedContent - } : void 0; })), - /*replacer*/ - void 0, " ")); }); }); - } - this.pendingProjectUpdates.delete(project.getProjectName()); - switch (project.projectKind) { - case 2 /* External */: - unorderedRemoveItem(this.externalProjects, project); - this.projectToSizeMap.delete(project.getProjectName()); - break; - case 1 /* Configured */: - this.configuredProjects.delete(project.canonicalConfigFilePath); - this.projectToSizeMap.delete(project.canonicalConfigFilePath); - break; - case 0 /* Inferred */: - unorderedRemoveItem(this.inferredProjects, project); - break; - } - }; - /** @internal */ - _ProjectService.prototype.assignOrphanScriptInfoToInferredProject = function (info, projectRootPath) { - var e_924, _t; - Debug.assert(info.isOrphan()); - var project = this.getOrCreateInferredProjectForProjectRootPathIfEnabled(info, projectRootPath) || this.getOrCreateSingleInferredProjectIfEnabled() || this.getOrCreateSingleInferredWithoutProjectRoot(info.isDynamic ? projectRootPath || this.currentDirectory : getDirectoryPath(isRootedDiskPath(info.fileName) ? info.fileName : getNormalizedAbsolutePath(info.fileName, projectRootPath ? this.getNormalizedAbsolutePath(projectRootPath) : this.currentDirectory))); - project.addRoot(info); - if (info.containingProjects[0] !== project) { - info.detachFromProject(project); - info.containingProjects.unshift(project); - } - project.updateGraph(); - if (!this.useSingleInferredProject && !project.projectRootPath) { - var _loop_65 = function (inferredProject) { - if (inferredProject === project || inferredProject.isOrphan()) { - return "continue"; - } - var roots = inferredProject.getRootScriptInfos(); - Debug.assert(roots.length === 1 || !!inferredProject.projectRootPath); - if (roots.length === 1 && forEach(roots[0].containingProjects, function (p) { return p !== roots[0].containingProjects[0] && !p.isOrphan(); })) { - inferredProject.removeFile(roots[0], - /*fileExists*/ - true, - /*detachFromProject*/ - true); - } - }; - try { - for (var _u = __values(this.inferredProjects), _v = _u.next(); !_v.done; _v = _u.next()) { - var inferredProject = _v.value; - _loop_65(inferredProject); - } - } - catch (e_924_1) { e_924 = { error: e_924_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_924) throw e_924.error; } - } - } - return project; - }; - _ProjectService.prototype.assignOrphanScriptInfosToInferredProject = function () { - var _this = this; - this.openFiles.forEach(function (projectRootPath, path) { - var info = _this.getScriptInfoForPath(path); - if (info.isOrphan()) { - _this.assignOrphanScriptInfoToInferredProject(info, projectRootPath); - } - }); - }; - /** - * Remove this file from the set of open, non-configured files. - * @param info The file that has been closed or newly configured - */ - _ProjectService.prototype.closeOpenFile = function (info, skipAssignOrphanScriptInfosToInferredProject) { - var e_925, _t; - var fileExists = info.isDynamic ? false : this.host.fileExists(info.fileName); - info.close(fileExists); - this.stopWatchingConfigFilesForClosedScriptInfo(info); - var canonicalFileName = this.toCanonicalFileName(info.fileName); - if (this.openFilesWithNonRootedDiskPath.get(canonicalFileName) === info) { - this.openFilesWithNonRootedDiskPath.delete(canonicalFileName); - } - var ensureProjectsForOpenFiles = false; - try { - for (var _u = __values(info.containingProjects), _v = _u.next(); !_v.done; _v = _u.next()) { - var p = _v.value; - if (isConfiguredProject(p)) { - if (info.hasMixedContent) { - info.registerFileUpdate(); - } - var reloadLevel = p.openFileWatchTriggered.get(info.path); - if (reloadLevel !== void 0) { - p.openFileWatchTriggered.delete(info.path); - if (p.pendingReload !== void 0 && p.pendingReload < reloadLevel) { - p.pendingReload = reloadLevel; - p.markFileAsDirty(info.path); - } - } - } - else if (isInferredProject(p) && p.isRoot(info)) { - if (p.isProjectWithSingleRoot()) { - ensureProjectsForOpenFiles = true; - } - p.removeFile(info, fileExists, - /*detachFromProject*/ - true); - } - if (!p.languageServiceEnabled) { - p.markAsDirty(); - } - } - } - catch (e_925_1) { e_925 = { error: e_925_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_925) throw e_925.error; } - } - this.openFiles.delete(info.path); - this.configFileForOpenFiles.delete(info.path); - if (!skipAssignOrphanScriptInfosToInferredProject && ensureProjectsForOpenFiles) { - this.assignOrphanScriptInfosToInferredProject(); - } - if (fileExists) { - this.watchClosedScriptInfo(info); - } - else { - this.handleDeletedFile(info); - } - return ensureProjectsForOpenFiles; - }; - _ProjectService.prototype.deleteScriptInfo = function (info) { - this.filenameToScriptInfo.delete(info.path); - this.filenameToScriptInfoVersion.set(info.path, info.textStorage.version); - var realpath = info.getRealpathIfDifferent(); - if (realpath) { - this.realpathToScriptInfos.remove(realpath, info); - } - }; - _ProjectService.prototype.configFileExists = function (configFileName, canonicalConfigFilePath, info) { - var _a; - var configFileExistenceInfo = this.configFileExistenceInfoCache.get(canonicalConfigFilePath); - if (configFileExistenceInfo) { - if (isOpenScriptInfo(info) && !((_a = configFileExistenceInfo.openFilesImpactedByConfigFile) == null ? void 0 : _a.has(info.path))) { - (configFileExistenceInfo.openFilesImpactedByConfigFile || (configFileExistenceInfo.openFilesImpactedByConfigFile = /* @__PURE__ */ new Map())).set(info.path, false); - } - return configFileExistenceInfo.exists; - } - var exists = this.host.fileExists(configFileName); - var openFilesImpactedByConfigFile; - if (isOpenScriptInfo(info)) { - (openFilesImpactedByConfigFile || (openFilesImpactedByConfigFile = /* @__PURE__ */ new Map())).set(info.path, false); - } - configFileExistenceInfo = { exists: exists, openFilesImpactedByConfigFile: openFilesImpactedByConfigFile }; - this.configFileExistenceInfoCache.set(canonicalConfigFilePath, configFileExistenceInfo); - return exists; - }; - /** @internal */ - _ProjectService.prototype.createConfigFileWatcherForParsedConfig = function (configFileName, canonicalConfigFilePath, forProject) { - var _this = this; - var _a, _b; - var configFileExistenceInfo = this.configFileExistenceInfoCache.get(canonicalConfigFilePath); - if (!configFileExistenceInfo.watcher || configFileExistenceInfo.watcher === noopConfigFileWatcher) { - configFileExistenceInfo.watcher = this.watchFactory.watchFile(configFileName, function (_fileName, eventKind) { return _this.onConfigFileChanged(canonicalConfigFilePath, eventKind); }, 2e3 /* High */, this.getWatchOptionsFromProjectWatchOptions((_b = (_a = configFileExistenceInfo == null ? void 0 : configFileExistenceInfo.config) == null ? void 0 : _a.parsedCommandLine) == null ? void 0 : _b.watchOptions), WatchType.ConfigFile, forProject); - } - var projects = configFileExistenceInfo.config.projects; - projects.set(forProject.canonicalConfigFilePath, projects.get(forProject.canonicalConfigFilePath) || false); - }; - /** - * Returns true if the configFileExistenceInfo is needed/impacted by open files that are root of inferred project - */ - _ProjectService.prototype.configFileExistenceImpactsRootOfInferredProject = function (configFileExistenceInfo) { - return configFileExistenceInfo.openFilesImpactedByConfigFile && forEachEntry(configFileExistenceInfo.openFilesImpactedByConfigFile, identity); - }; - /** @internal */ - _ProjectService.prototype.releaseParsedConfig = function (canonicalConfigFilePath, forProject) { - var _a, _b, _c; - var configFileExistenceInfo = this.configFileExistenceInfoCache.get(canonicalConfigFilePath); - if (!((_a = configFileExistenceInfo.config) == null ? void 0 : _a.projects.delete(forProject.canonicalConfigFilePath))) - return; - if ((_b = configFileExistenceInfo.config) == null ? void 0 : _b.projects.size) - return; - configFileExistenceInfo.config = void 0; - clearSharedExtendedConfigFileWatcher(canonicalConfigFilePath, this.sharedExtendedConfigFileWatchers); - Debug.checkDefined(configFileExistenceInfo.watcher); - if ((_c = configFileExistenceInfo.openFilesImpactedByConfigFile) == null ? void 0 : _c.size) { - if (this.configFileExistenceImpactsRootOfInferredProject(configFileExistenceInfo)) { - if (!canWatchDirectoryOrFile(getPathComponents(getDirectoryPath(canonicalConfigFilePath)))) { - configFileExistenceInfo.watcher.close(); - configFileExistenceInfo.watcher = noopConfigFileWatcher; - } - } - else { - configFileExistenceInfo.watcher.close(); - configFileExistenceInfo.watcher = void 0; - } - } - else { - configFileExistenceInfo.watcher.close(); - this.configFileExistenceInfoCache.delete(canonicalConfigFilePath); - } - }; - /** - * Close the config file watcher in the cached ConfigFileExistenceInfo - * if there arent any open files that are root of inferred project and there is no parsed config held by any project - * - * @internal - */ - _ProjectService.prototype.closeConfigFileWatcherOnReleaseOfOpenFile = function (configFileExistenceInfo) { - if (configFileExistenceInfo.watcher && !configFileExistenceInfo.config && !this.configFileExistenceImpactsRootOfInferredProject(configFileExistenceInfo)) { - configFileExistenceInfo.watcher.close(); - configFileExistenceInfo.watcher = void 0; - } - }; - /** - * This is called on file close, so that we stop watching the config file for this script info - */ - _ProjectService.prototype.stopWatchingConfigFilesForClosedScriptInfo = function (info) { - var _this = this; - Debug.assert(!info.isScriptOpen()); - this.forEachConfigFileLocation(info, function (canonicalConfigFilePath) { - var _a, _b, _c; - var configFileExistenceInfo = _this.configFileExistenceInfoCache.get(canonicalConfigFilePath); - if (configFileExistenceInfo) { - var infoIsRootOfInferredProject = (_a = configFileExistenceInfo.openFilesImpactedByConfigFile) == null ? void 0 : _a.get(info.path); - (_b = configFileExistenceInfo.openFilesImpactedByConfigFile) == null ? void 0 : _b.delete(info.path); - if (infoIsRootOfInferredProject) { - _this.closeConfigFileWatcherOnReleaseOfOpenFile(configFileExistenceInfo); - } - if (!((_c = configFileExistenceInfo.openFilesImpactedByConfigFile) == null ? void 0 : _c.size) && !configFileExistenceInfo.config) { - Debug.assert(!configFileExistenceInfo.watcher); - _this.configFileExistenceInfoCache.delete(canonicalConfigFilePath); - } - } - }); - }; - /** - * This is called by inferred project whenever script info is added as a root - * - * @internal - */ - _ProjectService.prototype.startWatchingConfigFilesForInferredProjectRoot = function (info) { - var _this = this; - Debug.assert(info.isScriptOpen()); - this.forEachConfigFileLocation(info, function (canonicalConfigFilePath, configFileName) { - var configFileExistenceInfo = _this.configFileExistenceInfoCache.get(canonicalConfigFilePath); - if (!configFileExistenceInfo) { - configFileExistenceInfo = { exists: _this.host.fileExists(configFileName) }; - _this.configFileExistenceInfoCache.set(canonicalConfigFilePath, configFileExistenceInfo); - } - (configFileExistenceInfo.openFilesImpactedByConfigFile || (configFileExistenceInfo.openFilesImpactedByConfigFile = /* @__PURE__ */ new Map())).set(info.path, true); - configFileExistenceInfo.watcher || (configFileExistenceInfo.watcher = canWatchDirectoryOrFile(getPathComponents(getDirectoryPath(canonicalConfigFilePath))) ? _this.watchFactory.watchFile(configFileName, function (_filename, eventKind) { return _this.onConfigFileChanged(canonicalConfigFilePath, eventKind); }, 2e3 /* High */, _this.hostConfiguration.watchOptions, WatchType.ConfigFileForInferredRoot) : noopConfigFileWatcher); - }); - }; - /** - * This is called by inferred project whenever root script info is removed from it - * - * @internal - */ - _ProjectService.prototype.stopWatchingConfigFilesForInferredProjectRoot = function (info) { - var _this = this; - this.forEachConfigFileLocation(info, function (canonicalConfigFilePath) { - var _a; - var configFileExistenceInfo = _this.configFileExistenceInfoCache.get(canonicalConfigFilePath); - if ((_a = configFileExistenceInfo == null ? void 0 : configFileExistenceInfo.openFilesImpactedByConfigFile) == null ? void 0 : _a.has(info.path)) { - Debug.assert(info.isScriptOpen()); - configFileExistenceInfo.openFilesImpactedByConfigFile.set(info.path, false); - _this.closeConfigFileWatcherOnReleaseOfOpenFile(configFileExistenceInfo); - } - }); - }; - /** - * This function tries to search for a tsconfig.json for the given file. - * This is different from the method the compiler uses because - * the compiler can assume it will always start searching in the - * current directory (the directory in which tsc was invoked). - * The server must start searching from the directory containing - * the newly opened file. - */ - _ProjectService.prototype.forEachConfigFileLocation = function (info, action) { - var _this = this; - if (this.serverMode !== 0 /* Semantic */) { - return void 0; - } - Debug.assert(!isOpenScriptInfo(info) || this.openFiles.has(info.path)); - var projectRootPath = this.openFiles.get(info.path); - var scriptInfo = Debug.checkDefined(this.getScriptInfo(info.path)); - if (scriptInfo.isDynamic) - return void 0; - var searchPath = asNormalizedPath(getDirectoryPath(info.fileName)); - var isSearchPathInProjectRoot = function () { return containsPath(projectRootPath, searchPath, _this.currentDirectory, !_this.host.useCaseSensitiveFileNames); }; - var anySearchPathOk = !projectRootPath || !isSearchPathInProjectRoot(); - var searchInDirectory = !isAncestorConfigFileInfo(info); - do { - if (searchInDirectory) { - var canonicalSearchPath = normalizedPathToPath(searchPath, this.currentDirectory, this.toCanonicalFileName); - var tsconfigFileName = asNormalizedPath(combinePaths(searchPath, "tsconfig.json")); - var result = action(combinePaths(canonicalSearchPath, "tsconfig.json"), tsconfigFileName); - if (result) - return tsconfigFileName; - var jsconfigFileName = asNormalizedPath(combinePaths(searchPath, "jsconfig.json")); - result = action(combinePaths(canonicalSearchPath, "jsconfig.json"), jsconfigFileName); - if (result) - return jsconfigFileName; - if (isNodeModulesDirectory(canonicalSearchPath)) { - break; - } - } - var parentPath = asNormalizedPath(getDirectoryPath(searchPath)); - if (parentPath === searchPath) - break; - searchPath = parentPath; - searchInDirectory = true; - } while (anySearchPathOk || isSearchPathInProjectRoot()); - return void 0; - }; - /** @internal */ - _ProjectService.prototype.findDefaultConfiguredProject = function (info) { - if (!info.isScriptOpen()) - return void 0; - var configFileName = this.getConfigFileNameForFile(info); - var project = configFileName && this.findConfiguredProjectByProjectName(configFileName); - return project && projectContainsInfoDirectly(project, info) ? project : project == null ? void 0 : project.getDefaultChildProjectFromProjectWithReferences(info); - }; - /** - * This function tries to search for a tsconfig.json for the given file. - * This is different from the method the compiler uses because - * the compiler can assume it will always start searching in the - * current directory (the directory in which tsc was invoked). - * The server must start searching from the directory containing - * the newly opened file. - * If script info is passed in, it is asserted to be open script info - * otherwise just file name - */ - _ProjectService.prototype.getConfigFileNameForFile = function (info) { - var _this = this; - if (isOpenScriptInfo(info)) { - Debug.assert(info.isScriptOpen()); - var result = this.configFileForOpenFiles.get(info.path); - if (result !== void 0) - return result || void 0; - } - this.logger.info("Search path: ".concat(getDirectoryPath(info.fileName))); - var configFileName = this.forEachConfigFileLocation(info, function (canonicalConfigFilePath, configFileName2) { return _this.configFileExists(configFileName2, canonicalConfigFilePath, info); }); - if (configFileName) { - this.logger.info("For info: ".concat(info.fileName, " :: Config file name: ").concat(configFileName)); - } - else { - this.logger.info("For info: ".concat(info.fileName, " :: No config files found.")); - } - if (isOpenScriptInfo(info)) { - this.configFileForOpenFiles.set(info.path, configFileName || false); - } - return configFileName; - }; - _ProjectService.prototype.printProjects = function () { - var _this = this; - if (!this.logger.hasLevel(1 /* normal */)) { - return; - } - this.logger.startGroup(); - this.externalProjects.forEach(printProjectWithoutFileNames); - this.configuredProjects.forEach(printProjectWithoutFileNames); - this.inferredProjects.forEach(printProjectWithoutFileNames); - this.logger.info("Open files: "); - this.openFiles.forEach(function (projectRootPath, path) { - var info = _this.getScriptInfoForPath(path); - _this.logger.info("\tFileName: ".concat(info.fileName, " ProjectRootPath: ").concat(projectRootPath)); - _this.logger.info("\t\tProjects: ".concat(info.containingProjects.map(function (p) { return p.getProjectName(); }))); - }); - this.logger.endGroup(); - }; - /** @internal */ - _ProjectService.prototype.findConfiguredProjectByProjectName = function (configFileName) { - var canonicalConfigFilePath = asNormalizedPath(this.toCanonicalFileName(configFileName)); - return this.getConfiguredProjectByCanonicalConfigFilePath(canonicalConfigFilePath); - }; - _ProjectService.prototype.getConfiguredProjectByCanonicalConfigFilePath = function (canonicalConfigFilePath) { - return this.configuredProjects.get(canonicalConfigFilePath); - }; - _ProjectService.prototype.findExternalProjectByProjectName = function (projectFileName) { - return findProjectByName(projectFileName, this.externalProjects); - }; - /** Get a filename if the language service exceeds the maximum allowed program size; otherwise returns undefined. */ - _ProjectService.prototype.getFilenameForExceededTotalSizeLimitForNonTsFiles = function (name, options, fileNames, propertyReader) { - var e_926, _t; - var _this = this; - if (options && options.disableSizeLimit || !this.host.getFileSize) { - return; - } - var availableSpace = maxProgramSizeForNonTsFiles; - this.projectToSizeMap.set(name, 0); - this.projectToSizeMap.forEach(function (val) { return availableSpace -= val || 0; }); - var totalNonTsFileSize = 0; - try { - for (var fileNames_1 = __values(fileNames), fileNames_1_1 = fileNames_1.next(); !fileNames_1_1.done; fileNames_1_1 = fileNames_1.next()) { - var f = fileNames_1_1.value; - var fileName = propertyReader.getFileName(f); - if (hasTSFileExtension(fileName)) { - continue; - } - totalNonTsFileSize += this.host.getFileSize(fileName); - if (totalNonTsFileSize > maxProgramSizeForNonTsFiles || totalNonTsFileSize > availableSpace) { - var top5LargestFiles = fileNames.map(function (f2) { return propertyReader.getFileName(f2); }).filter(function (name2) { return !hasTSFileExtension(name2); }).map(function (name2) { return ({ name: name2, size: _this.host.getFileSize(name2) }); }).sort(function (a, b) { return b.size - a.size; }).slice(0, 5); - this.logger.info("Non TS file size exceeded limit (".concat(totalNonTsFileSize, "). Largest files: ").concat(top5LargestFiles.map(function (file) { return "".concat(file.name, ":").concat(file.size); }).join(", "))); - return fileName; - } - } - } - catch (e_926_1) { e_926 = { error: e_926_1 }; } - finally { - try { - if (fileNames_1_1 && !fileNames_1_1.done && (_t = fileNames_1.return)) _t.call(fileNames_1); - } - finally { if (e_926) throw e_926.error; } - } - this.projectToSizeMap.set(name, totalNonTsFileSize); - }; - _ProjectService.prototype.createExternalProject = function (projectFileName, files, options, typeAcquisition, excludedFiles) { - var compilerOptions = convertCompilerOptions(options); - var watchOptionsAndErrors = convertWatchOptions(options, getDirectoryPath(normalizeSlashes(projectFileName))); - var project = new ExternalProject2(projectFileName, this, this.documentRegistry, compilerOptions, - /*lastFileExceededProgramSize*/ - this.getFilenameForExceededTotalSizeLimitForNonTsFiles(projectFileName, compilerOptions, files, externalFilePropertyReader), options.compileOnSave === void 0 ? true : options.compileOnSave, - /*projectFilePath*/ - void 0, watchOptionsAndErrors == null ? void 0 : watchOptionsAndErrors.watchOptions); - project.setProjectErrors(watchOptionsAndErrors == null ? void 0 : watchOptionsAndErrors.errors); - project.excludedFiles = excludedFiles; - this.addFilesToNonInferredProject(project, files, externalFilePropertyReader, typeAcquisition); - this.externalProjects.push(project); - return project; - }; - /** @internal */ - _ProjectService.prototype.sendProjectTelemetry = function (project) { - if (this.seenProjects.has(project.projectName)) { - setProjectOptionsUsed(project); - return; - } - this.seenProjects.set(project.projectName, true); - if (!this.eventHandler || !this.host.createSHA256Hash) { - setProjectOptionsUsed(project); - return; - } - var projectOptions = isConfiguredProject(project) ? project.projectOptions : void 0; - setProjectOptionsUsed(project); - var data = { - projectId: this.host.createSHA256Hash(project.projectName), - fileStats: countEachFileTypes(project.getScriptInfos(), - /*includeSizes*/ - true), - compilerOptions: convertCompilerOptionsForTelemetry(project.getCompilationSettings()), - typeAcquisition: convertTypeAcquisition2(project.getTypeAcquisition()), - extends: projectOptions && projectOptions.configHasExtendsProperty, - files: projectOptions && projectOptions.configHasFilesProperty, - include: projectOptions && projectOptions.configHasIncludeProperty, - exclude: projectOptions && projectOptions.configHasExcludeProperty, - compileOnSave: project.compileOnSaveEnabled, - configFileName: configFileName(), - projectType: project instanceof ExternalProject2 ? "external" : "configured", - languageServiceEnabled: project.languageServiceEnabled, - version: version - }; - this.eventHandler({ eventName: ProjectInfoTelemetryEvent, data: data }); - function configFileName() { - if (!isConfiguredProject(project)) { - return "other"; - } - return getBaseConfigFileName(project.getConfigFilePath()) || "other"; - } - function convertTypeAcquisition2(_t) { - var enable2 = _t.enable, include = _t.include, exclude = _t.exclude; - return { - enable: enable2, - include: include !== void 0 && include.length !== 0, - exclude: exclude !== void 0 && exclude.length !== 0 - }; - } - }; - _ProjectService.prototype.addFilesToNonInferredProject = function (project, files, propertyReader, typeAcquisition) { - this.updateNonInferredProjectFiles(project, files, propertyReader); - project.setTypeAcquisition(typeAcquisition); - }; - /** @internal */ - _ProjectService.prototype.createConfiguredProject = function (configFileName) { - var _a; - (_a = tracing) == null ? void 0 : _a.instant(tracing.Phase.Session, "createConfiguredProject", { configFilePath: configFileName }); - this.logger.info("Creating configuration project ".concat(configFileName)); - var canonicalConfigFilePath = asNormalizedPath(this.toCanonicalFileName(configFileName)); - var configFileExistenceInfo = this.configFileExistenceInfoCache.get(canonicalConfigFilePath); - if (!configFileExistenceInfo) { - this.configFileExistenceInfoCache.set(canonicalConfigFilePath, configFileExistenceInfo = { exists: true }); - } - else { - configFileExistenceInfo.exists = true; - } - if (!configFileExistenceInfo.config) { - configFileExistenceInfo.config = { - cachedDirectoryStructureHost: createCachedDirectoryStructureHost(this.host, this.host.getCurrentDirectory(), this.host.useCaseSensitiveFileNames), - projects: /* @__PURE__ */ new Map(), - reloadLevel: 2 /* Full */ - }; - } - var project = new ConfiguredProject2(configFileName, canonicalConfigFilePath, this, this.documentRegistry, configFileExistenceInfo.config.cachedDirectoryStructureHost); - this.configuredProjects.set(canonicalConfigFilePath, project); - this.createConfigFileWatcherForParsedConfig(configFileName, canonicalConfigFilePath, project); - return project; - }; - /** @internal */ - _ProjectService.prototype.createConfiguredProjectWithDelayLoad = function (configFileName, reason) { - var project = this.createConfiguredProject(configFileName); - project.pendingReload = 2 /* Full */; - project.pendingReloadReason = reason; - return project; - }; - /** @internal */ - _ProjectService.prototype.createAndLoadConfiguredProject = function (configFileName, reason) { - var project = this.createConfiguredProject(configFileName); - this.loadConfiguredProject(project, reason); - return project; - }; - /** @internal */ - _ProjectService.prototype.createLoadAndUpdateConfiguredProject = function (configFileName, reason) { - var project = this.createAndLoadConfiguredProject(configFileName, reason); - project.updateGraph(); - return project; - }; - /** - * Read the config file of the project, and update the project root file names. - * - * @internal - */ - _ProjectService.prototype.loadConfiguredProject = function (project, reason) { - var _this = this; - var _a, _b; - (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Session, "loadConfiguredProject", { configFilePath: project.canonicalConfigFilePath }); - this.sendProjectLoadingStartEvent(project, reason); - var configFilename = asNormalizedPath(normalizePath(project.getConfigFilePath())); - var configFileExistenceInfo = this.ensureParsedConfigUptoDate(configFilename, project.canonicalConfigFilePath, this.configFileExistenceInfoCache.get(project.canonicalConfigFilePath), project); - var parsedCommandLine = configFileExistenceInfo.config.parsedCommandLine; - Debug.assert(!!parsedCommandLine.fileNames); - var compilerOptions = parsedCommandLine.options; - if (!project.projectOptions) { - project.projectOptions = { - configHasExtendsProperty: parsedCommandLine.raw.extends !== void 0, - configHasFilesProperty: parsedCommandLine.raw.files !== void 0, - configHasIncludeProperty: parsedCommandLine.raw.include !== void 0, - configHasExcludeProperty: parsedCommandLine.raw.exclude !== void 0 - }; - } - project.canConfigFileJsonReportNoInputFiles = canJsonReportNoInputFiles(parsedCommandLine.raw); - project.setProjectErrors(parsedCommandLine.options.configFile.parseDiagnostics); - project.updateReferences(parsedCommandLine.projectReferences); - var lastFileExceededProgramSize = this.getFilenameForExceededTotalSizeLimitForNonTsFiles(project.canonicalConfigFilePath, compilerOptions, parsedCommandLine.fileNames, fileNamePropertyReader); - if (lastFileExceededProgramSize) { - project.disableLanguageService(lastFileExceededProgramSize); - this.configFileExistenceInfoCache.forEach(function (_configFileExistenceInfo, canonicalConfigFilePath) { return _this.stopWatchingWildCards(canonicalConfigFilePath, project); }); - } - else { - project.setCompilerOptions(compilerOptions); - project.setWatchOptions(parsedCommandLine.watchOptions); - project.enableLanguageService(); - this.watchWildcards(configFilename, configFileExistenceInfo, project); - } - project.enablePluginsWithOptions(compilerOptions); - var filesToAdd = parsedCommandLine.fileNames.concat(project.getExternalFiles()); - this.updateRootAndOptionsOfNonInferredProject(project, filesToAdd, fileNamePropertyReader, compilerOptions, parsedCommandLine.typeAcquisition, parsedCommandLine.compileOnSave, parsedCommandLine.watchOptions); - (_b = tracing) == null ? void 0 : _b.pop(); - }; - /** @internal */ - _ProjectService.prototype.ensureParsedConfigUptoDate = function (configFilename, canonicalConfigFilePath, configFileExistenceInfo, forProject) { - var _this = this; - var _a, _b, _c; - if (configFileExistenceInfo.config) { - if (!configFileExistenceInfo.config.reloadLevel) - return configFileExistenceInfo; - if (configFileExistenceInfo.config.reloadLevel === 1 /* Partial */) { - this.reloadFileNamesOfParsedConfig(configFilename, configFileExistenceInfo.config); - return configFileExistenceInfo; - } - } - var cachedDirectoryStructureHost = ((_a = configFileExistenceInfo.config) == null ? void 0 : _a.cachedDirectoryStructureHost) || createCachedDirectoryStructureHost(this.host, this.host.getCurrentDirectory(), this.host.useCaseSensitiveFileNames); - var configFileContent = tryReadFile(configFilename, function (fileName) { return _this.host.readFile(fileName); }); - var configFile = parseJsonText(configFilename, isString(configFileContent) ? configFileContent : ""); - var configFileErrors = configFile.parseDiagnostics; - if (!isString(configFileContent)) - configFileErrors.push(configFileContent); - var parsedCommandLine = parseJsonSourceFileConfigFileContent(configFile, cachedDirectoryStructureHost, getDirectoryPath(configFilename), - /*existingOptions*/ - {}, configFilename, - /*resolutionStack*/ - [], this.hostConfiguration.extraFileExtensions, this.extendedConfigCache); - if (parsedCommandLine.errors.length) { - configFileErrors.push.apply(configFileErrors, __spreadArray([], __read(parsedCommandLine.errors), false)); - } - this.logger.info("Config: ".concat(configFilename, " : ").concat(JSON.stringify({ - rootNames: parsedCommandLine.fileNames, - options: parsedCommandLine.options, - watchOptions: parsedCommandLine.watchOptions, - projectReferences: parsedCommandLine.projectReferences - }, - /*replacer*/ - void 0, " "))); - var oldCommandLine = (_b = configFileExistenceInfo.config) == null ? void 0 : _b.parsedCommandLine; - if (!configFileExistenceInfo.config) { - configFileExistenceInfo.config = { parsedCommandLine: parsedCommandLine, cachedDirectoryStructureHost: cachedDirectoryStructureHost, projects: /* @__PURE__ */ new Map() }; - } - else { - configFileExistenceInfo.config.parsedCommandLine = parsedCommandLine; - configFileExistenceInfo.config.watchedDirectoriesStale = true; - configFileExistenceInfo.config.reloadLevel = void 0; - } - if (!oldCommandLine && !isJsonEqual( - // Old options - this.getWatchOptionsFromProjectWatchOptions( - /*projectOptions*/ - void 0), - // New options - this.getWatchOptionsFromProjectWatchOptions(parsedCommandLine.watchOptions))) { - (_c = configFileExistenceInfo.watcher) == null ? void 0 : _c.close(); - configFileExistenceInfo.watcher = void 0; - } - this.createConfigFileWatcherForParsedConfig(configFilename, canonicalConfigFilePath, forProject); - updateSharedExtendedConfigFileWatcher(canonicalConfigFilePath, parsedCommandLine.options, this.sharedExtendedConfigFileWatchers, function (extendedConfigFileName, extendedConfigFilePath) { return _this.watchFactory.watchFile(extendedConfigFileName, function () { - var _a2; - cleanExtendedConfigCache(_this.extendedConfigCache, extendedConfigFilePath, function (fileName) { return _this.toPath(fileName); }); - var ensureProjectsForOpenFiles = false; - (_a2 = _this.sharedExtendedConfigFileWatchers.get(extendedConfigFilePath)) == null ? void 0 : _a2.projects.forEach(function (canonicalPath) { - ensureProjectsForOpenFiles = _this.delayUpdateProjectsFromParsedConfigOnConfigFileChange(canonicalPath, "Change in extended config file ".concat(extendedConfigFileName, " detected")) || ensureProjectsForOpenFiles; - }); - if (ensureProjectsForOpenFiles) - _this.delayEnsureProjectForOpenFiles(); - }, 2e3 /* High */, _this.hostConfiguration.watchOptions, WatchType.ExtendedConfigFile, configFilename); }, function (fileName) { return _this.toPath(fileName); }); - return configFileExistenceInfo; - }; - /** @internal */ - _ProjectService.prototype.watchWildcards = function (configFileName, _t, forProject) { - var _this = this; - var exists = _t.exists, config = _t.config; - config.projects.set(forProject.canonicalConfigFilePath, true); - if (exists) { - if (config.watchedDirectories && !config.watchedDirectoriesStale) - return; - config.watchedDirectoriesStale = false; - updateWatchingWildcardDirectories(config.watchedDirectories || (config.watchedDirectories = /* @__PURE__ */ new Map()), new Map(Object.entries(config.parsedCommandLine.wildcardDirectories)), - // Create new directory watcher - function (directory, flags) { return _this.watchWildcardDirectory(directory, flags, configFileName, config); }); - } - else { - config.watchedDirectoriesStale = false; - if (!config.watchedDirectories) - return; - clearMap(config.watchedDirectories, closeFileWatcherOf); - config.watchedDirectories = void 0; - } - }; - /** @internal */ - _ProjectService.prototype.stopWatchingWildCards = function (canonicalConfigFilePath, forProject) { - var configFileExistenceInfo = this.configFileExistenceInfoCache.get(canonicalConfigFilePath); - if (!configFileExistenceInfo.config || !configFileExistenceInfo.config.projects.get(forProject.canonicalConfigFilePath)) { - return; - } - configFileExistenceInfo.config.projects.set(forProject.canonicalConfigFilePath, false); - if (forEachEntry(configFileExistenceInfo.config.projects, identity)) - return; - if (configFileExistenceInfo.config.watchedDirectories) { - clearMap(configFileExistenceInfo.config.watchedDirectories, closeFileWatcherOf); - configFileExistenceInfo.config.watchedDirectories = void 0; - } - configFileExistenceInfo.config.watchedDirectoriesStale = void 0; - }; - _ProjectService.prototype.updateNonInferredProjectFiles = function (project, files, propertyReader) { - var e_927, _t; - var projectRootFilesMap = project.getRootFilesMap(); - var newRootScriptInfoMap = /* @__PURE__ */ new Map(); - try { - for (var files_7 = __values(files), files_7_1 = files_7.next(); !files_7_1.done; files_7_1 = files_7.next()) { - var f = files_7_1.value; - var newRootFile = propertyReader.getFileName(f); - var fileName = toNormalizedPath(newRootFile); - var isDynamic = isDynamicFileName(fileName); - var path = void 0; - if (!isDynamic && !project.fileExists(newRootFile)) { - path = normalizedPathToPath(fileName, this.currentDirectory, this.toCanonicalFileName); - var existingValue = projectRootFilesMap.get(path); - if (existingValue) { - if (existingValue.info) { - project.removeFile(existingValue.info, - /*fileExists*/ - false, - /*detachFromProject*/ - true); - existingValue.info = void 0; - } - existingValue.fileName = fileName; - } - else { - projectRootFilesMap.set(path, { fileName: fileName }); - } - } - else { - var scriptKind = propertyReader.getScriptKind(f, this.hostConfiguration.extraFileExtensions); - var hasMixedContent = propertyReader.hasMixedContent(f, this.hostConfiguration.extraFileExtensions); - var scriptInfo = Debug.checkDefined(this.getOrCreateScriptInfoNotOpenedByClientForNormalizedPath(fileName, project.currentDirectory, scriptKind, hasMixedContent, project.directoryStructureHost)); - path = scriptInfo.path; - var existingValue = projectRootFilesMap.get(path); - if (!existingValue || existingValue.info !== scriptInfo) { - project.addRoot(scriptInfo, fileName); - if (scriptInfo.isScriptOpen()) { - this.removeRootOfInferredProjectIfNowPartOfOtherProject(scriptInfo); - } - } - else { - existingValue.fileName = fileName; - } - } - newRootScriptInfoMap.set(path, true); - } - } - catch (e_927_1) { e_927 = { error: e_927_1 }; } - finally { - try { - if (files_7_1 && !files_7_1.done && (_t = files_7.return)) _t.call(files_7); - } - finally { if (e_927) throw e_927.error; } - } - if (projectRootFilesMap.size > newRootScriptInfoMap.size) { - projectRootFilesMap.forEach(function (value, path) { - if (!newRootScriptInfoMap.has(path)) { - if (value.info) { - project.removeFile(value.info, project.fileExists(path), - /*detachFromProject*/ - true); - } - else { - projectRootFilesMap.delete(path); - } - } - }); - } - project.markAsDirty(); - }; - _ProjectService.prototype.updateRootAndOptionsOfNonInferredProject = function (project, newUncheckedFiles, propertyReader, newOptions, newTypeAcquisition, compileOnSave, watchOptions) { - project.setCompilerOptions(newOptions); - project.setWatchOptions(watchOptions); - if (compileOnSave !== void 0) { - project.compileOnSaveEnabled = compileOnSave; - } - this.addFilesToNonInferredProject(project, newUncheckedFiles, propertyReader, newTypeAcquisition); - }; - /** - * Reload the file names from config file specs and update the project graph - * - * @internal - */ - _ProjectService.prototype.reloadFileNamesOfConfiguredProject = function (project) { - var fileNames = this.reloadFileNamesOfParsedConfig(project.getConfigFilePath(), this.configFileExistenceInfoCache.get(project.canonicalConfigFilePath).config); - project.updateErrorOnNoInputFiles(fileNames); - this.updateNonInferredProjectFiles(project, fileNames.concat(project.getExternalFiles()), fileNamePropertyReader); - return project.updateGraph(); - }; - /** @internal */ - _ProjectService.prototype.reloadFileNamesOfParsedConfig = function (configFileName, config) { - if (config.reloadLevel === void 0) - return config.parsedCommandLine.fileNames; - Debug.assert(config.reloadLevel === 1 /* Partial */); - var configFileSpecs = config.parsedCommandLine.options.configFile.configFileSpecs; - var fileNames = getFileNamesFromConfigSpecs(configFileSpecs, getDirectoryPath(configFileName), config.parsedCommandLine.options, config.cachedDirectoryStructureHost, this.hostConfiguration.extraFileExtensions); - config.parsedCommandLine = __assign(__assign({}, config.parsedCommandLine), { fileNames: fileNames }); - return fileNames; - }; - /** @internal */ - _ProjectService.prototype.setFileNamesOfAutoImportProviderProject = function (project, fileNames) { - this.updateNonInferredProjectFiles(project, fileNames, fileNamePropertyReader); - }; - /** - * Read the config file of the project again by clearing the cache and update the project graph - * - * @internal - */ - _ProjectService.prototype.reloadConfiguredProject = function (project, reason, isInitialLoad, clearSemanticCache) { - var host = project.getCachedDirectoryStructureHost(); - if (clearSemanticCache) - this.clearSemanticCache(project); - host.clearCache(); - var configFileName = project.getConfigFilePath(); - this.logger.info("".concat(isInitialLoad ? "Loading" : "Reloading", " configured project ").concat(configFileName)); - this.loadConfiguredProject(project, reason); - project.updateGraph(); - this.sendConfigFileDiagEvent(project, configFileName); - }; - /** @internal */ - _ProjectService.prototype.clearSemanticCache = function (project) { - project.resolutionCache.clear(); - project.getLanguageService( - /*ensureSynchronized*/ - false).cleanupSemanticCache(); - project.cleanupProgram(); - project.markAsDirty(); - }; - _ProjectService.prototype.sendConfigFileDiagEvent = function (project, triggerFile) { - if (!this.eventHandler || this.suppressDiagnosticEvents) { - return; - } - var diagnostics = project.getLanguageService().getCompilerOptionsDiagnostics(); - diagnostics.push.apply(diagnostics, __spreadArray([], __read(project.getAllProjectErrors()), false)); - this.eventHandler({ - eventName: ConfigFileDiagEvent, - data: { configFileName: project.getConfigFilePath(), diagnostics: diagnostics, triggerFile: triggerFile } - }); - }; - _ProjectService.prototype.getOrCreateInferredProjectForProjectRootPathIfEnabled = function (info, projectRootPath) { - var e_928, _t, e_929, _u; - if (!this.useInferredProjectPerProjectRoot || // Its a dynamic info opened without project root - info.isDynamic && projectRootPath === void 0) { - return void 0; - } - if (projectRootPath) { - var canonicalProjectRootPath = this.toCanonicalFileName(projectRootPath); - try { - for (var _v = __values(this.inferredProjects), _w = _v.next(); !_w.done; _w = _v.next()) { - var project = _w.value; - if (project.projectRootPath === canonicalProjectRootPath) { - return project; - } - } - } - catch (e_928_1) { e_928 = { error: e_928_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_928) throw e_928.error; } - } - return this.createInferredProject(projectRootPath, - /*isSingleInferredProject*/ - false, projectRootPath); - } - var bestMatch; - try { - for (var _x = __values(this.inferredProjects), _y = _x.next(); !_y.done; _y = _x.next()) { - var project = _y.value; - if (!project.projectRootPath) - continue; - if (!containsPath(project.projectRootPath, info.path, this.host.getCurrentDirectory(), !this.host.useCaseSensitiveFileNames)) - continue; - if (bestMatch && bestMatch.projectRootPath.length > project.projectRootPath.length) - continue; - bestMatch = project; - } - } - catch (e_929_1) { e_929 = { error: e_929_1 }; } - finally { - try { - if (_y && !_y.done && (_u = _x.return)) _u.call(_x); - } - finally { if (e_929) throw e_929.error; } - } - return bestMatch; - }; - _ProjectService.prototype.getOrCreateSingleInferredProjectIfEnabled = function () { - if (!this.useSingleInferredProject) { - return void 0; - } - if (this.inferredProjects.length > 0 && this.inferredProjects[0].projectRootPath === void 0) { - return this.inferredProjects[0]; - } - return this.createInferredProject("", - /*isSingleInferredProject*/ - true); - }; - _ProjectService.prototype.getOrCreateSingleInferredWithoutProjectRoot = function (currentDirectory) { - var e_930, _t; - Debug.assert(!this.useSingleInferredProject); - var expectedCurrentDirectory = this.toCanonicalFileName(this.getNormalizedAbsolutePath(currentDirectory)); - try { - for (var _u = __values(this.inferredProjects), _v = _u.next(); !_v.done; _v = _u.next()) { - var inferredProject = _v.value; - if (!inferredProject.projectRootPath && inferredProject.isOrphan() && inferredProject.canonicalCurrentDirectory === expectedCurrentDirectory) { - return inferredProject; - } - } - } - catch (e_930_1) { e_930 = { error: e_930_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_930) throw e_930.error; } - } - return this.createInferredProject(currentDirectory); - }; - _ProjectService.prototype.createInferredProject = function (currentDirectory, isSingleInferredProject, projectRootPath) { - var compilerOptions = projectRootPath && this.compilerOptionsForInferredProjectsPerProjectRoot.get(projectRootPath) || this.compilerOptionsForInferredProjects; - var watchOptionsAndErrors; - var typeAcquisition; - if (projectRootPath) { - watchOptionsAndErrors = this.watchOptionsForInferredProjectsPerProjectRoot.get(projectRootPath); - typeAcquisition = this.typeAcquisitionForInferredProjectsPerProjectRoot.get(projectRootPath); - } - if (watchOptionsAndErrors === void 0) { - watchOptionsAndErrors = this.watchOptionsForInferredProjects; - } - if (typeAcquisition === void 0) { - typeAcquisition = this.typeAcquisitionForInferredProjects; - } - watchOptionsAndErrors = watchOptionsAndErrors || void 0; - var project = new InferredProject2(this, this.documentRegistry, compilerOptions, watchOptionsAndErrors == null ? void 0 : watchOptionsAndErrors.watchOptions, projectRootPath, currentDirectory, typeAcquisition); - project.setProjectErrors(watchOptionsAndErrors == null ? void 0 : watchOptionsAndErrors.errors); - if (isSingleInferredProject) { - this.inferredProjects.unshift(project); - } - else { - this.inferredProjects.push(project); - } - return project; - }; - /** @internal */ - _ProjectService.prototype.getOrCreateScriptInfoNotOpenedByClient = function (uncheckedFileName, currentDirectory, hostToQueryFileExistsOn) { - return this.getOrCreateScriptInfoNotOpenedByClientForNormalizedPath(toNormalizedPath(uncheckedFileName), currentDirectory, - /*scriptKind*/ - void 0, - /*hasMixedContent*/ - void 0, hostToQueryFileExistsOn); - }; - _ProjectService.prototype.getScriptInfo = function (uncheckedFileName) { - return this.getScriptInfoForNormalizedPath(toNormalizedPath(uncheckedFileName)); - }; - /** @internal */ - _ProjectService.prototype.getScriptInfoOrConfig = function (uncheckedFileName) { - var path = toNormalizedPath(uncheckedFileName); - var info = this.getScriptInfoForNormalizedPath(path); - if (info) - return info; - var configProject = this.configuredProjects.get(this.toPath(uncheckedFileName)); - return configProject && configProject.getCompilerOptions().configFile; - }; - /** @internal */ - _ProjectService.prototype.logErrorForScriptInfoNotFound = function (fileName) { - var names = arrayFrom(this.filenameToScriptInfo.entries(), function (_t) { - var _u = __read(_t, 2), path = _u[0], scriptInfo = _u[1]; - return ({ path: path, fileName: scriptInfo.fileName }); - }); - this.logger.msg("Could not find file ".concat(JSON.stringify(fileName), ".\nAll files are: ").concat(JSON.stringify(names)), "Err" /* Err */); - }; - /** - * Returns the projects that contain script info through SymLink - * Note that this does not return projects in info.containingProjects - * - * @internal - */ - _ProjectService.prototype.getSymlinkedProjects = function (info) { - var projects; - if (this.realpathToScriptInfos) { - var realpath = info.getRealpathIfDifferent(); - if (realpath) { - forEach(this.realpathToScriptInfos.get(realpath), combineProjects); - } - forEach(this.realpathToScriptInfos.get(info.path), combineProjects); - } - return projects; - function combineProjects(toAddInfo) { - var e_931, _t; - if (toAddInfo !== info) { - var _loop_66 = function (project) { - if (project.languageServiceEnabled && !project.isOrphan() && !project.getCompilerOptions().preserveSymlinks && !info.isAttached(project)) { - if (!projects) { - projects = createMultiMap(); - projects.add(toAddInfo.path, project); - } - else if (!forEachEntry(projects, function (projs, path) { return path === toAddInfo.path ? false : contains(projs, project); })) { - projects.add(toAddInfo.path, project); - } - } - }; - try { - for (var _u = __values(toAddInfo.containingProjects), _v = _u.next(); !_v.done; _v = _u.next()) { - var project = _v.value; - _loop_66(project); - } - } - catch (e_931_1) { e_931 = { error: e_931_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_931) throw e_931.error; } - } - } - } - }; - _ProjectService.prototype.watchClosedScriptInfo = function (info) { - var _this = this; - Debug.assert(!info.fileWatcher); - if (!info.isDynamicOrHasMixedContent() && (!this.globalCacheLocationDirectoryPath || !startsWith(info.path, this.globalCacheLocationDirectoryPath))) { - var indexOfNodeModules = info.path.indexOf("/node_modules/"); - if (!this.host.getModifiedTime || indexOfNodeModules === -1) { - info.fileWatcher = this.watchFactory.watchFile(info.fileName, function (_fileName, eventKind) { return _this.onSourceFileChanged(info, eventKind); }, 500 /* Medium */, this.hostConfiguration.watchOptions, WatchType.ClosedScriptInfo); - } - else { - info.mTime = this.getModifiedTime(info); - info.fileWatcher = this.watchClosedScriptInfoInNodeModules(info.path.substr(0, indexOfNodeModules)); - } - } - }; - _ProjectService.prototype.createNodeModulesWatcher = function (dir) { - var _this = this; - var watcher = this.watchFactory.watchDirectory(dir, function (fileOrDirectory) { - var _a; - var fileOrDirectoryPath = removeIgnoredPath(_this.toPath(fileOrDirectory)); - if (!fileOrDirectoryPath) - return; - var basename = getBaseFileName(fileOrDirectoryPath); - if (((_a = result.affectedModuleSpecifierCacheProjects) == null ? void 0 : _a.size) && (basename === "package.json" || basename === "node_modules")) { - result.affectedModuleSpecifierCacheProjects.forEach(function (projectName) { - var _a2, _b; - (_b = (_a2 = _this.findProject(projectName)) == null ? void 0 : _a2.getModuleSpecifierCache()) == null ? void 0 : _b.clear(); - }); - } - if (result.refreshScriptInfoRefCount) { - if (dir === fileOrDirectoryPath) { - _this.refreshScriptInfosInDirectory(dir); - } - else { - var info = _this.getScriptInfoForPath(fileOrDirectoryPath); - if (info) { - if (isScriptInfoWatchedFromNodeModules(info)) { - _this.refreshScriptInfo(info); - } - } - else if (!hasExtension(fileOrDirectoryPath)) { - _this.refreshScriptInfosInDirectory(fileOrDirectoryPath); - } - } - } - }, 1 /* Recursive */, this.hostConfiguration.watchOptions, WatchType.NodeModules); - var result = { - refreshScriptInfoRefCount: 0, - affectedModuleSpecifierCacheProjects: void 0, - close: function () { - var _a; - if (!result.refreshScriptInfoRefCount && !((_a = result.affectedModuleSpecifierCacheProjects) == null ? void 0 : _a.size)) { - watcher.close(); - _this.nodeModulesWatchers.delete(dir); - } - } - }; - this.nodeModulesWatchers.set(dir, result); - return result; - }; - /** @internal */ - _ProjectService.prototype.watchPackageJsonsInNodeModules = function (dir, project) { - var watcher = this.nodeModulesWatchers.get(dir) || this.createNodeModulesWatcher(dir); - (watcher.affectedModuleSpecifierCacheProjects || (watcher.affectedModuleSpecifierCacheProjects = /* @__PURE__ */ new Set())).add(project.getProjectName()); - return { - close: function () { - var _a; - (_a = watcher.affectedModuleSpecifierCacheProjects) == null ? void 0 : _a.delete(project.getProjectName()); - watcher.close(); - } - }; - }; - _ProjectService.prototype.watchClosedScriptInfoInNodeModules = function (dir) { - var watchDir = dir + "/node_modules"; - var watcher = this.nodeModulesWatchers.get(watchDir) || this.createNodeModulesWatcher(watchDir); - watcher.refreshScriptInfoRefCount++; - return { - close: function () { - watcher.refreshScriptInfoRefCount--; - watcher.close(); - } - }; - }; - _ProjectService.prototype.getModifiedTime = function (info) { - return (this.host.getModifiedTime(info.path) || missingFileModifiedTime).getTime(); - }; - _ProjectService.prototype.refreshScriptInfo = function (info) { - var mTime = this.getModifiedTime(info); - if (mTime !== info.mTime) { - var eventKind = getFileWatcherEventKind(info.mTime, mTime); - info.mTime = mTime; - this.onSourceFileChanged(info, eventKind); - } - }; - _ProjectService.prototype.refreshScriptInfosInDirectory = function (dir) { - var _this = this; - dir = dir + directorySeparator; - this.filenameToScriptInfo.forEach(function (info) { - if (isScriptInfoWatchedFromNodeModules(info) && startsWith(info.path, dir)) { - _this.refreshScriptInfo(info); - } - }); - }; - _ProjectService.prototype.stopWatchingScriptInfo = function (info) { - if (info.fileWatcher) { - info.fileWatcher.close(); - info.fileWatcher = void 0; - } - }; - _ProjectService.prototype.getOrCreateScriptInfoNotOpenedByClientForNormalizedPath = function (fileName, currentDirectory, scriptKind, hasMixedContent, hostToQueryFileExistsOn) { - if (isRootedDiskPath(fileName) || isDynamicFileName(fileName)) { - return this.getOrCreateScriptInfoWorker(fileName, currentDirectory, - /*openedByClient*/ - false, - /*fileContent*/ - void 0, scriptKind, hasMixedContent, hostToQueryFileExistsOn); - } - var info = this.openFilesWithNonRootedDiskPath.get(this.toCanonicalFileName(fileName)); - if (info) { - return info; - } - return void 0; - }; - _ProjectService.prototype.getOrCreateScriptInfoOpenedByClientForNormalizedPath = function (fileName, currentDirectory, fileContent, scriptKind, hasMixedContent) { - return this.getOrCreateScriptInfoWorker(fileName, currentDirectory, - /*openedByClient*/ - true, fileContent, scriptKind, hasMixedContent); - }; - _ProjectService.prototype.getOrCreateScriptInfoForNormalizedPath = function (fileName, openedByClient, fileContent, scriptKind, hasMixedContent, hostToQueryFileExistsOn) { - return this.getOrCreateScriptInfoWorker(fileName, this.currentDirectory, openedByClient, fileContent, scriptKind, hasMixedContent, hostToQueryFileExistsOn); - }; - _ProjectService.prototype.getOrCreateScriptInfoWorker = function (fileName, currentDirectory, openedByClient, fileContent, scriptKind, hasMixedContent, hostToQueryFileExistsOn) { - var _this = this; - Debug.assert(fileContent === void 0 || openedByClient, "ScriptInfo needs to be opened by client to be able to set its user defined content"); - var path = normalizedPathToPath(fileName, currentDirectory, this.toCanonicalFileName); - var info = this.getScriptInfoForPath(path); - if (!info) { - var isDynamic = isDynamicFileName(fileName); - Debug.assert(isRootedDiskPath(fileName) || isDynamic || openedByClient, "", function () { return "".concat(JSON.stringify({ fileName: fileName, currentDirectory: currentDirectory, hostCurrentDirectory: _this.currentDirectory, openKeys: arrayFrom(_this.openFilesWithNonRootedDiskPath.keys()) }), "\nScript info with non-dynamic relative file name can only be open script info or in context of host currentDirectory"); }); - Debug.assert(!isRootedDiskPath(fileName) || this.currentDirectory === currentDirectory || !this.openFilesWithNonRootedDiskPath.has(this.toCanonicalFileName(fileName)), "", function () { return "".concat(JSON.stringify({ fileName: fileName, currentDirectory: currentDirectory, hostCurrentDirectory: _this.currentDirectory, openKeys: arrayFrom(_this.openFilesWithNonRootedDiskPath.keys()) }), "\nOpen script files with non rooted disk path opened with current directory context cannot have same canonical names"); }); - Debug.assert(!isDynamic || this.currentDirectory === currentDirectory || this.useInferredProjectPerProjectRoot, "", function () { return "".concat(JSON.stringify({ fileName: fileName, currentDirectory: currentDirectory, hostCurrentDirectory: _this.currentDirectory, openKeys: arrayFrom(_this.openFilesWithNonRootedDiskPath.keys()) }), "\nDynamic files must always be opened with service's current directory or service should support inferred project per projectRootPath."); }); - if (!openedByClient && !isDynamic && !(hostToQueryFileExistsOn || this.host).fileExists(fileName)) { - return; - } - info = new ScriptInfo(this.host, fileName, scriptKind, !!hasMixedContent, path, this.filenameToScriptInfoVersion.get(path)); - this.filenameToScriptInfo.set(info.path, info); - this.filenameToScriptInfoVersion.delete(info.path); - if (!openedByClient) { - this.watchClosedScriptInfo(info); - } - else if (!isRootedDiskPath(fileName) && (!isDynamic || this.currentDirectory !== currentDirectory)) { - this.openFilesWithNonRootedDiskPath.set(this.toCanonicalFileName(fileName), info); - } - } - if (openedByClient) { - this.stopWatchingScriptInfo(info); - info.open(fileContent); - if (hasMixedContent) { - info.registerFileUpdate(); - } - } - return info; - }; - /** - * This gets the script info for the normalized path. If the path is not rooted disk path then the open script info with project root context is preferred - */ - _ProjectService.prototype.getScriptInfoForNormalizedPath = function (fileName) { - return !isRootedDiskPath(fileName) && this.openFilesWithNonRootedDiskPath.get(this.toCanonicalFileName(fileName)) || this.getScriptInfoForPath(normalizedPathToPath(fileName, this.currentDirectory, this.toCanonicalFileName)); - }; - _ProjectService.prototype.getScriptInfoForPath = function (fileName) { - return this.filenameToScriptInfo.get(fileName); - }; - /** @internal */ - _ProjectService.prototype.getDocumentPositionMapper = function (project, generatedFileName, sourceFileName) { - var _this = this; - var declarationInfo = this.getOrCreateScriptInfoNotOpenedByClient(generatedFileName, project.currentDirectory, this.host); - if (!declarationInfo) { - if (sourceFileName) { - project.addGeneratedFileWatch(generatedFileName, sourceFileName); - } - return void 0; - } - declarationInfo.getSnapshot(); - if (isString(declarationInfo.sourceMapFilePath)) { - var sourceMapFileInfo2 = this.getScriptInfoForPath(declarationInfo.sourceMapFilePath); - if (sourceMapFileInfo2) { - sourceMapFileInfo2.getSnapshot(); - if (sourceMapFileInfo2.documentPositionMapper !== void 0) { - sourceMapFileInfo2.sourceInfos = this.addSourceInfoToSourceMap(sourceFileName, project, sourceMapFileInfo2.sourceInfos); - return sourceMapFileInfo2.documentPositionMapper ? sourceMapFileInfo2.documentPositionMapper : void 0; - } - } - declarationInfo.sourceMapFilePath = void 0; - } - else if (declarationInfo.sourceMapFilePath) { - declarationInfo.sourceMapFilePath.sourceInfos = this.addSourceInfoToSourceMap(sourceFileName, project, declarationInfo.sourceMapFilePath.sourceInfos); - return void 0; - } - else if (declarationInfo.sourceMapFilePath !== void 0) { - return void 0; - } - var sourceMapFileInfo; - var mapFileNameFromDeclarationInfo; - var readMapFile = function (mapFileName, mapFileNameFromDts) { - var mapInfo = _this.getOrCreateScriptInfoNotOpenedByClient(mapFileName, project.currentDirectory, _this.host); - if (!mapInfo) { - mapFileNameFromDeclarationInfo = mapFileNameFromDts; - return void 0; - } - sourceMapFileInfo = mapInfo; - var snap = mapInfo.getSnapshot(); - if (mapInfo.documentPositionMapper !== void 0) - return mapInfo.documentPositionMapper; - return getSnapshotText(snap); - }; - var projectName = project.projectName; - var documentPositionMapper = getDocumentPositionMapper({ getCanonicalFileName: this.toCanonicalFileName, log: function (s) { return _this.logger.info(s); }, getSourceFileLike: function (f) { return _this.getSourceFileLike(f, projectName, declarationInfo); } }, declarationInfo.fileName, declarationInfo.textStorage.getLineInfo(), readMapFile); - readMapFile = void 0; - if (sourceMapFileInfo) { - declarationInfo.sourceMapFilePath = sourceMapFileInfo.path; - sourceMapFileInfo.declarationInfoPath = declarationInfo.path; - sourceMapFileInfo.documentPositionMapper = documentPositionMapper || false; - sourceMapFileInfo.sourceInfos = this.addSourceInfoToSourceMap(sourceFileName, project, sourceMapFileInfo.sourceInfos); - } - else if (mapFileNameFromDeclarationInfo) { - declarationInfo.sourceMapFilePath = { - watcher: this.addMissingSourceMapFile(project.currentDirectory === this.currentDirectory ? mapFileNameFromDeclarationInfo : getNormalizedAbsolutePath(mapFileNameFromDeclarationInfo, project.currentDirectory), declarationInfo.path), - sourceInfos: this.addSourceInfoToSourceMap(sourceFileName, project) - }; - } - else { - declarationInfo.sourceMapFilePath = false; - } - return documentPositionMapper; - }; - _ProjectService.prototype.addSourceInfoToSourceMap = function (sourceFileName, project, sourceInfos) { - if (sourceFileName) { - var sourceInfo = this.getOrCreateScriptInfoNotOpenedByClient(sourceFileName, project.currentDirectory, project.directoryStructureHost); - (sourceInfos || (sourceInfos = /* @__PURE__ */ new Set())).add(sourceInfo.path); - } - return sourceInfos; - }; - _ProjectService.prototype.addMissingSourceMapFile = function (mapFileName, declarationInfoPath) { - var _this = this; - var fileWatcher = this.watchFactory.watchFile(mapFileName, function () { - var declarationInfo = _this.getScriptInfoForPath(declarationInfoPath); - if (declarationInfo && declarationInfo.sourceMapFilePath && !isString(declarationInfo.sourceMapFilePath)) { - _this.delayUpdateProjectGraphs(declarationInfo.containingProjects, - /*clearSourceMapperCache*/ - true); - _this.delayUpdateSourceInfoProjects(declarationInfo.sourceMapFilePath.sourceInfos); - declarationInfo.closeSourceMapFileWatcher(); - } - }, 2e3 /* High */, this.hostConfiguration.watchOptions, WatchType.MissingSourceMapFile); - return fileWatcher; - }; - /** @internal */ - _ProjectService.prototype.getSourceFileLike = function (fileName, projectNameOrProject, declarationInfo) { - var project = projectNameOrProject.projectName ? projectNameOrProject : this.findProject(projectNameOrProject); - if (project) { - var path = project.toPath(fileName); - var sourceFile = project.getSourceFile(path); - if (sourceFile && sourceFile.resolvedPath === path) - return sourceFile; - } - var info = this.getOrCreateScriptInfoNotOpenedByClient(fileName, (project || this).currentDirectory, project ? project.directoryStructureHost : this.host); - if (!info) - return void 0; - if (declarationInfo && isString(declarationInfo.sourceMapFilePath) && info !== declarationInfo) { - var sourceMapInfo = this.getScriptInfoForPath(declarationInfo.sourceMapFilePath); - if (sourceMapInfo) { - (sourceMapInfo.sourceInfos || (sourceMapInfo.sourceInfos = /* @__PURE__ */ new Set())).add(info.path); - } - } - if (info.cacheSourceFile) - return info.cacheSourceFile.sourceFile; - if (!info.sourceFileLike) { - info.sourceFileLike = { - get text() { - Debug.fail("shouldnt need text"); - return ""; - }, - getLineAndCharacterOfPosition: function (pos) { - var lineOffset = info.positionToLineOffset(pos); - return { line: lineOffset.line - 1, character: lineOffset.offset - 1 }; - }, - getPositionOfLineAndCharacter: function (line, character, allowEdits) { return info.lineOffsetToPosition(line + 1, character + 1, allowEdits); } - }; - } - return info.sourceFileLike; - }; - /** @internal */ - _ProjectService.prototype.setPerformanceEventHandler = function (performanceEventHandler) { - this.performanceEventHandler = performanceEventHandler; - }; - _ProjectService.prototype.setHostConfiguration = function (args) { - var _this = this; - var _a; - if (args.file) { - var info = this.getScriptInfoForNormalizedPath(toNormalizedPath(args.file)); - if (info) { - info.setOptions(convertFormatOptions(args.formatOptions), args.preferences); - this.logger.info("Host configuration update for file ".concat(args.file)); - } - } - else { - if (args.hostInfo !== void 0) { - this.hostConfiguration.hostInfo = args.hostInfo; - this.logger.info("Host information ".concat(args.hostInfo)); - } - if (args.formatOptions) { - this.hostConfiguration.formatCodeOptions = __assign(__assign({}, this.hostConfiguration.formatCodeOptions), convertFormatOptions(args.formatOptions)); - this.logger.info("Format host information updated"); - } - if (args.preferences) { - var _t = this.hostConfiguration.preferences, lazyConfiguredProjectsFromExternalProject = _t.lazyConfiguredProjectsFromExternalProject, includePackageJsonAutoImports = _t.includePackageJsonAutoImports; - this.hostConfiguration.preferences = __assign(__assign({}, this.hostConfiguration.preferences), args.preferences); - if (lazyConfiguredProjectsFromExternalProject && !this.hostConfiguration.preferences.lazyConfiguredProjectsFromExternalProject) { - this.configuredProjects.forEach(function (project) { - if (project.hasExternalProjectRef() && project.pendingReload === 2 /* Full */ && !_this.pendingProjectUpdates.has(project.getProjectName())) { - project.updateGraph(); - } - }); - } - if (includePackageJsonAutoImports !== args.preferences.includePackageJsonAutoImports) { - this.invalidateProjectPackageJson( - /*packageJsonPath*/ - void 0); - } - } - if (args.extraFileExtensions) { - this.hostConfiguration.extraFileExtensions = args.extraFileExtensions; - this.reloadProjects(); - this.logger.info("Host file extension mappings updated"); - } - if (args.watchOptions) { - this.hostConfiguration.watchOptions = (_a = convertWatchOptions(args.watchOptions)) == null ? void 0 : _a.watchOptions; - this.logger.info("Host watch options changed to ".concat(JSON.stringify(this.hostConfiguration.watchOptions), ", it will be take effect for next watches.")); - } - } - }; - /** @internal */ - _ProjectService.prototype.getWatchOptions = function (project) { - return this.getWatchOptionsFromProjectWatchOptions(project.getWatchOptions()); - }; - /** @internal */ - _ProjectService.prototype.getWatchOptionsFromProjectWatchOptions = function (projectOptions) { - return projectOptions && this.hostConfiguration.watchOptions ? __assign(__assign({}, this.hostConfiguration.watchOptions), projectOptions) : projectOptions || this.hostConfiguration.watchOptions; - }; - _ProjectService.prototype.closeLog = function () { - this.logger.close(); - }; - /** - * This function rebuilds the project for every file opened by the client - * This does not reload contents of open files from disk. But we could do that if needed - */ - _ProjectService.prototype.reloadProjects = function () { - var _this = this; - this.logger.info("reload projects."); - this.filenameToScriptInfo.forEach(function (info) { - if (_this.openFiles.has(info.path)) - return; - if (!info.fileWatcher) - return; - _this.onSourceFileChanged(info, _this.host.fileExists(info.fileName) ? 1 /* Changed */ : 2 /* Deleted */); - }); - this.pendingProjectUpdates.forEach(function (_project, projectName) { - _this.throttledOperations.cancel(projectName); - _this.pendingProjectUpdates.delete(projectName); - }); - this.throttledOperations.cancel(ensureProjectForOpenFileSchedule); - this.pendingEnsureProjectForOpenFiles = false; - this.configFileExistenceInfoCache.forEach(function (info) { - if (info.config) - info.config.reloadLevel = 2 /* Full */; - }); - this.reloadConfiguredProjectForFiles(this.openFiles, - /*clearSemanticCache*/ - true, - /*delayReload*/ - false, returnTrue, "User requested reload projects"); - this.externalProjects.forEach(function (project) { - _this.clearSemanticCache(project); - project.updateGraph(); - }); - this.inferredProjects.forEach(function (project) { return _this.clearSemanticCache(project); }); - this.ensureProjectForOpenFiles(); - }; - /** - * This function goes through all the openFiles and tries to file the config file for them. - * If the config file is found and it refers to existing project, it reloads it either immediately - * or schedules it for reload depending on delayReload option - * If there is no existing project it just opens the configured project for the config file - * reloadForInfo provides a way to filter out files to reload configured project for - */ - _ProjectService.prototype.reloadConfiguredProjectForFiles = function (openFiles, clearSemanticCache, delayReload, shouldReloadProjectFor, reason) { - var _this = this; - var updatedProjects = /* @__PURE__ */ new Map(); - var reloadChildProject = function (child) { - if (!updatedProjects.has(child.canonicalConfigFilePath)) { - updatedProjects.set(child.canonicalConfigFilePath, true); - _this.reloadConfiguredProject(child, reason, - /*isInitialLoad*/ - false, clearSemanticCache); - } - }; - openFiles == null ? void 0 : openFiles.forEach(function (openFileValue, path) { - _this.configFileForOpenFiles.delete(path); - if (!shouldReloadProjectFor(openFileValue)) { - return; - } - var info = _this.getScriptInfoForPath(path); - Debug.assert(info.isScriptOpen()); - var configFileName = _this.getConfigFileNameForFile(info); - if (configFileName) { - var project = _this.findConfiguredProjectByProjectName(configFileName) || _this.createConfiguredProject(configFileName); - if (!updatedProjects.has(project.canonicalConfigFilePath)) { - updatedProjects.set(project.canonicalConfigFilePath, true); - if (delayReload) { - project.pendingReload = 2 /* Full */; - project.pendingReloadReason = reason; - if (clearSemanticCache) - _this.clearSemanticCache(project); - _this.delayUpdateProjectGraph(project); - } - else { - _this.reloadConfiguredProject(project, reason, - /*isInitialLoad*/ - false, clearSemanticCache); - if (!projectContainsInfoDirectly(project, info)) { - var referencedProject = forEachResolvedProjectReferenceProject(project, info.path, function (child) { - reloadChildProject(child); - return projectContainsInfoDirectly(child, info); - }, 1 /* FindCreate */); - if (referencedProject) { - forEachResolvedProjectReferenceProject(project, - /*fileName*/ - void 0, reloadChildProject, 0 /* Find */); - } - } - } - } - } - }); - }; - /** - * Remove the root of inferred project if script info is part of another project - */ - _ProjectService.prototype.removeRootOfInferredProjectIfNowPartOfOtherProject = function (info) { - Debug.assert(info.containingProjects.length > 0); - var firstProject = info.containingProjects[0]; - if (!firstProject.isOrphan() && isInferredProject(firstProject) && firstProject.isRoot(info) && forEach(info.containingProjects, function (p) { return p !== firstProject && !p.isOrphan(); })) { - firstProject.removeFile(info, - /*fileExists*/ - true, - /*detachFromProject*/ - true); - } - }; - /** - * This function is to update the project structure for every inferred project. - * It is called on the premise that all the configured projects are - * up to date. - * This will go through open files and assign them to inferred project if open file is not part of any other project - * After that all the inferred project graphs are updated - */ - _ProjectService.prototype.ensureProjectForOpenFiles = function () { - var _this = this; - this.logger.info("Before ensureProjectForOpenFiles:"); - this.printProjects(); - this.openFiles.forEach(function (projectRootPath, path) { - var info = _this.getScriptInfoForPath(path); - if (info.isOrphan()) { - _this.assignOrphanScriptInfoToInferredProject(info, projectRootPath); - } - else { - _this.removeRootOfInferredProjectIfNowPartOfOtherProject(info); - } - }); - this.pendingEnsureProjectForOpenFiles = false; - this.inferredProjects.forEach(updateProjectIfDirty); - this.logger.info("After ensureProjectForOpenFiles:"); - this.printProjects(); - }; - /** - * Open file whose contents is managed by the client - * @param filename is absolute pathname - * @param fileContent is a known version of the file content that is more up to date than the one on disk - */ - _ProjectService.prototype.openClientFile = function (fileName, fileContent, scriptKind, projectRootPath) { - return this.openClientFileWithNormalizedPath(toNormalizedPath(fileName), fileContent, scriptKind, - /*hasMixedContent*/ - false, projectRootPath ? toNormalizedPath(projectRootPath) : void 0); - }; - /** @internal */ - _ProjectService.prototype.getOriginalLocationEnsuringConfiguredProject = function (project, location) { - var _this = this; - var isSourceOfProjectReferenceRedirect = project.isSourceOfProjectReferenceRedirect(location.fileName); - var originalLocation = isSourceOfProjectReferenceRedirect ? location : project.getSourceMapper().tryGetSourcePosition(location); - if (!originalLocation) - return void 0; - var fileName = originalLocation.fileName; - var scriptInfo = this.getScriptInfo(fileName); - if (!scriptInfo && !this.host.fileExists(fileName)) - return void 0; - var originalFileInfo = { fileName: toNormalizedPath(fileName), path: this.toPath(fileName) }; - var configFileName = this.getConfigFileNameForFile(originalFileInfo); - if (!configFileName) - return void 0; - var configuredProject = this.findConfiguredProjectByProjectName(configFileName); - if (!configuredProject) { - if (project.getCompilerOptions().disableReferencedProjectLoad) { - if (isSourceOfProjectReferenceRedirect) { - return location; - } - return (scriptInfo == null ? void 0 : scriptInfo.containingProjects.length) ? originalLocation : location; - } - configuredProject = this.createAndLoadConfiguredProject(configFileName, "Creating project for original file: ".concat(originalFileInfo.fileName).concat(location !== originalLocation ? " for location: " + location.fileName : "")); - } - updateProjectIfDirty(configuredProject); - var projectContainsOriginalInfo = function (project2) { - var info = _this.getScriptInfo(fileName); - return info && projectContainsInfoDirectly(project2, info); - }; - if (configuredProject.isSolution() || !projectContainsOriginalInfo(configuredProject)) { - configuredProject = forEachResolvedProjectReferenceProject(configuredProject, fileName, function (child) { - updateProjectIfDirty(child); - return projectContainsOriginalInfo(child) ? child : void 0; - }, 2 /* FindCreateLoad */, "Creating project referenced in solution ".concat(configuredProject.projectName, " to find possible configured project for original file: ").concat(originalFileInfo.fileName).concat(location !== originalLocation ? " for location: " + location.fileName : "")); - if (!configuredProject) - return void 0; - if (configuredProject === project) - return originalLocation; - } - addOriginalConfiguredProject(configuredProject); - var originalScriptInfo = this.getScriptInfo(fileName); - if (!originalScriptInfo || !originalScriptInfo.containingProjects.length) - return void 0; - originalScriptInfo.containingProjects.forEach(function (project2) { - if (isConfiguredProject(project2)) { - addOriginalConfiguredProject(project2); - } - }); - return originalLocation; - function addOriginalConfiguredProject(originalProject) { - if (!project.originalConfiguredProjects) { - project.originalConfiguredProjects = /* @__PURE__ */ new Set(); - } - project.originalConfiguredProjects.add(originalProject.canonicalConfigFilePath); - } - }; - /** @internal */ - _ProjectService.prototype.fileExists = function (fileName) { - return !!this.getScriptInfoForNormalizedPath(fileName) || this.host.fileExists(fileName); - }; - _ProjectService.prototype.findExternalProjectContainingOpenScriptInfo = function (info) { - return find(this.externalProjects, function (proj) { - updateProjectIfDirty(proj); - return proj.containsScriptInfo(info); - }); - }; - _ProjectService.prototype.getOrCreateOpenScriptInfo = function (fileName, fileContent, scriptKind, hasMixedContent, projectRootPath) { - var info = this.getOrCreateScriptInfoOpenedByClientForNormalizedPath(fileName, projectRootPath ? this.getNormalizedAbsolutePath(projectRootPath) : this.currentDirectory, fileContent, scriptKind, hasMixedContent); - this.openFiles.set(info.path, projectRootPath); - return info; - }; - _ProjectService.prototype.assignProjectToOpenedScriptInfo = function (info) { - var _this = this; - var configFileName; - var configFileErrors; - var project = this.findExternalProjectContainingOpenScriptInfo(info); - var retainProjects; - var projectForConfigFileDiag; - var defaultConfigProjectIsCreated = false; - if (!project && this.serverMode === 0 /* Semantic */) { - configFileName = this.getConfigFileNameForFile(info); - if (configFileName) { - project = this.findConfiguredProjectByProjectName(configFileName); - if (!project) { - project = this.createLoadAndUpdateConfiguredProject(configFileName, "Creating possible configured project for ".concat(info.fileName, " to open")); - defaultConfigProjectIsCreated = true; - } - else { - updateProjectIfDirty(project); - } - projectForConfigFileDiag = project.containsScriptInfo(info) ? project : void 0; - retainProjects = project; - if (!projectContainsInfoDirectly(project, info)) { - forEachResolvedProjectReferenceProject(project, info.path, function (child) { - updateProjectIfDirty(child); - if (!isArray(retainProjects)) { - retainProjects = [project, child]; - } - else { - retainProjects.push(child); - } - if (projectContainsInfoDirectly(child, info)) { - projectForConfigFileDiag = child; - return child; - } - if (!projectForConfigFileDiag && child.containsScriptInfo(info)) { - projectForConfigFileDiag = child; - } - }, 2 /* FindCreateLoad */, "Creating project referenced in solution ".concat(project.projectName, " to find possible configured project for ").concat(info.fileName, " to open")); - } - if (projectForConfigFileDiag) { - configFileName = projectForConfigFileDiag.getConfigFilePath(); - if (projectForConfigFileDiag !== project || defaultConfigProjectIsCreated) { - configFileErrors = projectForConfigFileDiag.getAllProjectErrors(); - this.sendConfigFileDiagEvent(projectForConfigFileDiag, info.fileName); - } - } - else { - configFileName = void 0; - } - this.createAncestorProjects(info, project); - } - } - info.containingProjects.forEach(updateProjectIfDirty); - if (info.isOrphan()) { - if (isArray(retainProjects)) { - retainProjects.forEach(function (project2) { return _this.sendConfigFileDiagEvent(project2, info.fileName); }); - } - else if (retainProjects) { - this.sendConfigFileDiagEvent(retainProjects, info.fileName); - } - Debug.assert(this.openFiles.has(info.path)); - this.assignOrphanScriptInfoToInferredProject(info, this.openFiles.get(info.path)); - } - Debug.assert(!info.isOrphan()); - return { configFileName: configFileName, configFileErrors: configFileErrors, retainProjects: retainProjects }; - }; - _ProjectService.prototype.createAncestorProjects = function (info, project) { - if (!info.isAttached(project)) - return; - while (true) { - if (!project.isInitialLoadPending() && (!project.getCompilerOptions().composite || project.getCompilerOptions().disableSolutionSearching)) - return; - var configFileName = this.getConfigFileNameForFile({ - fileName: project.getConfigFilePath(), - path: info.path, - configFileInfo: true - }); - if (!configFileName) - return; - var ancestor = this.findConfiguredProjectByProjectName(configFileName) || this.createConfiguredProjectWithDelayLoad(configFileName, "Creating project possibly referencing default composite project ".concat(project.getProjectName(), " of open file ").concat(info.fileName)); - if (ancestor.isInitialLoadPending()) { - ancestor.setPotentialProjectReference(project.canonicalConfigFilePath); - } - project = ancestor; - } - }; - /** @internal */ - _ProjectService.prototype.loadAncestorProjectTree = function (forProjects) { - var e_932, _t; - forProjects = forProjects || mapDefinedEntries(this.configuredProjects, function (key, project) { return !project.isInitialLoadPending() ? [key, true] : void 0; }); - var seenProjects = /* @__PURE__ */ new Set(); - try { - for (var _u = __values(arrayFrom(this.configuredProjects.values())), _v = _u.next(); !_v.done; _v = _u.next()) { - var project = _v.value; - if (forEachPotentialProjectReference(project, function (potentialRefPath) { return forProjects.has(potentialRefPath); })) { - updateProjectIfDirty(project); - } - this.ensureProjectChildren(project, forProjects, seenProjects); - } - } - catch (e_932_1) { e_932 = { error: e_932_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_932) throw e_932.error; } - } - }; - _ProjectService.prototype.ensureProjectChildren = function (project, forProjects, seenProjects) { - var e_933, _t; - var _a; - if (!tryAddToSet(seenProjects, project.canonicalConfigFilePath)) - return; - if (project.getCompilerOptions().disableReferencedProjectLoad) - return; - var children = (_a = project.getCurrentProgram()) == null ? void 0 : _a.getResolvedProjectReferences(); - if (!children) - return; - try { - for (var children_6 = __values(children), children_6_1 = children_6.next(); !children_6_1.done; children_6_1 = children_6.next()) { - var child = children_6_1.value; - if (!child) - continue; - var referencedProject = forEachResolvedProjectReference(child.references, function (ref) { return forProjects.has(ref.sourceFile.path) ? ref : void 0; }); - if (!referencedProject) - continue; - var configFileName = toNormalizedPath(child.sourceFile.fileName); - var childProject = project.projectService.findConfiguredProjectByProjectName(configFileName) || project.projectService.createAndLoadConfiguredProject(configFileName, "Creating project referenced by : ".concat(project.projectName, " as it references project ").concat(referencedProject.sourceFile.fileName)); - updateProjectIfDirty(childProject); - this.ensureProjectChildren(childProject, forProjects, seenProjects); - } - } - catch (e_933_1) { e_933 = { error: e_933_1 }; } - finally { - try { - if (children_6_1 && !children_6_1.done && (_t = children_6.return)) _t.call(children_6); - } - finally { if (e_933) throw e_933.error; } - } - }; - _ProjectService.prototype.cleanupAfterOpeningFile = function (toRetainConfigProjects) { - var e_934, _t; - this.removeOrphanConfiguredProjects(toRetainConfigProjects); - try { - for (var _u = __values(this.inferredProjects.slice()), _v = _u.next(); !_v.done; _v = _u.next()) { - var inferredProject = _v.value; - if (inferredProject.isOrphan()) { - this.removeProject(inferredProject); - } - } - } - catch (e_934_1) { e_934 = { error: e_934_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_934) throw e_934.error; } - } - this.removeOrphanScriptInfos(); - }; - _ProjectService.prototype.openClientFileWithNormalizedPath = function (fileName, fileContent, scriptKind, hasMixedContent, projectRootPath) { - var info = this.getOrCreateOpenScriptInfo(fileName, fileContent, scriptKind, hasMixedContent, projectRootPath); - var _t = this.assignProjectToOpenedScriptInfo(info), retainProjects = _t.retainProjects, result = __rest(_t, ["retainProjects"]); - this.cleanupAfterOpeningFile(retainProjects); - this.telemetryOnOpenFile(info); - this.printProjects(); - return result; - }; - _ProjectService.prototype.removeOrphanConfiguredProjects = function (toRetainConfiguredProjects) { - var _this = this; - var toRemoveConfiguredProjects = new Map(this.configuredProjects); - var markOriginalProjectsAsUsed = function (project) { - if (!project.isOrphan() && project.originalConfiguredProjects) { - project.originalConfiguredProjects.forEach(function (_value, configuredProjectPath) { - var project2 = _this.getConfiguredProjectByCanonicalConfigFilePath(configuredProjectPath); - return project2 && retainConfiguredProject(project2); - }); - } - }; - if (toRetainConfiguredProjects) { - if (isArray(toRetainConfiguredProjects)) { - toRetainConfiguredProjects.forEach(retainConfiguredProject); - } - else { - retainConfiguredProject(toRetainConfiguredProjects); - } - } - this.inferredProjects.forEach(markOriginalProjectsAsUsed); - this.externalProjects.forEach(markOriginalProjectsAsUsed); - this.configuredProjects.forEach(function (project) { - if (project.hasOpenRef()) { - retainConfiguredProject(project); - } - else if (toRemoveConfiguredProjects.has(project.canonicalConfigFilePath)) { - forEachReferencedProject(project, function (ref) { return isRetained(ref) && retainConfiguredProject(project); }); - } - }); - toRemoveConfiguredProjects.forEach(function (project) { return _this.removeProject(project); }); - function isRetained(project) { - return project.hasOpenRef() || !toRemoveConfiguredProjects.has(project.canonicalConfigFilePath); - } - function retainConfiguredProject(project) { - if (toRemoveConfiguredProjects.delete(project.canonicalConfigFilePath)) { - markOriginalProjectsAsUsed(project); - forEachReferencedProject(project, retainConfiguredProject); - } - } - }; - _ProjectService.prototype.removeOrphanScriptInfos = function () { - var _this = this; - var toRemoveScriptInfos = new Map(this.filenameToScriptInfo); - this.filenameToScriptInfo.forEach(function (info) { - if (!info.isScriptOpen() && info.isOrphan() && !info.isContainedByBackgroundProject()) { - if (!info.sourceMapFilePath) - return; - var sourceInfos = void 0; - if (isString(info.sourceMapFilePath)) { - var sourceMapInfo = _this.getScriptInfoForPath(info.sourceMapFilePath); - sourceInfos = sourceMapInfo && sourceMapInfo.sourceInfos; - } - else { - sourceInfos = info.sourceMapFilePath.sourceInfos; - } - if (!sourceInfos) - return; - if (!forEachKey(sourceInfos, function (path) { - var info2 = _this.getScriptInfoForPath(path); - return !!info2 && (info2.isScriptOpen() || !info2.isOrphan()); - })) { - return; - } - } - toRemoveScriptInfos.delete(info.path); - if (info.sourceMapFilePath) { - var sourceInfos = void 0; - if (isString(info.sourceMapFilePath)) { - toRemoveScriptInfos.delete(info.sourceMapFilePath); - var sourceMapInfo = _this.getScriptInfoForPath(info.sourceMapFilePath); - sourceInfos = sourceMapInfo && sourceMapInfo.sourceInfos; - } - else { - sourceInfos = info.sourceMapFilePath.sourceInfos; - } - if (sourceInfos) { - sourceInfos.forEach(function (_value, path) { return toRemoveScriptInfos.delete(path); }); - } - } - }); - toRemoveScriptInfos.forEach(function (info) { - _this.stopWatchingScriptInfo(info); - _this.deleteScriptInfo(info); - info.closeSourceMapFileWatcher(); - }); - }; - _ProjectService.prototype.telemetryOnOpenFile = function (scriptInfo) { - if (this.serverMode !== 0 /* Semantic */ || !this.eventHandler || !scriptInfo.isJavaScript() || !addToSeen(this.allJsFilesForOpenFileTelemetry, scriptInfo.path)) { - return; - } - var project = this.ensureDefaultProjectForFile(scriptInfo); - if (!project.languageServiceEnabled) { - return; - } - var sourceFile = project.getSourceFile(scriptInfo.path); - var checkJs = !!sourceFile && !!sourceFile.checkJsDirective; - this.eventHandler({ eventName: OpenFileInfoTelemetryEvent, data: { info: { checkJs: checkJs } } }); - }; - _ProjectService.prototype.closeClientFile = function (uncheckedFileName, skipAssignOrphanScriptInfosToInferredProject) { - var info = this.getScriptInfoForNormalizedPath(toNormalizedPath(uncheckedFileName)); - var result = info ? this.closeOpenFile(info, skipAssignOrphanScriptInfosToInferredProject) : false; - if (!skipAssignOrphanScriptInfosToInferredProject) { - this.printProjects(); - } - return result; - }; - _ProjectService.prototype.collectChanges = function (lastKnownProjectVersions, currentProjects, includeProjectReferenceRedirectInfo, result) { - var e_935, _t; - var _loop_67 = function (proj) { - var knownProject = find(lastKnownProjectVersions, function (p) { return p.projectName === proj.getProjectName(); }); - result.push(proj.getChangesSinceVersion(knownProject && knownProject.version, includeProjectReferenceRedirectInfo)); - }; - try { - for (var currentProjects_1 = __values(currentProjects), currentProjects_1_1 = currentProjects_1.next(); !currentProjects_1_1.done; currentProjects_1_1 = currentProjects_1.next()) { - var proj = currentProjects_1_1.value; - _loop_67(proj); - } - } - catch (e_935_1) { e_935 = { error: e_935_1 }; } - finally { - try { - if (currentProjects_1_1 && !currentProjects_1_1.done && (_t = currentProjects_1.return)) _t.call(currentProjects_1); - } - finally { if (e_935) throw e_935.error; } - } - }; - /** @internal */ - _ProjectService.prototype.synchronizeProjectList = function (knownProjects, includeProjectReferenceRedirectInfo) { - var files = []; - this.collectChanges(knownProjects, this.externalProjects, includeProjectReferenceRedirectInfo, files); - this.collectChanges(knownProjects, this.configuredProjects.values(), includeProjectReferenceRedirectInfo, files); - this.collectChanges(knownProjects, this.inferredProjects, includeProjectReferenceRedirectInfo, files); - return files; - }; - /** @internal */ - _ProjectService.prototype.applyChangesInOpenFiles = function (openFiles, changedFiles, closedFiles) { - var e_936, _t, e_937, _u, e_938, _v; - var _this = this; - var openScriptInfos; - var assignOrphanScriptInfosToInferredProject = false; - if (openFiles) { - try { - for (var openFiles_1 = __values(openFiles), openFiles_1_1 = openFiles_1.next(); !openFiles_1_1.done; openFiles_1_1 = openFiles_1.next()) { - var file = openFiles_1_1.value; - var info = this.getOrCreateOpenScriptInfo(toNormalizedPath(file.fileName), file.content, tryConvertScriptKindName(file.scriptKind), file.hasMixedContent, file.projectRootPath ? toNormalizedPath(file.projectRootPath) : void 0); - (openScriptInfos || (openScriptInfos = [])).push(info); - } - } - catch (e_936_1) { e_936 = { error: e_936_1 }; } - finally { - try { - if (openFiles_1_1 && !openFiles_1_1.done && (_t = openFiles_1.return)) _t.call(openFiles_1); - } - finally { if (e_936) throw e_936.error; } - } - } - if (changedFiles) { - try { - for (var changedFiles_2 = __values(changedFiles), changedFiles_2_1 = changedFiles_2.next(); !changedFiles_2_1.done; changedFiles_2_1 = changedFiles_2.next()) { - var file = changedFiles_2_1.value; - var scriptInfo = this.getScriptInfo(file.fileName); - Debug.assert(!!scriptInfo); - this.applyChangesToFile(scriptInfo, file.changes); - } - } - catch (e_937_1) { e_937 = { error: e_937_1 }; } - finally { - try { - if (changedFiles_2_1 && !changedFiles_2_1.done && (_u = changedFiles_2.return)) _u.call(changedFiles_2); - } - finally { if (e_937) throw e_937.error; } - } - } - if (closedFiles) { - try { - for (var closedFiles_1 = __values(closedFiles), closedFiles_1_1 = closedFiles_1.next(); !closedFiles_1_1.done; closedFiles_1_1 = closedFiles_1.next()) { - var file = closedFiles_1_1.value; - assignOrphanScriptInfosToInferredProject = this.closeClientFile(file, - /*skipAssignOrphanScriptInfosToInferredProject*/ - true) || assignOrphanScriptInfosToInferredProject; - } - } - catch (e_938_1) { e_938 = { error: e_938_1 }; } - finally { - try { - if (closedFiles_1_1 && !closedFiles_1_1.done && (_v = closedFiles_1.return)) _v.call(closedFiles_1); - } - finally { if (e_938) throw e_938.error; } - } - } - var retainProjects; - if (openScriptInfos) { - retainProjects = flatMap(openScriptInfos, function (info) { return _this.assignProjectToOpenedScriptInfo(info).retainProjects; }); - } - if (assignOrphanScriptInfosToInferredProject) { - this.assignOrphanScriptInfosToInferredProject(); - } - if (openScriptInfos) { - this.cleanupAfterOpeningFile(retainProjects); - openScriptInfos.forEach(function (info) { return _this.telemetryOnOpenFile(info); }); - this.printProjects(); - } - else if (length(closedFiles)) { - this.printProjects(); - } - }; - /** @internal */ - _ProjectService.prototype.applyChangesToFile = function (scriptInfo, changes) { - var e_939, _t; - try { - for (var changes_1 = __values(changes), changes_1_1 = changes_1.next(); !changes_1_1.done; changes_1_1 = changes_1.next()) { - var change = changes_1_1.value; - scriptInfo.editContent(change.span.start, change.span.start + change.span.length, change.newText); - } - } - catch (e_939_1) { e_939 = { error: e_939_1 }; } - finally { - try { - if (changes_1_1 && !changes_1_1.done && (_t = changes_1.return)) _t.call(changes_1); - } - finally { if (e_939) throw e_939.error; } - } - }; - _ProjectService.prototype.closeConfiguredProjectReferencedFromExternalProject = function (configFile) { - var configuredProject = this.findConfiguredProjectByProjectName(configFile); - if (configuredProject) { - configuredProject.deleteExternalProjectReference(); - if (!configuredProject.hasOpenRef()) { - this.removeProject(configuredProject); - return; - } - } - }; - _ProjectService.prototype.closeExternalProject = function (uncheckedFileName) { - var e_940, _t; - var fileName = toNormalizedPath(uncheckedFileName); - var configFiles = this.externalProjectToConfiguredProjectMap.get(fileName); - if (configFiles) { - try { - for (var configFiles_1 = __values(configFiles), configFiles_1_1 = configFiles_1.next(); !configFiles_1_1.done; configFiles_1_1 = configFiles_1.next()) { - var configFile = configFiles_1_1.value; - this.closeConfiguredProjectReferencedFromExternalProject(configFile); - } - } - catch (e_940_1) { e_940 = { error: e_940_1 }; } - finally { - try { - if (configFiles_1_1 && !configFiles_1_1.done && (_t = configFiles_1.return)) _t.call(configFiles_1); - } - finally { if (e_940) throw e_940.error; } - } - this.externalProjectToConfiguredProjectMap.delete(fileName); - } - else { - var externalProject = this.findExternalProjectByProjectName(uncheckedFileName); - if (externalProject) { - this.removeProject(externalProject); - } - } - }; - _ProjectService.prototype.openExternalProjects = function (projects) { - var e_941, _t; - var _this = this; - var projectsToClose = arrayToMap(this.externalProjects, function (p) { return p.getProjectName(); }, function (_) { return true; }); - forEachKey(this.externalProjectToConfiguredProjectMap, function (externalProjectName) { - projectsToClose.set(externalProjectName, true); - }); - try { - for (var projects_3 = __values(projects), projects_3_1 = projects_3.next(); !projects_3_1.done; projects_3_1 = projects_3.next()) { - var externalProject = projects_3_1.value; - this.openExternalProject(externalProject); - projectsToClose.delete(externalProject.projectFileName); - } - } - catch (e_941_1) { e_941 = { error: e_941_1 }; } - finally { - try { - if (projects_3_1 && !projects_3_1.done && (_t = projects_3.return)) _t.call(projects_3); - } - finally { if (e_941) throw e_941.error; } - } - forEachKey(projectsToClose, function (externalProjectName) { - _this.closeExternalProject(externalProjectName); - }); - }; - _ProjectService.escapeFilenameForRegex = function (filename) { - return filename.replace(this.filenameEscapeRegexp, "\\$&"); - }; - _ProjectService.prototype.resetSafeList = function () { - this.safelist = defaultTypeSafeList; - }; - _ProjectService.prototype.applySafeList = function (proj) { - var e_942, _t; - var _this = this; - var rootFiles = proj.rootFiles; - var typeAcquisition = proj.typeAcquisition; - Debug.assert(!!typeAcquisition, "proj.typeAcquisition should be set by now"); - if (typeAcquisition.enable === false || typeAcquisition.disableFilenameBasedTypeAcquisition) { - return []; - } - var typeAcqInclude = typeAcquisition.include || (typeAcquisition.include = []); - var excludeRules = []; - var normalizedNames = rootFiles.map(function (f) { return normalizeSlashes(f.fileName); }); - var excludedFiles = []; - var _loop_68 = function (name_141) { - var e_943, _w, e_944, _x, e_945, _y; - var rule2 = this_5.safelist[name_141]; - try { - for (var normalizedNames_1 = (e_943 = void 0, __values(normalizedNames)), normalizedNames_1_1 = normalizedNames_1.next(); !normalizedNames_1_1.done; normalizedNames_1_1 = normalizedNames_1.next()) { - var root = normalizedNames_1_1.value; - if (rule2.match.test(root)) { - this_5.logger.info("Excluding files based on rule ".concat(name_141, " matching file '").concat(root, "'")); - if (rule2.types) { - try { - for (var _z = (e_944 = void 0, __values(rule2.types)), _10 = _z.next(); !_10.done; _10 = _z.next()) { - var type = _10.value; - if (typeAcqInclude.indexOf(type) < 0) { - typeAcqInclude.push(type); - } - } - } - catch (e_944_1) { e_944 = { error: e_944_1 }; } - finally { - try { - if (_10 && !_10.done && (_x = _z.return)) _x.call(_z); - } - finally { if (e_944) throw e_944.error; } - } - } - if (rule2.exclude) { - var _loop_70 = function (exclude) { - var processedRule = root.replace(rule2.match, function () { - var groups = []; - for (var _t = 0; _t < arguments.length; _t++) { - groups[_t] = arguments[_t]; - } - return exclude.map(function (groupNumberOrString) { - if (typeof groupNumberOrString === "number") { - if (!isString(groups[groupNumberOrString])) { - _this.logger.info("Incorrect RegExp specification in safelist rule ".concat(name_141, " - not enough groups")); - return "\\*"; - } - return _ProjectService.escapeFilenameForRegex(groups[groupNumberOrString]); - } - return groupNumberOrString; - }).join(""); - }); - if (excludeRules.indexOf(processedRule) === -1) { - excludeRules.push(processedRule); - } - }; - try { - for (var _11 = (e_945 = void 0, __values(rule2.exclude)), _12 = _11.next(); !_12.done; _12 = _11.next()) { - var exclude = _12.value; - _loop_70(exclude); - } - } - catch (e_945_1) { e_945 = { error: e_945_1 }; } - finally { - try { - if (_12 && !_12.done && (_y = _11.return)) _y.call(_11); - } - finally { if (e_945) throw e_945.error; } - } - } - else { - var escaped = _ProjectService.escapeFilenameForRegex(root); - if (excludeRules.indexOf(escaped) < 0) { - excludeRules.push(escaped); - } - } - } - } - } - catch (e_943_1) { e_943 = { error: e_943_1 }; } - finally { - try { - if (normalizedNames_1_1 && !normalizedNames_1_1.done && (_w = normalizedNames_1.return)) _w.call(normalizedNames_1); - } - finally { if (e_943) throw e_943.error; } - } - }; - var this_5 = this; - try { - for (var _u = __values(Object.keys(this.safelist)), _v = _u.next(); !_v.done; _v = _u.next()) { - var name_141 = _v.value; - _loop_68(name_141); - } - } - catch (e_942_1) { e_942 = { error: e_942_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_942) throw e_942.error; } - } - var excludeRegexes = excludeRules.map(function (e) { return new RegExp(e, "i"); }); - var filesToKeep = []; - var _loop_69 = function (i) { - if (excludeRegexes.some(function (re) { return re.test(normalizedNames[i]); })) { - excludedFiles.push(normalizedNames[i]); - } - else { - var exclude = false; - if (typeAcquisition.enable) { - var baseName = getBaseFileName(toFileNameLowerCase(normalizedNames[i])); - if (fileExtensionIs(baseName, "js")) { - var inferredTypingName = removeFileExtension(baseName); - var cleanedTypingName = removeMinAndVersionNumbers(inferredTypingName); - var typeName = this_6.legacySafelist.get(cleanedTypingName); - if (typeName !== void 0) { - this_6.logger.info("Excluded '".concat(normalizedNames[i], "' because it matched ").concat(cleanedTypingName, " from the legacy safelist")); - excludedFiles.push(normalizedNames[i]); - exclude = true; - if (typeAcqInclude.indexOf(typeName) < 0) { - typeAcqInclude.push(typeName); - } - } - } - } - if (!exclude) { - if (/^.+[.-]min\.js$/.test(normalizedNames[i])) { - excludedFiles.push(normalizedNames[i]); - } - else { - filesToKeep.push(proj.rootFiles[i]); - } - } - } - }; - var this_6 = this; - for (var i = 0; i < proj.rootFiles.length; i++) { - _loop_69(i); - } - proj.rootFiles = filesToKeep; - return excludedFiles; - }; - _ProjectService.prototype.openExternalProject = function (proj) { - var e_946, _t, e_947, _u; - proj.typeAcquisition = proj.typeAcquisition || {}; - proj.typeAcquisition.include = proj.typeAcquisition.include || []; - proj.typeAcquisition.exclude = proj.typeAcquisition.exclude || []; - if (proj.typeAcquisition.enable === void 0) { - proj.typeAcquisition.enable = hasNoTypeScriptSource(proj.rootFiles.map(function (f) { return f.fileName; })); - } - var excludedFiles = this.applySafeList(proj); - var tsConfigFiles; - var rootFiles = []; - try { - for (var _v = __values(proj.rootFiles), _w = _v.next(); !_w.done; _w = _v.next()) { - var file = _w.value; - var normalized = toNormalizedPath(file.fileName); - if (getBaseConfigFileName(normalized)) { - if (this.serverMode === 0 /* Semantic */ && this.host.fileExists(normalized)) { - (tsConfigFiles || (tsConfigFiles = [])).push(normalized); - } - } - else { - rootFiles.push(file); - } - } - } - catch (e_946_1) { e_946 = { error: e_946_1 }; } - finally { - try { - if (_w && !_w.done && (_t = _v.return)) _t.call(_v); - } - finally { if (e_946) throw e_946.error; } - } - if (tsConfigFiles) { - tsConfigFiles.sort(); - } - var externalProject = this.findExternalProjectByProjectName(proj.projectFileName); - var exisingConfigFiles; - if (externalProject) { - externalProject.excludedFiles = excludedFiles; - if (!tsConfigFiles) { - var compilerOptions = convertCompilerOptions(proj.options); - var watchOptionsAndErrors = convertWatchOptions(proj.options, externalProject.getCurrentDirectory()); - var lastFileExceededProgramSize = this.getFilenameForExceededTotalSizeLimitForNonTsFiles(proj.projectFileName, compilerOptions, proj.rootFiles, externalFilePropertyReader); - if (lastFileExceededProgramSize) { - externalProject.disableLanguageService(lastFileExceededProgramSize); - } - else { - externalProject.enableLanguageService(); - } - externalProject.setProjectErrors(watchOptionsAndErrors == null ? void 0 : watchOptionsAndErrors.errors); - this.updateRootAndOptionsOfNonInferredProject(externalProject, proj.rootFiles, externalFilePropertyReader, compilerOptions, proj.typeAcquisition, proj.options.compileOnSave, watchOptionsAndErrors == null ? void 0 : watchOptionsAndErrors.watchOptions); - externalProject.updateGraph(); - return; - } - this.closeExternalProject(proj.projectFileName); - } - else if (this.externalProjectToConfiguredProjectMap.get(proj.projectFileName)) { - if (!tsConfigFiles) { - this.closeExternalProject(proj.projectFileName); - } - else { - var oldConfigFiles = this.externalProjectToConfiguredProjectMap.get(proj.projectFileName); - var iNew = 0; - var iOld = 0; - while (iNew < tsConfigFiles.length && iOld < oldConfigFiles.length) { - var newConfig = tsConfigFiles[iNew]; - var oldConfig = oldConfigFiles[iOld]; - if (oldConfig < newConfig) { - this.closeConfiguredProjectReferencedFromExternalProject(oldConfig); - iOld++; - } - else if (oldConfig > newConfig) { - iNew++; - } - else { - (exisingConfigFiles || (exisingConfigFiles = [])).push(oldConfig); - iOld++; - iNew++; - } - } - for (var i = iOld; i < oldConfigFiles.length; i++) { - this.closeConfiguredProjectReferencedFromExternalProject(oldConfigFiles[i]); - } - } - } - if (tsConfigFiles) { - this.externalProjectToConfiguredProjectMap.set(proj.projectFileName, tsConfigFiles); - try { - for (var tsConfigFiles_1 = __values(tsConfigFiles), tsConfigFiles_1_1 = tsConfigFiles_1.next(); !tsConfigFiles_1_1.done; tsConfigFiles_1_1 = tsConfigFiles_1.next()) { - var tsconfigFile = tsConfigFiles_1_1.value; - var project = this.findConfiguredProjectByProjectName(tsconfigFile); - if (!project) { - project = this.getHostPreferences().lazyConfiguredProjectsFromExternalProject ? this.createConfiguredProjectWithDelayLoad(tsconfigFile, "Creating configured project in external project: ".concat(proj.projectFileName)) : this.createLoadAndUpdateConfiguredProject(tsconfigFile, "Creating configured project in external project: ".concat(proj.projectFileName)); - } - if (project && !contains(exisingConfigFiles, tsconfigFile)) { - project.addExternalProjectReference(); - } - } - } - catch (e_947_1) { e_947 = { error: e_947_1 }; } - finally { - try { - if (tsConfigFiles_1_1 && !tsConfigFiles_1_1.done && (_u = tsConfigFiles_1.return)) _u.call(tsConfigFiles_1); - } - finally { if (e_947) throw e_947.error; } - } - } - else { - this.externalProjectToConfiguredProjectMap.delete(proj.projectFileName); - var project = this.createExternalProject(proj.projectFileName, rootFiles, proj.options, proj.typeAcquisition, excludedFiles); - project.updateGraph(); - } - }; - _ProjectService.prototype.hasDeferredExtension = function () { - var e_948, _t; - try { - for (var _u = __values(this.hostConfiguration.extraFileExtensions), _v = _u.next(); !_v.done; _v = _u.next()) { - var extension = _v.value; - if (extension.scriptKind === 7 /* Deferred */) { - return true; - } - } - } - catch (e_948_1) { e_948 = { error: e_948_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_948) throw e_948.error; } - } - return false; - }; - /** - * Performs the initial steps of enabling a plugin by finding and instantiating the module for a plugin either asynchronously or synchronously - * @internal - */ - _ProjectService.prototype.requestEnablePlugin = function (project, pluginConfigEntry, searchPaths) { - var _this = this; - var _t; - if (!this.host.importPlugin && !this.host.require) { - this.logger.info("Plugins were requested but not running in environment that supports 'require'. Nothing will be loaded"); - return; - } - this.logger.info("Enabling plugin ".concat(pluginConfigEntry.name, " from candidate paths: ").concat(searchPaths.join(","))); - if (!pluginConfigEntry.name || parsePackageName(pluginConfigEntry.name).rest) { - this.logger.info("Skipped loading plugin ".concat(pluginConfigEntry.name || JSON.stringify(pluginConfigEntry), " because only package name is allowed plugin name")); - return; - } - if (this.host.importPlugin) { - var importPromise = Project3.importServicePluginAsync(pluginConfigEntry, searchPaths, this.host, function (s) { return _this.logger.info(s); }); - (_t = this.pendingPluginEnablements) !== null && _t !== void 0 ? _t : (this.pendingPluginEnablements = /* @__PURE__ */ new Map()); - var promises = this.pendingPluginEnablements.get(project); - if (!promises) - this.pendingPluginEnablements.set(project, promises = []); - promises.push(importPromise); - return; - } - this.endEnablePlugin(project, Project3.importServicePluginSync(pluginConfigEntry, searchPaths, this.host, function (s) { return _this.logger.info(s); })); - }; - /** - * Performs the remaining steps of enabling a plugin after its module has been instantiated. - * @internal - */ - _ProjectService.prototype.endEnablePlugin = function (project, _t) { - var _this = this; - var pluginConfigEntry = _t.pluginConfigEntry, resolvedModule = _t.resolvedModule, errorLogs = _t.errorLogs; - var _a; - if (resolvedModule) { - var configurationOverride = (_a = this.currentPluginConfigOverrides) == null ? void 0 : _a.get(pluginConfigEntry.name); - if (configurationOverride) { - var pluginName = pluginConfigEntry.name; - pluginConfigEntry = configurationOverride; - pluginConfigEntry.name = pluginName; - } - project.enableProxy(resolvedModule, pluginConfigEntry); - } - else { - forEach(errorLogs, function (message) { return _this.logger.info(message); }); - this.logger.info("Couldn't find ".concat(pluginConfigEntry.name)); - } - }; - /** @internal */ - _ProjectService.prototype.hasNewPluginEnablementRequests = function () { - return !!this.pendingPluginEnablements; - }; - /** @internal */ - _ProjectService.prototype.hasPendingPluginEnablements = function () { - return !!this.currentPluginEnablementPromise; - }; - /** - * Waits for any ongoing plugin enablement requests to complete. - * - * @internal - */ - _ProjectService.prototype.waitForPendingPlugins = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_t) { - switch (_t.label) { - case 0: - if (!this.currentPluginEnablementPromise) return [3 /*break*/, 2]; - return [4 /*yield*/, this.currentPluginEnablementPromise]; - case 1: - _t.sent(); - return [3 /*break*/, 0]; - case 2: return [2 /*return*/]; - } - }); - }); - }; - /** - * Starts enabling any requested plugins without waiting for the result. - * - * @internal - */ - _ProjectService.prototype.enableRequestedPlugins = function () { - if (this.pendingPluginEnablements) { - void this.enableRequestedPluginsAsync(); - } - }; - _ProjectService.prototype.enableRequestedPluginsAsync = function () { - return __awaiter(this, void 0, void 0, function () { - var entries; - return __generator(this, function (_t) { - switch (_t.label) { - case 0: - if (!this.currentPluginEnablementPromise) return [3 /*break*/, 2]; - return [4 /*yield*/, this.waitForPendingPlugins()]; - case 1: - _t.sent(); - _t.label = 2; - case 2: - if (!this.pendingPluginEnablements) { - return [2 /*return*/]; - } - entries = arrayFrom(this.pendingPluginEnablements.entries()); - this.pendingPluginEnablements = void 0; - this.currentPluginEnablementPromise = this.enableRequestedPluginsWorker(entries); - return [4 /*yield*/, this.currentPluginEnablementPromise]; - case 3: - _t.sent(); - return [2 /*return*/]; - } - }); - }); - }; - _ProjectService.prototype.enableRequestedPluginsWorker = function (pendingPlugins) { - return __awaiter(this, void 0, void 0, function () { - var _this = this; - return __generator(this, function (_t) { - switch (_t.label) { - case 0: - Debug.assert(this.currentPluginEnablementPromise === void 0); - return [4 /*yield*/, Promise.all(map(pendingPlugins, function (_t) { - var _u = __read(_t, 2), project = _u[0], promises = _u[1]; - return _this.enableRequestedPluginsForProjectAsync(project, promises); - }))]; - case 1: - _t.sent(); - this.currentPluginEnablementPromise = void 0; - this.sendProjectsUpdatedInBackgroundEvent(); - return [2 /*return*/]; - } - }); - }); - }; - _ProjectService.prototype.enableRequestedPluginsForProjectAsync = function (project, promises) { - return __awaiter(this, void 0, void 0, function () { - var results, results_1, results_1_1, result; - var e_949, _t; - return __generator(this, function (_u) { - switch (_u.label) { - case 0: return [4 /*yield*/, Promise.all(promises)]; - case 1: - results = _u.sent(); - if (project.isClosed()) { - return [2 /*return*/]; - } - try { - for (results_1 = __values(results), results_1_1 = results_1.next(); !results_1_1.done; results_1_1 = results_1.next()) { - result = results_1_1.value; - this.endEnablePlugin(project, result); - } - } - catch (e_949_1) { e_949 = { error: e_949_1 }; } - finally { - try { - if (results_1_1 && !results_1_1.done && (_t = results_1.return)) _t.call(results_1); - } - finally { if (e_949) throw e_949.error; } - } - this.delayUpdateProjectGraph(project); - return [2 /*return*/]; - } - }); - }); - }; - _ProjectService.prototype.configurePlugin = function (args) { - this.forEachEnabledProject(function (project) { return project.onPluginConfigurationChanged(args.pluginName, args.configuration); }); - this.currentPluginConfigOverrides = this.currentPluginConfigOverrides || /* @__PURE__ */ new Map(); - this.currentPluginConfigOverrides.set(args.pluginName, args.configuration); - }; - /** @internal */ - _ProjectService.prototype.getPackageJsonsVisibleToFile = function (fileName, rootDir) { - var _this = this; - var packageJsonCache = this.packageJsonCache; - var rootPath = rootDir && this.toPath(rootDir); - var filePath = this.toPath(fileName); - var result = []; - var processDirectory = function (directory) { - switch (packageJsonCache.directoryHasPackageJson(directory)) { - case 3 /* Maybe */: - packageJsonCache.searchDirectoryAndAncestors(directory); - return processDirectory(directory); - case -1 /* True */: - var packageJsonFileName = combinePaths(directory, "package.json"); - _this.watchPackageJsonFile(packageJsonFileName); - var info = packageJsonCache.getInDirectory(directory); - if (info) - result.push(info); - } - if (rootPath && rootPath === directory) { - return true; - } - }; - forEachAncestorDirectory(getDirectoryPath(filePath), processDirectory); - return result; - }; - /** @internal */ - _ProjectService.prototype.getNearestAncestorDirectoryWithPackageJson = function (fileName) { - var _this = this; - return forEachAncestorDirectory(fileName, function (directory) { - switch (_this.packageJsonCache.directoryHasPackageJson(_this.toPath(directory))) { - case -1 /* True */: - return directory; - case 0 /* False */: - return void 0; - case 3 /* Maybe */: - return _this.host.fileExists(combinePaths(directory, "package.json")) ? directory : void 0; - } - }); - }; - /** @internal */ - _ProjectService.prototype.watchPackageJsonFile = function (path) { - var _this = this; - var watchers = this.packageJsonFilesMap || (this.packageJsonFilesMap = /* @__PURE__ */ new Map()); - if (!watchers.has(path)) { - this.invalidateProjectPackageJson(path); - watchers.set(path, this.watchFactory.watchFile(path, function (fileName, eventKind) { - var path2 = _this.toPath(fileName); - switch (eventKind) { - case 0 /* Created */: - return Debug.fail(); - case 1 /* Changed */: - _this.packageJsonCache.addOrUpdate(path2); - _this.invalidateProjectPackageJson(path2); - break; - case 2 /* Deleted */: - _this.packageJsonCache.delete(path2); - _this.invalidateProjectPackageJson(path2); - watchers.get(path2).close(); - watchers.delete(path2); - } - }, 250 /* Low */, this.hostConfiguration.watchOptions, WatchType.PackageJson)); - } - }; - /** @internal */ - _ProjectService.prototype.onAddPackageJson = function (path) { - this.packageJsonCache.addOrUpdate(path); - this.watchPackageJsonFile(path); - }; - /** @internal */ - _ProjectService.prototype.includePackageJsonAutoImports = function () { - switch (this.hostConfiguration.preferences.includePackageJsonAutoImports) { - case "on": - return 1 /* On */; - case "off": - return 0 /* Off */; - default: - return 2 /* Auto */; - } - }; - /** @internal */ - _ProjectService.prototype.invalidateProjectPackageJson = function (packageJsonPath) { - this.configuredProjects.forEach(invalidate); - this.inferredProjects.forEach(invalidate); - this.externalProjects.forEach(invalidate); - function invalidate(project) { - if (packageJsonPath) { - project.onPackageJsonChange(packageJsonPath); - } - else { - project.onAutoImportProviderSettingsChanged(); - } - } - }; - /** @internal */ - _ProjectService.prototype.getIncompleteCompletionsCache = function () { - return this.incompleteCompletionsCache || (this.incompleteCompletionsCache = createIncompleteCompletionsCache()); - }; - return _ProjectService; -}()); -/** Makes a filename safe to insert in a RegExp */ -_ProjectService.filenameEscapeRegexp = /[-/\\^$*+?.()|\[\]{}]/g; -var ProjectService3 = _ProjectService; -function createIncompleteCompletionsCache() { - var info; - return { - get: function () { - return info; - }, - set: function (newInfo) { - info = newInfo; - }, - clear: function () { - info = void 0; - } - }; -} -function isConfigFile(config) { - return config.kind !== void 0; -} -function printProjectWithoutFileNames(project) { - project.print( - /*writeProjectFileNames*/ - false, - /*writeFileExplaination*/ - false, - /*writeFileVersionAndText*/ - false); -} -// src/server/moduleSpecifierCache.ts -function createModuleSpecifierCache(host) { - var containedNodeModulesWatchers; - var cache; - var currentKey; - var result = { - get: function (fromFileName, toFileName2, preferences, options) { - if (!cache || currentKey !== key(fromFileName, preferences, options)) - return void 0; - return cache.get(toFileName2); - }, - set: function (fromFileName, toFileName2, preferences, options, modulePaths, moduleSpecifiers) { - var e_950, _t; - ensureCache(fromFileName, preferences, options).set(toFileName2, createInfo(modulePaths, moduleSpecifiers, - /*isBlockedByPackageJsonDependencies*/ - false)); - if (moduleSpecifiers) { - try { - for (var modulePaths_2 = __values(modulePaths), modulePaths_2_1 = modulePaths_2.next(); !modulePaths_2_1.done; modulePaths_2_1 = modulePaths_2.next()) { - var p = modulePaths_2_1.value; - if (p.isInNodeModules) { - var nodeModulesPath = p.path.substring(0, p.path.indexOf(nodeModulesPathPart) + nodeModulesPathPart.length - 1); - if (!(containedNodeModulesWatchers == null ? void 0 : containedNodeModulesWatchers.has(nodeModulesPath))) { - (containedNodeModulesWatchers || (containedNodeModulesWatchers = /* @__PURE__ */ new Map())).set(nodeModulesPath, host.watchNodeModulesForPackageJsonChanges(nodeModulesPath)); - } - } - } - } - catch (e_950_1) { e_950 = { error: e_950_1 }; } - finally { - try { - if (modulePaths_2_1 && !modulePaths_2_1.done && (_t = modulePaths_2.return)) _t.call(modulePaths_2); - } - finally { if (e_950) throw e_950.error; } - } - } - }, - setModulePaths: function (fromFileName, toFileName2, preferences, options, modulePaths) { - var cache2 = ensureCache(fromFileName, preferences, options); - var info = cache2.get(toFileName2); - if (info) { - info.modulePaths = modulePaths; - } - else { - cache2.set(toFileName2, createInfo(modulePaths, - /*moduleSpecifiers*/ - void 0, - /*isBlockedByPackageJsonDependencies*/ - void 0)); - } - }, - setBlockedByPackageJsonDependencies: function (fromFileName, toFileName2, preferences, options, isBlockedByPackageJsonDependencies) { - var cache2 = ensureCache(fromFileName, preferences, options); - var info = cache2.get(toFileName2); - if (info) { - info.isBlockedByPackageJsonDependencies = isBlockedByPackageJsonDependencies; - } - else { - cache2.set(toFileName2, createInfo( - /*modulePaths*/ - void 0, - /*moduleSpecifiers*/ - void 0, isBlockedByPackageJsonDependencies)); - } - }, - clear: function () { - containedNodeModulesWatchers == null ? void 0 : containedNodeModulesWatchers.forEach(function (watcher) { return watcher.close(); }); - cache == null ? void 0 : cache.clear(); - containedNodeModulesWatchers == null ? void 0 : containedNodeModulesWatchers.clear(); - currentKey = void 0; - }, - count: function () { - return cache ? cache.size : 0; - } - }; - if (Debug.isDebugging) { - Object.defineProperty(result, "__cache", { get: function () { return cache; } }); - } - return result; - function ensureCache(fromFileName, preferences, options) { - var newKey = key(fromFileName, preferences, options); - if (cache && currentKey !== newKey) { - result.clear(); - } - currentKey = newKey; - return cache || (cache = /* @__PURE__ */ new Map()); - } - function key(fromFileName, preferences, options) { - return "".concat(fromFileName, ",").concat(preferences.importModuleSpecifierEnding, ",").concat(preferences.importModuleSpecifierPreference, ",").concat(options.overrideImportMode); - } - function createInfo(modulePaths, moduleSpecifiers, isBlockedByPackageJsonDependencies) { - return { modulePaths: modulePaths, moduleSpecifiers: moduleSpecifiers, isBlockedByPackageJsonDependencies: isBlockedByPackageJsonDependencies }; - } -} -// src/server/packageJsonCache.ts -function createPackageJsonCache(host) { - var packageJsons = /* @__PURE__ */ new Map(); - var directoriesWithoutPackageJson = /* @__PURE__ */ new Map(); - return { - addOrUpdate: addOrUpdate, - forEach: packageJsons.forEach.bind(packageJsons), - get: packageJsons.get.bind(packageJsons), - delete: function (fileName) { - packageJsons.delete(fileName); - directoriesWithoutPackageJson.set(getDirectoryPath(fileName), true); - }, - getInDirectory: function (directory) { - return packageJsons.get(combinePaths(directory, "package.json")) || void 0; - }, - directoryHasPackageJson: directoryHasPackageJson, - searchDirectoryAndAncestors: function (directory) { - forEachAncestorDirectory(directory, function (ancestor) { - if (directoryHasPackageJson(ancestor) !== 3 /* Maybe */) { - return true; - } - var packageJsonFileName = host.toPath(combinePaths(ancestor, "package.json")); - if (tryFileExists(host, packageJsonFileName)) { - addOrUpdate(packageJsonFileName); - } - else { - directoriesWithoutPackageJson.set(ancestor, true); - } - }); - } - }; - function addOrUpdate(fileName) { - var packageJsonInfo = Debug.checkDefined(createPackageJsonInfo(fileName, host.host)); - packageJsons.set(fileName, packageJsonInfo); - directoriesWithoutPackageJson.delete(getDirectoryPath(fileName)); - } - function directoryHasPackageJson(directory) { - return packageJsons.has(combinePaths(directory, "package.json")) ? -1 /* True */ : directoriesWithoutPackageJson.has(directory) ? 0 /* False */ : 3 /* Maybe */; - } -} -// src/server/session.ts -var nullCancellationToken = { - isCancellationRequested: function () { return false; }, - setRequest: function () { return void 0; }, - resetRequest: function () { return void 0; } -}; -function hrTimeToMilliseconds(time) { - var seconds = time[0]; - var nanoseconds = time[1]; - return (1e9 * seconds + nanoseconds) / 1e6; -} -function isDeclarationFileInJSOnlyNonConfiguredProject(project, file) { - if ((isInferredProject(project) || isExternalProject(project)) && project.isJsOnlyProject()) { - var scriptInfo = project.getScriptInfoForNormalizedPath(file); - return scriptInfo && !scriptInfo.isJavaScript(); - } - return false; -} -function dtsChangeCanAffectEmit(compilationSettings) { - return getEmitDeclarations(compilationSettings) || !!compilationSettings.emitDecoratorMetadata; -} -function formatDiag(fileName, project, diag2) { - var scriptInfo = project.getScriptInfoForNormalizedPath(fileName); - return { - start: scriptInfo.positionToLineOffset(diag2.start), - end: scriptInfo.positionToLineOffset(diag2.start + diag2.length), - // TODO: GH#18217 - text: flattenDiagnosticMessageText(diag2.messageText, "\n"), - code: diag2.code, - category: diagnosticCategoryName(diag2), - reportsUnnecessary: diag2.reportsUnnecessary, - reportsDeprecated: diag2.reportsDeprecated, - source: diag2.source, - relatedInformation: map(diag2.relatedInformation, formatRelatedInformation) - }; -} -function formatRelatedInformation(info) { - if (!info.file) { - return { - message: flattenDiagnosticMessageText(info.messageText, "\n"), - category: diagnosticCategoryName(info), - code: info.code - }; - } - return { - span: { - start: convertToLocation(getLineAndCharacterOfPosition(info.file, info.start)), - end: convertToLocation(getLineAndCharacterOfPosition(info.file, info.start + info.length)), - // TODO: GH#18217 - file: info.file.fileName - }, - message: flattenDiagnosticMessageText(info.messageText, "\n"), - category: diagnosticCategoryName(info), - code: info.code - }; -} -function convertToLocation(lineAndCharacter) { - return { line: lineAndCharacter.line + 1, offset: lineAndCharacter.character + 1 }; -} -function formatDiagnosticToProtocol(diag2, includeFileName) { - var start2 = diag2.file && convertToLocation(getLineAndCharacterOfPosition(diag2.file, diag2.start)); - var end = diag2.file && convertToLocation(getLineAndCharacterOfPosition(diag2.file, diag2.start + diag2.length)); - var text = flattenDiagnosticMessageText(diag2.messageText, "\n"); - var code = diag2.code, source = diag2.source; - var category = diagnosticCategoryName(diag2); - var common = { - start: start2, - end: end, - text: text, - code: code, - category: category, - reportsUnnecessary: diag2.reportsUnnecessary, - reportsDeprecated: diag2.reportsDeprecated, - source: source, - relatedInformation: map(diag2.relatedInformation, formatRelatedInformation) - }; - return includeFileName ? __assign(__assign({}, common), { fileName: diag2.file && diag2.file.fileName }) : common; -} -function allEditsBeforePos(edits, pos) { - return edits.every(function (edit) { return textSpanEnd(edit.span) < pos; }); -} -var CommandNames = CommandTypes; -function formatMessage2(msg, logger, byteLength, newLine) { - var verboseLogging = logger.hasLevel(3 /* verbose */); - var json = JSON.stringify(msg); - if (verboseLogging) { - logger.info("".concat(msg.type, ":").concat(indent2(JSON.stringify(msg, void 0, " ")))); - } - var len = byteLength(json, "utf8"); - return "Content-Length: ".concat(1 + len, "\r\n\r\n").concat(json).concat(newLine); -} -var MultistepOperation = /** @class */ (function () { - function MultistepOperation(operationHost) { - this.operationHost = operationHost; - } - MultistepOperation.prototype.startNew = function (action) { - this.complete(); - this.requestId = this.operationHost.getCurrentRequestId(); - this.executeAction(action); - }; - MultistepOperation.prototype.complete = function () { - if (this.requestId !== void 0) { - this.operationHost.sendRequestCompletedEvent(this.requestId); - this.requestId = void 0; - } - this.setTimerHandle(void 0); - this.setImmediateId(void 0); - }; - MultistepOperation.prototype.immediate = function (actionType, action) { - var _this = this; - var requestId = this.requestId; - Debug.assert(requestId === this.operationHost.getCurrentRequestId(), "immediate: incorrect request id"); - this.setImmediateId(this.operationHost.getServerHost().setImmediate(function () { - _this.immediateId = void 0; - _this.operationHost.executeWithRequestId(requestId, function () { return _this.executeAction(action); }); - }, actionType)); - }; - MultistepOperation.prototype.delay = function (actionType, ms, action) { - var _this = this; - var requestId = this.requestId; - Debug.assert(requestId === this.operationHost.getCurrentRequestId(), "delay: incorrect request id"); - this.setTimerHandle(this.operationHost.getServerHost().setTimeout(function () { - _this.timerHandle = void 0; - _this.operationHost.executeWithRequestId(requestId, function () { return _this.executeAction(action); }); - }, ms, actionType)); - }; - MultistepOperation.prototype.executeAction = function (action) { - var _a, _b, _c, _d, _e, _f; - var stop = false; - try { - if (this.operationHost.isCancellationRequested()) { - stop = true; - (_a = tracing) == null ? void 0 : _a.instant(tracing.Phase.Session, "stepCanceled", { seq: this.requestId, early: true }); - } - else { - (_b = tracing) == null ? void 0 : _b.push(tracing.Phase.Session, "stepAction", { seq: this.requestId }); - action(this); - (_c = tracing) == null ? void 0 : _c.pop(); - } - } - catch (e) { - (_d = tracing) == null ? void 0 : _d.popAll(); - stop = true; - if (e instanceof OperationCanceledException) { - (_e = tracing) == null ? void 0 : _e.instant(tracing.Phase.Session, "stepCanceled", { seq: this.requestId }); - } - else { - (_f = tracing) == null ? void 0 : _f.instant(tracing.Phase.Session, "stepError", { seq: this.requestId, message: e.message }); - this.operationHost.logError(e, "delayed processing of request ".concat(this.requestId)); - } - } - if (stop || !this.hasPendingWork()) { - this.complete(); - } - }; - MultistepOperation.prototype.setTimerHandle = function (timerHandle) { - if (this.timerHandle !== void 0) { - this.operationHost.getServerHost().clearTimeout(this.timerHandle); - } - this.timerHandle = timerHandle; - }; - MultistepOperation.prototype.setImmediateId = function (immediateId) { - if (this.immediateId !== void 0) { - this.operationHost.getServerHost().clearImmediate(this.immediateId); - } - this.immediateId = immediateId; - }; - MultistepOperation.prototype.hasPendingWork = function () { - return !!this.timerHandle || !!this.immediateId; - }; - return MultistepOperation; -}()); -function toEvent(eventName, body) { - return { - seq: 0, - type: "event", - event: eventName, - body: body - }; -} -function combineProjectOutput(defaultValue, getValue, projects, action) { - var outputs = flatMapToMutable(isArray(projects) ? projects : projects.projects, function (project) { return action(project, defaultValue); }); - if (!isArray(projects) && projects.symLinkedProjects) { - projects.symLinkedProjects.forEach(function (projects2, path) { - var value = getValue(path); - outputs.push.apply(outputs, __spreadArray([], __read(flatMap(projects2, function (project) { return action(project, value); })), false)); - }); - } - return deduplicate(outputs, equateValues); -} -function createDocumentSpanSet() { - return createSet(function (_t) { - var textSpan = _t.textSpan; - return textSpan.start + 100003 * textSpan.length; - }, documentSpansEqual); -} -function getRenameLocationsWorker(projects, defaultProject, initialLocation, findInStrings, findInComments, preferences) { - var perProjectResults = getPerProjectReferences(projects, defaultProject, initialLocation, - /*isForRename*/ - true, function (project, position) { return project.getLanguageService().findRenameLocations(position.fileName, position.pos, findInStrings, findInComments, preferences); }, function (renameLocation, cb) { return cb(documentSpanLocation(renameLocation)); }); - if (isArray(perProjectResults)) { - return perProjectResults; - } - var results = []; - var seen = createDocumentSpanSet(); - perProjectResults.forEach(function (projectResults, project) { - var e_951, _t; - try { - for (var projectResults_1 = __values(projectResults), projectResults_1_1 = projectResults_1.next(); !projectResults_1_1.done; projectResults_1_1 = projectResults_1.next()) { - var result = projectResults_1_1.value; - if (!seen.has(result) && !getMappedLocationForProject(documentSpanLocation(result), project)) { - results.push(result); - seen.add(result); - } - } - } - catch (e_951_1) { e_951 = { error: e_951_1 }; } - finally { - try { - if (projectResults_1_1 && !projectResults_1_1.done && (_t = projectResults_1.return)) _t.call(projectResults_1); - } - finally { if (e_951) throw e_951.error; } - } - }); - return results; -} -function getDefinitionLocation(defaultProject, initialLocation, isForRename) { - var infos = defaultProject.getLanguageService().getDefinitionAtPosition(initialLocation.fileName, initialLocation.pos, - /*searchOtherFilesOnly*/ - false, - /*stopAtAlias*/ - isForRename); - var info = infos && firstOrUndefined(infos); - return info && !info.isLocal ? { fileName: info.fileName, pos: info.textSpan.start } : void 0; -} -function getReferencesWorker(projects, defaultProject, initialLocation, logger) { - var e_952, _t, e_953, _u; - var _a, _b; - var perProjectResults = getPerProjectReferences(projects, defaultProject, initialLocation, - /*isForRename*/ - false, function (project, position) { - logger.info("Finding references to ".concat(position.fileName, " position ").concat(position.pos, " in project ").concat(project.getProjectName())); - return project.getLanguageService().findReferences(position.fileName, position.pos); - }, function (referencedSymbol, cb) { - var e_954, _t; - cb(documentSpanLocation(referencedSymbol.definition)); - try { - for (var _u = __values(referencedSymbol.references), _v = _u.next(); !_v.done; _v = _u.next()) { - var ref = _v.value; - cb(documentSpanLocation(ref)); - } - } - catch (e_954_1) { e_954 = { error: e_954_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_954) throw e_954.error; } - } - }); - if (isArray(perProjectResults)) { - return perProjectResults; - } - var defaultProjectResults = perProjectResults.get(defaultProject); - if (((_b = (_a = defaultProjectResults == null ? void 0 : defaultProjectResults[0]) == null ? void 0 : _a.references[0]) == null ? void 0 : _b.isDefinition) === void 0) { - perProjectResults.forEach(function (projectResults) { - var e_955, _t, e_956, _u; - try { - for (var projectResults_2 = __values(projectResults), projectResults_2_1 = projectResults_2.next(); !projectResults_2_1.done; projectResults_2_1 = projectResults_2.next()) { - var referencedSymbol = projectResults_2_1.value; - try { - for (var _v = (e_956 = void 0, __values(referencedSymbol.references)), _w = _v.next(); !_w.done; _w = _v.next()) { - var ref = _w.value; - delete ref.isDefinition; - } - } - catch (e_956_1) { e_956 = { error: e_956_1 }; } - finally { - try { - if (_w && !_w.done && (_u = _v.return)) _u.call(_v); - } - finally { if (e_956) throw e_956.error; } - } - } - } - catch (e_955_1) { e_955 = { error: e_955_1 }; } - finally { - try { - if (projectResults_2_1 && !projectResults_2_1.done && (_t = projectResults_2.return)) _t.call(projectResults_2); - } - finally { if (e_955) throw e_955.error; } - } - }); - } - else { - var knownSymbolSpans_1 = createDocumentSpanSet(); - try { - for (var defaultProjectResults_1 = __values(defaultProjectResults), defaultProjectResults_1_1 = defaultProjectResults_1.next(); !defaultProjectResults_1_1.done; defaultProjectResults_1_1 = defaultProjectResults_1.next()) { - var referencedSymbol = defaultProjectResults_1_1.value; - try { - for (var _v = (e_953 = void 0, __values(referencedSymbol.references)), _w = _v.next(); !_w.done; _w = _v.next()) { - var ref = _w.value; - if (ref.isDefinition) { - knownSymbolSpans_1.add(ref); - break; - } - } - } - catch (e_953_1) { e_953 = { error: e_953_1 }; } - finally { - try { - if (_w && !_w.done && (_u = _v.return)) _u.call(_v); - } - finally { if (e_953) throw e_953.error; } - } - } - } - catch (e_952_1) { e_952 = { error: e_952_1 }; } - finally { - try { - if (defaultProjectResults_1_1 && !defaultProjectResults_1_1.done && (_t = defaultProjectResults_1.return)) _t.call(defaultProjectResults_1); - } - finally { if (e_952) throw e_952.error; } - } - var updatedProjects_1 = /* @__PURE__ */ new Set(); - var _loop_71 = function () { - var progress = false; - perProjectResults.forEach(function (referencedSymbols, project) { - if (updatedProjects_1.has(project)) - return; - var updated = project.getLanguageService().updateIsDefinitionOfReferencedSymbols(referencedSymbols, knownSymbolSpans_1); - if (updated) { - updatedProjects_1.add(project); - progress = true; - } - }); - if (!progress) - return "break"; - }; - while (true) { - var state_20 = _loop_71(); - if (state_20 === "break") - break; - } - perProjectResults.forEach(function (referencedSymbols, project) { - var e_957, _t, e_958, _u; - if (updatedProjects_1.has(project)) - return; - try { - for (var referencedSymbols_3 = __values(referencedSymbols), referencedSymbols_3_1 = referencedSymbols_3.next(); !referencedSymbols_3_1.done; referencedSymbols_3_1 = referencedSymbols_3.next()) { - var referencedSymbol = referencedSymbols_3_1.value; - try { - for (var _v = (e_958 = void 0, __values(referencedSymbol.references)), _w = _v.next(); !_w.done; _w = _v.next()) { - var ref = _w.value; - ref.isDefinition = false; - } - } - catch (e_958_1) { e_958 = { error: e_958_1 }; } - finally { - try { - if (_w && !_w.done && (_u = _v.return)) _u.call(_v); - } - finally { if (e_958) throw e_958.error; } - } - } - } - catch (e_957_1) { e_957 = { error: e_957_1 }; } - finally { - try { - if (referencedSymbols_3_1 && !referencedSymbols_3_1.done && (_t = referencedSymbols_3.return)) _t.call(referencedSymbols_3); - } - finally { if (e_957) throw e_957.error; } - } - }); - } - var results = []; - var seenRefs = createDocumentSpanSet(); - perProjectResults.forEach(function (projectResults, project) { - var e_959, _t; - var _loop_72 = function (referencedSymbol) { - var e_960, _u; - var mappedDefinitionFile = getMappedLocationForProject(documentSpanLocation(referencedSymbol.definition), project); - var definition = mappedDefinitionFile === void 0 ? referencedSymbol.definition : __assign(__assign({}, referencedSymbol.definition), { textSpan: createTextSpan(mappedDefinitionFile.pos, referencedSymbol.definition.textSpan.length), - // Why would the length be the same in the original? - fileName: mappedDefinitionFile.fileName, contextSpan: getMappedContextSpanForProject(referencedSymbol.definition, project) }); - var symbolToAddTo = find(results, function (o) { return documentSpansEqual(o.definition, definition); }); - if (!symbolToAddTo) { - symbolToAddTo = { definition: definition, references: [] }; - results.push(symbolToAddTo); - } - try { - for (var _v = (e_960 = void 0, __values(referencedSymbol.references)), _w = _v.next(); !_w.done; _w = _v.next()) { - var ref = _w.value; - if (!seenRefs.has(ref) && !getMappedLocationForProject(documentSpanLocation(ref), project)) { - seenRefs.add(ref); - symbolToAddTo.references.push(ref); - } - } - } - catch (e_960_1) { e_960 = { error: e_960_1 }; } - finally { - try { - if (_w && !_w.done && (_u = _v.return)) _u.call(_v); - } - finally { if (e_960) throw e_960.error; } - } - }; - try { - for (var projectResults_3 = __values(projectResults), projectResults_3_1 = projectResults_3.next(); !projectResults_3_1.done; projectResults_3_1 = projectResults_3.next()) { - var referencedSymbol = projectResults_3_1.value; - _loop_72(referencedSymbol); - } - } - catch (e_959_1) { e_959 = { error: e_959_1 }; } - finally { - try { - if (projectResults_3_1 && !projectResults_3_1.done && (_t = projectResults_3.return)) _t.call(projectResults_3); - } - finally { if (e_959) throw e_959.error; } - } - }); - return results.filter(function (o) { return o.references.length !== 0; }); -} -function forEachProjectInProjects(projects, path, cb) { - var e_961, _t; - try { - for (var _u = __values(isArray(projects) ? projects : projects.projects), _v = _u.next(); !_v.done; _v = _u.next()) { - var project = _v.value; - cb(project, path); - } - } - catch (e_961_1) { e_961 = { error: e_961_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_961) throw e_961.error; } - } - if (!isArray(projects) && projects.symLinkedProjects) { - projects.symLinkedProjects.forEach(function (symlinkedProjects, symlinkedPath) { - var e_962, _t; - try { - for (var symlinkedProjects_1 = __values(symlinkedProjects), symlinkedProjects_1_1 = symlinkedProjects_1.next(); !symlinkedProjects_1_1.done; symlinkedProjects_1_1 = symlinkedProjects_1.next()) { - var project = symlinkedProjects_1_1.value; - cb(project, symlinkedPath); - } - } - catch (e_962_1) { e_962 = { error: e_962_1 }; } - finally { - try { - if (symlinkedProjects_1_1 && !symlinkedProjects_1_1.done && (_t = symlinkedProjects_1.return)) _t.call(symlinkedProjects_1); - } - finally { if (e_962) throw e_962.error; } - } - }); - } -} -function getPerProjectReferences(projects, defaultProject, initialLocation, isForRename, getResultsForPosition, forPositionInResult) { - var resultsMap = /* @__PURE__ */ new Map(); - var queue = createQueue(); - queue.enqueue({ project: defaultProject, location: initialLocation }); - forEachProjectInProjects(projects, initialLocation.fileName, function (project, path) { - var location = { fileName: path, pos: initialLocation.pos }; - queue.enqueue({ project: project, location: location }); - }); - var projectService = defaultProject.projectService; - var cancellationToken = defaultProject.getCancellationToken(); - var defaultDefinition = getDefinitionLocation(defaultProject, initialLocation, isForRename); - var getGeneratedDefinition = memoize(function () { return defaultProject.isSourceOfProjectReferenceRedirect(defaultDefinition.fileName) ? defaultDefinition : defaultProject.getLanguageService().getSourceMapper().tryGetGeneratedPosition(defaultDefinition); }); - var getSourceDefinition = memoize(function () { return defaultProject.isSourceOfProjectReferenceRedirect(defaultDefinition.fileName) ? defaultDefinition : defaultProject.getLanguageService().getSourceMapper().tryGetSourcePosition(defaultDefinition); }); - var searchedProjectKeys = /* @__PURE__ */ new Set(); - onCancellation: while (!queue.isEmpty()) { - while (!queue.isEmpty()) { - if (cancellationToken.isCancellationRequested()) - break onCancellation; - var _t = queue.dequeue(), project = _t.project, location_14 = _t.location; - if (resultsMap.has(project)) - continue; - if (isLocationProjectReferenceRedirect(project, location_14)) - continue; - updateProjectIfDirty(project); - if (!project.containsFile(toNormalizedPath(location_14.fileName))) { - continue; - } - var projectResults = searchPosition(project, location_14); - resultsMap.set(project, projectResults !== null && projectResults !== void 0 ? projectResults : emptyArray2); - searchedProjectKeys.add(getProjectKey(project)); - } - if (defaultDefinition) { - projectService.loadAncestorProjectTree(searchedProjectKeys); - projectService.forEachEnabledProject(function (project) { - if (cancellationToken.isCancellationRequested()) - return; - if (resultsMap.has(project)) - return; - var location = mapDefinitionInProject(defaultDefinition, project, getGeneratedDefinition, getSourceDefinition); - if (location) { - queue.enqueue({ project: project, location: location }); - } - }); - } - } - if (resultsMap.size === 1) { - return firstIterator(resultsMap.values()); - } - return resultsMap; - function searchPosition(project, location) { - var e_963, _t; - var projectResults = getResultsForPosition(project, location); - if (!projectResults) - return void 0; - try { - for (var projectResults_4 = __values(projectResults), projectResults_4_1 = projectResults_4.next(); !projectResults_4_1.done; projectResults_4_1 = projectResults_4.next()) { - var result = projectResults_4_1.value; - forPositionInResult(result, function (position) { - var e_964, _t; - var originalLocation = projectService.getOriginalLocationEnsuringConfiguredProject(project, position); - if (!originalLocation) - return; - var originalScriptInfo = projectService.getScriptInfo(originalLocation.fileName); - try { - for (var _u = (e_964 = void 0, __values(originalScriptInfo.containingProjects)), _v = _u.next(); !_v.done; _v = _u.next()) { - var project2 = _v.value; - if (!project2.isOrphan() && !resultsMap.has(project2)) { - queue.enqueue({ project: project2, location: originalLocation }); - } - } - } - catch (e_964_1) { e_964 = { error: e_964_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_964) throw e_964.error; } - } - var symlinkedProjectsMap = projectService.getSymlinkedProjects(originalScriptInfo); - if (symlinkedProjectsMap) { - symlinkedProjectsMap.forEach(function (symlinkedProjects, symlinkedPath) { - var e_965, _t; - try { - for (var symlinkedProjects_2 = (e_965 = void 0, __values(symlinkedProjects)), symlinkedProjects_2_1 = symlinkedProjects_2.next(); !symlinkedProjects_2_1.done; symlinkedProjects_2_1 = symlinkedProjects_2.next()) { - var symlinkedProject = symlinkedProjects_2_1.value; - if (!symlinkedProject.isOrphan() && !resultsMap.has(symlinkedProject)) { - queue.enqueue({ project: symlinkedProject, location: { fileName: symlinkedPath, pos: originalLocation.pos } }); - } - } - } - catch (e_965_1) { e_965 = { error: e_965_1 }; } - finally { - try { - if (symlinkedProjects_2_1 && !symlinkedProjects_2_1.done && (_t = symlinkedProjects_2.return)) _t.call(symlinkedProjects_2); - } - finally { if (e_965) throw e_965.error; } - } - }); - } - }); - } - } - catch (e_963_1) { e_963 = { error: e_963_1 }; } - finally { - try { - if (projectResults_4_1 && !projectResults_4_1.done && (_t = projectResults_4.return)) _t.call(projectResults_4); - } - finally { if (e_963) throw e_963.error; } - } - return projectResults; - } -} -function mapDefinitionInProject(definition, project, getGeneratedDefinition, getSourceDefinition) { - if (project.containsFile(toNormalizedPath(definition.fileName)) && !isLocationProjectReferenceRedirect(project, definition)) { - return definition; - } - var generatedDefinition = getGeneratedDefinition(); - if (generatedDefinition && project.containsFile(toNormalizedPath(generatedDefinition.fileName))) - return generatedDefinition; - var sourceDefinition = getSourceDefinition(); - return sourceDefinition && project.containsFile(toNormalizedPath(sourceDefinition.fileName)) ? sourceDefinition : void 0; -} -function isLocationProjectReferenceRedirect(project, location) { - if (!location) - return false; - var program = project.getLanguageService().getProgram(); - if (!program) - return false; - var sourceFile = program.getSourceFile(location.fileName); - return !!sourceFile && sourceFile.resolvedPath !== sourceFile.path && sourceFile.resolvedPath !== project.toPath(location.fileName); -} -function getProjectKey(project) { - return isConfiguredProject(project) ? project.canonicalConfigFilePath : project.getProjectName(); -} -function documentSpanLocation(_t) { - var fileName = _t.fileName, textSpan = _t.textSpan; - return { fileName: fileName, pos: textSpan.start }; -} -function getMappedLocationForProject(location, project) { - return getMappedLocation(location, project.getSourceMapper(), function (p) { return project.projectService.fileExists(p); }); -} -function getMappedDocumentSpanForProject(documentSpan, project) { - return getMappedDocumentSpan(documentSpan, project.getSourceMapper(), function (p) { return project.projectService.fileExists(p); }); -} -function getMappedContextSpanForProject(documentSpan, project) { - return getMappedContextSpan(documentSpan, project.getSourceMapper(), function (p) { return project.projectService.fileExists(p); }); -} -var invalidPartialSemanticModeCommands = [ - "openExternalProject" /* OpenExternalProject */, - "openExternalProjects" /* OpenExternalProjects */, - "closeExternalProject" /* CloseExternalProject */, - "synchronizeProjectList" /* SynchronizeProjectList */, - "emit-output" /* EmitOutput */, - "compileOnSaveAffectedFileList" /* CompileOnSaveAffectedFileList */, - "compileOnSaveEmitFile" /* CompileOnSaveEmitFile */, - "compilerOptionsDiagnostics-full" /* CompilerOptionsDiagnosticsFull */, - "encodedSemanticClassifications-full" /* EncodedSemanticClassificationsFull */, - "semanticDiagnosticsSync" /* SemanticDiagnosticsSync */, - "suggestionDiagnosticsSync" /* SuggestionDiagnosticsSync */, - "geterrForProject" /* GeterrForProject */, - "reload" /* Reload */, - "reloadProjects" /* ReloadProjects */, - "getCodeFixes" /* GetCodeFixes */, - "getCodeFixes-full" /* GetCodeFixesFull */, - "getCombinedCodeFix" /* GetCombinedCodeFix */, - "getCombinedCodeFix-full" /* GetCombinedCodeFixFull */, - "applyCodeActionCommand" /* ApplyCodeActionCommand */, - "getSupportedCodeFixes" /* GetSupportedCodeFixes */, - "getApplicableRefactors" /* GetApplicableRefactors */, - "getMoveToRefactoringFileSuggestions" /* GetMoveToRefactoringFileSuggestions */, - "getEditsForRefactor" /* GetEditsForRefactor */, - "getEditsForRefactor-full" /* GetEditsForRefactorFull */, - "organizeImports" /* OrganizeImports */, - "organizeImports-full" /* OrganizeImportsFull */, - "getEditsForFileRename" /* GetEditsForFileRename */, - "getEditsForFileRename-full" /* GetEditsForFileRenameFull */, - "prepareCallHierarchy" /* PrepareCallHierarchy */, - "provideCallHierarchyIncomingCalls" /* ProvideCallHierarchyIncomingCalls */, - "provideCallHierarchyOutgoingCalls" /* ProvideCallHierarchyOutgoingCalls */ -]; -var invalidSyntacticModeCommands = __spreadArray(__spreadArray([], __read(invalidPartialSemanticModeCommands), false), [ - "definition" /* Definition */, - "definition-full" /* DefinitionFull */, - "definitionAndBoundSpan" /* DefinitionAndBoundSpan */, - "definitionAndBoundSpan-full" /* DefinitionAndBoundSpanFull */, - "typeDefinition" /* TypeDefinition */, - "implementation" /* Implementation */, - "implementation-full" /* ImplementationFull */, - "references" /* References */, - "references-full" /* ReferencesFull */, - "rename" /* Rename */, - "renameLocations-full" /* RenameLocationsFull */, - "rename-full" /* RenameInfoFull */, - "quickinfo" /* Quickinfo */, - "quickinfo-full" /* QuickinfoFull */, - "completionInfo" /* CompletionInfo */, - "completions" /* Completions */, - "completions-full" /* CompletionsFull */, - "completionEntryDetails" /* CompletionDetails */, - "completionEntryDetails-full" /* CompletionDetailsFull */, - "signatureHelp" /* SignatureHelp */, - "signatureHelp-full" /* SignatureHelpFull */, - "navto" /* Navto */, - "navto-full" /* NavtoFull */, - "documentHighlights" /* DocumentHighlights */, - "documentHighlights-full" /* DocumentHighlightsFull */ -], false); -var Session3 = /** @class */ (function () { - function _Session(opts) { - var _t; - var _this = this; - this.changeSeq = 0; - this.handlers = new Map(Object.entries((_t = {}, - // TODO(jakebailey): correctly type the handlers - _t["status" /* Status */] = function () { - var response = { version: version }; - return _this.requiredResponse(response); - }, - _t["openExternalProject" /* OpenExternalProject */] = function (request) { - _this.projectService.openExternalProject(request.arguments); - return _this.requiredResponse( - /*response*/ - true); - }, - _t["openExternalProjects" /* OpenExternalProjects */] = function (request) { - _this.projectService.openExternalProjects(request.arguments.projects); - return _this.requiredResponse( - /*response*/ - true); - }, - _t["closeExternalProject" /* CloseExternalProject */] = function (request) { - _this.projectService.closeExternalProject(request.arguments.projectFileName); - return _this.requiredResponse( - /*response*/ - true); - }, - _t["synchronizeProjectList" /* SynchronizeProjectList */] = function (request) { - var result = _this.projectService.synchronizeProjectList(request.arguments.knownProjects, request.arguments.includeProjectReferenceRedirectInfo); - if (!result.some(function (p) { return p.projectErrors && p.projectErrors.length !== 0; })) { - return _this.requiredResponse(result); - } - var converted = map(result, function (p) { - if (!p.projectErrors || p.projectErrors.length === 0) { - return p; - } - return { - info: p.info, - changes: p.changes, - files: p.files, - projectErrors: _this.convertToDiagnosticsWithLinePosition(p.projectErrors, - /*scriptInfo*/ - void 0) - }; - }); - return _this.requiredResponse(converted); - }, - _t["updateOpen" /* UpdateOpen */] = function (request) { - _this.changeSeq++; - _this.projectService.applyChangesInOpenFiles(request.arguments.openFiles && mapIterator(request.arguments.openFiles, function (file) { return ({ - fileName: file.file, - content: file.fileContent, - scriptKind: file.scriptKindName, - projectRootPath: file.projectRootPath - }); }), request.arguments.changedFiles && mapIterator(request.arguments.changedFiles, function (file) { return ({ - fileName: file.fileName, - changes: mapDefinedIterator(arrayReverseIterator(file.textChanges), function (change) { - var scriptInfo = Debug.checkDefined(_this.projectService.getScriptInfo(file.fileName)); - var start2 = scriptInfo.lineOffsetToPosition(change.start.line, change.start.offset); - var end = scriptInfo.lineOffsetToPosition(change.end.line, change.end.offset); - return start2 >= 0 ? { span: { start: start2, length: end - start2 }, newText: change.newText } : void 0; - }) - }); }), request.arguments.closedFiles); - return _this.requiredResponse( - /*response*/ - true); - }, - _t["applyChangedToOpenFiles" /* ApplyChangedToOpenFiles */] = function (request) { - _this.changeSeq++; - _this.projectService.applyChangesInOpenFiles(request.arguments.openFiles, request.arguments.changedFiles && mapIterator(request.arguments.changedFiles, function (file) { return ({ - fileName: file.fileName, - // apply changes in reverse order - changes: arrayReverseIterator(file.changes) - }); }), request.arguments.closedFiles); - return _this.requiredResponse( - /*response*/ - true); - }, - _t["exit" /* Exit */] = function () { - _this.exit(); - return _this.notRequired(); - }, - _t["definition" /* Definition */] = function (request) { - return _this.requiredResponse(_this.getDefinition(request.arguments, - /*simplifiedResult*/ - true)); - }, - _t["definition-full" /* DefinitionFull */] = function (request) { - return _this.requiredResponse(_this.getDefinition(request.arguments, - /*simplifiedResult*/ - false)); - }, - _t["definitionAndBoundSpan" /* DefinitionAndBoundSpan */] = function (request) { - return _this.requiredResponse(_this.getDefinitionAndBoundSpan(request.arguments, - /*simplifiedResult*/ - true)); - }, - _t["definitionAndBoundSpan-full" /* DefinitionAndBoundSpanFull */] = function (request) { - return _this.requiredResponse(_this.getDefinitionAndBoundSpan(request.arguments, - /*simplifiedResult*/ - false)); - }, - _t["findSourceDefinition" /* FindSourceDefinition */] = function (request) { - return _this.requiredResponse(_this.findSourceDefinition(request.arguments)); - }, - _t["emit-output" /* EmitOutput */] = function (request) { - return _this.requiredResponse(_this.getEmitOutput(request.arguments)); - }, - _t["typeDefinition" /* TypeDefinition */] = function (request) { - return _this.requiredResponse(_this.getTypeDefinition(request.arguments)); - }, - _t["implementation" /* Implementation */] = function (request) { - return _this.requiredResponse(_this.getImplementation(request.arguments, - /*simplifiedResult*/ - true)); - }, - _t["implementation-full" /* ImplementationFull */] = function (request) { - return _this.requiredResponse(_this.getImplementation(request.arguments, - /*simplifiedResult*/ - false)); - }, - _t["references" /* References */] = function (request) { - return _this.requiredResponse(_this.getReferences(request.arguments, - /*simplifiedResult*/ - true)); - }, - _t["references-full" /* ReferencesFull */] = function (request) { - return _this.requiredResponse(_this.getReferences(request.arguments, - /*simplifiedResult*/ - false)); - }, - _t["rename" /* Rename */] = function (request) { - return _this.requiredResponse(_this.getRenameLocations(request.arguments, - /*simplifiedResult*/ - true)); - }, - _t["renameLocations-full" /* RenameLocationsFull */] = function (request) { - return _this.requiredResponse(_this.getRenameLocations(request.arguments, - /*simplifiedResult*/ - false)); - }, - _t["rename-full" /* RenameInfoFull */] = function (request) { - return _this.requiredResponse(_this.getRenameInfo(request.arguments)); - }, - _t["open" /* Open */] = function (request) { - _this.openClientFile(toNormalizedPath(request.arguments.file), request.arguments.fileContent, convertScriptKindName(request.arguments.scriptKindName), - // TODO: GH#18217 - request.arguments.projectRootPath ? toNormalizedPath(request.arguments.projectRootPath) : void 0); - return _this.notRequired(); - }, - _t["quickinfo" /* Quickinfo */] = function (request) { - return _this.requiredResponse(_this.getQuickInfoWorker(request.arguments, - /*simplifiedResult*/ - true)); - }, - _t["quickinfo-full" /* QuickinfoFull */] = function (request) { - return _this.requiredResponse(_this.getQuickInfoWorker(request.arguments, - /*simplifiedResult*/ - false)); - }, - _t["getOutliningSpans" /* GetOutliningSpans */] = function (request) { - return _this.requiredResponse(_this.getOutliningSpans(request.arguments, - /*simplifiedResult*/ - true)); - }, - _t["outliningSpans" /* GetOutliningSpansFull */] = function (request) { - return _this.requiredResponse(_this.getOutliningSpans(request.arguments, - /*simplifiedResult*/ - false)); - }, - _t["todoComments" /* TodoComments */] = function (request) { - return _this.requiredResponse(_this.getTodoComments(request.arguments)); - }, - _t["indentation" /* Indentation */] = function (request) { - return _this.requiredResponse(_this.getIndentation(request.arguments)); - }, - _t["nameOrDottedNameSpan" /* NameOrDottedNameSpan */] = function (request) { - return _this.requiredResponse(_this.getNameOrDottedNameSpan(request.arguments)); - }, - _t["breakpointStatement" /* BreakpointStatement */] = function (request) { - return _this.requiredResponse(_this.getBreakpointStatement(request.arguments)); - }, - _t["braceCompletion" /* BraceCompletion */] = function (request) { - return _this.requiredResponse(_this.isValidBraceCompletion(request.arguments)); - }, - _t["docCommentTemplate" /* DocCommentTemplate */] = function (request) { - return _this.requiredResponse(_this.getDocCommentTemplate(request.arguments)); - }, - _t["getSpanOfEnclosingComment" /* GetSpanOfEnclosingComment */] = function (request) { - return _this.requiredResponse(_this.getSpanOfEnclosingComment(request.arguments)); - }, - _t["fileReferences" /* FileReferences */] = function (request) { - return _this.requiredResponse(_this.getFileReferences(request.arguments, - /*simplifiedResult*/ - true)); - }, - _t["fileReferences-full" /* FileReferencesFull */] = function (request) { - return _this.requiredResponse(_this.getFileReferences(request.arguments, - /*simplifiedResult*/ - false)); - }, - _t["format" /* Format */] = function (request) { - return _this.requiredResponse(_this.getFormattingEditsForRange(request.arguments)); - }, - _t["formatonkey" /* Formatonkey */] = function (request) { - return _this.requiredResponse(_this.getFormattingEditsAfterKeystroke(request.arguments)); - }, - _t["format-full" /* FormatFull */] = function (request) { - return _this.requiredResponse(_this.getFormattingEditsForDocumentFull(request.arguments)); - }, - _t["formatonkey-full" /* FormatonkeyFull */] = function (request) { - return _this.requiredResponse(_this.getFormattingEditsAfterKeystrokeFull(request.arguments)); - }, - _t["formatRange-full" /* FormatRangeFull */] = function (request) { - return _this.requiredResponse(_this.getFormattingEditsForRangeFull(request.arguments)); - }, - _t["completionInfo" /* CompletionInfo */] = function (request) { - return _this.requiredResponse(_this.getCompletions(request.arguments, "completionInfo" /* CompletionInfo */)); - }, - _t["completions" /* Completions */] = function (request) { - return _this.requiredResponse(_this.getCompletions(request.arguments, "completions" /* Completions */)); - }, - _t["completions-full" /* CompletionsFull */] = function (request) { - return _this.requiredResponse(_this.getCompletions(request.arguments, "completions-full" /* CompletionsFull */)); - }, - _t["completionEntryDetails" /* CompletionDetails */] = function (request) { - return _this.requiredResponse(_this.getCompletionEntryDetails(request.arguments, - /*fullResult*/ - false)); - }, - _t["completionEntryDetails-full" /* CompletionDetailsFull */] = function (request) { - return _this.requiredResponse(_this.getCompletionEntryDetails(request.arguments, - /*fullResult*/ - true)); - }, - _t["compileOnSaveAffectedFileList" /* CompileOnSaveAffectedFileList */] = function (request) { - return _this.requiredResponse(_this.getCompileOnSaveAffectedFileList(request.arguments)); - }, - _t["compileOnSaveEmitFile" /* CompileOnSaveEmitFile */] = function (request) { - return _this.requiredResponse(_this.emitFile(request.arguments)); - }, - _t["signatureHelp" /* SignatureHelp */] = function (request) { - return _this.requiredResponse(_this.getSignatureHelpItems(request.arguments, - /*simplifiedResult*/ - true)); - }, - _t["signatureHelp-full" /* SignatureHelpFull */] = function (request) { - return _this.requiredResponse(_this.getSignatureHelpItems(request.arguments, - /*simplifiedResult*/ - false)); - }, - _t["compilerOptionsDiagnostics-full" /* CompilerOptionsDiagnosticsFull */] = function (request) { - return _this.requiredResponse(_this.getCompilerOptionsDiagnostics(request.arguments)); - }, - _t["encodedSyntacticClassifications-full" /* EncodedSyntacticClassificationsFull */] = function (request) { - return _this.requiredResponse(_this.getEncodedSyntacticClassifications(request.arguments)); - }, - _t["encodedSemanticClassifications-full" /* EncodedSemanticClassificationsFull */] = function (request) { - return _this.requiredResponse(_this.getEncodedSemanticClassifications(request.arguments)); - }, - _t["cleanup" /* Cleanup */] = function () { - _this.cleanup(); - return _this.requiredResponse( - /*response*/ - true); - }, - _t["semanticDiagnosticsSync" /* SemanticDiagnosticsSync */] = function (request) { - return _this.requiredResponse(_this.getSemanticDiagnosticsSync(request.arguments)); - }, - _t["syntacticDiagnosticsSync" /* SyntacticDiagnosticsSync */] = function (request) { - return _this.requiredResponse(_this.getSyntacticDiagnosticsSync(request.arguments)); - }, - _t["suggestionDiagnosticsSync" /* SuggestionDiagnosticsSync */] = function (request) { - return _this.requiredResponse(_this.getSuggestionDiagnosticsSync(request.arguments)); - }, - _t["geterr" /* Geterr */] = function (request) { - _this.errorCheck.startNew(function (next) { return _this.getDiagnostics(next, request.arguments.delay, request.arguments.files); }); - return _this.notRequired(); - }, - _t["geterrForProject" /* GeterrForProject */] = function (request) { - _this.errorCheck.startNew(function (next) { return _this.getDiagnosticsForProject(next, request.arguments.delay, request.arguments.file); }); - return _this.notRequired(); - }, - _t["change" /* Change */] = function (request) { - _this.change(request.arguments); - return _this.notRequired(); - }, - _t["configure" /* Configure */] = function (request) { - _this.projectService.setHostConfiguration(request.arguments); - _this.doOutput( - /*info*/ - void 0, "configure" /* Configure */, request.seq, - /*success*/ - true); - return _this.notRequired(); - }, - _t["reload" /* Reload */] = function (request) { - _this.reload(request.arguments, request.seq); - return _this.requiredResponse({ reloadFinished: true }); - }, - _t["saveto" /* Saveto */] = function (request) { - var savetoArgs = request.arguments; - _this.saveToTmp(savetoArgs.file, savetoArgs.tmpfile); - return _this.notRequired(); - }, - _t["close" /* Close */] = function (request) { - var closeArgs = request.arguments; - _this.closeClientFile(closeArgs.file); - return _this.notRequired(); - }, - _t["navto" /* Navto */] = function (request) { - return _this.requiredResponse(_this.getNavigateToItems(request.arguments, - /*simplifiedResult*/ - true)); - }, - _t["navto-full" /* NavtoFull */] = function (request) { - return _this.requiredResponse(_this.getNavigateToItems(request.arguments, - /*simplifiedResult*/ - false)); - }, - _t["brace" /* Brace */] = function (request) { - return _this.requiredResponse(_this.getBraceMatching(request.arguments, - /*simplifiedResult*/ - true)); - }, - _t["brace-full" /* BraceFull */] = function (request) { - return _this.requiredResponse(_this.getBraceMatching(request.arguments, - /*simplifiedResult*/ - false)); - }, - _t["navbar" /* NavBar */] = function (request) { - return _this.requiredResponse(_this.getNavigationBarItems(request.arguments, - /*simplifiedResult*/ - true)); - }, - _t["navbar-full" /* NavBarFull */] = function (request) { - return _this.requiredResponse(_this.getNavigationBarItems(request.arguments, - /*simplifiedResult*/ - false)); - }, - _t["navtree" /* NavTree */] = function (request) { - return _this.requiredResponse(_this.getNavigationTree(request.arguments, - /*simplifiedResult*/ - true)); - }, - _t["navtree-full" /* NavTreeFull */] = function (request) { - return _this.requiredResponse(_this.getNavigationTree(request.arguments, - /*simplifiedResult*/ - false)); - }, - _t["documentHighlights" /* DocumentHighlights */] = function (request) { - return _this.requiredResponse(_this.getDocumentHighlights(request.arguments, - /*simplifiedResult*/ - true)); - }, - _t["documentHighlights-full" /* DocumentHighlightsFull */] = function (request) { - return _this.requiredResponse(_this.getDocumentHighlights(request.arguments, - /*simplifiedResult*/ - false)); - }, - _t["compilerOptionsForInferredProjects" /* CompilerOptionsForInferredProjects */] = function (request) { - _this.setCompilerOptionsForInferredProjects(request.arguments); - return _this.requiredResponse( - /*response*/ - true); - }, - _t["projectInfo" /* ProjectInfo */] = function (request) { - return _this.requiredResponse(_this.getProjectInfo(request.arguments)); - }, - _t["reloadProjects" /* ReloadProjects */] = function () { - _this.projectService.reloadProjects(); - return _this.notRequired(); - }, - _t["jsxClosingTag" /* JsxClosingTag */] = function (request) { - return _this.requiredResponse(_this.getJsxClosingTag(request.arguments)); - }, - _t["linkedEditingRange" /* LinkedEditingRange */] = function (request) { - return _this.requiredResponse(_this.getLinkedEditingRange(request.arguments)); - }, - _t["getCodeFixes" /* GetCodeFixes */] = function (request) { - return _this.requiredResponse(_this.getCodeFixes(request.arguments, - /*simplifiedResult*/ - true)); - }, - _t["getCodeFixes-full" /* GetCodeFixesFull */] = function (request) { - return _this.requiredResponse(_this.getCodeFixes(request.arguments, - /*simplifiedResult*/ - false)); - }, - _t["getCombinedCodeFix" /* GetCombinedCodeFix */] = function (request) { - return _this.requiredResponse(_this.getCombinedCodeFix(request.arguments, - /*simplifiedResult*/ - true)); - }, - _t["getCombinedCodeFix-full" /* GetCombinedCodeFixFull */] = function (request) { - return _this.requiredResponse(_this.getCombinedCodeFix(request.arguments, - /*simplifiedResult*/ - false)); - }, - _t["applyCodeActionCommand" /* ApplyCodeActionCommand */] = function (request) { - return _this.requiredResponse(_this.applyCodeActionCommand(request.arguments)); - }, - _t["getSupportedCodeFixes" /* GetSupportedCodeFixes */] = function (request) { - return _this.requiredResponse(_this.getSupportedCodeFixes(request.arguments)); - }, - _t["getApplicableRefactors" /* GetApplicableRefactors */] = function (request) { - return _this.requiredResponse(_this.getApplicableRefactors(request.arguments)); - }, - _t["getEditsForRefactor" /* GetEditsForRefactor */] = function (request) { - return _this.requiredResponse(_this.getEditsForRefactor(request.arguments, - /*simplifiedResult*/ - true)); - }, - _t["getMoveToRefactoringFileSuggestions" /* GetMoveToRefactoringFileSuggestions */] = function (request) { - return _this.requiredResponse(_this.getMoveToRefactoringFileSuggestions(request.arguments)); - }, - _t["getEditsForRefactor-full" /* GetEditsForRefactorFull */] = function (request) { - return _this.requiredResponse(_this.getEditsForRefactor(request.arguments, - /*simplifiedResult*/ - false)); - }, - _t["organizeImports" /* OrganizeImports */] = function (request) { - return _this.requiredResponse(_this.organizeImports(request.arguments, - /*simplifiedResult*/ - true)); - }, - _t["organizeImports-full" /* OrganizeImportsFull */] = function (request) { - return _this.requiredResponse(_this.organizeImports(request.arguments, - /*simplifiedResult*/ - false)); - }, - _t["getEditsForFileRename" /* GetEditsForFileRename */] = function (request) { - return _this.requiredResponse(_this.getEditsForFileRename(request.arguments, - /*simplifiedResult*/ - true)); - }, - _t["getEditsForFileRename-full" /* GetEditsForFileRenameFull */] = function (request) { - return _this.requiredResponse(_this.getEditsForFileRename(request.arguments, - /*simplifiedResult*/ - false)); - }, - _t["configurePlugin" /* ConfigurePlugin */] = function (request) { - _this.configurePlugin(request.arguments); - _this.doOutput( - /*info*/ - void 0, "configurePlugin" /* ConfigurePlugin */, request.seq, - /*success*/ - true); - return _this.notRequired(); - }, - _t["selectionRange" /* SelectionRange */] = function (request) { - return _this.requiredResponse(_this.getSmartSelectionRange(request.arguments, - /*simplifiedResult*/ - true)); - }, - _t["selectionRange-full" /* SelectionRangeFull */] = function (request) { - return _this.requiredResponse(_this.getSmartSelectionRange(request.arguments, - /*simplifiedResult*/ - false)); - }, - _t["prepareCallHierarchy" /* PrepareCallHierarchy */] = function (request) { - return _this.requiredResponse(_this.prepareCallHierarchy(request.arguments)); - }, - _t["provideCallHierarchyIncomingCalls" /* ProvideCallHierarchyIncomingCalls */] = function (request) { - return _this.requiredResponse(_this.provideCallHierarchyIncomingCalls(request.arguments)); - }, - _t["provideCallHierarchyOutgoingCalls" /* ProvideCallHierarchyOutgoingCalls */] = function (request) { - return _this.requiredResponse(_this.provideCallHierarchyOutgoingCalls(request.arguments)); - }, - _t["toggleLineComment" /* ToggleLineComment */] = function (request) { - return _this.requiredResponse(_this.toggleLineComment(request.arguments, - /*simplifiedResult*/ - true)); - }, - _t["toggleLineComment-full" /* ToggleLineCommentFull */] = function (request) { - return _this.requiredResponse(_this.toggleLineComment(request.arguments, - /*simplifiedResult*/ - false)); - }, - _t["toggleMultilineComment" /* ToggleMultilineComment */] = function (request) { - return _this.requiredResponse(_this.toggleMultilineComment(request.arguments, - /*simplifiedResult*/ - true)); - }, - _t["toggleMultilineComment-full" /* ToggleMultilineCommentFull */] = function (request) { - return _this.requiredResponse(_this.toggleMultilineComment(request.arguments, - /*simplifiedResult*/ - false)); - }, - _t["commentSelection" /* CommentSelection */] = function (request) { - return _this.requiredResponse(_this.commentSelection(request.arguments, - /*simplifiedResult*/ - true)); - }, - _t["commentSelection-full" /* CommentSelectionFull */] = function (request) { - return _this.requiredResponse(_this.commentSelection(request.arguments, - /*simplifiedResult*/ - false)); - }, - _t["uncommentSelection" /* UncommentSelection */] = function (request) { - return _this.requiredResponse(_this.uncommentSelection(request.arguments, - /*simplifiedResult*/ - true)); - }, - _t["uncommentSelection-full" /* UncommentSelectionFull */] = function (request) { - return _this.requiredResponse(_this.uncommentSelection(request.arguments, - /*simplifiedResult*/ - false)); - }, - _t["provideInlayHints" /* ProvideInlayHints */] = function (request) { - return _this.requiredResponse(_this.provideInlayHints(request.arguments)); - }, - _t))); - this.host = opts.host; - this.cancellationToken = opts.cancellationToken; - this.typingsInstaller = opts.typingsInstaller || nullTypingsInstaller; - this.byteLength = opts.byteLength; - this.hrtime = opts.hrtime; - this.logger = opts.logger; - this.canUseEvents = opts.canUseEvents; - this.suppressDiagnosticEvents = opts.suppressDiagnosticEvents; - this.noGetErrOnBackgroundUpdate = opts.noGetErrOnBackgroundUpdate; - var throttleWaitMilliseconds = opts.throttleWaitMilliseconds; - this.eventHandler = this.canUseEvents ? opts.eventHandler || (function (event) { return _this.defaultEventHandler(event); }) : void 0; - var multistepOperationHost = { - executeWithRequestId: function (requestId, action) { return _this.executeWithRequestId(requestId, action); }, - getCurrentRequestId: function () { return _this.currentRequestId; }, - getServerHost: function () { return _this.host; }, - logError: function (err, cmd) { return _this.logError(err, cmd); }, - sendRequestCompletedEvent: function (requestId) { return _this.sendRequestCompletedEvent(requestId); }, - isCancellationRequested: function () { return _this.cancellationToken.isCancellationRequested(); } - }; - this.errorCheck = new MultistepOperation(multistepOperationHost); - var settings = { - host: this.host, - logger: this.logger, - cancellationToken: this.cancellationToken, - useSingleInferredProject: opts.useSingleInferredProject, - useInferredProjectPerProjectRoot: opts.useInferredProjectPerProjectRoot, - typingsInstaller: this.typingsInstaller, - throttleWaitMilliseconds: throttleWaitMilliseconds, - eventHandler: this.eventHandler, - suppressDiagnosticEvents: this.suppressDiagnosticEvents, - globalPlugins: opts.globalPlugins, - pluginProbeLocations: opts.pluginProbeLocations, - allowLocalPluginLoads: opts.allowLocalPluginLoads, - typesMapLocation: opts.typesMapLocation, - serverMode: opts.serverMode, - session: this, - incrementalVerifier: opts.incrementalVerifier - }; - this.projectService = new ProjectService3(settings); - this.projectService.setPerformanceEventHandler(this.performanceEventHandler.bind(this)); - this.gcTimer = new GcTimer(this.host, - /*delay*/ - 7e3, this.logger); - switch (this.projectService.serverMode) { - case 0 /* Semantic */: - break; - case 1 /* PartialSemantic */: - invalidPartialSemanticModeCommands.forEach(function (commandName) { return _this.handlers.set(commandName, function (request) { - throw new Error("Request: ".concat(request.command, " not allowed in LanguageServiceMode.PartialSemantic")); - }); }); - break; - case 2 /* Syntactic */: - invalidSyntacticModeCommands.forEach(function (commandName) { return _this.handlers.set(commandName, function (request) { - throw new Error("Request: ".concat(request.command, " not allowed in LanguageServiceMode.Syntactic")); - }); }); - break; - default: - Debug.assertNever(this.projectService.serverMode); - } - } - _Session.prototype.sendRequestCompletedEvent = function (requestId) { - this.event({ request_seq: requestId }, "requestCompleted"); - }; - _Session.prototype.addPerformanceData = function (key, value) { - var _t; - if (!this.performanceData) { - this.performanceData = {}; - } - this.performanceData[key] = ((_t = this.performanceData[key]) !== null && _t !== void 0 ? _t : 0) + value; - }; - _Session.prototype.performanceEventHandler = function (event) { - switch (event.kind) { - case "UpdateGraph": - this.addPerformanceData("updateGraphDurationMs", event.durationMs); - break; - case "CreatePackageJsonAutoImportProvider": - this.addPerformanceData("createAutoImportProviderProgramDurationMs", event.durationMs); - break; - } - }; - _Session.prototype.defaultEventHandler = function (event) { - switch (event.eventName) { - case ProjectsUpdatedInBackgroundEvent: - var openFiles = event.data.openFiles; - this.projectsUpdatedInBackgroundEvent(openFiles); - break; - case ProjectLoadingStartEvent: - var _t = event.data, project = _t.project, reason = _t.reason; - this.event({ projectName: project.getProjectName(), reason: reason }, ProjectLoadingStartEvent); - break; - case ProjectLoadingFinishEvent: - var finishProject = event.data.project; - this.event({ projectName: finishProject.getProjectName() }, ProjectLoadingFinishEvent); - break; - case LargeFileReferencedEvent: - var _u = event.data, file = _u.file, fileSize = _u.fileSize, maxFileSize2 = _u.maxFileSize; - this.event({ file: file, fileSize: fileSize, maxFileSize: maxFileSize2 }, LargeFileReferencedEvent); - break; - case ConfigFileDiagEvent: - var _v = event.data, triggerFile = _v.triggerFile, configFile = _v.configFileName, diagnostics = _v.diagnostics; - var bakedDiags = map(diagnostics, function (diagnostic) { return formatDiagnosticToProtocol(diagnostic, - /*includeFileName*/ - true); }); - this.event({ - triggerFile: triggerFile, - configFile: configFile, - diagnostics: bakedDiags - }, ConfigFileDiagEvent); - break; - case ProjectLanguageServiceStateEvent: { - var eventName = ProjectLanguageServiceStateEvent; - this.event({ - projectName: event.data.project.getProjectName(), - languageServiceEnabled: event.data.languageServiceEnabled - }, eventName); - break; - } - case ProjectInfoTelemetryEvent: { - var eventName = "telemetry"; - this.event({ - telemetryEventName: event.eventName, - payload: event.data - }, eventName); - break; - } - } - }; - _Session.prototype.projectsUpdatedInBackgroundEvent = function (openFiles) { - var _this = this; - this.projectService.logger.info("got projects updated in background, updating diagnostics for ".concat(openFiles)); - if (openFiles.length) { - if (!this.suppressDiagnosticEvents && !this.noGetErrOnBackgroundUpdate) { - this.errorCheck.startNew(function (next) { return _this.updateErrorCheck(next, openFiles, 100, - /*requireOpen*/ - true); }); - } - this.event({ - openFiles: openFiles - }, ProjectsUpdatedInBackgroundEvent); - } - }; - _Session.prototype.logError = function (err, cmd) { - this.logErrorWorker(err, cmd); - }; - _Session.prototype.logErrorWorker = function (err, cmd, fileRequest) { - var msg = "Exception on executing command " + cmd; - if (err.message) { - msg += ":\n" + indent2(err.message); - if (err.stack) { - msg += "\n" + indent2(err.stack); - } - } - if (this.logger.hasLevel(3 /* verbose */)) { - if (fileRequest) { - try { - var _t = this.getFileAndProject(fileRequest), file = _t.file, project = _t.project; - var scriptInfo = project.getScriptInfoForNormalizedPath(file); - if (scriptInfo) { - var text = getSnapshotText(scriptInfo.getSnapshot()); - msg += "\n\nFile text of ".concat(fileRequest.file, ":").concat(indent2(text), "\n"); - } - } - catch (_u) { - } - } - if (err.ProgramFiles) { - msg += "\n\nProgram files: ".concat(JSON.stringify(err.ProgramFiles), "\n"); - msg += "\n\nProjects::\n"; - var counter_1 = 0; - var addProjectInfo = function (project) { - msg += "\nProject '".concat(project.projectName, "' (").concat(ProjectKind[project.projectKind], ") ").concat(counter_1, "\n"); - msg += project.filesToString( - /*writeProjectFileNames*/ - true); - msg += "\n-----------------------------------------------\n"; - counter_1++; - }; - this.projectService.externalProjects.forEach(addProjectInfo); - this.projectService.configuredProjects.forEach(addProjectInfo); - this.projectService.inferredProjects.forEach(addProjectInfo); - } - } - this.logger.msg(msg, "Err" /* Err */); - }; - _Session.prototype.send = function (msg) { - if (msg.type === "event" && !this.canUseEvents) { - if (this.logger.hasLevel(3 /* verbose */)) { - this.logger.info("Session does not support events: ignored event: ".concat(JSON.stringify(msg))); - } - return; - } - this.writeMessage(msg); - }; - _Session.prototype.writeMessage = function (msg) { - var _a; - var msgText = formatMessage2(msg, this.logger, this.byteLength, this.host.newLine); - (_a = perfLogger) == null ? void 0 : _a.logEvent("Response message size: ".concat(msgText.length)); - this.host.write(msgText); - }; - _Session.prototype.event = function (body, eventName) { - this.send(toEvent(eventName, body)); - }; - /** @internal */ - _Session.prototype.doOutput = function (info, cmdName, reqSeq, success, message) { - var res = { - seq: 0, - type: "response", - command: cmdName, - request_seq: reqSeq, - success: success, - performanceData: this.performanceData - }; - if (success) { - var metadata = void 0; - if (isArray(info)) { - res.body = info; - metadata = info.metadata; - delete info.metadata; - } - else if (typeof info === "object") { - if (info.metadata) { - var infoMetadata = info.metadata, body = __rest(info, ["metadata"]); - res.body = body; - metadata = infoMetadata; - } - else { - res.body = info; - } - } - else { - res.body = info; - } - if (metadata) - res.metadata = metadata; - } - else { - Debug.assert(info === void 0); - } - if (message) { - res.message = message; - } - this.send(res); - }; - _Session.prototype.semanticCheck = function (file, project) { - var _a, _b; - (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Session, "semanticCheck", { file: file, configFilePath: project.canonicalConfigFilePath }); - var diags = isDeclarationFileInJSOnlyNonConfiguredProject(project, file) ? emptyArray2 : project.getLanguageService().getSemanticDiagnostics(file).filter(function (d) { return !!d.file; }); - this.sendDiagnosticsEvent(file, project, diags, "semanticDiag"); - (_b = tracing) == null ? void 0 : _b.pop(); - }; - _Session.prototype.syntacticCheck = function (file, project) { - var _a, _b; - (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Session, "syntacticCheck", { file: file, configFilePath: project.canonicalConfigFilePath }); - this.sendDiagnosticsEvent(file, project, project.getLanguageService().getSyntacticDiagnostics(file), "syntaxDiag"); - (_b = tracing) == null ? void 0 : _b.pop(); - }; - _Session.prototype.suggestionCheck = function (file, project) { - var _a, _b; - (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Session, "suggestionCheck", { file: file, configFilePath: project.canonicalConfigFilePath }); - this.sendDiagnosticsEvent(file, project, project.getLanguageService().getSuggestionDiagnostics(file), "suggestionDiag"); - (_b = tracing) == null ? void 0 : _b.pop(); - }; - _Session.prototype.sendDiagnosticsEvent = function (file, project, diagnostics, kind) { - try { - this.event({ file: file, diagnostics: diagnostics.map(function (diag2) { return formatDiag(file, project, diag2); }) }, kind); - } - catch (err) { - this.logError(err, kind); - } - }; - /** It is the caller's responsibility to verify that `!this.suppressDiagnosticEvents`. */ - _Session.prototype.updateErrorCheck = function (next, checkList, ms, requireOpen) { - var _this = this; - if (requireOpen === void 0) { requireOpen = true; } - Debug.assert(!this.suppressDiagnosticEvents); - var seq = this.changeSeq; - var followMs = Math.min(ms, 200); - var index = 0; - var goNext = function () { - index++; - if (checkList.length > index) { - next.delay("checkOne", followMs, checkOne); - } - }; - var checkOne = function () { - if (_this.changeSeq !== seq) { - return; - } - var item = checkList[index]; - if (isString(item)) { - item = _this.toPendingErrorCheck(item); - if (!item) { - goNext(); - return; - } - } - var fileName = item.fileName, project = item.project; - updateProjectIfDirty(project); - if (!project.containsFile(fileName, requireOpen)) { - return; - } - _this.syntacticCheck(fileName, project); - if (_this.changeSeq !== seq) { - return; - } - if (project.projectService.serverMode !== 0 /* Semantic */) { - goNext(); - return; - } - next.immediate("semanticCheck", function () { - _this.semanticCheck(fileName, project); - if (_this.changeSeq !== seq) { - return; - } - if (_this.getPreferences(fileName).disableSuggestions) { - goNext(); - return; - } - next.immediate("suggestionCheck", function () { - _this.suggestionCheck(fileName, project); - goNext(); - }); - }); - }; - if (checkList.length > index && this.changeSeq === seq) { - next.delay("checkOne", ms, checkOne); - } - }; - _Session.prototype.cleanProjects = function (caption, projects) { - var e_966, _t; - if (!projects) { - return; - } - this.logger.info("cleaning ".concat(caption)); - try { - for (var projects_4 = __values(projects), projects_4_1 = projects_4.next(); !projects_4_1.done; projects_4_1 = projects_4.next()) { - var p = projects_4_1.value; - p.getLanguageService( - /*ensureSynchronized*/ - false).cleanupSemanticCache(); - p.cleanupProgram(); - } - } - catch (e_966_1) { e_966 = { error: e_966_1 }; } - finally { - try { - if (projects_4_1 && !projects_4_1.done && (_t = projects_4.return)) _t.call(projects_4); - } - finally { if (e_966) throw e_966.error; } - } - }; - _Session.prototype.cleanup = function () { - this.cleanProjects("inferred projects", this.projectService.inferredProjects); - this.cleanProjects("configured projects", arrayFrom(this.projectService.configuredProjects.values())); - this.cleanProjects("external projects", this.projectService.externalProjects); - if (this.host.gc) { - this.logger.info("host.gc()"); - this.host.gc(); - } - }; - _Session.prototype.getEncodedSyntacticClassifications = function (args) { - var _t = this.getFileAndLanguageServiceForSyntacticOperation(args), file = _t.file, languageService = _t.languageService; - return languageService.getEncodedSyntacticClassifications(file, args); - }; - _Session.prototype.getEncodedSemanticClassifications = function (args) { - var _t = this.getFileAndProject(args), file = _t.file, project = _t.project; - var format = args.format === "2020" ? "2020" /* TwentyTwenty */ : "original" /* Original */; - return project.getLanguageService().getEncodedSemanticClassifications(file, args, format); - }; - _Session.prototype.getProject = function (projectFileName) { - return projectFileName === void 0 ? void 0 : this.projectService.findProject(projectFileName); - }; - _Session.prototype.getConfigFileAndProject = function (args) { - var project = this.getProject(args.projectFileName); - var file = toNormalizedPath(args.file); - return { - configFile: project && project.hasConfigFile(file) ? file : void 0, - project: project - }; - }; - _Session.prototype.getConfigFileDiagnostics = function (configFile, project, includeLinePosition) { - var projectErrors = project.getAllProjectErrors(); - var optionsErrors = project.getLanguageService().getCompilerOptionsDiagnostics(); - var diagnosticsForConfigFile = filter(concatenate(projectErrors, optionsErrors), function (diagnostic) { return !!diagnostic.file && diagnostic.file.fileName === configFile; }); - return includeLinePosition ? this.convertToDiagnosticsWithLinePositionFromDiagnosticFile(diagnosticsForConfigFile) : map(diagnosticsForConfigFile, function (diagnostic) { return formatDiagnosticToProtocol(diagnostic, - /*includeFileName*/ - false); }); - }; - _Session.prototype.convertToDiagnosticsWithLinePositionFromDiagnosticFile = function (diagnostics) { - var _this = this; - return diagnostics.map(function (d) { return ({ - message: flattenDiagnosticMessageText(d.messageText, _this.host.newLine), - start: d.start, - // TODO: GH#18217 - length: d.length, - // TODO: GH#18217 - category: diagnosticCategoryName(d), - code: d.code, - source: d.source, - startLocation: d.file && convertToLocation(getLineAndCharacterOfPosition(d.file, d.start)), - // TODO: GH#18217 - endLocation: d.file && convertToLocation(getLineAndCharacterOfPosition(d.file, d.start + d.length)), - // TODO: GH#18217 - reportsUnnecessary: d.reportsUnnecessary, - reportsDeprecated: d.reportsDeprecated, - relatedInformation: map(d.relatedInformation, formatRelatedInformation) - }); }); - }; - _Session.prototype.getCompilerOptionsDiagnostics = function (args) { - var project = this.getProject(args.projectFileName); - return this.convertToDiagnosticsWithLinePosition(filter(project.getLanguageService().getCompilerOptionsDiagnostics(), function (diagnostic) { return !diagnostic.file; }), - /*scriptInfo*/ - void 0); - }; - _Session.prototype.convertToDiagnosticsWithLinePosition = function (diagnostics, scriptInfo) { - var _this = this; - return diagnostics.map(function (d) { return ({ - message: flattenDiagnosticMessageText(d.messageText, _this.host.newLine), - start: d.start, - length: d.length, - category: diagnosticCategoryName(d), - code: d.code, - source: d.source, - startLocation: scriptInfo && scriptInfo.positionToLineOffset(d.start), - // TODO: GH#18217 - endLocation: scriptInfo && scriptInfo.positionToLineOffset(d.start + d.length), - reportsUnnecessary: d.reportsUnnecessary, - reportsDeprecated: d.reportsDeprecated, - relatedInformation: map(d.relatedInformation, formatRelatedInformation) - }); }); - }; - _Session.prototype.getDiagnosticsWorker = function (args, isSemantic, selector, includeLinePosition) { - var _t = this.getFileAndProject(args), project = _t.project, file = _t.file; - if (isSemantic && isDeclarationFileInJSOnlyNonConfiguredProject(project, file)) { - return emptyArray2; - } - var scriptInfo = project.getScriptInfoForNormalizedPath(file); - var diagnostics = selector(project, file); - return includeLinePosition ? this.convertToDiagnosticsWithLinePosition(diagnostics, scriptInfo) : diagnostics.map(function (d) { return formatDiag(file, project, d); }); - }; - _Session.prototype.getDefinition = function (args, simplifiedResult) { - var _t = this.getFileAndProject(args), file = _t.file, project = _t.project; - var position = this.getPositionInFile(args, file); - var definitions = this.mapDefinitionInfoLocations(project.getLanguageService().getDefinitionAtPosition(file, position) || emptyArray2, project); - return simplifiedResult ? this.mapDefinitionInfo(definitions, project) : definitions.map(_Session.mapToOriginalLocation); - }; - _Session.prototype.mapDefinitionInfoLocations = function (definitions, project) { - return definitions.map(function (info) { - var newDocumentSpan = getMappedDocumentSpanForProject(info, project); - return !newDocumentSpan ? info : __assign(__assign(__assign({}, newDocumentSpan), { containerKind: info.containerKind, containerName: info.containerName, kind: info.kind, name: info.name, failedAliasResolution: info.failedAliasResolution }), info.unverified && { unverified: info.unverified }); - }); - }; - _Session.prototype.getDefinitionAndBoundSpan = function (args, simplifiedResult) { - var _t = this.getFileAndProject(args), file = _t.file, project = _t.project; - var position = this.getPositionInFile(args, file); - var scriptInfo = Debug.checkDefined(project.getScriptInfo(file)); - var unmappedDefinitionAndBoundSpan = project.getLanguageService().getDefinitionAndBoundSpan(file, position); - if (!unmappedDefinitionAndBoundSpan || !unmappedDefinitionAndBoundSpan.definitions) { - return { - definitions: emptyArray2, - textSpan: void 0 - // TODO: GH#18217 - }; - } - var definitions = this.mapDefinitionInfoLocations(unmappedDefinitionAndBoundSpan.definitions, project); - var textSpan = unmappedDefinitionAndBoundSpan.textSpan; - if (simplifiedResult) { - return { - definitions: this.mapDefinitionInfo(definitions, project), - textSpan: toProtocolTextSpan(textSpan, scriptInfo) - }; - } - return { - definitions: definitions.map(_Session.mapToOriginalLocation), - textSpan: textSpan - }; - }; - _Session.prototype.findSourceDefinition = function (args) { - var e_967, _t, e_968, _u, e_969, _v, e_970, _w; - var _a; - var _x = this.getFileAndProject(args), file = _x.file, project = _x.project; - var position = this.getPositionInFile(args, file); - var unmappedDefinitions = project.getLanguageService().getDefinitionAtPosition(file, position); - var definitions = this.mapDefinitionInfoLocations(unmappedDefinitions || emptyArray2, project).slice(); - var needsJsResolution = this.projectService.serverMode === 0 /* Semantic */ && (!some(definitions, function (d) { return toNormalizedPath(d.fileName) !== file && !d.isAmbient; }) || some(definitions, function (d) { return !!d.failedAliasResolution; })); - if (needsJsResolution) { - var definitionSet_1 = createSet(function (d) { return d.textSpan.start; }, documentSpansEqual); - definitions == null ? void 0 : definitions.forEach(function (d) { return definitionSet_1.add(d); }); - var noDtsProject = project.getNoDtsResolutionProject([file]); - var ls = noDtsProject.getLanguageService(); - var jsDefinitions = (_a = ls.getDefinitionAtPosition(file, position, - /*searchOtherFilesOnly*/ - true, - /*stopAtAlias*/ - false)) == null ? void 0 : _a.filter(function (d) { return toNormalizedPath(d.fileName) !== file; }); - if (some(jsDefinitions)) { - try { - for (var jsDefinitions_1 = __values(jsDefinitions), jsDefinitions_1_1 = jsDefinitions_1.next(); !jsDefinitions_1_1.done; jsDefinitions_1_1 = jsDefinitions_1.next()) { - var jsDefinition = jsDefinitions_1_1.value; - if (jsDefinition.unverified) { - var refined = tryRefineDefinition(jsDefinition, project.getLanguageService().getProgram(), ls.getProgram()); - if (some(refined)) { - try { - for (var refined_1 = (e_968 = void 0, __values(refined)), refined_1_1 = refined_1.next(); !refined_1_1.done; refined_1_1 = refined_1.next()) { - var def = refined_1_1.value; - definitionSet_1.add(def); - } - } - catch (e_968_1) { e_968 = { error: e_968_1 }; } - finally { - try { - if (refined_1_1 && !refined_1_1.done && (_u = refined_1.return)) _u.call(refined_1); - } - finally { if (e_968) throw e_968.error; } - } - continue; - } - } - definitionSet_1.add(jsDefinition); - } - } - catch (e_967_1) { e_967 = { error: e_967_1 }; } - finally { - try { - if (jsDefinitions_1_1 && !jsDefinitions_1_1.done && (_t = jsDefinitions_1.return)) _t.call(jsDefinitions_1); - } - finally { if (e_967) throw e_967.error; } - } - } - else { - var ambientCandidates = definitions.filter(function (d) { return toNormalizedPath(d.fileName) !== file && d.isAmbient; }); - try { - for (var _y = __values(some(ambientCandidates) ? ambientCandidates : getAmbientCandidatesByClimbingAccessChain()), _z = _y.next(); !_z.done; _z = _y.next()) { - var candidate = _z.value; - var fileNameToSearch = findImplementationFileFromDtsFileName(candidate.fileName, file, noDtsProject); - if (!fileNameToSearch || !ensureRoot(noDtsProject, fileNameToSearch)) { - continue; - } - var noDtsProgram = ls.getProgram(); - var fileToSearch = Debug.checkDefined(noDtsProgram.getSourceFile(fileNameToSearch)); - try { - for (var _10 = (e_970 = void 0, __values(searchForDeclaration(candidate.name, fileToSearch, noDtsProgram))), _11 = _10.next(); !_11.done; _11 = _10.next()) { - var match = _11.value; - definitionSet_1.add(match); - } - } - catch (e_970_1) { e_970 = { error: e_970_1 }; } - finally { - try { - if (_11 && !_11.done && (_w = _10.return)) _w.call(_10); - } - finally { if (e_970) throw e_970.error; } - } - } - } - catch (e_969_1) { e_969 = { error: e_969_1 }; } - finally { - try { - if (_z && !_z.done && (_v = _y.return)) _v.call(_y); - } - finally { if (e_969) throw e_969.error; } - } - } - definitions = arrayFrom(definitionSet_1.values()); - } - definitions = definitions.filter(function (d) { return !d.isAmbient && !d.failedAliasResolution; }); - return this.mapDefinitionInfo(definitions, project); - function findImplementationFileFromDtsFileName(fileName, resolveFromFile, auxiliaryProject) { - var _a2, _b, _c; - var nodeModulesPathParts = getNodeModulePathParts(fileName); - if (nodeModulesPathParts && fileName.lastIndexOf(nodeModulesPathPart) === nodeModulesPathParts.topLevelNodeModulesIndex) { - var packageDirectory = fileName.substring(0, nodeModulesPathParts.packageRootIndex); - var packageJsonCache = (_a2 = project.getModuleResolutionCache()) == null ? void 0 : _a2.getPackageJsonInfoCache(); - var compilerOptions = project.getCompilationSettings(); - var packageJson = getPackageScopeForPath(getNormalizedAbsolutePath(packageDirectory + "/package.json", project.getCurrentDirectory()), getTemporaryModuleResolutionState(packageJsonCache, project, compilerOptions)); - if (!packageJson) - return void 0; - var entrypoints = getEntrypointsFromPackageJsonInfo(packageJson, { moduleResolution: 2 /* Node10 */ }, project, project.getModuleResolutionCache()); - var packageNamePathPart = fileName.substring(nodeModulesPathParts.topLevelPackageNameIndex + 1, nodeModulesPathParts.packageRootIndex); - var packageName = getPackageNameFromTypesPackageName(unmangleScopedPackageName(packageNamePathPart)); - var path_1 = project.toPath(fileName); - if (entrypoints && some(entrypoints, function (e) { return project.toPath(e) === path_1; })) { - return (_b = auxiliaryProject.resolutionCache.resolveSingleModuleNameWithoutWatching(packageName, resolveFromFile).resolvedModule) == null ? void 0 : _b.resolvedFileName; - } - else { - var pathToFileInPackage = fileName.substring(nodeModulesPathParts.packageRootIndex + 1); - var specifier = "".concat(packageName, "/").concat(removeFileExtension(pathToFileInPackage)); - return (_c = auxiliaryProject.resolutionCache.resolveSingleModuleNameWithoutWatching(specifier, resolveFromFile).resolvedModule) == null ? void 0 : _c.resolvedFileName; - } - } - return void 0; - } - function getAmbientCandidatesByClimbingAccessChain() { - var ls = project.getLanguageService(); - var program = ls.getProgram(); - var initialNode = getTouchingPropertyName(program.getSourceFile(file), position); - if ((isStringLiteralLike(initialNode) || isIdentifier(initialNode)) && isAccessExpression(initialNode.parent)) { - return forEachNameInAccessChainWalkingLeft(initialNode, function (nameInChain) { - var _a2; - if (nameInChain === initialNode) - return void 0; - var candidates = (_a2 = ls.getDefinitionAtPosition(file, nameInChain.getStart(), - /*searchOtherFilesOnly*/ - true, - /*stopAtAlias*/ - false)) == null ? void 0 : _a2.filter(function (d) { return toNormalizedPath(d.fileName) !== file && d.isAmbient; }).map(function (d) { return ({ - fileName: d.fileName, - name: getTextOfIdentifierOrLiteral(initialNode) - }); }); - if (some(candidates)) { - return candidates; - } - }) || emptyArray2; - } - return emptyArray2; - } - function tryRefineDefinition(definition, program, noDtsProgram) { - var _a2; - var fileToSearch = noDtsProgram.getSourceFile(definition.fileName); - if (!fileToSearch) { - return void 0; - } - var initialNode = getTouchingPropertyName(program.getSourceFile(file), position); - var symbol = program.getTypeChecker().getSymbolAtLocation(initialNode); - var importSpecifier = symbol && getDeclarationOfKind(symbol, 276 /* ImportSpecifier */); - if (!importSpecifier) - return void 0; - var nameToSearch = ((_a2 = importSpecifier.propertyName) == null ? void 0 : _a2.text) || importSpecifier.name.text; - return searchForDeclaration(nameToSearch, fileToSearch, noDtsProgram); - } - function searchForDeclaration(declarationName, fileToSearch, noDtsProgram) { - var matches = ts_FindAllReferences_exports.Core.getTopMostDeclarationNamesInFile(declarationName, fileToSearch); - return mapDefined(matches, function (match) { - var symbol = noDtsProgram.getTypeChecker().getSymbolAtLocation(match); - var decl = getDeclarationFromName(match); - if (symbol && decl) { - return ts_GoToDefinition_exports.createDefinitionInfo(decl, noDtsProgram.getTypeChecker(), symbol, decl, - /*unverified*/ - true); - } - }); - } - function ensureRoot(project2, fileName) { - var info = project2.getScriptInfo(fileName); - if (!info) - return false; - if (!project2.containsScriptInfo(info)) { - project2.addRoot(info); - project2.updateGraph(); - } - return true; - } - }; - _Session.prototype.getEmitOutput = function (args) { - var _t = this.getFileAndProject(args), file = _t.file, project = _t.project; - if (!project.shouldEmitFile(project.getScriptInfo(file))) { - return { emitSkipped: true, outputFiles: [], diagnostics: [] }; - } - var result = project.getLanguageService().getEmitOutput(file); - return args.richResponse ? __assign(__assign({}, result), { diagnostics: args.includeLinePosition ? this.convertToDiagnosticsWithLinePositionFromDiagnosticFile(result.diagnostics) : result.diagnostics.map(function (d) { return formatDiagnosticToProtocol(d, - /*includeFileName*/ - true); }) }) : result; - }; - _Session.prototype.mapJSDocTagInfo = function (tags, project, richResponse) { - var _this = this; - return tags ? tags.map(function (tag) { - var _a; - return __assign(__assign({}, tag), { text: richResponse ? _this.mapDisplayParts(tag.text, project) : (_a = tag.text) == null ? void 0 : _a.map(function (part) { return part.text; }).join("") }); - }) : []; - }; - _Session.prototype.mapDisplayParts = function (parts, project) { - var _this = this; - if (!parts) { - return []; - } - return parts.map(function (part) { return part.kind !== "linkName" ? part : __assign(__assign({}, part), { target: _this.toFileSpan(part.target.fileName, part.target.textSpan, project) }); }); - }; - _Session.prototype.mapSignatureHelpItems = function (items, project, richResponse) { - var _this = this; - return items.map(function (item) { return (__assign(__assign({}, item), { documentation: _this.mapDisplayParts(item.documentation, project), parameters: item.parameters.map(function (p) { return (__assign(__assign({}, p), { documentation: _this.mapDisplayParts(p.documentation, project) })); }), tags: _this.mapJSDocTagInfo(item.tags, project, richResponse) })); }); - }; - _Session.prototype.mapDefinitionInfo = function (definitions, project) { - var _this = this; - return definitions.map(function (def) { return (__assign(__assign({}, _this.toFileSpanWithContext(def.fileName, def.textSpan, def.contextSpan, project)), def.unverified && { unverified: def.unverified })); }); - }; - /* - * When we map a .d.ts location to .ts, Visual Studio gets confused because there's no associated Roslyn Document in - * the same project which corresponds to the file. VS Code has no problem with this, and luckily we have two protocols. - * This retains the existing behavior for the "simplified" (VS Code) protocol but stores the .d.ts location in a - * set of additional fields, and does the reverse for VS (store the .d.ts location where - * it used to be and stores the .ts location in the additional fields). - */ - _Session.mapToOriginalLocation = function (def) { - if (def.originalFileName) { - Debug.assert(def.originalTextSpan !== void 0, "originalTextSpan should be present if originalFileName is"); - return __assign(__assign({}, def), { fileName: def.originalFileName, textSpan: def.originalTextSpan, targetFileName: def.fileName, targetTextSpan: def.textSpan, contextSpan: def.originalContextSpan, targetContextSpan: def.contextSpan }); - } - return def; - }; - _Session.prototype.toFileSpan = function (fileName, textSpan, project) { - var ls = project.getLanguageService(); - var start2 = ls.toLineColumnOffset(fileName, textSpan.start); - var end = ls.toLineColumnOffset(fileName, textSpanEnd(textSpan)); - return { - file: fileName, - start: { line: start2.line + 1, offset: start2.character + 1 }, - end: { line: end.line + 1, offset: end.character + 1 } - }; - }; - _Session.prototype.toFileSpanWithContext = function (fileName, textSpan, contextSpan, project) { - var fileSpan = this.toFileSpan(fileName, textSpan, project); - var context = contextSpan && this.toFileSpan(fileName, contextSpan, project); - return context ? __assign(__assign({}, fileSpan), { contextStart: context.start, contextEnd: context.end }) : fileSpan; - }; - _Session.prototype.getTypeDefinition = function (args) { - var _t = this.getFileAndProject(args), file = _t.file, project = _t.project; - var position = this.getPositionInFile(args, file); - var definitions = this.mapDefinitionInfoLocations(project.getLanguageService().getTypeDefinitionAtPosition(file, position) || emptyArray2, project); - return this.mapDefinitionInfo(definitions, project); - }; - _Session.prototype.mapImplementationLocations = function (implementations, project) { - return implementations.map(function (info) { - var newDocumentSpan = getMappedDocumentSpanForProject(info, project); - return !newDocumentSpan ? info : __assign(__assign({}, newDocumentSpan), { kind: info.kind, displayParts: info.displayParts }); - }); - }; - _Session.prototype.getImplementation = function (args, simplifiedResult) { - var _this = this; - var _t = this.getFileAndProject(args), file = _t.file, project = _t.project; - var position = this.getPositionInFile(args, file); - var implementations = this.mapImplementationLocations(project.getLanguageService().getImplementationAtPosition(file, position) || emptyArray2, project); - return simplifiedResult ? implementations.map(function (_t) { - var fileName = _t.fileName, textSpan = _t.textSpan, contextSpan = _t.contextSpan; - return _this.toFileSpanWithContext(fileName, textSpan, contextSpan, project); - }) : implementations.map(_Session.mapToOriginalLocation); - }; - _Session.prototype.getSyntacticDiagnosticsSync = function (args) { - var configFile = this.getConfigFileAndProject(args).configFile; - if (configFile) { - return emptyArray2; - } - return this.getDiagnosticsWorker(args, - /*isSemantic*/ - false, function (project, file) { return project.getLanguageService().getSyntacticDiagnostics(file); }, !!args.includeLinePosition); - }; - _Session.prototype.getSemanticDiagnosticsSync = function (args) { - var _t = this.getConfigFileAndProject(args), configFile = _t.configFile, project = _t.project; - if (configFile) { - return this.getConfigFileDiagnostics(configFile, project, !!args.includeLinePosition); - } - return this.getDiagnosticsWorker(args, - /*isSemantic*/ - true, function (project2, file) { return project2.getLanguageService().getSemanticDiagnostics(file).filter(function (d) { return !!d.file; }); }, !!args.includeLinePosition); - }; - _Session.prototype.getSuggestionDiagnosticsSync = function (args) { - var configFile = this.getConfigFileAndProject(args).configFile; - if (configFile) { - return emptyArray2; - } - return this.getDiagnosticsWorker(args, - /*isSemantic*/ - true, function (project, file) { return project.getLanguageService().getSuggestionDiagnostics(file); }, !!args.includeLinePosition); - }; - _Session.prototype.getJsxClosingTag = function (args) { - var _t = this.getFileAndLanguageServiceForSyntacticOperation(args), file = _t.file, languageService = _t.languageService; - var position = this.getPositionInFile(args, file); - var tag = languageService.getJsxClosingTagAtPosition(file, position); - return tag === void 0 ? void 0 : { newText: tag.newText, caretOffset: 0 }; - }; - _Session.prototype.getLinkedEditingRange = function (args) { - var _t = this.getFileAndLanguageServiceForSyntacticOperation(args), file = _t.file, languageService = _t.languageService; - var position = this.getPositionInFile(args, file); - var linkedEditInfo = languageService.getLinkedEditingRangeAtPosition(file, position); - var scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file); - if (scriptInfo === void 0 || linkedEditInfo === void 0) - return void 0; - return convertLinkedEditInfoToRanges(linkedEditInfo, scriptInfo); - }; - _Session.prototype.getDocumentHighlights = function (args, simplifiedResult) { - var _t = this.getFileAndProject(args), file = _t.file, project = _t.project; - var position = this.getPositionInFile(args, file); - var documentHighlights = project.getLanguageService().getDocumentHighlights(file, position, args.filesToSearch); - if (!documentHighlights) - return emptyArray2; - if (!simplifiedResult) - return documentHighlights; - return documentHighlights.map(function (_t) { - var fileName = _t.fileName, highlightSpans = _t.highlightSpans; - var scriptInfo = project.getScriptInfo(fileName); - return { - file: fileName, - highlightSpans: highlightSpans.map(function (_t) { - var textSpan = _t.textSpan, kind = _t.kind, contextSpan = _t.contextSpan; - return (__assign(__assign({}, toProtocolTextSpanWithContext(textSpan, contextSpan, scriptInfo)), { kind: kind })); - }) - }; - }); - }; - _Session.prototype.provideInlayHints = function (args) { - var _this = this; - var _t = this.getFileAndProject(args), file = _t.file, project = _t.project; - var scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file); - var hints = project.getLanguageService().provideInlayHints(file, args, this.getPreferences(file)); - return hints.map(function (hint) { - var position = hint.position, displayParts = hint.displayParts; - return __assign(__assign({}, hint), { position: scriptInfo.positionToLineOffset(position), displayParts: displayParts == null ? void 0 : displayParts.map(function (_t) { - var text = _t.text, span = _t.span, file2 = _t.file; - if (span) { - Debug.assertIsDefined(file2, "Target file should be defined together with its span."); - var scriptInfo2 = _this.projectService.getScriptInfo(file2); - return { - text: text, - span: { - start: scriptInfo2.positionToLineOffset(span.start), - end: scriptInfo2.positionToLineOffset(span.start + span.length), - file: file2 - } - }; - } - else { - return { text: text }; - } - }) }); - }); - }; - _Session.prototype.setCompilerOptionsForInferredProjects = function (args) { - this.projectService.setCompilerOptionsForInferredProjects(args.options, args.projectRootPath); - }; - _Session.prototype.getProjectInfo = function (args) { - return this.getProjectInfoWorker(args.file, args.projectFileName, args.needFileNameList, - /*excludeConfigFiles*/ - false); - }; - _Session.prototype.getProjectInfoWorker = function (uncheckedFileName, projectFileName, needFileNameList, excludeConfigFiles) { - var project = this.getFileAndProjectWorker(uncheckedFileName, projectFileName).project; - updateProjectIfDirty(project); - var projectInfo = { - configFileName: project.getProjectName(), - languageServiceDisabled: !project.languageServiceEnabled, - fileNames: needFileNameList ? project.getFileNames( - /*excludeFilesFromExternalLibraries*/ - false, excludeConfigFiles) : void 0 - }; - return projectInfo; - }; - _Session.prototype.getRenameInfo = function (args) { - var _t = this.getFileAndProject(args), file = _t.file, project = _t.project; - var position = this.getPositionInFile(args, file); - var preferences = this.getPreferences(file); - return project.getLanguageService().getRenameInfo(file, position, preferences); - }; - _Session.prototype.getProjects = function (args, getScriptInfoEnsuringProjectsUptoDate, ignoreNoProjectError) { - var _t; - var projects; - var symLinkedProjects; - if (args.projectFileName) { - var project = this.getProject(args.projectFileName); - if (project) { - projects = [project]; - } - } - else { - var scriptInfo = getScriptInfoEnsuringProjectsUptoDate ? this.projectService.getScriptInfoEnsuringProjectsUptoDate(args.file) : this.projectService.getScriptInfo(args.file); - if (!scriptInfo) { - if (ignoreNoProjectError) - return emptyArray2; - this.projectService.logErrorForScriptInfoNotFound(args.file); - return Errors.ThrowNoProject(); - } - else if (!getScriptInfoEnsuringProjectsUptoDate) { - this.projectService.ensureDefaultProjectForFile(scriptInfo); - } - projects = scriptInfo.containingProjects; - symLinkedProjects = this.projectService.getSymlinkedProjects(scriptInfo); - } - projects = filter(projects, function (p) { return p.languageServiceEnabled && !p.isOrphan(); }); - if (!ignoreNoProjectError && (!projects || !projects.length) && !symLinkedProjects) { - this.projectService.logErrorForScriptInfoNotFound((_t = args.file) !== null && _t !== void 0 ? _t : args.projectFileName); - return Errors.ThrowNoProject(); - } - return symLinkedProjects ? { projects: projects, symLinkedProjects: symLinkedProjects } : projects; - }; - _Session.prototype.getDefaultProject = function (args) { - if (args.projectFileName) { - var project = this.getProject(args.projectFileName); - if (project) { - return project; - } - if (!args.file) { - return Errors.ThrowNoProject(); - } - } - var info = this.projectService.getScriptInfo(args.file); - return info.getDefaultProject(); - }; - _Session.prototype.getRenameLocations = function (args, simplifiedResult) { - var file = toNormalizedPath(args.file); - var position = this.getPositionInFile(args, file); - var projects = this.getProjects(args); - var defaultProject = this.getDefaultProject(args); - var preferences = this.getPreferences(file); - var renameInfo = this.mapRenameInfo(defaultProject.getLanguageService().getRenameInfo(file, position, preferences), Debug.checkDefined(this.projectService.getScriptInfo(file))); - if (!renameInfo.canRename) - return simplifiedResult ? { info: renameInfo, locs: [] } : []; - var locations = getRenameLocationsWorker(projects, defaultProject, { fileName: args.file, pos: position }, !!args.findInStrings, !!args.findInComments, preferences); - if (!simplifiedResult) - return locations; - return { info: renameInfo, locs: this.toSpanGroups(locations) }; - }; - _Session.prototype.mapRenameInfo = function (info, scriptInfo) { - if (info.canRename) { - var canRename = info.canRename, fileToRename = info.fileToRename, displayName = info.displayName, fullDisplayName = info.fullDisplayName, kind = info.kind, kindModifiers = info.kindModifiers, triggerSpan = info.triggerSpan; - return identity({ canRename: canRename, fileToRename: fileToRename, displayName: displayName, fullDisplayName: fullDisplayName, kind: kind, kindModifiers: kindModifiers, triggerSpan: toProtocolTextSpan(triggerSpan, scriptInfo) }); - } - else { - return info; - } - }; - _Session.prototype.toSpanGroups = function (locations) { - var e_971, _t; - var map2 = /* @__PURE__ */ new Map(); - try { - for (var locations_1 = __values(locations), locations_1_1 = locations_1.next(); !locations_1_1.done; locations_1_1 = locations_1.next()) { - var _u = locations_1_1.value; - var fileName = _u.fileName, textSpan = _u.textSpan, contextSpan = _u.contextSpan, _2 = _u.originalContextSpan, _ = _u.originalTextSpan, _1 = _u.originalFileName, prefixSuffixText = __rest(_u, ["fileName", "textSpan", "contextSpan", "originalContextSpan", "originalTextSpan", "originalFileName"]); - var group2 = map2.get(fileName); - if (!group2) - map2.set(fileName, group2 = { file: fileName, locs: [] }); - var scriptInfo = Debug.checkDefined(this.projectService.getScriptInfo(fileName)); - group2.locs.push(__assign(__assign({}, toProtocolTextSpanWithContext(textSpan, contextSpan, scriptInfo)), prefixSuffixText)); - } - } - catch (e_971_1) { e_971 = { error: e_971_1 }; } - finally { - try { - if (locations_1_1 && !locations_1_1.done && (_t = locations_1.return)) _t.call(locations_1); - } - finally { if (e_971) throw e_971.error; } - } - return arrayFrom(map2.values()); - }; - _Session.prototype.getReferences = function (args, simplifiedResult) { - var _this = this; - var file = toNormalizedPath(args.file); - var projects = this.getProjects(args); - var position = this.getPositionInFile(args, file); - var references = getReferencesWorker(projects, this.getDefaultProject(args), { fileName: args.file, pos: position }, this.logger); - if (!simplifiedResult) - return references; - var preferences = this.getPreferences(file); - var defaultProject = this.getDefaultProject(args); - var scriptInfo = defaultProject.getScriptInfoForNormalizedPath(file); - var nameInfo = defaultProject.getLanguageService().getQuickInfoAtPosition(file, position); - var symbolDisplayString = nameInfo ? displayPartsToString(nameInfo.displayParts) : ""; - var nameSpan = nameInfo && nameInfo.textSpan; - var symbolStartOffset = nameSpan ? scriptInfo.positionToLineOffset(nameSpan.start).offset : 0; - var symbolName2 = nameSpan ? scriptInfo.getSnapshot().getText(nameSpan.start, textSpanEnd(nameSpan)) : ""; - var refs = flatMap(references, function (referencedSymbol) { - return referencedSymbol.references.map(function (entry) { return referenceEntryToReferencesResponseItem(_this.projectService, entry, preferences); }); - }); - return { refs: refs, symbolName: symbolName2, symbolStartOffset: symbolStartOffset, symbolDisplayString: symbolDisplayString }; - }; - _Session.prototype.getFileReferences = function (args, simplifiedResult) { - var _this = this; - var projects = this.getProjects(args); - var fileName = args.file; - var preferences = this.getPreferences(toNormalizedPath(fileName)); - var references = []; - var seen = createDocumentSpanSet(); - forEachProjectInProjects(projects, - /*path*/ - void 0, function (project) { - var e_972, _t; - if (project.getCancellationToken().isCancellationRequested()) - return; - var projectOutputs = project.getLanguageService().getFileReferences(fileName); - if (projectOutputs) { - try { - for (var projectOutputs_1 = __values(projectOutputs), projectOutputs_1_1 = projectOutputs_1.next(); !projectOutputs_1_1.done; projectOutputs_1_1 = projectOutputs_1.next()) { - var referenceEntry = projectOutputs_1_1.value; - if (!seen.has(referenceEntry)) { - references.push(referenceEntry); - seen.add(referenceEntry); - } - } - } - catch (e_972_1) { e_972 = { error: e_972_1 }; } - finally { - try { - if (projectOutputs_1_1 && !projectOutputs_1_1.done && (_t = projectOutputs_1.return)) _t.call(projectOutputs_1); - } - finally { if (e_972) throw e_972.error; } - } - } - }); - if (!simplifiedResult) - return references; - var refs = references.map(function (entry) { return referenceEntryToReferencesResponseItem(_this.projectService, entry, preferences); }); - return { - refs: refs, - symbolName: "\"".concat(args.file, "\"") - }; - }; - /** - * @param fileName is the name of the file to be opened - * @param fileContent is a version of the file content that is known to be more up to date than the one on disk - */ - _Session.prototype.openClientFile = function (fileName, fileContent, scriptKind, projectRootPath) { - this.projectService.openClientFileWithNormalizedPath(fileName, fileContent, scriptKind, - /*hasMixedContent*/ - false, projectRootPath); - }; - _Session.prototype.getPosition = function (args, scriptInfo) { - return args.position !== void 0 ? args.position : scriptInfo.lineOffsetToPosition(args.line, args.offset); - }; - _Session.prototype.getPositionInFile = function (args, file) { - var scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file); - return this.getPosition(args, scriptInfo); - }; - _Session.prototype.getFileAndProject = function (args) { - return this.getFileAndProjectWorker(args.file, args.projectFileName); - }; - _Session.prototype.getFileAndLanguageServiceForSyntacticOperation = function (args) { - var _t = this.getFileAndProject(args), file = _t.file, project = _t.project; - return { - file: file, - languageService: project.getLanguageService( - /*ensureSynchronized*/ - false) - }; - }; - _Session.prototype.getFileAndProjectWorker = function (uncheckedFileName, projectFileName) { - var file = toNormalizedPath(uncheckedFileName); - var project = this.getProject(projectFileName) || this.projectService.ensureDefaultProjectForFile(file); - return { file: file, project: project }; - }; - _Session.prototype.getOutliningSpans = function (args, simplifiedResult) { - var _t = this.getFileAndLanguageServiceForSyntacticOperation(args), file = _t.file, languageService = _t.languageService; - var spans = languageService.getOutliningSpans(file); - if (simplifiedResult) { - var scriptInfo_1 = this.projectService.getScriptInfoForNormalizedPath(file); - return spans.map(function (s) { return ({ - textSpan: toProtocolTextSpan(s.textSpan, scriptInfo_1), - hintSpan: toProtocolTextSpan(s.hintSpan, scriptInfo_1), - bannerText: s.bannerText, - autoCollapse: s.autoCollapse, - kind: s.kind - }); }); - } - else { - return spans; - } - }; - _Session.prototype.getTodoComments = function (args) { - var _t = this.getFileAndProject(args), file = _t.file, project = _t.project; - return project.getLanguageService().getTodoComments(file, args.descriptors); - }; - _Session.prototype.getDocCommentTemplate = function (args) { - var _t = this.getFileAndLanguageServiceForSyntacticOperation(args), file = _t.file, languageService = _t.languageService; - var position = this.getPositionInFile(args, file); - return languageService.getDocCommentTemplateAtPosition(file, position, this.getPreferences(file), this.getFormatOptions(file)); - }; - _Session.prototype.getSpanOfEnclosingComment = function (args) { - var _t = this.getFileAndLanguageServiceForSyntacticOperation(args), file = _t.file, languageService = _t.languageService; - var onlyMultiLine = args.onlyMultiLine; - var position = this.getPositionInFile(args, file); - return languageService.getSpanOfEnclosingComment(file, position, onlyMultiLine); - }; - _Session.prototype.getIndentation = function (args) { - var _t = this.getFileAndLanguageServiceForSyntacticOperation(args), file = _t.file, languageService = _t.languageService; - var position = this.getPositionInFile(args, file); - var options = args.options ? convertFormatOptions(args.options) : this.getFormatOptions(file); - var indentation = languageService.getIndentationAtPosition(file, position, options); - return { position: position, indentation: indentation }; - }; - _Session.prototype.getBreakpointStatement = function (args) { - var _t = this.getFileAndLanguageServiceForSyntacticOperation(args), file = _t.file, languageService = _t.languageService; - var position = this.getPositionInFile(args, file); - return languageService.getBreakpointStatementAtPosition(file, position); - }; - _Session.prototype.getNameOrDottedNameSpan = function (args) { - var _t = this.getFileAndLanguageServiceForSyntacticOperation(args), file = _t.file, languageService = _t.languageService; - var position = this.getPositionInFile(args, file); - return languageService.getNameOrDottedNameSpan(file, position, position); - }; - _Session.prototype.isValidBraceCompletion = function (args) { - var _t = this.getFileAndLanguageServiceForSyntacticOperation(args), file = _t.file, languageService = _t.languageService; - var position = this.getPositionInFile(args, file); - return languageService.isValidBraceCompletionAtPosition(file, position, args.openingBrace.charCodeAt(0)); - }; - _Session.prototype.getQuickInfoWorker = function (args, simplifiedResult) { - var _t = this.getFileAndProject(args), file = _t.file, project = _t.project; - var scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file); - var quickInfo = project.getLanguageService().getQuickInfoAtPosition(file, this.getPosition(args, scriptInfo)); - if (!quickInfo) { - return void 0; - } - var useDisplayParts = !!this.getPreferences(file).displayPartsForJSDoc; - if (simplifiedResult) { - var displayString = displayPartsToString(quickInfo.displayParts); - return { - kind: quickInfo.kind, - kindModifiers: quickInfo.kindModifiers, - start: scriptInfo.positionToLineOffset(quickInfo.textSpan.start), - end: scriptInfo.positionToLineOffset(textSpanEnd(quickInfo.textSpan)), - displayString: displayString, - documentation: useDisplayParts ? this.mapDisplayParts(quickInfo.documentation, project) : displayPartsToString(quickInfo.documentation), - tags: this.mapJSDocTagInfo(quickInfo.tags, project, useDisplayParts) - }; - } - else { - return useDisplayParts ? quickInfo : __assign(__assign({}, quickInfo), { tags: this.mapJSDocTagInfo(quickInfo.tags, project, - /*richResponse*/ - false) }); - } - }; - _Session.prototype.getFormattingEditsForRange = function (args) { - var _this = this; - var _t = this.getFileAndLanguageServiceForSyntacticOperation(args), file = _t.file, languageService = _t.languageService; - var scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file); - var startPosition = scriptInfo.lineOffsetToPosition(args.line, args.offset); - var endPosition = scriptInfo.lineOffsetToPosition(args.endLine, args.endOffset); - var edits = languageService.getFormattingEditsForRange(file, startPosition, endPosition, this.getFormatOptions(file)); - if (!edits) { - return void 0; - } - return edits.map(function (edit) { return _this.convertTextChangeToCodeEdit(edit, scriptInfo); }); - }; - _Session.prototype.getFormattingEditsForRangeFull = function (args) { - var _t = this.getFileAndLanguageServiceForSyntacticOperation(args), file = _t.file, languageService = _t.languageService; - var options = args.options ? convertFormatOptions(args.options) : this.getFormatOptions(file); - return languageService.getFormattingEditsForRange(file, args.position, args.endPosition, options); - }; - _Session.prototype.getFormattingEditsForDocumentFull = function (args) { - var _t = this.getFileAndLanguageServiceForSyntacticOperation(args), file = _t.file, languageService = _t.languageService; - var options = args.options ? convertFormatOptions(args.options) : this.getFormatOptions(file); - return languageService.getFormattingEditsForDocument(file, options); - }; - _Session.prototype.getFormattingEditsAfterKeystrokeFull = function (args) { - var _t = this.getFileAndLanguageServiceForSyntacticOperation(args), file = _t.file, languageService = _t.languageService; - var options = args.options ? convertFormatOptions(args.options) : this.getFormatOptions(file); - return languageService.getFormattingEditsAfterKeystroke(file, args.position, args.key, options); - }; - _Session.prototype.getFormattingEditsAfterKeystroke = function (args) { - var _t = this.getFileAndLanguageServiceForSyntacticOperation(args), file = _t.file, languageService = _t.languageService; - var scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file); - var position = scriptInfo.lineOffsetToPosition(args.line, args.offset); - var formatOptions = this.getFormatOptions(file); - var edits = languageService.getFormattingEditsAfterKeystroke(file, position, args.key, formatOptions); - if (args.key === "\n" && (!edits || edits.length === 0 || allEditsBeforePos(edits, position))) { - var _u = scriptInfo.textStorage.getAbsolutePositionAndLineText(args.line), lineText = _u.lineText, absolutePosition = _u.absolutePosition; - if (lineText && lineText.search("\\S") < 0) { - var preferredIndent = languageService.getIndentationAtPosition(file, position, formatOptions); - var hasIndent = 0; - var i = void 0, len = void 0; - for (i = 0, len = lineText.length; i < len; i++) { - if (lineText.charAt(i) === " ") { - hasIndent++; - } - else if (lineText.charAt(i) === " ") { - hasIndent += formatOptions.tabSize; - } - else { - break; - } - } - if (preferredIndent !== hasIndent) { - var firstNoWhiteSpacePosition = absolutePosition + i; - edits.push({ - span: createTextSpanFromBounds(absolutePosition, firstNoWhiteSpacePosition), - newText: ts_formatting_exports.getIndentationString(preferredIndent, formatOptions) - }); - } - } - } - if (!edits) { - return void 0; - } - return edits.map(function (edit) { - return { - start: scriptInfo.positionToLineOffset(edit.span.start), - end: scriptInfo.positionToLineOffset(textSpanEnd(edit.span)), - newText: edit.newText ? edit.newText : "" - }; - }); - }; - _Session.prototype.getCompletions = function (args, kind) { - var _t = this.getFileAndProject(args), file = _t.file, project = _t.project; - var scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file); - var position = this.getPosition(args, scriptInfo); - var completions = project.getLanguageService().getCompletionsAtPosition(file, position, __assign(__assign({}, convertUserPreferences(this.getPreferences(file))), { triggerCharacter: args.triggerCharacter, triggerKind: args.triggerKind, includeExternalModuleExports: args.includeExternalModuleExports, includeInsertTextCompletions: args.includeInsertTextCompletions }), project.projectService.getFormatCodeOptions(file)); - if (completions === void 0) - return void 0; - if (kind === "completions-full" /* CompletionsFull */) - return completions; - var prefix = args.prefix || ""; - var entries = mapDefined(completions.entries, function (entry) { - if (completions.isMemberCompletion || startsWith(entry.name.toLowerCase(), prefix.toLowerCase())) { - var name_142 = entry.name, kind2 = entry.kind, kindModifiers = entry.kindModifiers, sortText = entry.sortText, insertText = entry.insertText, filterText = entry.filterText, replacementSpan = entry.replacementSpan, hasAction = entry.hasAction, source = entry.source, sourceDisplay = entry.sourceDisplay, labelDetails = entry.labelDetails, isSnippet = entry.isSnippet, isRecommended = entry.isRecommended, isPackageJsonImport = entry.isPackageJsonImport, isImportStatementCompletion = entry.isImportStatementCompletion, data = entry.data; - var convertedSpan = replacementSpan ? toProtocolTextSpan(replacementSpan, scriptInfo) : void 0; - return { - name: name_142, - kind: kind2, - kindModifiers: kindModifiers, - sortText: sortText, - insertText: insertText, - filterText: filterText, - replacementSpan: convertedSpan, - isSnippet: isSnippet, - hasAction: hasAction || void 0, - source: source, - sourceDisplay: sourceDisplay, - labelDetails: labelDetails, - isRecommended: isRecommended, - isPackageJsonImport: isPackageJsonImport, - isImportStatementCompletion: isImportStatementCompletion, - data: data - }; - } - }); - if (kind === "completions" /* Completions */) { - if (completions.metadata) - entries.metadata = completions.metadata; - return entries; - } - var res = __assign(__assign({}, completions), { optionalReplacementSpan: completions.optionalReplacementSpan && toProtocolTextSpan(completions.optionalReplacementSpan, scriptInfo), entries: entries }); - return res; - }; - _Session.prototype.getCompletionEntryDetails = function (args, fullResult) { - var _this = this; - var _t = this.getFileAndProject(args), file = _t.file, project = _t.project; - var scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file); - var position = this.getPosition(args, scriptInfo); - var formattingOptions = project.projectService.getFormatCodeOptions(file); - var useDisplayParts = !!this.getPreferences(file).displayPartsForJSDoc; - var result = mapDefined(args.entryNames, function (entryName) { - var _t = typeof entryName === "string" ? { name: entryName, source: void 0, data: void 0 } : entryName, name = _t.name, source = _t.source, data = _t.data; - return project.getLanguageService().getCompletionEntryDetails(file, position, name, formattingOptions, source, _this.getPreferences(file), data ? cast(data, isCompletionEntryData) : void 0); - }); - return fullResult ? useDisplayParts ? result : result.map(function (details) { return (__assign(__assign({}, details), { tags: _this.mapJSDocTagInfo(details.tags, project, - /*richResponse*/ - false) })); }) : result.map(function (details) { return (__assign(__assign({}, details), { codeActions: map(details.codeActions, function (action) { return _this.mapCodeAction(action); }), documentation: _this.mapDisplayParts(details.documentation, project), tags: _this.mapJSDocTagInfo(details.tags, project, useDisplayParts) })); }); - }; - _Session.prototype.getCompileOnSaveAffectedFileList = function (args) { - var _this = this; - var projects = this.getProjects(args, - /*getScriptInfoEnsuringProjectsUptoDate*/ - true, - /*ignoreNoProjectError*/ - true); - var info = this.projectService.getScriptInfo(args.file); - if (!info) { - return emptyArray2; - } - return combineProjectOutput(info, function (path) { return _this.projectService.getScriptInfoForPath(path); }, projects, function (project, info2) { - if (!project.compileOnSaveEnabled || !project.languageServiceEnabled || project.isOrphan()) { - return void 0; - } - var compilationSettings = project.getCompilationSettings(); - if (!!compilationSettings.noEmit || isDeclarationFileName(info2.fileName) && !dtsChangeCanAffectEmit(compilationSettings)) { - return void 0; - } - return { - projectFileName: project.getProjectName(), - fileNames: project.getCompileOnSaveAffectedFileList(info2), - projectUsesOutFile: !!outFile(compilationSettings) - }; - }); - }; - _Session.prototype.emitFile = function (args) { - var _this = this; - var _t = this.getFileAndProject(args), file = _t.file, project = _t.project; - if (!project) { - Errors.ThrowNoProject(); - } - if (!project.languageServiceEnabled) { - return args.richResponse ? { emitSkipped: true, diagnostics: [] } : false; - } - var scriptInfo = project.getScriptInfo(file); - var _u = project.emitFile(scriptInfo, function (path, data, writeByteOrderMark) { return _this.host.writeFile(path, data, writeByteOrderMark); }), emitSkipped = _u.emitSkipped, diagnostics = _u.diagnostics; - return args.richResponse ? { - emitSkipped: emitSkipped, - diagnostics: args.includeLinePosition ? this.convertToDiagnosticsWithLinePositionFromDiagnosticFile(diagnostics) : diagnostics.map(function (d) { return formatDiagnosticToProtocol(d, - /*includeFileName*/ - true); }) - } : !emitSkipped; - }; - _Session.prototype.getSignatureHelpItems = function (args, simplifiedResult) { - var _this = this; - var _t = this.getFileAndProject(args), file = _t.file, project = _t.project; - var scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file); - var position = this.getPosition(args, scriptInfo); - var helpItems = project.getLanguageService().getSignatureHelpItems(file, position, args); - var useDisplayParts = !!this.getPreferences(file).displayPartsForJSDoc; - if (helpItems && simplifiedResult) { - var span = helpItems.applicableSpan; - return __assign(__assign({}, helpItems), { applicableSpan: { - start: scriptInfo.positionToLineOffset(span.start), - end: scriptInfo.positionToLineOffset(span.start + span.length) - }, items: this.mapSignatureHelpItems(helpItems.items, project, useDisplayParts) }); - } - else if (useDisplayParts || !helpItems) { - return helpItems; - } - else { - return __assign(__assign({}, helpItems), { items: helpItems.items.map(function (item) { return (__assign(__assign({}, item), { tags: _this.mapJSDocTagInfo(item.tags, project, - /*richResponse*/ - false) })); }) }); - } - }; - _Session.prototype.toPendingErrorCheck = function (uncheckedFileName) { - var fileName = toNormalizedPath(uncheckedFileName); - var project = this.projectService.tryGetDefaultProjectForFile(fileName); - return project && { fileName: fileName, project: project }; - }; - _Session.prototype.getDiagnostics = function (next, delay, fileNames) { - if (this.suppressDiagnosticEvents) { - return; - } - if (fileNames.length > 0) { - this.updateErrorCheck(next, fileNames, delay); - } - }; - _Session.prototype.change = function (args) { - var scriptInfo = this.projectService.getScriptInfo(args.file); - Debug.assert(!!scriptInfo); - scriptInfo.textStorage.switchToScriptVersionCache(); - var start2 = scriptInfo.lineOffsetToPosition(args.line, args.offset); - var end = scriptInfo.lineOffsetToPosition(args.endLine, args.endOffset); - if (start2 >= 0) { - this.changeSeq++; - this.projectService.applyChangesToFile(scriptInfo, singleIterator({ - span: { start: start2, length: end - start2 }, - newText: args.insertString - // TODO: GH#18217 - })); - } - }; - _Session.prototype.reload = function (args, reqSeq) { - var file = toNormalizedPath(args.file); - var tempFileName = args.tmpfile === void 0 ? void 0 : toNormalizedPath(args.tmpfile); - var info = this.projectService.getScriptInfoForNormalizedPath(file); - if (info) { - this.changeSeq++; - if (info.reloadFromFile(tempFileName)) { - this.doOutput( - /*info*/ - void 0, "reload" /* Reload */, reqSeq, - /*success*/ - true); - } - } - }; - _Session.prototype.saveToTmp = function (fileName, tempFileName) { - var scriptInfo = this.projectService.getScriptInfo(fileName); - if (scriptInfo) { - scriptInfo.saveTo(tempFileName); - } - }; - _Session.prototype.closeClientFile = function (fileName) { - if (!fileName) { - return; - } - var file = normalizePath(fileName); - this.projectService.closeClientFile(file); - }; - _Session.prototype.mapLocationNavigationBarItems = function (items, scriptInfo) { - var _this = this; - return map(items, function (item) { return ({ - text: item.text, - kind: item.kind, - kindModifiers: item.kindModifiers, - spans: item.spans.map(function (span) { return toProtocolTextSpan(span, scriptInfo); }), - childItems: _this.mapLocationNavigationBarItems(item.childItems, scriptInfo), - indent: item.indent - }); }); - }; - _Session.prototype.getNavigationBarItems = function (args, simplifiedResult) { - var _t = this.getFileAndLanguageServiceForSyntacticOperation(args), file = _t.file, languageService = _t.languageService; - var items = languageService.getNavigationBarItems(file); - return !items ? void 0 : simplifiedResult ? this.mapLocationNavigationBarItems(items, this.projectService.getScriptInfoForNormalizedPath(file)) : items; - }; - _Session.prototype.toLocationNavigationTree = function (tree, scriptInfo) { - var _this = this; - return { - text: tree.text, - kind: tree.kind, - kindModifiers: tree.kindModifiers, - spans: tree.spans.map(function (span) { return toProtocolTextSpan(span, scriptInfo); }), - nameSpan: tree.nameSpan && toProtocolTextSpan(tree.nameSpan, scriptInfo), - childItems: map(tree.childItems, function (item) { return _this.toLocationNavigationTree(item, scriptInfo); }) - }; - }; - _Session.prototype.getNavigationTree = function (args, simplifiedResult) { - var _t = this.getFileAndLanguageServiceForSyntacticOperation(args), file = _t.file, languageService = _t.languageService; - var tree = languageService.getNavigationTree(file); - return !tree ? void 0 : simplifiedResult ? this.toLocationNavigationTree(tree, this.projectService.getScriptInfoForNormalizedPath(file)) : tree; - }; - _Session.prototype.getNavigateToItems = function (args, simplifiedResult) { - var full = this.getFullNavigateToItems(args); - return !simplifiedResult ? flatMap(full, function (_t) { - var navigateToItems = _t.navigateToItems; - return navigateToItems; - }) : flatMap(full, function (_t) { - var project = _t.project, navigateToItems = _t.navigateToItems; - return navigateToItems.map(function (navItem) { - var scriptInfo = project.getScriptInfo(navItem.fileName); - var bakedItem = { - name: navItem.name, - kind: navItem.kind, - kindModifiers: navItem.kindModifiers, - isCaseSensitive: navItem.isCaseSensitive, - matchKind: navItem.matchKind, - file: navItem.fileName, - start: scriptInfo.positionToLineOffset(navItem.textSpan.start), - end: scriptInfo.positionToLineOffset(textSpanEnd(navItem.textSpan)) - }; - if (navItem.kindModifiers && navItem.kindModifiers !== "") { - bakedItem.kindModifiers = navItem.kindModifiers; - } - if (navItem.containerName && navItem.containerName.length > 0) { - bakedItem.containerName = navItem.containerName; - } - if (navItem.containerKind && navItem.containerKind.length > 0) { - bakedItem.containerKind = navItem.containerKind; - } - return bakedItem; - }); - }); - }; - _Session.prototype.getFullNavigateToItems = function (args) { - var currentFileOnly = args.currentFileOnly, searchValue = args.searchValue, maxResultCount = args.maxResultCount, projectFileName = args.projectFileName; - if (currentFileOnly) { - Debug.assertIsDefined(args.file); - var _t = this.getFileAndProject(args), file = _t.file, project = _t.project; - return [{ project: project, navigateToItems: project.getLanguageService().getNavigateToItems(searchValue, maxResultCount, file) }]; - } - var outputs = []; - var seenItems = /* @__PURE__ */ new Map(); - if (!args.file && !projectFileName) { - this.projectService.loadAncestorProjectTree(); - this.projectService.forEachEnabledProject(function (project) { return addItemsForProject(project); }); - } - else { - var projects = this.getProjects(args); - forEachProjectInProjects(projects, - /*path*/ - void 0, function (project) { return addItemsForProject(project); }); - } - return outputs; - function addItemsForProject(project) { - var projectItems = project.getLanguageService().getNavigateToItems(searchValue, maxResultCount, - /*fileName*/ - void 0, - /*excludeDts*/ - project.isNonTsProject()); - var unseenItems = filter(projectItems, function (item) { return tryAddSeenItem(item) && !getMappedLocationForProject(documentSpanLocation(item), project); }); - if (unseenItems.length) { - outputs.push({ project: project, navigateToItems: unseenItems }); - } - } - function tryAddSeenItem(item) { - var e_973, _t; - var name = item.name; - if (!seenItems.has(name)) { - seenItems.set(name, [item]); - return true; - } - var seen = seenItems.get(name); - try { - for (var seen_2 = __values(seen), seen_2_1 = seen_2.next(); !seen_2_1.done; seen_2_1 = seen_2.next()) { - var seenItem = seen_2_1.value; - if (navigateToItemIsEqualTo(seenItem, item)) { - return false; - } - } - } - catch (e_973_1) { e_973 = { error: e_973_1 }; } - finally { - try { - if (seen_2_1 && !seen_2_1.done && (_t = seen_2.return)) _t.call(seen_2); - } - finally { if (e_973) throw e_973.error; } - } - seen.push(item); - return true; - } - function navigateToItemIsEqualTo(a, b) { - if (a === b) { - return true; - } - if (!a || !b) { - return false; - } - return a.containerKind === b.containerKind && a.containerName === b.containerName && a.fileName === b.fileName && a.isCaseSensitive === b.isCaseSensitive && a.kind === b.kind && a.kindModifiers === b.kindModifiers && a.matchKind === b.matchKind && a.name === b.name && a.textSpan.start === b.textSpan.start && a.textSpan.length === b.textSpan.length; - } - }; - _Session.prototype.getSupportedCodeFixes = function (args) { - if (!args) - return getSupportedCodeFixes(); - if (args.file) { - var _t = this.getFileAndProject(args), file = _t.file, project2 = _t.project; - return project2.getLanguageService().getSupportedCodeFixes(file); - } - var project = this.getProject(args.projectFileName); - if (!project) - Errors.ThrowNoProject(); - return project.getLanguageService().getSupportedCodeFixes(); - }; - _Session.prototype.isLocation = function (locationOrSpan) { - return locationOrSpan.line !== void 0; - }; - _Session.prototype.extractPositionOrRange = function (args, scriptInfo) { - var position; - var textRange; - if (this.isLocation(args)) { - position = getPosition(args); - } - else { - textRange = this.getRange(args, scriptInfo); - } - return Debug.checkDefined(position === void 0 ? textRange : position); - function getPosition(loc) { - return loc.position !== void 0 ? loc.position : scriptInfo.lineOffsetToPosition(loc.line, loc.offset); - } - }; - _Session.prototype.getRange = function (args, scriptInfo) { - var _t = this.getStartAndEndPosition(args, scriptInfo), startPosition = _t.startPosition, endPosition = _t.endPosition; - return { pos: startPosition, end: endPosition }; - }; - _Session.prototype.getApplicableRefactors = function (args) { - var _t = this.getFileAndProject(args), file = _t.file, project = _t.project; - var scriptInfo = project.getScriptInfoForNormalizedPath(file); - return project.getLanguageService().getApplicableRefactors(file, this.extractPositionOrRange(args, scriptInfo), this.getPreferences(file), args.triggerReason, args.kind, args.includeInteractiveActions); - }; - _Session.prototype.getEditsForRefactor = function (args, simplifiedResult) { - var _t = this.getFileAndProject(args), file = _t.file, project = _t.project; - var scriptInfo = project.getScriptInfoForNormalizedPath(file); - var result = project.getLanguageService().getEditsForRefactor(file, this.getFormatOptions(file), this.extractPositionOrRange(args, scriptInfo), args.refactor, args.action, this.getPreferences(file), args.interactiveRefactorArguments); - if (result === void 0) { - return { - edits: [] - }; - } - if (simplifiedResult) { - var renameFilename = result.renameFilename, renameLocation = result.renameLocation, edits = result.edits; - var mappedRenameLocation = void 0; - if (renameFilename !== void 0 && renameLocation !== void 0) { - var renameScriptInfo = project.getScriptInfoForNormalizedPath(toNormalizedPath(renameFilename)); - mappedRenameLocation = getLocationInNewDocument(getSnapshotText(renameScriptInfo.getSnapshot()), renameFilename, renameLocation, edits); - } - return { - renameLocation: mappedRenameLocation, - renameFilename: renameFilename, - edits: this.mapTextChangesToCodeEdits(edits), - notApplicableReason: result.notApplicableReason - }; - } - return result; - }; - _Session.prototype.getMoveToRefactoringFileSuggestions = function (args) { - var _t = this.getFileAndProject(args), file = _t.file, project = _t.project; - var scriptInfo = project.getScriptInfoForNormalizedPath(file); - return project.getLanguageService().getMoveToRefactoringFileSuggestions(file, this.extractPositionOrRange(args, scriptInfo), this.getPreferences(file)); - }; - _Session.prototype.organizeImports = function (args, simplifiedResult) { - var _t; - Debug.assert(args.scope.type === "file"); - var _u = this.getFileAndProject(args.scope.args), file = _u.file, project = _u.project; - var changes = project.getLanguageService().organizeImports({ - fileName: file, - mode: (_t = args.mode) !== null && _t !== void 0 ? _t : (args.skipDestructiveCodeActions ? "SortAndCombine" /* SortAndCombine */ : void 0), - type: "file" - }, this.getFormatOptions(file), this.getPreferences(file)); - if (simplifiedResult) { - return this.mapTextChangesToCodeEdits(changes); - } - else { - return changes; - } - }; - _Session.prototype.getEditsForFileRename = function (args, simplifiedResult) { - var _this = this; - var oldPath = toNormalizedPath(args.oldFilePath); - var newPath = toNormalizedPath(args.newFilePath); - var formatOptions = this.getHostFormatOptions(); - var preferences = this.getHostPreferences(); - var seenFiles = /* @__PURE__ */ new Set(); - var textChanges2 = []; - this.projectService.loadAncestorProjectTree(); - this.projectService.forEachEnabledProject(function (project) { - var e_974, _t, e_975, _u; - var projectTextChanges = project.getLanguageService().getEditsForFileRename(oldPath, newPath, formatOptions, preferences); - var projectFiles = []; - try { - for (var projectTextChanges_1 = __values(projectTextChanges), projectTextChanges_1_1 = projectTextChanges_1.next(); !projectTextChanges_1_1.done; projectTextChanges_1_1 = projectTextChanges_1.next()) { - var textChange = projectTextChanges_1_1.value; - if (!seenFiles.has(textChange.fileName)) { - textChanges2.push(textChange); - projectFiles.push(textChange.fileName); - } - } - } - catch (e_974_1) { e_974 = { error: e_974_1 }; } - finally { - try { - if (projectTextChanges_1_1 && !projectTextChanges_1_1.done && (_t = projectTextChanges_1.return)) _t.call(projectTextChanges_1); - } - finally { if (e_974) throw e_974.error; } - } - try { - for (var projectFiles_1 = __values(projectFiles), projectFiles_1_1 = projectFiles_1.next(); !projectFiles_1_1.done; projectFiles_1_1 = projectFiles_1.next()) { - var file = projectFiles_1_1.value; - seenFiles.add(file); - } - } - catch (e_975_1) { e_975 = { error: e_975_1 }; } - finally { - try { - if (projectFiles_1_1 && !projectFiles_1_1.done && (_u = projectFiles_1.return)) _u.call(projectFiles_1); - } - finally { if (e_975) throw e_975.error; } - } - }); - return simplifiedResult ? textChanges2.map(function (c) { return _this.mapTextChangeToCodeEdit(c); }) : textChanges2; - }; - _Session.prototype.getCodeFixes = function (args, simplifiedResult) { - var _this = this; - var _t = this.getFileAndProject(args), file = _t.file, project = _t.project; - var scriptInfo = project.getScriptInfoForNormalizedPath(file); - var _u = this.getStartAndEndPosition(args, scriptInfo), startPosition = _u.startPosition, endPosition = _u.endPosition; - var codeActions; - try { - codeActions = project.getLanguageService().getCodeFixesAtPosition(file, startPosition, endPosition, args.errorCodes, this.getFormatOptions(file), this.getPreferences(file)); - } - catch (e) { - var ls = project.getLanguageService(); - var existingDiagCodes_1 = __spreadArray(__spreadArray(__spreadArray([], __read(ls.getSyntacticDiagnostics(file)), false), __read(ls.getSemanticDiagnostics(file)), false), __read(ls.getSuggestionDiagnostics(file)), false).map(function (d) { return decodedTextSpanIntersectsWith(startPosition, endPosition - startPosition, d.start, d.length) && d.code; }); - var badCode = args.errorCodes.find(function (c) { return !existingDiagCodes_1.includes(c); }); - if (badCode !== void 0) { - e.message = "BADCLIENT: Bad error code, ".concat(badCode, " not found in range ").concat(startPosition, "..").concat(endPosition, " (found: ").concat(existingDiagCodes_1.join(", "), "); could have caused this error:\n").concat(e.message); - } - throw e; - } - return simplifiedResult ? codeActions.map(function (codeAction) { return _this.mapCodeFixAction(codeAction); }) : codeActions; - }; - _Session.prototype.getCombinedCodeFix = function (_t, simplifiedResult) { - var scope = _t.scope, fixId52 = _t.fixId; - Debug.assert(scope.type === "file"); - var _u = this.getFileAndProject(scope.args), file = _u.file, project = _u.project; - var res = project.getLanguageService().getCombinedCodeFix({ type: "file", fileName: file }, fixId52, this.getFormatOptions(file), this.getPreferences(file)); - if (simplifiedResult) { - return { changes: this.mapTextChangesToCodeEdits(res.changes), commands: res.commands }; - } - else { - return res; - } - }; - _Session.prototype.applyCodeActionCommand = function (args) { - var e_976, _t; - var commands = args.command; - try { - for (var _u = __values(toArray(commands)), _v = _u.next(); !_v.done; _v = _u.next()) { - var command = _v.value; - var _w = this.getFileAndProject(command), file = _w.file, project = _w.project; - project.getLanguageService().applyCodeActionCommand(command, this.getFormatOptions(file)).then(function (_result) { - }, function (_error) { - }); - } - } - catch (e_976_1) { e_976 = { error: e_976_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_976) throw e_976.error; } - } - return {}; - }; - _Session.prototype.getStartAndEndPosition = function (args, scriptInfo) { - var startPosition, endPosition; - if (args.startPosition !== void 0) { - startPosition = args.startPosition; - } - else { - startPosition = scriptInfo.lineOffsetToPosition(args.startLine, args.startOffset); - args.startPosition = startPosition; - } - if (args.endPosition !== void 0) { - endPosition = args.endPosition; - } - else { - endPosition = scriptInfo.lineOffsetToPosition(args.endLine, args.endOffset); - args.endPosition = endPosition; - } - return { startPosition: startPosition, endPosition: endPosition }; - }; - _Session.prototype.mapCodeAction = function (_t) { - var description3 = _t.description, changes = _t.changes, commands = _t.commands; - return { description: description3, changes: this.mapTextChangesToCodeEdits(changes), commands: commands }; - }; - _Session.prototype.mapCodeFixAction = function (_t) { - var fixName8 = _t.fixName, description3 = _t.description, changes = _t.changes, commands = _t.commands, fixId52 = _t.fixId, fixAllDescription = _t.fixAllDescription; - return { fixName: fixName8, description: description3, changes: this.mapTextChangesToCodeEdits(changes), commands: commands, fixId: fixId52, fixAllDescription: fixAllDescription }; - }; - _Session.prototype.mapTextChangesToCodeEdits = function (textChanges2) { - var _this = this; - return textChanges2.map(function (change) { return _this.mapTextChangeToCodeEdit(change); }); - }; - _Session.prototype.mapTextChangeToCodeEdit = function (textChanges2) { - var scriptInfo = this.projectService.getScriptInfoOrConfig(textChanges2.fileName); - if (!!textChanges2.isNewFile === !!scriptInfo) { - if (!scriptInfo) { - this.projectService.logErrorForScriptInfoNotFound(textChanges2.fileName); - } - Debug.fail("Expected isNewFile for (only) new files. " + JSON.stringify({ isNewFile: !!textChanges2.isNewFile, hasScriptInfo: !!scriptInfo })); - } - return scriptInfo ? { fileName: textChanges2.fileName, textChanges: textChanges2.textChanges.map(function (textChange) { return convertTextChangeToCodeEdit(textChange, scriptInfo); }) } : convertNewFileTextChangeToCodeEdit(textChanges2); - }; - _Session.prototype.convertTextChangeToCodeEdit = function (change, scriptInfo) { - return { - start: scriptInfo.positionToLineOffset(change.span.start), - end: scriptInfo.positionToLineOffset(change.span.start + change.span.length), - newText: change.newText ? change.newText : "" - }; - }; - _Session.prototype.getBraceMatching = function (args, simplifiedResult) { - var _t = this.getFileAndLanguageServiceForSyntacticOperation(args), file = _t.file, languageService = _t.languageService; - var scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file); - var position = this.getPosition(args, scriptInfo); - var spans = languageService.getBraceMatchingAtPosition(file, position); - return !spans ? void 0 : simplifiedResult ? spans.map(function (span) { return toProtocolTextSpan(span, scriptInfo); }) : spans; - }; - _Session.prototype.getDiagnosticsForProject = function (next, delay, fileName) { - var e_977, _t; - if (this.suppressDiagnosticEvents) { - return; - } - var _u = this.getProjectInfoWorker(fileName, - /*projectFileName*/ - void 0, - /*needFileNameList*/ - true, - /*excludeConfigFiles*/ - true), fileNames = _u.fileNames, languageServiceDisabled = _u.languageServiceDisabled; - if (languageServiceDisabled) { - return; - } - var fileNamesInProject = fileNames.filter(function (value) { return !stringContains(value, "lib.d.ts"); }); - if (fileNamesInProject.length === 0) { - return; - } - var highPriorityFiles = []; - var mediumPriorityFiles = []; - var lowPriorityFiles = []; - var veryLowPriorityFiles = []; - var normalizedFileName = toNormalizedPath(fileName); - var project = this.projectService.ensureDefaultProjectForFile(normalizedFileName); - try { - for (var fileNamesInProject_1 = __values(fileNamesInProject), fileNamesInProject_1_1 = fileNamesInProject_1.next(); !fileNamesInProject_1_1.done; fileNamesInProject_1_1 = fileNamesInProject_1.next()) { - var fileNameInProject = fileNamesInProject_1_1.value; - if (this.getCanonicalFileName(fileNameInProject) === this.getCanonicalFileName(fileName)) { - highPriorityFiles.push(fileNameInProject); - } - else { - var info = this.projectService.getScriptInfo(fileNameInProject); - if (!info.isScriptOpen()) { - if (isDeclarationFileName(fileNameInProject)) { - veryLowPriorityFiles.push(fileNameInProject); - } - else { - lowPriorityFiles.push(fileNameInProject); - } - } - else { - mediumPriorityFiles.push(fileNameInProject); - } - } - } - } - catch (e_977_1) { e_977 = { error: e_977_1 }; } - finally { - try { - if (fileNamesInProject_1_1 && !fileNamesInProject_1_1.done && (_t = fileNamesInProject_1.return)) _t.call(fileNamesInProject_1); - } - finally { if (e_977) throw e_977.error; } - } - var sortedFiles = __spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read(highPriorityFiles), false), __read(mediumPriorityFiles), false), __read(lowPriorityFiles), false), __read(veryLowPriorityFiles), false); - var checkList = sortedFiles.map(function (fileName2) { return ({ fileName: fileName2, project: project }); }); - this.updateErrorCheck(next, checkList, delay, - /*requireOpen*/ - false); - }; - _Session.prototype.configurePlugin = function (args) { - this.projectService.configurePlugin(args); - }; - _Session.prototype.getSmartSelectionRange = function (args, simplifiedResult) { - var _this = this; - var locations = args.locations; - var _t = this.getFileAndLanguageServiceForSyntacticOperation(args), file = _t.file, languageService = _t.languageService; - var scriptInfo = Debug.checkDefined(this.projectService.getScriptInfo(file)); - return map(locations, function (location) { - var pos = _this.getPosition(location, scriptInfo); - var selectionRange = languageService.getSmartSelectionRange(file, pos); - return simplifiedResult ? _this.mapSelectionRange(selectionRange, scriptInfo) : selectionRange; - }); - }; - _Session.prototype.toggleLineComment = function (args, simplifiedResult) { - var _this = this; - var _t = this.getFileAndLanguageServiceForSyntacticOperation(args), file = _t.file, languageService = _t.languageService; - var scriptInfo = this.projectService.getScriptInfo(file); - var textRange = this.getRange(args, scriptInfo); - var textChanges2 = languageService.toggleLineComment(file, textRange); - if (simplifiedResult) { - var scriptInfo2_1 = this.projectService.getScriptInfoForNormalizedPath(file); - return textChanges2.map(function (textChange) { return _this.convertTextChangeToCodeEdit(textChange, scriptInfo2_1); }); - } - return textChanges2; - }; - _Session.prototype.toggleMultilineComment = function (args, simplifiedResult) { - var _this = this; - var _t = this.getFileAndLanguageServiceForSyntacticOperation(args), file = _t.file, languageService = _t.languageService; - var scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file); - var textRange = this.getRange(args, scriptInfo); - var textChanges2 = languageService.toggleMultilineComment(file, textRange); - if (simplifiedResult) { - var scriptInfo2_2 = this.projectService.getScriptInfoForNormalizedPath(file); - return textChanges2.map(function (textChange) { return _this.convertTextChangeToCodeEdit(textChange, scriptInfo2_2); }); - } - return textChanges2; - }; - _Session.prototype.commentSelection = function (args, simplifiedResult) { - var _this = this; - var _t = this.getFileAndLanguageServiceForSyntacticOperation(args), file = _t.file, languageService = _t.languageService; - var scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file); - var textRange = this.getRange(args, scriptInfo); - var textChanges2 = languageService.commentSelection(file, textRange); - if (simplifiedResult) { - var scriptInfo2_3 = this.projectService.getScriptInfoForNormalizedPath(file); - return textChanges2.map(function (textChange) { return _this.convertTextChangeToCodeEdit(textChange, scriptInfo2_3); }); - } - return textChanges2; - }; - _Session.prototype.uncommentSelection = function (args, simplifiedResult) { - var _this = this; - var _t = this.getFileAndLanguageServiceForSyntacticOperation(args), file = _t.file, languageService = _t.languageService; - var scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file); - var textRange = this.getRange(args, scriptInfo); - var textChanges2 = languageService.uncommentSelection(file, textRange); - if (simplifiedResult) { - var scriptInfo2_4 = this.projectService.getScriptInfoForNormalizedPath(file); - return textChanges2.map(function (textChange) { return _this.convertTextChangeToCodeEdit(textChange, scriptInfo2_4); }); - } - return textChanges2; - }; - _Session.prototype.mapSelectionRange = function (selectionRange, scriptInfo) { - var result = { - textSpan: toProtocolTextSpan(selectionRange.textSpan, scriptInfo) - }; - if (selectionRange.parent) { - result.parent = this.mapSelectionRange(selectionRange.parent, scriptInfo); - } - return result; - }; - _Session.prototype.getScriptInfoFromProjectService = function (file) { - var normalizedFile = toNormalizedPath(file); - var scriptInfo = this.projectService.getScriptInfoForNormalizedPath(normalizedFile); - if (!scriptInfo) { - this.projectService.logErrorForScriptInfoNotFound(normalizedFile); - return Errors.ThrowNoProject(); - } - return scriptInfo; - }; - _Session.prototype.toProtocolCallHierarchyItem = function (item) { - var scriptInfo = this.getScriptInfoFromProjectService(item.file); - return { - name: item.name, - kind: item.kind, - kindModifiers: item.kindModifiers, - file: item.file, - containerName: item.containerName, - span: toProtocolTextSpan(item.span, scriptInfo), - selectionSpan: toProtocolTextSpan(item.selectionSpan, scriptInfo) - }; - }; - _Session.prototype.toProtocolCallHierarchyIncomingCall = function (incomingCall) { - var scriptInfo = this.getScriptInfoFromProjectService(incomingCall.from.file); - return { - from: this.toProtocolCallHierarchyItem(incomingCall.from), - fromSpans: incomingCall.fromSpans.map(function (fromSpan) { return toProtocolTextSpan(fromSpan, scriptInfo); }) - }; - }; - _Session.prototype.toProtocolCallHierarchyOutgoingCall = function (outgoingCall, scriptInfo) { - return { - to: this.toProtocolCallHierarchyItem(outgoingCall.to), - fromSpans: outgoingCall.fromSpans.map(function (fromSpan) { return toProtocolTextSpan(fromSpan, scriptInfo); }) - }; - }; - _Session.prototype.prepareCallHierarchy = function (args) { - var _this = this; - var _t = this.getFileAndProject(args), file = _t.file, project = _t.project; - var scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file); - if (scriptInfo) { - var position = this.getPosition(args, scriptInfo); - var result = project.getLanguageService().prepareCallHierarchy(file, position); - return result && mapOneOrMany(result, function (item) { return _this.toProtocolCallHierarchyItem(item); }); - } - return void 0; - }; - _Session.prototype.provideCallHierarchyIncomingCalls = function (args) { - var _this = this; - var _t = this.getFileAndProject(args), file = _t.file, project = _t.project; - var scriptInfo = this.getScriptInfoFromProjectService(file); - var incomingCalls = project.getLanguageService().provideCallHierarchyIncomingCalls(file, this.getPosition(args, scriptInfo)); - return incomingCalls.map(function (call) { return _this.toProtocolCallHierarchyIncomingCall(call); }); - }; - _Session.prototype.provideCallHierarchyOutgoingCalls = function (args) { - var _this = this; - var _t = this.getFileAndProject(args), file = _t.file, project = _t.project; - var scriptInfo = this.getScriptInfoFromProjectService(file); - var outgoingCalls = project.getLanguageService().provideCallHierarchyOutgoingCalls(file, this.getPosition(args, scriptInfo)); - return outgoingCalls.map(function (call) { return _this.toProtocolCallHierarchyOutgoingCall(call, scriptInfo); }); - }; - _Session.prototype.getCanonicalFileName = function (fileName) { - var name = this.host.useCaseSensitiveFileNames ? fileName : toFileNameLowerCase(fileName); - return normalizePath(name); - }; - _Session.prototype.exit = function () { - }; - _Session.prototype.notRequired = function () { - return { responseRequired: false }; - }; - _Session.prototype.requiredResponse = function (response) { - return { response: response, responseRequired: true }; - }; - _Session.prototype.addProtocolHandler = function (command, handler) { - if (this.handlers.has(command)) { - throw new Error("Protocol handler already exists for command \"".concat(command, "\"")); - } - this.handlers.set(command, handler); - }; - _Session.prototype.setCurrentRequest = function (requestId) { - Debug.assert(this.currentRequestId === void 0); - this.currentRequestId = requestId; - this.cancellationToken.setRequest(requestId); - }; - _Session.prototype.resetCurrentRequest = function (requestId) { - Debug.assert(this.currentRequestId === requestId); - this.currentRequestId = void 0; - this.cancellationToken.resetRequest(requestId); - }; - _Session.prototype.executeWithRequestId = function (requestId, f) { - try { - this.setCurrentRequest(requestId); - return f(); - } - finally { - this.resetCurrentRequest(requestId); - } - }; - _Session.prototype.executeCommand = function (request) { - var handler = this.handlers.get(request.command); - if (handler) { - var response = this.executeWithRequestId(request.seq, function () { return handler(request); }); - this.projectService.enableRequestedPlugins(); - return response; - } - else { - this.logger.msg("Unrecognized JSON command:".concat(stringifyIndented(request)), "Err" /* Err */); - this.doOutput( - /*info*/ - void 0, "unknown" /* Unknown */, request.seq, - /*success*/ - false, "Unrecognized JSON command: ".concat(request.command)); - return { responseRequired: false }; - } - }; - _Session.prototype.onMessage = function (message) { - var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k; - this.gcTimer.scheduleCollect(); - this.performanceData = void 0; - var start2; - if (this.logger.hasLevel(2 /* requestTime */)) { - start2 = this.hrtime(); - if (this.logger.hasLevel(3 /* verbose */)) { - this.logger.info("request:".concat(indent2(this.toStringMessage(message)))); - } - } - var request; - var relevantFile; - try { - request = this.parseMessage(message); - relevantFile = request.arguments && request.arguments.file ? request.arguments : void 0; - (_a = tracing) == null ? void 0 : _a.instant(tracing.Phase.Session, "request", { seq: request.seq, command: request.command }); - (_b = perfLogger) == null ? void 0 : _b.logStartCommand("" + request.command, this.toStringMessage(message).substring(0, 100)); - (_c = tracing) == null ? void 0 : _c.push(tracing.Phase.Session, "executeCommand", { seq: request.seq, command: request.command }, - /*separateBeginAndEnd*/ - true); - var _t = this.executeCommand(request), response = _t.response, responseRequired = _t.responseRequired; - (_d = tracing) == null ? void 0 : _d.pop(); - if (this.logger.hasLevel(2 /* requestTime */)) { - var elapsedTime = hrTimeToMilliseconds(this.hrtime(start2)).toFixed(4); - if (responseRequired) { - this.logger.perftrc("".concat(request.seq, "::").concat(request.command, ": elapsed time (in milliseconds) ").concat(elapsedTime)); - } - else { - this.logger.perftrc("".concat(request.seq, "::").concat(request.command, ": async elapsed time (in milliseconds) ").concat(elapsedTime)); - } - } - (_e = perfLogger) == null ? void 0 : _e.logStopCommand("" + request.command, "Success"); - (_f = tracing) == null ? void 0 : _f.instant(tracing.Phase.Session, "response", { seq: request.seq, command: request.command, success: !!response }); - if (response) { - this.doOutput(response, request.command, request.seq, - /*success*/ - true); - } - else if (responseRequired) { - this.doOutput( - /*info*/ - void 0, request.command, request.seq, - /*success*/ - false, "No content available."); - } - } - catch (err) { - (_g = tracing) == null ? void 0 : _g.popAll(); - if (err instanceof OperationCanceledException) { - (_h = perfLogger) == null ? void 0 : _h.logStopCommand("" + (request && request.command), "Canceled: " + err); - (_i = tracing) == null ? void 0 : _i.instant(tracing.Phase.Session, "commandCanceled", { seq: request == null ? void 0 : request.seq, command: request == null ? void 0 : request.command }); - this.doOutput({ canceled: true }, request.command, request.seq, - /*success*/ - true); - return; - } - this.logErrorWorker(err, this.toStringMessage(message), relevantFile); - (_j = perfLogger) == null ? void 0 : _j.logStopCommand("" + (request && request.command), "Error: " + err); - (_k = tracing) == null ? void 0 : _k.instant(tracing.Phase.Session, "commandError", { seq: request == null ? void 0 : request.seq, command: request == null ? void 0 : request.command, message: err.message }); - this.doOutput( - /*info*/ - void 0, request ? request.command : "unknown" /* Unknown */, request ? request.seq : 0, - /*success*/ - false, "Error processing request. " + err.message + "\n" + err.stack); - } - }; - _Session.prototype.parseMessage = function (message) { - return JSON.parse(message); - }; - _Session.prototype.toStringMessage = function (message) { - return message; - }; - _Session.prototype.getFormatOptions = function (file) { - return this.projectService.getFormatCodeOptions(file); - }; - _Session.prototype.getPreferences = function (file) { - return this.projectService.getPreferences(file); - }; - _Session.prototype.getHostFormatOptions = function () { - return this.projectService.getHostFormatCodeOptions(); - }; - _Session.prototype.getHostPreferences = function () { - return this.projectService.getHostPreferences(); - }; - return _Session; -}()); -function toProtocolTextSpan(textSpan, scriptInfo) { - return { - start: scriptInfo.positionToLineOffset(textSpan.start), - end: scriptInfo.positionToLineOffset(textSpanEnd(textSpan)) - }; -} -function toProtocolTextSpanWithContext(span, contextSpan, scriptInfo) { - var textSpan = toProtocolTextSpan(span, scriptInfo); - var contextTextSpan = contextSpan && toProtocolTextSpan(contextSpan, scriptInfo); - return contextTextSpan ? __assign(__assign({}, textSpan), { contextStart: contextTextSpan.start, contextEnd: contextTextSpan.end }) : textSpan; -} -function convertTextChangeToCodeEdit(change, scriptInfo) { - return { start: positionToLineOffset(scriptInfo, change.span.start), end: positionToLineOffset(scriptInfo, textSpanEnd(change.span)), newText: change.newText }; -} -function positionToLineOffset(info, position) { - return isConfigFile(info) ? locationFromLineAndCharacter(info.getLineAndCharacterOfPosition(position)) : info.positionToLineOffset(position); -} -function convertLinkedEditInfoToRanges(linkedEdit, scriptInfo) { - var ranges = linkedEdit.ranges.map(function (r) { - return { - start: scriptInfo.positionToLineOffset(r.start), - end: scriptInfo.positionToLineOffset(r.start + r.length) - }; - }); - if (!linkedEdit.wordPattern) - return { ranges: ranges }; - return { ranges: ranges, wordPattern: linkedEdit.wordPattern }; -} -function locationFromLineAndCharacter(lc) { - return { line: lc.line + 1, offset: lc.character + 1 }; -} -function convertNewFileTextChangeToCodeEdit(textChanges2) { - Debug.assert(textChanges2.textChanges.length === 1); - var change = first(textChanges2.textChanges); - Debug.assert(change.span.start === 0 && change.span.length === 0); - return { fileName: textChanges2.fileName, textChanges: [{ start: { line: 0, offset: 0 }, end: { line: 0, offset: 0 }, newText: change.newText }] }; -} -function getLocationInNewDocument(oldText, renameFilename, renameLocation, edits) { - var newText = applyEdits(oldText, renameFilename, edits); - var _t = computeLineAndCharacterOfPosition(computeLineStarts(newText), renameLocation), line = _t.line, character = _t.character; - return { line: line + 1, offset: character + 1 }; -} -function applyEdits(text, textFilename, edits) { - var e_978, _t; - try { - for (var edits_3 = __values(edits), edits_3_1 = edits_3.next(); !edits_3_1.done; edits_3_1 = edits_3.next()) { - var _u = edits_3_1.value, fileName = _u.fileName, textChanges2 = _u.textChanges; - if (fileName !== textFilename) { - continue; - } - for (var i = textChanges2.length - 1; i >= 0; i--) { - var _v = textChanges2[i], newText = _v.newText, _w = _v.span, start2 = _w.start, length2 = _w.length; - text = text.slice(0, start2) + newText + text.slice(start2 + length2); - } - } - } - catch (e_978_1) { e_978 = { error: e_978_1 }; } - finally { - try { - if (edits_3_1 && !edits_3_1.done && (_t = edits_3.return)) _t.call(edits_3); - } - finally { if (e_978) throw e_978.error; } - } - return text; -} -function referenceEntryToReferencesResponseItem(projectService, _t, _u) { - var fileName = _t.fileName, textSpan = _t.textSpan, contextSpan = _t.contextSpan, isWriteAccess2 = _t.isWriteAccess, isDefinition = _t.isDefinition; - var disableLineTextInReferences = _u.disableLineTextInReferences; - var scriptInfo = Debug.checkDefined(projectService.getScriptInfo(fileName)); - var span = toProtocolTextSpanWithContext(textSpan, contextSpan, scriptInfo); - var lineText = disableLineTextInReferences ? void 0 : getLineText(scriptInfo, span); - return __assign(__assign({ file: fileName }, span), { lineText: lineText, isWriteAccess: isWriteAccess2, isDefinition: isDefinition }); -} -function getLineText(scriptInfo, span) { - var lineSpan = scriptInfo.lineToTextSpan(span.start.line - 1); - return scriptInfo.getSnapshot().getText(lineSpan.start, textSpanEnd(lineSpan)).replace(/\r|\n/g, ""); -} -function isCompletionEntryData(data) { - return data === void 0 || data && typeof data === "object" && typeof data.exportName === "string" && (data.fileName === void 0 || typeof data.fileName === "string") && (data.ambientModuleName === void 0 || typeof data.ambientModuleName === "string" && (data.isPackageJsonImport === void 0 || typeof data.isPackageJsonImport === "boolean")); -} -// src/server/scriptVersionCache.ts -var lineCollectionCapacity = 4; -var CharRangeSection = /* @__PURE__ */ (function (CharRangeSection2) { - CharRangeSection2[CharRangeSection2["PreStart"] = 0] = "PreStart"; - CharRangeSection2[CharRangeSection2["Start"] = 1] = "Start"; - CharRangeSection2[CharRangeSection2["Entire"] = 2] = "Entire"; - CharRangeSection2[CharRangeSection2["Mid"] = 3] = "Mid"; - CharRangeSection2[CharRangeSection2["End"] = 4] = "End"; - CharRangeSection2[CharRangeSection2["PostEnd"] = 5] = "PostEnd"; - return CharRangeSection2; -})(CharRangeSection || {}); -var EditWalker = /** @class */ (function () { - function EditWalker() { - this.goSubtree = true; - this.lineIndex = new LineIndex(); - this.endBranch = []; - this.state = 2 /* Entire */; - this.initialText = ""; - this.trailingText = ""; - this.lineIndex.root = new LineNode(); - this.startPath = [this.lineIndex.root]; - this.stack = [this.lineIndex.root]; - } - Object.defineProperty(EditWalker.prototype, "done", { - get: function () { - return false; - }, - enumerable: false, - configurable: true - }); - EditWalker.prototype.insertLines = function (insertedText, suppressTrailingText) { - if (suppressTrailingText) { - this.trailingText = ""; - } - if (insertedText) { - insertedText = this.initialText + insertedText + this.trailingText; - } - else { - insertedText = this.initialText + this.trailingText; - } - var lm = LineIndex.linesFromText(insertedText); - var lines = lm.lines; - if (lines.length > 1 && lines[lines.length - 1] === "") { - lines.pop(); - } - var branchParent; - var lastZeroCount; - for (var k = this.endBranch.length - 1; k >= 0; k--) { - this.endBranch[k].updateCounts(); - if (this.endBranch[k].charCount() === 0) { - lastZeroCount = this.endBranch[k]; - if (k > 0) { - branchParent = this.endBranch[k - 1]; - } - else { - branchParent = this.branchNode; - } - } - } - if (lastZeroCount) { - branchParent.remove(lastZeroCount); - } - var leafNode = this.startPath[this.startPath.length - 1]; - if (lines.length > 0) { - leafNode.text = lines[0]; - if (lines.length > 1) { - var insertedNodes = new Array(lines.length - 1); - var startNode2 = leafNode; - for (var i = 1; i < lines.length; i++) { - insertedNodes[i - 1] = new LineLeaf(lines[i]); - } - var pathIndex = this.startPath.length - 2; - while (pathIndex >= 0) { - var insertionNode = this.startPath[pathIndex]; - insertedNodes = insertionNode.insertAt(startNode2, insertedNodes); - pathIndex--; - startNode2 = insertionNode; - } - var insertedNodesLen = insertedNodes.length; - while (insertedNodesLen > 0) { - var newRoot = new LineNode(); - newRoot.add(this.lineIndex.root); - insertedNodes = newRoot.insertAt(this.lineIndex.root, insertedNodes); - insertedNodesLen = insertedNodes.length; - this.lineIndex.root = newRoot; - } - this.lineIndex.root.updateCounts(); - } - else { - for (var j = this.startPath.length - 2; j >= 0; j--) { - this.startPath[j].updateCounts(); - } - } - } - else { - var insertionNode = this.startPath[this.startPath.length - 2]; - insertionNode.remove(leafNode); - for (var j = this.startPath.length - 2; j >= 0; j--) { - this.startPath[j].updateCounts(); - } - } - return this.lineIndex; - }; - EditWalker.prototype.post = function (_relativeStart, _relativeLength, lineCollection) { - if (lineCollection === this.lineCollectionAtBranch) { - this.state = 4 /* End */; - } - this.stack.pop(); - }; - EditWalker.prototype.pre = function (_relativeStart, _relativeLength, lineCollection, _parent, nodeType) { - var currentNode = this.stack[this.stack.length - 1]; - if (this.state === 2 /* Entire */ && nodeType === 1 /* Start */) { - this.state = 1 /* Start */; - this.branchNode = currentNode; - this.lineCollectionAtBranch = lineCollection; - } - var child; - function fresh(node) { - if (node.isLeaf()) { - return new LineLeaf(""); - } - else - return new LineNode(); - } - switch (nodeType) { - case 0 /* PreStart */: - this.goSubtree = false; - if (this.state !== 4 /* End */) { - currentNode.add(lineCollection); - } - break; - case 1 /* Start */: - if (this.state === 4 /* End */) { - this.goSubtree = false; - } - else { - child = fresh(lineCollection); - currentNode.add(child); - this.startPath.push(child); - } - break; - case 2 /* Entire */: - if (this.state !== 4 /* End */) { - child = fresh(lineCollection); - currentNode.add(child); - this.startPath.push(child); - } - else { - if (!lineCollection.isLeaf()) { - child = fresh(lineCollection); - currentNode.add(child); - this.endBranch.push(child); - } - } - break; - case 3 /* Mid */: - this.goSubtree = false; - break; - case 4 /* End */: - if (this.state !== 4 /* End */) { - this.goSubtree = false; - } - else { - if (!lineCollection.isLeaf()) { - child = fresh(lineCollection); - currentNode.add(child); - this.endBranch.push(child); - } - } - break; - case 5 /* PostEnd */: - this.goSubtree = false; - if (this.state !== 1 /* Start */) { - currentNode.add(lineCollection); - } - break; - } - if (this.goSubtree) { - this.stack.push(child); - } - }; - // just gather text from the leaves - EditWalker.prototype.leaf = function (relativeStart, relativeLength, ll) { - if (this.state === 1 /* Start */) { - this.initialText = ll.text.substring(0, relativeStart); - } - else if (this.state === 2 /* Entire */) { - this.initialText = ll.text.substring(0, relativeStart); - this.trailingText = ll.text.substring(relativeStart + relativeLength); - } - else { - this.trailingText = ll.text.substring(relativeStart + relativeLength); - } - }; - return EditWalker; -}()); -var TextChange9 = /** @class */ (function () { - function TextChange9(pos, deleteLen, insertedText) { - this.pos = pos; - this.deleteLen = deleteLen; - this.insertedText = insertedText; - } - TextChange9.prototype.getTextChangeRange = function () { - return createTextChangeRange(createTextSpan(this.pos, this.deleteLen), this.insertedText ? this.insertedText.length : 0); - }; - return TextChange9; -}()); -var _ScriptVersionCache = /** @class */ (function () { - function _ScriptVersionCache() { - this.changes = []; - this.versions = new Array(_ScriptVersionCache.maxVersions); - this.minVersion = 0; - // no versions earlier than min version will maintain change history - this.currentVersion = 0; - } - _ScriptVersionCache.prototype.versionToIndex = function (version2) { - if (version2 < this.minVersion || version2 > this.currentVersion) { - return void 0; - } - return version2 % _ScriptVersionCache.maxVersions; - }; - _ScriptVersionCache.prototype.currentVersionToIndex = function () { - return this.currentVersion % _ScriptVersionCache.maxVersions; - }; - // REVIEW: can optimize by coalescing simple edits - _ScriptVersionCache.prototype.edit = function (pos, deleteLen, insertedText) { - this.changes.push(new TextChange9(pos, deleteLen, insertedText)); - if (this.changes.length > _ScriptVersionCache.changeNumberThreshold || deleteLen > _ScriptVersionCache.changeLengthThreshold || insertedText && insertedText.length > _ScriptVersionCache.changeLengthThreshold) { - this.getSnapshot(); - } - }; - _ScriptVersionCache.prototype.getSnapshot = function () { - return this._getSnapshot(); - }; - _ScriptVersionCache.prototype._getSnapshot = function () { - var e_979, _t; - var snap = this.versions[this.currentVersionToIndex()]; - if (this.changes.length > 0) { - var snapIndex = snap.index; - try { - for (var _u = __values(this.changes), _v = _u.next(); !_v.done; _v = _u.next()) { - var change = _v.value; - snapIndex = snapIndex.edit(change.pos, change.deleteLen, change.insertedText); - } - } - catch (e_979_1) { e_979 = { error: e_979_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_979) throw e_979.error; } - } - snap = new LineIndexSnapshot(this.currentVersion + 1, this, snapIndex, this.changes); - this.currentVersion = snap.version; - this.versions[this.currentVersionToIndex()] = snap; - this.changes = []; - if (this.currentVersion - this.minVersion >= _ScriptVersionCache.maxVersions) { - this.minVersion = this.currentVersion - _ScriptVersionCache.maxVersions + 1; - } - } - return snap; - }; - _ScriptVersionCache.prototype.getSnapshotVersion = function () { - return this._getSnapshot().version; - }; - _ScriptVersionCache.prototype.getAbsolutePositionAndLineText = function (oneBasedLine) { - return this._getSnapshot().index.lineNumberToInfo(oneBasedLine); - }; - _ScriptVersionCache.prototype.lineOffsetToPosition = function (line, column) { - return this._getSnapshot().index.absolutePositionOfStartOfLine(line) + (column - 1); - }; - _ScriptVersionCache.prototype.positionToLineOffset = function (position) { - return this._getSnapshot().index.positionToLineOffset(position); - }; - _ScriptVersionCache.prototype.lineToTextSpan = function (line) { - var index = this._getSnapshot().index; - var _t = index.lineNumberToInfo(line + 1), lineText = _t.lineText, absolutePosition = _t.absolutePosition; - var len = lineText !== void 0 ? lineText.length : index.absolutePositionOfStartOfLine(line + 2) - absolutePosition; - return createTextSpan(absolutePosition, len); - }; - _ScriptVersionCache.prototype.getTextChangesBetweenVersions = function (oldVersion, newVersion) { - var e_980, _t; - if (oldVersion < newVersion) { - if (oldVersion >= this.minVersion) { - var textChangeRanges = []; - for (var i = oldVersion + 1; i <= newVersion; i++) { - var snap = this.versions[this.versionToIndex(i)]; - try { - for (var _u = (e_980 = void 0, __values(snap.changesSincePreviousVersion)), _v = _u.next(); !_v.done; _v = _u.next()) { - var textChange = _v.value; - textChangeRanges.push(textChange.getTextChangeRange()); - } - } - catch (e_980_1) { e_980 = { error: e_980_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_980) throw e_980.error; } - } - } - return collapseTextChangeRangesAcrossMultipleVersions(textChangeRanges); - } - else { - return void 0; - } - } - else { - return unchangedTextChangeRange; - } - }; - _ScriptVersionCache.prototype.getLineCount = function () { - return this._getSnapshot().index.getLineCount(); - }; - _ScriptVersionCache.fromString = function (script) { - var svc = new _ScriptVersionCache(); - var snap = new LineIndexSnapshot(0, svc, new LineIndex()); - svc.versions[svc.currentVersion] = snap; - var lm = LineIndex.linesFromText(script); - snap.index.load(lm.lines); - return svc; - }; - return _ScriptVersionCache; -}()); -_ScriptVersionCache.changeNumberThreshold = 8; -_ScriptVersionCache.changeLengthThreshold = 256; -_ScriptVersionCache.maxVersions = 8; -var ScriptVersionCache = _ScriptVersionCache; -var LineIndexSnapshot = /** @class */ (function () { - function _LineIndexSnapshot(version2, cache, index, changesSincePreviousVersion) { - if (changesSincePreviousVersion === void 0) { changesSincePreviousVersion = emptyArray2; } - this.version = version2; - this.cache = cache; - this.index = index; - this.changesSincePreviousVersion = changesSincePreviousVersion; - } - _LineIndexSnapshot.prototype.getText = function (rangeStart, rangeEnd) { - return this.index.getText(rangeStart, rangeEnd - rangeStart); - }; - _LineIndexSnapshot.prototype.getLength = function () { - return this.index.getLength(); - }; - _LineIndexSnapshot.prototype.getChangeRange = function (oldSnapshot) { - if (oldSnapshot instanceof _LineIndexSnapshot && this.cache === oldSnapshot.cache) { - if (this.version <= oldSnapshot.version) { - return unchangedTextChangeRange; - } - else { - return this.cache.getTextChangesBetweenVersions(oldSnapshot.version, this.version); - } - } - }; - return _LineIndexSnapshot; -}()); -var LineIndex = /** @class */ (function () { - function _LineIndex() { - // set this to true to check each edit for accuracy - this.checkEdits = false; - } - _LineIndex.prototype.absolutePositionOfStartOfLine = function (oneBasedLine) { - return this.lineNumberToInfo(oneBasedLine).absolutePosition; - }; - _LineIndex.prototype.positionToLineOffset = function (position) { - var _t = this.root.charOffsetToLineInfo(1, position), oneBasedLine = _t.oneBasedLine, zeroBasedColumn = _t.zeroBasedColumn; - return { line: oneBasedLine, offset: zeroBasedColumn + 1 }; - }; - _LineIndex.prototype.positionToColumnAndLineText = function (position) { - return this.root.charOffsetToLineInfo(1, position); - }; - _LineIndex.prototype.getLineCount = function () { - return this.root.lineCount(); - }; - _LineIndex.prototype.lineNumberToInfo = function (oneBasedLine) { - var lineCount = this.getLineCount(); - if (oneBasedLine <= lineCount) { - var _t = this.root.lineNumberToInfo(oneBasedLine, 0), position = _t.position, leaf = _t.leaf; - return { absolutePosition: position, lineText: leaf && leaf.text }; - } - else { - return { absolutePosition: this.root.charCount(), lineText: void 0 }; - } - }; - _LineIndex.prototype.load = function (lines) { - if (lines.length > 0) { - var leaves = []; - for (var i = 0; i < lines.length; i++) { - leaves[i] = new LineLeaf(lines[i]); - } - this.root = _LineIndex.buildTreeFromBottom(leaves); - } - else { - this.root = new LineNode(); - } - }; - _LineIndex.prototype.walk = function (rangeStart, rangeLength, walkFns) { - this.root.walk(rangeStart, rangeLength, walkFns); - }; - _LineIndex.prototype.getText = function (rangeStart, rangeLength) { - var accum = ""; - if (rangeLength > 0 && rangeStart < this.root.charCount()) { - this.walk(rangeStart, rangeLength, { - goSubtree: true, - done: false, - leaf: function (relativeStart, relativeLength, ll) { - accum = accum.concat(ll.text.substring(relativeStart, relativeStart + relativeLength)); - } - }); - } - return accum; - }; - _LineIndex.prototype.getLength = function () { - return this.root.charCount(); - }; - _LineIndex.prototype.every = function (f, rangeStart, rangeEnd) { - if (!rangeEnd) { - rangeEnd = this.root.charCount(); - } - var walkFns = { - goSubtree: true, - done: false, - leaf: function (relativeStart, relativeLength, ll) { - if (!f(ll, relativeStart, relativeLength)) { - this.done = true; - } - } - }; - this.walk(rangeStart, rangeEnd - rangeStart, walkFns); - return !walkFns.done; - }; - _LineIndex.prototype.edit = function (pos, deleteLength, newText) { - if (this.root.charCount() === 0) { - Debug.assert(deleteLength === 0); - if (newText !== void 0) { - this.load(_LineIndex.linesFromText(newText).lines); - return this; - } - return void 0; - } - else { - var checkText = void 0; - if (this.checkEdits) { - var source = this.getText(0, this.root.charCount()); - checkText = source.slice(0, pos) + newText + source.slice(pos + deleteLength); - } - var walker = new EditWalker(); - var suppressTrailingText = false; - if (pos >= this.root.charCount()) { - pos = this.root.charCount() - 1; - var endString = this.getText(pos, 1); - if (newText) { - newText = endString + newText; - } - else { - newText = endString; - } - deleteLength = 0; - suppressTrailingText = true; - } - else if (deleteLength > 0) { - var e = pos + deleteLength; - var _t = this.positionToColumnAndLineText(e), zeroBasedColumn = _t.zeroBasedColumn, lineText = _t.lineText; - if (zeroBasedColumn === 0) { - deleteLength += lineText.length; - newText = newText ? newText + lineText : lineText; - } - } - this.root.walk(pos, deleteLength, walker); - walker.insertLines(newText, suppressTrailingText); - if (this.checkEdits) { - var updatedText = walker.lineIndex.getText(0, walker.lineIndex.getLength()); - Debug.assert(checkText === updatedText, "buffer edit mismatch"); - } - return walker.lineIndex; - } - }; - _LineIndex.buildTreeFromBottom = function (nodes) { - if (nodes.length < lineCollectionCapacity) { - return new LineNode(nodes); - } - var interiorNodes = new Array(Math.ceil(nodes.length / lineCollectionCapacity)); - var nodeIndex = 0; - for (var i = 0; i < interiorNodes.length; i++) { - var end = Math.min(nodeIndex + lineCollectionCapacity, nodes.length); - interiorNodes[i] = new LineNode(nodes.slice(nodeIndex, end)); - nodeIndex = end; - } - return this.buildTreeFromBottom(interiorNodes); - }; - _LineIndex.linesFromText = function (text) { - var lineMap = computeLineStarts(text); - if (lineMap.length === 0) { - return { lines: [], lineMap: lineMap }; - } - var lines = new Array(lineMap.length); - var lc = lineMap.length - 1; - for (var lmi = 0; lmi < lc; lmi++) { - lines[lmi] = text.substring(lineMap[lmi], lineMap[lmi + 1]); - } - var endText = text.substring(lineMap[lc]); - if (endText.length > 0) { - lines[lc] = endText; - } - else { - lines.pop(); - } - return { lines: lines, lineMap: lineMap }; - }; - return _LineIndex; -}()); -var LineNode = /** @class */ (function () { - function _LineNode(children) { - if (children === void 0) { children = []; } - this.children = children; - this.totalChars = 0; - this.totalLines = 0; - if (children.length) - this.updateCounts(); - } - _LineNode.prototype.isLeaf = function () { - return false; - }; - _LineNode.prototype.updateCounts = function () { - var e_981, _t; - this.totalChars = 0; - this.totalLines = 0; - try { - for (var _u = __values(this.children), _v = _u.next(); !_v.done; _v = _u.next()) { - var child = _v.value; - this.totalChars += child.charCount(); - this.totalLines += child.lineCount(); - } - } - catch (e_981_1) { e_981 = { error: e_981_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_981) throw e_981.error; } - } - }; - _LineNode.prototype.execWalk = function (rangeStart, rangeLength, walkFns, childIndex, nodeType) { - if (walkFns.pre) { - walkFns.pre(rangeStart, rangeLength, this.children[childIndex], this, nodeType); - } - if (walkFns.goSubtree) { - this.children[childIndex].walk(rangeStart, rangeLength, walkFns); - if (walkFns.post) { - walkFns.post(rangeStart, rangeLength, this.children[childIndex], this, nodeType); - } - } - else { - walkFns.goSubtree = true; - } - return walkFns.done; - }; - _LineNode.prototype.skipChild = function (relativeStart, relativeLength, childIndex, walkFns, nodeType) { - if (walkFns.pre && !walkFns.done) { - walkFns.pre(relativeStart, relativeLength, this.children[childIndex], this, nodeType); - walkFns.goSubtree = true; - } - }; - _LineNode.prototype.walk = function (rangeStart, rangeLength, walkFns) { - var childIndex = 0; - var childCharCount = this.children[childIndex].charCount(); - var adjustedStart = rangeStart; - while (adjustedStart >= childCharCount) { - this.skipChild(adjustedStart, rangeLength, childIndex, walkFns, 0 /* PreStart */); - adjustedStart -= childCharCount; - childIndex++; - childCharCount = this.children[childIndex].charCount(); - } - if (adjustedStart + rangeLength <= childCharCount) { - if (this.execWalk(adjustedStart, rangeLength, walkFns, childIndex, 2 /* Entire */)) { - return; - } - } - else { - if (this.execWalk(adjustedStart, childCharCount - adjustedStart, walkFns, childIndex, 1 /* Start */)) { - return; - } - var adjustedLength = rangeLength - (childCharCount - adjustedStart); - childIndex++; - var child = this.children[childIndex]; - childCharCount = child.charCount(); - while (adjustedLength > childCharCount) { - if (this.execWalk(0, childCharCount, walkFns, childIndex, 3 /* Mid */)) { - return; - } - adjustedLength -= childCharCount; - childIndex++; - childCharCount = this.children[childIndex].charCount(); - } - if (adjustedLength > 0) { - if (this.execWalk(0, adjustedLength, walkFns, childIndex, 4 /* End */)) { - return; - } - } - } - if (walkFns.pre) { - var clen = this.children.length; - if (childIndex < clen - 1) { - for (var ej = childIndex + 1; ej < clen; ej++) { - this.skipChild(0, 0, ej, walkFns, 5 /* PostEnd */); - } - } - } - }; - // Input position is relative to the start of this node. - // Output line number is absolute. - _LineNode.prototype.charOffsetToLineInfo = function (lineNumberAccumulator, relativePosition) { - var e_982, _t; - if (this.children.length === 0) { - return { oneBasedLine: lineNumberAccumulator, zeroBasedColumn: relativePosition, lineText: void 0 }; - } - try { - for (var _u = __values(this.children), _v = _u.next(); !_v.done; _v = _u.next()) { - var child = _v.value; - if (child.charCount() > relativePosition) { - if (child.isLeaf()) { - return { oneBasedLine: lineNumberAccumulator, zeroBasedColumn: relativePosition, lineText: child.text }; - } - else { - return child.charOffsetToLineInfo(lineNumberAccumulator, relativePosition); - } - } - else { - relativePosition -= child.charCount(); - lineNumberAccumulator += child.lineCount(); - } - } - } - catch (e_982_1) { e_982 = { error: e_982_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_982) throw e_982.error; } - } - var lineCount = this.lineCount(); - if (lineCount === 0) { - return { oneBasedLine: 1, zeroBasedColumn: 0, lineText: void 0 }; - } - var leaf = Debug.checkDefined(this.lineNumberToInfo(lineCount, 0).leaf); - return { oneBasedLine: lineCount, zeroBasedColumn: leaf.charCount(), lineText: void 0 }; - }; - /** - * Input line number is relative to the start of this node. - * Output line number is relative to the child. - * positionAccumulator will be an absolute position once relativeLineNumber reaches 0. - */ - _LineNode.prototype.lineNumberToInfo = function (relativeOneBasedLine, positionAccumulator) { - var e_983, _t; - try { - for (var _u = __values(this.children), _v = _u.next(); !_v.done; _v = _u.next()) { - var child = _v.value; - var childLineCount = child.lineCount(); - if (childLineCount >= relativeOneBasedLine) { - return child.isLeaf() ? { position: positionAccumulator, leaf: child } : child.lineNumberToInfo(relativeOneBasedLine, positionAccumulator); - } - else { - relativeOneBasedLine -= childLineCount; - positionAccumulator += child.charCount(); - } - } - } - catch (e_983_1) { e_983 = { error: e_983_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_983) throw e_983.error; } - } - return { position: positionAccumulator, leaf: void 0 }; - }; - _LineNode.prototype.splitAfter = function (childIndex) { - var splitNode; - var clen = this.children.length; - childIndex++; - var endLength = childIndex; - if (childIndex < clen) { - splitNode = new _LineNode(); - while (childIndex < clen) { - splitNode.add(this.children[childIndex]); - childIndex++; - } - splitNode.updateCounts(); - } - this.children.length = endLength; - return splitNode; - }; - _LineNode.prototype.remove = function (child) { - var childIndex = this.findChildIndex(child); - var clen = this.children.length; - if (childIndex < clen - 1) { - for (var i = childIndex; i < clen - 1; i++) { - this.children[i] = this.children[i + 1]; - } - } - this.children.pop(); - }; - _LineNode.prototype.findChildIndex = function (child) { - var childIndex = this.children.indexOf(child); - Debug.assert(childIndex !== -1); - return childIndex; - }; - _LineNode.prototype.insertAt = function (child, nodes) { - var childIndex = this.findChildIndex(child); - var clen = this.children.length; - var nodeCount = nodes.length; - if (clen < lineCollectionCapacity && childIndex === clen - 1 && nodeCount === 1) { - this.add(nodes[0]); - this.updateCounts(); - return []; - } - else { - var shiftNode = this.splitAfter(childIndex); - var nodeIndex = 0; - childIndex++; - while (childIndex < lineCollectionCapacity && nodeIndex < nodeCount) { - this.children[childIndex] = nodes[nodeIndex]; - childIndex++; - nodeIndex++; - } - var splitNodes = []; - var splitNodeCount = 0; - if (nodeIndex < nodeCount) { - splitNodeCount = Math.ceil((nodeCount - nodeIndex) / lineCollectionCapacity); - splitNodes = new Array(splitNodeCount); - var splitNodeIndex = 0; - for (var i = 0; i < splitNodeCount; i++) { - splitNodes[i] = new _LineNode(); - } - var splitNode = splitNodes[0]; - while (nodeIndex < nodeCount) { - splitNode.add(nodes[nodeIndex]); - nodeIndex++; - if (splitNode.children.length === lineCollectionCapacity) { - splitNodeIndex++; - splitNode = splitNodes[splitNodeIndex]; - } - } - for (var i = splitNodes.length - 1; i >= 0; i--) { - if (splitNodes[i].children.length === 0) { - splitNodes.pop(); - } - } - } - if (shiftNode) { - splitNodes.push(shiftNode); - } - this.updateCounts(); - for (var i = 0; i < splitNodeCount; i++) { - splitNodes[i].updateCounts(); - } - return splitNodes; - } - }; - // assume there is room for the item; return true if more room - _LineNode.prototype.add = function (collection) { - this.children.push(collection); - Debug.assert(this.children.length <= lineCollectionCapacity); - }; - _LineNode.prototype.charCount = function () { - return this.totalChars; - }; - _LineNode.prototype.lineCount = function () { - return this.totalLines; - }; - return _LineNode; -}()); -var LineLeaf = /** @class */ (function () { - function LineLeaf(text) { - this.text = text; - } - LineLeaf.prototype.isLeaf = function () { - return true; - }; - LineLeaf.prototype.walk = function (rangeStart, rangeLength, walkFns) { - walkFns.leaf(rangeStart, rangeLength, this); - }; - LineLeaf.prototype.charCount = function () { - return this.text.length; - }; - LineLeaf.prototype.lineCount = function () { - return 1; - }; - return LineLeaf; -}()); -// src/tsserver/_namespaces/ts.server.ts -var ts_server_exports4 = {}; -__export(ts_server_exports4, { - ActionInvalidate: function () { return ActionInvalidate; }, - ActionPackageInstalled: function () { return ActionPackageInstalled; }, - ActionSet: function () { return ActionSet; }, - ActionWatchTypingLocations: function () { return ActionWatchTypingLocations; }, - Arguments: function () { return Arguments; }, - AutoImportProviderProject: function () { return AutoImportProviderProject; }, - AuxiliaryProject: function () { return AuxiliaryProject; }, - CharRangeSection: function () { return CharRangeSection; }, - CommandNames: function () { return CommandNames; }, - ConfigFileDiagEvent: function () { return ConfigFileDiagEvent; }, - ConfiguredProject: function () { return ConfiguredProject2; }, - Errors: function () { return Errors; }, - EventBeginInstallTypes: function () { return EventBeginInstallTypes; }, - EventEndInstallTypes: function () { return EventEndInstallTypes; }, - EventInitializationFailed: function () { return EventInitializationFailed; }, - EventTypesRegistry: function () { return EventTypesRegistry; }, - ExternalProject: function () { return ExternalProject2; }, - GcTimer: function () { return GcTimer; }, - InferredProject: function () { return InferredProject2; }, - LargeFileReferencedEvent: function () { return LargeFileReferencedEvent; }, - LineIndex: function () { return LineIndex; }, - LineLeaf: function () { return LineLeaf; }, - LineNode: function () { return LineNode; }, - LogLevel: function () { return LogLevel2; }, - Msg: function () { return Msg; }, - OpenFileInfoTelemetryEvent: function () { return OpenFileInfoTelemetryEvent; }, - Project: function () { return Project3; }, - ProjectInfoTelemetryEvent: function () { return ProjectInfoTelemetryEvent; }, - ProjectKind: function () { return ProjectKind; }, - ProjectLanguageServiceStateEvent: function () { return ProjectLanguageServiceStateEvent; }, - ProjectLoadingFinishEvent: function () { return ProjectLoadingFinishEvent; }, - ProjectLoadingStartEvent: function () { return ProjectLoadingStartEvent; }, - ProjectReferenceProjectLoadKind: function () { return ProjectReferenceProjectLoadKind; }, - ProjectService: function () { return ProjectService3; }, - ProjectsUpdatedInBackgroundEvent: function () { return ProjectsUpdatedInBackgroundEvent; }, - ScriptInfo: function () { return ScriptInfo; }, - ScriptVersionCache: function () { return ScriptVersionCache; }, - Session: function () { return Session3; }, - TextStorage: function () { return TextStorage; }, - ThrottledOperations: function () { return ThrottledOperations; }, - TypingsCache: function () { return TypingsCache; }, - allFilesAreJsOrDts: function () { return allFilesAreJsOrDts; }, - allRootFilesAreJsOrDts: function () { return allRootFilesAreJsOrDts; }, - asNormalizedPath: function () { return asNormalizedPath; }, - convertCompilerOptions: function () { return convertCompilerOptions; }, - convertFormatOptions: function () { return convertFormatOptions; }, - convertScriptKindName: function () { return convertScriptKindName; }, - convertTypeAcquisition: function () { return convertTypeAcquisition; }, - convertUserPreferences: function () { return convertUserPreferences; }, - convertWatchOptions: function () { return convertWatchOptions; }, - countEachFileTypes: function () { return countEachFileTypes; }, - createInstallTypingsRequest: function () { return createInstallTypingsRequest; }, - createModuleSpecifierCache: function () { return createModuleSpecifierCache; }, - createNormalizedPathMap: function () { return createNormalizedPathMap; }, - createPackageJsonCache: function () { return createPackageJsonCache; }, - createSortedArray: function () { return createSortedArray2; }, - emptyArray: function () { return emptyArray2; }, - findArgument: function () { return findArgument; }, - forEachResolvedProjectReferenceProject: function () { return forEachResolvedProjectReferenceProject; }, - formatDiagnosticToProtocol: function () { return formatDiagnosticToProtocol; }, - formatMessage: function () { return formatMessage2; }, - getBaseConfigFileName: function () { return getBaseConfigFileName; }, - getLocationInNewDocument: function () { return getLocationInNewDocument; }, - getLogLevel: function () { return getLogLevel; }, - hasArgument: function () { return hasArgument; }, - hasNoTypeScriptSource: function () { return hasNoTypeScriptSource; }, - indent: function () { return indent2; }, - initializeNodeSystem: function () { return initializeNodeSystem; }, - isConfigFile: function () { return isConfigFile; }, - isConfiguredProject: function () { return isConfiguredProject; }, - isDynamicFileName: function () { return isDynamicFileName; }, - isExternalProject: function () { return isExternalProject; }, - isInferredProject: function () { return isInferredProject; }, - isInferredProjectName: function () { return isInferredProjectName; }, - makeAutoImportProviderProjectName: function () { return makeAutoImportProviderProjectName; }, - makeAuxiliaryProjectName: function () { return makeAuxiliaryProjectName; }, - makeInferredProjectName: function () { return makeInferredProjectName; }, - maxFileSize: function () { return maxFileSize; }, - maxProgramSizeForNonTsFiles: function () { return maxProgramSizeForNonTsFiles; }, - normalizedPathToPath: function () { return normalizedPathToPath; }, - nowString: function () { return nowString; }, - nullCancellationToken: function () { return nullCancellationToken; }, - nullTypingsInstaller: function () { return nullTypingsInstaller; }, - projectContainsInfoDirectly: function () { return projectContainsInfoDirectly; }, - protocol: function () { return ts_server_protocol_exports; }, - removeSorted: function () { return removeSorted; }, - stringifyIndented: function () { return stringifyIndented; }, - toEvent: function () { return toEvent; }, - toNormalizedPath: function () { return toNormalizedPath; }, - tryConvertScriptKindName: function () { return tryConvertScriptKindName; }, - typingsInstaller: function () { return ts_server_typingsInstaller_exports; }, - updateProjectIfDirty: function () { return updateProjectIfDirty; } -}); -// src/tsserver/nodeServer.ts -function parseLoggingEnvironmentString(logEnvStr) { - if (!logEnvStr) { - return {}; - } - var logEnv = { logToFile: true }; - var args = logEnvStr.split(" "); - var len = args.length - 1; - for (var i = 0; i < len; i += 2) { - var option = args[i]; - var _t = getEntireValue(i + 1), value = _t.value, extraPartCounter = _t.extraPartCounter; - i += extraPartCounter; - if (option && value) { - switch (option) { - case "-file": - logEnv.file = value; - break; - case "-level": - var level = getLogLevel(value); - logEnv.detailLevel = level !== void 0 ? level : 1 /* normal */; - break; - case "-traceToConsole": - logEnv.traceToConsole = value.toLowerCase() === "true"; - break; - case "-logToFile": - logEnv.logToFile = value.toLowerCase() === "true"; - break; - } - } - } - return logEnv; - function getEntireValue(initialIndex) { - var pathStart = args[initialIndex]; - var extraPartCounter = 0; - if (pathStart.charCodeAt(0) === 34 /* doubleQuote */ && pathStart.charCodeAt(pathStart.length - 1) !== 34 /* doubleQuote */) { - for (var i = initialIndex + 1; i < args.length; i++) { - pathStart += " "; - pathStart += args[i]; - extraPartCounter++; - if (pathStart.charCodeAt(pathStart.length - 1) === 34 /* doubleQuote */) - break; - } - } - return { value: stripQuotes(pathStart), extraPartCounter: extraPartCounter }; - } -} -function parseServerMode() { - var mode = findArgument("--serverMode"); - if (!mode) - return void 0; - switch (mode.toLowerCase()) { - case "semantic": - return 0 /* Semantic */; - case "partialsemantic": - return 1 /* PartialSemantic */; - case "syntactic": - return 2 /* Syntactic */; - default: - return mode; - } -} -function initializeNodeSystem() { - var sys2 = Debug.checkDefined(sys); - var childProcess = require("child_process"); - var fs = require("fs"); - var Logger6 = /** @class */ (function () { - function Logger6(logFilename, traceToConsole, level) { - this.logFilename = logFilename; - this.traceToConsole = traceToConsole; - this.level = level; - this.seq = 0; - this.inGroup = false; - this.firstInGroup = true; - this.fd = -1; - if (this.logFilename) { - try { - this.fd = fs.openSync(this.logFilename, "w"); - } - catch (_) { - } - } - } - Logger6.padStringRight = function (str, padding) { - return (str + padding).slice(0, padding.length); - }; - Logger6.prototype.close = function () { - if (this.fd >= 0) { - fs.close(this.fd, noop); - } - }; - Logger6.prototype.getLogFileName = function () { - return this.logFilename; - }; - Logger6.prototype.perftrc = function (s) { - this.msg(s, "Perf" /* Perf */); - }; - Logger6.prototype.info = function (s) { - this.msg(s, "Info" /* Info */); - }; - Logger6.prototype.err = function (s) { - this.msg(s, "Err" /* Err */); - }; - Logger6.prototype.startGroup = function () { - this.inGroup = true; - this.firstInGroup = true; - }; - Logger6.prototype.endGroup = function () { - this.inGroup = false; - }; - Logger6.prototype.loggingEnabled = function () { - return !!this.logFilename || this.traceToConsole; - }; - Logger6.prototype.hasLevel = function (level) { - return this.loggingEnabled() && this.level >= level; - }; - Logger6.prototype.msg = function (s, type /* Err */) { - if (type === void 0) { type = "Err"; } - var _a, _b, _c; - switch (type) { - case "Info" /* Info */: - (_a = perfLogger) == null ? void 0 : _a.logInfoEvent(s); - break; - case "Perf" /* Perf */: - (_b = perfLogger) == null ? void 0 : _b.logPerfEvent(s); - break; - default: - (_c = perfLogger) == null ? void 0 : _c.logErrEvent(s); - break; - } - if (!this.canWrite()) - return; - s = "[".concat(nowString(), "] ").concat(s, "\n"); - if (!this.inGroup || this.firstInGroup) { - var prefix = Logger6.padStringRight(type + " " + this.seq.toString(), " "); - s = prefix + s; - } - this.write(s, type); - if (!this.inGroup) { - this.seq++; - } - }; - Logger6.prototype.canWrite = function () { - return this.fd >= 0 || this.traceToConsole; - }; - Logger6.prototype.write = function (s, _type) { - if (this.fd >= 0) { - var buf = sys2.bufferFrom(s); - fs.writeSync(this.fd, buf, 0, buf.length, - /*position*/ - null); - } - if (this.traceToConsole) { - console.warn(s); - } - }; - return Logger6; - }()); - var libDirectory = getDirectoryPath(normalizePath(sys2.getExecutingFilePath())); - var useWatchGuard = process.platform === "win32"; - var originalWatchDirectory = sys2.watchDirectory.bind(sys2); - var logger = createLogger(); - Debug.loggingHost = { - log: function (level, s) { - switch (level) { - case 1 /* Error */: - case 2 /* Warning */: - return logger.msg(s, "Err" /* Err */); - case 3 /* Info */: - case 4 /* Verbose */: - return logger.msg(s, "Info" /* Info */); - } - } - }; - var pending = createQueue(); - var canWrite = true; - if (useWatchGuard) { - var currentDrive_1 = extractWatchDirectoryCacheKey(sys2.resolvePath(sys2.getCurrentDirectory()), - /*currentDriveKey*/ - void 0); - var statusCache_1 = /* @__PURE__ */ new Map(); - sys2.watchDirectory = function (path, callback, recursive, options) { - var cacheKey = extractWatchDirectoryCacheKey(path, currentDrive_1); - var status = cacheKey && statusCache_1.get(cacheKey); - if (status === void 0) { - if (logger.hasLevel(3 /* verbose */)) { - logger.info("".concat(cacheKey, " for path ").concat(path, " not found in cache...")); - } - try { - var args = [combinePaths(libDirectory, "watchGuard.js"), path]; - if (logger.hasLevel(3 /* verbose */)) { - logger.info("Starting ".concat(process.execPath, " with args:").concat(stringifyIndented(args))); - } - childProcess.execFileSync(process.execPath, args, { stdio: "ignore", env: { ELECTRON_RUN_AS_NODE: "1" } }); - status = true; - if (logger.hasLevel(3 /* verbose */)) { - logger.info("WatchGuard for path ".concat(path, " returned: OK")); - } - } - catch (e) { - status = false; - if (logger.hasLevel(3 /* verbose */)) { - logger.info("WatchGuard for path ".concat(path, " returned: ").concat(e.message)); - } - } - if (cacheKey) { - statusCache_1.set(cacheKey, status); - } - } - else if (logger.hasLevel(3 /* verbose */)) { - logger.info("watchDirectory for ".concat(path, " uses cached drive information.")); - } - if (status) { - return watchDirectorySwallowingException(path, callback, recursive, options); - } - else { - return noopFileWatcher; - } - }; - } - else { - sys2.watchDirectory = watchDirectorySwallowingException; - } - sys2.write = function (s) { return writeMessage(sys2.bufferFrom(s, "utf8")); }; - sys2.setTimeout = setTimeout; - sys2.clearTimeout = clearTimeout; - sys2.setImmediate = setImmediate; - sys2.clearImmediate = clearImmediate; - if (typeof global !== "undefined" && global.gc) { - sys2.gc = function () { - var _a; - return (_a = global.gc) == null ? void 0 : _a.call(global); - }; - } - var cancellationToken; - try { - var factory2 = require("./cancellationToken"); - cancellationToken = factory2(sys2.args); - } - catch (e) { - cancellationToken = nullCancellationToken; - } - var localeStr = findArgument("--locale"); - if (localeStr) { - validateLocaleAndSetLanguage(localeStr, sys2); - } - var modeOrUnknown = parseServerMode(); - var serverMode; - var unknownServerMode; - if (modeOrUnknown !== void 0) { - if (typeof modeOrUnknown === "number") - serverMode = modeOrUnknown; - else - unknownServerMode = modeOrUnknown; - } - return { - args: process.argv, - logger: logger, - cancellationToken: cancellationToken, - serverMode: serverMode, - unknownServerMode: unknownServerMode, - startSession: startNodeSession - }; - function createLogger() { - var cmdLineLogFileName = findArgument("--logFile"); - var cmdLineVerbosity = getLogLevel(findArgument("--logVerbosity")); - var envLogOptions = parseLoggingEnvironmentString(process.env.TSS_LOG); - var unsubstitutedLogFileName = cmdLineLogFileName ? stripQuotes(cmdLineLogFileName) : envLogOptions.logToFile ? envLogOptions.file || libDirectory + "/.log" + process.pid.toString() : void 0; - var substitutedLogFileName = unsubstitutedLogFileName ? unsubstitutedLogFileName.replace("PID", process.pid.toString()) : void 0; - var logVerbosity = cmdLineVerbosity || envLogOptions.detailLevel; - return new Logger6(substitutedLogFileName, envLogOptions.traceToConsole, logVerbosity); - } - function writeMessage(buf) { - if (!canWrite) { - pending.enqueue(buf); - } - else { - canWrite = false; - process.stdout.write(buf, setCanWriteFlagAndWriteMessageIfNecessary); - } - } - function setCanWriteFlagAndWriteMessageIfNecessary() { - canWrite = true; - if (!pending.isEmpty()) { - writeMessage(pending.dequeue()); - } - } - function extractWatchDirectoryCacheKey(path, currentDriveKey) { - path = normalizeSlashes(path); - if (isUNCPath(path)) { - var firstSlash = path.indexOf(directorySeparator, 2); - return firstSlash !== -1 ? toFileNameLowerCase(path.substring(0, firstSlash)) : path; - } - var rootLength = getRootLength(path); - if (rootLength === 0) { - return currentDriveKey; - } - if (path.charCodeAt(1) === 58 /* colon */ && path.charCodeAt(2) === 47 /* slash */) { - return toFileNameLowerCase(path.charAt(0)); - } - if (path.charCodeAt(0) === 47 /* slash */ && path.charCodeAt(1) !== 47 /* slash */) { - return currentDriveKey; - } - return void 0; - } - function isUNCPath(s) { - return s.length > 2 && s.charCodeAt(0) === 47 /* slash */ && s.charCodeAt(1) === 47 /* slash */; - } - function watchDirectorySwallowingException(path, callback, recursive, options) { - try { - return originalWatchDirectory(path, callback, recursive, options); - } - catch (e) { - logger.info("Exception when creating directory watcher: ".concat(e.message)); - return noopFileWatcher; - } - } -} -function parseEventPort(eventPortStr) { - var eventPort = eventPortStr === void 0 ? void 0 : parseInt(eventPortStr); - return eventPort !== void 0 && !isNaN(eventPort) ? eventPort : void 0; -} -function startNodeSession(options, logger, cancellationToken) { - var childProcess = require("child_process"); - var os = require("os"); - var net = require("net"); - var readline = require("readline"); - var rl = readline.createInterface({ - input: process.stdin, - output: process.stdout, - terminal: false - }); - var _NodeTypingsInstaller = /** @class */ (function () { - function _NodeTypingsInstaller(telemetryEnabled2, logger2, host, globalTypingsCacheLocation, typingSafeListLocation2, typesMapLocation2, npmLocation2, validateDefaultNpmLocation2, event) { - this.telemetryEnabled = telemetryEnabled2; - this.logger = logger2; - this.host = host; - this.globalTypingsCacheLocation = globalTypingsCacheLocation; - this.typingSafeListLocation = typingSafeListLocation2; - this.typesMapLocation = typesMapLocation2; - this.npmLocation = npmLocation2; - this.validateDefaultNpmLocation = validateDefaultNpmLocation2; - this.event = event; - this.activeRequestCount = 0; - this.requestQueue = createQueue(); - this.requestMap = /* @__PURE__ */ new Map(); - // Maps operation ID to newest requestQueue entry with that ID - /** We will lazily request the types registry on the first call to `isKnownTypesPackageName` and store it in `typesRegistryCache`. */ - this.requestedRegistry = false; - } - _NodeTypingsInstaller.prototype.isKnownTypesPackageName = function (name) { - var validationResult = ts_JsTyping_exports.validatePackageName(name); - if (validationResult !== ts_JsTyping_exports.NameValidationResult.Ok) { - return false; - } - if (this.requestedRegistry) { - return !!this.typesRegistryCache && this.typesRegistryCache.has(name); - } - this.requestedRegistry = true; - this.send({ kind: "typesRegistry" }); - return false; - }; - _NodeTypingsInstaller.prototype.installPackage = function (options2) { - var _this = this; - this.send(__assign({ kind: "installPackage" }, options2)); - Debug.assert(this.packageInstalledPromise === void 0); - return new Promise(function (resolve, reject) { - _this.packageInstalledPromise = { resolve: resolve, reject: reject }; - }); - }; - _NodeTypingsInstaller.prototype.attach = function (projectService) { - var e_984, _t; - var _this = this; - this.projectService = projectService; - if (this.logger.hasLevel(2 /* requestTime */)) { - this.logger.info("Binding..."); - } - var args = [Arguments.GlobalCacheLocation, this.globalTypingsCacheLocation]; - if (this.telemetryEnabled) { - args.push(Arguments.EnableTelemetry); - } - if (this.logger.loggingEnabled() && this.logger.getLogFileName()) { - args.push(Arguments.LogFile, combinePaths(getDirectoryPath(normalizeSlashes(this.logger.getLogFileName())), "ti-".concat(process.pid, ".log"))); - } - if (this.typingSafeListLocation) { - args.push(Arguments.TypingSafeListLocation, this.typingSafeListLocation); - } - if (this.typesMapLocation) { - args.push(Arguments.TypesMapLocation, this.typesMapLocation); - } - if (this.npmLocation) { - args.push(Arguments.NpmLocation, this.npmLocation); - } - if (this.validateDefaultNpmLocation) { - args.push(Arguments.ValidateDefaultNpmLocation); - } - var execArgv = []; - try { - for (var _u = __values(process.execArgv), _v = _u.next(); !_v.done; _v = _u.next()) { - var arg = _v.value; - var match = /^--((?:debug|inspect)(?:-brk)?)(?:=(\d+))?$/.exec(arg); - if (match) { - var currentPort = match[2] !== void 0 ? +match[2] : match[1].charAt(0) === "d" ? 5858 : 9229; - execArgv.push("--".concat(match[1], "=").concat(currentPort + 1)); - break; - } - } - } - catch (e_984_1) { e_984 = { error: e_984_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_984) throw e_984.error; } - } - var typingsInstaller = combinePaths(getDirectoryPath(sys.getExecutingFilePath()), "typingsInstaller.js"); - this.installer = childProcess.fork(typingsInstaller, args, { execArgv: execArgv }); - this.installer.on("message", function (m) { return _this.handleMessage(m); }); - this.host.setImmediate(function () { return _this.event({ pid: _this.installer.pid }, "typingsInstallerPid"); }); - process.on("exit", function () { - _this.installer.kill(); - }); - }; - _NodeTypingsInstaller.prototype.onProjectClosed = function (p) { - this.send({ projectName: p.getProjectName(), kind: "closeProject" }); - }; - _NodeTypingsInstaller.prototype.send = function (rq) { - this.installer.send(rq); - }; - _NodeTypingsInstaller.prototype.enqueueInstallTypingsRequest = function (project, typeAcquisition, unresolvedImports) { - var _this = this; - var request = createInstallTypingsRequest(project, typeAcquisition, unresolvedImports); - if (this.logger.hasLevel(3 /* verbose */)) { - if (this.logger.hasLevel(3 /* verbose */)) { - this.logger.info("Scheduling throttled operation:".concat(stringifyIndented(request))); - } - } - var operationId = project.getProjectName(); - var operation = function () { - if (_this.logger.hasLevel(3 /* verbose */)) { - _this.logger.info("Sending request:".concat(stringifyIndented(request))); - } - _this.send(request); - }; - var queuedRequest = { operationId: operationId, operation: operation }; - if (this.activeRequestCount < _NodeTypingsInstaller.maxActiveRequestCount) { - this.scheduleRequest(queuedRequest); - } - else { - if (this.logger.hasLevel(3 /* verbose */)) { - this.logger.info("Deferring request for: ".concat(operationId)); - } - this.requestQueue.enqueue(queuedRequest); - this.requestMap.set(operationId, queuedRequest); - } - }; - _NodeTypingsInstaller.prototype.handleMessage = function (response) { - if (this.logger.hasLevel(3 /* verbose */)) { - this.logger.info("Received response:".concat(stringifyIndented(response))); - } - switch (response.kind) { - case EventTypesRegistry: - this.typesRegistryCache = new Map(Object.entries(response.typesRegistry)); - break; - case ActionPackageInstalled: { - var success = response.success, message = response.message; - if (success) { - this.packageInstalledPromise.resolve({ successMessage: message }); - } - else { - this.packageInstalledPromise.reject(message); - } - this.packageInstalledPromise = void 0; - this.projectService.updateTypingsForProject(response); - this.event(response, "setTypings"); - break; - } - case EventInitializationFailed: { - var body = { - message: response.message - }; - var eventName = "typesInstallerInitializationFailed"; - this.event(body, eventName); - break; - } - case EventBeginInstallTypes: { - var body = { - eventId: response.eventId, - packages: response.packagesToInstall - }; - var eventName = "beginInstallTypes"; - this.event(body, eventName); - break; - } - case EventEndInstallTypes: { - if (this.telemetryEnabled) { - var body2 = { - telemetryEventName: "typingsInstalled", - payload: { - installedPackages: response.packagesToInstall.join(","), - installSuccess: response.installSuccess, - typingsInstallerVersion: response.typingsInstallerVersion - } - }; - var eventName2 = "telemetry"; - this.event(body2, eventName2); - } - var body = { - eventId: response.eventId, - packages: response.packagesToInstall, - success: response.installSuccess - }; - var eventName = "endInstallTypes"; - this.event(body, eventName); - break; - } - case ActionInvalidate: { - this.projectService.updateTypingsForProject(response); - break; - } - case ActionSet: { - if (this.activeRequestCount > 0) { - this.activeRequestCount--; - } - else { - Debug.fail("Received too many responses"); - } - while (!this.requestQueue.isEmpty()) { - var queuedRequest = this.requestQueue.dequeue(); - if (this.requestMap.get(queuedRequest.operationId) === queuedRequest) { - this.requestMap.delete(queuedRequest.operationId); - this.scheduleRequest(queuedRequest); - break; - } - if (this.logger.hasLevel(3 /* verbose */)) { - this.logger.info("Skipping defunct request for: ".concat(queuedRequest.operationId)); - } - } - this.projectService.updateTypingsForProject(response); - this.event(response, "setTypings"); - break; - } - case ActionWatchTypingLocations: - this.projectService.watchTypingLocations(response); - break; - default: - assertType(response); - } - }; - _NodeTypingsInstaller.prototype.scheduleRequest = function (request) { - if (this.logger.hasLevel(3 /* verbose */)) { - this.logger.info("Scheduling request for: ".concat(request.operationId)); - } - this.activeRequestCount++; - this.host.setTimeout(request.operation, _NodeTypingsInstaller.requestDelayMillis); - }; - return _NodeTypingsInstaller; - }()); - // This number is essentially arbitrary. Processing more than one typings request - // at a time makes sense, but having too many in the pipe results in a hang - // (see https://github.com/nodejs/node/issues/7657). - // It would be preferable to base our limit on the amount of space left in the - // buffer, but we have yet to find a way to retrieve that value. - _NodeTypingsInstaller.maxActiveRequestCount = 10; - _NodeTypingsInstaller.requestDelayMillis = 100; - var NodeTypingsInstaller = _NodeTypingsInstaller; - var IOSession = /** @class */ (function (_super) { - __extends(IOSession, _super); - function IOSession() { - var _this = this; - var event = function (body, eventName) { - _this.event(body, eventName); - }; - var host = sys; - var typingsInstaller = disableAutomaticTypingAcquisition ? void 0 : new NodeTypingsInstaller(telemetryEnabled, logger, host, getGlobalTypingsCacheLocation(), typingSafeListLocation, typesMapLocation, npmLocation, validateDefaultNpmLocation, event); - _this = _super.call(this, __assign(__assign({ host: host, cancellationToken: cancellationToken }, options), { typingsInstaller: typingsInstaller || nullTypingsInstaller, byteLength: Buffer.byteLength, hrtime: process.hrtime, logger: logger, canUseEvents: true, typesMapLocation: typesMapLocation })) || this; - _this.eventPort = eventPort; - if (_this.canUseEvents && _this.eventPort) { - var s_2 = net.connect({ port: _this.eventPort }, function () { - var e_985, _t; - _this.eventSocket = s_2; - if (_this.socketEventQueue) { - try { - for (var _u = __values(_this.socketEventQueue), _v = _u.next(); !_v.done; _v = _u.next()) { - var event2 = _v.value; - _this.writeToEventSocket(event2.body, event2.eventName); - } - } - catch (e_985_1) { e_985 = { error: e_985_1 }; } - finally { - try { - if (_v && !_v.done && (_t = _u.return)) _t.call(_u); - } - finally { if (e_985) throw e_985.error; } - } - _this.socketEventQueue = void 0; - } - }); - } - _this.constructed = true; - return _this; - } - IOSession.prototype.event = function (body, eventName) { - Debug.assert(!!this.constructed, "Should only call `IOSession.prototype.event` on an initialized IOSession"); - if (this.canUseEvents && this.eventPort) { - if (!this.eventSocket) { - if (this.logger.hasLevel(3 /* verbose */)) { - this.logger.info("eventPort: event \"".concat(eventName, "\" queued, but socket not yet initialized")); - } - (this.socketEventQueue || (this.socketEventQueue = [])).push({ body: body, eventName: eventName }); - return; - } - else { - Debug.assert(this.socketEventQueue === void 0); - this.writeToEventSocket(body, eventName); - } - } - else { - _super.prototype.event.call(this, body, eventName); - } - }; - IOSession.prototype.writeToEventSocket = function (body, eventName) { - this.eventSocket.write(formatMessage2(toEvent(eventName, body), this.logger, this.byteLength, this.host.newLine), "utf8"); - }; - IOSession.prototype.exit = function () { - var _a; - this.logger.info("Exiting..."); - this.projectService.closeLog(); - (_a = tracing) == null ? void 0 : _a.stopTracing(); - process.exit(0); - }; - IOSession.prototype.listen = function () { - var _this = this; - rl.on("line", function (input) { - var message = input.trim(); - _this.onMessage(message); - }); - rl.on("close", function () { - _this.exit(); - }); - }; - return IOSession; - }(Session3)); - var IpcIOSession = /** @class */ (function (_super) { - __extends(IpcIOSession, _super); - function IpcIOSession() { - return _super !== null && _super.apply(this, arguments) || this; - } - IpcIOSession.prototype.writeMessage = function (msg) { - var verboseLogging = logger.hasLevel(3 /* verbose */); - if (verboseLogging) { - var json = JSON.stringify(msg); - logger.info("".concat(msg.type, ":").concat(indent2(json))); - } - process.send(msg); - }; - IpcIOSession.prototype.parseMessage = function (message) { - return message; - }; - IpcIOSession.prototype.toStringMessage = function (message) { - return JSON.stringify(message, void 0, 2); - }; - IpcIOSession.prototype.listen = function () { - var _this = this; - process.on("message", function (e) { - _this.onMessage(e); - }); - process.on("disconnect", function () { - _this.exit(); - }); - }; - return IpcIOSession; - }(IOSession)); - var eventPort = parseEventPort(findArgument("--eventPort")); - var typingSafeListLocation = findArgument(Arguments.TypingSafeListLocation); - var typesMapLocation = findArgument(Arguments.TypesMapLocation) || combinePaths(getDirectoryPath(sys.getExecutingFilePath()), "typesMap.json"); - var npmLocation = findArgument(Arguments.NpmLocation); - var validateDefaultNpmLocation = hasArgument(Arguments.ValidateDefaultNpmLocation); - var disableAutomaticTypingAcquisition = hasArgument("--disableAutomaticTypingAcquisition"); - var useNodeIpc = hasArgument("--useNodeIpc"); - var telemetryEnabled = hasArgument(Arguments.EnableTelemetry); - var commandLineTraceDir = findArgument("--traceDirectory"); - var traceDir = commandLineTraceDir ? stripQuotes(commandLineTraceDir) : process.env.TSS_TRACE; - if (traceDir) { - startTracing("server", traceDir); - } - var ioSession = useNodeIpc ? new IpcIOSession() : new IOSession(); - process.on("uncaughtException", function (err) { - ioSession.logError(err, "unknown"); - }); - process.noAsar = true; - ioSession.listen(); - function getGlobalTypingsCacheLocation() { - switch (process.platform) { - case "win32": { - var basePath = process.env.LOCALAPPDATA || process.env.APPDATA || os.homedir && os.homedir() || process.env.USERPROFILE || process.env.HOMEDRIVE && process.env.HOMEPATH && normalizeSlashes(process.env.HOMEDRIVE + process.env.HOMEPATH) || os.tmpdir(); - return combinePaths(combinePaths(normalizeSlashes(basePath), "Microsoft/TypeScript"), versionMajorMinor); - } - case "openbsd": - case "freebsd": - case "netbsd": - case "darwin": - case "linux": - case "android": { - var cacheLocation = getNonWindowsCacheLocation(process.platform === "darwin"); - return combinePaths(combinePaths(cacheLocation, "typescript"), versionMajorMinor); - } - default: - return Debug.fail("unsupported platform '".concat(process.platform, "'")); - } - } - function getNonWindowsCacheLocation(platformIsDarwin) { - if (process.env.XDG_CACHE_HOME) { - return process.env.XDG_CACHE_HOME; - } - var usersDir = platformIsDarwin ? "Users" : "home"; - var homePath = os.homedir && os.homedir() || process.env.HOME || (process.env.LOGNAME || process.env.USER) && "/".concat(usersDir, "/").concat(process.env.LOGNAME || process.env.USER) || os.tmpdir(); - var cacheFolder = platformIsDarwin ? "Library/Caches" : ".cache"; - return combinePaths(normalizeSlashes(homePath), cacheFolder); - } -} -// src/tsserver/common.ts -function getLogLevel(level) { - if (level) { - var l = level.toLowerCase(); - for (var name_143 in LogLevel2) { - if (isNaN(+name_143) && l === name_143.toLowerCase()) { - return LogLevel2[name_143]; - } - } - } - return void 0; -} -// src/tsserver/server.ts -function findArgumentStringArray(argName) { - var arg = findArgument(argName); - if (arg === void 0) { - return emptyArray2; - } - return arg.split(",").filter(function (name) { return name !== ""; }); -} -function start(_t, platform) { - var args = _t.args, logger = _t.logger, cancellationToken = _t.cancellationToken, serverMode = _t.serverMode, unknownServerMode = _t.unknownServerMode, startServer = _t.startSession; - logger.info("Starting TS Server"); - logger.info("Version: ".concat(version)); - logger.info("Arguments: ".concat(args.join(" "))); - logger.info("Platform: ".concat(platform, " NodeVersion: ").concat(process.version, " CaseSensitive: ").concat(sys.useCaseSensitiveFileNames)); - logger.info("ServerMode: ".concat(serverMode, " hasUnknownServerMode: ").concat(unknownServerMode)); - setStackTraceLimit(); - if (Debug.isDebugging) { - Debug.enableDebugInfo(); - } - if (sys.tryEnableSourceMapsForHost && /^development$/i.test(sys.getEnvironmentVariable("NODE_ENV"))) { - sys.tryEnableSourceMapsForHost(); - } - console.log = function () { - var args2 = []; - for (var _t = 0; _t < arguments.length; _t++) { - args2[_t] = arguments[_t]; - } - return logger.msg(args2.length === 1 ? args2[0] : args2.join(", "), "Info" /* Info */); - }; - console.warn = function () { - var args2 = []; - for (var _t = 0; _t < arguments.length; _t++) { - args2[_t] = arguments[_t]; - } - return logger.msg(args2.length === 1 ? args2[0] : args2.join(", "), "Err" /* Err */); - }; - console.error = function () { - var args2 = []; - for (var _t = 0; _t < arguments.length; _t++) { - args2[_t] = arguments[_t]; - } - return logger.msg(args2.length === 1 ? args2[0] : args2.join(", "), "Err" /* Err */); - }; - startServer({ - globalPlugins: findArgumentStringArray("--globalPlugins"), - pluginProbeLocations: findArgumentStringArray("--pluginProbeLocations"), - allowLocalPluginLoads: hasArgument("--allowLocalPluginLoads"), - useSingleInferredProject: hasArgument("--useSingleInferredProject"), - useInferredProjectPerProjectRoot: hasArgument("--useInferredProjectPerProjectRoot"), - suppressDiagnosticEvents: hasArgument("--suppressDiagnosticEvents"), - noGetErrOnBackgroundUpdate: hasArgument("--noGetErrOnBackgroundUpdate"), - serverMode: serverMode - }, logger, cancellationToken); -} -setStackTraceLimit(); -// start(initializeNodeSystem(), require("os").platform()); -// Annotate the CommonJS export names for ESM import in node: -0 && (module.exports = { - ANONYMOUS: ANONYMOUS, - AccessFlags: AccessFlags, - AssertionLevel: AssertionLevel, - AssignmentDeclarationKind: AssignmentDeclarationKind, - AssignmentKind: AssignmentKind, - Associativity: Associativity, - BreakpointResolver: BreakpointResolver, - BuilderFileEmit: BuilderFileEmit, - BuilderProgramKind: BuilderProgramKind, - BuilderState: BuilderState, - BundleFileSectionKind: BundleFileSectionKind, - CallHierarchy: CallHierarchy, - CharacterCodes: CharacterCodes, - CheckFlags: CheckFlags, - CheckMode: CheckMode, - ClassificationType: ClassificationType, - ClassificationTypeNames: ClassificationTypeNames, - CommentDirectiveType: CommentDirectiveType, - Comparison: Comparison, - CompletionInfoFlags: CompletionInfoFlags, - CompletionTriggerKind: CompletionTriggerKind, - Completions: Completions, - ConfigFileProgramReloadLevel: ConfigFileProgramReloadLevel, - ContainerFlags: ContainerFlags, - ContextFlags: ContextFlags, - CoreServicesShimHostAdapter: CoreServicesShimHostAdapter, - Debug: Debug, - DiagnosticCategory: DiagnosticCategory, - Diagnostics: Diagnostics, - DocumentHighlights: DocumentHighlights, - ElementFlags: ElementFlags, - EmitFlags: EmitFlags, - EmitHint: EmitHint, - EmitOnly: EmitOnly, - EndOfLineState: EndOfLineState, - EnumKind: EnumKind, - ExitStatus: ExitStatus, - ExportKind: ExportKind, - Extension: Extension, - ExternalEmitHelpers: ExternalEmitHelpers, - FileIncludeKind: FileIncludeKind, - FilePreprocessingDiagnosticsKind: FilePreprocessingDiagnosticsKind, - FileSystemEntryKind: FileSystemEntryKind, - FileWatcherEventKind: FileWatcherEventKind, - FindAllReferences: FindAllReferences, - FlattenLevel: FlattenLevel, - FlowFlags: FlowFlags, - ForegroundColorEscapeSequences: ForegroundColorEscapeSequences, - FunctionFlags: FunctionFlags, - GeneratedIdentifierFlags: GeneratedIdentifierFlags, - GetLiteralTextFlags: GetLiteralTextFlags, - GoToDefinition: GoToDefinition, - HighlightSpanKind: HighlightSpanKind, - IdentifierNameMap: IdentifierNameMap, - IdentifierNameMultiMap: IdentifierNameMultiMap, - ImportKind: ImportKind, - ImportsNotUsedAsValues: ImportsNotUsedAsValues, - IndentStyle: IndentStyle, - IndexFlags: IndexFlags, - IndexKind: IndexKind, - InferenceFlags: InferenceFlags, - InferencePriority: InferencePriority, - InlayHintKind: InlayHintKind, - InlayHints: InlayHints, - InternalEmitFlags: InternalEmitFlags, - InternalSymbolName: InternalSymbolName, - InvalidatedProjectKind: InvalidatedProjectKind, - JsDoc: JsDoc, - JsTyping: JsTyping, - JsxEmit: JsxEmit, - JsxFlags: JsxFlags, - JsxReferenceKind: JsxReferenceKind, - LanguageServiceMode: LanguageServiceMode, - LanguageServiceShimHostAdapter: LanguageServiceShimHostAdapter, - LanguageVariant: LanguageVariant, - LexicalEnvironmentFlags: LexicalEnvironmentFlags, - ListFormat: ListFormat, - LogLevel: LogLevel, - MemberOverrideStatus: MemberOverrideStatus, - ModifierFlags: ModifierFlags, - ModuleDetectionKind: ModuleDetectionKind, - ModuleInstanceState: ModuleInstanceState, - ModuleKind: ModuleKind, - ModuleResolutionKind: ModuleResolutionKind, - ModuleSpecifierEnding: ModuleSpecifierEnding, - NavigateTo: NavigateTo, - NavigationBar: NavigationBar, - NewLineKind: NewLineKind, - NodeBuilderFlags: NodeBuilderFlags, - NodeCheckFlags: NodeCheckFlags, - NodeFactoryFlags: NodeFactoryFlags, - NodeFlags: NodeFlags, - NodeResolutionFeatures: NodeResolutionFeatures, - ObjectFlags: ObjectFlags, - OperationCanceledException: OperationCanceledException, - OperatorPrecedence: OperatorPrecedence, - OrganizeImports: OrganizeImports, - OrganizeImportsMode: OrganizeImportsMode, - OuterExpressionKinds: OuterExpressionKinds, - OutliningElementsCollector: OutliningElementsCollector, - OutliningSpanKind: OutliningSpanKind, - OutputFileType: OutputFileType, - PackageJsonAutoImportPreference: PackageJsonAutoImportPreference, - PackageJsonDependencyGroup: PackageJsonDependencyGroup, - PatternMatchKind: PatternMatchKind, - PollingInterval: PollingInterval, - PollingWatchKind: PollingWatchKind, - PragmaKindFlags: PragmaKindFlags, - PrivateIdentifierKind: PrivateIdentifierKind, - ProcessLevel: ProcessLevel, - QuotePreference: QuotePreference, - RelationComparisonResult: RelationComparisonResult, - Rename: Rename, - ScriptElementKind: ScriptElementKind, - ScriptElementKindModifier: ScriptElementKindModifier, - ScriptKind: ScriptKind, - ScriptSnapshot: ScriptSnapshot, - ScriptTarget: ScriptTarget, - SemanticClassificationFormat: SemanticClassificationFormat, - SemanticMeaning: SemanticMeaning, - SemicolonPreference: SemicolonPreference, - SignatureCheckMode: SignatureCheckMode, - SignatureFlags: SignatureFlags, - SignatureHelp: SignatureHelp, - SignatureKind: SignatureKind, - SmartSelectionRange: SmartSelectionRange, - SnippetKind: SnippetKind, - SortKind: SortKind, - StructureIsReused: StructureIsReused, - SymbolAccessibility: SymbolAccessibility, - SymbolDisplay: SymbolDisplay, - SymbolDisplayPartKind: SymbolDisplayPartKind, - SymbolFlags: SymbolFlags, - SymbolFormatFlags: SymbolFormatFlags, - SyntaxKind: SyntaxKind, - SyntheticSymbolKind: SyntheticSymbolKind, - Ternary: Ternary, - ThrottledCancellationToken: ThrottledCancellationToken, - TokenClass: TokenClass, - TokenFlags: TokenFlags, - TransformFlags: TransformFlags, - TypeFacts: TypeFacts, - TypeFlags: TypeFlags, - TypeFormatFlags: TypeFormatFlags, - TypeMapKind: TypeMapKind, - TypePredicateKind: TypePredicateKind, - TypeReferenceSerializationKind: TypeReferenceSerializationKind, - TypeScriptServicesFactory: TypeScriptServicesFactory, - UnionReduction: UnionReduction, - UpToDateStatusType: UpToDateStatusType, - VarianceFlags: VarianceFlags, - Version: Version, - VersionRange: VersionRange, - WatchDirectoryFlags: WatchDirectoryFlags, - WatchDirectoryKind: WatchDirectoryKind, - WatchFileKind: WatchFileKind, - WatchLogLevel: WatchLogLevel, - WatchType: WatchType, - accessPrivateIdentifier: accessPrivateIdentifier, - addDisposableResourceHelper: addDisposableResourceHelper, - addEmitFlags: addEmitFlags, - addEmitHelper: addEmitHelper, - addEmitHelpers: addEmitHelpers, - addInternalEmitFlags: addInternalEmitFlags, - addNodeFactoryPatcher: addNodeFactoryPatcher, - addObjectAllocatorPatcher: addObjectAllocatorPatcher, - addRange: addRange, - addRelatedInfo: addRelatedInfo, - addSyntheticLeadingComment: addSyntheticLeadingComment, - addSyntheticTrailingComment: addSyntheticTrailingComment, - addToSeen: addToSeen, - advancedAsyncSuperHelper: advancedAsyncSuperHelper, - affectsDeclarationPathOptionDeclarations: affectsDeclarationPathOptionDeclarations, - affectsEmitOptionDeclarations: affectsEmitOptionDeclarations, - allKeysStartWithDot: allKeysStartWithDot, - altDirectorySeparator: altDirectorySeparator, - and: and, - append: append, - appendIfUnique: appendIfUnique, - arrayFrom: arrayFrom, - arrayIsEqualTo: arrayIsEqualTo, - arrayIsHomogeneous: arrayIsHomogeneous, - arrayIsSorted: arrayIsSorted, - arrayOf: arrayOf, - arrayReverseIterator: arrayReverseIterator, - arrayToMap: arrayToMap, - arrayToMultiMap: arrayToMultiMap, - arrayToNumericMap: arrayToNumericMap, - arraysEqual: arraysEqual, - assertType: assertType, - assign: assign, - assignHelper: assignHelper, - asyncDelegator: asyncDelegator, - asyncGeneratorHelper: asyncGeneratorHelper, - asyncSuperHelper: asyncSuperHelper, - asyncValues: asyncValues, - attachFileToDiagnostics: attachFileToDiagnostics, - awaitHelper: awaitHelper, - awaiterHelper: awaiterHelper, - base64decode: base64decode, - base64encode: base64encode, - binarySearch: binarySearch, - binarySearchKey: binarySearchKey, - bindSourceFile: bindSourceFile, - breakIntoCharacterSpans: breakIntoCharacterSpans, - breakIntoWordSpans: breakIntoWordSpans, - buildLinkParts: buildLinkParts, - buildOpts: buildOpts, - buildOverload: buildOverload, - bundlerModuleNameResolver: bundlerModuleNameResolver, - canBeConvertedToAsync: canBeConvertedToAsync, - canHaveDecorators: canHaveDecorators, - canHaveExportModifier: canHaveExportModifier, - canHaveFlowNode: canHaveFlowNode, - canHaveIllegalDecorators: canHaveIllegalDecorators, - canHaveIllegalModifiers: canHaveIllegalModifiers, - canHaveIllegalType: canHaveIllegalType, - canHaveIllegalTypeParameters: canHaveIllegalTypeParameters, - canHaveJSDoc: canHaveJSDoc, - canHaveLocals: canHaveLocals, - canHaveModifiers: canHaveModifiers, - canHaveSymbol: canHaveSymbol, - canJsonReportNoInputFiles: canJsonReportNoInputFiles, - canProduceDiagnostics: canProduceDiagnostics, - canUsePropertyAccess: canUsePropertyAccess, - canWatchAffectingLocation: canWatchAffectingLocation, - canWatchAtTypes: canWatchAtTypes, - canWatchDirectoryOrFile: canWatchDirectoryOrFile, - cartesianProduct: cartesianProduct, - cast: cast, - chainBundle: chainBundle, - chainDiagnosticMessages: chainDiagnosticMessages, - changeAnyExtension: changeAnyExtension, - changeCompilerHostLikeToUseCache: changeCompilerHostLikeToUseCache, - changeExtension: changeExtension, - changesAffectModuleResolution: changesAffectModuleResolution, - changesAffectingProgramStructure: changesAffectingProgramStructure, - childIsDecorated: childIsDecorated, - classElementOrClassElementParameterIsDecorated: classElementOrClassElementParameterIsDecorated, - classHasClassThisAssignment: classHasClassThisAssignment, - classHasDeclaredOrExplicitlyAssignedName: classHasDeclaredOrExplicitlyAssignedName, - classHasExplicitlyAssignedName: classHasExplicitlyAssignedName, - classOrConstructorParameterIsDecorated: classOrConstructorParameterIsDecorated, - classPrivateFieldGetHelper: classPrivateFieldGetHelper, - classPrivateFieldInHelper: classPrivateFieldInHelper, - classPrivateFieldSetHelper: classPrivateFieldSetHelper, - classicNameResolver: classicNameResolver, - classifier: classifier, - cleanExtendedConfigCache: cleanExtendedConfigCache, - clear: clear, - clearMap: clearMap, - clearSharedExtendedConfigFileWatcher: clearSharedExtendedConfigFileWatcher, - climbPastPropertyAccess: climbPastPropertyAccess, - climbPastPropertyOrElementAccess: climbPastPropertyOrElementAccess, - clone: clone, - cloneCompilerOptions: cloneCompilerOptions, - closeFileWatcher: closeFileWatcher, - closeFileWatcherOf: closeFileWatcherOf, - codefix: codefix, - collapseTextChangeRangesAcrossMultipleVersions: collapseTextChangeRangesAcrossMultipleVersions, - collectExternalModuleInfo: collectExternalModuleInfo, - combine: combine, - combinePaths: combinePaths, - commentPragmas: commentPragmas, - commonOptionsWithBuild: commonOptionsWithBuild, - commonPackageFolders: commonPackageFolders, - compact: compact, - compareBooleans: compareBooleans, - compareDataObjects: compareDataObjects, - compareDiagnostics: compareDiagnostics, - compareDiagnosticsSkipRelatedInformation: compareDiagnosticsSkipRelatedInformation, - compareEmitHelpers: compareEmitHelpers, - compareNumberOfDirectorySeparators: compareNumberOfDirectorySeparators, - comparePaths: comparePaths, - comparePathsCaseInsensitive: comparePathsCaseInsensitive, - comparePathsCaseSensitive: comparePathsCaseSensitive, - comparePatternKeys: comparePatternKeys, - compareProperties: compareProperties, - compareStringsCaseInsensitive: compareStringsCaseInsensitive, - compareStringsCaseInsensitiveEslintCompatible: compareStringsCaseInsensitiveEslintCompatible, - compareStringsCaseSensitive: compareStringsCaseSensitive, - compareStringsCaseSensitiveUI: compareStringsCaseSensitiveUI, - compareTextSpans: compareTextSpans, - compareValues: compareValues, - compileOnSaveCommandLineOption: compileOnSaveCommandLineOption, - compilerOptionsAffectDeclarationPath: compilerOptionsAffectDeclarationPath, - compilerOptionsAffectEmit: compilerOptionsAffectEmit, - compilerOptionsAffectSemanticDiagnostics: compilerOptionsAffectSemanticDiagnostics, - compilerOptionsDidYouMeanDiagnostics: compilerOptionsDidYouMeanDiagnostics, - compilerOptionsIndicateEsModules: compilerOptionsIndicateEsModules, - compose: compose, - computeCommonSourceDirectoryOfFilenames: computeCommonSourceDirectoryOfFilenames, - computeLineAndCharacterOfPosition: computeLineAndCharacterOfPosition, - computeLineOfPosition: computeLineOfPosition, - computeLineStarts: computeLineStarts, - computePositionOfLineAndCharacter: computePositionOfLineAndCharacter, - computeSignature: computeSignature, - computeSignatureWithDiagnostics: computeSignatureWithDiagnostics, - computeSuggestionDiagnostics: computeSuggestionDiagnostics, - concatenate: concatenate, - concatenateDiagnosticMessageChains: concatenateDiagnosticMessageChains, - consumesNodeCoreModules: consumesNodeCoreModules, - contains: contains, - containsIgnoredPath: containsIgnoredPath, - containsObjectRestOrSpread: containsObjectRestOrSpread, - containsParseError: containsParseError, - containsPath: containsPath, - convertCompilerOptionsForTelemetry: convertCompilerOptionsForTelemetry, - convertCompilerOptionsFromJson: convertCompilerOptionsFromJson, - convertJsonOption: convertJsonOption, - convertToBase64: convertToBase64, - convertToJson: convertToJson, - convertToObject: convertToObject, - convertToOptionsWithAbsolutePaths: convertToOptionsWithAbsolutePaths, - convertToRelativePath: convertToRelativePath, - convertToTSConfig: convertToTSConfig, - convertTypeAcquisitionFromJson: convertTypeAcquisitionFromJson, - copyComments: copyComments, - copyEntries: copyEntries, - copyLeadingComments: copyLeadingComments, - copyProperties: copyProperties, - copyTrailingAsLeadingComments: copyTrailingAsLeadingComments, - copyTrailingComments: copyTrailingComments, - couldStartTrivia: couldStartTrivia, - countWhere: countWhere, - createAbstractBuilder: createAbstractBuilder, - createAccessorPropertyBackingField: createAccessorPropertyBackingField, - createAccessorPropertyGetRedirector: createAccessorPropertyGetRedirector, - createAccessorPropertySetRedirector: createAccessorPropertySetRedirector, - createBaseNodeFactory: createBaseNodeFactory, - createBinaryExpressionTrampoline: createBinaryExpressionTrampoline, - createBindingHelper: createBindingHelper, - createBuildInfo: createBuildInfo, - createBuilderProgram: createBuilderProgram, - createBuilderProgramUsingProgramBuildInfo: createBuilderProgramUsingProgramBuildInfo, - createBuilderStatusReporter: createBuilderStatusReporter, - createCacheWithRedirects: createCacheWithRedirects, - createCacheableExportInfoMap: createCacheableExportInfoMap, - createCachedDirectoryStructureHost: createCachedDirectoryStructureHost, - createClassNamedEvaluationHelperBlock: createClassNamedEvaluationHelperBlock, - createClassThisAssignmentBlock: createClassThisAssignmentBlock, - createClassifier: createClassifier, - createCommentDirectivesMap: createCommentDirectivesMap, - createCompilerDiagnostic: createCompilerDiagnostic, - createCompilerDiagnosticForInvalidCustomType: createCompilerDiagnosticForInvalidCustomType, - createCompilerDiagnosticFromMessageChain: createCompilerDiagnosticFromMessageChain, - createCompilerHost: createCompilerHost, - createCompilerHostFromProgramHost: createCompilerHostFromProgramHost, - createCompilerHostWorker: createCompilerHostWorker, - createDetachedDiagnostic: createDetachedDiagnostic, - createDiagnosticCollection: createDiagnosticCollection, - createDiagnosticForFileFromMessageChain: createDiagnosticForFileFromMessageChain, - createDiagnosticForNode: createDiagnosticForNode, - createDiagnosticForNodeArray: createDiagnosticForNodeArray, - createDiagnosticForNodeArrayFromMessageChain: createDiagnosticForNodeArrayFromMessageChain, - createDiagnosticForNodeFromMessageChain: createDiagnosticForNodeFromMessageChain, - createDiagnosticForNodeInSourceFile: createDiagnosticForNodeInSourceFile, - createDiagnosticForRange: createDiagnosticForRange, - createDiagnosticMessageChainFromDiagnostic: createDiagnosticMessageChainFromDiagnostic, - createDiagnosticReporter: createDiagnosticReporter, - createDocumentPositionMapper: createDocumentPositionMapper, - createDocumentRegistry: createDocumentRegistry, - createDocumentRegistryInternal: createDocumentRegistryInternal, - createEmitAndSemanticDiagnosticsBuilderProgram: createEmitAndSemanticDiagnosticsBuilderProgram, - createEmitHelperFactory: createEmitHelperFactory, - createEmptyExports: createEmptyExports, - createExpressionForJsxElement: createExpressionForJsxElement, - createExpressionForJsxFragment: createExpressionForJsxFragment, - createExpressionForObjectLiteralElementLike: createExpressionForObjectLiteralElementLike, - createExpressionForPropertyName: createExpressionForPropertyName, - createExpressionFromEntityName: createExpressionFromEntityName, - createExternalHelpersImportDeclarationIfNeeded: createExternalHelpersImportDeclarationIfNeeded, - createFileDiagnostic: createFileDiagnostic, - createFileDiagnosticFromMessageChain: createFileDiagnosticFromMessageChain, - createForOfBindingStatement: createForOfBindingStatement, - createGetCanonicalFileName: createGetCanonicalFileName, - createGetSourceFile: createGetSourceFile, - createGetSymbolAccessibilityDiagnosticForNode: createGetSymbolAccessibilityDiagnosticForNode, - createGetSymbolAccessibilityDiagnosticForNodeName: createGetSymbolAccessibilityDiagnosticForNodeName, - createGetSymbolWalker: createGetSymbolWalker, - createIncrementalCompilerHost: createIncrementalCompilerHost, - createIncrementalProgram: createIncrementalProgram, - createInputFiles: createInputFiles, - createInputFilesWithFilePaths: createInputFilesWithFilePaths, - createInputFilesWithFileTexts: createInputFilesWithFileTexts, - createJsxFactoryExpression: createJsxFactoryExpression, - createLanguageService: createLanguageService, - createLanguageServiceSourceFile: createLanguageServiceSourceFile, - createMemberAccessForPropertyName: createMemberAccessForPropertyName, - createModeAwareCache: createModeAwareCache, - createModeAwareCacheKey: createModeAwareCacheKey, - createModuleNotFoundChain: createModuleNotFoundChain, - createModuleResolutionCache: createModuleResolutionCache, - createModuleResolutionLoader: createModuleResolutionLoader, - createModuleSpecifierResolutionHost: createModuleSpecifierResolutionHost, - createMultiMap: createMultiMap, - createNodeConverters: createNodeConverters, - createNodeFactory: createNodeFactory, - createOptionNameMap: createOptionNameMap, - createOverload: createOverload, - createPackageJsonImportFilter: createPackageJsonImportFilter, - createPackageJsonInfo: createPackageJsonInfo, - createParenthesizerRules: createParenthesizerRules, - createPatternMatcher: createPatternMatcher, - createPrependNodes: createPrependNodes, - createPrinter: createPrinter, - createPrinterWithDefaults: createPrinterWithDefaults, - createPrinterWithRemoveComments: createPrinterWithRemoveComments, - createPrinterWithRemoveCommentsNeverAsciiEscape: createPrinterWithRemoveCommentsNeverAsciiEscape, - createPrinterWithRemoveCommentsOmitTrailingSemicolon: createPrinterWithRemoveCommentsOmitTrailingSemicolon, - createProgram: createProgram, - createProgramHost: createProgramHost, - createPropertyNameNodeForIdentifierOrLiteral: createPropertyNameNodeForIdentifierOrLiteral, - createQueue: createQueue, - createRange: createRange, - createRedirectedBuilderProgram: createRedirectedBuilderProgram, - createResolutionCache: createResolutionCache, - createRuntimeTypeSerializer: createRuntimeTypeSerializer, - createScanner: createScanner, - createSemanticDiagnosticsBuilderProgram: createSemanticDiagnosticsBuilderProgram, - createSet: createSet, - createSolutionBuilder: createSolutionBuilder, - createSolutionBuilderHost: createSolutionBuilderHost, - createSolutionBuilderWithWatch: createSolutionBuilderWithWatch, - createSolutionBuilderWithWatchHost: createSolutionBuilderWithWatchHost, - createSortedArray: createSortedArray, - createSourceFile: createSourceFile, - createSourceMapGenerator: createSourceMapGenerator, - createSourceMapSource: createSourceMapSource, - createSuperAccessVariableStatement: createSuperAccessVariableStatement, - createSymbolTable: createSymbolTable, - createSymlinkCache: createSymlinkCache, - createSystemWatchFunctions: createSystemWatchFunctions, - createTextChange: createTextChange, - createTextChangeFromStartLength: createTextChangeFromStartLength, - createTextChangeRange: createTextChangeRange, - createTextRangeFromNode: createTextRangeFromNode, - createTextRangeFromSpan: createTextRangeFromSpan, - createTextSpan: createTextSpan, - createTextSpanFromBounds: createTextSpanFromBounds, - createTextSpanFromNode: createTextSpanFromNode, - createTextSpanFromRange: createTextSpanFromRange, - createTextSpanFromStringLiteralLikeContent: createTextSpanFromStringLiteralLikeContent, - createTextWriter: createTextWriter, - createTokenRange: createTokenRange, - createTypeChecker: createTypeChecker, - createTypeReferenceDirectiveResolutionCache: createTypeReferenceDirectiveResolutionCache, - createTypeReferenceResolutionLoader: createTypeReferenceResolutionLoader, - createUnparsedSourceFile: createUnparsedSourceFile, - createWatchCompilerHost: createWatchCompilerHost, - createWatchCompilerHostOfConfigFile: createWatchCompilerHostOfConfigFile, - createWatchCompilerHostOfFilesAndCompilerOptions: createWatchCompilerHostOfFilesAndCompilerOptions, - createWatchFactory: createWatchFactory, - createWatchHost: createWatchHost, - createWatchProgram: createWatchProgram, - createWatchStatusReporter: createWatchStatusReporter, - createWriteFileMeasuringIO: createWriteFileMeasuringIO, - declarationNameToString: declarationNameToString, - decodeMappings: decodeMappings, - decodedTextSpanIntersectsWith: decodedTextSpanIntersectsWith, - decorateHelper: decorateHelper, - deduplicate: deduplicate, - defaultIncludeSpec: defaultIncludeSpec, - defaultInitCompilerOptions: defaultInitCompilerOptions, - defaultMaximumTruncationLength: defaultMaximumTruncationLength, - detectSortCaseSensitivity: detectSortCaseSensitivity, - diagnosticCategoryName: diagnosticCategoryName, - diagnosticToString: diagnosticToString, - directoryProbablyExists: directoryProbablyExists, - directorySeparator: directorySeparator, - displayPart: displayPart, - displayPartsToString: displayPartsToString, - disposeEmitNodes: disposeEmitNodes, - disposeResourcesHelper: disposeResourcesHelper, - documentSpansEqual: documentSpansEqual, - dumpTracingLegend: dumpTracingLegend, - elementAt: elementAt, - elideNodes: elideNodes, - emitComments: emitComments, - emitDetachedComments: emitDetachedComments, - emitFiles: emitFiles, - emitFilesAndReportErrors: emitFilesAndReportErrors, - emitFilesAndReportErrorsAndGetExitStatus: emitFilesAndReportErrorsAndGetExitStatus, - emitModuleKindIsNonNodeESM: emitModuleKindIsNonNodeESM, - emitNewLineBeforeLeadingCommentOfPosition: emitNewLineBeforeLeadingCommentOfPosition, - emitNewLineBeforeLeadingComments: emitNewLineBeforeLeadingComments, - emitNewLineBeforeLeadingCommentsOfPosition: emitNewLineBeforeLeadingCommentsOfPosition, - emitSkippedWithNoDiagnostics: emitSkippedWithNoDiagnostics, - emitUsingBuildInfo: emitUsingBuildInfo, - emptyArray: emptyArray, - emptyFileSystemEntries: emptyFileSystemEntries, - emptyMap: emptyMap, - emptyOptions: emptyOptions, - emptySet: emptySet, - endsWith: endsWith, - ensurePathIsNonModuleName: ensurePathIsNonModuleName, - ensureScriptKind: ensureScriptKind, - ensureTrailingDirectorySeparator: ensureTrailingDirectorySeparator, - entityNameToString: entityNameToString, - enumerateInsertsAndDeletes: enumerateInsertsAndDeletes, - equalOwnProperties: equalOwnProperties, - equateStringsCaseInsensitive: equateStringsCaseInsensitive, - equateStringsCaseSensitive: equateStringsCaseSensitive, - equateValues: equateValues, - esDecorateHelper: esDecorateHelper, - escapeJsxAttributeString: escapeJsxAttributeString, - escapeLeadingUnderscores: escapeLeadingUnderscores, - escapeNonAsciiString: escapeNonAsciiString, - escapeSnippetText: escapeSnippetText, - escapeString: escapeString, - every: every, - expandPreOrPostfixIncrementOrDecrementExpression: expandPreOrPostfixIncrementOrDecrementExpression, - explainFiles: explainFiles, - explainIfFileIsRedirectAndImpliedFormat: explainIfFileIsRedirectAndImpliedFormat, - exportAssignmentIsAlias: exportAssignmentIsAlias, - exportStarHelper: exportStarHelper, - expressionResultIsUnused: expressionResultIsUnused, - extend: extend, - extendsHelper: extendsHelper, - extensionFromPath: extensionFromPath, - extensionIsTS: extensionIsTS, - extensionsNotSupportingExtensionlessResolution: extensionsNotSupportingExtensionlessResolution, - externalHelpersModuleNameText: externalHelpersModuleNameText, - factory: factory, - fileExtensionIs: fileExtensionIs, - fileExtensionIsOneOf: fileExtensionIsOneOf, - fileIncludeReasonToDiagnostics: fileIncludeReasonToDiagnostics, - fileShouldUseJavaScriptRequire: fileShouldUseJavaScriptRequire, - filter: filter, - filterMutate: filterMutate, - filterSemanticDiagnostics: filterSemanticDiagnostics, - find: find, - findAncestor: findAncestor, - findBestPatternMatch: findBestPatternMatch, - findChildOfKind: findChildOfKind, - findComputedPropertyNameCacheAssignment: findComputedPropertyNameCacheAssignment, - findConfigFile: findConfigFile, - findContainingList: findContainingList, - findDiagnosticForNode: findDiagnosticForNode, - findFirstNonJsxWhitespaceToken: findFirstNonJsxWhitespaceToken, - findIndex: findIndex, - findLast: findLast, - findLastIndex: findLastIndex, - findListItemInfo: findListItemInfo, - findMap: findMap, - findModifier: findModifier, - findNextToken: findNextToken, - findPackageJson: findPackageJson, - findPackageJsons: findPackageJsons, - findPrecedingMatchingToken: findPrecedingMatchingToken, - findPrecedingToken: findPrecedingToken, - findSuperStatementIndexPath: findSuperStatementIndexPath, - findTokenOnLeftOfPosition: findTokenOnLeftOfPosition, - findUseStrictPrologue: findUseStrictPrologue, - first: first, - firstDefined: firstDefined, - firstDefinedIterator: firstDefinedIterator, - firstIterator: firstIterator, - firstOrOnly: firstOrOnly, - firstOrUndefined: firstOrUndefined, - firstOrUndefinedIterator: firstOrUndefinedIterator, - fixupCompilerOptions: fixupCompilerOptions, - flatMap: flatMap, - flatMapIterator: flatMapIterator, - flatMapToMutable: flatMapToMutable, - flatten: flatten, - flattenCommaList: flattenCommaList, - flattenDestructuringAssignment: flattenDestructuringAssignment, - flattenDestructuringBinding: flattenDestructuringBinding, - flattenDiagnosticMessageText: flattenDiagnosticMessageText, - forEach: forEach, - forEachAncestor: forEachAncestor, - forEachAncestorDirectory: forEachAncestorDirectory, - forEachChild: forEachChild, - forEachChildRecursively: forEachChildRecursively, - forEachEmittedFile: forEachEmittedFile, - forEachEnclosingBlockScopeContainer: forEachEnclosingBlockScopeContainer, - forEachEntry: forEachEntry, - forEachExternalModuleToImportFrom: forEachExternalModuleToImportFrom, - forEachImportClauseDeclaration: forEachImportClauseDeclaration, - forEachKey: forEachKey, - forEachLeadingCommentRange: forEachLeadingCommentRange, - forEachNameInAccessChainWalkingLeft: forEachNameInAccessChainWalkingLeft, - forEachPropertyAssignment: forEachPropertyAssignment, - forEachResolvedProjectReference: forEachResolvedProjectReference, - forEachReturnStatement: forEachReturnStatement, - forEachRight: forEachRight, - forEachTrailingCommentRange: forEachTrailingCommentRange, - forEachTsConfigPropArray: forEachTsConfigPropArray, - forEachUnique: forEachUnique, - forEachYieldExpression: forEachYieldExpression, - forSomeAncestorDirectory: forSomeAncestorDirectory, - formatColorAndReset: formatColorAndReset, - formatDiagnostic: formatDiagnostic, - formatDiagnostics: formatDiagnostics, - formatDiagnosticsWithColorAndContext: formatDiagnosticsWithColorAndContext, - formatGeneratedName: formatGeneratedName, - formatGeneratedNamePart: formatGeneratedNamePart, - formatLocation: formatLocation, - formatMessage: formatMessage, - formatStringFromArgs: formatStringFromArgs, - formatting: formatting, - fullTripleSlashAMDReferencePathRegEx: fullTripleSlashAMDReferencePathRegEx, - fullTripleSlashReferencePathRegEx: fullTripleSlashReferencePathRegEx, - generateDjb2Hash: generateDjb2Hash, - generateTSConfig: generateTSConfig, - generatorHelper: generatorHelper, - getAdjustedReferenceLocation: getAdjustedReferenceLocation, - getAdjustedRenameLocation: getAdjustedRenameLocation, - getAliasDeclarationFromName: getAliasDeclarationFromName, - getAllAccessorDeclarations: getAllAccessorDeclarations, - getAllDecoratorsOfClass: getAllDecoratorsOfClass, - getAllDecoratorsOfClassElement: getAllDecoratorsOfClassElement, - getAllJSDocTags: getAllJSDocTags, - getAllJSDocTagsOfKind: getAllJSDocTagsOfKind, - getAllKeys: getAllKeys, - getAllProjectOutputs: getAllProjectOutputs, - getAllSuperTypeNodes: getAllSuperTypeNodes, - getAllUnscopedEmitHelpers: getAllUnscopedEmitHelpers, - getAllowJSCompilerOption: getAllowJSCompilerOption, - getAllowSyntheticDefaultImports: getAllowSyntheticDefaultImports, - getAncestor: getAncestor, - getAnyExtensionFromPath: getAnyExtensionFromPath, - getAreDeclarationMapsEnabled: getAreDeclarationMapsEnabled, - getAssignedExpandoInitializer: getAssignedExpandoInitializer, - getAssignedName: getAssignedName, - getAssignedNameOfIdentifier: getAssignedNameOfIdentifier, - getAssignmentDeclarationKind: getAssignmentDeclarationKind, - getAssignmentDeclarationPropertyAccessKind: getAssignmentDeclarationPropertyAccessKind, - getAssignmentTargetKind: getAssignmentTargetKind, - getAutomaticTypeDirectiveNames: getAutomaticTypeDirectiveNames, - getBaseFileName: getBaseFileName, - getBinaryOperatorPrecedence: getBinaryOperatorPrecedence, - getBuildInfo: getBuildInfo, - getBuildInfoFileVersionMap: getBuildInfoFileVersionMap, - getBuildInfoText: getBuildInfoText, - getBuildOrderFromAnyBuildOrder: getBuildOrderFromAnyBuildOrder, - getBuilderCreationParameters: getBuilderCreationParameters, - getBuilderFileEmit: getBuilderFileEmit, - getCheckFlags: getCheckFlags, - getClassExtendsHeritageElement: getClassExtendsHeritageElement, - getClassLikeDeclarationOfSymbol: getClassLikeDeclarationOfSymbol, - getCombinedLocalAndExportSymbolFlags: getCombinedLocalAndExportSymbolFlags, - getCombinedModifierFlags: getCombinedModifierFlags, - getCombinedNodeFlags: getCombinedNodeFlags, - getCombinedNodeFlagsAlwaysIncludeJSDoc: getCombinedNodeFlagsAlwaysIncludeJSDoc, - getCommentRange: getCommentRange, - getCommonSourceDirectory: getCommonSourceDirectory, - getCommonSourceDirectoryOfConfig: getCommonSourceDirectoryOfConfig, - getCompilerOptionValue: getCompilerOptionValue, - getCompilerOptionsDiffValue: getCompilerOptionsDiffValue, - getConditions: getConditions, - getConfigFileParsingDiagnostics: getConfigFileParsingDiagnostics, - getConstantValue: getConstantValue, - getContainerFlags: getContainerFlags, - getContainerNode: getContainerNode, - getContainingClass: getContainingClass, - getContainingClassExcludingClassDecorators: getContainingClassExcludingClassDecorators, - getContainingClassStaticBlock: getContainingClassStaticBlock, - getContainingFunction: getContainingFunction, - getContainingFunctionDeclaration: getContainingFunctionDeclaration, - getContainingFunctionOrClassStaticBlock: getContainingFunctionOrClassStaticBlock, - getContainingNodeArray: getContainingNodeArray, - getContainingObjectLiteralElement: getContainingObjectLiteralElement, - getContextualTypeFromParent: getContextualTypeFromParent, - getContextualTypeFromParentOrAncestorTypeNode: getContextualTypeFromParentOrAncestorTypeNode, - getCurrentTime: getCurrentTime, - getDeclarationDiagnostics: getDeclarationDiagnostics, - getDeclarationEmitExtensionForPath: getDeclarationEmitExtensionForPath, - getDeclarationEmitOutputFilePath: getDeclarationEmitOutputFilePath, - getDeclarationEmitOutputFilePathWorker: getDeclarationEmitOutputFilePathWorker, - getDeclarationFromName: getDeclarationFromName, - getDeclarationModifierFlagsFromSymbol: getDeclarationModifierFlagsFromSymbol, - getDeclarationOfKind: getDeclarationOfKind, - getDeclarationsOfKind: getDeclarationsOfKind, - getDeclaredExpandoInitializer: getDeclaredExpandoInitializer, - getDecorators: getDecorators, - getDefaultCompilerOptions: getDefaultCompilerOptions, - getDefaultExportInfoWorker: getDefaultExportInfoWorker, - getDefaultFormatCodeSettings: getDefaultFormatCodeSettings, - getDefaultLibFileName: getDefaultLibFileName, - getDefaultLibFilePath: getDefaultLibFilePath, - getDefaultLikeExportInfo: getDefaultLikeExportInfo, - getDiagnosticText: getDiagnosticText, - getDiagnosticsWithinSpan: getDiagnosticsWithinSpan, - getDirectoryPath: getDirectoryPath, - getDirectoryToWatchFailedLookupLocation: getDirectoryToWatchFailedLookupLocation, - getDirectoryToWatchFailedLookupLocationFromTypeRoot: getDirectoryToWatchFailedLookupLocationFromTypeRoot, - getDocumentPositionMapper: getDocumentPositionMapper, - getESModuleInterop: getESModuleInterop, - getEditsForFileRename: getEditsForFileRename, - getEffectiveBaseTypeNode: getEffectiveBaseTypeNode, - getEffectiveConstraintOfTypeParameter: getEffectiveConstraintOfTypeParameter, - getEffectiveContainerForJSDocTemplateTag: getEffectiveContainerForJSDocTemplateTag, - getEffectiveImplementsTypeNodes: getEffectiveImplementsTypeNodes, - getEffectiveInitializer: getEffectiveInitializer, - getEffectiveJSDocHost: getEffectiveJSDocHost, - getEffectiveModifierFlags: getEffectiveModifierFlags, - getEffectiveModifierFlagsAlwaysIncludeJSDoc: getEffectiveModifierFlagsAlwaysIncludeJSDoc, - getEffectiveModifierFlagsNoCache: getEffectiveModifierFlagsNoCache, - getEffectiveReturnTypeNode: getEffectiveReturnTypeNode, - getEffectiveSetAccessorTypeAnnotationNode: getEffectiveSetAccessorTypeAnnotationNode, - getEffectiveTypeAnnotationNode: getEffectiveTypeAnnotationNode, - getEffectiveTypeParameterDeclarations: getEffectiveTypeParameterDeclarations, - getEffectiveTypeRoots: getEffectiveTypeRoots, - getElementOrPropertyAccessArgumentExpressionOrName: getElementOrPropertyAccessArgumentExpressionOrName, - getElementOrPropertyAccessName: getElementOrPropertyAccessName, - getElementsOfBindingOrAssignmentPattern: getElementsOfBindingOrAssignmentPattern, - getEmitDeclarations: getEmitDeclarations, - getEmitFlags: getEmitFlags, - getEmitHelpers: getEmitHelpers, - getEmitModuleDetectionKind: getEmitModuleDetectionKind, - getEmitModuleKind: getEmitModuleKind, - getEmitModuleResolutionKind: getEmitModuleResolutionKind, - getEmitScriptTarget: getEmitScriptTarget, - getEmitStandardClassFields: getEmitStandardClassFields, - getEnclosingBlockScopeContainer: getEnclosingBlockScopeContainer, - getEnclosingContainer: getEnclosingContainer, - getEncodedSemanticClassifications: getEncodedSemanticClassifications, - getEncodedSyntacticClassifications: getEncodedSyntacticClassifications, - getEndLinePosition: getEndLinePosition, - getEntityNameFromTypeNode: getEntityNameFromTypeNode, - getEntrypointsFromPackageJsonInfo: getEntrypointsFromPackageJsonInfo, - getErrorCountForSummary: getErrorCountForSummary, - getErrorSpanForNode: getErrorSpanForNode, - getErrorSummaryText: getErrorSummaryText, - getEscapedTextOfIdentifierOrLiteral: getEscapedTextOfIdentifierOrLiteral, - getEscapedTextOfJsxAttributeName: getEscapedTextOfJsxAttributeName, - getEscapedTextOfJsxNamespacedName: getEscapedTextOfJsxNamespacedName, - getExpandoInitializer: getExpandoInitializer, - getExportAssignmentExpression: getExportAssignmentExpression, - getExportInfoMap: getExportInfoMap, - getExportNeedsImportStarHelper: getExportNeedsImportStarHelper, - getExpressionAssociativity: getExpressionAssociativity, - getExpressionPrecedence: getExpressionPrecedence, - getExternalHelpersModuleName: getExternalHelpersModuleName, - getExternalModuleImportEqualsDeclarationExpression: getExternalModuleImportEqualsDeclarationExpression, - getExternalModuleName: getExternalModuleName, - getExternalModuleNameFromDeclaration: getExternalModuleNameFromDeclaration, - getExternalModuleNameFromPath: getExternalModuleNameFromPath, - getExternalModuleNameLiteral: getExternalModuleNameLiteral, - getExternalModuleRequireArgument: getExternalModuleRequireArgument, - getFallbackOptions: getFallbackOptions, - getFileEmitOutput: getFileEmitOutput, - getFileMatcherPatterns: getFileMatcherPatterns, - getFileNamesFromConfigSpecs: getFileNamesFromConfigSpecs, - getFileWatcherEventKind: getFileWatcherEventKind, - getFilesInErrorForSummary: getFilesInErrorForSummary, - getFirstConstructorWithBody: getFirstConstructorWithBody, - getFirstIdentifier: getFirstIdentifier, - getFirstNonSpaceCharacterPosition: getFirstNonSpaceCharacterPosition, - getFirstProjectOutput: getFirstProjectOutput, - getFixableErrorSpanExpression: getFixableErrorSpanExpression, - getFormatCodeSettingsForWriting: getFormatCodeSettingsForWriting, - getFullWidth: getFullWidth, - getFunctionFlags: getFunctionFlags, - getHeritageClause: getHeritageClause, - getHostSignatureFromJSDoc: getHostSignatureFromJSDoc, - getIdentifierAutoGenerate: getIdentifierAutoGenerate, - getIdentifierGeneratedImportReference: getIdentifierGeneratedImportReference, - getIdentifierTypeArguments: getIdentifierTypeArguments, - getImmediatelyInvokedFunctionExpression: getImmediatelyInvokedFunctionExpression, - getImpliedNodeFormatForFile: getImpliedNodeFormatForFile, - getImpliedNodeFormatForFileWorker: getImpliedNodeFormatForFileWorker, - getImportNeedsImportDefaultHelper: getImportNeedsImportDefaultHelper, - getImportNeedsImportStarHelper: getImportNeedsImportStarHelper, - getIndentSize: getIndentSize, - getIndentString: getIndentString, - getInferredLibraryNameResolveFrom: getInferredLibraryNameResolveFrom, - getInitializedVariables: getInitializedVariables, - getInitializerOfBinaryExpression: getInitializerOfBinaryExpression, - getInitializerOfBindingOrAssignmentElement: getInitializerOfBindingOrAssignmentElement, - getInterfaceBaseTypeNodes: getInterfaceBaseTypeNodes, - getInternalEmitFlags: getInternalEmitFlags, - getInvokedExpression: getInvokedExpression, - getIsolatedModules: getIsolatedModules, - getJSDocAugmentsTag: getJSDocAugmentsTag, - getJSDocClassTag: getJSDocClassTag, - getJSDocCommentRanges: getJSDocCommentRanges, - getJSDocCommentsAndTags: getJSDocCommentsAndTags, - getJSDocDeprecatedTag: getJSDocDeprecatedTag, - getJSDocDeprecatedTagNoCache: getJSDocDeprecatedTagNoCache, - getJSDocEnumTag: getJSDocEnumTag, - getJSDocHost: getJSDocHost, - getJSDocImplementsTags: getJSDocImplementsTags, - getJSDocOverrideTagNoCache: getJSDocOverrideTagNoCache, - getJSDocParameterTags: getJSDocParameterTags, - getJSDocParameterTagsNoCache: getJSDocParameterTagsNoCache, - getJSDocPrivateTag: getJSDocPrivateTag, - getJSDocPrivateTagNoCache: getJSDocPrivateTagNoCache, - getJSDocProtectedTag: getJSDocProtectedTag, - getJSDocProtectedTagNoCache: getJSDocProtectedTagNoCache, - getJSDocPublicTag: getJSDocPublicTag, - getJSDocPublicTagNoCache: getJSDocPublicTagNoCache, - getJSDocReadonlyTag: getJSDocReadonlyTag, - getJSDocReadonlyTagNoCache: getJSDocReadonlyTagNoCache, - getJSDocReturnTag: getJSDocReturnTag, - getJSDocReturnType: getJSDocReturnType, - getJSDocRoot: getJSDocRoot, - getJSDocSatisfiesExpressionType: getJSDocSatisfiesExpressionType, - getJSDocSatisfiesTag: getJSDocSatisfiesTag, - getJSDocTags: getJSDocTags, - getJSDocTagsNoCache: getJSDocTagsNoCache, - getJSDocTemplateTag: getJSDocTemplateTag, - getJSDocThisTag: getJSDocThisTag, - getJSDocType: getJSDocType, - getJSDocTypeAliasName: getJSDocTypeAliasName, - getJSDocTypeAssertionType: getJSDocTypeAssertionType, - getJSDocTypeParameterDeclarations: getJSDocTypeParameterDeclarations, - getJSDocTypeParameterTags: getJSDocTypeParameterTags, - getJSDocTypeParameterTagsNoCache: getJSDocTypeParameterTagsNoCache, - getJSDocTypeTag: getJSDocTypeTag, - getJSXImplicitImportBase: getJSXImplicitImportBase, - getJSXRuntimeImport: getJSXRuntimeImport, - getJSXTransformEnabled: getJSXTransformEnabled, - getKeyForCompilerOptions: getKeyForCompilerOptions, - getLanguageVariant: getLanguageVariant, - getLastChild: getLastChild, - getLeadingCommentRanges: getLeadingCommentRanges, - getLeadingCommentRangesOfNode: getLeadingCommentRangesOfNode, - getLeftmostAccessExpression: getLeftmostAccessExpression, - getLeftmostExpression: getLeftmostExpression, - getLineAndCharacterOfPosition: getLineAndCharacterOfPosition, - getLineInfo: getLineInfo, - getLineOfLocalPosition: getLineOfLocalPosition, - getLineOfLocalPositionFromLineMap: getLineOfLocalPositionFromLineMap, - getLineStartPositionForPosition: getLineStartPositionForPosition, - getLineStarts: getLineStarts, - getLinesBetweenPositionAndNextNonWhitespaceCharacter: getLinesBetweenPositionAndNextNonWhitespaceCharacter, - getLinesBetweenPositionAndPrecedingNonWhitespaceCharacter: getLinesBetweenPositionAndPrecedingNonWhitespaceCharacter, - getLinesBetweenPositions: getLinesBetweenPositions, - getLinesBetweenRangeEndAndRangeStart: getLinesBetweenRangeEndAndRangeStart, - getLinesBetweenRangeEndPositions: getLinesBetweenRangeEndPositions, - getLiteralText: getLiteralText, - getLocalNameForExternalImport: getLocalNameForExternalImport, - getLocalSymbolForExportDefault: getLocalSymbolForExportDefault, - getLocaleSpecificMessage: getLocaleSpecificMessage, - getLocaleTimeString: getLocaleTimeString, - getMappedContextSpan: getMappedContextSpan, - getMappedDocumentSpan: getMappedDocumentSpan, - getMappedLocation: getMappedLocation, - getMatchedFileSpec: getMatchedFileSpec, - getMatchedIncludeSpec: getMatchedIncludeSpec, - getMeaningFromDeclaration: getMeaningFromDeclaration, - getMeaningFromLocation: getMeaningFromLocation, - getMembersOfDeclaration: getMembersOfDeclaration, - getModeForFileReference: getModeForFileReference, - getModeForResolutionAtIndex: getModeForResolutionAtIndex, - getModeForUsageLocation: getModeForUsageLocation, - getModifiedTime: getModifiedTime, - getModifiers: getModifiers, - getModuleInstanceState: getModuleInstanceState, - getModuleNameStringLiteralAt: getModuleNameStringLiteralAt, - getModuleSpecifierEndingPreference: getModuleSpecifierEndingPreference, - getModuleSpecifierResolverHost: getModuleSpecifierResolverHost, - getNameForExportedSymbol: getNameForExportedSymbol, - getNameFromIndexInfo: getNameFromIndexInfo, - getNameFromPropertyName: getNameFromPropertyName, - getNameOfAccessExpression: getNameOfAccessExpression, - getNameOfCompilerOptionValue: getNameOfCompilerOptionValue, - getNameOfDeclaration: getNameOfDeclaration, - getNameOfExpando: getNameOfExpando, - getNameOfJSDocTypedef: getNameOfJSDocTypedef, - getNameOrArgument: getNameOrArgument, - getNameTable: getNameTable, - getNamesForExportedSymbol: getNamesForExportedSymbol, - getNamespaceDeclarationNode: getNamespaceDeclarationNode, - getNewLineCharacter: getNewLineCharacter, - getNewLineKind: getNewLineKind, - getNewLineOrDefaultFromHost: getNewLineOrDefaultFromHost, - getNewTargetContainer: getNewTargetContainer, - getNextJSDocCommentLocation: getNextJSDocCommentLocation, - getNodeForGeneratedName: getNodeForGeneratedName, - getNodeId: getNodeId, - getNodeKind: getNodeKind, - getNodeModifiers: getNodeModifiers, - getNodeModulePathParts: getNodeModulePathParts, - getNonAssignedNameOfDeclaration: getNonAssignedNameOfDeclaration, - getNonAssignmentOperatorForCompoundAssignment: getNonAssignmentOperatorForCompoundAssignment, - getNonAugmentationDeclaration: getNonAugmentationDeclaration, - getNonDecoratorTokenPosOfNode: getNonDecoratorTokenPosOfNode, - getNormalizedAbsolutePath: getNormalizedAbsolutePath, - getNormalizedAbsolutePathWithoutRoot: getNormalizedAbsolutePathWithoutRoot, - getNormalizedPathComponents: getNormalizedPathComponents, - getObjectFlags: getObjectFlags, - getOperator: getOperator, - getOperatorAssociativity: getOperatorAssociativity, - getOperatorPrecedence: getOperatorPrecedence, - getOptionFromName: getOptionFromName, - getOptionsForLibraryResolution: getOptionsForLibraryResolution, - getOptionsNameMap: getOptionsNameMap, - getOrCreateEmitNode: getOrCreateEmitNode, - getOrCreateExternalHelpersModuleNameIfNeeded: getOrCreateExternalHelpersModuleNameIfNeeded, - getOrUpdate: getOrUpdate, - getOriginalNode: getOriginalNode, - getOriginalNodeId: getOriginalNodeId, - getOriginalSourceFile: getOriginalSourceFile, - getOutputDeclarationFileName: getOutputDeclarationFileName, - getOutputExtension: getOutputExtension, - getOutputFileNames: getOutputFileNames, - getOutputPathsFor: getOutputPathsFor, - getOutputPathsForBundle: getOutputPathsForBundle, - getOwnEmitOutputFilePath: getOwnEmitOutputFilePath, - getOwnKeys: getOwnKeys, - getOwnValues: getOwnValues, - getPackageJsonInfo: getPackageJsonInfo, - getPackageJsonTypesVersionsPaths: getPackageJsonTypesVersionsPaths, - getPackageJsonsVisibleToFile: getPackageJsonsVisibleToFile, - getPackageNameFromTypesPackageName: getPackageNameFromTypesPackageName, - getPackageScopeForPath: getPackageScopeForPath, - getParameterSymbolFromJSDoc: getParameterSymbolFromJSDoc, - getParameterTypeNode: getParameterTypeNode, - getParentNodeInSpan: getParentNodeInSpan, - getParseTreeNode: getParseTreeNode, - getParsedCommandLineOfConfigFile: getParsedCommandLineOfConfigFile, - getPathComponents: getPathComponents, - getPathComponentsRelativeTo: getPathComponentsRelativeTo, - getPathFromPathComponents: getPathFromPathComponents, - getPathUpdater: getPathUpdater, - getPathsBasePath: getPathsBasePath, - getPatternFromSpec: getPatternFromSpec, - getPendingEmitKind: getPendingEmitKind, - getPositionOfLineAndCharacter: getPositionOfLineAndCharacter, - getPossibleGenericSignatures: getPossibleGenericSignatures, - getPossibleOriginalInputExtensionForExtension: getPossibleOriginalInputExtensionForExtension, - getPossibleTypeArgumentsInfo: getPossibleTypeArgumentsInfo, - getPreEmitDiagnostics: getPreEmitDiagnostics, - getPrecedingNonSpaceCharacterPosition: getPrecedingNonSpaceCharacterPosition, - getPrivateIdentifier: getPrivateIdentifier, - getProperties: getProperties, - getProperty: getProperty, - getPropertyArrayElementValue: getPropertyArrayElementValue, - getPropertyAssignmentAliasLikeExpression: getPropertyAssignmentAliasLikeExpression, - getPropertyNameForPropertyNameNode: getPropertyNameForPropertyNameNode, - getPropertyNameForUniqueESSymbol: getPropertyNameForUniqueESSymbol, - getPropertyNameFromType: getPropertyNameFromType, - getPropertyNameOfBindingOrAssignmentElement: getPropertyNameOfBindingOrAssignmentElement, - getPropertySymbolFromBindingElement: getPropertySymbolFromBindingElement, - getPropertySymbolsFromContextualType: getPropertySymbolsFromContextualType, - getQuoteFromPreference: getQuoteFromPreference, - getQuotePreference: getQuotePreference, - getRangesWhere: getRangesWhere, - getRefactorContextSpan: getRefactorContextSpan, - getReferencedFileLocation: getReferencedFileLocation, - getRegexFromPattern: getRegexFromPattern, - getRegularExpressionForWildcard: getRegularExpressionForWildcard, - getRegularExpressionsForWildcards: getRegularExpressionsForWildcards, - getRelativePathFromDirectory: getRelativePathFromDirectory, - getRelativePathFromFile: getRelativePathFromFile, - getRelativePathToDirectoryOrUrl: getRelativePathToDirectoryOrUrl, - getRenameLocation: getRenameLocation, - getReplacementSpanForContextToken: getReplacementSpanForContextToken, - getResolutionDiagnostic: getResolutionDiagnostic, - getResolutionModeOverrideForClause: getResolutionModeOverrideForClause, - getResolveJsonModule: getResolveJsonModule, - getResolvePackageJsonExports: getResolvePackageJsonExports, - getResolvePackageJsonImports: getResolvePackageJsonImports, - getResolvedExternalModuleName: getResolvedExternalModuleName, - getResolvedModule: getResolvedModule, - getResolvedTypeReferenceDirective: getResolvedTypeReferenceDirective, - getRestIndicatorOfBindingOrAssignmentElement: getRestIndicatorOfBindingOrAssignmentElement, - getRestParameterElementType: getRestParameterElementType, - getRightMostAssignedExpression: getRightMostAssignedExpression, - getRootDeclaration: getRootDeclaration, - getRootDirectoryOfResolutionCache: getRootDirectoryOfResolutionCache, - getRootLength: getRootLength, - getRootPathSplitLength: getRootPathSplitLength, - getScriptKind: getScriptKind, - getScriptKindFromFileName: getScriptKindFromFileName, - getScriptTargetFeatures: getScriptTargetFeatures, - getSelectedEffectiveModifierFlags: getSelectedEffectiveModifierFlags, - getSelectedSyntacticModifierFlags: getSelectedSyntacticModifierFlags, - getSemanticClassifications: getSemanticClassifications, - getSemanticJsxChildren: getSemanticJsxChildren, - getSetAccessorTypeAnnotationNode: getSetAccessorTypeAnnotationNode, - getSetAccessorValueParameter: getSetAccessorValueParameter, - getSetExternalModuleIndicator: getSetExternalModuleIndicator, - getShebang: getShebang, - getSingleInitializerOfVariableStatementOrPropertyDeclaration: getSingleInitializerOfVariableStatementOrPropertyDeclaration, - getSingleVariableOfVariableStatement: getSingleVariableOfVariableStatement, - getSnapshotText: getSnapshotText, - getSnippetElement: getSnippetElement, - getSourceFileOfModule: getSourceFileOfModule, - getSourceFileOfNode: getSourceFileOfNode, - getSourceFilePathInNewDir: getSourceFilePathInNewDir, - getSourceFilePathInNewDirWorker: getSourceFilePathInNewDirWorker, - getSourceFileVersionAsHashFromText: getSourceFileVersionAsHashFromText, - getSourceFilesToEmit: getSourceFilesToEmit, - getSourceMapRange: getSourceMapRange, - getSourceMapper: getSourceMapper, - getSourceTextOfNodeFromSourceFile: getSourceTextOfNodeFromSourceFile, - getSpanOfTokenAtPosition: getSpanOfTokenAtPosition, - getSpellingSuggestion: getSpellingSuggestion, - getStartPositionOfLine: getStartPositionOfLine, - getStartPositionOfRange: getStartPositionOfRange, - getStartsOnNewLine: getStartsOnNewLine, - getStaticPropertiesAndClassStaticBlock: getStaticPropertiesAndClassStaticBlock, - getStrictOptionValue: getStrictOptionValue, - getStringComparer: getStringComparer, - getSuperCallFromStatement: getSuperCallFromStatement, - getSuperContainer: getSuperContainer, - getSupportedCodeFixes: getSupportedCodeFixes, - getSupportedExtensions: getSupportedExtensions, - getSupportedExtensionsWithJsonIfResolveJsonModule: getSupportedExtensionsWithJsonIfResolveJsonModule, - getSwitchedType: getSwitchedType, - getSymbolId: getSymbolId, - getSymbolNameForPrivateIdentifier: getSymbolNameForPrivateIdentifier, - getSymbolTarget: getSymbolTarget, - getSyntacticClassifications: getSyntacticClassifications, - getSyntacticModifierFlags: getSyntacticModifierFlags, - getSyntacticModifierFlagsNoCache: getSyntacticModifierFlagsNoCache, - getSynthesizedDeepClone: getSynthesizedDeepClone, - getSynthesizedDeepCloneWithReplacements: getSynthesizedDeepCloneWithReplacements, - getSynthesizedDeepClones: getSynthesizedDeepClones, - getSynthesizedDeepClonesWithReplacements: getSynthesizedDeepClonesWithReplacements, - getSyntheticLeadingComments: getSyntheticLeadingComments, - getSyntheticTrailingComments: getSyntheticTrailingComments, - getTargetLabel: getTargetLabel, - getTargetOfBindingOrAssignmentElement: getTargetOfBindingOrAssignmentElement, - getTemporaryModuleResolutionState: getTemporaryModuleResolutionState, - getTextOfConstantValue: getTextOfConstantValue, - getTextOfIdentifierOrLiteral: getTextOfIdentifierOrLiteral, - getTextOfJSDocComment: getTextOfJSDocComment, - getTextOfJsxAttributeName: getTextOfJsxAttributeName, - getTextOfJsxNamespacedName: getTextOfJsxNamespacedName, - getTextOfNode: getTextOfNode, - getTextOfNodeFromSourceText: getTextOfNodeFromSourceText, - getTextOfPropertyName: getTextOfPropertyName, - getThisContainer: getThisContainer, - getThisParameter: getThisParameter, - getTokenAtPosition: getTokenAtPosition, - getTokenPosOfNode: getTokenPosOfNode, - getTokenSourceMapRange: getTokenSourceMapRange, - getTouchingPropertyName: getTouchingPropertyName, - getTouchingToken: getTouchingToken, - getTrailingCommentRanges: getTrailingCommentRanges, - getTrailingSemicolonDeferringWriter: getTrailingSemicolonDeferringWriter, - getTransformFlagsSubtreeExclusions: getTransformFlagsSubtreeExclusions, - getTransformers: getTransformers, - getTsBuildInfoEmitOutputFilePath: getTsBuildInfoEmitOutputFilePath, - getTsConfigObjectLiteralExpression: getTsConfigObjectLiteralExpression, - getTsConfigPropArrayElementValue: getTsConfigPropArrayElementValue, - getTypeAnnotationNode: getTypeAnnotationNode, - getTypeArgumentOrTypeParameterList: getTypeArgumentOrTypeParameterList, - getTypeKeywordOfTypeOnlyImport: getTypeKeywordOfTypeOnlyImport, - getTypeNode: getTypeNode, - getTypeNodeIfAccessible: getTypeNodeIfAccessible, - getTypeParameterFromJsDoc: getTypeParameterFromJsDoc, - getTypeParameterOwner: getTypeParameterOwner, - getTypesPackageName: getTypesPackageName, - getUILocale: getUILocale, - getUniqueName: getUniqueName, - getUniqueSymbolId: getUniqueSymbolId, - getUseDefineForClassFields: getUseDefineForClassFields, - getWatchErrorSummaryDiagnosticMessage: getWatchErrorSummaryDiagnosticMessage, - getWatchFactory: getWatchFactory, - group: group, - groupBy: groupBy, - guessIndentation: guessIndentation, - handleNoEmitOptions: handleNoEmitOptions, - hasAbstractModifier: hasAbstractModifier, - hasAccessorModifier: hasAccessorModifier, - hasAmbientModifier: hasAmbientModifier, - hasChangesInResolutions: hasChangesInResolutions, - hasChildOfKind: hasChildOfKind, - hasContextSensitiveParameters: hasContextSensitiveParameters, - hasDecorators: hasDecorators, - hasDocComment: hasDocComment, - hasDynamicName: hasDynamicName, - hasEffectiveModifier: hasEffectiveModifier, - hasEffectiveModifiers: hasEffectiveModifiers, - hasEffectiveReadonlyModifier: hasEffectiveReadonlyModifier, - hasExtension: hasExtension, - hasIndexSignature: hasIndexSignature, - hasInitializer: hasInitializer, - hasInvalidEscape: hasInvalidEscape, - hasJSDocNodes: hasJSDocNodes, - hasJSDocParameterTags: hasJSDocParameterTags, - hasJSFileExtension: hasJSFileExtension, - hasJsonModuleEmitEnabled: hasJsonModuleEmitEnabled, - hasOnlyExpressionInitializer: hasOnlyExpressionInitializer, - hasOverrideModifier: hasOverrideModifier, - hasPossibleExternalModuleReference: hasPossibleExternalModuleReference, - hasProperty: hasProperty, - hasPropertyAccessExpressionWithName: hasPropertyAccessExpressionWithName, - hasQuestionToken: hasQuestionToken, - hasRecordedExternalHelpers: hasRecordedExternalHelpers, - hasRestParameter: hasRestParameter, - hasScopeMarker: hasScopeMarker, - hasStaticModifier: hasStaticModifier, - hasSyntacticModifier: hasSyntacticModifier, - hasSyntacticModifiers: hasSyntacticModifiers, - hasTSFileExtension: hasTSFileExtension, - hasTabstop: hasTabstop, - hasTrailingDirectorySeparator: hasTrailingDirectorySeparator, - hasType: hasType, - hasTypeArguments: hasTypeArguments, - hasZeroOrOneAsteriskCharacter: hasZeroOrOneAsteriskCharacter, - helperString: helperString, - hostGetCanonicalFileName: hostGetCanonicalFileName, - hostUsesCaseSensitiveFileNames: hostUsesCaseSensitiveFileNames, - idText: idText, - identifierIsThisKeyword: identifierIsThisKeyword, - identifierToKeywordKind: identifierToKeywordKind, - identity: identity, - identitySourceMapConsumer: identitySourceMapConsumer, - ignoreSourceNewlines: ignoreSourceNewlines, - ignoredPaths: ignoredPaths, - importDefaultHelper: importDefaultHelper, - importFromModuleSpecifier: importFromModuleSpecifier, - importNameElisionDisabled: importNameElisionDisabled, - importStarHelper: importStarHelper, - indexOfAnyCharCode: indexOfAnyCharCode, - indexOfNode: indexOfNode, - indicesOf: indicesOf, - inferredTypesContainingFile: inferredTypesContainingFile, - injectClassNamedEvaluationHelperBlockIfMissing: injectClassNamedEvaluationHelperBlockIfMissing, - injectClassThisAssignmentIfMissing: injectClassThisAssignmentIfMissing, - insertImports: insertImports, - insertLeadingStatement: insertLeadingStatement, - insertSorted: insertSorted, - insertStatementAfterCustomPrologue: insertStatementAfterCustomPrologue, - insertStatementAfterStandardPrologue: insertStatementAfterStandardPrologue, - insertStatementsAfterCustomPrologue: insertStatementsAfterCustomPrologue, - insertStatementsAfterStandardPrologue: insertStatementsAfterStandardPrologue, - intersperse: intersperse, - intrinsicTagNameToString: intrinsicTagNameToString, - introducesArgumentsExoticObject: introducesArgumentsExoticObject, - inverseJsxOptionMap: inverseJsxOptionMap, - isAbstractConstructorSymbol: isAbstractConstructorSymbol, - isAbstractModifier: isAbstractModifier, - isAccessExpression: isAccessExpression, - isAccessibilityModifier: isAccessibilityModifier, - isAccessor: isAccessor, - isAccessorModifier: isAccessorModifier, - isAliasSymbolDeclaration: isAliasSymbolDeclaration, - isAliasableExpression: isAliasableExpression, - isAmbientModule: isAmbientModule, - isAmbientPropertyDeclaration: isAmbientPropertyDeclaration, - isAnonymousFunctionDefinition: isAnonymousFunctionDefinition, - isAnyDirectorySeparator: isAnyDirectorySeparator, - isAnyImportOrBareOrAccessedRequire: isAnyImportOrBareOrAccessedRequire, - isAnyImportOrReExport: isAnyImportOrReExport, - isAnyImportSyntax: isAnyImportSyntax, - isAnySupportedFileExtension: isAnySupportedFileExtension, - isApplicableVersionedTypesKey: isApplicableVersionedTypesKey, - isArgumentExpressionOfElementAccess: isArgumentExpressionOfElementAccess, - isArray: isArray, - isArrayBindingElement: isArrayBindingElement, - isArrayBindingOrAssignmentElement: isArrayBindingOrAssignmentElement, - isArrayBindingOrAssignmentPattern: isArrayBindingOrAssignmentPattern, - isArrayBindingPattern: isArrayBindingPattern, - isArrayLiteralExpression: isArrayLiteralExpression, - isArrayLiteralOrObjectLiteralDestructuringPattern: isArrayLiteralOrObjectLiteralDestructuringPattern, - isArrayTypeNode: isArrayTypeNode, - isArrowFunction: isArrowFunction, - isAsExpression: isAsExpression, - isAssertClause: isAssertClause, - isAssertEntry: isAssertEntry, - isAssertionExpression: isAssertionExpression, - isAssertionKey: isAssertionKey, - isAssertsKeyword: isAssertsKeyword, - isAssignmentDeclaration: isAssignmentDeclaration, - isAssignmentExpression: isAssignmentExpression, - isAssignmentOperator: isAssignmentOperator, - isAssignmentPattern: isAssignmentPattern, - isAssignmentTarget: isAssignmentTarget, - isAsteriskToken: isAsteriskToken, - isAsyncFunction: isAsyncFunction, - isAsyncModifier: isAsyncModifier, - isAutoAccessorPropertyDeclaration: isAutoAccessorPropertyDeclaration, - isAwaitExpression: isAwaitExpression, - isAwaitKeyword: isAwaitKeyword, - isBigIntLiteral: isBigIntLiteral, - isBinaryExpression: isBinaryExpression, - isBinaryOperatorToken: isBinaryOperatorToken, - isBindableObjectDefinePropertyCall: isBindableObjectDefinePropertyCall, - isBindableStaticAccessExpression: isBindableStaticAccessExpression, - isBindableStaticElementAccessExpression: isBindableStaticElementAccessExpression, - isBindableStaticNameExpression: isBindableStaticNameExpression, - isBindingElement: isBindingElement, - isBindingElementOfBareOrAccessedRequire: isBindingElementOfBareOrAccessedRequire, - isBindingName: isBindingName, - isBindingOrAssignmentElement: isBindingOrAssignmentElement, - isBindingOrAssignmentPattern: isBindingOrAssignmentPattern, - isBindingPattern: isBindingPattern, - isBlock: isBlock, - isBlockOrCatchScoped: isBlockOrCatchScoped, - isBlockScope: isBlockScope, - isBlockScopedContainerTopLevel: isBlockScopedContainerTopLevel, - isBooleanLiteral: isBooleanLiteral, - isBreakOrContinueStatement: isBreakOrContinueStatement, - isBreakStatement: isBreakStatement, - isBuildInfoFile: isBuildInfoFile, - isBuilderProgram: isBuilderProgram, - isBundle: isBundle, - isBundleFileTextLike: isBundleFileTextLike, - isCallChain: isCallChain, - isCallExpression: isCallExpression, - isCallExpressionTarget: isCallExpressionTarget, - isCallLikeExpression: isCallLikeExpression, - isCallOrNewExpression: isCallOrNewExpression, - isCallOrNewExpressionTarget: isCallOrNewExpressionTarget, - isCallSignatureDeclaration: isCallSignatureDeclaration, - isCallToHelper: isCallToHelper, - isCaseBlock: isCaseBlock, - isCaseClause: isCaseClause, - isCaseKeyword: isCaseKeyword, - isCaseOrDefaultClause: isCaseOrDefaultClause, - isCatchClause: isCatchClause, - isCatchClauseVariableDeclaration: isCatchClauseVariableDeclaration, - isCatchClauseVariableDeclarationOrBindingElement: isCatchClauseVariableDeclarationOrBindingElement, - isCheckJsEnabledForFile: isCheckJsEnabledForFile, - isChildOfNodeWithKind: isChildOfNodeWithKind, - isCircularBuildOrder: isCircularBuildOrder, - isClassDeclaration: isClassDeclaration, - isClassElement: isClassElement, - isClassExpression: isClassExpression, - isClassLike: isClassLike, - isClassMemberModifier: isClassMemberModifier, - isClassNamedEvaluationHelperBlock: isClassNamedEvaluationHelperBlock, - isClassOrTypeElement: isClassOrTypeElement, - isClassStaticBlockDeclaration: isClassStaticBlockDeclaration, - isClassThisAssignmentBlock: isClassThisAssignmentBlock, - isCollapsedRange: isCollapsedRange, - isColonToken: isColonToken, - isCommaExpression: isCommaExpression, - isCommaListExpression: isCommaListExpression, - isCommaSequence: isCommaSequence, - isCommaToken: isCommaToken, - isComment: isComment, - isCommonJsExportPropertyAssignment: isCommonJsExportPropertyAssignment, - isCommonJsExportedExpression: isCommonJsExportedExpression, - isCompoundAssignment: isCompoundAssignment, - isComputedNonLiteralName: isComputedNonLiteralName, - isComputedPropertyName: isComputedPropertyName, - isConciseBody: isConciseBody, - isConditionalExpression: isConditionalExpression, - isConditionalTypeNode: isConditionalTypeNode, - isConstTypeReference: isConstTypeReference, - isConstructSignatureDeclaration: isConstructSignatureDeclaration, - isConstructorDeclaration: isConstructorDeclaration, - isConstructorTypeNode: isConstructorTypeNode, - isContextualKeyword: isContextualKeyword, - isContinueStatement: isContinueStatement, - isCustomPrologue: isCustomPrologue, - isDebuggerStatement: isDebuggerStatement, - isDeclaration: isDeclaration, - isDeclarationBindingElement: isDeclarationBindingElement, - isDeclarationFileName: isDeclarationFileName, - isDeclarationName: isDeclarationName, - isDeclarationNameOfEnumOrNamespace: isDeclarationNameOfEnumOrNamespace, - isDeclarationReadonly: isDeclarationReadonly, - isDeclarationStatement: isDeclarationStatement, - isDeclarationWithTypeParameterChildren: isDeclarationWithTypeParameterChildren, - isDeclarationWithTypeParameters: isDeclarationWithTypeParameters, - isDecorator: isDecorator, - isDecoratorTarget: isDecoratorTarget, - isDefaultClause: isDefaultClause, - isDefaultImport: isDefaultImport, - isDefaultModifier: isDefaultModifier, - isDefaultedExpandoInitializer: isDefaultedExpandoInitializer, - isDeleteExpression: isDeleteExpression, - isDeleteTarget: isDeleteTarget, - isDeprecatedDeclaration: isDeprecatedDeclaration, - isDestructuringAssignment: isDestructuringAssignment, - isDiagnosticWithLocation: isDiagnosticWithLocation, - isDiskPathRoot: isDiskPathRoot, - isDoStatement: isDoStatement, - isDocumentRegistryEntry: isDocumentRegistryEntry, - isDotDotDotToken: isDotDotDotToken, - isDottedName: isDottedName, - isDynamicName: isDynamicName, - isESSymbolIdentifier: isESSymbolIdentifier, - isEffectiveExternalModule: isEffectiveExternalModule, - isEffectiveModuleDeclaration: isEffectiveModuleDeclaration, - isEffectiveStrictModeSourceFile: isEffectiveStrictModeSourceFile, - isElementAccessChain: isElementAccessChain, - isElementAccessExpression: isElementAccessExpression, - isEmittedFileOfProgram: isEmittedFileOfProgram, - isEmptyArrayLiteral: isEmptyArrayLiteral, - isEmptyBindingElement: isEmptyBindingElement, - isEmptyBindingPattern: isEmptyBindingPattern, - isEmptyObjectLiteral: isEmptyObjectLiteral, - isEmptyStatement: isEmptyStatement, - isEmptyStringLiteral: isEmptyStringLiteral, - isEntityName: isEntityName, - isEntityNameExpression: isEntityNameExpression, - isEnumConst: isEnumConst, - isEnumDeclaration: isEnumDeclaration, - isEnumMember: isEnumMember, - isEqualityOperatorKind: isEqualityOperatorKind, - isEqualsGreaterThanToken: isEqualsGreaterThanToken, - isExclamationToken: isExclamationToken, - isExcludedFile: isExcludedFile, - isExclusivelyTypeOnlyImportOrExport: isExclusivelyTypeOnlyImportOrExport, - isExportAssignment: isExportAssignment, - isExportDeclaration: isExportDeclaration, - isExportModifier: isExportModifier, - isExportName: isExportName, - isExportNamespaceAsDefaultDeclaration: isExportNamespaceAsDefaultDeclaration, - isExportOrDefaultModifier: isExportOrDefaultModifier, - isExportSpecifier: isExportSpecifier, - isExportsIdentifier: isExportsIdentifier, - isExportsOrModuleExportsOrAlias: isExportsOrModuleExportsOrAlias, - isExpression: isExpression, - isExpressionNode: isExpressionNode, - isExpressionOfExternalModuleImportEqualsDeclaration: isExpressionOfExternalModuleImportEqualsDeclaration, - isExpressionOfOptionalChainRoot: isExpressionOfOptionalChainRoot, - isExpressionStatement: isExpressionStatement, - isExpressionWithTypeArguments: isExpressionWithTypeArguments, - isExpressionWithTypeArgumentsInClassExtendsClause: isExpressionWithTypeArgumentsInClassExtendsClause, - isExternalModule: isExternalModule, - isExternalModuleAugmentation: isExternalModuleAugmentation, - isExternalModuleImportEqualsDeclaration: isExternalModuleImportEqualsDeclaration, - isExternalModuleIndicator: isExternalModuleIndicator, - isExternalModuleNameRelative: isExternalModuleNameRelative, - isExternalModuleReference: isExternalModuleReference, - isExternalModuleSymbol: isExternalModuleSymbol, - isExternalOrCommonJsModule: isExternalOrCommonJsModule, - isFileLevelReservedGeneratedIdentifier: isFileLevelReservedGeneratedIdentifier, - isFileLevelUniqueName: isFileLevelUniqueName, - isFileProbablyExternalModule: isFileProbablyExternalModule, - isFirstDeclarationOfSymbolParameter: isFirstDeclarationOfSymbolParameter, - isFixablePromiseHandler: isFixablePromiseHandler, - isForInOrOfStatement: isForInOrOfStatement, - isForInStatement: isForInStatement, - isForInitializer: isForInitializer, - isForOfStatement: isForOfStatement, - isForStatement: isForStatement, - isFunctionBlock: isFunctionBlock, - isFunctionBody: isFunctionBody, - isFunctionDeclaration: isFunctionDeclaration, - isFunctionExpression: isFunctionExpression, - isFunctionExpressionOrArrowFunction: isFunctionExpressionOrArrowFunction, - isFunctionLike: isFunctionLike, - isFunctionLikeDeclaration: isFunctionLikeDeclaration, - isFunctionLikeKind: isFunctionLikeKind, - isFunctionLikeOrClassStaticBlockDeclaration: isFunctionLikeOrClassStaticBlockDeclaration, - isFunctionOrConstructorTypeNode: isFunctionOrConstructorTypeNode, - isFunctionOrModuleBlock: isFunctionOrModuleBlock, - isFunctionSymbol: isFunctionSymbol, - isFunctionTypeNode: isFunctionTypeNode, - isFutureReservedKeyword: isFutureReservedKeyword, - isGeneratedIdentifier: isGeneratedIdentifier, - isGeneratedPrivateIdentifier: isGeneratedPrivateIdentifier, - isGetAccessor: isGetAccessor, - isGetAccessorDeclaration: isGetAccessorDeclaration, - isGetOrSetAccessorDeclaration: isGetOrSetAccessorDeclaration, - isGlobalDeclaration: isGlobalDeclaration, - isGlobalScopeAugmentation: isGlobalScopeAugmentation, - isGrammarError: isGrammarError, - isHeritageClause: isHeritageClause, - isHoistedFunction: isHoistedFunction, - isHoistedVariableStatement: isHoistedVariableStatement, - isIdentifier: isIdentifier, - isIdentifierANonContextualKeyword: isIdentifierANonContextualKeyword, - isIdentifierName: isIdentifierName, - isIdentifierOrThisTypeNode: isIdentifierOrThisTypeNode, - isIdentifierPart: isIdentifierPart, - isIdentifierStart: isIdentifierStart, - isIdentifierText: isIdentifierText, - isIdentifierTypePredicate: isIdentifierTypePredicate, - isIdentifierTypeReference: isIdentifierTypeReference, - isIfStatement: isIfStatement, - isIgnoredFileFromWildCardWatching: isIgnoredFileFromWildCardWatching, - isImplicitGlob: isImplicitGlob, - isImportCall: isImportCall, - isImportClause: isImportClause, - isImportDeclaration: isImportDeclaration, - isImportEqualsDeclaration: isImportEqualsDeclaration, - isImportKeyword: isImportKeyword, - isImportMeta: isImportMeta, - isImportOrExportSpecifier: isImportOrExportSpecifier, - isImportOrExportSpecifierName: isImportOrExportSpecifierName, - isImportSpecifier: isImportSpecifier, - isImportTypeAssertionContainer: isImportTypeAssertionContainer, - isImportTypeNode: isImportTypeNode, - isImportableFile: isImportableFile, - isInComment: isInComment, - isInExpressionContext: isInExpressionContext, - isInJSDoc: isInJSDoc, - isInJSFile: isInJSFile, - isInJSXText: isInJSXText, - isInJsonFile: isInJsonFile, - isInNonReferenceComment: isInNonReferenceComment, - isInReferenceComment: isInReferenceComment, - isInRightSideOfInternalImportEqualsDeclaration: isInRightSideOfInternalImportEqualsDeclaration, - isInString: isInString, - isInTemplateString: isInTemplateString, - isInTopLevelContext: isInTopLevelContext, - isInTypeQuery: isInTypeQuery, - isIncrementalCompilation: isIncrementalCompilation, - isIndexSignatureDeclaration: isIndexSignatureDeclaration, - isIndexedAccessTypeNode: isIndexedAccessTypeNode, - isInferTypeNode: isInferTypeNode, - isInfinityOrNaNString: isInfinityOrNaNString, - isInitializedProperty: isInitializedProperty, - isInitializedVariable: isInitializedVariable, - isInsideJsxElement: isInsideJsxElement, - isInsideJsxElementOrAttribute: isInsideJsxElementOrAttribute, - isInsideNodeModules: isInsideNodeModules, - isInsideTemplateLiteral: isInsideTemplateLiteral, - isInstantiatedModule: isInstantiatedModule, - isInterfaceDeclaration: isInterfaceDeclaration, - isInternalDeclaration: isInternalDeclaration, - isInternalModuleImportEqualsDeclaration: isInternalModuleImportEqualsDeclaration, - isInternalName: isInternalName, - isIntersectionTypeNode: isIntersectionTypeNode, - isIntrinsicJsxName: isIntrinsicJsxName, - isIterationStatement: isIterationStatement, - isJSDoc: isJSDoc, - isJSDocAllType: isJSDocAllType, - isJSDocAugmentsTag: isJSDocAugmentsTag, - isJSDocAuthorTag: isJSDocAuthorTag, - isJSDocCallbackTag: isJSDocCallbackTag, - isJSDocClassTag: isJSDocClassTag, - isJSDocCommentContainingNode: isJSDocCommentContainingNode, - isJSDocConstructSignature: isJSDocConstructSignature, - isJSDocDeprecatedTag: isJSDocDeprecatedTag, - isJSDocEnumTag: isJSDocEnumTag, - isJSDocFunctionType: isJSDocFunctionType, - isJSDocImplementsTag: isJSDocImplementsTag, - isJSDocIndexSignature: isJSDocIndexSignature, - isJSDocLikeText: isJSDocLikeText, - isJSDocLink: isJSDocLink, - isJSDocLinkCode: isJSDocLinkCode, - isJSDocLinkLike: isJSDocLinkLike, - isJSDocLinkPlain: isJSDocLinkPlain, - isJSDocMemberName: isJSDocMemberName, - isJSDocNameReference: isJSDocNameReference, - isJSDocNamepathType: isJSDocNamepathType, - isJSDocNamespaceBody: isJSDocNamespaceBody, - isJSDocNode: isJSDocNode, - isJSDocNonNullableType: isJSDocNonNullableType, - isJSDocNullableType: isJSDocNullableType, - isJSDocOptionalParameter: isJSDocOptionalParameter, - isJSDocOptionalType: isJSDocOptionalType, - isJSDocOverloadTag: isJSDocOverloadTag, - isJSDocOverrideTag: isJSDocOverrideTag, - isJSDocParameterTag: isJSDocParameterTag, - isJSDocPrivateTag: isJSDocPrivateTag, - isJSDocPropertyLikeTag: isJSDocPropertyLikeTag, - isJSDocPropertyTag: isJSDocPropertyTag, - isJSDocProtectedTag: isJSDocProtectedTag, - isJSDocPublicTag: isJSDocPublicTag, - isJSDocReadonlyTag: isJSDocReadonlyTag, - isJSDocReturnTag: isJSDocReturnTag, - isJSDocSatisfiesExpression: isJSDocSatisfiesExpression, - isJSDocSatisfiesTag: isJSDocSatisfiesTag, - isJSDocSeeTag: isJSDocSeeTag, - isJSDocSignature: isJSDocSignature, - isJSDocTag: isJSDocTag, - isJSDocTemplateTag: isJSDocTemplateTag, - isJSDocThisTag: isJSDocThisTag, - isJSDocThrowsTag: isJSDocThrowsTag, - isJSDocTypeAlias: isJSDocTypeAlias, - isJSDocTypeAssertion: isJSDocTypeAssertion, - isJSDocTypeExpression: isJSDocTypeExpression, - isJSDocTypeLiteral: isJSDocTypeLiteral, - isJSDocTypeTag: isJSDocTypeTag, - isJSDocTypedefTag: isJSDocTypedefTag, - isJSDocUnknownTag: isJSDocUnknownTag, - isJSDocUnknownType: isJSDocUnknownType, - isJSDocVariadicType: isJSDocVariadicType, - isJSXTagName: isJSXTagName, - isJsonEqual: isJsonEqual, - isJsonSourceFile: isJsonSourceFile, - isJsxAttribute: isJsxAttribute, - isJsxAttributeLike: isJsxAttributeLike, - isJsxAttributeName: isJsxAttributeName, - isJsxAttributes: isJsxAttributes, - isJsxChild: isJsxChild, - isJsxClosingElement: isJsxClosingElement, - isJsxClosingFragment: isJsxClosingFragment, - isJsxElement: isJsxElement, - isJsxExpression: isJsxExpression, - isJsxFragment: isJsxFragment, - isJsxNamespacedName: isJsxNamespacedName, - isJsxOpeningElement: isJsxOpeningElement, - isJsxOpeningFragment: isJsxOpeningFragment, - isJsxOpeningLikeElement: isJsxOpeningLikeElement, - isJsxOpeningLikeElementTagName: isJsxOpeningLikeElementTagName, - isJsxSelfClosingElement: isJsxSelfClosingElement, - isJsxSpreadAttribute: isJsxSpreadAttribute, - isJsxTagNameExpression: isJsxTagNameExpression, - isJsxText: isJsxText, - isJumpStatementTarget: isJumpStatementTarget, - isKeyword: isKeyword, - isKeywordOrPunctuation: isKeywordOrPunctuation, - isKnownSymbol: isKnownSymbol, - isLabelName: isLabelName, - isLabelOfLabeledStatement: isLabelOfLabeledStatement, - isLabeledStatement: isLabeledStatement, - isLateVisibilityPaintedStatement: isLateVisibilityPaintedStatement, - isLeftHandSideExpression: isLeftHandSideExpression, - isLeftHandSideOfAssignment: isLeftHandSideOfAssignment, - isLet: isLet, - isLineBreak: isLineBreak, - isLiteralComputedPropertyDeclarationName: isLiteralComputedPropertyDeclarationName, - isLiteralExpression: isLiteralExpression, - isLiteralExpressionOfObject: isLiteralExpressionOfObject, - isLiteralImportTypeNode: isLiteralImportTypeNode, - isLiteralKind: isLiteralKind, - isLiteralLikeAccess: isLiteralLikeAccess, - isLiteralLikeElementAccess: isLiteralLikeElementAccess, - isLiteralNameOfPropertyDeclarationOrIndexAccess: isLiteralNameOfPropertyDeclarationOrIndexAccess, - isLiteralTypeLikeExpression: isLiteralTypeLikeExpression, - isLiteralTypeLiteral: isLiteralTypeLiteral, - isLiteralTypeNode: isLiteralTypeNode, - isLocalName: isLocalName, - isLogicalOperator: isLogicalOperator, - isLogicalOrCoalescingAssignmentExpression: isLogicalOrCoalescingAssignmentExpression, - isLogicalOrCoalescingAssignmentOperator: isLogicalOrCoalescingAssignmentOperator, - isLogicalOrCoalescingBinaryExpression: isLogicalOrCoalescingBinaryExpression, - isLogicalOrCoalescingBinaryOperator: isLogicalOrCoalescingBinaryOperator, - isMappedTypeNode: isMappedTypeNode, - isMemberName: isMemberName, - isMetaProperty: isMetaProperty, - isMethodDeclaration: isMethodDeclaration, - isMethodOrAccessor: isMethodOrAccessor, - isMethodSignature: isMethodSignature, - isMinusToken: isMinusToken, - isMissingDeclaration: isMissingDeclaration, - isModifier: isModifier, - isModifierKind: isModifierKind, - isModifierLike: isModifierLike, - isModuleAugmentationExternal: isModuleAugmentationExternal, - isModuleBlock: isModuleBlock, - isModuleBody: isModuleBody, - isModuleDeclaration: isModuleDeclaration, - isModuleExportsAccessExpression: isModuleExportsAccessExpression, - isModuleIdentifier: isModuleIdentifier, - isModuleName: isModuleName, - isModuleOrEnumDeclaration: isModuleOrEnumDeclaration, - isModuleReference: isModuleReference, - isModuleSpecifierLike: isModuleSpecifierLike, - isModuleWithStringLiteralName: isModuleWithStringLiteralName, - isNameOfFunctionDeclaration: isNameOfFunctionDeclaration, - isNameOfModuleDeclaration: isNameOfModuleDeclaration, - isNamedClassElement: isNamedClassElement, - isNamedDeclaration: isNamedDeclaration, - isNamedEvaluation: isNamedEvaluation, - isNamedEvaluationSource: isNamedEvaluationSource, - isNamedExportBindings: isNamedExportBindings, - isNamedExports: isNamedExports, - isNamedImportBindings: isNamedImportBindings, - isNamedImports: isNamedImports, - isNamedImportsOrExports: isNamedImportsOrExports, - isNamedTupleMember: isNamedTupleMember, - isNamespaceBody: isNamespaceBody, - isNamespaceExport: isNamespaceExport, - isNamespaceExportDeclaration: isNamespaceExportDeclaration, - isNamespaceImport: isNamespaceImport, - isNamespaceReexportDeclaration: isNamespaceReexportDeclaration, - isNewExpression: isNewExpression, - isNewExpressionTarget: isNewExpressionTarget, - isNightly: isNightly, - isNoSubstitutionTemplateLiteral: isNoSubstitutionTemplateLiteral, - isNode: isNode, - isNodeArray: isNodeArray, - isNodeArrayMultiLine: isNodeArrayMultiLine, - isNodeDescendantOf: isNodeDescendantOf, - isNodeKind: isNodeKind, - isNodeLikeSystem: isNodeLikeSystem, - isNodeModulesDirectory: isNodeModulesDirectory, - isNodeWithPossibleHoistedDeclaration: isNodeWithPossibleHoistedDeclaration, - isNonContextualKeyword: isNonContextualKeyword, - isNonExportDefaultModifier: isNonExportDefaultModifier, - isNonGlobalAmbientModule: isNonGlobalAmbientModule, - isNonGlobalDeclaration: isNonGlobalDeclaration, - isNonNullAccess: isNonNullAccess, - isNonNullChain: isNonNullChain, - isNonNullExpression: isNonNullExpression, - isNonStaticMethodOrAccessorWithPrivateName: isNonStaticMethodOrAccessorWithPrivateName, - isNotEmittedOrPartiallyEmittedNode: isNotEmittedOrPartiallyEmittedNode, - isNotEmittedStatement: isNotEmittedStatement, - isNullishCoalesce: isNullishCoalesce, - isNumber: isNumber, - isNumericLiteral: isNumericLiteral, - isNumericLiteralName: isNumericLiteralName, - isObjectBindingElementWithoutPropertyName: isObjectBindingElementWithoutPropertyName, - isObjectBindingOrAssignmentElement: isObjectBindingOrAssignmentElement, - isObjectBindingOrAssignmentPattern: isObjectBindingOrAssignmentPattern, - isObjectBindingPattern: isObjectBindingPattern, - isObjectLiteralElement: isObjectLiteralElement, - isObjectLiteralElementLike: isObjectLiteralElementLike, - isObjectLiteralExpression: isObjectLiteralExpression, - isObjectLiteralMethod: isObjectLiteralMethod, - isObjectLiteralOrClassExpressionMethodOrAccessor: isObjectLiteralOrClassExpressionMethodOrAccessor, - isObjectTypeDeclaration: isObjectTypeDeclaration, - isOctalDigit: isOctalDigit, - isOmittedExpression: isOmittedExpression, - isOptionalChain: isOptionalChain, - isOptionalChainRoot: isOptionalChainRoot, - isOptionalDeclaration: isOptionalDeclaration, - isOptionalJSDocPropertyLikeTag: isOptionalJSDocPropertyLikeTag, - isOptionalTypeNode: isOptionalTypeNode, - isOuterExpression: isOuterExpression, - isOutermostOptionalChain: isOutermostOptionalChain, - isOverrideModifier: isOverrideModifier, - isPackedArrayLiteral: isPackedArrayLiteral, - isParameter: isParameter, - isParameterDeclaration: isParameterDeclaration, - isParameterOrCatchClauseVariable: isParameterOrCatchClauseVariable, - isParameterPropertyDeclaration: isParameterPropertyDeclaration, - isParameterPropertyModifier: isParameterPropertyModifier, - isParenthesizedExpression: isParenthesizedExpression, - isParenthesizedTypeNode: isParenthesizedTypeNode, - isParseTreeNode: isParseTreeNode, - isPartOfTypeNode: isPartOfTypeNode, - isPartOfTypeQuery: isPartOfTypeQuery, - isPartiallyEmittedExpression: isPartiallyEmittedExpression, - isPatternMatch: isPatternMatch, - isPinnedComment: isPinnedComment, - isPlainJsFile: isPlainJsFile, - isPlusToken: isPlusToken, - isPossiblyTypeArgumentPosition: isPossiblyTypeArgumentPosition, - isPostfixUnaryExpression: isPostfixUnaryExpression, - isPrefixUnaryExpression: isPrefixUnaryExpression, - isPrivateIdentifier: isPrivateIdentifier, - isPrivateIdentifierClassElementDeclaration: isPrivateIdentifierClassElementDeclaration, - isPrivateIdentifierPropertyAccessExpression: isPrivateIdentifierPropertyAccessExpression, - isPrivateIdentifierSymbol: isPrivateIdentifierSymbol, - isProgramBundleEmitBuildInfo: isProgramBundleEmitBuildInfo, - isProgramUptoDate: isProgramUptoDate, - isPrologueDirective: isPrologueDirective, - isPropertyAccessChain: isPropertyAccessChain, - isPropertyAccessEntityNameExpression: isPropertyAccessEntityNameExpression, - isPropertyAccessExpression: isPropertyAccessExpression, - isPropertyAccessOrQualifiedName: isPropertyAccessOrQualifiedName, - isPropertyAccessOrQualifiedNameOrImportTypeNode: isPropertyAccessOrQualifiedNameOrImportTypeNode, - isPropertyAssignment: isPropertyAssignment, - isPropertyDeclaration: isPropertyDeclaration, - isPropertyName: isPropertyName, - isPropertyNameLiteral: isPropertyNameLiteral, - isPropertySignature: isPropertySignature, - isProtoSetter: isProtoSetter, - isPrototypeAccess: isPrototypeAccess, - isPrototypePropertyAssignment: isPrototypePropertyAssignment, - isPunctuation: isPunctuation, - isPushOrUnshiftIdentifier: isPushOrUnshiftIdentifier, - isQualifiedName: isQualifiedName, - isQuestionDotToken: isQuestionDotToken, - isQuestionOrExclamationToken: isQuestionOrExclamationToken, - isQuestionOrPlusOrMinusToken: isQuestionOrPlusOrMinusToken, - isQuestionToken: isQuestionToken, - isRawSourceMap: isRawSourceMap, - isReadonlyKeyword: isReadonlyKeyword, - isReadonlyKeywordOrPlusOrMinusToken: isReadonlyKeywordOrPlusOrMinusToken, - isRecognizedTripleSlashComment: isRecognizedTripleSlashComment, - isReferenceFileLocation: isReferenceFileLocation, - isReferencedFile: isReferencedFile, - isRegularExpressionLiteral: isRegularExpressionLiteral, - isRequireCall: isRequireCall, - isRequireVariableStatement: isRequireVariableStatement, - isRestParameter: isRestParameter, - isRestTypeNode: isRestTypeNode, - isReturnStatement: isReturnStatement, - isReturnStatementWithFixablePromiseHandler: isReturnStatementWithFixablePromiseHandler, - isRightSideOfAccessExpression: isRightSideOfAccessExpression, - isRightSideOfPropertyAccess: isRightSideOfPropertyAccess, - isRightSideOfQualifiedName: isRightSideOfQualifiedName, - isRightSideOfQualifiedNameOrPropertyAccess: isRightSideOfQualifiedNameOrPropertyAccess, - isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName: isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName, - isRootedDiskPath: isRootedDiskPath, - isSameEntityName: isSameEntityName, - isSatisfiesExpression: isSatisfiesExpression, - isScopeMarker: isScopeMarker, - isSemicolonClassElement: isSemicolonClassElement, - isSetAccessor: isSetAccessor, - isSetAccessorDeclaration: isSetAccessorDeclaration, - isShebangTrivia: isShebangTrivia, - isShorthandAmbientModuleSymbol: isShorthandAmbientModuleSymbol, - isShorthandPropertyAssignment: isShorthandPropertyAssignment, - isSignedNumericLiteral: isSignedNumericLiteral, - isSimpleCopiableExpression: isSimpleCopiableExpression, - isSimpleInlineableExpression: isSimpleInlineableExpression, - isSingleOrDoubleQuote: isSingleOrDoubleQuote, - isSourceFile: isSourceFile, - isSourceFileFromLibrary: isSourceFileFromLibrary, - isSourceFileJS: isSourceFileJS, - isSourceFileNotJS: isSourceFileNotJS, - isSourceFileNotJson: isSourceFileNotJson, - isSourceMapping: isSourceMapping, - isSpecialPropertyDeclaration: isSpecialPropertyDeclaration, - isSpreadAssignment: isSpreadAssignment, - isSpreadElement: isSpreadElement, - isStatement: isStatement, - isStatementButNotDeclaration: isStatementButNotDeclaration, - isStatementOrBlock: isStatementOrBlock, - isStatementWithLocals: isStatementWithLocals, - isStatic: isStatic, - isStaticModifier: isStaticModifier, - isString: isString, - isStringAKeyword: isStringAKeyword, - isStringANonContextualKeyword: isStringANonContextualKeyword, - isStringAndEmptyAnonymousObjectIntersection: isStringAndEmptyAnonymousObjectIntersection, - isStringDoubleQuoted: isStringDoubleQuoted, - isStringLiteral: isStringLiteral, - isStringLiteralLike: isStringLiteralLike, - isStringLiteralOrJsxExpression: isStringLiteralOrJsxExpression, - isStringLiteralOrTemplate: isStringLiteralOrTemplate, - isStringOrNumericLiteralLike: isStringOrNumericLiteralLike, - isStringOrRegularExpressionOrTemplateLiteral: isStringOrRegularExpressionOrTemplateLiteral, - isStringTextContainingNode: isStringTextContainingNode, - isSuperCall: isSuperCall, - isSuperKeyword: isSuperKeyword, - isSuperOrSuperProperty: isSuperOrSuperProperty, - isSuperProperty: isSuperProperty, - isSupportedSourceFileName: isSupportedSourceFileName, - isSwitchStatement: isSwitchStatement, - isSyntaxList: isSyntaxList, - isSyntheticExpression: isSyntheticExpression, - isSyntheticReference: isSyntheticReference, - isTagName: isTagName, - isTaggedTemplateExpression: isTaggedTemplateExpression, - isTaggedTemplateTag: isTaggedTemplateTag, - isTemplateExpression: isTemplateExpression, - isTemplateHead: isTemplateHead, - isTemplateLiteral: isTemplateLiteral, - isTemplateLiteralKind: isTemplateLiteralKind, - isTemplateLiteralToken: isTemplateLiteralToken, - isTemplateLiteralTypeNode: isTemplateLiteralTypeNode, - isTemplateLiteralTypeSpan: isTemplateLiteralTypeSpan, - isTemplateMiddle: isTemplateMiddle, - isTemplateMiddleOrTemplateTail: isTemplateMiddleOrTemplateTail, - isTemplateSpan: isTemplateSpan, - isTemplateTail: isTemplateTail, - isTextWhiteSpaceLike: isTextWhiteSpaceLike, - isThis: isThis, - isThisContainerOrFunctionBlock: isThisContainerOrFunctionBlock, - isThisIdentifier: isThisIdentifier, - isThisInTypeQuery: isThisInTypeQuery, - isThisInitializedDeclaration: isThisInitializedDeclaration, - isThisInitializedObjectBindingExpression: isThisInitializedObjectBindingExpression, - isThisProperty: isThisProperty, - isThisTypeNode: isThisTypeNode, - isThisTypeParameter: isThisTypeParameter, - isThisTypePredicate: isThisTypePredicate, - isThrowStatement: isThrowStatement, - isToken: isToken, - isTokenKind: isTokenKind, - isTraceEnabled: isTraceEnabled, - isTransientSymbol: isTransientSymbol, - isTrivia: isTrivia, - isTryStatement: isTryStatement, - isTupleTypeNode: isTupleTypeNode, - isTypeAlias: isTypeAlias, - isTypeAliasDeclaration: isTypeAliasDeclaration, - isTypeAssertionExpression: isTypeAssertionExpression, - isTypeDeclaration: isTypeDeclaration, - isTypeElement: isTypeElement, - isTypeKeyword: isTypeKeyword, - isTypeKeywordToken: isTypeKeywordToken, - isTypeKeywordTokenOrIdentifier: isTypeKeywordTokenOrIdentifier, - isTypeLiteralNode: isTypeLiteralNode, - isTypeNode: isTypeNode, - isTypeNodeKind: isTypeNodeKind, - isTypeOfExpression: isTypeOfExpression, - isTypeOnlyExportDeclaration: isTypeOnlyExportDeclaration, - isTypeOnlyImportDeclaration: isTypeOnlyImportDeclaration, - isTypeOnlyImportOrExportDeclaration: isTypeOnlyImportOrExportDeclaration, - isTypeOperatorNode: isTypeOperatorNode, - isTypeParameterDeclaration: isTypeParameterDeclaration, - isTypePredicateNode: isTypePredicateNode, - isTypeQueryNode: isTypeQueryNode, - isTypeReferenceNode: isTypeReferenceNode, - isTypeReferenceType: isTypeReferenceType, - isTypeUsableAsPropertyName: isTypeUsableAsPropertyName, - isUMDExportSymbol: isUMDExportSymbol, - isUnaryExpression: isUnaryExpression, - isUnaryExpressionWithWrite: isUnaryExpressionWithWrite, - isUnicodeIdentifierStart: isUnicodeIdentifierStart, - isUnionTypeNode: isUnionTypeNode, - isUnparsedNode: isUnparsedNode, - isUnparsedPrepend: isUnparsedPrepend, - isUnparsedSource: isUnparsedSource, - isUnparsedTextLike: isUnparsedTextLike, - isUrl: isUrl, - isValidBigIntString: isValidBigIntString, - isValidESSymbolDeclaration: isValidESSymbolDeclaration, - isValidTypeOnlyAliasUseSite: isValidTypeOnlyAliasUseSite, - isValueSignatureDeclaration: isValueSignatureDeclaration, - isVarAwaitUsing: isVarAwaitUsing, - isVarConst: isVarConst, - isVarUsing: isVarUsing, - isVariableDeclaration: isVariableDeclaration, - isVariableDeclarationInVariableStatement: isVariableDeclarationInVariableStatement, - isVariableDeclarationInitializedToBareOrAccessedRequire: isVariableDeclarationInitializedToBareOrAccessedRequire, - isVariableDeclarationInitializedToRequire: isVariableDeclarationInitializedToRequire, - isVariableDeclarationList: isVariableDeclarationList, - isVariableLike: isVariableLike, - isVariableLikeOrAccessor: isVariableLikeOrAccessor, - isVariableStatement: isVariableStatement, - isVoidExpression: isVoidExpression, - isWatchSet: isWatchSet, - isWhileStatement: isWhileStatement, - isWhiteSpaceLike: isWhiteSpaceLike, - isWhiteSpaceSingleLine: isWhiteSpaceSingleLine, - isWithStatement: isWithStatement, - isWriteAccess: isWriteAccess, - isWriteOnlyAccess: isWriteOnlyAccess, - isYieldExpression: isYieldExpression, - jsxModeNeedsExplicitImport: jsxModeNeedsExplicitImport, - keywordPart: keywordPart, - last: last, - lastOrUndefined: lastOrUndefined, - length: length, - libMap: libMap, - libs: libs, - lineBreakPart: lineBreakPart, - linkNamePart: linkNamePart, - linkPart: linkPart, - linkTextPart: linkTextPart, - listFiles: listFiles, - loadModuleFromGlobalCache: loadModuleFromGlobalCache, - loadWithModeAwareCache: loadWithModeAwareCache, - makeIdentifierFromModuleName: makeIdentifierFromModuleName, - makeImport: makeImport, - makeImportIfNecessary: makeImportIfNecessary, - makeStringLiteral: makeStringLiteral, - mangleScopedPackageName: mangleScopedPackageName, - map: map, - mapAllOrFail: mapAllOrFail, - mapDefined: mapDefined, - mapDefinedEntries: mapDefinedEntries, - mapDefinedIterator: mapDefinedIterator, - mapEntries: mapEntries, - mapIterator: mapIterator, - mapOneOrMany: mapOneOrMany, - mapToDisplayParts: mapToDisplayParts, - matchFiles: matchFiles, - matchPatternOrExact: matchPatternOrExact, - matchedText: matchedText, - matchesExclude: matchesExclude, - maybeBind: maybeBind, - maybeSetLocalizedDiagnosticMessages: maybeSetLocalizedDiagnosticMessages, - memoize: memoize, - memoizeCached: memoizeCached, - memoizeOne: memoizeOne, - memoizeWeak: memoizeWeak, - metadataHelper: metadataHelper, - min: min, - minAndMax: minAndMax, - missingFileModifiedTime: missingFileModifiedTime, - modifierToFlag: modifierToFlag, - modifiersToFlags: modifiersToFlags, - moduleOptionDeclaration: moduleOptionDeclaration, - moduleResolutionIsEqualTo: moduleResolutionIsEqualTo, - moduleResolutionNameAndModeGetter: moduleResolutionNameAndModeGetter, - moduleResolutionOptionDeclarations: moduleResolutionOptionDeclarations, - moduleResolutionSupportsPackageJsonExportsAndImports: moduleResolutionSupportsPackageJsonExportsAndImports, - moduleResolutionUsesNodeModules: moduleResolutionUsesNodeModules, - moduleSpecifiers: moduleSpecifiers, - moveEmitHelpers: moveEmitHelpers, - moveRangeEnd: moveRangeEnd, - moveRangePastDecorators: moveRangePastDecorators, - moveRangePastModifiers: moveRangePastModifiers, - moveRangePos: moveRangePos, - moveSyntheticComments: moveSyntheticComments, - mutateMap: mutateMap, - mutateMapSkippingNewValues: mutateMapSkippingNewValues, - needsParentheses: needsParentheses, - needsScopeMarker: needsScopeMarker, - newCaseClauseTracker: newCaseClauseTracker, - newPrivateEnvironment: newPrivateEnvironment, - noEmitNotification: noEmitNotification, - noEmitSubstitution: noEmitSubstitution, - noTransformers: noTransformers, - noTruncationMaximumTruncationLength: noTruncationMaximumTruncationLength, - nodeCanBeDecorated: nodeCanBeDecorated, - nodeHasName: nodeHasName, - nodeIsDecorated: nodeIsDecorated, - nodeIsMissing: nodeIsMissing, - nodeIsPresent: nodeIsPresent, - nodeIsSynthesized: nodeIsSynthesized, - nodeModuleNameResolver: nodeModuleNameResolver, - nodeModulesPathPart: nodeModulesPathPart, - nodeNextJsonConfigResolver: nodeNextJsonConfigResolver, - nodeOrChildIsDecorated: nodeOrChildIsDecorated, - nodeOverlapsWithStartEnd: nodeOverlapsWithStartEnd, - nodePosToString: nodePosToString, - nodeSeenTracker: nodeSeenTracker, - nodeStartsNewLexicalEnvironment: nodeStartsNewLexicalEnvironment, - nodeToDisplayParts: nodeToDisplayParts, - noop: noop, - noopFileWatcher: noopFileWatcher, - normalizePath: normalizePath, - normalizeSlashes: normalizeSlashes, - not: not, - notImplemented: notImplemented, - notImplementedResolver: notImplementedResolver, - nullNodeConverters: nullNodeConverters, - nullParenthesizerRules: nullParenthesizerRules, - nullTransformationContext: nullTransformationContext, - objectAllocator: objectAllocator, - operatorPart: operatorPart, - optionDeclarations: optionDeclarations, - optionMapToObject: optionMapToObject, - optionsAffectingProgramStructure: optionsAffectingProgramStructure, - optionsForBuild: optionsForBuild, - optionsForWatch: optionsForWatch, - optionsHaveChanges: optionsHaveChanges, - optionsHaveModuleResolutionChanges: optionsHaveModuleResolutionChanges, - or: or, - orderedRemoveItem: orderedRemoveItem, - orderedRemoveItemAt: orderedRemoveItemAt, - outFile: outFile, - packageIdToPackageName: packageIdToPackageName, - packageIdToString: packageIdToString, - padLeft: padLeft, - padRight: padRight, - paramHelper: paramHelper, - parameterIsThisKeyword: parameterIsThisKeyword, - parameterNamePart: parameterNamePart, - parseBaseNodeFactory: parseBaseNodeFactory, - parseBigInt: parseBigInt, - parseBuildCommand: parseBuildCommand, - parseCommandLine: parseCommandLine, - parseCommandLineWorker: parseCommandLineWorker, - parseConfigFileTextToJson: parseConfigFileTextToJson, - parseConfigFileWithSystem: parseConfigFileWithSystem, - parseConfigHostFromCompilerHostLike: parseConfigHostFromCompilerHostLike, - parseCustomTypeOption: parseCustomTypeOption, - parseIsolatedEntityName: parseIsolatedEntityName, - parseIsolatedJSDocComment: parseIsolatedJSDocComment, - parseJSDocTypeExpressionForTests: parseJSDocTypeExpressionForTests, - parseJsonConfigFileContent: parseJsonConfigFileContent, - parseJsonSourceFileConfigFileContent: parseJsonSourceFileConfigFileContent, - parseJsonText: parseJsonText, - parseListTypeOption: parseListTypeOption, - parseNodeFactory: parseNodeFactory, - parseNodeModuleFromPath: parseNodeModuleFromPath, - parsePackageName: parsePackageName, - parsePseudoBigInt: parsePseudoBigInt, - parseValidBigInt: parseValidBigInt, - patchWriteFileEnsuringDirectory: patchWriteFileEnsuringDirectory, - pathContainsNodeModules: pathContainsNodeModules, - pathIsAbsolute: pathIsAbsolute, - pathIsBareSpecifier: pathIsBareSpecifier, - pathIsRelative: pathIsRelative, - patternText: patternText, - perfLogger: perfLogger, - performIncrementalCompilation: performIncrementalCompilation, - performance: performance, - plainJSErrors: plainJSErrors, - positionBelongsToNode: positionBelongsToNode, - positionIsASICandidate: positionIsASICandidate, - positionIsSynthesized: positionIsSynthesized, - positionsAreOnSameLine: positionsAreOnSameLine, - preProcessFile: preProcessFile, - probablyUsesSemicolons: probablyUsesSemicolons, - processCommentPragmas: processCommentPragmas, - processPragmasIntoFields: processPragmasIntoFields, - processTaggedTemplateExpression: processTaggedTemplateExpression, - programContainsEsModules: programContainsEsModules, - programContainsModules: programContainsModules, - projectReferenceIsEqualTo: projectReferenceIsEqualTo, - propKeyHelper: propKeyHelper, - propertyNamePart: propertyNamePart, - pseudoBigIntToString: pseudoBigIntToString, - punctuationPart: punctuationPart, - pushIfUnique: pushIfUnique, - quote: quote, - quotePreferenceFromString: quotePreferenceFromString, - rangeContainsPosition: rangeContainsPosition, - rangeContainsPositionExclusive: rangeContainsPositionExclusive, - rangeContainsRange: rangeContainsRange, - rangeContainsRangeExclusive: rangeContainsRangeExclusive, - rangeContainsStartEnd: rangeContainsStartEnd, - rangeEndIsOnSameLineAsRangeStart: rangeEndIsOnSameLineAsRangeStart, - rangeEndPositionsAreOnSameLine: rangeEndPositionsAreOnSameLine, - rangeEquals: rangeEquals, - rangeIsOnSingleLine: rangeIsOnSingleLine, - rangeOfNode: rangeOfNode, - rangeOfTypeParameters: rangeOfTypeParameters, - rangeOverlapsWithStartEnd: rangeOverlapsWithStartEnd, - rangeStartIsOnSameLineAsRangeEnd: rangeStartIsOnSameLineAsRangeEnd, - rangeStartPositionsAreOnSameLine: rangeStartPositionsAreOnSameLine, - readBuilderProgram: readBuilderProgram, - readConfigFile: readConfigFile, - readHelper: readHelper, - readJson: readJson, - readJsonConfigFile: readJsonConfigFile, - readJsonOrUndefined: readJsonOrUndefined, - realizeDiagnostics: realizeDiagnostics, - reduceEachLeadingCommentRange: reduceEachLeadingCommentRange, - reduceEachTrailingCommentRange: reduceEachTrailingCommentRange, - reduceLeft: reduceLeft, - reduceLeftIterator: reduceLeftIterator, - reducePathComponents: reducePathComponents, - refactor: refactor, - regExpEscape: regExpEscape, - relativeComplement: relativeComplement, - removeAllComments: removeAllComments, - removeEmitHelper: removeEmitHelper, - removeExtension: removeExtension, - removeFileExtension: removeFileExtension, - removeIgnoredPath: removeIgnoredPath, - removeMinAndVersionNumbers: removeMinAndVersionNumbers, - removeOptionality: removeOptionality, - removePrefix: removePrefix, - removeSuffix: removeSuffix, - removeTrailingDirectorySeparator: removeTrailingDirectorySeparator, - repeatString: repeatString, - replaceElement: replaceElement, - resolutionExtensionIsTSOrJson: resolutionExtensionIsTSOrJson, - resolveConfigFileProjectName: resolveConfigFileProjectName, - resolveJSModule: resolveJSModule, - resolveLibrary: resolveLibrary, - resolveModuleName: resolveModuleName, - resolveModuleNameFromCache: resolveModuleNameFromCache, - resolvePackageNameToPackageJson: resolvePackageNameToPackageJson, - resolvePath: resolvePath, - resolveProjectReferencePath: resolveProjectReferencePath, - resolveTripleslashReference: resolveTripleslashReference, - resolveTypeReferenceDirective: resolveTypeReferenceDirective, - resolvingEmptyArray: resolvingEmptyArray, - restHelper: restHelper, - returnFalse: returnFalse, - returnNoopFileWatcher: returnNoopFileWatcher, - returnTrue: returnTrue, - returnUndefined: returnUndefined, - returnsPromise: returnsPromise, - runInitializersHelper: runInitializersHelper, - sameFlatMap: sameFlatMap, - sameMap: sameMap, - sameMapping: sameMapping, - scanShebangTrivia: scanShebangTrivia, - scanTokenAtPosition: scanTokenAtPosition, - scanner: scanner, - screenStartingMessageCodes: screenStartingMessageCodes, - semanticDiagnosticsOptionDeclarations: semanticDiagnosticsOptionDeclarations, - serializeCompilerOptions: serializeCompilerOptions, - server: server, - servicesVersion: servicesVersion, - setCommentRange: setCommentRange, - setConfigFileInOptions: setConfigFileInOptions, - setConstantValue: setConstantValue, - setEachParent: setEachParent, - setEmitFlags: setEmitFlags, - setFunctionNameHelper: setFunctionNameHelper, - setGetSourceFileAsHashVersioned: setGetSourceFileAsHashVersioned, - setIdentifierAutoGenerate: setIdentifierAutoGenerate, - setIdentifierGeneratedImportReference: setIdentifierGeneratedImportReference, - setIdentifierTypeArguments: setIdentifierTypeArguments, - setInternalEmitFlags: setInternalEmitFlags, - setLocalizedDiagnosticMessages: setLocalizedDiagnosticMessages, - setModuleDefaultHelper: setModuleDefaultHelper, - setNodeFlags: setNodeFlags, - setObjectAllocator: setObjectAllocator, - setOriginalNode: setOriginalNode, - setParent: setParent, - setParentRecursive: setParentRecursive, - setPrivateIdentifier: setPrivateIdentifier, - setResolvedModule: setResolvedModule, - setResolvedTypeReferenceDirective: setResolvedTypeReferenceDirective, - setSnippetElement: setSnippetElement, - setSourceMapRange: setSourceMapRange, - setStackTraceLimit: setStackTraceLimit, - setStartsOnNewLine: setStartsOnNewLine, - setSyntheticLeadingComments: setSyntheticLeadingComments, - setSyntheticTrailingComments: setSyntheticTrailingComments, - setSys: setSys, - setSysLog: setSysLog, - setTextRange: setTextRange, - setTextRangeEnd: setTextRangeEnd, - setTextRangePos: setTextRangePos, - setTextRangePosEnd: setTextRangePosEnd, - setTextRangePosWidth: setTextRangePosWidth, - setTokenSourceMapRange: setTokenSourceMapRange, - setTypeNode: setTypeNode, - setUILocale: setUILocale, - setValueDeclaration: setValueDeclaration, - shouldAllowImportingTsExtension: shouldAllowImportingTsExtension, - shouldPreserveConstEnums: shouldPreserveConstEnums, - shouldResolveJsRequire: shouldResolveJsRequire, - shouldUseUriStyleNodeCoreModules: shouldUseUriStyleNodeCoreModules, - showModuleSpecifier: showModuleSpecifier, - signatureHasLiteralTypes: signatureHasLiteralTypes, - signatureHasRestParameter: signatureHasRestParameter, - signatureToDisplayParts: signatureToDisplayParts, - single: single, - singleElementArray: singleElementArray, - singleIterator: singleIterator, - singleOrMany: singleOrMany, - singleOrUndefined: singleOrUndefined, - skipAlias: skipAlias, - skipAssertions: skipAssertions, - skipConstraint: skipConstraint, - skipOuterExpressions: skipOuterExpressions, - skipParentheses: skipParentheses, - skipPartiallyEmittedExpressions: skipPartiallyEmittedExpressions, - skipTrivia: skipTrivia, - skipTypeChecking: skipTypeChecking, - skipTypeParentheses: skipTypeParentheses, - skipWhile: skipWhile, - sliceAfter: sliceAfter, - some: some, - sort: sort, - sortAndDeduplicate: sortAndDeduplicate, - sortAndDeduplicateDiagnostics: sortAndDeduplicateDiagnostics, - sourceFileAffectingCompilerOptions: sourceFileAffectingCompilerOptions, - sourceFileMayBeEmitted: sourceFileMayBeEmitted, - sourceMapCommentRegExp: sourceMapCommentRegExp, - sourceMapCommentRegExpDontCareLineStart: sourceMapCommentRegExpDontCareLineStart, - spacePart: spacePart, - spanMap: spanMap, - spreadArrayHelper: spreadArrayHelper, - stableSort: stableSort, - startEndContainsRange: startEndContainsRange, - startEndOverlapsWithStartEnd: startEndOverlapsWithStartEnd, - startOnNewLine: startOnNewLine, - startTracing: startTracing, - startsWith: startsWith, - startsWithDirectory: startsWithDirectory, - startsWithUnderscore: startsWithUnderscore, - startsWithUseStrict: startsWithUseStrict, - stringContains: stringContains, - stringContainsAt: stringContainsAt, - stringToToken: stringToToken, - stripQuotes: stripQuotes, - supportedDeclarationExtensions: supportedDeclarationExtensions, - supportedJSExtensions: supportedJSExtensions, - supportedJSExtensionsFlat: supportedJSExtensionsFlat, - supportedLocaleDirectories: supportedLocaleDirectories, - supportedTSExtensions: supportedTSExtensions, - supportedTSExtensionsFlat: supportedTSExtensionsFlat, - supportedTSImplementationExtensions: supportedTSImplementationExtensions, - suppressLeadingAndTrailingTrivia: suppressLeadingAndTrailingTrivia, - suppressLeadingTrivia: suppressLeadingTrivia, - suppressTrailingTrivia: suppressTrailingTrivia, - symbolEscapedNameNoDefault: symbolEscapedNameNoDefault, - symbolName: symbolName, - symbolNameNoDefault: symbolNameNoDefault, - symbolPart: symbolPart, - symbolToDisplayParts: symbolToDisplayParts, - syntaxMayBeASICandidate: syntaxMayBeASICandidate, - syntaxRequiresTrailingSemicolonOrASI: syntaxRequiresTrailingSemicolonOrASI, - sys: sys, - sysLog: sysLog, - tagNamesAreEquivalent: tagNamesAreEquivalent, - takeWhile: takeWhile, - targetOptionDeclaration: targetOptionDeclaration, - templateObjectHelper: templateObjectHelper, - testFormatSettings: testFormatSettings, - textChangeRangeIsUnchanged: textChangeRangeIsUnchanged, - textChangeRangeNewSpan: textChangeRangeNewSpan, - textChanges: textChanges, - textOrKeywordPart: textOrKeywordPart, - textPart: textPart, - textRangeContainsPositionInclusive: textRangeContainsPositionInclusive, - textSpanContainsPosition: textSpanContainsPosition, - textSpanContainsTextSpan: textSpanContainsTextSpan, - textSpanEnd: textSpanEnd, - textSpanIntersection: textSpanIntersection, - textSpanIntersectsWith: textSpanIntersectsWith, - textSpanIntersectsWithPosition: textSpanIntersectsWithPosition, - textSpanIntersectsWithTextSpan: textSpanIntersectsWithTextSpan, - textSpanIsEmpty: textSpanIsEmpty, - textSpanOverlap: textSpanOverlap, - textSpanOverlapsWith: textSpanOverlapsWith, - textSpansEqual: textSpansEqual, - textToKeywordObj: textToKeywordObj, - timestamp: timestamp, - toArray: toArray, - toBuilderFileEmit: toBuilderFileEmit, - toBuilderStateFileInfoForMultiEmit: toBuilderStateFileInfoForMultiEmit, - toEditorSettings: toEditorSettings, - toFileNameLowerCase: toFileNameLowerCase, - toLowerCase: toLowerCase, - toPath: toPath, - toProgramEmitPending: toProgramEmitPending, - tokenIsIdentifierOrKeyword: tokenIsIdentifierOrKeyword, - tokenIsIdentifierOrKeywordOrGreaterThan: tokenIsIdentifierOrKeywordOrGreaterThan, - tokenToString: tokenToString, - trace: trace, - tracing: tracing, - tracingEnabled: tracingEnabled, - transform: transform, - transformClassFields: transformClassFields, - transformDeclarations: transformDeclarations, - transformECMAScriptModule: transformECMAScriptModule, - transformES2015: transformES2015, - transformES2016: transformES2016, - transformES2017: transformES2017, - transformES2018: transformES2018, - transformES2019: transformES2019, - transformES2020: transformES2020, - transformES2021: transformES2021, - transformES5: transformES5, - transformESDecorators: transformESDecorators, - transformESNext: transformESNext, - transformGenerators: transformGenerators, - transformJsx: transformJsx, - transformLegacyDecorators: transformLegacyDecorators, - transformModule: transformModule, - transformNamedEvaluation: transformNamedEvaluation, - transformNodeModule: transformNodeModule, - transformNodes: transformNodes, - transformSystemModule: transformSystemModule, - transformTypeScript: transformTypeScript, - transpile: transpile, - transpileModule: transpileModule, - transpileOptionValueCompilerOptions: transpileOptionValueCompilerOptions, - trimString: trimString, - trimStringEnd: trimStringEnd, - trimStringStart: trimStringStart, - tryAddToSet: tryAddToSet, - tryAndIgnoreErrors: tryAndIgnoreErrors, - tryCast: tryCast, - tryDirectoryExists: tryDirectoryExists, - tryExtractTSExtension: tryExtractTSExtension, - tryFileExists: tryFileExists, - tryGetClassExtendingExpressionWithTypeArguments: tryGetClassExtendingExpressionWithTypeArguments, - tryGetClassImplementingOrExtendingExpressionWithTypeArguments: tryGetClassImplementingOrExtendingExpressionWithTypeArguments, - tryGetDirectories: tryGetDirectories, - tryGetExtensionFromPath: tryGetExtensionFromPath, - tryGetImportFromModuleSpecifier: tryGetImportFromModuleSpecifier, - tryGetJSDocSatisfiesTypeNode: tryGetJSDocSatisfiesTypeNode, - tryGetModuleNameFromFile: tryGetModuleNameFromFile, - tryGetModuleSpecifierFromDeclaration: tryGetModuleSpecifierFromDeclaration, - tryGetNativePerformanceHooks: tryGetNativePerformanceHooks, - tryGetPropertyAccessOrIdentifierToString: tryGetPropertyAccessOrIdentifierToString, - tryGetPropertyNameOfBindingOrAssignmentElement: tryGetPropertyNameOfBindingOrAssignmentElement, - tryGetSourceMappingURL: tryGetSourceMappingURL, - tryGetTextOfPropertyName: tryGetTextOfPropertyName, - tryIOAndConsumeErrors: tryIOAndConsumeErrors, - tryParsePattern: tryParsePattern, - tryParsePatterns: tryParsePatterns, - tryParseRawSourceMap: tryParseRawSourceMap, - tryReadDirectory: tryReadDirectory, - tryReadFile: tryReadFile, - tryRemoveDirectoryPrefix: tryRemoveDirectoryPrefix, - tryRemoveExtension: tryRemoveExtension, - tryRemovePrefix: tryRemovePrefix, - tryRemoveSuffix: tryRemoveSuffix, - typeAcquisitionDeclarations: typeAcquisitionDeclarations, - typeAliasNamePart: typeAliasNamePart, - typeDirectiveIsEqualTo: typeDirectiveIsEqualTo, - typeKeywords: typeKeywords, - typeParameterNamePart: typeParameterNamePart, - typeReferenceResolutionNameAndModeGetter: typeReferenceResolutionNameAndModeGetter, - typeToDisplayParts: typeToDisplayParts, - unchangedPollThresholds: unchangedPollThresholds, - unchangedTextChangeRange: unchangedTextChangeRange, - unescapeLeadingUnderscores: unescapeLeadingUnderscores, - unmangleScopedPackageName: unmangleScopedPackageName, - unorderedRemoveItem: unorderedRemoveItem, - unorderedRemoveItemAt: unorderedRemoveItemAt, - unreachableCodeIsError: unreachableCodeIsError, - unusedLabelIsError: unusedLabelIsError, - unwrapInnermostStatementOfLabel: unwrapInnermostStatementOfLabel, - updateErrorForNoInputFiles: updateErrorForNoInputFiles, - updateLanguageServiceSourceFile: updateLanguageServiceSourceFile, - updateMissingFilePathsWatch: updateMissingFilePathsWatch, - updatePackageJsonWatch: updatePackageJsonWatch, - updateResolutionField: updateResolutionField, - updateSharedExtendedConfigFileWatcher: updateSharedExtendedConfigFileWatcher, - updateSourceFile: updateSourceFile, - updateWatchingWildcardDirectories: updateWatchingWildcardDirectories, - usesExtensionsOnImports: usesExtensionsOnImports, - usingSingleLineStringWriter: usingSingleLineStringWriter, - utf16EncodeAsString: utf16EncodeAsString, - validateLocaleAndSetLanguage: validateLocaleAndSetLanguage, - valuesHelper: valuesHelper, - version: version, - versionMajorMinor: versionMajorMinor, - visitArray: visitArray, - visitCommaListElements: visitCommaListElements, - visitEachChild: visitEachChild, - visitFunctionBody: visitFunctionBody, - visitIterationBody: visitIterationBody, - visitLexicalEnvironment: visitLexicalEnvironment, - visitNode: visitNode, - visitNodes: visitNodes, - visitParameterList: visitParameterList, - walkUpBindingElementsAndPatterns: walkUpBindingElementsAndPatterns, - walkUpLexicalEnvironments: walkUpLexicalEnvironments, - walkUpOuterExpressions: walkUpOuterExpressions, - walkUpParenthesizedExpressions: walkUpParenthesizedExpressions, - walkUpParenthesizedTypes: walkUpParenthesizedTypes, - walkUpParenthesizedTypesAndGetParentAndChild: walkUpParenthesizedTypesAndGetParentAndChild, - whitespaceOrMapCommentRegExp: whitespaceOrMapCommentRegExp, - writeCommentRange: writeCommentRange, - writeFile: writeFile, - writeFileEnsuringDirectories: writeFileEnsuringDirectories, - zipToModeAwareCache: zipToModeAwareCache, - zipWith: zipWith -});